Förderjahr 2018 / Project Call #13 / ProjektID: 3437 / Projekt: YellowOSM
Daten in Open-Street-Map werden von tausenden Freiwilligen weltweit verwaltet. Es gibt zwar Vorgaben wie Daten eingepflegt werden, aber die Vollständigkeit der Daten wird natürlich nicht garantiert. Zum einen weil es das Erfassen vollständiger Datensätze lange Zeit in Anspruch nimmt, zum anderen weil nicht alle möglichen Datenpunkte bei jedem Datensatz angewendet werden kann. Ein Beispiel: Eine Straße kann in Open-Street-Map mit verschiedenen 'Tags' annotiert werden. Der 'Key' ist meist 'highway' und der Wert die entsprechende Verwendung: motorway, footway, steps, residential, service etc. Das definiert das Grundelement Straße. Zusätzliche Eigenschaften werden über weitere Keys definiert: maxheight, surface, access, oneway, tracktype etc. Diese ermöglichen eine genau Definition wie breit oder hoch, wie die Straße befestigt ist, ob sie öffentlich zugänglich oder mautpflichtig ist, eine Einbahn oder ein Schotterweg ist. Diese Eigenschaften sind nicht immer alle erfasst. So ist es im Allgemeinen nicht nötig die maximale Breite zu erfassen, es sei denn die Straße wird sehr schmal. Selbiges gilt für access: man kann von einer Nutzbarkeit ausgehen, es sei denn 'access=private' wurde gesetzt.
Ähnlich verhält es sich bei den Daten die wir für unser Projekt aus Open-Street-Map extrahieren und nutzen. Daten zu Gewerben und Geschäften werden oft nur sporadisch erfasst. So ist es für eine Straßenkarte nicht wichtig unter welcher Firma eine Tankstelle firmiert. Alles was zählt ist, dass der Ort der Tankstelle definiert ist. Oft werden diese POIs (Points-of-Interest) nur mit Typ erfasst und verortet. Metadaten wie Firmenname, und Kontaktdaten wie Telefonnummer, E-Mail Adresse, Webseite werden ausgespart. Für Tankstellen sind diese Kontaktdaten nicht so oft relevant, aber für andere Gewerbe wie zum Beispiel einen Friseur ist das durchaus anders. Hier will man einen Termin vereinbaren, bevor man sich auf den Weg macht.
Weil die Daten in Open-Street-Map für Kontaktdaten oft unvollständig sind möchten wir diese Datensätze verbessern. Wir haben hierzu einen Bot programmiert der einem diese Arbeit erleichtern soll. Da Open-Street-Map automatische Ergänzungen verbietet (https://wiki.openstreetmap.org/wiki/Automated_Edits_code_of_conduct) bedarf es hier einem Zwischenschritt über Maproulette. Die Startdaten für die Suche nach Kontaktdaten entnehmen wir den Open-Street-Map Daten selbst. POIs mit einer Webseite, aber ohne E-Mail Adresse werden in eine Liste aufgenommen. Diese Webseiten werden automatisch besucht und nach E-Mail Adressen durchsucht. Die gefundenen E-Mail Adressen werden schlussendlich in einen Geo-Json Export gespeichert um einen Challenge auf Maproulette zu starten. Maproulette ermöglicht es kleine Veränderungen durch Editoren manuell vornehmen zu lassen. So werden alle Einträge von Menschenhand geprüft und sind keine verbotenen automatisierten Edits. Wir planen den Bot auf Telefonnummern auszuweiten.
Eine weitere Einschränkung in der Suche in Gewerbedaten in Open-Street-Map ergibt sich durch fehlende Adressen. Adressen sind Zusatzangaben, wie es die Straßenbreite oder der Straßenbelag ist. Oft werden Daten wie 'addr:city' nicht erfasst, weil es für den Eintragenden offensichtlich ist in welcher Stadt sich der Bankomat oder Supermarkt befindet. Will man diese Daten allerdings maschinell durchsuchen, erschwert die fehlende Information eine vollständige Suche. Daten wie die Adresse müssten ergänzt werden um alle Bankomaten in einer Stadt auflisten zu können.
Sucht man auf einer Karte kann man den Suchraum auf Geo-Koordinaten einschränken. Das tun wir bereits. Will man aber etwa Text-Suche oder eine API anbieten, die das Suchen nach Stadtnamen ermöglicht, wird es schwieriger. Hierzu verwenden wir wieder unsere Daten, die uns Open-Street-Map gibt. Wir analysieren welche existierenden POIs einen Adresseintrag zur Stadt haben und errechnen aus Allen einer Stadt die entsprechenden Koordinaten. So ergibt sich eine Liste aus Stadtnamen mit einer Bounding-Box, in der gesucht werden muss. Das ermöglicht uns in unvollständigen Daten nach allen POIs in Städten zu suchen. Die erhaltene Bounding-Box ergibt klarerweise nicht die tatsächlichen Stadtgrenzen, ist aber was die Relevanz der Suche vielleicht sogar besser, weil auch Betriebe gefunden werden, die sich leicht ausserhalb der Stadtgrenze befinden und relevant sein können.