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