[Tagging] Multiple values for one key - the cuisine problem.

Marc Zoutendijk marczoutendijk at mac.com
Wed Aug 24 20:06:38 UTC 2016


How to tag multiple values for a key? The cuisine problem.

Whenever we tag a restaurant, we also have the option of tagging the kind/style of food that is offered:

amenity=restaurant
cuisine=french

The wiki is clear about this:
http://wiki.openstreetmap.org/wiki/Key:cuisine

In the next table I have collected all the values for cuisine that were in use at least 100 times.
http://mijndev.openstreetmap.nl/~marczoutendijk/taginfo-cuisine-proper.html

Problems arise whenever the choices for food/cuisine are not easy to state with one value, like when we have a restaurant that is both serving french and italian food.
In the above table, we see the solution that is used often when there exist more values at the same time for a given key: separate the values by semicolons. *[1]
This way is also used often for all aother keys that can have multiple values.
This problem of multiple values for one key has been discussed by me in a few diary entries. *[2]*[3]

Using the same key more than once?
We cannot put:

amenity=restaurant
cuisine=french
cuisine=italian

into OSM, because you cannot use the same key twice on the same node. If you try to do that in iD it comes up with cuisine_1 for the second choice.
That is odd, because it should have named it cuisine_2 in the first place, because cuisine_1 is the default first one, that now has the tag cuisine=*. 
Very confusing to have cuisine=* for the first one and cuisine_1=* for the second one!
Because iD is the default editor, many beginning mappers use it and aren't even aware of this problem and simply accept what iD offers.

When you enter a new value for a given key in JOSM or try to add an existing key again, it simply removes the other one.

To examine the various ways of tagging this cuisine=* I have taken all the related values from the taginfo database (date 2016-08-05) and put them in various tables.

In the next table you can see _all_ the values that are currently use for the "underscore” (the iD method) namespace:
http://mijndev.openstreetmap.nl/~marczoutendijk/taginfo-cuisine-underscore.html

There is a third method that mappers use to solve the problem:

amenity=restaurant
cuisine=french
cuisine:2=italian

or for the italian choice:
cuisine:italian=yes

This way is also referred to as namespace tagging and in this table you see _all_ the values currently in use according to this method:
http://mijndev.openstreetmap.nl/~marczoutendijk/taginfo-cuisine-colon.html
In this table we sometimes see that the value is still a multiple value list, separated by semicolons.

More problematic (to me) is the use of:

cuisine:XX=value where XX is the iso countrycode.
What is the purpose of using that code in relation to the food being served?
Or is it a way of saying that the language in use for the value is given in that XX?

Finally I collected a few rare values:
http://mijndev.openstreetmap.nl/~marczoutendijk/taginfo-cuisine-rare.html

"Rare" in the sense that they are few but contain extremely long lists of ";" separated values or are in a different script without noting so in the cuisine:XX key.

A problem is that the wiki doesn't mention any of these cases.
I would like your opinion on which way we should deal with those issues. Mappers have come up (as can be learned from my tables) with a choice of solutions, but it is (at least) a confusing situation.
If this has been (most likely) discussed before, then there is nothing of that discussion to be found in the mentioned wiki.

Marc


=========
[1]http://www.openstreetmap.org/user/marczoutendijk/diary/35478
[2]http://www.openstreetmap.org/user/marczoutendijk/diary/35532
[3]http://www.openstreetmap.org/user/marczoutendijk/diary/35512





More information about the Tagging mailing list