[OSM-talk] Tagging best practices
Tobias Knerr
osm at tobias-knerr.de
Tue Mar 31 08:17:21 BST 2009
PAA schrieb:
> Using the proposed shop=pet as an example:
> * grooming=yes: The shop offers pet grooming services
> * kennel=yes: The shop offers kennel (pet keeping or tending) services
> * training=yes: The shop offers obedience training services
>
> Or
>
> * service=(grooming;kennel;training)
I suggest using the first variant.
It's easier for existing tools to evaluate, because they usually can't
handle semicolon-separated values (these are just a relatively common
convention, after all). Also, duplicates are prevented automatically.
Additionally, separate keys are better if you want to use implied
values. That doesn't make much sense for your example, but it's an
advantage of that variant in general. If pet shops e.g. usually offered
a certain set of services and that was a widely accepted fact, it would
be possible to make that information implicit. With the second variant,
it then wouldn't be possible to remove one implied service for a certain
shop (due to the lack of a =no option).
No matter which variant you choose, you might want to add a
prefix/"namespace" to those keys, which was done e.g. for recycling
keys: http://wiki.openstreetmap.org/wiki/Tag:amenity%3Drecycling
It helps to avoid key name conflicts. (I'd expect "training" or
"service" to be used in other contexts, too, which would make validation
and documentation tricky.) It also is convenient when keys are sorted
alphabetically.
I'd probably use pet:* rather than of shop:pet:* because the keys would
be useful for other providers of pet related services, too, not just shops.
Tobias Knerr
More information about the talk
mailing list