Resource Description Framework
Das Resource 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 vom World Wide Web Consortium (W3C) als Standard zur Beschreibung von Metadaten konzipiert. Mittlerweile gilt RDF als ein grundlegender Baustein des Semantischen Webs. RDF ähnelt den klassischen Methoden zur Modellierung von Konzepten wie UML-Klassendiagramme und Entity-Relationship-Modell. Im RDF-Modell besteht jede Aussage 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 ein Tripel („3-Tupel“). Um global eindeutige Bezeichner für Ressourcen zu haben, werden diese dafür nach Konvention analog zu URL 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.
RDF-Modell
Das RDF-Modell ist ein Datenmodell mit einer wohldefinierten formalen Semantik, das auf gerichteten Graphen basiert. Daten in RDF sind Aussagen über Ressourcen. Diese Aussagen werden dabei als Tripel modelliert. Die Menge der Tripel bildet einen (mathematischen) Graphen und wird als RDF-Modell bezeichnet. Das Tripel im RDF-Modell ist eine Aussage, die aus Subjekt, Prädikat und Objekt besteht.
Beispiel
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 ein semantisches Netz, das häufig tabellarisch oder graphisch dargestellt wird. Anschaulich gesprochen ist jede Aussage in RDF ein einfacher Satz. Etwa:
- „ACME produziert Batterien“
Übertragen auf die Modellierung mittels RDF:
- Subjekt = ACME
- Prädikat = produziert
- Objekt = Batterien
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 |
Ressource, URI und Literal
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 ein Literal 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:
- URI der Webseite zu diesem Artikel:
http://de.wikipedia.org/wiki/Resource_Description_Framework
- URI einer Mailadresse:
mailto:123@example.com
- URI eines Buches:
urn:isbn:978-3898530194
Über die als Prädikat verwendeten Ressourcen lassen sich wiederum in RDF Aussagen treffen und als Metadatenformat ablegen. Andere RDF-Autoren können diese Vokabulare durch Referenzierung weiterverwenden. Ein prominentes Beispiel dafür ist die Repräsentation von Dublin 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 als Reifikation 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.
Repräsentation
RDF ist unabhängig von einer speziellen (textuellen) Repräsentation. Üblich ist XML sowie eine kürzere Syntax namens Notation 3 (N3). Das W3C hat im Jahr 2011 zusätzlich die Sprache Turtle definiert, die eine reduzierte Teilmenge von N3 darstellt und damit zu einer größeren Verbreitung beitragen soll.
Für die Speicherung von RDF in Datenbanken und Datenstrukturen 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.
Abfragen
Zur Suche in RDF-Daten wurden verschiedene Abfragesprachen entworfen. Die RDF Query Language (RDQL) erinnert der Form nach stark an SQL. Im Januar 2008 hat das W3C SPARQL als W3C 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, wobei Titel und Herausgeber nach Dublin 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 (das has
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 der Titel einer vom Herausgeber „Wikipedia – Die freie Enzyklopädie“ definierten Ressource lautet, könnte in SPARQL wie folgt aussehen:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT ?title
WHERE {
?res dc:publisher ?pub .
?res dc:title ?title
FILTER (
sameTerm(?pub, "Wikipedia - Die freie Enzyklopädie")
)
}
Das Ergebnis ist eine Tabelle mit genau einem Eintrag (Bindung der Variable ?title) mit dem Wert Resource Description Framework.
Geschichte
Als Vorläufer von RDF kann das Meta Content Framework (MCF) in XML gelten, eine Sprache, die 1995–1997 von Ramanathan V. Guha entwickelt und nach seinem Wechsel zu Netscape im Juni 1997 beim W3C eingereicht wurde.[1] Im Rahmen der Browserkriege war MCF auch eine Reaktion auf das Channel Definition Format von Microsoft. Anstatt MCF den Vorzug zu geben, entschloss man sich beim W3C, eine allgemeine Sprache zur Formulierung von Metadaten 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 von RDF-Schema begonnen.[5]
Die Empfehlung von 1999 wurde 2004 durch eine Reihe von sechs Spezifikationen ersetzt:
- "The RDF Primer"[6],
- "RDF Concepts and Abstract"[7],
- "RDF/XML Syntax Specification (revised)"[8],
- "RDF Semantics"[9],
- "RDF Vocabulary Description Language 1.0"[10] und
- "The RDF Test Cases"[11].
Diese Reihe wurde 2014 durch die folgenden sechs "RDF 1.1"-Dokumente abgelöst:
- "RDF 1.1 Primer"[12],
- "RDF 1.1 Concepts and Abstract Syntax"[13],
- "RDF 1.1 XML Syntax"[14],
- "RDF 1.1 Semantics"[15],
- "RDF Schema 1.1"[16] und
- "RDF 1.1 Test Cases"[17].
Siehe auch
Literatur
- Pascal Hitzler, Markus Krötzsch, Sebastian Rudolph, York Sure: Semantic Web. Grundlagen. Springer, Berlin u. a. 2008, ISBN 978-3-540-33993-9.
- Shelley Powers: Practical RDF. O’Reilly, Beijing u. a. 2003, ISBN 0-596-00263-7.
Weblinks
Einzelnachweise
- ↑ Meta Content Framework Using XML. In: w3.org. Abgerufen am 4. Januar 2022.
- ↑ The RDF.net Challenge tbray.org
- ↑ RDF Model and Syntax. In: w3.org. Abgerufen am 4. Januar 2022.
- ↑ Resource Description Framework (RDF) Model and Syntax Specification. In: w3.org. Abgerufen am 4. Januar 2022.
- ↑ Resource Description Framework (RDF) Schema Specification. In: w3.org. Abgerufen am 4. Januar 2022.
- ↑ Frank Manola, Eric Miller: RDF Primer. W3C, 10. Februar 2004, abgerufen am 21. November 2015.
- ↑ Graham Klyne, Jeremy J. Carroll: Resource Description Framework (RDF): Concepts and Abstract Syntax. W3C, 10. Februar 2004, abgerufen am 21. November 2015.
- ↑ Dave Beckett: RDF/XML Syntax Specification (Revised). W3C, 10. Februar 2004, abgerufen am 21. November 2015.
- ↑ Patrick Hayes: RDF Semantics. 10. Februar 2014, abgerufen am 21. November 2015.
- ↑ Dan Brickley, R.V. Guha: RDF Vocabulary Description Language 1.0: RDF Schema: W3C Recommendation 10 February 2004. W3C, 10. Februar 2004, abgerufen am 21. November 2015.
- ↑ Jan Grant, Dave Beckett: RDF Test Cases. W3C, 10. Februar 2004, abgerufen am 21. November 2015.
- ↑ Guus Schreiber, Yves Raimond: RDF 1.1 Primer. W3C, 24. Juni 2014, abgerufen am 22. November 2015.
- ↑ Richard Cyganiak, David Wood, Markus Lanthaler: RDF 1.1 Concepts and Abstract Syntax. W3C, 25. Februar 2014, abgerufen am 22. November 2015.
- ↑ Gandon Fabien, Guus Schreiber: RDF 1.1 XML Syntax. W3C, 25. Februar 2014, abgerufen am 22. November 2015.
- ↑ Patrick J. Hayes, Peter F. Patel-Schneider: RDF 1.1 Semantics. W3C, 25. Februar 2014, abgerufen am 22. November 2015.
- ↑ Dan Brickley, R.V. Guha: RDF Schema 1.1. W3C, 25. Februar 2014, abgerufen am 22. November 2015.
- ↑ Gregg Kellogg, Markus Lanthaler: RDF 1.1 Test Cases. W3C, 25. Februar 2014, abgerufen am 22. November 2015.