Knowledge Acquisition

Knowledge acquisition is a phase in the building of knowledge-based or expert systems. Knowledge-based systems are a kind of computer program that apply technical knowledge, or expertise, to PROBLEM SOLVING. Knowledge acquisition involves identifying the relevant technical knowledge, recording it, and getting it into computable form so it can be applied by the problem-solving engine of the expert system. Knowledge acquisition is the most expensive part of building and maintaining expert systems.

The area of expertise represented in the expert system is called the "domain." For example, a system that diagnoses malfunctioning VCRs and suggests remedies has VCR repair as its domain. An expert VCR repairman would be a "domain expert" for the system. The domain knowledge a developer, or "knowledge engineer," might acquire includes the types of problems VCRs exhibit, the symptoms a do-main expert would look for to figure out the underlying cause of the problem, and the types of repairs that could cure the problem.

One of the big challenges of knowledge acquisition is finding a source of EXPERTISE that can be harvested. Written manuals are typically incomplete and sometimes even misleading. Manuals may contain technical details not actually applied in solving the problem. At the same time, manuals often leave out crucial "tricks" that experts have discovered in the field. The best, most experienced domain experts are generally in high demand and do not have much time for system building. Furthermore, experts may perform very well but have difficulty describing what cues they are re-sponding to and what factors contribute to decisions they make. Very often multiple experts equally skilled in the same field disagree on how to do their job.

Another challenge addressed by approaches to knowledge acquisition is the maintenance of the knowledge. Especially in technical fields dealing with fast-changing product lines, domain knowledge may be extensive and dynamic. A VCR repair system may need to know technical details of the construction of every brand and make of VCR as well as likely failures. New knowledge will need to be added as new VCRs come on the market and technical innovations are incorporated into the products.

Most approaches to knowledge acquisition make the task manageable by identifying the problem-solving method that will be applied by the knowledge-based system. The problem-solving method then identifies what kinds of knowledge the developer should go after and organizes the knowledge so that it is easy to access for maintenance. (For more detail on using structure in knowledge acquisition and building expert systems, see Clancey 1983, 1985; Swartout 1983; Chandrasekaran 1983; Gruber and Cohen 1987; McDermott 1988; Steels 1990; Wielinga, Schreiber, and Breuker 1992.)

For example, in our VCR repair domain, we may decide that, based on symptoms the user describes, the system will classify VCR problems into categories that represent the most probable cause of the problem. The system will then choose a repair based on that suspected problem. What is "probable" will just be based on our domain experts' experience of what's worked in the past. If we use this problem-solving method, then the knowledge we need to acquire includes symptom-to-probable-cause associations and probable-cause-to-repair recommendations.

Alternatively, we may decide the system will diagnose the VCR by simulating failures of components on a schematic model until the simulated system shows readings that match the readings on the sick VCR. The system will then suggest replacing the failed components. If we use this problem-solving method, then the knowledge we need to acquire includes an internal model of a VCR identifying components, their dynamic behavior both when healthy and when sick, and their effect on the simulation readings.

A method-based approach to knowledge acquisition extends traditional software engineering for building expert systems (see, for example, Scott, Clayton, and Gibson 1991). During requirements analysis, while developers are figuring out what the system needs to do, they are also figuring out how it is going to do it. Developers interview do-main experts and check additional knowledge sources and manuals to see how the expert goes about problem-solving and what types of knowledge are available for application in a method. This information helps them select a method for the system. Establishing a method focuses further specifications and knowledge gathering; the method serves to organize the acquired knowledge into the roles the knowledge plays in the method. (See also Schreiber et al. 1994 for extensive organizational schemes.)

To assist in the knowledge acquisition process, researchers have developed automated tools (Davis 1982; Boose 1984; Musen et al. 1987; Gaines 1987; Marcus 1988). The earliest tools assumed a single problem-solving method and had a user interface dedicated to extracting the knowledge needed by that method. For example, a knowledge-acquisition tool for diagnostic tasks might query a user for symptoms, causes, and the strengths of association between symptoms and causes. Queries would be phrased in a general way so that they could be answered as easily with symptoms of malfunctioning VCRs as with symptoms of sick humans. Such tools might employ specialized interviewing techniques to help get at distinctions experts find difficult to verbalize. They might also analyze the knowledge for completeness and consistency, looking, for example, for symptoms that have no causes, causes without symptoms, or circular reasoning.

Once the domain knowledge is built up, such an interviewing tool is typically used with a "shell" for this kind of diagnosis. A shell is an empty problem-solving engine that knows, for example, what to do with symptoms, causes, and symptom-cause association weights to select a probable cause. Domain knowledge gathered by the interviewing tool is added to the problem-solving shell to produce a functioning expert system.

A further development has been the creation of layered tools that handle multiple problem-solving methods (Musen 1989; Eriksson et al. 1995; Klinker et al. 1990; Runkel and Birmingham 1993). These layered tools help the system-builder select a problem-solving method and then, based on that method, query for domain terms and knowledge, conduct completeness and consistency analyses, and integrate with an appropriate problem-solving shell.

The techniques described so far have mainly focused on interviewing a domain expert in order to encode their knowledge into the system. Knowledge acquisition for expert systems has also benefited from the related field of MACHINE LEARNING (Michalski and Chilausky 1980; Quinlan 1986; Bareiss, Porter, and Murray 1989; Preston, Edwards, and Compton 1994). Machine learning focuses on getting computer programs to learn autonomously from examples or from feedback to their own behavior. Machine learning techniques have been used most effectively to train expert systems that need to make distinctions such as the distinction between symptoms caused by immune- deficiency diseases versus cancers. The knowledge of the domain is acquired through the machine's experience with training cases rather than by directly encoding instructions from an interview. In domains where the cases and training are available, the knowledge acquisition effort can be quite efficient and effective.

Finally, knowledge acquisition challenges have inspired efforts to get the most mileage out of the knowledge that is so expensive to acquire (Lenat and Guha 1990; Gruber 1991). Many of the method-based acquisition tools represent knowledge in a way that is specific to how it is used by the method. A use-specific representation simplifies the job of getting the knowledge into computable form to match the problem-solving shell. However, knowledge that was ac-quired to design car electrical systems might also be useful in diagnosing their failures. A use-neutral representation makes it easier to reuse the same knowledge with multiple problem-solving methods provided a mechanism to transform or integrate the knowledge with particular problem-solvers. Large knowledge-base efforts focus on storing knowledge in a use-neutral way and making it available to many knowledge-based systems.

See also

Additional links

-- Sandra L. Marcus


Bareiss, R., B. W. Porter, and K. S. Murray. (1989). Supporting start-to-finish development of knowledge bases. Machine Learning 4:259-283.

Boose, J. (1984). Personal construct theory and the transfer of human expertise. In Proceedings of the Fourth National Conference on Artificial Intelligence. Austin, Texas.

Chandrasekaran, B. (1983). Towards a taxonomy of problem solving types. AI Magazine 4:9-17.

Clancey, W. (1983). The advantages of abstract control knowledge in expert system design. In Proceedings of the Third National Conference on Artificial Intelligence. Washington, D.C.

Clancey, W. (1985). Heuristic classification. Artificial Intelligence 27:289-350.

Davis, R. (1982). TEIRESIAS: Applications of meta-level knowledge. In R. Davis and D. Lenat, Eds., Knowledge-Based Systems in Artificial Intelligence. New York: McGraw-Hill.

Eriksson, H., Y. Shahar, S. W. Tu, A. R. Puerta, and M. A. Musen. Task modeling with reusable problem-solving methods. In International Journal of Expert Systems: Research and Applications 9.

Gaines, B. R. (1987). An overview of knowledge acquisition and transfer. International Journal of Man-Machine Studies. 26:453-472.

Gruber, T. R. (1991). The Role of Common Ontology in Achieving Sharable, Reusable Knowledge Bases. San Mateo, CA: Morgan Kaufmann.

Gruber, T. R., and P. Cohen. (1987). Design for acquisition: Principles of knowledge-system design to facilitate knowledge acquisition. International Journal of Man-Machine Studies 26:143-159.

Klinker, G., C. Bhola, G. Dallemagne, D. Marques, and J. McDermott. (1990). Usable and Reusable Programming Constructs. Fifth Banff Knowledge Acquisition for Knowledge-Based Systems Workshop. Banff, Alberta, Canada.

Lenat, D. B., and R. V. Guha. (1990). Building Large Knowledge-Based Systems. Reading, MA: Addison-Wesley.

Marcus, S., Ed. (1988). Automating Knowledge Acquisition for Expert Systems. Boston: Kluwer Academic.

McDermott, J. (1988). Preliminary steps toward a taxonomy of problem-solving methods. In S. Marcus, Ed., Automating Knowledge Acquisition for Expert Systems. Boston: Kluwer Academic.

Michalski, R. S., and R. L. Chilausky. (1980). Learning by being told and learning from examples: An experimental comparison of the two methods of knowledge acquisition in the context of developing an expert system for soybean disease diagnosis. Policy Analysis and Information Systems 4:125-160.

Musen, M. A. (1989). Knowledge acquisition at the metalevel: Creation of custom-tailored knowledge acquisition tools. In C. R. McGraw and K. L. McGraw, Eds., Special Issue of ACM SIGART Newsletter on Knowledge Acquisition, no. 108. April: 45-55.

Musen, M. A., L. M. Fagan, D. M. Combs, and E. H. Shortliffe. (1987). Using a domain model to drive an interactive knowledge editing tool. International Journal of Man-Machine Studies 26:105-121.

Preston, P., G. Edwards, and P. Compton. (1994). A 2000 rule expert system without knowledge engineers. In Proceedings of the 8th Banff Knowledge Acquisition for Knowledge-Based Systems Workshop. Banff, Alberta, Canada.

Quinlan, J. R. (1986). Induction of decision trees. Machine Learning, 1:81-106.

Runkel, J. T., and W. P. Birmingham. (1993). Knowledge acquisition in the small: Building knowledge-acquisition tools from pieces. In Knowledge Acquisition 5(2), 221-243.

Schreiber, A. T., B. J. Wielinga, R. de Hoog, H. Akkermans, and W. van de Velde. (1994). CommonKADS: A comprehensive methodology for KBS development. IEEE Expert, December: 28-37.

Scott, A. C., J. E. Clayton, and E. L. Gibson. (1991). A Practical Guide to Knowledge Acquisition. Reading, MA: Addison-Wesley.

Steels, L. (1990). Components of expertise. AI Magazine 11:28-49.

Swartout, W. (1983). XPLAIN: A system for creating and explaining expert consulting systems. Artificial Intelligence 21:285-325.

Wielinga, B. J., A. T. Schreiber, and A. J. Breuker. (1992). KADS: A modeling approach to knowledge engineering. Knowledge Acquisition 4:1-162.

Further Readings

Chandrasekaran, B. (1986). Generic tasks in knowledge-based reasoning: High-level building blocks for expert system design. IEEE Expert 1:23-29.

Quinlan, J. R., Ed. (1989). Applications of Expert Systems. London: Addison Wesley .