Abstract:
A method and apparatus for providing a practical solution for the generic problem of consistency validation of complex business rules is disclosed. In one embodiment, the method and apparatus is implemented with software tools.

Description:
[0001]    The present application claims priority to the following provisional filed applications entitled Consistency Validation for Complex Classification Rules, filed on Aug. 16, 2001, serial no. ______; entitled Hybrid Use of Rule and Constraint Engines, filed on Jun. 25, 2001, serial no. 60/300,951; entitled Minimization of Business Rule Violations, filed on Aug. 16, serial no. ______, all of which are incorporated herein by reference. 
     
    
     
       FIELD OF THE INVENTION  
         [0002]    The present invention relates generally to the field of expert systems.  
         BACKGROUND OF THE INVENTION  
         [0003]    Modern rule-based technology provides the ideal architecture for implementing flexible, easy-to-maintain business rule applications, because such applications keep the rules separate from the application code. Business rules are statements of business policies and procedures that drive day-to-day business activity. Typically, the rules are presented in the form of “if &lt;condition&gt; then &lt;action&gt;”, thus allowing the users to describe a numerous and various business situations.  
           [0004]    However, in real-world e-business applications, such as an Insurance Rating system or a Financial Loan Origination system, business rules can rarely be presented in the form of simple “if-then” statements. In particular, typical classification rules are combinations of multiple criteria, which frequently are presented as multi-column multi-row tables.  
           [0005]    For example, the insurance driver classification rule considers all possible combinations of driver age, gender, marital status, driving experience, vehicle usage, etc. Such rules result in multi-page tables, which are difficult to create and maintain. Usually, maintenance of business rules is the responsibility of (non-technical) business specialists, and the proper software tool has to provide consistency checking of rules with a complex infrastructure, and must point users to possible inconsistencies.  
         SUMMARY OF THE INVENTION  
         [0006]    A method and apparatus for providing a practical solution for the generic problem of consistency validation of complex business rules is disclosed. In one embodiment, the method and apparatus is implemented with software tools. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0007]    [0007]FIG. 1 is a flow diagram showing a method for validating the consistency of business rules, according to one embodiment. 
     
    
     DETAILED DESCRIPTION  
       [0008]    In one embodiment, typical classification rules deal with one prime classification object (for example, Driver) and different combinations of its attributes (such as Age, Gender, Marital Status, Driving Experience, Vehicle Usage, Violation Points, etc.). Such classification rules usually state the proper object class for all possible combinations of its attributes.  
         [0009]    In one embodiment, as exemplified in FIG. 1, according to one embodiment, classification rules are represented as a constraint satisfaction problem (CSP), shown in process block  101 . One constrained variable is associated with each attribute, shown in process block  102 , and for each user-defined combination of the attributes, a constraint on these variables is defined, shown in process block  103 . Thus, in one embodiment, consistency checking deals with only three possible situations:  
         [0010]    1. Over-Lapping: The classification includes contradictory (overlapping) combinations of attribute values.  
         [0011]    2. Under-Coverage: The classification rule does not cover all possible situations.  
         [0012]    3. Consistency: The rule is consistent.  
         [0013]    For example, consider the driver classification rule represented in the following table:  
                                                           Marital   Driver   Driving   Vehicle   Violation   Driver       Gender   Status   Age   Experience   Usage   Points   Class                   Male   Single   17   0   100   0   A111               through   through               24   1       Male   Married   17   0   100   0   A112               through   through               24   1       . . .                  
 
         [0014]    To cover all possible combination of attributes, an actual table may consist of 20 or more pages. In one embodiment, several attributes could be unrelated to the values of other attributes. For example, if the number of violation points is too high, it results in a special driver class, independent of the driver&#39;s age or gender.  
         [0015]    To define a constraint satisfaction problem (CSP), in one embodiment one constrained integer variable is associated with each attribute, as seen in process block  102 , and as shown in this expression:  
         Attr( x ),  xε{ 1,  N}   
         [0016]    The number N corresponds to the number of columns in the table above. The domain of possible values has a specific size and content for each Attr(x), but without losing the generality of the definition, all values could in one embodiment be considered as integers.  
         [0017]    Now assume that there are M different combinations of all attributes defined by the user. The number M corresponds to the number of rows in the table above. If cell (x,y) defines some values for Attr(x), a Boolean constrained expression CellExp(x,y) may in one embodiment be associated with the cell. For example, for cell (1,1) the condition like “Gender is Male” could be represented in one embodiment as  
         CellExp(1,1): Attr(1)==0,  
         [0018]    where 0 corresponds “Male”.  
         [0019]    Similarly, for cell (3,2) a condition such as, for example, “Age is 17 through 24”, could be represented in one embodiment as  
         CellExp(3,2): Attr(3)&gt;=17 &amp;&amp; Attr(3)&lt;=24.  
         [0020]    Each user-defined combination of attributes (the table row number “y” in this example) could be presented in one embodiment as a Boolean constrained expression  
         RowExp( y )=α x CellExp( x,y ),  
         [0021]    where α is a logical “and” of all y Boolean expressions CellExp(x,y). And, finally, an integer-constrained variable may be defined, as seen in process block  103 , in one embodiment as  
         AllRows=Σ y RowExp( x,y ),  
         [0022]    To validate the consistency of the classification rule in one embodiment, the following CSP(s) could be solved:  
         [0023]    Under-Coverage Validation: In one embodiment, with the constraint defined “AllRows==0”, an attempt is made to instantiate all Attr(x). If the CSP has a solution, it means that there is a combination of attributes for which all RowExp(y) are false. In the example given in this embodiment, it means a driver exists who cannot be classified by any defined row of attributes, and the classification rule is inconsistent (due to under-coverage). This evaluation is shown in process blocks  104  and  106  of FIG. 1.  
         [0024]    Over-Lapping Validation: In one embodiment, with the constraint defined “AllRows&gt;1”, an attempt is made to instantiate all Attr(x). If the CSP has a solution, it means that more than one row conditions are true. In the example given in this embodiment, it means a driver exists who could be classified by more than one row of attributes, and the classification rule is inconsistent (due to over-lapping). This evaluation is shown in process blocks  104  and  106  of FIG. 1.  
         [0025]    The classification rule is consistent, as shown in process block  105  according to one embodiment, when the CSP has no solutions, as shown in process block  104 , under the constraint “AllRows!=1”.  
         [0026]    The proposed solution in one embodiment goes beyond the simple “consistent” or “not consistent” diagnosis, and allows to proper program to tell the user why and where the inconsistency occurs. In cases of under-coverage, the found solution points exactly to the combination of attributes not covered by the current classification rule, shown as process block  107 . In cases of over-lapping, all rows with  
         RowExp(y)=true are over-lapping.  
         [0027]    And finally, the same technique could be used in one embodiment for interactive creation (configuration) of the classification rules. Instead of only pointing to the inconsistency, interactive tools could automatically generate “under-covered” rows and not to allow the user to enter over-lapping rows, shown as process block  108 , or warn the user that he creates an overlap, and force him to correct it.  
         [0028]    The described approach has been implemented in one embodiment for Auto Insurance Rating rules using Exigen Rules™ and Exigen Constrainer™.  
         [0029]    It will be clear to the person skilled in the art, that besides insurances, other applications of the described embodiments exist, such as, including but not limited to, financial services in general, governmental agencies, resource planning situations in transport and distribution, etc.  
         [0030]    The processes and embodiments as described above can be stored on a machine-readable medium as instructions. The machine-readable medium includes any mechanism that provides (i.e., stores and/or transmits) information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.). The device or machine-readable medium may include a solid state memory device and/or a rotating magnetic or optical disk. The device or machine-readable medium may be distributed when partitions of instructions have been separated into different machines, such as across an interconnection of computers.  
         [0031]    While certain exemplary embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative of and not restrictive on the broad invention, and that this invention not be limited to the specific constructions and arrangements shown and described, since various other modifications may occur to those ordinarily skilled in the art.