Best Practice


  1. Wie bekomme ich meine Daten ins Semantic Web

    1. Was benötigt ihr System

    2. Herunterladen der Applikation

    3. Entpacken der Applikation

    4. Erzeugen eines MappingFile

      1. Automatisch erzeugtes MappingFile

      2. Konfigurieren des MappingFile

      3. Erzeugen der RDF Datei





TranslationTable

Eine d2rq:TranslationTable ist eine zusätzliche Schicht zwischen Datenbank und RDF. Es werden zwischen Werten der Datenbank und RDF URIs bzw. Literale in beide Richtungen übersetzt. Eine TranslationTable kann zu einer ClassMap bzw. PropertyBridge mit der d2rq:translateWith Eigenschaft hinzugefügt werden. TranslationTables können nur bei einem einzigartigen Mapping (1:1) verwendet werden.

Eigenschaften

d2rq:translation

Fügt eine d2rq:Translation zu der Tabelle

d2rq:href

Verlinkt zu einer CSV Datei, welche Translations enthält. Jede Zeile ist eine Translation und enthält zwei durch ein Komma geteilte Strings. Der Erste ist der Datenbankwert, der Zweite der Wert des RDFs.

d2rq:javaClass

Der name einer Java Classe, die das Mapping durchführt. Diese Classe muss dieses Translator Interface implementieren. Benutzerdefinierte Translators können beispielsweise für kodieren und dekodieren hilfreich sein, sind aber auf 1:1 Translations limitiert. Mehr Informationen finden sie in der Translator Javadoc.


Translation

Ein d2rq:Translation ist ein Eintrag in einer d2rq:TranslationTable.

Eigenschaften

d2rq:databaseValue

Ein Wert, welcher in einer Datenbankspalte vorkommen kann bzw. von einem d2rq:pattern ereugt wurde

d2rq:rdfValue

Die Übersetzung dieses Wertes, der in der RDF-Datei verwendet wird

Beispiel: Übersetzen von Farben-Codes


Eine typische Anwendung sind Datenbankspalten, die Codes enhalten. Eine TranslationTable kann nun verwendet werden um diese Codes in die RDF Dateien zu bringen. In diesem Beispiel enhält die Spalte ShinyObject.Color die Farben-Codes „R“ für red und „G“ für green. Diese Codes müssen im RDF in red, green, ... übersetzt werden

:red a :Color;
:green a :Color;
# ... more colors omitted ...
:blue a :Color;

map:ColorBridge a d2rq:PropertyBridge;
        d2rq:belongsToClassMap map:ShinyObjectMap;
        d2rq:property :color;
        d2rq:uriColumn "ShinyObject.Color";
        d2rq:translateWith map:ColorTable.

map:ColorTable a d2rq:TranslationTable;
        d2rq:translation [ d2rq:databaseValue "R"; d2rq:rdfValue :red; ];
        d2rq:translation [ d2rq:databaseValue "G"; d2rq:rdfValue :green; ];
        # ... more translations omitted ...
        d2rq:translation [ d2rq:databaseValue "B"; d2rq:rdfValue :blue; ].

Das d2rq:translateWith Statment sagt D2RQ, dass es die Datenbankwerte in der map:ColorTable suchen soll. Dort müssen Übersetzungen für jeden möglichen Wert stehen. Falls die Datenbank Werte enhält, die nicht in der TranslationTable stehen, so wird kein :color Statement für diese :ShinyObject Instanz generiert.