Overview of IBM CommonRules 1.0 Alpha Release


Overview of IBM CommonRules 1.0 Alpha Release


Up to Business Rules project home page

 

IBM releases CommonRules 1.0: business rules for the Web.

July 30, 1999. IBM announces the release of CommonRules 1.0 today, a Java library that brings e-commerce business rules up to Internet speed. CommonRules enables Web communication of executable business rules between enterprises using heterogeneous rule systems, and enables incremental specification of executable business rules by non-programmer business domain experts.

CommonRules 1.0 is available free for download at AlphaWorks (http://alphaworks.ibm.com). It was developed by IBM Research's Business Rules for E-Commerce project team (http://www.research.ibm.com/rules/). CommonRules is 100 percent pure Java, and runs on all Java platforms including Windows 95, NT, and 98.

CommonRules provides innovative XML inter-operability and prioritized conflict handling capabilities. These modularly augment a wide variety of rule-based systems and programming mechanisms already available in the market. The CommonRules 1.0 release includes API's for developers to enhance Java or non-Java applications. It also includes extensive documentation and example rule sets.

Using CommonRules, a seller website/application can communicate its business policy rules about pricing, promotions, customer service provisions for refunds and cancellation, ordering lead time, and other contractual terms & conditions, to a customer application/agent, even when the seller's rules are implemented using a different rule system (e.g., OPS5-style production rules) than the buyer's rules are implemented in (e.g., Prolog). The customer application/agent can then understand and assimilate those rules into its own business logic, and automatically execute those rules to make plans or decisions. Similarly, using CommonRules, a customer can communicate to its suppliers the customer's Requests For Quotation/Proposals, including detailed conditions and policies expressed in rules, e.g., in supply chain settings.

CommonRules also helps enable non-programmer business-domain experts, for example marketing managers, to easily modify the executable business rules incrementally at run-time. For example, on Wednesday a customer retention manager specifies a personalized pricing rule that gives loyal customers a ten percent price discount, and on Thursday a cash flow manager specifies that late-to-pay customers get no discount. These two rules conflict for customer Joe, who is loyal but late-to-pay. CommonRules detects the conflict automatically and raises an alarm. A sales manager resolves the conflict by simply adding at run-time a further rule specifying that the first rule has priority over the second. The new rule set will then automatically cover future customers like Joe, without need for any additional specification.

CommonRules is being piloted in EECOMS, a $29 Million 3-year industry consortium development effort on inter-enterprise supply chain integration for manufacturing. CommonRules is also being demonstrated internationally at several scientific conferences' peer-reviewed technical programs. The research website (http://www.research.ibm.com/rules/; contact project leader Benjamin Grosof grosof@us.ibm.com or Hoi Chan hychan@us.ibm.com) includes extensive discussion of e-commerce application areas for CommonRules' capabilities, including for contracts, negotiation, auctions, personalization and promotions, and security authorization. The research website includes published papers and detailed research reports, as well as overviews and talk slides.

More background about business rules

A major trend happening in object-oriented application development is the separation of business logic from data access and application logic: the same business logic may be used in multiple applications, and should be changeable rather than being buried and intertwined with data and application specific functions.

Rules as a way to specify business logic has the advantage of combining automatic executability with a relatively high level of human understandability, i.e., a high conceptual level and a "declarative" (rather than only procedural) semantics. The latter enables non-programmers, especially business-domain experts such as marketing managers, to specify business rules, and to modify them relatively easily and often.

CommonRules' role is to complement and enhance the functionality of the various rule-based systems and programming mechanisms already available in the market.

Technical overview of CommonRules

CommonRules provides a common "interlingua" rule representation for exchange of rules between heterogeneous rule representations employed in various rule-based applications. CommonRules defines and supports a new XML rule interchange format for rules, called Business Rules Markup Language (BRML), that corresponds to this interlingua. Rules may be exchanged as XML, directly as Java objects, or in other string formats; the rule-based applications need not be in Java. The interlingua enables two or more applications/websites/agents, that use heterogeneous rule systems/languages, to exchange rules in a fully declarative fashion, while preserving deep semantics so that received rules can be fully assimilated, i.e., understood and executed with the same semantics intended by the sender. The interlingua has a semantics based on Logic Programs (in the sense of declarative knowledge representation, not just Prolog). This semantics captures a common core shared by most commercially important rule systems, including SQL / relational database systems, Prolog and logic programming systems, production rule systems (OPS5 heritage), and event-condition-action rule systems. In particular, this semantics abstracts away from whether rule inferencing/execution is performed in a forward (data-driven) versus backward (query-driven) direction. CommonRules includes sample translators between the BRML XML interchange format and several existing rule systems. Developers (e.g., rule system vendors) can write their own such translators, relatively easily. Future versions of CommonRules plan to include more such sample translators.

CommonRules enhances this core representation with a new form of prioritized conflict handling for rules, called Courteous Logic Programs, that enables rules to be specified and maintained in a far more modular fashion, more similar to the "common sense" style in which rules are expressed in natural language. Courteous Logic Programs enforce consistency with respect to specified mutual-exclusion integrity constraints, using specified partially-ordered priorities between conflicting rules. Rule sets can then be modified far more often by simply adding rules, without the need to modify previous rules. CommonRules provides a practical breakthrough combination of expressive power, declarativeness, computational efficiency/tractability, and software modularity in prioritized conflict handling. It includes a Courteous Compiler that implements the Courteous enhancement via a pre-processor that can be added modularly to a variety of existing commercial rule systems. This Courteous Compiler transforms a Courteous Logic Program into a semantically equivalent but expressively simpler ordinary Logic Program (lacking priorities or mutual-exclusion integrity constraints) of the kind widely implemented in today's commercial rule engines/systems. CommonRules includes a sample forward-reasoning inference engine that uses the courteous compiler as a pre-processor, and thus supports the Courteous expressive enhancement. Developers (e.g., rule system vendors) can similarly use the Courteous Compiler to write their own enhanced rule engines.

Further details about CommonRules

 

For further information, please contact: Benjamin Grosof at grosof@us.ibm.com


Last update: 8-09-99
[ IBM Research home page ]

[ IBM home page | Order | Search | Contact IBM | Help | (C) | (TM) ]