Here are a few of the 76 pages available to our subscribers

Home Site

    Page 27
16.4 Table of Contents Bottom of Page Site Map


Back to Basics - Backward Chaining:

An Expert System Fundamental


By Dustin Huntington
Backward Chaining is an incredibly powerful yet widely
misunderstood concept; key to building many types of expert systems. It is particularly well suited for interactive systems that emulate a conversion between a user and a human expert. Backward chaining enables systems to know what question to ask and when. It facilitates the dismantling of complex problems into small, easily defined sections, which the system automatically uses if needed. An understanding of backward chaining is fundamental to building an expert system with most popular development shells.
Backward chaining is the default method of operation
in many expert system tools. If the system must determine the value of a variable, and a rule for deriving that value exists, backward chaining can automatically execute the rule to obtain the value. If this rule requires additional information before it can succeed, then the system can execute additional rules, recursively if necessary. Unfortunately, this simplicity enables developers to implement systems without fully considering the operation of the inference engine; sometimes producing unexpected side effects.
Goal Driven, another commonly used term for describing
backward chaining, refers to the method used to process the rules. Data Driven, the other common approach, is associated with Forward Chaining. These terms add to the confusion since they actually refer to how the inference engine uses the rules, and not to any required system architecture for data. A backward chaining system can be driven by a block of data supplied at the start - and there are often good reasons to do so. Likewise, a data driven system may appear to interact with the user in a manner similar to a backward chaining system.

Goal Driven System

A goal driven system always has a Goal List to attempt
to complete. This list, which is fundamental to backward chaining, dynamically adds new goals to its top, pushing the other goals down in the list. A key concept is that at a given time the system only works on the top goal, which once achieved drops off the list and the next goal becomes the top and active goal. The system is finished once it removes all goals from the list.
The inference engine actively attempts to achieve the
top goal, which usually requires the determination of a value for a variable. To obtain that value, the inference engine checks the rules to establish if any could derive a value for that variable. This requires an If/Then rule that assigns a value to the variable in the THEN part of the rule. If such a rule is found, that rule's IF portion is tested to determine if it is true.
Determining whether the IF portion is true typically
requires data for other variables. Values for these other variables may already be available, making it possible to immediately determine if the rule is true or false. Alternatively, if the value needed to evaluate the rule is unknown, then that variable becomes the new top-level goal and the inference

engine looks for rules that might assign it a value. This is one way the system dynamically adds new goals (variables) to the top of the goal list.
If no rule is available to assign a value to the top-level
goal variable, the system asks the user directly. The user's input sets the value of that goal variable, dropping it off the goal list. The next goal in the list becomes the top goal, with this additional information to try to achieve that goal. This process continues with the adding and removing of goals from the list until all goals are gone.

Simple Example

The following example shows how backward chaining
adds goals to the goal list, and how it can make a system modular. The sample system helps first-level support staff prioritize support requests by ensuring that certain customers receive priority service and a response within 4 hours.
When building a Backward Chaining system, start with
the highest-level rules and add additional detailed rules as they are needed. At the highest level, the system is one rule:

To Page 26

16.4 Table of Contents
Top of Page

To Page 33

16.4 2002

PC AI Magazine - PO Box 30130 Phoenix, AZ 85046 - Voice: 602.971.1869 Fax: 602.971.2321
e-mail: - Comments?