The essence of the sliding problem, both in the constraints specified, and in the required solution, is that it deals with contacts between different objects. The importance of contact to this basic problem immediately demonstrated a deficiency in the ASSF representation as presented in chapter 4. The ASSF representation described relative position of objects in terms of the object axes, and this meant that any contact between the objects had to be inferred from relative orientation and magnitude of objects, subparts, features, and axes.
The global contact set therefore provided a useful way of operating directly with necessary state information, rather than having to derive it from physical shape. The contact set was not ideal as a state description, especially because invariant information (contact between obstacles) was mixed up with state information (contact between the moving object and obstacles). It did, however, provide the basis for a reasoning system that operated with ordered states - the contact history.
The contact history was a clear and natural way of representing motion. All changes of state were recorded, and the use of a qualitatively significant criterion for state change meant that most of the contact history information was significant to the problem analysis. This is not always the case in such simple history mechanisms, and it shows an advantage of the qualitative representation, in that operations performed using qualitative data produce more qualitatively interesting results.
The boundary list maintained for each object in the ASSF representation was used rather more heavily than anticipated - in particular, it was essential for the boundary list to have a strict clockwise ordering. This was not my original intention for the ASSF system - on the contrary, those features on the boundary of a shape were to be recognised as such by their position attributes, in particular the fact that the feature was located at the full extent of an object axis. For the sliding problem, however, all features that can be involved in contact are on the boundary, and the fact that this list was created by assuming a traversal of the boundary in a clockwise direction provided a far more useful reference point than any data relating to shape axes.
The importance of the boundary meant that a number of special LISP functions had to be created to make the boundary easier to work with. Examples of these are the ``wrap-around'' list operations to make the simple linear list appear to be a continuous ring of clockwise and anticlockwise neighbour relationships.
A more major issue was that the methods used to solve the sliding problem make use only of a relatively small subset of the facilities provided in the proposed full ASSF shape representation. As an initial investigation, it did not need most of the axially specified facilities, but attempts to extend the sliding approach to include free-space motion soon showed that the representation techniques for size, position and orientation were too clumsy for the task of reasoning about complex and/or underconstrained interaction between objects, even though it provided a very full description of shape for individual objects.
It became clear in the course of this implementation that since interaction between objects (whether or not it involves sliding) occurs exclusively between the boundaries of the objects, the shape representation used should therefore concentrate on providing an adequate boundary representation. It was this concern that lead to the development of the EPB/PDO representation, because ASSF, while adequately meeting my initial goal of a completely qualitative shape description method, failed to fully meet the requirements of reasoning about motion and object interaction.