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. We consider combining object oriented and logic programming through the use of meta-programming techniques. Technical Report CSRI - Bonner, Kifer et al. An object oriented metalogic language. The Art of the Metaobject Protocol - Kiczales, Rivi et al.