There are three basic primitives in the data model: nodes, ways, and relations. The geographical features these represent can be described by tagging them with key-value pairs. In mathematical terms, the OpenStreetMap data model is a mixed graph; it consists of corners or vertices, and edges. Different parts of the graph may be connected, or may be isolated, depending on what features in the real world they're modeling.
The default format for representing the data model is XML, and that's the only format in which you can currently retrieve data from the OpenStreetMap server. The data model can be represented in other formats, and indeed Potlatch—the Flash-based online editor in use at openstreetmap.org—uses Flash's Action Message Format to communicate with the server. We'll cover how you can retrieve individual objects from the OpenStreetMap API in Chapter 8, but you don't need to know how the API works just to edit the map.
There are several attributes common to every primitive...