KADS is a methodology for constructing knowledge-based systems based on two main principles: (1) the knowledge level principle [Newell, 1982], which claims an implementation-independent description of the system; and (2) the separation of knowledge principle [Clancey, 1992], which establishes that the domain knowledge must be represented separately from control knowledge.
Domain knowledge is the set of concepts and their relations that corresponds to the conceptualization of a specific domain. Control knowledge is the set of operations over the domain knowledge to accomplish a task. The KADS conceptual model (showed in Figure 1) further distinguishes control knowledge in two categories: inference knowledge and task knowledge. Inference knowledge specifies the primitive inferences that constitute a problem-solving method, and also defines the roles played by the domain knowledge in the inference process. The task knowledge specifies the ordering of the basic inference steps, that is, how the primitive inferences can be combined to complete a task.
Figure 1: The KADS framework. The domain layer must be represented independently from its use. In the inference layer, the primitive inferences with the associated knowledge roles are defined. The task layer determines the sequence of execution of the inferences in terms of conditional statements and iterations.
Here, we use the KADS conceptual model as a starting point to model reusable problem-solving methods, and we concentrate on the inference knowledge. In the next section, we present the inference structure of the inference layer, but we emphasize the limitations of this description in making explicit the assumptions about the knowledge used by the method. Then, we present the inference structure for the problem-solving method Propose&Revise, which is the starting point for the definition of the method ontology.