Partial evaluation of rule sets
First Claim
1. A method for evaluating a set of rules, the method including the steps of:
- when at least one value of a plurality of values referenced by rules in said set of rules is available, but before a subset of said plurality of values is available, making a determination of whether said set of rules DOES or DOES NOT necessarily evaluate to a particular result;
wherein each rule of said set of rules contains one or more rule conditions;
wherein for each rule condition of each rule of said set of rules, the plurality of values includes each value referenced by said each rule condition;
wherein each value of said plurality of values is referenced by a rule condition of a rule of said set of rules;
when said determination of whether said set of rules DOES or DOES NOT necessarily evaluate to a particular result is that said set of rules DOES NOT necessarily evaluate to a particular result;
generating one or more data structures that (1) hold said subset of said plurality of values and that (2) are needed to further evaluate said set of rules; and
evaluating said set of rules based on said subset of said plurality of values;
when said determination of whether said set of rules DOES or DOES NOT necessarily evaluate to a particular result is that said set of rules DOES necessarily evaluate to a particular result, then forgoing generating said one or more data structures; and
wherein each step of said steps is executed by one or more computers.
1 Assignment
0 Petitions
Accused Products
Abstract
Described herein are various approaches that allow rules to be used to specify actions, that alleviate the complexity and burden of developing and maintaining rules in a rules-based messaging system, and that provide more efficient ways of evaluating rules. The approaches allow rules to specify user-defined transformation functions for transforming messages, to specify when and how to perform row migration, and to specify other types of actions. Rules are grouped into rule sets. Several types of rule sets, referred to as positive and negative rule sets, allow users to use rules that are less complex to develop and maintain. Rule sets are evaluated more efficiently by attempting to evaluate the rule set with less information than is needed to evaluate all the rules in the rule set. Also, the results of rules evaluations that are based on a set of values are cached for later retrieval.
72 Citations
14 Claims
-
1. A method for evaluating a set of rules, the method including the steps of:
-
when at least one value of a plurality of values referenced by rules in said set of rules is available, but before a subset of said plurality of values is available, making a determination of whether said set of rules DOES or DOES NOT necessarily evaluate to a particular result; wherein each rule of said set of rules contains one or more rule conditions; wherein for each rule condition of each rule of said set of rules, the plurality of values includes each value referenced by said each rule condition; wherein each value of said plurality of values is referenced by a rule condition of a rule of said set of rules; when said determination of whether said set of rules DOES or DOES NOT necessarily evaluate to a particular result is that said set of rules DOES NOT necessarily evaluate to a particular result; generating one or more data structures that (1) hold said subset of said plurality of values and that (2) are needed to further evaluate said set of rules; and evaluating said set of rules based on said subset of said plurality of values; when said determination of whether said set of rules DOES or DOES NOT necessarily evaluate to a particular result is that said set of rules DOES necessarily evaluate to a particular result, then forgoing generating said one or more data structures; and wherein each step of said steps is executed by one or more computers. - View Dependent Claims (2, 3, 4, 5, 6, 13)
-
-
7. A computer-readable storage medium storing one or more sequences of instructions for evaluating a set of rules, said one or more instructions, which, when executed by one or more processors, causes the one or more processors to perform steps of:
-
when at least one value of a plurality of values referenced by rules in said set of rules is available, but before a subset of said plurality of values is available, making a determination of whether said set of rules DOES or DOES NOT necessarily evaluate to a particular result; wherein each rule of said set of rules contains one or more rule conditions; wherein for each rule condition of each rule of said set of rules, the plurality of values includes each value referenced by said each rule condition; wherein each value of said plurality of values is referenced by a rule condition of a rule of said set of rules; when said determination of whether said set of rules DOES or DOES NOT necessarily evaluate to a particular result is that said set of rules DOES NOT necessarily evaluate to a particular result; generating one or more data structures that (1) hold said subset of said plurality of values and that (2) are needed to further evaluate said set of rules; and evaluating said set of rules based on said subset of said plurality of values; and when said determination of whether said set of rules DOES or DOES NOT necessarily evaluate to a particular result is that said set of rules DOES necessarily evaluate to a particular result, then forgoing generating said one or more data structures. - View Dependent Claims (8, 9, 10, 11, 12, 14)
-
Specification