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.

DOI: 10.1145/3979.3980

Extracted Key Phrases

4 Figures and Tables


Citations per Year

423 Citations

Semantic Scholar estimates that this publication has 423 citations based on the available data.

See our FAQ for additional information.

Cite this paper

@article{Ullman1985ImplementationOL, title={Implementation of Logical Query Languages for Databases}, author={Jeffrey D. Ullman}, journal={ACM Trans. Database Syst.}, year={1985}, volume={10}, pages={289-321} }