Parlando sempre di Social Network, di LifeStream e via dicendo…

Proviamo qualche piccola idea sul Semantic Web, tanto per cambiare .)

Partiamo da un caso pratico, utile per fare degli step su alcuni argomenti che vorrei affrontare nel prossimo futuro…
Anche per iniziare a sondare qualche reale vantaggio derivato dall’utilizzo di tali tecnologie.

Se una persona volesse capire che account utilizzo online, come Matteo Brunati ad esempio.

Usando Google

Con Google potrebbe fare due cose:

Ora, tra l’altro, nella prima ipotesi non e’ detto che venga fuori del tutto un quadro veriterio e completo, perche’ non sono informazioni che io posso controllare….
Sono informazioni derivate, se ho omonimi o qualcuno che si spaccia per me, non e’ certo un quadro attendibile.

Per quanto riguarda la seconda voce, emerge una pagina, ClaimID.net, che e’ la versione con i microformati del mio profilo.
E’ sempre un account, ma e’ un ponte tra il livello senza struttura e il livello totalmente semantico, che e’ il profilo FOAF.

Una specie di passaggio intermedio, che dona piu’ struttura alle informazioni libere che Google indicizza tutti i giorni.

( al momento la terza voce e’ solo semantica, quindi per le macchine: ne faro’ una versione umana di mia scelta a breve )

Se invece avessi un modo di definire in forma comprensibile dalle macchine, e rappresentabile anche in forma piu’ umana, tutto questo? E quindi di poter permettere risposte piu’ attendibili alle domande che poniamo?

Usando il Semantic Web: vediamo cosa cambia…

Vecchi post in tema di FOAF,giusto per introdurre il discorso e vedere un piccolo percorso temporale della tematica qui affrontata…
-> FOAF e XFN: differenze
-> LinkedIn, FOAF e Google: considerazioni…
-> Identita’ semantiche, Linked Data e Social Graph…

Tornando a noi,partiamo da un motore di interrogazione semantica:
-> Redland Rasqal RDF Query Demonstration

Mettiamo nel campo dell’URI, questo valore:

http://dagoneye.it/data/FOAF_Profile.rdf

E nel campo della query, se non vogliamo eseguire quella predefinita ( fate una prova in ogni caso, non fa male .) )

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?account
WHERE {
?x rdf:type foaf:OnlineAccount .
?x foaf:accountName ?account
}
ORDER BY ?account

Cosa sto domandando? Semplicemente, quali account online sono associati alla mia persona.
Il dilemma che avevo posto ad inizio post.
Per chi e’ pratico di SQL, non sara’ un problema capire cosa si sta facendo…

La differenza sta nel dove lo sto chiedendo: RDF e’ un modello che si basa su triple di informazione, tipo queste:

?x rdf:type foaf:OnlineAccount .

Un certo soggetto ha una proprieta’ tipo con il valore foaf:OnlineAccount, cioe’ secondo il vocabolario FOAF, e’ un soggetto che identifica un Account OnLine.

?x foaf:accountName ?account

Oltre a questo, il medesimo soggetto ?x, ha una proprieta’ foaf:accountName, dove il valore non e’ conosciuto, e che e’ un parametro che invece vogliamo scovare, ed usare come ordinamento dei risultati.

Eseguendo la query, si vedranno i miei account ordinati per nome…

Non male, no? Prossima volta qualcosa di piu’ complesso…
[ _Aggiungendo anche il profilo derivante da SIOC_ - ne avevo parlato tempo fa ]
Pero’ intanto puo’ risultare utile come spunto.

Come un amico ha detto tempo fa,** si passa dal sono fortunato, al sono sicuro**,no? .)