Zum Inhalt springen

„Resource Description Framework“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Grammatik
KKeine Bearbeitungszusammenfassung
 
(266 dazwischenliegende Versionen von mehr als 100 Benutzern, die nicht angezeigt werden)
Zeile 1: Zeile 1:
Das '''Resource Description Framework''' ('''RDF''', [[Englische Sprache|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 [[Semantisches Web|Semantischen Webs]]. RDF ähnelt den klassischen Methoden zur Modellierung von Konzepten, wie [[UML-Klassendiagramm]] und [[Entity-Relationship-Modell]]. Im RDF-Modell besteht jede [[Elementaraussage|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 [[Uniform Resource Locator|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.
Das '''Resource Description Framework''' (RDF) ist eine Spezifikation
für ein Modell zur Repräsentation von [[Metadaten]] (Informationen über [[Webseite]]n und andere Objekte), die erstmals 1999 vom [[World Wide Web Consortium]] vorgelegt wurde. Am weitesten verbreitet ist die [[Serialisierung]] von RDF in [[XML]].

In Verbindung mit [[RDF-Schema]] und der [[Web_Ontology_Language|Web Ontology Language (OWL)]] soll RDF als grundlegendes Format zur Repräsentation von [[Taxonomie|Taxonomien]] und [[Ontologie (Informatik)|Ontologien]] - also formalen Vokabularen im Allgemeinen - dienen. Der Hauptanwendungsbereich von RDF ist das
[[Semantic Web]], das eine Erweiterung des bestehenden [[WWW|Webs]] mit maschineninterpretierbaren Inhalten darstellt. Konkrete Einsatzbereiche für RDF sind beispielsweise Content Syndication ([[RSS]]), Peer2Peer-Netzwerk-Applikationen ([[FOAF]]) oder auch Annotierungs-Frameworks ([http://www.w3.org/2001/Annotea/ W3C Annotea Project]).

Es kann zwischen dem '''RDF-Modell''' (RDF-[[Graph (Graphentheorie)|Graph]]) und der '''RDF-Syntax''' ([[Serialisierung]]) unterschieden werden. Weiter gibt es die [[RDF-Schema]]-Spezifikation, mit der eine Typisierung und Vererbung von Ressourcen und Eigenschaften definiert und die Gültigkeit von Ressourcen in Bezug auf Eigenschaften festgelegt werden kann.


== RDF-Modell ==
== RDF-Modell ==
Das RDF-Modell ist ein Datenmodell mit einer wohldefinierten [[Formale Semantik|formalen Semantik]], das auf [[Gerichteter Graph|gerichteten Graphen]] basiert. Daten in RDF sind Aussagen über Ressourcen. Diese Aussagen werden dabei als [[Tupel|Tripel]] modelliert. Die Menge der Tripel bildet einen (mathematischen) Graphen und wird als RDF-Modell bezeichnet. Das Tripel im RDF-Modell ist eine [[Aussage (Logik)|Aussage]], die aus Subjekt, Prädikat und Objekt besteht.
Informationen sind in RDF in so genannten '''Statements''' abgelegt, das sind Aussagen in Form eines '''Tripels''' aus '''Subjekt''', '''Prädikat''' und '''Objekt'''. Alle drei Bestandteile werden durch einen [[Uniform Resource Identifier]] (URI) identifiziert und damit allgemein als '''Ressource''' (im englischen ''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 (Graphentheorie)|Knoten]]
und die Prädikate [[Kante (Graphentheorie)|Kante]]n sind.


=== Beispiel ===
Folgende Grafik wurde mit dem [http://www.w3.org/RDF/Validator/ W3C RDF Validator] aus dem weiter unten angegebenen Beispiel erzeugt. Dargestellt sind zwei Tripel mit dem selben Subjekt "http://de.wikipedia.org/RDF".
[[Datei:Basic RDF Graph.svg|lang=de|mini|Grundlegendes RDF-Diagramm]]
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“
[[Bild:RDF-beispiel.png]]


Übertragen auf die Modellierung mittels RDF:
Die Besonderheit des RDF-Modells liegt zum einen darin, dass über die als
* Subjekt = ''ACME''
Prädikat verwendeten Ressourcen ('''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
* Prädikat = ''produziert''
diese Vokabulare durch Referenzierung weiterverwenden. Ein prominentes
* Objekt = ''Batterien''
Beispiel dafür ist die Repräsentation von [[Dublin Core]] in RDF.


In folgender Beispieltabelle (ergänzt um weitere Aussagen) bildet jede Zeile ein Tripel:
Zum anderen bilden in RDF Statements selber Ressourcen, auf die mit
weiteren Statements verwiesen werden kann. Diese Technik der Aussagen
über Aussagen wird als '''Reification''' bezeichnet.


{| class="wikitable"
Zusätzlich enthält RDF vordefinierte Datentypen für Listen und Mengen,
|-
um Gruppen von Ressourcen zusammenzufassen. Ressourcen, die keine
! style="width:150px"|Subjekt !! style="width:200px"|Prädikat !! style="width:150px"|Objekt
explizite URI haben, sondern nur zur Gruppierung von anderen Objekten
|-
dienen, werden in der Regel durch so genannte "blank nodes" modelliert.
| ACME || produziert || Batterien
Ein Beispiel dafür ist die Zuweisung eines Namens, der aus separaten
|-
Zeichenketten für Vor- und Nachnamen besteht.
| Batterien || enthalten || Säure
|-
| Batterien || enthalten || Zink
|-
| ACME || ist || eine Firma
|-
|}


=== Ressource, URI und Literal ===
== RDF-Syntax ==
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 ([[Uniform Resource Identifier|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.
Das RDF Modell (der RDF-Graph) ist unabhängig von einer 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 (Informatik)|N3]]). Für die Speicherung von RDF in
[[Datenbank]]en und [[Datenstruktur]]en gibt es verschiedene
Konzepte, da ein reines Ablegen der N-Tripel in einer Tabelle
nicht sehr effizient ist.


Beispiele:
Da sich die selben RDF-Aussagen in einer Syntax mitunter auf
* URI der Webseite zu diesem Artikel: <code><nowiki>http://de.wikipedia.org/wiki/Resource_Description_Framework</nowiki></code>
viele verschiedene Arten ausdrücken lassen, ist es sinnvoll
* URI einer Mailadresse: <code><nowiki>mailto:123@example.com</nowiki></code>
zur Verarbeitung von RDF-Daten einen RDF-Parser zu verwenden,
* URI eines Buches: <code><nowiki>urn:isbn:978-3898530194</nowiki></code>
der auch die Validierung gegen ein [[RDF-Schema]] vornehmen kann.


Über die als Prädikat verwendeten Ressourcen lassen sich wiederum in RDF Aussagen treffen und als [[Metadaten#Speicherung|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#Informatik|Reifikation]] bezeichnet.
== Abfrage von RDF-Graphen ==
Zur Suche in RDF-Daten gibt es verschiedene Abfragesprachen. Ein Vergleich von diversen [http://www.aifb.uni-karlsruhe.de/WBS/pha/rdf-query/ RDF-Abfragesprachen ] zeigt, dass die Standardisierung hier noch nicht sehr weit fortgeschritten ist.


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.
Ein Vertreter einer RDF-Abfragesprache - welcher auch im [http://jena.sourceforge.net/ Jena Framework] verfügbar ist - ist die
RDF Query Language (RDQL), welche der Form nach stark an [[SQL]] erinnert. Die prinzipielle Syntax ist:


=== Repräsentation ===
<pre>
RDF ist unabhängig von einer speziellen (textuellen) Repräsentation. Üblich ist [[Extensible Markup Language|XML]] sowie eine kürzere Syntax namens ''Notation&nbsp;3'' ([[Notation 3 (Informatik)|N3]]). Das [[W3C]] hat im Jahr 2011 zusätzlich die Sprache [[Terse RDF Triple Language|Turtle]] definiert, die eine reduzierte Teilmenge von N3 darstellt und damit zu einer größeren Verbreitung beitragen soll.
SELECT {Liste von Variablen}
WHERE {Vergleichsmuster zum Graphen}
AND {Filter}
USING {Namespace-Mappings}
</pre>


Für die Speicherung von RDF in [[Datenbank]]en und [[Datenstruktur]]en gibt es verschiedene Konzepte (''Triplestore''), da ein reines Ablegen der Tripel in einer relationalen Tabelle nicht sehr effizient für viele Abfragen ist.
Im folgenden Beispiel wird eine konkrete Abfrage gezeigt.


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 „<nowiki>http://de.wikipedia.org/wiki/Resource_Description_Framework</nowiki>“. Der abgebildete RDF-Graph sagt aus, dass die Ressource –&nbsp;in diesem Fall der vorliegende Artikel&nbsp;– 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.
== 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 (Informatik)|N3]] (das <tt>has</tt> dient nur der besseren Lesbarkeit):


[[Datei:Resource Description Framework, Beispiel für Graph, URL split (de).svg|Beispiel für Graph]]
<pre><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/> .</pre>


=== Abfragen ===
In RDF/XML lässt sich die Aussage so ausdrücken:
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: <nowiki>‚http://de.wikipedia.org/wiki/Resource_Description_Framework</nowiki>‘ hat den Titel ‚Resource Description Framework‘ sowie den Herausgeber ‚Wikipedia – Die freie Enzyklopädie‘. In RDF ([[Notation 3 (Informatik)|N3]]) wird dies mittels zwei Tripeln ausgedrückt (das <code>has</code> dient hier nur der besseren Lesbarkeit):
<pre>
<nowiki><http://de.wikipedia.org/wiki/Resource_Description_Framework> has <http://purl.org/dc/elements/1.1/title> "Resource Description Framework" .</nowiki>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
<nowiki><http://de.wikipedia.org/wiki/Resource_Description_Framework> has <http://purl.org/dc/elements/1.1/publisher> "Wikipedia – Die freie Enzyklopädie" .</nowiki>
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></pre>


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:
Nun soll auf dem oben gezeigten Graphen eine Abfrage mit RDQL durchgeführt werden, die herausfindet, wie der ''Titel'' einer
<syntaxhighlight lang="sql">
vom ''Herausgeber http://www.wikipedia.org/'' definierten Ressource lautet.
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 (
<pre>
sameTerm(?pub, "Wikipedia - Die freie Enzyklopädie")
SELECT
)
?title
}
</syntaxhighlight>


Das Ergebnis ist eine Tabelle mit genau einem Eintrag (Bindung der Variable ''?title'') mit dem Wert '''Resource Description Framework'''.
WHERE
(?res, <dc:publisher>, ?pub),
(?res, <dc:title>, ?title)


== Geschichte ==
AND
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 Communications|Netscape]] im Juni 1997 beim [[World Wide Web Consortium|W3C]] eingereicht wurde.<ref>{{Internetquelle | url=https://www.w3.org/TR/NOTE-MCF-XML/ | titel=Meta Content Framework Using XML | werk=w3.org | sprache=de | zugriff=2022-01-04 }}</ref> Im Rahmen der [[Browserkrieg]]e 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.<ref>[http://www.tbray.org/ongoing/When/200x/2003/05/21/RDFNet The RDF.net Challenge] tbray.org</ref> Der erste RDF-Standard wurde im August 1997 als Entwurf vorgelegt<ref>{{Internetquelle | url=https://www.w3.org/TR/WD-rdf-syntax-971002/ | titel=RDF Model and Syntax | werk=w3.org | sprache=de | zugriff=2022-01-04 }}</ref> und im Februar 1999 als Empfehlung veröffentlicht.<ref name="rdf1999">{{Internetquelle | url=https://www.w3.org/TR/1999/REC-rdf-syntax-19990222/ | titel=Resource Description Framework (RDF) Model and Syntax Specification | werk=w3.org | sprache=de | zugriff=2022-01-04 }}</ref> Ab 1999 wurde mit der Entwicklung von [[RDF-Schema]] begonnen.<ref name="rdfs">{{Internetquelle | url=https://www.w3.org/TR/1999/PR-rdf-schema-19990303/ | titel=Resource Description Framework (RDF) Schema Specification | werk=w3.org | sprache=de | zugriff=2022-01-04 }}</ref>
?pub eq 'http://www.wikipedia.org/'


Die Empfehlung von 1999 wurde 2004 durch eine Reihe von sechs Spezifikationen ersetzt:
USING
* "The RDF Primer"<ref>{{Internetquelle| hrsg= W3C| autor = Frank Manola, Eric Miller | titel= RDF Primer| abruf = 2015-11-21| datum= 2004-02-10| url = http://www.w3.org/TR/2004/REC-rdf-primer-20040210/}}</ref>,
rdf for <http://www.w3.org/1999/02/22-rdf-syntax-ns#>,
* "RDF Concepts and Abstract"<ref>{{Internetquelle| hrsg= W3C| autor = Graham Klyne, Jeremy J. Carroll| titel= Resource Description Framework (RDF): Concepts and Abstract Syntax| abruf = 2015-11-21| datum= 2004-02-10| url = http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/}}</ref>,
dc for <http://purl.org/dc/elements/1.1/>
* "RDF/XML Syntax Specification (revised)"<ref>{{Internetquelle| hrsg= W3C| autor = Dave Beckett| titel= RDF/XML Syntax Specification (Revised)| abruf = 2015-11-21| datum= 2004-02-10| url = http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/}}</ref>,
</pre>
* "RDF Semantics"<ref>{{Internetquelle| autor = Patrick Hayes| titel= RDF Semantics| abruf = 2015-11-21| datum= 2014-02-10| url = http://www.w3.org/TR/2004/REC-rdf-mt-20040210/}}</ref>,
* "RDF Vocabulary Description Language 1.0"<ref>{{Internetquelle| hrsg= W3C| autor = Dan Brickley, R.V. Guha| titel= RDF Vocabulary Description Language 1.0: RDF Schema: W3C Recommendation 10 February 2004| abruf = 2015-11-21| datum= 2004-02-10| url = http://www.w3.org/TR/2004/REC-rdf-schema-20040210/}}</ref> und
* "The RDF Test Cases"<ref>{{Internetquelle| hrsg= W3C| autor= Jan Grant, Dave Beckett| titel= RDF Test Cases| abruf = 2015-11-21| datum= 2004-02-10| url = http://www.w3.org/TR/2004/REC-rdf-testcases-20040210/}}</ref>.


Diese Reihe wurde 2014 durch die folgenden sechs "RDF 1.1"-Dokumente abgelöst:
Im ''WHERE''-Teil werden die Aussagen gematcht, die Herausgeber bzw. Titel-Eigenschaften besitzen. Im ''AND''-Teil
* "RDF 1.1 Primer"<ref>{{Internetquelle| hrsg= W3C| autor = Guus Schreiber, Yves Raimond| titel= RDF 1.1 Primer| abruf = 2015-11-22| datum= 2014-06-24| url = http://www.w3.org/TR/2014/NOTE-rdf11-primer-20140624/}}</ref>,
werden dann noch die Knoten herausgefiltert, deren Herausgeber-Wert eben das Literal ''http://www.wikipedia.org/'' hat.
* "RDF 1.1 Concepts and Abstract Syntax"<ref>{{Internetquelle| hrsg= W3C| autor = Richard Cyganiak, David Wood, Markus Lanthaler| titel= RDF 1.1 Concepts and Abstract Syntax| abruf = 2015-11-22| datum= 2014-02-25| url = http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/}}</ref>,
Das Ergebnis ist eine Tabelle mit genau einem Eintrag (Bindung der Variable ''?title'') mit dem Wert '''RDF'''.
* "RDF 1.1 XML Syntax"<ref>{{Internetquelle| hrsg= W3C| autor = Gandon Fabien, Guus Schreiber| titel= RDF 1.1 XML Syntax| abruf = 2015-11-22| datum= 2014-02-25| url = http://www.w3.org/TR/rdf-syntax-grammar/}}</ref>,
* "RDF 1.1 Semantics"<ref>{{Internetquelle| hrsg= W3C| autor = Patrick J. Hayes, Peter F. Patel-Schneider| titel= RDF 1.1 Semantics| abruf = 2015-11-22| datum= 2014-02-25| url = http://www.w3.org/TR/2014/REC-rdf11-mt-20140225/}}</ref>,
* "RDF Schema 1.1"<ref>{{Internetquelle| hrsg= W3C| autor = Dan Brickley, R.V. Guha| titel= RDF Schema 1.1| abruf = 2015-11-22| datum= 2014-02-25| url = http://www.w3.org/TR/rdf-schema/}}</ref> und
* "RDF 1.1 Test Cases"<ref>{{Internetquelle| hrsg= W3C| autor = Gregg Kellogg, Markus Lanthaler| titel= RDF 1.1 Test Cases| abruf = 2015-11-22| datum= 2014-02-25| url = http://www.w3.org/TR/2014/NOTE-rdf11-testcases-20140225/}}</ref>.


== Anwendung ==
== Siehe auch ==
* [[Web Ontology Language]] (OWL)
RDF ist unter anderem eine Möglichkeit, [[Information]]en über
* [[RSS (Web-Feed)|RSS]]
Dokumente im [[World Wide Web]] und andere
* [[FOAF]]
Ressourcen zu repräsentieren. Diese Angaben ''über'' andere Informationen bezeichnet man als [[Metadaten]]. Dazu gehören beispielsweise
* [[Topic Maps]]
Titel, Autor, Änderungsdatum, Copyright und Lizenzinformationen
* [[Mikroformate]]
oder die Verfügbarkeit eines Dokumentes.
* [[Graphdatenbank]]

* [[Ontologie (Informatik)|Ontologie]]
''Siehe auch:'' [[RSS]]


== Literatur ==
* Pascal Hitzler, Markus Krötzsch, Sebastian Rudolph, York Sure: ''[http://www.semantic-web-grundlagen.de/ Semantic Web. Grundlagen].'' Springer, Berlin u.&nbsp;a. 2008, ISBN 978-3-540-33993-9.
* Shelley Powers: ''Practical RDF.'' O’Reilly, Beijing u.&nbsp;a. 2003, ISBN 0-596-00263-7.


== Weblinks ==
== Weblinks ==
* [http://www.w3.org/RDF/Validator/ W3C RDF Validation Service]
* [https://www.w3.org/RDF/ RDF Homepage] beim [[World Wide Web Consortium|W3C]]
* [https://www.w3.org/RDF/Validator/ W3C RDF Validation Service]

* [https://www.w3.org/TeamSubmission/turtle/ Turtle – Terse RDF Triple Language]
== Literatur ==
*[http://www.w3.org/RDF/ RDF Homepage] beim [[W3C]]
*[http://www.w3.org/TR/rdf-primer/ RDF Primer]
*Shelley Powers: ''Practical RDF''. O'Reilly, 2003


== Einzelnachweise ==
''Siehe auch:'' [[Topic_Map]]
<references />


{{Navigationsleiste W3C-Standards}}
[[Kategorie:Datenformat]]
{{Normdaten|TYP=s|GND=4737512-7}}
[[Kategorie:Dokumentation]]


[[Kategorie:Dokumentationssprache]]
[[en:Resource Description Framework]]
[[Kategorie:Semantisches Web]]
[[fr:RDF]]
[[Kategorie:XML-basierte Sprache]]
[[it:RDF]]
[[ja:Resource Description Framework]]
[[nl:Resource Description Framework]]
[[pl:RDF]]
[[sv:RDF, Resource Description Framework]]
[[zh-cn:RDF]]

Aktuelle Version vom 25. Januar 2024, 11:27 Uhr

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-Klassendiagramm 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.

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.

Grundlegendes RDF-Diagramm

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

[Bearbeiten | Quelltext bearbeiten]

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

[Bearbeiten | Quelltext bearbeiten]

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.

Beispiel für Graph

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.

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].

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Meta Content Framework Using XML. In: w3.org. Abgerufen am 4. Januar 2022.
  2. The RDF.net Challenge tbray.org
  3. RDF Model and Syntax. In: w3.org. Abgerufen am 4. Januar 2022.
  4. Resource Description Framework (RDF) Model and Syntax Specification. In: w3.org. Abgerufen am 4. Januar 2022.
  5. Resource Description Framework (RDF) Schema Specification. In: w3.org. Abgerufen am 4. Januar 2022.
  6. Frank Manola, Eric Miller: RDF Primer. W3C, 10. Februar 2004, abgerufen am 21. November 2015.
  7. Graham Klyne, Jeremy J. Carroll: Resource Description Framework (RDF): Concepts and Abstract Syntax. W3C, 10. Februar 2004, abgerufen am 21. November 2015.
  8. Dave Beckett: RDF/XML Syntax Specification (Revised). W3C, 10. Februar 2004, abgerufen am 21. November 2015.
  9. Patrick Hayes: RDF Semantics. 10. Februar 2014, abgerufen am 21. November 2015.
  10. 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.
  11. Jan Grant, Dave Beckett: RDF Test Cases. W3C, 10. Februar 2004, abgerufen am 21. November 2015.
  12. Guus Schreiber, Yves Raimond: RDF 1.1 Primer. W3C, 24. Juni 2014, abgerufen am 22. November 2015.
  13. Richard Cyganiak, David Wood, Markus Lanthaler: RDF 1.1 Concepts and Abstract Syntax. W3C, 25. Februar 2014, abgerufen am 22. November 2015.
  14. Gandon Fabien, Guus Schreiber: RDF 1.1 XML Syntax. W3C, 25. Februar 2014, abgerufen am 22. November 2015.
  15. Patrick J. Hayes, Peter F. Patel-Schneider: RDF 1.1 Semantics. W3C, 25. Februar 2014, abgerufen am 22. November 2015.
  16. Dan Brickley, R.V. Guha: RDF Schema 1.1. W3C, 25. Februar 2014, abgerufen am 22. November 2015.
  17. Gregg Kellogg, Markus Lanthaler: RDF 1.1 Test Cases. W3C, 25. Februar 2014, abgerufen am 22. November 2015.