Problemseminar "Datenbankeinsatz im Internet"

Sommersemester 1999

 

Resource Description Framework

 

Bearbeiter: Rainer Böhme

Betreuer: Holger Märtens

 

15.06.1999


Inhalt

1.    Einleitung.............................................................................................................................. 3

2.    Grundlagen........................................................................................................................... 4

2.1     Metadaten...................................................................................................................... 4

2.2     XML und RDF................................................................................................................ 5

3.    Datenrepräsentation in RDF................................................................................................ 6

3.1     Datenmodell und Syntax............................................................................................... 7

3.1.1  Grundlegendes RDF-Datenmodell und Syntax......................................................... 7

3.1.2  Container.................................................................................................................. 10

3.2     Schemadefinition......................................................................................................... 12

3.2.1  Klassen und Eigenschaften..................................................................................... 13

3.2.2  Beschränkungen (Constraints)................................................................................ 14

3.2.3  Beispiel-Schema...................................................................................................... 15

3.2.4  Erweiterungsmechanismen..................................................................................... 16

4.    RDF Query Specification................................................................................................... 17

4.1     Grundlagen.................................................................................................................. 17

4.2     Beispiel........................................................................................................................ 17

5.    Anwendung........................................................................................................................ 18

5.1     Anwendungsmöglichkeiten.......................................................................................... 18

5.2     Anwendungen.............................................................................................................. 19

5.2.1  Dublin Core.............................................................................................................. 19

5.2.2  IBM jCentral.............................................................................................................. 19

5.2.3  Open Directory Project............................................................................................ 20

5.3     Werkzeuge.................................................................................................................. 21

5.3.1  Reggie Metadaten Editor.......................................................................................... 21

5.3.2  SiRPAC.................................................................................................................... 22

6.    Zusammenfassung............................................................................................................ 23

Literaturverzeichnis.................................................................................................................. 24

 

 


1.     Einleitung

Das World Wide Web entwickelt sich sehr schnell zum weltgrößten Datenspeicher. Einerseits werden dadurch die Möglichkeiten zum weltweiten sofortigen Zugriff auf Informationen immer weiter verbessert, andererseits entstehen aber auch zunehmend Probleme dabei, in der Fülle der angebotenen Daten die tatsächlich relevanten Informationen zu finden. Der Grund dafür sind die Unzulänglichkeiten der derzeit zur Verfügung stehenden Suchmöglichkeiten, die im wesentlichen auf Volltextsuchen basieren und damit kaum semantisch komplexe Anfragen ermöglichen.

Diese Probleme sind dadurch bedingt, daß die Informationen im WWW zwar in maschinenlesbarer Form vorliegen, aber nicht maschinenverständlich sind, das heißt, daß die Semantik der Daten bisher kaum maschinell erfaßt werden kann.

Das World Wide Web Consortium (W3C) als Standardisierungsinstitution hat sich die Aufgabe gestellt, einen Weg zur Lösung dieser Problematik zu bieten. Dafür wird ein universelles, fle­xibles und maschinenverständliches Datenformat angestrebt, das die Darstellung von Metadaten, also Daten über andere Daten, ermöglicht.

Ein erster Ansatz dafür war die Platform for Internet Content Selection [PICS99], die eine Möglichkeit bietet, Aussagen über den Inhalt von Webseiten zu treffen. Primär ist PICS allerdings zur Beurteilung des Inhalts von Webseiten nach verschiedenen Kriterien geschaffen worden und hinsichtlich der universellen Verwendbarkeit zur Beschreibung von Webseiten fehlt ihr eine gewisse Flexibilität.

Als Nachfolger der PICS wurde daher das Resource Description Framework (RDF) vorgesehen. Im W3C wurde dazu eine Arbeitsgruppe gebildet, die nach [La97] aus Netscape, Microsoft, IBM, Nokia, OCLC und weiteren Mitgliedern zusammengesetzt ist und die Entwicklung des RDF zum Standard vorantreibt.

Zwei in gewissem Sinne gegensätzliche Ziele bei seiner Entwicklung sind, die Semantik von Objekten ausdrückbar und maschinell verwertbar zu machen und dabei andererseits eine der Dynamik des WWW angemessene Flexibilität und Erweiterbarkeit zu bieten. Um diese Ziele zu erreichen, basiert RDF auf mehreren Teilen. Als theoretische Grundlage dient ein Modell für Metadaten. Dieses Datenmodell kann dann in einer XML-basierten Syntax dargestellt werden. Die Semantik der Daten wird schließlich über sogenannte Schemas, eine Art Klassensystem, ausgedrückt.

Durch die Etablierung des RDF kann ein anwendungsübergreifender Standard verwendet werden, der die Interoperabilität der Daten zwischen den Projekten verschiedener Organisationen, die sich mit Metadaten befassen, ermöglicht.

Im Folgenden sollen zunächst einige grundlegende Aussagen über Metadaten und das Zusammenspiel von RDF und XML getroffen werden. Abschnitt 3 enthält Erläuterungen zu RDF-Datenmodell, RDF-Syntax und RDF-Schemasystem. In Abschnitt 4 wird RDF-Query als Beispiel für eine RDF-basierte Abfragesprache vorgestellt. Abschließend werden in Abschnitt 5 Anwendungsmöglichkeiten von RDF aufgezeigt.

2.     Grundlagen

2.1      Metadaten

RDF ist ein Datenformat für Metadaten. Daher soll zunächst in Anlehnung an [Be97] ein Überblick über Metadaten, speziell im Web, gegeben werden.

Im Web sind Daten in verschiedenen Formen zu finden, als einfache lesbare Dokumente, aber auch als Videos, ausführbare Dateien, Archive u.a.m. Alle diese Daten haben die Gemeinsamkeit, über einen Uniform Resource Identifier (URI) [Co99] erreichbar zu sein, sie werden im folgenden als Ressourcen bezeichnet.

URIs stellen eine allgemeine Form der Adressierung dar, sie umfassen die bekannten URLs (Uniform Resource Locators), die die physikalische Lokalisierung einer Ressource ermöglichen und die URNs (Uniform Resource Names), die einen eindeutigen und dauerhaften Namen für Ressourcen, unabhängig von Ihrer physikalischen Adresse, enthalten.

In [Be97] wird dann definiert:

Metadaten sind maschinenverständliche Informationen über Web-Ressourcen oder andere Dinge.

Dabei liegt die Betonung auf  der Maschinenverständlichkeit, die durch eine wohldefinierte Semantik und Struktur der Metadaten erreicht werden soll.

Der Ursprung der Bezeichnung Metadaten rührt daher, daß sie Daten über Daten darstellen. Mit fortschreitender Entwicklung der Metadaten-Sprachen, wie RDF, und der Anwendungen, die Metadaten verarbeiten, werden sie zu einer starken Basis für ein Web aus maschinenverständlichen Informationen über verschiedenste Arten von Dingen, Konzepten und Ideen.

Ein Beispiel für Metadaten, wie sie bisher zu finden sind, sind die Informationen, die das HTTP-Protokoll zu einem Dokument liefert, also z.B. Erstellungsdatum, Ablaufdatum und Eigentümer.

In [Be97] wird dazu das Axiom gebildet:

Metadaten sind Daten

Das heißt, Informationen über Informationen sind in jeder Hinsicht wieder als Informationen zu betrachten.

Daraus ergeben sich verschiedene Aspekte der Betrachtung. Metadaten können wie andere Daten gespeichert werden. Also kann eine Ressource Informationen über sich selbst ebenso enthalten wie Informationen über andere Ressourcen.

Das wird auch bisher schon so verwirklicht, z.B. ist schon die Angabe von Metadaten im HEAD-Teil eines HTML-Dokuments möglich, andererseits können mit Hilfe von PICS auch Metadaten in einem zweiten Dokument abgelegt werden. Als dritter Weg ist wie oben erwähnt der Transfer zusammen mit dem Dokument über HTTP möglich.

Als zweiter Teil des obigen Axioms wird ausgesagt:

Metadaten können Metadaten beschreiben.

Das heißt, Metadaten können ihrerseits bestimmte Eigenschaften haben, wie Ablaufdatum oder Urheberschaft.

2.2      XML und RDF

Die Extensible Markup Language [XML98] wurde vom W3C als Empfehlung veröffentlicht. Da XML als universelles Datenformat verwendbar ist, stellt sich zunächst die Frage, inwiefern RDF als weitere Empfehlung der W3C notwendig ist.

Eine Antwort ist in [Be98] zu finden:

Als Beispiel soll die Aussage "The author of the page is Ora." dienen. In XML gibt es verschiedene Möglichkeiten, diese Aussage zu repräsentieren:

<author>

     <uri>page</uri>

     <name>Ora</name>

</author>

oder

<document href="page">

   <author>Ora</author>

</document>

oder auch

<document>

   <details>

    <uri>href="page"</uri>

    <author>

        <name>Ora</name>

    </author>

    </details>

</document>

usw.

Alle diese Beispiele sind gültige XML-Dokumente und haben für eine lesende Person die gleiche Bedeutung. Für eine Maschine stellen sie sich jedoch als völlig unterschiedliche XML-Graphen dar. Diese unterschiedlichen Repräsentationen führen zu großen Schwierigkeiten, wenn die Daten semantisch interpretiert werden sollen, z.B. wenn die Frage beantwortet werden soll: "What is the author of page?" Dann müssen erst Abbildungen geschaffen werden, die die verschiedenen syntaktischen Darstellungen auf eine gemeinsame semantische Darstellung überführen.

RDF definiert gewisse Einschränkungen bezüglich der zu verwendenden Datenstruktur und hilft damit, diese Mehrdeutigkeiten zu beseitigen. Dies wird im Abschnitt 3 ausführlich erläutert.

Nun soll noch geklärt werden in welchem Verhältnis RDF zu XML steht.

In [XMLA96] wird dazu ausgeführt, daß XML eine Low-Level-Syntax zur Repräsentation strukturierter Daten ist. Diese einfache Syntax kann zu verschiedenen Zwecken verwendet werden. Das folgende Diagramm verdeutlicht dies in vereinfachender Weise.

 

Abb. 1: RDF im XML-Umfeld (aus [XMLA96])

RDF basiert also einerseits auf der XML-Syntax und dient andererseits als Grundlage für P3P [P3P99] und PICS [PICS96].

Die P3P (Platform for Privacy Preferences) ist ein Working Draft des W3C, die es Web-Sites ermöglichen soll, Aussagen darüber zu treffen, wie sie die Privatsphäre der Besucher schützen und Daten des Benutzers verwenden. Anhand dieser Angaben soll der Benutzer in der Lage sein zu entscheiden, welche Daten er über sich angibt, oder diese Entscheidung anhand seiner Vorgaben zu automatisieren.

PICS war, wie bereits erwähnt, ein erster Ansatz des W3C, um Metadaten über Web-Sites zur Verfügung zu stellen. Ursprüngliches Ziel war die Schaffung eines Systems von Kriterien, nach denen der Inhalt von Webseiten beurteilt werden kann, insbesondere um Eltern und Lehren Festlegungen darüber zu ermöglichen, auf welche Inhalte Kinder zugreifen dürfen. Für ein umfassendes Metadaten-System ist PICS allerdings nicht flexibel genug. Daher wurde die Entwicklung von RDF begonnen und als ein Ziel dabei festgelegt, daß sich PICS vollständig in RDF abbilden läßt.

3.     Datenrepräsentation in RDF

RDF wird durch 2 Dokumente des W3C definiert. In der "Resource Description Framework (RDF) Model and Syntax Specification" [RDFMS99] werden das Datenmodell und eine Syntax beschrieben, durch die Daten in RDF repräsentiert werden. Dieses Dokument hat den Status einer "Recommendation", das heißt, es ist als normative Referenz zu betrachten.

Die "Resource Description Framework (RDF) Schema" [RDFS99] beschreibt die Definition von Schemas, mit deren Hilfe die Semantik von Daten beschrieben werden kann, und hat den Status einer "Proposed Recommendation".

Im folgenden soll zunächst ein Einblick in das RDF-Datenmodell und die entsprechende Syntax gegeben werden. Darauf aufbauend werden einige wesentliche Punkte der Schema-Definition erläutert und schließlich ein konkretes Beispiel für ein Schema gegeben.

3.1      Datenmodell und Syntax

Dieser Überblick über Datenmodell und Syntax von RDF soll nur einige wesentliche Punkte aus [RDFMS99] ansprechen, dort sind weitere Möglichkeiten zur Datenmodellierung, die formale Beschreibung des Datenmodells und eine formale Grammatik für RDF zu finden, außerdem einige komplexere Beispiele.

Anzumerken ist noch, daß das RDF-Datenmodell von der Syntax der Datenrepräsentation unabhängig ist und die im folgenden verwendete XML-Syntax nur eine Möglichkeit der Umsetzung ist.

3.1.1      Grundlegendes RDF-Datenmodell und Syntax

Die Grundlage für RDF sind benannte Eigenschaften (named properties) und Eigenschaftswerte (property values). Die Eigenschaften können als Attribute von Ressourcen betrachtet werden und entsprechen in diesem Sinne den üblichen Attribut-Wert-Paaren. Außerdem können die Eigenschaften auch Beziehungen zwischen Ressourcen repräsentieren. Damit kann das RDF-Modell ein Entity-Relationship-Modell nachbilden.

Das grundlegende Datenmodell basiert auf drei Arten von Objekten:

-          Ressourcen (Resources) sind alle Dinge, die durch RDF-Ausdrücke beschrieben werden. Das sind alle Dinge, die über eine URI identifiziert werden können. Außerdem können auch Objekte außerhalb des Webs, wie z.B. gedruckte Bücher, beschrieben werden.

-          Eigenschaften (Properties) sind spezielle Aspekte, Charakteristiken, Attribute oder Beziehungen, die eine Ressource beschreiben. Der Wert einer Eigenschaft kann ein Literal oder der Verweis auf eine andere Ressource sein. Jede Eigenschaft hat eine spezielle Bedeutung, definiert erlaubte Werte, die Arten von Ressourcen, die sie beschreiben kann und ihre Beziehungen zu anderen Eigenschaften. Diese Charakteristiken der Eigenschaft werden in Schemas definiert.

-          Aussagen (Statements) sind zusammengesetzt aus einer Ressource, einer Eigenschaft und ihrem Wert. Diese Teile können als Subjekt, Prädikat und Objekt der Aussage betrachtet werden.

3.1.1.1      Einfache Aussage

Die Aussage

Ora Lassila is the creator of the resource http://www.w3.org/Home/Lassila

hat die folgenden Teile:

-          Subjekt (Ressource): http://www.w3.org/Home/Lassila

-          Prädikat (Eigenschaft): Creator

-          Objekt (Wert, Literal): "Ora Lassila"

Damit läßt sich diese Aussage auf eindeutige Weise in das RDF-Datenmodell überführen.

In der folgenden grafischen Darstellung wird ein Oval für die Ressource, ein Pfeil für die Eigenschaft und ein Rechteck für das Objekt verwendet.

 

Abb. 2: Einfache Aussage (nach [RDFMS99])

Wesentlich dabei ist, daß der Pfeil immer vom Subjekt zum Objekt gerichtet ist. Diese einfache Diagrammdarstellung kann auch als "<Subjekt> hat <Prädikat> <Objekt>" gelesen werden. Also in diesem Fall: "http://www.w3.org/Home/Lassila has creator Ora Lassila".

In der RDF/XML-Syntax würde diese Aussage in Form eines vollständigen XML-Dokuments wie folgt repräsentiert:

(1) <?xml version="1.0"?>

(2) <rdf:RDF

(3)  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

(4)  xmlns:s="http://description.org/schema/">

(5)  <rdf:Description about="http://www.w3.org/Home/Lassila">

(6)    <s:Creator>Ora Lassila</s:Creator>

(7)  </rdf:Description>

(8) </rdf:RDF>

In den Zeilen 3 und 4 werden zwei Namespaces deklariert: der RDF-Namespace wird dem Präfix rdf und ein Schema dem Präfix s zugewiesen. Ein Namespace [XMLNS99] dient in XML zur Unterscheidung verschiedener Vokabulare. Hier wird also zum Beispiel über die URL http://www.w3.org/1999/02/22-rdf-syntax-ns#, die ein Dokument mit der Beschreibung des RDF-Vokabulars identifiziert, eine eindeutige Beschreibung für den Namespace rdf hergestellt und festgelegt, welche syntaktischen Elemente dieser Namespace enthält. Auf diese Weise werden mögliche Überschneidungen von verschiedenen XML-basierten Vokabularen verhindert, da jedes syntaktische Element durch seinen zugeordneten Namespace und die damit verbundene eindeutige URL ebenfalls eindeutig wird.

In Zeile 5 beginnt die eigentliche Beschreibung mit dem Abschnitt Description. Über das Attribut about wird auf die Ressource "http://www.w3.org/Home/Lassila" Bezug genommen und damit das Objekt der Aussage festgelegt.

Zeile 6 enthält die Eigenschaft (Prädikat) und ihren Wert (Objekt). Bei der Eigenschaft wird über das Namespace-Präfix s auf das Schema verwiesen. Wie oben bereits erwähnt, wird dann mittels dieses Schemas die Charakteristik der Eigenschaft festgelegt. Wesentlich ist, daß auf diese Weise für jede verwendete Eigenschaft ein Schema angegeben werden muß.

In den folgenden Beispielen wird zur Übersichtlichkeit die Namespace-Deklaration weggelassen.

Das obige Beispiel würde dann

<rdf:Description about="http://www.w3.org/Home/Lassila">

  <s:Creator>Ora Lassila</s:Creator>

</rdf:Description>

lauten.

Weiterhin ist die Verwendung einer abgekürzten Syntax möglich, die eine kompaktere Form erlaubt. Das Beispiel würde dann wie folgt dargestellt:

<rdf:Description about="http://www.w3.org/Home/Lassila" s:Creator="Ora Lassila" />

3.1.1.2      Strukturierte Werte

Ein weiteres Beispiel soll die Verwendung strukturierter Werte verdeutlichen: 

The individual whose name is Ora Lassila, email <lassila@w3.org>, is the creator of http://www.w3.org/Home/Lassila.

In diesem Fall hat die Eigenschaft Creator strukturierte Daten:

 

Abb. 3: Eigenschaft mit strukturiertem Wert  (aus [RDFMS99])

Analog zum vorhergehenden Diagramm kann dieses Diagramm gelesen werden als: "http://www.w3.org/Home/Lassila has creator something and something has name Ora Lassila and email lassila@w3.org"

Dem Wert der strukturierten Eigenschaft in diesem Beispiel könnte auch eine eindeutige Bezeichnung gegeben werden. Zum Beispiel könnte eine Mitarbeiternummer vergeben werden, wie z.B.: http://www.w3.org/staffId/85740.

Die Aussage aus dem letzten Beispiel kann nun in zwei Sätzen formuliert werden:

The inividual refered to by employee id 85740 is named Ora Lassila and has the email address lassila@w3.org. The resource http://www.w3.org/Home/Lassila was created by this individual.

In der grafischen Darstellung führt das dazu, daß das bisher leere Oval mit "http://www.w3.org/staffId/85740" beschriftet wird.

In der RDF/XML-Syntax könnte diese Aussage wie folgt repräsentiert werden :

(1) <rdf:Description about="http://www.w3.org/Home/Lassila">

(2)   <s:Creator>

(3)     <rdf:Description about="http://www.w3.org/staffId/85740">

(4)       <rdf:type resource="http://description.org/schema/Person"/>

(5)       <v:Name>Ora Lassila</v:Name>

(6)       <v:Email>lassila@w3.org</v:Email>

(7)     </rdf:Description>

(8)   </s:Creator>

(9) </rdf:Description>

Beachtenswert ist dabei die Verschachtelung der Ressourcenbeschreibungen und außerdem die Angabe in Zeile 4, die mittels rdf:type definiert, daß es sich bei "http://www.w3.org/staffId/85740" um eine Ressource vom Typ "http://description.org/sche­ma/Person" handelt, bzw. diese Ressource eine Instanz dieser Klasse ist. Eine Ressource kann auch eine Instanz mehrerer Klassen sein. Der Namespace v bezieht sich auf ein Schema, in dem Eigenschaften von Personen definiert werden.

3.1.1.3      RDF-Description als Ressource

In den vorhergehenden Beispielen wurde über das about-Attribut der Description der Bezug auf eine andere Ressource hergestellt. Durch Weglassen des Attributs wird die Description selbst zur Ressource. Das heißt, daß von anderen Descriptions auf diese Bezug genommen werden kann. Um mehrere solche Ressourcen in einer Datei zusammenfassen zu können, können diese über ein ID-Attribut eindeutig bezeichnet werden.

Diese Form der Ressource kann als eine Art Stellvertreter-Ressource (Proxy) verwendet werden, wenn eigentlich auf eine Ressource Bezug genommen werden soll, die nicht über eine URI identifizierbar ist, wie z.B. ein gedrucktes Buch. Vorstellbar ist, daß eine solche Stellvertreter-Ressource dann die ISBN des Buches enthält und damit der Bezug hergestellt wird.

3.1.2      Container

3.1.2.1      Container-Modell und -Syntax

In RDF werden 3 Arten von Containern definiert:

-          Bag ist eine ungeordnete Liste von Ressourcen oder Literalen.

-          Sequence ist eine geordnete Liste von Ressourcen oder Literalen.

-          Alternative ist eine Liste von Ressourcen oder Literalen, die Alternativen darstellen.

Zu beachten ist, daß sowohl Bag als auch Sequence Duplikate erlauben. In RDF wird kein Set definiert, der Duplikate verbietet, da in RDF bis jetzt keine Mechanismen festgelegt werden, die diese Bedingungen durchsetzen könnten.

Stellvertretend für die 3 Arten von Containern soll hier ein Beispiel für eine Alternative gegeben werden.

Die Aussage

The source code for X11 may be found at ftp.x.org, ftp.cs.purdue.edu or ftp.eu.net.

wird in RDF modelliert als

 

Abb. 4: Alternative (aus [RDFMS99])

und in RDF/XML dargestellt als:

<rdf:RDF>

  <rdf:Description about="http://x.org/packages/X11">

    <s: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>

    </s:DistributionSite>

  </rdf:Description>

</rdf:RDF>

3.1.2.2      Aussagen über die Inhalte eines Containers

Container-Strukturen ergeben ein Problem bei Aussagen über sie. Es stellt sich die Frage, ob sich die Aussage auf den Container als ganzes bezieht, oder ob jedes einzelne Teil des Containerinhalts gemeint ist.

Im folgenden Beispiel:

<rdf:Bag ID="pages">

  <rdf:li resource="http://foo.org/foo.html" />

  <rdf:li resource="http://foo.org/bar.html" />

</rdf:Bag>

 

<rdf:Description about="#pages">

  <s:Creator>Ora Lassila</s:Creator>

</rdf:Description>

wird ausgesagt, daß Ora Lassila der Creator der Bag pages ist. Sollte die Aussage dagegen lauten, daß Ora Lassila der Creator jeder der einzelnen enthaltenen Seiten ist, würde dies wie folgt dargestellt werden:

<rdf:Description about="http://foo.org/foo.html">

  <s:Creator>Ora Lassila</s:Creator>

</rdf:Description>

 

<rdf:Description about="http://foo.org/bar.html">

  <s:Creator>Ora Lassila</s:Creator>

</rdf:Description>

Um diese aufwendige Form der Syntax abzukürzen, wurde das Attribut aboutEach eingeführt, so daß folgende abgekürzte Schreibweise möglich ist:

<rdf:Description aboutEach="#pages">

  <s:Creator>Ora Lassila</s:Creator>

</rdf:Description>

In diesem Beispiel wäre noch eine andere Form der Abkürzung möglich, mittels des aboutEachPrefix-Attributs:

<rdf:Description aboutEachPrefix="http://foo.org/">

  <s:Creator>Ora Lassila</s:Creator>

</rdf:Description>

Dieses Attribut ist relativ mächtig, da es automatisch alle Ressourcen einbezieht, deren URI mit dem angegebenen Präfix beginnt. Anzumerken ist noch, daß die letzten drei Beispiele semantisch tatsächlich exakt dieselben Aussagen darstellen. Das heißt, daß die abgekürzten Varianten so zu betrachten sind, als ob jede Aussage einzeln aufgeführt wäre, und insbesondere Suchfunktionen bei allen drei Varianten die gleichen Ergebnisse liefern.

3.2      Schemadefinition

Das RDF-Modell beschreibt Ressourcen durch Eigenschaften, über die jedoch zunächst keine näheren Aussagen gemacht werden hinsichtlich ihrer Charakteristiken. Diese Charakteristiken der Eigenschaften werden über Schemas definiert.

In diesen Schemas wird für jede Eigenschaft festgelegt, was sie für eine Bedeutung hat, welche Werte für diese Eigenschaft erlaubt sind, welche Arten von Ressourcen diese Eigenschaft besitzen und welche Beziehungen sie zu anderen Eigenschaften hat.

Das RDF-Schema-System ist ähnlich dem Klassensystem objektorientierter Sprachen. Allerdings besteht ein wesentlicher Unterschied: Bei den objektorientierten Sprachen wird eine Klasse von Objekten dadurch definiert, welche Eigenschaften (in C++ z.B. Membervariablen) sie besitzt.

Bei den RDF-Schemas wird von der Idee ausgegangen, daß Klassen von Objekten auch identifizierbar sind, ohne daß ihnen sofort bestimmte Eigenschaften zugeordnet werden. Dagegen wird für jede Eigenschaft festgelegt, für welche Klassen von Objekten sie anwendbar ist.

Dies stellt eine wesentlich flexiblere Lösung dar, da die interessierenden Eigenschaften ganz wesentlich vom Anwendungsbereich abhängen. Mit dem RDF-Schema-System können bei Bedarf jederzeit neue Eigenschaften definiert und bestimmten Klassen zugeordnet werden, ohne daß 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.

In dem Dokument [RDFS99] wird nun nicht ein Schema definiert, in dem verschiedene Klassen und Eigenschaften festgelegt werden, sondern es wird eine "Schema Definition Language" definiert, mit deren Hilfe die eigentlichen Schemas definiert werden. Diese eigentlichen Schemas werden auch als Vokabulare bezeichnet., da sie definieren, welche Eigenschaften mit welcher Bedeutung für Beschreibungen zu Verfügung stehen.

Folgende Grafik soll den Zusammenhang verdeutlichen.

 

Abb. 5: Das RDF-System

Hier ist eine Hierarchie von Daten und Metadaten erkennbar. Die Metadaten der Ressourcen sind ihre Eigenschaften. Die Metadaten der Eigenschaften werden in den Vokabularien beschrieben usw. Hervorzuheben ist, daß die Daten auf jeder Ebene durch RDF repräsentierbar sind, auch die Schema Definition Language ist ihrerseits wieder in RDF definiert. Dies gibt einen recht guten Eindruck von der Mächtigkeit von RDF.

Im folgenden sollen einige wesentliche Punkte der "Schema Definition Language" erläutert werden, die vollständige Beschreibung ist in [RDFS99] zu finden.

3.2.1      Klassen und Eigenschaften

Das Kern-Vokabular des Schemas wird vorläufig in dem Namespace rdfs definiert, eine URI wird ihm erst in der endgültigen Version der Spezifikation zugeordnet.

Wie in [RDFMS99] beschrieben, kann eine Ressource eine Instanz einer oder mehrerer Klassen sein, was durch die Eigenschaft rdf:type ausgedrückt wird. Die Bildung von Klassenhierarchien ist ebenfalls möglich, dazu kann die Eigenschaft rdfs:subClassOf verwendet werden.

In [RDFS99] werden außerdem verschiedene Ressourcen definiert, die es ermöglichen, Aussagen über Beschränkungen für die Verwendung von Eigenschaften und Klassen zu machen. So wird zum Beispiel ermöglicht,  gültige Werte für Eigenschaften zu definieren und festzulegen, welchen Klassen eine Eigenschaft sinnvollerweise zugeordnet werden kann. Allerdings wird kein Mechanismus festgelegt, der diese Beschränkungen durchsetzt. Ob und wie die Beschränkungen durchgesetzt werden, bleibt den einzelnen Anwendungen überlassen.

Es wird lediglich vorgeschlagen, diese Informationen z.B. bei einem Validierungs-Programm dafür zu verwenden, Fehler zu finden, oder bei einem Programm zur Bearbeitung von Metadaten daraus Vorschläge für sinnvolle Werte einer Eigenschaft zu generieren.

Die Klassenhierarchie des RDF-Schemas ist im folgenden Diagramm dargestellt:

 

Abb. 6: Klassenhierarchie des RDF-Schemas (aus [RDFS99])

Folgende grundlegende Klassen werden definiert:

-          rdfs:Resource ist die Klasse aller Ressourcen, d.h. alle Dinge, die mit RDF beschrieben werden, sind Instanzen dieser Klasse

-          rdfs:Property ist die Klasse der Eigenschaften. Sie repräsentiert eine Untermenge der Ressourcen.

-          rdfs:Class korrespondiert zum generischen Konzept eines Typs, alle Klassen sind Instanzen des Typs Klasse (auch die Klasse rdfs:Class selbst). Ein ähnliches Konzept existiert z.B. in Java. Beachtenswert ist hier, daß einerseits rdfs:Class eine Unterklasse von rdfs:Resource ist, da die Klassendefinitionen selbst Ressourcen sind, andererseits rdfs:Resource auch eine Instanz von rdfs:Class ist, da es eine Klasse ist

Außerdem werden die folgenden grundlegenden Eigenschaften festgelegt:

-         rdf:type ermöglicht die Zuordnung einer Ressource zu einer Klasse, die Ressource ist dann Instanz der Klasse und es kann dann angenommen werden, daß sie der typischen Charakteristik der Klasse entspricht

-         rdfs:subClassOf spezifiziert eine Untermengen/Obermengen-Relation zwischen Klassen. Die Relation ist transitiv. Ressourcen, die Instanzen einer bestimmten Klasse sind, sind auch Instanzen von deren Oberklassen.

-         rdfs:subPropertyOf ist eine Instanz von rdf:Property und wird benutzt um anzugeben, daß eine Eigenschaft eine Spezialisierung einer oder mehrerer anderer Eigenschaften ist. Wenn eine Eigenschaft E2 Spezialisierung einer anderen Eigenschaft E1 ist, und eine Ressource hat eine Eigenschaft E2 mit dem Wert B, dann wird damit implizit ausgedrückt, daß sie auch eine Eigenschaft E1 mit Wert B hat.

Beispiel: Wenn biologicalFather eine Spezialisierung von biologicalParent ist, und Max ist der biologicalFather von John, dann ist Max auch ein biologicalParent von John.

-         Mit rdf:seeAlso kann auf eine andere Ressource verwiesen werden, die Informationen über die vorliegende Ressource enthält.

-         rdfs:isDefinedBy ist eine Spezialisierung von rdfs:seeAlso und verweist auf eine Ressource, die die vorliegende Ressource definiert.

3.2.2      Beschränkungen (Constraints)

In einem RDF-Schema können den Klassen und Eigenschaften Beschränkungen zugeordnet werden. Insbesondere werden damit die Konzepte von Domain und Range umgesetzt.

Die Domain einer Eigenschaft gibt die Klassen an, auf die die Eigenschaft sinnvollerweise angewendet werden kann. Die Range legt die gültigen Werte für eine Eigenschaft fest. So könnte z.B. festgelegt werden, daß die Werte einer Eigenschaft "Autor" nur vom Typ "Person" sein dürfen und die Eigenschaft nur bei Ressourcen vom Typ "Buch" angewendet werden darf.

Ein RDF-Modell, welches eine Beschränkung verletzt, wird als inkonsistent bezeichnet.

Nach [RDFS99] ist unter anderem speziell für die Festlegung gültiger Werte bzw. allgemeiner auf dem Gebiet der  Datentypen noch weitere Arbeit an RDF bzw. XML nötig.

Das RDF-Schema benutzt die Beschränkungs-Eigenschaften rdfs:range und rdfs:domain, um festzulegen, in welcher Weise seine Eigenschaften benutzt werden dürfen. Knoten mit fetter Umrandung sind Instanzen von rdfs:Class.

 

Abb. 7: Constraints im RDF-Schema (aus [RDFS99])

Beispielhaft sollen hier drei Elemente erläutert werden:

-          rdfs:comment wird verwendet, um eine natürlichsprachliche Beschreibung einer Ressource anzugeben. Es kann also als Eigenschaft jeder Ressource verwendet werden, der Wertebereich sind alle gültigen Literale.

-          rdfs:label dient zur Angabe einer lesbaren Beschriftung für eine Ressource. Die Charakteristik ist analog zu rdfs:comment

-          rdfs:range gibt, wie bereits erwähnt, den gültigen Wertebereich einer Eigenschaft an. Es ist somit als Eigenschaft jeder Eigenschaft verwendbar und der Wertebereich sind sämtliche Klassen.

3.2.3      Beispiel-Schema

Am folgenden Beispiel soll die Anwendung der "Schema Definition Language" demonstriert werden.

Im Abschnitt 1 wird zunächst die Sprache Englisch für das Dokument angegeben und es werden Namespaces für die RDF-Syntax und das RDF-Schema festgelegt.

Abschnitt 2 definiert eine Klasse Person, die Unterklasse der Klasse Animal ist. Als natürlichsprachliche Beschreibung wird  "The class of people." angegeben.

Der Abschnitt 3 definiert eine Eigenschaft age, die auf Instanzen der Klasse Person zutrifft, der gültige Wertebereich der Eigenschaft sind Werte vom Typ Integer.

Im Abschnitt 4 wird eine Eigenschaft maritalStatus definiert, die ebenso auf Instanzen der Klasse Person angewendet werden kann. Der gültige Wertebereich sind dabei Instanzen der Klasse MaritalStatus, die in Abschnitt 5 definiert wird. Instanzen der Klasse werden dann in Abschnitt 6 definiert.

(1) <rdf:RDF xml:lang="en"

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

       xmlns:rdfs="http://www.w3.org/TR/1999/PR-rdf-schema-19990303#">

 

(2) <rdfs:Class rdf:ID="Person">

      <rdfs:comment>The class of people.</rdfs:comment>

      <rdfs:subClassOf

       rdf:resource="http://www.classtypes.org/useful_classes#Animal"/>

    </rdfs:Class>

 

(3) <rdf:Property ID="age">

      <rdfs:range

       rdf:resource="http://www.datatypes.org/useful_types#Integer"/>

      <rdfs:domain rdf:resource="#Person"/>

    </rdf:Property>

 

(4) <rdf:Property ID="maritalStatus">

      <rdfs:range rdf:resource="#MaritalStatus"/>

      <rdfs:domain rdf:resource="#Person"/>

    </rdf:Property>

 

(5) <rdfs:Class rdf:ID="MaritalStatus"/>

 

(6) <MaritalStatus rdf:ID="Married"/>

    <MaritalStatus rdf:ID="Divorced"/>

    <MaritalStatus rdf:ID="Single"/>

    <MaritalStatus rdf:ID="Widowed"/>

    </rdf:RDF>

3.2.4      Erweiterungsmechanismen

Die RDF-Schema-Spezifikation bietet verschiedene Möglichkeiten zur Erweiterung sowohl von RDF-Vokabularen, als auch der "Schema Specification Language".

3.2.4.1      Entwicklungsmöglichkeiten von RDF-Vokabularen

Ein wesentlicher Punkt ist die Möglichkeit der Definition von Beziehungen zwischen verschiedenen Vokabularien, die zu verschiedenen Zeiten und/oder an verschiedenen Orten entwickelt worden sind. So wird zum Beispiel die semantische Verfeinerung von bestehenden Vokabularien ermöglicht, oder es wird ein Zusammenspiel von Vokabularien ermöglicht, die von verschiedenen Organisationen für ihre jeweiligen Bedürfnisse entwickelt wurden, aber gewisse semantische Beziehungen besitzen.

Die Konzepte der Unterklassen (rdfs:subClassOf), der Spezialisierung von Eigenschaften (rdfs:subPropertyOf) und der Zuordnung von Eigenschaften zu bestehenden Klassen bieten Ansatzpunkte für die Herstellung von Beziehungen zwischen verschiedenen Vokabularien. In [RDFS99] wird aber auch erwähnt, daß diese einfachen Mechanismen in vielen Fällen nicht anwendbar sind. Deswegen wird vom W3C möglicherweise ein allgemeinerer Mechanismus zur Abbildung zwischen verschiedenen Vokabularien entwickelt werden.

3.2.4.2      Entwicklungsmöglichkeiten des Constraint-Mechanismus

Die Unterklasse rdfs:ConstraintResource der Klasse Resource wird angeboten, um eine Möglichkeit zu bieten, neue Ausdrucksformen für Constraints zu verwenden. Zukünftige Erweiterungen von RDF könnten neue Instanzen der Klasse ConstraintResource einführen.

Problematisch ist dabei allerdings, daß in solchen Erweiterungen Semantiken verwendet werden könnten, die bestehende RDF-Anwendungen nicht interpretieren können. Diese Anwendungen sollten die nicht interpretierbaren Constraints dann ignorieren.

4.     RDF Query Specification

4.1      Grundlagen

In [MS98] wird eine "RDF Query Specification" vorgestellt, die ein Beitrag zum W3C Query Languages Workshop im Dezember 1998 war. In dem Dokument wird nach einer kurzen Einführung an einigen Beispielen gezeigt, wie eine RDF-Abfragesprache aussehen könnte. Es kann als Denkanstoß für eine vollständige Spezifikation angesehen werden. Im folgenden sollen einige wesentliche Punkte wiedergegeben werden.

Zunächst wird angeführt, daß SQL als deklarative Abfragesprache einer der wesentlichen Beiträge zum relationalen Datenmodell war. Eine ähnliche Abfragemöglichkeit für Daten im RDF-Format wäre wünschenswert.

Das RDF zugrundeliegende Datenmodell ist ein semantisches Netzwerk-Modell. Da dieses Modell komplexer als das relationale Modell ist, muß eine entsprechende Abfragesprache ebenfalls komplexer als SQL sein. Während eine SQL-Abfrage auf einer Menge von Tabellen ausgeführt wird, wird eine RDF-Abfrage über einem Container mit RDF-Ressourcen ausgeführt. Diese Ressourcen können von verschiedenen Typen sein, jeweils mit unterschiedlichen Eigenschaften. Darüber hinaus können die Werte der Eigenschaften ihrerseits wieder Ressourcen sein, oder auch Container mit Ressourcen. Das Ergebnis einer RDF-Abfrage ist wiederum ein Container mit Ressourcen.

RDF-Abfragen werden im RDF-Format dargestellt, "RDF Query" ist das zugrundeliegende RDF-Vokabular und rdfq wird hier als Namespace dafür verwendet.

4.2      Beispiel

( 1) <rdfq:rdfquery>

( 2)   <rdfq:From eachResource="http://www.research.ibm.com/people/neel"/>

( 3)     <rdfq:Select properties="fullname">

( 4)       <rdfq:Property name="ResearchPapers">

( 5)       <rdfq:Condition>

( 6)         <rdfq:greaterThan>

( 7)           <rdfq:Property name="Budget" />

( 8)           <rdf:Integer>10000</rdf:Integer>

( 9)         </rdfq:greaterThan>

(10)      </rdfq:Condition>

(11)     </rfq:Select>

(12)     <rdfq:Order>

(13)       <rdf:Seq>

(14)         <rdfq:Property path="ResearchPapers/Year">

(15)         <rdfq:Property path="ResearchPapers/Month">

(16)       </rdf:Seq>

(17)     </rdfq:Order>

(18)   </rdf:From>

(19) </rdfq:rdfquery>

 

In diesem Beispiel wird eine Abfrage über den Ressourcen in dem Container "http://www.research.ibm.com/people/neel" ausgeführt. Dabei werden einige der Möglichkeiten von RDF-Abfragen verwendet:

-          Projektion auf die Eigenschaft fullname (3)

-          Prüfen auf Vorhandensein der Eigenschaft ResearchPapers (4)

-          Prüfen der Bedingung Buget>10000 (5)-(10)

-          Sortierung zunächst nach Year und dann nach Month (12)-(17)

-          Pfadangaben für die Eigenschaften Year und Month (14), (15)

Es besteht hier eine Ähnlickeit zu SQL bezüglich der Klauseln SELECT, FROM, WHERE (bzw. Condition) und ORDER BY (bzw. Order).

In [MS98] werden weitere Beispiele angeführt, die unter anderem die folgenden Möglichkeiten demonstrieren:

-          verschachtelte Abfragen

-          Aggregationen (mittels count(*), max(), min())

-          Vereinigung von Ergebnissen (Union)

-          Gruppierung von Ergebnissen (Group)

-          Quantifikatoren (exists, forAll)

Insgesamt sind damit wesentliche Möglichkeiten von SQL nachgebildet.

5.     Anwendung

Nachdem RDF vorgestellt wurde, sollen nun einige Anwendungsmöglichkeiten erläutert werden sowie einige konkrete Anwendungen und Werkzeuge vorgestellt werden.

5.1      Anwendungsmöglichkeiten

RDF ist als Grundlage zur Verarbeitung von Metadaten in verschiedenen Anwendungsbereichen verwendbar. Dazu zählen:

-          im Bereich der Katalogisierung für Aussagen über den Inhalt von einzelnen Ressourcen und die Beschreibung der Beziehungen zwischen diesen

-          Beschreibung des Inhalts von kompletten Datensammlungen, wie gesamte Web-Sites, Datenbanken, Verzeichnisse

-          Verbesserungen im Bereich der Suchmöglichkeiten zur Auffindung bestimmter Ressourcen, durch spezifischere Abfragemöglichkeiten

-          Inhaltsbeurteilung (content rating), dazu ist eine Abbildung vom PICS-System zu einem entsprechenden RDF-Vokabular vorgesehen

-          Angabe von Urheberrechten

-          Vorgaben zum Schutz der Privatsphäre von Personen (privacy preferences) und die dazu korrespondierende Politik von Websites (privacy policies) mittels P3P

-          im Zusammenhang mit digitalen Signaturen zum Aufbau des "Web of Trust" für Electronic Commerce, Zusammenarbeit über das Web und andere sicherheitskritische Anwendungen

-          für den Electronic Commerce zur Ermittlung von möglichen Käufern oder Verkäufern, Austausch von Daten über Vertragsbedingungen, wie Preise und Zahlungsbedingungen

-          im Zusammenhang mit intelligenten Software-Agenten zum Wissensaustausch

Der letzte Punkt verdient besondere Beachtung. Die bisherigen Möglichkeiten des Einsatzes von Software-Agenten waren relativ eingeschränkt, da bisher im Web kaum maschinenverständliche Daten vorlagen, sich die Funktion von Software-Agenten aber gerade darauf stützt, daß diese die Semantik der Daten erfassen können und darauf basierend Entscheidungen treffen. RDF bietet hier eine gute Grundlage für Verbesserungen, da es einerseits eine dem Web angemessene Flexibilität bietet, aber andererseits auch das Erkennen der Semantik von Daten ermöglicht.

Defizite weist RDF dagegen bei der zentralisierten Verarbeitung von großen Datenmengen auf, insbesondere wenn die XML-Syntax zur Datenrepräsentation verwendet wird, da beim Zugriff auf die XML-Dateien zunächst der gesamte Inhalt geparst werden muß, um die enthaltenen Daten zu erfassen. Die Performance herkömmlicher Datenbanksysteme ist auf diesem Gebiet RDF bei weitem überlegen. Die Stärken von RDF liegen bei der Darstellung von geringen Datenmengen mit heterogenen Strukturen, die an vielen verschiedenen Orten vorliegen und eine relativ große Anzahl von Bezügen zueinander haben.

Diese Nachteile von RDF lassen sich zumindest teilweise vermeiden, wenn die Daten aus RDF/XML-Dateien in Datenbanksystemen abgelegt werden, ähnlich der Arbeitsweise derzeitiger Web-Suchmaschinen bezüglich HTML-Dateien.

Durch RDF wird es aber auch möglich, die Daten aus Datenbanksystemen in ein universelles Format zu exportieren. Auch hier besteht der wesentliche Vorteil darin, daß bei RDF-Daten durch das dazugehörige Schema eine semantische Interpretation der Daten ermöglicht wird.

RDF könnte sich als universelles Datenformat für verschiedenste Anwendungen etablieren, Voraussetzung dafür ist aber die breite Akzeptanz und Unterstützung durch Softwareprodukte.

5.2      Anwendungen

5.2.1      Dublin Core

Die Entwicklung des Dublin Core [DC99] begann 1995 und hatte ursprünglich zum Ziel, die Beschreibung von Web-Ressourcen zu ermöglichen. Mittlerweile schenken aber auch verschiedenste Gruppen, die sich mit Ressourcen-Beschreibung befassen, diesem Projekt Beachtung. Dazu zählen Museen, Bibliotheken, Regierungsbehörden und kommerzielle Anwender.

Der Dublin Core wurde und wird in einer Reihe von Workshops entwickelt, an denen Experten aus verschiedenen Fachgebieten teilnehmen. Ziel ist dabei die Erzielung eines Konsenses für ein interdisziplinäres, internationales System von grundlegenden Metadaten-Eigenschaften.

In [DCEl97] werden 15 grundlegenden Eigenschaften ("Core Element Set") zur Beschreibung von Ressourcen, insbesondere Web-Ressourcen definiert. Darunter sind Eigenschaften wie Titel, Verfasser, Datum, Sprache oder Rechte. In Form eines RDF-Schemas könnte der Dublin Core als kleinster gemeinsamer Nenner für verschiedene RDF-basierte Anwendungen dienen. Diese könnten auf ihm aufbauend eigene Erweiterungen definieren und dabei die Semantik des Dublin Core erben, verfeinern und erweitern.

5.2.2      IBM jCentral

Die "IBM jCentral" (http://www.ibm.com/java) bietet eine Suchmöglichkeit für Ressourcen zum Themenbereich Java an. Nach [MS98] verwendet die Suchmaschine intern RDF-Strukturen, um die im Web gesammelten Metadaten zu speichern. Auf diesen Datenstrukturen werden dann mittels eingebetteter Java-Funktionen die Suchanfragen ausgeführt.

Im Web präsentiert sich die erweiterte Suchfunktion der jCentral-Suchmaschine mit einer gegenüber anderen Suchmaschinen relativ ausdrucksstarken Abfragemöglichkeit.

 

Abb. 8: IBM jCentral PowerSearch (http://jcentral.alphaworks.ibm.com/search/powerse­arch.htm)

In diesem Beispiel könnte man nach Beans suchen, die ein bestimmtes Interface enthalten und in ihrem Sourcecode bestimmte Klassen importieren.

Die Suchmöglichkeiten sind in [jC99] beschrieben, unter anderem wird die gesamte Palette der möglichen Kategorien und Attribute aufgeführt.

 

Applets

Beans

Java Source Code

Newsgroup Articles

Other Java
Resources

Class Access
Class Name
Codebase
Description
Field
Interface
Invoked Methods
Java Class Usage
Method Signature
Network Domain
Package
Parameter
Strings
Super Class
URL

Bean Name
Description
Events
Properties
Interfaces
Methods
Network Domain
Super Classes
URL

Description
Import
Javadoc Comment
Method Signature
Network Domain
Regular Comment
Super Class
URL

Author
Description
Message Body
Newsgroup
Subject

Description
Network Domain
URL

 

Die Kategorien entsprechen hier offenbar den Klassen des zugrundeliegenden RDF-Schemas und die Attribute den darin definierten Eigenschaften.

5.2.3      Open Directory Project

Das Open Directory (http://dmoz.org/) ist ein Projekt von Mozilla.org. Ziel des Projektes ist es, einen möglichst umfassenden Web-Katalog zu erstellen, dieser wird jedoch nicht zentral gepflegt, da dies einen zu großen Aufwand verursacht, sondern jeder kann sich als Editor anmelden und einen kleinen Teil des Gesamtkatalogs bearbeiten.

Die dabei gesammelten Daten stehen dann öffentlich zur Verfügung und können von anderen wiederverwendet werden. RDF dient dabei als Datenaustauschformat, der gesamte Datenbestand wird im RDF/XML-Format angeboten. Die Daten werden zum Beispiel von Netscape, HotBot und Lycos zur Erweiterung ihres Such-Angebots genutzt.

5.3      Werkzeuge

Die Akzeptanz von RDF wird sicherlich auch von den zur Verfügung stehenden Werkzeugen abhängen, stellvertretend für den derzeitigen Stand der Entwicklung sollen hier zwei Werkzeuge kurz dargestellt werden.

5.3.1      Reggie Metadaten Editor

Der Reggie Metadaten-Editor (http://metadata.net/dstc/) ist eine Entwicklung der Resource Discovery Unit des DSTC (Distributed Systems Technology Centre). Er ermöglicht auf einfache Weise die Erzeugung verschiedener Formen von Metadaten mittels eines Java-Applets. Das Applet kann die eingegebenen Daten im HTML 3.2- und HTML 4.0-Format und insbesondere auch in RDF/XML-Syntax und in der abgekürzten RDF/XML-Syntax ausgeben.

 

Abb. 9: Reggie Metadaten Editor

Dabei ist die Verwendung verschiedener Schemas für die Metadaten möglich. Je nach verwendetem Schema werden dann Eingabefelder für die darin definierten Eigenschaften angeboten. Direkt unterstützt werden der Dublin-Core und einige andere Schemas, es ist aber auch die Definition eigener Schemas möglich, zur Zeit wird dafür jedoch noch ein proprietäres Format verwendet. Im Gegensatz zur möglichen Ausgabe der Metadaten in RDF/XML-Syntax wird also eingabeseitig das RDF-Format für die Schemas noch nicht unterstützt.

Zu Beginn der Metadaten-Erstellung kann die gewünschte Sprache für die Oberfläche und das Metadaten-Schema ausgewählt werden und gegebenenfalls eine URL angegeben werden, auf die sich die Metadaten beziehen sollen. Wird diese angegeben, so versucht der Editor, eventuell bereits vorhandene Metadaten aus dem Dokument zu extrahieren. Dann können die Metadaten mittels eines einfachen Formulars bearbeitet werden. Im Bild wurde der Dublin Core verwendet.

Innerhalb des Formulars lassen sich zu jeder Eigenschaft die Beschreibung der Bedeutung anzeigen, die Sprache der eingegebenen Daten angeben und je nach Definition im Schema Datenformat (Scheme) und Sub-Elemente angeben. Zum Schluß können die eingegebenen Daten nach Auswahl der Syntax in eine HTML- oder RDF-Datei exportiert werden.

Insgesamt bietet der Reggie Metadaten-Editor damit eine einfache Möglichkeit, für einzelne Web-Ressourcen Metadaten zu erzeugen.

5.3.2      SiRPAC

SiRPAC (Simple RDF Parser and Compiler, http://www.w3.org/RDF/Implementations/SiR­PAC/) ist ein einfacher Parser und Compiler für RDF-Dateien und stellt damit in gewisser Weise ein Gegenstück zu Reggie dar. Die RDF-Dateien können dabei auf lokalen Dateisystemen vorliegen oder über eine URI erreichbar sein. Außerdem kann der Parser automatisch die in der RDF-Datei angegebenen RDF-Schemas laden.

Das Programmpaket kann unter der angegebenen Adresse heruntergeladen werden, dort steht auch eine interaktive Version zur Verfügung, die eine RDF-Datei über ein Webformular entgegennimmt und die darin enthaltenen Daten als Tripel (Ressource, Eigenschaft, Wert) und grafisch darstellt.

Im folgenden Bild wurde das Beispiel aus Abschnitt 3.2.3 verwendet.

Abb. 10: SiRPAC-Darstellung der Klassen Person und MaritalStatus

Die graphische Darstellung erfolgt mit zwei Java-Applets. Während die hier dargestellte Version das komplette Datenmodell darstellt und bei größeren Modellen schnell unübersichtlich wird, kann man in der anderen Variante interaktiv durch das Modell navigieren und so jeweils einzelne Teile betrachten.

6.     Zusammenfassung

RDF ist eine Empfehlung des World Wide Web Consortiums. In ihm wird ein Datenmodell, eine mögliche Syntax und ein flexibles Klassensystem für Metadaten über verschiedenste Arten von Ressourcen, insbesondere Web-Ressourcen, definiert. Ziel ist dabei, die Metadaten nicht wie bisher nur maschinenlesbar bereitzustellen, sondern mittels der in den Schemas des Klassensystems enthaltenen Semantik auch maschinenverständlich zu machen. RDF stellt damit ein flexibles und ausdrucksmächtiges System zur anwendungsübergreifenden Repräsentation von Metadaten zur Verfügung.

Die Anwendungsmöglichkeiten von RDF sind sehr vielfältig, sie umfassen unter anderem Suchmaschinen, Software-Agenten und Electronic Commerce. Inwieweit RDF sich durchsetzen wird, hängt dabei einerseits davon ab, inwieweit Ressourcenanbieter Metadaten über die Ressourcen bereitstellen und andererseits von der Unterstützung durch Anwendungen, deren Leistungsfähigkeit sich dadurch erhöht oder überhaupt erst möglich wird. Erste Beispiele für solche Anwendungen sind, wie dargestellt, bereits zu finden.


Literaturverzeichnis

[Be97] Berners-Lee, Tim: Metadata Architecure, 1997, http://www.w3.org/TR/NOTE-rdf-simple-intro-971113.html

[Be98] Berners-Lee, Tim: Why RDF model is different from XML model, 1998, http://www.w3.org/DesignIssues/RDF-XML.html

[Co99] Connolly, Dan: Naming and Addressing: URIs, URLs, ... ; 1999, http://www.w3.org/Addressing/Addressing.html

[DC99] Dublin Core Metadata Initiative, http://purl.org/dc

[DCEl97] Dublin Core Element Set, 1997, http://purl.org/DC/about/element_set.htm

[Ia99] Iannella, Renato: An Idiot's Guide to the Resource Description Framework, 1999, http://www.dstc.edu.au/RDU/reports/RDF-Idiot/

[jC99] jCentral PowerSearch-Help, 1999, http://jcentral.alphaworks.ibm.com/search/powersearch-help.htm

[La97] Lassila, Ora: Introduction to RDF Metadata, W3C Note, 1997, http://www.w3.org/TR/NOTE-rdf-simple-intro-971113.html

[MS98] Mahotra, Ashok; Sundaresan, Neel: RDF Query Specification, 1998, http://www.w3.org/TandS/QL/QL98/pp/rdfquery.html

[P3P99] Platform for Privacy Preferences (P3P) Specification; Marchiori, Massimo; Reagle, Joseph eds, 1999, http://www.w3.org/TR/WD-P3P/

[PICS96] PICS Label Distribution Label Syntax and Communication Protocols, Version 1.1, W3C Recommendation, 1996; http://www.w3.org/TR/REC-PICS-labels

[RDF99] W3C Resource Description Framework (RDF); Swick, Ralph; Miller, Eric; Schloss, Bob; Singer, David eds, 1999, http://www.w3c.org/RDF

[RDFMS99] Resource Description Framework (RDF) Model and Syntax, 1999, http://www.w3.org/TR/REC-rdf-syntax/

[RDFS99] Resource Description Framework (RDF) Schemas; Brickley, Guha, Layman eds., World Wide Web Consortium Working Draft, 1999, http://www.w3.org/TR/1998/WD-rdf-schema

[XML98] Extensible Markup Language (XML) 1.0, W3C Recommendation, http://www.w3.org/TR/REC-xml

[XMLA96] Extensible Markup Language (XML) Activity, W3C Activity Statement; Connolly, Dan; Bray, Tim, 1996, http://www.w3.org/XML/Activity.html

[XMLNS99] Namespaces in XML; Bray, Hollander, Layman eds, World Wide Web Consortium Recommendation, 1999, http://www.w3.org/TR/1999/REC-xml-names-19990114