Expert Systems
Chapter 8
Other Resources
http://www.cee.hw.ac.uk/~alison/ai3notes/chapter2_5.html
Handout at ECE Office
Overall Architecture
Working Memory
Knowledge
Base
Inference
Engine
I
n
t
e
r
f
a
c
e
Terminology
Knowledge Engineering: The discipline of acquiring,
encoding and using human domain knowledge to develop a
computer application
Expert System: A computer program that uses domain
knowledge to perform a specific task usually human
experts perform
Knowledge Base: A set of rules and facts describing the
domain of an application
Inference Engine: A program that imposes a general
control strategy on how the system is working
Working Memory: A set of facts describing a particular
consultation
Interface: A program that links the user with the Expert
System
Knowledge Base
Models domain knowledge usually in the form of rules,
frames, or semantic nets
Probabilistic models and fuzzy models can be used to
model uncertainty
A typical Expert System has several hundred rules
A Knowledge base can become very complex and its has
to be consistent at all times
Knowledge acquisition tools can be used to build and
maintain a Knowledge Base
Rules
IF the infection is pimary-bacteremia
AND the site of the culture is one of the sterile sites
AND the suspected portal of entry is the gastrointestinal
tract
THEN there is suggestive evidence (0.7) that infection is
bacteroid.
Semantic Networks
isa
has-part
isa
Ocean
Liner
has-part
Swimming
Pool
Oil
Tanker
isa
Queen
Mary
has-part
Ship
isa
Liverpool
Engine
Hull
has-part
Boiler
Frames
Progress Report
Author: John Allen (default)
Topic:
Due Date:
Length: 2 pages (default)
If-added
If-removed
isa
Author: Mary Smith
Topic: Biological Classification
Project
Due Date: Sept. 30, 2000
Length:40 pages
If-needed
Inference Engine
Considering that the Knowledge Base encodes domain
knowledge and expertise in terms of rules and facts there
are three variations for the inference engine:
Forward Chaining or Data Driven (essentially Modus Ponens)
Backward Chaining or Hypothesis Driven
Mixed (i.e. Forward and Backward Chaining combined)
Choosing a Problem
The need for a solution must justify the costs involved in development. There
must be a realistic assessment of the costs and benefits involved.
Human expertise is not available in all situations where it is needed. If the
``expert'' knowledge is widely available it is unlikely that it will be worth
developing an expert system.
The problem may be solved using symbolic reasoning techniques. It shouldn't
require manual dexterity or physical skill.
The problem is well structured and does not require (much) common sense
knowledge. Common sense knowledge is notoriously hard to capture and
represent. It turns out that highly technical fields are easier to deal with, and
tend to involve relatively small amounts of well formalised knowledge.
The problem cannot be easily solved using more traditional computing
methods. If there's a good algorithmic solution to a problem, you don't want to
use an expert system.
Cooperative and articulate experts exist. For an expert system project to be
successful it is essential that the experts are willing to help, and don't feel that
their job is threatened! You also need any management and potential users to
be involved and have positive attitudes to the whole thing.
.The problem is of proper size and scope. Typically you need problems that
require highly specialized expertise, but would only take a human expert a
short time to solve (say an hour, max).
10
11