[Erledigt] Nominatim findet die Adresse nicht. Liegt es an label/munic

Es geht um folgendes Gebäude: https://www.openstreetmap.org/way/195999263
Das Gebäude ist sauber mit addr-tags versehen.

Dennoch findet Nominatim die Addresse nicht!

Das Gebäude: addr:street=“Außenliegend”, addr:city=Hainburg

Suche bei Nominatim nach…
“Außenliegend 13, Hainburg” → Kein einziges Ergebnis
“Außenliegend 13, Hainstadt” → Erster Treffer ist Hainstadt, das Haus kommt aber nicht vor

Hainstadt (Node):

  • “admin_centre” laut Nominatim, als Teil der Relation “Hainburg”
  • node place=village, is_in=“Hainburg,Offenbach,Darmstadt,Hessen,Bundesrepublik Deutschland,Europe”

Hainburg:

  • “label” laut Nominatium, als Teil der Relation “Hainburg”
  • node place=municipality, is_in=“Offenbach,Darmstadt,Hessen,Bundesrepublik Deutschland,Europe”

Was ist ein “label”???
Hat Nominatim ein Problem mit “municipality”?

Ist die Gemeinde falsch getaggt (und das im Umfeld von Wambacher :sunglasses: ) oder ein Fehler von Nominatim?

PS: Für die Deutsche Post ist der Ortsname “Hainburg” und “Hainstadt” der Ortsteil.

municipality ist ein admin Objekt, und kein place

Stimmt nicht, siehe
https://wiki.openstreetmap.org/wiki/DE:Key:place,
wenn auch wenig gebräuchlich für Gemeindenzusammenschlüsse (AL8) aus mehreren Gemeinden ohne Zentralort, oft mit “künstlichem” Namen.
Ist dann auch oft member in der admin-Relation.

label ist eine Hilfe für den Renderer zum Platzieren des Gemeindenamens.

klar stimmt es, das Wiki ist Käse hinsichtlich dieser admin-Objekte die zu place hinzugefügt wurden. Das sind reine Dopplungen von entsprechenden admin-Objekten, ihrer Natur nach sind das Verwaltungseinheiten.

So klar ist das nicht, es gibt zumindest jemand, der es ins Wiki geschrieben hat und dort steht es unbehelligt seit Jahren.
Auch place=village/town/city sind oft Verwaltungseinheiten.
Dass diese place-nodes ab village in DE generell als Altlast kritisch gesehen werden, ist ein anderes Thema.

In anderen Gegenden der Welt, die noch so gemappt sind wie DE in 2007, ist das oft der erste Schritt zur Erfassung der Ortschaften.

das würde ich etwas anders sagen: es gibt oft auch dazu passende Verwaltungseinheiten. Die werden aber mit admin gemappt. Municipality (Gemeinde) ist dagegen nur eine Verwaltungseinheit, daher passt es nicht in place.

Heute Morgen liefert die Suche bei Nominatim für “Außenliegend 13, Hainburg” plötzlich Ergebnisse. :rage: Wenn auch völlig andere als erwartet. Gestern gab es gar keine Treffer! Kaputter Index? :roll_eyes:

Andrere Adressen im Ort die vergleichbar sind werden gefunden. Z.B “Kurt-Schumacher-Straße 19, Hainburg” (https://www.openstreetmap.org/way/831249517)

Scheint also mit “municipality” direkt nichts zu tun zu haben. Bleibt nur noch die Variante, dass “Außenliegend” eine Sonderbehandlung erfährt.

Ich bin da mit meinem Latain am Ende. :frowning:

Langsam.

Heute Morgen habe ich testweise in der Adresse den Strassennamen gelöscht und als Hausnummer “Außenliegend 13” eingetragen.

Als ich gesehen habe, dass das Problem hier mit neuem Thread diskutiert wird, habe ich die Änderung rückgängig gemacht.

Mag sein, du hast die Auswirkungen meiner Änderung beobachtet.

Edit: Grammatik

Hmm.

Eine Suche nach “Hainburg, Außenliegend 13” findet jetzt

https://www.openstreetmap.org/way/35284141#map=19/49.61790/11.24794

Das ist mitten im Wald unten in Bayern.

Eine identische Suche mit veränderten Hausnummern findet nichts.

Es wäre vielleicht gut, diese Sache in nur einem thread zu diskutieren. Es wurde in dem anderen ja bereits sehr viel detaillierteres zu der Situation geschrieben.

“Andere Adressen im Ort die vergleichbar sind werden gefunden.”

Andere Adressen wie Objekte in der Kurt-Schumacher-Strasse sind nicht mit der Situation vergleichbar. Entscheidend bei dem angesprochenen Problem ist doch, dass es keine Strasse gibt, die “Aussenliegend” heisst.

Nur leicht OT: Nominatim ist für mich persönlich ein einziges Drama. Dieses Zusammenreimen von Daten, die so nicht in OSM erfasst sind, wirft ein ganz schlechtes Bild auf OSM.

Ein unbedarfter und ortskundiger Benutzer sucht z.B. die Hauptstraße Offenburg und sieht solche Angaben (CJD, Uffhofen, Bohlsbach, Bleiche) in den einzelnen Suchergebnissen.

Der User schlägt doch die Hände übern Kopf zusammen und fragt sich, was an OSM besser sein soll wie bei den Konkurrenten.

Das sollte doch bei der Suche IN OSM-Daten keine Rolle spielen? Die Adresse wurde so erfasst und muß genau so auch gefunden und ausgegeben werden. Ob eine Straße gleichen Namens existiert oder nicht, ist Sache von QA-Tools, nicht von Nominatim.

Meine Meinung.

Da geht es aber um was anderes… Eigentlich, ursprünglich…

Genau und deshalb hat das mit dem “Außenliegend” und der Diskussion nichts zu tun.

Es wird immer besser… :open_mouth: :open_mouth: :open_mouth:

Die Suche nach “Außenliegend 13, Hainburg”

Was steckt da für ein Sinn dahinter?

Meiner bescheidenen Erfahrung nach geht die Lösung tief in die Datenbank hinein.

Kann wer beurteilen, was beim SELECT “Außenliegend 13, Hainburg” tatsächlich in der Datenbank ankommt und wie die Datenbank mit dieser Frage umgeht? Wer kann sowas untersuchen?

Ihr habt aber auch schon alle den grossen blauen Link oberhalb der Suchresultate gesehen?

Der geht auf https://nominatim.openstreetmap.org/ die Benutzung würde ich empfehlen wenn ihr die Resultate analysieren wollt, aber vielleicht macht ja das wilde Spekulieren mehr Spass.

Wenn jemand ein Christliches Jugenddorf als place=neighbourhood taggt (https://www.openstreetmap.org/node/5699462932), dann kommt halt tendenziell Mist raus. Kann man drüber jammern oder man kann die Daten fixen.

Ich habe vor ein paar Wochen den geographischen Einfluss von place=neighbourhood entschärft, dass wirkt sich aber erst schrittweise auf die Datenbank aus, weil es keinen Neuimport gab. Alles ums CCJD habe ich mal gerade aktualisiert.

Aber das nur so nebenbei.

Die Spekulationen hier sind interessant, aber leider völlig irrelevant für die original gepostete Adresse. Der Grund, warum Nominatim die Addresse nicht finden kann, liegt einzig und allein am addr:street=Außenliegend.

Nominatim berechnet die Addresse zu einer Hausnummer nicht vollständig, sondern sucht sich ein Bezugsobjekt, von dem es die Addresse verwendet. Gewöhnlich ist das eine Strasse. Dazu schaut es zuerst in das addr:street Tag und versucht eine Strasse (oder Fussweg oder Platz) in der Nähe zu finden, die den gleichen Namen hat. Wenn es da nichts gibt, dann nimmt es einfach die Strasse, die am nächsten zum Objekt ist. Eine Ausnahme von diesem Algorithmus macht Nominatim, wenn es ein addr:place Tag findet. Dann sucht es nach einem place, landuse oder admin-Boundary mit einem entsprechenden Namen und benutzt das als Grundlage für die Addresse. addr:housenumber und addr:housename werden dann noch für Hausnummer/-name benutzt. Alle weiteren addr:*-Tags an dem Hausnummer-Objekt werden komplett ignoriert.

Im Fall der originalen Addresse gab es also ein ‘addr:street=Außenliegend’. Also hat Nominatim ganz brav eine Strasse namens ‘Außenliegend’ gesucht und nicht gefunden. Da es auch kein addr:place gibt, hat es also die Hausnummer dann einfach der nächsten Strasse, in diesem Fall die ‘L 3065’.

Bei der Suche geht das ähnlich, nur rückwärts. Nominatim macht die Annahme, dass eine Hausnummer immer zusammen mit dem Namen von seinem Bezugsobjekt auftaucht. Sprich, es ist seehr unwahrscheinlich, dass jemand “13, Hainburg” eintippt, wenn er “Hauptstr 13, Hainburg” sucht. Diese Einschränkung sorgt dafür, dass viele unwahrscheinliche Suchergebnisse weggeworfen werden, aber es sorgt eben auch dafür, dass ein Objekt nicht gefunden werden kann, wenn das Bezugsobjekt, wie oben falsch zugeordnet wurde. Nominatim erwartet jetzt also zwingend ‘L 3065 13’ in der Suche, ‘13 Außenliegend’ bringt keine Ergebnisse, weil der addr:street-Tag ja weggeworfen wurde in der Annahme, dass der gleiche Name ja auch im Bezugobjekt auftaucht.

Wie schon im anderen Thread beschrieben empfehle ich, die Addressen mit

addr:place=Hainburg
addr:housenumber=13 Außenliegend

zu taggen. Dann wird die Stadt selber das Bezugsobjekt und ‘Außenliegend’ gehört halt zur Hausnummer. Leider wird das vermutlich ‘Außenliegend 13’ immernoch nicht finden, weil bei der Hausnummer die Annahme darin steckt, dass die Reihenfolge der Worte nicht beliebig ist.

Wer sich mehr dafür interessiert, wie Nominatim Adressen berechnet, dem sei mein Vortrag auf der FOSSGIS 2013 ans Herz gelegt. Was dort erzählt wird, ist immernoch aktuell: https://www.youtube.com/watch?v=f-lGGpuUtOw

Jeder hat so seine Erwartungen, was Nominatim alles erkennen soll, z.B. in den USA soll wenn die Straße ref=NY 214 getaggt ist und keinen Namen hat, Nominatim erkennen dass das das gleiche ist wie „State Highway 214“, in Italien dass „Viale Guglielmo Marconi“ auch als „Vle Marconi“ oder vielleicht auch (inkorrekt) als „Via Marconi“ gesucht werden könnte, oder „Via XXV Aprile“ als „Via 25 Aprile“ (bzw. anders rum), dass „Via Camillo Benso Conte di Cavour“ als „Via Cavour“ gesucht wird, dass „Via Rosa Raimondi Garibaldi“ nicht „Via Garibaldi“ ist (weil das nach einem viel bekannteren Garibaldi getaggt ist), und dass „Via Alessandra Macinghi Strozzi“ dasselbe ist wie „Via Macinghi Strozzi“ aber keinesfalls „Via Strozzi“.
Außerdem gibt es Gegenden der Welt, wo sich Adressen nicht auf Straßen beziehen, oder wo es Hausnamen anstatt Hausnummern sind, oder Entfernungsangaben statt Hausnummern, und manche Suchen betreffen POI Namen und nicht Adressen, Etc etc.
Das Thema ist extrem kompliziert, dazuhin sind die Angaben sowohl in der Suche als auch in der db oft unvollständig. Wahrlich keine leichte Aufgabe.

das wiederum wird im Rendering ziemlich sperrig werden :wink:

Auch wieder wahr. Dann weiss ich auch nicht so richtig weiter. Das ganze pass nun wirklich in kein Schema, was wir haben, ausser addr:full. Vielleicht dann so:

addr:city=Hainburg
addr:housenumber=13
addr:full=13 Außenliegend, Hainburg, 63512

Und dann muss halt jemand Nominatim mal addr:full beibringen.

Moin,

ich verstehe, dass die (Nominatim-)Suche in den OSM-Daten nicht ganz einfach ist.
Und ich formuliere auch oft etwas sarkastisch und überspitzt, was dann vielleicht als zu scharf rüberkommt - ich versuche mich zu bessern.

Zum Verständnis mal meinen Ansatz, wie ich die Adresssuche betrachte:

Ich verstehe die Adressangaben addr:* als Umsetzung der (geografisch relevanten) verschiedenen Felder in einer postalischen Adresse.
Beschränkt (vorerst) auf Deutschland:

übersetzt

addr:suburb
addr:street addr:housenumber
addr:postcode addr:city

Eine Suche unabhängig von verknüpften Objekten (wie highway=, place=) würde m. E. nur diese Felder in den Adress-Objekten vergleichen und könnte damit alle Address-Objekte finden.

Mir stellen sich daher zwei Fragen:

a) Woraus ergibt sich der Bedarf, das physische Strassen-Objekt einbeziehen zu müssen?
Inwiefern ergeben sich “viele unwahrscheinliche Suchergebnisse”, wenn dies nicht gemacht wird?

b) Woraus ergibt sich der Bedarf, den Ortsteil in addr:place setzen zu müssen, wenn addr:street nicht belegt ist?
Warum geht es nicht mit dem existierenden addr:suburb?

Grüße
Georg