Die RDFa Community hat es geschafft: Microdata ist seit einigen Monaten kein fester Bestandteil mehr von HTML5! Man verpasst damit leider die einmalige Chance, RDFa und Microformats als festen Bestandteil von HTML zu veröffentlichen und damit die größtmögliche Verbreitung zu erreichen… keine Erweiterungen… keine Hacks… reines HTML!

Warum ich so an der Microdata Idee festhalte? Frei nach der Microformats Ideologie: „Paving the cow paths“ sollte man sich bei der Entwicklung eines neuen Standards hauptsächlich am Nutzerverhalten orientieren: Wenn es für ein Problem noch keinen Standard gab, wie hat man sich bisher beholfen?

Yahoo!s Search-Monkey meint: mit Microformats!

…und ich kann mich nur wiederholen:

Microdata ist für mich die gelungene Weiterentwicklung der Microformats-Idee unter Berücksichtigung von RDFa und prinzipiell lassen sich auch beide Standards mit Microdata umsetzen.

Naja… falls sich keine der oben genannten Semantiken durchsetzen sollte, freue ich mich schon auf folgendes:

<div itemscope=""
     itemtype="http://microformats.org/profile/hcard" 
     xmlns:vCard="http://www.w3.org/2006/vcard/ns#"   
     about="http://www.example.com" class="vcard">
  <span itemprop="fn" property="vCard:FN" class="fn">
    Max Mustermann
  </span>
</div>Code-Sprache: HTML, XML (xml)

(via Benjamin Nowack)

Endlich denkt beim Thema „Usability“ auch mal jemand an die Entwickler 🙂

Google hat über die letzten Wochen eine Usability-Studie zu Microdata durchgeführt und die Spezifikation wurde auch gleich entsprechend der Ergebnisse angepasst.

<address itemscope itemtype="http://microformats.org/profile/hcard">
 <strong itemprop="fn">Alfred Person</strong>
 <span itemprop="adr" itemscope>
  <span itemprop="street-address">1600 Amphitheatre Parkway</span> <br>
  <span itemprop="street-address">Building 43, Second Floor</span> <br>
  <span itemprop="locality">Mountain View</span>,
  <span itemprop="region">CA</span> <span itemprop="postal-code">94043</span>
 </span>
</address>Code-Sprache: HTML, XML (xml)

Die Änderungen:

  • Aus item wird itemscope.
  • Der Typ wird über itemtype und nicht mehr über item bzw. itemscope angegeben.
  • Das Attribut itemid wurde eingeführt, um z.B. auf ISBN-Nummer zu verweisen itemid="urn:isbn:0-330-34032-8".

Über den neuen HTML-Tag <itemref /> (alternativ: <itemfor />) werde ich im zweiten Teil von „Microdata – wie Microformats bloß besser…“ eingehen (zum ersten Teil).

Jetzt muss ich nur noch meine alten Artikel zu Microdata anpassen… das hat man nun davon, wenn man über Drafts berichtet 😉

Der Inhalt wurde an die neusten Änderungen der Microdata-Spezifikation angepasst. Letztes Update 30.01.2010. Microdata – wie Microformats bloß besser… (Teil 2): über „Namenskollisionen und Namespaces“ und „Informationen Referenzieren“

Wie schon erwähnt, vereint Microdata die Vorzüge von RDFa und Microformats in einem Standard… aber nicht nur das, Microdata (in Verbindung mit HTML5) bietet auch einige schicke Lösungen für diverse Microformats-Problemchen.

Das abbr-design-pattern oder das value-class-pattern

Microformats:

Das abbr-design-pattern ist bisher wohl das umstrittenste Pattern im Microformats-Wiki. Grund für die Kritik an dem Pattern ist die etwas unorthodoxe Verwendung des <abbr> Tags um maschinenlesbare Meta-Informationen bereit zu stellen.

<div class="vevent">
  <abbr class="dtstart" title="2007-10-05">October 5</abbr>
  ...
</div>Code-Sprache: HTML, XML (xml)

Eine erste Alternative aus der Microformats-Community ist das value-class-pattern, das zwar das Accessibility-Problem „behebt“ aber noch lange keine Perfekte Lösung bietet.

<div class="vevent">
  <span class='dtstart'>
    <span class='value-title' title='2007-10-05'> </span>
    October 5
  </span>
  ...
</div>Code-Sprache: HTML, XML (xml)

Der HTML-Code wird durch weitere Elemente unnötig aufgeblasen und das Pattern basiert auf teilweise leeren Elementen.

Microdata/HTML5:

In HTML5 gibt es dagegen ein spezielles Tag um Zeit und Datum sowohl user als auch maschinenlesbar zu machen.

<div itemscope
  itemtype="http://microformats.org/profile/hcalendar">
  <time itemprop="dtstart" datetime="2007-10-05">October 5</time>
  ...
</div>Code-Sprache: HTML, XML (xml)

Reine Meta-Informationen

Microformats:

Eigentlich spricht es gegen die Prinzipien der Microformats-Idee, reine Metadaten zu verwenden:

Visible data = more accurate data. By designing for humans first and making the data presentable (thus viewed and verified by humans), the data is inevitably more accurate, not only to begin with (as errors are easily/quickly noticed by those viewing the pages/sites), but over time as well; in that changes are noticed, and if data becomes out-of-date or obsolete, that’s more likely to be noticed as well. This is in direct contrast to „side files“ and invisible data like that contained in <meta> tags.
Tantek Çelik

…aber GEO-Daten sind z.B. Informationen die der Benutzer nicht unbedingt sehen muss.

<div class="geo">
 <span class="latitude">37.386013</span>
 <span class="longitude">-122.082932</span>
</div>Code-Sprache: HTML, XML (xml)

Microdata/HTML5:

In HTML5 gibt es für dieses Problem eine recht schicke Lösung: Laut der Spezifikation sind <meta />-Tags im kompletten Quellcode (auch im body) erlaubt.

<div itemscope 
 itemtype="http://microformats.org/profile/hcard#geo">
 <meta itemprop="latitude" content="37.386013" />
 <meta itemprop="longitude" content="-122.082932" />
</div>Code-Sprache: HTML, XML (xml)

Fazit

Selbst wenn sich Microdata (item und itemprop) nicht durchsetzen sollte, sind <meta> und <time> schon ein echter „Segen“ für die Microformats-Community 🙂

Im zweiten Teil nehm‘ ich mir das include-pattern und das Problem der möglichen NamensKollisionen vor. Microdata – wie Microformats bloß besser… (Teil 2): über „Namenskollisionen und Namespaces“ und „Informationen Referenzieren“

In einem kürzlich veröffentlichten Interview für das Web Standards Project (kurz WaSP) hat Ian Hickson (Editor der HTML5 Spezifikation) die Hoffnung RDFa würde auch von HTML5 unterstützt werden, endgültig zu nichte gemacht.

Auf die Frage, wie es denn mit Microformats/RDFa in HTML5 aussehe antwortet Hickson:

Microformats is natively supported in HTML5, just like it was in HTML 4, because Microformats use the built-in extension mechanisms of HTML.

We considered RDFa long and hard (in fact this is an issue that’s a hot topic right now), but at the end of the day, while some people really like it, I don’t think it strikes the right balance between power and ease of authoring. For example, it uses namespaces and prefixes, which by and large confuse authors to no end. Just recently though I proposed something of a compromise which takes some of RDFa’s better ideas and puts them into HTML 5, so hopefully that will take care of the main needs that caused people to invent RDFa. We’ll see.

Die erwähnte Alternative (die ich mir gerade zu Gemühte führe) lautet übrigens Microdata, welche RDFa so sehr ähnelt, dass man eigentlich auch gleich RDFa hätte einsetzen können… Schade!

Naja, nicht wirklich aber immerhin hat es RDFa bis dato nicht in die HTML5 Spezifikation geschafft. Es gibt zwar einen Milestone

The HTML WG is encouraged to provide a mechanism to permit independently developed vocabularies such as Internationalization Tag Set (ITS), Ruby, and RDFa to be mixed into HTML documents.

…aber wer weiß wie lange das noch dauert. Das heißt wohl, dass die Microformats noch eine gewisse Zeit lang als Übergangslösung her halten müssen. Aber das ist ne andere Geschichte…

Eigentlich wollte ich auf zwei HTML5 – Elemente eingehen, die eine schicke Alternative zu den bisherigen (in vielen Microformats verwendeten) abbr-design-pattern bietet.

Der <time />-Tag

Das time Element ermöglicht das kennzeichnen eines Datums in z.B. Blogposts o.Ä.

The primary use cases for these elements are for marking up publication dates e.g. in blog entries, and for marking event dates in hCalendar markup.

Also:

<time datetime="2006-09-23">a Saturday</time>Code-Sprache: HTML, XML (xml)

statt:

<abbr title="2006-09-23">a Saturday</abbr>Code-Sprache: HTML, XML (xml)

Ein hCalendar könnte dann so aussehen:

<div class="vevent">
  <span class="summary">event title</span>
  <time datetime="2006-09-23" class="dtstart dtend">a Saturday</time>
</div>Code-Sprache: HTML, XML (xml)

Custom data attributes (data-)

Ein custom data attribute ist ein frei benutzbares Attribut um Elemente mit Metadaten anzureichern. Die einzige Vorgabe ist, dass es mit data- beginnen muss. Ein Beispiel:

<div class="monkey" data-arms="2"
     data-legs="2" data-race="chimp">
  Cheetah
</div>Code-Sprache: HTML, XML (xml)

Ideal auch als <abbr />-Ersatz bei z.B. dem Geo-Microformat.

Also:

<div class="geo" data-latitude="49.5483" data-longitude="8.6661">Weinheim</div>Code-Sprache: HTML, XML (xml)

statt:

<abbr class="geo" title="49.5483;8.6661">Weinheim</abbr>Code-Sprache: HTML, XML (xml)

Fazit

(X)HTML (egal ob XHTML2 mit RDFa oder X/HTML5) wird also definitiv ein semantisches Feuerwerk, ganz im Sinne von Tim Berners Lee…

Ich freu mich 🙂

Wer sich nicht zwischen RDFa und Microformats entscheiden kann und nicht sehr viel von dem Transformation-System GRDDL hält, kann seine HTML Inhalte natürlich auch mit beiden Formaten auszeichnen. Gerade die Profil- und Kalender-Semantiken bieten sich wegen ihrer Ähnlichkeit besonders an.

hCard und RDFa vCard:

<body xmlns:contact="http://www.w3.org/2001/vcard-rdf/3.0#">
  <div class="vcard">
    <span class="fn" property="contact:fn">Max Mustermann</span>
    <a class="email" rel="contact:email" href="mailto:max.mustermann@example.org">
      max.mustermann@example.org
    </a>
    <div class="adr" property="contact:adr">
      <span class="street-address" property="contact:street">Street</span>
      <span class="country-name" property="contact:country">Country</span>
    </div>
  </div>
</body>Code-Sprache: HTML, XML (xml)

…oder hCalendar und RDFa iCalendar:

<body xmlns:cal="http://www.w3.org/2002/12/cal/ical#">
  <div class="vevent" instanceof="cal:Vevent">
    <span class="summary" property="cal:summary">Ein Event</span>
    <span property="cal:dtstart" content="20070916T1600-0500">
      <abbr class="dtstart" title="20070916T1600-0500">
        September 16th at 4pm.
      </abbr>
    </span>
  </div>
</body>Code-Sprache: HTML, XML (xml)

Legende: Microformats bzw. RDFa

So, als nächstes schau ich mir mal die RDFa Attribute näher an…

Als ich in RDFa Basics meinte es sei nicht möglich RDFa in XHTML 1 zu verwenden, war das nicht die volle Wahrheit. Um das eigene Format so schnell wie möglich zu verbreiten hat der W3C einen Doctype für den Übergang veröffentlicht:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">Code-Sprache: HTML, XML (xml)

Außerdem wurde der W3C Markup Validation Service so angepasst, dass er XHTML/RDFa auch erkennt und entsprechend validiert.

RDFa valid oder RDFa valid

Also viel Spaß beim ausprobieren…

Quelle: RDFa.info

Nachdem ich nochmals nach Informationen über die beiden XHTML Formate (2.0 & 5.0) gesucht habe, bin ich auf einen ganz interessanten Artikel auf xhtml.com gestoßen, der recht ausführlich auf die Unterschiede der beiden Formate und ihre Vor- und Nachteile eingeht.
Außerdem gibt es Gespräche mit dem XHTML 2 Team (W3C) und dem X/HTML 5 Team (WHATWG).

Update 19.03.2007
Jens Meiert hat sich den oben genannten Atrikel von xhtml.com vorgenommen und ihn übersetzt. [via]

Jens Meiert vergleicht in einem Artikel HTML 5 mit XHTML 5, außerdem geht er auf MIME-Typen, Parsen, Syntax, Markup, Zeichenkodierung, Scripting und Style Sheets der neuen Formate ein und vergleicht sie (so weit möglich) mit HTML 4.01 und XHTML 1.x. Sehr interessant und auf alle Fälle lesenswert. [VIA]

Mein Problem (und nicht nur ich bin verwirrt) bei der ganzen Sache ist, dass ich bisher dachte die WHATWG würde sich um das Format HTML 5 kümmern und die W3C um XHTML 2. Jetzt lesen ich die WHATWG plant schon XHTML 5.

Ich hoffe dass das alles noch eine Ordnung findet und nicht etliche Standards parallel entwickelt werden wie z.B. bei Blu-ray und HD-DVD.

microformats.jpg

Wenn man in letzter Zeit durchs Internet surft, stolpert man immer häufiger über den Begriff „Microformats“ oder sieht das grüne Symbol auf Kontaktseiten. Aber was genau sind Microformats und für was sind sie gut?

Wikipedia meint dazu:

Ein Mikroformat ist ein Markup-Format zur semantischen Annotation von HTML oder XHTML. Mikroformat-Annotationen können leicht aus Webseiten extrahiert werden und machen weiteren Programmen (etwa Suchmaschinen) die Bedeutung des Seiteninhalts verständlich.

Das heißt, es werden vorhantenen Attributen (class, rel, rev) von (X)HTML verwendet um neue Formate zu speziellen Themen- oder Wissensgebieten zu erstellen.

Weiterlesen