|
Abstract : |
In this paper, we characterize the relationship between abstract problem-solving methods and the domain-oriented knowledge bases that they use. We argue that, to reuse methods and knowledge bases, we must isolate, as much as possible, method knowledge from domain knowledge. To connect methods and domains, we define declarative mapping relations, and enumerate the classes of mappings. We illustrate our approach to reuse with the PROTG-II architecture and a pair of configuration tasks. Our goal is to show that the use of mapping relations leads to reuse with high payoff of saved effort. 1. Reuse for Knowledge-Based Systems Software construction is easily the most expensive step in the application of information technology to a task. Because of this cost, software construction often lags far behind hardware availability. The ideas of software reuse were developed in response to this dilemma: Software development costs would be greatly reduced if programmers could easily reuse components of preexisting programs. One problem with this approach is that every instance of software reuse has an overhead cost: the time spent understanding old code and adapting it to the new problem. For software reuse to be cost effective, this overhead cost must be less than the cost of building new code from scratch. Developers of early knowledge-based systems expected that their systems would be ideally suited for reuse (Hayes-Roth, Waterman, & Lenat, 1983). These systems consisted of two parts: a knowledge base containing rules about the problem domain and an inference engine that used the knowledge base to provide solutions. The hope was that this approach could be applied to a variety of different domain tasks. Unfortunately, the overhead cost of constructing knowledge bases for new domains was often too high: The knowledge-acquisition ?bottleneck ? problem arose because it is difficult to describe and encode domain knowledge in the low-level terms required by the inference engine. 1, |