RDFa
RDFa (für RDF in Attributes) ist eine W3C-Empfehlung, die das Einbetten von RDF-Statements in HTML, XHTML und eine Reihe von XML-Dialekten ermöglicht. Gemeinsam mit Mikroformaten und Microdata zählt es zu den gebräuchlichsten Methoden, (X)HTML-Seiten mit maschinenlesbaren Zusatzinformationen aufzuwerten[1][2]. RDFa gehört zu den Technologien des Semantic Web.
Geschichte
[Bearbeiten | Quelltext bearbeiten]RDFa als Modul von XHTML
[Bearbeiten | Quelltext bearbeiten]Schon 2004 präsentierte Mark Birbeck in seiner Veröffentlichung XHTML and RDF[3] ein Konzept, das die Grundlage für RDFa bildet. (Die Bezeichnung RDFa taucht in diesem Dokument jedoch noch nicht auf.) 2007 fanden diese Ideen in den W3C-Entwurf XHTML RDFa Modules Eingang.[4]
RDFa 1.0
[Bearbeiten | Quelltext bearbeiten]Im Oktober 2008 wurde RDFa 1.0 zur offiziellen W3C-Empfehlung.[5] Aus seiner Entstehungsgeschichte heraus setzte es stark auf die bewährten Erweiterungsmechanismen der XML-Welt, insbesondere XML-Namensräume. Dies hatte zur Folge, dass RDFa 1.0 nur in XHTML funktionierte und mit klassischem HTML nicht kombinierbar war.
RDFa 1.1 und RDFa Lite
[Bearbeiten | Quelltext bearbeiten]Die aktuelle Version, RDFa 1.1, wurde im Juni 2012 in den Rang einer W3C-Empfehlung erhoben.[6] Der wesentliche Unterschied zu RDFa 1.0 besteht im Verzicht auf XML-spezifische Eigenheiten. RDFa kann nun gleichermaßen in XML-Dialekten (wie zum Beispiel Atom und SVG) als auch in HTML, insbesondere HTML 5, eingesetzt werden. Gleichzeitig mit RDFa 1.1 entstand RDFa Lite. RDFa Lite ist keine eigene Variante, sondern ein Subset von RDFa, das die Komplexität vor allem für Einsteiger erheblich reduziert.
Grundlagen
[Bearbeiten | Quelltext bearbeiten]Aus der Sicht von RDF ist RDFa eine von mehreren Möglichkeiten, RDF zu notieren. Im Gegensatz zu reinen RDF-Notationen wie RDF/XML oder Turtle bettet RDFa die RDF-Ausdrücke in eine bereits vorhandene Dokumenten-Auszeichnungssprache (wie HTML) ein. Informationen müssen somit nicht doppelt gepflegt und aktuell gehalten werden. Die für Menschen geschriebenen Informationen auf einer Web-Seite können mittels RDFa so ergänzt werden, dass auch Computerprogramme (z. B. Suchmaschinen) ihre semantische Bedeutung erfassen.
Aus der Sicht von HTML ist RDFa neben Mikroformaten und Microdata eine weitere Möglichkeit, den Inhalt einer Webseite zu strukturieren und für Maschinen verständlich zu machen. RDFa kann dabei auf eine große Menge erprobter Standard-Vokabulare zurückgreifen (FOAF, SKOS, Dublin Core, SIOC, schema.org), ermöglicht aber auch die Definition neuer Begriffe.
Um dies zu erreichen, ergänzt RDFa die sogenannten Gastsprachen im einfachsten Fall um folgende Attribute (Subset RDFa Lite):
- vocab
- legt einen Standard-Namensraum, also das benutzte Vokabular, fest (Ersatz für den XML-Namensraum-Mechanismus)
- prefix
- legt bei Bedarf mehrere weitere Namensräume mit ihren Prefixes fest (Ersatz für den XML-Namensraum-Mechanismus)
- resource
- kann Subjekt oder Objekt der RDF-Aussage bezeichnen
- property
- bestimmt das Prädikat der Aussage
- typeof
- bestimmt den Typ des Subjekts
Mit den oben angeführten Attributen lassen sich fast alle RDF-Ausdrücke modellieren. Zusätzlich kennt die vollständige RDFa-1.1-Spezifikation noch folgende Attribute für fortgeschrittene Anwendungsfälle:
- about
- wird in einzelnen Fällen statt resource zur Festlegung des Subjekts benötigt
- content
- gibt einen Inhalt an, der abweichend vom lesbaren Inhalt in der Gastsprache sein kann (z. B. formatierte Zeitangaben statt um fünf Uhr)
- datatype
- gibt einen eindeutigen Datentyp für einen Wert an
- inlist
- erzeugt RDF-Listenelemente
- rel
- bestimmt das Prädikat
- rev
- bestimmt das Prädikat (wenn das Subjekt in der Reihenfolge nach dem Objekt steht)
Schließlich werden folgende beiden HTML-Attribute von RDFa-Prozessoren nach fixen Regeln ausgewertet und sind Teil der erzeugten RDF-Aussagen:
- src
- Quelle einer Bilddatei, wird bei RDFa zum Objekt
- href
- Hyperlink auf eine andere Web-Adresse, wird bei RDFa zum Objekt
Beispiele
[Bearbeiten | Quelltext bearbeiten]Das folgende Beispiel verwendet das von großen Suchmaschinenbetreibern erstellte Vokabular von schema.org und die vereinfachte RDFa-Lite-Syntax:
<div vocab="http://schema.org/" typeof="Product">
<p>Kaufen Sie den
<span property="name">Staubsauger XF704</span>
jetzt im Sonderangebot!
<img property="image" src="acmeXF704.jpg" />
</p>
</div>
Die Angabe von vocab="http://schema.org/"
in Zeile 1 bestimmt, dass alle RDF-Bezeichner im nachfolgenden Baum im Namensraum schema.org zu finden sind. Das Attribut typeof="Product"
gleich dahinter gibt an, dass im Folgenden über ein Subjekt vom Typ Produkt gesprochen wird und dass sich alle weiteren Angaben drauf beziehen. In Zeile 3 wird mit property="name"
angegeben, dass nun der Produktname folgt. property="image"
in Zeile 5 verrät, dass es sich bei der nachfolgenden Bilddatei um die Produktabbildung handelt.
Das Beispiel kann erweitert werden:
<div vocab="http://schema.org/" typeof="Product">
<p>Kaufen Sie den
<span property="name">Staubsauger XF704</span>
jetzt im Sonderangebot!
<img property="image" src="acmeXF704.jpg" />
</p>
<p prefix="dc: http://purl.org/dc/elements/1.1/" resource="acmeXF704.jpg">
(Produktabbildung: Foto
„<span property="dc:title">Sauberkeit</span>“ von
<span property="dc:creator">Max Mustermann</span>,
<span property="dc:rights">freigegeben zur weiteren Verwendung
ohne Einschränkung</span>)
</p>
</div>
In der Zeile 7 wird ein neuer Namensraum, ein neues Vokabular eingebunden. Ebenfalls noch in Zeile 7 gibt resource="acmeXF704.jpg"
an, dass sich die weiteren Angaben auf das Bild acmeXF704.jpg beziehen.
property="dc:title"
, property="dc:creator"
und property="dc:rights"
in den Zeilen 9–11 geben schließlich mit den Ausdrücken des Dublin Core Vokabulars nähere Informationen zu Titel, Urheber und Verwertungsrechten dieses Bildes.
Verbreitung und praktische Anwendungen
[Bearbeiten | Quelltext bearbeiten]Laut WebDataCommons.org verwendeten im Februar 2012 12,7 % der untersuchten HTML-Seiten irgendeine Form strukturierter Auszeichnung:[1]
Format | Enthalten in URLs |
---|---|
Mikroformate | 49,77 % |
RDFa | 35,96 % |
Microdata | 14,26 % |
in 188 Mio. URLs mit Microdaten |
Im November 2013 hat sich die Verteilung deutlich zu Gunsten der Formate des W3C (RDFa und Microdata) verschoben, allerdings gibt es auch mehr Seiten, die mehrere Formate benutzen:[2]
Format | Enthalten in URLs |
---|---|
RDFa | 50,53 % |
Microdata | 47,17 % |
Mikroformate | 26,44 % |
in 585 Mio. URLs mit Microdaten |
Im November 2019 betrug der Anteil der HTML-Seiten mit strukturierten Annotationen bereits 38 %, wobei sich die Verteilung über die verschiedenen Formate deutlich verändert hat:[7]
Format | Enthalten in URLs |
---|---|
Microdata | 43,12 % |
JSON-LD | 23,70 % |
Mikroformate | 22,99 % |
RDFa | 10,19 % |
in 935 Mio. URLs mit Microdaten |
Bedeutende Beispiele für die praktische Anwendung sind:
- Schema.org ist eine gemeinsame Initiative von Suchmaschinen (Google, Yahoo!, Bing, Yandex), um ein Basisvokabular zur semantischen Anreicherung von Webseiten zu schaffen. Seit 11. November 2011 unterstützt schema.org offiziell auch RDFa.[8][9]
- Google unterstützt RDFa bei seinen Rich Snippets.
- Facebook verwendet RDFa beim Open Graph Protocol.
- Drupal ist ein Content-Management-System (CMS), das seit Version 7 RDFa fest eingebaut hat.
- Wordpress, ebenfalls ein CMS, unterstützt RDFa über Plugins.
Tools
[Bearbeiten | Quelltext bearbeiten]- librdfa – RDFa-Bibliothek in C
- Redland RDF Libraries – Set von Programmen, die auch RDFa-Quellen lesen kann
- RDFa Play – Online-Programm zum Visualisieren der Datenstruktur des RDFa-Codes
- Ruby RDF Distiller – Programm zum Extrahieren der RDF-Triples (unter anderem) aus RDFa in der Programmiersprache Ruby
- Python RDFa 1.1 Distiller and Parser – Programm zum Extrahieren der RDF-Triples aus RDFa in der Programmiersprache Python
- VIE.js – Bibliothek zum Auslesen und Manipulieren von RDFa angereichertem HTML geschrieben in JavaScript
Alternativen
[Bearbeiten | Quelltext bearbeiten]Mikroformate
[Bearbeiten | Quelltext bearbeiten]Mikroformate verzichten auf neue Attribute und verwenden ausschließlich die bekannten HTML-Attribute class, rel und rev. Dadurch gibt es keine Probleme bei der Einbindung von Mikroformaten auch bei HTML-Editoren, die auf die Gültigkeit des Codes auf Basis einer bestimmten HTML-Version prüfen.
Verschiedene Mikroformate sind jeweils auf ein einzelnes Themengebiet beschränkt: Es gibt spezielle Mikroformate für Rezepte, für Lebensläufe, für soziale Netzwerke und so weiter. Das vereinfacht die Anwendung, sofern es genau um diese Themen geht. Erweiterungen sind nicht jederzeit möglich, sondern müssen durch die Community abgesegnet werden.[10] Eine Verknüpfung der Daten im Sinne von Linked Data ist bei Mikroformaten nicht möglich.
Microdata
[Bearbeiten | Quelltext bearbeiten]Microdata entstand gemeinsam mit HTML 5. Die Spezifikation hat große Ähnlichkeit mit RDFa. Die tatsächlichen Unterschiede bestehen im Datenmodell, das den beiden Spezifikationen zugrunde liegt. RDFa ist mit dem ausdrücklichen Ziel entstanden, das vorhandene RDF-Konzept in (X)HTML umzusetzen. Dementsprechend gelingt auch das Mapping zwischen RDF und RDFa gut. Microdata entstand mit anderen Anforderungen. Der Austausch mit RDF-Quellen funktioniert nicht in jeder Konstellation eindeutig.[11]
Weblinks
[Bearbeiten | Quelltext bearbeiten]- RDFa – allgemeine Information über Linked Data in HTML 5 mit RDFa
- RDFa Primer. W3C – Einführung in RDFa 1.1
- RDFa Core. W3C – Kern der RDFa 1.1 Spezifikation
- RDFa Lite. W3C – vereinfachtes Subset von RDFa 1.1
- Datenmodell und RDFa Schema.org – Beispiel für das Verwenden von Schema.org mit RDFa
- An Uber-comparison of RDFa, Microdata and Microformats. Vergleich von RDFa, Microdata und Microformat mit vielen Erläuterungen
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ a b Web Data Commons Extraction Report - February 2012 Corpus. Web Data Commons, 22. März 2012, abgerufen am 24. Juni 2012.
- ↑ a b Web Data Commons Extraction Report - November 2013 Corpus. Web Data Commons, 1. November 2013, abgerufen am 28. April 2014.
- ↑ XHTML and RDF W3C Note 14 February 2004. World Wide Web Consortium, 14. Februar 2004, abgerufen am 23. Juni 2012.
- ↑ XHTML RDFa Modules, Modules to support RDF annotation of elements, W3C Editor’s Draft 2 April 2007. World Wide Web Consortium, 2. April 2007, abgerufen am 23. Juni 2012.
- ↑ RDFa in XHTML: Syntax and Processing, A collection of attributes and processing rules for extending XHTML to support RDF, W3C Recommendation 14 October 2008. World Wide Web Consortium, 14. Oktober 2008, abgerufen am 23. Juni 2012.
- ↑ RDFa Core 1.1, Syntax and processing rules for embedding RDF through attributes, W3C Recommendation 07 June 2012. World Wide Web Consortium, 7. Juni 2012, abgerufen am 23. Juni 2012.
- ↑ Web Data Commons Extraction Report - November 2019 Corpus. Abgerufen am 4. Januar 2021.
- ↑ Dan Brickley: Using RDFa 1.1 Lite with Schema.org. 11. November 2011, abgerufen am 23. Juni 2012.
- ↑ What is Schema.org? schema.org.
- ↑ Tantek Çelik: The microformats process. 25. April 2012, abgerufen am 24. Juni 2012.
- ↑ Microdata to RDF: Background. World Wide Web Consortium, 12. Januar 2012, abgerufen am 23. Juni 2012.