Knowledge of a domain takes many forms. When the knowledge is firm and formalized, algorithmic computer programs that solve problems in the domain are more appropriate than heuristic ones. Knowledge is rarely formulated in a fashion that permits simple translation into a program. The process of extracting knowledge from an expert and translating it to a program is termed knowledge acquisition. An expert system should have transparency. These mean that the system is understandable, both to the system developer and the system user. Another characteristic of exert system is performance. Performance depends on the quantity and quality of the knowledge incorporated into the program. Expert Systems must acquire highly detailed and refined domain specific knowledge.
1.
The Knowledge acquisition process
Knowledge acquisition is the transfer and translation of problem solving experience from some knowledge source to a program. Source of knowledge source include, human experts, textbooks, databases and one’s own experience.
1.1 Modes of knowledge acquisition
The Knowledge engineer’s job is to act as a go-between to help an expert build a system. Some problems include the communication between the expert and the knowledge engineer, since the knowledge of the knowledge engineer of the domain is far less than the expert. The vocabulary used by the expert to talk about the domain is often inadequate for problem solving.
2.
Major stages of knowledge acquisition.
2.1 Identification stage
The first step in acquiring knowledge for an expert system is to characterize the important aspect of the problem. This involves identifying the participants, problem characteristics, resources, and goals.
2.1.1 Participants identification and roles
Before we begin the knowledge-acquisition, we must select the participants and their roles. Usually is interaction between a single domain expert and a single knowledge engineer. The knowledge-acquisition process can also include other participants. They may be multiple domain experts, and multiple knowledge engineers.
2.1.2 Problem Identification
After we have chosen the knowledge engineer and the domain expert, they can proceed toward identifying the problem under consideration. This involves an informal exchange of views on various aspects of the problem, its definition, characteristics, and sub problems. The objective is to characterize the problem and its supporting knowledge structure so that the development of the knowledge base may begin.
For problem identification it’s important to answer the following questions:
· What class of problems will the expert system be expected to solve?
· How can these problems be characterized or defined?
· What important sub problems and partitions of tasks?
· What are the data?
· What are important terms and their interrelations?
· What does a solution look like and what concepts are used in it?
· What aspects of human expertise are essential in solving these problems?
· What is the nature and extent or “relevant knowledge” that underlies the human solution?
· What situations are likely to impede solutions?
2.1.3 Resource identification
Resources are needed for acquiring the knowledge, implementing the system, and testing it. Typical resources are knowledge sources, time, computing facilities, and money.
For the domain expert: past problem solving experience, textbooks, and examples.
For the knowledge engineer: representation, and tools for building expert systems.
2.1.4 Goals Identification
Most likely the domain expert will identify the goals or objectives of building the expert system in the course of identifying the problem. It is helpful, to separate the goals from the specific tasks of the problem, since they constitute additional constrains that can be useful in characterizing the desirability or feasibility of certain approaches.
2.2 Conceptualization stage
The key concepts and relations, are already mentioned during the identification stage, and are made explicit during the conceptualization stage. It may be useful that the knowledge engineer can diagram those concepts and relations. The following questions need to be answered before proceeding with the conceptualization process.
2.3 Formalization stage
The formalization process involves mapping the key concepts, sub problems, and information flow characteristics isolated during conceptualization into more formal representations based on various knowledge engineering tools or frameworks. The knowledge engineer now takes a more active role, telling the domain expert about the existing tools representations, and problem types that seem to match the problem at hand. If, as a result of informal experimentation with a preliminary prototype, the knowledge engineer believes there is a close fit to an exiting tool or framework, the two may proceed directly to fill in the requirements of the framework. The output of this stage is a set of partial specifications describing how the problem can be represented within the chosen tool or framework.
2.4 Implementation stage
Implementation involves mapping the formalized knowledge from the previous stage into the representational framework associated with the tool chosen for the problem. As the knowledge in this framework is made consistent and compatible and organized to define a particular control and information flow, it becomes an executable program. The knowledge engineer evolves a useful representation for the knowledge and uses it to develop a prototype expert system. The prototype knowledge base is implemented by using whatever knowledge-engineering aids are available for the representation (editors, intelligent editors, or acquisition programs). When existing aids are inadequate, the knowledge engineer must develop new ones.
2.5 Testing stage
The testing stage involves evaluating the prototype system and the representation forms used to implement it. Once the prototype system runs from start to finish on two or three examples, it should be tested with a variety of examples to determine weakness in the knowledge base and inference structure. The elements that usually found to cause poor performance because of faulty adjustments are: Input/Output characteristics, inference rules, control strategies, and test examples.
2.6 Prototype stage
In the course of building an expert system, there is almost constant revision, which may involve reformation of concepts, redesign of representations, or refinement of the implemented system. Refinement of the prototype normally involves recycling through the implementation and testing stages in order to tune or adjust the rules and their control structures until the expected behavior is obtained.