The term ``ontology'' in knowledge engineering is related to knowledge bases (or logical theories) with the purpose of expressing shared (or sharable) knowledge bases. The term comes from philosophy, where Ontology is a discipline that deals with the nature and organization of reality [Guarino, 1995].
Recent research in knowledge engineering [Neches et al., 1991] is exploring the problem of representing ontologies that are independent of the application programs. Consequently, large bodies of knowledge can be used for different purposes. Thus, instead of creating knowledge bases from scratch, which is time-consuming, difficult and expensive, a knowledge engineer can build a new system from existent ontologies. The ontologies are represented according to the knowledge level, which eases their comprehension and portability to different implemented systems.
Figure 4: Our approach for reusing implemented problem-solving methods. Reusable problem-solving method shells are described via a method ontology. To use an existent shell, a knowledge engineer has to analyze if the application domain fits the knowledge roles of the method. If so, the knowledge engineer must rearrange the application domain to conform to the knowledge roles using mapping operations.
Our work adopts another orientation. We want to define ontologies that are specific for problem-solving methods. We call these specific ontologies method ontologies, as in Protégé-II approach [Musen et al., 1994], because they express the structure of the knowledge roles used by a PSM. Moreover, the method ontology allows a declarative definition of the inferences. Our goal is to make explicit the ontological commitments of the method [Gruber, 1993a], without specifying the computational realization of the inferences.
The basic idea of our approach is illustrated in Figure 4. The library of PSMs provides implemented shells whose interface is the method ontology. Each method ontology uncovers the underlying organization and assumptions about the knowledge used by the inferences of the PSM. The method ontology has the purpose of being an interface for using the corresponding shell, which is implemented in Loom [Brill, 1993]. Presently, we have developed shells for the methods Cover&Differentiate and for Propose&Revise.
Different domains may fulfill the knowledge roles of the PSM, if the domain knowledge can be adapted to the structure of the knowledge roles. Recent works in knowledge engineering emphasize the importance of the mapping among ontologies [Gennari et al., 1993]. In a previous work [Coelho et al., 1996], we defined a set of mapping operators that can be offered to a knowledge engineer to adapt the application domain to an existent PSM. When it is impossible to establish a mapping, the method will be rejected. However, this analysis will provide guidelines to look for another method or even to construct a new one.