Proposal:Tag structures

From OpenStreetMap Wiki
Jump to navigation Jump to search
Tag structures
Proposal status: Abandoned (inactive)
Proposed by: Driver2
Tagging: *=*
Applies to: *
Definition: well-defined Tag structure
Statistics:

Rendered as: *
Draft started: 2008-12-27
RFC start: *
Vote start: *
Vote end: *

Key structures

There are basically three different types of ways that a simple key can be extended with.

Parameters

A parameter defines a special part of the key to be set. For example name:fr=* sets the french name for something. The parameter by itself usually has no meaning. 'fr' by itself only says that something is 'french', but not what (of course there could be a key called 'fr' that means something, but thats another story).

Another way to look at it: You don't set a value for 'fr' but for 'name'. 'fr' just describes in more detail what kind of 'name' we want to set.

Structure

Keys can also be divided into substructures. For example the 'addr'-namespace contains several subkeys ('street','housenumber',..) that are also valid on their own (you could also just tag street=Goethestraße, but are structured under 'addr' to keep them more organized.

Another way to look at it: You set a value for 'street' that is part of an 'addr' (address).

Properties

Keys sometimes need to be structured to define properties for tags. For example if you defined a cycleway beside the street with cycleway=right you can define it's width with cycleway.width=*. 'width' might be a valid key without 'cycleway' in front of it, but will have a different meaning. width=* for example would define the width of the street it is put on, while cycleway.width=* would define the width of the cycleway that runs beside the street.

Another way to look at it: You set a value for 'width', that might or might not be a valid tag on its own, but depends on the preceding tags to have the right meaning (set the width for the cycleway not the street).

Value structures

Sometimes multiple values for the same key are given by dividing the values with ';' (semicolon).