A central contribution of this thesis is to show that descriptions of complex physical objects can be matched and generalised effectively and efficiently by exploiting their structure. GRAM does this by a number of means, such as by representing objects at multiple levels of detail; using `neighbour relationships' to allow a more flexible traversal of object graphs during matching; explicitly distinguishing between substructure and context to allow partial matching and a simple form of disjunction; and using an explicit representation of groups to describe several similar objects as a single descriptive entity.
A second contribution is to show that complex objects can be matched without having to enforce consistency between object correspondences. This is possible partly because of the richness of physical objects, and partly because GRAM represents concepts as simple entities defined by relationships with other concepts, rather than as a complete set of subcomponents defined locally within the concept description itself. This scheme leads to greater simplicity, efficiency, and robustness.