|
Oltre
duemila anni di teorie e definizioni di
modelli per la descrizione dei dati e la
rappresentazione della conoscenza si
ripropongono oggi in un inedito contesto
tecnico, migrando nell'odierno dibattito
sul Semantic Web. Nessuna nuova teoria
rivoluzionaria dunque, ma l'applicazione
nel mondo informatico della Rete di
concetti esistenti, allo scopo di
sviluppare un ambiente che consenta di far
il miglior uso possibile delle risorse
disponibili sul Web.
Che cos'è il Semantic Web?
È l'obiettivo a lungo termine del
consorzio W3C
(World Wide Web Consortium),
la cui esigenza primaria è "rendere
comprensibile" alla macchina la
rappresentazione della conoscenza,
formalizzando aspetti semantici, di
contenuto, di molteplicità di documenti e
tipologie di documento reperibili in rete.
La nascita del progetto avviene nel 1994,
anno di fondazione del consorzio. Lo scopo
fu quello di porsi come guida del nascente
World Wide Web, sviluppando protocolli non
proprietari che ne permettessero
l'evoluzione lungo direttrici di
interoperabilità e futuribilità. Basti
pensare alla "guerra dei
browser" per capire cosa potesse
rappresentare un filo conduttore in un
momento in cui altro non si è fatto che
cercare strade opposte per il solo bisogno
di affermazione. Tag proprietari,
differenti interpretazioni e sviluppi di
un codice, l'HTML
(HyperText Markup Language), creato
per strutturare la rappresentazione di
dati condivisibili, sicuramente non per
determinare scompiglio e confusione. E di
ciò se ne pagano ancora oggi le
conseguenze.
L'architettura del Web Semantico è
rappresentata da una stratificazione a
più livelli (figura a lato), ciascuno dei
quali caratterizzato da un proprio
linguaggio. Questa struttura a lungo
andare porterà benefici in diversi campi,
dai motori di ricerca, all'e-commerce,
dalla gestione dei diritti di proprietà
intellettuale di pagine web, alla
realizzazione di complessi sistemi di
catalogazione dei contenuti, e a
quant'altri applicativi il cui significato
concettuale è basato su metadati, cioè
su dati che descrivono dati/documenti.
Come e perché lo si può scoprire solo
attraverso un'attenta analisi, anche dei
soli concetti essenziali, di questo
insieme di elementi tecnico/concettuali
che compongono il Semantic Web.

Unicode e Uri
Lo strato di base
Capita spesso che i linguaggi da noi
parlati utilizzino medesimi termini per
descrivere concetti/oggetti differenti.
Per un essere umano può risultare
semplice ciò che per un elaboratore
significa "conflitto".
L'identificazione univoca di oggetti,
proprietà, stati, predicati è
sostanziale per poter costruire codici di
comunicazione non ambigui, quindi per
descrivere la semantica delle risorse
disponibili, escludendo possibili
ambiguità nella denominazione degli
oggetti e delle relazioni che popoleranno
il Semantic Web.
La soluzione al suddetto "problema
dei nomi" sono gli URI (Universal
Resource Identifier), meccanismo
generale per identificare una specifica
risorsa. Da non confondersi con URL (Uniform
Resource Locator), sottoinsieme di URI
che identifica e inoltre localizza le
risorse sul web. In teoria gli URI
sopperiscono ad una mancanza degli URL
permettendo di rintracciare documenti e
risorse che possono cambiare locazione, il
problema attualmente più diffuso nel web.
Ciò è reso possibile in quanto gli URI
identificano una risorsa meta-informando.

Esiste però un'incognita ancor prima dei
nomi, ovvero il "problema degli
alfabeti". La soluzione proposta è UNICODE:
codifica di caratteri che associa ad
ognuno di essi un numero univoco e li
organizza in maniera tale da semplificare
lo sviluppo di software facilmente
traducibili e adattabili a qualunque
lingua del mondo. Ancora una volta la via
d'uscita da uno stato di assoluta
confusione (le centinaia di sistemi di
cifratura spesso in conflitto tra loro) è
la definizione di uno standard.
Unicode e URI sono alla base
dell'architettura del Semantic Web e come
tali offrono un servizio che gli strati
superiori estenderanno e completeranno. È
comprensibile come un errore nelle scelte
possa causare il fallimento di un progetto
certamente ambizioso. Nulla è stato però
lasciato al caso nel progetto del W3C,
ogni opzione è il risultato di un vasto
consenso atto a renderne lo sviluppo il
più fluido e naturale possibile.
Xml, XmlSchema, Namespace
Lo strato dei documenti strutturati
Il 1998 fu l'anno di definizione dell'XML
(eXstensible Markup Language), una
tecnologia che serve a creare linguaggi di
markup che descrivono i dati di qualsiasi
tipo e in modo strutturato. Formalmente lo
si può definire
"metalinguaggio", cioè un
sistema linguistico per mezzo del quale è
possibile analizzare i simboli e le
strutture del linguaggio ordinario,
consentendo così di creare dati
intelligenti. In sostanza è un
cambiamento radicale del modo di concepire
un documento Web, non più semplice schema
rappresentativo, ma entità significante e
facilmente interpretabile.


A
differenza del cugino HTML, XML si basa su
una sintassi estremamente rigorosa: ogni
elemento deve avere un tag iniziale e uno
finale e essere appropriamente annidato,
gli attributi devono essere racchiusi tra
virgolette, i caratteri maiuscoli
differiscono da quelli minuscoli (case
sensitive), ecc. Se il documento rispetta
tutte queste convenzioni è un documento
"well formed" (ben formato),
altrimenti un semplice file di testo non
interpretabile dagli strati successivi del
Semantic Web. La forza di questo
linguaggio sta proprio nel rigore e allo
stesso tempo nella semplicità di
interpretazione, presupposti che ne hanno
permesso la diffusione planetaria come
formato di trasmissione e archiviazione
dell'informazione, nonché come struttura
sintattica di base per la creazione di
altri linguaggi. Alcuni esempi di
linguaggi a base XML, e strettamente
legati ad esso, sono:
- XML
SCHEMA, per definire in
dettaglio la struttura di un documento XML.
- XSLT,
per trasformare XML in altri tipi di file
(HTML,PDF,ecc.).
- XSL-FO, per definire le regole di
formattazione di una trasformazione XSL.
- X-LINK, per definire link ipertestuali
avanzati nei documenti XML.
Xml, basato su un modello
ad albero di porfiriana
memoria, ossia gerarchia di concetti e
insieme di proprietà e attributi, è
insufficiente per descrivere la semantica
dei documenti in quanto non fornisce
regole di interpretazione delle relazioni
che intercorrono tra nodi e sottonodi. Lo
strato dei documenti strutturati si rivela
un buon impianto di sostegno, semplice,
potente, multiforme, ma è solo questo
niente e di più.
Si è parlato di alfabeti, di univocità,
di linguaggi e sintassi, ma una domanda
fondamentale vuole ancora risposta: chi
effettivamente non è in grado di
comprendere un documento Xml semplicemente
leggendolo? E una risposta c'è: la
macchina. Quale calcolatore elettronico
riuscirebbe a interpretare la realtà come
noi la conosciamo senza prima aver
ricevuto ipotetiche dosi di esperienza
pari a quelle di un qualsiasi individuo
cosciente e razionale? A questo proposito
la soluzione del W3C non è l'intelligenza
artificiale, ma fare in modo che i
computer analizzino meccanicamente la
semantica dei documenti e, "come se
la comprendessero", producano
risultati significativi per gli utenti. Ma
questo è un processo che necessità
ancora di vari passaggi intermedi.
RDF e RDFSchema
Lo strato delle asserzioni
Per giungere a tale obiettivo, servono
linguaggi che ancor prima di definire
formalmente la semantica di un documento
permettano di poterla esprimere attraverso
espressioni relazionali e strutture
generali di carattere classificatorio, RDF
(Resource Description Framework)
nel primo caso, RDFSchema nel secondo.
RDF consente di standardizzare il modo in
cui vengono definiti i metadati in Rete,
fornendo un modello espressivo semplice
basato su tre tipi di oggetti: risorse,
proprietà, asserzioni. Una risorsa può
essere una o un insieme di pagine Web,
oppure un oggetto che fisicamente può non
trovarsi nel Web, come ad esempio un libro
o un'automobile; importante è che questo
"nome-risorsa" sia univocamente
individuato da un URI (vedi strato di
base). Una proprietà di conseguenza è un
aspetto specifico, un attributo che
descrive una risorsa, assumendo valori
differenti a seconda del caso.
Un'asserzione (o asserto) è una serie di
triple: soggetto (risorsa) + predicato
(proprietà) + oggetto (valore della
proprietà), che possono esprimere
qualunque cosa e che è dotata di valore
di verità. Così rappresentata, la
conoscenza sarà distribuita liberamente
nella rete. Strati superiori permetteranno
di determinare la veridicità o meno di
un'asserzione.
Un semplice esempio di asserzione RDF:

questo
significa che "http://www.sitonielsen.com/WebUsability
ha come autore Jakob Nielsen". Sulla
base di questo modello il valore della
proprietà può diventare una risorsa e a
sua volta avere proprietà e valori
associati, dando vita a descrizioni
complesse, in pratica un discorso intorno
ad un determinato argomento.
Per esperienza sappiamo di utilizzare
spesso parole che sono strettamente
associate ad uno specifico significato e
che la comprensione di suddette asserzioni
è strettamente legata al contenuto
semantico espresso. RDF non definisce
classi di risorse e non fornisce alcun
meccanismo per dichiarare proprietà e
organizzarle gerarchicamente (ad esempio
non si può dire che "libro" è
una classe, che "persona" è una
classe, che "has_Author" è una
proprietà, che "has_Author" ha
per dominio istanze di libro e che "has_Author"
ha per condominio istanze di persona). Per
sopperire a questa mancanza è stato
progettato RDFSchema, un linguaggio
dichiarativo che fornisce un mezzo per
affermare informazioni addizionali sui
dati. Una sorta di vocabolario, definito
dai singoli utenti, a cui potranno
accedere "agenti software" per
"interpretare" e analizzare la
conoscenza espressa dalle asserzioni RDF.
Ad oggi (2004) tutto questo può sembrare
un'odissea, abituati come siamo a
considerare metadati un semplice elenco di
parole inserite in un tag
"META". Diventa logico capire
perché i motori di ricerca, nonostante i
potentissimi algoritmi a loro
disposizione, producano spesso risultati
poco significativi. Per non parlare poi
dell'infinità di documenti
sintatticamente e semanticamente scorretti
(in ogni senso) che popolano il web
pre-semantico.
OWL
il vocabolario ontologico
Lo strato delle ontologie
RDFSchema permette di creare ontologie
di carattere generale. Esso appartiene
però allo strato delle asserzioni perché
strettamente legato a RDF (ne definisce
classi e proprietà), e poiché presenta
lacune espressive soprattutto laddove è
necessario esprimere l'equivalenza
semantica di proprietà sintatticamente
differenti ("Is_Author_of" è
l'inverso di "has_Author" oppure
"has_Author" è l'equivalente di
"ha_Autore"). Con questo
linguaggio non è possibile creare
ontologie che permettano la creazione di
classificazioni sistematiche e che
risultino ristrette ad un dominio
specifico pur mantenendo una validità
generale. Un'ontologia infatti, nel
Semantic Web, è intesa come la
rappresentazione esplicita del significato
dei termini impiegati e della loro
interrelazione. RDF e RDFSchema forniscono
piuttosto primitive ontologiche, basi di
conoscenza per generare nuova conoscenza.
Il W3C propone OWL (Web Ontology
Language), e lo divide in tre
sottolinguaggi, ognuno caratterizzato da
una diversa capacità espressiva:
- OWL Lite, permette di esprimere
semplici vincoli e gerarchie di
classificazione.
- OWL DL, permette di disporre di
una massima espressività, sia garantendo
che il sistema di inferenza estrarrà
tutte le conclusioni, sia che tutte le
elaborazioni si concluderanno in un tempo
finito.
- OWL Full, permette di sfruttare
tutta la libertà sintattica di RDF, ma
senza alcuna garanzia che il sistema
estrarrà tutte le conclusioni possibili.
Creare ontologie richiede un notevole
impegno e una completa conoscenza del
dominio in analisi. Quindi la scelta del
linguaggio adatto alla proprie necessità
dovrà essere fatta a priori, per
sfruttare al meglio le potenzialità
espressive di OWL e per dare un valido
supporto al ragionamento automatizzato.
Logica, dimostrazione, fiducia
Gli strati in via di sviluppo
Gli elementi a disposizione - finora gli
unici raccomandati dal W3C (in ultimo OWL,
raccomandazione del 10/02/2004) -
consentono di rappresentare in modo
adeguato la conoscenza; ma come questa
conoscenza sarà utilizzata è attualmente
solo ipotizzabile e riconducibile a linee
guida generiche che trattano di linguaggi
logici, formule per la dimostrazione e
reti della fiducia: visioni di un nuovo
web ordinato ed efficiente, che è sempre
meno aspirazione e sempre più
un'affidabile alternativa.
Lo strato della logica sarà costituito da
un linguaggio basato su euristiche, cioè
procedimenti che permettono di prevedere
un risultato che solo successivamente
verrà controllato, convalidato e
dimostrato. E' invece attraverso
l'utilizzo del procedimento deduttivo di
inferenza che sarà possibile, partendo da
una o più premesse, ricavare una
conclusione. Le semplici informazioni
ottenute saranno validate, nello strato
della dimostrazione, tramite motori di
validazione generici costituiti da
sequenze di formule derivate da assiomi.
In ultimo lo strato della fiducia
restituirà solo quelle informazioni che
secondo il richiedente proverranno da
utenti di indubbia attendibilità. Ad
esempio l'utente A accetterà informazioni
provenienti da B, l'utente B a sua volta e
per sua scelta, dall'utente C, e di
conseguenza A riterrà valide le
informazioni di C in quanto parte della
sua rete della fiducia.
Bibliografia
World Wide Web Consortium (W3C), http://www.w3.org/
Holzner S., 2001, APOGEO, XML
tutto&oltre
Deitel H.M., Deitel P.J., Nieto T.R., Lin
T.R., Sadhu P., 2002, APOGEO, XML corso di
programmazione
Pericoli P., 2002, Standard per il Web
Semantic
http://www-db.deis.unibo.it/courses/SI2/Relazioni/WebSemantico.pdf
Parodi M., Ferrara A., 2002, Xml,
Semantic Web e rappresentazione della
conoscenza
http://www.mondodigitale.net/Rivista/02_numero_tre/
Parodi_p.42-51.pdf
Signore
O., 2004, RDF per la rappresentazione
della conoscenza
http://www.w3c.it/papers/RDF.pdf
Toscano E., Spagnolo F., 2004, Un
percorso interpretativo della logica del
'900
http://math.unipa.it/~grim/LogicStorToscanoSpaQuad11.pdf
|