Anwendungsschema Road Transport Network

Werbung
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-
Herunterladen