DasResource Description Framework (RDF,engl. sinngemäß „System zur Beschreibung von Ressourcen“) bezeichnet eine technische Herangehensweise im Internet zur Formulierung logischer Aussagen über beliebige Dinge (Ressourcen). Ursprünglich wurde RDF vomWorld Wide Web Consortium (W3C) als Standard zur Beschreibung vonMetadaten konzipiert. Mittlerweile gilt RDF als ein grundlegender Baustein desSemantischen Webs. RDF ähnelt den klassischen Methoden zur Modellierung von Konzepten, wieUML-Klassendiagramm undEntity-Relationship-Modell. Im RDF-Modell besteht jedeAussage aus den drei Einheiten Subjekt, Prädikat und Objekt, wobei eine Ressource als Subjekt mit einer anderen Ressource oder einem Wert (Literal) als Objekt näher beschrieben wird. Mit einer weiteren Ressource als Prädikat bilden diese drei Einheiten einTripel („3-Tupel“). Um global eindeutige Bezeichner für Ressourcen zu haben, werden diese dafür nach Konvention analog zuURL geformt. URL für allgemein häufig benutzte Beschreibungen, wie z. B. für Metadaten, sind RDF-Entwicklern bekannt, und können so weltweit für den gleichen Zweck verwendet werden, was u. a. Programmen ermöglicht, die Daten wiederum für den Menschen sinnvoll darzustellen.
Das RDF-Modell ist ein Datenmodell mit einer wohldefiniertenformalen Semantik, das aufgerichteten Graphen basiert. Daten in RDF sind Aussagen über Ressourcen. Diese Aussagen werden dabei alsTripel modelliert. Die Menge der Tripel bildet einen (mathematischen) Graphen und wird als RDF-Modell bezeichnet. Das Tripel im RDF-Modell ist eineAussage, die aus Subjekt, Prädikat und Objekt besteht.

Das Tripel stellt eine Aussage dar, in der Subjekt und Objekt miteinander in Beziehung (Relation) gesetzt sind. Beziehungen sind vom Subjekt zum Objekt gerichtet und mit dem Prädikat benannt. Tripel, die sich auf dieselben Subjekte bzw. Objekte beziehen, bilden einsemantisches Netz, das häufig tabellarisch oder graphisch dargestellt wird. Anschaulich gesprochen ist jede Aussage in RDF ein einfacher Satz. Etwa:
Übertragen auf die Modellierung mittels RDF:
In folgender Beispieltabelle (ergänzt um weitere Aussagen) bildet jede Zeile ein Tripel:
| Subjekt | Prädikat | Objekt |
|---|---|---|
| ACME | produziert | Batterien |
| Batterien | enthalten | Säure |
| Batterien | enthalten | Zink |
| ACME | ist | eine Firma |
Eine Ressource ist etwas, das eindeutig bezeichnet ist und worüber man etwas aussagen möchte. Subjekt und Prädikat sind immer Ressourcen. Das Objekt kann entweder eine Ressource oder nur einLiteral sein. Literale sind dabei Zeichenketten, die unter Umständen noch anhand eines angegebenen Datentyps interpretiert werden. Als Literale lassen sich z. B. Wahrheitswerte, Zahlen oder Datumsangaben spezifizieren. RDF-Ressourcen werden durch eindeutige Bezeichner (URIs) identifiziert. Die URIs erlauben es, Aussagen aus verschiedenen Quellen zu verbinden. Meist werden die Ressourcen mit einer URI bezeichnet, die von der Form her einer URL ähnelt. URLs sind spezielle URIs, die dazu dienen, Webseiten eindeutig zu bezeichnen. URIs müssen nicht zwangsläufig im Netzwerk erreichbar sein.
Beispiele:
http://de.wikipedia.org/wiki/Resource_Description_Frameworkmailto:123@example.comurn:isbn:978-3898530194Über die als Prädikat verwendeten Ressourcen lassen sich wiederum in RDF Aussagen treffen und alsMetadatenformat ablegen. Andere RDF-Autoren können diese Vokabulare durch Referenzierung weiterverwenden. Ein prominentes Beispiel dafür ist die Repräsentation vonDublin Core in RDF. Zum anderen bilden RDF-Statements selbst Ressourcen, auf die mit weiteren Aussagen verwiesen werden kann. Diese Technik der Aussagen über Aussagen wird alsReifikation bezeichnet.
Zusätzlich hält RDF vordefinierte Datentypen für Listen und Mengen bereit, um Gruppen von Ressourcen zusammenzufassen. Ressourcen, die keinen expliziten URI haben, sondern nur zur Gruppierung von anderen Objekten dienen, werden in der Regel durch sogenannte „blank nodes“ modelliert. Ein Beispiel dafür ist die Zuweisung eines Namens, der aus separaten Zeichenketten für Vor- und Nachnamen besteht.
RDF ist unabhängig von einer speziellen (textuellen) Repräsentation. Üblich istXML sowie eine kürzere Syntax namensNotation 3 (N3). DasW3C hat im Jahr 2011 zusätzlich die SpracheTurtle definiert, die eine reduzierte Teilmenge von N3 darstellt und damit zu einer größeren Verbreitung beitragen soll.
Für die Speicherung von RDF inDatenbanken undDatenstrukturen gibt es verschiedene Konzepte (Triplestore), da ein reines Ablegen der Tripel in einer relationalen Tabelle nicht sehr effizient für viele Abfragen ist.
RDF-Tripel werden auch graphisch dargestellt: Nach Konvention werden Ressourcen, die Subjekt oder Objekt eines Tripels sind, durch Ellipsen und Literale durch Rechtecke symbolisiert. Die Verbindung zwischen einem Subjekt und einem Objekt wird durch eine gerichtete Kante, die mit dem Prädikat beschriftet ist, dargestellt. Die folgende Abbildung folgt dieser Konvention und zeigt „http://de.wikipedia.org/wiki/Resource_Description_Framework“. Der abgebildete RDF-Graph sagt aus, dass die Ressource – in diesem Fall der vorliegende Artikel – einen Titel namens „Resource Description Framework“ hat und einen Publisher, die „Wikipedia“. Diese ist in dem Beispiel lediglich als Literal modelliert und kann somit nicht weiter spezifiziert werden.
Zur Suche in RDF-Daten wurden verschiedene Abfragesprachen entworfen. Die RDF Query Language (RDQL) erinnert der Form nach stark anSQL. Im Januar 2008 hat das W3CSPARQL alsW3C Recommendation verabschiedet und damit quasi zum Standard für RDF-Anfragesprachen gemacht, weshalb es für SPARQL auch viele Implementierungen gibt.
Als Beispiel sei folgende Beschreibung über den aktuellen Artikel gegeben, wobeiTitel undHerausgeber nachDublin Core definiert sind: ‚http://de.wikipedia.org/wiki/Resource_Description_Framework‘ hat den Titel ‚Resource Description Framework‘ sowie den Herausgeber ‚Wikipedia – Die freie Enzyklopädie‘. In RDF (N3) wird dies mittels zwei Tripeln ausgedrückt (dashas dient hier nur der besseren Lesbarkeit):
<http://de.wikipedia.org/wiki/Resource_Description_Framework> has <http://purl.org/dc/elements/1.1/title> "Resource Description Framework" .<http://de.wikipedia.org/wiki/Resource_Description_Framework> has <http://purl.org/dc/elements/1.1/publisher> "Wikipedia – Die freie Enzyklopädie" .
Eine Anfrage, die herausfindet, wie derTitel einer vomHerausgeber „Wikipedia – Die freie Enzyklopädie“ definierten Ressource lautet, könnte inSPARQL wie folgt aussehen:
PREFIXrdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>PREFIXdc:<http://purl.org/dc/elements/1.1/>SELECT?titleWHERE{?resdc:publisher?pub.?resdc:title?titleFILTER(sameTerm(?pub,"Wikipedia - Die freie Enzyklopädie"))}
Das Ergebnis ist eine Tabelle mit genau einem Eintrag (Bindung der Variable?title) mit dem WertResource Description Framework.
Als Vorläufer von RDF kann dasMeta Content Framework (MCF) in XML gelten, eine Sprache, die 1995–1997 von Ramanathan V. Guha entwickelt und nach seinem Wechsel zuNetscape im Juni 1997 beimW3C eingereicht wurde.[1] Im Rahmen derBrowserkriege war MCF auch eine Reaktion auf dasChannel Definition Format vonMicrosoft. Anstatt MCF den Vorzug zu geben, entschloss man sich beim W3C, eine allgemeine Sprache zur Formulierung vonMetadaten zu entwickeln, die den Namen RDF tragen sollte.[2] Der erste RDF-Standard wurde im August 1997 als Entwurf vorgelegt[3] und im Februar 1999 als Empfehlung veröffentlicht.[4] Ab 1999 wurde mit der Entwicklung vonRDF-Schema begonnen.[5]
Die Empfehlung von 1999 wurde 2004 durch eine Reihe von sechs Spezifikationen ersetzt:
Diese Reihe wurde 2014 durch die folgenden sechs "RDF 1.1"-Dokumente abgelöst: