Set-oriented constructs for rule-based systems

Set-oriented constructs for forward chaining rule-based systems are presented. These constructs allow arbitrary amounts of data to be matched and changed within the execution of a single rule. Second-order tests on the data can be included in the match. The ability of a single rule to directly access all of the data to be manipulated eliminates the need for unwieldy control mechanisms and marking schemes. Adding this expressivity to rule-based languages enhances their value to expert system developers and their capabilities as database programming languages. Additionally, these set-oriented constructs provide a basis for more efficient implementations of rule-based systems, for both the traditional memory-based system and the emerging disk-based ones. The approach described has been implemented using an extended version of the Rete network algorithm.<<ETX>>

[1]  Lois M. L. Delcambre,et al.  The Relational Production Language: A Production Language for Relational Databases , 1988, Expert Database Conf..

[2]  Michael Stonebraker,et al.  On rules, procedure, caching and views in data base systems , 1990, SIGMOD '90.

[3]  Anoop Gupta Parallelism in production systems , 1987 .

[4]  Charles L. Forgy,et al.  Rete: a fast algorithm for the many pattern/many object pattern match problem , 1991 .

[5]  Gregg T. Vesonder Rule-based programming in the UNIX® system , 1988, AT&T Technical Journal.

[6]  A Gupta,et al.  Parallelism in production systems: the sources and the unexpected speed up , 1986 .

[7]  Jennifer Widom,et al.  Set-oriented production rules in relational database systems , 1990, SIGMOD '90.

[8]  Arie Tzvieli On the Coupling of a Production System Shell and a DBMS , 1988, JCDKB.

[9]  Nancy Wogrin,et al.  Rule-Based Programming With Ops 5 , 1988 .

[10]  Ho Soo Lee,et al.  Advances in Rete Pattern Matching , 1986, AAAI.

[11]  Daniel P. Miranker TREAT: A new and efficient match algorithm for AI production systems , 1988 .

[12]  Charles L. Forgy,et al.  OPS5 user's manual , 1981 .

[13]  Paul S. Rosenbloom,et al.  Universal Subgoaling and Chunking , 1986 .

[14]  Charles L. Forgy,et al.  Rete: A Fast Algorithm for the Many Patterns/Many Objects Match Problem , 1982, Artif. Intell..

[15]  Alexander J. Pasik,et al.  A methodology for programming production systems and its implications on parallelism , 1989 .

[16]  Salvatore J. Stolfo,et al.  The Do-loop Considered Harmful in Production System Programming , 1986, Expert Database Conf..

[17]  Timos K. Sellis,et al.  Implementing large production systems in a DBMS environment: concepts and algorithms , 1988, SIGMOD '88.