The following points highlight the five main stages to develop an expert system.The stages are: 1. Identification 2. Conceptualisation 3. Formalisation (Designing) 4. Implementation 5. Testing (Validation, Verification and Maintenance).

A knowledge engineer is an AI specialist, perhaps a computer scientist or programmer, who is skilled in the ‘Art’ of developing expert systems, unlike other engineering disciplines, there are no generally accepted criteria to determine exactly who is knowledge engineer; the field is much too new. You don’t need a degree in “knowledge engineering” to call yourself a knowledge engineer; infact, nearly everyone who has ever contributed to the technical side of the expert system development process could be considered a knowledge engineer.

A domain expert is an individual who has significant expertise in the domain of the expert system being developed. It is not critical that the domain expert understand AI or expert systems; that is one of the functions of the knowledge engineer.

The knowledge engineer and the domain expert usually work very closely together for long periods of time throughout the several stages of the development process.

ADVERTISEMENTS:

An expert system is developed and refined over a period of several years since it is typically a computer-based soft ware. Fig. 12.8 divides the process of expert system development into five distinct stages since an expert system is typically a computer based system.

In practice, it may not be possible to break down the expert system development cycle precisely. However, an examination of these five stages may serve to provide us with some insight into the ways in which expert systems are developed.

Stage # 1. Identification:

Before we can begin to develop an expert system, it is important to describe, with as much precision as possible, the problem which the system is intended to solve. It is not enough simply to feel that an expert system would be helpful in a certain situation; we must determine the exact nature of the problem and state the precise goals which indicate exactly how the expert system is expected to contribute to the solution.

ADVERTISEMENTS:

To begin, the knowledge engineer, who may be unfamiliar with this particular domain, consults manuals and training guides to gain some familiarity with the subject. Then the domain expert describes several typical problem states. The knowledge engineer attempts to extract fundamental concepts from the similar cases in order to develop a more general idea of the purpose of the expert system.

After the domain expert describes several cases, the knowledge engineer develops a ‘first-pass’ problem description. Typically, the domain expert may feel that the description does not entirely represent the problem. The domain expert then suggests changes to the description and provides the knowledge engineer with additional examples to illustrate further the problem’s fine points.

Next, the knowledge engineer revises the description, and the domain expert suggests further changes. This process is repeated until the domain expert is satisfied that the knowledge engineer understands the problems and until both are satisfied that the description adequately portrays the problem which the expert system is expected to solve.

This ‘iterative’ procedure (Fig. 12.9) is typical of the entire expert-system development process. The results are evaluated at each stage of the process and compared to the expectations. If the results do not meet the expectations, adjustments are made to that stage of the process, and the new results are evaluated. The process continues until satisfactory results are achieved.

 

It is also important to identify our resources. Who is to participate in the development process? Does a single domain expert possess all the necessary expertise, or is the domain knowledge distributed over several people in an organisation? Can a single knowledge engineer develop the system in a timely fashion, or is it necessary to provide additional technical assistance?

Domain experts are not the only resources which must be identified. It is unusual for all domain knowledge to be embodied in human experts; therefore, more tangible sources of information, such as reference books and manuals, are usually identical and located.

Stage # 2. Conceptualisation:

Once it has been identified for the problem an expert system is to solve, the next stage involves analysing the problem further to ensure that its specifics, as well as generalities, are understood.

In the conceptualisation stage, the knowledge engineer frequently creates a diagram of the problem to depict graphically the relationships between the objects and processes in the problem domain. It is often helpful at this stage to divide the problem into a series of sub-problems and to diagram both the relationships among the pieces of each sub-problem and the relationships among the various sub-problems.

ADVERTISEMENTS:

As in the identification stage, the conceptualisation stage involves a circular procedure of iteration and reiteration between the knowledge engineer and the domain expert. When both agree that the key concepts-and the relationships among them-have been adequately conceptualised, this stage is complete.

Not only is each stage in the expert system development process circular, the relationships among the stages may be circular as well. Since each stage of the development process adds a level of detail to the previous stage, any stage may expose a weakness in a previous stage.

For example, a problem with the description generated in the identification stage may be discovered during conceptualisation. A key element of the description may have been omitted, or perhaps a goal was stated incorrectly. If this occurs, a brief return to the identification stage is required to increase the accuracy of the description (Fig. 12.10). A similar process can occur in any stage of development.

Stage # 3. Formalisation (Designing):

In the preceding stages, no effort has been made to relate the domain problem to the artificial intelligence technology which may solve it. During the identification and formalization stages, the focus is entirely on understanding the problem. Now, during the formalization stage, the problem is connected to its proposed solution, an expert system is supplied by analyzing the relationships depicted in the conceptualization stage. The knowledge engineer begins to select the techniques which are appropriate for developing this particular expert system.

ADVERTISEMENTS:

During formalization, it is important that the knowledge engineer be familiar with the following:

1. The various techniques of knowledge representation and intelligent search techniques used in expert systems.

2. The expert system tools which can greatly expedite the development process.

3. Other expert systems which may solve similar problems and thus may be adaptable to problem at hand.

Often it is desirable to select a single development technique or tool which can be used throughout all segments of the expert system. However, the knowledge engineer may determine that no particular technique is appropriate for the entire expert system, making it necessary to use different techniques for different sub-problems. Once it has been determined which technique(s) will be used the knowledge engineer starts to develop a formal specification which can used to develop a prototype expert system.

In the case of a rule-based system, for example, the knowledge engineer develops a set of rules designed to represent the knowledge communicated by the domain expert. This is a critical part of the development process, requiring, great skill on the part-of the knowledge engineer. Many domain experts can explain what they do but not why; therefore, one of the knowledge engineer’s primary responsibilities is to analyse example situations and filter in from those examples a set of rules which describe the domain expert’s knowledge.

The formalisation process is often the most interactive stage of expert system development, as well as the most time consuming. The knowledge engineer must develop a set of rules and ask the domain expert if those rules adequately represent the expert’s knowledge. The domain expert reviews the rules proposed by the knowledge engineer and suggests changes, which are then incorporated into the knowledge base by the knowledge engineer.

As in the other development stages, this process also is iterative: the rule review is repeated and the rules are refined continually until the results are satisfactory. It is not unusual for the formalisation process of a complex expert system to last for several years. (Fig. 12.10)

Stage # 4. Implementation:

During the implementation stage the formalised concepts are programmed into the computer which has been chosen for system development, using the predetermined techniques and tools to implement a ‘first-pass’ (prototype) of the expert system.

Theoretically, if the methods of the previous stages have been followed with diligence and care, the implementation of the prototype should proceed smoothly. In practice, the development of an expert system may be as much an art as it is a science, because following all the rules does not guarantee that the system will work the first time it is implemented. In fact, experience suggests the opposite. Many scientists actually consider the prototype to be a ‘throw-away’ system, useful for evaluating progress but hardly a usable expert system.

If the prototype works at all, the knowledge engineer may be able to determine if the techniques chosen to implement the expert system were the appropriate ones. On the other hand, the knowledge engineer may discover that the chosen techniques simply cannot be implemented. It may not be possible, for example, to integrate the knowledge representation techniques selected for different sub-problems. At that point, the concepts may have to be re-formalised, or it even may be necessary to create new development tools to implement the system efficiently. The implementation stage is illustrated in Fig. 12.11.

Once the prototype system has been refined sufficiently to allow it to be executed, the expert system is ready to be tested thoroughly to ensure that it expertise’s correctly.

Stage # 5. Testing (Validation, Verification and Maintenance):

The chance of prototype expert system executing flawlessly the first time it is tested are so slim as to be virtually non-existent. A knowledge engineer does not expect the testing process to verify that the system has been constructed entirely correctly. Rather, testing provides an opportunity to identify the weaknesses in the structure and implementation of the system and to make the appropriate corrections.

Depending on the types of problems encountered, the testing procedure may indicate that the system was implemented incorrectly, or perhaps that the rules were implemented correctly but were poorly or incompletely formulated. Results from the tests are used as ‘feedback’ to return to a previous stage and adjust the performance of the system.

Once the system has proven to be capable of correctly solving straight-forward problems, the domain expert suggests complex problems which typically would require a great deal of human expertise. These more demanding tests should uncover more serious flaws and provide ample opportunity to ‘fine tune’ the system even further.

Ultimately, an expert system is judged to be entirely successful only when it operates at the level of a human expert. The testing process is not complete until it indicates that the solutions suggested by the expert system are consistently as valid as those provided by a human domain expert.

How does an Expert System look like?

The ultimate test of an expert system is how well it performs, not in a development laboratory, but in ‘real life’ situations. A completed system not only must demonstrate consistently that it can deliver the required expertise, but it also must be easy to use so that the embedded expertise can be extracted easily. Therefore, developers have gone to the extent that expert systems are among the easiest to use of all sophisticated computer programs.

Expert systems typically are interactive; that is, we use a question-and-answer technique to communicate with them. Generally, we access an expert system by sitting at a computer terminal. We type the description of our problem on the computer keyboard, and the expert system displays questions or selections lists on the screen to prompt us to enter additional information. The ‘give-and-take’ between us and the computer continues until the system is able to reach a conclusion which is displayed on the screen.