Go backward to The evaluate-object operator.
Go up to The evaluate-object operator.
Go forward to Applying the evaluate-object operator.
Evaluation objects
..................
As mentioned above, a new object is created when an evaluate-object operator
is selected. This *evaluation object* is linked to the operator's
^{evaluation} attribute. The object is created with the following set of
augmentations (of which the first three contain the same information as the
corresponding augmentations of the evaluate-object operator):
* ^object
The identifier of the object to be evaluated.
* ^state The current state of the selection subgoal. The state also has a
pointer back to the evaluation object.
* ^desired The desired object from the supergoal (the goal in which the
impasse arose).
* ^operator The identifier of the evaluate-object operator that this
evaluation object augments.
* ^type The name of the operator that was used to generate the evaluation.
Evaluate-object is the operator provided by the default productions, but
other applications might use some other evaluation-generating operator.
Currently, there is default knowledge for two types of evaluations: numeric
and symbolic. They are distinguished by the augmentation that is added to
the evaluation object when they are computed. If the augmentation is
{^numeric-value}, its value is assumed to be an integer. If the augmentation
is ^symbolic-value, its value is assumed to be one of a predefined set of
symbolic values, which includes success and {failure}. The details of
computing evaluations are explained in Section See Computing evaluations
on page See Computing evaluations.
Some behavior, such as termination of an evaluate-object operator, depends
only on whether any evaluation has been computed. Therefore, when either a
numeric or symbolic evaluation is added to the evaluation object, a default
production augments the object with ^value t.
The example below shows two evaluation objects. The first has a numeric
value, and the second has a symbolic value.
(E4 ^object O4 ^state S4 ^desired E3 ^operator O5 ^numeric-value 10
^value t)
(E4 ^object O4 ^state S4 ^desired E3 ^operator O5
^symbolic-value success ^value t)