Einleitung
Beim Erstellen eines Modells in INTERLIS muss man sich entscheiden, welche natürliche Sprache (Deutsch, Französisch, Englisch usw.) man dazu verwendet. Die INTERLIS Schlüsselwörter wie CLASS
, TEXT
oder TOPIC
sind zwar fix in Englisch, aber die verwendeten Namen für eine Klasse, ein Attribut oder ein Thema können im Rahmen der Regeln frei gewählt werden:
CLASS Fluss =
END Fluss;
vs.
CLASS Riviere = !! eigentlich 'Rivière', aber das Zeichen 'è' ist nicht erlaubt im Namen
END Riviere;
vs.
CLASS Fiume =
END Fiume;
Gelegentich möchte man jedoch ein Modell in mehreren natürlichen Sprachen bereitstellen, um das Modellverständnis bei allen Anwender:innen zu fördern. Dazu bietet INTERLIS das Konzept TRANSLATION OF an, womit man ein Modell als Übersetzung (engl. translation) eines anderen Modells markieren kann.
Anwendung
Um ein Modell als Übersetzung eines anderen Modells verwenden zu können, müssen folgende Bedingungen erfüllt sein:
- Die Struktur des übersetzten Modells muss identisch sein zur Struktur des Hauptmodells. So muss z. B. die Reihenfolge der Themen (
TOPIC
) und darin die Reihenfolge der Klassen (CLASS
) und in den Klassen die Reihenfolge der Attribute gleich sein. Die einzigen Unterschiede zwischen Hauptmodell und Übersetzungsmodell dürfen also nur die verwendeten Namen sein (sowie allfällige Kommentare und Leerzeichen/Zeilenumbrüche). - Das Übersetzungsmodell muss mittels der Schlüsselwörter
TRANSLATION OF
als Übersetzung markiert sein.
Nachfolgend als Beispiel die Modelle der Nutzungsplanung des ARE. Das Hauptmodell (Quelle: Nutzungsplanung_V1_2.ili) ist in Deutsch verfasst und beginnt wie folgt (ohne einleitende Kommentare):
MODEL Nutzungsplanung_V1_2 (de)
AT "https://models.geo.admin.ch/ARE/"
VERSION "2023-03-20" =
IMPORTS CHAdminCodes_V1,InternationalCodes_V1,LocalisationCH_V1,GeometryCHLV95_V1;
Das entsprechende, auf Französisch übersetzte Modell (Quelle: PlansDAffectation_V1_2.ili) enthält die TRANSLATION OF Kennzeichnung:
MODEL PlansDAffectation_V1_2 (fr)
AT "https://models.geo.admin.ch/ARE/"
VERSION "2023-03-20"
TRANSLATION OF Nutzungsplanung_V1_2 ["2023-03-20"] =
IMPORTS CHAdminCodes_V1,InternationalCodes_V1,LocalisationCH_V1,GeometryCHLV95_V1;
Im weiteren Vergleich der beiden Modelle sind dann die Übersetzungen ersichtlich.
Deutsch:
DOMAIN
Einzelflaeche = SURFACE WITH (ARCS,STRAIGHTS) VERTEX GeometryCHLV95_V1.Coord2 WITHOUT OVERLAPS>0.05;
TypeID = OID TEXT*60;
RechtsStatus = (
inKraft,
AenderungMitVorwirkung,
AenderungOhneVorwirkung
);
...
vs. Französisch:
DOMAIN
SurfaceUnique = SURFACE WITH (ARCS,STRAIGHTS) VERTEX GeometryCHLV95_V1.Coord2 WITHOUT OVERLAPS>0.05;
TypeID = OID TEXT*60;
StatutJuridique = (
enVigueur,
ModificationAvecEffetAnticipe,
ModificationSansEffetAnticipe
);
...
Hinweis: Sollte ein Übersetzungsmodell in der Struktur nicht dem Hauptmodell entsprechen, so wird bei der Modellprüfung mit dem INTERLIS Compiler (ili2c) eine entsprechende Fehlermeldung ausgegeben (z. B. fehlende Klasse oder unterschiedlicher Attribut-Typ).
Nutzen
Der Vorteil der Übersetzungsmodelle liegt nicht nur im besseren Modellverständnis (weil in die native Sprache übersetzt), sondern auch in den Datenlieferungen, die gemäss dem Übersetzungsmodell erfolgen können. Da Hauptmodell und Übersetzungsmodell in der Struktur identisch sind, lassen sich die Daten auch vom einen Modell ins andere übersetzen und umgekehrt. Dabei werden selbstverständlich nur die Namen, die in den Modellen verwendet wurden, übersetzt. Der Inhalt eines Text-Datentyps wird jedoch eins-zu-eins übernommen.
Die Umwandlung lässt sich mit dem Tool ili2db (z. B. nachfolgend mit ili2gpkg für die Kommunikation mit GeoPackage) in drei Schritten durchführen:
Schritt 1: GeoPackage mit entsprechendem Schema anlegen
Der Aufruf von ili2gpkg erfolgt durch folgenden Befehl:
java -jar ili2gpkg-5.1.0.jar --schemaimport --createGeomIdx --defaultSrsAuth EPSG --defaultSrsCode 2056 --nameByTopic --createTidCol --createBasketCol --sqlEnableNull --sqlExtRefCols --models PlansDAffectation_V1_2 --dbfile nup.gpkg
Damit wird eine GPKG-Datei (nup.gpkg) angelegt, welche das Schema des Nutzungsplanungsmodells enthält.
Hinweis: Weil das Nutzungsplanungsmodell mit einem zusätzlichen, separaten Katalog verwendet wird (siehe Nutzungsplanung_Catalogue_CH_V1_2_20210901.xml), müssen zusätzliche Optionen verwendet werden, um die Referenzen auf den Katalog zu erhalten. Es sind dies
--sqlEnableNull
und--sqlExtRefCols
.
Schritt 2: Daten in GeoPackage importieren
Die Nutzungsplanungsdaten des Kantons Jura sind im französischsprachigen Modell der Nutzungsplanung erfasst. Diese sind öffentlich verfügbar und lassen sich via geodienste.ch als .xtf herunterladen.
Auf einen Blick lässt sich im Abschnitt der DATASECTION bereits erkennen, dass das französische Übersetzungsmodell den Daten zugrunde lag:
<PlansDAffectation_V1_2.GeodonneesDeBase.AffectationPrimaire_SurfaceDeZones TID="02B01A3D4B7EA0602814D1C8BC14F7BF">
<publieDepuis>2024-01-12</publieDepuis>
<StatutJuridique>enVigueur</StatutJuridique>
<Type REF="556959A9996570002814D1CA1DDB0D06"/>
<Geometrie>
<SURFACE>
...
Mit folgendem Befehl werden die Daten in die unter Schritt 1 erzeugte GPKG-Datei importiert:
java -jar ili2gpkg-5.1.0.jar --import --importTid --importBid --skipReferenceErrors --dataset Jura --dbfile nup.gpkg ID073_Plans_affectations_V1.2.xtf
Dabei ist die Datei ID073_Plans_affectations_V1.2.xtf der von geodienste.ch heruntergeladene Datensatz der jurassischen Nutzungsplanung. Die Option --dataset Jura
kennzeichnet den importierten Datensatz eindeutig, was wir für den anschliessenden Export verwenden müssen. Die Bezeichnung kann eine beliebige Zeichenfolge sein.
Hinweis: Die Referenzen auf den Katalog, der nicht eingelesen wird, würden zu Fehlermeldungen führen. Um diese zu unterdrücken wird die Option
--skipReferenceErrors
angewendet.
Schritt 3: Daten aus GeoPackage in gewünschtes Modell exportieren
Nun können wir wählen, in welcher der verfügbaren natürlichen Sprachen wir die Daten exportieren möchten. Dies geschieht über den folgenden Befehl:
java -jar ili2gpkg-5.1.0.jar --export --dataset Jura --exportModels Nutzungsplanung_V1_2 --exportTid --dbfile nup.gpkg export_ID073_Nutzungsplanung_V1.2.xtf
Die auszugebenden Daten landen in der Datei export_ID073_Nutzungsplanung_V1.2.xtf. Exportiert wird derjenige Datensatz mit der Bezeichnung Jura. Über die Option --exportModels
wird gesteuert, in welches der (über TRANSLATION OF miteinander verbundenen) Modelle die Daten exportiert werden sollen. Im Beispiel oben wird ins deutschsprachige Hauptmodell Nutzungsplanung_V1_2
übersetzt.
Eine Übersetzung ins italienischsprachige Modell (Quelle: PianiDiUtilizzazione_V1_2.ili) würde also wie folgt lauten:
java -jar ili2gpkg-5.1.0.jar --export --dataset Jura --exportModels PianiDiUtilizzazione_V1_2 --exportTid --dbfile nup.gpkg export_ID073_PianiDiUtilizzazione_V1_2.xtf
Die exportierten Daten sehen anschliessend so aus:
<Nutzungsplanung_V1_2.Geobasisdaten.Grundnutzung_Zonenflaeche TID="02B01A3D4B7EA0602814D1C8BC14F7BF">
<publiziertAb>2024-01-12</publiziertAb>
<Rechtsstatus>inKraft</Rechtsstatus>
<Typ REF="556959A9996570002814D1CA1DDB0D06"/>
<Geometrie>
<SURFACE>
...
respektive so:
<PianiDiUtilizzazione_V1_2.GeodatiDiBase.UtilizzazioneDiBase_SuperficieDiZoni TID="02B01A3D4B7EA0602814D1C8BC14F7BF">
<pubblicataDal>2024-01-12</pubblicataDal>
<StatoGiuridico>inVigore</StatoGiuridico>
<Tipo REF="556959A9996570002814D1CA1DDB0D06"/>
<Geometria>
<SURFACE>
Fazit
Gerade in der mehrsprachigen Schweiz ist es hilfreich, wenn Datenmodelle in mehreren natürlichen Sprachen angeboten werden können. Durch die automatisierten Umwandlungsmöglichkeiten kann jede:r Anwender:in die Daten in seiner bevorzugten Sprache weiterverarbeiten.
Hinweis: Leider stehen nicht alle Datenmodelle mehrsprachig zur Verfügung. Welche Möglichkeiten es gibt, um Übersetzungsmodelle möglichst automatisiert herzuleiten und damit die Sprachbarriere zu senken, wird unter anderem auch ein Thema am nächsten INTERLIS Anwender:innen-Treffen im November 2024 in Yverdon-les-Bains sein (Details dazu siehe hier).