This invention concerns an improvement to a method or apparatus for rule processing utilizing binary decision diagrams to express and manipulate a business rule, but more specifically, to a method, an apparatus, and a computer-readable medium to validate multiple records indicative of compliancy of criteria, e.g., attributes and enumerations of such attributes expressed in a binary decision diagram, relative to a new or modified business rule.
Specialized applications use rule processing implemented one a computer to drive high volume transaction processing utilities. These applications typically involve separating a relatively large volume of transaction records into two groups based on whether the individual records thereof conform with, or conflicts with certain business rules. An example of a batch validation application includes validating a large number of previously sold product configurations, e.g., stored data records, against a new set of proposed configuration rules in order to determine the validity of the existing or previously sold product configurations under the new configuration rules. When configurations are complex or numerous, prior techniques proved inadequate or required validation on an individual basis.
According to an aspect of the present invention, one improvement comprises a computer-implemented method of validating combinations of product features (or specifications) that are compliant with an existing business rule relative to a modification thereof that includes at least one include Zero-suppressed binary Decision Diagram (ZDD) rule component and/or one exclude ZDD rule component. The method comprises identifying combinations of features compliant with the existing business rule, processing the combinations against a representation of the include ZDD rule component and/or exclude rule component of the modified rule to determine validity, and providing to a user, such as a product manager, an indication of validity of the combinations relative to the modification whereby to validate the existing set of user-selected criteria against a new or modified business rule. In a further embodiment, the processing step of the improvement comprises forming a representation of a record-by-feature array indicative of the combinations, re-ordering the features (or specifications) according to at least one include and/or exclude ZDD rule component, testing the validity of re-ordered features against each rule component; and providing an output indicating to a user or product manager whether the re-ordered product features are compliant. Product features or combinations may be read from a database and the product may include a service.
In accordance with another aspect of the invention, the improvement is utilized in a rule processing method utilizing binary decision diagrams or other representation thereof (e.g., zero-suppress binary decision diagrams) to determine compliancy relative to a business rule. In this case, the improvement comprises a computer-implemented method of validating multiple data records stored in a computer memory representing user-selected enumerations (e.g., product specifications) relative to a modification of the rule. The improved method comprises obtaining data records indicative of user-selected enumerations that are compliant with the rule; forming a record-by-enumeration array of the records and enumerations; re-ordering enumerations of the array according to any include rule components of a modified rule, sorting the data records according to the re-ordering, determining a validity of the record according to existence of a path in the include rule component of the modified rule embodying re-ordered enumerations of the data records, and forming a resulting array by removing records having an invalid determination; re-ordering enumerations of the resulting array according to any exclude rule component of the modified rule, sorting records of the resulting array according to any exclude rule component, determining validity of records of the resulting array according to existence of a path in the exclude rule component embodying the re-ordered enumerations, and forming a final array by removing records having an invalid determination; and communicating to an end user an indication of those records of the final array that are fully compliant with the include and exclude rules components of the modified rule.
In yet another embodiment of the invention, there is provided an apparatus that validates multiple data records indicative of user-selected criteria relative to a modified or updated rule to determine compliancy of the criteria relative to the modification where the apparatus comprises an input (e.g., a GUI interface, keyboard, and/or pointing device) that obtains the criteria from a stored database, a processor including routines to form a representation of a record-by-enumeration array indicative of the criteria, to re-order enumerations of the array according to a ZDD rule component of the modified or updated rule, to determine validity of records having combinations of re-ordered enumerations relative to the ZDD rule component, and an output to provide a list of products to an end-user having valid combinations of enumerations. The ZDD rule component may include one or more include rule and exclude rule components. The user-selected criteria may comprise configuration parameters representing valid combination of components of a product or service.
In yet a further embodiment of the invention, there is provided a computer-readable medium including instructions to effect acquisition of a set of data records stored in a memory including combinations of enumerations compliant with an existing rule, to form a representation of a record-by-enumeration array indicative of the set, to re-order enumerations of the array according to a ZDD rule component of a modified business rule, to determine the validity of data records having re-ordered combinations of enumerations relative to the ZDD rule component, and to provide a list of products to an end-user having valid combinations of enumerations (e.g., valid product specifications). The ZDD rule component may comprises and/or exclude rule components. The combinations may comprise product or service configuration parameters.
The invention may also be implemented via a network using client-server communication, including a local area network or an Internet.
Other aspects, features, and embodiments will become apparent upon review of the following description of the illustrative embodiment taken in connection with the accompanying drawings. The invention, though, is pointed out with particularity by the appended claims.
According to one aspect of the present invention, the improved method and apparatus provides a indication of each transaction or data record that is valid against a new or modified business rule. In the illustrated embodiment, the method or apparatus begins by obtaining a set of user-selected attributes, usually stored in a database. The data records may be obtained remotely over a local or wide area network. Exemplary software routines to effect operation of the method is set forth in the Appendix, which may be stored or transferred using a computer-readable medium.
Each selection comprises a set of enumerations previously selected by a user in connection with an existing business rule, such as a product configuration rule.
To perform Include rule processing, selections are formed into a two-dimensional record-by-enumeration array having vertical columns and horizontal rows, as shown in
Each row or record in the array of
If the new or modified rule model has no Include rules, the Validity column is set to true and any remaining Include processing is skipped. Processing then immediately proceeds to the Exclude rule processing.
If all enumerations for each group are grouped together, the above table may be represented in the following manner:
As seen, the second row or record is almost identical to the first row, except that implementation of the inventive method involves searching for Enum121 on the second pass through the Include ZDD. Multi-OR selections is handled this way in that the record must be split into individual rows and then searched. Preferably, no row may have more than one enumeration per group.
Viewing the re-characterized table, it is seen that rows 1 through 4 are fully specified meaning that there is an enumeration from each group. Row 5 is not specified. For row 5, Group 2 is treated as a DC (don't care) value.
Fully specified Processing:
The process for finding validity is quicker for fully specified rows, which is achieved by scanning down the ZDD tree of the new or modified rule model and comparing the index of the node encountered to the column index of the array.
To improve speed, the improved method and apparatus may include buffering of the nodes encountered while scanning down the ZDD tree. Once a determination of the validity for a row has been made, the process proceeds to the next row or record. For fully specified rows, the process skips columns that are the same as the previous row. In the illustrated example, upon encountering nodes 151, 101, and 120 for row one, the process starts with node 101 and scans for node 121 on row two.
Non-Fully Specified Processing:
As the method and apparatus analyzes or processes the user-selected combinations row by row relative to nodes in the Include ZDD, its switches back and forth between fully specified and non-fully specified rows, as needed. The main difference between the two involves what happens when encountering indexes in the ZDD tree lacking a column in the array. For non-fully specified rows, such nodes are skipped, that is, they are treated as a DC (don't care). This adds processing time due to the need to consider both the “then” and the “else” sides of these nodes.
Exclude Processing:
If the modified rule model has no exclude rules, exclude processing is skipped. If, on the other hand, the new or modified rule includes exclude rule components, the analysis continues. After completing the include scanning, the resulting array will be found to have some valid combinations and some invalid combinations, e.g., rows or records of the resulting array. At this point, the process or apparatus removes or suppresses invalid rows to form a new resulting array, as shown in
The method and/or apparatus uses the resulting array to scan through the Exclude ZDD component in order to invalidate any excluded combinations. It is not necessary to find the entire combination in the Exclude ZDD rule component to determine or denote an invalidation. If a portion of a combination on a path in the Exclude ZDD is found, then the entire combination is excluded thus invalidating that row in the array.
The rows of the array of
Based on the above teachings, the invention also embraces modifications not explicitly shown in the drawings or written description, or illustrated by the exemplary code found in the attached Appendix. In particular, the invention is preferably practiced utilizing zero-suppressed binary decision diagrams (ZDDs) but software emulations or other representations of ZDDs may be employed to achieve substantially the same results. A computer-readable medium embodying software routines may comprise a magnetically or optically medium, as known in the art. These routines may also be conveyed via a network, and temporarily stored in a communication or network processor before reaching a computer apparatus for execution. Typically, a keyboard and pointing device (e.g., a mouse) is used to supply inputs to a GUI (graphical user interface) of a processor. 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. Also, the illustration was directed to a product configuration business rule, but may be extended to other scenarios to the same extent 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.
Notation Used
The notation used for attributes in this document is “Attr” followed by a number. The first attribute in the examples is Attr1.
The notation for enumerations is “Enum” followed by two numbers. The first number is the attribute that it belongs to. The second number is its number within the attribute from 1 to 5.
The ellipses symbol “. . . ” is used to show a range of enumerations.
For convenience and illustration, every attribute in the examples shown herein has five (5) enumerations.
The word “related” means that the attributes are in the same rule. The double arrow symbol “←→” also means that the attributes are related.
Batch Validation Routine
Description: Routine to quickly get validity for a large group of selections. Does not provide any advice information. Multi-OR is not supported. A work around is to split out the multiple enumerations in a selection, into separate selections. Handles fully specified selections and partially specified selections.
Exemplary Code
The batch validation routine must be called through an API interface, it is not executed during the engine advice run. The main entry point is FindValidPicksFromBatch.
This invention claims the benefit of Provisional Application Ser. No. 60/506,156 filed on Sep. 29, 2003 in the names of Huelsman, et al., entitled Improved Method and Apparatus for Rule Processing, which is incorporated herein. This invention is also related to U.S. patent application Ser. Nos. 10/101,151 and 10/101,154, each filed on Mar. 20, 2002 in the names of the same inventors hereof, which are incorporated herein.
| Number | Name | Date | Kind |
|---|---|---|---|
| 5212771 | Gane et al. | May 1993 | A |
| 5301284 | Estes et al. | Apr 1994 | A |
| 5311424 | Mukherjee et al. | May 1994 | A |
| 5576965 | Akasaka et al. | Nov 1996 | A |
| 5630025 | Dolby et al. | May 1997 | A |
| 5701400 | Amado | Dec 1997 | A |
| 5745765 | Paseman | Apr 1998 | A |
| 5805462 | Poirot et al. | Sep 1998 | A |
| 5809212 | Shasha | Sep 1998 | A |
| 5844554 | Geller et al. | Dec 1998 | A |
| 5877966 | Morris et al. | Mar 1999 | A |
| 5910898 | Johannsen | Jun 1999 | A |
| 5924077 | Beach et al. | Jul 1999 | A |
| 5963953 | Cram et al. | Oct 1999 | A |
| 5987473 | Jorgensen | Nov 1999 | A |
| 6002854 | Lynch et al. | Dec 1999 | A |
| 6016394 | Walker | Jan 2000 | A |
| 6031984 | Walser | Feb 2000 | A |
| 6035305 | Strevey et al. | Mar 2000 | A |
| 6064982 | Puri | May 2000 | A |
| 6076080 | Morscheck et al. | Jun 2000 | A |
| 6163876 | Ashar | Dec 2000 | A |
| 6182275 | Beelitz et al. | Jan 2001 | B1 |
| 6256618 | Spooner et al. | Jul 2001 | B1 |
| 6321186 | Yuan et al. | Nov 2001 | B1 |
| 6327581 | Platt | Dec 2001 | B1 |
| 6349290 | Horowitz | Feb 2002 | B1 |
| 6385617 | Malik | May 2002 | B1 |
| 6389576 | Lam et al. | May 2002 | B1 |
| 6396488 | Simmons et al. | May 2002 | B1 |
| 6424962 | Billon | Jul 2002 | B1 |
| 6442732 | Abramovici et al. | Aug 2002 | B1 |
| 6519767 | Carter et al. | Feb 2003 | B1 |
| 6529890 | Pandit et al. | Mar 2003 | B1 |
| 6535883 | Lee et al. | Mar 2003 | B1 |
| 6556978 | Ginsberg et al. | Apr 2003 | B1 |
| 6567814 | Bankier | May 2003 | B1 |
| 6598035 | Branson et al. | Jul 2003 | B2 |
| 6651096 | Gai et al. | Nov 2003 | B1 |
| 6658458 | Gai et al. | Dec 2003 | B1 |
| 6741975 | Nakisa et al. | May 2004 | B1 |
| 6795832 | McGeorge et al. | Sep 2004 | B2 |
| 6874016 | Gai et al. | Mar 2005 | B1 |
| 6952812 | Abadir et al. | Oct 2005 | B2 |
| 6961913 | Okazaki et al. | Nov 2005 | B1 |
| 6983187 | Kern | Jan 2006 | B2 |
| 7130783 | Harer et al. | Oct 2006 | B1 |
| 7188333 | LaMotta et al. | Mar 2007 | B1 |
| 20010029499 | Tuatini et al. | Oct 2001 | A1 |
| 20020065701 | Kim et al. | May 2002 | A1 |
| 20020078431 | Reps | Jun 2002 | A1 |
| 20020095645 | Rodeh | Jul 2002 | A1 |
| 20020108093 | Moondanos et al. | Aug 2002 | A1 |
| 20020112213 | Abadir et al. | Aug 2002 | A1 |
| 20020165701 | Lichtenberg et al. | Nov 2002 | A1 |
| 20020178432 | Kim et al. | Nov 2002 | A1 |
| Number | Date | Country |
|---|---|---|
| 9948031 | Sep 1999 | WO |
| Number | Date | Country | |
|---|---|---|---|
| 20050080798 A1 | Apr 2005 | US |
| Number | Date | Country | |
|---|---|---|---|
| 60506156 | Sep 2003 | US |