Partial Deduction of the Ground Representation and its Application to Integrity Checking

Integrity constraints are very useful in many contexts, such as, for example, deductive databases, abductive and inductive logic programming. However, fully testing the integrity constraints after each update or modiication can be very expensive and methods have been developed which simplify the integrity constraints. In this paper, we pursue the goal of writing this simpliication procedure as a meta-program in logic programming and then using partial deduction to obtain pre-compiled integrity checks for certain update patterns. We argue that the ground representation has to be used to write this meta-program declaratively. We however also show that, contrary to what one might expect, current partial deduction techniques are then unable to specialise this meta-interpreter in an interesting way and no precompilation of integrity checks can be obtained. In fact, we show that partial deduction (alone) is not able to perform any (sophisticated) specialisation at the object-level for meta-interpreters written in the ground representation. We present a solution which uses a novel implementation of the ground representation and an improved partial deduction strategy. With this we are able to overcome the diiculties and produce highly specialised and eecient pre-compiled integrity checks through partial deduction of meta-interpreters.

[1]  Jan Komorowski,et al.  An Introduction to Partial Deduction , 1992, META.

[2]  Mark Wallace Compiling Integrity Checking into Update Procedures , 1991, IJCAI.

[3]  Patrick Cousot,et al.  Abstract Interpretation and Application to Logic Programs , 1992, J. Log. Program..

[4]  Corin A. Gurr,et al.  Towards fast and declarative meta-programming , 1995 .

[5]  Danny De Schreye,et al.  An almost perfect abstraction operator for partial deduction , 1994 .

[6]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[7]  Bern Martens On the semantics of meta-programming and the control of partial deduction in logic programming , 1994 .

[8]  Michael Leuschel,et al.  Partial Evaluation of the "Real Thing" , 1994, LOPSTR.

[9]  Liz Sonenberg,et al.  Integrity Constraint Checking in Stratified Databases , 1987, J. Log. Program..

[10]  John W. Lloyd,et al.  Partial Evaluation in Logic Programming , 1991, J. Log. Program..

[11]  John Wylie Lloyd,et al.  Foundations of Logic Programming , 1987, Symbolic Computation.

[12]  Danny De Schreye,et al.  Why untyped non-ground meta-programming is not (much of) of problem , 1992 .

[13]  John P. Gallagher,et al.  Specialisation of a Unification Algorithm , 1991, LOPSTR.

[14]  J. W. LLOYD,et al.  Making Prolog more Expressive , 1984, J. Log. Program..

[15]  Hendrik Decker,et al.  Integrity Checking in Deductive Databases - the Ultimate Method? , 1994, Australasian Database Conference.

[16]  Maurice Bruynooghe,et al.  Abstract Interpretation for (Constraint) Logic Programming , 1992, NATO ASI CP.

[17]  Ron Selj A New Method for Integrity Constraint Checking in Deductive Databases , 1994 .

[18]  Michael Leuschel,et al.  Generating Specialised Update Procedures Through Partial Deduction of the Ground Representation , 1995, Deductive Databases / Abduction in Deductive Databases.

[19]  Hendrik Decker,et al.  Comparing and synthesizing integrity checking methods for deductive databases , 1994, Proceedings of 1994 IEEE 10th International Conference on Data Engineering.

[20]  John P. Gallagher,et al.  Fast and Precise Regular Approximations of Logic Programs , 1994, ICLP.

[21]  C. A. Gurr,et al.  A Self-Applicable Partial Evaluator for the Logic Programming Language Gödel ( Extended Abstract ) , 1994 .

[22]  John W. Lloyd,et al.  The Gödel programming language , 1994 .

[23]  LogicJonas BarklundBox Metaprogramming in Logic , 1994 .

[24]  Alberto Pettorossi,et al.  Transformation of Logic Programs: Foundations and Techniques , 1994, J. Log. Program..

[25]  Danny De Schreye,et al.  Towards creating specialised integrity checks through partial evaluation of meta-interpreters , 1995, PEPM '95.

[26]  Corin A. Gurr,et al.  Specialising the Ground Representation in the Logic Programming Language Gödel , 1993, LOPSTR.

[27]  Nevin Heintze Practical Aspects of Set Based Analysis , 1992, JICSLP.

[28]  Harvey Abramson,et al.  Meta-programming in logic programming , 1989 .

[29]  Michael Leuschel,et al.  Ecological Partial Deduction: Preserving Characteristic Trees Without Constraints , 1995, LOPSTR.

[30]  Lee Naish,et al.  Most specific logic programs , 1990, Annals of Mathematics and Artificial Intelligence.

[31]  Hendrik Decker,et al.  Integrity Enforcement on Deductive Databases , 1986, Expert Database Conf..

[32]  John P. Gallagher,et al.  Tutorial on specialisation of logic programs , 1993, PEPM '93.

[33]  François Bry,et al.  Integrity Verification in Knowledge Bases , 1990, RCLP.

[34]  Sin Yeung Lee,et al.  Improving Integrity Constraint Checking for Stratified Deductive Databases , 1994, DEXA.

[35]  Pascal Van Hentenryck A slick procedure for integrity checking in deductive databases , 1994 .

[36]  Danny De Schreye,et al.  Two semantics for definite meta-programs, using the non-ground representation , 1995 .

[37]  Gerda Janssens,et al.  Deriving Descriptions of Possible Values of Program Variables by Means of Abstract Interpretation , 1990, J. Log. Program..