Evaluation of Regular Nonlinear Recursions by Deductive Database Techniques

Nonlinear recursion is one of the most challenging classes of logic programs for efficient evaluation in logic programming systems. We identify one popular class of nonlinear recursion, regular nonlinear recursion, and investigate its efficient implementation by a deductive database approach. The approach performs a detailed query binding analysis based on query information, constraint information and the structure of a recursion, selects an appropriate predicate evaluation order and generates an efficient query evaluation plan. Interesting query evaluation techniques, such as chain-following, chain-split, and constraint pushing, are developed for the efficient evaluation of different kinds of queries. Furthermore, the technique can be extended to the evaluation of regular nonlinear recursions in HiLog and F-logic programs. The study not only presents a method for the evaluation of regular nonlinear recursions in a declarative way but also demonstrates the power of the deductive database approach in the analysis and evaluation of sophisticated logic programs.

[1]  R. Ramakrishnan,et al.  A framework for testing safety and effective computability of extended datalog , 1988, SIGMOD '88.

[2]  Yehoshua Sagiv,et al.  Inference of Inequality Constraints in Logic Programs. , 1991, PODS 1991.

[3]  Joxan Jaffar,et al.  Constraint logic programming , 1987, POPL '87.

[4]  Tomasz Imeilinski Intelligent query answering in rule based systems , 1987 .

[5]  Yehoshua Sagiv,et al.  On Termination of Datalog Programs , 1989, DOOD.

[6]  Jeffrey F. Naughton,et al.  Efficient evaluation of right-, left-, and multi-linear rules , 1989, SIGMOD '89.

[7]  Michael J. Maher,et al.  Expanding Query Power in Constraint Logic Programming Languages , 1989, NACLP.

[8]  Catriel Beeri,et al.  Bounds on the propagation of selection into logic programs , 1987, J. Comput. Syst. Sci..

[9]  François Bry,et al.  Query Evaluation in Deductive Databases: Bottom-Up and Top-Down Reconciled , 1990, Data Knowl. Eng..

[10]  Abraham Silberschatz,et al.  Safety of recursive Horn clauses with infinite relations , 1987, PODS '87.

[11]  Laurent Vieille From QSQ towards QoSaQ: Global Optimization of Recursive Queries , 1988, Expert Database Conf..

[12]  Jeffrey D. Ullman,et al.  Proof-tree transformation theorems and their applications , 1989, PODS.

[13]  Krzysztof R. Apt,et al.  Logic Programming , 1990, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[14]  Yehoshua Sagiv,et al.  Safety of datalog queries over infinite databases , 1989, PODS '89.

[15]  Leon Sterling,et al.  The Art of Prolog , 1987, IEEE Expert.

[16]  Nicolas Beldiceanu,et al.  Constraint Logic Programming , 1997 .

[17]  Jeffrey D. Ullman,et al.  Principles Of Database And Knowledge-Base Systems , 1979 .

[18]  Ling Liu,et al.  LogicBase: a deductive database system prototype , 1994, CIKM '94.

[19]  Raghu Ramakrishnan,et al.  Magic Templates: A Spellbinding Approach To Logic Programs , 1991, J. Log. Program..

[20]  Yatin P. Saraiya Linearising nonlinear recursions in polynomial time , 1989, PODS.

[21]  Michael Kifer,et al.  Querying object-oriented databases , 1992, SIGMOD '92.

[22]  Jeffrey D. Uuman Principles of database and knowledge- base systems , 1989 .

[23]  Lutz Plüer Termination proofs for logic programs based on predicate inequalities , 1990 .

[24]  Michael Kifer,et al.  Logical foundations of object-oriented and frame-based languages , 1995, JACM.

[25]  Allen Van Gelder,et al.  Termination detection in logic programs using argument sizes (extended abstract) , 1991, PODS.

[26]  Raghu Ramakrishnan,et al.  Efficient Transitive Closure Algorithms , 1988, VLDB.

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

[28]  Allen Van Gelder,et al.  Deriving constraints among argument sizes in logic programs , 1990, PODS '90.

[29]  Jiawei Han,et al.  Compilation-Based List Processing in Deductive Databases , 1992, EDBT.

[30]  ZhangWeining,et al.  Necessary and sufficient conditions to linearize doubly recursive programs in logic databases , 1990 .

[31]  Carlo Zaniolo,et al.  The LDL System Prototype , 1990, IEEE Trans. Knowl. Data Eng..

[32]  Michael Kifer,et al.  HILOG: A Foundation for Higher-Order Logic Programming , 1993, J. Log. Program..

[33]  Tomasz Imielinski,et al.  Intelligent Query Answering in Rule Based Systems , 1988, J. Log. Program..

[34]  Carlo Zaniolo,et al.  Optimization in a Logic Based Language for Knowledge and Data Intensive Applications , 1988, EDBT.

[35]  Catriel Beeri,et al.  On the power of magic , 1987, J. Log. Program..

[36]  Jeffrey D. Ullman,et al.  Efficient tests for top-down termination of logical rules , 1988, JACM.

[37]  Jeffrey F. Naughton,et al.  Compiling separable recursions , 1988, SIGMOD '88.

[38]  Larry Kerschberg,et al.  Expert Database Systems , 1987 .

[39]  Shalom Tsur,et al.  Deductive databases in action , 1991, PODS '91.

[40]  Laks V. S. Lakshmanan,et al.  Homomorphic tree embeddings and their applications to recursive program optimization , 1993, [1993] Proceedings Eighth Annual IEEE Symposium on Logic in Computer Science.

[41]  Bin Jiang,et al.  A suitable algorithm for computing partial transitive closures in databases , 1990, [1990] Proceedings. Sixth International Conference on Data Engineering.

[42]  Jeffrey D. Ullman,et al.  Principles of Database Systems , 1980 .

[43]  Jiawei Han,et al.  Constraint-based reasoning in deductive databases , 1991, [1991] Proceedings. Seventh International Conference on Data Engineering.

[44]  Jeffrey D. Ullman,et al.  Principles of database and knowledge-base systems, Vol. I , 1988 .

[45]  Jiawei Han,et al.  Automatic generation of compiled forms for linear recursions , 1992, Inf. Syst..