The structure of our formal KL-framework is organized according to the following three principles. There is a set of primitives elements, called KL-components [Steels 90], out of which all formal KL-models are constructed. There are several means of composition, configuration rules, which allow establishing different types of relationships between KL-components. Finally, there are various means of abstraction, KL-structures, which allow viewing compositions of KL-components and/or KL-structures as abstract units, which hide their complexity. There are basically two different types of KL-components: models and methods. A model is a declarative abstraction from certain aspects of reality. It identifies objects, relationships, properties and attributes of the objects, relationships between objects and properties of objects, and so on. A special class of models are the ontologies which define and constrain the vocabularies that can be used in other models. A method is a procedural specification of how a task gets accomplished. We distinguish between two types of methods: task decomposition methods and resolution methods. Task decomposition methods specify how a task is achieved through the execution of a set of subtasks, and regulate the data and control flows between subtasks. Resolution methods specify how a task without further subtasks gets accomplished. Resolution methods consult, generate or modify models in order to carry out a task. A particular class of resolution methods are lift definitions, which translate between languages and representation formalisms used in different models. Two types of KL-structures can be constructed within our formal KL-framework: instantiated resolution and decomposition methods. An instantiated resolution method applies the generic inference capability of a resolution method to the specific contents of some models in order to carry out a particular task. An instantiated decomposition method uses the generic task decomposition capability of a decomposition method to combine the activities of a set of instantiated methods in order to carry out a particular composite task. The formal KL-model of an agent is a KL-structure that integrates the different KL-structures and KL-components responsible for its various functionalities.
An Application Kit (Appkit) [Steels 92a] is a program that exploits the componential structure of a formal KL-framework to automatically generate the conceptual and operational components of agent from its formal KL-model. We shall not describe the components, internal structure and functioning of an Appkit here, see [Sierra 96] for a detailed description.
The language used to describe our formal KL-framework is [van Harmelen and Balder 92], a logical language for the specification of KADS [Wielinga, Schreiber, and Breuker 92] models of expertise, which includes order-sorted first order logic [Walther 87], meta-logic [Tarsky 36] [van Harmelen 91] and quantified dynamic logic [Harel 84]. The definition of the formal KL-framework [Sierra 96] is done incrementally. First, the logical constructions that should be used to describe the different types of KL-components are defined. Then, the composition rules that allow building up KL-structures from KL-components and/or other KL-structures are established.