Next: Exam-like questions Up: Designing an Expert Previous: Choosing a Problem

Knowledge Engineering

Having decided that your problem is suitable you need to extract the knowledge from the expert and represent it using your expert system shell. This is the job of the knowledge engineer, but involves close collaboration with the expert(s) and the end user(s).

The knowledge engineer is the AI language and representation expert. He/she should be able to select a suitable expert system shell (and other tools) for the project, extract the knowledge from the expert, and implement the knowledge in a correct and efficient knowledge base. The knowledge engineer may initially have no knowledge of the application domain.

To extract knowledge from the expert the knowledge engineer must first become at least somewhat familiar with the problem domain, maybe by reading introductory texts or talking to the expert. After this, more systematic interviewing of the expert begins. Typically experts are set a series of example problems, and will explain aloud their reasoning in solving the problem. The knowledge engineer will abstract general rules from these explanations, and check them with the expert.

As in most applications, the system is wasted if the user is not happy with it, so development must involve close collaboration with potential users. As mentioned in the introduction, the basic development cycle should involve the rapid development of an initial prototype and iterative testing and modification of that prototype with both experts (to check the validity of the rules) and users (to check that they can provide the necessary information, are satisfied with the systems performance and explanations, and that it actually makes their life easier rather than harder!).

In order to develop the initial prototype the knowledge engineer must make provisional decisions about appropriate knowledge representation and inference methods (e.g., rules, or rules+frames; forward chaining or backward chaining). To test these basic design decisions, the first prototype may only solve a small part of the overall problem. If the methods used seem to work well for that small part it's worth investing the effort in representing the rest of the knowledge in the same form.

Expert system development was very trendy around 5-10 years ago, with unrealistic expectations about the potential benefits. Now some cynicism has set in. Expert system shells are in fairly wide use, but are often used to solve fairly simple problems, and are chosen as much for their user interface and development environments as for their inferential abilities.



Next: Exam-like questions Up: Designing an Expert Previous: Choosing a Problem


alison@
Fri Aug 19 10:42:17 BST 1994