Microformats, een stap verder in semantiek!?

Door Arjan op 8 september 2007

Trefwoorden: .

microformats Microformats, een stap verder in semantiek!?Een tijdje geleden schreef ik al een blog over semantiek en daar wil ik nu wat op voortborduren. Semantiek kun je namelijk op meerdere manieren bekijken. Zoals een goed artikel over semantiek op microformatique.com al beschrijft kan de semantiek, zoals benoemd in mijn eerste blogpost, gezien worden als ‘built-in’ semantiek. Het is de semantiek die al in de HTML zelf zit gebakken. Deze ingebouwde semantiek kan verder weer worden onderverdeeld in drie categorieën.

  • Structuur: De semantiek van deze elementen is vooral van toepassing op de structuur binnen een document. Voorbeelden hiervan zijn div, span, headings (<hx>), lijsten (<ul> en <ol>) en paragrafen (<p>).
  • Content: Deze elementen zeggen voornamelijk iets over de content binnen de elementen en niet zozeer over de structuur. Voorbeelden hiervan zijn abbr, address of code.
  • Retorisch: De semantiek van deze elementen zegt niet zozeer iets over de structuur of de content van een document, maar zegt meer iets over het element zelf. Voorbeelden hiervan zijn em of strong.

Als we dan nu naar het concept ‘microformats‘ kijken, dan kunnen we eigenlijk wel stellen dat deze voornamelijk een uitbreiding is op het content gedeelte van de semantiek, oftewel: microformats beschrijven de data binnen een document.

Het idee achter microformats

Ik zal hier niet alle details van microformats uitleggen, maar even een korte introductie is wel op zijn plaats. Om het in één zin te zeggen:

Microformats zijn een manier om data in een HTML document te beschrijven op basis van een set afspraken binnen de bestaande syntax van HTML.

Om dit te illustreren even een tweetal voorbeelden voor het beschrijven van een visitekaartje (of contactinformatie) en een agenda item. Dit kan door middel van de hCard en de hCalendar (gebaseerd op de iCalendar standaard).

hCard:


<div class="vcard"> <div class="fn org">Netters</div> <div class="adr"> <div class="street-address">Rozenlaantje 123</div> <div>                                 <span class="postal-code">1234 AB</span>                                 <span class="locality">Lutjebroek</span>                         </div> <div class="country-name">NL</div> </div> <div>Phone: <span class="tel">+31 (123) 456 789</span></div> <div>Email: <span class="email">info@netters.nl</span></div> </div> </div>

hCalendar:


<div class="vevent">         <a class="url" href="http://www.web2con.com/">http://www.web2con.com/</a>         <span class="summary">Web 2.0 Conference</span>:         <abbr class="dtstart" title="2007-10-05">October 5</abbr>-         <abbr class="dtend" title="2007-10-20">19</abbr>,         at the <span class="location">Argent Hotel, San Francisco, CA</span> </div>

Zoals je ziet zijn de verschillende onderdelen van het adres en het agenda item beschreven door verschillende class attributen. Deze class attributen staan allemaal beschreven in de ‘property list’ van een bepaald microformat.

Uiteraard heb ik lang niet alles genoemd en er is nog veel meer mogelijk met microformats, maar daarvoor moet je de wiki maar eens doornemen.

Voordelen

Wat zijn nu dan eigenlijk de voordelen van microformats? Nou, net als bijna bij alles in de wereld is het handig als hetgeen waar je mee werkt gestandaardiseerd is, zodat je weet waar je aan toe bent. Natuurlijk, de huidige vorm van HTML is al goed beschreven en je kunt er een hoop mee, maar dekt het altijd de lading van de content die je ermee beschrijft? Bij mij niet in ieder geval. En met microformats heb je een goede stap in deze richting.

Daarbij is het natuurlijk handig als je met één druk op de knop de agenda items van een site in je Outlook of Google kalender kunt zetten of de visitekaartjes in je adresboek. En omdat de formaten vastliggen kunnen export-tools makkelijk geprogrammeerd worden.

Een derde voordeel zie ik in het zoeken. Want als bepaalde data op een vaste manier gestructureerd wordt dan kunnen zoekmachines daar op inspringen. Zo kun je veel makkelijker zoeken naar bepaalde events of contactgegevens.

Nadelen

Klinkt mooi allemaal, maar toch zitten er volgens mij ook wel wat nadelen aan microformats. Het zijn misschien niet de meeste grote nadelen, maar toch.

Want waar zijn we de laatste tijd (en nog steeds) nu vaak mee bezig als we praten over semantiek, standaarden en valid HTML? Juist, geen tagsoups meer en dat we af moeten van alle overbodige code. Vaak wordt ook bandbreedte (voor bijv. mobiele devices) als argument genoemd voor het gebruik van goede, valid HTML. Maar wat zien we nu bij microformats? Om alles wat je wilt beschrijven worden span, div of abbr elementen gebruikt. Dat is dus nogal een toename van de hoeveelheid code! Nu snap ik wel dat de toename van de code te verantwoorden is, maar je snapt mijn punt wel denk ik.

Daarbij heb ik ook mijn vraagtekens bij het gebruik van het abbr element. Het abbr element gebruik je doorgaans of afkortingen mee aan te duiden. Maar bij microformats wordt het bijvoorbeeld gebruikt om data mee te beschrijven, zodat er geen onduidelijkheid is over het formaat van een datum (5-12-2007 kan immer net zo goed 5 december als 12 mei zijn). Om daarin duidelijkheid te scheppen wordt gebruik gemaakt van de ISO codering voor datum en tijd. Maar is een andere (gestandaardiseerde) schrijfwijze van een datum dan wel een afkorting? Lijkt mij niet. Nu is er waarschijnlijk inderdaad geen beter bestaand HTML element te bedenken voor dit ‘probleem’, maar als we het toch over semantiek hebben dan moeten ‘we’ het ook wel goed aanpakken.

Conclusie

Concluderend kan ik wel zeggen dat ik, afgezien van de genoemde nadelen, erg blij ben met een idee als microformats en hoop dat dit ook echt gaat doorbreken.

Update: Mathieuk noemde het al, maar er zijn ook firefox plugins voor microformats. Een hele goede daarvan is operator. Hiermee krijg je een toolbar warmee je de beschikbare microformats op een pagina kunt exporteren naar allerlei gewenste formaten.

en


Je kunt een reactie, achterlaten of een trackback van uw eigen site.

5 Reacties op “Microformats, een stap verder in semantiek!?”

  1. mathieuk

    Microformats worden natuurlijk pas echt leuk als je ze ook nog ergens voor kunt gebruiken, direct vanuit de browser:

    - Voor Firefox zijn er 2 extensies:
    – Tails: https://addons.mozilla.org/nl/firefox/addon/2240
    – Operator: https://addons.mozilla.org/nl/firefox/addon/4106

    - Voor IE is er een bookmarklet: http://ajaxian.com/archives/ie-microformats-bookmarklet

    Reageer
  2. killerog

    Daarbij heb ik ook mijn vraagtekens bij het gebruik van het abbr element. Het abbr element gebruik je doorgaans of afkortingen mee aan te duiden.

    Maar 2007-10-05, zoals jij in je hCalendar gaf, is toch een afkorting voor 5 Oktober 2007?

    Reageer
  3. Arjan

    Daar ben ik het niet helemaal mee eens. Het is namelijk gewoon een ander format, een andere schrijfwijze. En dat vind ik geen afkorting. Een afkorting (waarvoor je het abbr element voor zou kunnen gebruiken) vind ik HTML, SEO of CSS.

    Reageer
  4. arjaneis

    De div en span elementen vindt ik niet erg structureel. Je brengt structuur aan met die andere (p, hX). div en span zijn loze elementen die ervoor zorgen dat jij bepaalde dingen kunt doen met je pagina, zoals er CSS aan verbinden.

    Jammer dat je zo ongelooflijk veel div en span elementen gebruikt in je codevoorbeelden. Je had kunnen denken aan een address element voor de hCard, met daarin strong voor je naam. Een lijst (ul, ol of dl) gebruik ik ook graag in mijn Microformats.

    Over je abbr element kan ik kort zijn, zie dit artikel van Tantek.

    Reageer
  5. Arjan

    Jammer dat je zo ongelooflijk veel div en span elementen gebruikt in je codevoorbeelden.

    Nou ja, het zijn niet echt mijn eigen voorbeelden, maar voorbeelden van de microformats site zelf. En het lijkt me dat zij wel weten hoe ze hun ‘product’ bedoelen. En daar ging mijn kritische noot dus ook over: dat ik ook vind dat er nogal veel (overbodige) markup wordt gebruikt.

    en wat het abbr element betreft: ik snap wel dat tantek zegt dat hij het abbr element voor dit probleem heeft ‘bedacht’, maar ik heb juist twijfels of dit het juiste element is hiervoor. Wellicht wel de best beschikbare, maar niet 100% de beste. Dus misschien dat er in HTML5 of XHTML2 iets beters voor komt.

    Reageer

Reageer!