User:Oli-Wan/Wall-E/MechEditFixStraße

From OpenStreetMap Wiki
Jump to: navigation, search

Korrektur der Schreibweise von Straßennamen Deutsche Flagge.jpg

Einführung

Ziel der Korrektur ist die Beseitigung falsch geschriebener Straßennamen, welche das Wort "Straße" enthalten; hauptsächlich geht es um die falsche Schreibweise "Strasse" und die Abkürzung "Str." bzw. auch "Str", welche der Konvention widerspricht, daß der Gebrauch von Abkürzungen in OSM möglichst vermieden werden soll. Beispiele:

Hauptstr. -> Hauptstraße
Bahnhofstrasse -> Bahnhofstraße
Str des Himmlischen Friedens -> Straße des Himmlischen Friedens

Hierbei ist zu beachten, daß die Regeln für die Schreibweise von Straßennamen in Nachbarländern abweichen können (in der Schweiz gilt "Strasse" als korrekte Schreibweise) und ferner die Abkürzung "str." ebenfalls, jedoch für ein anderes Wort in der jeweiligen Landessprache verwendet werden kann (Niederlande: "straat"). Daher ist streng darauf zu achten, Bearbeitungen nach dieser Ersetzungsregel nur innerhalb Deutschlands anzuwenden. Dies wird durch geeignete Vorfilterung sichergestellt.

Neben den oben genannten werden auch noch einige weitere Fehlertypen korrigiert; diese sind im einzelnen im Abschnitt "Regelsatz" aufgeführt.

Bearbeitet werden ausschließlich Mf way.svg Wege mit einem gängigen highway=*-Tag, also Straßen im weitesten Sinne, und von diesen nur das name-Tag. Andere Objekte, die ebenfalls häufig nach Straßen benannt werden und ähnliche Fehler enthalten (Trafoboxen, Bushaltestellen, Telefonzellen, Kindergärten, ...) werden ignoriert. Bei diesen könnte man ggf. argumentieren, daß die "korrekte" Bezeichnung jene ist, welche der Betreiber vergeben und/oder auf das jeweilige Objekt geschrieben hat, unabhängig von deren orthographischen Mängeln. Bei Straßennamen wird dagegen allgemein angenommen, daß diese mindestens in Bezug auf den Namensbestandteil "Straße" den Regeln der deutschen Rechtschreibung folgen.

Regelsatz

Es folgt die vollständige Auflistung der angewendeten Ersetzungsregeln. Diese sind als regulärer Ausdruck implementiert, werden hier jedoch der Verständlichkeit halber in Klartext wiedergegeben.

(1) Strasse/Str/Str. -> Straße
(2) strasse/str/str. -> straße

Diese Korrekturen werden jedoch nur durchgeführt, wenn der ursprüngliche Ausdruck am Wortende steht (genauer: wenn ein Leerzeichen oder das Stringende folgt; alternativ auch eine Ziffernfolge, in diesem Fall wird ein zusätzliches Leerzeichen eingefügt). Bei "Str" ist dies ohnehin erforderlich, da es sonst zu offensichtlich falschen Ersetzungen wie Strandallee -> Straßeandallee käme; darüber hinaus verhindert die Bedingung auch die Bearbeitung von Namen, die von den Orten oder Persönlichkeiten mit Namen "(zur) Strassen" abgeleitet sind (siehe Strassen bei Wikipedia), wie etwa "Zur-Strassen-Allee". Derzeit scheint es (in OSM) keine Straßen solchen Namens zu geben, denkbar sind sie dennoch.

In bestimmten Fällen wird die Korrektur unterdrückt. Dies betrifft einerseits Fälle, wo die Zeichenfolge "strasse" legitim auftritt und kein Schreibfehler von -strasse vorliegt (sondern s und trasse zusammentreffen):

(E1) Gastrasse, Gleistrasse

(auch Kleinschreibung, wie etwa in Erdgastrasse). Hier wäre eine "Korrektur" falsch - außer wiederum im Fall einer Olga-strasse, für die eine Ausnahme von der Ausnahme eingerichtet ist.

Ferner gibt es auf "-gasse" endende Straßennamen, bei denen der Namensstamm auf st endet und ein bestimmter Tippfehler in "-gasse" (r statt g, angesichts der Nähe von r und g auf einer Qwert[zy]-Tastatur durchaus möglich) ebenfalls die Zeichenfolge "-strasse" erzeugt. Daher wird die Korrektur in solchen Fällen ebenfalls unterdrückt. Berücksichtigt werden derzeit die Zeichenfolgen, die sich durch Ersetzung von g durch r im Suffix "gasse" folgender Straßennamen ergeben:

(E2a) Augustgasse Baptistgasse Bastgasse Christgasse Ernstgasse Forstgasse Fronfestgasse Fürstgasse
(E2b) Geistgasse Heiligegeistgasse Heiliggeistgasse Herbstgasse Jobstgasse Jostgasse Komstgasse
(E2c) Kostgasse Kunstgasse Mostgasse Nestgasse Obstgasse Ostgasse Pfingstgasse Postgasse Probstgasse
(E2d) Rustgasse Vestgasse Westgasse Wurstgasse Wüstgasse

Die Expansion von "str." wird im Spezialfall der Zeichenkette

(E3) "Bgmstr." (Bürgermeister)

unterdrückt.

Ferner werden folgende Regeln angewandt, bei denen es im wesentlichen um die Korrektur "einfacher" Tippfehler bzw. Zeichensatzfehler geht:

(3) STraße, sTraße als isoliertes Wort -> Straße
(4) Stra0e, Stra9e, Stra-e -> Straße
(5) weitere Fälle, in denen das ß in Straße durch ein eines der folgenden Zeichen ersetzt ist:
    s, S, kleines beta, großes Eszet, Unicode replacement character
            -> Straße
(6) Staße, Sraße -> Straße

(4) bis (6) werden analog auch auf die klein geschriebenen Varianten (-straße) angewandt. Ausnahme von (6): Zeichenkette tsraße - hier kann entweder ein Buchstabendreher (s,t) oder ein vergessenes t vorliegen (für den Algorithmus schwer zu unterscheiden).

Im Fall von (3) wurde offenbar die Umschalttaste für die Großschreibung zur falschen Zeit betätigt. In den Fällen (4) ist davon auszugehen, daß der Nutzer die falsche Taste erwischt hat (0 und 9 als Nachbarn von ß auf einer QWERTZ-Tastatur) bzw. Computer und Hände sich nicht über das zu verwendende Tastaturlayout (QWERTZ vs. QWERTY) einig waren. Im Fall (5) wurde vermutlich entweder s bzw. S als Ersatzzeichen für ß benutzt oder versucht, das Zeichen ß mithilfe einer Zeichensatztabelle oder ähnlicher Werkzeuge einzufügen, bzw. im Fall des Unicode replacement character kann auch ein Softwarefehler ursächlich sein. Bei (6) ist offenbar ein Buchstabe verloren gegangen.

Schlußendlich wird auch überschüssiger Leerraum am Anfang oder Ende des name-Tags entfernt:

(A1) " A-Straße" -> "A-Straße", "B-Straße " -> "B-Straße", " C-Straße " -> "C-Straße",
     wobei der Leerraum jeweils aus einem oder mehreren Leerzeichen oder Tabs (oder sonstigen Leerzeichen im Unicode-Zeichensatz) bestehen kann.

Vorgehensweise (Skizze)

Der Korrekturvorgang faktorisiert vollständig in die Filterung eines Deutschland-Extrakts nach möglichen Kandidaten und die eigentliche Korrektur.

Zur Ermittlung möglicher Kandidaten wird zunächst ein Deutschland-Extrakt der Geofabrik nach Wegen durchsucht, die den oben genannten Kriterien genügen. Da die Extrakte grundsätzlich etwas zu groß zugeschnitten sind, wird anschließend jeder gefundene Weg dahingehend überprüft, ob er mit all seinen Knoten innerhalb eines präzisen Grenzpolygons liegt. Hierzu kommen Standardwerkzeuge der OSM-Welt (osmosis, osmfilter) und ergänzend dazu eigene C++-Programme auf Basis der Osmium-Bibliothek zum Einsatz.

Für die Korrektur wird GNU Emacs mit einem speziellen OSM-Paket eingesetzt. Die Kandidatenliste wird als .osm-Datei eingelesen. Anschließend wird jeder Kandidat erneut vom OSM-Server geladen und die Ersetzungsregel angewandt. Wenn diese zu einer Modifikation des name-Tags führt, wird das Objekt hochgeladen. Das Herunterladen unmittelbar vor der Bearbeitung stellt hierbei sicher, daß keine Probleme (Versionskonflikte) durch veraltete Daten aus dem Extrakt verursacht werden können.

Ausnahmen, Opt-out

Aufgrund von im Zuge der Diskussion entdeckten Ausnahmefällen, bei denen die Zeichenfolge "strasse" in einem Namen legitim vorkommt und kein Schreibfehler von "straße" vorliegt, wurde eine Ausnahmeliste in das Programm eingebaut. Diese umfaßt derzeit die Ausnahmen nach Zeilen E1 und E2 und kann jederzeit ergänzt werden; eine Email über den OSM-Account genügt.

Ferner pflegt das Programm eine Sperrliste, in die jedes bearbeitete Objekt automatisch aufgenommen wird. So wird verhindert, daß dieselbe Korrektur mehrfach durchgeführt wird: Ersetzt ein Mapper im Straßennamen wieder "Straße" durch z.B. "Strasse", nachdem dieser oder ein ähnlicher Fehler zuvor bereits korrigiert wurde, findet keine erneute Korrektur statt. In diesem Fall ist davon auszugehen, daß der Mapper sich bewußt für die (vermeintlich) falsche Schreibweise entschieden hat. Hieraus ergibt sich eine sehr einfache Möglichkeit zum "nachträglichen Opt-out" durch einmaliges Rücksetzen der ungewollten Bearbeitung ohne die Notwendigkeit den Bot-Betreiber zu kontaktieren oder gar das Objekt selbst in eine Sperrliste einzutragen. Dies sollte gerade weniger versierten Nutzern entgegenkommen.

Status, Ausführungsintervall

Seit 01.01.2013 läuft das Korrekturprogramm im Regelbetrieb. Nach zunächst manuellem Start in Abständen von einer bis zwei Wochen wird das Programm seit April 2013 vollautomatisch jeweils am 07., 17. und 27. jeden Monats ausgeführt.

Zuvor wurde ein Probebetrieb durchgeführt mit einer Beschränkung auf zunächst je 10, später 20 Objekte pro Änderungssatz (bei etwa einem Änderungssatz pro Tag).

Diskussion

Die beschriebene Korrektur wurde am 04.12.2012 im deutschen OSM-Forum vorgeschlagen und in der Folge diskutiert. Vorausgegangen war ein orientierendes Meinungsbild zur Wiederaufnahme der vormals von xybot durchgeführten Korrekturen. Der ursprüngliche Regelsatz enthielt nur die Regeln (1) und (2); die spätere Erweiterung um (3) bis (6) und (A1) basiert auf Anregungen aus dem Forum.