|Publication number||US8073802 B2|
|Application number||US 12/619,215|
|Publication date||Dec 6, 2011|
|Priority date||Mar 3, 2006|
|Also published as||EP1830312A1, US7640222, US20070239646, US20100088266|
|Publication number||12619215, 619215, US 8073802 B2, US 8073802B2, US-B2-8073802, US8073802 B2, US8073802B2|
|Original Assignee||Pegasystems, Inc.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (91), Non-Patent Citations (2), Referenced by (9), Classifications (11), Legal Events (1)|
|External Links: USPTO, USPTO Assignment, Espacenet|
This application is a continuation application based on U.S. application Ser. No. 11/368,360 filed on Mar. 3, 2006, entitled “RULES BASE SYSTEMS AND METHODS WITH CIRCUMSTANCE TRANSLATION.” The teachings of the aforementioned application are incorporated herein by reference.
The invention relates to digital data processing and, more particularly, to rules base systems and methods.
Computer systems that facilitate business operations based on information specific to an industry or enterprise are well known in the art. These typically rely on rules identifying situations that are expected to arise during enterprise operation and applicable responses. Such systems have been used in a range of applications, from health care to automotive repair. The rules on which they rely come from experts in the field, from the collective experience of workers on the “front line,” or a combination of these and other sources.
Simple computer systems of this sort incorporate application-specific knowledge directly into source code, using (for example) a sequence of “if . . . then . . . else” or “case” statements. From these, the executing systems can identify appropriate responses to conditions input, e.g., by a human operator, by automated monitoring equipment, and so forth. For example, a simple banking system for determining and displaying loan rates based on customer locale, customer type, and order size might encode such information as follows:
One drawback of this approach is that encoding knowledge in programming constructs themselves can make implementation difficult in all but the most limited applications. A further drawback is that the complexity and operational inefficiencies of these systems grow rapidly as their sizes increase.
More complex systems store knowledge separately from the programs that access them. Many of these use “rules bases” that store application-specific information in tables, database records, database objects, and so forth. For example, such a system might store the information above in a table as follows:
Traditionally, such tables (and, more broadly, such rules bases) are dedicated to a single class of problems. For example, a bank might use one rules base for determining loan rates and another for determining credit worthiness. More comprehensive systems combine rules covering diverse situations into a single knowledge or rules base, indexing those solutions by two or more values, e.g., “objective” and “circumstance” (or “objective,” “circumstance 1,” “circumstance 2,” and so forth). The objective identifies the class of problems, e.g., loan rates, credit worthiness, etc. The circumstances identify the particular situation of interest, e.g., customer locale, customer type, and/or order size (for the objective “loan rate”), savings balance level (for the objective “credit worthiness”), etc.
Such a rules base is disclosed in commonly assigned U.S. Pat. No. 5,826,250, entitled “Rules Bases and Methods of Access Thereof.” According to the abstract of that patent, each entry of a rules base has an associated objective and circumstance, as well as a status. The latter has values such as “valid” (indicating that information for that entry corresponds to a rule for the corresponding objective/circumstance), “inheritance” (indicating that the rule for the corresponding objective/circumstance is available, e.g., in another entry in the rules base), and so forth. Methods for using that rules base make use of these status designators, along with an inheritance structure that is maintained with the rules base, to find rules matching a designated objective and circumstance.
While rules bases of the type described in the foregoing patent and utilized in products of the assignee have met with great acceptance, there remains room for improvement.
An object of this invention is to provide improved systems and methods for digital data processing. A more particular object is to provide improved rules bases, as well as systems and methods that use them.
A further object is to provide such systems and methods as utilize rules bases that can be readily populated and searched.
A related object of the invention is to provide such systems and methods as utilize rules bases that store information without excessive redundancy and that can be easily modified.
Still another object of the invention is to provide such systems and methods as can be implemented on legacy, current and future digital data processing systems, and that operate without undue consumption of computer storage and processing resources.
The invention provides, in one aspect, a method of finding a rule in a rules base that includes a plurality of rule entries, each having a rule, an associated objective and one or more associated circumstances. A rule finder accesses the rules base in response to a request, with a specified objective and specified circumstance(s), by searching the rules base for a matching entry. Where the search fails, the rule finder searches one or more corresponding translation tables for an entry having a first circumstance matching the specified circumstance. If found, the rule finder repeats the search of the rules base with the specified objective and with a second (or “map-to”) circumstance from the matching entry in the translation table(s). The rule finder can return, e.g., to an application program that issued the request, a rule found during that repeat search of the rules base.
Further aspects of the invention provide methods as described above in which the translation tables have one or more entries that include, in lieu of a map-to circumstance, an identifier of a still further translation table. According to these aspects, the rule finder responds to a successful search of a first translation table by searching a second table for a translation entry matching the specified circumstance. If found, a map-to circumstance associated with that entry is used by the rule finder during repeat the search of the rules base.
Still further aspects of the invention provide methods as describe above in which a first translation table includes some entries containing a first circumstance and an identifier of a further translation table, and other entries containing a first circumstance and a second (or map-to) circumstance. According to these aspects, the rule finder responds to a successful search of the first translation table matching an entry of the former type by searching the second translation table and using the results of that search for the repeat search of the rules base. On the other hand, where the search of the first translation table is successful in finding an entry of the latter type, the rule finder repeats the search of the rules base with the map-to circumstance from the matching entry of the first translation table.
These and other aspects of the invention are evident in the drawings and the description that follows.
The foregoing features, objects and advantages of the invention will become apparent to those skilled in the art from the following description and the accompanying drawings:
Rule finder 32 responds to requests generated by the applications programs 30A-30C by accessing rules base 34 and/or translation table(s) 36 to determine rules corresponding to an objective/circumstance tuple specified in each such request. The rule finder 32 of the illustrated embodiment is implemented in software executing on one or more of the digital data processors 10A-10C, though in other embodiments it may comprise hardware, a combination of software and hardware, or otherwise, executing on one or more of those digital data processors or otherwise. Regardless, the rule finder 32 operates as discussed below (and elsewhere herein) and as illustrated, by way of non-limiting example in
Rules base 34 is a store of rules indexed or otherwise accessible by objective and circumstance. Unlike the prior art, in which a rule-containing entry is typically provided for every likely combination of objective/circumstance expected in incoming requests, e.g., from applications programs 30A-30C, rules base 34 need not have entries for all expected circumstances. Rather, circumstances for some objective/circumstance tuples are addressed vis-à-vis translation table 36, as discussed below.
Though shown as tables in the figures for the sake of convenience, rules base 34 and translation table 36 of the illustrated embodiment may comprise tables, databases, linked lists, structs, or other data collections stored on and/or accessible by one or more of the digital data processors 10A-10C and, particularly, accessible by rule finder 32. Thus, by way of non-limiting example, the rules base may be contained in random access memory, read-only memory, CD ROM, DVD, hard disk, file servers, network addressable storage, or otherwise.
Those skilled in the art will appreciate that, although, the entries for Objective 1 and Objective 2 are show with the same number of circumstances in the drawing, this is merely for convenience and is not a requirement of the invention.
As noted, translation tables 36 are used by rule finder 32 to facilitate finding rules for objective/circumstance tuples that are not listed in rules base 34—and, specifically, to find alternates to circumstances that are absent from the rules base. To this end, each translation table, e.g., 36A-36C, can include entries, each of which contains tuples of associated circumstances, where the first circumstance (for example) of each tuple is a circumstance that is expected in an incoming request, yet, may be absent from the rules base 34, and the second or other circumstances (again, for example) of each tuple is a circumstance that is found in the rules base 34 (or in another translation table entry). While the illustrated embodiment includes multiple translation tables, e.g., 36A-36C, in other embodiments only one such table may be provided and, in still other embodiments, more tables may be provided than are shown here. And, although tables are shown in the drawing, in other embodiments these may be databases, linked lists, structs or other data collections.
The rules base includes one or more identifiers 40A, 40B indicating which of the translation tables is to be used in translating circumstances specified in incoming requests. Thus, in the drawing, indicator 40A specifies that table 36A is to be used in translating unmatched circumstances of type Circumstance 1 in requests for rules associated with Objective 1; indicator 40B, unmatched circumstances of type Circumstance 2; and indicator 40C, unmatched circumstances of type Circumstance 3. A corresponding set of indicators 40D-40F are provided for the circumstances of Objective 2, though, as suggested by the drawing, those indicators need not specify the same tables as indicators 40A-40C. In embodiments having only one translation table, the aforementioned identifiers 40A-40F specify with which circumstances that table is to be used.
Similar identifiers can be used in entries of the translation tables, e.g., in place of (or in addition to) the map-to circumstance. Where used, these indicate that a further translation table is to be employed in determining an alternate circumstance for that specified in the request. These are depicted as pointers 42A, 42B associated with entries in the illustrated translation tables 36A, 36B.
As evident in the drawing, circumstances can be designated at varying levels of specificity within the rules base 34, e.g., as is the case with the locale circumstance. Thus, for example, entries such as 38A′-38E′ (by way of example) include city, state and country designations. The rule finder 32 can match these entries with request tuples at city-level detail. On the other hand, entries such as 38H′-38I, include state and country designations only, leaving city “wildcarded” (as indicated by asterisks). The rule finder 32 can match these entries with request tuples at the state (and country) level, e.g., where no entries match at the city-level of detail. Further, entries such as 38S′ include country designations only, leaving both city and state wildcarded. The rule finder can match these entries with request tuples at the country level, e.g., where no entries match at the city-level or state-level of detail.
Translation tables 36′ contain lists of circumstances—e.g., locales, service levels and pricing schedules—that may be contained in rule requests received by the rule finder, e.g., from the applications programs 30A-30C, but that are not (or may not) be contained in the entries 38A′-38M′ or 38N′-38S′. For each of these, the tables 36 list “translations” or mappings, i.e., circumstances that are expected in those entries or, alternatively, in other translation table entries. Thus, for example, translation table 36A′ has entries for the circumstances (i.e., cities) Anaheim and Cambridge, which are not listed in rules base 34′. However, for each of those circumstances, the respective entries of translation table 36′ list alternative circumstances, namely, Los Angeles and Boston, respectively. By way of further example, translation table 36C′ has map-to entries specifying pricing schedule levels that are used in rules base 34′ and that are derivable (e.g., by a function call) from loan amounts specified in the incoming requests.
Pointers or other identifiers 40A′-40C′ identify tables 36A′-36C′, respectively, for use in translating unmatched circumstances specified in incoming requests, as discussed above. Identifiers corresponding to 42A, 42B, of
While translation tables 36A′, 36B′ are shown containing string (or text) designators, it will be appreciated that other data types, such as integers, reals, enumerations, and so forth, can be employed in the translation tables in accord with the form of the incoming requests and expected searches to be run against the rules base 34′.
Moreover, as evident from the discussion above, it will be appreciated that the translation tables can include function calls and other evaluatable expressions, e.g., as in the case of table 36C′. As shown here, that table includes function calls, ƒ(loan request), which may be called with amounts specified in incoming requests in order to secure a match with entries of the corresponding circumstance, Pricing Schedule. In addition (or instead), the translation tables may include evaluatable expressions that involve, for illustrative purposes and by way of non-limiting example, (i) backward chaining and/or (ii) evaluation of other rules for the accessing of new data. As with translation table entries that include function calls, these expressions are executed or otherwise evaluated, e.g., by rule finder 32, in responding requests generated by the applications programs 30A-30C.
As will be evident to those skilled in the art, by using the translation tables 36′ in combination with the rules base 34′, the finder 32 can find rules for objective/circumstance tuples that are not encoded in the rules base. Thus, when the rule finder fails to find in the rules base 34′ an entry with an objective and circumstance(s) specified in a request (e.g., from applications programs 30A-30C), the finder can search the translation tables 36′ for an entry with a first circumstance matching that specified in the request—or, as in the case of table 36C, with a first circumstance that evaluates to “true” in view of the incoming request. The finder can then re-search the rules base using the corresponding circumstance from that entry, along with (i) the originally specified objective, and (ii) the other originally specified circumstances and/or map-to circumstances derived for them from the translations tables 26′. Once found, that rule can be returned to the requestor.
This can best be appreciated by reference to
In step 52, the rule finder searches the rules base for a rule entry associated with an objective and circumstances matching those specified in the request. As evident from the discussion above, this includes matching the locale circumstance at the city-level and, failing that, at the state-level and country-levels, respectively—depending on the content of the wildcarded entries, if any, in the rules base. If the search is successful for locale, service level and pricing schedule, the rule finder returns to the requester the rule from that matching entry. See, steps 54-56.
If the search specified in step 54 is not successful, the rule finder inspects indicators 40A′-40F′ to determine whether there is a translation table for the circumstance(s) that caused the failure. See, step 58. If not, the rule finder returns a message indicating that no rule was found. See, step 60.
Otherwise, in step 62, the rule finder searches the implicated translation table 36A′-36C′ for a translation entry associated with a first circumstance matching the specified circumstance, or that evaluates to “true” in view of the incoming request content (which is also considered a “match”) for purposes hereof. If such an entry is not found, the rule finder returns a message indicating that no rule was found. See, steps 64-66.
In step 68, the rule finder searches the rules base for a rule entry associated with an objective and circumstance matching the originally specified objective, the map-to circumstance associated with the translation table entry found in step 62, and the other originally specified circumstances (or translations thereof discerned from the translation tables). If the search is successful, the rule finder returns to the requester the rule from that matching entry. See, steps 70-72.
If the search of step 70 was not successful, the rule finder returns a message indicating that no rule was found. See, step 74. Except, however, in the event that multiple circumstance(s) failed to match in step 54, the rule finder repeats steps 58-70 for each combination of translated circumstances discerned from the translation tables, as shown by dashed line 78, prioritizing the searching sequence or among results, depending upon implementation requirements.
Referring back to step 68, if the matching translation table entry found in step 62 includes an identifier of a further translation table, the rule finder does not immediately search the rules base as shown in the flow chart. Rather, as shown by dashed line 76, it returns to the process illustrated at step 62, albeit searching that further translation table for an entry matching the specified circumstance—or, if the matching translation table entry includes a second circumstance (in addition to an identifier of a further translation table), an entry matching that second circumstance.
One skilled in the art will appreciate further features and advantages of the invention based on the above-described embodiments. Accordingly, the invention is not to be limited by what has been particularly shown and described herein. For example, it will be appreciated that rather than returning a rule matching a successful search in any of steps 56 and/or 72, above, the rule finder can return an indication of the success of the search, a location of an entry containing the rule, a value associated with the rule, or otherwise. In view hereof, what is claimed is:
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US4344142||Aug 6, 1975||Aug 10, 1982||Federal-Mogul Corporation||Direct digital control of rubber molding presses|
|US4866634||Aug 10, 1987||Sep 12, 1989||Syntelligence||Data-driven, functional expert system shell|
|US4884217||Sep 30, 1987||Nov 28, 1989||E. I. Du Pont De Nemours And Company||Expert system with three classes of rules|
|US5136523 *||Mar 26, 1991||Aug 4, 1992||Digital Equipment Corporation||System for automatically and transparently mapping rules and objects from a stable storage database management system within a forward chaining or backward chaining inference cycle|
|US5193056||Mar 11, 1991||Mar 9, 1993||Signature Financial Group Inc.||Data processing system for hub and spoke financial services configuration|
|US5204939||Dec 13, 1990||Apr 20, 1993||Fujitsu Limited||Rule base processing system and rule evaluation control method therein|
|US5386559||Jul 16, 1992||Jan 31, 1995||International Business Machines Corporation||Variant domains and variant maps in a versioned database management system|
|US5504879||Jul 16, 1992||Apr 2, 1996||International Business Machines Corporation||Resolution of relationship source and target in a versioned database management system|
|US5537590||Aug 5, 1993||Jul 16, 1996||Amado; Armando||Apparatus for applying analysis rules to data sets in a relational database to generate a database of diagnostic records linked to the data sets|
|US5815415||Mar 6, 1996||Sep 29, 1998||Bentley Systems, Incorporated||Computer system for portable persistent modeling|
|US5819257||Jan 31, 1997||Oct 6, 1998||Lucent Technologies Inc.||Process for providing transitive closure using fourth generation structure query language (SQL)|
|US5826239||Dec 17, 1996||Oct 20, 1998||Hewlett-Packard Company||Distributed workflow resource management system and method|
|US5826250||Jun 19, 1996||Oct 20, 1998||Pegasystems Inc.||Rules bases and methods of access thereof|
|US5875334||Oct 27, 1995||Feb 23, 1999||International Business Machines Corporation||System, method, and program for extending a SQL compiler for handling control statements packaged with SQL query statements|
|US5890146||Apr 29, 1997||Mar 30, 1999||U.S. Philips Corporation||Adaptive process modelling and control|
|US5890166||Jan 25, 1995||Mar 30, 1999||International Business Machines Corporation||Versioned-database management system in which tasks are associated with promote groups which comprise a set of parts whose changes are to be promoted|
|US5930795||Jan 21, 1997||Jul 27, 1999||International Business Machines Corporation||Supporting dynamic tables in SQL query compilers|
|US5995948||Nov 21, 1997||Nov 30, 1999||First Usa Bank, N.A.||Correspondence and chargeback workstation|
|US6023704||Jan 29, 1998||Feb 8, 2000||International Business Machines Corporation||Apparatus and method for swapping identities of two objects to reference the object information of the other|
|US6085198||Jun 5, 1998||Jul 4, 2000||Sun Microsystems, Inc.||Integrated three-tier application framework with automated class and table generation|
|US6105035||Feb 17, 1998||Aug 15, 2000||Lucent Technologies, Inc.||Method by which notions and constructs of an object oriented programming language can be implemented using a structured query language (SQL)|
|US6192371||Apr 28, 1999||Feb 20, 2001||Lucent Technologies, Inc||Object morphing in an object oriented computing environment using relational database query procedure|
|US6338074||Jul 23, 1997||Jan 8, 2002||Filenet Corporation||System for enterprise-wide work flow automation|
|US6341293||Jul 13, 1994||Jan 22, 2002||Object Technology Licensing Corp||Real-time computer “garbage collector”|
|US6359633||Jan 15, 1999||Mar 19, 2002||Yahoo! Inc.||Apparatus and method for abstracting markup language documents|
|US6448964||Mar 15, 1999||Sep 10, 2002||Computer Associates Think, Inc.||Graphic object manipulating tool|
|US6493754||Nov 5, 1998||Dec 10, 2002||Computer Associates Think, Inc.||Method and apparatus for analyzing communications on different threads|
|US6496812||May 13, 2000||Dec 17, 2002||Object Power, Inc.||Method and system for measuring and valuing contributions by group members to the achievement of a group goal|
|US6502239||Nov 12, 1998||Dec 31, 2002||Computer Associates Think, Inc||Method and apparatus for round-trip software engineering|
|US6513018||May 5, 1994||Jan 28, 2003||Fair, Isaac And Company, Inc.||Method and apparatus for scoring the likelihood of a desired performance result|
|US6526440||Jan 30, 2001||Feb 25, 2003||Google, Inc.||Ranking search results by reranking the results based on local inter-connectivity|
|US6526457||Oct 24, 1997||Feb 25, 2003||Computer Associates Think, Inc.||Systems utility object interface for facilitating software portability|
|US6549904||Jun 25, 1999||Apr 15, 2003||Amazon.Com, Inc.||Auction notification system|
|US6556985||Jul 23, 1999||Apr 29, 2003||Teleran Technologies, Inc.||Rule construction and application|
|US6567419||Sep 11, 2000||May 20, 2003||Yahoo! Inc.||Intelligent voice converter|
|US6584464||Mar 19, 1999||Jun 24, 2003||Ask Jeeves, Inc.||Grammar template query system|
|US6629138||Aug 23, 1999||Sep 30, 2003||Tibco Software Inc.||Method and apparatus for storing and delivering documents on the internet|
|US6636850||Dec 28, 2000||Oct 21, 2003||Fairisaac And Company, Inc.||Aggregate score matching system for transaction records|
|US6636901||Jan 30, 1998||Oct 21, 2003||Object Technology Licensing Corp.||Object-oriented resource lock and entry register|
|US6661908||Jan 13, 2000||Dec 9, 2003||Computer Associates Think, Inc.||Signature recognition system and method|
|US6678773||Jan 11, 2001||Jan 13, 2004||Motorola, Inc.||Bus protocol independent method and structure for managing transaction priority, ordering and deadlocks in a multi-processing system|
|US6678882||Jun 30, 1999||Jan 13, 2004||Qwest Communications International Inc.||Collaborative model for software systems with synchronization submodel with merge feature, automatic conflict resolution and isolation of potential changes for reuse|
|US6684261||Aug 29, 1995||Jan 27, 2004||Object Technology Licensing Corporation||Object-oriented operating system|
|US6728702||Jun 18, 2001||Apr 27, 2004||Siebel Systems, Inc.||System and method to implement an integrated search center supporting a full-text search and query on a database|
|US6728852||Jun 30, 2000||Apr 27, 2004||Sun Microsystems, Inc.||Method and apparatus for reducing heap size through adaptive object representation|
|US6748422||Oct 17, 2001||Jun 8, 2004||Ebay Inc.||System and method to control sending of unsolicited communications relating to a plurality of listings in a network-based commerce facility|
|US6750858||Nov 28, 1995||Jun 15, 2004||Object Technology Licensing Corporation||Object-oriented window area display system|
|US6756994||Aug 7, 2000||Jun 29, 2004||Canon Kabushiki Kaisha||Method and apparatus for handling secondary dependencies|
|US6772350||May 14, 1999||Aug 3, 2004||E.Piphany, Inc.||System and method for controlling access to resources in a distributed environment|
|US6782091||Oct 13, 2000||Aug 24, 2004||Dunning Iii Emerson C||Virtual call distribution system|
|US6829655||Apr 9, 2002||Dec 7, 2004||Siebel Systems, Inc.||Method and system for server synchronization with a computing device via a companion device|
|US6831668||Apr 3, 2001||Dec 14, 2004||Business Objects, S.A.||Analytical reporting on top of multidimensional data model|
|US6839682||Oct 3, 2000||Jan 4, 2005||Fair Isaac Corporation||Predictive modeling of consumer financial behavior using supervised segmentation and nearest-neighbor matching|
|US6847982||Jan 25, 2002||Jan 25, 2005||Computer Associates Think, Inc.||Intelligent data inventory and asset management system method and apparatus|
|US6851089||Oct 25, 1999||Feb 1, 2005||Amazon.Com, Inc.||Software application and associated methods for generating a software layer for structuring semistructured information|
|US6856575||Oct 21, 2003||Feb 15, 2005||Abb Offshore Systems Limited||Monitoring a microseismic event|
|US6859787||Feb 14, 2003||Feb 22, 2005||Ebay, Inc.||Method and system for providing order status information using an update status flag|
|US6865546||Apr 19, 2000||Mar 8, 2005||Amazon.Com, Inc.||Methods and systems of assisting users in purchasing items|
|US6867789||Jun 20, 2000||Mar 15, 2005||Bank One, Delaware, National Association||System and method for generating graphical user interfaces|
|US6959432||Mar 5, 2002||Oct 25, 2005||Escher Technologies, Ltd.||Process and system for developing mathematically validated object-oriented software|
|US6961725 *||Aug 24, 2002||Nov 1, 2005||Industrial Technology Research Institute||Method of a data range search with plural pre-set rules|
|US6976144||May 6, 2003||Dec 13, 2005||Pegasystems, Inc.||Methods and apparatus for digital data processing with mutable inheritance|
|US6985912||Jul 22, 2003||Jan 10, 2006||Thought, Inc.||Dynamic object-driven database manipulation and mapping system having a simple global interface and an optional multiple user need only caching system with disable and notify features|
|US7020869||Nov 26, 2001||Mar 28, 2006||Corticon Technologies, Inc.||Business rules user interface for development of adaptable enterprise applications|
|US7640222||Mar 3, 2006||Dec 29, 2009||Pegasystems Inc.||Rules base systems and methods with circumstance translation|
|US20010049682||Jan 8, 1999||Dec 6, 2001||John K. Vincent||System and method for recursive path analysis of dbms procedures|
|US20020091677||Jan 16, 2001||Jul 11, 2002||Sridhar Mandayam Andampikai||Content dereferencing in website development|
|US20040049509||Sep 11, 2002||Mar 11, 2004||International Business Machines Corporation||Methods and apparatus for managing dependencies in distributed systems|
|US20040088199||Oct 31, 2002||May 6, 2004||Childress Allen B.||Method of forming a business rule|
|US20040162822||Feb 13, 2003||Aug 19, 2004||Khachatur Papanyan||Method and apparatus for converting in-line database queries to stored procedures|
|US20050039191||Aug 12, 2003||Feb 17, 2005||Chordiant Software, Inc.||Process/viewer interface|
|US20050165823||Jan 22, 2004||Jul 28, 2005||Microsoft Corporation||Binary dependency database|
|US20050234882||Apr 20, 2004||Oct 20, 2005||Calpont Corporation||Data structure for a hardware database management system|
|US20060041861||Aug 12, 2005||Feb 23, 2006||Pegasystems Inc.||Methods and apparatus for digital data processing with mutable inheritance|
|US20060173724||Jan 28, 2005||Aug 3, 2006||Pegasystems, Inc.||Methods and apparatus for work management and routing|
|US20060218166||Jun 13, 2006||Sep 28, 2006||Metadata, Llc||Rapid application development based on a data dependency path through a body of related data|
|US20070028225||Sep 27, 2006||Feb 1, 2007||Whittaker James A||Method and apparatus for preemptive monitoring of software binaries by instruction interception and dynamic recompilation|
|US20070233902||Mar 30, 2006||Oct 4, 2007||Alan Trefler||User interface methods and apparatus for rules processing|
|US20070239646||Mar 3, 2006||Oct 11, 2007||Alan Trefler||Rules base systems and methods with circumstance translation|
|US20080208785||Feb 22, 2008||Aug 28, 2008||Pegasystems, Inc.||User interface methods and apparatus for rules processing|
|US20080216055||Mar 2, 2007||Sep 4, 2008||Pegasystems, Inc.||Proactive performance management for multi-user enterprise software systems|
|US20090132232||Jul 16, 2008||May 21, 2009||Pegasystems Inc.||Methods and apparatus for implementing multilingual software applications|
|US20100107137||Dec 29, 2009||Apr 29, 2010||Pegasystems Inc.||Methods and apparatus for integration of declarative rule-based processing with procedural programming in a digital data-processing evironment|
|EP1830312A1||Feb 28, 2007||Sep 5, 2007||Pegasystems Inc.||Rules base systems and methods with circumstance translation|
|EP1840803A1||Feb 28, 2007||Oct 3, 2007||Pegasystems Inc.||User interface methods and apparatus for rules processing|
|WO2001079994A2||Apr 12, 2001||Oct 25, 2001||Savvion Incorporated||System and method for dynamically managing electronic business process|
|WO2002044947A2||Sep 10, 2001||Jun 6, 2002||Asera, Inc.||Workflow driven rules-based generation of personalizable web pages|
|WO2005001627A2||Jun 4, 2004||Jan 6, 2005||Rulespower, Inc.||Relational logic management system|
|WO2005010645A2||Apr 16, 2004||Feb 3, 2005||Siebel Systems, Inc.||Application user interface template with free-from layout|
|WO2005117549A2||May 26, 2005||Dec 15, 2005||Pegasystems Inc.||Method and apparatus for integration of declarative rule-based processing with procedural programming in a digital data-processing environment|
|WO2006081536A2||Jan 27, 2006||Aug 3, 2006||Pegasystems Inc.||Method and apparatus for work management and routing|
|1||Cochrane, Roberta et al, "Integrating Triggers and Declarative Constraints in SQL", p. 567-578, Proceedings of the 22nd VLDB Conference Mumbai (Bombay), India, 1996.|
|2||Kuhn, H.W. "The Hungarian Method For The Assignment Problem," Naval Research Logistics Quarterly, 2 (1955), pp. 83-97.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US8250525||Mar 2, 2007||Aug 21, 2012||Pegasystems Inc.||Proactive performance management for multi-user enterprise software systems|
|US8335704||Dec 18, 2012||Pegasystems Inc.||Methods and apparatus for work management and routing|
|US8479157||Dec 29, 2009||Jul 2, 2013||Pegasystems Inc.||Methods and apparatus for integration of declarative rule-based processing with procedural programming in a digital data-processing evironment|
|US8880487||Feb 18, 2011||Nov 4, 2014||Pegasystems Inc.||Systems and methods for distributed rules processing|
|US8924335||Feb 18, 2011||Dec 30, 2014||Pegasystems Inc.||Rule-based user interface conformance methods|
|US8959480||May 31, 2013||Feb 17, 2015||Pegasystems Inc.||Methods and apparatus for integration of declarative rule-based processing with procedural programming in a digital data-processing environment|
|US9189361||Jun 28, 2012||Nov 17, 2015||Pegasystems Inc.||Proactive performance management for multi-user enterprise software systems|
|US9195936||Dec 30, 2011||Nov 24, 2015||Pegasystems Inc.||System and method for updating or modifying an application without manual coding|
|US9270743||Oct 29, 2014||Feb 23, 2016||Pegasystems Inc.||Systems and methods for distributed rules processing|
|U.S. Classification||706/47, 706/62, 706/45, 706/48, 706/46, 707/781, 707/705|
|International Classification||G06N5/02, G06F17/00|