Das man das intern anders abbilden kann, stimmt natürlich, aber die Daten müssen ja auch verarbeitet werden…
Da ja “;” ein legitimer Wert im Wert sein kann, braucht man dann noch ein Escaping wenn man die Daten nicht gesplittet haben möchte, z.B. mit “;”. Das führt dann aber dazu, das die API den Wert jedes Schlüssels beim Hochladen parsen und beim Herunterladen dann die getrennten Schlüssel wieder, in der richtigen Reihenfolge (kann ja sein, das der Benutzer sich dabei was gedacht hat), für den Nutzer zusammenbauen muß. Ich bin da der Meinung man kann den API-Server da lieber mit sinnvolleren Sachen beschäftigen.

Das Problem ist nämlich, daß jedes Key=Value-Paar immer jeweils eine unabhängige 1:1-Abbildung ist. Das heißt z.B. “highway=service” und “service=driveway” stehen eigentlich in keinerlei Beziehung zueinander. weil ich kann ja “service=driceway” z.B. auch an eine “amenity=post_pox” taggen. Der Mensch und auch dessen momentanen Auswertung interpretiert aber “highway=service” und "service=driveway als Baum, was dann eigentlich auch als


highway--->service--->driveway

abgebildet werden müßte. Durch die fehlenden Bezüge untereinander bei den 1:1-Schlüssel-Wert-Zuordungen, weiß man bei mehreren Tags im Grunde auch nie wirklich sicher, welche Tags auf welche beziehen und ob es überhaupt einen Zusammenhang zwischen ihnen gibt.

Mit dieser Darstellung wäre dann die Mehrfachküche:


cuisine-+--->pizza
        +--->kebab

Momentan muß man so etwas mehr behelfmäßig mit verschachtelten Relationen abbilden (für die sie ja eigentlich nicht wirklich gemacht wurden), weil mit anderen OSM-Objekten läßt sich das derzeit leider nicht realisieren. Ach ja, nur falls jemand nach der Idee hinter den verschachtelten type=health-Relationen gefragt haben sollte…

Ja und es gibt bedarf nach einer einheitlichen Lösung: http://wiki.openstreetmap.org/wiki/API_v0.7#Way_to_get_orphaned_relations_and_represent_tree_style_information_more_properly :wink:
Vielleicht ist da noch nicht verständlich genug und jemand möchte das besser schreiben oder ergänzen.