1 The New World of Mechanisms Angel R. Puerta, Samson W. Tu, and Mark A. Musen Medical Computer Science Group Knowledge Systems Laboratory Stanford University Stanford, CA 94305-5479, USA puerta@camis.stanford.edu ABSTRACT A goal of second-generation expert systems is to supply knowledge engineers with common frameworks to develop expert systems, thus, eliminating the need to build entirely new systems for each application. A mechanism is a unit of problem-solving knowledge from which such a framework can be developed. We define what a mechanism is and how it can be engineered to compose models of problem solving for expert systems. We also introduce PROTÉGÉ-II, an expert-system development environment based on mechanisms. Using PROTÉGÉ-II, knowledge engineers can implement all the elements of an expert system, from the problem-solving specifications, through the definition of knowledge-acquisition tools, to the editing of the domain knowledge in the knowledge base. The use of PROTÉGÉ-II is demonstrated with an example from the medical domain of AIDS therapy. Keywords: Artificial intelligence, expert systems, knowledge engineering, knowledge acquisition, problem-solving methods, generic tasks. 1. Second-Generation Expert Systems Research on knowledge-based systems during the 1970s resulted, during the following decade, in the first generation of commercially available expert systems. The construction of expert systems in this period concentrated on two implementational aspects of knowledge-based systems: (1) the representation of knowledge (e.g., as rules, frames, or semantic networks), and (2) the reasoning strategy of the inference engine. One of the crucial shortcomings of this generation of expert systems was the brittleness of the resulting implementations; that is, a system designed for a particular task could not be adapted easily to provide expertise for a different task. Consequently, researchers now developing the second generation of expert systems are examining how knowledge is used in an expert system, as opposed to how knowledge is implemented. One of the paradigms being studied is that of using models of problem solving, or problem-solving methods, as a foundation to build expert systems. Problem-solving methods determine how a task is to be solved, and can be applied to a class of tasks, thus partially overcoming brittleness. There are numerous examples of models of problem solving, and of knowledge-based systems implemented using those models. Skeletal-plan refinement [Friedland and Iwasaki, 1985] is a method that solves problems by elaborating a general (skeletal) solution plan, and by then recursively refining the general plan into more detailed plans until a final, fully detailed plan is produced. Heuristic classification [Clancey, 1985] is a method that determines solutions to given tasks by evaluating to which category the solution belongs. SALT [Marcus and McDermott, 1989]