We describe a trainable recognizer for multi-stroke symbols. The learned definitions are described in terms of the constituent geometric primitives (lines and arcs), the properties of individual primitives, and the geometric relationships between them. A definition is learned by examining a few examples of a symbol and identifying which properties and relationships occur frequently. During both training and recognition, multiple primitives can be drawn in the same pen stroke. Pen speed and curvature are used to segment a stroke into its constituent primitives. During recognition, an unknown symbol is identified by determining which definition matches it with the least error. There are two recognition methods. One assumes that the primitives of a symbol are always drawn in the same order. This method is fast, but requires some care from the drawer. The other method uses a form of best-first search, with a speculative quality metric and pruning, to recognize symbols when the drawing order is varied.