Wie bekomme ich meine Daten ins
Semantic Web
Was benötigt ihr System
Herunterladen der Applikation
Entpacken der Applikation
Erzeugen eines MappingFile
Automatisch erzeugtes MappingFile
Konfigurieren des MappingFile
Erzeugen der RDF Datei
ClassMap
d2rq:ClassMap repräsentiert eine Klasse oder Gruppe von
gleichen Klassen einer OWL Ontologie oder eines RDFS Schemas. Eine
ClassMap definiert nun wie Instanzen dieser Klasse identifiziert
werden. Die ClassMap ist verbunden mit einer d2rq:database
und hat ein Set von d2rq:PropertyBridges
die den Instanzen Eigenschaften mitgeben
Resource Identity
D2RQ ermöglicht vier verschiedene Mechanismen um die
Instanzen in einer Datenbank zu identifizieren:
URI Patterns
Eine URI Pattern durch wird das Einsetzen von Werten der
Datenbankspalten in ein Muster instanziert
Beispiele:
http://example.org/persons/@@Persons.ID@@
http://example.org/lineItems/item@@Orders.orderID@@-@@LineItems.itemID@@
urn:isbn:@@Books.isbn@@
mailto:@@Persons.email@@
-
Die Abschnitte zwischen den @@ Zeichen markieren Datenbankzeilen in
der Table.Column
Notation. URI Pattern werden mit der d2rq:uriPattern
Eigenschaft verwendet
-
Bestimmte Zeichen wie Leerzeichen die Raute (#) sind in den URIs
nicht erlaubt oder haben eine spezielle Bedeutung. Spalten, die
solche Zeichen enthalten, müssen zuerst codiert werden bevor
deren Werte in die URI Pattern eingefügt werden können
-
Wenn eine Spalte folgendermaßen aussieht:
@@Table.Column|urlencode@@ dann wurde URL
encoding angewandt bevor die Zeichenkette eingefügt wurde.
-
Wenn eine Spalte folgendermaßen aussieht:
@@Table.Column|urlify@@ dann wurde ebenfalls URL encoding angewandt
nur zusätzlich wurden Leerzeichen durch Unterstriche ersetzt.
Viele Benutzer finden diese Weise leichter lesebarer.
- Relative
URI Patterns
-
Relatives URI Pattern ist ein URI Pattern, welches realtive URIs
generiert
-
persons/@@Persons.ID@@
-
Diese URIs werden dann mit der BASE URI kombiniert um vollständige
URIs zur Verfügung zu stellen. Relatives URI Pattern erlaubt
die Kreation von portablen MappingFiles, da bei einem gleichen
Datenbankschema einfach nur die BASE URI ausgetauscht werden muss.
-
URI Spalten
-
Manchmal enthält eine Datenbank schon URIs, die zum
identifizieren der Resource verwendet werden können (zb.
Homepage, DokumentURLs, ...). URIs können nun mit der
d2rq:uriColumns
Eigenschaft generiert werden.
-
Blank Nodes
-
Bei RDF wird auch das Konzept der 'Blank Nodes' verwendet. Ein
RDF Blank Node ist ein RDF Node, welcher selber keine Daten enhält,
aber als Parent Node das Gruppieren von Daten zur Verfügung
stellt. In D2RQ können Blank Nodes von einer oder mehreren
Spalten erzeugt werden. Die Spalten werden mit der
d2rq:bNodeIdColums
Eigenschaft als Blank Node spezifiziert. Hinweis:
mehr
Informationen zu Blank Nodes
-
Singleton Classmaps
-
Eine d2rq:ClassMap
produziert meisten viele Resourcen. Es ist aber manchmal
wünschenswert eine ClassMap zu haben, die nur eine einzige,
mit statischer Identität Resource produziert wird. In diesem
Fall kann man die d2rq:constantValue verwenden um eine einzige
Instanze zu verwenden.
-
-
Eigenschaften von d2rq d2rq:ClassMap
|
d2rq:dataStorage
|
Refernz zur d2rq:Database
wo die Instanzdaten gespeichert sind
|
|
d2rq:class
|
Eine RDF-S oder OWL Klasse. Alle Resourcen, die mit dieser
ClassMap erzeugt werden, sind Instanzen dieser Klasse
|
|
d2rq:uriPattern
|
Bestimmt das URI Pattern, welches zum Identifizieren der
Instanzen dieser ClassMap verwendet wird
|
|
d2rq:uriColumn
|
Eine Datenbankspalte, welche URI-Referenzen für das
Identifizieren von ClassMap Instanzen enthält. Dieser
Spaltenname muss in folgendem Format sein TableName.ColumnName
|
|
d2rq:bNodeIdColumns
|
Eine Komma-getrennte List von Spaltennamen in
TableName.ColumnName
Form.
Die Instanzen dieser ClassMap sind Blank Nodes; ein eindeutiger
Blank Node pro eindeutigem Tupel dieser Spalten
|
|
d2rq:constantValue
|
Diese ClassMap wird nur eine einzige Instanz heben, welche wie
der Wert dieser Eigenschaft heißen wird. Dies kann ein
BlankNode oder eine URI sein
|
|
d2rq:translateWith
|
Weist einer ClassMap eine d2rq:TranslationTable zu.
Werte der d2rq:uriColomn oder d2rq:uriPattern werden zuerst
übersetzt bevor eine Resource generiert wird.
|
|
d2rq:containsDuplicates
|
Falls ein ClassMap Informationen von nicht vollständig
normalisierten Tabellen verwendet, muss diese Eigenschaft angegeben
werden. Falls der d2rq:containsDuplicates Wert auf true gestellt
wird, dann wird bei jeder Anfrage an die Datenbank ein DISTINCT
mitgesendet. False, der Defaultwert, muss nicht explizit angegeben
werden.
|
|
d2rq:additionalProperty
|
Fügt eine AdditionalProperty zu allen Instanzen der Klasse
hinzu.
|
|
d2rq:condition
|
Beschreibt eine SQL WHERE Anweisung. Eine Instanz der Klasse
wird nur mit den Datenbankzeilen erzeugt, welche die Anweisung
erfüllen. Diese Anweisungen können dazu verwendet werden
um Teile der Datenbank vor D2RQ zu verbergen um beispielsweise
Daten die älter bzw. neuer als ein bestimmtes Daten sind
nicht anzuzeigen.
ConditionalMappings kommen dabei zum Einsatz.
|
|
d2rq:classDefinitionLabel
|
Beschreibt einen Label in rdfs:label für alle damit
verbundenen Class Definitionen. Mehrer Labels beispielsweise in
verschiedenen Sprachen werden unterstützt
|
|
d2rq:classDefinitionComment
|
Beschreibt einen Kommentar in rdfs:comment für alle damit
verbundenen Class Definitionen. Mehrere Kommentare werden
unterstützt
|
|
d2rq:additionalClassDefinitionProperty
|
Fügt eine AddittionalProperty allen Klassendeffinitionen
hinzu.
|
ClassMap Eigenschaft:
|
d2rq:classMap
|
Das Gegenkeit zur d2rq:class und unnötig wenn d2rq:class
verwedet wird. Legt fest, dass eine d2rq:classMap verwendet wird
um OWL oder RDF-S Klassen zu erzeugen
|
Beispiel: ClassMap, wo Instanzen mithilfe von URI Pattern
indentifiziert werden
map:PaperClassMap a d2rq:ClassMap;
d2rq:uriPattern 'http://www.conference.org/conf02004/paper#Paper@@Papers.PaperID@@';
d2rq:class :Paper;
d2rq:classDefinitionLabel 'paper'@en;
d2rq:classDefinitionComment 'A conference paper.'@en;
d2rq:dataStorage map:Database1.
Die d2ry:calss Eigenschaft gibt an, dass alle Resourcen, welche mit
Hilfe der d2rq:ClassMap generiert wurde, Instanzen von eines RDFs
oder OWL Klasse sind. Bei D2RQ werden automatisch die notwendigen
rdf:type Triple erzeugt.
Example: ClassMap wo BlankNodes verwendet werden
map:Topic a d2rq:ClassMap ;
d2rq:bNodeIdColumns 'Topics.TopicID' ;
d2rq:class :Topic ;
d2rq:classDefinitionLabel 'topic'@en;
d2rq:classDefinitionComment 'A topic.'@en;
d2rq:dataStorage map:Database1 .
Um BlankNodes erkennen zu können und um Daten in der Datenbank
instanzieren zu können verwendet D2RQ den ClassMap Namen
gemeinsam mit den Primarykey Werten in BlankNode Beschriftung.
'http://www.example.org/dbserver01/db01#Topic@@6', die
Nummer '6' ist der Primarykey Wert und
'http://www.example.org/dbserver01/db01#Topic' ist der
ClassMap Name.
Example: ClassMap für eine Gruppe von Klassen mit den
selben Eigenschaften
Will man eine ClassMap für eine Gruppe von Klassen mit den
selben Eigenschafte (zB.: Person, Professor, Student), die alle von
einer bestimmten Klasse abgeleitet sind, so muss man eine rdf:type
Anweisung mit einer ObjectPropertyBridge anstatt einer d2rq:class
Anweisung verwenden.
map:PersonsClassMap a d2rq:ClassMap ;
d2rq:uriColumn 'Persons.URI' ;
d2rq:dataStorage map:Database1 .
map:PersonsType a d2rq:PropertyBridge ;
d2rq:property rdf:type ;
d2rq:pattern 'http://annotation.semanticweb.org/iswc/iswc.daml#@@Persons.Type@@' ;
d2rq:belongsToClassMap map:PersonsClassMap .
Hier wird für jede Klasse zuerst bei den Eigenschaften der
Personen-Klasse nachgesehen. Falls eine Klasse nicht direkt mit der
Hilfe der Personenwerte erzeugt werden kann, dann wird eine
TranslationTable verwendet um die Werte ins RDF richtig zu
exportieren.
|