Source: http://www.google.com/patents/US6985900?dq=7,013,345/
Timestamp: 2016-02-08 02:16:11
Document Index: 114342535

Matched Legal Cases: ['Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'Application No. 60', 'art 2', 'art 3', 'art 4', 'art 5', 'art 6', 'art 7', 'art 8']

Patent US6985900 - Delta model processing logic representation and execution system - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inPatentsThe invention presents novel method, apparatus, and data structures for storing, maintaining, and executing processing logic on a computer system. Processing logic is encoded into its distinct, constituent elements that are flexibly linked, facilitating reuse and reconfiguration. Executable responses...http://www.google.com/patents/US6985900?utm_source=gb-gplus-sharePatent US6985900 - Delta model processing logic representation and execution systemAdvanced Patent SearchPublication numberUS6985900 B2Publication typeGrantApplication numberUS 10/146,449Publication dateJan 10, 2006Filing dateMay 14, 2002Priority dateJun 11, 1996Fee statusLapsedAlso published asCA2258252A1, CA2258252C, EP0978032A1, US6421667, US20020174263, WO1997048043A1Publication number10146449, 146449, US 6985900 B2, US 6985900B2, US-B2-6985900, US6985900 B2, US6985900B2InventorsEdgar F. Codd, Sharon B. CoddOriginal AssigneeCodd Edgar F, Codd Sharon BExport CitationBiBTeX, EndNote, RefManPatent Citations (9), Non-Patent Citations (21), Referenced by (22), Classifications (20), Legal Events (3) External Links: USPTO, USPTO Assignment, EspacenetDelta model processing logic representation and execution system
US 6985900 B2Abstract
1. An article of manufacture for use in condition to action processing in a computer system, the apparatus comprising a computer readable medium with computer readable program code embodied therein for directing a computer system, the computer readable code in the article of manufacture comprising:
an event data store that can store at least one event identifier and at least one corresponding expression that indicates a corresponding predicate logic expression of condition that corresponds to an event identified by the at least one event identifier;
a task data store that can store at least one task identifier and corresponding response information that indicates a group of one or more command statements that corresponds to the at least one task;
a correspondence data store that can store at least one correspondence between the at least one event identifier and the at least one task identifier;
a notice data store that can store respective event data that corresponds to the at least one event identifier;
computer readable program code causing the computer to evaluate the indicated predicate logic expression using the event data so as to produce an evaluation result corresponding to the at least one identified event; and
computer readable program code causing the computer to execute the at least one or more command statements only if the produced evaluation result has a prescribed value.
2. The article of manufacture of claim 1 wherein the computer readable program code causing the computer to execute further includes:
computer readable program code to determine whether the evaluation result has a prescribed value;
computer readable program code causing the computer to identify in the correspondence data store a correspondence between the respective at least one event identifier and the at least one task identifier;
computer readable program code causing the computer to identify from the task data store the respective group of one or more command statements that correspond to the at least one identified task identifier; and
computer readable program code causing the computer to execute the one or more command statements that correspond to the identified task identifier.
3. A method of creating condition-to-action associations in computer readable program code embodied in a computer readable medium comprising:
providing an event data store tat can store at least one event identifier and at least one corresponding expression that indicates a corresponding predicate logic expression of condition that corresponds to an event identified byte at least one event identifier;
providing a task data store that can store at least one task identifier and corresponding response information that indicates a group of one or more command statements that corresponds to the at least one task;
providing a correspondence data store that can store at least one correspondence between the at least one event identifier and the at least one task identifier;
providing a notice data store that can store respective event data that corresponds to the at least one event identifier;
evaluating the indicated predicate logic expression using the event data so as to produce an evaluation result corresponding to the at least one identified event; and
executing the at least one or more command statements only if the produced evaluation result has a prescribed value.
4. The method of claim 3 wherein executing the at least one or more command statements only if the produced evaluation result has a prescribed value includes:
determining whether the evaluation result has a prescribed value;
identifying in the correspondence data store a correspondence between a respective at least one event identifier and the at least one task identifier;
identifying from the task data store the respective group of one or more command statements that correspond to the at least one identified task identifier; and
executing the one or more command statements that correspond to the identified task identifier.
5. An article of manufacture for use in condition to action processing in a computer system, the apparatus comprising a computer readable medium with computer readable program code embodied therein for directing a computer system, the computer readable code in the article of manufacture comprising:
an event data store that can store a plurality of respective event identifiers and respective corresponding expression that indicate respective corresponding predicate logic expressions of condition that respectively correspond to respective events identified by respective corresponding event identifiers;
a task data store that can store a plurality of respective task identifiers and respective corresponding response information that indicates groups of one or more command statements that respectively correspond to respective tasks;
a correspondence data store that can store a plurality of correspondences between respective event identifiers and respective one or more task identifiers;
a notice data store that can store respective event data that corresponds to respective event identifiers;
computer readable program code causing the computer to evaluate a respective predicate logic expression of condition corresponding to a respective event identifier corresponding to respective event data stored in, the native data store; and
computer readable program code causing the computer to execute the at least one or more command statements only if the produced evaluation result has a prescribed value;
computer readable program code causing the computer to identify in the correspondence data store a correspondence between the respective event identifier and a respective task identifier;
computer readable program code causing the computer to identify from the task data store a respective group of one or more command statements that correspond to the identified task identifier; and
wherein the computer readable program code causing the computer to execute the at least one or more command statements only if the produced evaluation result has a prescribed value invokes the computer readable program code causing the computer to identify in the correspondence data store a correspondence between the respective event identifier and a respective task identifier only if the produced evaluation result has a prescribed value and otherwise terminates condition to action processing.
This application is a continuation application of U.S. application Ser. No. 08/872,531, filed Jun. 11, 1997 now U.S. Pat. No. 6,421,667, which claims the benefit of U.S. Provisional Application No. 60/019,572, filed Jun. 11, 1996 and U.S. Provisional Application No. 60/030,349, filed Nov. 6, 1996 and U.S. Provisional Application No. 60/033,008, filed Dec. 16, 1996 and U.S. Provisional Application No. 60/034,206 filed Jan. 21, 1997 and U.S. Provisional Application No. 60/036,702 filed Jan. 31, 1997.
FIGS. 5A–5B depict one method of defining processing logic to the process management knowledgebase (PMKB).
FIGS. 9A–9B depict the software and data components residing on a storage device for illustrating the operation of the PMKBS in one embodiment of the invention.
FIGS. 4A and 4B depict representative computer hardware environments that may be used to implement a PMKBS. FIG. 4A depicts a single computer system 400 comprising a CPU 410, memory 412, memory media 414, network interface 416, and input/output devices 418 all connected via a data and control signal bus 420. Such a computer configuration is widely known in the art. The CPU 410 executes instructions using instructions and data stored in the memory 412 and accessed by the CPU 410 using the signal bus 420. Memory 412 may comprise combinations of RAM and ROM. The CPU 410 in a multiprocessing or parallel processing computer system may comprise multiple individual CPU's, and likewise its memory 412 may comprise multiple sections, each accessible or inaccessible to some combination of the individual CPU's.
For the PMKBS to control and monitor a subject process, the processing logic, of that process must first be encoded in memory medium in a form the PMKBS accepts. FIGS. 5A–5B depict one method of defining processing logic into a process management knowledgebase (PMKB). In one embodiment, the PMKB is maintained using the services of a relational database management system (RDBMS). RDBMS's are widely known in the art. Many RDBMS products are available commercially. An advanced RDBMS product may contain many or all of the features described in E. F. Codd, The Relational Model for Database Management, Version 2 (Addison-Wesley 1990) and hereby incorporated by reference. Advanced features that may be employed to implement the presently described embodiment of the invention include, e.g., field-level triggering and access to a predicate logic expression evaluator via an RDBMS language.
In the embodiment depicted in FIGS. 5A–5B, conventional RDBMS software on the computer manages relations, or tables, designated TABLES 550, ET 555, TT 565, ETCORR 560, DTQ 575, NOTICE 580, and E10 570, on a memory media device 540. The TABLES table 550 is shown for illustrative purposes and represents an exemplary RDBMS conventional catalog structure. For purposes of illustration, the TABLES table 550 contains one record, or row, for each table managed by the RDBMS.
An example of the defining process depicted in FIGS. 5A–5B assume the computer user wants to define a new event-type, E10. Using an editor or GUI-based development tool, the user creates a statement defining the event-type 516. The definition program 520 reads the statement and parses it to determine that it defines an event-type. Relevant information is extracted from the statement and inserted into a new row in the ET table 555 as indicated by arrow A 530. The definition program 520 also creates an SQL statement 523 compatible with the SQL language provided by the RDBMS 524, as indicated by arrow B 532, to define a new table to hold instances of the E10 event-type that occur during operation of the process. The definition program 520 invokes the RDBMS 524 as indicated by arrow C 534, passing the SQL statement 523 to it. The RDBMS 524 makes an entry 551 for the E10 table in its catalog 542 as indicated by arrow D 536, and creates an empty table 570 to hold E10 records as indicated by arrow E 538.
FIG. 7B depicts the record layout for an event occurrence record 720. Records of this format may occur in multiple tables in the PMKBS operating data area 648 as, in this embodiment, there is one table per declared event-type for storing instance data. The purpose of the event-type occurrence records in the present embodiment is to maintain a log of PMKBS activity. The records may also be used to incite execution of portions of the PMKBS program code as discussed in more detail in relation to FIG. 8A to 8D. The record 720 comprises event-type identifier 721, notice identifier 723, expression 725, expression value 727, and time stamp 729 fields. The primary key 739 of the record 720 comprises the event-type identifier 721 and notice identifier 723 fields. The event-type identifier field 721 contains a unique name for a type of event that can occur in the subject process and matches the value stored in the event-type identifier field 601 of a record 600 in the ET table 555. The notice identifier field 723 contains a unique value that identifies a particular row in the NOTICE table 580. The expression field 725 contains the specialized form of the expression template contained in the active record in the ET table having the matching event-type identifier with that of the instant record. The expression value field 727 may contain the resultant value from the evaluation of the specialized expression contained in the expression field 725. The time stamp field 729 contains a representation of the date and time at which the record 720 is inserted into a table.
FIG. 7C depicts the record layout for a task occurrence record 740. Records of this format may occur in multiple tables in the PMKBS operating data area as, in this embodiment, there is one table per declared task-type for storing instance data. The purpose of the task-type occurrence records in the present embodiment is to maintain a log of PMKBS activity. The record may also be used to incite execution of portions of the PMKBS program code as discussed in more detail in relation to FIG. 8A to 8D.
FIG. 7D depicts the record layout for a delayed task queue record 750 contained in the Delayed Task Queue (DTQ) table 575. The DTQ table 575 in this embodiment is used to implement deferred tasks. The purpose of the delayed task queue records 750 in the present embodiment is to maintain a log of PMKBS activity and to maintain a record of pending deferred execution requests. The records may also be used to incite execution of portions of the PMKBS program code as discussed in more detail in relation to FIGS. 8A to 8D. The record 750 comprises scheduled time 751, task-type identifier 753, notice identifier 755, and executable response 757 fields. The primary key 769 of the record 750 comprises the scheduled time field 751. The scheduled time field 751 contains a representation of the earliest date and time at which a deferred task is to be executed. The task-type identifier field 753 contains a unique name for an executable response to be deferred, and matches the value stored in the task-type identifier field 621 of a record 620 in the TT table 565. The notice identifier field 755 contains a unique value that identifies the particular row in the NOTICE table that gave rise to the instant DTQ record. The executable response field 757 contains the specialized form of the executable response model contained in the record in the TT table having the matching task-type identifier with that of the instant record.
An operational example involving the use of the operating data structures illustrated in FIGS. 7A to 7D is described later in reference to FIGS. 9A–9B.
FIGS. 9A–9B depicts the software and data components on a memory medium 540 for illustrating the operation of the PMKBS in one embodiment. FIGS. 9A–9B depict memory medium 540 containing operating system 910, RDBMS 912, PMKBS 914, inventory transaction 916, SENDMSG 918, and PARTFCST 920 program code; RDBMS catalog 542, PMKB catalog 546, PMKB data 548, and general data 903 logical spaces; and relational tables named TABLES 550, ET 555, TT 565, ETCORR 560, DTQ 575, NOTICE 580, E10 570, E20 935, T11 937, T12 941, T21 945, INV 947, and REQN 951.
In the presently preferred embodiment, the RDBMS catalog space 542 contains the TABLES table 550 as discussed earlier in reference to FIGS. 5A–5B. The PMKB catalog space 546 contains the ET 555, TT 565, and ETCORR 560 tables that have been populated as discussed earlier in reference to FIGS. 5A–5B, having record formats discussed earlier in reference to FIGS. 6A to 6C. The PMKB data space 548 contains NOTICE 580, DTQ 575, event occurrence (E10 and E20) 570, 935, and task occurrence (T11, T12, and T21) 937, 941, 945 tables, created as discussed earlier in reference to FIGS. 5A–5B, having record formats discussed earlier in reference to FIGS. 7A to 7D. The general data space 903 contains INV 947 and REQN 951 tables existing apart from the PMKBS, are exemplary only, and form no part of the invention. The tables play a role in an example subject process used here to illustrate one PMKBS embodiment.
The following discussion of FIGS. 10A to 13B describes sample contents of tables depicted in FIGS. 9A–9B. After the discussion of the contents of the tables, a processing example making use of those contents is described. The two discussions considered together illuminate one practice of the invention and its advantageous use in representing and executing processing logic using a computer.
FIG. 10A depicts sample records in the ET table 555. A record here reflects the occurrence of some event relevant to a subject process. The first and second records 556, 921 shown have event-type identifier values of E10 and E20, respectively. The first and second records 556, 921 have expression template values complying with the following syntax. The expression template is an expression. An expression is made up of a first argument, followed by an arithmetic or comparison operator, followed by a second argument. Each argument may be a constant, a variable, or an expression. A variable may be a parameter variable, identified by a dollar sign ($) prefix, or a table-data-value variable, identified by enclosure in square brackets ([. . . ]). Table-data-value variables consist of a table name, followed by a period (.), followed by a primary key value, followed by a period (.), followed by a column name. A table name, primary key value, or column name field of a table-data-value variable, may itself be a variable.
An example of PMKBS operation will now be described in reference to FIGS. 9A–9B, and the more detailed descriptions of the table contents of FIGS. 9A–9B as depicted in FIGS. 10A to 13B.
In logic block 825, the task correlator 350 tests the result 1216 to determine if it is TRUE. Because it is true, logic block 829 queries the ETCORR table 560 finding two records 923, 925 with an event-type identifier of E10. In logic block 831, the task correlator tries to select an unprocessed record from the two discovered in the last step 829. Record 923 is selected and logic block 833 is satisfied. The PMKBS has determined that task-type T11 is a course of action that should be taken. Logic block 835 retrieves any value in the execution-time expression template field 1044 in the selected record 923. None is found, meaning that the task is to be executed immediately, so processing proceeds to logic block 839. The task correlator formats and inserts new record 939 into the T11 table 937. The values for the task-type identifier 1220 and notice identifier fields 1222 of the new record 939 are set to T11 and N001001, respectively. The task correlator retrieves the value from the executable response field 1022 of the T11 record 929 of the TT table 565, specializes it, and fixes the specialized version as the value for the executable response field 1224 of the new record 939 in the T11 table 937. After the record 939 is inserted, the task correlator loops back to logic block 831.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS5481700 *Dec 16, 1991Jan 2, 1996The Mitre CorporationApparatus for design of a multilevel secure database management system based on a multilevel logic programming systemUS5499368 *Dec 1, 1994Mar 12, 1996International Business Machines CorporationScaled depiction of information from a databaseUS5511186 *Nov 18, 1992Apr 23, 1996Mdl Information Systems, Inc.System and methods for performing multi-source searches over heterogeneous databasesUS5548755Feb 17, 1995Aug 20, 1996International Business Machines CorporationSystem for optimizing correlated SQL queries in a relational database using magic decorrelationUS5594638Dec 29, 1993Jan 14, 1997First Opinion CorporationComputerized medical diagnostic system including re-enter function and sensitivity factorsUS5615359Jun 23, 1994Mar 25, 1997Candle Distributed Solutions, Inc.Data server with data probes employing predicate tests in rule statementsUS5712960Apr 15, 1996Jan 27, 1998Cv Soft, S.R.L.System and methods for intelligent database management using abductive reasoningUS5819090Mar 12, 1997Oct 6, 1998Ast Research, Inc.Application control module for common user access interfaceWO1996002033A1Jul 12, 1995Jan 25, 1996Inst Of Software Scient ConstMethod of writing program for specific business* Cited by examinerNon-Patent CitationsReference1A.V. Aho, et al., "Compilers-Principles, Techniques, and Tools," Addison-Wesley, 1986; Section 8.5, "Case Statements," pp. 497-500.2 *Application of temporal constrained predicate nets to production systems Kubek, J.-M.; Motet, G.; Emerging Technologies and Factory Automation, 1995. ETFA '95, Proceedings., 1995 INRIA/IEEE Symposium on, vol.: 1.3C.J. Theaker, et al., "A Practical Course on Operating Systems," Macmillian, 1985; Chapter 2, "Performance of Input/Output Systems", pp. 10-17.4Declaration of Sharon B. Codd (2 pages).5J.D. Ullman, "Principles of Database and Knowledge-Base Systems", vol. II: The New Technologies, Computer Science Press, 1989, pp. 983-1025.6 *Laurent et al., Updating intensional predicates in deductive databases, Data Engineering, 1993, Proceedings, Ninth International Conference on, Apr. 19-23, 1993, pp. 14-21.7 *Maximally permissive state feedback logic for controlled time Petri nets Chen Haoxun; Li Huifeng; American Control Conference, 1997. Proceedings of the 1997 , vol.: 4 , Jun. 4-6, 1997.8 *Meng et al., Construction of a relational front-end for object-oriented database systems, Data Engineering, 1993, Proceedings, Ninth International Conference on, Apr. 19-23, 1993, pp. 476-483.9 *Olken et al., Sampling from spatial databases, Data Engineering, 1993, Proceedings, Ninth International Conference on, Apr. 19-23, 1993, pp. 14-21.10Part 2: Delta: Major Features Exhibit A p. 4-38.11Part 3: The Delta Model Exhibit A p. 39-75.12Part 4: An Example Using the Delta Approach Exhibit A p. 76-133.13Part 5: Sample DELTA-Based Products Exhibit A p. 134-143.14Part 6: Evaluating the Delta Model Exhibit A p. 144-162.15Part 7: Comparison of the Delta Model with the Relational Model Exhibit A p. 163-170.16Part 8: Benefits of the Delta Model and Conclusions Exhibit A p. 171-187.17PCT International Search Report (Nov. 3, 1997).18PCT Written Opinion (Mar. 2, 1998).19 *Synthesis of controllers for real-time discrete event systems Ostroff, J.S.; Decision and Control, 1989., Proceedings of the 28th IEEE Conference on , Dec. 13-15, 1989.20The Delta Model: A 21<SUP>st </SUP>Century Approach to the Application Life Cycle Exhibit A p. 1-3.21 *Ullman, Principles of database and knowledgebase systems, Computer Science Press, 1988, pp. 28-29, 842-843.* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS7080352 *Jan 30, 2002Jul 18, 2006Dloo, IncorporatedMethod and system for creating programs using code having coupled syntactic and semantic relationshipsUS7962977 *May 30, 2007Jun 21, 2011Amdocs Software Systems LimitedSystem, method, and computer program product for determining a price utilizing a pattern oriented rule implemented tableUS8140894Dec 29, 2009Mar 20, 2012Microgen Aptitude LimitedTransaction regions in graphical computer-implemented methods of processing dataUS8392013 *Jan 27, 2006Mar 5, 2013Microgen Aptitude LimitedBusiness process automationUS8392473Sep 7, 2010Mar 5, 2013Microgen Aptitude LimitedFast hierarchical enrichmentUS8438534Dec 29, 2009May 7, 2013Microgen Aptitude LimitedTransformation of data between hierarchical data formatsUS8464229Dec 29, 2009Jun 11, 2013Microgen Aptitude LimitedCreation of form-based software application in a graphical user interface (GUI) environmentUS8549353Dec 29, 2009Oct 1, 2013Microgen Aptitutde LimitedBatch processing error handling modesUS8620713 *Jul 15, 2005Dec 31, 2013Sap AgMechanism to control delegation and revocation of tasks in workflow systemUS8683431Dec 29, 2009Mar 25, 2014Microgen Aptitude LimitedApplying rules to dataUS8732596Dec 29, 2009May 20, 2014Microgen Aptitude LimitedTransformation of hierarchical data formats using graphical rulesUS8818967 *Dec 20, 2010Aug 26, 2014Giesecke & Devrient GmbhMethod for compressing identifiersUS20030145308 *Jan 30, 2002Jul 31, 2003Geisinger Nile JosiahMethod and system for creating programs using code having coupled syntactic and semantic relationshipsUS20060247805 *Jan 27, 2006Nov 2, 2006Neil ThomsonProcess automationUS20070016465 *Jul 15, 2005Jan 18, 2007Sap AktiengesellschaftMechanism to control delegation and revocation of tasks in workflow systemUS20110161371 *Jun 30, 2011Microgen PlcSql generationUS20110161886 *Dec 29, 2009Jun 30, 2011Microgen PlcTransformation of hierarchical data formats using graphical rulesUS20110161916 *Jun 30, 2011Microgen PlcTransformation of data between hierarchical data formatsUS20110161917 *Dec 29, 2009Jun 30, 2011Microgen PlcProcessing collections of data itemsUS20110161918 *Jun 30, 2011Microgen PlcApplying rules to dataUS20110161941 *Dec 29, 2009Jun 30, 2011Microgen PlcCreation of form-based applicationsUS20110161946 *Jun 30, 2011Microgen PlcBatch data processing* Cited by examinerClassifications U.S. Classification706/56, 718/100, 706/50, 718/106, 719/318, 717/114, 706/47, 706/45, 707/999.006, 707/812, 707/999.005, 707/999.102International ClassificationG06F9/44, G06F17/00Cooperative ClassificationY10S707/99943, Y10S707/99936, Y10S707/99935, Y10S707/99934, G06F9/44European ClassificationG06F9/44Legal EventsDateCodeEventDescriptionJul 20, 2009REMIMaintenance fee reminder mailedJan 10, 2010LAPSLapse for failure to pay maintenance feesMar 2, 2010FPExpired due to failure to pay maintenance feeEffective date: 20100110RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services