Backward Chaining Article Index for
Backward
Website Links For
Backward
 

Information About

Backward Chaining




Backward chaining starts with a list of Goal s (or a Hypothesis ) and works backwards to see if there is Data available that will support any of these goals. An Inference Engine using backward chaining would search the Inference rules until it finds one which has a Then clause that matches a desired goal. If the '''If''' clause of that inference rule is not known to be true, then it is added to the list of goals (in order for your goal to be confirmed you must also provide data that confirms this new rule).

For example, suppose that the goal is to conclude the color of my pet Fritz, given that he croaks and eats flies, and that the rulebase contains the following four rules:

# If Fritz croaks and eats flies - '''Then''' Fritz is a frog
# If Fritz chirps and sings - '''Then''' Fritz is a canary
# If Fritz is a frog - '''Then''' Fritz is green
# If Fritz is a canary - '''Then''' Fritz is yellow

This Rulebase would be searched and the third and fourth rules would be selected, because their conclusion (the Then clause) matches the goal (to determine Fritz's color). It is not yet known that Fritz is a frog, so the '''If''' statements are added to the goal list. The rulebase is again searched and this time the first two rules are selected, because their Then clauses match the new goals that were just added to the list (whether Fritz is a frog or whether Fritz is a canary). The '''If''' clause (Fritz croaks and eats flies) is known to be true and therefore it can be concluded that Fritz is a frog, and not a canary. The goal of determining Fritz's color is now achieved (Fritz is green if he is a frog, and yellow if he is a canary, but since he croaks and eats flies, he is a frog, and, therefore, he is green).

Because the list of goals determines which rules are selected and used, this method is called Goal Driven , in contrast to Data-driven forward-chaining inference. This bottom-up approach is often employed by Expert Systems .

Programming languages such as Prolog , Knowledge Machine and ECLiPSe support backward chaining.


SEE ALSO