RDF - Resource Description Framework

Transcrição

RDF - Resource Description Framework
Technische Universität Carolo-Wilhelmina zu Braunschweig
Institut für Betriebssysteme und Rechnerverbund
Gruppe Verteilte Systeme
Prof. Dr. Stefan Fischer
E-Learning und das Semantische Web
RDF - Resource Description Framework
Seminararbeit
(Wintersemester 2003/2004)
Autor:
Studiengang:
Matrikel-Nr.:
Betreuung:
Matthias Seidel
Informatik
2566243
Martin Gutbrod und Christian Werner
2
1
Einleitung
Die rasante Verbreitung des Internets in den vergangenen Jahren hat die Welt der
Information revolutioniert. Durch den Einzug in nahezu jeden Aspekt des Wirtschafts- und öffentlichen Lebens wie auch in Privathaushalte ist das Internet zu
einem unverzichtbaren Bestandteil des Lebens geworden. Dies führt dazu, dass
Millionen Menschen täglich eine Flut an Informationen produzieren, abrufen oder
aktualisieren. Dieses gewaltige Wissensvolumen ist unüberschaubar und manuell
nicht mehr zu verwalten. Zwar sind alle Informationen im Web maschinenlesbar,
die wenigsten können jedoch auch von Maschinen verstanden werden. Mit Hilfe
des Ansatzes des semantischen Webs wird nun versucht, diesen Informationen
eine wohldefinierte Bedeutung, d.h. eine explizit repräsentierende Semantik, zuzuordnen, um es Menschen und Applikationen gleichermaßen zu ermöglichen,
diese Daten zu verarbeiten. Der Metasprache RDF (Resource Description Framework) kommt dabei als Basistechnologie des semantischen Webs eine zentrale Bedeutung zu. Die vorliegende Arbeit befasst sich zunächst mit der Motivation
hinter RDF sowie seiner Entstehung. Anschließend wird ein Überblick über die
Syntax von RDF und RDF-Schema gegeben, sowie die praktische Umsetzung
anhand von Beispielen erläutert.
2
RDF
2.1
Motivation
Das Internet, so wie wir es heute kennen, hat ein Problem: Nicht zu bändigende
Unordnung. Vergleicht man die gewaltige Menge an Dokumenten im Web mit einer riesigen Bibliothek, so hat es einen entscheidenden Nachteil: Die Bücher einer Bibliothek sind sortiert, für gewöhnlich nach Themengebieten und darüber
hinaus alphabetisch nach Autor und/oder Titel, was das Auffinden eines bestimmten Buches enorm erleichtert. Dies ist im Internet nicht der Fall. Die Suche nach
einem bestimmten „Buch“ gestaltet sich hier derart, dass man alle vorhandenen
Bücher einzeln durchgehen und sich Autor, Titel oder Inhalt ansehen muss, bis
man das Gewünschte gefunden hat, was natürlich eine untragbare Verschwendung an Ressourcen darstellt.
Auch mit der heutzutage bei Suchmaschinen üblichen Volltextsuche ist es kaum
möglich, Ordnung in das Chaos zu bringen, denn diese leidet an dem grundsätzlichen Problem, dass Internet-Seiten keine Informationen darüber enthalten, in
welchem Verhältnis die Inhalte zueinander stehen. Gibt man den Namen einer
Person in eine Suchmaschine ein, so bekommt man als Ergebnis eine Liste aller
Seiten zurück, die diesen Namen enthalten, ohne jedoch zu berücksichtigen, ob
die Person der Autor dieser Seite ist, ob sie dort zitiert wurde oder ob es sich gar
um eine völlig andere Person mit dem gleichen Namen handelt. In Ermangelung
künstlicher Intelligenz können Suchmaschinen nicht differenzieren, in welchem
Zusammenhang der Name erwähnt wird.
3
Da solch eine künstliche Intelligenz in naher Zukunft wenig realistisch erscheint,
wird statt dessen die Idee verfolgt, den Suchmaschinen und sonstigen informationsverarbeitenden Programmen mitzuteilen, welche Bedeutung bestimmte Informationen haben. Hier kommen Metadaten (wörtlich etwa „Daten über Daten“) ins
Spiel. Von TIM BERNERS-LEE, dem „Erfinder“ des WWW und Direktor des W3C1,
stammt die Definition: „Metadaten sind maschinenlesbare Informationen über
elektronische Ressourcen oder andere Dinge.“
2.2
Das Konzept RDF
BERNERS-LEE und das W3C haben die dargestellten Probleme schon vor einiger
Zeit erkannt, und bemühen sich seitdem um einen Lösungsansatz, der unter dem
Begriff Semantic Web zusammengefasst wird. Die Grundidee beschreibt ein Internet, in dem Informationen ihrer Bedeutung nach klassifiziert und einander zugeordnet sind, wobei diese Bedeutungen und Zuordnungen auch von nichtintelligenten Agenten wie Suchmaschinen erfassbar sein sollen.
An zentraler Stelle dieser Bemühungen steht dabei RDF, das „Resource Description Framework“. RDF ist ein Standard, der die oben beschriebenen Zuordnungen
und Klassifizierungen leisten soll, und das flexibel und ohne eine zentrale, koordinierende Instanz.
Die Ziele von RDF wurden folgendermaßen definiert (s. [8]):
•
•
•
•
•
•
Interoperabilität von Metadaten
Maschinell verarbeitbare Semantiken zu entwickeln
Größere Recherchepräzision zu erreichen als bei der Volltextsuche
Verarbeitungsregelungen für Sprachen zu definieren, um ein automatisiertes Ranking von Ressourcen zu verbessern
Retrieval von Metadaten bei Dritten (externe Hersteller von Metadaten
aller Arten)
Entwurf zukunftssicherer Anwendungen im Hinblick auf die sich entwickelnden Schemata
Im August 1997 als Working Draft erstmals vorgestellt, erreichte RDF im Februar
1999 den Status einer Recommendation des W3C, zunächst bestehend aus zwei
Dokumenten: In der „RDF Model and Syntax Specification“ [1] werden das Datenmodell und die Syntax beschrieben, durch die Daten in RDF repräsentiert werden. „RDF Schema“ [2] behandelt die Definition von Schemata, mit deren Hilfe die
Semantik von Daten beschrieben werden kann. Bis zum heutigen Tag wurden die
Spezifikationen noch um vier weitere Dokumente [3] – [6] vervollständigt:
•
•
•
•
1
RDF Primer
RDF Concepts and Abstract Syntax
RDF Semantics
RDF Test Cases
World Wide Web Consortium, http://www.w3.org/
4
RDF stellt dabei keine Sprache dar, sondern vielmehr ein Datenmodell, das auf
die verschiedensten Weisen codiert werden kann, wobei sich die Darstellung mittels XML2 („RDF/XML“ genannt) nicht nur als Standard durchgesetzt hat, sondern
mittlerweile auch offiziell vom W3C empfohlen wird. Dementsprechend wurde die
„Model and Syntax Specification“ seit September 2001 durch die „RDF/XML Syntax Specification“ [3] ersetzt, und wann immer von RDF die Rede ist, wird meist
RDF/XML gemeint.
2.3
RDF-Syntax
Im Folgenden sollen die wichtigsten Elemente der RDF-Spezifikationen in Grundzügen erläutert werden.
Im Wesentlichen besteht RDF aus den drei folgenden Grundelementen:
•
Ressourcen (Resources):
Die mittels RDF beschriebenen Objekte werden als Ressourcen bezeichnet. Ressourcen werden eindeutig mittels eines URIs3 und einer
optionalen Anchor-ID spezifiziert. Da es prinzipiell möglich ist, für beliebige Objekte URIs zu definieren, beschränkt sich die Anwendbarkeit
von RDF nicht nur auf Webdokumente und andere Ressourcen im
Netz, sondern kann nach Belieben auf die physische Welt ausgedehnt
werden.
•
Eigenschaften (Properties):
Unter einer Eigenschaft wird ein Aspekt, ein Charakteristikum oder eine Relation, welche zum Beschreiben einer Ressource verwendet
wird, verstanden. Jede Eigenschaft hat eine bestimmte Bedeutung,
welche die erlaubten Werte, die Art von Ressourcen, welche sie beschreiben kann, und ihre Beziehung zu anderen Eigenschaften definiert.
•
Aussagen (Statements):
Ein RDF-Statement wird durch ein Tripel aus einer Ressource, einer
Eigenschaft und dem Wert dieser Eigenschaft für die jeweilige Ressource spezifiziert. Diese drei Teile einer Aussage werden als
Subjekt (die Ressource)
Prädikat (die Eigenschaft)
Objekt (der Wert der Eigenschaft)
bezeichnet. Als Objekt sind sowohl Strings oder andere einfache Datentypen als auch andere Ressourcen möglich, welche über einen URI
spezifiziert werden.
2
3
Extensible Markup Language, http://www.w3.org/XML/
Uniform Resource Identifier, http://www.w3.org/Addressing/
5
Zur Verdeutlichung betrachten wir die folgende Aussage:
“The individual, whose name is Ora Lassila, email <[email protected]>, is
the creator of http://www.w3.org/Home/Lassila.”
Diese Aussage besteht aus den folgenden beiden Statements:
(1) Das Dokument http://www.w3.org/Home/Lassila hat als Autor eine Person.
(2) Diese Person hat den Namen Ora Lassila und die E-Mail-Adresse
[email protected].
Die Ressource, die im ersten Statement beschrieben wird, ist offensichtlich
http://www.w3.org/Home/Lassila und somit das Subjekt. Die Eigenschaft der Ressource bzw. das Prädikat dieses Statements ist Creator. Objekt bzw. Wert der
Eigenschaft Creator ist eine Person, welche gleichzeitig Subjekt des zweiten Statements ist. Das zweite Statement besitzt schließlich die Prädikate Name bzw.
Email mit den zugehörigen Objekten Ora Lassila und [email protected]. Um diese
Aussagen jetzt in RDF darstellen zu können, müssen wir der Person noch einen
eindeutigen URI zuweisen. Zu diesem Zweck nehmen wir an, dass die Person
eine Angestellten-ID 85740 besitzt, und damit z.B. über den URI
http://www.w3.org/staffId/85740 eindeutig identifiziert werden kann.
Zur Veranschaulichung betrachten wir dieses Beispiel zunächst als Diagramm.
Üblicherweise werden RDF-Statements als Pfeildiagramme dargestellt, wobei
Ressourcen als ovale Knoten, eine Eigenschaft als Pfeil und der zugehörige Wert
als rechteckiger Knoten für Literale oder erneut als ovaler Knoten für eine weitere
Ressource dargestellt werden. Unser Beispiel stellt sich damit wie folgt dar:
Abb. 1: Diagramm eines RDF-Statements
6
Wie bereits erwähnt, werden RDF-Zuordnungen normalerweise in XML notiert.
Das obige Beispiel könnte dann etwa so aussehen:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:s="http://description.org/schema/">
<rdf:Description about="http://www.w3.org/Home/Lassila">
<s:Creator rdf:resource="http://www.w3.org/staffId/85740"/>
</rdf:Description>
<rdf:Description about="http://www.w3.org/staffId/85740">
<s:Name>Ora Lassila</s:Name>
<s:Email>[email protected]</s:Email>
</rdf:Description>
</rdf:RDF>
Das rdf:RDF-Tag leitet zunächst offensichtlich einen Abschnitt ein, in dem RDFDaten deklariert werden. Der Namespace rdf ist dabei standardisiert für das
grundlegende RDF-Vokabular, s ist ein vom Programmierer gewählter Namespace und steht für gewöhnlich für ein beim angegebenen URI definiertes RDFSchema (s. Kapitel 2.4). Mit rdf:Description wird schließlich ein Statement eingeleitet, dessen Subjekt im about-Attribut angegeben ist. Innerhalb des DescriptionTags können der Ressource nun bestimmte Eigenschaften zugeordnet werden,
hier Creator. Objekt der Eigenschaft ist in diesem Fall eine weitere separat deklarierte Ressource mit dem URI http://www.w3.org/staffId/85740. Alternativ kann
man Literale wie Strings oder andere simple Datentypen verwenden oder eine
mittels sogenannter Inline-Deklaration definierte Ressource:
<rdf:RDF>
<rdf:Description about="http://www.w3.org/Home/Lassila">
<s:Creator>
<rdf:Description about="http://www.w3.org/staffId/85740">
<s:Name>Ora Lassila</s:Name>
<s:Email>[email protected]</s:Email>
</rdf:Description>
</s:Creator>
</rdf:Description>
</rdf:RDF>
Für einen RDF-Parser stellen sich beide Beispiele völlig identisch dar, da sie den
gleichen RDF-Graphen repräsentieren.
Ein weiterer wesentlicher Bestandteil von RDF sind die so genannten Container.
Häufig ist es notwendig, mehrere gleichartige Elemente zu gruppieren. So kann
ein Dokument mehrere Autoren besitzen oder ein Programm aus mehreren Modulen bestehen. Anstatt für jede dieser Ressourcen einzeln die Eigenschaften und
ihre Werte anzugeben, lässt sich dies mit Hilfe von Containern viel einfacher und
eleganter lösen. RDF bietet zu diesem Zweck die folgenden Datenstrukturen für
Listen an:
7
•
Bag: Eine ungeordnete Liste mit Duplikaten, die verwendet werden
sollte, falls keine Reihenfolge der Elemente gegeben ist, z.B. für eine
Liste von Merkmalen eines Produktes.
•
Sequence: Eine geordnete Liste mit Duplikaten, die verwendet werden
sollte, falls eine Reihenfolge der Elemente gegeben ist, z.B. für eine
alphabetisch sortierte Liste von Personen.
•
Alternative: Eine Liste von möglichen Alternativen, z.B. eine Liste von
Mirror-Seiten im Internet.
Stellvertretend für die drei Arten von Containern soll hier ein Beispiel für einen
Alternative-Fall gegeben werden:
„The source code for X11 may be found at ftp.x.org, ftp.cs.purdue.edu or
ftp.eu.net.”
Als Diagramm könnte man diese Aussage folgendermaßen darstellen:
Abb. 2: Diagrammdarstellung von Alternative
In RDF/XML wird die Liste der Alternativen zunächst mit einem rdf:Alt-Tag eingeleitet, und die einzelnen Elemente jeweils innerhalb eines rdf:li-Tags aufgelistet:
<rdf:Description about="http://x.org/packages/X11">
<DistributionSite>
<rdf:Alt>
<rdf:li resource="ftp://ftp.x.org"/>
<rdf:li resource="ftp://ftp.cs.purdue.edu"/>
<rdf:li resource="ftp://ftp.eu.net"/>
</rdf:Alt>
</DistributionSite>
</rdf:Description>
8
Abschließend bleibt zu sagen, dass das W3C zwar die grundsätzlichen grammatikalischen Eigenschaften von RDF definiert, aber keine konkreten Properties vorgegeben hat. Das heißt, es bleibt dem Anwender überlassen, ob er Autor, Author
oder Creator als Eigenschaft für eine Person wählt, die ein Dokument erstellt hat.
Daher muss es aufbauend auf RDF weitere Spezifizierungen geben, die ein bestimmtes Vokabular an Eigenschaften zur Verfügung stellen. Das geschieht mit
Hilfe von RDF-Schema.
2.4
RDF-Schema
Das RDF-Modell beschreibt Ressourcen durch Eigenschaften, über deren Charakteristiken jedoch zunächst keine näheren Aussagen gemacht werden können.
Diese Charakteristiken der Eigenschaften werden über RDF-Schemata definiert,
einer Art DTD4.
In diesen Schemata wird für jede Eigenschaft festgelegt, welche Werte für sie erlaubt sind, was sie für eine Bedeutung hat, welche Beziehungen sie zu anderen
Eigenschaften hat und welche Arten von Ressourcen diese Eigenschaft besitzen.
Dabei wurde vom W3C nicht ein allgemeingültiges Schema definiert, in dem verschiedene Klassen und Eigenschaften festgelegt werden, sondern es wird in [3]
eine „Schema Definition Language“ beschrieben, mit deren Hilfe die eigentlichen
Schemata definiert werden können. Diese Schemata werden dann auch als Vokabulare bezeichnet, da sie definieren, welche Eigenschaften mit welcher Bedeutung zur Verfügung stehen.
Folgende Grafik soll den Zusammenhang verdeutlichen.
Abb. 3: Das RDF-System
Während RDF also das Datenmodell für die Darstellung von Metadaten beschreibt, werden die eigentlichen Sprachen bzw. Schemata von MetadatenGemeinschaften wie z. B. der DCMI5 definiert. Durch diese dezentralisierte Vorgehensweise wird eingestanden, dass es unmöglich ist, ein einzelnes Schema zu
entwickeln, das für alle Gebrauchsmöglichkeiten passend wäre. Der Erfolg von
RDF wird erheblich davon abhängen, inwiefern man sich in diesem Bereich auf
gemeinsame Standards einigen kann.
Das RDF-Schema-System ähnelt stark dem hierarchischen Klassensystem objektorientierter Sprachen, allerdings mit einem wesentlichen Unterschied: Bei den
4
5
Document Type Definition
Dublin Core Metadata Initiative, http://dublincore.org/
9
objektorientierten Sprachen werden Klassen von Objekten durch die Eigenschaften definiert, die sie besitzen. Da sich bei RDF jedoch alles um die Beschreibung
von Eigenschaften von Ressourcen dreht, werden in RDF-Schemata Eigenschaften definiert und für diese dann festgelegt, für welche Klassen von Objekten sie
anwendbar sind. Auf diese Weise können bei Bedarf jederzeit neue Eigenschaften geschaffen und bestimmten Klassen zugeordnet werden, ohne dass bestehende Anwendungen beeinträchtigt werden. Außerdem können so definierte Eigenschaften mit ihrer Charakteristik wie Bedeutung, Wertebereich usw. sofort für
eine andere Klasse unter Beibehaltung dieser Charakteristik verwendet werden.
Zunächst sollen die drei Basiselemente von RDF-Schema kurz erläutert werden:
•
rdfs:Class: Ähnlich wie bei objektorientierten Sprachen wie Java sind
auch hier alle Objekte, Ressourcen wie Eigenschaften, Instanzen von
Class, auch die Klasse Class selbst.
•
rdfs:Resource: Alles, was mit RDF beschrieben wird, ist eine Ressource, und somit eine Instanz dieser Klasse.
•
rdf:Property: Stellt die Klasse der Eigenschaften dar und repräsentiert eine Untermenge der Ressourcen.
Zu beachten ist hierbei, dass einerseits Class eine Unterklasse von Resource ist,
da RDF-Schema in RDF notiert wird und somit die Klassendefinitionen selbst
Ressourcen sind, andererseits Resource auch eine Instanz von Class ist, da es
eine Klasse ist.
Als Beispiel wollen wir ein Schema für ein RDF-Datenmodell betrachten, das der
Beschreibung von motorisierten Fahrzeugen dienen soll. Zu diesem Zweck könnten unter anderem die folgenden Klassen definiert werden:
<rdf:RDF xml:lang="en"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdfs:Class ID="MotorVehicle">
<rdfs:subClassOf
rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
<rdfs:label>MotorVehicle</rdfs:label>
<rdfs:comment>The class of motorvehicles.</rdfs:comment>
</rdfs:Class>
<rdfs:Class ID="Van">
<rdfs:subClassOf rdf:resource="#MotorVehicle"/>
<rdfs:seeAlso>http://www.vans.com</rdfs:seeAlso>
</rdfs:Class>
</rdf:RDF>
Das Basis-Vokabular von RDF-Schema wird mit dem Namespace rdfs gekennzeichnet. MotorVehicle stellt dabei die oberste Ebene unseres Datenmodells dar,
von der die weiteren Klassen abgeleitet werden, und ist daher durch
10
rdfs:subClassOf von der Klasse Resource selbst abgeleitet, während Van wiederum als Unterklasse von MotorVehicle deklariert wird. Eine Klasse kann dabei
mehrere Superklassen haben, so könnte z.B. eine Klasse Minivan Unterklasse
von Van und PassengerVehicle sein, welche ihrerseits Unterklassen von MotorVehicle sind. Mit Hilfe von rdfs:label, rdfs:comment und rdfs:seeAlso können den
definierten Klassen zusätzliche Attribute wie Kommentare oder Verweise auf nähere Informationen zugeordnet werden.
Abschließend werden Properties deklariert, mit denen die zuvor definierten Klassen von Fahrzeugen beschrieben werden können, wie z.B. eine Eigenschaft für
den Halter des Fahrzeugs:
<rdf:Property ID="registeredTo">
<rdfs:domain rdf:resource="#MotorVehicle"/>
<rdfs:range rdf:resource="#Person"/>
</rdf:Property>
rdfs:domain gibt dabei an, dass diese Eigenschaft auf Instanzen der Klasse MotorVehicle anwendbar ist, und rdfs:range, dass der Wert dieser Eigenschaft eine
Instanz der Klasse Person sein muss. Analog zu rdfs:subClassOf lassen sich mit
rdfs:subPropertyOf auch Hierarchien von Eigenschaften bilden.
Die gesamten Zusammenhänge sind abschließend noch einmal in folgendem
Diagramm dargestellt:
Abb 4.: Klassenhierarchie von RDF-Schema
11
3
RDF in der Praxis
3.1
RDF oder XML?
Beim ersten Kontakt mit RDF drängt sich einem Anwender, der mit XML vertraut
ist, unwillkürlich die Frage auf, inwiefern RDF als weitere Empfehlung neben XML
überhaupt notwendig ist. Dies ist sicherlich auch dadurch bedingt, dass RDF in
XML notiert wird und diesem dadurch auf den ersten Blick sehr ähnelt. In Wirklichkeit sind die Ansätze, die zu der Entwicklung der beiden Technologien geführt
haben, allerdings völlig verschieden. Was also kann RDF, was XML nicht kann,
und umgekehrt? Diese Frage soll im Folgenden erläutert werden.
Betrachten wir als Beispiel wieder die Aussage:
„Der Autor der Page ist Ora Lassila.“
In RDF stellt dies ein simples Statement dar, das durch ein Tripel (page – author „Ora Lassila“) beschrieben werden kann. Zwar bleibt es dem Programmierer überlassen, wie er das Prädikat benennt, an der eigentlichen Tripel-Struktur ändert
sich jedoch nichts. In XML hingegen gibt es zahllose Möglichkeiten, diese Aussage zu repräsentieren, z.B.:
<document href="page">
<author>Ora Lassila</author>
</document>
oder auch
<document>
<details>
<uri>href="page"</uri>
<author>
<name>Ora Lassila</name>
</author>
</details>
</document>
Beide stellen gültige XML-Dokumente dar und sind für eine lesende Person leicht
zu verstehen, da sie die Bedeutung der Tags erkennen kann. Eine Anwendung,
die diese Daten parsed, kann dies jedoch nicht, für sie stellen sie sich als völlig
unterschiedliche XML-Graphen dar. Die völlige Freiheit, wie man ein XMLDokument strukturiert, stellt zweifellos einen der bedeutendsten Vorteile von XML
dar. Durch diese unterschiedlichen Repräsentationen ist es jedoch unmöglich, die
Daten semantisch zu interpretieren, ohne dem Parser mitzuteilen, welches XMLTag welche Bedeutung hat. Und genau das ist es, was RDF tut.
12
Die wesentlichen Punkte, die XML und RDF unterscheiden, sollen in der folgenden Übersicht erläutert werden:
•
XML beschränkt sich darauf, ein Datenformat-Standard zu sein. RDF geht
einen Schritt weiter und versucht, den Daten Bedeutung zuzuordnen.
•
XML verwendet eine Baum-Struktur, wobei jedes XML-Dokument genau
einen Baum darstellt. Ein RDF-Modell besteht hingegen aus einer variablen Anzahl von Tripeln, bestehend aus Subjekt, Prädikat und Objekt. Tripel
existieren unabhängig voneinander, und ihre Reihenfolge ist nicht von Bedeutung. Die Kombination von beiden nennt sich RDF/XML und enthält
Tripel innerhalb einer XML-Baumstruktur.
•
Benutzt man XML ohne RDF, ist die Reihenfolge, in der die Daten gelistet
werden, für die verarbeitende Anwendung von Bedeutung. Werden die
Elemente umgeordnet, kann das Dokument meist nicht mehr korrekt geparsed werden. In einem RDF-Modell ist die Reihenfolge irrelevant.
•
Will man XML-Daten ohne RDF nutzen, so muss immer das gesamte
Schema betrachtet und verstanden werden. In einem abstrakten RDFModell kann man beliebig kleine Teile nutzen, die man versteht, und den
Rest ignorieren.
•
Durch die komplexen Strukturen, die XML verwenden kann, kann es unter
Umständen sehr kompliziert werden, XML-Daten zu durchsuchen. RDFDaten lassen sich durch den vereinfachten Tripel-Aufbau sehr viel einfacher finden.
•
RDF-Modelle ermöglichen es einem Computer, abzuleiten. Es können intelligente Anwendungen erstellt werden, die aus bestehenden Fakten neue
erstellen können. Mit Hilfe von Vokabularen kann ein Computer dem Begriff „java“ z.B. „Kaffee“ oder „Programmiersprache“ zuordnen. XML alleine
bietet diese Möglichkeiten nicht.
•
Wollen zwei Parteien mittels XML ohne RDF kommunizieren, so müssen
sie sich zunächst auf eine gemeinsame Syntax einigen und anschließend
ihre auszutauschenden Dokumente angleichen. Mit RDF ist dies auch mit
unterschiedlicher Syntax möglich, indem Äquivalenzen verwendet werden.
So kann vereinbart werden, dass „car“ das gleiche bedeutet wie „automobile“.
RDF ist also keinesfalls ein Ersatz für XML, es sind vielmehr komplementäre
Technologien, mit deren Hilfe ein „intelligenteres“ Internet geschaffen werden soll.
Als Entwickler muss man sich entscheiden, welche Kombination von Standards
man für seine Anwendung benötigt. RDF hat zweifellos entscheidende Vorteile,
erfordert aber sehr viel mehr Überlegung und Planung bei der Modellierung der
Daten und ist durch seine größere Komplexität nicht für jedes Projekt geeignet
bzw. nötig. Wenn die Daten nicht maschinell verarbeitet oder durchsucht bzw. mit
anderen Datenmodellen kombiniert werden müssen, dann reicht es meist aus,
normales XML zu verwenden.
13
3.2
RDF im Mozilla-Projekt
Mit der Veröffentlichung des Sourcecodes des Netscape Communicator wurde
1998 das Mozilla-Projekt ins Leben gerufen, welches die Entwicklung eines OpenSource-Browsers auf Basis der Netscape-Engine zum Ziel hatte und mittlerweile
auch begleitende Produkte wie z.B. einen E-Mail-Client umfasst. Um die vielen
unterschiedlichen Formen von strukturierten Daten zu verwalten, die in einem
Browser Verwendung finden (z.B. Bookmarks, History, Dateisysteme, Dokumentstrukturen, Sitemaps, etc.), wurde dabei zunächst der klassische Ansatz verfolgt,
für jede dieser Datenquellen ein eigenes API6 zu programmieren, welches das
Handling der entsprechenden Daten übernimmt. Mit fortschreitender Entwicklung
des Projektes wurde jedoch klar, dass die benötigten Datenstrukturen alle als gerichtete Graphen darstellbar sind, die sich wiederum durch entsprechende RDFGraphen beschreiben lassen, so dass es sich anbot, RDF als universelle Datenquelle für alle zu verwaltenden strukturierten Daten zu verwenden.
Die Verwaltung der Daten wird nun von einem API übernommen, welches unter
anderem folgende Dienste implementiert (s. [9]):
•
•
•
•
•
•
Viewer und Editor für die RDF-Strukturen
Speichern/Laden von RDF/XML-Files
Mechanismen für Suchabfragen
Syntaxchecking für die verwendeten Files
die Möglichkeit, Graphen miteinander zu kombinieren und multiple Views
von Graphen darzustellen
Serialisierung und Übermittlung mittels RDF/XML
Betrachten wir das Beispiel Bookmarks näher. Die meisten Browser bieten dem
Benutzer heutzutage die Möglichkeit, seine Bookmarks hierarchisch in Ordnern
abzulegen, wobei jedes Bookmark einen Pointer auf eine spezielle InternetRessource, nämlich eine Webpage darstellt. Mozilla geht hier einen Schritt weiter
und ermöglicht es durch die Speicherung der Bookmarks im RDF-Format, jede
beliebige Internet-Ressource als Bookmark zu behandeln, wie z.B. E-Mails, Usenet News, ganze Newsgroups oder Suchergebnisse. Neben der Sortierung in
Ordner sind auch „intelligente“ Ordner möglich, deren Inhalt beim Öffnen dynamisch generiert wird, oder ein Klassifizierungssystem, mit dem man Bookmarks
bestimmte Attribute zuordnen kann. Zwar sind Möglichkeiten wie die hier beschriebenen nicht von Haus aus in Mozilla implementiert, so dass vom Anwender
selbst Kenntnisse in RDF gefordert sind, aber der Kreativität sind hier durch das
universelle Datenmodell RDF keine Grenzen gesetzt.
Vorstellbar ist z.B. ein Ordner, der keine Bookmarks enthält, sondern in dem eine
Übersicht aller neuen Mails im Posteingang seit dem letzten Besuch aufgelistet
wird. Ermöglicht wird dies dadurch, dass der „Ordner“ in Wirklichkeit einen Pointer
auf eine Internet-Ressource darstellt, die ihrerseits wieder RDF-Daten enthält und
damit den ursprünglichen lokalen RDF-Graphen erweitert. Diese Ressource könnte z.B. ein CGI7-Skript sein, das die erforderlichen Daten auf dem Mail-Server ge6
7
Application Programming Interface
Common Gateway Interface, http://www.w3.org/CGI/
14
neriert und im RDF/XML-Format zurückgibt. Eine Nachricht wird dabei wie folgt
dargestellt:
<rdf:RDF xmlns:rdf="http://www.w3.org/TR/WD-rdf-syntax#"
xmlns:sm="http://www.mozilla.org/smart-mail/schema#">
<rdf:Description about="http://www.mozilla.org/smart-mail/getmail.cgi?user=waterson&folder=inbox">
<sm:message id="4025293">
<sm:recipient>
Chris Waterson "[email protected]"
</sm:recipient>
<sm:sender>Aunt Helga "[email protected]"</sm:sender>
<sm:received-by>x-wing.mcom.com</sm:received-by>
<sm:subject>Great recipe for Yam Soup!</sm:subject>
<sm:body>
http://www.mozilla.org/smart-mail/get-body.cgi?id=4025293
</sm:body>
</sm:message>
</rdf:Description>
</rdf:RDF>
Diese Daten werden von der RDF-Engine in Mozilla empfangen, an der entsprechenden Stelle in den RDF-Graph eingefügt und anschließend vom User Interface
für den Benutzer wie Bookmarks dargestellt.
4 Fazit
In der heutigen Zeit, in der es eine immer größere Herausforderung darstellt, immer mehr Informationen so zu verwalten, dass sie leicht zugänglich sind, d.h. vor
allem intelligente Durchsuchbarkeit zu gewährleisten, ist an einen Verzicht auf
Semantik nicht mehr zu denken. Das W3C hat mit RDF nun zumindest eine
Grundlage für semantische Auszeichnungen geschaffen, die allerdings noch an
einem entscheidenden Problem leidet: Der noch fehlenden Standardisierung der
Vokabulare. Eine wichtige Rolle wird in der Zukunft von RDF daher Gemeinschaften wie der DCMI zukommen, die zusätzliche umfassende Standards zur Verwendung von RDF entwerfen. So werden z.B. im „Dublin Core Metadata Element
Set“8 15 grundlegende Eigenschaften zur Beschreibung von Ressourcen, insbesondere Web-Ressourcen definiert, wie z.B. Titel, Verfasser, Datum oder Sprache. In Form eines RDF-Schemas könnte man den Dublin Core als bisher kleinsten gemeinsamen Nenner für verschiedene RDF-basierte Anwendungen bezeichnen.
Dennoch bietet RDF schon jetzt eine Reihe von Vorteilen, die es gegenüber anderen Lösungen auszeichnet:
•
8
Anpassbarkeit & Flexibilität: Beliebige Objekte lassen sich mit RDF beschreiben. Auf welche Eigenschaften man dabei zurückgreift, bleibt ei-
http://dublincore.org/documents/dces/
15
nem dabei selbst überlassen. Ebenso lassen sich eigene Eigenschaften definieren.
•
Austauschbarkeit: Durch die Notation in XML ist es ziemlich einfach,
RDF-Dokumente auszutauschen.
•
Einfachheit: RDF basiert auf Statements, die aus drei Komponenten
bestehen. Dadurch ist es ziemlich einfach, RDF weiterzuverarbeiten.
•
Kombinierbarkeit: Eigenschaften, Werte und Statements können alle
selbst wiederum Ressourcen sein. Das erlaubt, sie zu beschreiben und
miteinander zu verschachteln.
Trotz der noch bestehenden Probleme ist also zu erwarten, dass sich RDF auf
lange Sicht durchsetzen wird. Zu groß sind die möglichen Vorteile des Semantic
Web, als dass sich die Idee einfach ignorieren ließe. Und schon jetzt findet RDF
in zahlreichen Projekten Verwendung, wie z.B. im erwähnten Mozilla-Projekt oder
bei der Yahoo-Alternative „Open Directory“, die RDF einsetzt, um ihre Verzeichnis-Inhalte zu verteilen.
16
Literaturverzeichnis
[1]
RDF Model and Syntax Specification, Februar 1999
http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/
[2]
RDF Vocabulary Description Language 1.0: RDF Schema, Dezember 2003
http://www.w3.org/TR/rdf-schema/
[3]
RDF Primer, Dezember 2003
http://www.w3.org/TR/rdf-primer/
[4]
RDF Concepts and Abstract Syntax, Oktober 2003
http://www.w3.org/TR/rdf-concepts/
[5]
RDF Semantics, Dezember 2003
http://www.w3.org/TR/rdf-mt/
[6]
RDF Test Cases, Dezember 2003
http://www.w3.org/TR/rdf-testcases/
[7]
RDF/XML Syntax Specification, Dezember 2003
http://www.w3.org/TR/rdf-syntax-grammar/
[8]
Diann Rusch-Feja
Entwicklungen der Dublin Core Metadaten, Oktober 1997
http://www.mpib-berlin.mpg.de/dok/dc5ber.htm
[9]
Guha, Robert Churchill, John Giannandrea
Mozilla - RDF: Technical Overview, August 1999
http://www.mozilla.org/rdf/doc/api.html
[10] Shelly Powers
Practical RDF, O’Reilly, Juli 2003
http://www.oreilly.com/catalog/pracrdf/index.html
[11] Tim Berners-Lee
Why RDF model is different from the XML model, September 1998
http://www.w3.org/DesignIssues/RDF-XML.html

Documentos relacionados