Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Cos'è e a cosa serve il Web Semantico

Un'introduzione al Web Semantico: le premesse e le soluzioni disponibili oggi
Un'introduzione al Web Semantico: le premesse e le soluzioni disponibili oggi
Link copiato negli appunti

Cominciamo dalle cose ovvie

Internet è un insieme di testi, un insieme molto vasto di documenti che descrivono dei contenuti. Per la verità questa non è una grossa novità, vasti corpi di testi sono esistiti fin dall'antichità (biblioteche). La novità di Internet sta nel fatto che questi testi possono richiamarsi l'uno con l'altro, in modo molto rapido. Il link è l'elemento nuovo che l' HTML ha saputo proporre.

Ai suoi esordi Internet era costituito unicamente di testi e indici ipertestuali di testi. Col tempo le cose si sono evolute. Sono arrivati i motori di ricerca, che tentano di accedere direttamente al contenuto dei testi, e le strutture dei siti sono state differite su più livelli (database, script cgi, fogli di stile). Per un utente comunque questo rimane quasi del tutto nascosto.

L'utente si orienta nel web grazie a due cose: la sua esperienza di navigazione e la capacità di evocazione che possono avere parole o espressioni chiave. L'esperienza è un aspetto molto importante di cui tutti ci serviamo, impariamo che determinati contenuti si possono reperire sotto determinati portali, impariamo che l'aspetto di un sito può dirci qualche cosa sul genere (formale o informale) delle informazioni. L'esperienza tuttavia è una cosa che viene spontaneamente da sé ma non è molto legata ad aspetti tecnici, al codice e alle applicazioni che costituiscono un sito. L'altro aspetto, quello delle parole chiave, è più legato al codice.

Legami semantici

La capacità espressiva di un collegamento automatico dipende dalla applicazione che lo gestisce. Cercando in un motore di ricerca un utente inserisce una certa espressione nella convinzione che quella espressione saprà individuare nel modo più efficace possibile il contenuto cercato. Scegliendo tra le voci di una barra di navigazione, di nuovo l'utente dovrà stabilire quale espressione si adatti meglio a individuare, come titolo generico, un contenuto. Nel primo caso l'efficacia dell'operazione dipende dagli algoritmi che il motore di ricerca utilizza per estrarre contenuti. Nel secondo caso l'efficacia dipende da chi ha pensato i contenuti del sito e se quei contenuti si prestano ad essere indicizzati secondo una gerarchia ad albero. In entrambe le situazioni l'utente si affida ad una espressione unica che ha un rapporto molto generico col contenuto effettivamente ricercato.

Nel caso del motore di ricerca qualsiasi query attivata è sempre soggetta al rischio della ambiguità. Cercando la parola "albero" potrei trovare contenuti legati all'informatica alla botanica alla nautica. Nel caso di una barra di navigazione la genericità è data dal tipico meccanismo dell'indice, che sotto un unico titolo deve raccogliere un gruppo spesso vario di contenuti. Insomma la morale che ne vorremmo trarre è che Internet è un insieme di testi collegati tra loro ma questi collegamenti sono deboli, nel senso che sono troppo generici e vaghi. I collegamenti che intendiamo non sono quelli sintattici, cioè legati al funzionamento di un qualche codice di programmazione (questi sono piuttosto solidi, un link localizza infatti una risorsa attraverso un URL univoco, anche se si pone comunque il problema dell'aggiornamento degli URL) quanto piuttosto quelli legati alla capacità di descrivere il significato di un collegamento. Oltre a portare in un determinato luogo un collegamento dovrebbe descrivere il luogo verso cui porta. La parola giusta per parlare di questa funzione è capacità semantica. Semantico è un meccanismo che sa predire, il valore della sua azione.

Attivare i collegami semantici

Ma come è possibile scrivere del codice in grado di compiere operazioni semantiche? In fin dei conti un codice è una serie regole sintattiche, il codice non ha altra capacità che seguire i passi di una regola descritta dal programmatore. Se ci si pensa bene però, si usano abitualmente strutture con un valore semantico, anche se minimo.

Se metto online un archivio bibliografico posso facilmente organizzare un DB nel quale inserire in tre tabelle diverse autori, articoli e libri. A questo punto posso permettere all'utente di cercare tra gli autori o solo quelli che hanno pubblicato articoli, oppure solo quelli che hanno pubblicato libri. In questo modo l'utente non cerca informazioni utilizzando come chiave un unico concetto (autore) e nemmeno due concetti affiancati (es autore + libro), cadendo così nelle imprecisioni del motore di ricerca. L'utente può formulare una precisa relazione esistente tra un autore e il tipo della sua pubblicazione. Questo per un motivo molto semplice: chi ha inserito informazione nel sito ha stabilito una struttura per organizzarla. Da una parte ha inserito gli autori, da una parte le loro opere, dividendole in due categorie, i libri e gli articoli. Nel contesto di quella applicazione succede perciò che un autore possa essere individuato esprimendo il vincolo che abbia o meno pubblicato articoli. Si sa inoltre che se non ha pubblicato articoli allora ha pubblicato libri.

Tutto questo dipende dallo schema che si è deciso di utilizzare per archiviare quelle informazioni. Lo schema (si pensi ad uno schema XML) è un insieme di regole che stabiliscono come debbano essere organizzati i dati. Siccome uno schema definisce anche relazioni fra i dati ecco che è in grado di esprimere vincoli che legano o oppongono due classi di dati.

L'idea del web semantico nasce quindi semplicemente estendendo l'idea di utilizzare schemi per descrivere domini di informazione. Un dominio deve essere descritto da un particolare schema. Dei metadati devono mappare i dati rispetto a classi, o concetti, di questo schema di dominio. In questo modo posso disporre di strutture in grado di descrivere e automatizzare i collegamenti esistenti fra i dati. Riassumendo un'ultima volta il web semantico deve comporsi di tre livelli fondamentali. Al livello più basso abbiamo i dati, i metadati riportano questi dati ai concetti di uno schema, nello schema (spesso chiamato ontologia) si esprimono le relazioni fra concetti, che diventano classi di dati.

La proposta del web semantico

Quando si parla di web semantico si intende proporre un web che possieda delle strutture di collegamenti più espressive di quelle attuali. Il termine 'Semantic Web' è stato proposto per la prima volta nel 2001 da Tim Berners Lee. Da allora il termine è stato associato all'idea di un web nel quale agiscano agenti intelligenti: applicazioni in grado di comprendere il significato dei testi presenti sulla rete e perciò in grado di guidare l'utente direttamente verso l'informazione ricercata, oppure di sostituirsi a lui nello svolgimento di alcune operazioni. Un agente intelligente dovrebbe essere una applicazione in grado di svolgere operazioni come la prenotazione di un aereo per Parigi con arrivo in centro città prima delle 13.00. Il tutto spulciando informazioni da siti che definiscono l'aeroporto di Parigi in modo diverso (Paris, Charles de Gaule, Orly) e deducendo, senza che sia specificato nella query, che un arrivo per le 13.00 in centro implichi un arrivo in aeroporto diverso a seconda dell'aeroporto effettivamente selezionato.

Questa proposta ha affascinato molto la comunità informatica. Il W3C ha attivato immediatamente un gruppo di lavoro. Le università hanno aperto numerosi programmi di ricerca legati a questi temi. Si sono imposti subito degli standard, il più famoso dei quali è certamente RDFs, un linguaggio in sintassi XML per definire e esprimere ontologie. Tuttavia è facile esprimere una critica alla effettiva validità di questo progetto.

Quanto tempo servirebbe per mappare tutto il web su delle ontologie? In più, qualora anche questo fosse fatto, come far comunicare fra loro ontologie diverse? Evidente è infatti che una ontologia avrà validità solo per il dominio per la quale è stata progettata.

A che punto si è arrivati veramente

Insomma è lecito chiedersi fino a che punto il progetto sia effettivamente valido e applicabile, soprattutto per iniziative di piccola o media dimensione. Diamo quindi uno sguardo a quanto realizzato fino ad ora. Per fare questo converrà farsi effettivamente un giro sulla rete.

Il prof Hendler ha messo in rete quella che ha definito la prima pagina appartenente al web semantico. All'indirizzo http://ra.crema.unimi.it potete interrogare un prototipo di navigatore semantico (avverto che è un prototipo ed ha pochissimi dati inseriti!) realizzato dall'università di Milano e dall'ISUFI di Lecce.

In questi due esempi le ontologie sono utilizzate per definire dei metadati che descrivano dei testi. L'utilizzo delle ontologie permette di recuperare documenti esprimendo query complesse. Si parte da concetti semplici, ma si può raffinare la ricerca esprimendo vere e proprie asserzioni composte da un soggetto un predicato ed un oggetto. Si può insomma fare una richiesta del tipo: aziende (soggetto) che hanno come servizio (predicato) la fornitura di scarpe (oggetto). Questo è radicalmente diverso dalla interrogazione che si potrebbe fare ad un motore di ricerca. In questo caso si potrebbero proporre tutti e tre i concetti di azienda di servizio e di scarpe, ma non potremo mai esprimere il legame fra di essi. Da qui derivano le imprecisioni del motore di ricerca.

L'uso di ontologie nella navigazione di basi di dati è certamente interessante ma sarebbe molto riduttivo pensare a questo come al loro ruolo chiave. Le ontologie sono innanzi tutto degli schemi e come tali hanno lo scopo di organizzare un dominio. Questo può essere molto utile nei processi produttivi di una comunità ristretta. Una informazione solitamente non ha valore solo in una fase del processo produttivo, la stessa informazione può essere utile in situazioni diverse. Più spesso non è l'intera unità informativa ad essere recuperabile ma una parte di essa. Questo richiede uno schema di organizzazione dei dati in grado di suddividere il dominio in tutte le classi di oggetti che hanno un ruolo nei suoi processi. Qui si sta entrando nel campo del Knowledge Management. Le ontologie diventeranno probabilmente lo strumento più potente a disposizione delle politiche di Knowledge Management. E se queste politiche intendono servirsi dei Internet come infrastruttura i linguaggi del web semantico diventano una risorsa applicativa indispensabile.

Come esempio di quanto detto si può portare il campo dell'e-learning. Almeno un paio di grosse applicazioni sono state sviluppate secondo una struttura ontologica: si veda http://edutella.jxta.org e http://www.merlot.org.In questo campo organizzare una piattaforma secondo strutture ontologie diventa estremamente produttivo. Un corso di meccanica può contenere una parte relativa alla meccanica dei fluidi che può essere ripresa, e poi ampliata, in un corso di idraulica. Se i vari materiali didattici sono organizzati in unità (learning objects) ogni singola unità può essere collegata alle altre e ricomposta in un nuovo corso.

Pensare al web come ad una infrastruttura regolata nel suo complesso da una struttura semantica significa disegnare una prospettiva incerta, quantomeno nel medio periodo. Diverso è il discorso se parliamo dell'uso di schemi semantici all'interno di architetture legate ad un dominio ben definito, quindi a servizio di comunità ristrette di utenti, orientati ad uno scopo preciso. Qui le prospettive immediate sono visibili più chiaramente. Per un sguardo generale sulle possibili applicazioni si può cliccare questo collegamento http://www.netcrucible.com/semantic.html. Per approfondire con una lettura il tema proponiamo invece questo volume: Maedche, Alexander, Ontology learning for the semantic Web, Kluwer Academic Publishers, 2002.

Speriamo che questo sguardo d'insieme abbia chiarito le idee. Coi prossimi articoli entreremo nello specifico dei linguaggi e delle applicazioni per un web semantico. Non mancheranno i link e le indicazioni bibliografiche. Arrivederci alla prossima ;-)

Ti consigliamo anche