RDFa à la twoday
Seit dem 14.10.2008 ist RDFa eine W3C-Empfehlung. RDFa steht für „RDF in attributes“ und definiert eine Erweiterung zu XHTML, mit der RDF-Statements direkt in Webseiten eingebettet werden können. Das Internet wird dadurch ein Stück maschinenlesbarer: Suchmaschinen können diese Information verwerten und so zum Beispiel in Suchergebnissen eine Unterscheidung treffen zwischen Essen, der Stadt in Deutschland, und dem guten Essen bei der Mama. (Tatsächlich experimentiert Yahoo! in seinem Projekt Searchmonkey mit RDFa. Irgendjemand hier sollte mal über Searchmonkey bloggen …)
Natürlich habe ich mich (trotz meiner Verärgerung und Frustration über den sorglosen Umgang mit URIs) seit 14.10. mit RDFa gespielt und versucht, ob man es in einem Blog auf twoday.net einsetzen kann. Immerhin: SIOC/RDF, Planets, Geotagging und Tagging … Mein Blog hat ja schon jetzt nicht mehr allzuviel mit dem zu tun, was Knallgrau sich ursprünglich so vorgestellt hat unter diesem Service.
Um es vorweg zu nehmen: Dieses Blog enthält noch keine RDFa-Informationen. Ich habe es bei einem Testblog belassen. Zum ersten Mal leisten die knallgrauen Server spürbaren Widerstand.
Das grundlegende Problem: RDFa ist als Erweiterung zu XHTML (genauer: zu XHTML 1.1) konzipiert. XHTML ist durch derartige Module leicht erweiterbar, HTML nicht. Ich bemühe mich zwar, dieses Blog so weit wie möglich XHTML-konform zu halten. Knallgrau verhindert aber, daß es wirklich verläßlich sauberes XHTML ist:
- Es gibt bei der Texteingabe keine Prüfung auf valides XHTML, wie z.B. Drupal sie anbietet. Mit ein bißchen Disziplin schaffe ich es zwar meist (nicht immer), meine eigenen Beiträge fehlerfrei zu halten. Auf die Kommentare anderer User habe ich jedoch keinen Einfluß. Was immer da an Markup drin ist, XHTML ist es wahrscheinlich in den seltensten Fällen.
- Wesentlich schlimmer: Eine rudimentäre Prüfung auf gültiges Markup führt twoday.net beim Speichern eines Beitrags dann doch durch. Die ist aber problematisch und zerstört in Einzelfällen korrektes XHTML. Folge: Es gibt Situationen, in denen ich selbst wissentlich fehlerhaften Code veröffentlichen muß, weil twoday die von mir richtig eingegebenen Tags stur entfernt.
- Knallgrau gibt mir keine Möglichkeit, den MIME-Type der Dokumente zu verändern. XHTML 1.0 kann man ruhigen Gewissens als text/html ausliefern (das passiert hier). RDFa baut aber auf XHTML 1.1 auf, und dieses sollte als application/xhtml+xml ausgeliefert werden. Zwar geht text/html in Ausnahmefällen durch, trotzdem: An solche Vorgaben hält man sich einfach, und zwar aus dem gleichen Grund, aus dem man sich regelmäßig duscht.
- Es ist naheliegend, XHTML-formatierte Inhalte der Seite mit dem datatype rdf:XMLLiteral in eine RDF-Aussage zu übernehmen. Diese Konstruktion bricht zusammen wie ein Kartenhaus, wenn dann einmal fehlerhaftes XHTML (das dann in der Regel auch kein XML mehr ist) in einem solchen Bereich auftaucht.
Mir war das alles dann doch zu heiß. Es gibt keine ausreichenden Erfahrungen, wie RDFa-Parser arbeiten, ob sie über derartige Unkorrektheiten stolpern. (Der von mir zum Testen von rdfa.twoday.net verwendete Parser zum Beispiel spuckt bei ungültigem XHTML nur mehr Fehlermeldungen aus.)
Bleibt zusammenfassend: Ich weiß wie's geht, ich kann es jederzeit einbauen, sobald eine halbwegs fehlertolerante Applikation es auch sinnvoll verarbeiten kann. Bis ich aber weiß, wie fehlertolerant solche Applikationen sein werden, spiele ich nur im Testblog weiter - und schau mir Drupal näher an, das nicht nur korrektes XHTML bietet, sondern auch schon RDFa-Unterstützung eingebaut hat.
Semantic Web: