Claims
- 1. A method for building a rulebase, comprising:
receiving a plurality of rulebase components; and merging the rulebase components to create a consolidated rulebase.
- 2. The method of claim 1, wherein merging the rulebase components comprises:
parsing the rulebase components into individual rulebase elements; identifying a corresponding standard element for each of the rulebase elements, the standard elements comprising at least a portion of a standard rulebase format; and building the consolidated rulebase using the identified standard elements.
- 3. The method of claim 2, wherein each standard element has a corresponding element type and resides on one of a plurality of levels in the standard rulebase format; and
further comprising determining whether two standard elements share a common element type, reside on a common level, and share a common name.
- 4. The method of claim 3, wherein building the consolidated rulebase comprises inserting the two standard elements into the consolidated rulebase when the two standard elements share a common element type, reside on a common level, and do not share a common name.
- 5. The method of claim 3, further comprising determining whether only one of the two standard elements comprises rulebase logic when the two standard elements share a common element type, reside on a common level, and share a common name.
- 6. The method of claim 5, wherein the rulebase logic comprises at least one of a constraint expression, a method implementation, and a rule implementation.
- 7. The method of claim 2, wherein:
the standard rulebase format comprises rulebase-level standard elements, domain-level standard elements; and ruleset-level standard elements; the rulebase-level standard elements comprise first initialization methods, first associations, first constraints, first classes, and domains; the domain-level standard elements comprise second initialization methods, second associations, second constraints, second classes, and rulesets; the ruleset-level standard elements comprise third initialization methods, third associations, third constraints, third classes, and rules.
- 8. The method of claim 1, wherein merging the rulebase components occurs without use of forward declarations.
- 9. The method of claim 1, further comprising compiling the consolidated rulebase into a binary form.
- 10. The method of claim 1, further comprising generating a load map, the load map identifying a plurality of objects defined in the consolidated rulebase and relationships between each object and rules in the consolidated rulebase affecting each object.
- 11. The method of claim 1, further comprising generating an application interface document identifying one or more preconditions and one or more postconditions for each domain associated with the consolidated rulebase.
- 12. The method of claim 1, further comprising converting one of the rulebase components from a first format to a second format, the second format comprising a plurality of standard elements each having a corresponding element type and residing on one of a plurality of levels in a standard rulebase format.
- 13. The method of claim 1, wherein merging the rulebase components comprises merging the rulebase components using a rulebase builder object.
- 14. The method of claim 13, wherein the rulebase builder object comprises a stateless rulebase builder object or a stateful rulebase builder object.
- 15. The method of claim 1, wherein receiving the plurality of rulebase components comprises receiving the rulebase components using at least one of an input stream, an extensible Markup Language (XML) document, and a Uniform Resource Locator (URL).
- 16. A system for building a rulebase, comprising:
a memory operable to store a plurality of rulebase components; and one or more processors collectively operable to merge the rulebase components to create a consolidated rulebase.
- 17. The system of claim 16, wherein the one or more processors are collectively operable to merge the rulebase components by:
parsing the rulebase components into individual rulebase elements; creating a corresponding standard element for each of the rulebase elements, the standard elements comprising at least a portion of a standard rulebase format; and building the consolidated rulebase using the created standard elements.
- 18. The system of claim 17, wherein each standard element has a corresponding element type and resides on one of a plurality of levels in the standard rulebase format; and
the one or more processors are further collectively operable to:
determine whether two standard elements share a common element type, reside on a common level, and share a common name; inserting the two standard elements into the consolidated rulebase when the two standard elements share a common element type, reside on a common level, and do not share a common name; and determining whether only one of the two standard elements comprises rulebase logic when the two standard elements share a common element type, reside on a common level, and share a common name.
- 19. The system of claim 17, wherein:
the standard rulebase format comprises rulebase-level standard elements, domain-level standard elements; and ruleset-level standard elements; the rulebase-level standard elements comprise first initialization systems, first associations, first constraints, first classes, and domains; the domain-level standard elements comprise second initialization systems, second associations, second constraints, second classes, and rulesets; the ruleset-level standard elements comprise third initialization systems, third associations, third constraints, third classes, and rules.
- 20. The system of claim 16, wherein the one or more processors are further collectively operable to compile the consolidated rulebase into a binary form.
- 21. The system of claim 16, wherein the one or more processors are further collectively operable to:
generate a load map, the load map identifying a plurality of objects defined in the consolidated rulebase and relationships between each object and rules in the consolidated rulebase affecting each object; and generate an application interface document identifying one or more preconditions and one or more postconditions for each domain associated with the consolidated rulebase.
- 22. The system of claim 16, wherein the one or more processors are further collectively operable to convert one of the rulebase components from a first format to a second format, the second format comprising a plurality of standard elements each having a corresponding element type and residing on one of a plurality of levels in a standard rulebase format.
- 23. Logic embodied on at least one computer readable medium and operable when executed to:
receiving a plurality of rulebase components; and merging the rulebase components to create a consolidated rulebase.
- 24. A system for building a rulebase, comprising:
means for receiving a plurality of rulebase components; and means for merging the rulebase components to create a consolidated rulebase.
- 25. A method for building a rulebase, comprising:
communicating a plurality of rulebase components to a rulebase builder; and receiving from the rulebase builder a consolidated rulebase, the rulebase builder operable to merge the rulebase components to create the consolidated rulebase.
- 26. The method of claim 25, wherein communicating one of the plurality of rulebase components to the rulebase builder comprises communicating at least one of a binary rulebase component, an uncompiled rulebase component, and a location of a rulebase component to the rulebase builder.
- 27. The method of claim 26, wherein the location of the rulebase component comprises a Uniform Resource Locator (URL).
- 28. The method of claim 25, wherein the rulebase builder comprises a stateless rulebase builder; and
further comprising communicating a control object to the rulebase builder, the control object identifying whether the rulebase builder generates at least one of a load map, an application interface document, and a binary consolidated rulebase, the load map identifying a plurality of objects defined in the consolidated rulebase and relationships between each object and rules in the consolidated rulebase affecting each object, the application interface document identifying one or more preconditions and one or more postconditions for each domain associated with the consolidated rulebase.
- 29. The method of claim 25, wherein the rulebase builder comprises a stateful rulebase builder; and
further comprising invoking at least function in the rulebase builder, the at least one function operable to generate at least one of a load map, an application interface document, and a binary consolidated rulebase, the load map identifying a plurality of objects defined in the consolidated rulebase and relationships between each object and rules in the consolidated rulebase affecting each object, the application interface document identifying one or more preconditions and one or more postconditions for each domain associated with the consolidated rulebase.
- 30. An object-oriented programming language for building rulebases, comprising:
a class element identifying one or more fields and one or more methods; a constraint element identifying a condition placed on a value of at least one field, the constraint element also identifying a violation action to be performed when the condition is violated; a rule element identifying a rule associated with at least one of the fields; and wherein at least one of the fields may be associated with a number datatype, the number datatype operable to represent both integer and floating point values, the number datatype having a corresponding precision identifying a number of decimal places associated with the number datatype.
- 31. The object-oriented programming language of claim 30, wherein the rule comprises a decision tree rule, the decision tree rule comprising at least one expression dividing the rule into a plurality of subtrees.
- 32. The object-oriented programming language of claim 30, wherein the rule comprises a pattern matching rule, the pattern matching rule comprising one or more bind variables identifying data objects to be monitored, a premise representing a condition, and an action, the action executed when one or more of the data objects identified by the bind variables satisfy the condition in the premise.
- 33. The object-oriented programming language of claim 30, wherein a method that returns a value has no side effects.
- 34. The object-oriented programming language of claim 30, further comprising an association element identifying a relationship between two classes.
- 35. The object-oriented programming language of claim 34, wherein pointers may only be used with association elements and with bind variables in pattern matching rules.
- 36. The object-oriented programming language of claim 30, wherein the rule element only supports decision tree rules and pattern matching rules.
- 37. The object-oriented programming language of claim 30, wherein the class element comprises a first class element and the constraint element comprises a first constraint element;
further comprising a first initialization method element, a first association element, and a domain element; wherein the domain element comprises a second initialization method element, a second association element, a second constraint element, a second class element, and a ruleset element; and wherein the ruleset element comprises a third initialization method element, a third association element, a third constraint element, a third class element, and the rule element.
- 38. The object-oriented programming language of claim 30, wherein at least one other of the fields may be associated with a boolean representing a value of true or false, a string representing a sequence of characters, and a set representing an unordered collection of unique elements.
RELATED APPLICATIONS
[0001] This application claims priority to U.S. Provisional Application No. 60/373,823 filed Apr. 19, 2002, and entitled “System and Method for Providing Inferencing Services”, which is incorporated by reference herein. This application is related to U.S. patent application Ser. No. ______ filed Apr. 18, 2003 by Peter Herrera, et. al. and entitled “System and Method for Providing Inferencing Services” (attorney docket 063170.2509).
Provisional Applications (1)
|
Number |
Date |
Country |
|
60373823 |
Apr 2002 |
US |