Abstract Metaprolog Engine

Abstract A compiler-based meta-level system for MetaProlog language is presented. Since MetaProlog is a meta-level extension of Prolog, the Warren Abstract Machine (WAM) is extended to get an efficient implementation of meta-level facilities; this extension is called the Abstract MetaProlog Engine (AMPE). Since theories and proofs are main meta-level objects in MetaProlog, we discuss their representations and implementations in detail. First, we describe how to efficiently represent theories and derivability relations. At the same time, we present the core part of the AMPE, which supports multiple theories and a fast context switching among theories in the MetaProlog system. Then we describe how to compute proofs, how to shrink the search space of a goal using partially instantiated proofs, and how to represent other control knowledge in a WAM-based system. In addition to computing proofs that are just success branches of search trees, fail branches can also be computed and used in the reasoning process.

[1]  Kave Eshghi Application of Meta-language Programming to Fault Finding in Logic Circuits , 1982, ICLP.

[2]  Evelina Lamma,et al.  An Extended Warren Abstract Machine for the Execution of Structured Logic Programs , 1992, J. Log. Program..

[3]  Gopalan Nadathur,et al.  Scoping Constructs in Logic Programming: Implementation Problems and their Solutions , 1995, J. Log. Program..

[4]  Evelina Lamma,et al.  Modularity in Logic Programming , 1994, J. Log. Program..

[5]  Ehud Shapiro,et al.  Meta interpreters for real , 1988 .

[6]  Leon Sterling,et al.  Incremental Flavor-Mixing of Meta-Interpreters for Expert System Construction , 1986, SLP.

[7]  Laura Giordano,et al.  A Modal Reconstruction of Blocks and Modules in Logic Programming , 1991, ISLP.

[8]  Richard W. Weyhrauch An Example of FOL Using Metatheory , 1982, CADE.

[9]  Kenneth A. Bowen,et al.  A Meta-Level Extension of Prolog , 1985, SLP.

[10]  Hassan Aït-Kaci,et al.  Warren's Abstract Machine: A Tutorial Reconstruction , 1991 .

[11]  Leon Sterling,et al.  Composing Prolog Meta-Interpreters , 1988, ICLP/SLP.

[12]  William F. Clocksin,et al.  Programming in Prolog , 1981, Springer Berlin Heidelberg.

[13]  Hideyuki Nakashima Knowledge representation in Prolog/KR , 1984, SLP.

[14]  Pattie Maes,et al.  Meta-Level Architectures and Reflection , 1988 .

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

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

[17]  Albert Bruffaerts,et al.  Negation as Failure: Proofs, Inference Rules and Meta-Interpreters , 1989, International Workshop on Meta-Programming in Logic.

[18]  Kenneth A. Bowen,et al.  The Design and Implementation of a High-Speed Incremental Portable Prolog Compiler , 1986, ICLP.

[19]  Mehmet Dincbas,et al.  Metacontrol of Logic Programs in Metalog , 1984, FGCS.

[20]  Evelina Lamma,et al.  The Design of an Abstract Machine for Efficient Implementation of Contexts in Logic Programming , 1989, International Conference on Logic Programming.

[21]  Dale Miller,et al.  A Logical Analysis of Modules in Logic Programming , 1989, J. Log. Program..

[22]  K. Fuchi,et al.  Concurrent Prolog , 1988 .

[23]  Stuart Russell Complete Guide to MRS , 1985 .

[24]  Hamid Bacha,et al.  MetaProlog Design and Implementation , 1988 .

[25]  Evelina Lamma,et al.  Reflection mechanisms for combining prolog databases , 1991, Softw. Pract. Exp..

[26]  Ivan Bratko,et al.  Prolog Programming for Artificial Intelligence , 1986 .

[27]  Hamid Bacha,et al.  Meta-Level Programming: A Compiled Approach , 1987, ICLP.

[28]  P. M. Hill,et al.  Meta-Programming in Logic Progamming , 1998 .

[29]  Ilyas Cicekli,et al.  Design and Implementation of An Abstract MetaProlog Engine for MetaProlog , 1989, International Workshop on Meta-Programming in Logic.

[30]  Maria Simi,et al.  Metalanguage and Reasoning Across Viewpoints , 1984, ECAI.

[31]  Leon Sterling,et al.  An Integrated Interpreter for Explaining Prolog's Successes and Failures , 1989, International Workshop on Meta-Programming in Logic.

[32]  Leon Sterling A meta-level architecture for expert systems , 1988 .

[33]  Richard W. Weyhrauch Prolegomena to a theory of mechanized formal reasoning , 1990 .

[34]  Luís Monteiro,et al.  Contextual Logic Programming , 1989, ICLP.

[35]  Peter Van Roy A Prolog Compiler for the PLM , 1984 .