Microformats, il lower-case semantic web /1

I microformats per fortuna non sono una rivoluzione, soltanto una
evoluzione. E una di quelle che servivano come il pane e l’acqua
quotidiani.

Uno dei dogmi più citati e meno seguiti dello sviluppo web odierno
è di usare il markup non solo come “involucro” di contenuti (o
peggio, come elemento grafico) ma come metadato in grado di
descrivere i contenuti stessi, sfruttando quindi le proprietà di
un linguaggio strutturale come XHTML per dotare il documento di
una semantica. In poche parole ciò significa usare i tag
appropriatamente in base al loro contenuto: il titolo del mio blog
sarà un tag h1, la lista dei miei libri favoriti sarà un tag li
all’interno di una lista ordinata o non, gli acronimi saranno
all’interno del tag acronym. Il buon vecchio Plain Old Semantic
HTML (da qui in poi POSH, per usare un acronimo caro agli autori
delle specifiche che stanno alla base dei microformats), condicio
sine qua non per definirsi buoni designer.

I microformats
sono “formati” da utilizzare nel proprio markup
nella strutturazione dei dati, piccoli chunk di codice XHTML che
portano i concetti del POSH all’estremo e sono atti a
rappresentare attraverso una tecnologia standard e standardizzata
informazioni estremamente comuni.

L’esigenza è nata nel 2003 dal guru del web
Tantek Çelik
che, coadiuvato da alcuni altri
guru ha rilasciato
il padre di tutti gli altri microformat: XFN, un modo per indicare
nel markup dei link il tipo di relazione tra il sito linkante ed
il sito linkato. Di lì in poi la storia dei microformats è andata
definendosi con standard quali hCard e hCalendar, attirando
l’attenzione di mostri
sacri
del
web.

Chi si è mai avventurato nel design di un sito tentando di fare le
cose per bene sa quanto è difficile dotare il proprio markup di
una semantica credibile, dall’utilizzo del giusto tag al dare il
giusto nome ad una classe; grazie ai microformats in moltissimi
casi non esiste più questo problema, basta seguire uno dei tanti
standard che isolano un determinato dominio (un articolo di blog,
un tag, un link ad un sito amico, una recensione, un evento) e ne
definiscono una struttura. I vantaggi chiaramente sono molteplici,
essendo formati definiti sono ugualmente leggibili dalle macchine
come lo sono dagli umani, aprendo un mondo di opportunità
nell’ormai affermato mondo del web interconnesso.

I principi che sostengono questo sforzo sono di straordinario
pragmatismo: essi infatti sono adattamenti a comportamenti o
standard esistenti e non tendono a definirne di nuovi. Ciò
significa lavorare su un dominio applicativo perfettamente chiaro
ed estremamente comune, senza inventarsi nulla e tanto meno
sentire il bisogno di definire il definibile. Ogni microformat
risolve un solo problema, è estremamente semplice sia da capire
che da implementare, è modulare e incoraggia lo sviluppo
decentralizzato.

Quest’ultimo punto è probabilmente il più interessante: è
incredibilmente difficile per una macchina dare un senso (e quindi
interpretare correttamente) le informazioni che il web contiene
solo attraverso il markup, senza analizzarne i contenuti. Un
microformat, invece, è semanticamente predefinito, quindi
interpretabile da una macchina.

Sperando di aver solleticato l’interesse dei più, un esempio è
d’obbligo. Questa è la mia hCard:

Mr. Nicholas George Wieland

ngw

Dec 19 1978

Zooppa.com CTO

Il primo elemento che salta immediatamente all’occhio è che è
normalissimo, chiarissimo, banalissimo XHTML: non c’è bisogno di
alcuna spiegazione o approfondimento per comprenderne il significato,
il markup è semanticamente cristallino.

Il div iniziale che contiene il resto dei dati viene chiamato
elemento root, ed è dotato di una classe vcard, fatto piuttosto
strambo visto che il nome del formato è hCard. Il motivo di questa
scelta è che esiste già uno standard per rappresentare questo
genere di informazione (vCard appunto,
RFC 2426,
da cui vengono
presi anche attributi come fn e bday), e il team che ha definito
il microformat ne ha giustamente tenuto conto; riutilizzare
standard preesistenti è un pattern ricorrente ed estremamente
importante visto che non solo permette di riutilizzare il lavoro
fatto da altri e ormai consolidato nel corso degli anni, ma
ovviamente aiuta molto anche nella conversione dal microformat ad
una vCard da inserire in Outlook o nella Rubrica Indirizzi di OS
X.

Altra caratteristica fondamentale è la flessibilità dei formati:
ad esempio una hCard è una hCard nel momento in cui l’elemento
root ha una classe vCard e una proprietà obbligatoria fn
contenente un identificativo (full name), che può indicare il nome
di una persona come il nome di una organizzazione. Il seguente, ad
esempio, è un microformat perfettamente valido:


   ngw 

Qui fn contiene semplicemente il mio nick, e, per convenzione, il
dato verrà trattato come un nickname – del resto è impossibile
avere un nome formato da una singola parola, o quantomeno è
improbabile che sia sufficiente per identificare correttamente ed
univocamente un individuo. E’ fuor di dubbio che la precedente
hCard sia poco utile come “contatto”, ma esplicita
sufficientemente la flessibilità dei microformats.

Torniamo alla mia hCard completa. La parte più importante è
sicuramente il link al mio blog, grazie al quale mi è possibile
illustrare un’altra caratteristica fondamentale di questa
tecnologia, ovvero il “class design pattern”. Tale link, infatti,
ha ben 3 classi: fn, obbligatoria per ogni hCard e che indica il
nome completo dell’entità, n, utilizzata per il nome strutturato
(nome: Nicholas, cognome: Wieland ecc.), e url, il sito personale.
Nel mio caso il link al mio blog contiene le informazioni che
compongono n e fn, per cui indico il link come url, e il contenuto
del link come fn e n, in questo caso semanticamente
corrispondenti.

L’ultima caratteristica fondamentale da affrontare sono inclusione
e modularità, estendendo la mia hCard in modo da farle
visualizzare anche il mio indirizzo di casa:

Mr. Nicholas George Wieland

ngw

Dec 19 1978

Zooppa.com CTO
Home
Via Campino, 1
Mantova 46040 Italy

adr altro non è che un diverso microformat, atto a rappresentare
indirizzi, per cui non ho dovuto far altro che includere un
microformat in un altro microformat.

E’ fondamentale notare che il risultato finale è ottimo markup,
dalla semantica chiara e con abbastanza hook da risultare
perfettamente personalizzabile con un foglio di stile.

Per controllare che la mia hCard sia stata creata senza errori,
non devo far altro che installarmi un plugin per Firefox
sviluppato da Micheal Kaply di IBM:
Operator.
Questo fantastico
plugin estrae un discreto insieme di microformats da una pagina e
li utilizza in vari modi, oltre a controllarne la validità. Nel
caso di una hCard, Operator permette di esportare il contatto (nel
mio caso – OS X – in Rubrica, che usa vCard come formato), oppure
aggiungerlo a Yahoo! Contacts. Nel caso di adr, permette di
visualizzare la locazione su Google o Yahoo! Maps.

Figura 1

Figura 2

Questo è solamente un esempio tra i tanti che avrei potuto
scegliere, come precedentemente detto i microformats non sono
pochi, e ogni anno nuove specifiche escono dallo stato di draft
per aggiungersi a quelle già esistenti. Certo, difficilmente ci
troveremo mai a parlare nell’ordine delle centinaia, questa
tecnologia nasce innanzitutto per semplificare la vita e non per
complicarla, ma senza dubbio man mano che si affermeranno nuovi
modi per rappresentare i dati, modi ritenuti in qualche modo
comuni, avere un microformat pronto all’uso sarà un’arma in più
nelle mani di noi sviluppatori, una tecnologia abbastanza semplice
(personalmente la trovo addirittura *banale*) da poter essere
utilizzata senza enorme cambiamento sui progetti esistenti, ma che
però si dimostra utile ed effettiva quando sfruttata. Appunto, il
lowercase semantic web, un Web semantico non composto da pomposi
acronimi e tecnologie che richiedono la riscrittura di mezzo web
per essere sfruttate, ma un “contenitore” di standard assodati
usati in modo particolarmente intelligente.

Per ora è tutto, la seconda e ultima parte riguarderà le varie
applicazioni che hanno già implementato questi formati,
analizzando i motivi per cui essere un early adopter, in tempi in
cui si inizia a parlare di web 3.0, è vantaggioso.

Comments

  1. Mi ritrovo questa introduzione dopo averci dato un’occhiata per un progettino personale che vorrei portare avanti, quindi trovo ottimo qualche articolo a riguardo.

    Ora, in sto periodo sempre di più si sente parlare di RDF (ed OWL) come futuro del web semantico, ma le applicazioni sono ancora a livello sperimentale/universitario. Mi viene quindi naturale chiedermi se i microformat possono fare da ponte, o se in qualche modo possano facilitare la comunicazione con queste nuove tecnologie.

    Nel sito dei microformats ho visto parlare di RDFa, che in parte prende ispirazione dai microformats, e mi sembra un primo passo intermedio, ma chiedo a chi ne sa qualcosina in più ;-)

  2. Matteo says:

    Limpido ! Più chiaro di così non si poteva.

  3. unwiredbrain says:

    Nonostante siamo ancora allo stadio introduttivo, la serie promette bene: articolo molto interessante e stimolante.
    Mi piacerebbe che non si fermasse solo alla seconda puntata…

    Gradirei si parlasse un po’ di più (e non solo qui su StackTrace) di microformati: sono davvero il futuro del web.

    Piccolo appunto: oltre i nomi, avrei aggiunto anche i link ai rispettivi siti dei mostri sacri citati e qualche progetto importante a cui hanno preso parte, giusto per far capire al lettore con chi e cosa ha a che fare… ;-)

    Allsopp, John – http://johnfallsopp.com
    Çelik, Tantek – http://tantek.com
    Cederholm, Dan – http://simplebits.com
    Meyer, Eric – http://meyerweb.com
    Mullenweg, Matt – http://ma.tt
    Pilgrim, Mark – http://diveintomark.org
    Powazek, Derek – http://powazek.com
    Suda, Brian – http://suda.co.uk

  4. La definizione di “lower case semantic web” sottintende appunto una contrapposizione con i vari RDF e OWL, una tecnologia che può già essere usata con profitto (anche se chiaramente agli albori) ma che certamente ha tutti i numeri per essere adottata più velocemente e meno traumaticamente di RDF.
    RDFa è un concetto estremamente simile (che, se non erro, usa anche Dublin Core per i metadati), ma onestamente lo trovo meno interessante se confrontato all’ambiente brioso e costantemente in evoluzione dei MF.
    A titolo completamente personale, i MF mi sembrano la via giusta per iniziare a far comunicare dati “comuni” da una applicazione all’altra come per rappresentare le informazioni più comuni.
    Molto probabilmente non un ponte quindi (ma, onestamente, chi ha mai detto che RDF è La Strada Da Seguire ? :) ), ma una via alternativa per avere dei benefici velocemente e con uno sforzo tuttavia trascurabile.
    Questo nonostante i meriti oggettivi di RDF (vedi: il progetto SPARQL).

  5. unwiredbrain says:

    Ehi, ma il mio commento che fine ha fatto!? :-s

  6. @unwiredbrain: la presenza di molti link ha reso il tuo commento una vittima dell’antispam. Ora è pubblicato. :)

  7. @unwiredbrain: la seconda parte verterà sull’utilizzo che per ora viene fatto dei MF. Se hai idee (che non siano presentare i MF uno ad uno ;) mandaci una bella mail.

  8. Sicuramente secondo me saranno la tecnlogia di transizione verso il Semantic Web (se mai verra’ attuato); se non altro se tanti siti esporranno dati strutturati con microformati sara’ molto piu’ semplice importarli automaticamente in una base di conoscenza RDF….

    Sul tema a me ha colpito molto questo:
    http://www.trueknowledge.com/
    e’ in beta privata, io mi sono iscritto e sono beta tester, ma se non avete voglia di iscrivervi guardate semplicemente il video in homepage…

    Loro non credo usino RDF per rappresentare la conoscenza, ma, al di la’ di questo dettaglio, eventuali dati espressi tramite microformati noti potrebbero sicuramente essere importati in trueknowledge in modo automatico…

    Ad esempio i template di wikipedia sono praticamente un microformato….per capire quanto sono importanti vedere come sono stati utilizzati da dbpedia.org

  9. visto che mi ritrovo a lavorare proprio sull’integrazione dei microformat in un motore di ricerca per il sem web, aggiungo a quello che dice flux:

    I microformat sono una rapresentazione dei dati che può essere integrata facilmente in una base di conoscenza basata su rdf, basta definire dei mapping (es: dire che “fn” in hCard va letto come “foaf:name”).
    Questi mapping esistono già, spesso con tanto di traduttori già pronti (es: trasformazioni xslt) quindi confermo, più microformat = più semweb :)

Policy per i commenti: Apprezzo moltissimo i vostri commenti, critiche incluse. Per evitare spam e troll, e far rimanere il discorso civile, i commenti sono moderati e prontamente approvati poco dopo il loro invio.