S-Squared Logo


about  |   expertise  |   news |    contact  |   email  |   homepage  |  



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:

  1. 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).
  2. 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


made with Elated PageKits