Integration of declarative rule-based processing with procedural programming
First Claim
1. A method of integrating one or more declarative rules into a plurality of procedural instructions in a procedural computational system, the method comprising the steps of:
- executing, on a digital data processing system that comprises one or more digital data processors, a procedural sequence that comprises a plurality of procedural instructions,updating, upon execution of a procedural instruction that causes change to one or more variables, one or more other variables participating in one or more declarative rules so as to maintain relationships imposed by said one or more rules among said variables,wherein said one or more other variables are those not changed by the execution of that procedural instruction,and wherein said rules are defined outside that procedural instruction, andwherein said updating of said one or more other variables is performed by executing said rules on said digital data processing system prior to execution of any other procedural instruction in the sequence.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides methods and systems for integrating a procedural computational model with a declarative computational model. For example, in one aspect, the present invention provides a method for integrating a plurality of procedural instructions in a procedural computational system with a plurality of declarative rules in a declarative computational system. In such a method, for each of the procedural instructions operating on one or more variables, a hash table indexed by variable names is utilized to determine whether any of these variables participate in at least one of the declarative rules. Upon execution of a procedural instruction that changes a variable participating in a declarative rule, other variables associated with the rule are updated so as to maintain a relationship imposed by the rule among the variables. The updating of the other variables is performed prior to execution of other procedural instructions.
-
Citations
92 Claims
-
1. A method of integrating one or more declarative rules into a plurality of procedural instructions in a procedural computational system, the method comprising the steps of:
-
executing, on a digital data processing system that comprises one or more digital data processors, a procedural sequence that comprises a plurality of procedural instructions, updating, upon execution of a procedural instruction that causes change to one or more variables, one or more other variables participating in one or more declarative rules so as to maintain relationships imposed by said one or more rules among said variables, wherein said one or more other variables are those not changed by the execution of that procedural instruction, and wherein said rules are defined outside that procedural instruction, and wherein said updating of said one or more other variables is performed by executing said rules on said digital data processing system prior to execution of any other procedural instruction in the sequence. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. A method of integrating one or more declarative rules into a procedural computational system supporting object-oriented representation of data, the method comprising the steps of:
-
executing, on a digital data processing system that comprises one or more digital data processors, a procedural sequence that comprises a plurality of procedural instructions, updating, upon execution of a procedural instruction that causes change to one or more data in an object, one or more other data participating in one or more declarative rules so as to maintain relationships imposed by said one or more declarative rules among said data, wherein said one or more other data (i) are those not changed by the execution of that procedural instruction, and (ii) are in said object and/or in other objects, where said rules are defined outside that procedural instruction, wherein updating of said one or more other data is performed by executing said rules on said digital data processing system prior to execution of any other procedural instruction in the sequence. - View Dependent Claims (47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83)
-
-
84. A method of integrating one or more declarative rules into a procedural computational system, the method comprising the steps of:
executing on a digital data processor a step of compiling, from a sequence of procedural instructions, a procedural instruction for assignment of a value to a variable so as to effect updating, upon execution of such instruction at runtime, of one or more other variables participating in one or more declarative rules so as to maintain consistency of relationships imposed by said one or more declarative rules among said variable to which such value is assigned and said one or more other variables, wherein said one or more other variables are those not changed by the execution of that procedural instruction, wherein said rules are defined outside that procedural instruction, and wherein that updating of the one or more other variables is performed by executing said rules on said digital data processor prior to execution of any other procedural instruction in the sequence.
-
85. An integrated computational system, comprising
one or more digital data processors that execute a procedural facility for executing a procedural sequence that comprises a plurality of procedural instructions operating on one or more variables, a declarative facility coupled to operate on one or more other variables participating in one or more declarative rules so as to maintain one or more relationships defined by said one or more rules among said variables, and a change tracking facility in communication with said procedural and declarative facilities, wherein upon execution of a procedural instruction, said change tracking facility detects changes, if any, in one or more variables participating in at least one of said declarative rules and reports one or more said changes to said declarative facility, said declarative facility updating one or more other variables participating in said at least one declarative rule, in response to said reported change, so as to maintain a relationship defined thereby, wherein said one or more other variables are those not changed by execution of that procedural instruction, wherein said rules are defined outside that procedural instruction, and wherein that updating of the one or more other variables is performed prior to execution of any other procedural instruction in the sequence of instructions.
-
92. A method of integrating one or more declarative rules into a procedural computational system so as to render a plurality of instructions provided by said procedural system and a plurality of declarative rules mutually consistent, the method comprising the steps of:
-
executing, on a digital data processing system that comprises one or more digital data processors, a procedural sequence that comprises a plurality of procedural instructions, upon execution of a procedural instruction that causes change to one or more variables, executing one or more declarative rules to update values of one or more other variables participating in said one or more rules so as to maintain relationships imposed by said one or more rules among said variables, wherein said one or more other variables are those not changed by the execution of that procedural instruction, and wherein said rules are defined outside the procedural sequence, wherein said updating of values of said other variables is deferred until at least one of said procedural instructions in said procedural sequence requires those one or more other variables.
-
Specification