Pro/3 is a system for processing knowledge, and Pro/3 deals with two main categories of knowledge - facts and rules. The purpose of this page is to look at the concept of an inference engine more closely.
The part of an "intelligent system" which deals with knowledge representation, is usually separate from the part which deals with "reasoning". The knowledge representation part is referred to as the knowledge base, while the reasoning part is referred to as the inference engine. Void of any details, the purpose of the inference engine in  Pro/3 is to accept questions  (the term query is used in Pro/3), and then try to answer them by using the knowledge in the knowledge base.

Pro/3 uses a PROLOG-type inference engine with two significant enhancements, support for what in Pro/3 is known as set-rules (a sub-set of sentence rules), and support for inexact rules - a framework for representing reasoning with certainties and fuzzy sets.

 

Pro/3 is a hybrid production rule system - it employs both forward and backward chaining inference strategies.

BACKWARD CHAINING

PROLOG-type interference follows an inference strategy known as backward chaining, where the starting point is the desired conclusion (which is the answer to the query in question). The inference then works backwards by considering the conditions of any rules which concludes this conclusion, recursively, until it can go no further. The deepest level in this recursion would then be facts.

Example:

Assume the 

facts F, G and H

and the rules 

if F and G, then N (1)

if H then J (2)

if J and G, then M (3)

if N and M then S (4)

The query S? would then be satisfied by the following inference steps:

  1. S 
  2. N and M  using rules (4)
  3. (F and G) and (J and G) using rules (1) and (3)
  4. (F and G) and (H and G) using rules (2) - all are facts

FORWARD CHAINING

A forward chaining strategy starts with the facts and determines everything which can be concluded from these. 

Example:

Assuming the same facts and rules as in the previous example, then the following conclusions could be made:

  1. F, G, H the known facts
  2. N using rule (1)
  3. J using rule (2)
  4. M using rule (3)
  5. S using rule (4)

The Summit-problem present perspectives on forward and backward chaining and of how Pro/3's inference engine works.

PRODUCTION SYSTEM

Queries can be answered by interpreting all relevant rules and sentences during the execution of the query (backward chaining approach). This is a very processing-intensive task, practically impossible in big knowledge bases, and impractical in all but small ones. This said, it is a possible approach in Pro/3.

A better approach, generally, is to use Pro/3's sentence derivation process to generate (derive) all possible sentences once and for all, and store them in the KB. Repeated re-derivations will then only take place when needed, that is when rules or sentences which "determine" a derived sentence have been changed. To facilitate this, Pro/3 keeps track of all dependencies between sentences and rules, as well as the status of derivations. An acyclic directed graph known as the knowledge dependency graph is used for this purpose, and for the purpose of determining the sequence of sentence derivations.

 

EXTENSIONS OVER THE BASIC RESOLUTION INFERENCE LOGIC

Pro/3 set-rules is interpreted by using the inference engine on two levels, whereby Pro/3 first makes the inference representing a set of solutions (by directly using the basic inference mechanism), and then secondly applies specially added logic known as procedures to this solution set, to generate the final result of the set-rule. The more than 20 procedures available, perform functions such as deriving sums, averages, extreme values etc, and can also do more complex operations such as interpolations and correlations.

Rules for inexact reasoning  i.e. rules for working with certainty factors and fuzzy set membership, are "called" from sentence rules (interpreted by the basic inference engine). Such calls invoke a special inference engine which interprets the called inexact rule and eventually returns a value (usually a certainty factor or a membership grade). The called rule is invariably the root of possibly a complex network of other rules calling each other (forming a directed acyclic graph). Rules for inexact reasoning always succeed in returning a value. The terminal nodes of the inexact rule network are known as data rules, which determine the value to be returned on the basis of a reply given by the the user for a given question, or by receiving an answer from the knowledge base (i.e. by processing a query).