Results 1  10
of
10
Using MetaLogic to Reconcile Reactive With Rational Agents
 Metalogics and Logic Programming
, 1995
"... : In this paper I outline an attempt to reconcile the traditional Artificial Intelligence notion of a logicbased rational agent with the contrary notion of a reactive agent that acts "instinctively" in response to conditions that arise in its environment. For this purpose, I will use the tools of m ..."
Abstract

Cited by 66 (7 self)
 Add to MetaCart
: In this paper I outline an attempt to reconcile the traditional Artificial Intelligence notion of a logicbased rational agent with the contrary notion of a reactive agent that acts "instinctively" in response to conditions that arise in its environment. For this purpose, I will use the tools of metalogic programming to define the observationthoughtaction cycle of an agent that combines the ability to perform resourcebounded reasoning, which can be interrupted and resumed any time, with the ability to act when it is necessary. 1 Introduction The traditional notion of an intelligent agent in Artificial Intelligence is that of a rational agent that has explicit representations of its own goals and of its beliefs about the world. These beliefs typically include beliefs about the actions that the agent can perform and about the effects of those actions on the state of the world. This traditional notion of intelligent agent has been challenged in recent years by the contrary notion o...
MetaProgramming in Logic Programming
 Handbook of Logic in Artificial Intelligence and Logic Programming
, 1994
"... data types are facilitated in Godel by its type and module systems. Thus, in order to describe the metaprogramming facilities of Godel, a brief account of these systems is given. Each constant, function, predicate, and proposition in a Godel program must be specified by a language declaration. The ..."
Abstract

Cited by 46 (3 self)
 Add to MetaCart
data types are facilitated in Godel by its type and module systems. Thus, in order to describe the metaprogramming facilities of Godel, a brief account of these systems is given. Each constant, function, predicate, and proposition in a Godel program must be specified by a language declaration. The type of a variable is not declared but inferred from its context within a particular program statement. To illustrate the type system, we give the language declarations that would be required for the program in Figure 1. BASE Name. CONSTANT Tom, Jerry : Name. PREDICATE Chase : Name * Name; Cat, Mouse : Name. Note that the declaration beginning BASE indicates that Name is a base type. In the statement Chase(x,y) ! Cat(x) & Mouse(y). the variables x and y are inferred to be of type Name. Polymorphic types can also be defined in Godel. They are constructed from the base types, type variables called parameters, and type constructors. Each constructor has an arity 1 attached to it. As an...
Metareasoning: a Survey
 Computational Logic: Logic Programming and Beyond – Essays in Honour of Robert A. Kowalski (LNAI Volumes 2408
, 2002
"... We present the basic principles and possible applications of systems capable of metareasoning and reflection. After a discussion of the seminal approaches, we outline our own perception of the state of the art, mainly but not only in computational logic and logic programming. We review relevat succ ..."
Abstract

Cited by 10 (2 self)
 Add to MetaCart
We present the basic principles and possible applications of systems capable of metareasoning and reflection. After a discussion of the seminal approaches, we outline our own perception of the state of the art, mainly but not only in computational logic and logic programming. We review relevat successful...
Reflection Principles in Computational Logic
 Journal of Logic and Computation
, 1997
"... We introduce the concept of reflection principle as a knowledge representation paradigm in a computational logic setting. Reflection principles are expressed as certain kinds of logic schemata intended to capture the basic properties of the domain knowledge to be modeled. Reflection is then used to ..."
Abstract

Cited by 10 (6 self)
 Add to MetaCart
We introduce the concept of reflection principle as a knowledge representation paradigm in a computational logic setting. Reflection principles are expressed as certain kinds of logic schemata intended to capture the basic properties of the domain knowledge to be modeled. Reflection is then used to instantiate these schemata to answer specific queries about the domain. This differs from other approaches to reflection mainly in the following three ways. First, it uses logical instead of procedural reflection. Second, it aims at a cognitively adequate declarative representation of various forms of knowledge and reasoning, as opposed to reflection as a means for controlling computation or deduction. Third, it facilitates the building of a complex theory by allowing a simpler theory to be enhanced by a compact metatheory, contrary to the construction of metatheories that are only conservative extensions of the basic theory. A computational logic system for embedding reflection principles, called RCL (for Reflective Computational Logic), is presented in full detail. The system is an extension of Horn clause resolutionbased logic, and is devised in a way that makes important features of reflection parametric as much as possible, so that they can be tailored according to specific needs of different application domains. Declarative and procedural semantics of the logic are described and correctness and completeness of reflection as logical 1 inference are proved. Examples of reflection principles for three different application areas are shown. Relationship with a variety of distinct sources within the literature on relevant topics is discussed.
Metaprogramming with Theory Systems
, 1995
"... A theory system is a collection of interdependent theories, some if which stand in a meta/object relationship, forming an arbitrary number of metalevels. The main thesis of this chapter is that theory systems constitute a suitable formalism for constructing advanced applications in reasoning and so ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
A theory system is a collection of interdependent theories, some if which stand in a meta/object relationship, forming an arbitrary number of metalevels. The main thesis of this chapter is that theory systems constitute a suitable formalism for constructing advanced applications in reasoning and software engineering. The Alloy language for defining theory systems is introduced, its syntax is defined and a collection of inference rules is presented. A number of problems suitable for theory systems are discussed, with program examples given in Alloy. Some current implementation issues and future extensions are discussed. This paper appears as a chapter in Metalogics and Logic Programming, edited by K. Apt and F. Turini, and published by MIT Press in 1995. 1 Outline A conventional logic program can be seen as the nonlogical axioms of a single theory. This chapter presents a thesis that we obtain a more powerful tool for applications in artificial intelligence and software engineering...
Semantical Properties of Encodings in Logic Programming
 Logic Programming – Proc. 1995 Intl. Symp
, 1995
"... A metaprogram is a program where data denotes another (object) program. The relation between the metalevel data and the object program is specified through encodings. In this paper we discuss the expressivity of various forms of encodings (both ground and nonground) that have appeared in literature ..."
Abstract

Cited by 5 (5 self)
 Add to MetaCart
A metaprogram is a program where data denotes another (object) program. The relation between the metalevel data and the object program is specified through encodings. In this paper we discuss the expressivity of various forms of encodings (both ground and nonground) that have appeared in literature. This is done in a context where encodings are expressed by means of equational theories, and the related unification facility by means of a rewrite system. Then we analyze the formal properties that the associated rewrite systems must satisfy when integrated into a computational framework. Dipartimento di Scienze dell'Informazione, Universit`a degli Studi di Milano 1 Motivation In the last decade metalogic programming languages have become increasingly important. Many applications have been developed by means of metaprograms, in areas such as knowledge representation and reasoning, synthesis and analysis of programs and for modeling evaluation strategies. This has led to the developme...
Metavariables in Logic Programming, or in Praise of Ambivalent Syntax
, 1996
"... . We show here that metavariables of Prolog admit a simple declarative interpretation. This allows us to extend the usual theory of SLDresolution to the case of logic programs with metavariables, and to establish soundness and strong completeness of the corresponding extension of the SLDresoluti ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
. We show here that metavariables of Prolog admit a simple declarative interpretation. This allows us to extend the usual theory of SLDresolution to the case of logic programs with metavariables, and to establish soundness and strong completeness of the corresponding extension of the SLDresolution. The key idea is the use of ambivalent syntax which allows us to use the same symbols as function and relation symbols. We also study the problem of absence of runtime errors in presence of metavariables. We prove that this problem is undecidable. However, we also provide some sufficient and polynomialtimedecidable conditions which imply absence of runtime errors. Keywords: metavariables, ambivalent syntax, Prolog programs, soundness and completeness, absence of errors. 1. Introduction One of the unusual features of Prolog is the use of variables in the positions of atoms, both in the queries and in the clause bodies. Such a use of a variable is called a metavariable. Metavariab...
A case study in logic program verification: the Vanilla metainterpreter
"... We take the formal verification of the Vanilla metainterpreter as an excuse for explaining a proof method for reasoning about logic programs. The choice of a semantics suitable for program verification is discussed. We consider a variant of the least Herbrand model semantics which abstracts from ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
We take the formal verification of the Vanilla metainterpreter as an excuse for explaining a proof method for reasoning about logic programs. The choice of a semantics suitable for program verification is discussed. We consider a variant of the least Herbrand model semantics which abstracts from illtyped atoms and the underlying (first order) language, thus enhancing modularity and ease of specification. Then, proof outlines and proof obligations are introduced in a Hoare's logic style. In the resulting proof theory, triples of the form fPregPfPostg can be derived for a program P , which allow us to establish partial and total correctness. As a consequence of our results, the correctness of Vanilla is directly proved (once again.) Keywords: Verification, program development, metaprogramming, formal methods. 1 Introduction Logic programming (and Prolog) is advertised as a declarative language, in the sense that specifications, when written in an appropriate syntax, can be dir...
Metavariables in Logic Programming, or in Praise of Ambivalent Syntax
"... . We show here that metavariables of Prolog admit a simple declarative interpretation. This allows us to extend the usual theory of SLDresolution to the case of logic programs with metavariables, and to establish soundness and strong completeness of the corresponding extension of the SLDresoluti ..."
Abstract
 Add to MetaCart
. We show here that metavariables of Prolog admit a simple declarative interpretation. This allows us to extend the usual theory of SLDresolution to the case of logic programs with metavariables, and to establish soundness and strong completeness of the corresponding extension of the SLDresolution. The key idea is the use of ambivalent syntax which allows us to use the same symbols as function and relation symbols. We also study the problem of absence of runtime errors in presence of metavariables. We prove that this problem is undecidable. However, we also provide some sufficient and polynomialtimedecidable conditions which imply absence of runtime errors. Keywords: metavariables, ambivalent syntax, Prolog programs, soundness and completeness, absence of errors. 1. Introduction One of the unusual features of Prolog is the use of variables in the positions of atoms, both in the queries and in the clause bodies. Such a use of a variable is called a metavariable. Metavariab...
Chain Programs for Writing Deterministic Metainterpreters
"... Many metainterpreters found in the logic programming literature are nondeterministic in the sense that the selection of program clauses is not determined. Examples are the familiar \demo" and \vanilla" metainterpreters. For some applications this nondeterminism is convenient. In some cases, however, ..."
Abstract
 Add to MetaCart
Many metainterpreters found in the logic programming literature are nondeterministic in the sense that the selection of program clauses is not determined. Examples are the familiar \demo" and \vanilla" metainterpreters. For some applications this nondeterminism is convenient. In some cases, however, a deterministic metainterpreter, having an explicit selection of clauses, is needed. Such cases include (1) conversion of or parallelism into and parallelism for \committedchoice" processors, (2) logicbased, imperativelanguage implementation of search strategies, and (3) simulation of boundedresource reasoning. Deterministic metainterpreters are dicult to write because the variables in a logic program are local to each clause, and hence the programmer must be concerned about the set of uniers of the children of a node in the derivation tree. We argue that it is both possible and advantageous to write these metainterpreters by reasoning in terms of object programs converted into a syntactically restricted form that we call \chain" form, where we can forget about unication, except for unit clauses. We give two transformations converting logic programs into chain form, one for \moded" programs (implicit in two existing exhaustivetraversal methods for committedchoice execution), and one for arbitrary denite programs. As illustrations of our approach we show examples of the three applications mentioned above. 1