Go backward to The semantics of productions.
Go up to Production memory (syntax).
Go forward to The action side.

The condition side
------------------

Conditions are the patterns that are matched against working memory elements.
The patterns can include constant and variables (a variable is a symbol that
begins with < and ends with >, such as <g>).  A production is *satisfied*
when all of its conditions are matched against elements in working memory so
that all tests within the conditions are satsified and there is a consistent
binding for all of the variables that appear in the production.  A single
production can be satisfied with more than one consistent binding of its
variables, giving rise to multiple production instantiations.

Below is a partial example of a production's conditions.

(sp blocks*example-production-conditions
  (goal <g> ^problem-space <p> ^state <s> ^operator <o>)
  (<p> ^name blocks-world) 
  (<s> ^table <t1>)
  (<t1> ^color << red blue >> )
  ...
  -->
  ...
)

Just as preferences must be linked, so must the conditions of a production.
The links are augmentations which must be rooted in a goal or impasse object
tested in the production.  Augmentations are one-way links, *from* an
augmentation's identifier *to* its value.  One of the conditions in a
production *must* start with the symbol goal or impasse to identify the goal
or impasse which is the root of the links.  The matcher will ensure that this
condition matches either goals or impasses, which ever is specified.  A
useful convention is to have the goal or impasse in the first condition.  If
there is not a goal or impasse condition, or if all conditions are not
linked, a warning will be printed when the production is loaded.  In the
production above, the problem space blocks-world is linked to the goal
because <p> is the value of the problem space augmentation of the goal.  The
table <t1> is linked to the goal indirectly through the state.

Menu

Conditions
Variables
Acceptable preferences
Disjunctions of constants
Predicates
Conjunctive conditions
Multi-valued attributes
Path notation
Structured value notation
Negated conditions
Negated conjunctions of conditions
Grammar for Condition Side