Many approaches in knowledge engineering cope with the problem of constructing a library of reusable problem-solving methods (PSMs) [Chandrasekaran, 1983,Clancey, 1985,Steels, 1990,Musen et al., 1994,Breuker and Van de Velde, 1994]. Here, we consider ``problem-solving methods'' in the sense defined by McDermott [McDermott, 1988], in which a PSM is a strong method with a constrained control structure. These methods are called role limiting methods because their force is in defining precisely the roles played by the knowledge in the solution of the problem. One advantage of identifying the knowledge roles is to provide more guidance in the knowledge acquisition process, because only the necessary knowledge is acquired. Another advantage is that the knowledge roles serve as placeholders for different domains. For example, Cover&Differentiate [Eshelman, 1988] is a method for solving a diagnostic task, where the knowledge roles are identified by ``symptoms'' and ``disorders''. These roles can be fulfilled by different domains such as medical or electronic domains.
However, the description of existing problem-solving methods are either at an abstract level or at an implementation level. These two levels of description do not unveil the actual structure of the knowledge roles, thus limiting the comprehension and reusability of the methods. Mole [Eshelman, 1988], for example, is a knowledge-acquisition tool that generates Cover&Differentiate systems. One problem with Mole is that it reveals the organization of knowledge used by the method only by an informal description or by the implemented code.
Current research is raising the question of making explicit the assumptions underlying the structure of the knowledge used by a method [Fensel, 1995,Benjamins and Pierret-Golbreich, 1996]. Similarly, we use the perspective that a problem-solving method is a set of operations over a particular structure of knowledge, and that we must clarify this structure to understand and reuse the method. The structure of knowledge is defined in terms of the knowledge roles and their relations, and the operations are defined in terms of inferences.
In this paper, we propose an approach for specifying reusable problem-solving methods that first describes the knowledge roles, and then, describes the inferences. In this respect, we agree with Aben [Aben, 1995], who considers that inferences operates over an ontology, and consequently, the ontology should be defined first. To define the knowledge roles, we construct a method ontology [Musen et al., 1994], which represents formally the knowledge in terms of concepts and relations between them. To define the operations over the knowledge roles, we define the inferences, which refer to the ontology previously defined.
The method ontology clarifies the assumptions about the knowledge used by a method. In addition, it serves as a formal specification of the method, and can contribute to its reutilization in different domains. The inferences are defined declaratively and abstracted from the implementation details.
We use the inference structure of KADS as a starting point for describing a problem-solving method. To formalize the ontology of roles we use Ontolingua [Gruber, 1993b]. As Ontolingua does not represent control knowledge, we propose an extension of Ontolingua to define the inferences. The approach is illustrated with the method Propose&Revise [Marcus, 1988] applied to the VT task [Yost, 1994], which configures an elevator system.
Our goal is to construct a library of implemented and reusable PSMs, in which the method ontology serves as an interface for using existent methods. Thus, before selecting a PSM shell, a knowledge engineer will verify if the new application domain matches the method ontology.
We can make an analogy with conventional programming by comparing the method ontology with the formal parameter definitions in the head of functions. The difference is that the ontology permits more powerful and expressive definitions. Up to now, we have developed shells in Loom [Brill, 1993] for Cover&Differentiate and for Propose&Revise.
The paper is organized in six sections. In the next section we present the KADS conceptual model, whose inference structure is used as the starting point for the description of PSMs. In the third section we present the architecture of our approach. The fourth section presents the formalization of the method ontology for Propose&Revise. In the fifth section, we relate our work with similar researches. Section six presents the conclusion of the paper with perspectives for future work.