Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Durch die Kennzeichnung von Geoobjekten mit eindeutigen Identifikatoren können Geoobjekte identifiziert und referenziert werden. Viele Nutzungsmöglichkeiten wie die Beschreibung von Beziehungen zwischen Geoobjekten oder das erneute wiederholte Abrufen eines Geoobjektes aus einem Download-Dienst werden erst möglich, wenn Geoobjekte eindeutig identifizierbar sind.

In der Praxis gibt es unterschiedliche Ansätze um Identifikatoren identifizierbar zu machen:

  • Algorithmus: Durch die Verwendung von Algorithmen können zufällige Identifikatoren erzeugt werden. Der gebräuchliste Algrothmus ist Universally Unique Identifier (UUID). Dieser Algorithmus stellt sicher, dass die Wahrscheinlichkeit der Generierung von zwei identischen Ids so gering ist, dass die Eindeutigkeit in der Praxis als garantiert gilt. Beispiel: 74738ff5-5367-5958-9aee-98fffdcd1876
    • Vorteile:
      • Diese Ids lassen sich in beliebiger Menge ohne weiteren Abstimmungsbedarf mit andren Akteuren oder Systemen ohne großen Aufwand generieren.
    • Nachteile:
      • Diese Ids bieten kein Konzept zur Unterstützung der Auffindbarkeit der identiifizierbaren Objekte.
      • Bei prozedural erzeugten Geoobjekten - z.B. durch eine Transformation - werden bei wiederholter Ausführung zur Erzeugung der gleichen Geoobjekte stets neue Ids erzeugt.
  • Registrierung: Die Verwendung von Registries, in denen jede ID registriert wird und das System eine doppelte Registrierung unterbindet.
    Beispiel: https://www.gdi-de.org/ (Registrierte Adresse in einer Domain-Registy zur Sicherstellung der Eindeutigkeit von Internetadressen)
    • Vorteile:
      • Neben der Eindeutigkeit können in Registries weitere Informationen verwaltet und zugänglich gemacht werden. Domainregistries verwalten beispielsweise IP-Adressen und Informationen über die registrierenden Organisationen.
    • Nachteile:
      • Es müssen Registries als zentrale Systeme betrieben werden und diese eignen sich oft nur bedingt für die Registrierung von Massen-IDs. So werden Internet-Domains zentral registriert, aber nicht die Adressen der einzelner Webseiten.
  • Kombination: In Kombination können oft einzelne Eigenschaften, die für sich genommen nicht eindeutig sind, zu einem eindeutigen Identifikator zusammengeführt werden. Eine Postadresse zum Beispiel kann alleine durch eine Hausnummer nicht eindeutig beschrieben werden. Die Kombination der Hausnummer mit Land, PLZ, Strasse und Adresszusatz dagegen führt zu einem eindeutigen Identifikator.
    • Vorteile:
      • Bei prozedural erzeugten Geoobjekten - z.B. durch eine Transformation - bleiben die Ids auch bei wiederholter Ausführung stabil (sofern keine zufälligen Bestandteile verwendet wurden).
      • Die kombinierten Bestandteile können bei Dekomposition wieder einzeln interpretiert werden, zum Beispiel zur Lokalisierung des untransformierten Objektes (soweit das Kombinationsmuster bekannt ist)
      • Der Ansatz lässt sich in der Regel gut umsetzen, da oft schon Eigenschaften oder Identifikatoren verfügbar sind, die sich gut kombinieren oder für weitere Zwecke Erweitern lassen.
    • Nachteile:
      • Welche Bestandteile sich zur Kombination eignen ist in der Regel vom Anwendungsfall bzw. den Ausgangsdaten abhängig und muß individuell gelöst werden.


Forderung nach unterschiedlichen Identifikatoren:

Die Umsetzung der INSPIRE-Datenmodelle erfordert in der Regel die Codierung von mehreren Identifikatoren im gleichen Geoobjekt.

Diese Indentifikatoren sind:

  • gml:id - Dies ist ein Fragment-Identifier, der ein Geoobjekt innerhalb eines Geodatensatzes identifiziert.
  • gml:identifier - Dies ist ein Uniform Resource Identifier, der ein Geoobjekt innerhalb des WWW als pysische Ressource identifiziert.
  • inspireId - Dies ist ein Identifikator, der einem Konzept aus INSPIRE folgt und sich aus Namensraum, lokaler Id und Versions-Id zusammensetzt.

Die Tatsache, dass mehrere Indikatoren gleichzeitig zu bedienen sind, ist auf den ersten Blick sehr verwirrend, wird aber verständlicher, wenn einem bewust wird, dass dies im wesentlichen der laufenden Weiterentwicklung des GML-Standards und sich ändernden Anforderungen zur Nutzung von Geodaten (zum Beispiel als Linked Data) geschuldet ist. Es wird zurzeit überlegt, inspireId aus den Datenmodellen wieder zu erntfernen, da inspireId und gml:identifier redundant sind (Stand 17.09.2019, siehe FAQ).


Wie bediene ich die unterschiedlichen Identifikatoren?

In den meisten vorhandenen Datensätze werden zu jeden Geoobjekt bereits Identifikatoren gepflegt, die zumindest innerhalb des Datensatzes eine Eindeutigkeit herstellen. Um die Identifikatoren von INSPIRE (und GML) zu bedienen, sollte ein Ansatz gewählt werden, der die Erzeugung der für INSPIRE (und GML) geforderten Identifikatoren aus den vorhandenen Identifikatoren so ableitet, dass eine Nachvollziehbarkeit in beide Richtungen erfolgen kann. Die Eindeutigkeit kann mit Hilfe des Namensraumregisters der GDI-DE Registry hergestellt werden.

ID-Konzept

Info
Jede Organisation sollte ein eigenes ID-Konzept erstellen.

Die konkreten Ausgangsbedingungen und organissatorischen Rahmenbedingungen variieren von Organisation zu Organisation. Daher wird im Folgenden ein Beispielkonzept vorgestellt, dass übernommen oder an die eigenen Rahmenbedingungen leicht angepasst werden kann.


Beispiel ID-Konzept

BezeichnungWas wird identifiziertIn welchem Bereich ist die ID eindeutigFormatWie wird Eindeutigkeit sichergestelltKommentar
Ds-Id
DatensatzInnerhalb der OrganisationPräfix "DS" gefolgt von fortlaufender NummerMeine Organisation verwendet eine zentrale Excel-Tabelle zur Registrierung.
GeoObj-Id
GeoobjektInnerhalb des Datensatzesnur Ziffern und Buchstaben (klein und groß),
zwischen Groß- und Kleinschreibung wird unterschieden.
Organisatorisch: Der Sachbearbeiter ist dafür verantwortlich.
Technisch: Die ID wird als Primärschlüssel in der Datenbank verwendet.

INSPIRE.namespace
Organisationglobal
https://registry.gdi-de.org/id/{domain}
Der Namensraum wird in der GDI-DE Registry zentral registriert. Die daraus resultierende URL ist global eindeutig.Der Wert für {domain} ergbit sich aus der Registrierung.
INSPIRE.localid
GeoobjektInnerhalb der eigenen Organisation
{FeatureTypeName}_{Ds-Id}_{GeoObj-Id}
Die Kombination der Bestandteile garantiert Eindeutigkeit.

{FeatureType} wurde hier aus zwei Gründen als Präfix verwedet:

  1. Der späteren globalen ID (Url) kann so direkt angesehen werden, um welche Objektart es sich handelt. Dies ist keine formale Anforderung, ist jedoch gute Praxis und nützlich.
  2. Dieses Präfix garantiert den Beginn mit einem Buchstaben, so dass dieser Identifier auch als gml:id verwendet werden kann.
INSPIRE.version
Version eines Geoobjektesje Geoobjektfortlaufende Nummer (Versions-Id der Datenbank)Die Datenbank unterstützt Versionierung und stellt die Eindeutigkeit sicher.optional, da nicht alle Datensätze versioniert werden.
gml:identfier
Geoobjektglobal
{INSPIRE.namespace}/{INSPIRE.localid} oder
{INSPIRE.namespace}/{INSPIRE.localid}/{INSPIRE.version}
Die Kombination der Bestandteile garantiert Eindeutigkeit.Das hier verwendete Muster wird vom ID-Resolver der GDI-DE Registry unterstützt, der die Geoobjekte abrufbar macht.
gml:id
GeoobjektInnerhalb der eigenen Organisation
{INSPIRE.localid}
siehe INSPIRE.localidDie Eindeutigkeit wurde hier auf den Bereich der Organisation ausgeweitet obwohl GML nur die Eindeutigkeit im Dokument/Datensatz fordert.


Varianten:

  • Falls lokale Geoobjekt-Ids Zeichen verwenden, die in den INSPIRE- und GML-Identifikatoren nicht erlaubt sind, kann in der Regel eine geeignete Ersetzung oder Normalisierung durchgeführt werden.
  • Wenn für jeden Datensatz ein eigener Namensraum registriert wird, kann auf eine zusätzliche Datensatz-ID verzichtet werden.
  • Die Versions-Id kann auch als Zeitstempel abgebildet werden.

ID-Resolver:

Damit die bereitgestellten Geoobjekte über ihre Url (d.h. den gml:identifier) im Web abrufbar sind, müssen sämtliche Http-Anfragen, die an den gml:identifer gerichtet sind, auf die Ziel-Url weitergeleitet werden, unter der das jeweilige Geoobjekt konkret abrufbar ist.

Da alle gml:identifer, die dem Konzept der GDI-DE-Registry folgen, mit dem Präfix https://registry.gdi-de.org/id/ beginnen, laufen auch alle Anfragen zunächst bei der GDI-DE Registry auf.

Die konkrete Url, unter der das Geoobjekt tatsächlich abrufbar ist, ist jedoch die "GetFeature"-Anfrage an den - in der Regel dezentralen - Download-Dienst. Es wird also eine Weiterleitung der Anfrage benötigt.

Diese Weiterleitung übernimmmt der ID-Resolver der GDI-DE Registry. Die Informationen, auf welche Ziel-Url weitergeleitet werden soll können Organisation selber in ihrem registrierten Namensraum hinterlegen.
[TODO Link auf Anleitung ID-Resolver]


Details zu den Identifikatoren

Folgendes Beispiel zeigt ein Geoobjekt mit den relevanten Identifikatoren (Namensraumdeklarationen und weitere Eigenschaften des Objektes wurden zum Zweck der besseren Lesbarkeit entfernt).

Codeblock
languagexml
titleBeispiel
linenumberstrue
<?xml version='1.0' encoding='UTF-8'?>
<ge:Borehole gml:id="Borehole_007f824b-5de4-4d6f-a2de-860b4649fa69">
  <gml:identifier codeSpace="https://inspire.ec.europa.eu/ids">https://registry.gdi-de.org/id/de.bb.inspire.ge-core.eem/Borehole_007f824b-5de4-4d6f-a2de-860b4649fa69</gml:identifier>
  <ge:inspireId>
    <base:Identifier xmlns:base="http://inspire.ec.europa.eu/schemas/base/3.3">
      <base:localId>Borehole_007f824b-5de4-4d6f-a2de-860b4649fa69</base:localId>
      <base:namespace>https://registry.gdi-de.org/id/de.bb.inspire.ge-core.eem/</base:namespace>
    </base:Identifier>
  </ge:inspireId>  
</ge:Borehole>


Identifikator gml:id

  • gml:id ist ein Fragment-Identifier, der ein Geoobjekt, das in einem XML-Dokument enthalten ist eindeutig identifiziert. Das Dokument kann beispielsweise ein kompletter Geodatensatz oder ein Auszug davon sein, der von einem Download-Dienst heruntergeladen wurde.
  • Es gelten folgende Anforderungen:
    • die Werte müssen innerhalb eines Dokuments eindeutig sein, d.h. es dürfen keine doppelten Werte innerhalb des gleichen Dokuments vorkommen.
    • die Angabe ist seit GML Version 3.2.2 optional (davor war gml:id verpflichtend anzugeben)
    • Syntax:
      • das erste Zeichen darf nur ein Buchstabe oder ein Unterstrich sein.
      • alle weiteren Zeichen können Kombinationen aus folgenden Zeichen sein: Buchstaben, Ziffern, Unterstrich, Punkt, Minus.
      • Beispiele für gültige Werte sind: Naturschutzgebiet_123, _Naturschutzgebiet-1, A123, a123
      • Beispiele für ungültige Werte sind: 1492_Naturschutzgebiet (darf nicht mit einer Ziffer beginnen), Schutzgebiet:132 (Doppelpunkt ist nicht erlaubt)

Identifikator gml:identifier

  • Der gml:identifier ist ein Uniform Resource Identifier, mit dem ein Geoobjekt innerhalb des WWW als pysische Ressource identifiziert werden kann.
  • Es ist die Angabe eines codespace erforderlich. Für INSPIRE wird nach Konvention hier "http://inspire.ec.europa.eu/ids" angegeben.
    TODO: zu klären, was als Codespace empfohlen wird, wenn der Datensatz nicht im Rahmen von INSPIRE bereitgestellt wird.

Indentifikator inspireId

  • inspireId ist ein Identifikator, der sich aus einer Kombination der folgenden Bestandteile zusammensetzt:
    • namespace: Namensraum, der die Datenquelle des Geo-Objekts eindeutig identifiziert
    • localId: Ein lokaler Bezeichner, der vom Datenanbieter zugewiesen wird. Der lokale Bezeichner ist innerhalb des Namensraum eindeutig.
    • version: Die Kennung der jeweiligen Version des Geo-Objekts mit einer maximalen Länge von 25 Zeichen. Wenn die Spezifikation eines Geo-Objekttyps mit einer externen Objektkennung Lebenszyklusinformationen enthält, wird die Versionskennung verwendet, um zwischen den verschiedenen Versionen eines Geo-Objekts zu unterscheiden. Innerhalb der Menge aller Versionen eines Geo-Objekts ist die Versionskennung eindeutig.


Weitere Informationen

https://inspire.ec.europa.eu/documents/guidelines-encoding-spatial-data
https://inspire.ec.europa.eu/file/1412/download?token=lHYwKEk5

FAQ: http://inspire.ec.europa.eu/ids

...

  1. Beispiele als Vorlage:
    1. {namensraum der orgainsation}/{id_datensatz}_{Name Objektart}_{local-id}
    2. {namensraum je datensatz}/{Name Objektart}_{local-id}

...

  1. Objektidentifikatoren werden in eigenes Schema überführt

...

  1. übergeordneten Namensraum identifizieren
  2. eigenen Namensraum einreichen

...