Automatische Generierung eines Geodatenbankschemas aus dem INSPIREAnwendungsschema Road Transport Network (Straßenverkehr) Dokumentation Projekt: Zielvereinbarung 2012, Zuarbeit zum INSPIRE-Knoten Version: 0.0.1 Stand: 28.12.2012 Status: in Arbeit Bearbeiter: Kloß Inhalt Abkürzungen.................................................................................................................................. 3 1 Zielstellung................................................................................................................................. 4 2 Bestimmung des Quellschemas: Inhaltlicher Vergleich XSD/UML.........................................4 2.1 Durchführung des Vergleichs.................................................................................................4 2.2 Beispiel.................................................................................................................................. 5 2.3 Ergebnisse............................................................................................................................. 6 3 Verfahren zur Ableitung eines Datenbank-Schemas...............................................................6 4 Prototypische Schematransformation......................................................................................7 4.1 Installation des SQL Feature Store........................................................................................7 4.2 Ergebnisse........................................................................................................................... 13 5 Zusammenfassung................................................................................................................... 14 Literatur......................................................................................................................................... 15 Anhang.......................................................................................................................................... 16 -2- Abkürzungen BLOB Binary large object DBMS Datenbankmanagementsystem DDL Data definition language EA Enterprise Architect GML Geography Markup Language INSPIRE Infrastructure for Spatial Information in the European Community JDBC Java Database Connectivity OGC Open Geospatial Consortium SQL Structured Query Language UML Unified Modeling Language XSD XML-Schema XSLT Extensible Stylesheet Language Transformation -3- 1 Zielstellung Die Umsetzung der INSPIRE-Richtlinie fordert von den geodatenhaltenden Stellen die Bereitstellung der existierenden Datenbestände in standardisierter Form. Die Veröffentlichung der Daten erfolgt dabei über Webdienste, über welche die Daten entsprechend den komplexen Datenschemata ausgeliefert werden sollen. Beim Anbieter der Daten stellt sich in diesem Zusammenhang die Frage, wie die Daten persistent gespeichert werden können. Idealerweise erfolgt die Datenhaltung ebenfalls im INSPIRE-Schema. Im Rahmen der Zielvereinbarung sollte untersucht werden, wie aus dem INSPIREAnwendungschema für Verkehrsnetze (Transport Networks) mit dem Anwendungsschema Straßenverkehr (Road Transport Networks), automatisiert ein Geodatenbankschema für eine PostGIS-Datenbank erstellt werden kann. Nach der Einarbeitung in die Modellierungs-Software Enterprise Architect (EA) (SPARXSYSTEMS 2012) sollten folgenden Aufgaben bearbeitet werden: 1) Bestimmung des Quellschemas: Inhaltlicher Vergleich der UML-Modelle mit den entsprechenden XML-Schema-Dateien (XSD) (Kapitel 2) 2) Bestimmung des Verfahrens zur Ableitung eines Geodatenbankschemas aus den INSPIRE-Modellen (Kapitel 3) 3) Prototypische Schemakonvertierung (vorerst ohne referentielle Integrität) (Kapitel 4) 2 Bestimmung des Quellschemas: Inhaltlicher Vergleich XSD/UML Das Anwendungsschema Road Transport Networks ist in der Datenspezifikation „D2.8.I.7 INSPIRE Data Specification on Transport Networks − Guidelines“ definiert (INSPIRE 2010A). Das Schema besitzt Abhängigkeiten zu den folgenden vier Anwendungsschemata: • Application schema Common Transport Elements (INSPIRE 2010a) • Data Specification on Geographical Names − Application schema Geographical names (INSPIRE 2010b) • Generic Network Model − Network application schema (INSPIRE 2012a) • Data Specification − Base Models − „Activity Complex“ Application Schema (INSPIRE 2012b) 2.1 Durchführung des Vergleichs Aufgrund des Umfangs und der Komplexität der Datenschemata war ein Vergleich der UMLModelle mit den XML-Dateien in der XML-Textansicht (z.B. im Browser) nicht möglich. Daher wurde folgende Vorgehensweise gewählt: 1) Download der UML-Modelle (EA-Projektdatei) und der GML-Anwendungsschemata (ZIPArchiv) (INSPIRE 2012c) 2) Einladen der UML-Modelle, Abspeichern der Schemata als PNG-Datei 3) Installation einer Testversion der Software XMLSpy (ALTOVA 2012), Einladen der XMLSchema-Dateien, Anpassung der Schema-Ansicht (Ziel: Anzeige des gleichen Inhalts bei UML und XSD), Ausgabe der XML-Elemente in der konfigurierten Schema-Ansicht als PNG-Datei 4) Visueller Vergleich der Graphiken nach: • Name und Anzahl der FeatureTypes • Name und Anzahl der Attribute • Übereinstimmung von Beziehungen (Multiplizitäten) -4- Die erstellten Graphiken des Vergleichs sind als ZIP-Archiv im Anhang beigefügt. Sie sind entsprechend den Anwendungsschemata in Verzeichnisse untergliedert. 2.2 Beispiel Im Folgenden soll beispielhaft an einem Ausschnitt aus dem INSPIRE-Modell der Vergleich UML/XSD für den FeatureType Road aufgezeigt werden. Die Schemata der XSD-Dateien enthalten noch Verweise auf externe OGC-Schemata (GML), die durch die Software XMLSpy bei vorhandener Internet-Verbindung automatisch geladen werden. Diese Schemata wurden zur besseren Übersichtlichkeit nicht mit abgebildet. Abb.: Vergleich UML/XSD am Beispiel des FeatureTypes Road UML XSD Ausschnitt aus dem Road Transport Networks (EA-Projekt) Ausschnitt aus: - Application schema Common Transport Elements - Generic Network Model (EA-Projekt) Abbildung als XML-Schema-Datei (XMLSpy) -5- Die Klasse Road (Abb. 1 oben link, roter Rand) verfügt über die Attribute localRoadCode und nationalRoadCode. Diese Attribute sind beide dem Stereotyp voidable zugeordnet. Sämtliche Attribute dieses Stereotyps sind laut den Encoding-Regeln von INSPIRE mit dem Attribut nillable abzubilden, welches den Wert true besitzt (INSPIRE 2010c:24). In der Schema-Ansicht (Abb. 1, rechts) ist erkennbar, dass beide Attribute in der XSD-Datei vorhanden sind und über dieses zusätzliche Attribut verfügen. Die Klasse Road erbt weiterhin die Attribute validFrom und validTo von der Klasse TransportLinkSet (Abb. 1 links, blauer Rand) aus dem Schema CommonTransportElements. Dieses Schema (Abb. 1, links unten) definiert allgemeine Klassen und Attribute, die sämtliche Verkehrsnetze (Straßenverkehr, Schienenverkehr, Seilbahnen, Wasserverkehr und Flugverkehr) gemeinsam haben. Die Klasse TransportLinkSet, von der sich die Klasse Road ableitet, erbt in diesem Schema zusätzlich Attribute der Klassen MarkerPost, TransportPoint, TransportObject (aus dem gleichen Anwendungsschema) sowie LinkSet und NetworkElement (aus dem Generic Network Model). Alle diese Attribute sind in der XSD-Datei mit den entsprechenden Multiplizitäten vorhanden. Die Vererbungsstruktur wird über die Notation „derivedBy“ mit dem Wert „extension“ in der XSD wiedergegeben. Die Klasse Road aus dem UML-Modell stimmt somit mit dem XMLElement RoadType inhaltlich überein. 2.3 Ergebnisse Beim Vergleich der erstellten Graphiken wurde festgestellt, dass die UML-Modelle mit den XMLSchema-Dateien inhaltlich identisch sind. Sämtliche Feature-Types (Klassen) werden mit ihren Attributen und Beziehungen in den XML-Dateien abgebildet. Nicht abgebildet werden sog. codeLists, die erweiterbare Wertebereiche darstellen. Diese sind in den UML-Modellen enthalten, nicht jedoch in den XSD-Dateien. Das Mapping von UML nach XSD erfolgt nach festen Regeln, die in den „Guidelines for the enconding of spatial data“ (INSPIRE 2010c) und den „OpenGIS Geography Markup Language (GML) Encoding Standard“ Annex E (OGC 2007) beschrieben sind. Die Transformation von UML nach XSD erfolgte mit der Software ShapeChange (SHAPECHANGE 2012). 3 Verfahren zur Ableitung eines Datenbank-Schemas Das Mapping von XML-Schema-Dokumenten in SQL zum Erstellen von Create-TableAnweisungen ist aktuell im Datenbankmanagementsystem (DBMS) PostgreSQL/PostGIS nicht möglich (z.b. POSTGRESQL WIKI 2012). Es ist nicht zu erwarten, dass in naher Zukunft umfangreiche Schemata wie die INSPIRE-Schemata durch Funktionen von DBMS in SQL abgebildet werden können. Ein testweise durchgeführter Import des Schemas für Straßenverkehrsnetze in MS Access lieferte erwartungsgemäß eine Fehlermeldung. Die Generierung eines Geodatenbankschemas muss daher außerhalb der Datenbank erfolgen. Hierfür können grundsätzlich zwei Vorgehensweisen unterschieden werden: 1) Modellgetriebene Softwareentwicklungsansätze (Model Driven Architecture) basierend auf den UML-Modellen 2) Transformationsansätze (z.B. XSL Transformation) basierend auf den XML-SchemaDateien Der erste Ansatz wurde von Dr. Rico Vogel vom Leibnitz-Institut für ökologische Raumentwicklung prototypisch umgesetzt (VOGEL 2011). Hierfür wurde für die Software Enterprise Architect in der Sprache C# ein PlugIn entwickelt, mit dem das INSPIRE-Anwendungsschema für Katasterparzellen in PostGIS-SQL-Code umgesetzt wurde. Bei dem PlugIn handelt es sich laut -6- Aussage von Herrn Dr. Vogel um einen Prototyp, der aktuell nicht weiterentwickelt wird. Die Weitergabe des PlugIns und der Einsatz für Testzwecke war daher nicht möglich. Im vorangegangenen Kapitel wurde festgestellt, dass die XML-Schema-Dateien mit den UMLModellen inhaltlich identisch sind. In den XSDs fehlen lediglich die codeLists (Wertebereiche), die vermutlich ohne großen Aufwand über Datenbank-Constraints eingefügt werden können. Die XSDs können daher uneingeschränkt als Grundlage für die SQL-Code-Generierung verwendet werden. Eine Möglichkeit zur Erstellung der Schemata wäre eine aufwendige Programmierung von eigenen XSLT-Skripten. Aufgrund der durchgeführten Literatur -und Softwarerecherche im Rahmen dieser Arbeit wurde dieser Möglichkeit nicht weiter verfolgt. Mit dem deegree webservices steht vielmehr eine leistungsfähige Open-Source-Software zur Verfügung, mit der ein vollständiges INSPIRE-Anwendungsschema in Datenbank-Tabellen abgebildet werden kann (DEEGREE 2012:45). Die Software wurde zu diesem Zweck bereits in mehren Projekten eingesetzt (z.B. ASSINK 2012:5, GEORZ-LAB 2011:31, KORDUAN 2011:11). Deegree erlaubt neben den vorkonfigurierten Workspaces für INSPIRE das Mapping von mehreren komplexen GML-Anwendungsschemata (u.a. XPlanung, AAA, CityGML) (DEEGREE 2012: 50). Die im folgenden Kapitel beschriebene prototypische Schemakonvertierung wurde aus diesen Gründen mithilfe der Software deegree webservices durchgeführt. 4 Prototypische Schematransformation Dieses Kapitel beschreibt die Konvertierung der XML-Schema-Dateien in SQL-Anweisungen am Beispiel des INSPIRE-Anwendungsschemas Road Transport Network (Straßenverkehr) mithilfe der Software deegree webservices. Als Datenbankmanagementsystem wurde PostgreSQL 9.2 mit der räumlichen Erweiterung PostGIS 2.0.1 verwendet. Die Installation wurde lokal auf dem HeimPC mit dem Betriebssystemen Windows XP durchgeführt. Im einem weiteren Schritt kann die Software auf der Virtuellen Maschine für den geplanten INSPIRE-Knoten installiert werden (Betriebssystem OpenSuse). 4.1 Installation des SQL Feature Store Die Software degree webservices liegt aktuell in der Version 3.1.2 vor. Für den Start der Anwendung ist die Installation des Java Development Kits erforderlich. Abb.: Login-Seite der Software deegree workspace -7- Im heruntergeladenen ZIP-Archiv werden Start-Skripte für Windows und Linux mitgeliefert. Nach dem Aufruf des Start-Skriptes kann die Software im Browser (empfohlen: Mozilla Firefox) über die Adresse localhost:8080 aufgerufen werden. Der Login erfolgt standardmäßig mit dem Passwort deegree (Abb.). Die folgenden Ausführungen orientieren sich an der Dokumentation im deegree-Wiki zum inspireNode (Deegree 2011). Zur Aktivierung des INSPIRE-Workspaces muss unter der Rubrik workspace der deegree-workspace-inspire-3.1.2 importiert und anschließend aktiviert werden (Abb.). Hierfür ist eine Internet-Verbindung erforderlich. Abb.: Import und Aktivierung des INSPIRE-Workspaces Nach der Aktivierung des Workspaces kann unter jdbc connections eine Verbindung zu einer vorher eingerichteten PostGIS-Datenbank erstellt werden (Abb.). Abb.: Einrichten der JDBC-Verbindung -8- Anschließend wird ein neuer SQL feature store mit dem Namen inspire erstellt (Abb.) Abb.: Erstellung eines SQL feature stores I Nun muss der Eintrag „Create tables from GML application schema“ und die vorher erstellte JDBCVerbindung ausgewählt werden (Abb.) Abb.: Erstellung eines SQL feature stores II -9- Im Folgenden können die INSPIRE-Anwendungsschemata ausgewählt werden, für die der SQLCode erstellt werden soll (Abb.) Abb.: Erstellung eines SQL feature stores III Anschließend kann die Art des Mappings (BLOB, Relational) und das Koordinatenreferenzsystem der Daten festgelegt werden (Abb.). Abb.: Erstellung eines SQL feature stores IV -10- Sämtliche Einstellungen des feature stores werden als XML-Datei gespeichert. Diese Datei kann anschließend manuell verändert werden (Abb.). Abb.: Erstellung eines SQL feature stores VI Das Mapping ist nun abgeschlossen und die Tabellen können über „Create DB tables“ erstellt werden (Abb.). Abb.: Erstellung eines SQL feature stores VII -11- Der SQL-Code wird anschließend in der Übersicht dargestellt. Über Execute können die Tabellen mithilfe der vorher konfigurierten Datenbankverbindung in der Datenbank erstellt werden. Abb.: Erstellung der Tabellen für die PostGIS-Datenbank Das Mapping ist nun beendet (Abb) und die erstellten FeatureTypes werden noch einmal in der Übersicht aufgeführt (Abb). Abb.: SQL-Code zum Erstellen der PostGIS-Datenbank -12- Abb.: Übersicht über die erstellten FeatureTypes 4.2 Ergebnisse Für das Anwendungsschema Road Transport Network (Straßenverkehr) wurden insgesamt 118 Tabellen erstellt (Abb.). Jeder FeatureType wurde als neue Tabelle abgebildet. Attribute, die mehrfach auftreten können, wurden ebenfalls als Tabelle abgebildet. Die Tabellennamen enthalten als Prefix das Kürzel des Anwendungsschemas, in dem sie vorkommen (z.B. Tabelle gn_namedplace für das FeatureType NamedPlace im Schema GeographicalNames). Abb.: PostgreSQL/PostGIS-Datenbank aus dem INSPIRE-Schema Road Transport Network (Straßenverkehr) -13- Nach einer ersten Sichtung der Daten scheinen alle erforderlichen FeatureTypes vorhanden zu sein. Da sich die Tabellennamen aus den miteinander in Beziehung stehenden FeatureTypes zusammensetzen, kommt es teilweise zu sehr langen Bezeichnungen. Einigen Tabellennamen sind daher abgeschnitten. Eine vollständige Prüfung der erstellten Tabellen konnte aufgrund des Umfanges und der Komplexität der Anwendungsschemata im Rahmen dieser Arbeit nicht durchgeführt werden. Dieser Punkt sowie die korrekte Abbildung der Tabellennamen sollte in einem weiteren Schritt untersucht werden. 5 Zusammenfassung Im Rahmen der Zielvereinbarung wurde untersucht, wie aus dem INSPIRE-Anwendungsschema Road Transport Network (Straßenverkehr) ein Geodatenbankschema für das DBMS PostgreSQL/PostGIS abgeleitet werden kann. Hierzu wurde geprüft, ob die UML-Modelle und die daraus erstellten XML-Schema-Dateien inhaltlich identisch sind. Nach dem visuellen Vergleich der erstellten Graphiken kann festgestellt werden, dass in den XSD-Dateien alle Klassen, Attribute und Multiplizitäten der UML-Modelle wiedergeben werden. Sogenannte codeLists, welche Wertebereiche darstellen, sind in den XSD-Dateien nicht enthalten. Diese können vermutlich über entsprechende Datenbank-Constraints nachträglich im Schema hinzugefügt werden. Die Anwendungsschemata von INSPIRE sind sehr umfangreich und komplex. Allein das Schema Road Transport Network besitzt Abhängigkeit zu vier weiteren Anwendungsschemata. Eine automatische Abbildung dieser Schemata in SQL-DDL-Code ist nach bisherigen Kenntnisstand durch kein DBMS möglich. Für die Ableitung der Geodatenbankschemata stehen grundsätzlich zwei Möglichkeiten zur Verfügung: 1) Modellgetriebene Softwareentwicklungsansätze (Model Driven Architecture) basierend auf den UML-Modellen 2) Transformationsansätze basierend auf den XML-Schema-Dateien (z.B. XSL Transformation) Der erste Ansatz wurde von Herrn Dr. Rico Vogel vom IÖR am Beispiel des Themas Katasterparzellen getestet (VOGEL 2011). Hierzu wurde ein PlugIn für die Software Enterprise Architect erstellt. Laut Aussage von Herrn Dr. Vogel ist aktuell eine Weiterentwicklung des PlugIns nicht geplant. Da die Software über den Status des Prototyps nicht hinauskam, ist eine Weitergabe und ein Test nicht möglich. Der zweite Ansatz wurde im Rahmen dieser Arbeit umgesetzt. Nach Aussage von Teilnehmern des deegree-Projektes können mit der Software deegree webservices alle Anwendungsschemata der Annex-1-Themen erfolgreich in PostGIS-Tabellen abgebildet werden. In mehreren Projekten wurde deegree bereits genutzt, um Datenbankschemata aus den INSPIRE-Modelle zu generieren (z.B. ASSINK 2012:5, GEORZ-LAB 2011:31, KORDUAN 2011:11). Die ursprünglich anvisierte manuelle Erstellung von eigenen Skripten zur XSL-Transformation wurde daher nicht weiter verfolgt. Für das Anwendungsschemata Road Transport Network wurden insgesamt 118 Tabellen mit teilweise mehr als 50 Spalten erstellt. Nach einer ersten Sichtung der Datenbank scheinen alle erforderlichen FeatureTypes abgebildet worden zu sein. Aufgrund des Umfanges der Schemata konnte eine vollständige Überprüfung der Tabellen im Rahmen dieser Arbeit nicht durchgeführt werden. Dies und die Möglichkeit, lange Tabellennamen in PostgreSQL/PostGIS abzubilden, sollte in einem weiteren Schritt untersucht werden. -14- Literatur ALTOVA (2012): XML Editor. <http://www.altova.com/download-trial.html> Zugriff: 28.12.2012. ASSINK, H. (2012): deegree based INSPIRE services for Dutch provinces. <http://www.geospatialworldforum.org/2012/gwf_PDF/Herman%20Assink.pdf> Zugriff: 28.12. 2012. DEEGREE (2011): deegree inspireNode. <http://wiki.deegree.org/deegreeWiki/InspireNode> Zugriff: 28.12.2012. DEEGREE (2012): deegree Webservices. Releas 3.2-pre12. <download.deegree.org/ documentation/3.2-pre12/deegreeWebservices.pdf> Zugriff: 28.12.2012. GEORZ-LAB (2011): INSPIRE Prototypes (Phase 2) - Dutch Kadaster. Release 2.0. <http://inspire.kademo.nl/doc/pdf/inspire-prototypes-phase2.pdf> Zugriff: 28.12.2012. INSPIRE (Infrastructure for Spatia Information in Europe) (2010a): D2.8.I.7 INSPIRE Data Specification on Transport Networks – Guidelines. <http://inspire.jrc.ec.europa.eu/documents/ Data_Specifications/INSPIRE_DataSpecification_TN_v3.1.pdf> Zugriff: 28.12.2012. INSPIRE (Infrastructure for Spatia Information in Europe) (2010b): D2.8.I.3 INSPIRE Data Specification on Geographical names – Guidelines. <http://inspire.jrc.ec.europa.eu/documents/ Data_Specifications/INSPIRE_DataSpecification_GN_v3.0.1.pdf> Zugriff: 28.12.2012. INSPIRE (Infrastructure for Spatia Information in Europe) (2010c): D2.7: Guidelines for the encoding of spatial data, Version 3.2. <http://inspire.jrc.ec.europa.eu/documents/ Data_Specifications/D2.7_v3.2.pdf> Zugriff: 28.12.2012. INSPIRE (Infrastructure for Spatia Information in Europe) (2012a): D2.10.1: Generic Network Model, Version 1.0rc2. <http://inspire.jrc.ec.europa.eu/documents/Data_Specifications/ D2.10.1_GenericNetworkModel_v1.0rc2.pdf> Zugriff: 28.12.2012. INSPIRE (Infrastructure for Spatia Information in Europe) (2012b): D2.10.3: Generic Activity Complex, Version 1.0rc2. <http://inspire.jrc.ec.europa.eu/documents/Data_Specifications/ D2.10.3_GenericActivityComplex_v1.0rc2.pdf> Zugriff: 28.12.2012. INSPIRE (Infrastructure for Spatia Information in Europe) (2012c): Data Specifications. INSPIRE data models. <http://inspire.jrc.ec.europa.eu/index.cfm/pageid/2/list/datamodels> Zugriff: 28.12.2012. KORDUAN, P. (2012): Datenbereitstellung für INSPIRE aus kvwmap am Beispiel von Denkmaldaten. <kvwmap.geoinformatik.uni-rostock.de/images/8/8d/52_INSPIRE_Korduan.pdf> Zugriff: 28.12. 2012. OPEN GEOSPATIAL CONSORTIUM (OGC) (2007): OpenGIS Geography Markup Language (GML) Encoding Standard. <http://portal.opengeospatial.org/files/?artifact_id=20509> Zugriff: 28.12. 2012. POSTGRESQL WIKI (2010): XML Support. Mapping XML Documents to SQL Databases. <http://wiki.postgresql.org/wiki/XML_Support> Zugriff: 28.12.2012. SHAPECHANGE (2012): Processing application schemas for geographic information. <http:// shapechange.net/> Zugriff: 28.12.2012. SPARXSYSTEMS (2012): Enterprise Architect. <http://www.sparxsystems.com/products/ea/index. html> Zugriff: 28.12.2012. VOGEL, R. (2011): Automatisierte Generierung von Geodatenbankschemata aus dem INSPIRE Consolidated UML Model. <http://www.gdi.sachsen.de/inhalt/info/bericht/110516/110510_ GDIWS_8_RicoVogel.pdf> Zugriff: 28.12.2012. -15- Anhang A1_UML: Enterprise Architect Datenspezifikationen Projektdatei mit den A2_XSD: XML-Schema-Dateien der Anwendungsschemata UML-Modellen der A3_Vergleich_UML_XSD: Graphiken des Vergleich der UML-Modelle mit den XML-SchemaDateien A4_DDL: SQL-Anweisungen (Create Tables) für eine PostgreSQL/PostGISDatenbank zur Erstellung des Datenbank-Schemas aus dem INSPIRE-Anwendungsschema Road Transport Network -16-