System Development
First Step: Problem Selection
The first step is selecting the "right problem."
- pick a problem in which you are already familiar
with the domain.
- pick a problem that is causing a large number
of people, a fair amount of grief.
- select a "doable" problem as the first
expert system project.
- get an expert who is willing to work with you.
- have a backup expert.
- find out from the expert what is the expected
accuracy rate of the prototype.
- do not overpromise.
- use the rapid prototyping, iterative approach:
build a little, test a little.
The next step in the knowledge engineering process
is knowledge acquisition.
Second Step: Knowledge Acquisition
- before interviewing the expert, make sure that
you are familiar/comfortable with the domain.
- the first session with the expert should be an
introductory lecture on the task at hand
- have a systematic approach to acquiring knowledge.
- incorporate the input and feedback from the expert
into the expert system.
- pick up manuals and documentation on the subject matter.
- tape the knowledge acquisition sessions, if the
expert allows.
Third Step: Knowledge Representation
This
involves representing the knowledge in the knowledge base as rules,
frames, scripts, semantic networks, or some hybrid.
- try to use the representation method which most
closely resembles the way the expert is thinking and expressing
his/her knowledge.
- consider whether uncertainty should play a part
in your system.
- consider if the expert reasons in a data-driven
manner or a goal-directed manner, or both.
Fourth Step: Knowledge Encoding
- remember the motto, "For every shell there
is a perfect task, but for every task there is not a perfect shell":
remember to first determine the requirements of the task, instead
of force-fitting a shell to a task.
- try to develop the knowledge base in a modular
format for ease of updating.
- you need an appropriate and adequate user interface,
but concentrate on the knowledge base.
- use an incremental, iterative approach to developing
your expert system prototype.
Fifth Step: Knowledge Testing and Evaluation
- for verification and validation of the expert
system prototype: check for consistency of the knowledge/logic
have a representative set of test cases (hard and soft cases and
special subcases) perform backcasting: run the expert system
against documented cases and compare the results with historical
results use blind verification tests have the expert and other
experts test the system.
- for evaluation of the expert system prototype:
have users evaluate the human factors design of the system (i.e.,
instructions, free-text comments, ease of updating, exiting capabilities,
response time, display and presentation of conclusions, ability
to restart, ability for user to offer degree of certainty, graphics,
ability to back up to a previous question, etc.).
Sixth Step: Implementation and Maintenance
- train the users on how to use the system.
- deliver good documentation on the system.
- assign a person or group to maintain the system.
- instruct the maintenance team on how to maintain
the system/use the shell.
- don't forget to consider the cost of a runtime
license so that multiple copies of the expert system could be
used throughout the organization.
Reference
- D. A. Waterman, 'A Guide to Expert Systems', Addison-Wesley, 1986.