Mehrwert-Markup
Ob hCard, hCalendar oder xFolk - XHTML-Dokumente lassen sich, ohne den Standard zu verletzen, mit Informationen anreichern, die es Anwendern beispielsweise erlauben, Kalenderdaten in ihren Organizer einzulesen. Das SchlĂĽsselwort heiĂźt Mikroformate.
- Henning Behme
Kaum jemand glaubt’s, aber das semantische Web kommt - allerdings von unten. Zu den Neuerungen in dieser Richtung gehört, was Anwendungen wie Flickr den Durchbruch verschafft hat: massenhaftes Tagging. Und mit Mikroformaten kann jeder Webautor gemeines XHTML semantisch anreichern, sodass Maschinen die Bedeutung von Markup erkennen können.
Am Anfang stand der damalige Apple-Mitarbeiter R. V. Guha. 1995 entwickelte er das Meta Content Framework (MCF), mit dem er den Grundstein für das spätere Resource Description Framework (RDF) legte, dessen erster öffentlicher Entwurf aus dem Herbst 1997 stammt. Die Liste der Zuträger zum Entwurf liest sich wie ein kleines Who’s Who des Web. Im Februar 1999 veröffentlicht das World Wide Web Consortium die erste RDF-Spezifikation, und zwei Jahre später startete das W3C die Semantic Web Activity.
Onlineressourcen
Allgemein
Einzelne Spezifikationen
Am Ende stand sicherlich das Unbehagen vieler am Semantic Web, vor allem an RDF: zu kompliziert, braucht keiner wirklich. Die Realisierung der von Tim Berners-Lee im Scientific American veröffentlichten Vision des semantischen Web (siehe [1]) lässt nach wie vor auf sich warten, unter anderem, weil die Abermillionen Webautoren sich nicht der Mühe unterziehen wollen, ihre Dokumente semantisch auszuzeichnen - nur damit Maschinen die Seiten „verstehen“. Jedenfalls nicht nach RDF.
Wenn aber Bill Gates und Tim O’Reilly sich einig sind, wie auf der Mix 06 im März in Las Vegas, muss das gemeinsam Angesprochene wichtig sein. In diesem Falle handelt es sich um sogenannte Mikroformate, die seit Monaten durch die Blogosphäre und das Web geistern. „Semantic Web von unten“, könnte man sagen, denn was sich als vom World Wide Web Consortium gleichsam verordnete Version des semantischen Web bislang nur in Ansätzen hat durchsetzen können - eben RDF -, könnte in seiner Grassroot-Variante erheblich erfolgreicher sein.
In zwei Erscheinungsweisen kommt das kleine Semantic Web daher: Tagging und Mikroformate. Bei Ersterem handelt es sich um die „Klassifizierung“ von Fotos et cetera, wie sie auf flickr.com zu finden sind (siehe dazu den vorstehenden Artikel gegen Ende). Mikroformate hingegen basieren auf der Nutzung von XHTML, genauer: auf ein paar der dort vorhandenen Attribute.
Semantisches XHTML leicht gemacht
Ziel der Mikroformatersteller ist es, XHTML-Dokumente durch ein paar Ergänzungen mit mehr Informationen zu versehen. Das Ganze soll für Menschen wie Maschinen lesbar sein. Wie sich gleich erweisen dürfte, haben Anwender Gewinn davon, wenn die Rechner mit den Daten etwas anfangen können.
Tantek Çelik und andere haben auf microformats.org eine Reihe von Spezifikationen zusammengetragen, die die XHTML-Attribute class, rel und rev nutzen, um Metainformationen in Elementen unterzubringen. class können Webautoren für fast alle HTML-Elemente verwenden, rel und rev in den Elementen a und link. Kein Wunder, dass Mikroformate überwiegend class als Attribut nutzen.
Zunächst gibt es zwei Gruppen der kleinen Formate: elementare (elemental) und zusammengesetzte (compound). Zur ersten Gruppe gehört Rel-Tag, zur zweiten hCard und hCalendar. Letztere sollen auf Ersteren aufbauen. Alle basieren letztlich auf XHTML und damit auf XML (siehe Abb. 1).
Bekannteste Vertreter dieser Spezifikationen sind die von Visitenkarten (das am vCard-RFC orientierte hCard) und die von Kalenderdaten (das am iCalendar-RFC orientierte hCalendar) - siehe „Onlineressourcen“. Was Webautoren mit ihnen anstellen, ist zwar für Menschen lesbar (siehe die Listings), der eigentliche Zweck ist jedoch, dass Maschinen sie ebenfalls verstehen können. Um ein erstes Codebeispiel im hCard-Format zu nehmen, zeigt Listing 1, wie im class-Attribut die Elemente aus der vCard-Spezifikation zu Attributwerten mutiert sind. Der neben dem Listing wiedergegebene Screenshot ist die Ausgabe in Firefox, ergänzt durch Tails Export (siehe unten).
Listing 1: hCard-Eintrag
<div class="vcard">
<img class="photo" src="http://www.ix.de/editors/hb.jpg"
width="50px" alt="Foto von h.b."/>
<span class="fn">Henning Behme</span>,
<div class="adr">
<span class="street-address">Helstorfer Str. 7</span>,
<span class="postal-code">30625</span>
<span class="locality">Hannover</span>
<span class="country-name">Deutschland</span>
</div>
<div class="tel">
<span class="type">BĂĽro</span>
<span class="value">+49 511 5352387</span>
</div>,
<a class="email" href="mailto:hb@ix.de">Mail</a>,
<a class="org url" href="http://www.ix.de/">iX</a>
</div>
Maschinenlesbarer Adresseintrag
Wer eine Adresse im Quellcode einer Webseite entdeckt, weiß sogleich, um was es sich handeln muss. Zumindest gilt das für Menschen, die die verwendete Sprache kennen. Maschinen muss man derlei haarklein erklären, indem Schlüsselwörter zur Verwendung kommen, die eindeutig sind. Eben das sollen Mikroformate leisten. Ein Element der Klasse „vcard“ umschließt einen Adresseintrag, den, wie Abbildung 2 rechts zeigt, Browser auf erwartete Weise darstellen. Die darin enthaltenen Elemente sind allesamt korrektes XHTML, nur deren Klassennamen haben innerhalb dieses Mikroformats ihre Bedeutung.
Das Mikroformat hCard bietet das Vokabular, dessen Verwendung mindestens im englischen Sprachraum selbsterklärend sein dürfte. Für Deutsch-, Spanisch- und Französischsprechende zwar ebenfalls, für Ungarn, Russen und Chinesen jedoch nicht. Das Englische muss da schon als Lingua franca „herhalten“ - nicht anders als bei XHTML.
Wer eine hCard mit seinen Daten ausprobieren will, kann dies unter microformats.org/code/hcard/creator versuchen - inklusive Quelltext und XHTML-Wiedergabe.
Ähnlich wie bei Adressen verhält es sich bei Kalenderdaten (hCalendar). Listing 2 zeigt einen Veranstaltungseintrag, dessen umschließendes Element von der Klasse vevent sein muss. Schließlich sollen Maschinen den Eintrag als solchen erkennen ...
Listing 2: hCalendar-Eintrag
<div class="vevent">
<a class="url" href="http://www.ix-konferenz.de/konf.php?konferenzid=11">
<span class="summary">iX-Konferenz "Bessere Software!"</span>:
<abbr class="dtstart" title="2006-11-27">27.</abbr>-
<abbr class="dtend" title="2006-11-30">30. November</abbr>
</a> –
<span class="location">Marriot Hotel, Frankfurt/Main</span>
</div>
Die Attributwerte url, summary, dtstart/dtend und location bezeichnen das zu Erwartende, bleiben aber wie die Visitenkarte in den Grenzen von XHTML. Ein Werkzeug wie Tails Export kann damit etwas anfangen.
Mikroformate im Browser und anderswo
Software, die eine solche Spezifikation implementiert, kann die Daten in ein Adressbuch oder einen Kalender transferieren. Oder zumindest aufbereiten. Letzteres bewirkt die genannte Firefox-Erweiterung Tails Export, die eine weitere (Greasemonkey) benötigt. Sind beide installiert, ergeben sich bei entsprechend kodierten XHTML-Dokumenten Darstellungen wie in den Abbildungen 2 und 3 (nächste Seite). Seiten, die Mikroformate enthalten, bewirken, dass die Statuszeile ein aus drei Vierecken bestehendes Symbol enthält (siehe Abb. 3), auf das man klicken muss, um die Ausgabe im Sidebar zu erhalten.
Ein Klick auf „export“ bewirkt bei hCard und hCalendar die Ausgabe der Daten im zugehörigen Format (vCard, vCalendar). Per Copy & Paste in eine Datei geschrieben, kann man sie ins Adressbuch beziehungsweise den Kalender importieren. Allerdings funktioniert das nicht immer automatisch schon beim Klick. Zwar exportiert Tails Export unter Windows Adressen ins Adressbuch, aber keine Veranstaltungsdaten. Unter Linux und Mac OS X lässt sich das Werkzeug entgegen der Ankündigung ebenfalls benutzen, aber nie ohne händisches Copy & Paste - was aus Sicherheitsgründen nicht unbedingt verkehrt ist :-).
Wozu das alles gut sein soll/kann
Viele weitere Mikroformate sind in Arbeit, darunter solche, die anders als die bisher gezeigten nicht nur mit class arbeiten. xFolk etwa (s. Listing 3), das als Format fĂĽr gemeinschaftliche Bookmark-Sammlungen (social bookmarking) gedacht ist. Im Attribut class stehen Werte, die strukturierenden Charakter haben: taggedlink, description und meta. Ein per xfolkentry klassifiziertes Element (es muss kein div sein) bezieht sich immer auf einen und nur einen Link, den die Klasse taggedlink bezeichnet. Die Beschreibung ist optional.
Listing 3: xfolk-Eintrag
<div class="xfolkentry">
<div>
<a class="taggedlink" href="http://www.ix.de/woauchimmer/">
Mikroformate bringen mich nicht um
</a>
</div>
<div class="description">
1 kleine Anstrengung, mehr ist nicht nötig, um
Mikroformate in die eigenen Webdokumente einzubauen...
</div>
<div class="meta">
zu
<a rel="tag" href="/tags/card/">hCard</a>
<a rel="tag" href="/tags/calendar/">hCalendar</a>
</div>
</div>
Da das wichtige eben der Link ist, kommt das Attribut rel zum Tragen - und damit eins der elementaren Mikroformate (Rel-Tag). rel="tag" schlägt gewissermaßen den Bogen von den Mikroformaten zum anfangs erwähnten Tagging, denn es ist dazu gedacht, Webdokumente oder Teile von ihnen (Blog-Posts) zu „taggen“. Sowohl Tails Export als auch das Blogging-Werkzeug Serendipity haben xFolk schon implementiert.
Welche Bedeutung Mikroformate künftig haben können, lässt sich schwer abschätzen. Da sie mit XHTML einen vorhandenen und etablierten Standard nutzen, ohne ihn zu modifizieren, schaden die kleinen Formate auf jeden Fall nicht. Wie das „große“ RDF handelt es sich allerdings bei ihnen ebenfalls um Standards, die - anders als Tagging - vorschreiben, wie Webautoren ihre Dokumente auszeichnen müssen, damit die Maschinen sie verstehen können - allerdings nicht so komplex und vor allem nicht verordnet.
Literatur
[1] Tim Berners-Lee et al.; The Semantic Web; Scientific American 05/01, S. 34
[2] Micah Dubinko; What Are Microformats
[3] Micah Dubinko; Microformats and Web 2.0
In der aktuellen Printausgabe der iX 11/06 finden Sie auĂźerdem einen ausfĂĽhrlichen Artikel zum Thema "Web 2.0 versus Semantic Web". (hb)