Resource Description Framework

Datenmodell zur Beschreibung von Ressourcen im Web
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 3. März 2003 um 22:37 Uhr durch Stefan Kühn (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.


Das Resource Description Framework (RDF) ist eine Spezifikation für ein Modell zur Repräsentation von Metadaten (Informationen über Webseiten und andere Objekte), die erstmals 1999 vom World Wide Web Consortium vorgelegt wurde und üblicherweise in Form einer XML-Sprache verwendet wird.

Mit der Erweiterung des Modells durch RDF Schema und Ontologien soll RDF als grundlegende Technik für den Datenaustausch im so genannten Semantic Web dienen. RDF lässt sich aber auch für weniger komplizierte Dinge einsetzen.

Man muss zwischen dem RDF-Modell, der RDF-Syntax und RDF-Schema unterscheiden.

RDF-Modell

Informationen sind in RDF in so genannten Statetements abgelegt, das sind Aussagen in Form eines Tripel aus Subjekt, Prädikat und Objekt. Alle drei Bestandteile werden durch einen Universal Resource Identifier (URI) identifiziert und damit allgemein als Resource bezeichnet. Als Objekt einer Aussage sind auch Zeichenketten (Literal) möglich. Die Verknüpfung mehrerer Tripel lässt sich als ein gerichteter Graph mit Knoten- und Kantenbeschriftung verstehen, wobei Subjekt und Objekt eines Tripels Knoten und die Prädikate Kanten sind.

Folgende Grafik wurde mit dem W3C RDF Validator aus dem weiter unten angegebenen Beispiel erzeugt. Dargestellt sind zwei Tripel, mit dem selben Subjekt "http://de.wikipedia.org/RDF".

 

Die Besonderheit des RDF-Modells liegt zum einen darin, dass über die als Prädikat verwendeten Resourcen (Properties) auch wiederum Aussagen getroffen werden können. Dadurch lassen sich Properties selbst mit RDF beschreiben und als Metadatenformat ablegen. Andere RDF-Angaben können diese Vokabulare durch Referenzierung weiterverwenden. Ein prominentes Beispiel dafür ist die Repräsentation von Dublin Core in RDF.

Zum anderen bilden in RDF Statements selber Resourcen, auf die mit weiteren Statements verwiesen werden kann. Diese Technik der Aussagen über Aussagen wird als Reification bezeichnet.

Zusätzlich enthält RDF vordefinierte Datentypen für Listen und Mengen, um Gruppen von Resourcen zusammenzufassen. Resourcen, die keine explizite URI haben, sondern nur zur Gruppierung von anderen Objekten dienen, werden in der Regel durch so genannte "blank nodes" modelliert. Ein Beispiel dafür ist die Zuweisung eines Namens, der aus separaten Zeichenketten für für Vor- und Nachnamen besteht.

Syntax und Speicherung

Das RDF Modell ist unabhängig von speziellen Darstellungsform. Am meisten verbreitet ist die Repräsentation in XML. Eine kürzere Syntax ist die von Tim Berners-Lee entworfene Notation 3 (N3). Für die Speicherung von RDF in Datenbanken und Datenstrukturen gibt es verschiedene Konzepte, da eine reines Ablegen der N-Tripel in einer Tabelle nicht sehr effektiv ist.

Da sich die selben RDF-Aussagen in einer Syntax mitunter auf viele verschiedene Arten ausdrücken lassen, ist es sinnvoll zur Verarbeitung von RDF-Daten einen RDF-Parser zu verwenden, der auch die Validierung gegen ein RDF-Schema vornehmen kann.

Zur Suche in RDF-Daten gibt es verschiedene Anfragesprachen zum Beispiel RQL (RDF Query Language) und RDF Squish.

Beispiel

Die Aussage "http://de.wikipedia.org/RDF hat den Titel 'RDF' und den Herausgeber http://www.wikipedia.org/" (wobei Titel und Herausgeber nach Dublin Core definiert sind) wird in RDF mit zwei Tripeln ausgedrückt. In N3 (das has dient nur der besseren Lesbarkeit):

<http://de.wikipedia.org/RDF> has <http://purl.org/dc/elements/1.1/title> "RDF" .
<http://de.wikipedia.org/RDF> has <http://purl.org/dc/elements/1.1/publisher> <http://www.wikipedia.org/> .

In RDF/XML lässt sich die Aussage so ausdrücken:

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/">
  <rdf:Description rdf:about="http://de.wikipedia.org/RDF">
    <dc:title>RDF</dc:title>
    <dc:publisher rdf:resource="http://www.wikipedia.org/"/>
  </rdf:Description>
</rdf:RDF>

Anwendung

RDF ist unter anderem eine Möglichkeit, Informationen über Dokumenten im World Wide Web und andere Resourcen zu repräsentiert. Diese Angaben über andere Informationen bezeichnet man als Metadaten. Dazu gehören beispielsweise Titel, Autor, Änderungsdatum, Copyright und Lizenzinformationen oder die die Verfügbarkeit eines Dokumentes.

siehe auch: RSS

RDF-Schema

Ebenso wie XML im konkreten Anwendungsfall die Definition eines speziellen Dokumenttyps benötigt (z.B. als DTD oder XML Schema), legt das RDF-Modell nur eine Syntax für den gemeinsamen Datenaustausch fest. Zur Interpretation von in RDF formulierten Aussagen bedarf es eines gemeinsamen Vokabulars wie zum Beispiel Dublin Core. Ein solches Vokabular wird auch Ontologie genannt, wenn es gleichzeitig Regeln für die richtige Verwendung der in ihm definierten Resourcen enthält.

RDF Schema (RDFS) ist ein Vokabular zur Formulierung solcher Ontologien in RDF. RDFS liegt die Idee eines Objektorientierten Klassenmodells zugrunde. Neben RDFS existieren schon länger eine Reihe weiterer Ontologie-Beschreibungssprachen wie F-Logic, DAML und OIL. Mit der Web Ontology Language (OWL) hat das W3C einen Vorschlag für eine auf RDFS-aufbauende Sprache vorgelegt, die Ausdrücksmöglichkeiten der Sprachen DAML und OIL in RDF vereinigt.

Formale Definition von RDF in RDF-Schema

Unter http://www.w3.org/TR/REC-rdf-syntax gibt es eine formale Definition des RDF-Models in RDF-Schema. Darin sind folgende Resourcen definiert:

  • Klassen
    • Statement (Tripel einer Aussage)
    • Property (Eine Property, die als Prädikat einer Aussage benutzt werden kann)
    • Bag (Ungeordnete Menge von Resourcen)
    • Seq (Geordnete Menge von Resourcen)
    • Alt (Menge von alternativen Resourcen)
  • Properties
    • subject (Weist einem Statement eine Resource als Subjekt zu)
    • predicate (Weist einem Statement eine Propertye als Prädikat zu)
    • object (Weist einem Statement ein Objekt zu)
    • type (Identifiziert die Klasse einer Resource)
    • value (Einfache Zuweisung einer Eigenschaft)

Literatur

siehe auch: Semantisches Netz, Topic Maps