conference logo

Playlist "FOSSGIS 2018"

Kompakte Datenbankschemata für dynamisch erweiterbare GML Application Schemas

Felix Kunde

Durch größere Verfügbarkeit von 3D-Geodaten wächst die Akzeptanz für CityGML und der Bedarf nach Domänen-spezifischen Erweiterungen des Standards (ADEs), z.B. Lärmkartierung oder Energiemanagement. Der Vortrag gibt einen Ausblick auf die neue Version der 3D City Database, die beliebige ADEs dynamisch einbinden kann, ohne dass das PostGIS-Datenbankschema zu komplex und schwerfällig wird.

Die Datenmodelle von GML Application Schemas wie INSPIRE, ALKIS und Co. sorgen in der FOSS4G-Community aufgrund ihrer Komplexität selten – nein, eigentlich nie – für Begeisterungsstürme. Glücklicherweise unterstützen immer mehr OSGeo-Projekte wie deegree, Geoserver und ETL-Werkzeuge wie GDAL/OGR, HALE und stetl die Verarbeitung solcher Daten und erleichtern den Zugang. Wer die Dokumente in eine PostGIS-Datenbank importiert, sollte beim Schema lieber nicht genau hinsehen, um nicht noch mehr verwirrt zu werden. Wer es kompakter möchte, legt entweder selbst Hand an beim Mapping der UML-Klassen oder verwendet eine NoSQL-Alternative wie z.B. GeoRocket.

Das 3D City Database Projekt hat (vor über 10 Jahren) für CityGML den ersten Ansatz gewählt. Domänen-spezifische Erweiterungen (ADE), die der OGC Standard zulässt, konnten dadurch zunächst nicht unterstützt werden, z.B. Lärmkartierung, Energiemanagement, Versorgungsnetzwerke. Mit dem nächsten Major-Release (geplant für Q2 2018) wird sich das ändern. Es wurde ein Weg gefunden, wie das Datenbankschema dynamisch erweitert werden kann, ohne den kompakten Charakter zu verlieren. Das Mapping erfolgt dabei automatisiert mit dem Attributed Graph Grammar System (AGG), das flexibles Editieren und Erstellen von Ableitungsregeln erlaubt. Langfristig könnte diese Lösung auch für andere GML-basierte Standards umgesetzt werden und das Datenmanagement von beliebig komplexen interoperablen Informationsmodelle erleichtern. Dann klappt es vielleicht auch mit der Begeisterung bei Entwicklern und Anwendern.