Home Site

    Page 32
16.4 Table of Contents Bottom of Page Site Map
In addition, many of the debugging tools that simplify
rule level debug are already in the inference engine where traditional programming environments assist with code level, not rule level debug. Attempting to build a robust knowledge automation system by traditional programming techniques is typically much more expensive and far less likely to succeed or be maintainable.

Forward Chaining

As mentioned earlier, many inference engines use
Forward Chaining. Some expert systems support hybrid approaches where the basic system uses forward chaining, but allows backward chaining to derive needed values. This combination provides the best of both approaches and is often very effective.
Conceptually, forward chaining is much simpler than
backward chaining. The system simply tests the rules in the order that they occur, so rule order is crucial. If the system needs a variable to determine if a rule is true or false, and the value of that variable is unknown, the system immediately asks the user for the value without any attempt to derive its value. If it is determined that a rule is true, the assignments in the rules THEN part add data to what the system knows and can use in subsequent rules. If a rule is determined to be false, the system discards that rule.
Forward chaining systems are data driven since the
system simply processes a set of data by the rules with no specific defined Goal. Forward chaining is often faster than backward chaining since it does not have the overhead of dynamically determining which rule to activate, but it does not exclude blocks of rules and logic that are not actually needed. Forward chaining asks less focused questions and is not as good an emulation of a human interaction with an expert.
Unlike backward chaining systems, the order of questions in a forward chaining system is very dependent on rule order.
Programmers often take a data driven approach to
systems, such as monitoring systems, where a set of data is available at the start of a session. The system applies the rule

logic to the data to produce results, but the order in which the system uses the data does not matter. While forward chaining can be used for these types of systems, backward chaining is sometimes a better choice for problems that benefit by being modularized or handled from top-level logic down.

Backward chaining systems are often easier to develop
than forward chaining systems. A human expert intuitively thinks: "The cause could be X. To determine that, I need to know the value of Y, but to find Y, I first need to know Z". This type of logic chain is similar to one that a backward chaining system produces from its rules.


Backward chining is an effective method for building
many types of system from knowledge management, to help desk, to diagnostic, to decision support. With a clear understanding of how backward chaining operates, systems can be modularized and rapidly constructed. These systems can easily combine the expert knowledge of multiple individuals into a single coherent system. Separating domain-knowledge (rules) from the program (inference engine) greatly reduces the amount of work required to create an effective program. Using an existing inference engine eliminates the need to develop a major part of the program from scratch.
Dustin Huntington, president of EXSYS Inc. has been an integral part of the expert system industry for 20 years. He can be reached at www.exsys.com or dhuntington@exsys.com.

Additional Information

The demos on this site to one extent or other use
backward chaining. The Cessna one uses it extensively.




Building Knowledge Automation Systems written by Dr.
Elias Awad, University of Virginia - currently only
available through the EXSYS office.

Knowledge Management Handbook written by Jay
Liebowitz, University of Maryland

To Page 31

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: info@pcai.com - Comments? webmaster@pcai.com