I just received a request to add a preset for amenity=language_school to my fork of the JOSM presets (that you should be using instead of the original :-)) Nothing to said against that, it is a reasonably popular feature with nearly a 1’000 uses.
Naturally a preset that is essentially just a stub isn’t really helpful, so as always I checked what additional properties should be added, and tagging the taught languages is an obvious attribute that is interesting.
Much to my dismay it seems as if in early 2016 it was infected with the “move values to key” plague. Instead of having two keys, lets say
containing a list of the languages, we now have more than two hundred potential keys for an in principle, simple attribute, making both data consumption, editing and creating a preset more than just difficult (as the keys can have at least three values plus unset, they can’t even be modelled with a checkbox in a preset).
At the time somebody further thought it was a good idea to retag existing language tags to the broken schema:
Comment from Dotevo on 13 November 2018 at 06:51
I do not think that. Tag is not broken. It is more flexible solution.
1) It is possible to add language:de=no It is strange that I cannot find any example with language:*=no. But I know some places like restaurants in Poland where you cannot order meal in Polish.
2) Some hotels have more than 10 languages supported. I think the list will be to long and uncomfortable.
3) Why we do not use the same method for diet:*? diet=vegan;vegetarian Maybe it is not a good idea.
Comment from Dotevo on 13 November 2018 at 08:15
One more thing. Tag is not used only for schools, you can check main tags. Only 50% has amenity tag (~360 for language:en) and 30% of amenities are “amenity”=”atm”
I think that problem is definition on the wiki page or common use.
Comment from SimonPoole on 13 November 2018 at 13:33
Consider that you have OSM data in some kind of data store and need to determine which languages are supported for your hotel example.
PS: as to the list becoming “long”, all modern editor UIs allow you to select from a list regardless of the underlying data representation.