IP Library › Granted Patent US 8,315,967
Granted Patent B2
US 8,315,967 · App. 11/897,564 · Granted Nov 20, 2012

Sequential mode in a Rete rule engine

Assignee: Red Hat, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,315,967
App. No.
11/897,564
Granted
Nov 20, 2012
Kind
B2
Abstract

Some embodiments of a sequential mode in a Rete rule engine have been presented. In one embodiment, a Rete rule engine is configured to enter into a sequential mode. Using the Rete rule engine configured, a rule set having a set of rules is evaluated against a set of data objects in a stateless manner.

Claims (53)

1. A computer-implemented method comprising:

configuring a Rete rule engine to enter into a sequential mode; and

using the configured Rete rule engine to evaluate a rule set having a plurality of rules against a set of data objects in a stateless manner.

2. The method of claim 1 , wherein configuring the Rete rule engine comprises:

ordering the plurality of rules by salience and a sequence number of each of the plurality of rules.

3. The method of claim 1 , wherein configuring the Rete rule engine comprises:

turning off a left node memory for each of a plurality of nodes in a Rete network of the Rete rule engine; and

disconnecting a left input to a first one of one or more two-input nodes in the Rete network.

4. The method of claim 1 , wherein configuring the Rete rule engine comprises:

creating an array having a plurality of elements, each of the plurality of elements corresponding to a distinct one of the plurality of rules, wherein a position of each of the plurality of elements in the array is indicative of a firing order of a corresponding rule.

5. The method of claim 1 , further comprising:

asserting the set of data objects to populate a right node memory for each of a plurality of nodes in a Rete network of the Rete rule engine when a left node memory of each of the plurality of nodes is turned off.

6. The method of claim 1 , further comprising:

placing into a command list a data object that is directed to a left input of each of one or more two-input nodes in a Rete network of the Rete rule engine; and

executing data objects in the command list after a right node memory of each of the one or more two-input nodes have been populated.

7. The method of claim 1 , further comprising:

placing into an array one or more activations of one or more of the plurality of rules that have been matched with one or more of the set of data objects according to sequence numbers of the one or more of the plurality of rules; and

iterating through the array to execute the one or more activations sequentially.

8. The method of claim 1 , wherein the plurality of rules comprises a plurality of business rules for determining if an applicant qualifies for a mortgage.

9. An apparatus comprising:

a production memory to store a rule set having a plurality of rules; and

a Rete rule engine coupled to the production memory, the Rete rule engine being configurable into a sequential mode, in which the Rete rule engine is operable to evaluate the plurality of rules against a set of data objects in a stateless manner.

10. The apparatus of claim 9 , wherein the plurality of rules are ordered by salience and a sequence number of each of the plurality of rules.

11. The apparatus of claim 9 , wherein the Rete rule engine is operable to turn off a left node memory for each of a plurality of nodes in a Rete network of the Rete rule engine, and to disconnect a left input to a first one of one or more two-input nodes in the Rete network.

12. The apparatus of claim 9 , wherein the Rete rule engine comprises:

a storage device to store an array having a plurality of elements, each of the plurality of elements corresponding to a distinct one of the plurality of rules, wherein a position of each of the plurality of elements in the array is indicative of a firing order of a corresponding rule.

13. The apparatus of claim 9 , further comprising a working memory, wherein the Rete rule engine is operable to assert the set of data objects into the working memory to populate a right node memory for each of a plurality of nodes in a Rete network of the Rete rule engine when a left node memory of each of the plurality of nodes is turned off.

14. The apparatus of claim 9 , wherein the Rete rule engine is operable to place into a command list a data object directed to a left input of each of one or more two-input nodes in a Rete network of the Rete rule engine, and to execute data objects in the command list after a right node memory of each of the one or more two-input nodes have been populated.

15. The apparatus of claim 9 , wherein the plurality of rules comprises a plurality of business rules for determining if an applicant qualifies for a mortgage.

16. A system comprising the apparatus of claim 9 , further comprising:

a user interface operatively coupled to the production memory to receive the plurality of rules from a user, wherein the plurality of rules comprises a plurality of business rules for determining if an applicant qualifies for a mortgage.

17. A system comprising the apparatus of claim 9 , further comprising:

a server operable to execute the Rete rule engine; and

a client machine communicatively coupled to the server via a network, the client machine comprising a user interface to receive the plurality of rules from a user and to send the plurality of rules to the server via the network.

18. The non-transitory machine-readable medium that provides instructions that, if executed by a processor, will cause the processor to perform operations comprising:

configuring a Rete rule engine to enter into a sequential mode; and

using the configured Rete rule engine to evaluate a rule set having a plurality of rules against a set of data objects in a stateless manner.

19. The machine-readable medium of claim 18 , wherein configuring the Rete rule engine comprises:

ordering the plurality of rules by salience and a sequence number of each of the plurality of rules.

20. The machine-readable medium of claim 18 , wherein configuring the Rete rule engine comprises:

turning off a left node memory for each of a plurality of nodes in a Rete network of the Rete rule engine; and

disconnecting a left input to a first one of one or more two-input nodes in the Rete network.

21. The machine-readable medium of claim 18 , wherein configuring the Rete rule engine comprises:

creating an array having a plurality of elements, each of the plurality of elements corresponding to a distinct one of the plurality of rules, wherein a position of each of the plurality of elements in the array is indicative of a firing order of a corresponding rule.

22. The machine-readable medium of claim 18 , wherein the operations further comprise:

asserting the set of data objects to populate a right node memory for each of a plurality of nodes in a Rete network of the Rete rule engine when a left node memory of each of the plurality of nodes is turned off.

23. The machine-readable medium of claim 18 , wherein the operations further comprise:

placing into a command list a data object that is directed to a left input of each of one or more two-input nodes in a Rete network of the Rete rule engine; and

executing data objects in the command list after a right node memory of each of the one or more two-input nodes have been populated.

24. The machine-readable medium of claim 18 , wherein the operations further comprise:

placing into an array one or more activations of one or more of the plurality of rules that have been matched with one or more of the set of data objects according to sequence numbers of the one or more of the plurality of rules; and

iterating through the array to execute the one or more activations sequentially.

25. The machine-readable medium of claim 18 , wherein the plurality of rules comprises a plurality of business rules for determining if an applicant qualifies for a mortgage.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 23, 2007
From: PROCTOR, MARK
To: RED HAT, INC.
Reel/Frame 020162/0034 →
Continuity (1)
Related Publication 20090063385A1 · Mar 5, 2009