Computational Logic: Logic Programming and Beyond

In this paper we describe a distributed object oriented logic programming language in which an object is a collection of threads deductively accessing and updating a shared logic program. The key features of the language, such as static and dynamic object methods and multiple inheritance, are illustrated through a series of small examples. We show how we can implement object servers, allowing remote spawning of objects, which we can use as staging posts for mobile agents. We give as an example an information gathering mobile agent that can be queried about the information it has so far gathered whilst it is gathering new information. Finally we define a class of co-operative reasoning agents that can do resource bounded inference for full first order predicate logic, handling multiple queries and information updates concurrently. We believe that the combination of the concurrent OO and the LP programming paradigms produces a powerful tool for quickly implementing rational multi-agent applications on the internet.

[1]  Bert Van Nuffelen,et al.  A-system: Declarative Programming with Abduction , 2001, LPNMR.

[2]  Gerhard Wetsel Abductive and constraint logic programming , 1997 .

[3]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[4]  Claude Kirchner,et al.  Rewriting with Strategies in ELAN: A Functional Semantics , 2001, Int. J. Found. Comput. Sci..

[5]  Alberto Pettorossi,et al.  Perfect Model Checking via Unfold/Fold Transformations , 2000, Computational Logic.

[6]  Ken Satoh Using Two Level Abduction to Decide Similarity of Cases , 1998, ECAI.

[7]  Paolo Torroni,et al.  Dialogues for Negotiation: Agent Varieties and Dialogue Sequences , 2001, ATAL.

[8]  Tadashi Kanamori,et al.  Construction of Logic Programs Based on Generalized Unfold/Fold Rules , 1987, ICLP.

[9]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[10]  C. R. Ramakrishnan,et al.  Efficient Model Checking Using Tabled Resolution , 1997, CAV.

[11]  Alberto Pettorossi,et al.  Transformation of Logic Programs , 1994 .

[12]  Nadia Azibi Trequasi : un système pour la transformation automatique de programmes PROLOG récursifs en quasi-itératifs , 1987 .

[13]  Chiaki Sakama,et al.  Updating Extended Logic Programs through Abduction , 1999, LPNMR.

[14]  Giorgio Delzanno,et al.  Model Checking in CLP , 1999, TACAS.

[15]  L Kott,et al.  Unfold/fold program transformations , 1986 .

[16]  Maurice Bruynooghe,et al.  Compiling Control , 1989, J. Log. Program..

[17]  Murray Shanahan,et al.  Prediction is Deduction but Explanation is Abduction , 1989, IJCAI.

[18]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[19]  Hisao Tamaki,et al.  Unfold/Fold Transformation of Logic Programs , 1984, ICLP.

[20]  Francesca Toni,et al.  Semantic Query Optimization through Abduction and Constraint Handling , 1998, FQAS.

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

[22]  Carlo Zaniolo,et al.  Stable models and non-determinism in logic programs with negation , 1990, PODS.

[23]  Douglas R. Smith Towards the Synthesis of Constraint Propagation Algorithms , 1993, LOPSTR.

[24]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[25]  Alberto Pettorossi,et al.  Reducing nondeterminism while specializing logic programs , 1997, POPL '97.

[26]  Hisao Tamaki,et al.  Transformational Logic Program Synthesis , 1984, FGCS.

[27]  Hirohisa Seki,et al.  Unfold/Fold Transformation of General Logic Programs for the Well-Founded Semantics , 1993, J. Log. Program..

[28]  Kenneth A. Ross,et al.  The well-founded semantics for general logic programs , 1991, JACM.

[29]  Yves Deville,et al.  Logic Program Synthesis , 1994, J. Log. Program..

[30]  Ulf Nilsson,et al.  Constraint Logic Programming for Local and Symbolic Model-Checking , 2000, Computational Logic.

[31]  Irène Guessarian,et al.  Transforming Constraint Logic Programs , 1994, Theor. Comput. Sci..

[32]  Robert A. Kowalski,et al.  Logic for problem solving , 1982, The computer science library : Artificial intelligence series.

[33]  John C. Shepherdson,et al.  Unfold/fold transformations of logic programs , 1992, Mathematical Structures in Computer Science.

[34]  Chiaki Sakama,et al.  Abductive logic programming and disjunctive logic programming: their relationship and transferability , 2000, J. Log. Program..

[35]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[36]  Sandro Etalle,et al.  Transforming Normal Programs by Replacement , 1992, META.

[37]  Kung-Kiu Lau,et al.  Top-down Synthesis of Recursive Logic Procedures from First-order Logic Specifications , 1990, ICLP.

[38]  Teodor C. Przymusinski On the declarative and procedural semantics of logic programs , 1989, Journal of Automated Reasoning.

[39]  Ken Satoh,et al.  A Query Evaluation Method for Abductive Logic Programming , 1992, Joint International Conference and Symposium on Logic Programming.

[40]  Sandro Etalle,et al.  Transformations of CLP Modules , 1996, Theor. Comput. Sci..

[41]  Alan Bundy,et al.  The Synthesis of Logic Programs from Inductive Proofs , 1990 .

[42]  Christopher J. Hogger,et al.  Derivation of Logic Programs , 1981, JACM.

[43]  Frank Van Eynde,et al.  Abductive reasoning with temporal information , 2000, ArXiv.

[44]  Laurent Fribourg,et al.  Extracting Logic Programs from Proofs that Use Extended Prolog Execution and Induction , 1990, ICLP.

[45]  Douglas R. Smith Constructing Specification Morphisms , 1993, J. Symb. Comput..

[46]  Michael J. Maher A Transformation System for Deductive Database Modules with Perfect Model Semantics , 1989, FSTTCS.

[47]  Douglas R. Smith,et al.  Toward a Classification Approach to Design , 1996, AMAST.

[48]  Danny De Schreye,et al.  A Strong Correspondence between Description Logics and Open Logic Programming , 1997, ICLP.

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

[50]  Robert A. Kowalski,et al.  Algorithm = logic + control , 1979, CACM.

[51]  Danny De Schreye,et al.  Some achievements and prospects in partial deduction , 1998, CSUR.

[52]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[53]  Alberto Pettorossi,et al.  Synthesis and Transformation of Logic Programs Using Unfold/Fold Proofs , 1999, J. Log. Program..

[54]  Danny De Schreye,et al.  The Abductive Event Calculus as a General Framework for Temporal Databases , 1994, ICTL.

[55]  C. R. Ramakrishnan,et al.  Beyond Tamaki-Sato Style Unfold/Fold Transformations for Normal Logic Programs , 2002, Int. J. Found. Comput. Sci..

[56]  D. Kozen Results on the Propositional µ-Calculus , 1982 .

[57]  Robert A. Kowalski,et al.  Predicate Logic as Programming Language , 1974, IFIP Congress.

[58]  Chiaki Sakama,et al.  An alternative approach to the semantics of disjunctive logic programs and deductive databases , 2004, Journal of Automated Reasoning.

[59]  Keith L. Clark,et al.  A First Order Theory of Data and Programs , 1977, IFIP Congress.

[60]  Koichi Furukawa,et al.  Notes on Transformation Techniques for Generate and Test Logic Programs , 1987, SLP.

[61]  Richard Jüllig,et al.  Specware: Formal Support for Composing Software , 1995, MPC.

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

[63]  Michael Leuschel,et al.  Program Specialisation and Abstract Interpretation Reconciled , 1998, IJCSLP.

[64]  Francesca Toni,et al.  A Logic-Agent based System for Semantic Integration , 2000 .

[65]  中川 裕志,et al.  UNFOLD/FOLD TRANSFORMATION OF STRATIFIED PROGRAMS , 1989 .

[66]  Sandro Etalle,et al.  Unfold/Fold Transformations of CCP Programs , 1998, CONCUR.

[67]  Douglas R. Smith,et al.  KIDS: A Semiautomatic Program Development System , 1990, IEEE Trans. Software Eng..

[68]  Manolis Gergatsoulis,et al.  Unfold/fold Transformations for Disjunctive Logic Programs , 1997, Inf. Process. Lett..

[69]  K. Clark,et al.  Predicate logic: a calculus for deriving programs , 1977, IJCAI 1977.

[70]  Ken Satoh,et al.  A Correct Goal-directed Proof Procedure for a General Logic Program with Integrity Constraints , 1992, ELP.

[71]  M. Sørensen,et al.  Conjunctive Partial Deduction: Foundations, Control, Algorithms, and Experiments , 1999, J. Log. Program..

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

[73]  Alberto Pettorossi,et al.  Unfolding - Definition - Folding, in this Order, for Avaoiding Unnecessary Variables in Logic Programs , 1995, Theor. Comput. Sci..

[74]  Sten-Åke Tärnlund,et al.  An Axiomatic Data Base Theory , 1977, Logic and Data Bases.

[75]  I. V. Ramakrishnan,et al.  Proofs by Program Transformations , 1999 .

[76]  Francesca Toni,et al.  Abduction with Negation as Failure for Active and Reactive Rules , 1999, AI*IA.

[77]  Bruno Courcelle,et al.  Equivalences and Transformations of Regular Systems-Applications to Recursive Program Schemes and Grammars , 1986, Theor. Comput. Sci..

[78]  Lawrence C. Paulson,et al.  The foundation of a generic theorem prover , 1989, Journal of Automated Reasoning.

[79]  Tadashi Kawamura,et al.  Logic Program Synthesis from First-Order Logic Specifications , 1994, Theor. Comput. Sci..

[80]  Yves Deville,et al.  Logic programming - systematic program development , 1990, International series in logic programming.

[81]  Akihiro Yamamoto Using Abduction for Induction Based on Bottom Generalization , 2000 .

[82]  Frank van Harmelen,et al.  The Oyster-Clam System , 1990, CADE.

[83]  Michael R. Lowry,et al.  Deductive Composition of Astronomical Software from Subroutine Libraries , 1994, CADE.

[84]  Ken Satoh,et al.  Computing Abduction by Using the TMS , 1991, ICLP.

[85]  C. R. Ramakrishnan,et al.  Verification of Parameterized Systems Using Logic Program Transformations , 2000, TACAS.

[86]  Manuel V. Hermenegildo,et al.  Abstract Multiple Specialization and Its Application to Program Parallelization , 1999, J. Log. Program..

[87]  John P. Gallagher,et al.  Using regular approximations for generalisation during partial evalution , 1999, PEPM '00.

[88]  Zohar Manna,et al.  A Deductive Approach to Program Synthesis , 1979, TOPL.

[89]  Rodney J. Douglas KIDS: A Semi-Automatic Program Development System , 1990 .

[90]  Thierry Massart,et al.  Infinite State Model Checking by Abstract Interpretation and Program Specialisation , 1999, LOPSTR.

[91]  Alberto Pettorossi,et al.  Rules and strategies for transforming functional and logic programs , 1996, CSUR.

[92]  I. V. Ramakrishnan,et al.  Automated Inductive Verification of Parameterized Protocols , 2001, CAV.

[93]  Danny De Schreye,et al.  Representing Continuous Change in the Abductive Event Calculus , 1994, ICLP.

[94]  Chiaki Sakama,et al.  Representing Priorities in Logic Programs , 1996, JICSLP.

[95]  Francesca Toni,et al.  A Semantics for the Kakas-Mancarella Procedure for Abductive Logic Programming , 1995, GULP-PRODE.

[96]  Douglas R. Smith,et al.  Top-Down Synthesis of Divide-and-Conquer Algorithms , 1985, Artif. Intell..

[97]  Bert Van Nuffelen,et al.  Problem solving in ID-logic with aggregates: some experiments , 2000, ArXiv.

[98]  Hisao Tamaki,et al.  First Order Compiler: A Deterministic Logic Program Synthesis Algorithm , 1989, J. Symb. Comput..

[99]  autoepistemic Zogic Logic programming and negation : a survey , 2001 .

[100]  D. M. Steier,et al.  Algorithm Synthesis: A Comparative Study , 1989, Springer US.

[101]  Saumya K. Debray,et al.  Optimizing Almost-Tail-Recursive Prolog Programs , 1985, FPCA.

[102]  Alberto Pettorossi,et al.  Verifying CTL properties of infinite state systems by specializing constraint logic programs , 2001 .