Managing and Documenting the Knowledge Acquisition Process
Karen L. McGraw
As increasing numbers of knowledge-based systems are developed for operational use, the importance of effective knowledge acquisition becomes more evident. Knowledge acquisition, the process of eliciting and representing (i.e., in computers) expertise from domain experts into a system, consumes the single largest block of development time ( Feigenbaum, 1977; Hayes-Roth, Waterman, & Lenat, 1983; McGraw & Harbison-Briggs, 1989). To reduce the time required for this process, numerous tools have been developed that automate or systematize the elicitation and transfer of knowledge from expert to knowledge base. Among these advances are developments in machine learning that enable an expert system to acquire knowledge from "experience" ( Michalski, 1980; Michie, 1982); expert system shells that allow domain experts to write their own rules (e.g., MacSMARTS, NEXPERT); and knowledge engineering tools that assist the knowledge engineer (e.g., McGraw & Harbison-Briggs, 1989, chap. 10).
The process of eliciting knowledge during the development of operational knowledgebased systems also often requires that developers apply a method and/or facility for tracking and documenting the information. It is expected that knowledge engineers could benefit from a tool that would enable them to not only acquire and manage knowledge acquisition sessions but also to develop a knowledge document that reflects domain experts' definitions of major concepts, acronyms, and vocabulary. This information can be valuable to current system development and evaluation efforts. After it is acquired and organized, the knowledge document can be made available to groups that are developing systems in similar domain areas.
This chapter describes an easy-to-use, standalone tool that can be used to manage the knowledge acquisition process. As designed, the tool provides vital program documentation, enables knowledge base traceability, and includes embedded instruction in knowledge acquisition techniques.
To develop effective knowledge-based systems, practitioners must use methods and techniques that will help ensure that the system is well organized, consistent with an expert's reasoning, and reasonably complete. Early efforts in knowledge engineering were modeled on small-scale projects in which the domain expert and a single developer interacted to build the final project ( Hayes-Roth, Waterman, & Lenat, 1983). The project size allowed developers to approach the task informally and select knowledge acquisition techniques in an ad hoc manner. Early methods for knowledge engineering were often based on the five-step cycle of identification, conceptualization, formalization, implementation, and testing ( Hayes-Roth, Waterman, & Lenat, 1983). As