EP1512085A1 - Rule processing system and method - Google Patents

Rule processing system and method

Info

Publication number
EP1512085A1
EP1512085A1 EP03716683A EP03716683A EP1512085A1 EP 1512085 A1 EP1512085 A1 EP 1512085A1 EP 03716683 A EP03716683 A EP 03716683A EP 03716683 A EP03716683 A EP 03716683A EP 1512085 A1 EP1512085 A1 EP 1512085A1
Authority
EP
European Patent Office
Prior art keywords
rule
rale
binary decision
representation
components
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP03716683A
Other languages
German (de)
French (fr)
Other versions
EP1512085A4 (en
Inventor
David L. Huelsman
Sharon E. Love
Douglas M. Mair
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mineral Lassen LLC
Original Assignee
ResolutionEBS Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ResolutionEBS Inc filed Critical ResolutionEBS Inc
Publication of EP1512085A1 publication Critical patent/EP1512085A1/en
Publication of EP1512085A4 publication Critical patent/EP1512085A4/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition

Definitions

  • This invention relates to rule processing, but more specifically, to an apparatus that captures and/or that executes a set of rules to automatically provide a decision or advice relative to that decision.
  • Decision automation provides a decision, tests a condition of satisfiability, and/or confirms compliance relative to a set of rules or conditions ⁇ whether those rules or conditions involve conduct of a business or operation of a system or process.
  • Decision automation applies to an activity (business or non-business) requiring the application of rules or criteria to obtain a result, and includes decision support, workflow management, process automation, and multidimensional data analysis.
  • a rules is characterized as a relationship between or among parameters and/or attributes, as well as a relationship between or among rules themselves.
  • a single-dimensional rule usually expresses a single relationship, condition, or requirement.
  • a multi-dimensional rule embraces many single-dimensional rules or rule components and is satisfied, valid, or complied with when all components thereof are simultaneously valid, satisfied, or complied with for a given set of input parameters. Decision automation is useful to implement complex or multidimensional rules having too many interrelated parameters, attributes, or rule components for convenient or ready human implementation.
  • satisfiability of a rule may be determined using propositional logic by solving the model or function/fm, ⁇ of m lnulti- valued inputs and n outputs expressed in canonical form.
  • Decision automation can be applied to deterministic problems directed to product configuration or provisioning, process or system control, certain forms of traffic routing, financial management, building or facilities management, needs analysis, manufacturing, order processing, service provisioning, decision support, product verification, product or service compliance, and other areas where decisions may be made using propositional logic.
  • a specific application of decision automation is providing sales guidance or choice narrowing when dealing with complex or interrelated products and services, such as cross-selling or up-selling, having a combinatorial exploded number of features, attributes, properties, and/or interrelationships that is too demanding (e.g., too numerous or complex) for manual or mental assessment.
  • Software installation wizards also use rule processing or decision automation to automatically determine which .among many software components to install in a computing system according to user desirability and/or hardware parameters. Such installation rules are determined a priori by a subject matter expert to alleviate this burden on a less-experienced end- user.
  • decision automaton lies in an area where expert or knowledge- based systems guide a user to select among interrelated variables or parameters having complex interrelationships.
  • decision automation might be applied to emergency management of a large facility having a combinatorial exploded number determinations in view of a life-threatening situation (e.g., fire, flooding, environmental hazard, life support monitors, etc.).
  • Artificial intelligence also employs decision automation to draw inferences from basic parameters, relations, or facts, but stores rules as syntactical programming code.
  • finite state machines Short of decision automation, but simply to determine satisfaction of a set of design requirements, modeling has been proposed to test functionality of definition systems as finite state machines, e.g., formal verification or model checking of computerized hardware, commercial software, and embedded software systems for chipsets, hard drives, modems, cell phones, consumer appliances, and the like. While some degree of success has been met with hardware and embedded software, model checking for formal verification of commercial software presents many challenges due to an intractably large number of finite states.
  • a computer processor systematically and methodically sequenced through branches of the tree under a given set of input parameters.
  • the branches in the decision tree grew exponentially.
  • the processing time required to sequence through all possible scenarios grew proportionally to the number of branches (exponentially), sometimes to a point exceeding acceptable processing time of the processor. Nery often, computation for all input scenarios, regardless of their relevance, had to be computed to the end for all possible input parameters before a determination was ultimately made.
  • the output of prior decision automation systems is usually limited to providing an indication of compliance, satisfiability, or acceptance under a given set of input parameters that defined a multidimensional rule. No "advice" is provided when the result proves noncompliant.
  • a need for conflict or selection advice or for other reasons; it is desirable to provide an indication of which component(s) of a multidimensional rule invoked a conflict and what parameters, if any, could be changed to render all components of the rule simultaneously compliant or satisfied.
  • Prior systems failed to provide such advice for a large-scale system, e.g., a system having more than 2000 or 3000 variables.
  • a system disclosed in WIPO Publication No. WO 99/48031 by Moller, et al. addresses at least some of the aforementioned problems by providing a database that maps possible outcomes of a propositional logic rule in accordance with given input scenarios.
  • This reduced execution times typically required of microprocessors to implement algorithmic rule processing, hi addition to its mode of capturing and manipulating rules, one limitation of the Moeller et al. system is lack of flexibility to determine "what if scenarios, i.e., selection or conflict advice.
  • Case tools are also known in the art to provide automatic translation of business rules into programmatic code, but use of case tools still require code-writing for rule maintenance, which makes it difficult to implement in usual and customary business environments. For example, subject matter experts and data entry personnel could not easily implement them in their business.
  • the present invention is also useful to provide a result when encountering a combinatorial exploded number of permutations of interrelated rules or outcomes.
  • the present invention also aims to use propositional logic to express rules as data in a way to provide rule capture, rule manipulation, and extremely fast processing of a complex, multidimensional rule.
  • a system that provides rule processing includes (i) a rule entry system to define/enter attributes, enumerations, and/or relationships thereof representative of an overall rule to be automated (herein also called “maintenance”); (ii) a rule packaging system to produce a representation of the rule in a form suitable for propositional logic manipulation, e.g., preferably reducing a representation of the rule to a reduced canonical form suitable for manipulation as a zero-suppressed binary decision diagram (Zdd); and/or (iii) an execution engine that executes the packaged rule by applying a series of user inputs to the representation, e.g., the prime Zdd, to determine a result that may also include conflict and selection advice to guide the user to achieve rule compliancy or satisfaction.
  • a rule entry system to define/enter attributes, enumerations, and/or relationships thereof representative of an overall rule to be automated
  • a rule packaging system to produce a representation of the rule in a form suitable for propositional logic manipulation, e
  • Elective events such as the display of messages or the performance of calculations, may optionally be packaged along with the prime rule or components thereof and presented during execution to help guide the user when choosing among possible selections.
  • the invention enables determination of a complex rule having a combinatorial exploded number of rule components, or a combinatorial exploded number of possible outcomes, exceeding computational capacity of present day computing systems.
  • Fig. IA depicts a preferred rule entry/definition system according to an aspect of the present invention.
  • Fig. IB depicts a preferred rule packaging system according to another aspect of the invention.
  • Fig. IC shows a rule execution system according to one aspect of the present invention that executes a packaged rule produced by the rule packaging system of Fig. IB.
  • Fig. ID shows a rule execution system according to another aspect of the present invention that also executes a packaged rule produced by the rule packaging system of Fig. IB.
  • Fig. IE illustrates a method implemented by the rule entry system of Fig. 1 A during rule entry/definition (i.e., maintenance), which is preferably performed by a subject matter expert or data entry personnel.
  • Fig. IF shows an exemplary method implemented by the rule packaging system of Fig.
  • Fig. IG conceptually illustrates an exemplary procedure implemented by the rule execution systems of Fig. IC or ID for executing the packaged rules developed by the rule packaging system of Fig. IB.
  • Figs. 2A through 2D show a series relational or rule diagrams representing respective components of an exemplary prime rule described in the present disclosure.
  • Fig. 3 illustrates a method of assigning an elective event, e.g., a calculation, to a result generated by end-user input selections.
  • Fig. 4 illustrates a method of assigning another elective event, e.g., a message, to a result generated by end-user input selections.
  • Fig. 5 illustrates how the exemplary rule components defined in Figs. 2 A through 2D are reduced to canonical polynomial storage where respective records thereof are uniquely addressed according to ordering of rule parameters.
  • Fig. 6 illustrates assignment of elective events to associated records, e.g., rule components, of the canonical polynomial generated according to the procedure shown in Fig. 5.
  • Fig. 7 illustrates building an "include” Zdd rule to characterize “include” rules illustrated in the rule diagrams of Figs. 2B and 2C.
  • Fig. 8 further illustrates building an "include” Zdd rule to characterize “include” rules illustrated in the rule diagrams of Figs. 2B and 2C.
  • Fig. 9 illustrates building an "exclude” Zdd rule to characterize "exclude” rules illustrated in the rule diagrams of Figs. 2A and 2D.
  • Fig. 10 illustrates building attribute relations Zdd according to rule components defined in Figs. 2A through 2D.
  • Fig. 11 illustrates building the elective events Zdd according to the events assigned to rule outcomes, such as the events assigned by the illustration shown in Figs. 3 and 4.
  • Fig. 12 illustrates a preferred procedure for executing or automating a prime rule to produce a result, preferably including conflict and selection advice, based on a set of end user inputs.
  • Fig. 13 shows one possible user interface for displaying user selections and results.
  • Fig. 14 illustrates building a MSTFG Zdd that is used during execution to produce conflict and/or selection advice in accordance with an aspect of the present invention.
  • Fig. 15 illustrates a procedure for producing "include” advice during execution according to one aspect of the present invention.
  • Fig. 16 illustrates a procedure for producing "exclude” advice during execution according to one aspect of the present invention.
  • Fig. 17 illustrates an additional step to combine the results of the "include” and “exclude” advice that is generated for the illustrated example.
  • Fig. 18 illustrates a procedure for producing an Elective Events Results Zdd, which is preferably used during execution to invoke a display of a particular message or the performance of a given calculation in response to a condition or result developed by end-user inputs.
  • Fig. 19 shows how results of a prime Zdd and elective events Zdd are interpreted according to an aspect of the present invention.
  • Fig. 20 shows one possible format for storing Zdd information in a memory.
  • Fig. 1 A shows a rale entry system 1 that enables a subject matter expert or data entry personnel to capture rules where data entry personnel or an expert user 10 preferably interacts with a GUI module 13 of terminal 12 using a keyboard and mouse to define attributes, enumerations or properties of those attributes, and relationships between and among such attributes, enumerations, and properties.
  • the rule entry system includes a processor that preferably implements a procedure described in connection with Fig. IE.
  • the processor preferably executes a relational diagram construction module 15 that aids user 10 in generating relational diagrams representing the rule to be processed.
  • Elective events module 16 permits the user 10 to assign certain elective events to be triggered upon occurrence of certain conditions occurring in response to end-user inputs during execution (subsequently described) while canonical polynomial reduction module 17 reduces the entered rules a data in a compact form suitable for network transmission when used during execution or rale development.
  • the reduced canonical polynomial representing the rule is then stored in a database 18, such as a hard drive, optical medium, or other storage device.
  • Fig. IB depicts a rule packaging system 2 that accesses database 18 created during rule entry.
  • the packaging system 19 translates rale representations to a preferred form of rale manipulation according to a preferred embodiment of the invention, i.e., zero-suppressed binary decision diagrams ("Zdd").
  • Zdd binary decision diagrams
  • Other rale representations may be deployed in accordance with the teachings herein to enable automated rule processing.
  • Packaging system 19 uses a processor 24 to implement a Zdd construction module 20 that retrieves database records from database 18 and converts them to a Zdd representing rule components.
  • Zdd construction module 20 produces an "include” Zdd, an "exclude” Zdd, and an attribute relations (AttrRels) Zdd.
  • Module 20 may also produce Elective Events Zdds in accordance with assignment of messages and/or calculations to certain conditions or outcomes.
  • Zdd post-processing module 21 reorders nodes of the Zdd to reduce their structure or paths.
  • Prime Zdd construction module 22 combines the series of Zdds created by the modules 20 and 21 to produce a representation of the overall or prime rule to be automated. Once created, the prime Zdd is persisted to memory in database 23.
  • Fig. IC shows one form of an execution system 3 that receives via terminal 27 inputs 26 from end user 11.
  • End user input selections 26 comprise a choice of rale parameters supplied by database 23 generated during packaging by the rule packaging system of Fig. IB.
  • a processor 28 applies the input parameters 26, which may include user-selected attributes, properties, enumerations, etc. against a prime Zdd obtained from database 23 to produce a result, i.e., an indication of rale satisfaction, and optionally, conflict and selection advice, to help guide end user 11 in choosing input parameters to achieve rale satisfaction.
  • Processor 28 preferably comprises an inputs Zdd construction module 30 that produces Zdds from the user inputs 26 that the execution module 31 uses to "traverse" the prime Zdd.
  • Advice module 32 uses the results of the execution module 31 to generate and communicate conflict and selection advice to end user 11 via a feedback path 25.
  • Fig. ID shows a similar execution system 4 where the prime Zdd of database 23 under control of network server 29 is downloaded over network 19, e.g., an Internet, via terminal 27.
  • network server 29 e.g., an Internet
  • Fig. IE shows a rule entry or maintenance procedure implemented by the rule entry system 1 depicted in Fig. IA.
  • System 1 comprises software routines that enable a subject matter expert to perform procedure 33 of identifying and defining applicable rules expressed in propositional logic. Rules generally include attributes or properties, enumerations or values of such attributes and properties, as well as relationships between and among those attributes and properties. Variables characterizing rules are generally referred to as rule parameters. Further routines included in system 1 implement a procedure 34 to create multiple sets of relational diagrams, e.g., smaller or single-dimensional rales, to express rule components in propositional logic fonn, e.g., a conjunctive or disjunctive normal form.
  • a complex or prime rule to be automated includes multiple rale components. Smaller rules or rule components are factored from a larger, complex multi-dimensional rule in a sum-of-products (i.e., include rule) form or a product of sum-of-products (i.e., exclude rale) form. Smaller rales set out in propositional logic are better suited for complex rule construction since they are more easily defined and manipulated.
  • the rule entry system 1 advantageously allows the subject matter expert to interact with the relationships via a multi-dimensional grid or relational diagram, similar to an OLAP display or pivot table, during initial entry or subsequent editing of the rales.
  • Rule maintenance includes, for each rule or rule component (e.g., polynomial factor), designating logically asserted ("include”) or non- asserted ("exclude”) relationships between user-defined attributes or enumerations thereof at appropriate locations of a two-dimensional or multidimensional relational grid, table, or matrix representing each rule component.
  • the preferred method also includes ordering, grouping, and indexing components of the overall rule and converting a representation thereof to a reduced canonical polynomial for storage in a memory.
  • currency of the rales can be maintained by repeating the rule entry process when known relationships or parameters thereof change.
  • messages, calculations, or other elective events are associated with various conditions or outcomes of rule processing.
  • the system 1 also performs procedure 35 that associates elective events with various logic conditions so that messages may be communicated to an end-user or calculations may be performed for the end-user to assist in automated rule processing.
  • Rule definitions may further include the identity of relationships between logic outcomes of one or more rule components, on one hand, and the invocation of messages or calculations, on the other hand.
  • Procedure 36 of rule entry system 1 orders components or elements of a model logic function representative of the overall complex rule and translates them to a reduced canonical form.
  • the system 1 implements procedure 37 that stores a condensed canonical polynomial representation of the overall rale in respective database records of a master table or database.
  • Attributes of an exemplary rale model e.g., a complex multidimensional rule, described for purposes of this disclosure include a complex rule based on material, pressure, pH and thickness, which are set forth in the following Attribute Table.
  • Neoprene cannot be used at High Pressure
  • Thickness must be greater than 25mm for High pressure
  • Rubber must not be less than 25mm when used in Acid above Low pressure
  • Neoprene uses CalcN if valid Silicone uses CalcS if valid Rubber uses CalcR if valid High Pressure uses CalcH if valid
  • the subject matter expert developed the following exemplary messages that may be communicated to an end user when the following conditions occur:
  • Neoprene uses MessN if invalid Silicone uses MessS if invalid Rubber uses MessR if invalid
  • Fig. IF illustrates procedures implemented by rule packaging 2 of Fig. IB according to an aspect of the invention.
  • Packaging includes accessing memory to obtain rale components; converting the rule components to a special form, e.g., zero-suppressed binary decision diagrams (Zdds), suitable for manipulation; combining representations of the respective rale components to form a representation of an overall rule to be automated; and optionally, reordering the overall rule Zdds to simplify or reduce the size thereof. Reordering improves the capability of handling large-scale, complex rules having multiple dimensions.
  • Zdds binary decision diagrams
  • Rule packaging system 2 preferably includes software routines to perform procedures 38 and 39 that effects accessing database records of the reduced canonical polynomial representing the rule components and proceeds by constructing zero-suppressed binary decision diagrams (Zdds) for the respective rale components of the database records.
  • Binary decision diagrams are a form of logic propositional expression that has been recently developed in the art.
  • zero-suppressed binary decision diagrams have been found particularly useful for rule representation and manipulation because they inherently characterize real-life scenarios for business and engineering applications having various "don't care" conditions or scenarios relative to many combinations of attributes, enumerations, properties, or relationships thereof.
  • Procedure 39 in essence, generates a series of factors of the canonical polynomial that may be separately executed to produce a result for a given rule component or sub-part of the overall prime rule. Those factors, or rule components, are broken down into "include” rules, "exclude” rales, attribute relations, and elective events.
  • Zdds are created for each of these components.
  • Other components, as well, may be included in the rule definition.
  • rule packaging 2 may perform post-processing operations 40 to facilitate subsequent execution of the prime rale.
  • any of the Zdds are overly large or complex, they may be re-ordered to reduce the number of nodes or paths. This step further increases the ability to handle very large scale, complex rales.
  • rule packaging system 2 implements a procedure 41 to form a prime Zdd by logically combining an include Zdd, an exclude Zdd, an AttrRels Zdd, and an Elective Events Zdd.
  • the prime Zdd which is stored in a memory at procedure 42, represents the overall or prime rale to be process.
  • the prime Zdd produces a result, as well as messages and calculations.
  • the overall or prime Zdd may be defined to include all or a portion of the component Zdds, depending on the design of the system or method.
  • the prime Zdd need not have “exclude” components.
  • the prime or overall Zdd represents the business or engineering rule to be process. In response to user inputs, the prime Zdd will produce a result, and optionally, messages and calculations.
  • Execution preferably comprises applying end-user inputs against pre-packaged Zdds representative of the overall rule in order to produce a result, i.e., an indication of satisfiability or compliancy, as well as selection and conflict advice in response to a failure of satisfiability or compliancy.
  • the result, selection advice or conflict advice may be accompanied by a display of messages or the performance of a calculation, logic or otherwise, and communicated to the end user.
  • Fig. IG conceptually shows in sequential algorithmic form an exemplary procedure for a prime rule execution system 3 that retrieves, at procedure 43, the prime Zdd from database memory 23 (Fig. IC). Retrieval may also occur by downloading via the Internet.
  • the execution system 3 includes routines that implement a procedure 44 to obtain user inputs via a user interface 27 (Fig. IC) that prompts a user to supply input selections or choices of rule parameters. Input selections may also be obtained from software components or other computing systems.
  • user inputs may include attributes and/or enumerations of material, pH, thickness, and pressure.
  • the execution system 3 also has routines that implement testing 45 of input parameters against the prime Zdd to produce a result in the nature of "yes,” which means the combination of user inputs is valid or satisfied; or "no,” which means the combination of user input parameters is invalid or unsatisfied. If valid, the procedure performed by the execution system 3 proceeds to step 46 to advise the end user 11 (Fig. IC) of satisfaction, messages, and/or the results of calculations (e.g., a price computation). If the result is invalid, the execution system 3 performs procedures 47, 48, and 49 to generate a series of traversal Zdds, to apply the Zdds against the prime Zdd, and to produce advice for user 11 (Fig. IC), respectively.
  • the algorithm actually implemented produces an indication of validity, conflict advice, and selection advice in a single pass. These procedures are subsequently explained.
  • the advice provided may include conflict advice, selection advice, messages, or even further calculations.
  • the advice is communicated to the end user, typically via a user interface of a computer monitor to enable input of revised parameters at step 32, whereupon the process is repeated.
  • Figs. 2A through 2D depict graphical representations of rule components in single and multidimensional grids setting forth the above-specified rale model, which is satisfied when each of the rule components is also satisfied.
  • rule components of the overall rule model may be expressed in an include form, designated "I,” or in an exclude form, designated "X,” based on the type or nature of information to be entered in the rule component. Since rules are expressed in propositional logic, they may be restated in either form.
  • An "I” or "X" in the upper left-hand corner 51, 52, 53, and 54 of the rule diagrams of Figs. 2A through 2D shows the default setting of blank or non-specified locations in the grids of the rule component diagrams.
  • Figs. 2A and 2D show exclude rale components whereas Figs. 2B and 2C show include rale components.
  • a subject matter expert develops a series of relationship diagrams characterizing the rale to be automated by specifying the appropriate labels, e.g., attributes or names, to be included in the legends. In effect, attribute relationships are also defined during this process.
  • these diagrams may be displayed on a computer monitor while data entry personnel or experts use a "point and click" input device to define rule components in the grids by clicking the appropriate locations of the grids. Placing an exclude "X" term 51a in the exclude rule component diagram of Fig. 2A, for example, effects a recordation of the rule that Neoprene cannot be used at high pressure.
  • Fig. 2B placing include terms "I" at the illustrated locations of Fig. 2B effects recordation of the rale that only silicone can be used in basic environments while the include terms of Fig. 2C effect recordation of the rule a thickness greater than 25 mm must be used for high-pressure applications.
  • the more complex rule diagram of Fig. 2D provides that rubber must not be less than 25 mm when used in acid above low pressure.
  • rales are advantageously captured according to this aspect of the invention without a need for prograniming skills and no syntactic programming code is required during rule definition.
  • Each rule represented in Figs. 2A through 2D is set forth in a way to indicate validity or satisfaction of the rule component expressed therein.
  • the exclude rale component of diagram 51 is satisfied or valid when neoprene is not used with high pressure.
  • the entries in the diagrams may also include an indication of or have an association with elective events, such as the conditions upon which predefined messages are displayed to an end user or calculations are performed to produce a result for the end user.
  • Fig. 3 illustrates a user interface window displayed on a monitor to effect assignment of elective events to various conditions of validity (or invalidity) relative to the material attribute.
  • a subject matter expert uses a point-and-click device to place checkmark 56 in thumbs down column 57 to invoke message MessN when neoprene is valid, i.e., when neoprene is included in or selected for a product configuration. This will invoke the display or communication of MessN to end user 11 (Fig. IC or ID) when neoprene is selected in his or her input selections and the overall model is invalid.
  • Checkmark 58 in thumbs up column 59 invokes the performance of calculation CalcP when both neoprene is valid in the selected product combination and the overall rale is valid or satisfied. Checking the thumbs up and thumbs down column respectively determine whether the associated elective event will be invoked during valid and invalid conditions, respectively, of the overall or prime rule model in response to the end-user input selections. Similarly, Fig. 4 illustrates an assignment of the performance of a calculation CalcH whenever pressure is high during conditions of validity of the overall rule, as shown by the checkmark 61 in thumbs up column 60.
  • Fig. 5 shows storage of the foregoing rule components in records 72a through 72o of a database 72 that represents the relationship information.
  • Table 70 represents canonical polynomial storage of rales expressed in diagrams 62, 64, 66, and 68 in an ordered fashioned. The include and exclude relationships are specified in each diagram 62, 64, 66, and 68 so that the condition to be met therein renders the overall rule, i.e. prime rale, valid.
  • the overall rule is a combination of all rale components reflected in diagrams 62, 64, 66, and 68, and is satisfied when all rale components reflected in the rule diagrams are satisfied.
  • the signature in database table 72 associated with the term 63 for the neoprene-pressure rule of diagram 62 is "1100," which signifies the presence of a valid relationship (e.g., include or exclude) between neoprene "1" and high pressure "1” and a "don't care” relationship for pH "0" and thickness "0.”
  • the input address associated term 63 of the neoprene rule diagram 62 becomes “3300,” which signifies relative ordering of the enumerations of the neoprene "3" and pressure "3" attributes and “don't care” for pH “0" and thickness "0.”
  • the assignment of "zero" in the validity column of the neoprene rule 62 indicates an exclude rale assignment.
  • the signature, input address, and validity assignments are provided for each asserted term of the rule components expressed in diagrams 64, 66, and 68 thereby to define in reduced canonical form in table 72 a prime rule embracing multiple rule components.
  • Rule components expressed in the form of component diagrams 62, 64, 66, and 68 may be converted to database table 72 using conventional programming techniques.
  • the system accesses records 72a through 72o to create and manipulate Zdds representing the respective components of the prime rale to be automated.
  • Figs. 6A, 6B, and 6C illustrate the step of defining and storing in reduced form certain elective information, e.g., the association of messages and calculations with certain conditions of satisfiability or unsatisfiability.
  • User interface windows of Fig. 6A and 6B correspond to Figs. 3 and 4, respectively.
  • elective information defined in windows 65 and 67 is generated and stored in corresponding records of an expanded table representation 69, as illustrated by records 69a, 69b, 69c, and 69d of table 69 to produce a condensed representation thereof.
  • entries in database table 69 omit "zeros" and is replaced with ellipses so that relevant information stands out.
  • condensed elective event information of table 69 may be combined with table 72 or stored with associated records of table 72.
  • Packaging transforms rules which includes all rale components of interest, to an executable form.
  • Zdds for rale processing because this form of rale representation accounts for the many "don't care" scenarios that customarily occur in many combinatorial exploded business and engineering systems.
  • the nature, character, and manipulation of Zdds and similar diagrammatic propositional logic rale representations are described in "Zero-Suppressed BDDs for Set Manipulation in Combinatorial Problems," S. Minato, Proc. 30 th ACM/IEEE DAC, pp. 272-277, June 1993.
  • a prime Zdd, an elective Zdd, XML data, and supporting web documents are preferably created during rale packaging.
  • the prime Zdd represents the overall, complex, or prime rule having multiple rule components.
  • the elective Zdd represents elective events to be invoked when certain conditions occur.
  • XML data and supporting web document assist in generating and presenting the various user interfaces locally or remotely via a network
  • a zdd (or z-bdd, or zero-suppressed bdd) is an OBDD (Ordered Binary Decision Diagram) that is further reduced by eliminating all nodes whose high legs go to zero.
  • Ordered Binary Decision Diagrams are a special type of Directed Acyclic Graph (DAG). Zdds are especially efficient at manipulating sets of minterms, i.e., terms represented by selections in rule component diagrams 62, 64, 66, and 68. Nodes of a zdd can be reordered to further reduce the size of the diagram. In addition, reordering helps avoid traversing the same node more than once in order to reduce execution time when zdds are extremely large.
  • DAG Directed Acyclic Graph
  • Zdds may be constructed using logical operations between two or more Zdds, which return a result Zdd.
  • Zdds may also be synthesized by directly linking chains of nodes to represent a result of many separate logical operations. Construction can be scaled up to handle very complex rales. Synthesis, however, can be much faster than construction when rale constraction involves a large number of highly repetitive operations.
  • the synthetic method described in the appended pseudocode of creating a zdd starts at the largest index in the Index Table (set forth below), which also happens to be at the bottom of the zdd, and works its way up the zdd.
  • the synthetic method uses a zdd "one" function and synthetically AND'ing in each term in a minterm to create a zdd representing a rale component. As it goes up the zdd it applies the specific synthetic operation to that node. Using this method, it is easy to build a chain of AND operations in one pass, whereas using the logic construction method requires passing each member of the AND chain. Each pass, of course, takes greater than linear time to process. As later described in this disclosure, a "Selection Term For Group" is created in a synthetic fashion.
  • the zdds preferably have an order with "missing" node locations where the level of a node present in the zdd corresponds to its index position. Empty levels having no nodes represent suppressed "zeros" or "don't cares.” This ordering, however, is not required.
  • Enumerations of an attribute are mutually exclusive (i.e., a particular pH cannot be both acidic and basic). Groups, therefore, specify the exclusive relationship between terms.
  • the concept of grouping is used throughout construction and execution to enforce exclusivity between group members.
  • Group types are either elective or prime, and are used when building a selection term for the elective zdd.
  • Prime groups correspond to attributes.
  • Standard functions include AND (intersect) and OR (union).
  • An AND function is used between two sets of zdd nodes to find the nodes or paths in common between the groups.
  • An OR function is used to find a total set of zdd nodes and paths between two zdd groups. Since zdds contain sets of minterms, the union/intersection nomenclature to refer to zdd functional operations is more appropriate.
  • An overall rale model comprises at least a prime zdd and an elective zdd.
  • the prime zdd is packaged from respective sets of include rules and exclude rales, i.e., rule diagrams 62, 64, 66, and 68 (Fig. 5) created by a subject matter expert.
  • the prime rale model preferably includes a collection of three zdds including an include zdd, an exclude zdd, and optionally, an attribute relationships zdd.
  • Include zdds contain rules with combinations that go together (i.e., combinations that are valid) but are not effective for containing rales with combinations that do not go together (i.e., combinations that are invalid).
  • rales may be re-stated either as an include rule or an exclude rule in a way to minimize the number of nodes in a corresponding zdd representing the rale. Storing invalid combinations, e.g., the three invalid combinations, requires OR'ing the exclude rales together, rather than AND'ing.
  • the structure of the exclude zdd is changed to suppress or eliminate the "don't care” nodes representing "don't care” scenarios in business or engineering applications to advantageously achieve a reduced size with no loss of information.
  • the include zdd and exclude zdds are constructed differently and, during execution, each of them is separately traversed without regard to the other. This, according to another important aspect of the invention, permits separate creation, manipulating, and re-ordering to further simplify very complex rales that would otherwise have a large number of nodes.
  • Zdds After creating the Zdds, they are persisted to permanent storage to be subsequently retrieved during execution. Zdds are preferably persisted using a format that includes header information, variable ordering information, and node information, as depicted in Fig. 20.
  • Fig. 7 illustrates how a preferred system or method builds an exemplary include zdd for the exemplary material-pH and pressure-thickness rales (rule diagrams 64 and 66 (Fig. 5)).
  • the include zdd preferably embodies all include rule components and related information and is created by AND'ing the include rale components.
  • Each include rule component is created by OR'ing the minterms specified in the rule components (i.e., entries of rale diagrams 64 and 66 of Fig. 5).
  • the individual minterms are created using a zdd "one" function and synthetically AND'ing in each term of the minterms. All terms that belong to groups specified for this rule start out at zero. This has the effect of assigning all terms not specified in groups to "don't care" and all other non-specified terms to "zero.”
  • the relevant attributes define the rale being built. Other attributes are seen as “don't care” (DC) with respect to the relevant rale. Explicitly building (referencing) the "don't cares" is not necessary for the include zdd due to inclusion of an attribute relationship zdd in the prime rale.
  • the attribute relationship zdd defines how the attributes are interrelated. Unrelated attributes can then be processed as "don't cares" during execution.
  • the level or position of nodes 81, 82, 84, and 85 of the zdds correspond to the aforementioned index in the index table.
  • the pressure-thickness rale has eight minterms (eight entries in rule diagram 66 (Fig.
  • Minterm 80 designated as ⁇ 3,8 ⁇ , signifies a valid condition for the combination of low pressure and a thickness of 0-25 mm.
  • a zdd comprising nodes 81 and 82, along with result 83a and 83b, represents the zdd for minterm 80.
  • minterm 86 representing the relationship ⁇ 3,9 ⁇ signifies a valid condition for the combination of low pressure and a thickness of 25-50 mm. Its zdd is constracted in the same or a similar fashion from nodes 84 and 85, along with results 87a and 87b. Since the combination is valid, node 85 has a solid line to "one" box of 87a.
  • the entire pressure- thickness rale has eight minterms ⁇ 3,8 ⁇ , ⁇ 3, 9 ⁇ , ⁇ 3, 10 ⁇ , ⁇ 4,8 ⁇ , ⁇ 4,9 ⁇ , ⁇ 4,10 ⁇ , ⁇ 5,9 ⁇ , and ⁇ 5,10 ⁇ , which represent the eight entries in the rale diagram 66 of Fig. 5.
  • Zdds for each of the eight minterms are similarly created. OR'ing all eight zdds using conventional manipulation techniques yields a zdd for pressure/thickness rale result 88 comprising a zdd node structure 89 that logically represents the entire pressure-thickness rale.
  • Fig. 8 shows AND'ing the "include” material-pH rule component 64a and the "include” pressure-thickness rule component 66a that are correspondingly depicted in rule diagrams 64 and 66 (Fig. 5) in order to form an overall include rule 90.
  • the overall include model 90 has a more complex arrangement of nodes.
  • the model's overall include zdd grew quite quickly. According to an aspect of the invention, this zdd may be reordered to reduce the number of nodes. For example, zdd 90 can be reordered in a way that would shrink it from eighteen to eleven nodes. After reordering and persisting to memory, it is ready to be used during execution, which is subsequently described.
  • Fig. 9 illustrates building exclude zdds indicative of propositional logic rules represented by rule components of rule diagrams 62 and 68 (Fig. 5).
  • the exclude zdd embodies information from the exclude rules and their structure differs from the include zdds.
  • exclude rales are built by OR'ing minterms, including the single term of pressure/material rule and the two minterms of the material/pressure/pH/thickness rule.
  • initial data about the definition of each rale to develop its corresponding zdd structure is obtained from database table 72.
  • a first "exclude” rule, relation, or minterm 93 of material/pressure rule component (diagram 62 (Fig. 5)) provides that neoprene cannot go with high pressure, which is designated ⁇ 2,5 ⁇ according to entries in the index table.
  • a second "exclude” rule has two minterms 94 and 95 derived from the Index Table as ⁇ 0,5,6,8 ⁇ and ⁇ 0,4,6,8 ⁇ , and which is satisfied, for the exemplary prime rule, on the condition that rubber must not be less than 25 mm when use above low pressure. Starting with a "one" zdd and then AND'ing each term in the minterm creates the individual minterms 93, 94, and 95.
  • a result zdd 96 is formed from a union, e.g., OR'ing, of zdd representing "exclude” minterms 93, 94, and 95.
  • OR'ing a union, e.g., OR'ing, of zdd representing "exclude” minterms 93, 94, and 95.
  • forming the "exclude” zdds comprises a more direct one-step process, instead of the two-step process required for the include result.
  • Forming the "include” zdd involves OR'ing the minterms for each of the respective rule components, and then AND'ing the result of the OR'ing operation for each rale component.
  • the AttrRels zdd 100 is used during execution to control the constraction of a Make Selection Term for Group (MSTFG) zdd used for the "include” and “exclude” advice.
  • MSTFG Make Selection Term for Group
  • one advantage of the invention deals with providing selection and conflict advice for the terms or parameters of interest selected by an end user. That advice is provided in the form of "include” and “exclude” advice, that is, to provide identities of terms, parameters, enumerations, etc. that should be included in the user selections to render a non-compliant rule compliant, or vice- versa.
  • AttrRels zdd 100 When building the AttrRels zdd 100, two extra terms corresponding to groups 110 and 112 are added to the Index Table, one term to designate an "include” relationship and a second term to designate an "exclude” relationship. The remaining groups 114-117 correspond to the group demarcations in the Index Table. During execution, these terms advantageously allow separation of "include” attribute relationships from the "exclude” attribute relationships to guide an end user during the selection process when developing his or her "terms of interest" to satisfy a complex rale. Unlike the include zdd and exclude zdd, terms of the AttrRels zdd represent attributes
  • AttrRels zdd are constructed from minterms ⁇ 0, 2, 5 ⁇ and ⁇ 1, 3, 5 ⁇ , where "5" is added to indicate an "include” rale.
  • the "exclude” AttrRels zdd is constracted from minterms ⁇ 0,1,4 ⁇ and ⁇ 0,1,2,3,4 ⁇ , where "4" indicates an "exclude” rale.
  • paths common to both include and exclude zdds may optionally be removed from the include zdd without loss of information. This renders the include zdd smaller and makes execution faster. Removing these paths from the include zdd avoids extraneous processing of traversing those paths during the execution of the zdd.
  • any combination containing both neoprene and 50-75 mm (index 2 and index 10) in the "include” zdd can be removed regardless of other combinations in the rule.
  • another aspect of the invention concerns searching for and removing paths in the include zdd that contains the "excluded" combination.
  • Prime zdd post processing also removes unnecessary information from the include zdd to enhance the end user's experience of selection advice by flagging combinations as incompatible selections in the special case where the end user has made no actual selection for one or more related attributes (i.e. has a pending choice).
  • the following pseudocode describes how the prime Zdd is constructed: RemoveTotallyExcIuded Given:
  • IncludeZdd the zdd with all the include paths .
  • ExcludeZdd the zdd with all the exclude paths .
  • ConstructPrimeZdd - code to build the include, exclude and attrRels zdds.
  • Model data for the model .
  • MintermZdd 0
  • MintermZdd MintermZdd or term.
  • rule is an include rule
  • MintermZdd include term Else
  • AttrRelsZdd AttrRelsZdd and MintermZdd
  • PrimelncludeZdd RemoveTotallyExcIuded(PrimelncludeZdd, PrimeExcludeZdd)
  • Elective events are actions that occur in response to end-user selections of "terms of interest" and/or prime advice, the objective being to trigger certain events when making certain selections. Elective events may effect the display of messages and/or the performance of calculations to be used with a particular outcome or result.
  • Fig. 11 shows construction of an elective zdd. There is no differentiation between include and exclude elective zdd rules.
  • An elective zdd embodies information about the elective events for a given rale component or rale model. In the elective zdd, the elective events are also represented as minterms 130, 132, etc.
  • Elective zdd 136 is built by OR'ing elective minterms 130, 132, etc. that have associated messages and calculations.
  • the minterms comprise prime terms, a validity term (or an invalidity term), and the elective event terms. Starting with a "one" zdd function and synthetically AND'ing terms of the minterm 130, for example, creates the zdd 130.
  • Exclusivity is not a consideration in the construction of elective minterms.
  • the indexes of the zdd can be reordered to further reduce the number of nodes in the zdd.
  • the elective minterms may be OR'ed, which produces a sum of sum of products (SoSoP) zdd.
  • SoSoP sum of sum of products
  • a SoSoP zdd may have an exponentially exploded number of nodes when don't cares (DCs) are explicitly expressed. This situation is similar to that described for the exclude zdd. Fortunately, when using the elective zdds, the "DCs" may be eliminated without loss of information. Therefore, the elective zdd may use a structure similar to the exclude zdd.
  • Fig. 11 shows only the first two minterms of the elective rules: Neoprene uses CalcN if valid and displays MessN if invalid; and Silicone uses CalcS if valid and displays MessS if invalid. Rubber uses CalcR if valid and displays MessR if invalid; and High pressure uses CalcH if valid.
  • the resulting minterms of the elective zdd are ⁇ 0, 11, 19 ⁇ , ⁇ 1, 12, 19 ⁇ , ⁇ 2, 13, 19 ⁇ , ⁇ 0, 14, 18 ⁇ , ⁇ 1, 15, 18 ⁇ , ⁇ 2, 16, 18 ⁇ , and ⁇ 5, 17, 18 ⁇ .
  • an alternate select function SelectE
  • the selection term zdd used by the SelectE function is built in light of the structure of the elective zdd.
  • a new group 129 called validity is added to the elective zdd group 120.
  • Group 129 allows the user to specify different behaviors based on the validity of the prime.
  • Elective events can be set up to show Message 1 if the selected combination is valid, or Message2 if the combination is invalid.
  • the value of prime validity is determined during processing and interpretation of prime advice. Pseudocode for building the elective zdd is as follows:
  • Model data about the model.
  • MintermZdd MintermZdd
  • Next ElectiveZdd ElectiveZdd or MintermZdd Next End if Next End Function
  • the rale execution engine preferably implements a validity algorithm and an advice algorithm.
  • the validity algorithm contains an irredundant, reduced representation of the multidimensional prime rule in a specialized, addressable table format and uses Zdds, or a representation thereof, to deterministically process an input vector, i.e., user selections, comprising input parameters of a complex rule.
  • a binary decision diagram is a reduced, ordered, rooted, directed acyclic graph of the logic function/fm, n) that is well-suited to characterize a deterministic rule.
  • the invention need not employ zero-suppressed diagrams.
  • Related binary or logical representations such as BDDs, BMDs, MBDD, or other graphical diagrams or logic representations may be used in accordance with the teachings herein.
  • a local or remote server runs the execution engine.
  • a client device may ran the execution engine.
  • rule entry, packaging, and execution are preferably divided between client .and server devices according to needs of the application.
  • the set of zdds representing the overall rale model is small enough to run on a typical client computer, e.g., a conventional desktop, laptop, or palm-type computing device, and may be downloaded from a remote server, e.g., Internet server, by the end-user just prior to execution.
  • a microprocessor of the execution terminal effects loading of pre-packaged zdds, obtains inputs (i.e., terms of interest) from a user, begins execution, and provides an output, preferably on a computer monitor.
  • the output may comprise visual and/or audio indications, and preferably includes an indication of satisfiability along with an indication of conflict and/or selection advice after traversing the user- specified inputs through the pre-packaged prime zdd representing the overall rule model.
  • Fig. 12 shows an exemplary method and apparatus for executing a pre-packaged prime zdd that includes an include zdd, an exclude zdd, an attribute relations zdd, and an elective events zdd previously generated for an overall or prime rule model where the dashed lines represent data flows and the solid lines represent process flows.
  • a user interface of a workstation provides to an end user a list of possible choices or selections among terms, attributes, parameters, etc. obtained from selection terms 142 and selection groups 144.
  • the user inputs his or her selections.
  • a user may also comprise a machine or data processing device that automatically generates these selections based on certain monitored events or conditions.
  • a human end user makes selections from a series of dropdown menus 165-167, as depicted in Fig. 13.
  • the terms and groups are derived from packaged zdd information generated during rale entry.
  • an Advice module 150 builds temporary traversing zdds that traverses the pre-packaged zdd components developed during the packaging process. New temporary traversing zdds are generated each time the user changes or updates the selections or inputs.
  • the Include Advice module 152 carries out steps including, for each selection group derived from the user inputs, making a selection term for the group (MSTFG) by calling a routine that uses the selection terms and groups to synthetically create an include traversal zdd that is used to extract information from the Include zdd 146 and AttrRels zdd 145. Using the temporarily generated include traversal zdd, Include Advice module 152 effects traversal of the pre-packaged Include zdd 146 and AttribRels zdd 147 to produce "include” advice 148.
  • MSTFG selection term for the group
  • the Exclude Advice module 154 carries out steps including, for each selection group derived from the user inputs, making a selection term for the group (MSTFG) by calling a routine that uses the selection terms and groups to synthetically create another traversal zdd that is used to extract information from the pre-packaged Exclude zdd 147. Using the same end-user selections,
  • Exclude Advice module 154 generates a temporary exclude traversal zdd and effects traversal of the pre-packaged zdd data 147 to produce "exclude" advice 149. Include Advice 148 produced by module 152 and Exclude Advice 149 produced by module 154 are NOR'ed by the execution system at step 151 to produce overall advice 153 and validity advice 155. Meanwhile, module 154 generates information useful for providing a selection of elective events, i.e., messages and/or calculation, associated advice results should this feature be included in the application.
  • Elective Advice module 156 builds the elective terms to be supplied to the ElectiveS elect routine in order to produce Elective Advice 158 that is supplied to an Advice Interpretation module 157. Module 157 generates selection and conflict advice, as well as effecting display of messages and results of calculations, that guides or assists the end-user. In addition, a reduction operation ReduceX is used to remove any combinations that are more than one click ahead.
  • Figs. 12 and 13 together illustrate execution and display of results relative to automating a decision involving an overall or prime rale model to generate an indication of validity, satisfiability, or compliance according "terms of interest" selected by an end-user at step 140, as well as to produce conflict and selection advice relative to terms of interest provided by the end- user.
  • the end-user selects terms of interest (e.g., the end-user selects desired enumerations among pH, pressure, and thickness) using drop-down menus 165, 166, and 167.
  • Dropdown menus show enumerations for the pH, pressure, and thickness parameters that were previously defined by the subject matter expert or data entry personnel during rule definition.
  • Pane 160b shows the result parameters, e.g., attributes that render the selection valid in the overall rale model.
  • the end-user may arbitrarily arrange the parameters shown in panes 160a and 160b thereby customizing the desired inputs and outputs of the overall rule model according to his or her needs or desires.
  • Validity of the overall rale model is preferably based on a current set of terms of interest selected by the end-user. If the user-selected terms of interest are compatible with each other and every attribute that doesn't have a current selection has at least one possible term, then the overall rule model is valid. Otherwise the overall rale model is considered to be invalid, hi Fig. 13, a "+" notation, i.e., selection advice, of an enumeration of an attribute appearing in dropdown menu 165-168 indicates a selection that renders the overall rule compliant. A "-" notation indicates an incompatible or non-compliant selection. Other nomenclature may be used to indicate conflict and selection advice.
  • the execution engine advantageously provides a design tool when developing desired configuration of a complex product, service, facility, etc. having a combinatorial exploded number of possible combinations, many of which are "don't care" scenarios.
  • advice function 150 (Fig. 12) uses an include module 152 and/or exclude module 154 to guide the user to compliancy by pointing out where one or more conflicts exist.
  • advice function 150 uses an include module 152 and/or exclude module 154 to guide the user to compliancy by pointing out where one or more conflicts exist.
  • the user's selections are valid. The validity value is later added to the terms for an ElectiveS elect function 156, subsequently described.
  • Terms not returned in the result of Advice function 150 are the conflicting terms.
  • Other terms produced in the result of Advice function 150 are compatible options for the terms of interest. The compatible terms may resolve conflicts, if any exists.
  • conflict advice from Interpretation module 157 identifies other terms, parameters, attributes, and/or enumerations in dropdown menus 165, 166, and 167 (Fig. 13) for the selected results attribute, such as the "material" attribute shown in pane 160b (Fig. 13).
  • Conflict advice may be presented to the user in any manner known in the art. As shown in Fig. 13, checkmark icon 161 or 162 next to an attribute name signifies a "correctable" conflict and that other enumerations are available to render the overall rale compliant. Attributes identified in this manner will have one or more selectable enumerations with a positive notation "+" that may be selected.
  • the execution engine uses the elective zdd described in connection with Fig. 11 to determine which, if any, elective events should occur. This is accomplished by taking the terms that result from a call to Elective Advice function 156 (Fig. 12) and adding that term to the results of the Advice function 150. Then, a call to an ElectiveS elect function with these terms is made, whereupon the result will contain the elective events that apply to the results obtained. On a call to an ElectiveS elect routine, prime groups, elective groups, and the validity group are included. This assures that elective groups are "don't cares" relative to the SelectE function.
  • Fig. 13 assumes pressure set to high, thickness set to 0-25mm, and pH is pending (no current user selection). Material is provided as a result, i.e., an output rather than an end-user input.
  • index numbers corresponding to end-user selections are 5 from group 1 and 8 from group 3.
  • Thickness 9 25-50mm 10 50-75mm Exemplary Step by Step Execution Method
  • Figs. 14, 15, 16, 17, 18 and 19 illustrate an exemplary execution process performed by the execution system.
  • Fig. 14 illustrates building an exemplary include MSTFG.
  • Fig. 15 shows use of that MSTFG to illustrate the include execution.
  • Fig. 16 illustrates a typical exclude execution process.
  • Fig. 17 shows the NOR operation.
  • Fig. 18 illustrates elective execution.
  • Fig. 19 shows how the results are interpreted.
  • Fig. 20 illustrates one of many formats that may be used to store Zdd information in a memory storage device. Building an MSTFG Zdd
  • Fig. 14 illustrates building the Make Selection Term For Group (MSTFG) zdd for a first group during execution of the Include Advice module 152 (Fig. 12). Illustrated is building an MSTFG 170 for group 1 (pressure), i.e., finding all groups 173 related to the group of interest 171 (group 1). The execution system proceeds by synthesizing a zdd 172 having a node 174 representing the group of interest 171 and nodes 175, 176, and 177 representing "don't cares" for all other include groups. A node 178 representing index "5" is added to notate an "include” relationship.
  • MSTFG Make Selection Term For Group
  • the execution system effects an intersecting of synthesized group 170 with the AttrRels zdd 180 (previously generated as AttrRels zdd 100 (Fig. 10) during the packaging process) to produce Related Results zdd 182.
  • the Related Results zdd 182 is then flattened to produce indices ⁇ 1,3,5 ⁇ , which indicates that group 1 is related to group 3. Index ⁇ 5 ⁇ denotes that the relationship is an "include" relationship.
  • the execution system uses the Related Results zdd and MakeSelectionTermForGroup routine set forth in the Appendix, the execution system generates MSTFG zdd 170.
  • Relational diagram 184 describes the relevancy of nodes relative to determining the MSTFG zdd. Fig.
  • a preferred method comprises collecting include advice for each group and a Select routine described in the Appendix uses the overall rale model zdd 192 and the MSTFG zdds 170a and 170b generated during the MSTFG building process (Fig. 14).
  • a Select routine described in the Appendix uses the overall rale model zdd 192 and the MSTFG zdds 170a and 170b generated during the MSTFG building process (Fig. 14).
  • nodes in the MSTFG zdds 170a and 170b are set to "don't care", but terms for other groups remain in the respective zdds 170a and 170b.
  • This operation is performed for each group with selections, e.g., groups 1 and 3 (see, for example, identified groups in zdd 182 (Fig. 14)).
  • the Select routine produces advice via Result zdds 190a and 190b.
  • a similar procedure is performed for other related include groups, i.e., group "zero" and group 2.
  • the Result zdds 190a and 190b are "flatten" at steps 194 and 195, respectively, by keeping those terms related to the associated group.
  • the Result zdds 190a and 190b are then combined to produce an overall advice result 193, which includes indices ⁇ 0, 1, 2, 3, 4, 6, 7, 9, 10 ⁇ that are preferably stored in module 148 (Fig. 12).
  • Fig. 16 illustrates operations carried out by module 154 (Fig. 12) relative to exclude rale advice to be generated and stored in module 149. Unlike obtaining the include advice, module 154 generates exclude advice in a single pass. An Exclude Result is simply generated by adding all user-selected input terms to form an Exclude Result zdd 200. Thereafter, module 154 calls a SelectE routine 201, which is set forth in the Appendix, against the Exclude Result zdd 200 to find paths that contain terms specified in the MSTFG zdd 202.
  • module 154 calls the ReduceX function 205, which is also set forth in the Appendix, to operate on the SelectE Result zdd in order to find paths that are possibly one click ahead, e.g., ReduceX Result 206.
  • the Exclude Result zdd it is seen that the combination ⁇ 0, 5, 6, 8 ⁇ is excluded.
  • the end user chooses only indexes ⁇ 5, 8 ⁇ , there is no way to choose both ⁇ 0, 6 ⁇ on the next click, so the advice associated therewith is invalid.
  • advice may be provided.
  • the final result indicated in the ReduceX Result zdd 206 is ⁇ 2 ⁇ and ⁇ 5 ⁇ .
  • Chart 208 shows flatten results ⁇ 2, 5 ⁇ .
  • Fig. 17 shows the results obtained by NOR'ing the include and exclude advice zdds obtained during the procedures described relative to Figs. 15 and 16.
  • the NOR'ing operation generates selection and conflict advice for the overall rule model.
  • Module 151 performs the NOR'ing operation to eliminate from the include advice zdd those indexes that are also present in the exclude advice zdd. This yields the nodes of the Overall Result column 214 of Fig. 17.
  • Include advice is shown in chart 193 (Fig. 15), which reflects the nodes of column 210 of the include advice zdd while exclude advice is shown in chart 208 (Fig. 16), which reflects the nodes of column 212 of the exclude advice zdd.
  • Index ⁇ 2 ⁇ for Neoprene is "on" for the include advice and is also "on” for the exclude advice. Therefore, it is "off for the overall result in column 214 as a result of the NOR'ing operation.
  • Fig. 18 illustrates operations performed by module 156 (Fig. 12) to build the elective events zdd.
  • the elective events zdd controls which messages are communicated to the end user and which calculations are performed to produce a result that is also communicated to the end user. Messages and calculations are triggered by the advice zdds generated during execution.
  • the result from the prime advice is ⁇ 0, 1, 3, 4, 6, 7, 9, 10 ⁇ and the condition of the overall rule model is invalid.
  • MSTFG zdd is produced from the prime advice where validity is set to invalid, e.g., node 19 (Fig. 11) is selected.
  • module 156 calls the SelectE routine 201 to apply the Result zdd 136 against MSTFG zdd 222.
  • the Elective Result zdd 220 is then stored in module 158 (Fig. 12) for subsequent access by the Advice Interpretation module 157. Result zdd 136 was previously generated during the Elective Events zdd construction, as discussed in connection with Fig. 11.
  • Chart 230 of Fig. 19 describes how to interpret the advice results, e.g., how module 157 (Fig. 12) interprets the results of the prime advice 214 (Fig. 17) as well as the Elective Results advice zdd 220 (Fig. 18) in view of user inputs.
  • a first step preferably comprises confirming that user selections in column 232 of Fig. 19 entered at step 140 (Fig. 12) are present in prime advice column 234. Since none of the user inputs ⁇ 5, 8 ⁇ appear in the prime advice column 234, the validity status in column 236 for group “1" and group “3" is set to "invalid.” The status of group "zero" and group "2" remains valid.
  • a second step preferably comprises confirming that prime groups have at least one index marked "on" in prime advice column 234. Since all groups in the specified example illustrated in chart 230 satisfy this condition, no action is taken and no additional group in the group validity column 236 is marked “invalid.”
  • a third step preferably includes determining overall validity, which is based on the validity status of all groups in the illustrated example. Overall validity is attained when all groups of column 236 are “valid.” In this case, group “zero” and group “2” are valid and group “1" and group “3” are invalid. Therefore, overall validity of the rale model is "invalid.”
  • a fourth step preferably comprises determining conflict advice for the groups. If a group is "invalid” and has other "valid” choices, then it will have conflict advice.
  • a fifth step preferably includes placing selection advice notations, e.g., a "+” sign or a "-” sign, on labels for each group item, e.g., enumerations in column 242.
  • the applied label is a direct function of the asserted, i.e., boxed, nodes in the prime advice column 234.
  • a sixth and final step preferably includes interpreting the elective advice where an elective term that is "on" in the elective events column 240 is executed, the illustrated example, messages MessR for rubber and MessS for silicone are executed, e.g., displayed. No calculations are performed.
  • elective events control the display of messages and the execution of calculations. In some cases it may be sufficient to merely select or deselect a particular message/calculation for display/execution, h the general case, it is preferable to allow elective events to control selection from several alternative texts of a message or from several alternative expressions of a calculation.
  • the simple select/deselect case is but a special scenario of the more general selection-among-alternates case.
  • the maintenance or rale entry tool supports a general, selection-among-alternates case by allowing multiple text messages to be maintained for each message and multiple expressions to be maintained for each calculation.
  • an expression of a calculation is selected for execution through elective advice, the expression is executed, and the result returned and communicated to the user when appropriate.
  • a proper execution sequence is easily obtained by arranging the various references in a dependency tree and performing a depth-first ordering or topological sort within the dependency tree. Calculation sequencing may be performed during the packaging step to achieve this purpose. Further, circularity of reference can be easily detected through this same ordering mechanism.
  • the illustrated example shows selections for pH, pressure, and thickness being set using a conventional drop-down list (Fig. 13) manipulated by an end user. Selection may also be accomplished with other GUI controls such as radio-buttons, menu selections, etc., or from another program using no interface at all.
  • a user may desire to enter a specific numeric or alphabetic value rather than select a choice from a list of parameters or enumerations.
  • the user may wish to enter the value "22.”
  • This scalar input value can be used to determine the correct selection of a segmented range by comparing the scalar value with minimum and maximum values for each of the thickness selections embedded among the pre-defined thickness enumerations.
  • the input module 140 Fig. 12
  • the user may wish to enter a set of values and execute a calculation to determine the desired selection. For instance a user may wish to enter the circumference and width of an oval cross section and have a calculation determine the corresponding thickness.
  • Input module 140 (Fig. 12) may automatically determine the resultant value and select the appropriate selection through ranging as previously described. Special input calculations are maintained by the rale entry tool to achieve this purpose. These special input calculations are maintained independent of the output calculations described elsewhere and are not coupled to elective processing.
  • exemplary rale and processes therefore described herein provides a basis for extending application of the invention to the provisions of business and engineering products and services, generally. Automation of large-scale and/or small-scale systems may take advantage of the rale processing techniques of the invention. Use of terms such as attributes, enumerations, parameters, etc. to describe a rale is not made in the restrictive sense but is intended to include a broad range of properties or characteristics associated with a rale. Even though directed acylic graphs such as binary decision diagrams are preferred for rale representation, they are in no way limiting to the type of rale representation or manipulation embraced by the invention.
  • a method or system that emulates relations between attributes and enumerations, and relations between attributes, to provide an indication of satisfiability or advice to achieve satisfiability according to the teachings herein falls within the scope of the present invention. Accordingly, the invention includes such software emulations and systems predicated on the teachings herein. Also, an overall or prime rule to be automated may be predicated only on one type of rale component or sub-part, and need not be segmented or processed as an include rale or rule component, or an exclude rale or rule components.
  • the zdd analog to the ROBDD MK function It will find (or create) a new node in the zdd, which has a matching index, low leg and high leg. This routine enforces the zero suppression required by zdd's.
  • This routine builds a zdd that will be used in subsequent select operations. It uses the set of terms, groups, related groups and the flags to build the tree for different situations. For example, when selecting terms from the elective zdd, don't cares are not used.
  • This routine also takes into account when
  • Groups The set of groups for this tree .
  • Terms The set of terms for this tree.
  • GroupOfInterest The group to be excluded on this tree.
  • MSTFG MKz (var, MSTFG, zero) // Elective only
  • MSTFG MKz (var, MSTFG, MSTFG)
  • MSTFG a MKz (var, MSTFG, MSTFG) // Message group
  • MSTFG MKz (var, MSTFG, MSTFG) End If
  • MSTFG MKz (var, MSTFG, MSTFG)
  • MSTFG MKz (var, MSTFG, MSTFG)
  • Prime The prime zdd.
  • Groups The set of groups to be considered.
  • Primelnclude The prime include zdd.
  • Groups The set of groups to be considered.
  • Terms The set of terms to be considered.
  • AttrRels The attributes relations zdd.
  • Produces : Result Set of terms from the Include Zdd that match this selection.
  • Function Selectionlnclude (Primelnclude, AttrRels, Terms, Groups)
  • Term GetTermForGroup (Terms, Group)
  • AttrRels The attribute relationships zdd.
  • Group The set of groups to be considered.
  • Produces : Result Set of terms from the Exclude Zdd that match this selection. Function Selectionlnclude (AttrRels, Group)
  • PrimeExclude The prime include zdd.
  • Groups The set of groups to be considered.
  • Terms The set of terms to be considered.
  • Produces : Result Set of terms from the Exclude Zdd that match this selection.
  • Function SelectionExclude Principal Example, Terms, Groups
  • SelectTerms MakeSelectionTermForGroup (Groups, Terms, -1, true, RelatedGroups)
  • Groups The set of groups to be considered.
  • Terms The set of terms to be considered.
  • SelectTerm MakeSelectionTermForGrou (Groups, Terms, -1, false)
  • RT SelectE (Elective, SelectTerm)
  • Prime Prime Zdd.
  • TermTree Term to select against .
  • SelectE an algorithm for selecting the set of minterms from the elective zdd Elective that meets the conditions of the zdd TermTree.
  • Elective Elective Zdd.
  • TermTree Term Zdd to select against .

Abstract

A rule processing system or method includes defining/entering attributes, enumerations, and/or relationships; packaging the definitions in reduced canonical form suitable for propositional logic manipulation using zero-suppressed binary decision diagrams (Zdd) to produce a prime Zdd (fig. 1B); and/or executing a rule by applying a series of user inputs to a prime Zdd (22) to determine a result (23) that preferably includes conflict and selection advice to help achieve satisfaction. Elective events, such as a display of messages or performance of calculations, may optionally be packaged along with the prime rule or components thereof, and presented during execution to help guide the user to achieve satisfaction or compliancy when choosing among possible selections. The invention automates determination of a complex rule having a combinatorial exploded number of rule components, or a combinatorial exploded number of possible outcomes, exceeding computational capacity of conventional computing systems (24).

Description

RULE PROCESSING SYSTEM AND METHOD
Inventors: David L. Huelsman, Sharon E. Love, and Douglas M. Mair
Background This invention relates to rule processing, but more specifically, to an apparatus that captures and/or that executes a set of rules to automatically provide a decision or advice relative to that decision.
Decision automation, or automated rule processing as it is sometimes called, provides a decision, tests a condition of satisfiability, and/or confirms compliance relative to a set of rules or conditions ~ whether those rules or conditions involve conduct of a business or operation of a system or process. Decision automation applies to an activity (business or non-business) requiring the application of rules or criteria to obtain a result, and includes decision support, workflow management, process automation, and multidimensional data analysis. Generally, a rules is characterized as a relationship between or among parameters and/or attributes, as well as a relationship between or among rules themselves. A single-dimensional rule usually expresses a single relationship, condition, or requirement. A multi-dimensional rule, however, embraces many single-dimensional rules or rule components and is satisfied, valid, or complied with when all components thereof are simultaneously valid, satisfied, or complied with for a given set of input parameters. Decision automation is useful to implement complex or multidimensional rules having too many interrelated parameters, attributes, or rule components for convenient or ready human implementation.
Mathematically, satisfiability of a rule may be determined using propositional logic by solving the model or function/fm,^ of m lnulti- valued inputs and n outputs expressed in canonical form. Decision automation can be applied to deterministic problems directed to product configuration or provisioning, process or system control, certain forms of traffic routing, financial management, building or facilities management, needs analysis, manufacturing, order processing, service provisioning, decision support, product verification, product or service compliance, and other areas where decisions may be made using propositional logic. A specific application of decision automation is providing sales guidance or choice narrowing when dealing with complex or interrelated products and services, such as cross-selling or up-selling, having a combinatorial exploded number of features, attributes, properties, and/or interrelationships that is too demanding (e.g., too numerous or complex) for manual or mental assessment. Software installation wizards also use rule processing or decision automation to automatically determine which .among many software components to install in a computing system according to user desirability and/or hardware parameters. Such installation rules are determined a priori by a subject matter expert to alleviate this burden on a less-experienced end- user.
Another application of decision automaton lies in an area where expert or knowledge- based systems guide a user to select among interrelated variables or parameters having complex interrelationships. To validate evacuation routes or a selection of safety measures to be taken, for example, decision automation might be applied to emergency management of a large facility having a combinatorial exploded number determinations in view of a life-threatening situation (e.g., fire, flooding, environmental hazard, life support monitors, etc.). Artificial intelligence also employs decision automation to draw inferences from basic parameters, relations, or facts, but stores rules as syntactical programming code. Short of decision automation, but simply to determine satisfaction of a set of design requirements, modeling has been proposed to test functionality of definition systems as finite state machines, e.g., formal verification or model checking of computerized hardware, commercial software, and embedded software systems for chipsets, hard drives, modems, cell phones, consumer appliances, and the like. While some degree of success has been met with hardware and embedded software, model checking for formal verification of commercial software presents many challenges due to an intractably large number of finite states.
Historically, decision automation was achieved using a decision tree representative of rules or relations between parameters where the tree provided various routes or branches leading to an output, e.g., satisfiability or compliance, under all possible input scenarios or parameters. To automate determination of an output, a computer processor systematically and methodically sequenced through branches of the tree under a given set of input parameters. As the number of input parameters grew linearly, the branches in the decision tree grew exponentially. The processing time required to sequence through all possible scenarios grew proportionally to the number of branches (exponentially), sometimes to a point exceeding acceptable processing time of the processor. Nery often, computation for all input scenarios, regardless of their relevance, had to be computed to the end for all possible input parameters before a determination was ultimately made. For example, the combination of fifty parameters each having 50 values amounts to 5050 possible scenarios, which number is virtually impossible to process within acceptable time limits even using the fastest available processing speeds. With currently available processor clock speeds, run times of many prior decision automation systems became unacceptably long as the number of rule permutations or input criteria exceeded two to three thousand. The problem was solvable, but required an inordinate amount time, which in classical mathematical terms, is known as an ΝP complete problem. In addition to encountering NP complete problems, prior decision automation methods and systems used syntactic programming code or algorithm syntax to build a decision tree to obtain a decision. This had several drawbacks. First, it required skilled computer programmers to design and create code to build the decision tree based on a given set of rules about a subject matter of which they may have little knowledge. Consequently, if the subject matter expert did not possess programming skills, both a progr-immer and a subject matter expert had to jointly build the decision tree in order to automate rule processing. This was often expensive, inconvenient, and time-consuming. Second, modification of a decision tree with many convoluted paths was expensive, time-consuming, .and difficult to debug since programming errors that inevitably occurred were not readily apparent or had an unintended impact on other parts of the decision automation system. The latter problem is exacerbated in a dynamic, real- life business environment where rules, relationships, attributes, parameters, etc. vary unpredictably due to changing circumstances and events.
Further, the output of prior decision automation systems is usually limited to providing an indication of compliance, satisfiability, or acceptance under a given set of input parameters that defined a multidimensional rule. No "advice" is provided when the result proves noncompliant. For purposes of design of complex systems, behavioral observation or testing thereof, a need for conflict or selection advice, or for other reasons; it is desirable to provide an indication of which component(s) of a multidimensional rule invoked a conflict and what parameters, if any, could be changed to render all components of the rule simultaneously compliant or satisfied. Prior systems failed to provide such advice for a large-scale system, e.g., a system having more than 2000 or 3000 variables. In order to process such "what if scenarios, prior systems laboriously attempted to reprocessed all possible input conditions to find a result, which reprocessing often exceeded the capacity of the decision automation system to determine the decision within acceptable time limits. Thus, prior systems proved ineffective in complex multidimensional rule environments.
A system disclosed in WIPO Publication No. WO 99/48031 by Moller, et al. addresses at least some of the aforementioned problems by providing a database that maps possible outcomes of a propositional logic rule in accordance with given input scenarios. This reduced execution times typically required of microprocessors to implement algorithmic rule processing, hi addition to its mode of capturing and manipulating rules, one limitation of the Moeller et al. system is lack of flexibility to determine "what if scenarios, i.e., selection or conflict advice. Case tools are also known in the art to provide automatic translation of business rules into programmatic code, but use of case tools still require code-writing for rule maintenance, which makes it difficult to implement in usual and customary business environments. For example, subject matter experts and data entry personnel could not easily implement them in their business.
In view of the foregoing, it is desirable to provide a system that expresses, captures, and manipulates complex business or other rules for subsequent processing without using programmatic code or algorithmic syntax.
It is further desirable to provide a way for subject matter experts (non-programmers) to utilize and implement automation of complex rules that are too complicated or numerous for practicable human handling. It is also desirable to provide a rule processing apparatus or system that is easily updated or modified to adapt to rapidly changing business environments and changing circumstances. It is also desirable to enhance decision automation by providing messages or calculations, as well as a selection of messages and calculations, in association with a rule determination. By virtue of providing conflict and selection advice along with rule processing, the present invention enables a user to assess various "what if feedback scenarios that is particularly useful for system design purposes.
The present invention is also useful to provide a result when encountering a combinatorial exploded number of permutations of interrelated rules or outcomes. The present invention also aims to use propositional logic to express rules as data in a way to provide rule capture, rule manipulation, and extremely fast processing of a complex, multidimensional rule.
Summary of the Invention
According to an aspect of the present invention, a system that provides rule processing includes (i) a rule entry system to define/enter attributes, enumerations, and/or relationships thereof representative of an overall rule to be automated (herein also called "maintenance"); (ii) a rule packaging system to produce a representation of the rule in a form suitable for propositional logic manipulation, e.g., preferably reducing a representation of the rule to a reduced canonical form suitable for manipulation as a zero-suppressed binary decision diagram (Zdd); and/or (iii) an execution engine that executes the packaged rule by applying a series of user inputs to the representation, e.g., the prime Zdd, to determine a result that may also include conflict and selection advice to guide the user to achieve rule compliancy or satisfaction.
Elective events, such as the display of messages or the performance of calculations, may optionally be packaged along with the prime rule or components thereof and presented during execution to help guide the user when choosing among possible selections. The invention enables determination of a complex rule having a combinatorial exploded number of rule components, or a combinatorial exploded number of possible outcomes, exceeding computational capacity of present day computing systems. Other features and aspects of the invention will become apparent upon review of the following description taken in connection with the accompanying drawings. The invention, though, is pointed out with particularity by the appended claims. Brief Description of the Drawings
Fig. IA depicts a preferred rule entry/definition system according to an aspect of the present invention.
Fig. IB depicts a preferred rule packaging system according to another aspect of the invention.
Fig. IC shows a rule execution system according to one aspect of the present invention that executes a packaged rule produced by the rule packaging system of Fig. IB. Fig. ID shows a rule execution system according to another aspect of the present invention that also executes a packaged rule produced by the rule packaging system of Fig. IB.
Fig. IE illustrates a method implemented by the rule entry system of Fig. 1 A during rule entry/definition (i.e., maintenance), which is preferably performed by a subject matter expert or data entry personnel. Fig. IF shows an exemplary method implemented by the rule packaging system of Fig.
IB to produce a canonical polynomial representation of the rule defined according the procedure of Fig. IA, which polynomial is useful for subsequent execution.
Fig. IG conceptually illustrates an exemplary procedure implemented by the rule execution systems of Fig. IC or ID for executing the packaged rules developed by the rule packaging system of Fig. IB.
Figs. 2A through 2D show a series relational or rule diagrams representing respective components of an exemplary prime rule described in the present disclosure.
Fig. 3 illustrates a method of assigning an elective event, e.g., a calculation, to a result generated by end-user input selections. Fig. 4 illustrates a method of assigning another elective event, e.g., a message, to a result generated by end-user input selections.
Fig. 5 illustrates how the exemplary rule components defined in Figs. 2 A through 2D are reduced to canonical polynomial storage where respective records thereof are uniquely addressed according to ordering of rule parameters. Fig. 6 illustrates assignment of elective events to associated records, e.g., rule components, of the canonical polynomial generated according to the procedure shown in Fig. 5.
Fig. 7 illustrates building an "include" Zdd rule to characterize "include" rules illustrated in the rule diagrams of Figs. 2B and 2C. Fig. 8 further illustrates building an "include" Zdd rule to characterize "include" rules illustrated in the rule diagrams of Figs. 2B and 2C.
Fig. 9 illustrates building an "exclude" Zdd rule to characterize "exclude" rules illustrated in the rule diagrams of Figs. 2A and 2D.
Fig. 10 illustrates building attribute relations Zdd according to rule components defined in Figs. 2A through 2D.
Fig. 11 illustrates building the elective events Zdd according to the events assigned to rule outcomes, such as the events assigned by the illustration shown in Figs. 3 and 4.
Fig. 12 illustrates a preferred procedure for executing or automating a prime rule to produce a result, preferably including conflict and selection advice, based on a set of end user inputs. ,
Fig. 13 shows one possible user interface for displaying user selections and results.
Fig. 14 illustrates building a MSTFG Zdd that is used during execution to produce conflict and/or selection advice in accordance with an aspect of the present invention.
Fig. 15 illustrates a procedure for producing "include" advice during execution according to one aspect of the present invention.
Fig. 16 illustrates a procedure for producing "exclude" advice during execution according to one aspect of the present invention.
Fig. 17 illustrates an additional step to combine the results of the "include" and "exclude" advice that is generated for the illustrated example. Fig. 18 illustrates a procedure for producing an Elective Events Results Zdd, which is preferably used during execution to invoke a display of a particular message or the performance of a given calculation in response to a condition or result developed by end-user inputs.
Fig. 19 shows how results of a prime Zdd and elective events Zdd are interpreted according to an aspect of the present invention. Fig. 20 shows one possible format for storing Zdd information in a memory.
Description of Illustrative Embodiments
Fig. 1 A shows a rale entry system 1 that enables a subject matter expert or data entry personnel to capture rules where data entry personnel or an expert user 10 preferably interacts with a GUI module 13 of terminal 12 using a keyboard and mouse to define attributes, enumerations or properties of those attributes, and relationships between and among such attributes, enumerations, and properties. The rule entry system includes a processor that preferably implements a procedure described in connection with Fig. IE. The processor preferably executes a relational diagram construction module 15 that aids user 10 in generating relational diagrams representing the rule to be processed. Elective events module 16 permits the user 10 to assign certain elective events to be triggered upon occurrence of certain conditions occurring in response to end-user inputs during execution (subsequently described) while canonical polynomial reduction module 17 reduces the entered rules a data in a compact form suitable for network transmission when used during execution or rale development. The reduced canonical polynomial representing the rule is then stored in a database 18, such as a hard drive, optical medium, or other storage device.
Fig. IB depicts a rule packaging system 2 that accesses database 18 created during rule entry. The packaging system 19 translates rale representations to a preferred form of rale manipulation according to a preferred embodiment of the invention, i.e., zero-suppressed binary decision diagrams ("Zdd"). Other rale representations may be deployed in accordance with the teachings herein to enable automated rule processing. Packaging system 19 uses a processor 24 to implement a Zdd construction module 20 that retrieves database records from database 18 and converts them to a Zdd representing rule components. In particular, Zdd construction module 20 produces an "include" Zdd, an "exclude" Zdd, and an attribute relations (AttrRels) Zdd. Module 20 may also produce Elective Events Zdds in accordance with assignment of messages and/or calculations to certain conditions or outcomes. To simplify certain complex rule representations, Zdd post-processing module 21 reorders nodes of the Zdd to reduce their structure or paths. Prime Zdd construction module 22 combines the series of Zdds created by the modules 20 and 21 to produce a representation of the overall or prime rule to be automated. Once created, the prime Zdd is persisted to memory in database 23.
Fig. IC shows one form of an execution system 3 that receives via terminal 27 inputs 26 from end user 11. End user input selections 26 comprise a choice of rale parameters supplied by database 23 generated during packaging by the rule packaging system of Fig. IB. A processor 28 applies the input parameters 26, which may include user-selected attributes, properties, enumerations, etc. against a prime Zdd obtained from database 23 to produce a result, i.e., an indication of rale satisfaction, and optionally, conflict and selection advice, to help guide end user 11 in choosing input parameters to achieve rale satisfaction. Processor 28 preferably comprises an inputs Zdd construction module 30 that produces Zdds from the user inputs 26 that the execution module 31 uses to "traverse" the prime Zdd. Advice module 32 uses the results of the execution module 31 to generate and communicate conflict and selection advice to end user 11 via a feedback path 25.
Fig. ID, where like reference numerals represent like elements, shows a similar execution system 4 where the prime Zdd of database 23 under control of network server 29 is downloaded over network 19, e.g., an Internet, via terminal 27.
Fig. IE shows a rule entry or maintenance procedure implemented by the rule entry system 1 depicted in Fig. IA. System 1 comprises software routines that enable a subject matter expert to perform procedure 33 of identifying and defining applicable rules expressed in propositional logic. Rules generally include attributes or properties, enumerations or values of such attributes and properties, as well as relationships between and among those attributes and properties. Variables characterizing rules are generally referred to as rule parameters. Further routines included in system 1 implement a procedure 34 to create multiple sets of relational diagrams, e.g., smaller or single-dimensional rales, to express rule components in propositional logic fonn, e.g., a conjunctive or disjunctive normal form. A complex or prime rule to be automated includes multiple rale components. Smaller rules or rule components are factored from a larger, complex multi-dimensional rule in a sum-of-products (i.e., include rule) form or a product of sum-of-products (i.e., exclude rale) form. Smaller rales set out in propositional logic are better suited for complex rule construction since they are more easily defined and manipulated. The rule entry system 1 advantageously allows the subject matter expert to interact with the relationships via a multi-dimensional grid or relational diagram, similar to an OLAP display or pivot table, during initial entry or subsequent editing of the rales.
During the rule entry/definition process, a subject matter expert or user typically identifies and defines relationships, attributes, attribute enumerations, etc., characterizing the rule or components thereof, while data entry personnel enters other associated information. Rules are expressed as propositional logic statements. Rule maintenance includes, for each rule or rule component (e.g., polynomial factor), designating logically asserted ("include") or non- asserted ("exclude") relationships between user-defined attributes or enumerations thereof at appropriate locations of a two-dimensional or multidimensional relational grid, table, or matrix representing each rule component. For condensed database storage of rules as data and rapid retrieval, the preferred method also includes ordering, grouping, and indexing components of the overall rule and converting a representation thereof to a reduced canonical polynomial for storage in a memory. Without a need for programmatic coding, currency of the rales can be maintained by repeating the rule entry process when known relationships or parameters thereof change. In accordance with another aspect of the invention, messages, calculations, or other elective events are associated with various conditions or outcomes of rule processing. The system 1 also performs procedure 35 that associates elective events with various logic conditions so that messages may be communicated to an end-user or calculations may be performed for the end-user to assist in automated rule processing. Rule definitions may further include the identity of relationships between logic outcomes of one or more rule components, on one hand, and the invocation of messages or calculations, on the other hand. Procedure 36 of rule entry system 1 orders components or elements of a model logic function representative of the overall complex rule and translates them to a reduced canonical form. Finally, the system 1 implements procedure 37 that stores a condensed canonical polynomial representation of the overall rale in respective database records of a master table or database.
Attributes of an exemplary rale model, e.g., a complex multidimensional rule, described for purposes of this disclosure include a complex rule based on material, pressure, pH and thickness, which are set forth in the following Attribute Table.
Attribute Table
This example, though, is not intended to limit the scope of application of the invention. For purposes of illustration, a subject matter expert defined rule components or relationships as follows:
Material and Pressure rule:
Neoprene cannot be used at High Pressure
Material and pH rule:
Only silicone can be used in Basic environments
Pressure and Thickness rule:
Thickness must be greater than 25mm for High pressure
Material, Pressure, pH and Thickness rule:
Rubber must not be less than 25mm when used in Acid above Low pressure
In addition, the subject matter expert has also defined the following exemplary calculations used by the exemplary rales in the following manner:
Neoprene uses CalcN if valid Silicone uses CalcS if valid Rubber uses CalcR if valid High Pressure uses CalcH if valid Further, the subject matter expert developed the following exemplary messages that may be communicated to an end user when the following conditions occur:
Neoprene uses MessN if invalid Silicone uses MessS if invalid Rubber uses MessR if invalid
Fig. IF illustrates procedures implemented by rule packaging 2 of Fig. IB according to an aspect of the invention. Packaging includes accessing memory to obtain rale components; converting the rule components to a special form, e.g., zero-suppressed binary decision diagrams (Zdds), suitable for manipulation; combining representations of the respective rale components to form a representation of an overall rule to be automated; and optionally, reordering the overall rule Zdds to simplify or reduce the size thereof. Reordering improves the capability of handling large-scale, complex rules having multiple dimensions. Rule packaging system 2 preferably includes software routines to perform procedures 38 and 39 that effects accessing database records of the reduced canonical polynomial representing the rule components and proceeds by constructing zero-suppressed binary decision diagrams (Zdds) for the respective rale components of the database records. Binary decision diagrams are a form of logic propositional expression that has been recently developed in the art. In accordance with the present invention, zero-suppressed binary decision diagrams have been found particularly useful for rule representation and manipulation because they inherently characterize real-life scenarios for business and engineering applications having various "don't care" conditions or scenarios relative to many combinations of attributes, enumerations, properties, or relationships thereof. In prior decision tree analyses, each scenario had to be tested regardless of relevancy, and therefore, these prior systems needlessly wasted computation time or were unable to process a rule to a result within acceptable time limits. According to the present invention, though, use of Zdds for rale processing eliminates needless computation and has tremendously sped automation of very large scale systems having many orders of magnitude of possible outcomes or rale permutations. Procedure 39, in essence, generates a series of factors of the canonical polynomial that may be separately executed to produce a result for a given rule component or sub-part of the overall prime rule. Those factors, or rule components, are broken down into "include" rules, "exclude" rales, attribute relations, and elective events. Zdds are created for each of these components. Other components, as well, may be included in the rule definition. Optionally, rule packaging 2 may perform post-processing operations 40 to facilitate subsequent execution of the prime rale. In cases where any of the Zdds are overly large or complex, they may be re-ordered to reduce the number of nodes or paths. This step further increases the ability to handle very large scale, complex rales.
After the Zdd components are generated and/or post-processed, rule packaging system 2 implements a procedure 41 to form a prime Zdd by logically combining an include Zdd, an exclude Zdd, an AttrRels Zdd, and an Elective Events Zdd. The prime Zdd, which is stored in a memory at procedure 42, represents the overall or prime rale to be process. In response to user inputs, the prime Zdd produces a result, as well as messages and calculations. In should be noted that the overall or prime Zdd may be defined to include all or a portion of the component Zdds, depending on the design of the system or method. For example, if an overall or prime rale is defined to have only "include" components, then the prime Zdd need not have "exclude" components. Likewise, if no elective events are designed into the method or system, then the prime or overall Zdd will not have such a Zdd component. However defined, the prime or overall Zdd represents the business or engineering rule to be process. In response to user inputs, the prime Zdd will produce a result, and optionally, messages and calculations. Execution preferably comprises applying end-user inputs against pre-packaged Zdds representative of the overall rule in order to produce a result, i.e., an indication of satisfiability or compliancy, as well as selection and conflict advice in response to a failure of satisfiability or compliancy. The result, selection advice or conflict advice, may be accompanied by a display of messages or the performance of a calculation, logic or otherwise, and communicated to the end user.
Fig. IG conceptually shows in sequential algorithmic form an exemplary procedure for a prime rule execution system 3 that retrieves, at procedure 43, the prime Zdd from database memory 23 (Fig. IC). Retrieval may also occur by downloading via the Internet. The execution system 3 includes routines that implement a procedure 44 to obtain user inputs via a user interface 27 (Fig. IC) that prompts a user to supply input selections or choices of rule parameters. Input selections may also be obtained from software components or other computing systems. In the example described herein, user inputs may include attributes and/or enumerations of material, pH, thickness, and pressure. The execution system 3 also has routines that implement testing 45 of input parameters against the prime Zdd to produce a result in the nature of "yes," which means the combination of user inputs is valid or satisfied; or "no," which means the combination of user input parameters is invalid or unsatisfied. If valid, the procedure performed by the execution system 3 proceeds to step 46 to advise the end user 11 (Fig. IC) of satisfaction, messages, and/or the results of calculations (e.g., a price computation). If the result is invalid, the execution system 3 performs procedures 47, 48, and 49 to generate a series of traversal Zdds, to apply the Zdds against the prime Zdd, and to produce advice for user 11 (Fig. IC), respectively. In practice, the algorithm actually implemented produces an indication of validity, conflict advice, and selection advice in a single pass. These procedures are subsequently explained. The advice provided may include conflict advice, selection advice, messages, or even further calculations. At this point, the advice is communicated to the end user, typically via a user interface of a computer monitor to enable input of revised parameters at step 32, whereupon the process is repeated. Rule Entry & Maintenance
Figs. 2A through 2D depict graphical representations of rule components in single and multidimensional grids setting forth the above-specified rale model, which is satisfied when each of the rule components is also satisfied. Using propositional logic, rule components of the overall rule model may be expressed in an include form, designated "I," or in an exclude form, designated "X," based on the type or nature of information to be entered in the rule component. Since rules are expressed in propositional logic, they may be restated in either form. An "I" or "X" in the upper left-hand corner 51, 52, 53, and 54 of the rule diagrams of Figs. 2A through 2D shows the default setting of blank or non-specified locations in the grids of the rule component diagrams. Figs. 2A and 2D show exclude rale components whereas Figs. 2B and 2C show include rale components.
Using stock diagrams, e.g., diagrams with blank legends, automatically generated by a user interface of system 1 during the rule maintenance process, a subject matter expert develops a series of relationship diagrams characterizing the rale to be automated by specifying the appropriate labels, e.g., attributes or names, to be included in the legends. In effect, attribute relationships are also defined during this process. During rule entry, these diagrams may be displayed on a computer monitor while data entry personnel or experts use a "point and click" input device to define rule components in the grids by clicking the appropriate locations of the grids. Placing an exclude "X" term 51a in the exclude rule component diagram of Fig. 2A, for example, effects a recordation of the rule that Neoprene cannot be used at high pressure. Similarly, placing include terms "I" at the illustrated locations of Fig. 2B effects recordation of the rale that only silicone can be used in basic environments while the include terms of Fig. 2C effect recordation of the rule a thickness greater than 25 mm must be used for high-pressure applications. The more complex rule diagram of Fig. 2D provides that rubber must not be less than 25 mm when used in acid above low pressure. As clearly evident, rales are advantageously captured according to this aspect of the invention without a need for prograniming skills and no syntactic programming code is required during rule definition. Each rule represented in Figs. 2A through 2D is set forth in a way to indicate validity or satisfaction of the rule component expressed therein. The exclude rale component of diagram 51, for example, is satisfied or valid when neoprene is not used with high pressure. The entries in the diagrams may also include an indication of or have an association with elective events, such as the conditions upon which predefined messages are displayed to an end user or calculations are performed to produce a result for the end user.
Fig. 3 illustrates a user interface window displayed on a monitor to effect assignment of elective events to various conditions of validity (or invalidity) relative to the material attribute. To assign an elective event during rule definition, a subject matter expert uses a point-and-click device to place checkmark 56 in thumbs down column 57 to invoke message MessN when neoprene is valid, i.e., when neoprene is included in or selected for a product configuration. This will invoke the display or communication of MessN to end user 11 (Fig. IC or ID) when neoprene is selected in his or her input selections and the overall model is invalid. Checkmark 58 in thumbs up column 59 invokes the performance of calculation CalcP when both neoprene is valid in the selected product combination and the overall rale is valid or satisfied. Checking the thumbs up and thumbs down column respectively determine whether the associated elective event will be invoked during valid and invalid conditions, respectively, of the overall or prime rule model in response to the end-user input selections. Similarly, Fig. 4 illustrates an assignment of the performance of a calculation CalcH whenever pressure is high during conditions of validity of the overall rule, as shown by the checkmark 61 in thumbs up column 60.
Fig. 5 shows storage of the foregoing rule components in records 72a through 72o of a database 72 that represents the relationship information. Table 70 represents canonical polynomial storage of rales expressed in diagrams 62, 64, 66, and 68 in an ordered fashioned. The include and exclude relationships are specified in each diagram 62, 64, 66, and 68 so that the condition to be met therein renders the overall rule, i.e. prime rale, valid. In the illustrated example, the overall rule is a combination of all rale components reflected in diagrams 62, 64, 66, and 68, and is satisfied when all rale components reflected in the rule diagrams are satisfied. To create records of master database 72, the terms of the relational diagrams 62, 64, 66, and 68 are given a signature, input address, and validity assignment in respective records 72a through 72o of database table 72, which is stored in a memory for subsequent access. Ordering of attributes and enumerations in table 70 associated with the specified attributes and enumerations is arbitrary, but once given, defines the signatures and input addresses of records of database table 72. Using left-to-right ordering across table 70, the signature in database table 72 associated with the term 63 for the neoprene-pressure rule of diagram 62 is "1100," which signifies the presence of a valid relationship (e.g., include or exclude) between neoprene "1" and high pressure "1" and a "don't care" relationship for pH "0" and thickness "0." Similarly, using the vertical ordering of the code specified in table 70, the input address associated term 63 of the neoprene rule diagram 62 becomes "3300," which signifies relative ordering of the enumerations of the neoprene "3" and pressure "3" attributes and "don't care" for pH "0" and thickness "0." The assignment of "zero" in the validity column of the neoprene rule 62 indicates an exclude rale assignment. In a similar fashion, the signature, input address, and validity assignments are provided for each asserted term of the rule components expressed in diagrams 64, 66, and 68 thereby to define in reduced canonical form in table 72 a prime rule embracing multiple rule components. Rule components expressed in the form of component diagrams 62, 64, 66, and 68 may be converted to database table 72 using conventional programming techniques. In accordance with an important aspect of the invention, the system accesses records 72a through 72o to create and manipulate Zdds representing the respective components of the prime rale to be automated.
Figs. 6A, 6B, and 6C illustrate the step of defining and storing in reduced form certain elective information, e.g., the association of messages and calculations with certain conditions of satisfiability or unsatisfiability. User interface windows of Fig. 6A and 6B correspond to Figs. 3 and 4, respectively. Using an algorithm similar to that described for database table 72, elective information defined in windows 65 and 67 is generated and stored in corresponding records of an expanded table representation 69, as illustrated by records 69a, 69b, 69c, and 69d of table 69 to produce a condensed representation thereof. For purposes of illustration, entries in database table 69 omit "zeros" and is replaced with ellipses so that relevant information stands out. Alternatively, condensed elective event information of table 69 may be combined with table 72 or stored with associated records of table 72. Rule Packaging
Packaging transforms rules, which includes all rale components of interest, to an executable form. According to an important aspect of the invention, use is made of Zdds for rale processing because this form of rale representation accounts for the many "don't care" scenarios that customarily occur in many combinatorial exploded business and engineering systems. The nature, character, and manipulation of Zdds and similar diagrammatic propositional logic rale representations are described in "Zero-Suppressed BDDs for Set Manipulation in Combinatorial Problems," S. Minato, Proc. 30th ACM/IEEE DAC, pp. 272-277, June 1993. A prime Zdd, an elective Zdd, XML data, and supporting web documents are preferably created during rale packaging. The prime Zdd represents the overall, complex, or prime rule having multiple rule components. The elective Zdd represents elective events to be invoked when certain conditions occur. XML data and supporting web document assist in generating and presenting the various user interfaces locally or remotely via a network
A zdd (or z-bdd, or zero-suppressed bdd) is an OBDD (Ordered Binary Decision Diagram) that is further reduced by eliminating all nodes whose high legs go to zero. Ordered Binary Decision Diagrams are a special type of Directed Acyclic Graph (DAG). Zdds are especially efficient at manipulating sets of minterms, i.e., terms represented by selections in rule component diagrams 62, 64, 66, and 68. Nodes of a zdd can be reordered to further reduce the size of the diagram. In addition, reordering helps avoid traversing the same node more than once in order to reduce execution time when zdds are extremely large. Using special programming techniques such as dynamic programming and caching, it is possible to avoid many of these problems. Zdds may be constructed using logical operations between two or more Zdds, which return a result Zdd. Zdds may also be synthesized by directly linking chains of nodes to represent a result of many separate logical operations. Construction can be scaled up to handle very complex rales. Synthesis, however, can be much faster than construction when rale constraction involves a large number of highly repetitive operations. The synthetic method described in the appended pseudocode of creating a zdd starts at the largest index in the Index Table (set forth below), which also happens to be at the bottom of the zdd, and works its way up the zdd. The synthetic method uses a zdd "one" function and synthetically AND'ing in each term in a minterm to create a zdd representing a rale component. As it goes up the zdd it applies the specific synthetic operation to that node. Using this method, it is easy to build a chain of AND operations in one pass, whereas using the logic construction method requires passing each member of the AND chain. Each pass, of course, takes greater than linear time to process. As later described in this disclosure, a "Selection Term For Group" is created in a synthetic fashion. The zdds preferably have an order with "missing" node locations where the level of a node present in the zdd corresponds to its index position. Empty levels having no nodes represent suppressed "zeros" or "don't cares." This ordering, however, is not required.
Ordering of attributes, enumerations, etc. is arbitrarily assigned during rule development. Rules express relationships between sets of enumerations grouped into attributes. When speaking of a logic function implied by one or more rales, enumerations are called "terms" (as in a "term" of a logical expression). When constructing a zdd each enumeration (term) of the example described herein is identified by a specific numeric "index," set forth in the following index table:
Index Table
Enumerations of an attribute are mutually exclusive (i.e., a particular pH cannot be both acidic and basic). Groups, therefore, specify the exclusive relationship between terms. The concept of grouping is used throughout construction and execution to enforce exclusivity between group members. Group types are either elective or prime, and are used when building a selection term for the elective zdd. Prime groups correspond to attributes.
Logic operations are used during creation and execution of the zdds. Standard functions include AND (intersect) and OR (union). An AND function is used between two sets of zdd nodes to find the nodes or paths in common between the groups. An OR function is used to find a total set of zdd nodes and paths between two zdd groups. Since zdds contain sets of minterms, the union/intersection nomenclature to refer to zdd functional operations is more appropriate.
An overall rale model comprises at least a prime zdd and an elective zdd. The prime zdd is packaged from respective sets of include rules and exclude rales, i.e., rule diagrams 62, 64, 66, and 68 (Fig. 5) created by a subject matter expert. The prime rale model, however, preferably includes a collection of three zdds including an include zdd, an exclude zdd, and optionally, an attribute relationships zdd.
Include zdds contain rules with combinations that go together (i.e., combinations that are valid) but are not effective for containing rales with combinations that do not go together (i.e., combinations that are invalid). In an exemplary situation where a product can be built with 300 sizes and 200 colors, resulting in 60,000 possible combinations, all combinations are valid together except for three. That means that there are 59,997 valid combinations and three invalid combinations. According to an aspect of the present invention, rales may be re-stated either as an include rule or an exclude rule in a way to minimize the number of nodes in a corresponding zdd representing the rale. Storing invalid combinations, e.g., the three invalid combinations, requires OR'ing the exclude rales together, rather than AND'ing. In this case, fewer actual nodes result from the operation but one encounters the same pathological ordering problem when storing the logic function in a standard (include) zdd. This is because the 59,997 "don't care" nodes are explosively multiplied by the OR operation. However, in this case, the "don't care" nodes add no actual information and can be eliminated. Thus, in accordance with an aspect of the present invention, the structure of the exclude zdd is changed to suppress or eliminate the "don't care" nodes representing "don't care" scenarios in business or engineering applications to advantageously achieve a reduced size with no loss of information.
Thus, the include zdd and exclude zdds are constructed differently and, during execution, each of them is separately traversed without regard to the other. This, according to another important aspect of the invention, permits separate creation, manipulating, and re-ordering to further simplify very complex rales that would otherwise have a large number of nodes.
After creating the Zdds, they are persisted to permanent storage to be subsequently retrieved during execution. Zdds are preferably persisted using a format that includes header information, variable ordering information, and node information, as depicted in Fig. 20.
Building an Include Zdd Fig. 7 illustrates how a preferred system or method builds an exemplary include zdd for the exemplary material-pH and pressure-thickness rales (rule diagrams 64 and 66 (Fig. 5)). The include zdd, however, preferably embodies all include rule components and related information and is created by AND'ing the include rale components. Each include rule component is created by OR'ing the minterms specified in the rule components (i.e., entries of rale diagrams 64 and 66 of Fig. 5). The individual minterms are created using a zdd "one" function and synthetically AND'ing in each term of the minterms. All terms that belong to groups specified for this rule start out at zero. This has the effect of assigning all terms not specified in groups to "don't care" and all other non-specified terms to "zero."
When building an include zdd, the relevant attributes define the rale being built. Other attributes are seen as "don't care" (DC) with respect to the relevant rale. Explicitly building (referencing) the "don't cares" is not necessary for the include zdd due to inclusion of an attribute relationship zdd in the prime rale. The attribute relationship zdd defines how the attributes are interrelated. Unrelated attributes can then be processed as "don't cares" during execution. As shown in Fig. 7, the level or position of nodes 81, 82, 84, and 85 of the zdds correspond to the aforementioned index in the index table. The pressure-thickness rale has eight minterms (eight entries in rule diagram 66 (Fig. 5)), two of which are shown in Fig. 7. During processing to create the zdds, information for the minterms are retrieved from database table 72 stored in memory. Minterm 80, designated as {3,8}, signifies a valid condition for the combination of low pressure and a thickness of 0-25 mm. A zdd comprising nodes 81 and 82, along with result 83a and 83b, represents the zdd for minterm 80. Solid lines from node 81 to node 82, along with a solid line from node 82 to the "1" box 83a, signify a valid or satisfied condition for low pressure and thickness between 0-25 mm. Nodes for other attributes and enumerations are not represented in the zdd for minterm 80 since, for the relevant minterm, they are irrelevant, i.e., "don't care."
Similarly, minterm 86 representing the relationship {3,9} signifies a valid condition for the combination of low pressure and a thickness of 25-50 mm. Its zdd is constracted in the same or a similar fashion from nodes 84 and 85, along with results 87a and 87b. Since the combination is valid, node 85 has a solid line to "one" box of 87a. The entire pressure- thickness rale has eight minterms {3,8}, {3, 9}, {3, 10}, {4,8}, {4,9}, {4,10}, {5,9}, and {5,10}, which represent the eight entries in the rale diagram 66 of Fig. 5. Zdds for each of the eight minterms are similarly created. OR'ing all eight zdds using conventional manipulation techniques yields a zdd for pressure/thickness rale result 88 comprising a zdd node structure 89 that logically represents the entire pressure-thickness rale.
Fig. 8 shows AND'ing the "include" material-pH rule component 64a and the "include" pressure-thickness rule component 66a that are correspondingly depicted in rule diagrams 64 and 66 (Fig. 5) in order to form an overall include rule 90. As seen, the overall include model 90 has a more complex arrangement of nodes. The model's overall include zdd grew quite quickly. According to an aspect of the invention, this zdd may be reordered to reduce the number of nodes. For example, zdd 90 can be reordered in a way that would shrink it from eighteen to eleven nodes. After reordering and persisting to memory, it is ready to be used during execution, which is subsequently described. Building an Exclude Zdd Fig. 9 illustrates building exclude zdds indicative of propositional logic rules represented by rule components of rule diagrams 62 and 68 (Fig. 5). The exclude zdd embodies information from the exclude rules and their structure differs from the include zdds. As shown in Fig. 9, exclude rales are built by OR'ing minterms, including the single term of pressure/material rule and the two minterms of the material/pressure/pH/thickness rule. Using conventional programming code, initial data about the definition of each rale to develop its corresponding zdd structure is obtained from database table 72.
A first "exclude" rule, relation, or minterm 93 of material/pressure rule component (diagram 62 (Fig. 5)) provides that neoprene cannot go with high pressure, which is designated {2,5} according to entries in the index table. A second "exclude" rule has two minterms 94 and 95 derived from the Index Table as {0,5,6,8} and {0,4,6,8}, and which is satisfied, for the exemplary prime rule, on the condition that rubber must not be less than 25 mm when use above low pressure. Starting with a "one" zdd and then AND'ing each term in the minterm creates the individual minterms 93, 94, and 95. A result zdd 96 is formed from a union, e.g., OR'ing, of zdd representing "exclude" minterms 93, 94, and 95. As apparent, forming the "exclude" zdds comprises a more direct one-step process, instead of the two-step process required for the include result. Forming the "include" zdd involves OR'ing the minterms for each of the respective rule components, and then AND'ing the result of the OR'ing operation for each rale component.
Building an Attribute Relationships Zdd (AttrRels)
Referring to Fig. 10, the AttrRels zdd 100 is used during execution to control the constraction of a Make Selection Term for Group (MSTFG) zdd used for the "include" and "exclude" advice. As indicated herein, one advantage of the invention deals with providing selection and conflict advice for the terms or parameters of interest selected by an end user. That advice is provided in the form of "include" and "exclude" advice, that is, to provide identities of terms, parameters, enumerations, etc. that should be included in the user selections to render a non-compliant rule compliant, or vice- versa.
When building the AttrRels zdd 100, two extra terms corresponding to groups 110 and 112 are added to the Index Table, one term to designate an "include" relationship and a second term to designate an "exclude" relationship. The remaining groups 114-117 correspond to the group demarcations in the Index Table. During execution, these terms advantageously allow separation of "include" attribute relationships from the "exclude" attribute relationships to guide an end user during the selection process when developing his or her "terms of interest" to satisfy a complex rale. Unlike the include zdd and exclude zdd, terms of the AttrRels zdd represent attributes
(i.e., groups) rather than enumerations. For "include" rale diagrams 64 and 66 of Fig. 5, it is seen (i) that material (group zero) is related to pH (group 2) and (ii) that pressure (group 1) is related to thickness (group 3). For the "exclude" rale diagrams 62 and 68 of Fig. 5, it is seen (i) that material is related to pressure and (ii) that material (group zero), pressure (group 1), pH (group 2), and thickness (group 3) are interrelated. A table similar to table 70 (Fig. 5) may also be constructed for the AttrRels relationships. An exclusivity relationship exists between the enumerations of an attribute. However, because no such exclusivity relationship exists between attribute relationships, exclusivity is not a consideration when constructing the AttrRels zdd. Thus, construction of the "include" attribute relations zdds 102 and 104 for the material/pH .and pressure/thickness rales is rather straightforward. The "include" AttrRels zdd is constructed from minterms {0, 2, 5} and {1, 3, 5}, where "5" is added to indicate an "include" rale. The "exclude" AttrRels zdd is constracted from minterms {0,1,4} and {0,1,2,3,4}, where "4" indicates an "exclude" rale.
Prime Zdd Post processing
After constructing the include zdd and exclude zdd, paths common to both include and exclude zdds may optionally be removed from the include zdd without loss of information. This renders the include zdd smaller and makes execution faster. Removing these paths from the include zdd avoids extraneous processing of traversing those paths during the execution of the zdd. As an example, if a rale is added to the "exclude" zdd precluding the combination of the material neoprene and the pressure 50-75 mm (i.e., index 2 and index 10), then any combination containing both neoprene and 50-75 mm (index 2 and index 10) in the "include" zdd can be removed regardless of other combinations in the rule. Thus, another aspect of the invention concerns searching for and removing paths in the include zdd that contains the "excluded" combination. Therefore, valid combinations {2,5,10} and {2, 10,15}, and {2, 8, 10, 30} can be removed from the include zdd because they each contain "2" and "10." h this hypothetical scenario, these terms don't add any value to the include zdd.
Prime zdd post processing also removes unnecessary information from the include zdd to enhance the end user's experience of selection advice by flagging combinations as incompatible selections in the special case where the end user has made no actual selection for one or more related attributes (i.e. has a pending choice). The following pseudocode describes how the prime Zdd is constructed: RemoveTotallyExcIuded Given:
IncludeZdd = the zdd with all the include paths . ExcludeZdd = the zdd with all the exclude paths .
// Caution: This function must be called on non-reordered zdds. Function RemoveTotallyExcIuded (IncludeZdd, ExcludeZdd) Zdd tNext, eNext, r
If ExcludeZdd == 1 Then return 0 If ExcludeZdd == 0 Then return IncludeZdd If IncludeZdd == 0 or IncludeZdd == 1 Then return IncludeZdd If (inde (ExcludeZdd) < index (IncludeZdd) ) Then r = RemoveExcluded (IncludeZdd, Lo (ExcludeZdd) ) Else If (index(IncludeZdd) == inde (ExcludeZdd) ) Then tNext = RemoveExcluded (High (IncludeZdd) , High (ExcludeZdd) ) eNext = RemoveExcluded (Lo (IncludeZdd) , Lo (ExcludeZdd) ) r = M Z (index (IncludeZdd) , tNext, eNext) Else tNext = RemoveExcluded (High (IncludeZdd) , ExcludeZdd) eNext = RemoveExclude (Lo (IncludeZdd) , ExcludeZdd) r = MkZ (index (IncludeZdd) , tNext, eNext) End If
Return r End Function
ConstructPrimeZdd - code to build the include, exclude and attrRels zdds.
Given :
Model = data for the model .
Function ConstructPrimeZdd (Model)
// Comment : Construct the Include
PrimelncludeZdd = 1
For each include rule in a Model RuleZdd = 0
For each minterm in rule
MintermZdd = 1
For each term in mintermc
Synthetically add the term to MintermZdd Next term
RuleZdd = RuleZdd or MintermZdd
Next minterm
PrimelncludeZdd = PrimelncludeZdd and RuleZdd
Next rule
// Comment : Construct the Exclude
PrimeExcludeZdd = 0
For each exclude rule in a Model
For each minterm in rule MintermZdd = 0
For each term in minterm
MintermZdd = MintermZdd or term.
Next term
RuleZdd = RuleZdd or MintermZdd Next minterm
RuleZdd = RuleZdd or MintermZdd
PrimeExcludeZdd = RuleExcludeZdd or PrimeZdd
Next rule // Comment : Construct the AttrRels
AttrRelsZdd = 1
For each rule in a Model
If rule is an include rule then
MintermZdd = include term Else
MintermZdd = exclude term
End if
For each attr in rule
Add attr to MintermZdd Next attr
AttrRelsZdd = AttrRelsZdd and MintermZdd
Next rule
PrimelncludeZdd = RemoveTotallyExcIuded(PrimelncludeZdd, PrimeExcludeZdd)
// Comment: Reorder and persist the zdd's ReorderAndPersist PrimelncludeZdd ReorderAndPersist PrimeExcludeZdd ReorderAndPersist AttrRelsZdd End Function
Elective Zdd Structure
Elective events are actions that occur in response to end-user selections of "terms of interest" and/or prime advice, the objective being to trigger certain events when making certain selections. Elective events may effect the display of messages and/or the performance of calculations to be used with a particular outcome or result.
Fig. 11 shows construction of an elective zdd. There is no differentiation between include and exclude elective zdd rules. An elective zdd embodies information about the elective events for a given rale component or rale model. In the elective zdd, the elective events are also represented as minterms 130, 132, etc. Elective zdd 136 is built by OR'ing elective minterms 130, 132, etc. that have associated messages and calculations. The minterms comprise prime terms, a validity term (or an invalidity term), and the elective event terms. Starting with a "one" zdd function and synthetically AND'ing terms of the minterm 130, for example, creates the zdd 130. Exclusivity is not a consideration in the construction of elective minterms. After the elective zdd is constracted, the indexes of the zdd can be reordered to further reduce the number of nodes in the zdd. Because they are functionally independent, the elective minterms may be OR'ed, which produces a sum of sum of products (SoSoP) zdd. Unfortunately, a SoSoP zdd may have an exponentially exploded number of nodes when don't cares (DCs) are explicitly expressed. This situation is similar to that described for the exclude zdd. Fortunately, when using the elective zdds, the "DCs" may be eliminated without loss of information. Therefore, the elective zdd may use a structure similar to the exclude zdd.
Fig. 11 shows only the first two minterms of the elective rules: Neoprene uses CalcN if valid and displays MessN if invalid; and Silicone uses CalcS if valid and displays MessS if invalid. Rubber uses CalcR if valid and displays MessR if invalid; and High pressure uses CalcH if valid. According to ordering contained in group 120, the resulting minterms of the elective zdd are {0, 11, 19}, {1, 12, 19}, {2, 13, 19}, {0, 14, 18}, {1, 15, 18}, {2, 16, 18}, and {5, 17, 18}.
Since DCs are not present in the elective zdd 136 an alternate select function, SelectE, may be used. The selection term zdd used by the SelectE function is built in light of the structure of the elective zdd. hi addition to the prime, message and calculation groups 114-115 and 122-128, a new group 129 called validity is added to the elective zdd group 120. Group 129 allows the user to specify different behaviors based on the validity of the prime. Elective events can be set up to show Message 1 if the selected combination is valid, or Message2 if the combination is invalid. The value of prime validity is determined during processing and interpretation of prime advice. Pseudocode for building the elective zdd is as follows:
Given: Model = data about the model.
Function ConstructElectiveZdd (Model) ElectiveZdd = 0 For each rule in Model If rule has an ElectiveEvent For each ElectiveEvent in rule MintermZdd = 1
// Comment: Make sure to include the validity or invalidity term. For each term in ElectiveEvent MintermZdd = MintermZdd and term Next ElectiveZdd = ElectiveZdd or MintermZdd Next End if Next End Function
Execution Engine
The rale execution engine according to an aspect of the invention preferably implements a validity algorithm and an advice algorithm. The validity algorithm contains an irredundant, reduced representation of the multidimensional prime rule in a specialized, addressable table format and uses Zdds, or a representation thereof, to deterministically process an input vector, i.e., user selections, comprising input parameters of a complex rule. Generally, a binary decision diagram is a reduced, ordered, rooted, directed acyclic graph of the logic function/fm, n) that is well-suited to characterize a deterministic rule. Although preferred, the invention need not employ zero-suppressed diagrams. Related binary or logical representations, such as BDDs, BMDs, MBDD, or other graphical diagrams or logic representations may be used in accordance with the teachings herein.
In one embodiment, a local or remote server runs the execution engine. Also, a client device may ran the execution engine. In a client-server environment, rule entry, packaging, and execution are preferably divided between client .and server devices according to needs of the application. In most cases, however, the set of zdds representing the overall rale model is small enough to run on a typical client computer, e.g., a conventional desktop, laptop, or palm-type computing device, and may be downloaded from a remote server, e.g., Internet server, by the end-user just prior to execution. When the execution engine starts, a microprocessor of the execution terminal effects loading of pre-packaged zdds, obtains inputs (i.e., terms of interest) from a user, begins execution, and provides an output, preferably on a computer monitor. The output may comprise visual and/or audio indications, and preferably includes an indication of satisfiability along with an indication of conflict and/or selection advice after traversing the user- specified inputs through the pre-packaged prime zdd representing the overall rule model.
Fig. 12 shows an exemplary method and apparatus for executing a pre-packaged prime zdd that includes an include zdd, an exclude zdd, an attribute relations zdd, and an elective events zdd previously generated for an overall or prime rule model where the dashed lines represent data flows and the solid lines represent process flows. At step 140, a user interface of a workstation provides to an end user a list of possible choices or selections among terms, attributes, parameters, etc. obtained from selection terms 142 and selection groups 144. Here, the user inputs his or her selections. A user may also comprise a machine or data processing device that automatically generates these selections based on certain monitored events or conditions. Typically, a human end user makes selections from a series of dropdown menus 165-167, as depicted in Fig. 13. The terms and groups are derived from packaged zdd information generated during rale entry. After making selections, an Advice module 150 builds temporary traversing zdds that traverses the pre-packaged zdd components developed during the packaging process. New temporary traversing zdds are generated each time the user changes or updates the selections or inputs.
The Include Advice module 152 carries out steps including, for each selection group derived from the user inputs, making a selection term for the group (MSTFG) by calling a routine that uses the selection terms and groups to synthetically create an include traversal zdd that is used to extract information from the Include zdd 146 and AttrRels zdd 145. Using the temporarily generated include traversal zdd, Include Advice module 152 effects traversal of the pre-packaged Include zdd 146 and AttribRels zdd 147 to produce "include" advice 148. The Exclude Advice module 154 carries out steps including, for each selection group derived from the user inputs, making a selection term for the group (MSTFG) by calling a routine that uses the selection terms and groups to synthetically create another traversal zdd that is used to extract information from the pre-packaged Exclude zdd 147. Using the same end-user selections,
Exclude Advice module 154 generates a temporary exclude traversal zdd and effects traversal of the pre-packaged zdd data 147 to produce "exclude" advice 149. Include Advice 148 produced by module 152 and Exclude Advice 149 produced by module 154 are NOR'ed by the execution system at step 151 to produce overall advice 153 and validity advice 155. Meanwhile, module 154 generates information useful for providing a selection of elective events, i.e., messages and/or calculation, associated advice results should this feature be included in the application. Elective Advice module 156 builds the elective terms to be supplied to the ElectiveS elect routine in order to produce Elective Advice 158 that is supplied to an Advice Interpretation module 157. Module 157 generates selection and conflict advice, as well as effecting display of messages and results of calculations, that guides or assists the end-user. In addition, a reduction operation ReduceX is used to remove any combinations that are more than one click ahead.
Figs. 12 and 13 together illustrate execution and display of results relative to automating a decision involving an overall or prime rale model to generate an indication of validity, satisfiability, or compliance according "terms of interest" selected by an end-user at step 140, as well as to produce conflict and selection advice relative to terms of interest provided by the end- user. Using a point-and-click input device relative to display window 160 of a computer monitor, the end-user selects terms of interest (e.g., the end-user selects desired enumerations among pH, pressure, and thickness) using drop-down menus 165, 166, and 167. Dropdown menus show enumerations for the pH, pressure, and thickness parameters that were previously defined by the subject matter expert or data entry personnel during rule definition. Pane 160b shows the result parameters, e.g., attributes that render the selection valid in the overall rale model. Advantageously, the end-user may arbitrarily arrange the parameters shown in panes 160a and 160b thereby customizing the desired inputs and outputs of the overall rule model according to his or her needs or desires.
Validity of the overall rale model is preferably based on a current set of terms of interest selected by the end-user. If the user-selected terms of interest are compatible with each other and every attribute that doesn't have a current selection has at least one possible term, then the overall rule model is valid. Otherwise the overall rale model is considered to be invalid, hi Fig. 13, a "+" notation, i.e., selection advice, of an enumeration of an attribute appearing in dropdown menu 165-168 indicates a selection that renders the overall rule compliant. A "-" notation indicates an incompatible or non-compliant selection. Other nomenclature may be used to indicate conflict and selection advice. Since conflict and selection advice are immediately provided to the end user, the execution engine advantageously provides a design tool when developing desired configuration of a complex product, service, facility, etc. having a combinatorial exploded number of possible combinations, many of which are "don't care" scenarios.
When the execution engine produces an invalid result, advice function 150 (Fig. 12) uses an include module 152 and/or exclude module 154 to guide the user to compliancy by pointing out where one or more conflicts exist. When examining the results of Advice function 150, if the terms of interest are found to be included in the results, the user's selections are valid. The validity value is later added to the terms for an ElectiveS elect function 156, subsequently described. Terms not returned in the result of Advice function 150 are the conflicting terms. Other terms produced in the result of Advice function 150 are compatible options for the terms of interest. The compatible terms may resolve conflicts, if any exists.
If any of the selected terms of interest produces a conflict, conflict advice from Interpretation module 157 (Fig. 12) identifies other terms, parameters, attributes, and/or enumerations in dropdown menus 165, 166, and 167 (Fig. 13) for the selected results attribute, such as the "material" attribute shown in pane 160b (Fig. 13). Conflict advice may be presented to the user in any manner known in the art. As shown in Fig. 13, checkmark icon 161 or 162 next to an attribute name signifies a "correctable" conflict and that other enumerations are available to render the overall rale compliant. Attributes identified in this manner will have one or more selectable enumerations with a positive notation "+" that may be selected.
If an attribute name of dropdown menus 165-167 has an "X" icon instead of a checkmark next to a name attribute, then it is totally invalid and no choice of enumerations for that attribute will resolve the conflict, hi prior systems or methods, however, no distinction is drawn between a simple, correctable conflict and total conflict. As such, the end user is simply notified that a conflict exists for the given attribute selections with no indication that the conflict may be resolved by changing certain of the input parameters.
To invoke elective events along with rule processing, such as a display of a message or the performance of a calculation, the execution engine uses the elective zdd described in connection with Fig. 11 to determine which, if any, elective events should occur. This is accomplished by taking the terms that result from a call to Elective Advice function 156 (Fig. 12) and adding that term to the results of the Advice function 150. Then, a call to an ElectiveS elect function with these terms is made, whereupon the result will contain the elective events that apply to the results obtained. On a call to an ElectiveS elect routine, prime groups, elective groups, and the validity group are included. This assures that elective groups are "don't cares" relative to the SelectE function.
Execution Example
The illustrated example of Fig. 13 assumes pressure set to high, thickness set to 0-25mm, and pH is pending (no current user selection). Material is provided as a result, i.e., an output rather than an end-user input. Using the following Group-Index Table, index numbers corresponding to end-user selections are 5 from group 1 and 8 from group 3.
Group-Index Table
Group Index
Number Name Number Name
Rubber
Material Silicone
Neoprine
Low
Pressure Medium
High
Acidic
PH Basic
0-25mm
Thickness 9 25-50mm 10 50-75mm Exemplary Step by Step Execution Method
Include Advice:
For each selection group AttrRels is used to find the related attributes Build the include MSTFG
Call Select with the include zdd and MSTFG
Add advice for this group only.
Include advice returns: 0, 1, 2, 3, 4, 6, 7, 9, 10 Exclude Advice :
Build the Exclude MSTFG
Exclude advice returns: 2, 5
NOR'ing with include advice removes 2 from the include advice. Interpreting prime advice :
The resulting terms with "+" signs are: 0, 1, 3, 4, 6, 7, 9, 10. Group 0 has {0, 1}, Group 1 has {3, 4}, Group 2 has {6, 7}, Group 3 has {9, 10}. There is a conflict between groups 1 and 3 because the selected terms are invalid. This conflict is resolvable by choosing a plus index from either group. Overall validity is FALSE because the selection terms are not included in the result terms.
Elective Advice:
Build the MSTFG using the terms from the prime advice and the validity term. Perform the ElectiveS elect routine to find the elective terms.
Figs. 14, 15, 16, 17, 18 and 19 illustrate an exemplary execution process performed by the execution system. Fig. 14 illustrates building an exemplary include MSTFG. Fig. 15 shows use of that MSTFG to illustrate the include execution. Fig. 16 illustrates a typical exclude execution process. Fig. 17 shows the NOR operation. Fig. 18 illustrates elective execution. Fig. 19 shows how the results are interpreted. Fig. 20 illustrates one of many formats that may be used to store Zdd information in a memory storage device. Building an MSTFG Zdd
Fig. 14 illustrates building the Make Selection Term For Group (MSTFG) zdd for a first group during execution of the Include Advice module 152 (Fig. 12). Illustrated is building an MSTFG 170 for group 1 (pressure), i.e., finding all groups 173 related to the group of interest 171 (group 1). The execution system proceeds by synthesizing a zdd 172 having a node 174 representing the group of interest 171 and nodes 175, 176, and 177 representing "don't cares" for all other include groups. A node 178 representing index "5" is added to notate an "include" relationship. Next, the execution system effects an intersecting of synthesized group 170 with the AttrRels zdd 180 (previously generated as AttrRels zdd 100 (Fig. 10) during the packaging process) to produce Related Results zdd 182. The Related Results zdd 182 is then flattened to produce indices {1,3,5}, which indicates that group 1 is related to group 3. Index {5} denotes that the relationship is an "include" relationship. Using the Related Results zdd and MakeSelectionTermForGroup routine set forth in the Appendix, the execution system generates MSTFG zdd 170. Relational diagram 184 describes the relevancy of nodes relative to determining the MSTFG zdd. Fig. 15 illustrates a Select operation performed by module 152 (Fig. 12). To produce advice via result zdds 190a and 190b, a preferred method comprises collecting include advice for each group and a Select routine described in the Appendix uses the overall rale model zdd 192 and the MSTFG zdds 170a and 170b generated during the MSTFG building process (Fig. 14). During the Select operation, nodes in the MSTFG zdds 170a and 170b are set to "don't care", but terms for other groups remain in the respective zdds 170a and 170b. This operation is performed for each group with selections, e.g., groups 1 and 3 (see, for example, identified groups in zdd 182 (Fig. 14)). The Select routine produces advice via Result zdds 190a and 190b. A similar procedure is performed for other related include groups, i.e., group "zero" and group 2. The Result zdds 190a and 190b are "flatten" at steps 194 and 195, respectively, by keeping those terms related to the associated group. The Result zdds 190a and 190b are then combined to produce an overall advice result 193, which includes indices {0, 1, 2, 3, 4, 6, 7, 9, 10} that are preferably stored in module 148 (Fig. 12). This process is repeated for the Exclude zdds, which generate exclude advice for storage in module 149 whereupon the advice results of both operations are NOR'ed at step 151 (Fig. 12). According to the AttrRels zdd, groups "zero" and two are not related to any groups with selections, so the advice settings for those groups remain at the default state of "on."
Fig. 16 illustrates operations carried out by module 154 (Fig. 12) relative to exclude rale advice to be generated and stored in module 149. Unlike obtaining the include advice, module 154 generates exclude advice in a single pass. An Exclude Result is simply generated by adding all user-selected input terms to form an Exclude Result zdd 200. Thereafter, module 154 calls a SelectE routine 201, which is set forth in the Appendix, against the Exclude Result zdd 200 to find paths that contain terms specified in the MSTFG zdd 202. Then, module 154 calls the ReduceX function 205, which is also set forth in the Appendix, to operate on the SelectE Result zdd in order to find paths that are possibly one click ahead, e.g., ReduceX Result 206. From the Exclude Result zdd, it is seen that the combination {0, 5, 6, 8} is excluded. When the end user chooses only indexes {5, 8}, there is no way to choose both {0, 6} on the next click, so the advice associated therewith is invalid. As soon as the end user selects {0} or {6}, advice may be provided. The final result indicated in the ReduceX Result zdd 206 is {2} and {5}. Chart 208 shows flatten results {2, 5}. Fig. 17 shows the results obtained by NOR'ing the include and exclude advice zdds obtained during the procedures described relative to Figs. 15 and 16. The NOR'ing operation generates selection and conflict advice for the overall rule model. Module 151 performs the NOR'ing operation to eliminate from the include advice zdd those indexes that are also present in the exclude advice zdd. This yields the nodes of the Overall Result column 214 of Fig. 17. Include advice is shown in chart 193 (Fig. 15), which reflects the nodes of column 210 of the include advice zdd while exclude advice is shown in chart 208 (Fig. 16), which reflects the nodes of column 212 of the exclude advice zdd. Index {2} for Neoprene is "on" for the include advice and is also "on" for the exclude advice. Therefore, it is "off for the overall result in column 214 as a result of the NOR'ing operation.
Fig. 18 illustrates operations performed by module 156 (Fig. 12) to build the elective events zdd. The elective events zdd controls which messages are communicated to the end user and which calculations are performed to produce a result that is also communicated to the end user. Messages and calculations are triggered by the advice zdds generated during execution. In the example discussed throughout the disclosure, the result from the prime advice is {0, 1, 3, 4, 6, 7, 9, 10} and the condition of the overall rule model is invalid. MSTFG zdd is produced from the prime advice where validity is set to invalid, e.g., node 19 (Fig. 11) is selected. In addition, the message indexes {11, 12, 13} are set to "don't care" and the calculation indexes are also set to "don't care." This produces the MSTFG zdd 222 shown in Fig. 18. To produce the Result zdd 220, module 156 calls the SelectE routine 201 to apply the Result zdd 136 against MSTFG zdd 222. The Elective Result zdd 220 is then stored in module 158 (Fig. 12) for subsequent access by the Advice Interpretation module 157. Result zdd 136 was previously generated during the Elective Events zdd construction, as discussed in connection with Fig. 11.
Chart 230 of Fig. 19 describes how to interpret the advice results, e.g., how module 157 (Fig. 12) interprets the results of the prime advice 214 (Fig. 17) as well as the Elective Results advice zdd 220 (Fig. 18) in view of user inputs. A first step preferably comprises confirming that user selections in column 232 of Fig. 19 entered at step 140 (Fig. 12) are present in prime advice column 234. Since none of the user inputs {5, 8} appear in the prime advice column 234, the validity status in column 236 for group "1" and group "3" is set to "invalid." The status of group "zero" and group "2" remains valid. A second step preferably comprises confirming that prime groups have at least one index marked "on" in prime advice column 234. Since all groups in the specified example illustrated in chart 230 satisfy this condition, no action is taken and no additional group in the group validity column 236 is marked "invalid." A third step preferably includes determining overall validity, which is based on the validity status of all groups in the illustrated example. Overall validity is attained when all groups of column 236 are "valid." In this case, group "zero" and group "2" are valid and group "1" and group "3" are invalid. Therefore, overall validity of the rale model is "invalid." A fourth step preferably comprises determining conflict advice for the groups. If a group is "invalid" and has other "valid" choices, then it will have conflict advice. The presence of available conflict advice is noted by a "yes" or "no" in column 238. For the example shown in Fig. 19, group "1" .and group "3" is marked "yes" in conflict advice column 238 since other valid choices exists in the respective groups. For example, group "1" is invalid but changing the user input to "low" pressure or "medium" pressure will render the group valid. A fifth step preferably includes placing selection advice notations, e.g., a "+" sign or a "-" sign, on labels for each group item, e.g., enumerations in column 242. The applied label is a direct function of the asserted, i.e., boxed, nodes in the prime advice column 234. The enumerations or parameters associated with asserted nodes {0, 1, 3, 4, 6, 7, 9, 10} bear a "+" sign label, which enumerations or parameters associated with non- asserted nodes {2, 5, 8} bear a "-" sign label. A sixth and final step preferably includes interpreting the elective advice where an elective term that is "on" in the elective events column 240 is executed, the illustrated example, messages MessR for rubber and MessS for silicone are executed, e.g., displayed. No calculations are performed.
Interpreting elective advice and triggering elective events are now described. As previously indicated, elective events control the display of messages and the execution of calculations. In some cases it may be sufficient to merely select or deselect a particular message/calculation for display/execution, h the general case, it is preferable to allow elective events to control selection from several alternative texts of a message or from several alternative expressions of a calculation. The simple select/deselect case is but a special scenario of the more general selection-among-alternates case. The maintenance or rale entry tool supports a general, selection-among-alternates case by allowing multiple text messages to be maintained for each message and multiple expressions to be maintained for each calculation.
Since there are multiple alternate texts/expressions for messages/calculations, situations may arise where elective advice calls for several of the alternatives to be displayed/executed simultaneously. Since only one of the alternatives can be displayed/executed at any one time, elective priority is established between the alternatives. The alternative text/expression with the lowest priority value is displayed executed. Priority values may be associated with the respective messages and/or calculation and entered during rule entry to achieve this purpose. Optional Embodiments
In the simple case, an expression of a calculation is selected for execution through elective advice, the expression is executed, and the result returned and communicated to the user when appropriate. In the more general case, it may be preferable to allow the result of one calculation to be used in the computation of another calculation, and the subsequent result used as well, and so on, recursively. This creates dependencies between calculations which, in turn, force execution of calculations in a particular sequence so as to obtain the proper or intended result. A proper execution sequence is easily obtained by arranging the various references in a dependency tree and performing a depth-first ordering or topological sort within the dependency tree. Calculation sequencing may be performed during the packaging step to achieve this purpose. Further, circularity of reference can be easily detected through this same ordering mechanism. Since computation of a set of circularly referenced calculations cannot be accomplished, the model maintenance tool checks for circularity as each reference is entered. Depth-first ordering or topological sort algorithms are well described in several standard software engineering texts (see "Fundamentals of Data Structures" by E. Horowitz & S. Sahni, Computer Science Press, Inc. ISBN 0-914894-20'X Copyright 1976 pp 310-315).
Making selections is easily achieved. The illustrated example shows selections for pH, pressure, and thickness being set using a conventional drop-down list (Fig. 13) manipulated by an end user. Selection may also be accomplished with other GUI controls such as radio-buttons, menu selections, etc., or from another program using no interface at all.
In addition, for some inputs, particularly inputs of numeric values, a user may desire to enter a specific numeric or alphabetic value rather than select a choice from a list of parameters or enumerations. In the case of thickness for example, the user may wish to enter the value "22." This scalar input value can be used to determine the correct selection of a segmented range by comparing the scalar value with minimum and maximum values for each of the thickness selections embedded among the pre-defined thickness enumerations. In the case of an entry "22," the input module 140 (Fig. 12) automatically selects 0-25 mm thickness on behalf of the user. Maximum and minimum ranging values are maintained by the model maintenance tool to achieve this purpose. For some inputs, the user may wish to enter a set of values and execute a calculation to determine the desired selection. For instance a user may wish to enter the circumference and width of an oval cross section and have a calculation determine the corresponding thickness. Input module 140 (Fig. 12) may automatically determine the resultant value and select the appropriate selection through ranging as previously described. Special input calculations are maintained by the rale entry tool to achieve this purpose. These special input calculations are maintained independent of the output calculations described elsewhere and are not coupled to elective processing.
The exemplary rale and processes therefore described herein provides a basis for extending application of the invention to the provisions of business and engineering products and services, generally. Automation of large-scale and/or small-scale systems may take advantage of the rale processing techniques of the invention. Use of terms such as attributes, enumerations, parameters, etc. to describe a rale is not made in the restrictive sense but is intended to include a broad range of properties or characteristics associated with a rale. Even though directed acylic graphs such as binary decision diagrams are preferred for rale representation, they are in no way limiting to the type of rale representation or manipulation embraced by the invention. For example, a method or system that emulates relations between attributes and enumerations, and relations between attributes, to provide an indication of satisfiability or advice to achieve satisfiability according to the teachings herein falls within the scope of the present invention. Accordingly, the invention includes such software emulations and systems predicated on the teachings herein. Also, an overall or prime rule to be automated may be predicated only on one type of rale component or sub-part, and need not be segmented or processed as an include rale or rule component, or an exclude rale or rule components.
APPENDIX
Execution Engine Pseudocodes
Routines referenced, but not pseudocoded:
AddPrimeOptionsToTerms (Groups, Terms, AdviceTerms) Add the options fromAdviceTerms to Groups and Terms.
Getϋnique ndexesFromTree
A routine that will traverse a Zdd and return the set of unique indexes found in the Zdd.
M z (index, low, high)
The zdd analog to the ROBDD MK function. It will find (or create) a new node in the zdd, which has a matching index, low leg and high leg. This routine enforces the zero suppression required by zdd's.
MakeSelectionTermFor Group pseudocode:
Description: This routine builds a zdd that will be used in subsequent select operations. It uses the set of terms, groups, related groups and the flags to build the tree for different situations. For example, when selecting terms from the elective zdd, don't cares are not used.
This routine also takes into account when
Given:
Groups = The set of groups for this tree . Terms = The set of terms for this tree.
GroupOfInterest = The group to be excluded on this tree.
UseDontCares = True if Don't cares should be added.
RelatedGroups = Set of groups related to current group.
Produces : Result = The new selection term tree that will be used by
Select (or SelectElective)
Function MakeSelectionTermForGroup (Groups, Terms, GroupOfInterest, UseDontCares, RelatedGroups) Result = 1;
// TODO: Major work needed in here ...
For each var in Zdd from last to first group = GetGroupOfVar (var)
If group <> GroupOflnterest then
If group is in Groups then
If group is in RelatedGroups then
If group has a term then If GroupO lnterest is not specified then
MSTFG = MKz (var, MSTFG, zero) // Elective only
Else
MSTFG = MKz (var, MSTFG, MSTFG)
End If Else If groupType = 1 then
MSTFG a MKz (var, MSTFG, MSTFG) // Message group
End If
Else
MSTFG = MKz (var, MSTFG, MSTFG) End If
Else
If UseDontCares then MSTFG = MKz (var, MSTFG, MSTFG)
End If
Else If UseDontCares then MSTFG = MKz (var, MSTFG, MSTFG)
End If
Next
Return MSTFG End Function MakeSelectionTermForGroup
Advice, an algorithm which returns the conflict advice and options given a prime Zdd and its selection term:
Given : Prime = The prime zdd.
Groups = The set of groups to be considered.
Terms = The set of terms to be considered.
Produces :
Result = The resulting set of terms.
Function Advice (Prime, Groups, Terms)
Foundlnclude = Selectionlnclude (Primelnclude, AttrRels, Terms, Groups)
FoundExclude = Selectionlnclude (PrimeExclude, Terms, Groups)
Result = Foundlnclude NOR FoundExclude
Return Result
End Function Advice
Selectionlnclude routine:
Given:
Primelnclude = The prime include zdd. Groups = The set of groups to be considered. Terms = The set of terms to be considered. AttrRels = The attributes relations zdd. Produces : Result = Set of terms from the Include Zdd that match this selection. Function Selectionlnclude (Primelnclude, AttrRels, Terms, Groups)
For each Group in Groups
Term = GetTermForGroup (Terms, Group)
RelatedGroups = SelectionRelated (AttrRels, Term, Group)
SelectTerm = MakeSelectionTermForGroup (Groups, Terms, -1, true, RelatedGroups) IncludeAdvice = Select (Primelnclude, SelectTerm)
Result = Result + GetAdviceForGroup (Group) Next Term Return Result End Function
SelectionRelated routine:
Given: AttrRels = The attribute relationships zdd. Group = The set of groups to be considered. Produces : Result = Set of terms from the Exclude Zdd that match this selection. Function Selectionlnclude (AttrRels, Group)
RelTerms = MakeSelectionTermForGroup (AllGroups, Group, -1, true, RelatedGroups) Result = Intersect (AttrRels, RelTerms) Return Result End Function
SelectionExclude routine:
Given:
PrimeExclude = The prime include zdd. Groups = The set of groups to be considered. Terms = The set of terms to be considered. Produces : Result = Set of terms from the Exclude Zdd that match this selection. Function SelectionExclude (PrimeExclude, Terms, Groups)
SelectTerms = MakeSelectionTermForGroup (Groups, Terms, -1, true, RelatedGroups)
ExcludeAdvice = SelectE (PrimeExclude, SelectTerm)
Result = ReduceX (ExcludeAdvice, SelectTerms)
Return Result End Function
ElectiveSelect routine:
Given: Elective = The elective zdd.
Groups = The set of groups to be considered. Terms = The set of terms to be considered. AdviceTerms = Terms from prime advice (optional) Produces : Result = Set of terms that match this selection.
Function ElectiveSelect (Elective, Groups, Terms, AdviceTerms) AddPrimeOptionsToTerms (Groups, Terms, AdviceTerms)
SelectTerm = MakeSelectionTermForGrou (Groups, Terms, -1, false) RT = SelectE (Elective, SelectTerm)
//Add all unique indexes in r to the result list. Result = GetUniqueIndexesFromTree(RT, -1) Return Result End Function ElectiveSelect
Select, an algorithm for selecting the set of mintenns from a zdd Prime that meets the conditions of the zdd TermTree.
Given:
Prime = Prime Zdd. TermTree = Term to select against .
Function Select (Prime, TermTree) if TermTree = 1 then return Prime if TermTree = 0 then return 0 if Prime = 0 or Prime = 1 then return Prime if var (TermTree) < var (Prime) then if high (TermTree) = low(TermTree) return Select (Prime, high (TermTree) ) else return 0 else if var (TermTree) = var (Prime) return MKz (var (Prime) , Select (lo (Prime) , low (TermTree) ) ,
Select (high(Prime) , high(TermTree) ) ) else if var (Prime) < var (TermTree) return Select (low (Prime) , TermTree)
End Function Select
SelectE, an algorithm for selecting the set of minterms from the elective zdd Elective that meets the conditions of the zdd TermTree.
Given:
Elective = Elective Zdd. TermTree = Term Zdd to select against .
Function SelectE (Elective, TermTree) if TermTree = 1 then return Elective if TermTree = 0 then return 0 if Elective = 0 or Elective = 1 then return Elective if var (TermTree) < va (Elective) then if high (TermTree) = 1 return 0 else return SelectE (Elective, high(TermTree) ) else if var (TermTree) = var (Elective) return MKz (var (Elective) , SelectE (low (Elective) , TermTree),
SelectE (high(Elective) , high(TermTree) ) ) else if var (Elective) < var (TermTree) return SelectE (lo (Elective) , TermTree)
End Function SelectE

Claims

1. A method of rule processing comprising: obtaining a zero-suppressed binary decision diagram representing a rale, applying a series of inputs to the binary decision diagram to produce a result indicative of satisfiability of the rale, and providing at least one of selection and conflict advice along with the result.
2. A method of rale processing comprising: ordering components of a rule defined by relationships between attributes and enumerations thereof, and by relationships between attributes, producing a relational representation of order components of the rale suitable for logic processing, obtaining inputs related to the attributes and enumerations, and applying the inputs to the relational representation to produce a result indicative of satisfiability of the rule relative to the inputs.
3. The method of claim 2, further comprising: providing at least one of selection and conflict advice along with the result.
4. A method of automating a decision based on a rule comprising: assigning an order to parameters of a rule having multiple interrelated rale components, providing an ordered, directed acylic graphic representation of the rale wherein said graphic representation includes ordered rule components embedded therein indicative of the interrelated rale components, applying to the acylic graphical representation a series of user inputs having parameters related to an assigned ordering, and producing a result indicative of satisfaction of the rale relative to the user inputs.
5. The method of claim 4, wherein the directed acylic graphic representation comprises zero-suppressed binary decision diagrams.
6. The method of claim 5, further comprising: providing conflict and selection advice along with the result to guide selection of user inputs.
7. A decision automation method comprising: defining a rule to be processed, constructing a representation of the rule that includes a series of ordered components indicative of relationships between and among attributes and enumerations of the rule, generating a rale model embodying ordered components, and applying a series of inputs to the representation that are associated with the ordered components to produce of result indicative of rule satisfaction.
8. The decision automation method of claim 7, further comprising: providing at least one of selection and conflict advice to guide a user's selection of inputs.
9. The decision automation method of claim 8, wherein the constructing step includes constructing a series of zero-suppressed binary decision diagrams representing the series of ordered components.
10. A method of automating determination of a decision based on a prime rule model based on a set of rale components, said method comprising: defining attributes and enumeration along with relationships between said attributes and enumeration tot characterize the prime rule model, ordering the attributes and enumerations to provide a basis to uniquely define ordered rale components, translating the ordered rule components to a reduced canonical polynomial, accessing the reduced canonical polynomial to build a set of zero-suppressed binary decision diagrams respectively indicative of the rule components and relationships thereof, combining the binary decision diagrams to produce a representation of the prime rule model to be automated, and applying user inputs to the rale model to produce a result.
11. The method of claim 10, wherein the rule components are separated into include components and exclude components and said zero-suppressed binary decision diagrams are separately build for the include and exclude rales.
12. The method of claim 11 , further comprising: providing at least one of selection and conflict advice to guide selection of user inputs.
13. The method of claim 11 , further including reordering nodes of the binary decision diagram to reduce the complexity thereof.
14. The method of claim 12, further including associating messages upon certain conditions obtained during rule processing and communicating said messages to a user.
15. The method of claim 12, further including performing a calculation upon certain conditions obtained during rule processing and communicating results of said calculation to a user.
16. A method of assessing satisfiability of a rule based on a set of relationships between attributes and enumerations associated with the attributes as well as on a set of relationships between attributes, the method comprising: converting the rale to a canonical storage database that includes uniquely addressable records indicative of the relationships, producing a series of binary decision diagrams based on the canonical storage database to represent relationships of the rule in an ordered foπn, combining the binary decision diagrams to form a prime binary decision diagram indicative of multidimensional relationships, and executing the prime binary decision diagram in an decision processor that determines a condition of satisfiability of the rule by testing the primary binary decision diagram using a set of attributes and enumerations supplied thereto.
17. The method of claim 16, wherein said combining step includes reordering nodes thereof to minimize complexity of the multidimensional relationship.
18. The method of claim 16, further comprising separately processing include rules, exclude rules, and relationships between attributes during the producing step.
19. The method of claim 18, further comprising providing conflict and selection advice.
20. A method of automating determination of a decision that is based on a complex rule predicated a set of rule components each of which defining a relationship between one or more attributes and properties, the method comprising: developing a series of relationship diagrams representing the component rules by forming ordered entries in a matrix, said entries being indicative of inclusion, exclusion, or a null condition relative to a relationship between at least one attribute and at least one property; generating respective binary decision diagrams for each of the respective component rales based on the relationship diagrams, said binary decision diagrams including respective node representations that correspond to the ordered entries in the respective relationship diagrams; forming a master interrelationship diagram representative of the combined set of component rales by combining the respective binary decision diagrams representative of the rale components; and deploying the master interrelationship diagram in a decision processor to provide decision support via an indication of satisfiability of said primary rale relative to a given set of attributes and properties of the rale components.
21. A method of rule processing to automate determination of a result that is based on a complex rule predicated a set of rales each of which defining a relationship between first mid second attributes, the method comprising: segmenting the complex rale into component rales that represent relationships between first and second attributes and properties, developing a number of relationship diagrams representing the component rules by forming positional entries in a matrix representation, said entries being indicative of inclusion, exclusion, or a null condition relative to a relationship between at least one of the first and second attributes, generating respective binary decision diagrams for each of the respective component rales based on the relationship diagrams, said binary decision diagrams including respective nodal representations that correspond to the positional entries in the respective relationship diagrams, forming a master interrelationship diagram representative of the combined set of component rales by combining the respective binary decision diagrams representative of the rale components, and deploying the master interrelationship diagram in a decision processor to provide decision support via an indication of satisfiability of said primary rule relative to a given set of first and second attributes
22. The method of claim 21, wherein the deploying step comprises: enabling access to the decision processor via a user interface, displaying a set of parameters associated with the rule components, providing selectable choices among said parameters, processing choices selected by a user by the decision processor to test satisfiability of said set of rules using the selected choices, and communicating to the user an indicia of satisfiability of said rale with the selected choice of parameters.
23. The method of claim 22, wherein said communication step includes providing an indication of conflict between selected parameters.
24. The method of claim 22, further including providing selection advice that identifies which parameters to change to render the primary rale satisfied.
25. The method of claim 22, further including communicating one or messages and calculations associated with choices selected by the user.
26. The method of claim 22, further including enabling access to the decision processor via a network.
27. The method as recited in claim 22, wherein the developing step includes: providing a user interface, receiving first entries at the interface that represent the attributes, and receiving second entries at the interface the represent properties of the attributes.
28. The method of claim 21, wherein the generating step includes generating zero- suppressed binary decision diagrams based on the relationship diagrams.
29. The method of claim 22, wherein the generating step includes generating zero- suppressed binary decision diagrams based on the relationship diagrams
30. A rule-based processing method of automating a decision comprising producing a representation of a master interrelationship diagram that represents a business rale composed of a set of interrelated rale components where each rale component defines a relationship between at least one attribute and at least one property, generating a binary decision diagram based on the interrelationship diagram, and testing satisfiability the binary decision diagram in accordance with variation of a rule component.
31. The method of claim 30, wherein the generating step includes converting the binary decision diagram to a zero-suppressed binary decision diagram before the testing step.
32. The method of claim 31 wherein the producing step includes defining relationships between attribute and property pairs as one of valid, invalid, and null [i.e. don't care].
33. The method of claim 32, wherein the testing step includes providing an indication of which rule component creates a conflict in response to said testing with a variation in of the rule component.
34. The method of claim 32, wherein the testing step includes providing at least one selectable option to vary another rule component to render the zero-suppressed binary decision diagram satisfied in response to the variation of the rale component.
35. The method of claim 33, wherein the testing step includes providing at least one selectable option to vary another rule component to render the zero-suppressed binary decision diagram satisfied in response to the variation of the rale component.
36. A rule-based processing method comprising producing a representation of a zero- suppressed binary decision diagram that represents a rale and testing the representation to determine a condition of satisfiability under a given set of inputs that represent parameters of the rule.
37. A rule-based processing method comprising producing a representation of a binary decision diagram that represents a rule, testing the representation to determine a condition of satisfiability under a given set of inputs representing parameters of the rale, and in response to an unsatisfied condition, identifying a selection of at least one parameter that renders the representation satisfied.
38. A rale-based processing method comprising producing a representation of a zero- suppressed binary decision diagram that represents a rale, testing the representation to determine a condition of satisfiability under a given set of inputs that represent parameters of the rule, and in response to said testing, identifying a relationship with respect to parameters that render the representation satisfied or unsatisfied.
39. A rule-based processing method comprising producing a representation of a binary decision diagram that represents a rule, testing the representation to determine a condition of satisfiability under a given set of inputs that represent parameters of the rale, and in response to the testing, identifying at least one other parameter that renders the representation satisfied or unsatisfied.
40. A rale-based processing method comprising producing a representation of a series of relational diagrams that represent multiple rule components, converting the series of relational diagrams to a directed acylic graph representing a prime rale, testing the prime rale to determine a condition of satisfiability under a given set of inputs representing parameters of the multiple rale components, and in response 'to an unsatisfied condition, identifying at least one other parameter that renders the master rale satisfied.
41. A rale processing device comprising: a set of zero-suppressed binary decision diagram representing a rale, an execution engine that receives user inputs for application to the set of binary decision diagram to produce a result indicative of satisfiability of the rale, and an advice module that provides at least one of selection and conflict advice along with the result.
42. A rale processing system comprising: a rule defined by ordering of respective relationships between attributes and enumeration thereof as well as ordering of relationships between respective attributes, a relational representation of said ordering suitable for logic processing, an input device that obtains a series of inputs related to said attributes and enumerations, and an execution engine responsive to the inputs and the relational representation to produce a result indicative of satisfiability of the rale relative to the inputs.
43. The system of claim 42, wherein said execution engine provides at least one of selection and conflict advice along with the result.
44. A rule processing system that automates determination of a decision based on a rule comprising: a rale definition device that assigns an order to parameters of a rule having multiple interrelated rale components, a rale packaging device that produces an ordered, directed acylic graphic representation of the rale wherein said graphic representation includes ordered rale components embedded therein indicative of the interrelated rale components, and an execution engine that applies to the acylic graphical representation a series of user inputs having parameters related to an assigned ordering in order to produce a result indicative of satisfaction of the rale relative to the user inputs.
45. The system of claim 44, wherein the directed acylic graphic representation comprises zero-suppressed binary decision diagrams.
46. The system of claim 45, wherein the execution engine provides conflict and selection advice along with the result to guide selection of user inputs.
47. A decision automation apparatus comprising: a representation of a rale that comprises a series of ordered parameters indicative of relationships between or among attributes and enumerations of the rule, a set of user inputs being associated with the ordered parameters, and an execution engine that applies the set of user inputs to the representation to produce of result indicative of rule satisfaction.
48. The apparatus of claim 47, wherein said execution engine provides at least one of selection and conflict advice to guide a user's selection of inputs.
49. The apparatus of claim 47, wherein the representation comprises a zero-suppressed binary decision diagram.
50. A decision automation system that determines the outcome of a decision based on a prime rale model having a set of rale components, said system comprising: a rale entry module to enable definition of attributes and enumeration along with relationships between said attributes and enumeration tot characterize the prime rale model, a packaging module that orders the attributes and enumerations to provide a basis to uniquely define ordered rale components, a translation module that translates the ordered rule components to a reduced canonical polynomial, and a packaging module that accesses the reduced canonical polynomial to build a set of zero-suppressed binary decision diagrams respectively indicative of the rule components and relationships thereof and combines the binary decision diagrams to produce a representation of the prime rale model to be automated, and an execution module that applies user inputs to the rale model to produce a result.
51. The system of claim 50, wherein the rale components are separated into include components and exclude components and said zero-suppressed binary decision diagrams are separately build for the include and exclude rales.
52. The system of claim 51 , wherein said execution module provides at least one of selection and conflict advice to guide selection of user inputs.
53. The system of claim 51, wherein said packaging module reorders nodes of the binary decision diagram to reduce the complexity thereof.
54. The system of claim 52, wherein the execution module communicates messages to an end user in response to certain conditions obtained during rale processing.
55. The system of claim 52, wherein the execution module performs a calculation in response to certain conditions obtained during rale processing and communicating results of said calculation to a user.
56. An apparatus that assesses satisfiability of a rale based on a set of relationships between attributes and enumerations associated with the attributes as well as on a set of relationships between attributes, the apparatus comprising: a first module that converts the rale to a canonical storage database that includes uniquely addressable records indicative of the relationships, a second module that produces a series of binary decision diagrams based on the canonical storage database to represent relationships of the rule in an ordered form, a third module that combines the binary decision diagrams to form a prime binary decision diagram indicative of multidimensional relationships, and a fourth modules that executes the prime binary decision diagram in an decision processor to determines a condition of satisfiability of the rale by testing the primary binary decision diagram using a set of attributes and enumerations supplied thereto.
57. The apparatus of claim 56, including a fifth module that reorders nodes of the prime binary decision diagram to minimize complexity of the multidimensional relationship.
58. The apparatus of claim 56, including a sixth module that separately processes include rules, exclude rules, and relationships between attributes during the producing step.
59. The apparatus of claim 58, further including a seventh module that provides conflict and selection advice.
60. A decision automation system that provides decision based on a complex rale predicated a set of rale components each of which defining a relationship between one or more attributes and properties, the system comprising: a rale entry device the enables development of a series of relationship diagrams representing the component rales by forming ordered entries in a matrix, said entries being indicative of inclusion, exclusion, or a null condition relative to a relationship between at least one attribute and at least one property, a BDD module that generates respective binary decision diagrams for each of the respective component rales based on the relationship diagrams, said binary decision diagrams including respective node representations that correspond to the ordered entries in the respective relationship diagrams; a packaging module that forms a master interrelationship diagram representative of the combined set of component rales by combining the respective binary decision diagrams representative of the rale components; and an execution module that deploys the master interrelationship diagram in a decision processor to provide decision support via an indication of satisfiability of said complex rale relative to a given set of attributes and properties of the rule components.
61. A system that provides rale processing to automate determination of a result that is based on a complex rale predicated a set of rales each of which defining a relationship between first and second attributes, the system comprising: a segmenting routine that segments the complex rale into component rales that represent relationships between first and second attributes and properties; a relational diagram module that develops a number of relationship diagrams representing the component rales by forming positional entries in a matrix representation, said entries being indicative of inclusion, exclusion, or a null condition relative to a relationship between at least one of the first and second attributes; a BDD module that generates respective binary decision diagrams for each of the respective component rules based on the relationship diagrams, said binary decision diagrams including respective nodal representations that correspond to the positional entries in the respective relationship diagrams; a prime rule module that forms a master interrelationship diagram representative of the combined set of component rales by combining the respective binary decision diagrams representative of the rale components; and an execution modules that deploys the master interrelationship diagram in. a decision processor to provide decision support via an indication of satisfiability of said master interrelationship diagram relative to a given set of first and second attributes
62. The system of claim 61 , wherein the execution module: enables access to the decision processor via a user interface, displays a set of parameters associated with the rale components, provides selectable choices among said parameters, processes choices selected by a user by the decision processor to test satisfiability of said set of rales using the selected choices, and communicates to the user an indicia of satisfiability of said rale with the selected choice of parameters.
63. The system of claim 62, wherein the execution module provides an indication of conflict between selected parameters.
64. The system of claim 62, wherein the execution modules provides selection advice that identifies which parameters to change to render the primary rule satisfied.
65. The system of claim 62, wherein the execution module communicates one or messages and calculations associated with choices selected by the user.
66. The method of claim 61 , wherein the BDD modules generates zero-suppressed binary decision diagrams based on the relationship diagrams.
67. A rule-based processing system that produces a representation of a master interrelationship diagram that represents a business rule composed of a set of interrelated rule components where each rale component defines a relationship between at least one attribute and at least one property, generates a binary decision diagram based on the interrelationship diagram, and tests satisfiability the binary decision diagram in accordance with variation of a rule component.
68. The rule-base processing system of claim 67, that converts the binary decision diagram to a zero-suppressed binary decision diagram before the testing step.
69. The rule-base processing system of claim 68, that further provides an indication of which rule component creates a conflict in response to said testing with a variation in of the rule component.
70. The rule-base processing system of claim 69, that further provides at least one selectable option to vary a rale component to render the zero-suppressed binary decision diagram satisfied in response to the variation of the rale component.
71. A rule-based processing apparatus that produces a representation of a zero-suppressed binary decision diagram to represent a rule and that tests the representation to determine a condition of satisfiability under a given set of inputs that represent parameters of the rale.
72. A rule-based processing apparatus comprising a module that produces a representation of a binary decision diagram that represents a rale, that tests the representation to determine a condition of satisfiability under a given set of inputs representing parameters of the rale, and in response to an unsatisfied condition, that identifies a selection of at least one parameter that renders the representation satisfied.
73. A rule-based processing system comprising a modules that produces a representation of a zero-suppressed binary decision diagram to represent a rule, that tests the representation to determine a condition of satisfiability under a given set of inputs that represent parameters of the rale, and in response to said testing, that identifies a relationship with respect to parameters to render the representation satisfied or unsatisfied.
74. A rule-based processing system comprising a first module that produces a representation of a binary decision diagram that represents a rule, a second module that tests the representation to determine a condition of satisfiability under a given set of inputs that represent parameters of the rale, and in response to the testing, a third module that identifies at least one other parameter that renders the representation satisfied or unsatisfied.
75. A rule-based processing system comprising a first module that produces a representation of a series of relational diagrams that represent multiple rale components, a second modules that converts the series of relational diagrams to a directed acylic graph representing a prime rale, a third module that tests the prime rale to determine a condition of satisfiability under a given set of inputs representing parameters of the multiple rale components, and in response to an unsatisfied condition, a fourth module that identifies least one other parameter that renders the master rale satisfied.
76. A system that determines compliance of a rule, said system comprising a zero- suppressed binary decision diagram to represent the rale, said zero-suppressed binary decision diagram being derived from rule components that indicate inclusion, exclusion, or a null condition relative to relationships between one or more parameters, and an execution engine that accesses the zero-suppressed binary decision diagram to determine compliance of the rale based on a given set of input parameters.
77. The system as recited in claim 76, wherein the parameters comprise attributes and enumerations of said attributes.
78. The system of claim 76, wherein said execution engine effects further testing of the zero-suppressed binary decision diagr.am to determine conflicting .and satisfying rale parameters for communication to a user.
79. The system of claim 76, wherein said rale processing engine provides messages associated with certain conditions.
80. A system that automates a decision in accordance with a prime rule, the system comprising a rule processing module characterizing relationships among a set of rales that define relationships between at least one attribute and a property thereof, said rale processing module being representative of a zero-suppressed binary decision diagram, and an execution module that tests for a condition of satisfiability of said prime rale via the zero-suppressed binary decision diagram in accordance with selected attribute-properties relationship pairs of a rule.
81. A rale compliance system that analyzes a set of parameters to determine compliance with a set of rales, said system comprising: a rule processing engine utilizing binary decision diagrams to represent the set of rules, an access terminal that provides access to the rule processing engine to enable inputting of said rales via a user interface, and an execution station that provides a result, said execution station including a monitor that communicates a set of parameters associated with the rales, that provides selectable choices among said parameters, that processing choices selected by the user by testing satisfaction of said set of rules, and that communicates the user an indicia of compliance or non-compliance of a selected choice of parameters.
82. The system of claim 81, wherein said execution station provides an indication of conflict between selected parameters.
83. The system of claim 81, wherein said binary decision diagrams are zero-suppressed.
84. A rule-based processing system for automating a decision comprising a rule processing engine that employs a representative form of an binary diagram interrelationship indicative of a business rale, said business rale composed of a set of interrelated rale components where each rule component defines a relationship between at least one attribute and at least one property, a database that stores a representation of said interrelationship diagram, and a testing platform that tests for conditions of satisfiability of the binary interrelationship diagram in accordance with variation of said interrelated rale components.
85. The processing system of claim 84, wherein the binary diagram comprises a zero- suppressed binary decision diagram.
86. The processing system of claim 84, wherein the testing platform provides an indication of which rale component creates a conflict in response to said testing.
87. The processing system of claim 84, wherein the testing platform includes at least one selectable option to vary another rule component to render the zero-suppressed binary decision diagram satisfied in response to the variation of the rule component.
88. The processing system of claim 84, wherein the testing platform includes at least one selectable option to vary another rale component to render the zero-suppressed binary decision diagram satisfied in response to the variation of the rule component.
89. A rule-based processing system comprising a representation of a binary decision diagram that represents a rule, testing platform that determines a condition of satisfiability under a given set of inputs representing parameters of the rule, and in response to .an unsatisfied condition, identifying a selection of a relationship with respect to at least one other parameter that renders the representation satisfied.
90. A rule-based processing system comprising a digital representation in a memory of a binary decision diagram that represents a rule, a routine that effects accessing the memory to invoke a test of whether the rules is satisfied under a given set of inputs that represent relationships among parameters of the rule, and in response to the testing, said routine initiates an identification of at least one other parameter that renders the representation satisfied.
91. A rule-based processing system comprising a representation of a series of binary decision diagrams that represent multiple rule components, a first routine that converts the series of binary decision diagrams to a master binary decision diagram representing a master rale, a second routine that tests the master rule through the master binary decision diagram to determine a condition of satisfiability under a given set of inputs representing parameters of the multiple rale components, and in response to an unsatisfied condition, a third routine that identifies at least one other parameter that renders the master rale satisfied.
EP03716683A 2002-03-20 2003-03-19 Rule processing system and method Withdrawn EP1512085A4 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US36551702P 2002-03-20 2002-03-20
US365517P 2002-03-20
PCT/US2003/008265 WO2003081478A1 (en) 2002-03-20 2003-03-19 Rule processing system and method

Publications (2)

Publication Number Publication Date
EP1512085A1 true EP1512085A1 (en) 2005-03-09
EP1512085A4 EP1512085A4 (en) 2010-08-04

Family

ID=28454668

Family Applications (1)

Application Number Title Priority Date Filing Date
EP03716683A Withdrawn EP1512085A4 (en) 2002-03-20 2003-03-19 Rule processing system and method

Country Status (4)

Country Link
EP (1) EP1512085A4 (en)
AU (1) AU2003220382A1 (en)
CA (1) CA2479342A1 (en)
WO (1) WO2003081478A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7188091B2 (en) 2001-03-21 2007-03-06 Resolutionebs, Inc. Rule processing system
US7761397B2 (en) 2001-03-21 2010-07-20 Huelsman David L Rule processing method and apparatus providing automatic user input selections
US7062478B1 (en) 2002-03-20 2006-06-13 Resolutionebs, Inc. Method and apparatus using automated rule processing to configure a product or service
US7552102B2 (en) 2003-09-29 2009-06-23 Huelsman David L Rule processing method, apparatus, and computer-readable medium to provide improved selection advice
US7734559B2 (en) 2004-09-28 2010-06-08 Huelsman David L Rule processing method and apparatus providing exclude cover removal to simplify selection and/or conflict advice

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001011463A2 (en) * 1999-08-04 2001-02-15 Mdsi Mobile Data Solutions, Inc. System and method for creating validation rules used to confirm input data
US6226656B1 (en) * 1998-11-12 2001-05-01 Sourcefinder, Inc. System and method for creating, generating and processing user-defined generic specs

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805462A (en) * 1995-08-18 1998-09-08 Vlsi Technology, Inc. Automatic synthesis of integrated circuits employing boolean decomposition
US6163876A (en) * 1998-11-06 2000-12-19 Nec Usa, Inc. Method for verification of RTL generated from scheduled behavior in a high-level synthesis flow

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226656B1 (en) * 1998-11-12 2001-05-01 Sourcefinder, Inc. System and method for creating, generating and processing user-defined generic specs
WO2001011463A2 (en) * 1999-08-04 2001-02-15 Mdsi Mobile Data Solutions, Inc. System and method for creating validation rules used to confirm input data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of WO03081478A1 *

Also Published As

Publication number Publication date
WO2003081478A1 (en) 2003-10-02
EP1512085A4 (en) 2010-08-04
AU2003220382A1 (en) 2003-10-08
CA2479342A1 (en) 2003-10-02
WO2003081478A8 (en) 2005-03-24

Similar Documents

Publication Publication Date Title
US6965887B2 (en) Rule processing methods for automating a decision and assessing satisfiability of rule-based decision diagrams
US7188091B2 (en) Rule processing system
US8732107B2 (en) Method and system for capturing business rules for automated decision procession
US6934696B1 (en) Custom rule system and method for expert systems
Tilley et al. A survey of formal concept analysis support for software engineering activities
US7774293B2 (en) System and methods for assessing risk using hybrid causal logic
US20070079237A1 (en) Computer system and method including an operation performed in a manner based on a determined activity
Attwal et al. Exploring data mining tool-Weka and using Weka to build and evaluate predictive models
WO2012037168A2 (en) Software design and automatic coding for parallel computing
CN105260300B (en) Service test method based on accounting standard universal classification standard application platform
CN115170048B (en) Workflow realization method, system and medium based on model and rule
Liu et al. Aggregated dendrograms for visual comparison between many phylogenetic trees
US8572551B2 (en) Difference log production for model merging
Sahraoui et al. A concept formation based approach to object identification in procedural code
EP1512085A1 (en) Rule processing system and method
JP6820956B2 (en) Systems and methods for identifying information relevant to a company
Kim et al. AppBuilder for DSSTools: an application development environment for developing decision support systems in Prolog
Barford et al. Attribute grammars in constraint‐based graphics systems
Delima et al. Goal-oriented requirements engineering: State of the art and research trend
EP0531319A4 (en)
Sfayhi et al. What you see is what you asked for: An effort-based transformation of code analysis tasks into interactive visualization scenarios
Telea An open architecture for visual reverse engineering
Gulla et al. Experiences with the use of a configuration language
Padilla-Rascon et al. SDRDPy: An application to graphically visualize the knowledge obtained with supervised descriptive rule algorithms
Purnell et al. Check for updates User-Guided Machine Understanding of Legal Documents

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20041018

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL LT LV MK

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: VERDE SABOR ASSETS, LLC

A4 Supplementary search report drawn up and despatched

Effective date: 20100702

17Q First examination report despatched

Effective date: 20101216

17Q First examination report despatched

Effective date: 20110330

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: MINERAL LASSEN LLC

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN

18W Application withdrawn

Effective date: 20181010