iPlug SNS
InGrid: Indexieren, Recherchieren, Visualisieren, Teilen
InGrid: Indexieren, Recherchieren, Visualisieren, Teilen
Der SNS-iPlug bietet eine Schnittstelle zum Semantischen Netzwerk Service (SNS) des Umweltbundesamtes.
Der Semantische Netzwerk Service bietet folgende Dienste:
Die Dienste werden an verschiedenen Stellen in der InGrid Software verwendet:
500 MB Harddrive
Download: https://distributions.informationgrid.eu/ingrid-iplug-sns/
Um die Installationsroutine zu starten, doppel-klicken Sie auf das Installationsprogramm oder geben Sie folgenden Befehl auf der Kommandozeile ein:
java -jar ingrid-iplug-sns-VERSION-installer.jar
Der Installer ist sowohl per graphischer Oberfläche als auch Kommandozeileneingabe ausführbar. Bitte folgen Sie den Anweisungen des Installationsprogrammes. Das Installationsprogramm installiert die Komponente im gewünschten Verzeichnis und passt die Konfigurationsdateien an.
Sie können nun das iPlug mit
sh start.sh start
starten.
Das iPlug besitzt eine Administrationsoberfläche über die die Eigenschaften des iPlugs eingesehen und verwaltet werden können. Geben Sie als PORT
den bei der Installation angegebenen Port für die Administration an.
Anstelle von localhost
können Sie auch die IP-Adresse des Computers eingeben. Authentifizieren Sie sich als ‘admin’ mit dem von Ihnen vergebenen Passwort.
Nach der ersten Installation wird die Administrations-GUI unter
aufgerufen und die Konfiguration vervollständigt. Nach der Konfiguration beenden Sie die Administrationsoberfläche mit CTRL-C
. Sie können nun das iPlug mit
sh start.sh start
starten.
Neues Release von https://distributions.informationgrid.eu/ingrid-iplug-sns/ herunterladen.
iPlug stoppen.
sh start.sh stop
Aktuelles Installationsverzeichnis sichern:
cp -r /opt/ingrid/ingrid-iplug-sns BACKUP_DIRECTORY
Die Aktualisierung erfolgt über den Installer.
java -jar ingrid-iplug-sns-NEW-VERSION-installer.jar
Während der Installation bitte “Update” auswählen und das vorhandene Installationsverzeichnis angeben.
iPlug starten.
sh start.sh start
start.sh [start|stop|restart|status]
Die LOG Ausgaben finden sich in der Datei log.log
und console.log
.
Die Datei conf/communication.xml
enthält die Konfigurationen der InGrid Kommunikationsschicht.
<?xml version="1.0" encoding="UTF-8"?>
<communication xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="communication.xsd">
<client name="/ingrid-group:iplug-management-'Ihr-Name'">
<connections>
<server name="/ingrid-group:ibus-'Ihr-Name'">
<socket port="9900" timeout="10" ip="127.0.0.1" />
<messages maximumSize="1048576" threadCount="100" />
</server>
</connections>
</client>
<messages queueSize="2000" handleTimeout="10"/>
</communication>
Die einzelnen Parameter haben folgende Bedeutung:
Parameter | Beschreibung |
---|---|
client/@name | Eindeutige ID des iPlugs |
server/@name | Eindeutige ID des InGrid iBus |
socket/@port | Port unter dem der iBus erreichbar ist (Verbindungsaufnahme) |
socket/@timeout | Timeout der Socketverbindungen in sec |
message/@maximumSize | max. zulässige Größe einer Message in Bytes, die über den iBus versendet werden kann |
message/@threadCount | Anzahl der Verbindungen (Threads), die der iBus gleichzeitig aufrecht erhalten kann |
message/@handleTimeout | Timeout einer Message in sec (Wie lange wartet der iBus auf die Beantwortung einer Message.) |
message/@queueSize | Message Queue (Wie viele Nachrichten können in der Warteschlange des iBus enthalten sein.) |
In der Datei conf/spring/external-services.xml
können die verschiedenen Service Provider für Thesaurus, Gazetteer, Chronik und Klassifizierung eingestellt werden.
Als Thesaurus stehen im Moment SNS (UMTHES) oder GEMET zur Verfügung.
Als Gazetteer SNS oder ein WFS vom geodatenzentrum.
Für die Ermittlung von zeitlichen Ereignissen (Chronik) und der Klassifizierung von Texten/Web-Seiten steht nur der SNS zur Verfügung.
In der Datei müssen die entsprechenden Zeilen für die einzelnen Services aktiviert/kommentiert werden.
<!-- Gazetteer from SNS -->
<!-- <bean id="gazetteerService" class="de.ingrid.external.sns.SNSService" /> -->
<!-- Gazetteer from WFS -->
<bean id="gazetteerService" class="de.ingrid.external.wfs.WFSService" />
<!-- UMTHES Thesaurus from SNS -->
<bean id="thesaurusService" class="de.ingrid.external.sns.SNSService" />
<!-- GEMET Thesaurus -->
<!-- <bean id="thesaurusService" class="de.ingrid.external.gemet.GEMETService" /> -->
<bean id="fullClassifyService" class="de.ingrid.external.sns.SNSService" />
<bean id="chronicleService" class="de.ingrid.external.sns.SNSService" />
In der Datei sns.properties können die Einstellung für den SNS vorgenommen werden, wenn dieser Service Provider ausgewählt wurde.
Eigenschaft | Standard Wert | Kommentar |
---|---|---|
sns.serviceURL.thesaurus | http://sns.uba.de/umthes | Thesaurus-URL |
sns.serviceURL.chronicle | http://sns.uba.de/chronik | Chronik-URL |
sns.serviceURL.gazetteer | http://sns.uba.de/gazetteer | Gazetteer-URL |
sns.language | de | Sprache |
sns.timeout | 30000 | Timeout bei Anfragen in Millisekunden |
In der Datei gemet.properties können die Einstellung für den GEMET Service vorgenommen werden, wenn dieser Service Provider ausgewählt wurde.
Eigenschaft | Standard Wert | Kommentar |
---|---|---|
service.url | http://www.eionet.europa.eu/gemet | URL des GEMET Service |
service.analyzeMaxWords | 100 | Wie viele Wörter sollen bei der Suche nach Deskriptoren analysiert werden ? z.B. wenn aus der Beschreibung eines Metadatensatzes Deskriptoren extrahiert werden. |
service.ignorePassedMatchingType | false | Bei der Eingabe von Stichwörtern, wie sollen Deskriptoren gefunden werden ? true=Es wird immer nach Deskriptoren gesucht, die die Stichwörter enthalten, d.h. ein maximales Ergebnis false=Die Art der Suche wird vom Aufrufer bestimmt, also z.B. Stichwort enthalten, am Anfang oder Exakt Sollte auf false gesetzt werden, damit der Aufrufer immer abhängig vom Kontext korrekt nach Deskriptoren sucht ! Nur zu Testzwecken zu ändern ! |
service.request.rdf | false | Manche Anfragen an den Service können auch mit RDF Antwort (true) ausgeführt werden, der Standard ist jedoch JSON (false) ? Sollte auf false gesetzt werden, nur zu Testzwecken zu ändern ! |
service.alternateLanguage | Wird vom Service ein einzelner(!) Deskriptor angefragt (getTerm), so kann der Deskriptor-Name in einer zweiten Sprache geliefert werden. Wird hier z.B. “en” eingetragen, so wird der Deskriptor zusätzlich auch in Englisch geliefert und kann im Katalog abgelegt werden. Beim Mapping nach ISO XML wird das Schlagwort dann auch zusätzlich in Englisch lokalisiert. Wird hier nichts eingetragen, so wird der Deskriptor nur in der Basissprache geholt und ohne zusätzliche Lokalisierung nach ISO abgebildet (Default). Kann im IGE Frontend auf “en” (damit englische Lokalisierung des Deskriptors nach ISO abgebildet werden kann) und im SNS-iPlug auf “” gesetzt werden (keine englische Lokalisierung nötig für “Ähnliche Begriffe”). |
Die Konfiguration liegt per Default in der Library ingrid-external-service-wfs (siehe https://github.com/informationgrid/ingrid-external-service-wfs/blob/master/src/main/resources/wfs.properties). Die Konfigurationsdatei kann aber im ./conf Verzeichnis erzeugt werden und überschreibt dann die interne Konfiguration.
Beispiel:
wfs.properties
url=http://sg.geodatenzentrum.de/wfs_gnde
properties=gn:nnid,gn:beschreibung,gn:ags,gn:box,gn:hatEndonym/gn:Endonym/gn:name,gn:hatEndonym/gn:Endonym/gn:hatSprache/gn:Sprache/gn:sprache,gn:hatObjektart/gn:Objektart/gn:schluessel,gn:hatObjektart/gn:Objektart/gn:objektart
objectTypes=AX_Gemeinde,AX_Bundesland,AX_Regierungsbezirk,AX_KreisRegion,AX_Nationalstaat,AX_Landschaft,AX_StehendesGewaesser,AX_Meer,AX_Insel,AX_SchutzgebietNachNaturUmweltOderBodenschutzrecht
# every objectType must be defined here for correct translation
gazetteer.de.44006=Stehendes Gewässer
gazetteer.de.44007=Meer
gazetteer.de.71007=Schutzgebiet
gazetteer.de.73001=Nationalstaat
gazetteer.de.73002=Bundesland
gazetteer.de.73004=Kreis
gazetteer.de.73005=Gemeinde
gazetteer.de.74001=Landschaft
gazetteer.de.74004=Insel
# keys to map id to localization in portal and IGE
map.id.key.44006=lakeType
map.id.key.44007=seaType
map.id.key.71007=protectedAreaType
map.id.key.73001=nationType
map.id.key.73002=use2Type
map.id.key.73004=use4Type
map.id.key.73005=use6Type
map.id.key.74001=landscapeType
map.id.key.74004=islandType
env.sh
bei einer Aktualisierung verhindern.In der Datei env.sh können Systemvariablen komponenten-spezifisch angepasst werden (z.B. Proxy oder Heap Einstellungen). Um die Einstellungen nach einer Aktualisierung nicht zu verlieren, muss die Datei env.sh
nach user.env.sh
kopiert werden. Die Änderungen in user.env.sh
werden nicht überschrieben.
Bitte in der Datei env.user.sh folgendes zusätzlich eintragen:
User und Passwort müssen nicht unbedingt angegeben werden.
Achtung: Die Trennung mit dem pipe Symbol muss unter Windows/cygwin escaped werden:
Mögliche Ursachen:
Bitte analysieren Sie das log file des iPlugs. Löschen Sie gegebenenfalls den Cache Ihres Browsers und starten sowohl das Portal als auch das iPlug neu.
Sie müssen nach einer Änderung der Konfiguration das iPlug immer neu starten
Mit der Umstellung des SNS-Dienstes nach HTTPS wird ein zusätzliches Zertifikat in Java benötigt, um die Anfragen absetzen zu können. Ab der Version 3.6.2 sollten die URLs zu den Diensten in der Datei “sns.properties” bereits mit “https” beginnen. Dies betrifft die Schlüssel “sns.serviceURL.[chronicle|thesaurus|gazetteer]”. Bei vorherigen Versionen muss dies manuell umgestellt werden.
Wird ein Java 8 Update kleiner als Version 101 verwendet, muss zusätzlich noch ein Zertifikat hinzugefügt werden. Hierbei muss das Zertifikat “Let’s Encrypt Authority X3” von https://letsencrypt.org/certificates/ heruntergeladen werden. Dies kann folgendermaßen geschehen:
wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem
Dieses Zertifikat wird dann mittels des keytool-Kommandos in Java importiert. Hierbei ist es wichtig, dass man die Javaversion aktualisiert, die auch zum Starten der Komponente verwendet wird.
sudo <path-to-jdk>/jre/bin/keytool -trustcacerts -keystore <path-to-jdk>/jre/lib/security/cacerts -importcert -file lets-encrypt-x3-cross-signed.pem
Hierbei wird der aktuelle “keystore” mit dem neuen Zertifikat aktualisiert. Wenn der keystore noch nicht existiert, so wird zusätzlich nach einem neuen Passwort nachgefragt. Falls der keystore schon existiert, so wird stattdessen nach dem dazugehörigen Passwort gefragt. Dieses ist standardmäßig “changeit”.
Nach einem Neustart des SNS-iPlugs, sollte der SNS wieder Ergebnisse liefern.