The simplest plan that lifters learn that their first-principles planner does not construct is to load a box onto a hand-truck and later unload it and load it onto a truck at the behest of a hand-truck operator. This cannot be generated by the first-principles planner because initially lifters lack knowledge of hand-trucks and the behaviors of hand-truck operators. This plan can get created from the following snippet of activity involving medium-sized box MBOX3.
First, a high-level description of the execution history:
L1 records her behavior internally, including information about active goals, cooperation agreements, states of the world, attempted actions, reasons for attempting the actions, and results of the attempts. These internal structures contain too much data to show fully, but the gist of them is clear in the following listing of the relevant portion of L1's execution trace:
(<agreed to achieve (ON MBOX3 HANDTR2) for HTO> <executed (LIFT MBOX3)> <executed (LOAD MBOX3 HANDTR2)> <failed to (LIFT LBOX2)> <executed (NO-OP)> <executed (LIFT SBOX5)> <agreed to achieve (ON MBOX3 TRUCK1) for HTO> <executed (PUT-DOWN SBOX5)> <executed (MOVE STREET)> <executed (UNLOAD MBOX3 HANDTR2)> <executed (LOAD MBOX3 TRUCK1)>)
The cleaning process removes the idle step, the failed attempt and the two actions involving SBOX5 (they are each subsequently rendered irrelevant - see Section 4.2 for details). Segmentation is not needed in this example since all of the remaining actions are achieving the same goal of (ON MBOX3 TRUCK1). At this point, the trace is:
(<agreed to achieve (ON MBOX3 HANDTR2) for HTO> <executed (LIFT MBOX3)> <executed (LOAD MBOX3 HANDTR2)> <agreed to achieve (ON MBOX3 TRUCK1) for HTO> <executed (MOVE STREET)> <executed (UNLOAD MBOX3 HANDTR2)> <executed (LOAD MBOX3 TRUCK1)>)
The summarization of this grouping removes any action that is planner-reconstructible, leaving:
(<agreed to achieve (ON MBOX3 HANDTR2) for HTO> <executed (LOAD MBOX3 HANDTR2)> <agreed to achieve (ON MBOX3 TRUCK1) for HTO> <executed (LOAD MBOX3 TRUCK1)>)
Finally, the preparation of this segment makes representational changes, including augmenting the (not shown) preconditions and binding information for the constituent actions. The stored procedure is then:
(<WAIT-FOR ?ACTOR (ON ?BOX ?HANDTR)> <LOAD ?BOX ?HANDTR> <WAIT-FOR ?ACTOR (ON ?BOX ?TRUCK)> <LOAD ?BOX ?TRUCK>)