In this paper, we propose an approach for describing reusable problem-solving methods. We consider that the key to understand and to integrate existing methods is to unveil the assumptions about the knowledge used by the inferences. Assuming that inferences are operations over a particular ontology, we first define the knowledge roles used by the inferences, and then we define the inferences. Once the constitution of the method ontology is achieved, the declarative definition of the inferences is straightforward.
The method ontology serves as an interface for using the implemented shell. The basic idea is that before reusing a method, the developer will analyze the method ontology to check if the domain fits the structure of knowledge used by this method. This ontology constitutes a formal knowledge-level specification for problem-solving methods; it also facilitates the selection of a method from a library of PSMs.
To illustrate our approach, we started to model the problem-solving method Propose&Revise using the inference structure of the KADS methodology. The formal model is represented in Ontolingua and the implemented shell is codified in Loom. The method ontology described here establishes the minimal assumptions that must be known to reuse the method.
Here, we limit ourselves to modeling the inference knowledge of problem-solving methods. Presently, we are analyzing the possibility of configuring the method to different application domains by defining different control flows. The control flow corresponds to the task layer of the KADS methodology, which defines the order in which the inferences are executed. The configuration of different control flows will allow us to adapt an existing problem-solving method to slightly different systems and will provide the possibility of comparing of the performance of different control flows for the same method. Another problem not tackled by this paper concerns the whole process of indexing a library of PSMs. In the future, we will define more formally the selection of a PSM in such a way that a PSM can also be chosen according to its functionality and its control flow.