ACM SIGART Bulletin
Introduction This paper describes experiences in implementing Telos [MBJK90, TK89], a knowledge representation scheme developed at the University of Toronto. In a nutshell, Telos is a hybrid of an object-centered representation for representing entities, a logic-based language for representing deductive rules and integrity constraints, and an interval-based language for representing time. The language is unique for its tight integration of temporal knowledge and for its meta-level capabilities
... hich include a class/metaclass hierarchy and a reflective inference engine. The main motivation for implementing Telos is to discover whether the chosen combination of representations results in an effective and efficient knowledge representation system. Another important goal is to discover how large a knowledge base can be supported using "'traditional" AI implementation methodologies such as the use of LISP and memory resident data-structures. A long term goal of this research is to develop knowledge base management systems capable of storing on the order of 106 facts. Other goals are to test the language specification, to discover how users react to the language, to discover what features are used and how are they used, and to provide a tool for research into using knowledge representations. There have been several projects which have used various implementations of Telos. An early version of Telos was used as a world modelling tool to support semantic representation in a multilingual natural language query language for database application in the ESPRIT project LOKI [BDH88]. The features of the language which were proved important in this application were the ability to cxpress structural descriptions of an application domain, the deductive capabilities and the ability to represent and reason with temporal information. A Prolog prototype implementation was developed and demonstrated in the LOKI project. Another dialect of Telos has been used for modeling design histories for information systems as part of the ESPRIT project DAIDA [JR88]. The extensibility of the language through the meta-attributes facilities was extensively used. In addition, the temporal and deductive aspects of the language were found very helpful for defining constraints over the software life cycle. Recently, Telos has been used to express knowledge atxmt software in the logical design of a software information base (S1B) designed to support software reusability as part of the ESPRIT [I project ITHACA [CJM89]. All of the above applications are based on Prolog implementations of substantial portions of the language. Of these implementations, Concept Base [J JR88] is perhaps the most complete. Finally, a more complete Lisp-based implementation of Telos has been used to develop an alarm filtering expert system for a nuclear power plant [MWKT90]. This last implementation, which is called KNOWBEL, forms the basis of the discussion in this paper. The paper is organized as follows. First, there is a brief introduction to Telos. This is followed by a description of the latest Lisp-based implementation and examples of interactions with this implementation. Next, work in progress in the areas of concurrency control and query processing is presented. This work is intended to support development of an implementation of Telos capable of supporting very large knowledge bases and multiple users. Finally, the concluding section summarizes what was learned by implementing Telos. Overview of Telos Telos was originally designed as a language for requirements modelling. It combines a language for structuring objects, a first order logic language for expressing integrity constraints, a logic programming language for expressing deductions, and an interval-based representation of time for handling temporal knowledge. The object representation language describes the world in terms of classes and instances of those classes. An object may have attribute values for attributes defined in the classes of which it is an instance. Classes participate in an IsA (specialization) hierarchy with strict inheritance and multiple parents. Classes, their instances, and attribute relationships are all Telos propositions. Propositions are treated uniformly, and every proposition must be an instance of some other proposition. This leads to some interesting properties. First, classes themselves must be instances of other classes (called metaclasses). Secondly, attribute propositions are instances of classes which are themselves attribute propositions. This provides the link between the attribute description in a class and the assertion in an instance. For example, the link from John to 2 5 might be an attribute proposition that is an instance of the proposition linking Porson to Number with label age. This continues up into the metaclass level thereby enabling the definition of attribute categories. Thirdly, attribute propositions may themselves have attribute values. The second ingredient of Telos is a subset of first order logic that is used for stating integrity constraints. Integrity constraints are logical expressions that must be true at all times. An example might be that a person's birth date must follow her parents' birth dates by at least 10 years. Next there is a more restricted subset of logic for expressing deductions that can be made in the knowledge base. The deductive inference engine is reflective in the sense of [Smi82] and [Kra87]. Reflection provides the ability to control the inference process through the use of objects in the knowledge base. This will be discussed in more detail in the next session.