Browse Prior Art Database

Generate Efficient Rule Flow with Expert Knowledge

IP.com Disclosure Number: IPCOM000181968D
Original Publication Date: 2009-Apr-21
Included in the Prior Art Database: 2009-Apr-21
Document File: 5 page(s) / 191K

Publishing Venue

IBM

Abstract

We present a method to generate efficient rule flow with expert knowledge. For rule execution, condition re-evaluations induce the main computation cost from condition evaluation. However, some known knowledge, such as non-dependency between two rules, can help to improve the execution efficiency because the re-evaluation for a specific rule is not necessary if the non-dependency between the executed rule and this specific rule is known. We define rule flow as a directed graph while rules are arranged on the nodes and the directed edges indicate the evaluation orders. First, we generate the complete graph from priority based rule execution algorithm. Then, we propose methods to automatically prune the graph with the given expert knowledge. At last, some nodes are combined to simplify the rule flow. Experiments indicate that our approach can generate an efficient rule flow which has the higher execution efficiency than the priority based rule execution algorithm.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 45% of the total text.

Page 1 of 5

Generate Efficient Rule Flow with Expert Knowledge

   Business rule engine is used by more enterprise to deal with the high flexibility requirement. Usually, a business rule engine system is composed of three parts: business rules, business instances and rule engine. Business rules define theflexible business operations, and we study production rule here which is usually represented as "if condition(C), then action(A)". Business instances (also called facts/events/transactions) are the objects to be processed, such as orders, customers, or shipments. A rule engine system will process the business instance through evaluating the conditions of rules and executing the actions if the conditions are satisfied. A specific trait of rule execution is that the execution of a rule potentially may change the condition of another rule and validate or invalidate this rule. Because we do not whether the execution of a rule will change the conditions of other rules, we may need to reevaluate the condition of other rules after the execution of a rule. Here are examples of three sale policy business rules:

Rule A: If the customer is a golden client, then the discounting rate is 20%.

Rule B: If the customer is a silver client, then the discounting rate is 10%.

   Rule C: If the customer is a silver client and the current transaction exceeds $3,000,the customer is upgraded as a golden client. For a silver customer with a transaction over $3,000, the execution of rule C will change the level ofcustomer and activate rule A.

   The reevaluation of other rules'conditions after the execution of a rule induce the main computation cost to process a business instance. There are many methods trying to reduce this reevaluation. Rete algorithm is proposed by C.L.Forgy to use state-saving and condition sharing to reduce the computation cost, and it can be used efficiently in the complicated expert system while there are many sharing parts for the conditions of rules. Priority learning based rule execution algorithm is proposed by T. Liu to reduce the statistical condition evaluation counts through re-sorting rules where a rule with higher executionand dependency frequency will be assigned a higherpriority.

   We present the method to generate efficient rule flow where expert knowledge, such as non-dependency between two rules, is applied to improve the execution efficiency because the re-evaluation for a specific rule is not necessary if thenon-dependency between the executed rule and this specific rule is known. We define rule flow as a directed graph while rules are arranged on the nodes and the directed edges indicate the evaluation orders. For each business instance, ruleengine will begin to evaluate the rule at the rootnode and along the path to evaluate the following rules until the terminal node. This graphpromises that any possible rule's executi...