Microformats

ottobre 20, 2008

Dalla pagina “What are microformats?” del wiki di microformats.org, si trovano molte possibili definizioni di microformats.
Per citarne alcune:

“Designed for humans first and machines second, microformats are a set of simple, open data formats built upon existing and widely adopted standards.”

Definizione corrente di microformats, Dan Cederholm

“Microformats are simple codes that you can use to identify specific kinds of data, like people or events, in your webpages.”

Chris Messina

“Microformats are a way of adding simple markup to human-readable data items such as events, contact details or locations, on web pages, so that the information in them can be extracted by software and indexed, searched for, saved, cross-referenced or combined.

Andy Mabbett

“Microformats are the way to publish and share information on the web with higher fidelity.”

“[…]microformats are carefully designed (X)HTML class names that extend the semantics of (X)HTML and enable authors to publish higher semantic fidelity content such as people, events, reviews, etc.”

“A microformat is way of adding more meaning to web pages beyond normal HTML headings and paragraphs, so you can indicate mentions of people, companies, events, reviews, tags, etc.

Tantek Çelik

Microformats are a way of attaching extra meaning to the information published on a web page. This extra semantic richness works alongside the information already presented, and can be used for the benefit of people and computers. This is mostly done through adding special pre-defined names to the class attribute of existing XHTML markup.

Drew McLellan

Prendendo spunto da queste definizioni, possiamo quindi dire che i microformats sono dei particolari formati che vengono utilizzati per dare un significato (semantico) ai dati “human-oriented” che si trovano sulle pagine web (eventi, persone, links, etc…), in modo tale da renderli “machine-readable“, riusabili e facilmente condivisibili. Questo processo è ottenuto tramite l’uso di specifici class names XHTML.
Esempi di microformats sono hCard, hCalendar, hResume, XFN.
Il microformat hCard, ad esempio, è un formato standard per rappresentare informazioni riguardanti persone, organizzazioni o aziende, che sfrutta elementi del semantic HTML in modo da poter incorporare i dati delle vCard nelle pagine web. hCard parte proprio dagli elementi dello standard vCard e li utilizza come class names per inserire in pagine (X)HTML i valori degli oggetti vCard. Le proprietà di una hCard sono rappresentate dagli elementi identificati con certi class names, che sono quelli definiti dallo standard, ovvero:

  • vcard (identifica l’inizio di una hCard, è l’elemento root)
  • fn (formatted name)
  • n
  • nickname, sort-string
  • url, email, tel
  • adr, label
  • geo (latitude, longitude), tz
  • photo, logo, sound, bday
  • title, role, org
  • category, note
  • class, key, mailer, uid, rev

La mia hCard (creata in questo caso con hCard Creator) con alcune delle mie informazioni personali (Nome, Cognome, Città, Stato, Telefono, email, foto, url) potrebbe essere:

1. <div id="hcard-Simone-Dezaiacomo" class="vcard">
2.   <img style="float:left; margin-right:4px"
        src="http://www.esempio.com/miafoto.jpg" alt="photo of "
        class="photo"/>
3.   <a class="url fn" href="https://semanticweb30.wordpress.com">
                       Simone Dezaiacomo</a>
4.   <a class="email" href="mailto:indirizzoemail@gmail.com">
                       indirizzoemail@gmail.com</a>
5.   <div class="adr">
6.    <span class="locality">Bologna</span>
      ,
7.    <span class="region">Italy</span>
8.   </div>
9.   <div class="tel">+39 0512020202020</div>
10. </div>
(in rosso sono evidenziati i class names)

Questo codice, inserito nella propria pagina web, fa sì che le informazioni personali siano “semantiche” e formattate con il microformat hCard, rendendo i dati “machine-readable”, riusabili e facilmente condivisibili poichè sono identificati da class names standardizzati.

I Design Principles del semantic XHTML sono:

  • riutilizzare le strutture (nomi, oggetti, proprietà, valori, tipi, ecc…) già standardizzate nelle RFC (nel caso delle hCard, viene riutilizzato lo standard delle vCard)
  • usare class names basati sui nomi delle strutture originali dello standard (ad esempio quello che nelle vCard è BEGIN:VCARD, nelle hCard è class=”vcard”, così come FN diventa class=”fn”, ecc…)
  • Alcuni elementi possiedono sotto-proprietà (locality è una sotto-proprietà di adr). Queste sotto-proprietà devono essere annidate rispetto agli principali cui sono riferiti (vedi righe 5-8 dell’esempio sopra)
  • Se il formato dell’elemento corrispondente alla struttura standard originale è troppo lungo o scomodo, è possibile usare <abbr> e inserire il contenuto dell’elemento come valore dell’attributo title invece che come contenuto dell’elemento. (Per rappresentare la sotto-proprietà region – riga 7 – in formato abbreviato, avremmo potuto usare <abbr class=”region” title=”Italy”>IT</abbr>)

Per quanto riguarda il microformat hCalendar, il concetto e i design principles sono gli stessi di hCard, ma permette, seguendo la struttura definita dallo standard iCalendar, di rappresentare eventi e calendari incorporabili in pagine web e presentanti contenuto semantico riusabile e “machine-readable”.

Fonti:
http://microformats.org/
http://microformats.org/wiki/what-are-microformats
http://microformats.org/wiki/hcard
http://microformats.org/wiki/hcalendar
http://microformats.org/wiki/hresume
http://www.gmpg.org/xfn/