Bei RDFa (Resource De­scrip­ti­on Framework in At­tri­bu­tes) handelt es sich um ein Da­ten­for­mat, das vom World Wide Web Con­sor­ti­um (W3C) als Standard zur Ein­bet­tung von RDF-Aussagen in HTML, XHTML und ver­schie­de­nen XML-Dialekten empfohlen wird. Das Resource De­scrip­ti­on Framework (RDF) nutzen Pro­gram­mie­rer, um Web­sei­ten­in­hal­te mit Metadaten näher zu spe­zi­fi­zie­ren. Auf diese Weise werden ent­spre­chen­de Be­deu­tungs­zu­sam­men­hän­ge auch von Pro­gram­men wie Web­brow­sern oder Such­ma­schi­nen-Crawlern ver­stan­den. Das RDF-Modell ist somit ein grund­le­gen­der Baustein des Semantic Webs. Als Modul von XHTML wurde RDFa bereits 2004 ent­wi­ckelt. Eine of­fi­zi­el­le Emp­feh­lung des W3C für RDFa 1.0 folgte 2008. Kom­pa­ti­bel mit klas­si­schem HTML und HTML5 ist RDFa seit der Version 1.1, die 2012 parallel zu einer re­du­zier­ten Ein­stei­ger­va­ri­an­te mit der Be­zeich­nung RDFa Lite ein­ge­führt wurde. 

RDF in HTML

Grund­sätz­li­che stellt RDFa nur eine von vielen Mög­lich­kei­ten dar, mit denen sich RDF-Aussagen notieren lassen. Dabei werden die ent­spre­chen­den Ausdrücke des Resource De­scrip­ti­on Framework in die Aus­zeich­nungs­spra­che HTML ein­ge­bet­tet, um für Menschen ge­schrie­be­ne Web­sei­ten­in­hal­te als struk­tu­rier­te Daten ma­schi­nen­les­bar auf­zu­be­rei­ten. Diese Ein­bet­tung erfolgt durch Attribute in HTML-Tags. Damit ist RDFa ver­gleich­bar mit anderen Da­ten­for­ma­ten zur se­man­ti­schen Aus­zeich­nung – wie bei­spiels­wei­se Mi­cro­for­mats oder Microdata. RDFa stellt dabei nur die Meta-Syntax zur se­man­ti­schen Aus­zeich­nung bereit. Um Be­deu­tungs­zu­sam­men­hän­ge mit Metadaten zu be­schrei­ben, wird ein ein­heit­li­ches Vokabular benötigt. Pro­gram­mie­rern stehen dazu ver­schie­de­ne Standards wie FOAF, SKOS, Dublin Core oder SIOC zur Verfügung. Google, Bing, Yahoo und Yandex empfehlen jedoch eine Aus­zeich­nung nach schema.org – ein Vokabular, das in einem Ge­mein­schafts­pro­jekt der Such­ma­schi­nen­an­bie­ter zur Ver­ein­heit­li­chung struk­tu­rier­ter Daten ent­wi­ckelt wurde. 

Das RDFa-Markup in der Anwendung

Bei der Ein­bet­tung vom Metadaten führt die RDFa-Spe­zi­fi­ka­ti­on eine Reihe neuer Attribute ein, die das Re­per­toire der je­wei­li­gen Do­ku­men­ten­aus­zeich­nungs­spra­che (z.B. HTML, XHTML oder HTML5) erweitern. Folgende Liste zeigt die Attribute des RDFa-Lite-Subsets:

AttributBe­schrei­bung
vocabDas vocab-Attribut definiert das ge­wünsch­te Vokabular, das der Aus­zeich­nung von Elementen mit RDFa (z.B. schema.org) zugrunde liegt.
typeofMit dem typeof-Attribut werden Elementen bestimmte Schemata, so­ge­nann­te „types“ gemäß des gewählten Vo­ka­bu­lars zu­ge­ord­net.
propertyMit dem property-Attribut werden Elementen Ei­gen­schaf­ten zu­ge­wie­sen.
resourceDas resource-Attribut er­mög­licht es Pro­gram­mie­rern, Elementen in­di­vi­du­el­le Be­zeich­nun­gen, so­ge­nann­te „iden­ti­fier“, zu­zu­ord­nen.
prefixDas prefix-Attribut gibt Pro­gram­mie­ren die Mög­lich­keit, mehr als ein Vokabular anzugeben, falls die Begriffe des ersten Vo­ka­bu­lars für die ge­wünsch­te Aus­zeich­nung nicht aus­rei­chen. 

Als Trä­ger­ele­men­te für RDFa-Attribute eigenen sich in erster Linie HTML-Tags ohne eigene Semantik. Metadaten finden sich daher oft in div- oder span-Tags. Grund­sätz­lich lassen sich RDF-Aussagen via RDFa jedoch in alle HTML-Tags einbinden. Dies erfolgt in der Regel nach un­ten­ste­hen­dem Grund­sche­ma:

Grund­sche­ma der RDFa-Syntax:

01<div vocab="http://schema.org/" typeof="Schema">
02 <span property="Ei­gen­schaft">Text­ele­ment</span>
03<div>

Post­an­schrift mit RDFa aus­zeich­nen

Folgender Code zeigt einen Satz Kon­takt­da­ten im klas­si­schen HTML-Format, wie er auf zahl­rei­chen Seiten im World Wide Web zu finden ist: 

HTML-Code einer Post­an­schrift:

01<p>
02 Google Inc.<br>
03 P.O. Box 1234<br>
04 Mountain View, CA<br>
05 94043<br>
06 United States<br>
07</p>

Während ein mensch­li­cher Besucher auf den ersten Blick erkennt, dass es sich bei dem mit dem p-Tag de­fi­nier­ten Text­ab­satz um eine Adress­an­ga­be im ame­ri­ka­ni­schen Format handelt, benötigen Programme wie Web­brow­ser und Such­ma­schi­nen-Crawler zu­sätz­li­che Metadaten, um die Bedeutung der In­for­ma­tio­nen auslesen zu können:

RDFa Markup einer Post­an­schrift:

01<p vocab="http://schema.org/" typeof="Posta­l­Ad­dress"><br>
02 <span property="name">Google Inc.</span><br>
03 P.O. Box <span property="po­stOf­fice­BoxN­um­ber">1234</span><br>
04 <span property="ad­dress­Lo­ca­li­ty">Mountain View</span>,<br>
05 <span property="ad­dress­Re­gi­on">CA</span><br>
06 <span property="postal­Code">94043</span><br>
07 <span property="ad­dress­Coun­try">United States</span><br>
08</p>

In Zeile 01 dient das HTML-Tag <p> als Trä­ger­ele­ment für die RDFa-Attribute „vocab“ und „typeof“. Programme, die einen auf diese Art aus­ge­zeich­ne­ten Code auslesen, erfahren somit, dass für alle Angaben innerhalb des p-Tags das Vokabular nach schema.org gilt und die ent­hal­te­nen In­for­ma­tio­nen dem Schema „Posta­l­Ad­dress“ (Post­an­schrift) zu­ge­ord­net werden. Laut schema.org ist definiert, dass jedes Schema mit spe­zi­fi­schen Ei­gen­schaf­ten versehen werden kann: Typisch für Post­an­schrif­ten ist, dass sie bestimmte Adress­an­ga­ben enthalten. Sollen diese ma­schi­nen­les­bar aus­ge­zeich­net werden, kommt das RDFa-Attribut „property“ zum Einsatz. Im aktuellen Beispiel sind die Adress­an­ga­ben „name“, „po­stOf­fice­BoxN­um­ber”, „ad­dress­Lo­ca­li­ty”, „ad­dress­Re­gi­on“, „postal­Code“ und „ad­dress­Coun­try“ mit ent­spre­chen­den Werten als Ei­gen­schaf­ten von „Posta­l­Ad­dress“ aus­ge­zeich­net. So kann auch ein Programm, das den HTML-Code ausliest, be­ur­tei­len, wie eine In­for­ma­ti­on wie „Google Inc.“ oder „94043“ zu deuten ist.  

Web­sei­ten­in­hal­te mit RDFa für Rich Snippets aus­zeich­nen

Relevant sind struk­tu­rier­te Daten vor allem für die Websuche. Zeichnet ein Web­sei­ten­be­trei­ber die In­for­ma­tio­nen auf seiner Homepage se­man­tisch aus, sind Such­ma­schi­nen in der Lage, relevante In­for­ma­tio­nen zu ex­tra­hie­ren und in Dar­stel­lungs­for­men wie Rich Snippets zu verwenden. Dabei handelt es sich um Auszüge von Web­sei­ten­in­hal­ten, mit denen sich Such­ergeb­nis­se erweitern lassen, sodass sie auf Such­ergeb­nis­sei­ten (SERPs) deutlich her­vor­ste­chen. In diesem Sinne trägt eine se­man­ti­sche An­no­ta­ti­on zur Such­ma­schi­nen­op­ti­mie­rung einer Website bei. Der Such­ma­schi­nen-Markt­füh­rer Google un­ter­stützt eine RDFa-Aus­zeich­nung für Rich Snippets für die Da­ten­ty­pen Produkte, Rezepte, Er­fah­rungs­be­rich­te, Software und News­ar­ti­kel. Rich Snippet für Videos werden aus­schließ­lich in ak­tu­el­le­ren Formaten wie Microdata und JSON-LD un­ter­stützt. Sollen Rich Snippets für Ver­an­stal­tun­gen generiert werden, muss eine Aus­zeich­nung mit JSON-LD vorliegen. Als Beispiel dafür, wie sich Web­sei­ten­in­hal­te für Rich Snippets auf­be­rei­ten lassen, soll hier die se­man­ti­sche Aus­zeich­nung einer Pro­dukt­be­wer­tung vor­ge­stellt werden. 

Pro­dukt­be­wer­tun­gen mit RDFa aus­zeich­nen

Pro­dukt­be­wer­tun­gen, die als Rich Snippets in den SERPs er­schei­nen, be­inhal­ten in der Regel den Namen des Produkts, ein Pro­dukt­bild, ein Rating in Form einer Ster­ne­be­wer­tung sowie einen Er­fah­rungs­be­richt inklusive Au­toren­na­me, Titel und Datum. Wie sich diese In­for­ma­tio­nen via RDFa ma­schi­nen­les­bar aus­zeich­nen lassen, zeigt der folgende Code: 

RDFa-Markup einer Pro­dukt­be­wer­tung:

01<div vocab="http://schema.org/" typeof="Product">
02 <img property="image" src="https://www.ionos.at/digitalguide/www.anbieter.de/pro­dukt­bild.jpg" alt="Bild­be­schrei­bung"/>
03 <span property="name">Name des Produkts</span>
04 <div property="review" typeof="Review"> Review:
05 <span property="re­view­Ra­ting" typeof="Rating">
06 <span property="ra­tingVa­lue">5</span> -
07 </span>
08 <b>"<span property="name">Titel der Bewertung</span>"</b> von
09 <span property="author" typeof="Person">
10 <span property="name">Name des Autors</span>
11 </span>, ge­schrie­ben am 
12 <meta property="da­te­Pu­blished" content="2006-05-04">4. Mai 2006
13 <div property="re­view­Bo­dy">Be­wer­tungs­text</div>
14 <span property="publisher" typeof="Or­ga­niza­ti­on">
15 <meta property="name" content="Name des Her­aus­ge­bers">
16 </span>
17 </div>
18</div>

In Codezeile 01 wird schema.org als dem Markup zu­grun­de­lie­gen­des Vokabular aus­ge­zeich­net. Das typeof-Attribut definiert die Angaben von Zeile 01 bis 17 als zum Stan­dard­sche­ma „Product“ gehörend. Produkte können nach Schema.org eine Reihe von Ei­gen­schaf­ten (pro­per­ties) aufweisen. Im vor­lie­gen­dem Beispiel werden dem Produkt ein Name (property="name"), ein Bild (property=“image“) und ein Er­fah­rungs­be­richt (property="review") zu­ge­ord­net und se­man­tisch aus­ge­zeich­net. Die RDFa-Syntax sieht vor, dass auch Ei­gen­schaf­ten als Schemata be­schrie­ben und ih­rer­seits mit Ei­gen­schaf­ten versehen werden können. Dem­entspre­chend lässt sich die Ei­gen­schaft „review“ in Zeile 04 als Schema „Review“ de­fi­nie­ren und näher spe­zi­fi­zie­ren.

Aus­schnitt:

04 <div property="review" typeof="Review"> Review:

Viele Er­fah­rungs­be­rich­te be­inhal­ten Ster­ne­be­wer­tun­gen. Um diese ma­schi­nen­les­bar aus­zu­zeich­nen wird dem Schema „Review“ die Ei­gen­schaft „re­view­Ra­ting“ zu­ge­ord­net, die sich wiederum als Schema „Rating“ mit der Ei­gen­schaft "ra­tingVa­lue" und einem konkreten Wert be­schrei­ben lässt (Zeile 05 bis 06). 

Aus­schnitt:

04 <div property="review" typeof="Review"> Review:
05 <span property="re­view­Ra­ting" typeof="Rating">
06 <span property="ra­tingVa­lue">5</span> -

Weitere Ei­gen­schaf­ten des Schemas „Review“ sind Titel (property="name"), Autor (property="author"), Ver­öf­fent­li­chungs­da­tum (property="da­te­Pu­blished") sowie der Be­wer­tungs­text (property="re­view­Bo­dy") und eine Angabe zum Her­aus­ge­ber (property="publisher"). Wobei Autor und Her­aus­ge­ber wiederum durch eigene typeof-Attribute als spe­zi­fi­sche Schemata (Person bzw. Or­ga­ni­sa­ti­on) definiert und mit Ei­gen­schaf­ten (z.B. „name“) versehen werden können. Dabei ist zu beachten, dass jedes un­ter­ge­ord­ne­te typeof-Attribut innerhalb des HTML-Tags mit dem über­ge­ord­ne­ten typeof-Attribut ver­schach­telt wird.

Hier zeigt sich die Kom­ple­xi­tät des RDFa-Markups, das eine äußerst de­tail­lier­te se­man­ti­sche An­no­ta­ti­on er­mög­licht, aber dessen Ver­wen­dung im Gegenzug auch als deutlich auf­wen­di­ger gilt als die mo­der­ne­rer Da­ten­for­ma­te wie JSON-LD.   

Zum Hauptmenü