Skip to content
Snippets Groups Projects
Select Git revision
  • 821d62ac973353b69a4a8c7c945227a2d35b83bd
  • main default protected
  • 27-dataservice-erzeugen
  • dcat3
  • generic-iso2dcat
  • 23-vorschaubilder
6 results

csw2dcat

CSW2DCAT-Brücke

Programm, das die Ergebnisse eines CSW in DCAT-AP.de übersetzt.

Das Programm wird als Server gestartet und stellt einen DCAT-AP.de konformen Katalog-Endpunkt (DCAT catalog endpoint) zur Verfügung. Beim Abruf einer Katalog-Seite wird eine CSW-Suche ausgelöst, ein Mapping der relevanten Informationen durchgeführt und das Ergebnis als DCAT-AP.de Metadaten zurückgeliefert. Die Daten-Dienste-Kopplung wird berücksichtigt, für jeden Datensatz werden gekoppelte Dienste gesucht und als Distribution zurückgeliefert.

Das Mapping orientiert sich an am Mapping der GDI-DE, geht aber an einigen Stellen darüber hinaus. So werden u.a. Format-Angaben korrekt auf das Vokabular des EU Publication Office gemappt. Syntaktisch ungültige URIs werden entfernt, da sie die spätere Verarbeitung des RDF-Dokument verhindern können.

Parameter des Katalog-Endpunkt

Über Parameter des Katalog-Endpunkts kann die CSW-Suche genauer bestimmt werden. Die Parameter werden bei der Suche an den CSW weitergegeben. Die Groß- und Kleinschreibung der Parameternamen ist wichtig. Die angegebenen Parameter werden UND-verknüpft. Parameter können mehrfach angegeben werden (was eigentlich nur bei Subject sinnvoll ist). Folgende Parameter sind vorhanden:

  • Subject
  • OrganisationName
  • Identifier

Mapping von DCAT zu ISO

Das Programm enthält auch eine Komponente, um DCAT-Metadaten in ISO-Metadaten umzuwandeln. Diese Komponente wird nur aktiv, wenn die Umgebungsvariable DCAT_BASE_URL gesetzt ist. Unter http://localhost:8080/iso/list.json ist ein JSON-Array mit den relevanten Datensätze (gefiltert mit dem in der Umgebungsvariablen DCAT_ISO_KEYWORD eingestellten Schlagwort) zu finden. Dort sind die ISO-Metadaten der Datensätze verlinkt.

Konfiguration

Die Konfiguration der CSW2DCAT-Brücke erfolgt Container-freundlich mit Hilfe von Umgebungsvariablen.

Jede Brücke benötigt mindestens zwei Informationen:

  • URL der CSW-Schnittstelle, z.B. https://umweltportal.schleswig-holstein.de/csw
  • Präfix, mit dem die IRI der Datensätze gebildet werden. Soll der Datensatz mit dem Identifikator e455a148-483c-496f-aaeb-8c5fc389d90d den IRI http://registry.gdi-de.org/id/de.sh/e455a148-483c-496f-aaeb-8c5fc389d90d bekommen, so muss als Präfix http://registry.gdi-de.org/id/de.sh/ angegeben werden.
Umgebungsvariable global/pro Brücke Bedeutung
BRIDGE_x_URL pro Brücke URL der CSW-Schnittstelle
BRIDGE_x_IRI pro Brücke Präfix, mit dem die IRI der Datensätze gebildet werden
BRIDGE_x_CONTRIBUTOR pro Brücke DCAT-AP.de contributorId, die für die Datensätze gesetzt wird
BRIDGE_x_DISTRIBUTED pro Brücke ist hier eine 1 gesetzt, wird eine verteilte CSW-Suche (DistributedSearch) durchgeführt
BRIDGE_x_TYPE_EXCLUDE pro Brücke schließe Einträge vom hier angegeben Typ aus, mehrere Einträge können mit Komma getrennt werden, ein Beispiel: appplication,tile
BRIDGE_x_TYPE_INCLUDE pro Brücke beschränke die Suche auf die hier angegebenen Typen, mehrere Einträge können mit Komma getrennt werden, ein Beispiel: dataset,datasetCollection,series
BRIDGE_x_REMOVE_KEYWORDS pro Brücke optionale Komma-getrennte Liste von Schlüsselwörtern, die entfernt werden sollen
BRIDGE_x_FIND_WMS_IN_INFO pro Brücke gibt an, ob in den transferOptions from Typ information nach WMS gesucht werden soll. Mehr dazu bei den Details der Konfigurationsoptionen
BRIDGE_x_FIX_MISSING_TEMPORAL pro Brücke ist hier eine 1 gesetzt, wird bei fehlender zeitlicher Coverage das Veröffentlichungsdatum als Startdatum verwendet
BRIDGE_x_FILTER_OPENDATA pro Brücke ist hier eine 1 gesetzt, wird bei jeder Suche automatisch die Filterbedingung Subject=opendata eingefügt
BRIDGE_x_SORT_RESULTS pro Brücke ist hier 0 oder false gesetzt, wird beim GetRecords-Aufruf keine Sortierung angefordert
BRIDGE_x_IGNORE_SERIES_WITHOUT_DISTRIBUTION pro Brücke ist hier 1 oder true gesetzt, werden Serien, die keinen Download oder gekoppelten Dienst haben, ignoriert und nicht mit in die Ausgabe geschrieben
BRIDGE_PORT global Nummer des TCP-Ports, auf dem das Programm hören soll
BRIDGE_BASE_URL global Adresse unter der die CSW2DCAT von außen erreichbar sein wird
BRIDGE_VERBOSE_LOGGING global (existierendes) Verzeichnis, in das alle Antworten des CSW und alle als Ausgaben erzeugten DCAT-AP.de-Dokumente geschrieben werden
DCAT_BASE_URL global Basisadresse für DCAT-AP.de konforme Metadaten, z.B. https://opendata.schleswig-holstein.de/dataset/ (aktiviert das DCAT→ISO-Mapping)
DCAT_ISO_KEYWORD global Ist das DCAT→ISO-Mapping aktiv, so wird mit diesem Schlagwort nach Datensätzen gesucht

Als globale Einstellungen gibt es:

  • BRIDGE_PORT - Nummer des TCP-Ports, auf dem das Programm hören soll
  • BRIDGE_BASE_URL - Adresse unter der die CSW2DCAT von außen erreichbar sein wird. In der Regel wird das Programm vermutlich hinter einem Loadbalancer laufen, der dann auch eine Auflösung der TLS-Verbindung vornimmt.

Konfiguration mit einer Brücke

Dies ist der einfache Fall, dass nur eine CSW-Schnittstelle auf DCAT-AP.de übersetzt werden soll. Es wir der CSW des Schleswig-Holsteinischen Metainformationssystem abgefragt. Der Katalog wird von außen unter https://opendata-stage.schleswig-holstein.de/csw2dcat/catalog.xml zu erreichen sein.

  environment:
     - BRIDGE_PORT = 8080
     - BRIDGE_BASE_URL = https://opendata-stage.schleswig-holstein.de/csw2dcat/
     - BRIDGE_URL = https://sh-mis.gdi-sh.de/soapServices/CSWStartup
     - BRIDGE_IRI = http://registry.gdi-de.org/id/de.sh/
     - BRIDGE_CONTRIBUTOR = https://www.gdi-sh.de

Konfiguration mit mehreren Brücken

Hier werden gleich mehrere CSW-Schnittstellen nach DCAT-AP.de übersetzt. Der erste Dienst ist das Schleswig-Holsteinischen Metainformationssystem und wird von außen unter https://opendata-stage.schleswig-holstein.de/csw2dcat/1/catalog.xml zu erreichen sein. Der zweite Dienst ist das Umweltportal Schleswig-Holstein und wird von außen unter https://opendata-stage.schleswig-holstein.de/csw2dcat/2/catalog.xml zu erreichen sein.

  environment:
     - BRIDGE_PORT = 8080
     - BRIDGE_BASE_URL = https://opendata-stage.schleswig-holstein.de/csw2dcat/
     - BRIDGE_1_URL = https://sh-mis.gdi-sh.de/soapServices/CSWStartup
     - BRIDGE_1_IRI = http://registry.gdi-de.org/id/de.sh/
     - BRIDGE_1_CONTRIBUTOR = https://www.gdi-sh.de
     - BRIDGE_1_DISTRIBUTED=1
     - BRIDGE_2_URL = https://umweltportal.schleswig-holstein.de/csw
     - BRIDGE_2_IRI = https://umweltportal.schleswig-holstein.de/trefferanzeige?docuuid=
     - BRIDGE_2_CONTRIBUTOR = https://umweltportal.schleswig-holstein.de

Kompilieren und Ausführen

Das Programm kann mit

./mvnw package

in eine ausführbares JAR-Datei target/csw2dcat-jar-with-dependencies.jarübersetzt werden, die sich mit

java -jar target/csw2dcat-jar-with-dependencies.jar

starten lässt. Vorher müssen aber noch die entsprechenden Umgebungsvariablen gesetzt werden - siehe oben.

Ungültige Geometrien

Normalerweise enthalten die ISO-Metadaten die geographische Ausdehnung als bounding box mit vier Punkten. CKAN ist sehr empfindlich (=bricht den kompletten Import-Vorgang ab), wenn diese Koordinaten kein ordentliches Viereck bilden, z.B. auf einer Linie liegen. Daher wird versucht, die Geometrie zu korrigieren. Normalerweise wird ein POLYGON erzeugt. Sind aber Länge und Breite einer EX_GeographicBoundingBox identisch, so wird ein POINT erzeugt. Sind Länge oder Breite identisch, so wird eine LINE erzeugt.