Results 1 -
3 of
3
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 8 (5 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 resolution-based 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.
METAL: An Object Oriented Metalogic Language
, 1994
"... We describe an approach to object oriented logic programming. Objects are represented as theories and executing a method of an object amounts to querying the object's theory. Classes contribute rules to the theory of each instance. The local state of an object comprises a collection of unit clauses ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
We describe an approach to object oriented logic programming. Objects are represented as theories and executing a method of an object amounts to querying the object's theory. Classes contribute rules to the theory of each instance. The local state of an object comprises a collection of unit clauses and the state of an object is encapsulated. Inheritance combines theories to form the theory for a class. We describe the features of a prototype exploring this approach and we develop part of a simplified metaobject protocol for the language. 1 Introduction We consider combining object oriented and logic programming through the use of meta-programming techniques. We represent objects as definite clause theories and send messages to objects by querying the corresponding theory. Classes are theories whose rules are shared by all the theories of its instances. A process of "theory-building" takes place to construct the theory of an object and this process takes care of inheritance and abs...
Updating Metalogic Programs by Rebinding Names
"... Amalgamated logic programming can be used to express relationships between two theories which can be interpreted as a transformation from one theory to another, so providing a form of logical update. In a system representing objects as theories this can explain state updates of objects but it does n ..."
Abstract
- Add to MetaCart
Amalgamated logic programming can be used to express relationships between two theories which can be interpreted as a transformation from one theory to another, so providing a form of logical update. In a system representing objects as theories this can explain state updates of objects but it does not account properly for object identifiers. We describe a notion of rebinding for object identifiers, and for primitive names of theories in general, which accounts for the change to object identifiers. 1 Introduction One of the most common approaches to combining object oriented and deductive languages is the object-as-theory approach [14, 26, 28, 29], where an object is represented as a set of formulas. These sets of formulas are to be independently queried, so providing the notions of message passing and method execution in a local context. Theories are not terms of first order logic, so representing objects as theories requires a more powerful foundation. As an alternative to higher-ord...

