Go backward to Variables.
Go up to The condition side.
Go forward to Disjunctions of constants.
Acceptable preferences
......................
The only preferences that exist in working memory are acceptable preferences
for the context slots (the problem-space, state, and operator augmentations
of goals). That is, other preferences cannot be examined by matching them
with conditions. Acceptable preferences for problem spaces, states, and
operators can be matched in a condition by testing for a "+" following the
value. This allows a production to test the existence of a candidate object
and its properties, and possibly create a preference for it, before it is
selected for a context slot. In the example below, {^$operator <o> +} matches
the acceptable preference for the operator augmentation of the goal, while
^$state <s> tests that state {<s>} has been selected as the current state for
the goal.
(sp blocks*example-production-conditions
(goal ^problem-space <p> ^state <s> ^operator <o> +)
(<p> ^name blocks-world)
(<s> ^table <t1> ^ontop <c1> { <> <c1> <c2> })
(<t1> ^color << red blue >> )
(<o> ^name move-block)
...
-->
...
)