x

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


Geschrieben von Oli-Wan (Gast) am 04. Dezember 2012 12:04:18: [flux]

Hallo,

bei dem im Vorgängerthread eingeholten Meinungsbild zeichnet sich ab, daß eine automatische Korrektur falsch geschriebener Straßennamen ("Str", "Str.", "Strasse") grundsätzlich auf weitgehende Unterstützung trifft. Wenn ich richtig gezählt habe: 17x "(+)", 2x "(-)". Daher möchte ich nun die detailliertere Diskussion zu einer solchen Korrektur eröffnen; mit der Bitte insbesondere an chris66, BFX und alle anderen, die prinzipielle Bedenken haben, sich hier einzubringen.

Noch einmal ausdrücklich die Frage: möchte jemand die Entwicklung/Ausführung übernehmen? Wenn nicht, mache ich das (vorbehaltlich des weiteren Diskussionsverlaufs). Und ebenfalls noch einmal der Hinweis: andere Aufgaben suchen auch noch jemanden, der sie erledigt.

Vorhaben (Zusammenfassung)
Automatische Korrektur falsch geschriebener Straßennamen in DE: "Strasse", "Str", "Str." in "Straße" umwandeln, analog für die Varianten mit kleinem "s"; angewandt auf Straßen, also Wege (ways) mit highway-Tag. Regelmäßige Ausführung.

Warum das ganze?
Auf "Straße" endende Straßennamen in DE werden stets mit "ß" geschrieben; bei den abweichenden Schreibweisen handelt es sich um Fehler bzw. um Abkürzungen, welche in OSM nicht verwendet werden (also nach unseren Konventionen ebenfalls "Fehler" sind).

Mögliche Einwände (falls weitere, bitte posten)
Man könnte einwenden, daß in OSM die Regel gilt "wir taggen, was wir sehen", und folglich, wenn auf einem Straßenschild "Bahnhofstrasse" oder "Poststr." steht, dies auch so in OSM eingetragen werden soll; und diese möglicherweise bewußte Entscheidung eines Mappers sollte nicht von einem Bot überstimmt werden.
Nach meinem Verständnis gilt besagte Regel jedoch nicht für offensichtliche Fehler - wir tragen ein Kino ja auch nicht als "ineplex" ein, bloß weil in der Leuchtreklame das "C" kaputt ist. Eine Straße in DE heißt eben nicht "Bahnhofstrasse" (sonst müßte das zweite "a" auch kurz ausgesprochen werden!) und auch nicht "Poststr." oder "Poststr". Wenn man einen Anwohner fragt, wie seine Straße heißt, wird er "Poststraße" antworten, ausgesprochen mit langem "a", und wenn man ihn bittet, den Namen aufzuschreiben, wird er - Beherrschung der deutschen Rechtschreibung vorausgesetzt - ein "ß" verwenden.
Bei anderen Objekten, die nach Straßen benannt, jedoch selbst keine Straßen sind, etwa Bushaltestellen, Umspannstationen, Einrichtungen der Gas- und Wasserversorgung, Telefonzellen, kommen die falschen Schreibweisen ebenfalls vor (in name oder ref). Hier mag man jedoch argumentieren, daß es sich um eine vom jeweiligen Betreiber genau so vergebene Bezeichnung handelt. Daher würde ich solche Objekte von Korrekturen ausnehmen wollen - daher die Beschränkung auf highway-getaggte Wege.

Caveats
Im Vorgängerthread wurde bereits mehrfach zurecht angemerkt, daß die geplante Korrektur unbedingt präzise auf DE beschränkt werden muß.
Ein Grund dafür ist, daß in manchen Nachbarstaaten Straßennamen (Schweiz, Belgien, Luxemburg?) tatsächlich als "Strasse" geschrieben werden.
Ferner wird die Abkürzung "Str." auch in anderen Sprachen verwendet, müßte allerdings anders expandiert werden (Niederländisch: straat).

Es genügt also nicht, einfach nur einen germany-Extrakt der Geofabrik nach Tags zu filtern und die Korrektur auf alle so erhaltenen Objekte anzuwenden, da die Geofabrik-Extrakte immer etwas zu groß sind. Stattdessen ist vorgesehen, den Geofabrik-Extrakt nur als erste Stufe zu verwenden und die hieraus erhaltenen Kandidaten anschließend durch ein grenzscharfes Polygon zu filtern (von aighes freundlicherweise zur Verfügung gestellt).

Vorgehensweise (Skizze)

• Filtern des Geofabrik-Extrakts germany.osm auf Wege, die folgenden Kriterien entsprechen: highway-Tag hat einen der gängigen Werte für Straßen (path bis motorway); name passt auf den Regex /[Ss]tr(\.?|asse)$/, enthält also eine der genannten Schreibweisen.
• Da im ersten Schritt die Knoten der betreffenden Wege verworfen wurden: diese vom Server aus dem Extrakt nachladen.
• Filtern durch das DE-Grenzpolygon.
• Bearbeitung: Die erhaltenen Kandidaten werden neu von der API geladen, da die Daten aus dem Geofabrik-Extrakt bereits veraltet sein können. Anschließend wird für jedes Objekt erneut geprüft, ob die Kriterien erfüllt sind; falls ja, wird das name-Tag geändert und das Objekt hochgeladen.

Verwendete Software
Die Filterung des Geofabrik-Extrakts übernimmt derzeit ein einfaches AWK-Programm; zugunsten höherer Geschwindigkeit wird dieses ggf. noch durch ein besser angepaßtes Werkzeug ersetzt. Das Filtern nach Tags erfolgt mit osmfilter. Das Nachladen fehlender Knoten erfolgt ebenfalls mit einem AWK-Programm, anschließend Verschmelzung und Sortieren der Datenströme mit osmosis. Das Filtern durch das Grenzpolygon geschieht mit osmosis (evtl. durch osmfilter ersetzt). Die eigentliche Bearbeitung inklusive der Kommunikation mit der API erfolgt schließlich mit GNU Emacs.

Konfliktlösung
Keine/optimistic locking. Sollte eine neuere Version existieren, verweigert die API das Hochladen des Objekts. In diesem Fall überspringt der Editor das Objekt und der Fehler bleibt ggf. bis zum nächsten Durchlauf erhalten.
Da die Objekte unmittelbar vor der Änderung heruntergeladen werden, sind Konflikte allerdings äußerst unwahrscheinlich.

Ausführungsintervall
Mir schwebt vor, die Korrektur im regulären Betrieb in Abständen von ca. 2 Wochen durchzuführen.
Im Testbetrieb (einige Wochen, bis einigermaßen sichergestellt ist, daß keine Fehler passieren) dagegen zunächst ca. tägliche Ausführung, aber beschränkt auf wenige (etwa 10) Objekte zwecks detaillierter Inspektion.

Account
Wall·E (hoffentlich werde ich dafür nicht verklagt)

Nachträge

Änderungssätze
mehrere Objekte in einem Änderungssatz,
vorgesehener Kommentar: Korrektur der Schreibweise von Straßennamen: Ersetzung Str/Str./Strasse → Straße bzw. -str/-str./-strasse → -straße
bot=yes und ggf. Verweise auf Wikiseite und diesen Thread

Dokumentation
vorläufig: dieser Thread; später Wikiseite

Zu beachtende Sonderfälle
Gleistrasse (vermutlich Gleis-trasse, nicht Glei-straße)
Gastrasse
(Ergänzung weiterer Ausnahmen jederzeit möglich)


Antworten: