Implementation of logical query languages for databases

We examine methods of implementing queries about relational databases in the case where these queries are expressed in first-order logic as a collection of Horn clauses. Because queries may be defined recursively, straightforward methods of query evaluation do not always work, and a variety of strategies have been proposed to handle subsets of recursive queries. We express such query evaluation techniques as “capture rules” on a graph representing clauses and predicates. One essential property of capture rules is that they can be applied independently, thus providing a clean interface for query-evaluation systems that use several different strategies in different situations. Another is that there be an efficient test for the applicability of a given rule. We define basic capture rules corresponding to application of operators from relational algebra, a top-down capture rule corresponding to “backward chaining,” that is, repeated resolution of goals, a bottom-up rule, corresponding to “forward chaining,” where we attempt to deduce all true facts in a given class, and a “sideways” rule that allows us to pass results from one goal to another.

[1]  Salvatore J. Stolfo,et al.  Logic Programming Using Parallel Associative Operations , 1984, SLP.

[2]  Raymond Reiter,et al.  Deductive Question-Answering on Relational Data Bases , 1977, Logic and Data Bases.

[3]  Robert A. Kowalski,et al.  The Semantics of Predicate Logic as a Programming Language , 1976, JACM.

[4]  Nils J. Nilsson,et al.  Principles of Artificial Intelligence , 1980, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[5]  Sharon Sickel,et al.  A Search Technique for Clause Interconnectivity Graphs , 1976, IEEE Transactions on Computers.

[6]  J. D. Uiiman,et al.  Principles of Database Systems , 2004, PODS 2004.

[7]  Jack Minker,et al.  Logic and Data Bases , 1978, Springer US.

[8]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..

[9]  Chin-Liang Chang On Evaluation of Queries Containing Derived Relations in a Relational Data Base , 1979, Advances in Data Base Theory.

[10]  J. Ullman,et al.  Complexity of a top-down capture rule , 1984 .

[11]  Stuart C. Shapiro,et al.  Using Active Connection Graphs for Reasoning with Recursive Rules , 1981, IJCAI.

[12]  D UllmanJeffrey Implementation of logical query languages for databases , 1985 .

[13]  Robert A. Kowalski,et al.  A Proof Procedure Using Connection Graphs , 1975, JACM.

[14]  Alfred V. Aho,et al.  Universality of data retrieval languages , 1979, POPL.

[15]  Lawrence J. Henschen,et al.  On compiling queries in recursive first-order databases , 1984, JACM.

[16]  Raymond Reiter On Closed World Data Bases , 1977, Logic and Data Bases.

[17]  Keith L. Clark,et al.  Negation as Failure , 1987, Logic and Data Bases.

[18]  David Harel,et al.  Horn clauses and the fixpoint query hierarchy , 1982, PODS.