Werkzeuge zur Generierung von RDF

Patricia Bornhorst


Unter 'http://www.mathematik.uni-osnabrueck.de/tester/' befindet sich das Beispiels - Werkzeug, über das berichtet wurde.

Es handelt sich dabei um einen Konverter von XML - Dateien, die gegen ein XML - Schema validieren, in RDF/XML - Format.

 

Die Beschreibung durch ein XML - Schema wird im wesentlichen dadurch erreicht, dass Information, die RDF/XML als XML Elemente oder XML Attribute behandeln kann, als Attributwerte gesetzt werden. Die Attributwerte sind dann als XML - Schema simple - datatype kontrolliert.

Die Methode ist motiviert vom Design des HTML meta - tags, bei dem ueblicherweise im name attribute die Bedeutung einer Relation angegeben wird. Die Formulierung relativ zu einem XML Schema erlaubt es Eingangsdateien auf Beachtung von Datentypennebenbedingungen mit ueblichen XML - Schema Validierern zu ueberpruefen.

Als praktischer Nebeneffekt lassen sich fuer haeufig benutzte RDF Konstrukte syntaktische XML - Kuerzel einfuehren.

Die Konversion geschieht mithilfe einer XSL Transformation. Betrachtet man RDF als semantischen Layer, so erhalten formale XML - Schema Konstruktionen ueber die vorgegebene Transformation maschinen - verstehbare Bedeutung.

Eine Anwendung koennte darin bestehen, Anwendungsprofile relativ zu einem XML - Schema zu formulieren und die Transformation in RDF als mitgegebene Interpretation in Termen von labeled directed graphs aufzufassen.

 

Wir haben als Ziel der Konversion RDF/XML und nicht etwa RDF/N3 Format gewaehlt, vorwiegend aus dem Grund, dass RDF/XML well - formed XML ist und damit unter anderem die Technologie fuer Auszeichnung und escapes von characters zur Verfuegung bleibt.

 

Das Beispiel Schema erlaubt die Kodierung von in RDF/XML repraesentierbarem RDF. Es ist so gewaehlt, dass die Nutzung von herkoemmlichen Klassifikationssystemen und Thesauri in RDF, so wie in einer proposed recommendation der DublinCore Metadaten Initiative modeliert, erleichtert wird.

 

Im Grundsatz orientiert sich das XML - Schema jedoch an den syntaktisch in RDF/XML unterschiedlich zu behandelnden Objekttypen: resource, untyped literal und typed literal.

Bei den typed literals unterscheiden wir zwischen den built in XML - Schema simple datatypes, die auch von OWL unterstuetzt werden, erlauben die Nutzung beliebiger unter RDF zitierfaehiger Datentypen und geben dem Fall der literals mit eingebettetem XML mark - up besonderes Gewicht.

Wir gehen davon aus, dass Anwendungsprofile in der Regel staerkere Beschraenkungen hinsichtlich akzeptierter (einfacher) Datentypen vornehmen werden und XML mark - up in literals kontrollieren wollen.

Hierbei formalisieren wir die informelle Notation Anwendungsprofil als: XML - Schema zusammen mit einer XSL Transformation nach RDF/XML. Von dem XML - Schema wird dabei erwartet, dass es auf die Transformation in geeigneter Form verweist.

Wir erwarten also nicht vom XML - Schema selbst eine Beschreibung der Semantik seiner Konstruktionen. Semantik wird induziert durch das Ergebnis der Transformation, genauer durch die RDF Graphen, die vom Ergebnis der Transformation in W3C standardisierter Form repräsentiert sind.

 

Auf die Schönheit des erzeugten RDF/XML legt die verwendete XSL Transformation keinen Wert. (Unterschiedliche Darstellungen von RDF Graphen in RDF/XML haben für die beschriebene Semantik keine Bedeutung. Diese bedeutet natürlich nicht, dass sich unterschiedliche XML Darstellungen desselben Graphen etwa gegenüber einer XML Anfragesprache wie XQuery gleich verhalten.)

 

Ein sample file:

<?xml version="1.0"?>

<!DOCTYPE RDF [

<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>

<!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>

<!ENTITY dc 'http://purl.org/dc/elements/1.1/'>

<!ENTITY dcterms 'http://purl.org/dc/terms/'>

]>

<rd:RD xmlns:xs="http://www.w3.org/2001/XMLSchema"

xmlns:xml="http://www.w3.org/XML/1998/namespace"

xmlns:rd="http://www.iwi-iuk.org/rdf-xmlschema-syntax"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.iwi-iuk.org/rdf-xmlschema-syntax http://www.mathematik.uni-osnabrueck.de/tester/y.xsd"

xmlns="http://www.w3.org/1999/xhtml"

xml:base="http://www.mathematik.uni-osnabrueck.de/">

<rd:meta xsi:type="rd:r2r"

subject="http://www.mathematik.uni-osnabrueck.de/tester/y.xsd"

predicateNS="&dc;"

predicateName="title"

object="sampleNode"

bag="http://www.mathematik.uni-osnabrueck.de/tester/bagDemo"

bagMembers="node #fragment http://www.foo.org/file/"/>

</rd:RD>

 

Die Ausgangsidee besteht darin, RDF Tripel in <rd:meta> Tags zu wrappen. Der jeweilige durch xsi:type angezeigte complex type der Aussage differenziert nach den möglichen Grundtypen von Objekten in RDF Tripeln.

Subjekte von RDF Tripeln sind die jeweiligen Ressourcen, über die im Tripel geredet wird. Sie werden im Attribut subject gehalten. Prädikate werden aufgespalten in namespace und Name im namespace. Diese Zerlegung ist für RDF/XML syntaktisch relevant, sie ist kein Konzept für RDF als abstrakte Beschreibungssprache.

 

Der Konverter erstellt aus der obigen Eingabedatei den folgenden RDF/XML Code:

<?xml version="1.0" encoding="utf-8"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xml:base=''http://www.mathematik.uni-osnabrueck.de/''>

<rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ns1="http://purl.org/dc/elements/1.1/" rdf:about=''http://www.mathematik.uni-osnabrueck.de/tester/y.xsd''>

<ns1:title>

<rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:nodeID="sampleNode"/>

</ns1:title>

</rdf:Description>

<rdf:Bag xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:about=''http://www.mathematik.uni-osnabrueck.de/tester/bagDemo''>

<rdf:li xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:nodeID="node"/>

</rdf:li>

<rdf:li xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:about="#fragment"/>

</rdf:li>

<rdf:li xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<rdf:Description xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:about="http://foo.org/file/"/>

</rdf:li>

</rdf:Bag>

</rdf:RDF>

 

Von der URL http://www.mathematik.uni-osnabrueck.de/tester/, auf der dieser Konverter arbeitet, ist die Beschreibung des XML-Schemas zugänglich, bezüglich der die Eingabedateien validieren . Für Eingaben, die in diesem Sinne valide sind, definiert die dort ebenfalls zugängliche XSLT den Ausgangspunkt für semantische Interpretation. (XSLT ist eine vom W3C entwickelte XML2XML Transformationssprache, die weitgehende Möglichkeiten zur Modifikation der formalen Baumstruktur von XML Dokumenten bietet).

[Für Details der Interpretation von RDF Code verweisen wir auf die RDF Modell Theorie.]

 

Für das Eingeben der Daten ist es möglich, selber in dem Textfeld eine Beschreibung von Metadaten einzutragen, oder durch Angabe einer URI eine Datei zu laden, dessen Inhalt dann im Textfeld erscheint.

Mit dem Button 'Validate XML' wird der online XML - Validator XSV angesprochen, der die syntaktische Korrektheit des Inhalts relativ zum "y" - Schema überprüft.

Die Konvertierung der Eingabe in RDF/XML wird mit 'Converting to RDF' ausgelöst. Das Ergebnis wird angezeigt.

Der erzeugte RDF/XML Code kann über das Ansprechen des RDF - Validators bei W3C in RDF - Tripel oder - N3 Form überführt und visualisiert werden.

 

Ein Forminterface, dass unmittelbar RDF/XML fuer eine spezielle Anwendung erzeugt findet sich unter http://www.mathematik.uni-osnabrueck.de/cgi-bin/MMM3.1.cgi mit Quellen bei ftp://ftp.mathematik.uni-osnabrueck.de/pub/MMM/