Semanticherie
Pubblicato il 24-05-2010 da Sergio LongoniLeggevo qualche giorno fa su Tagliablog un articolo dai toni accesi che illustrava un nuovo motore di ricerca semantico con interfaccia naturale prodotto in italia.
Semplicity, questo è il nome dell’Anti Google presentato a Working Capital (il video qua sopra).
I commenti al post sono abbastanza acidi e critici, lo ammetto.
Ho fatto anche io un paio di test.
Le domande testate dai commentatori di di Tagli sono state estremamente specifiche come “idraulico a Roma”, o vaghe come “colore del cielo” quindi ho provato con domande semplici e secche.
- Chi è l’autore de L’Amleto? (e centinaia di varianti tra le quali “chi è autore di Amleto?”)
> Mi sembra del tutto inadeguato dire… L’AUTORE L’AMLETO. Con una ricerca su tale soggetto potresti ottenere le informazioni che desideri…
Ok ritento
- Come si chiama il bassista dei Beatles?
> …
- Chi suona il basso nei Beatles?
> Vuoi sapere chi mi dice tutto quello che so?
con un po’ di combinazioni ho ottenuto questa risposta “pre registrata”
> Il tempo dei Beatles è finito per sempre, ma qualche nostalgico c’è ancora.
Bene: pertinente ma assolutamente inutile.
A mio parere un motore semantico nel tentativo di rispondere alla prima domanda (autore dell’amleto) dovrebbe recuperare da una fonte standardizzata e affidabile come dbpedia e alla voce dbpprop:writer leggere e seguire il riferimento a e quindi recuperare dbpprop:name e valutare in qualche modo se riportare “William Shakespeare” o “Shakespeare, William” (direi il primo verificando l’assenza della virgola).
A quel punto il programma sarebbe in grado di dirmi tutto quello che è contenuto nel database a proposito dell’autore dell’Amleto se facessi la domanda del tipo “quando è nato?” appunto il programma dovrebbe “intuire” che il soggetto è l’ultima risposta fornita che semanticamente corrisponde ad un set preciso di informazioni organizzate tra le quali è contenuto anche la data di nascita e morte.
Sarò all’antica, ma per me l’organizzazione relazionale e gerarchica dei dati è il punto di partenza per un sistema semantico: la macchina da sola può analizzare un testo, non può leggerlo e non può soprattutto comprenderlo.
Nell’analisi potrà cercare di fare emergere delle relazioni tra i dati che si tradurranno in una forma standard relazionale. Analizzando un testo con scritto “Umberto Eco è l’autore de Il nome della rosa” l’algoritmo dovrebbe tradurla in qualcosa del genere
<rdf :RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
</rdf>
<rdf : Description rdf:about:"http://it.wikipedia.org/wiki/Il_nome_della_rosa">
<dc :title>Il Nome della Rosa</dc>
<dc :creator >Umberto Eco</dc>
</rdf>
e quindi associare un riferimento univoco ad Unberto Eco e al Nome della rosa
In questo modo quando analizzando altri dati trovo “Il pendolo di Foucault” scopro che l’autore è Umberto Eco, verifico che Umberto Eco è un autore e quindi gli assegno anche questo libro.
In questo modo il motore potrà rispondere alla domanda “quali libri ha scritto Umberto Eco?” con “Umberto Eco ha scritto Il nome della Rosa e il Pendolo di Foucault” e non “Vuoi sapere che cosa ha scritto Omero?”
Ora, capisco che fare tutto questo – con una interfaccia naturale – non è per nulla semplice, ma con tutto il rispetto per il lavoro svolto, allo stato attuale Semplicity mi pare un chatter bot denso di risposte sagaci ma pre-impostate che occasionalmente effettua ricerche su bing ritornando risultati discutibili.
Allo stato attuale dati organizzati in maniera precisa per rispondere in maniera naturale alle domande ce ne sono pochini: certamente ci sono degli standard, (l’esempio qua sopra usa Resource Description Framework e Dublin Core), ma non è ancora chiaro come trasformare quello che abbiamo adesso (informazioni a stento leggibili dagli umani) in quello che servirà al web semantico (informazioni leggibili dalle macchine).
L’HTML5 potrà risolvere tutti i nostri problemi semantici? No! I nostri problemi sono causati dalle persone che si ostinano ad usare le tabelle per creare le interfacce web e che soprattutto non usano elementi come Title, h1 e h2 in modo corretto per creare un contesto alle pagine (ok questa pagina si chiama Semanticherie e non ha h2 nel testo, quindi non provate a cavarci informazioni
).
Fintanto che i “web designer” si ostineranno a non creare i propri documenti con un minimo di occhio per la semantica sarà impossibile cavare dei dati sensati dal web.
O almeno più sensati di quelli che ritorna attualmente Google…
