Gmail unterstützt seit ein paar Tagen auch Embedded JSON-LD… So ne Art „JSON Version von RDF“ für HTML-Dokumente:

<script type="application/ld+json">
{
  "@context": "http://json-ld.org/contexts/person.jsonld",
  "@id": "http://dbpedia.org/resource/John_Lennon",
  "name": "John Lennon",
  "born": "1940-10-09",
  "spouse": "http://dbpedia.org/resource/Cynthia_Lennon"
}
</script>

Embedded JSON? Wirklich? Und warum? Weil’s geht?

Neben Microformats, Microdata, RDFa, eRDF, OpenGraph Protocol und Twitter Cards jetzt also auch noch JSON? Super Idee!

Microdata – wie Microformats bloß besser… (Teil 1): über abbr-design-pattern, value-class-pattern und Meta-Informationen

Knapp zwei Jahre nach dem ersten Teil, komme ich endlich mal zu Nummer 2 🙂 Nach den ganzen Diskussionen um schema.org und Microformats V2 ist es mal wieder an der Zeit, am Image von Microdata zu arbeiten.

Namenskollisionen und Namespaces

class-Attribute werden in erster Linie zum Gestalten (CSS) und für JS benutzt! Laut „The State of Web Development 2010“ setzen nur knapp 35% aller Befragten Microformats ein, das heißt mehr als 65% haben keine Ahnung von Mikroformaten oder setzten sie nicht ein. Das kann zu zwei Problemen führen:

  1. Microformats werden oft durch Re-Designs zerstört. Facebook ist wohl das prominenteste Beispiel, nach einem Re-Design verschwanden alle Microformats von den Profilseiten.
  2. Es werden fälschlicherweise class-Attribute interpretiert die gar nichts mit Microformats zu tun haben nur zufällig den passenden Namen tragen. Anfällige Klassen sind z.B. url (hCard), photo (hCard), summary (hReview), description (hReview) oder author (hAtom).

Um diesem Problem Herr zu werden denkt die Community Tantek Çelik über eine Art Namespace-Erweiterung nach.

Microformats

So könnten Microformtas demnächst folgendermaßen aussehen:

<div class="h-card">
 <span class="p-fn">Max Mustermann</span>
</div>

Dabei steht:

  • „h-*“ für die root-names, z.B. „h-card“, „h-event“, „h-entry“
  • und „p-*“ für „simple“ (Text) Properties, z.B. „p-fn“, „p-summary“

…und es gibt noch eine reihe weiterer Prefixes. Das ist zwar schön und gut und verhindert sicherlich einen Großteil der Namenskollisionen und man kann seinen Entwicklern sicherlich auch eintrichtern, alle x- Klassen in ruhe zu lassen… aber man mach damit jegliche Semantik kaputt. Nix mehr mit Plain Old Semantic HTML (POSH):

POSH encapsulates the best practices of using semantic HTML to author web pages. Semantic HTML is the subset of HTML 4.01 (or XHTML 1.0) elements and attributes that are semantic rather than presentational. The best way to learn and understand POSH is to do it.

…und semantic class names:

Think about why you want something to look a certain way, and not really about how it should look. Looks can always change, but the reasons for giving something a look stay the same.

Außerdem verkompliziert man das, jetzt noch so einfach zu nutzende, Format unnötig. Wann ist etwas eine id (i-*) oder eine Nummer (n-*) und was ist mit Attributen, die sowohl aus auch sein können?

Microdata

Der Microdata Teil ist relativ schnell abgehandelt… Durch die Trennung von Semantik und Design kommt es bei Mircodata per se zu keinen Kollisionen:

<div itemtype="http://microformats.org/profile/hcard" itemscope>
 <span itemprop="fn">Max Mustermann</span>
</div>

Informationen Referenzieren

Informationen stehen auf Webseiten nicht immer so nahe beieinander, so dass es oftmals schwer ist, alle Daten mit einem HTML Attribut zu umschließen.

Microformats

Je komplizierter das Format oder der Anwendungsfall, desto mehr stößt man mit Microformats an die grenzen des machbaren. HTML 4 bietet keinerlei Mechanismen, den oben angesprochenen Problem zu lösen, deshalb greift die Microformtas-Community zu einer recht Kreativen Lösung: dem include-pattern.

<div class="vcard">
 <a class="include" href="#author-name"></a>
</div>

<span class="fn n" id="author-name">Max Mustermann</span>

oder:

<div class="vcard">
 <object class="include" data="#author-name"></object>
</div>

<span class="fn n" id="author-name">Max Mustermann</span>

Nette Idee mit etlichen Unschönheiten:

  • Leere HTML-Elemente
  • Zweckentfremdung von Object- bzw. Link-Element
  • Die Nutzung von <object /> führt zu einigen Problem bei einigen Versionen von Internet Explorer, Safari und Firefox

Microdata

Microdata löst das Problem mit dem itemref-Attribut:

<div itemscope
     itemtype="http://microformats.org/profile/hcard"
     itemref="author-name">
 ...
</div>

<span itemprop="fn n" id="author-name">Max Mustermann</span>

Viel mehr gibt es dazu eigentlich nicht zu sagen 🙂

Fazit

Als Fazit, passt hier sehr gut ein Satz den ich auch als Fazit im aktuellen Webstandards-Magazin verwende:

Microformats sind und bleiben Plain Old Semantic HTML und man sollte auch in Zukunft keinesfalls darauf verzichten sie einzusetzen, selbst mit dem Risiko einer fehlerhaften Implementierungen oder Namenskollisionen, „erzieht“ die Nutzung von Microformats einen jeden Webentwickler dazu „schönen“ und „sprechenden“ HTML-Code zu schreiben.

…um HTML-Code aber wirklich maschinenlesbar zu machen, wird es Zeit auf Microdata und RDFa zu setzen. Microformats haben den Weg für bessere und native Lösungen geebnet und haben weiterhin ihre Daseinsberechtigung aber man sollte nicht mehr als dem Format machen, als es leisten kann.

Pfefferles OpenWeb: Microformats V2

Seit Freitag gibt es wieder eine neue Ausgabe des Webstandard-Magazins, mit dem Fokus auf Communities.

…als hätte ich es gerochen, passt das Thema meiner Kolumne recht gut zu den aktuellen Diskussionen um Microformats, Microdata, RDFa und schema.org. Noch genauer: Es geht um die Zukunft der Microformtats.

Dieses Jahr feierten die Microformats ihren 8. Geburtstag. In diesen 8 Jahren haben sich mehr als zwei Milliarden hCards im Yahoo! Index angesammelt und die Mikroformate dominieren mit 94% Googles rich snippets (im Verhältnis zu RDFa und Microdata). Trotz allem sind Microformats eine Übergangslösung und es wird Zeit für einen richtigen Standard!

Wie sieht die Zukunft der Microformats aus, was ist ist geplant, machen Microformats neben Microdata und RDFa überhaupt noch Sinn usw.

Also los… kaufen! Zack, zack!

Google, Yahoo! und Bing haben heute angekündigt, dass sie beim Thema Websemantics zukünftig zusammen arbeiten werden und sich auf einen gemeinsamen Standard einigen wollen (wie vorher auch bei den Sitemaps, robots.txt, um.).

Auf schema.org findet man eine Übersicht alle Schemas die die Suchgiganten in Zukunft unterstützen werden:

This site provides a collection of schemas, i.e., html tags, that webmasters can use to markup their pages in ways recognized by major search providers. Search engines including Bing, Google and Yahoo! rely on this markup to improve the display of search results, making it easier for people to find the right web pages.

Was mich besonders freut: Die Schemas basieren alle auf Microdata und wer meinen Blog regelmäßig verfolgt wird wissen, dass ich das Format sehr schätze! Hier ein Beispiel wie eine Person mit dem neuen Schema aussieht:

<div itemscope itemtype="http://schema.org/Person">
  <span itemprop="name">Jane Doe</span>
  <img src="janedoe.jpg" itemprop="image" />
</div>

Soweit so gut, aber… es werden WIEDER einmal weder bestehende Microformats, noch RDFa Schemas auf Microdata portiert, was dazu führt dass mir spontan 5 unterschiedliche Formate einfallen um Personen zu beschreiben: hCard (Microformats), Data-Vocabulary (RDFa- und Microdata-Beschreibung genutzt von den rich-snippets), FoaF (RDFa), vCard (RDFa), schema.org (Microdata).

Die Microformats-Community hat von Anfang an eines richtig gemacht: Es gibt nur eine Stelle an der Microformats definiert werden und man muss einen relativ langwierigen Prozess befolgen um ein neues Format zu definieren. Das führt zwar dazu dass es bisher nur eine handvoll Schemas veröffentlicht wurden, diese aber wohl definiert sind und in der Regel auf bisherigen Formaten aufbauen. Die hCard ist beispielsweise ein 1:1 Abbild der vCard.

Schema.org ist zwar eine ganz nette Idee aber man hat leider versäumt sich mit der Microformats-, RDFa-, RDF- Community zusammenzusetzen und einen gemeinsamen Konsens zu finden!

Wäre folgendes Beispiel so viel komplizierter?

<div itemscope itemtype="http://microformats.org/profile/hcard">
  <span itemprop="fn">Jane Doe</span>
  <img src="janedoe.jpg" itemprop="photo" />
</div>

…oder das?

<div itemscope itemtype="http://www.w3.org/2006/vcard/ns">
  <span itemprop="fn">Jane Doe</span>
  <img src="janedoe.jpg" itemprop="photo" />
</div>

Das Format ist letztendlich Geschmackssache… der eine mag lieber die einfachen Microformats, der andere steht mehr auf RDFa und ich bevorzuge Microdata, man sollte sich aber endlich auf ein einheitliches Schema einigen!

Yahoo! zählt knapp zwei Milliarden hCards in ihrem Index und trotzdem diktiert man Webseitenbetreibern etwas komplett anderes auf…

Own Your Data

Am Tag als delicious starb machten sich alle (zu recht) sorgen um ihre Bookmarks und es entfachte eine kleine Diskussion unter Geeks, wo denn die eigenen Daten am sichersten wären: Jeremy Keith verwaltet seine Bookmarks nun selbst und schickt nur Kopien an delicious & Co., Tantek Celik tweetet auf seinem eigenen Webspace und sendet nur eine Kopie an Twitter, …
Früher hatte man seine Daten in Sozialen Netzen und benutzte APIs um sie in die Sidebar des eigenen Blogs zu bekommen und jetzt läuft alles andersrum?

HTML is the new HTML5, W3C Introduces an HTML5 Logo

HTML5 heißt jetzt nur noch HTML und zur Feier der Umbenennung spendiert das W3C ein neues HTML5 Logo 🙂 Großartig!

Eight HTML5 Drafts Updated

…außerdem wurden die Working Drafts von RDFa 1.1 und Microdata angepasst.

2011 Steering Committee Election Results

Die DataPortability Org. hat die neuen Chefs gewählt und bekannt gegeben… Mr. Topf is leider raus 🙁

OpenID-Plugin für Safari
Safari 5 (mit Addon-Support) ist gerade mal eine starken Woche alt und schon gibt es die erste OpenID-Erweiterung.

OpenID-Plugin für Safari

Das Plugin kann zwar nicht viel mehr als OpenID-Felder automatisch auszufüllen, aber wie heißt es so schön… immerhin mal ein Anfang.

» openid.safariextension

{ „protocol“:“pubsubhubbub“, „format“:“json“ }
Monica Keller (Facebook) und Martin Atkins (Six Apart) arbeiten an einer JSON-Variante von pubsubhubbub. Besonders Facebook, deren OpenGraph-API ausschließlich auf der JavaScript serialisierung basiert, scheint großes Interesse an dem offenen Push-Protokoll zu haben. Schön dass der Internet-Gigant sich die Mühe gibt, einen Standard voran zu treiben, anstatt ein eigenes Format zu entwickeln.

» Spec: PubSubHubbub for JSON
» Talk: PubSubHubbub for JSON

HTML5 Microdata
Ein weiterer ausführlicher Artikel über Microdata mit ein paar schönen Anwendungsfällen.

» HTML5 Microdata: Welcome to the Machine

Ich hab vor Ewigkeiten mal einen Themenschwerpunkt: Websemantics im SELFHTML-Wiki angelegt… Das Wiki wäre doch der perfekte Platz für DIE deutsche Microformats/RDFa/Microdata-Standardreferenz! (wenn nicht bei SELFHTML wo dann?)

Vielleicht hat ja jemand Lust mir bei der Befüllung etwas zu helfen (ich hab meine eigene freie Zeit etwas überschätzt)? Eventuell spendet ja auch jemand einen schon fertigen Artikel/Blogbeitrag den wir als Basis nehmen könnten.

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>

(via Benjamin Nowack)

Ich hab mal meine Microdata-Artikel an die letzten Änderungen angepasst:

Falls jemand noch einen Fehler entdeckt… sagt mir bitte bescheid!

Ich hoffe ich komme demnächst auch mal zu „Microdata – wie Microformats bloß besser… (Teil 2)“.

Als Erstes mal ein frohes, neues Jahr euch allen… Ich hoffe ihr habt die Feiertage gut überstanden 🙂

Es war die letzten Monate ja etwas ruhiger hier, aber das soll sich jetzt wieder ändern (erster guter Vorsatz fürs neue Jahr!).

Resumé

Microformats

So, jetzt aber erstmal ein kleiner Rückblick auf 2009… ich hatte mir ja vorgenommen mich wieder etwas mehr mit Microformats und dem lowercase semantic web zu beschäftigen. Das hat, glaube ich, ganz gut hin gehauen:

… wenn ich euch eine Empfehlung geben dürfte:

Microformats Top: Ich bin seit Ende letzten Jahres ein stolzer Microformateer 🙂
Microformats Flop: Das Angekündigte „The weekly microformat“ ging total in die Hose und ich habe nicht mal einen Artikel dazu veröffentlicht 🙁 (vielleicht klappt’s ja dieses Jahr)

APML

APML kam letztes Jahr leider nicht so gut weg, es gibt zwar einen OpenWeb-Podcast zu dem Thema und eine erste Version von NoisePress (leider noch keinen Blogpost) aber das war es auch schon.

Vorsatz für 2010

Was ich dieses Jahr so alles vor habe:

  • Bei APML tut sich gerade wieder eine ganze Menge und die neue Version (1.0) wird nochmal komplett überarbeitet. Ich habe mir vorgenommen ein wenig bei der Weiterentwicklung von APML zu helfen und das NoisePress mal zu Ende zu führen.
  • Ich hoffe auch in 2010 die OpenWeb Kolumne für das Webstandards-Magazin weiter führen zu dürfen (die nächste Ausgabe ist zumindest schon gesichert 😉 ).
  • Neue, offene Standards die ich ganz spannend finde und mit denen ich mich dieses Jahr sicherlich etwas mehr beschäftigen werde, sind das Salmon Protokoll, Webfinger, XRD und OAuth WRAP.

Außerdem natürlich fleißig weiter OpenWeb podcasten und alle erwähnten offenen Standards in yiid einbauen 😉