3.1 Introduction to Rule-Based Systems 53
action is performed, the rule is said to have been “invoked” or “fired.” The
firing of a rule affects the environment, and this can result in the firing of
other rules. The resulting cascade of rule firings is what gives rule-based
systems their power. By contrast, the most common programming style (the
so-called procedural programming or imperative style) does not typically
have such a cascading effect.
Rule-based inferencing has another benefit. Rules express the meaning
of a program in a manner that can be much easier to understand. Each rule
should stand by itself, expressing exactly the action that should be performed
in a particular situation. In principle, each rule can be developed and verified
independently, and the overall system will function correctly provided only
that it covers all situations. Unfortunately, rules can interact in unexpected
ways, so that building a rule-based system is not a simple as one might sup-
pose. The same is true in organisms, and it is one of the reasons why it is so
difficult to understand how they function.
Rules have been used as the basis for computer software development for
a long time. Rule-based systems have gone by many names over the years.
About a decade ago they were called “expert systems,” and they attracted
a great deal of interest. While expert systems are still in use, they are no
longer as popular today. The concept is certainly a good one, but the field
suffered from an excess of hubris. The extravagantly optimistic promises led
to equally extreme disappointment when the promises could not be fulfilled.
Today it is recognized that rules are only one part of any knowledge-based
system, and it is important to integrate rules with many other techniques.
The idea that rules can do everything is simply unreasonable.
The process of using rules to deduce facts is calledinferenceorreason-
ing, although these terms have many other meanings. Systems that claim
to use reasoning can use precise (i.e., logical reasoning), or various degrees
of imprecise reasoning (such as "heuristic" reasoning, case-based reasoning,
probabilistic reasoning, and many others). This chapter focuses on logical
reasoning. In chapter 13 logical inference is compared and contrasted with
scientific inference.
Logical reasoners act upon a collection offactsandlogical constraints(usu-
ally calledaxioms)storedinaknowledge base. Rules cause additional facts to
beinferredand stored in the knowledge base. Storing a new fact in the know-
ledge base is calledassertion. The most common action of a rule is to assert
one or more facts, but any other action can be performed.
Many kinds of systems attempt automated human reasoning. A system
that evaluates and fires rules is called arule engine, but there are may other