XFN – XHTML Friends Network

ottobre 25, 2008

XFN è un microformat che viene utilizzato per rappresentare le relazioni tra le persone (piuttosto che le persone in sè), definendole come valori dell’attributo rel di un hyperlink. In questo modo è possibile mostrare le relazioni che, ad esempio, l’autore di un blog ha con gli autori dei blog che sono presenti nel suo blogroll (ad esempio quali sono amici, quali ha fisicamente incontrato, quali sono colleghi o collaboratori, ecc…).

Facciamo un esempio (fonte http://www.gmpg.org/xfn/intro):
Prendiamo 5 persone (Ingrid, Josh, Kat, Mary  e Nick) con delle relazioni specifiche tra di loro. Focalizziamoci sul punto di vista di Ingrid:

  • Ingrid
    • lavora con Mary
    • è amica di Mary e Josh
    • conoscente di Kat
    • ha incontrato fisicamente tutti tranne Nick

In un caso di questo tipo, il i link di Ingrid (cioè le relazioni rappresentate dal suo punto di vista) sarebbero:

<a href="http://josh.example.com/" rel="friend met">Josh</a>
<a href="http://kat.example.com/" rel="met acquaintance">Kat</a>
<a href="http://mary.example.com/" rel="co-worker friend met">Mary</a>
<a href="http://nick.example.com/">Nick</a>

Vengono quindi usati un insieme di valori specifici (nel nostro caso friend, met, acquaintance, co-worker) come valori dell’attributo rel del link; questi valori sono riconosciuti dai crawler XFN che analizzano i link presenti nelle pagine e ricavano reti di relazioni tra i soggetti interessati.

Per rendere la propria lista di link o il proprio blogroll XFN-friendly:

  • modificare i link inserendo (come abbiamo visto nell’esempio precedente) l’attributo rel e specificarne i valori facendo riferimento alla tabella che segue
XFN quick reference
relationship category XFN values
friendship (at most one): friend acquaintance contact
physical: met
professional: co-worker colleague
geographical (at most one): co-resident neighbor
family (at most one): child parent sibling spouse kin
romantic: muse crush date sweetheart
identity: me

[Per dettagli sui significati dei valori XFN fare riferimento a http://www.gmpg.org/xfn/1]

  • Inserire nella head della pagina l’attributo profile, in questo modo

<head profile="http://gmpg.org/xfn/11">

  • Inserire il badge XFN-Friendly con il codice:

<a href="http://gmpg.org/xfn"> <img src="xfn-btn.gif" alt="XFN Friendly" /> </a>

  • Aggiungere il proprio sito al motore di ricerca XFN rubhub

Le caratteristiche chiave di XFN, come abbiamo avuto modo di vedere, sono:

  • semplicità, si basa anche su un insieme di valori molto ridotto ma che permette comunque di esprimere una grande quantità di relazioni interpersonali.
  • funzionamento decentralizzato, in quanto sono gli autori stessi a definire e creare i link
  • riutilizzo dell’infrastruttura web già esistente, non è stata creata una nuova sintassi XML-based (vedi RDF), bensì ci si basa sull’XHTML, riutilizzando l’attributo rel estendendolo alle relazioni tra le persone (era nato per rappresentare le relazioni tra i documenti)
  • machine-readable (basandosi su un una struttura ed un insieme di valori standard) ma anche human-readable (associando stili CSS ai link è possibile dare anche un aspetto visivo diverso per i vari link, ad esempio scrivendo in grassetto i link agli amici, in sottolineato i link ai colleghi)

Il tool XFN Dumper permette di visualizzare i link XFN presenti nella pagina web che si sta visitando. Per utilizzarlo basta semplicemente inserire tra i preferiti lo script JavaScript che trovate in fondo a questa pagina e farvi click una volta raggiunta la pagina web di cui si vuole visualizzare la lista dei valori XFN.

WordPress supporta XFN. Nell’inserimento dei link che si riferiscono a persone, si ha la possibilità di specificare i valori XFN per l’attributo rel del link in modo da definire la propria relazione con la persona in questione.

Fonti:
http://www.gmpg.org/xfn/
http://rubhub.com/main/add


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/