Method and system for sequential compilation and execution of rules
First Claim
1. A software arrangement operable on a processor, the software arrangement comprising at least one computer program which configures the processor to:
- utilize a test analyzer to process a ruleset, the ruleset comprising a set of rules, each individual rule of the ruleset having conditions, each condition having tests, each pair of the tests having a relationship, the test analyzer having an output comprising a set of relationships between the tests;
temporarily store the output of the test analyzer;
translate each individual rule from the ruleset into a series of loops and tests; and
unify the loops and tests from each individual rule into a unified series of loops and tests using the temporarily stored output of the test analyzer and the relationships between the conditions.
4 Assignments
0 Petitions
Accused Products
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.
29 Citations
24 Claims
-
1. A software arrangement operable on a processor, the software arrangement comprising at least one computer program which configures the processor to:
-
utilize a test analyzer to process a ruleset, the ruleset comprising a set of rules, each individual rule of the ruleset having conditions, each condition having tests, each pair of the tests having a relationship, the test analyzer having an output comprising a set of relationships between the tests; temporarily store the output of the test analyzer; translate each individual rule from the ruleset into a series of loops and tests; and unify the loops and tests from each individual rule into a unified series of loops and tests using the temporarily stored output of the test analyzer and the relationships between the conditions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method comprising:
-
utilizing a test analyzer to process a ruleset, the ruleset comprising a set of rules, each individual rule of the ruleset having conditions, each condition having tests, each pair of the tests having a relationship, the test analyzer having an output comprising a set of relationships between the tests; temporarily storing the output of the test analyzer; translating each individual rule from the ruleset into a series of loops and tests; and unifying the loops and tests from each individual rule into a unified series of loops and tests using the temporarily stored output of the test analyzer and the relationships between the conditions. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
Specification