In this section we present a simplified approach to generating plans of action for a hypothetical robot. The basic situation involves boxes on a table.
Individual boxes are either on the table or can be stacked on top of other boxes.
Only one box will fit directly on top of another box, and boxes may not overlap one another. The robot is assumed to be capable of moving only one box at a time, so to move a particular box which has other boxes stacked on top of it, the robot must first unstack the boxes until the particular box has a clear top. The rest of the program will involve rules for how to accomplish various tasks involving the blocks world. As rearrangement goals are satisfied, changes will be made to the world-state blackboard, using assert, and retract. In a nonrecursive action specification, the preconditions will not themselves contain other actions.