Hallo zusammen,
ich möchte Euch ein neues Projekt vorstellen, bitte um Euer Feedback und würde mich natürlich über Mitmacher freuen.
Check The Places gleicht Informationen über Ketten wie z.B. Geschäfte, Fast Food oder Tankstellen zwischen All The Places und OSM ab. Es ist ein QA-Werkzeug für Mapper. Es finden kein Import oder automatische Änderungen statt. Es erstellt Berichte mit Prüflisten für Mapper, die Einzelfälle selbst bewerten.
→ https://check-the-places.gitlab.io/
Viele Ketten haben auf ihren Websites eine Liste aller Filialen mit Geokoordinaten, Adressen, Öffnungszeiten und Kontaktinformationen. All The Places ist eine Open-Source-Sammlung von Web-Scrapern, um diese Daten von den Unternehmens-Websites einzusammeln.
So funktioniert es
Der Abgleich zwischen All The Places und OpenStreetMap findet nach Marke und Land getrennt statt. Im All-The-Places-Projekt laufen die Scraper wöchentlich und veröffentlichen ihre Ergebnisse. Die Daten des neuesten Durchlaufs werden für jede Marke heruntergeladen.
OpenStreetMap wird mittels Overpass API abgefragt. Für die Supermarktkette „Netto“ als Beispiel wäre die Abfrage für den erwarteten Haupttyp shop=supermarket und der name müsste Netto Marken-Discount oder Netto City sein, oder für brand:wikidata=Q879858.
Die Arbeitshypothese ist: Betreiber-Websites können ein guter Hinweis auf Eröffnungen und Schließungen sein. OSM hat typischerweise eine gewisse Verzögerung bei der Eröffnung oder Schließung von Filialen. Andererseits sind die Geokoordinaten in OpenStreetMap sehr präzise, während sie das auf den Webseiten nicht sind. Viele Webseiten verwenden geokodierte Adressen, die ziemlich ungenau sein können.
Das Ziel ist es, eine eins-zu-eins Zuordnung zwischen den Datensätzen herzustellen. Zunächst wird die website benutzt. Das funktioniert gut, wenn jede Filiale ihre eigene URL hat. Danach werden die Filialen anhand der räumlichen Nähe zugeordnet. Die Adressen werden bisher nicht verwendet. Die OpenStreetMap-Daten werden auch auf Duplikate überprüft. Die können sich ergeben, wenn z.B. ein Geschäft auf dem Gebäudeumriss getaggt ist, aber zusätzlich noch einmal als Punkt innerhalb des Gebäudes.
Als Ergebnis dieses Prozesses erhalten wir vier Mengen von Punkten:
- Übereinstimmende Punkte. Wir können in den Daten von All The Places schauen, ob zusätzliche Infos wie die Website oder Öffnungszeiten in OpenStreetMap übernommen werden könnten.
- Objekte ohne Übereinstimmung in OpenStreetMap. Dies könnten neue Filialen sein, die noch nicht erfasst sind, oder auch welche, die mit falschem Namen oder fehlenden Brand-Attributen eingetragen sind, usw. Ein Mapper sollte sich das ansehen und die Filiale in OpenStreetMap hinzufügen, falls sie wirklich fehlt.
- Objekte ohne Übereinstimmung in All The Places. Das könnten Filialen sein, die dauerhaft geschlossen wurden. Ein Mapper sollte sich das ansehen, die Versionsgeschichte des Objekts prüfen und versuchen dritte Quellen wie Zeitungsberichte zu finden. Nach eigener Prüfung könnte dann ein Licecycle-Tag, eine Änderung oder in klaren Fällen das Entfernen passend sein.
- Mögliche Duplikate in OpenStreetMap. Wenn es wirklich zwei OSM-Objekte für dieselbe Sache sind, dann sollten sie zu einem zusammengeführt werden. Manchmal liegen zwei verschiedene Geschäfte nah beieinander. In diesem Fall sollten sie einfach so bleiben, wie sie sind.
Es werden keine Änderungen direkt in OpenStreetMap gemacht. Das Ergebnis des Prozesses ist ein Bericht je Marke, in dem die obigen Befunde aufgelistet werden. Ein Mapper kann sie als Hinweise verstehen, welche Orte genauer untersucht werden sollten und dann selbst entscheiden, ob und wie die Daten verbessert werden können. Bei den OSM-Einträgen wird auch das letzte Änderungsdatum angezeigt.
Als geschlossen markierte Objekte, disused:*, was:*, abandoned:* oder shop=vacant, werden (bisher) nicht berücksichtigt.
Mitmachen!
Was Ihr tun könnt:
Nehmt Euch eine Kette vor und prüft ein paar der gemeldeten Unterschiede. Am sinnvollsten ist ein Einstieg mit einer kleinen, gut matchbaren Kette oder mit Orten, die ihr lokal kennt. Bitte keine großen systematischen Änderungen nur anhand der Berichte.
Gebt Feedback, wie die Auswertung verbessert werden könnte. Ihr könnt hier im Forum antworten oder gern auch direkt Issues erstellen.
Sagt Bescheid, welche Marken oder Kategorien Ihr gern ausgewertet haben möchtet. Ketten für die es schon Scraper gibt können mit sehr wenig Aufwand hinzugefügt werden. Falls es noch keinen Scraper gibt, erstellt bitte ein Issue im All The Places Projekt.
Eine Erweiterung auf andere Länder oder Sprachen ist möglich technisch schon vorbereitet. Das würde ich aber nur dann erwägen, wenn es entsprechende Nachfrage und eine Community in dem Land gibt, die mitarbeiten will.
Bitte behandelt die Berichte nicht als Importvorlage. Wer daraus Änderungen ableitet, sollte jeden Einzelfall selbst prüfen und die üblichen OSM-Regeln zu Imports, Mechanical Edits und Quellen beachten.
All The Places als Datenquelle
All The Places als Datenquelle wurde schon ausführlich in
diskutiert. Für Check The Places werden nur Scraper berücksichtigt, die direkt auf Betreiberquellen beruhen. Scraper, die auf Dienste von Dritten zugreifen, werden deshalb nicht benutzt. Aldi beispielsweise verwendet „Uberall“ und wird deshalb nicht ausgewertet.
Die Datenqualität kann je nach Betreiber der Website sehr unterschiedlich sein. Oft sind die Koordinaten ungenau, manchmal um mehrere 100 Meter. Teilweise gibt es keine filialspezifischen Websites, was das Matching schwieriger macht. Häufig sind im Code noch Nachbearbeitungen der Daten nötig. Das alles sind Gründe, warum ich die Ketten nur eine nach der anderen hinzufüge, nachdem ich den Scraper-Code und die Datenqualität angesehen habe.
Beispiele
Ein Beispiel für gut nutzbare Daten ist Penny.
- Die Koordinaten sind genau
- Jede Filiale hat eine Website mit eigener URL
- Der Name enthält immer „Penny“
EDEKA hingegen macht Probleme:
- Mehrere Untermarken: Edeka, E-Center, nah & gut, Frischemarkt, Simmel, …
- Koordinaten ungenau, teilweise kilometerweit daneben
- Nicht alle Einträge in den ATP-Daten haben eine Website
Bei Hagebaumarkt und BauSpezi schlägt der Ansatz vielleicht ganz fehl, wenn viele Filialen nicht einmal den Markennamen tragen.
Diese Unterschiede sind auch der Grund, warum die Ergebnisse je Marke getrennt sind und warum nicht alle ATP-Scraper automatisch übernommen werden.
Ähnliche Projekte
Es gab schon mehrere Ansätze zur Verwendung der ATP-Daten.
- ATP-OSM experimental matcher – Dieses Projekt versucht, alle Daten aus ATP mit OSM abzugleichen. Die Ergebnisse werden pro Gitterquadrant dargestellt, wohingegen Check The Places die Ergebnisse für eine ganze Kette in einem Land auflistet.
- Chain Reaction – Abgleich von OSM POIs mit Listen wie ATP, Geolytix’ Retail Points und anderen. Nur in UK.
- atp2osm – Import von Öffnungszeiten und Kontaktdaten aus ATP für in OSM bereits existierende POIs. Nur in Frankreich.
- qa-atp-osm – Skripte, um Unterschiede zwischen OSM und ATP aufzulisten.
- All The Places US Import – einmaliger Import von ATP-Daten auf existierende OSM-Objekte nur in den USA.



