This page defines a mechanism for analysing this structure of our operator model to see what behaviours it will allow. The basic support tree is constructed by nesting the following terms:
We now need a mechanism for generating this support tree for any
operator's output - which should be possible whenever the conditions for the
corresponding operator are satisfied. We use the predicate
to determine whether a support tree,
, exists for the output,
X, of operator, Op. It acts as a bridge to the predicate which does
the real work:
, where D is the
maximum number of steps we are allowed to take between operators;
is the set of initial operator outputs appearing in the pool of output
streams; and
is the final pool of output streams when X has been
obtained. The use of D is to limit the length of each chain of
operator applications - otherwise we might find that our mechanism gets
bogged down in repeating similar operator sequences ad infinitum.
There are a variety of other ways of limiting search but it would be a
digression to discuss these here. For our example, a convenient number
for D is 4. We also stipulate
to be
, denoting that
there are initially no outputs in the pool.
We can generate a support tree, T, for the output, X, of operator, Op, if X is a possible output, given no initial outputs in the pool of streams and no sequence of operators longer than 4.
X is a possible output for operator Op, given the current output
streams, , if either of the following hold.
- in which case the support tree is
.
and and there is an operator definition for
Op which supplies
X given the condition, C, and this condition can be satisfied by
generating support sub-tree
- in which case the final support
tree is
.
We can satisfy a condition, C, with current output streams
, giving final output streams
and support tree
if any of the following hold:
We can now use definitions 1 to 7 to determine which outputs can be generated by the operators in our system. The most interesting output is the final loan decision from the loan department, which we can test by finding solutions to the goal:
where P will be instantiated to the name of a person, R will be
instantiated to a loan decision for that person (which will either be
agree or disagree) and will be the corresponding
support tree - allowing us to analyse how the result was obtained.
A diagrammatic version of one legitimate support tree appears in Figure 2.7.