Expert Systems

Forward Chaining vs Backward Chaining: Choosing the Right Inference Strategy

khaled February 10, 2023 3 mins read
Forward Chaining vs Backward Chaining: Choosing the Right Inference Strategy

Forward Chaining vs Backward Chaining: Choosing the Right Inference Strategy

Inference strategy selection is one of the most consequential decisions in expert system design, yet it is often made by default rather than by analysis. Forward and backward chaining have fundamentally different performance profiles and are suited to different problem structures.

Forward Chaining: Data-Driven Reasoning

Forward chaining starts with known facts and fires every applicable rule until no more rules can fire, progressively adding new facts to working memory. It is data-driven: given what I know, what can I conclude?

How it works:

  1. Load initial facts into working memory
  2. Find all rules whose conditions are satisfied by current facts (match phase)
  3. Select one rule to fire (conflict resolution)
  4. Execute the rule's actions, adding/modifying facts
  5. Repeat until no rules fire

Best for:

  • Monitoring systems — continuously process incoming sensor data
  • Classification pipelines — classify an input through successive refinements
  • Alerting engines — derive all consequences of current state

CLIPS, Drools, and Jess use forward chaining by default.

Backward Chaining: Goal-Driven Reasoning

Backward chaining starts with a goal hypothesis and works backward, identifying which rules could prove it, then recursively checking whether their conditions are satisfied. It is goal-driven: to prove X, what do I need to establish?

How it works:

  1. Set a goal to prove
  2. Find rules whose conclusions match the goal
  3. Treat those rules' conditions as subgoals
  4. Recursively attempt to prove each subgoal
  5. Succeed when all subgoals reduce to known facts

Best for:

  • Diagnostic systems — what explains these symptoms?
  • Configuration validation — does this configuration meet requirements?
  • Query answering — is a specific hypothesis true given available evidence?

Prolog uses backward chaining. MYCIN used a backward chaining variant.

Performance Implications

Forward chaining can be expensive if many rules fire before reaching the relevant conclusion — it explores the entire reachable fact space. The Rete algorithm (used by Drools, CLIPS) optimizes forward chaining by compiling rules into a network that incrementally updates as facts change, avoiding redundant re-evaluation.

Backward chaining can get stuck in infinite loops if rules are circular. Tabling (memoizing proven subgoals) prevents redundant recomputation and eliminates most loop risks.

Choosing in Practice

Problem Type Recommended Strategy
"What follows from these facts?" Forward chaining
"Is this hypothesis true?" Backward chaining
Continuous event processing Forward chaining
Diagnostic reasoning Backward chaining
Configuration checking Backward chaining
Production monitoring Forward chaining

Many production systems use both: forward chaining to classify and pre-process input, backward chaining to verify specific hypotheses about the classified input.

Conclusion

Neither strategy is universally superior. The choice follows directly from problem structure: data-driven monitoring favors forward chaining, hypothesis verification favors backward chaining. Mismatching strategy to problem type leads to inefficient reasoning and complex rule structures trying to compensate.

Keywords: forward chaining, backward chaining, inference engine, expert systems, Rete algorithm, Prolog, CLIPS, Drools, goal-driven reasoning, data-driven reasoning