Design overview of the NAIL! System

  • Katherine Morris
  • Jeffrey D. Ullman
  • Allen Van Gelder
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 225)


We describe the design decisions made for the NAIL! (not another implementation of logic!) system, an advanced form of DBMS where queries may involve a large collection of Prolog-like rules used for query interpretation. A discussion of the ways NAIL! semantics differs from Prolog is followed by an exposition of the principal ideas in the system design. These points include the partition of predicates into strongly connected components to represent the structure of recursions and the “capture rule” organization for selecting query processing strategies. Other ideas include the way distinctions between bound and free arguments are capitalized upon and the persistence of previously discovered facts about the way to handle certain queries. We also survey the recent work on the processing of recursively defined queries conducted by the NAIL! group and others with similar computational models.


Logic Program Predicate Symbol Horn Clause Deductive Database Recursive Rule 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    F. Afrati, C. Papadimitriou, G. Papageorgiou, A. R. Roussou, Y. Sagiv, and J. D. Ullman, “Convergence of Sideways Query Evaluation,” Proc. Fifth ACM Symposium on Principles of Database Systems, pp. 24–30, 1986.Google Scholar
  2. [2]
    K. R. Apt and M. H. Van Emden, “Contributions to the theory of logic programming,” J. ACM 29:3, pp. 841–862, 1982.Google Scholar
  3. [3]
    F. Bancilhon, D. Maier, Y. Sagiv, and J. Ullman, “Magic sets and other strange ways to implement logic programs,” Proc. Fifth ACM Symposium on Principles of Database Systems, pp. 1–15, 1986.Google Scholar
  4. [4]
    F. Bancilhon and R. Ramakrishnan, “An amateur's introduction to recursive query processing strategies,” to appear in the proceedings of the 1986 SIGMOD Conf. on Management of Data, May, 1986.Google Scholar
  5. [5]
    A. K. Chandra and D. Harel, “Horn clauses and the fixpoint hierarchy,” Proc. Second ACM Symposium on Principles of Database Systems, pp. 158–163, 1982.Google Scholar
  6. [6]
    L. J. Henschen and S. A. Naqvi, “On compiling queries in recursive firstorder databases,” J. ACM 31:1, pp. 47–85, 1984.Google Scholar
  7. [7]
    Y. E. Ioannidis, “Bounded recursion in deductive databases,” UCB/ERL M85/6, Dept. of EECS, UC Berkeley, Feb., 1985.Google Scholar
  8. [8]
    M. Kifer and E. L. Lozinskii, “Query optimization in logical databases,” unpublished memorandum, Dept. of CS, SUNY, Stony Brook, NY, 1985.Google Scholar
  9. [9]
    E. L. Lozinskii, “Inference by generating and structuring deductive databases,” Proc. Ninth Intl. Joint Conf. on AI, pp. 173–177, 1985.Google Scholar
  10. [10]
    D. McKay and S. Shapiro, “Using active connection graphs for reasoning with recursive rules,” Proc. Seventh Intl. Joint Conf. on AI, pp. 368–374, 1981.Google Scholar
  11. [11]
    L. Naish, “Negation and control in Prolog,” Ph. D. thesis, Univ. of Melbourne, 1985.Google Scholar
  12. [12]
    J. F. Naughton, “Data independent recursion in deductive databases,” Proc. Fifth ACM Symposium on Principles of Database Systems, pp. 267–279, 1986.Google Scholar
  13. [13]
    J. F. Naughton, “Optimizing function-free recursive inference rules,” Dept. of CS, Stanford Univ., to appear.Google Scholar
  14. [14]
    Y. Sagiv and J. D. Ullman, “Complexity of a top-down capture rule,” STAN-CS-84-1009, Stanford Univ., 1984.Google Scholar
  15. [15]
    J. D. Ullman, Principles of Database Systems, Computer Science Press, Rockville, Md., 1982.Google Scholar
  16. [16]
    J. D. Ullman, “Implementation of logical query languages for databases,” ACM Trans. on database Systems 10:3, pp. 289–321, 1985Google Scholar
  17. [17]
    J. D. Ullman and A. Van Gelder, “Testing applicability of top-down capture rules,” STAN-CS-1046, Stanford Univ., 1985.Google Scholar
  18. [18]
    A. Van Gelder, “A message passing framework for logical query evaluation,” to appear in the proceedings of the 1986 SIGMOD Conf. on Management of Data, May, 1986.Google Scholar
  19. [19]
    A. Van Gelder, “Negation as failure using tight derivations for general logic programs,” unpublished memorandum, Stanford Univ., 1986.Google Scholar
  20. [20]
    M. H. Van Emden and R. A. Kowalski, “The semantics of predicate logic as a programming language,” J. ACM 23:4, pp. 733–742, 1976.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • Katherine Morris
    • 1
  • Jeffrey D. Ullman
    • 1
  • Allen Van Gelder
    • 1
  1. 1.Stanford UniversityStanfordUSA

Personalised recommendations