|
Current Article: Expert Rule Based Systems
Expert systems (ES) are computer systems which can be used to capture
human expertise to solve practical problems. Since their commercial
introduction in the early 1980s, they have undergone tremendous
growth, representing the most successful application of artificial
intelligence technology. Today, they are used in business, science,
engineering, and manufacturing, to name just a few areas.
You may be asking, "If expert systems are used so often, then why
haven't I seen more applications that say they include them?" To be
honest, much early work in artificial intelligence (AI) promised
somewhat more than it delivered, and expert systems have been tarred
with the same brush. Firstly, this is being a bit unfair to AI, as its
initial promise stemmed mostly from researchers' enthusiasm coupled
with ignorance of what underlies intelligent behavior, rather than any
intent to deceive. Secondly, from its inception, expert systems have
had very constrained goals which have been more-or-less completely
achieved — they are a successful AI technology.
The genesis of expert systems lies in the attempt to use logic to
model human reasoning. Programs can be constructed of logic sentences
such as (translated to English): "If it is January in Seattle then it
is raining." While there are many things that one can learn about
reasoning by the attempt to use logic as its model, two are especially
relevant here:
- Most sentences tend to be either simple, declaratory statements
that something is true (facts) or conditional assertions that
something is true if some other things are known to be true
(rules).
- Logic (more precisely, "first order logic")
doesn't work so well as a model for human thought because it is
monotonic: the list of things considered true
(asserted) can never shrink. So, for example, we could never
retract our above conclusion that it is raining, even if we
learn that the weather is unusual this year.
This eventually led to the development of systems which used much of
the "machinery" of logic, supplemented with the ability to retract
previous assertions and more traditional programming language
constructs. Starting with special-purpose, one-off systems, tools were
eventually made which separated the general-purpose expert system
machinery from the application-specific knowledge.
Fundamentally, all expert systems have the following components:
- a knowledge base (KB), which encodes rules and facts
about the application,
- a working memory to hold facts inferred from the KB and
input provided to the system,
- and an inference engine: the interpreter for the expert
system language.
Developing an expert system involves "populating" the KB using an
off-the-shelf expert system shell — a process known as
knowledge engineering (KE). In addition to this, and because
of the inclusion of traditional programming capabilities in ES shells,
expert systems are commonly interfaced to databases, web servers,
graphical user interfaces, data acquisition and process control
hardware, optimization and learning algorithms, etc.
The result has been a wide range of ES applications, including:
computer configuration, fault diagnosis, computer-aided instruction,
data interpretation, planning and prediction, process control,
web-based technical support, customer relationship management,
recommendation systems, finance, OSHA compliance monitoring, business
rule automation, intelligent agents, and network monitoring.
Expert System Pros
- Knowledge tends to be modular, with small chunks that are
fairly independent of each other. It is also additive, in that new
knowledge gathered during the KE process refines and extends, rather
than replaces, previous knowledge. As a result, knowledge bases can
be constructed and tested incrementally.
- Knowledge is encoded in a fashion which, while precise, is not
overburdened by the weight of a general-purpose programming
language. This eases communication with the human expert.
- Separation of the KB and the inference engine means ES developers
can concentrate on knowledge, rather than
mechanics.
- Because rules are declarative, rather than procedural, they can be
encoded using technologies such as XML.
- Expert systems force experts to make their reasoning process
explicit. This can increase their own understanding of how they reach
complex decisions, potentially improving on it.
Expert Systems Cons
- Knowledge engineering practice is even less well developed than
software engineering.
- The relationship between an expert system and the human expert can
easily be misunderstood as one of being "replaced by a machine". This
is unfortunate, as the cooperation of a human expert is an essential
part of building an ES.
- The sequence of execution of rules is controlled by the
inference engine. This can make prediction of system behavior
difficult for the developer.
- There is a dearth of good methods for structuring knowledge. As a
result, it is easy for a large KB to become difficult to maintain.
|
 |

about this page
Here you will find our occasional S-Squared Newsletter, as well as
links to our own tutorials and items of interest on the web. If you'd
like to be notified when this page is updated, please
email us.
previous news
Time-Frequency Analysis
|