The representational preparations are straightforward. Obviously, the operator literals must be replaced by new variables. Also, a WAIT-FOR operator is introduced whenever an agent agreed to a request. WAIT-FOR operators are functionally equivalent to the coordinating operator WAIT already discussed, but there is a semantic difference that is relevant during communication. WAIT implies an agreement already exists but WAIT-FOR only implies an agent expects an agreement to be established.
The third pass of SUMMARIZE-TRACE provides the benefit of making the incoming chunks more general and should be considered a means of improving the cooperative plans. It improves them because removing operators that achieve subordinate goals makes the chunk more easily adapted in the future (at the cost of regenerating the original operator if it is needed again).
The most complicated portion of the preparation phase involves potentially augmenting operators to macro-operators by including additional binding information, in the form of new roles and preconditions. This additional information is identified via an annotation process, similar to that of [Kambhampati & Hendler1992], which records the reasons why operator variables took on their final ground value.
Operator augmentation is better understood with a simple motivating example than with a long explanation. HTO's execution trace from the previous example is:
And after summarization and literal replacement:(<asked L1 to (ON MBOX3 HANDTR2)> <waited for (ON MBOX3 HANDTR2)> <waited for (ON MBOX3 HANDTR2)> <executed (TILT-HANDTR HANDTR2)> <executed (PUSH-HANDTR HANDTR2 STREET)> <executed (STAND-HANDTR HANDTR2 STREET)> <asked L1 to (ON MBOX3 TRUCK1)> <waited for (ON MBOX3 TRUCK1)> <waited for (ON MBOX3 TRUCK1)> <waited for (ON MBOX3 TRUCK1)> <waited for (ON MBOX3 TRUCK1)>)
((SIGN ?AGENT (ON ?BOX ?HANDTR)) (STAND-HANDTR ?HANDTR ?FINAL-LOCATION) (SIGN ?AGENT (ON ?BOX ?TRUCK)))
The SIGN operator (which triggers communication) does not normally contain a ?HANDTR role or binding information regarding it. Nonetheless, HTO needs some way to determine an appropriate instantiation for ?HANDTR before the first SIGN operator can be re-used. This can be accomplished if the operator is augmented with the pair of preconditions (AT ?HANDTR ?STARTING-LOCATION) and (AT ?BOX ?STARTING-LOCATION).