Vorschlag für autom. Edit: Schreibweise Straßennamen

@Oli-Wan:
Ich denke, daß die “Strassen” meist mit Systemen aufgenommen wurden, die keine Umlaute und ß zur Verfügung stellen. Jedenfalls bin ich in der Anfangszeit auch häufig auf aufgelöste Umlaute gestoßen. Der Ersteller hat wahrscheinlich angenommen, daß das einfach automatisch korrigiert werden könne.

Baßtölpel

Hallo Edbert, das stimmt natürlich alles. Aber nein, bisher werden solche möglichen Fehler nicht einmal herausgefiltert. Leider ist es nicht so einfach, potentielle Probleme mit Getrennt- oder Zusammenschreibung auch nur halbwegs sicher zu erkennen: Adenauer Straße, Adenauer-Straße, Adenauerstraße - alle diese Schreibweisen können richtig sein und ich sehe keinen Weg, hier Objekte mit erhöhter Fehlerwahrscheinlichkeit auszumachen, um einem Mapper nicht tausende völlig korrekte Straßen vorlegen zu müssen. Einzig AdenauerStraße und Adenauer straße dürften eindeutig falsch sein (wobei ohne Ortskenntnis kaum zu entscheiden ist, wie sie richtig heißen müssen).
Buchstabendreher und fehlende Buchstaben wären noch ein Thema, wo man evtl. was machen könnte: Strße, Strßae, Staße. (Gegenbeispiel: Straß kommt bisweilen tatsächlich vor.) Von diesen ist “Staße” allerdings das einzige Beispiel mit nennenswerter Häufigkeit (vor allem in addr:street). Dann gibt es noch die asynchron betätigte Umschalttaste: STraße, sTraße. In jedem Fall danke für die Anregungen, ich hebe sie mir mal für eine spätere Erweiterung auf.

Nachtrag (und Notiz für später): Stra0e (falsche Taste erwischt) ist auch noch “beliebt”; ferner kommen gelegentlich vor: Stra9e (weit daneben) und Stra-e (falsches Tastaturlayout) sowie Straβe (Beta, vermutlich aus Zeichensatz eingefügt) und Straẞe (Versal-ß Unicode U+1E9E, in UTF-8 bekannt als \341\272\236 bzw. E1 BA 9E; Herkunft dito); Strase (in “Strasse” auch noch ein s vergessen).
Außerdem das allseits beliebte in Strae (replacement character \357\277\275 bzw. EF BF BD).

Gegenbeispiele, bei denen es sich höchstwahrscheinlich nicht um falsch geschriebene “Straßen” handelt: Strate, Strade, (Magi)strale, (Johann-)Strawe(-Weg).

Da liegt genau das Problem. Wenn man davon ausgehen könnte, dass menschliche Korrektoren die Sache letztlich besser machen würden als ein Bot, sollte man ihnen dies in der Regel überlassen. Ich denke aber, dass es viele Fälle gibt, wo für einen Bot schon ein gewisses Fehlerpotential besteht, es aber dennoch menschliche Korrektoren schlechter machen würden.

Dieses muss natürlich für einen verantwortungsvoll betriebenen Bot auch gelten. Die Sonderfälle müssen eben in eine Ausnahmenliste aufgenommen werden.
Eher zweigt sich hier der Nachteil menschlicher Korrektoren. Wenn man einen überzeugt hat, wird der nächste noch nicht vom Korrigieren des vermeintlichen Fehlers ablassen. Ein note Tag oder ein Changeset-Kommentar mag in manchen Fällen helfen, auch weitere potentielle Korrektoren vorab zu überzeugen.
Wenn ein Bot Edits durchführt, die ein gewisses Fehlerpotential haben, müßten diese natürlich auch geprüft werden.
Da dies vermutlich nur manuell geschehen kann, wäre nur ein halbautomatisches Vorgehen möglich. Je nachdem wie man es macht, würde man dabei sogar eventuell aus dem Gültigkeitsbereich der Policy für automatische Edits herausfallen.

Zuerst gilt erstmal die Grundannahme, dass der Mapper, der das so eingetragen hat, dies absichtlich so gemacht hat. Wenn man etwas ändert, dann sollte man es besser wissen, als der Mapper, der es eingetragen hat. Auch so ein ungeschriebenes Gesetz bei OSM.

Wenn man etwas nicht besser weiß, sollte man die Finger davon lassen. Da ein Bot eben genau dies nicht kann, da man aus der Ferne nicht pauschal sagen kann, XYZ steht auf dem Schild, sollte ein Bot davon die Finger lassen.

Wenn man keine anderen Quellen hat wie offizielle Straßenlisten, stimme ich zu, dass ein nachschauen vor Ort sinnvoll wäre, auch wenn dass Beispiel mit der Dessauerstraße zeigt, dass man sich nicht einmal sicher sein kann, wenn man ein Straßenschild gesehen hat.

Würde es vieleicht noch irgendwelche anderen Daten geben, die man zwar nicht in OSM übernehmen darf, die aber ein Bot lagal für die Entscheidung nutzen könnte, die Änderung nicht zu machen?

Das mit dem Layer oder OSB dürfte gut funktionieren, wenn man Namen anzeigt, die mit einer mittleren Wahrscheinlichkeit falsch sind und dies auch von den abarbeitenden Mappern so erkannt wird.

Wenn die Wahrscheinlichkeit des Fehlers jedoch sehr hoch ist, würden dies sicher einige Mapper dazu verleiten, diese potentiellen Fehler ohne vor Ort Erkundung zu bearbeiten. Vermutlich dürften diese auch schneller sein, als ein Mapper der sich die Erkundung vornimmt. Wenn ein Sonderfall vorliegt, ist das Ergebnis für die Datenbank zunächst mal nicht anders, als wenn der Bot diesen falschen Namen eingetragen hätte.
Jedoch sehe ich viele entscheidende Vorteile, wenn der Bot diesen falschen Eintrag gemacht hat:
-Der Bot kann dann eine Aufforderung zur vor Ort Nachkontrolle in OSB setzten. Ich würde erwarten, dass diese weniger anfällig ist, von einem Schreibtisch-Mapper geschlosen zu werden, als der Hinweis auf einen sehr wahrscheinlichen Fehler.

  • Beschwerden über die falsche Änderung würden zentral beim Bot-Betreiber ankommen und könnten gesammelt werden. Wenn ein Bot den Fehler gemacht hat, ist auch die Wahrscheinlichkeit höher, dass sich jemand meldet, wenn er den Fehler erkannt hat.
  • Wenn tatsächlich eine vor Ort Erkundung erfolgt und ein Sonderfall festgestellt wird, ist der Revert in der Versionsgeschichte deutlich aussagekräftiger, als wenn nur der OSB Eintrag ohne Aktion geschlossen wurde.

Aus diesen Gründen bin ich der Meinung, dass der Weg mit dem Bot wohl formal nicht die ganz saubere Lösung ist, aber letztlich die beste Lösung ist, um einen guten Datenbestand zu erreichen.

Da ich keinen weiteren Widerspruch sehe (stattdessen sogar Vorschläge zu weitergehenden Bearbeitungen, denen ich eher skeptisch gegenüberstehe), habe ich den Probebetrieb gestartet: bis auf weiteres werde ich etwa einen Änderungssatz pro Tag starten, jeweils beschränkt auf 10 Objekte.
Wenn dieser einige Wochen fehlerfrei funktioniert (bzw. noch auftretende Probleme behoben sind), folgt der Regelbetrieb mit allen Objekten, die vom Filter geliefert werden.

Erster Änderungssatz des Probebetriebs: http://www.openstreetmap.org/browse/changeset/14230380

Legst du noch eine wiki-Seite für Wall-E an und fügst sie der Kategorie zu: http://wiki.openstreetmap.org/wiki/Mechanical_Edits

Eine Rumpfseite habe ich soeben angelegt; in den nächsten Tagen werde ich die Informationen aus dem Eröffnungsposting dorthin übertragen, ergänzen und aktualisieren.
http://wiki.openstreetmap.org/wiki/User:Oli-Wan/Wall-E

Das Problem Falschschreibung von Gerhart-Hauptmann-Straße habe ich mal etwas untersucht:
Ich habe folgende Schreibweisen gefunden:
Gerhart-Hauptmann-Straße: 758 Wege mit 4400 Knoten
Gerhard-Hauptmann-Straße: 79 Wege mit 395 Knoten
Gerhardt-Hauptmann-Straße: 14 Wege mit 48 Knoten
Gerhart Hauptmann Straße: einige wenige Wege
Gerhart-Hauptmannstraße: einige wenige Wege
Sicherlich gibt es noch einige weitere Varianten.

Der prozentuale Anteil des korrekt geschriebenen Straßennamens ist damit deutlich höher, als ich dies aus der zuvor genannten Anzahl für Gerhard-Hauptmann-Straße erwartet hätte. Das liegt natürlich auch daran, das es sich bei der zuvor genannten Zahl von Straße nur um OSM Wege handelt, von denen es natürlich entsprechend mehr gibt.

Wenn die verschiedenen Schreibweise nicht fast beliebig zufällig verteilt sind, haben abweichende Schreibweisen, im Gegensatz zu meinen Erwartungen, zumindest noch einen theoretisch möglichen Restinformationsgehalt, auch wenn zu vermuten ist, dass dies alles Fehler sind.
Damit hätte ich dann auch gewisse Bedenken, diese Restinformation einfach per Bot zu vernichten, auch wenn mir die Vernunft sagt, dass dies wahrscheinlich für die Datenqualität letztendlich das Beste wäre.

Dann bliebe eigentlich nur noch die Möglichkeit, OSB Einträge zu generieren. Dies könnte der Bot gut machen, ohne potentielle Fehler machen zu müssen. Wenn man unter Hinweis auf die Möglichkeit eines abweichenden Namensgebers dazu auffordert, den Bug nur nach vor Ort Erkundung zu bearbeiten, und darum bittet, im Falle eines tatsächlichen Sonderfalls ein note-Tag zu setzen, so würde man potentiellen Sonderfällen zumindest theoretisch gerecht werden. Praktisch fürchte ich aber, dass dies leider teilweise anders aussehen wird.

Bei meinen Untersuchungen habe ich noch eine andere Entdeckung gemacht:
Oft grenzen falsche Schreibweisen an andere Schreibweisen (teils korrekte, teils auch wieder falsche) an.
Daraus sollte sich doch ein verallgemeinerter Ansatz ableiten lassen, um wenigstens einen Teil der Schreibfehler automatisch zu erkennen und OSB Einträge zu generieren. Man müßte nur nach benachbarten Wegen suchen, deren Namen sich abgesehen von typischen Schreibfehlern nur geringfügig unterscheiden.

Wenn man dann noch in die history geht und feststellt, daß der richtig geschriebene Abschnitt nachträglich berichtigt worden ist, kann man fast sicher davon ausgehen, daß die ganze Umgebung korrigiert werden kann. Übrigens, die angrenzenden addr:street Informationen nicht vergessen.

Baßtölpel

Ein weiterer exotischer Fall, der mir untergekommen ist: http://www.openstreetmap.org/browse/way/192725773 (und weitere in der Umgebung)
Hier hat ein Potlatch-Anfänger offenbar Gebäude mit name=“Straße Hausnummer” statt addr:* getaggt, das sieht man durchaus öfter. Außerdem hat er aber statt building=* highway=living_street verwendet, was ich so noch nicht gesehen habe.

Die “Strassen”-Korrektur würde name=“Eggenfeldener Str. 42” zu name=“Eggenfeldener Straße 42” ersetzen. Ich frage mich nun, ob es Sinn macht, solche Fälle (wo dem Straßennamen eine Zahl folgt) auszusparen. Einerseits ist hier so viel falsch, daß es mir widerstrebt, nur einen Fehler zu korrigieren und den Rest unangetastet stehenzulassen; andererseits macht der Bot ja nichts kaputt, sondern berichtigt zumindest einen von mehreren Fehlern, und er kann auch nicht den Anspruch haben, sämtliche Mißstände in der OSM-Welt zu beheben. Ich tendiere daher im Moment dazu, hier keine Sonderregel einzubauen.

Natürlich kann man diesen Einzelfall manuell korrigieren, aber solche Fälle können jederzeit wieder auftreten.

Ich würde sagen, dass der Bot hier ganz normal arbeiten sollte. Dafür ist er schließlich da. Alles was darüber hinaus geht, kann man besser separat kenntlich machen. Zahlen in Straßennamen sind ja auch nicht immer falsch. AFAIK gibt es auch bei uns Regionen, wo die Straßen zumindest teilweise einfach durchnummeriert sind. Von Straße des 17. Juni (oder so ähnlich, mal nicht zu reden).

Ja, insbesondere in Berlin scheint das häufiger vorzukommen (realsozialistisches Relikt?), ferner auf diversen Werksgeländen. Dann gibt es auch noch Fälle wie “Bundesstraße 5”. Oft mag es sich um Fehleinträge handeln, die eigentlich in ref=“B 5” gehören, aber gelegentlich werden tatsächlich Straßennamen wie “Bundesstraße” vergeben, (korrektes) Beispiel: http://www.openstreetmap.org/?lat=50.64307&lon=6.19655&zoom=16&layers=M

  1. Juni, 18. Oktober, 13. Januar, 18. März, 8. Mai, 3. Oktober - alles dabei. Ich hatte auch allenfalls an jene gedacht, wo die Zahl direkt auf den Straßennamen folgt.

Ein zu simpel strukturierter Filter findet bei der Suche nach den “Straßen des Feiertags” auch noch etliche Straßen des Friedens, Aufbaus, Fortschritts, Bergmanns, Roten Kreuzes, Bohrhammers, Handwerks, …

Erweiterungsvorschlag

Angeregt durch Edberts Hinweise habe ich mich auf die Suche nach weiteren “einfachen” Tippfehlern in “Straße” bzw. “-straße” gemacht. In den folgenden genannten Fällen kann man meines Erachtens davon ausgehen, daß tatsächlich “Straße” gemeint war und ein Tippfehler vorliegt, und ich möchte daher vorschlagen, auch diese zu “Straße” bzw. “-straße” zu ändern:

  • fehlende Buchstaben: Strße, Sraße, Staße
    Gegenbeispiel: Straß kommt bisweilen tatsächlich vor. Könnte “Staße” ebenfalls mancherorts legitim sein?

  • vertauschte Buchstaben: Strßae, Starße

  • asynchron betätigte Umschalttaste: STraße, sTraße

  • ß (kleines Eszet) durch falschen Buchstaben ersetzt (nur die explizit genannten Fälle):
    [list=*]

  • Strase (“Strasse” versucht, ein s vergessen?)

  • Stra0e (eine Taste daneben gehauen)

  • Stra9e (zwei Tasten daneben gehauen)

  • Stra-e (falsches Tastaturlayout)

  • Straβe (kleines beta)

  • Straẞe (Versal-ß, großes Eszet)

  • Stra?e (in diesem Forum nicht verwendbarer “replacement character” EF BF BD in UTF-8)

Gegenbeispiele: Strate, Strawe, Magistrale, ...; daher sollen nur die explizit genannten ersetzt werden[/*] [/list] Diese Ersetzungen sollen auf die gleiche Objektkategorie angewandt werden wie die ursprünglichen Ersetzungen der gängigeren Fehler, also auf Wege mit Straßen-Tags (highway=path ... =motorway), grenzgenau auf DE beschränkt.

Mehrheitlich finden sich die genannten falschen Schreibweisen allerdings in addr:street, werden also bei der Korrektur von Adressen erneut interessant werden.

Edit: Ergänzung Starße

Meine Zustimmung hast du.
Starße (a, r vertauscht) passiert mir gelegentlich. Meistens merke ich es, aber manchmal rutscht es doch durch.

Bei addr:street wird der Unterschied zur nächsten Straße noch interessant, insbesondere Worttrennungen, Abkürzungen, Tippfehler, Verdrehungen usw. Wobei es schwierig wird einzuschätzen, ob die Straße richtig geschrieben ist.
Ich erinnere mich an eine Leibnitzstraße, in der ich alle Adressen brav korrigiert hatte. Bis dann jemand auffiel, dass die Straße korrekterweise Leibnizstraße (z statt tz) hieß. Dann durfte ich die Adressen alle nochmal anpassen.

Edbert (EvanE)

Du bist offensichtlich nicht der einzige. Hab’s mit aufgenommen, auch wenn es derzeit nur in addr:street vorkommt.

Bei manchen sind die Finger und das Denken gelegentlich unterschiedlich schnell. :slight_smile:

Edbert (EvanE)

Bezüglich der Ergänzungsvorschläge stimme ich folgenden uneingeschränkt zu:

  • Asynchrone Umschalttaste in jeglicher Kombination einschließlich “?” statt “ß”.
  • “ß” ersetzt durch
    – kleines beta
    – Versal-ß meinetwegen auch, auch wenn mir nicht klar ist, wie jemand dies erzeugt haben soll.
    – “0” oder “9”, da “Stra0e” und “Stra9e” optisch “Straße” ähnlich sind.
    – zusätzlich noch “8” oder “B”, da “Stra8e” oder “StraBe” optisch “Straße” noch ähnlicher sind und eventuell als Ersatzzeichen bei fehlendem ß verwendet sein könnten.

Wenn es denn zu den fehlenden oder vertauschten Buchstaben kommt, beginnt langsam das Ratespiel.
Wenn man zugesteht, dass Buchstaben im Wort “Straße” fehlen oder vertauscht sein können, muss man dies eigentlich auch anderen potentiellen Namen zugestehen.

Aufgrund der hohen Wahrscheinlichkeit des Auftretens von “Straße” im Straßennamen wurde ich zumindest bei den explizit aufgeführten Beispielen davon ausgehen, dass dass Restrisiko hinreichend gering ist, sofern es sich bei dem vermeintlichen “Straße” um ein eigenständiges Wort handelt. In diesem Fall würde ich nicht erwarten, dass ein Mensch dies anders korrigieren würde.

Wenn dass vermeintliche “straße” jedoch nur ein Wortbestandteil ist, ist es bei fehlenden oder vertauschten Buchstaben noch unsicherer, dass die die Grenze der Wortbestandteile an der vom Bot erwarteten Position liegt. Wenn es hier zu einer Fehleinschätzung kommt, hat der resultierende Name nicht nur einen kleinen Schreibfehler sondern enthält völligen Unfug, der aber schlimmstenfalls noch korrekt aussehen könnte.

Zunächst einmal sollte der Bot eine Validierung des potentiell korrekten Namens versuchen. Findet sich dieser in benachbarten OSM-Wegen oder auch in addr-Tags wieder, dürfte der Ersetzung nichts im Wege stehen. Ebenso könnte eventuell eine Validierung über Straßenlisten erfolgen.

Ist diese Art der Validierung nicht möglich, sehe ich zwei mögliche Alternativen:
Entweder wird ein OSB Eintrag erzeugt
oder der Name wird auf Verdacht ersetzt und es wird spezielles Protokoll geschrieben, dass dann manuell nachkontrolliert werden muss.

Damit die Nachkontrolle zügig erfolgen kann, sollte dieses Protokoll nur die problematischen Fälle enthalten, damit die Aufmerksamkeit nicht durch Standardfälle verlorengeht.
Das Protokoll sollte eine Tabelle enthalten mit altem Namen und neuem Namen. Hinzukommen sollten aber noch einige Spalten, in denen der alte Name kunstlich mit Bindestrichen modifiziert wird.

Nehmen wir an, der Bot findet “Gleistrase” vor.
Das Protokoll sollte dann enthalten:
“Gleistrase”, “Gleistraße”, “Glei-strase”, “Gleis-trase”, “Gleist-rase”
Wenn man in den letzten beiden Spalten auf etwas halbwegs vernünftiges stößt, sollte man verdacht schöpfen. Ebenso wenn Spalten 2 und 3 nichts halbwegs vernüftiges enthalten. Ich denke mit dieser Darstellung überliest man die Problemfälle nicht so leicht.

Alternativ könnte der Bot natürlich das Protokoll auch als Vorschlagsliste schreiben und erst nach manueller Freigabe die Ersetzung im nächsten Lauf wirklich durchführen.

Unter der Bedingung einer erfolgreichen Validierung (auch bei separatem Wort) könnte man Filterregeln wohl noch deutlich aufweichen.

Edit: fehlendes nicht ergänzt.

Also auf meiner Tastatur gibt es beide. ẞ auf Shift-ß und β auf Shift+Mod3-b. [1]

[1]www.neo-layout.org

Keine Ahnung, wie viel Logik du in den Bot stecken würdest, aber meiner Ansicht nach ist es in diesen Fällen mit einem “blinden” finden und ersetzen nicht getan.

Ich denke, in diesem Fall wäre es sinnvoller, dem Bot das eindeutige zu überlassen und den Rest zu sammeln und in einen Maproulette-Service zu übergeben. Seien es nun mögliche Vertipper, möglicherweise falsch geschriebene Namen etc.

Die Gefahr bei einem Bot ist nicht nur, dass er Unsinn hinterlässt, sondern auch dass er andere Mapper vergrault, in dem er ihre Arbeit kaputt macht.