US8055604B2 - Rule processing method, apparatus and computer-readable medium to provide improved selection advice - Google Patents

Rule processing method, apparatus and computer-readable medium to provide improved selection advice Download PDF

Info

Publication number
US8055604B2
US8055604B2 US12/467,928 US46792809A US8055604B2 US 8055604 B2 US8055604 B2 US 8055604B2 US 46792809 A US46792809 A US 46792809A US 8055604 B2 US8055604 B2 US 8055604B2
Authority
US
United States
Prior art keywords
rule
selection
components
enumerations
exclude
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.)
Active, expires
Application number
US12/467,928
Other versions
US20090228420A1 (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
Verde Sabor Assets LLC
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 Verde Sabor Assets LLC filed Critical Verde Sabor Assets LLC
Assigned to VERDE SABOR ASSETS, L.L.C. reassignment VERDE SABOR ASSETS, L.L.C. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: RESOLUTION EBS, INC.
Priority to US12/467,928 priority Critical patent/US8055604B2/en
Publication of US20090228420A1 publication Critical patent/US20090228420A1/en
Assigned to RESOLUTIONEBS, INC. reassignment RESOLUTIONEBS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LOVE, SHARON E., HUELSMAN, DAVID L., MAIR, DOUGLAS M.
Assigned to VENTURE LENDING & LEASING IV, INC. reassignment VENTURE LENDING & LEASING IV, INC. SECURITY AGREEMENT Assignors: RESOLUTION EBS, INC.
Assigned to RESOLUTIONEBS, INC. reassignment RESOLUTIONEBS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LOVE, SHARON E., MAIR, DOUGLAS M., HUELSMAN, DAVID L.
Assigned to RESOLUTION EBS, INC. reassignment RESOLUTION EBS, INC. PARTIAL RELEASE OF SECURITY INTEREST Assignors: VENTURE LENDING & LEASING IV, INC.
Publication of US8055604B2 publication Critical patent/US8055604B2/en
Application granted granted Critical
Assigned to MINERAL LASSEN LLC reassignment MINERAL LASSEN LLC MERGER (SEE DOCUMENT FOR DETAILS). Assignors: VERDE SABOR ASSETS, L.L.C.
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising

Definitions

  • This invention relates to a rule processing, but more specifically to a method, apparatus, and computer-readable medium that provides selection advice during rule processing utilizing a binary decision diagram (BDD) or zero-suppressed binary decision diagram (ZDD) to express a rule model.
  • BDD binary decision diagram
  • ZDD zero-suppressed binary decision diagram
  • advice provided by results of rule processing guides an end user in at least two ways.
  • conflict advice may be provided to indicate compatibility of user selection(s) regarding components of a product or service.
  • selection advice may be provided to indicate alternative selection(s) that would render the result compatible and/or incompatible relative to the selected components.
  • the improvements herein primarily relate to selection advice provided to the user during rule processing.
  • a computer-implemented method of providing selection advice in a rule processing system to help guide a user in selecting desired specifications of a product or service characterized by a ZDD rule model having one or more Include or Exclude rules comprises displaying on a monitor or other I/O device multiple attributes having multiple enumerations that identify possible feature, specifications, or conditions of the product or service; selecting via a user interface multiple alternative enumerations of the attributes; determining a selection advice for each of the enumerations selected in said selecting step; combining (such as by logically OR'ing) the selection advice for the enumerations determined in the determining step in order to produce a result; communicating to an end user (such as a customer or consumer of the product or service) the result generated in the combining step; and then using the result to choose a product or service having desired compliant specifications.
  • the determining step may include, for each attribute having multiple enumerations selected, forming a ZDD tree having nodes respectively associated with selected enumerations; and intersecting the tree thus formed with a MakeSelectionTermForGroup ZDD tree used by said rule processing system to determine selection advice.
  • a keyboard and/or pointing device may comprise the I/O device.
  • a central rule component e.g., a hub in a hub and spoke relational environment
  • the determining step of this method may further include combining an attribute relations ZDD representative of the central rule component with an attribute relations ZDD of the ZDD rule model.
  • the determining step may further include assigning a negative selection value to other rule components related to the central rule component when a negative selection is denoted for the another rule component.
  • the central rule component for which a selection is pending relates to other rule components through an Exclude relationship
  • the determining step may include propagating a negative selection value to a rule component under examination when other components related to the centralrule component also has a negative value asserted.
  • Other aspects include searching through Exclude rules to remove non-essential information by removing covers detected therein and/or searching through Exclude rules to detect and remove cyclic covers whereby to reduce the complexity of the Exclude rules.
  • an apparatus that provides selection advice to help guide a user choose a product or service having desired specifications, where the product or service is characterized by a ZDD rule model having one or more Include or Exclude rules, comprising a user interface to display multiple attributes having multiple enumerations that identify possible specifications of the product or service; an I/O device to enable a user to choose multiple alternative enumerations of the attributes in response to display of the attributes and enumerations; and a processor to determine alternative selection advice for each enumeration selected by the user, to combine multiple ones of said selection advice for each enumeration determined thereby to produce a result indicative of selections compliant with the enumerations selected by the user, to communicate the result to the user, and to enable the user to obtain a product or service having desired compliant specifications.
  • the processor for each attribute having multiple enumerations selected, may also generate a ZDD tree having nodes respectively associated with selected enumerations and to intersect the ZDD tree thus generated with
  • a computer-implemented rule processing system that uses a ZDD rule model having multiple ZDD rule components to define compliant specifications of a product or service, a computing device programmed to provide selection advice to guide a user choose compliant specifications where the rule components are related to a common one of said multiple rule components.
  • Such computing device comprises an I/O interface to receive inputs from and to communicate results to the user in response to user selections; and a processor having program instructions to effect acquisition of inputs from the user, to identify a common rule component of the ZDD rule model having a pending selection of an enumeration, to determine selection advice based on alternative selections of enumerations of other attributes related to the common rule component, and to provide the results to a user via the I/O interface thereby to enable the user to choose a product or service having compliant specifications according to the alternative choices of enumerations.
  • the computing device may additionally include program instructions to combine an attribute relations ZDD for the common rule component with an attribute relations ZDD for the ZDD rule model.
  • the processor may include program instructions to assign a negative selection value to other rule components related to the common rule component when a negative selection is denoted for the one other rule component.
  • the processor may include program instructions to propagate a negative selection value to a rule component under examination when other components related to the common rule component also have a negative value asserted.
  • the processor may include program instructions to effect searching through Exclude rules to remove non-essential information by removing covers detected, or to detect and remove cyclic covers whereby to reduce the complexity of the Exclude rules and/or to reduce processing time.
  • a computer-readable medium comprising program instructions to implement rule processing in a computer to provide selection advice that guides a user in selecting features of a product or service characterized by a ZDD rule model having one or more rule components; to display multiple attributes having multiple enumerations that identify possible features of the product or service, to enable the user simultaneously to select multiple alternative enumerations of the attributes, to determine selection advice separately for each enumeration selected by the user, to combine by OR'ing or otherwise the selection advice of each enumeration determined thereby to produce a result, and to communicate the result to a user whereby to enable the user to choose a product or service having compliant features.
  • the program instructions may also generate, for each attribute having multiple enumerations selected, a ZDD tree having nodes respectively associated with enumerations selected by the user and to intersect the tree thus generated with a MakeSelectionTermForGroup ZDD tree used by the ZDD rule model to determine selection advice.
  • a computer-readable medium for use in a computer-implemented rule processing system utilizing a ZDD rule model to define compliant features including attributes and enumerations of a product or service
  • the medium includes program instructions operative to provide selection advice to help guide a user to select a desired set of compliant features characterized by multiple rule components of the ZDD rule model related to a common or central one of the multiple rule components but not necessarily related to each other, to identify a common one of the rule components having a pending selection of an enumeration, to determine selection advice for the rule model based on possible selections of enumerations of other attributes related to the common or central one of said rule components, and to communicate to the user selection advice based on possible selections of enumerations whereby enable a user to choose among enumerations that render features of the product or service compliant.
  • the program instructions may also effect combining of an attribute relations ZDD of the common central one of the rule components with an attribute relations ZDD of the ZDD rule model.
  • the computer-readable medium may also include program instructions to assign a negative selection value to other rule components related to the common rule component when a negative selection value is denoted for another interrelated rule component.
  • the computer-readable medium may further include program instructions to propagate a negative selection value to a rule component under examination when other components related to the common rule component have negative advice asserted.
  • the medium may include program instructions to effect searching through Exclude rules to remove nonessential information by removing covers detected, to detect and remove cyclic covers whereby to reduce the complexity of the Exclude rules.
  • Yet another aspect of the invention comprises, for use in a computer-implemented rule processing system that employs a ZDD rule model having multiple ZDD rule components to define compliant conditions of a rule-based system, a computing device programmed to provide selection advice that guides a user in selecting compliant ones of the conditions.
  • the device comprises an I/O interface to receive inputs from and to communicate results to the user in response to user selections; and a processor having programs instructions to effect acquisition of inputs from the user, to identify a common rule component of the ZDD rule model having a pending selection of a condition, to determine selection advice for alternative selections of conditions of other attributes related to the common rule component, and to provide results to a user via the I/O interface thereby to enable the user to choose compliant conditions of the rule-based system according to multiple alternative choices of conditions.
  • FIG. 1 shows exemplary results graphically displayed on a computer monitor in the form of Advice and Pending Choice based on user selections of attributes and/or enumerations of an exemplary ZDD rule model.
  • FIG. 2 is a GUI display of attributes and enumerations of a service that may be selected by a user.
  • FIG. 3 illustrates a process of building the modified MSTFG Zdd tree that is used during processing of the ZDD rule model characterizing the product, service, or rule-based system under examination.
  • FIG. 4 illustrate a hub and spoke relationship of rule components where multiple spoke components relate to a central or common one of rule components in an interrelated set.
  • FIG. 5 shows exemplary Zdd diagrams attribute relations used to obtain selection advice according to improvements of the present invention.
  • FIG. 6 shows an exemplary Include rule diagram having an exclude “cover” that is identified and removed during rule processing according to an aspect of the present invention.
  • FIG. 7 shows an exemplary attribute relations ZDD and a corresponding a relationship diagram revealing an “exclude” relation between certain attributes of the ZDD helpful in explaining certain aspects of the present invention.
  • FIG. 8 shows an exemplary relationship between five attributes related through Exclude rules, a shaded one of which has a pending value, e.g., not yet selected by a user.
  • FIG. 9 is an exemplary rule definition table specifying a relationship between and among four rules.
  • FIG. 10 shows an Exclude ZDD tree having rules defined in the table of FIG. 9 .
  • FIG. 11 shows a rule diagram having Exclude cover, and a corresponding reduced rule diagram with the cover eliminated.
  • FIG. 12 shows an example of an Exclude Zdd having a plurality of covers as well as a resulting, modified Exclude Zdd after removal of the covers.
  • FIG. 13 illustrates the presence of an inherent cyclic cover brought about by unique selections in a set of three rule components (represented by two-dimensional diagrams) as well as a resulting, reduced rule component (also represented by a two-dimensional rule diagram).
  • FIG. 14 shows an alternative form of the rule diagrams of FIG. 13 having a more explicitly revealed Exclude cover.
  • FIG. 15 illustrates a process to remove cyclic covers according to an aspect of the present invention.
  • FIG. 1 shows such results graphically displayed on a computer display monitor in the form of Advice and Pending Choice based on user selections of attributes and/or enumerations of an exemplary rule model. Attributes and enumerations correspond to product components and/or features or properties thereof. Advice shown in pane 12 indicates a conflict for discount pricing, denoted “X,” based on selections chosen by the user. Pane 14 displays selection advice, which indicates plus and minus signs of alternative selections (e.g., discount, premium, and regular) that render the result of pane 12 compliant or non-compliant based on the user selections.
  • alternative selections e.g., discount, premium, and regular
  • Selection advice is predictive, that is, selection advice informs the user that conflict will be encountered if a negatively marked selection is chosen and that changing a choice from a negatively marked selection to a positively marked selection will eliminate an existing conflict.
  • Pending Choice pane 14 shows the same pricing attribute with the pending choice feature enabled.
  • the pricing attribute has not been assigned an actual value because the user has not yet made a choice from one of the actual values.
  • Three situations may exist for which selection advice for logic expressed in Include rules of a ZDD rule model may not match the expectations of end users. Two of these situations involve computation of advice when one or more attributes were pending, that is, had no selection by the user.
  • a first situation concerns what happens when a user selects multiple enumerations for an attribute.
  • the improvement herein called Multi-OR Select for an Attribute computes advice in this scenario and allows a user to affirmatively select multiple enumerations for a single attribute when specifying a product or service (e.g., choosing product specifications).
  • the resulting advice is the OR of all of the individual advises for the enumerations.
  • many attributes can have multiple enumerations selected without causing execution time to increase in an exponential manner.
  • FIG. 2 shows enumerations that may be selected for three attributes: Pricing, Services, and Shipper.
  • Pricing and Shipper attributes each show a single selection, denoted by checkmarks in boxes 22 and 24 .
  • the Services attribute shows multiple user selections in boxes 26 and 28 .
  • all three attributes are directly related to each other so, in this case, a determination of the advice by the rule processing system or method for the Shipper attribute must take into account the values for Services and Pricing attributes.
  • the impact of the selection 26 of Ground is OR'ed with the impact of the selection 28 of Overnight. That is, a “+” is assigned to DHL selection 29 of the Shipper attribute if either Ground or Overnight is compatible. This allows computation of advice to remain linear (non-exponential) regardless of the number of attributes or enumerations (i.e., selections) chosen by the user.
  • Exemplary code for processing the Multi-OR Select function is set forth in the Appendix.
  • the result is OR'ed together. For example, if the user chooses Red and Green from a Color attribute, the Advice result shows options for Red and options for Green at the same time. Some of the results shown apply only to Red and some of the results apply only to Green. This would differ from a Multi-AND result, which would only show the results that are true for both Red and Green simultaneously.
  • certain modification to the Execution engine disclosed in the incorporated applications were implemented.
  • one change concerns building the Include MakeSelectionTermForGroup (MSTFG) Zdd.
  • the MSTFG Zdd is preferably constructed synthetically. Attributes having a single enumeration selected are added, as before. For attributes having multiple enumerations selected by the user, the method or system implementing the method starts with a one tree, and then, for each related attribute, each selected enumeration is added to a tree in an exclusive manner. The method (or apparatus) then intersects this tree into the MSTFG. The Include Select operation remains unchanged. Only the MSTFG tree changes on the Include side. Processing multiple enumerations has a minimal performance impact for enumerations that are on the Include side of the overall rule model characterizing the product or service in question.
  • Procures to implement Exclude advice with multiple selected enumerations is also provided.
  • the improved method and apparatus include changes to Exclude advice processing that allow the user to select multiple enumerations of a single attribute.
  • One solution involved performing the SelectE operation on all possible combinations of the multiple selected enumerations. This had a negative impact on performance. Handling of multiple selected enumerations has been integrated into the new exclude advice changes.
  • the user chose enumerations 3 , 5 from group 1 ; enumeration 6 from group 2 ; and enumerations 8 , 9 from group 3 .
  • FIG. 3 illustrates building the modified MSTFG Zdd tree.
  • the user selection from Group 2 since the user selection from Group 2 only has one enumeration, it can be synthetically added as performed by the method and/or apparatus of the parent applications to produce the Zdd tree 31 shown in FIG. 3 .
  • tree 32 indicated as Group 1 terms, is constructed using the two terms selected for Group 1 .
  • trees 31 and 32 are intersected to produce tree 33 , indicated as Step 2 MSTFG.
  • tree 34 is generated, indicated as Group 3 Terms, similar to the procedure for the Group 1 terms.
  • trees 33 and 34 are intersected to produce tree 35 , indicated as the Final MSTFG Zdd.
  • the Final MSTFG Zdd is used by the Include Select operation set forth in the parent applications.
  • a second Include advice situation involves the effect that a pending attribute has on attributes related by include rules.
  • Hub and spoke deals with the situations where several spoke attributes are related to a central hub attribute. The spokes are not directly related to each other (i.e. they aren't in the same rule). If the hub attribute is not pending (i.e., unknown or not yet selected by a user), advice is solved as normal. The following method is used to obtain advice if the hub attribute is pending (i.e., selected by a user or otherwise known). In order to solve the validity for any one of the spoke attributes, it must be determine what other spoke attributes are related to it through the pending hub attribute. Newly found related spoke attributes are temporarily added to the AttrRels ZDD for the spoke attribute.
  • Attr 2 is a hub because all of the other attributes are directly related to it. If Attr 2 is pending, we need to imply the relationships that Attr 1 has to the other spokes of Attr 2 . This is done by adding Attr 3 , Attr 4 , and Attr 5 to the AttrRels for Attr 1 , which forces Attr 2 into a required state. That is, although Attr 2 is pending, it will still be considered during the logic evaluation. Improvements described in the “Select Exclude” section of the Appendex are used to implement this feature.
  • the Hub and Spoke Look-Ahead routine works by modifying groups that are related to the group for which advice is sought. C++ code was added to the BddSelectionInclude routine to do this. The attrRels array was then used as before by the Select and MakeSelectionTermsForGroup.
  • the hub and spoke concept deals with cases where several spoke attributes 159 , 161 , 173 , 175 , and 177 are related to a central hub attribute 160 .
  • the spokes attributes are not directly related to each other (i.e. they aren't in the same rule).
  • Attributes 159 and 174 are directly related.
  • Attributes 161 and 173 are indirectly related through attribute 160 .
  • Attribute 160 is the hub through which the spokes, 159 , 161 , 173 , 177 , and 175 are all indirectly related.
  • hub attribute 160 for example, has been assigned a value (i.e. the user has made a selection)
  • determination of advice is made as normal. Normal advice computation considers direct relationships. In FIG. 4 , advice for attribute 159 would take into account (i.e., use the values for) attributes 160 and 174 .
  • the improvement relating to Hub and Spoke Look-Ahead increases the accuracy of the advice determination by increasing the number of attributes that are considered during the computation of advice when the hub attribute ( 160 ) is pending (has not been assigned a value). If attribute 160 is pending, then certain indirect relationships are also used to compute advice. To compute advice for attribute 159 , attribute 174 would be considered due to the direct relationship. Attributes 161 , 173 , 177 , and 175 would be considered due to the indirect relationship through the pending, hub attribute 160 .
  • computing advice for attribute 161 is presented here.
  • attribute 160 has a value
  • normal advice is used and only direct relationships are considered.
  • Attribute 161 is directly related to only attribute 160 , so only attribute 160 is considered when computing advice for attribute 161 .
  • attribute 160 is pending, then the indirect relationships of 160 are also considered. So, attributes 159 , 173 , 177 , and 17 D would also be considered when computing advice for attribute 161
  • Hub and spoke look ahead takes place during the processing of Include relationships. Similar handling of pending choices takes place during the processing of Exclude relationships but is dispersed throughout the algorithm.
  • Zdd diagram 37 shows the relationship of Attr 1 above while Zdd diagram 38 shows the relation of Attr 2 .
  • Attr 2 is a pending hub for Attr 1 because it is related to Attr 1 and other attributes, and because it is pending.
  • Attr 1 is only related to Attr 2 and Attr 5 .
  • Attr 2 is pending, we need to add the AttrRels for Attr 2 to the AttrRels for Attr 1 is related to Attr 1 , Attr 3 and Attr 4 . So, adding these two AttrRels together yields result Zdd 39 that Attr 1 is related to Attr 2 , Attr 3 , Attr 4 , and Attr 5 .
  • Attr 2 The reason for this is to force Attr 2 into a required state. That is, although Attr 2 is pending, we must still use it as if at least one of its enumerations has a value during the Include logic execution.
  • a third Include advice situation deals with interaction between pending choices and enumerations that can never be chosen without creating conflict.
  • the advice for pending attributes may not have been entirely accurate. Enumerations that were never used, for example, may show up as ‘+’ if they were pending.
  • the method, apparatus, or computer-readable medium of the present invention involves checking if any enumerations in a pending attribute are contained in the Include zdd of the overall rule model characterizing the product or service in question. If they are not in the Include zdd and some other enumerations from the same attribute were in the Include zdd, then the enumeration is never included. The never used enumerations in the Include zdd are then forced to be zero at the beginning of the execution engine.
  • the improvement checks if there are any enumerations that are never used.
  • the following code is added to the GetAdviceArray routine just before the Include advice section.
  • FIG. 6 shows an exemplary Include rule having an exclude “cover” on A 2 E 4 .
  • a cover exists when a rule does not include any valid combinations associated with the rule, such as with A 2 E 4 in the example of FIG. 6 . This is illustrated by the absence of a relation in row 41 .
  • a 2 E 4 can never be selected without creating conflict because all rule combinations containing A 2 E 4 are invalid. Therefore, the selection A 2 E 4 should always yield negative selection advice.
  • the present improvement concerns avoiding assignment a positive selection advice to A 2 E 4 when related attributes were pending (had no user selections). If A 2 E 4 was selected, a correct validity would be indicated but the advice may be incorrect.
  • the improvement checks the Include ZDD during packaging and notes enumerations that are completely missing from the Include ZDD. If an enumeration is missing from the Include ZDD and some members of the group to which it belongs are in the Include ZDD, then the enumeration is never valid as a selection. Such never valid selections receive negative selection advice. At the beginning of Include advice processing, never valid selections are set to invalid.
  • an end user might occasionally choose a selection with positive selection advice and the execution engine would respond by changing the advice for that selection from positive to negative and then show conflict.
  • selection advice from include rules more closely matched the expectations of end users so the improvement deals with modifying the processing of exclude rules.
  • a first situation involves the effect an exclude rule has on other related attributes. If a set of enumerations are excluded and every enumeration in that set is selected, the improvement may exclude every other attribute that is related to any of the attributes that were excluded.
  • Enum 11 and Enum 55 are selected, combinations are completely excluded. Therefore all enumerations are excluded from attributes that are related to Attr 1 and Attr 5 . That means that all enumerations from Attr 2 , Attr 3 , Attr 4 , Attr 6 and Attr 7 are excluded.
  • Every path of the Exclude rule that has a selection and/or pending terms is scanned. As a path is scanned, the terms on that path are categorized.
  • the improvement searches for the following cases:
  • FIG. 7 shows a attribute relations ZDD 42 of a rule model having eight attributes related through various rule components.
  • the attribute relations ZDD 42 shows a relationship among attributes 180 , 186 , 188 , and 190 , which are directly related to attribute 187 .
  • FIG. 7 also shows a relationship diagram 43 revealing an “exclude” relation between attributes 187 and 188 , indicated by an “x” mark in the diagram.
  • Attribute relations rule 42 shows that a selection of A 187 E 3 is incompatible with a selection of A 188 E 3 . If a user selects A 187 E 3 , normal selection advice computation provides negative advice for A 188 E 3 , and vice versa, which is the correct and expected behavior. However, if both A 187 E 3 and A 188 E 3 were selected, normal selection advice computation would render negative advice for both selections (which is also correct), but would not go on to mark the selections for attributes 180 , 186 , and 190 with negative advice. All selections for attributes 180 , 186 , and 190 should be marked with negative advice since these attributes are directly related to attribute 187 and picking any of the selections would not change the existing conflict between A 187 E 3 and A 188 E 3 .
  • Rule processing to implement Exclude Mutually Exclusive Attributes is done by the execution engine at run time.
  • the system scans for this condition at the same time that it scans the Exclude Zdd for pending relationships.
  • the system scans a path and arrives at the “one” node, it compares the number of terms on the path to the number of selections on that path. If those two numbers are the same, the Exclude Zdd scanner calls a routine that also excludes the mutually exclusive attributes for all of the selections on that path.
  • FIG. 8 shows an exemplary relationship between five attributes related through Exclude rules.
  • shaded attribute 152 is pending (i.e., has no user selection)
  • the un-shaded other attributes have user selections
  • advice is to be computed for attribute 146 .
  • an enumeration of attribute 146 will have negative advice propagated towards it based on the composition and lengths of the relevant paths in the exclude Zdd tree.
  • the improvement scans or effects scanning of every path of the Exclude ZD having picked and/or pending terms. During the scan, all terms on the path of the ZDD are categorized into one of several cases:
  • the procedure implemented by the method or apparatus seeks to find complete paths through the Exclude Zdd tree. If a complete path is found, all of the terms on that path must be “ ⁇ ” (negatively) advised or denoted. If the path is complete except for an unselected term (not yet picked by a user), then that last term is also negatively advised or denoted as “ ⁇ .”
  • the procedure used in the preferred method or apparatus also assures that certain requirements are met, e.g., that (1) there can only be one pending enumeration on the path, and (2) the enumerations related to the pending enumeration lie on a path that doesn't contain the picked term and that the related enumerations are not pending.
  • the Exclude tree 44 of FIG. 10 has rules that are defined in the table of FIG. 9 to illustrate various cases for handling pending attributes.
  • FIG. 9 shows relationships between and among four rules (Rule1, Rule2, Rule3 and Rule4) and four attributes (Attr 1 , Attr 2 , Attr 3 , and Attr 4 ). If a user selects enumeration A 4 E 3 and leaves all the other attributes pending, enumerations A 3 E 2 , A 2 E 3 , A 1 E 3 , A 1 E 4 become excluded. Enumerations A 2 E 3 and A 1 E 3 are excluded directly by rule clicks. A 1 E 4 is always excluded because it is excluded with all members of Group 2 . Since there must always be a valid enumeration selected from each group, and since no enumeration from Group 2 can be selected when A 1 E 4 is selected, A 1 E 4 is excluded.
  • the counting mechanism described above is used to determine that all members of Group 2 are to be excluded with selection of A 1 E 4 .
  • Enumeration A 3 E 2 is excluded because A 2 E 3 and A 1 E 4 are both excluded. Note that, at this point, selection of any enumeration having negative advice will cause the attributes related to it to also be excluded. This scenario was described above in connection with mutually exclusive attributes.
  • Exclude Selection Advice improvements concern removing information from the Exclude Zdd that might hide proper advice. Routines for accomplishing this, which is described in the Appendix, are preferably added during the packaging process. Once the covers are removed, the Exclude Zdd is modified, but preferably retaining the same variable ordering. Exclude cover removal is used to create a new Exclude ZDD devoid of nonessential information for logic processing.
  • Enum 11 is chosen, then Enum 33 should be excluded no matter which enumeration of Attr 2 is selected. So, the cover on Attr 2 as it relates to Enum 11 and Enum 33 must be removed.
  • Enum 11 should always be excluded because it is noncompliant with (Enum 21 . . . Enum 24 ) and with (Enum 31 . . . Enum 34 ). It is compliant with either Enum 25 or Enum 35 , but since these are noncompliant, Enum 11 is not compliant with either one.
  • the three Exclude rules mentioned above can, however, be combined with a larger three-dimensional rule. In that form, it is more obvious that Enum 11 would be totally excluded.
  • Exemplary code set forth in the appendix comprises Visual Basic code that shows a call to the RemoveCoversFromExclude routine. This code is inserted at the time when the exclude ZDD is being created and persisted to memory.
  • a third situation occurs when, during rule definition or maintenance, a modeler or rule maintenance personnel creates a cover by excluding an entire row or column of a rule, such as shown by Rule 1 ( 46 ) illustrated in FIG. 11 .
  • Rule 1 contains an exclude cover in that it excludes any combination of relationships containing A 1 E 4 (i.e., Attribute 1 , Enumeration 4 ).
  • Attribute 2 is referenced by the rule but that reference is not relevant because every one of the five enumerations of Attribute 2 is excluded whenever A 1 E 4 is selected.
  • the improvement herein relating to Exclude Cover Removal detects conditions like that shown in Rule 1 of FIG. 11 and converts them to that shown in Rule 2 ( 48 ), also shown in FIG. 11 .
  • FIG. 12 shows an example of an Exclude Zdd 50 having many covers as well as a resulting, modified Exclude zdd 52 after removal of the covers.
  • the improvement reorders or moves a group of nodes to the bottom of the ZDD tree 50 and any path that enters the completed XOR for the group that was moved to the bottom can be redirected to the “one” node. The next group of nodes is then moved to the bottom of the tree and the process is repeated.
  • node 3 and node 4 When Group 1 , for example, is moved to the bottom of the ZDD, node 3 and node 4 will be an XOR with every other combination in the ZDD. Each combination that uses the XOR can go directly to the “one” terminal node instead of going through the XOR. Since all combinations go through the XOR of nodes 3 and 4 , it turns out that the nodes 3 and 4 are removed entirely from the ZDD. Note that there are nodes in Exclude Zdd 52 that have Index 3 or index 4 .
  • Group 5 is made up of Indexes 16 through 20 .
  • Group 5 When Group 5 is moved to the bottom it is seen that there are various sub-groupings involving Indexes 16 through 20 .
  • One of these sub-groupings is a complete XOR on Group 5 .
  • the combinations in the ZDD that have this XOR are ⁇ node 5 -node 9 -XOR ⁇ and ⁇ node 5 -node 11 -XOR ⁇ .
  • the XORs can be removed from these two combinations. So instead of going through the XOR, they go directly to the “one” terminal node. Note that in Exclude Zdd 52 the combinations ⁇ node 5 -node 9 ⁇ and ⁇ node 5 -node 11 ⁇ both go directly to the terminal 1 node.
  • Group 3 is made up of indexes 9 through 11 .
  • the combinations that use this XOR are ⁇ node 5 -node 16 -XOR ⁇ and ⁇ node 5 -node 20 -XOR ⁇ .
  • the XOR can be removed from these two combinations. So instead of going through the XOR, they go directly to the “one” terminal node. Note that in Exclude Zdd 52 the combinations ⁇ node 5 -node 16 ⁇ and ⁇ node 5 -node 20 ⁇ both go directly to the terminal 1 node.
  • Cyclic Exclude rules may inherently engender covers not readily apparent upon examination of the Exclude rules, as apparent in the preceding example.
  • FIG. 13 shows three rules 54 , 56 , and 58 that are related in a cycle, i.e., a triangular-related rule set. Cycles are formed when rules share an attribute from each of its neighbors. The illustrated three-attribute, three-rule relationship is the simplest such cycle and is often referred to as a triangular relationship. Larger cycles may be formed with any number of rules and attributed.
  • the clicks (i.e., X-marks) in rule diagrams 54 , 56 , and 58 established by user activation of pointing device (e.g, computer mouse) illustrate how exclude covers are created when triangular-related rules are combined. When so combined, the three rules have the effect of excluding any combination containing the enumeration A 2 E 1 even though none of them alone (or in a pair) exclude A 2 E 1 .
  • Rule diagram 60 of FIG. 13 shows a result of combining Exclude rules 54 , 56 , and 58 .
  • Result 60 may be difficult to envision but becomes more evident when noting that (a) Rule 1 excludes all combinations of A 2 E 1 except those also containing A 1 E 3 (the lower left cell of the rule diagrams), (b) Rule 2 excludes all combinations of A 2 E 1 except for those also containing A 3 E 3 (again, the lower left cell), and (c) Rule 3 excludes all combinations containing both A 1 E 3 and A 3 E 3 . Thus, Rule 3 excludes all of the combinations of A 2 E 1 allowed by Rules 1 and 2. The result of combining the three rules operatively excludes all combinations containing A 2 E 1 .
  • Finding cyclic covers may be NP-complete where there are no known algorithms guaranteed to find all cyclic covers and still complete processing in a finite length of time. Processing time grows linearly with the number of enumerations referenced by cyclic Exclude rules and completes in finite time. The accepted tradeoff is that the algorithm is not guaranteed to find all the covers. Experimentation indicates that cyclic covers of typical complexity can, in practice, be found. Accuracy is estimated to drop to around 80% for unusually complex covers.
  • FIG. 14 shows all three triangular-related rules combined into a single larger rule diagram 62 .
  • a 2 E 1 is excluded at all times.
  • combined rule 62 is supplied to the exclude cover finder/routine to discover the exclusion of A 2 E 1 .
  • the rule modeler is not expected to generate/discover the combined rule 62 , so the method and/or apparatus of the present invention essentially may generate combined rule 62 during the process of removing the triangular cover.
  • FIG. 15 illustrates processing to remove cyclic covers.
  • ZDD tree 90 was constructed using the three-rule cyclic set forth above and the following mapping of enumerations to indexes:
  • a computer-implementation of the invention converts the enumerations into clicks: 0 ⁇ 3, 0 ⁇ 4, 0 ⁇ 6, 0 ⁇ 7, and 5 ⁇ 8, and creates a first ZDD tree 90 .
  • a second ZDD tree 92 shows the resulting, simplified tree with covers removed.
  • An exemplary algorithm, set forth in the Appendix, that removes cyclic covers is called for each group of the ZDD. The algorithm also checks for any enumeration from the selected group that has all members of a second group on its Then and Else legs.
  • G 1 First group
  • G 2 Second group
  • G 3 Third group. All members of G 2 must be present somewhere in the ZDD structure.
  • N 1 is a node that is a set of members from G 2 . All members of N 1 must point to the same node on the then leg.
  • N 2 is a set of one or more members from G 3 in an exclusive relationship. Members of G 1 must point to either N 1 or N 2 . Members of G 2 must point to N 2 or be a part of N 1 . If the foregoing conditions are met, then all nodes of G 1 that point to N 2 disappear. The other nodes remain unchanged.
  • the invention includes a method, apparatus, and/or computer-readable medium (e.g., a magnetic or optical storage medium) and embraces modifications and extensions not explicitly shown in the drawings or described in the written description.
  • the invention is preferably practiced utilizing zero-suppressed binary decision diagrams (ZDDs) but software emulations or other representations of ZDDs, BDD, or directed acyclic graphs (DAGs), regardless of the type of coding implemented, may be employed to achieve substantially the same results.
  • ZDDs binary decision diagrams
  • DAGs directed acyclic graphs
  • a keyboard and pointing device e.g., a mouse
  • the GUI also is used to provide results to the user.
  • a processor typically implements the method. Access and transfer of data may occur locally or via a network, e.g. the Internet or a LAN. Further, even though the exemplary embodiments may be directed to product or service configuration, the invention may be extended to other applications as described in the incorporated and related patents and patent applications. Accordingly, the disclosure is not intended to limit the scope of the invention set forth by the appended claims.

Abstract

A computer-implemented method, apparatus or computer-readable medium to provide selection advice during rule processing to help a user choose desired specifications of a product, service, or other rule-based system characterized by a ZDD rule model having one or more Include and/or Exclude rules. One aspect includes displaying on a monitor or other I/O device multiple attributes having multiple enumerations that identify possible feature, specifications, or conditions of a product; selecting multiple alternative enumerations of the attributes; determining a selection advice for each enumerations selected combining the selection advice for each numerations in order to produce result; communicating the result to an end user; and then using the result to choose a product having desired compliant specifications or conditions.

Description

CROSS-REFERENCE TO RELATED PATENTS AND PATENT APPLICATIONS
This application is a division of U.S. application Ser. No. 10/950,815, filed Sep. 28, 2004, now issued as U.S. Pat. No. 7,552,102, which claims priority to U.S. provisional application Ser. No. 60/506,156, filed Sep. 29, 2003, which are incorporated herein.
This invention is also related to U.S. patent application Ser. No. 10/101,151, now issued as U.S. Pat. No. 6,965,887, and to U.S. patent application Ser. No. 10/101,154, now issued as U.S. Pat. No. 7,188,091, each filed on Mar. 20, 2002 in the names of the same inventors hereof (hereafter “the parent applications”), which are incorporated herein.
BACKGROUND
This invention relates to a rule processing, but more specifically to a method, apparatus, and computer-readable medium that provides selection advice during rule processing utilizing a binary decision diagram (BDD) or zero-suppressed binary decision diagram (ZDD) to express a rule model.
In the referenced, incorporated applications, advice provided by results of rule processing guides an end user in at least two ways. First, conflict advice may be provided to indicate compatibility of user selection(s) regarding components of a product or service. Second, to help guide the user to achieve compatibility, selection advice may be provided to indicate alternative selection(s) that would render the result compatible and/or incompatible relative to the selected components.
To provide greater convenience to the user when using a rule processing system or method, it is desirable to provide more user-friendly interface to obtain results more rapidly. For example, instead of limiting user selection to a single set of possible specifications, it is desirable to enable the user to specify simultaneously many alternative specifications and to provide at the same time multiple possible selections from which the user may choose. In addition, it is also desired to speed execution of a results determination by eliminating nonessential information in the rule set, as determined by user selections.
Thus, the improvements herein primarily relate to selection advice provided to the user during rule processing.
SUMMARY
According to a first aspect of the invention provides, a computer-implemented method of providing selection advice in a rule processing system to help guide a user in selecting desired specifications of a product or service characterized by a ZDD rule model having one or more Include or Exclude rules comprises displaying on a monitor or other I/O device multiple attributes having multiple enumerations that identify possible feature, specifications, or conditions of the product or service; selecting via a user interface multiple alternative enumerations of the attributes; determining a selection advice for each of the enumerations selected in said selecting step; combining (such as by logically OR'ing) the selection advice for the enumerations determined in the determining step in order to produce a result; communicating to an end user (such as a customer or consumer of the product or service) the result generated in the combining step; and then using the result to choose a product or service having desired compliant specifications. The determining step may include, for each attribute having multiple enumerations selected, forming a ZDD tree having nodes respectively associated with selected enumerations; and intersecting the tree thus formed with a MakeSelectionTermForGroup ZDD tree used by said rule processing system to determine selection advice. A keyboard and/or pointing device may comprise the I/O device.
According to another aspect of the invention, in a rule processing method utilizing a ZDD rule model to define compliant features characterized by attributes and enumerations of a product or service, there is provided a computer-implemented method of providing selection advice to help guide a user choose among compliant features characterized by multiple rule components of the ZDD rule model that are related to a central rule component, e.g., a hub in a hub and spoke relational environment, comprising the steps of identifying the central rule component having a pending value of an enumeration not yet selected by a user, determining selection advice for the rule model based on possible selections of enumerations of other attributes related to the central rule component, displaying results of the selection advice based on possible selections of enumerations, and using the results to choose among enumerations that render specifications of the product or service compliant. The determining step of this method may further include combining an attribute relations ZDD representative of the central rule component with an attribute relations ZDD of the ZDD rule model. In addition, where the central rule component has a mutually exclusive Exclude relationship with another rule component, the determining step may further include assigning a negative selection value to other rule components related to the central rule component when a negative selection is denoted for the another rule component. Moreover, where the central rule component for which a selection is pending relates to other rule components through an Exclude relationship, the determining step may include propagating a negative selection value to a rule component under examination when other components related to the centralrule component also has a negative value asserted. Other aspects include searching through Exclude rules to remove non-essential information by removing covers detected therein and/or searching through Exclude rules to detect and remove cyclic covers whereby to reduce the complexity of the Exclude rules.
According to another aspect of the invention, there is provided an apparatus that provides selection advice to help guide a user choose a product or service having desired specifications, where the product or service is characterized by a ZDD rule model having one or more Include or Exclude rules, comprising a user interface to display multiple attributes having multiple enumerations that identify possible specifications of the product or service; an I/O device to enable a user to choose multiple alternative enumerations of the attributes in response to display of the attributes and enumerations; and a processor to determine alternative selection advice for each enumeration selected by the user, to combine multiple ones of said selection advice for each enumeration determined thereby to produce a result indicative of selections compliant with the enumerations selected by the user, to communicate the result to the user, and to enable the user to obtain a product or service having desired compliant specifications. The processor, for each attribute having multiple enumerations selected, may also generate a ZDD tree having nodes respectively associated with selected enumerations and to intersect the ZDD tree thus generated with a MakeSelectionTermForGroup ZDD tree used to determine selection advice.
According to yet another aspect of the invention, there is provided for use in a computer-implemented rule processing system that uses a ZDD rule model having multiple ZDD rule components to define compliant specifications of a product or service, a computing device programmed to provide selection advice to guide a user choose compliant specifications where the rule components are related to a common one of said multiple rule components. Such computing device comprises an I/O interface to receive inputs from and to communicate results to the user in response to user selections; and a processor having program instructions to effect acquisition of inputs from the user, to identify a common rule component of the ZDD rule model having a pending selection of an enumeration, to determine selection advice based on alternative selections of enumerations of other attributes related to the common rule component, and to provide the results to a user via the I/O interface thereby to enable the user to choose a product or service having compliant specifications according to the alternative choices of enumerations. The computing device may additionally include program instructions to combine an attribute relations ZDD for the common rule component with an attribute relations ZDD for the ZDD rule model. In addition, where the common rule component has a mutually exclusive Exclude relationship with at least one other rule component, the processor may include program instructions to assign a negative selection value to other rule components related to the common rule component when a negative selection is denoted for the one other rule component. When the common rule component for which a selection is pending relates to other rule components by an Exclude relationship, the processor may include program instructions to propagate a negative selection value to a rule component under examination when other components related to the common rule component also have a negative value asserted. In addition, the processor may include program instructions to effect searching through Exclude rules to remove non-essential information by removing covers detected, or to detect and remove cyclic covers whereby to reduce the complexity of the Exclude rules and/or to reduce processing time.
According to yet another aspect of the present invention, there is provided a computer-readable medium comprising program instructions to implement rule processing in a computer to provide selection advice that guides a user in selecting features of a product or service characterized by a ZDD rule model having one or more rule components; to display multiple attributes having multiple enumerations that identify possible features of the product or service, to enable the user simultaneously to select multiple alternative enumerations of the attributes, to determine selection advice separately for each enumeration selected by the user, to combine by OR'ing or otherwise the selection advice of each enumeration determined thereby to produce a result, and to communicate the result to a user whereby to enable the user to choose a product or service having compliant features. The program instructions may also generate, for each attribute having multiple enumerations selected, a ZDD tree having nodes respectively associated with enumerations selected by the user and to intersect the tree thus generated with a MakeSelectionTermForGroup ZDD tree used by the ZDD rule model to determine selection advice.
In yet another aspect of the invention, there is provides a computer-readable medium for use in a computer-implemented rule processing system utilizing a ZDD rule model to define compliant features including attributes and enumerations of a product or service where the medium includes program instructions operative to provide selection advice to help guide a user to select a desired set of compliant features characterized by multiple rule components of the ZDD rule model related to a common or central one of the multiple rule components but not necessarily related to each other, to identify a common one of the rule components having a pending selection of an enumeration, to determine selection advice for the rule model based on possible selections of enumerations of other attributes related to the common or central one of said rule components, and to communicate to the user selection advice based on possible selections of enumerations whereby enable a user to choose among enumerations that render features of the product or service compliant. The program instructions may also effect combining of an attribute relations ZDD of the common central one of the rule components with an attribute relations ZDD of the ZDD rule model. In addition, where the common rule component has a mutually exclusive Exclude relationship with one other rule component, the computer-readable medium may also include program instructions to assign a negative selection value to other rule components related to the common rule component when a negative selection value is denoted for another interrelated rule component. Also, where the common rule component for which a selection is pending relates to other rule components through an Exclude relationship, the computer-readable medium may further include program instructions to propagate a negative selection value to a rule component under examination when other components related to the common rule component have negative advice asserted. Further, the medium may include program instructions to effect searching through Exclude rules to remove nonessential information by removing covers detected, to detect and remove cyclic covers whereby to reduce the complexity of the Exclude rules.
Yet another aspect of the invention comprises, for use in a computer-implemented rule processing system that employs a ZDD rule model having multiple ZDD rule components to define compliant conditions of a rule-based system, a computing device programmed to provide selection advice that guides a user in selecting compliant ones of the conditions. In the case where the rule components are related to a common one of multiple rule components, the device comprises an I/O interface to receive inputs from and to communicate results to the user in response to user selections; and a processor having programs instructions to effect acquisition of inputs from the user, to identify a common rule component of the ZDD rule model having a pending selection of a condition, to determine selection advice for alternative selections of conditions of other attributes related to the common rule component, and to provide results to a user via the I/O interface thereby to enable the user to choose compliant conditions of the rule-based system according to multiple alternative choices of conditions.
Other aspects and features of the invention will become apparent upon review of the following description of an illustrative embodiment taken in connection with the accompanying drawings. The invention, though is pointed out by the appended claims.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows exemplary results graphically displayed on a computer monitor in the form of Advice and Pending Choice based on user selections of attributes and/or enumerations of an exemplary ZDD rule model.
FIG. 2 is a GUI display of attributes and enumerations of a service that may be selected by a user.
FIG. 3 illustrates a process of building the modified MSTFG Zdd tree that is used during processing of the ZDD rule model characterizing the product, service, or rule-based system under examination.
FIG. 4 illustrate a hub and spoke relationship of rule components where multiple spoke components relate to a central or common one of rule components in an interrelated set.
FIG. 5 shows exemplary Zdd diagrams attribute relations used to obtain selection advice according to improvements of the present invention.
FIG. 6 shows an exemplary Include rule diagram having an exclude “cover” that is identified and removed during rule processing according to an aspect of the present invention.
FIG. 7 shows an exemplary attribute relations ZDD and a corresponding a relationship diagram revealing an “exclude” relation between certain attributes of the ZDD helpful in explaining certain aspects of the present invention.
FIG. 8 shows an exemplary relationship between five attributes related through Exclude rules, a shaded one of which has a pending value, e.g., not yet selected by a user.
FIG. 9 is an exemplary rule definition table specifying a relationship between and among four rules.
FIG. 10 shows an Exclude ZDD tree having rules defined in the table of FIG. 9.
FIG. 11 shows a rule diagram having Exclude cover, and a corresponding reduced rule diagram with the cover eliminated.
FIG. 12 shows an example of an Exclude Zdd having a plurality of covers as well as a resulting, modified Exclude Zdd after removal of the covers.
FIG. 13 illustrates the presence of an inherent cyclic cover brought about by unique selections in a set of three rule components (represented by two-dimensional diagrams) as well as a resulting, reduced rule component (also represented by a two-dimensional rule diagram).
FIG. 14 shows an alternative form of the rule diagrams of FIG. 13 having a more explicitly revealed Exclude cover.
FIG. 15 illustrates a process to remove cyclic covers according to an aspect of the present invention.
DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
FIG. 1, for example, shows such results graphically displayed on a computer display monitor in the form of Advice and Pending Choice based on user selections of attributes and/or enumerations of an exemplary rule model. Attributes and enumerations correspond to product components and/or features or properties thereof. Advice shown in pane 12 indicates a conflict for discount pricing, denoted “X,” based on selections chosen by the user. Pane 14 displays selection advice, which indicates plus and minus signs of alternative selections (e.g., discount, premium, and regular) that render the result of pane 12 compliant or non-compliant based on the user selections. User selection of a “plus” enumeration (i.e., premium or regular) of the pricing attribute renders the result compliant while selection of a “minus” enumeration renders the result non-compliant. Selection advice is predictive, that is, selection advice informs the user that conflict will be encountered if a negatively marked selection is chosen and that changing a choice from a negatively marked selection to a positively marked selection will eliminate an existing conflict.
Pending Choice pane 14 shows the same pricing attribute with the pending choice feature enabled. In this example, the pricing attribute has not been assigned an actual value because the user has not yet made a choice from one of the actual values.
I. Include Selection Advice
Three situations may exist for which selection advice for logic expressed in Include rules of a ZDD rule model may not match the expectations of end users. Two of these situations involve computation of advice when one or more attributes were pending, that is, had no selection by the user.
A. Multi-OR Select for an Attribute
A first situation concerns what happens when a user selects multiple enumerations for an attribute. The improvement herein called Multi-OR Select for an Attribute computes advice in this scenario and allows a user to affirmatively select multiple enumerations for a single attribute when specifying a product or service (e.g., choosing product specifications). The resulting advice is the OR of all of the individual advises for the enumerations. Further, many attributes can have multiple enumerations selected without causing execution time to increase in an exponential manner.
FIG. 2 shows enumerations that may be selected for three attributes: Pricing, Services, and Shipper. Pricing and Shipper attributes each show a single selection, denoted by checkmarks in boxes 22 and 24. The Services attribute shows multiple user selections in boxes 26 and 28. In this example, all three attributes are directly related to each other so, in this case, a determination of the advice by the rule processing system or method for the Shipper attribute must take into account the values for Services and Pricing attributes. When considering the values for Services, the impact of the selection 26 of Ground is OR'ed with the impact of the selection 28 of Overnight. That is, a “+” is assigned to DHL selection 29 of the Shipper attribute if either Ground or Overnight is compatible. This allows computation of advice to remain linear (non-exponential) regardless of the number of attributes or enumerations (i.e., selections) chosen by the user.
Exemplary code for processing the Multi-OR Select function is set forth in the Appendix. When a user selects several enumerations related to an attribute, the result is OR'ed together. For example, if the user chooses Red and Green from a Color attribute, the Advice result shows options for Red and options for Green at the same time. Some of the results shown apply only to Red and some of the results apply only to Green. This would differ from a Multi-AND result, which would only show the results that are true for both Red and Green simultaneously. In order to support Multi-OR select, certain modification to the Execution engine disclosed in the incorporated applications were implemented.
As set forth in the Appeneix, one change concerns building the Include MakeSelectionTermForGroup (MSTFG) Zdd. The MSTFG Zdd is preferably constructed synthetically. Attributes having a single enumeration selected are added, as before. For attributes having multiple enumerations selected by the user, the method or system implementing the method starts with a one tree, and then, for each related attribute, each selected enumeration is added to a tree in an exclusive manner. The method (or apparatus) then intersects this tree into the MSTFG. The Include Select operation remains unchanged. Only the MSTFG tree changes on the Include side. Processing multiple enumerations has a minimal performance impact for enumerations that are on the Include side of the overall rule model characterizing the product or service in question.
Procures to implement Exclude advice with multiple selected enumerations is also provided. Here, the improved method and apparatus include changes to Exclude advice processing that allow the user to select multiple enumerations of a single attribute. One solution involved performing the SelectE operation on all possible combinations of the multiple selected enumerations. This had a negative impact on performance. Handling of multiple selected enumerations has been integrated into the new exclude advice changes.
As an example of using two Include attributes with multiple enumerations, several values for pressure and material in the following group-index chart were chosen to illustrate which material enumerations are set.
Group Index
Number Name Number Nama
0 Material 0 Rubber
1 Silicone
2 Neoprene
1 Pressure 3 Low
4 Medium
5 High
2 pH 6 Acidic
7 Basic
3 Thickness 8  0-25 mm
9 25-50 mm
10 50-75 mm
In the above example, the following enumerations were selected for pressure, thickness and pH attributes:
    • Pressure: High AND Low.
    • Thickness: 0-25 mm AND 25-50 mm.
    • pH: Acidic.
Thus, the user chose enumerations 3, 5 from group 1; enumeration 6 from group 2; and enumerations 8, 9 from group 3.
FIG. 3 illustrates building the modified MSTFG Zdd tree. First, since the user selection from Group 2 only has one enumeration, it can be synthetically added as performed by the method and/or apparatus of the parent applications to produce the Zdd tree 31 shown in FIG. 3. Then, tree 32, indicated as Group 1 terms, is constructed using the two terms selected for Group 1. Then, trees 31 and 32 are intersected to produce tree 33, indicated as Step 2 MSTFG. Next, tree 34 is generated, indicated as Group 3 Terms, similar to the procedure for the Group 1 terms. Finally, trees 33 and 34 are intersected to produce tree 35, indicated as the Final MSTFG Zdd. The Final MSTFG Zdd is used by the Include Select operation set forth in the parent applications.
B. Hub and Spoke Look-Ahead
A second Include advice situation involves the effect that a pending attribute has on attributes related by include rules. Hub and spoke deals with the situations where several spoke attributes are related to a central hub attribute. The spokes are not directly related to each other (i.e. they aren't in the same rule). If the hub attribute is not pending (i.e., unknown or not yet selected by a user), advice is solved as normal. The following method is used to obtain advice if the hub attribute is pending (i.e., selected by a user or otherwise known). In order to solve the validity for any one of the spoke attributes, it must be determine what other spoke attributes are related to it through the pending hub attribute. Newly found related spoke attributes are temporarily added to the AttrRels ZDD for the spoke attribute.
Example:
    • Rule 1: Attr1
      Figure US08055604-20111108-P00001
      Attr2
    • Rule 2: Attr2
      Figure US08055604-20111108-P00001
      Attr3
    • Rule 3: Attr2
      Figure US08055604-20111108-P00001
      Attr4
    • Rule 4: Attr2
      Figure US08055604-20111108-P00001
      Attr5
In the above example, Attr2 is a hub because all of the other attributes are directly related to it. If Attr2 is pending, we need to imply the relationships that Attr1 has to the other spokes of Attr2. This is done by adding Attr3, Attr4, and Attr5 to the AttrRels for Attr1, which forces Attr2 into a required state. That is, although Attr2 is pending, it will still be considered during the logic evaluation. Improvements described in the “Select Exclude” section of the Appendex are used to implement this feature.
The Hub and Spoke Look-Ahead routine works by modifying groups that are related to the group for which advice is sought. C++ code was added to the BddSelectionInclude routine to do this. The attrRels array was then used as before by the Select and MakeSelectionTermsForGroup.
Referring to FIG. 4, the hub and spoke concept deals with cases where several spoke attributes 159, 161, 173, 175, and 177 are related to a central hub attribute 160. The spokes attributes are not directly related to each other (i.e. they aren't in the same rule). As shown in FIG. 4, Attributes 159 and 174 are directly related. Attributes 161 and 173 are indirectly related through attribute 160. Attribute 160 is the hub through which the spokes, 159, 161, 173, 177, and 175 are all indirectly related.
If the hub attribute 160, for example, has been assigned a value (i.e. the user has made a selection), determination of advice is made as normal. Normal advice computation considers direct relationships. In FIG. 4, advice for attribute 159 would take into account (i.e., use the values for) attributes 160 and 174.
The improvement relating to Hub and Spoke Look-Ahead increases the accuracy of the advice determination by increasing the number of attributes that are considered during the computation of advice when the hub attribute (160) is pending (has not been assigned a value). If attribute 160 is pending, then certain indirect relationships are also used to compute advice. To compute advice for attribute 159, attribute 174 would be considered due to the direct relationship. Attributes 161, 173, 177, and 175 would be considered due to the indirect relationship through the pending, hub attribute 160.
For clarity, computing advice for attribute 161 is presented here. When attribute 160 has a value, then normal advice is used and only direct relationships are considered. Attribute 161 is directly related to only attribute 160, so only attribute 160 is considered when computing advice for attribute 161. When attribute 160 is pending, then the indirect relationships of 160 are also considered. So, attributes 159, 173, 177, and 17D would also be considered when computing advice for attribute 161
Hub and spoke look ahead takes place during the processing of Include relationships. Similar handling of pending choices takes place during the processing of Exclude relationships but is dispersed throughout the algorithm.
In the following example, four (4) attribute relation rules with a user-selection in Attr1 only where Attr(x) (x=1, . . . 5) are related:
    • Rule 1: Attr1
      Figure US08055604-20111108-P00001
      Attr2
    • Rule 2: Attr2
      Figure US08055604-20111108-P00001
      Attr3
    • Rule 3: Attr2
      Figure US08055604-20111108-P00001
      Attr4
    • Rule 4: Attr1
      Figure US08055604-20111108-P00001
      Attr5
In FIG. 5, Zdd diagram 37 shows the relationship of Attr1 above while Zdd diagram 38 shows the relation of Attr2. In this example, Attr2 is a pending hub for Attr1 because it is related to Attr1 and other attributes, and because it is pending. Normally, Attr1 is only related to Attr2 and Attr5. Since Attr2 is pending, we need to add the AttrRels for Attr2 to the AttrRels for Attr1 is related to Attr1, Attr3 and Attr4. So, adding these two AttrRels together yields result Zdd 39 that Attr1 is related to Attr2, Attr3, Attr4, and Attr5.
The reason for this is to force Attr2 into a required state. That is, although Attr2 is pending, we must still use it as if at least one of its enumerations has a value during the Include logic execution.
C. Pending Never Enumerations
A third Include advice situation deals with interaction between pending choices and enumerations that can never be chosen without creating conflict. In some cases, the advice for pending attributes may not have been entirely accurate. Enumerations that were never used, for example, may show up as ‘+’ if they were pending. To resolve possible inaccuracies, the method, apparatus, or computer-readable medium of the present invention involves checking if any enumerations in a pending attribute are contained in the Include zdd of the overall rule model characterizing the product or service in question. If they are not in the Include zdd and some other enumerations from the same attribute were in the Include zdd, then the enumeration is never included. The never used enumerations in the Include zdd are then forced to be zero at the beginning of the execution engine.
If an attribute is never used in the Include zdd but resides in the Exclude zdd, it is seen as an “always asserted” from the perspective of the include zdd. That means that all of its enumerations were forced to be “one” while processing the include zdd. The improvement affects how the conflict advice is displayed when attributes are pending.
In exemplary code for groups that are pending, the improvement checks if there are any enumerations that are never used. The following code is added to the GetAdviceArray routine just before the Include advice section.
 for( int groupIndex = 0;
 groupIndex < engine.oZDD1.nGroups; groupIndex++ )
 {
  if( engine.iGroupState[groupIndex] == 1 )   // Is Pending?
 {
   int groupStart =
engine.oZDD1.aGroups[groupIndex*engineoZDD1.GroupItemLength];
  int groupEnd = engine.oZDD1.aGroups[groupIndex*engine.-
  oZDD1.GroupItemLength + 1];
  for( int a = groupStart; a<=groupEnd; a++ )
  {
    engine.iCurrState1[a] = engine.oZDD1.isNever[a]?0:1;
   }
   break;
 }
 }
FIG. 6 shows an exemplary Include rule having an exclude “cover” on A2E4. A cover exists when a rule does not include any valid combinations associated with the rule, such as with A2E4 in the example of FIG. 6. This is illustrated by the absence of a relation in row 41. A2E4 can never be selected without creating conflict because all rule combinations containing A2E4 are invalid. Therefore, the selection A2E4 should always yield negative selection advice.
The present improvement concerns avoiding assignment a positive selection advice to A2E4 when related attributes were pending (had no user selections). If A2E4 was selected, a correct validity would be indicated but the advice may be incorrect.
To avoid providing incorrect advice relative to a cover, the improvement checks the Include ZDD during packaging and notes enumerations that are completely missing from the Include ZDD. If an enumeration is missing from the Include ZDD and some members of the group to which it belongs are in the Include ZDD, then the enumeration is never valid as a selection. Such never valid selections receive negative selection advice. At the beginning of Include advice processing, never valid selections are set to invalid.
a. Exclude Selection Advice
Certain situations existed for which selection advice for logic expressed in Exclude rules did not match the selection advice for equivalent logic expressed in Include rules. The difference is manifested in two ways. First, the advice from exclude-based logic would place plus signs on selections that would receive minus signs with Include based logic.
Second, an end user might occasionally choose a selection with positive selection advice and the execution engine would respond by changing the advice for that selection from positive to negative and then show conflict. In these situations, selection advice from include rules more closely matched the expectations of end users so the improvement deals with modifying the processing of exclude rules.
i. Exclude Mutually Exclusive Attributes
A first situation involves the effect an exclude rule has on other related attributes. If a set of enumerations are excluded and every enumeration in that set is selected, the improvement may exclude every other attribute that is related to any of the attributes that were excluded.
Example Using Three Exclude Rules.
    • Rule 1: Attr1
      Figure US08055604-20111108-P00001
      Attr2
      Figure US08055604-20111108-P00001
      Attr3
      Figure US08055604-20111108-P00001
      Attr4. (Various excludes)
    • Rule 2: Attr5
      Figure US08055604-20111108-P00001
      Attr6
      Figure US08055604-20111108-P00001
      Attr7. (Various excludes)
    • Rule 3: Attr1
      Figure US08055604-20111108-P00001
      Attr5. Enum11×Enum55
If Enum11 and Enum55 are selected, combinations are completely excluded. Therefore all enumerations are excluded from attributes that are related to Attr1 and Attr5. That means that all enumerations from Attr2, Attr3, Attr4, Attr6 and Attr7 are excluded.
To execute a routine for Exclude Pending Relationships, as set forth in the Appendix, every path of the Exclude rule that has a selection and/or pending terms is scanned. As a path is scanned, the terms on that path are categorized. The improvement searches for the following cases:
    • Paths with only selected terms. The exclusive attributes for all the terms on this path are excluded.
    • Paths with only pending terms and selections related to those pending terms. A counting mechanism is used to determine if the related terms are excluded.
    • Paths only having selections and related pending terms. The counting mechanism is used here as well.
FIG. 7 shows a attribute relations ZDD 42 of a rule model having eight attributes related through various rule components. The attribute relations ZDD 42 shows a relationship among attributes 180, 186, 188, and 190, which are directly related to attribute 187. FIG. 7 also shows a relationship diagram 43 revealing an “exclude” relation between attributes 187 and 188, indicated by an “x” mark in the diagram.
Attribute relations rule 42 shows that a selection of A187E3 is incompatible with a selection of A188E3. If a user selects A187E3, normal selection advice computation provides negative advice for A188E3, and vice versa, which is the correct and expected behavior. However, if both A187E3 and A188E3 were selected, normal selection advice computation would render negative advice for both selections (which is also correct), but would not go on to mark the selections for attributes 180, 186, and 190 with negative advice. All selections for attributes 180, 186, and 190 should be marked with negative advice since these attributes are directly related to attribute 187 and picking any of the selections would not change the existing conflict between A187E3and A188E3.
Rule processing to implement Exclude Mutually Exclusive Attributes is done by the execution engine at run time. The system scans for this condition at the same time that it scans the Exclude Zdd for pending relationships. When the system scans a path and arrives at the “one” node, it compares the number of terms on the path to the number of selections on that path. If those two numbers are the same, the Exclude Zdd scanner calls a routine that also excludes the mutually exclusive attributes for all of the selections on that path.
Exclude Pending Relationships
A second situation involves propagation of negative selection advice across attributes related through Exclude rules when selection of one of the attributes is pending. FIG. 8 shows an exemplary relationship between five attributes related through Exclude rules. In this example, shaded attribute 152 is pending (i.e., has no user selection), the un-shaded other attributes have user selections, and advice is to be computed for attribute 146. According to the improvement, an enumeration of attribute 146 will have negative advice propagated towards it based on the composition and lengths of the relevant paths in the exclude Zdd tree.
To implement Exclude Pending Relationships on a computer, the improvement scans or effects scanning of every path of the Exclude ZD having picked and/or pending terms. During the scan, all terms on the path of the ZDD are categorized into one of several cases:
In all cases, the procedure implemented by the method or apparatus seeks to find complete paths through the Exclude Zdd tree. If a complete path is found, all of the terms on that path must be “−” (negatively) advised or denoted. If the path is complete except for an unselected term (not yet picked by a user), then that last term is also negatively advised or denoted as “−.”
If the path is complete except for a term and another term from a pending attribute, more processing must be done in order to determine if the term of interest is to be negatively advised.
    • Paths with picked terms only. The exclusive attributes for all terms on this path are also excluded, which is the triggering event for Mutually Exclusive Attributes, discussed above.
    • Paths with pending terms only and picks related to those pending terms. A counting mechanism in the procedure is used to determine if the related terms are excluded. This case occurs if an enumeration is related to a pending group and all of the enumerations in the pending group are excluded. In such case, the enumeration can also be excluded. When implementing the procedure, it is not necessary to know how all of the pending enumerations became excluded—the procedure just acts on that fact.
    • Paths only having picks and related pending terms. The counting mechanism of the procedure is used here as well. This case occurs when an enumeration is related to a pending enumeration and that pending enumeration is excluded through an unknown third enumeration, in which case the improved procedure may exclude the first enumeration. This situation can be tricky because pending term may be excluded by a pick of another term to which it directly relates as well. In this case, the system implementing the procedure doesn't use the pending term in the path.
The procedure used in the preferred method or apparatus also assures that certain requirements are met, e.g., that (1) there can only be one pending enumeration on the path, and (2) the enumerations related to the pending enumeration lie on a path that doesn't contain the picked term and that the related enumerations are not pending.
As an Example of the Exclude Pending Relationships, the Exclude tree 44 of FIG. 10 has rules that are defined in the table of FIG. 9 to illustrate various cases for handling pending attributes. FIG. 9 shows relationships between and among four rules (Rule1, Rule2, Rule3 and Rule4) and four attributes (Attr1, Attr2, Attr3, and Attr4). If a user selects enumeration A4E3 and leaves all the other attributes pending, enumerations A3E2, A2E3, A1E3, A1E4 become excluded. Enumerations A2E3 and A1E3 are excluded directly by rule clicks. A1E4 is always excluded because it is excluded with all members of Group 2. Since there must always be a valid enumeration selected from each group, and since no enumeration from Group 2 can be selected when A1E4 is selected, A1E4 is excluded.
The counting mechanism described above is used to determine that all members of Group 2 are to be excluded with selection of A1E4. Enumeration A3E2 is excluded because A2E3 and A1E4 are both excluded. Note that, at this point, selection of any enumeration having negative advice will cause the attributes related to it to also be excluded. This scenario was described above in connection with mutually exclusive attributes.
Removal of Exclude Cover
Other situations of Exclude Selection Advice improvements concern removing information from the Exclude Zdd that might hide proper advice. Routines for accomplishing this, which is described in the Appendix, are preferably added during the packaging process. Once the covers are removed, the Exclude Zdd is modified, but preferably retaining the same variable ordering. Exclude cover removal is used to create a new Exclude ZDD devoid of nonessential information for logic processing.
The following example of single Exclude rule with three attributes is discussed:
    • Enum11×(Enum21 . . . Enum25)×Enum33
    • Attr2 is a cover of Enum11×Enum33.
In this example, if Enum11 is chosen, then Enum33 should be excluded no matter which enumeration of Attr2 is selected. So, the cover on Attr2 as it relates to Enum11 and Enum33 must be removed.
In a triangular Exclude rule, covers must also be removed when combining rules in a triangular manner. This situation occurs when three or more Exclude rules are related in a cycle, such as seen in the following example:
    • Rule 1: Attr1
      Figure US08055604-20111108-P00001
      Attr2. Enum11×(Enum21 . . . Enum24)
    • Rule 2: Attr2
      Figure US08055604-20111108-P00001
      Attr3. Enum11×(Enum31 . . . Enum34)
    • Rule 3: Attr3
      Figure US08055604-20111108-P00001
      Attr1. Enum25×Enum35
Enum11 should always be excluded because it is noncompliant with (Enum21 . . . Enum24) and with (Enum31 . . . Enum34). It is compliant with either Enum25 or Enum35, but since these are noncompliant, Enum11 is not compliant with either one. The three Exclude rules mentioned above can, however, be combined with a larger three-dimensional rule. In that form, it is more obvious that Enum11 would be totally excluded.
When combined into a single rule, the cover can be removed by the previous method. Since combined rules should be avoided, the covers in place must be removed. Exemplary code set forth in the appendix comprises Visual Basic code that shows a call to the RemoveCoversFromExclude routine. This code is inserted at the time when the exclude ZDD is being created and persisted to memory.
To explain further, a third situation occurs when, during rule definition or maintenance, a modeler or rule maintenance personnel creates a cover by excluding an entire row or column of a rule, such as shown by Rule 1 (46) illustrated in FIG. 11. Rule 1 contains an exclude cover in that it excludes any combination of relationships containing A1E4 (i.e., Attribute 1, Enumeration 4). Attribute 2 is referenced by the rule but that reference is not relevant because every one of the five enumerations of Attribute 2 is excluded whenever A1E4 is selected. Thus, the improvement herein relating to Exclude Cover Removal detects conditions like that shown in Rule 1 of FIG. 11 and converts them to that shown in Rule 2 (48), also shown in FIG. 11.
Processing code for the Exclude Cover Removal is shown in the Appendix. Since, during rule packaging, the method, apparatus, or computer-readable medium used to create the Exclude ZDD may leave covers in the ZDD that do not add essential information for the logic computation, exclude covers may be removed.
FIG. 12 shows an example of an Exclude Zdd 50 having many covers as well as a resulting, modified Exclude zdd 52 after removal of the covers. To remove the covers, the improvement reorders or moves a group of nodes to the bottom of the ZDD tree 50 and any path that enters the completed XOR for the group that was moved to the bottom can be redirected to the “one” node. The next group of nodes is then moved to the bottom of the tree and the process is repeated.
When Group 1, for example, is moved to the bottom of the ZDD, node 3 and node 4 will be an XOR with every other combination in the ZDD. Each combination that uses the XOR can go directly to the “one” terminal node instead of going through the XOR. Since all combinations go through the XOR of nodes 3 and 4, it turns out that the nodes 3 and 4 are removed entirely from the ZDD. Note that there are no nodes in Exclude Zdd 52 that have Index 3 or index 4.
Group 5 is made up of Indexes 16 through 20. When Group 5 is moved to the bottom it is seen that there are various sub-groupings involving Indexes 16 through 20. One of these sub-groupings is a complete XOR on Group 5. The combinations in the ZDD that have this XOR are {node 5-node 9-XOR} and {node 5-node 11-XOR}. The XORs can be removed from these two combinations. So instead of going through the XOR, they go directly to the “one” terminal node. Note that in Exclude Zdd 52 the combinations {node 5-node 9} and {node 5-node 11} both go directly to the terminal 1 node.
Group 3 is made up of indexes 9 through 11. When Group 3 is moved to the bottom of the ZDD one of the sub-groupings will be a complete XOR on Group 3. The combinations that use this XOR are {node 5-node 16-XOR} and {node 5-node 20-XOR}. The XOR can be removed from these two combinations. So instead of going through the XOR, they go directly to the “one” terminal node. Note that in Exclude Zdd 52 the combinations {node 5-node 16} and {node 5-node 20} both go directly to the terminal 1 node.
One complication arises when a cover is removed. Such removal affects removal of later covers from the ZDD tree. So, a copy of the original tree is kept in memory and checked for paths that would have been removed if that group were the first to have its cover(s) removed. The improvement uses the original Zdd tree to facilitate removal of paths.
Cyclic Exclude Rules
Another situation arises when combining triangular-related Exclude rules (or other cycle Exclude rules) during packaging. Cyclic Exclude rules may inherently engender covers not readily apparent upon examination of the Exclude rules, as apparent in the preceding example. To illustrate, FIG. 13 shows three rules 54, 56, and 58 that are related in a cycle, i.e., a triangular-related rule set. Cycles are formed when rules share an attribute from each of its neighbors. The illustrated three-attribute, three-rule relationship is the simplest such cycle and is often referred to as a triangular relationship. Larger cycles may be formed with any number of rules and attributed.
The clicks (i.e., X-marks) in rule diagrams 54, 56, and 58 established by user activation of pointing device (e.g, computer mouse) illustrate how exclude covers are created when triangular-related rules are combined. When so combined, the three rules have the effect of excluding any combination containing the enumeration A2E1 even though none of them alone (or in a pair) exclude A2E1. Rule diagram 60 of FIG. 13 shows a result of combining Exclude rules 54, 56, and 58. Result 60 may be difficult to envision but becomes more evident when noting that (a) Rule 1 excludes all combinations of A2E1 except those also containing A1E3 (the lower left cell of the rule diagrams), (b) Rule 2 excludes all combinations of A2E1 except for those also containing A3E3 (again, the lower left cell), and (c) Rule 3 excludes all combinations containing both A1E3 and A3E3. Thus, Rule 3 excludes all of the combinations of A2E1 allowed by Rules 1 and 2. The result of combining the three rules operatively excludes all combinations containing A2E1. It is an objective of an aspect of the present invention to identify this situation in cyclically related Exclude rules, and then to reduce the cyclic rule set to a smaller equivalent rule thereby to simply processing. As indicated above, detection of such covers and conversion may be done at the time of rule packaging.
Finding cyclic covers may be NP-complete where there are no known algorithms guaranteed to find all cyclic covers and still complete processing in a finite length of time. Processing time grows linearly with the number of enumerations referenced by cyclic Exclude rules and completes in finite time. The accepted tradeoff is that the algorithm is not guaranteed to find all the covers. Experimentation indicates that cyclic covers of typical complexity can, in practice, be found. Accuracy is estimated to drop to around 80% for unusually complex covers.
The three may also be represented in a way that makes the cover more apparent. FIG. 14, for example, shows all three triangular-related rules combined into a single larger rule diagram 62. In this form, it becomes easy to see that A2E1 is excluded at all times. Thus, in another embodiment of the invention, combined rule 62 is supplied to the exclude cover finder/routine to discover the exclusion of A2E1. The rule modeler, however, is not expected to generate/discover the combined rule 62, so the method and/or apparatus of the present invention essentially may generate combined rule 62 during the process of removing the triangular cover.
FIG. 15 illustrates processing to remove cyclic covers. ZDD tree 90 was constructed using the three-rule cyclic set forth above and the following mapping of enumerations to indexes:
Figure US08055604-20111108-C00001
To implement the process, a computer-implementation of the invention converts the enumerations into clicks: 0×3, 0×4, 0×6, 0×7, and 5×8, and creates a first ZDD tree 90. A second ZDD tree 92 shows the resulting, simplified tree with covers removed. An exemplary algorithm, set forth in the Appendix, that removes cyclic covers is called for each group of the ZDD. The algorithm also checks for any enumeration from the selected group that has all members of a second group on its Then and Else legs.
In this fashion, G1=First group, G2=Second group, and G3=Third group. All members of G2 must be present somewhere in the ZDD structure. N1 is a node that is a set of members from G2. All members of N1 must point to the same node on the then leg. N2 is a set of one or more members from G3 in an exclusive relationship. Members of G1 must point to either N1 or N2. Members of G2 must point to N2 or be a part of N1. If the foregoing conditions are met, then all nodes of G1 that point to N2 disappear. The other nodes remain unchanged.
Based on the above teachings, the invention includes a method, apparatus, and/or computer-readable medium (e.g., a magnetic or optical storage medium) and embraces modifications and extensions not explicitly shown in the drawings or described in the written description. The invention is preferably practiced utilizing zero-suppressed binary decision diagrams (ZDDs) but software emulations or other representations of ZDDs, BDD, or directed acyclic graphs (DAGs), regardless of the type of coding implemented, may be employed to achieve substantially the same results. Typically, a keyboard and pointing device (e.g., a mouse) is used to supply inputs to a GUI (graphical user interface). The GUI also is used to provide results to the user. A processor (desktop, handheld, or other portable computing device) typically implements the method. Access and transfer of data may occur locally or via a network, e.g. the Internet or a LAN. Further, even though the exemplary embodiments may be directed to product or service configuration, the invention may be extended to other applications as described in the incorporated and related patents and patent applications. Accordingly, the disclosure is not intended to limit the scope of the invention set forth by the appended claims.

Claims (21)

1. A method, comprising:
identifying, using a processing device, a central component having a pending value of an enumeration not yet selected in a Zero-suppressed Decision Diagram (ZDD) rule model defining at least one attribute or enumeration of a product or service characterized with one or more rule components;
determining, using the processing device, selection advice for at least one enumeration of at least one rule component directly related to the central rule component based on possible selections of enumerations of other rule components directly related to the central rule component, the at least one rule component being but only indirectly related to others of the at least one rule components; and
displaying on a display device the selection advice based on the possible selections of the enumerations to enable selection among the possible selections of the enumerations that render the product or service compliant;
wherein each of the one or more rule components directly relates to the central rule component.
2. The method of claim 1, wherein the determining comprises combining an attribute relation ZDD representative of the central rule component with an attribute relation ZDD of the ZDD rule model.
3. The method of claim 1,
wherein the central rule component has a mutually exclusive Exclude relationship with one other rule component; and
wherein the determining comprises assigning a negative selection value to rule components related to the central rule component when a negative selection is denoted for the one other rule component.
4. The method of claim 1,
wherein the central rule component for which a selection is pending relates to other rule components through an Exclude relationship; and
wherein the determining comprises propagating a negative selection value to enumeration values of a rule component under examination when the other rule components also have the negative selection value.
5. The method of claim 1, wherein the determining comprises searching through Exclude rules to remove non-essential information by removing covers detected therein.
6. The method of claim 1, wherein the determining comprises searching through Exclude rules to remove cyclic covers.
7. A device, comprising:
an interface to enable selection of at least one enumeration from at least one attribute of a product or service; and
a processor configured to:
identify a common rule component of a Zero-suppress Decision Diagram (ZDD) rule model defining one or more attributes or enumerations of a product or service characterized with one or more rule components;
determine selection advice for at least one enumeration of at least one rule component directly related to the common rule component based on possible selections of enumerations of other rule components directly related to the common rule component, the at least one rule component being only indirectly related to others of the at least one rule component; and
cause communication of the selection advice to enable choosing among other enumerations that render the product or service compliant.
8. The device of claim 7,
wherein the common rule component has a mutually exclusive Exclude relationship with at least one other rule component; and
wherein the processor is further configured to assign a negative selection value to entire selections of other rule components related to the common rule component when a negative selection is denoted for the one other rule component.
9. The device of claim 7,
wherein the common rule component for which a selection is pending relates to other rule components by an Exclude relationship; and
wherein the processor is further configured to propagate a negative selection value to entire enumeration values of a rule component under examination when other components related to the common rule component have the negative value asserted.
10. The device of claim 7, wherein the processor is further configured to effect searching through Exclude rules to remove non-essential information by removing covers detected therein.
11. The device of claim 7, wherein the processor is further configured to effect searching through Exclude rules to detect and remove cyclic.
12. A non-transitory computer-readable medium having computer-executable instructions stored thereon that, in response to execution by a device, cause the device to perform operations comprising:
utilizing a ZDD rule model to define compliant features including attributes and enumerations of a product or service;
providing selection advice to guide selection of a desired set of compliant features characterized by multiple rule components of the ZDD rule model;
identifying a common one of the rule components having a pending selection of an enumeration;
determining selection advice for at least one enumeration of at least one rule component directly related to the common one of the rule components based on possible selections of enumerations of other rule components directly related to the common one of the rule components, the at least one rule component being but only indirectly related to others of the at least one rule components; and
communicating the selection advice based on the possible selections of the enumerations whereby to enable choosing among enumerations that render features of the product or service compliant.
13. The non-transitory computer-readable medium of claim 12,
wherein the common one of the rule components has a mutually exclusive Exclude relationship with one other rule component; and
wherein the method further comprises assigning a negative selection value to entire selections of other rule components related to the common central one of the rule components when a negative selection value is denoted for the one other rule component.
14. The non-transitory computer-readable medium of claim 12,
wherein the common one of the rule components for which a selection is pending relates to other rule components by an Exclude relationship; and
wherein the method further comprises propagating a negative selection value to entire enumeration values of a rule component under examination when other components related to the common one of the rule components have negative advice asserted.
15. The non-transitory computer-readable medium of claim 12, wherein the method further comprises searching through Exclude rules to remove nonessential information by removing covers detected therein whereby to reduce the complexity of the Exclude rules.
16. The non-transitory computer-readable medium of claim 12, wherein the method further comprises searching through Exclude rules to detect and remove cyclic covers whereby to reduce the complexity of the Exclude rules.
17. A system, comprising:
a memory device means for storing instructions; and
a processing means configured to execute the instructions stored in the memory device means to:
allow selection, via an interface displayed on a display device, of multiple enumerations of at least one attribute of a product or service;
identify a common one of the rule components having a pending selection of an enumeration;
determine selection advice for at least one enumeration of at least one rule component directly related to the common one of the rule components based on possible selections of enumerations of other rule components directly related to the common one of the rule components in response to the identifying, wherein the at least one rule component is only indirectly related to each of the other rule components; and
communicate the selection advice based on the possible selections of the enumerations whereby to enable choosing among enumerations that render features of the product or service compliant.
18. The system of claim 17,
wherein the common one of the rule components has a mutually exclusive Exclude relationship with one other rule component; and
wherein the processing means is further configured to execute the instructions stored in the memory device to cause the processing means to assign a negative selection value to entire selections of other rule components related to the common central one of the rule components when a negative selection value is denoted for the one other rule component.
19. The system of claim 17,
wherein the common one of the rule components for which a selection is pending relates to other rule components by an Exclude relationship; and
wherein the processing means is further configured to execute the instructions stored in the memory device to cause the processing means to propagate a negative selection value to entire enumeration values of a rule component under examination when other components related to the common one of the rule components have negative advice asserted.
20. The system of claim 17, wherein the processing means is further configured to execute the instructions stored in the memory device to cause the processing means to search through Exclude rules to remove nonessential information by removing covers detected therein whereby to reduce the complexity of the Exclude rules.
21. The system of claim 17, wherein the processing means is further configured to execute the instructions stored in the memory device to cause the processing means to search through Exclude rules to detect and remove cyclic covers whereby to reduce the complexity of the Exclude rules.
US12/467,928 2003-09-29 2009-05-18 Rule processing method, apparatus and computer-readable medium to provide improved selection advice Active 2025-04-08 US8055604B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/467,928 US8055604B2 (en) 2003-09-29 2009-05-18 Rule processing method, apparatus and computer-readable medium to provide improved selection advice

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US50615603P 2003-09-29 2003-09-29
US10/950,815 US7552102B2 (en) 2003-09-29 2004-09-28 Rule processing method, apparatus, and computer-readable medium to provide improved selection advice
US12/467,928 US8055604B2 (en) 2003-09-29 2009-05-18 Rule processing method, apparatus and computer-readable medium to provide improved selection advice

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/950,815 Division US7552102B2 (en) 2003-09-29 2004-09-28 Rule processing method, apparatus, and computer-readable medium to provide improved selection advice

Publications (2)

Publication Number Publication Date
US20090228420A1 US20090228420A1 (en) 2009-09-10
US8055604B2 true US8055604B2 (en) 2011-11-08

Family

ID=34576643

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/950,815 Active 2024-10-21 US7552102B2 (en) 2003-09-29 2004-09-28 Rule processing method, apparatus, and computer-readable medium to provide improved selection advice
US12/467,928 Active 2025-04-08 US8055604B2 (en) 2003-09-29 2009-05-18 Rule processing method, apparatus and computer-readable medium to provide improved selection advice

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US10/950,815 Active 2024-10-21 US7552102B2 (en) 2003-09-29 2004-09-28 Rule processing method, apparatus, and computer-readable medium to provide improved selection advice

Country Status (1)

Country Link
US (2) US7552102B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9182946B2 (en) 2013-03-15 2015-11-10 Russell Sellers Method of generating a computer architecture representation in a reusable syntax and grammar

Families Citing this family (10)

* 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
US8805825B1 (en) * 2005-01-12 2014-08-12 Versata Development Group, Inc. Attribute prioritized configuration using a combined configuration-attribute data model
US9405819B2 (en) * 2007-02-07 2016-08-02 Fujitsu Limited Efficient indexing using compact decision diagrams
EP2203411B1 (en) 2007-09-20 2016-01-06 Ramot at Tel-Aviv University Ltd. N-phenyl anthranilic acid derivatives and uses thereof
US20120192158A1 (en) 2010-11-22 2012-07-26 Carlo Amalfitano Model Based Verification Using Forward and Reverse Traversal of Variable Time Line
US10303808B2 (en) * 2014-05-16 2019-05-28 Configit A/S Product configuration

Citations (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5212771A (en) 1990-04-27 1993-05-18 Bachman Information Systems, Inc. System for establishing concurrent high level and low level processes in a diagram window through process explosion and implosion subsystems
US5301284A (en) 1991-01-16 1994-04-05 Walker-Estes Corporation Mixed-resolution, N-dimensional object space method and apparatus
US5311424A (en) 1991-06-28 1994-05-10 International Business Machines Corporation Method and system for product configuration definition and tracking
US5367619A (en) 1990-04-27 1994-11-22 Eaton Corporation Electronic data entry system employing an expert system to facilitate generation of electronic data forms with complex interrelationships between fields and subforms
US5576965A (en) 1992-04-16 1996-11-19 Hitachi, Ltd. Method and apparatus for aiding of designing process
US5630025A (en) 1994-07-13 1997-05-13 Unisys Corporation Generalized configurator using a declaratively constructed two-level bi-partite graph as a knowledge representation
US5701400A (en) 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US5745765A (en) 1995-10-23 1998-04-28 Calico Technology, Inc. Method and apparatus for automatic and interactive configuration of custom products
US5805462A (en) 1995-08-18 1998-09-08 Vlsi Technology, Inc. Automatic synthesis of integrated circuits employing boolean decomposition
US5809212A (en) 1993-07-12 1998-09-15 New York University Conditional transition networks and computational processes for use interactive computer-based systems
US5844554A (en) 1996-09-17 1998-12-01 Bt Squared Technologies, Inc. Methods and systems for user interfaces and constraint handling configurations software
US5877966A (en) 1994-05-31 1999-03-02 Pantheon Solutions, Inc. System and method for creating configurations using templates
US5889993A (en) 1996-10-15 1999-03-30 The Regents Of The University Of California Predictive event tracking method
US5910898A (en) 1995-12-14 1999-06-08 Viewlogic Systems, Inc. Circuit design methods and tools
US5924077A (en) 1995-12-29 1999-07-13 Sapient Solutions, Llc Computer based system for monitoring and processing data collected at the point of sale of goods and services
WO1999048031A1 (en) 1998-03-16 1999-09-23 Array Technology Aps A database useful for configuring and/or optimizing a system and a method for generating the database
US5963953A (en) 1998-03-30 1999-10-05 Siebel Systems, Inc. Method, and system for product configuration
US5987473A (en) 1997-09-09 1999-11-16 Beologic A/S Interactive configuration via network
US6002854A (en) 1993-03-29 1999-12-14 Trilogy Developmetn Group, Inc. Method and apparatus for configuring systems
US6016394A (en) 1997-09-17 2000-01-18 Tenfold Corporation Method and system for database application software creation requiring minimal programming
US6031984A (en) 1998-03-09 2000-02-29 I2 Technologies, Inc. Method and apparatus for optimizing constraint models
US6035305A (en) 1997-08-29 2000-03-07 The Boeing Company Computer-based method of structuring product configuration information and configuring a product
US6064982A (en) 1997-11-12 2000-05-16 Netscape Communication Corporation Smart configurator
US6076080A (en) 1997-11-04 2000-06-13 The Standard Register Company Forms order entry system
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
US6182275B1 (en) 1998-01-26 2001-01-30 Dell Usa, L.P. Generation of a compatible order for a computer system
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
US6256618B1 (en) 1998-04-23 2001-07-03 Christopher Spooner Computer architecture using self-manipulating trees
US20010029499A1 (en) 1999-12-30 2001-10-11 Tuatini Jeffrey Taihana Rules processing system
US6321186B1 (en) 1999-05-03 2001-11-20 Motorola, Inc. Method and apparatus for integrated circuit design verification
US6327581B1 (en) 1998-04-06 2001-12-04 Microsoft Corporation Methods and apparatus for building a support vector machine classifier
US6349290B1 (en) 1998-06-30 2002-02-19 Citibank, N.A. Automated system and method for customized and personalized presentation of products and services of a financial institution
US6385617B1 (en) 1999-10-07 2002-05-07 International Business Machines Corporation Method and apparatus for creating and manipulating a compressed binary decision diagram in a data processing system
US6389576B1 (en) 1999-09-02 2002-05-14 Sun Microsystems, Inc. Method and apparatus for optimizing real functions in Boolean domain
US6396488B1 (en) 1999-01-04 2002-05-28 Corel Inc. System and method for determining a path in a graphical diagram
US20020065701A1 (en) 2000-11-30 2002-05-30 Kim Kyu Dong System and method for automating a process of business decision and workflow
US20020078431A1 (en) 2000-02-03 2002-06-20 Reps Thomas W. Method for representing information in a highly compressed fashion
US20020095645A1 (en) 2001-01-16 2002-07-18 International Business Machines Corporation Searching for counter-examples intelligently
US6424962B1 (en) 1993-11-26 2002-07-23 Bull S.A. Method of automated proving for unrestricted first-order logic
US20020108093A1 (en) 2000-12-11 2002-08-08 Intel Corporation Method and system for formal verification of a circuit model
US20020112213A1 (en) 2001-02-13 2002-08-15 Abadir Magdy S. Design analysis tool for path extraction and false path identification and method thereof
US6442732B1 (en) 1999-04-21 2002-08-27 Lucent Technologies, Inc. Virtual logic system for solving satisfiability problems using reconfigurable hardware
US20020165701A1 (en) * 2000-12-08 2002-11-07 Jakob Lichtenberg Method of configuring a product
US20020178432A1 (en) 2000-08-17 2002-11-28 Hyungwon Kim Method and system for synthesizing a circuit representation into a new circuit representation having greater unateness
US6519767B1 (en) 1995-06-07 2003-02-11 Microsoft Corporation Compiler and method for automatically building version compatible object applications
US6529890B1 (en) 1998-08-19 2003-03-04 Ensys, Inc. Method for representing synoptic climatology information in a class-object-attribute hierarchy and an expert system for obtaining synoptic climatology information
US6556978B1 (en) 1999-03-09 2003-04-29 The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of The University Of Oregon Satisfiability algorithms and finite quantification
US6567814B1 (en) 1998-08-26 2003-05-20 Thinkanalytics Ltd Method and apparatus for knowledge discovery in databases
US6598035B2 (en) 1995-11-17 2003-07-22 International Business Machines Corporation Object oriented rule-based expert system framework mechanism
WO2003081478A1 (en) 2002-03-20 2003-10-02 Resolutionebs, Inc. Rule processing system and method
US6651096B1 (en) 1999-04-20 2003-11-18 Cisco Technology, Inc. Method and apparatus for organizing, storing and evaluating access control lists
US20030220926A1 (en) 2001-03-21 2003-11-27 Huelsman David L. Rule processing system
US6658458B1 (en) 2000-06-22 2003-12-02 Cisco Technology, Inc. Cascading associative memory arrangement
US6741975B1 (en) 1999-09-01 2004-05-25 Ncr Corporation Rule based expert system for consumer preference
US20040138988A1 (en) 2002-12-20 2004-07-15 Bart Munro Method to facilitate a search of a database utilizing multiple search criteria
US20040181500A1 (en) 2002-03-20 2004-09-16 Huelsman David L. Method and system for capturing business rules for automated decision procession
US6795832B2 (en) 2001-10-09 2004-09-21 Hewlett-Packard Development Company, L.P. Rule based compatibility module
US20040260667A1 (en) 2001-03-21 2004-12-23 Huelsman David L. Method of providing decision automation
US20050080648A1 (en) 2003-09-29 2005-04-14 Huelsman David L. Rule processing method, apparatus, and computer-readable medium to generate valid combinations for selection
US20050108183A1 (en) 2003-09-29 2005-05-19 Huelsman David L. Rule processing method, apparatus, and computer-readable medium to provide improved selection advice
US6961913B1 (en) 1999-11-18 2005-11-01 Matsushita Electric Industrial Co., Ltd. IP base LSI designing system and designing method
US6983187B2 (en) 2003-08-14 2006-01-03 Sap Aktiengesellschaft Method and system for automatically generating selection conditions in a product configuration system
US7130783B1 (en) 2001-01-12 2006-10-31 Synopsys, Inc. Simulation-based functional verification of microcircuit designs
US7188333B1 (en) 2001-12-28 2007-03-06 Sprint Communications Company L.P. Product incompatibility system
US20070112767A1 (en) 2005-11-10 2007-05-17 Symbol Technologies, Inc. Voice activated rapid deployment for mobile computers
US20070159304A1 (en) 2006-01-04 2007-07-12 Microsoft Corporation RFID device groups
US20070290791A1 (en) 2006-06-09 2007-12-20 Intelleflex Corporation Rfid-based security systems and methods
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
US20100318476A1 (en) 2001-03-21 2010-12-16 Huelsman David L Rule processing method and apparatus providing automatic user input selection

Patent Citations (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367619A (en) 1990-04-27 1994-11-22 Eaton Corporation Electronic data entry system employing an expert system to facilitate generation of electronic data forms with complex interrelationships between fields and subforms
US5212771A (en) 1990-04-27 1993-05-18 Bachman Information Systems, Inc. System for establishing concurrent high level and low level processes in a diagram window through process explosion and implosion subsystems
US5301284A (en) 1991-01-16 1994-04-05 Walker-Estes Corporation Mixed-resolution, N-dimensional object space method and apparatus
US5311424A (en) 1991-06-28 1994-05-10 International Business Machines Corporation Method and system for product configuration definition and tracking
US5576965A (en) 1992-04-16 1996-11-19 Hitachi, Ltd. Method and apparatus for aiding of designing process
US6002854A (en) 1993-03-29 1999-12-14 Trilogy Developmetn Group, Inc. Method and apparatus for configuring systems
US5809212A (en) 1993-07-12 1998-09-15 New York University Conditional transition networks and computational processes for use interactive computer-based systems
US6424962B1 (en) 1993-11-26 2002-07-23 Bull S.A. Method of automated proving for unrestricted first-order logic
US5877966A (en) 1994-05-31 1999-03-02 Pantheon Solutions, Inc. System and method for creating configurations using templates
US5630025A (en) 1994-07-13 1997-05-13 Unisys Corporation Generalized configurator using a declaratively constructed two-level bi-partite graph as a knowledge representation
US5701400A (en) 1995-03-08 1997-12-23 Amado; Carlos Armando Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data
US6519767B1 (en) 1995-06-07 2003-02-11 Microsoft Corporation Compiler and method for automatically building version compatible object applications
US5805462A (en) 1995-08-18 1998-09-08 Vlsi Technology, Inc. Automatic synthesis of integrated circuits employing boolean decomposition
US5745765A (en) 1995-10-23 1998-04-28 Calico Technology, Inc. Method and apparatus for automatic and interactive configuration of custom products
US6598035B2 (en) 1995-11-17 2003-07-22 International Business Machines Corporation Object oriented rule-based expert system framework mechanism
US5910898A (en) 1995-12-14 1999-06-08 Viewlogic Systems, Inc. Circuit design methods and tools
US5924077A (en) 1995-12-29 1999-07-13 Sapient Solutions, Llc Computer based system for monitoring and processing data collected at the point of sale of goods and services
US5844554A (en) 1996-09-17 1998-12-01 Bt Squared Technologies, Inc. Methods and systems for user interfaces and constraint handling configurations software
US5889993A (en) 1996-10-15 1999-03-30 The Regents Of The University Of California Predictive event tracking method
US6035305A (en) 1997-08-29 2000-03-07 The Boeing Company Computer-based method of structuring product configuration information and configuring a product
US5987473A (en) 1997-09-09 1999-11-16 Beologic A/S Interactive configuration via network
US6016394A (en) 1997-09-17 2000-01-18 Tenfold Corporation Method and system for database application software creation requiring minimal programming
US6076080A (en) 1997-11-04 2000-06-13 The Standard Register Company Forms order entry system
US6064982A (en) 1997-11-12 2000-05-16 Netscape Communication Corporation Smart configurator
US6182275B1 (en) 1998-01-26 2001-01-30 Dell Usa, L.P. Generation of a compatible order for a computer system
US6031984A (en) 1998-03-09 2000-02-29 I2 Technologies, Inc. Method and apparatus for optimizing constraint models
WO1999048031A1 (en) 1998-03-16 1999-09-23 Array Technology Aps A database useful for configuring and/or optimizing a system and a method for generating the database
US5963953A (en) 1998-03-30 1999-10-05 Siebel Systems, Inc. Method, and system for product configuration
US6327581B1 (en) 1998-04-06 2001-12-04 Microsoft Corporation Methods and apparatus for building a support vector machine classifier
US6256618B1 (en) 1998-04-23 2001-07-03 Christopher Spooner Computer architecture using self-manipulating trees
US6349290B1 (en) 1998-06-30 2002-02-19 Citibank, N.A. Automated system and method for customized and personalized presentation of products and services of a financial institution
US6529890B1 (en) 1998-08-19 2003-03-04 Ensys, Inc. Method for representing synoptic climatology information in a class-object-attribute hierarchy and an expert system for obtaining synoptic climatology information
US6567814B1 (en) 1998-08-26 2003-05-20 Thinkanalytics Ltd Method and apparatus for knowledge discovery in databases
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
US6226656B1 (en) 1998-11-12 2001-05-01 Sourcefinder, Inc. System and method for creating, generating and processing user-defined generic specs
US6396488B1 (en) 1999-01-04 2002-05-28 Corel Inc. System and method for determining a path in a graphical diagram
US6556978B1 (en) 1999-03-09 2003-04-29 The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of The University Of Oregon Satisfiability algorithms and finite quantification
US6651096B1 (en) 1999-04-20 2003-11-18 Cisco Technology, Inc. Method and apparatus for organizing, storing and evaluating access control lists
US6442732B1 (en) 1999-04-21 2002-08-27 Lucent Technologies, Inc. Virtual logic system for solving satisfiability problems using reconfigurable hardware
US6321186B1 (en) 1999-05-03 2001-11-20 Motorola, Inc. Method and apparatus for integrated circuit design verification
US6535883B1 (en) 1999-08-04 2003-03-18 Mdsi Software Srl System and method for creating validation rules used to confirm input data
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
US6741975B1 (en) 1999-09-01 2004-05-25 Ncr Corporation Rule based expert system for consumer preference
US6389576B1 (en) 1999-09-02 2002-05-14 Sun Microsystems, Inc. Method and apparatus for optimizing real functions in Boolean domain
US6385617B1 (en) 1999-10-07 2002-05-07 International Business Machines Corporation Method and apparatus for creating and manipulating a compressed binary decision diagram in a data processing system
US6961913B1 (en) 1999-11-18 2005-11-01 Matsushita Electric Industrial Co., Ltd. IP base LSI designing system and designing method
US20010029499A1 (en) 1999-12-30 2001-10-11 Tuatini Jeffrey Taihana Rules processing system
US20020078431A1 (en) 2000-02-03 2002-06-20 Reps Thomas W. Method for representing information in a highly compressed fashion
US6874016B1 (en) 2000-06-22 2005-03-29 Cisco Technology, Inc. Information searching device
US6658458B1 (en) 2000-06-22 2003-12-02 Cisco Technology, Inc. Cascading associative memory arrangement
US20020178432A1 (en) 2000-08-17 2002-11-28 Hyungwon Kim Method and system for synthesizing a circuit representation into a new circuit representation having greater unateness
US20020065701A1 (en) 2000-11-30 2002-05-30 Kim Kyu Dong System and method for automating a process of business decision and workflow
US20020165701A1 (en) * 2000-12-08 2002-11-07 Jakob Lichtenberg Method of configuring a product
US20020108093A1 (en) 2000-12-11 2002-08-08 Intel Corporation Method and system for formal verification of a circuit model
US7130783B1 (en) 2001-01-12 2006-10-31 Synopsys, Inc. Simulation-based functional verification of microcircuit designs
US20020095645A1 (en) 2001-01-16 2002-07-18 International Business Machines Corporation Searching for counter-examples intelligently
US20020112213A1 (en) 2001-02-13 2002-08-15 Abadir Magdy S. Design analysis tool for path extraction and false path identification and method thereof
US6952812B2 (en) 2001-02-13 2005-10-04 Freescale Semiconductor, Inc. Design analysis tool for path extraction and false path identification and method thereof
US20030220926A1 (en) 2001-03-21 2003-11-27 Huelsman David L. Rule processing system
US20040260667A1 (en) 2001-03-21 2004-12-23 Huelsman David L. Method of providing decision automation
US20100318476A1 (en) 2001-03-21 2010-12-16 Huelsman David L Rule processing method and apparatus providing automatic user input selection
US6795832B2 (en) 2001-10-09 2004-09-21 Hewlett-Packard Development Company, L.P. Rule based compatibility module
US7188333B1 (en) 2001-12-28 2007-03-06 Sprint Communications Company L.P. Product incompatibility system
US20040181500A1 (en) 2002-03-20 2004-09-16 Huelsman David L. Method and system for capturing business rules for automated decision procession
US7587379B2 (en) 2002-03-20 2009-09-08 Huelsman David L Method and system for capturing business rules for automated decision procession
US7062478B1 (en) 2002-03-20 2006-06-13 Resolutionebs, Inc. Method and apparatus using automated rule processing to configure a product or service
WO2003081478A1 (en) 2002-03-20 2003-10-02 Resolutionebs, Inc. Rule processing system and method
US20090313201A1 (en) 2002-03-20 2009-12-17 Huelsman David L Method and system for capturing business rules for automated decision procession
US20040138988A1 (en) 2002-12-20 2004-07-15 Bart Munro Method to facilitate a search of a database utilizing multiple search criteria
US6983187B2 (en) 2003-08-14 2006-01-03 Sap Aktiengesellschaft Method and system for automatically generating selection conditions in a product configuration system
US20050108183A1 (en) 2003-09-29 2005-05-19 Huelsman David L. Rule processing method, apparatus, and computer-readable medium to provide improved selection advice
US20050080648A1 (en) 2003-09-29 2005-04-14 Huelsman David L. Rule processing method, apparatus, and computer-readable medium to generate valid combinations for selection
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
US20070112767A1 (en) 2005-11-10 2007-05-17 Symbol Technologies, Inc. Voice activated rapid deployment for mobile computers
US20070159304A1 (en) 2006-01-04 2007-07-12 Microsoft Corporation RFID device groups
US20070290791A1 (en) 2006-06-09 2007-12-20 Intelleflex Corporation Rfid-based security systems and methods

Non-Patent Citations (41)

* Cited by examiner, † Cited by third party
Title
"Array". Microsoft Computer Dictionary, Fifth Edition. May 1, 2002.
Alan Mishchenko ("An introduction to Zero-Suppressed Binary Decision Diagrams" Jun. 2001) (in parent U.S. Appl. No. 10/950,815, now U.S. Patent No. 7,552,102). *
Aloul, F., M. Mneimneh, and K. Sakallah "ZBDD-Based Backtrack Search SAT Solver" International Workshop on Logic Synthesis (IWLS), New Orleans, Louisiana, pp. 131-136, 2002.
Anderson, An Introduction to Binary Decision Diagrams, University of Denmark, Oct. 1997, pp. 8-11.
Beck, M., et al., Enabling Full Service Surrogates Using the Portable Channel Representation, Proceedings of the Tenth International Conference on World Wide Web, Apr. 2001, pp. 376-385.
Bryant, Binary Decision Diagrams and Beyond, Enabling Technologies for Formal Verification, IEEE, 1995, pp. 236-243.
Cabodi, et al., Symbolic Traversals of Data Paths with Auxilary Variables, IEEE, 1994, pp. 93-96.
Cosnard, et al., Automatic Task Graph Generation Techniques, Proceedings of the Twenty-Eighth Hawaii International Conference on System Sciences, Vo. 2, Jan. 3, 1995, pp. 113-122.
Cugola, G, et al., Exploiting an event-based infrastructure to develop complex distributed systems, Proceedings of the 20th International Conference on Software Engineering, Apr. 1998.
Ejnioui, et al., Design Partitioning on Single-chip Emulations Systems, Thirteenth International Conference on VLSI Design, Jan. 3, 2000, pp. 234-239.
European Patent Office; PCT/US2007/079793; International Preliminary Report on Patentablility; Mar. 2009.
European Patent Office; PCT/US2007/079793; International Search Report and Written Opinion; Feb. 7, 2008.
European Patent Office; PCT/US2007/079797; International Preliminary Report on Patentablility; Mar. 2009.
European Patent Office; PCT/US2007/079797; International Search Report and Written Opinion; Feb. 7, 2008.
European Patent Office; Supplemental Search Report, EP 03716683.2; Jul. 2, 2010; 3 Pages.
F. Somenzi: CUDD:CU Decision Diagram Package; http://vlsi.colorado.edu/~fabio/CUDD/nodel.html, site visited Jun. 11, 2009.
F. Somenzi: CUDD:CU Decision Diagram Package; http://vlsi.colorado.edu/˜fabio/CUDD/nodel.html, site visited Jun. 11, 2009.
Gottlob, et al., The complexity of acyclic conjunctive queries, 39th Annual Symposium on Foundations of Computer Science Proceedings, Nov. 8, 1998, pp. 706-715.
Jacobi et al; Generating Prime and Irredundant Covers for Binary Decision Diagrams; Design Automation, 1992; Proceedings 3rd European Conference; Mar. 1992; pp. 104-108.
Kurihara, et al., BDD Encoding for Partial Order Constraints and its Application to Expert Systems in Software Verification Domains, 2000 IEEE International Conference on Systems, Man, Cybernetics, vol. 3, Oct. 8-11, 2000, pp. 2062-2067.
Minato, S., "Zero-Suppressed BDDs and Their Applications", International Journal on Software Tools for Technology Transfer, vol. 3, No. 2, pp. 156-170, Springer, May 2001.
Minato, S., Representations of Discrete Funtions, Chapter 1, Graph-Based Representations of Discrete Functions, Sasao and Fujia, ed.s, 1996, Kluwer Academic Publishing, pp. 1-23.
Minato, Zero-Suppressed BDDs for Set Manipulation in Combinatorial Problems, Proceedings of the 30th Conference on Design Automation, Jul. 1993, pp. 272-277.
Mishchenko, Alan. "An Introduction to Zero-Suppressed Binary Decision Diagrams" Jun. 8, 2001, Department of Electrical Engineering Portland State University. pp. 1-15.
Moller, J., HR Andersen, H Hulgaard, "Product Configuration over the Internet presented at ",The 6th INFORMS Conference on Information Systems and Technology, Nov. 3-4, 2001, Miami Beach, Florida.
Moller, Jesper, "Configuration and E-commerce", IFORS Jul. 2002.
Panda, et al., Symmetry Detection and Dynamic Variable Ordering of Decision Diagrams, Proceedings of the 1994 IEEE/ACM International Conference on Computer-Aided Design, Nov. 1994, pp. 628-631.
Stolowitz Ford Cowger LLP; Related Case Listing.; Jan. 6, 2011; 1 page.
Stolowitz Ford Cowger LLP; Related Case Listing; Jun. 24, 2010; 2 Pages.
USPTO; File History U.S. Appl. No. 10/950,622 to Huelsman et al., filed Sep. 28, 2004.
USPTO; File History U.S. Appl. No. 10/950,622 to Huelsman et al., filed Sep. 28, 2004; Aug. 2009.
USPTO; File History U.S. Appl. No. 10/950,809 to Huelsman et al., filed Sep. 28, 2004.
USPTO; File History U.S. Appl. No. 10/950,809 to Huelsman et al., filed Sep. 28, 2004; Aug. 2009.
USPTO; File History U.S. Appl. No. 10/950,815 to Huelsman et al., filed Sep. 28, 2004.
USPTO; File History U.S. Appl. No. 10/950,815 to Huelsman et al., filed Sep. 28, 2004; Aug. 2009.
USPTO; File History U.S. Appl. No. 11/527,637 to Huelsman et al., filed Sep. 27, 2006.
USPTO; File History U.S. Appl. No. 11/527,637 to Huelsman et al., filed Sep. 27, 2006; Aug. 2009.
USPTO; File History U.S. Appl. No. 11/527,638 to Huelsman et al., filed Sep. 27, 2006.
USPTO; File History U.S. Appl. No. 11/527,638 to Huelsman et al., filed Sep. 27, 2006; Aug. 2009.
USPTO; PCT/US2003/08265; International Search Report and Preliminary Examination Report; Aug. 13, 2003.
Yang, Optimizing Model Checking Based on BDD Characterization,Thesis, Carnegie Mellon U.,May 1999, pp. 9-11.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9182946B2 (en) 2013-03-15 2015-11-10 Russell Sellers Method of generating a computer architecture representation in a reusable syntax and grammar

Also Published As

Publication number Publication date
US20050108183A1 (en) 2005-05-19
US20090228420A1 (en) 2009-09-10
US7552102B2 (en) 2009-06-23

Similar Documents

Publication Publication Date Title
US8055604B2 (en) Rule processing method, apparatus and computer-readable medium to provide improved selection advice
US8732107B2 (en) Method and system for capturing business rules for automated decision procession
US6965887B2 (en) Rule processing methods for automating a decision and assessing satisfiability of rule-based decision diagrams
US7809669B2 (en) Rule processing system for determining a result response
US8200693B2 (en) Decision logic comparison and review
US20010041999A1 (en) Method, process and system for optimized outcome driven workflow synthesis and reduction
US20120331443A1 (en) Method and system for identifying graphical model semantics
CN104408144B (en) The detection method and device of web search keyword
US7587380B2 (en) Rule processing method, apparatus, and computer-readable medium to generate valid combinations for selection
US8572551B2 (en) Difference log production for model merging
US7734559B2 (en) Rule processing method and apparatus providing exclude cover removal to simplify selection and/or conflict advice
US20120150851A1 (en) Matching reviewers to review objects
Berry et al. Amalgamating source trees with different taxonomic levels
US8056050B2 (en) Method and system for guided inconsistency resolution in a model-driven software environment
US20130007646A1 (en) User interface for building a search query
US7565337B2 (en) Batch validation method, apparatus, and computer-readable medium for rule processing
CN109543160B (en) Checking method, checking device, storage medium and processor for numerical value table
US20160026924A1 (en) Method and system for identifying graphical model semantics
WO2003081478A1 (en) Rule processing system and method
JP2010061610A (en) Development scale calculation method, information processor, and program
Graduleva et al. Visualization of Software Architecture based on stakeholders' requirements: Empirical investigation based on 4 industrial cases
Papamanthou Depth first search & directed acyclic graphs
Formanowicz et al. The Fan–Raspaud conjecture: A randomized algorithmic approach and application to the pair assignment problem in cubic networks
JPH07105289A (en) Restricted directivity type spread sheet system
JPH0863351A (en) Class candidate detection system

Legal Events

Date Code Title Description
AS Assignment

Owner name: VERDE SABOR ASSETS, L.L.C., DELAWARE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:RESOLUTION EBS, INC.;REEL/FRAME:022699/0260

Effective date: 20070607

AS Assignment

Owner name: VENTURE LENDING & LEASING IV, INC., CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNOR:RESOLUTION EBS, INC.;REEL/FRAME:026923/0163

Effective date: 20050622

Owner name: RESOLUTIONEBS, INC., OHIO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HUELSMAN, DAVID L.;LOVE, SHARON E.;MAIR, DOUGLAS M.;SIGNING DATES FROM 20070413 TO 20070529;REEL/FRAME:026920/0565

Owner name: RESOLUTIONEBS, INC., OHIO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HUELSMAN, DAVID L.;LOVE, SHARON E.;MAIR, DOUGLAS M.;SIGNING DATES FROM 20041012 TO 20041029;REEL/FRAME:026920/0303

AS Assignment

Owner name: RESOLUTION EBS, INC., OHIO

Free format text: PARTIAL RELEASE OF SECURITY INTEREST;ASSIGNOR:VENTURE LENDING & LEASING IV, INC.;REEL/FRAME:026976/0140

Effective date: 20070611

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: MINERAL LASSEN LLC, NEVADA

Free format text: MERGER;ASSIGNOR:VERDE SABOR ASSETS, L.L.C.;REEL/FRAME:037210/0330

Effective date: 20150811

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12