Il web è stato pensato per contenere un infinito numero di informazioni e dati possibilmente tipizzati e relazionati tra loro secondo i principi dell'ipertesto senza però avere dei reali meccanismi di gestione della conoscenza o di inferenza sugli stessi dati.
Il web semantico nasce per coprire questa lacuna del web normale fornendo meccanismi quali le triple o le ontologie per relazionare più profondamente i dati e le informazioni per generare della reale conoscenza.
Purtroppo la difficile applicabilità su larga scala del web semantico al momento lo racchiude unicamente in sistemi chiusi facilmente replicabili con altre tecnologie.
Ma come gestire la conoscenza su larga scala? Alcuni propendono per una fantomatica semantica di XHTML ma con l'avvento di XHTML, specialmente alla versione 2.0, si prospettano nuove modalità per dare un vero significato ai nostri contenuti.
Cos’è un dato? Cos’è un informazione? Cos’è la conoscenza?
Le risposte a queste domande ritenute ad oggi filosofiche hanno attanagliato per migliaia di anni chi si occupava per mestiere di archiviare e mantenere la conoscenza dell’uomo.
Ad oggi chi si occupa di gestione della conoscenza nell’informatica identifica in genere le seguenti tre definizioni (semplificate):
Dato: Un dato è ciò che è immediatamente presente alla conoscenza e su cui un’elaborazione mentale può portare ad un’informazione.
Per esempio:
Data | Città | Temperatura | Scala |
24.02.2006 | Roma | 17 | centigradi |
Informazione: Un’elaborazione di dati atta comprensione umana degli stessi.
Per esempio: “Il 24 febbraio 2006 nella città di Roma la temperatura era di 17 gradi centigradi”
Conoscenza (wikipedia): La conoscenza è la consapevolezza e la comprensione di fatti, verità o informazioni ottenuti attraverso l'esperienza o l'apprendimento (a posteriori), ovvero tramite l'introspezione (a priori).
L’essere umano, storicamente, ha sempre mantenuto e archiviato la conoscenza cercando di gestirla al meglio con l’obbiettivo che nulla andasse perso e tutto fosse facilmente ritrovabile.
Oggi gli strumenti teoricamente più consoni a rappresentare la gestione della conoscenza sono le basi di dati; piccoli o grandi contenitori di dati strutturati, classificati e relazionati tra loro su cui è possibile effettuare delle elaborazioni (inferenze logiche).
Il problema principale di cui soffrono le basi di dati è che sono principalmente sistemi chiusi su schemi logici ben definiti ed in genere non condivisi. Inoltre non contengono informazioni ma dati puri che vanno rappresentati per ottenere delle informazioni e quindi della conoscenza.
Per rappresentare questa conoscenza ci serviamo di sistemi software che si occupano di elaborare questi dati, estrapolandone dei nuovi e inferendo su di essi, con i quali infine rappresentiamo, in genere visualmente, delle informazioni.
Questi sistemi software sono tipicamente sistemi chiusi che non condividono le loro capacità con il resto del mondo ma, in alcuni casi, ne rappresentano le informazioni tramite le tecnologie web.
Sulla base della premessa precedente si può comprendere come il web in realtà non è un sistema software che contiene dati ma è un sistema che rappresenta informazioni.
Per questo motivo abbiamo grandi vantaggi a livello di diffusione della conoscenza ma i motori di ricerca o gli altri strumenti software, che utilizzano il web come fonte di dati per effettuare delle operazioni di ricerca o inferenza, non risultano ad oggi affidabili quanto i sistemi chiusi e richiedono ancora molti interventi umani.
Quindi sul web perdiamo molte delle caratteristiche di gestione che si potrebbero avere su dei dati puri.
Il web semantico inizia qui portando l’idea che il web non sia fatto solo di informazioni ma anche di dati in un formato adatto alla interrogazione, interpretazione e, più in generale, elaborazione automatica.
Le potenzialità date dal web semantico sono quelle che potremmo ottenere in dei sistemi chiusi. Per esempio sarà possibile comparare i prezzi di un prodotto su scala planetaria e da un'unica interfaccia di visualizzazione/navigazione.
Quindi arrivare ad un web semantico vuol dire pensare tutta una nuova serie di applicazioni che utilizzino il web come fonte dati.
Se questo dovesse avvenire ci troveremmo di fronte ad una nuova rivoluzione dove la progettazione del singolo sito dovrà essere effettuata anche in visione di una scala più globale.
Per fare ciò il web semantico si avvale di un’architettura che permetta di marcare i dati e le relazioni tra essi tramite delle ontologie.
Questa architettura si basa su una serie di linguaggi per rappresentare dei grafi tramite il meccanismo delle triple (soggetto [risorsa], predicato [ontologia], oggetto [risorsa]).
Esistono almeno tre modi per descrivere tale grafo di cui la principale è RDF (Resource Description Framework) che è un linguaggio basato su XML definito dal W3C:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#">
<contact:Person rdf:about="http://www.w3.org/People/EM/contact#me">
<contact:fullName>Eric Miller</contact:fullName>
<contact:mailbox rdf:resource="mailto:em@w3.org"/>
<contact:personalTitle>Dr.</contact:personalTitle>
</contact:Person>
</rdf:RDF>
Il web semantico sarà certamente il futuro del web ma c’è un problema di fondo per poterlo applicare.
Il problema è dato dal fatto che allo stato attuale l’espressione di grafi deve essere effettuata manualmente e in dei file esterni alle nostre pagine HTML o XHTML.
Questo (ri)porta grandi problemi di gestione e manutenzione delle strutture dati che spesso si ritrovano disallineate ma soprattutto alla scarsa possibilità che chi produce pagine web ne curi tali aspetti.
Per ovviare a questo problema all’interno del W3C si stanno sviluppando una serie di soluzioni/proposte per fondere l’espressione di triple all’interno delle nostre pagine HTML o XHTML.
Il W3C ha istituito una task force chiamata “RDF in XHTML” che collaborando con l’HTML e l’RDF Working Group ha lo scopo di vagliare le varie soluzioni per effettuare la fusione dei due linguaggi specialmente su XHTML 2.0.
Le soluzioni studiate da questo gruppo si dividono tra quelle per XHTML 1.0 e quelle per XHTML 2.0 dove troviamo un modulo nativo per RDF.
GRDDL è una soluzione che, riferendosi sempre come soggetto al documento, propone di marcare le nostre pagine XHTML tramite i normali metatag per poi sfruttare la tecnologia XSLT per ottenere un file RDF/XML.
Per far ciò usa la seguente sintassi:
<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://www.w3.org/2003/g/data-view">
<title>Document</title>
<link rel="transformation"
href="http://www.w3.org/2000/06/dc-extract/dc-extract.xsl" />
<meta name="DC.author" content="Luca Mascaro" />
</head>
</html>
È una soluzione che, riferendosi sempre come soggetto al documento, sfrutta I metatag e I cambiamenti di namespace di XML per esprimere le varie triple.
<html xmlns:dc="http://purl.org/dc/elements/1.1/">
<head>
<title>Document</title>
<meta name="dc:author" content=”Luca Mascaro”>
</head>
</html>
È una soluzione che sfruttando i CDF (linguaggi XML fusi con il cambiamento di namespace) scrive direttamente il file RDF nell’XHTML.
Una soluzione che, riferendosi direttamente alle informazioni come soggetto, sfrutta l’attributo “class” di XHTML permettendo con più facilità di mettere dell’RDF tra i contenuti.
L’attributo “class” è per definizione un attributo che può essere utilizzato dai CSS ma è più in generale uno strumento per classificare un contenuto.
La specifica indica esplicitamente che il contenuto di class può essere genericamente processato dagli user agent per i loro scopi e la problematica del namespace è stata risolta nei CSS 3 dove vengono ufficialmente introdotti.
<html xmlns:dc="http://purl.org/dc/elements/1.1/">
<head>
<title>Document</title>
</head>
..<body>
<p><cite class=”dc:author”>Luca Mascaro</cite> tiene questa presentazione.</p>
..</body>
</html>
XHTML 2.0 prevede un modulo nativo di metainformazione che permette di descrivere triple direttamente nel linguaggio. Questo modulo è riassunto ed esplicato nella specifica RDF/A (RDF Applicato).
<html xmlns:dc="http://purl.org/dc/elements/1.1/">
<head>
<title>Document</title>
</head>
..<body>
<p><cite property=”dc:author” cite=”http://www.lucamascaro.info”>Luca Mascaro</cite> tiene questa presentazione.</p>
..</body>
</html>
In questa nuova visione di web è compito degli ingegneri del software studiare le architetture ed i linguaggi ma, a mio vedere, ancora più importante è che i progettisti di interfacce o più in generale di applicativi web inizino ad immaginare cosa potranno proporre ai loro utenti in futuro potendo finalmente rispondere concretamente alle loro esigenze.
HTML 4.01 http://www.w3.org/TR/REC-html40/
XHTML 1.0 http://www.w3.org/TR/xhtml1/
XHTML 2.0 http://www.w3.org/TR/xhtml2/
RDF Primer http://www.w3.org/TR/rdf-primer/
GRDDL http://www.w3.org/TR/grddl/
XHTML and RDF http://www.w3.org/MarkUp/2004/02/xhtml-rdf.html