Wir nutzten die offenen DatenbestĂ€nde des Eidgenössischen GebĂ€ude- und Wohnungsregisters (GWR), aber die Daten, die ĂŒber eine spezifische Reihe von APIs oder als Tabellenkalkulation zugĂ€nglich sind, entsprachen nicht unseren Anforderungen in Bezug auf die Abfrage- und Datenanalysefunktionen.

Wie kann man zum Beispiel nach GebĂ€uden in einer bestimmten Gemeinde und in der NĂ€he von GrĂŒnflĂ€chen suchen und dann eine Rangliste dieser GebĂ€ude anzeigen?
Die vom Eidgenössischen GebĂ€ude- und Wohnungsregister zur VerfĂŒgung gestellten Rohdaten enthielten zwar diese Informationen, sie waren aber nicht in einem Format vorhanden, das eine schnelle und unmittelbare Nutzung im Rahmen unserer Anforderungen ermöglichte.

Dieser Anwendungsfall war ideal, um auf Basis der Bundesdaten eine erweiterte Reihe von APIs aufzubauen. Wir konnten dabei auf die Erfahrungen zurĂŒckgreifen, die wir im Laufe von ĂŒber zehn Jahren bei der Entwicklung leistungsfĂ€higer APIs fĂŒr die Produktdaten eines der grössten Schweizer Einzelhandelsunternehmen sowie bei anderen Projekten gesammelt haben.

Das von uns entwickelte Tool implementiert unter anderem die folgenden FunktionalitÀten:

  • API-First-Design – sorgt fĂŒr einen sehr einfachen Arbeitsablauf bei der Datenverarbeitung;
  • Live- und mehrsprachige Volltextsuche im gesamten Datenbestand der GebĂ€udeadressen;
  • AutovervollstĂ€ndigung und prĂ€diktive AdressvorschlĂ€ge;
  • raumbezogener Abgleich und Abruf von GebĂ€udedaten;
  • Bereinigung und Normalisierung der Repository-Daten auf Bundesebene sowie Filterung von GebĂ€uden;
  • asynchrone Datenintegration von GebĂ€udeinformationen im Rahmen mehrerer darauf abgestimmter Strategien (mehr dazu spĂ€ter.

Die Application

Die OpenSwissBuildings-API-Anwendung implementiert eine JSON REST API, die dann zum Abrufen und DurchfĂŒhren von Abgleich- sowie SuchaktivitĂ€ten in Bezug auf die vom Eidgenössischen GebĂ€ude- und Wohnungsregister bereitgestellten Daten verwendet werden kann.

Die API liefert Daten gemĂ€ss dem strukturierten Internetformat Schema.org, insbesondere der Schemadefinition Postanschrift. Diese semantische InteroperabilitĂ€t ermöglicht die Wiederverwendung bestehender Tools fĂŒr das Daten-Parsing. Die Anwendung besteht aus drei Teilen:

  1. Dateneingabe: Diese Komponente ist fĂŒr den regelmĂ€ssigen Abruf der Daten aus dem Eidgenössischen GebĂ€ude- und Wohnungsregister verantwortlich und hĂ€lt sowohl den Geodatenspeicher als auch die Suchmaschine mit den GebĂ€udedaten auf dem neuesten Stand;
  2. Suchmaschine: Sie beinhaltet sowohl die Volltextsuche als auch die AutovervollstÀndigung der GebÀudeadressen, einschliesslich Tippfehlertoleranz und Abgleich von TextÀhnlichkeiten;
  3. Geodatenspeicher/raumbezogener Abgleich: Dieses Element fĂŒhrt eine benutzerdefinierte Datensuche durch und errechnet die relevanten GebĂ€udedaten. Dieser Prozess wird spĂ€ter als Resolving-AktivitĂ€t beschrieben.
    Die wichtigsten Komponenten sind dabei die Suchmaschine und der Geodatenspeicher/raumbezogene Abgleich, welche die Funktionen bereitstellen, die in den APIs des Eidgenössischen GebÀude und Wohnungsregisters_ fehlen.
    Beide Komponenten können alle Daten zu den GebĂ€uden im öffentlich zugĂ€nglichen Datensatz speichern, wie beispielsweise: Identifikator (EGID), Adressen (in einigen FĂ€llen mehrsprachig), rĂ€umliche Position als Latitude-Longitude-Paar (ausgedrĂŒckt im Standard Lv95 des Schweizer Koordinatensystems) sowie zusĂ€tzliche Informationen.
    WĂ€hrend die Adresse in der Volltext- und AutovervollstĂ€ndigungssuche verwendet wird, wird der gesamte Satz von GebĂ€udedaten zur DurchfĂŒhrung des Building Resolving verwendet. Mit dieser Funktion können wir benutzerdefinierte Metadaten identifizieren und mit den ĂŒbereinstimmenden GebĂ€uden verknĂŒpfen.

Building Resolving

Dies ist die Kernfunktion der Anwendung.
Damit können anhand eines passenden Kriteriums die relevanten GebÀude (zusammen mit ihren Details) sowie einige benutzerdefinierte Metadaten abgerufen werden.
Diese Funktion lÀsst sich anhand einiger Beispiele besser erklÀren.

Anwendungsfall: Suche nach der perfekten Wohnung
Angenommen, es sollen im Rahmen eines imaginÀren Projekts GebÀude gefunden werden, die sich zum Wohnen eignen.
Diese mĂŒssen folgende Kriterien erfĂŒllen:

  • eine angenehme Nachbarschaft;
  • in der NĂ€he einer GrĂŒnanlage;
  • in einer Strasse, in der Tempo 30 gilt.
    Diese Kriterien mĂŒssen in rĂ€umliche Grenzen ĂŒberfĂŒhrt werden, die als Polygone auf einer Karte dargestellt werden.
    Diese Polygone können dann der OpenSwissBuildings-API im GeoJSON-Format bereitgestellt werden.

Die API liefert eine entsprechende Liste von GebĂ€udedaten, die mit dem Polygon ĂŒbereinstimmen. Die Polygone in der GeoJSON können mit benutzerdefinierten Metadaten versehen werden. Diese Metadaten werden mit den entsprechenden GebĂ€udedaten im Ergebnis verknĂŒpft.

Das Ergebnis kann dann im Rahmen unseres imaginÀren Projekts verwendet werden, um die GebÀude auf einer Karte zu markieren.

Werden mehrere Polygone mit unterschiedlichen Metadaten verwendet, können zusĂ€tzliche Informationen angezeigt werden, z. B. die Wahrscheinlichkeit einer Ähnlichkeit mit unserem Benutzer, und zwar anhand der zunehmenden Anzahl der erfĂŒllten Kriterien.

Anwendungsfall: Auflistung aller GebÀude anhand einer Adressliste
Ein weiterer Anwendungsfall der API könnte die Verarbeitung einer Adressliste sein. Eine solche Liste kann spezifische Adressen, Tippfehler oder sogar ganze Hausnummernbereiche enthalten. Das Ergebnis enthĂ€lt alle GebĂ€ude fĂŒr die angegebenen Adressen, einschliesslich ihrer Koordinaten.

Ein weiteres Beispiel, das im Rahmen unseres Projekts verwendet wurde, war die Ermittlung und Auflistung aller Adressen fĂŒr eine bestimmte Gemeinde oder Strasse.
Die Anwendung implementiert eine Schnittstelle, mit der eine solche Liste explizit aus unserem Repository extrahiert werden kann, mit zusĂ€tzlicher UnterstĂŒtzung fĂŒr Hausnummernbereiche oder den Umgang mit Tippfehlern in den angegebenen Strassenbezeichnungen.

Dies sind nur einige Beispiele fĂŒr die Möglichkeiten, welche die Anwendung bietet.
Mit der OpenSwissBuildings-API können Adresslisten, Gemeinden und rĂ€umliche Grenzen (GeoJSON) verarbeitet werden. Sie enthĂ€lt fortgeschrittene Lösungen und darauf abgestimmte Strategien fĂŒr einige GrenzfĂ€lle, die wir bei den Strassen-Gemeinde-Grenzen festgestellt haben.

Open Source fĂŒr Open Data

Die Anwendung implementiert die standardmĂ€ssige und weit verbreitete Open-API Specification fĂŒr die API-Definition. Dadurch konnten wir rasch eine saubere Dokumentation der API und ihrer Datenformate bereitstellen und die Implementierungszeit fĂŒr Drittverbraucher der API selbst drastisch reduzieren.

Der Verband Schweizerischer ElektrizitĂ€tsunternehmen (VSE) und mehr als 90 seiner Mitglieder haben die Entwicklung dieses Tools mitfinanziert. Sie haben beschlossen, es im Rahmen einer MIT-Lizenz als Open Source zur VerfĂŒgung zu stellen, damit es von beliebigen Nutzer*innen wiederverwendet und weiterentwickelt werden kann, auch zu kommerziellen Zwecken.

Der Quellcode der Anwendung ist im Liip OpenSwissBuildings-API
GitHub Repository verfĂŒgbar.

Die AusfĂŒhrung deiner eigenen Instanz der Anwendung ist unkompliziert, da wir die UnterstĂŒtzung von containerbasierten Deployments ĂŒber Docker integriert haben.

Du kannst es probieren mit unsere Online-Demo.

Wenn du Fragen hast oder herausfinden möchtest, ob diese Anwendung auch fĂŒr deine Anforderungen geeignet ist, kontaktiere mich bitte ĂŒber das Kontaktformular.