amenity & shop ( & shop & amenity)? Wie passt' es zusammen?

'Abend
Ich möchte mich dem komplexen Thema der Kombitags diverser amenity / shops oder dieser untereinander noch mal auseinandersetzen.
Und hoffe, einige von euch sehen das Problem ähnlich.
Es ist ja nun nicht zu bestreiten, das es urban sehr viele Lokalitäten gibt, die z.B. den Namen haben:
Restaurant / Cafe / Bar …

Das sind nun alles amenity tags.

Es gibt aber auch gaaaaanz viele amenity / shop Kombinationen: Liebe Köln Kenner: Wieso taggt ihr die Backerei / Cafe "Merzenich" nur als Bäckerei? Es werden sehr viele Cafe POI einfach nicht getaggt! Nur um das richtige Symbol in der Mapnik zu haben?

Ich habe eine Abfrage in Vorbereitung, um eine allgemeine Meinungsbildung zu kristallisieren. (Ich möchte noch Beispiele ergänzen). Wie machen wir hier weiter? Ihr könnt gerne hier diskutieren oder beim Umfragenentwurf (die Bemerkungen werden beim Start gelöscht) einen Kommentar abgeben. Danke für eure Aufmerksamkeit.

So dumm es sich anhört, aber im Zweifelsfall habe ich dann halt 3 nodes für ein und dasselbe Geschäft. Wo es sich vereinen lässt tu ich es.
Typisches Beispiel bei mir im Ort: Bäckerei, Tante Emma laden, Cafe. Kiosk würde auch passen.

Eine Auswerter-freundliche Lösung fände ich klasse.

  • Mit cafe=yes usw. zusätzlich zu amenity=cafe habe ich schon leichte Probleme.
  • amenity_1=cafe find ich komisch aber naja.
  • amenity=bakery;cafe fände ich auch brauchbar, solche tags verwendet aber kaum jemand und werden auch kaum ausgewertet. (Warum eigentlich?)
  • amenity:= find ich nicht so dolle.

Ideen?

Warum eigentlich WAS? Kaum verwendet oder kaum ausgewertet?

Gruss
walter

Kaum jemand verwendet, weil kaum jemand auswertet. Und warum kaum jemand auswertet, weiß ich nicht, aber möchte wissen.
Man sagt, dass PostgreSQL “;” nicht unterschtützt. Oder unterstützt, aber man kann damit nur mithilfe der RegExp-en arbeiten, die sehr langsam sind. Oder etwa so… Also, weiß nicht genau und möchte konkrete Argumente hören.

Und trotzdem, Konverter osm2mp unterstützt “;”, z. B. macht aus shop=copyshop;photo zwei verschiedene POIs mit gleichen Koordinaten: eine POI entschpricht dem Tag shop=copyshop, zweite - dem shop=photo.
Und in Overpass ist es auch leicht, Objekte mit den mehrwertigen Tags zu suchen: einfach "~"statt “=” benutzen.

Persönlich ich finde das Schema =;[;…] am besten (für Datenbank, nicht für PostgreSQL). Und wir mappen für den Renderer nicht, oder? :slight_smile:

Viele Nodes für ein Objekt, der gleichzeitig ein Cafe, ein Shop und irgendwas noch ist, ist die schlechste Variante (für Datenbank), siehe https://wiki.openstreetmap.org/wiki/One_feature,_one_OSM_element .
amenity:= und Co. sind ein Kompromiss: wiedersprechen dem oben genannten Regel nicht und können leicht bei den Software, die mit “;” nicht so gut arbeitet, unterschtützt werden. Sie gafallen mir nicht so, wie die Variante mit “;”, aber wenn die Community sich entscheidet (vielleicht durch Proposal), sie zu benutzen, werde ich auch sie verwenden.

Klassischens Henne-Ei-Problem, gell?

Bei fast jeder DB gilt: ein Feld - ein Wert. Und wenn wir hier mehrere Werte getrennt durch was-auch-immer in ein einziges Feld zwängen, ist das schon ein ganz wenig umständlicher auszuwerten.


select osm_id,
       tags->'cuisine' cuisine
  from planet_osm_point
 where 'pizza'= tags->'cuisine'                               -----  single 
;

select osm_id,
       tags->'cuisine' "cuisine" 
  from planet_osm_point
 where 'pizza' = any (string_to_array(tags->'cuisine',';'))   ------ any
;

ergibt


   osm_id   | cuisine 
------------+---------
  412971260 | pizza
 2778021468 | pizza
  809644200 | pizza
 1651311771 | pizza
 1752453821 | pizza
...

   osm_id   |        cuisine        
------------+-----------------------
 1752453821 | {pizza}
  746870546 | {pizza}
 2840680126 | {pizza}
 3637817400 | {pizza}
 2484709693 | {pizza}
 2004586248 | {pizza}
 2107671825 | {pizza}
 1671651337 | {grill;pizza}
 2884161263 | {pizza}
 1360200035 | {pizza}
 2882546441 | {pizza}
 1011699430 | {pizza}
 2787063059 | {pizza}
 2787063058 | {pizza}
  441137705 | {pizza}
 3373125686 | {pizza}
 2317505550 | {pizza}
 3373125720 | {pizza}
 3327435737 | {pizza}
 1750029200 | {pizza;döner}
...

also nur eine etwas andere Query, wobei die zweite Query alle “Pizzen” findet.

Ich musste hier im Beispiel cuisine nehmen, da es nur einen einzigen Node mit amenity=shop;cafe in der DB gibt. Das würde aber genauso funktionieren.

Gruss
walter

tl;dr: reine Unwissenheit oder gar Faulheit der Auswerter

Soll heissen, nachdem immer das Semikolon als “Sammler” im allgemeinen abgelehnt wird. Auswertung geht zwar, aber zu komplex?

Ich möchte euch nun mit einem neuen Vorschlag schocken.
Es geht ja um das gleichzeitige taggen von amenity und shop innerhalb einer node. Im Prinzip beisst sich nichts. Aber eben deshalb klappt’s auch nicht mit der Auswertung. In meiner Firma haben wir für Aufträge der Techniker in der IT den Begriff “Prio” für Wichtigkeit…
Ist das nicht auch was für uns zur Definition der Wichtigkeit eines 1-level Tags innerhalb einer node?
Man kann die Priorität auch ganz kurz fassen mit einer Ziffer und dann nochmal den Grundtag prioisieren. Beispiel:

amenity:1=restaurant
amenity:2=cafe
shop=wine
prio=amenity

oder:

shop:1=bakery
shop:2=pastry
amenity=cafe
prio=shop

Kurz, aber knackig. Gleichzeitig kann das richtige Symbol in den Maps gerendert werden.
Dieser Beitrag steht ganz unter meinem neuen Motto (untenstehend)…

Anh:
Ohne die amenity / shop Ergänzungen ginge auch:

shop=bakery
amenity=cafe
prio:1=shop
prio:2=amenity

Damit brauchen wir nur 1 neues Tag als Proposal

Nö eben nicht. Man meint nur, das wäre komplex, dabei ist es ganz einfach.

Gruss
walter, den so leicht nix schockt.

Wie es sich mit der Laufzeit und Speicher verhält wäre interessant. Bei vielen Daten könnte es hier vlt schon Probleme geben.

Vielleicht ist amenity_1=* oder shop_1 nach Prio doch eine Überlegung wert. Viele Mapper und Editoren machen es ja bereits so.
Das bekannteste dürfte name_1 sein mit rund 800000 Vorkommnissen.

Allerdings meistens aus Unkenntnis. iD hat diese Tags aus Verlegenheit erfunden, weil es keine Fehlermeldungen, Nachfragen etc. anzeigen will … und viele Mapper sind drauf reingefallen, haben diese Tags an Objekten gesehen und gedacht: Ach so muss man das machen, und sie fleißig verwendet.

Und genau name_1=* zeigt, dass diese Tags vor allem Versehen und Unkenntnis entspringen. Denn statt name_1=, das semantisch völlig unklar ist (‘irgendein weiterer Name’), haben wir wunderbare Tags: old_name=, local_name=, official_name=, intl_name=, short_name=, abbr_name=* … und notfalls immer noch alt_name=. All diese schönen Tags werden weniger verwendet, weil man unbesehen name_1= verwendet …

Also: Wenn man so etwas wie shop:1=, shop:2= wohldefiniert als Priorisierungs- und Gewichtungsmöglichkeit einführt, finde ich das eine interessante Idee, OK. So etwas könnte dann für shop:#=, amenity:#=, craft:#=* definiert werden, OK. Aber diese xxx_1-Tags (mit ‘_’ statt ‘:’) sollte man schon gerade deshalb nicht verwenden, weil sie dank iD bereits verbrannt sind und es nicht mehr möglich ist, ihnen eine klare Bedeutung zuzuweisen.

Hört sich ja schon mal positiv an. Danke.
Ich möchte aber nichts überstürzen und doch zum Wochenende erstmal die Umfrage starten. Bitte dort noch Formfehler oder Fragenänderungen diskutieren.
Leider momentan sehr wenig Zeit, daher wird es etwas dauern, bis ich:

  • erstmal einen deutschsprachigen Vorschlag erstellt habe, wenn gewünscht, und noch etwas länger bei entsprechender Akzeptanz,
  • ein internationales Proposal für die Priorisierung von amenity / shops zu erstellen ( dieses Jahr nicht mehr ).
  • Ohne jetzt für die Umfrage beeinflussend zu sein, möchte ich doch meine persönliche Meinung kundtun und sagen, das dieses Problem, egal mit welchen Kombis, von vornerein ordentlich geklärt hätte werden müssen und eine Priorisierung nun wirklich kein Problem für die Renderer sein sollte.
  • Leider doch etwas Eigenkritik: Es könnte sein, das die subjektive Sortierung der Tags von einem anderen Mapper anders gesehen wird und es deshalb zu unnötigen Diskussionen kommen könnte. Aber das ist ja noch Zukunftsmusik, wenn sowas eingeführt werden sollte.

Moin,

ist ja lustig wie hier Ideen diskutiert werden, aber gibts da auch Wiki-Seiten und Proposals zu? Ich sehe keinen Grund von der etablierten Semikolon-Technik abzuweichen.

LG,

-moenk

@moenk: Überschnittene Beiträge. Es gibt erstmal eine Abfrage und danach geht’s weiter. Welche etablierte Semikolon-Technik?

Rogehm,

ich dachte so an diese hier: http://wiki.openstreetmap.org/wiki/Semi-colon_value_separator

LG,

-moenk

Ok. Danke. Die Seite hatte ich übersehen. Ich werde die Abfrage dementsprechend noch umbauen. Sonntag morgen > Start. OK?

Abfrage oder doch Umfrage?

Dass du nach der heutigen Diskussion und meinen Beispielen die Semicolon-Trennung nicht kennen willst, kommt mir mehr als seltsam vor.

Gruss
walter

Moment mal. Seit wann taggen wir z.B. amenity=cafe;bar. Ja, hier.
Ist das tagging irgendwie bei den Usern angekommen? Meine Umfrage beinhaltet nun auch diese Antwort. Und die entsprechende Auswertung der Umfrage erzeugt die nötige Gegenreaktion. Daher versuche ich ( leider immer noch mit nur 10 Antworten ) eine allgemeine Meinungsbildung hinzubekommen.

Die letzten Threads bezogen sich auf das allgemein angewendete Verfahren, mehrere Values an einen Key zu hängen und die dazu durch “;” zu trennen. Die Aussage, dass die Auswertung zu schwierig sein, habe ich wohl widerlegt.

Wenn du eine Sonderlösung für amenity willst, viel Spass.

Hier mal eine Liste der ersten 50 weltweiten Amenities mit mehrfachen Values:


select amenity
  from planet_osm_point
where strpos(amenity,';') > 0
limit 50;

            amenity            
-------------------------------
 shelter;bench
 shelter;bench
 shelter;bench
 shelter;bench
 shelter;bench
 car_wash;car_repair
 bank; atm
 parking;fuel
 atm;waste_disposal
 pharmacy;doctors
 parking;fuel
 parking;fuel
 parking;fuel
 parking;fuel
 parking;fuel
 parking;fuel
 bus_station;cafe
 pharmacy;dentist
 bar;restaurant
 bar;pub;restaurant
 cafe;coworking_space
 clinic;hospital
 atm;pharmacy
 waste_basket;recycling
 parking;fuel
 waste_basket;recycling
 bar;cafe
 waste_basket;recycling
 shop;cafe
 parking;fuel
 post_box;bicycle_parking
 restaurant;bank;fast_food
 fuel;atm
 atm;bank
 bar;restaurant
 restaurant;cafe
 nightclub;restaurant
 place_of_worship;cafe
 bicycle_parking;parking_space
 jeep_terminal;restaurant
 bar;restaurant
 theatre; restaurant
 restaurant;place_of_worship
 bar;nightclub
 waste_basket;recycling
 pub;ktv
 dentist;bank
 place_of_worship;bank
 fuel;toilets
 atm;bank
(50 Zeilen)

eine komplette Liste stelle ich dir morgen gerne zur Verfügung.

Gruss
walter

ps: Es könnte natürlich sein, dass das ganze hier ein Missverständnis ist, aber dann solltest du dich konkreter ausdrücken.

Ja, hast du. Das heisst: amenity oder shops tags könnten durchaus mit ; getrennt werden. Und dann?
Erzielen wir hier den Erfolg des privorisierten Taggings?
Was ist mit Kombis amenity / shop? Ich denke, man sollte eine Kombination hinbekommen um die Integration von amenity + shop, sowie der Reihenfolge dieser untereinander hinzubekommen.

Vielleicht ein Beispiel:

name=Café “welcome, refugees”
amenity=cafe;bar
shop=bakery
prio=cafe

So hätten wir ein Cafe mit alkoh. Getränken und Food, auch eine Bäckerei mit Thekenwaren, bevorzugt als Cafe gerendert.
Anh.: Ob Semikolon amenities in den Apps gefunden wird? Habe ich noch nicht geprüft z.B. bei OSMAND

Ganz böse. amenity=bar hat nämlich eine legale Komponente, da dürfen nämlich Kinder und Jugendliche unter 18 Jahren nicht rein gemäß dem deutschen Jugendschutzgesetz. Ein Cafe ist hingegen kein Problem für diese Personengruppe. Nur weil ein Cafe auch alkoholische Getränke verkauft, wird daraus nicht gleich eine Bar.

Eben, passt nicht. Trotzdem gibt es “Restaurant, Cafe, Bar” urban zuhauf.
Aber bitte nicht als “Egal wie - Kombi” - hier musss !! eine eindeutige Priorisierung getaggt, gemeint, gerendert werden!