A stack of rule groups (or contexts). Control can be passed to the next context on the agenda.


The number of arguments (to a function, rule condition etc.)

backward chaining

The process of reasoning backward from postulated goals to determine if their preconditions can be satisfied. If these preconditions are satisfied the postulated goals are considered true.


Windows which allow the user to look freely through different parts of the system.


In object-oriented programming, classes define classes with the same attributes (slots) and behaviour (methods). Instances of these classes are created during the execution of a program which represent concrete examples of the abstract class descriptions.

conflict resolution strategy

The method(s) used to decide which of a set of eligible rules will fire. A conflict resolution strategy is a list of conflict resolution tactics which are applied in sequence to the conflict set to determine which instantiation is to fire.

conflict resolution tactic

A single predicate used to decide whether one instantiation is to be preferred to another. They may be combined into a conflict resolution strategy.

conflict set

The set of instantiations of rules which at a given time are matched by the object base.


Groups of rules in a knowledge base.


The ability to match an expression against a piece of data where variables in the expression are bound to the corresponding parts of the data if the structure of the expression and the data agree. For example, (?x . ?y) can match (1 2 3) with ?x binding to 1 and ?y to (2 3).

forward chaining

The process of reasoning forward from known facts to perform arbitrary actions and to deduce new facts.

forward chaining cycle

The process of matching the conditions of rules against the object base to produce a set of rules eligible to fire (the conflict set), selecting one of those (conflict resolution) and firing it (performing its actions).

inference engine

The part of the system which is responsible for rule-firing, either in backward or forward chaining mode.


An instantiation of a rule is the set of objects against which a rule matches. A rule may have no instantiations (if it is not matched at all by the object base) or many instantiations (each referring to a different set of objects).

knowledge based systems

A system which encodes the knowledge for a problem domain in high-level forms, usually facts and rules. The software architecture separates the knowledge from the inference mechanism used to deduce new knowledge.


An advanced Common Lisp programming environment, which serves as the infrastructure for KnowledgeWorks.

meta object protocol (MOP)

Describes how the Common Lisp Object System is implemented in terms of itself. Hence CLOS may be used to modify its own behaviour.

meta rule protocol (MRP)

Allows the user to debug, modify or replace the default behaviour of forward chaining rules in the system in terms of backward chaining goals.

object base

The set of CLOS objects which KnowledgeWorks can reason over ("knows about").


Programming paradigm in which structures within the language are organised as classes of objects which have attributes (slots) and behaviour (methods) associated with them.


The KnowledgeWorks® object base contains KnowledgeWorks CLOS objects, which may for efficiency be replaced by KnowledgeWorks structures.


A CLOS class can be replaced by a structure class in cases where speed is important and the code must be optimised, and when the full power of CLOS is not required. The structure is then analogous to the CLOS object.


A collection of complementary software or utilities (such as KnowledgeWorks®) with a common application focus.


KnowledgeWorks and Prolog User Guide (Macintosh version) - 4 Apr 2005