Selecting rules engines for processing abstract rules based on functionality and cost
First Claim
Patent Images
1. A computer-implemented method comprising:
- receiving an abstract rule having a conditional statement and a consequential statement, wherein the consequential statement defines a particular recommendation that is returned when the conditional statement is satisfied, and wherein the conditional statement and the consequential statement are defined using logical field definitions defined in an abstraction model that models underlying physical data in a manner making a schema of the physical data transparent to a user of the abstraction model;
determining one or more functions required to evaluate whether a rule predicate of the conditional statement is satisfied;
determining one or more rule engines of a plurality of rule engines that include the required functions;
selecting, from the one or more rule engines determined to include the required functions, a rule engine to process the abstract rule, wherein selecting a rule engine to process the abstract rule comprises determining the rule engine having a lowest cost for processing the required functions; and
executing the selected rule engine to process the abstract rule and produce an output.
3 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the invention provide techniques for selecting rule engines for processing abstract rules based on functionality and cost. In general, an abstract rule is analyzed to determine which functions are required to process the rule. The abstract rule is assigned to a rule engine by evaluating metadata describing the functions and costs of the rule engines. The abstract rule is then translated to the format required by the selected rule engine.
-
Citations
24 Claims
-
1. A computer-implemented method comprising:
-
receiving an abstract rule having a conditional statement and a consequential statement, wherein the consequential statement defines a particular recommendation that is returned when the conditional statement is satisfied, and wherein the conditional statement and the consequential statement are defined using logical field definitions defined in an abstraction model that models underlying physical data in a manner making a schema of the physical data transparent to a user of the abstraction model; determining one or more functions required to evaluate whether a rule predicate of the conditional statement is satisfied; determining one or more rule engines of a plurality of rule engines that include the required functions; selecting, from the one or more rule engines determined to include the required functions, a rule engine to process the abstract rule, wherein selecting a rule engine to process the abstract rule comprises determining the rule engine having a lowest cost for processing the required functions; and executing the selected rule engine to process the abstract rule and produce an output. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-implemented method comprising:
-
receiving an abstract rule having a conditional statement and a consequential statement, wherein the consequential statement defines a particular recommendation that is returned when the conditional statement is satisfied, and wherein the conditional statement and the consequential statement are defined using logical field definitions defined in an abstraction model that models underlying physical data in a manner making a schema of the physical data transparent to a user of the abstraction model; determining one or more functions required to evaluate whether a rule predicate of the conditional statement is satisfied; determining one or more rule engines of a plurality of rule engines that include the required functions; grouping the required functions into two or more groupings; selecting, from the one or more rule engines determined to include the required functions, a rule engine to process each grouping of required functions; and executing the selected rule engines to produce an output, wherein each selected rule engine processes the abstract rule according to the corresponding grouping of required functions. - View Dependent Claims (10, 11, 12)
-
-
13. A computer readable storage medium containing a program which, when executed, performs an operation comprising:
-
receiving an abstract rule having a conditional statement and a consequential statement, wherein the consequential statement defines a particular recommendation that is returned when the conditional statement is satisfied, and wherein the conditional statement and the consequential statement are defined using logical field definitions defined in an abstraction model that models underlying physical data in a manner making a schema of the physical data transparent to a user of the abstraction model; determining one or more functions required to evaluate whether a rule predicate of the conditional statement is satisfied; determining one or more rule engines of a plurality of rule engines that include the required functions; selecting, from the one or more rule engines determined to include the required functions, a rule engine to process the abstract rule, wherein selecting a rule engine to process the abstract rule comprises determining the rule engine having a lowest cost for processing the required functions; and executing the selected rule engine to process the abstract rule and produce an output. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer readable storage medium containing a program which, when executed, performs an operation comprising:
-
receiving an abstract rule having a conditional statement and a consequential statement, wherein the consequential statement defines a particular recommendation that is returned when the conditional statement is satisfied, and wherein the conditional statement and the consequential statement are defined using logical field definitions defined in an abstraction model that models underlying physical data in a manner making a schema of the physical data transparent to a user of the abstraction model; determining one or more functions required to evaluate whether a rule predicate of the conditional statement is satisfied; determining one or more rule engines of a plurality of rule engines that include the required functions; grouping the functions required to evaluate the conditional statement into two or more groupings; selecting, from the one or more rule engines determined to include the required functions, a rule engine to process each grouping of required functions; and executing the selected rule engines to produce an output, wherein each selected rule engine processes the rule according to the corresponding grouping of required functions. - View Dependent Claims (22, 23, 24)
-
Specification