IP Library › Granted Patent US 7,809,666
Granted Patent B2
US 7,809,666 · App. 11/635,918 · Granted Oct 5, 2010

Method and system for sequential compilation and execution of rules

Assignee: International Business Machines Corporation
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 7,809,666
App. No.
11/635,918
Granted
Oct 5, 2010
Kind
B2
Abstract

Systems and methods for matching objects against a set of rules are described. The present invention is a novel rule execution algorithm that generally operates with greater efficiency than known algorithms. The algorithm uses a test analyzer to determine the relationships that exist between pairs of tests within a ruleset. Each rule is then translated into loops and tests, and merged into a unified series of loops and tests using the output of the test analyzer. The algorithm then generates pattern matching code corresponding to the unified series of loops and tests for evaluation by a virtual machine, and auxiliary code that provides object manipulations and rule actions at the service of the pattern matching code. In its runtime, the algorithm loads objects into the pattern matching code through an access interface. The pattern matching code is then executed by the virtual machine against the loaded objects.

Claims (67)

1. A method, within a computer hardware system, for processing a ruleset,

the ruleset including a plurality of rules,

each individual rule of the plurality of rules including a condition and a rule action responsive to the condition being met,

each condition within an individual rule including a plurality of tests,

the method comprising:

identifying a plurality of relationships, each identified relationship is between a plurality of tests respectively associated with different conditions;

translating, by the computer hardware system, each individual rule of the plurality of rules into a coded series of one or more loops and tests; and

unifying, by the computer hardware system, the loops and the test from each individual rule of the plurality of rules into a unified series of loops and tests for the ruleset, wherein

the unifying based upon the identified plurality of relationships.

2. The method of claim 1 , wherein

one of the identified plurality of relationships is a disjoint.

3. The method of claim 2 , wherein

the plurality of tests respectively associated with the disjoint relationship are unified into a switch test.

4. The method of claim 1 , further comprising

translating the unified series of loops and tests into a pattern matching code for the ruleset; and

evaluating an object set using the pattern matching code for the ruleset.

5. The method of claim 4 , further comprising

generating auxiliary code, distinct from the pattern matching code, including coded object manipulations and rule actions; and

performing the object manipulations and the rule actions on an object in the object set using the auxiliary code.

6. The method of claim 1 , wherein

each identified relationship having a type selected from the group consisting of equality, complement, subsumption, disjoint, and unrelated.

7. A computer hardware system for processing a ruleset,

the ruleset including a plurality of rules,

each individual rule of the plurality of rules including a condition and a rule action responsive to the condition being met,

each condition within an individual rule including a plurality of tests,

the computer hardware system comprising:

a memory;

at least one processor connected to the memory, the at least one processor configured to perform

identifying a plurality of relationships, each identified relationship is between a plurality of tests respectively associated with different conditions;

translating each individual rule of the plurality of rules into a coded series of one or more loops and tests; and

unifying the loops and the test from each individual rule of the plurality of rules into a unified series of loops and tests for the ruleset, wherein

the unifying based upon the identified plurality of relationships.

8. The method of claim 7 , wherein

one of the identified plurality of relationships is a disjoint.

9. The method of claim 8 , wherein

the plurality of tests respectively associated with the disjoint relationship are unified into a switch test.

10. The computer hardware system of claim 7 , wherein

the at least one processor is further configured to perform

translating the unified series of loops and tests into a pattern matching code for the ruleset; and

evaluating an object set using the pattern matching code for the ruleset.

11. The computer hardware system of claim 10 , wherein

the at least one processor is further configured to perform

generating auxiliary code, distinct from the pattern matching code, including coded object manipulations and rule actions; and

performing the object manipulations and the rule actions on an object in the object set using the auxiliary code.

12. The computer hardware system of claim 7 , wherein

each identified relationship having a type selected from the group consisting of equality, complement, subsumption, disjoint, and unrelated.

13. A computer-readable storage medium having stored therein computer usable program code for processing a ruleset,

the ruleset including a plurality of rules,

each individual rule of the plurality of rules including a condition and a rule action responsive to the condition being met,

each condition within an individual rule including a plurality of tests,

the computer usable program code, upon being executed by a computer hardware system, causing the computer hardware system to perform

identifying a plurality of relationships, each identified relationship is between a plurality of tests respectively associated with different conditions;

translating each individual rule of the plurality of rules into a coded series of one or more loops and tests; and

unifying the loops and the test from each individual rule of the plurality of rules into a unified series of loops and tests for the ruleset, wherein

the unifying based upon the identified plurality of relationships.

14. The computer-readable storage medium of claim 13 , wherein

one of the identified plurality of relationships is a disjoint.

15. The computer-readable storage medium of claim 14 , wherein

the plurality of tests respectively associated with the disjoint relationship are unified into a switch test.

16. The computer-readable storage medium of claim 13 , further comprising

translating the unified series of loops and tests into a pattern matching code for the ruleset; and

evaluating an object set using the pattern matching code for the ruleset.

17. The computer-readable storage medium of claim 16 , further comprising

generating auxiliary code, distinct from the pattern matching code, including coded object manipulations and rule actions; and

performing the object manipulations and the rule actions on an object in the object set using the auxiliary code.

18. The computer-readable storage medium of claim 13 , wherein

each identified relationship having a type selected from the group consisting of equality, complement, subsumption, disjoint, and unrelated.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2010
From: IBM INTERNATIONAL GROUP BV
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 024184/0456 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2010
From: COMPAGNIE IBM FRANCE
To: IBM INTERNATIONAL GROUP BV
Reel/Frame 024145/0552 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2009
From: ILOG SA
To: ILOG SAS
Reel/Frame 022668/0797 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2007
From: CITEAU, HUGUES
To: ILOG S. A.
Reel/Frame 018920/0057 →
Continuity (1)
Related Publication 20090228421A1 · Sep 10, 2009