La lunga roadmap verso il Semantic Web: le fondamenta [parte 2]
Nella scorsa puntata sul Web Semantico, abbiamo scoperto qual’è la visione futura del web ipotizzata nel 1999 dal suo creatore Tim-Berners Lee. La sua descrizione è una rappresentazione favolosa del web basato non più sui concetti di ipertesto e link ma, basato sul reale significato dei contenuti rappresentati nella rete. L’aspetto più importante secondo me, sul quale soffermarsi, è la possibilità di automatizzare qualsiasi processo di navigazione/esplorazione del web, sulla base del ragionamento deduttivo proveniente proprio dal significato delle parole (e a più alto livello dei contenuti) e dalla elaborazione della conoscenza. Tutto questo, è reso possibile grazie alla costruzione dell’infrastruttura web che andremo ad analizzare in questo percorso che mi piace definire esplorativo.
In questo nuovo articolo, e per tutti quelli a venire, la mia attenzione si focalizzerà sull’analisi dei diversi strati della “Semantic Web Layer Cake”, come piace ai ricercatori definirla. Partiamo dalla base fino a giungere agli strati superiori, scoprendo e analizzando i linguaggi che la compongono analizzando a che punto è lo stato dell’arte.
Indice dei contenuti
I Fondamenti del Semantic Web
Alla base dello stack del Semantic Web, ritroviamo la più semplice forma di rappresentazione dell’informazione web, la risorsa. Come avviene? Attraverso l’uso dei seguenti linguaggi e standard (evidenziati in figura).
URI/ IRI
Il primo strato del web è costituito da quegli elementi che permettono di identificare gli oggetti all’interno della rete. Per oggetti intendo risorse di qualsiasi tipo file, indirizzo web, foto, video ecc… Tali risorse, per essere rintracciabili, hanno quindi la necessità di essere identificati da codici univoci che al loro interno contengono l’esatta posizione dove la risorsa risiede. Tali codici univoci, sono dati dalle URI, acronimo di Uniform Resource Identifier. Comunemente, un indirizzo viene definito URL (Uniform Resource Locator) che è in realtà, un URI che permette di identificare univocamente una risorsa nella rete, ma che permette anche di conoscere la locazione fisica di quella risorsa.
L’IRI è l’acronimo di Internationalized Resource Identifier, invece, è una forma di URI, costituita da una sequenza di caratteri appartenenti all’Universal Character Set (Unicode/ISO 10646), cioè che utilizza caratteri al suo interno anche non appartenenti all’insieme ASCII, diventando molto utile quando usato in un contesto internazionale.
Unicode
Sempre alla base della pila degli strati del web, troviamo l’Unicode che è il sistema universale che permette di codificare uniformemente la rappresentazione di dati testuali. Per mezzo dell’Unicode, 1 milione di caratteri sono rappresentati per mezzo di codici univoci, indipendentemente dalla lingua, dal terminale usato e dai software utilizzati. Prima che venisse sviluppato l’Unicode, c’erano diversi sistemi di codifica che mostravano grossi problemi quando le informazioni viaggiavano oltre i confini della propria nazione. Grazie all’Unicode, infatti adesso è molto più semplice la rappresentazione dei testi worldwide.
A livello superiore, il concetto di risorsa viene raffinato e si trasforma da semplice indirizzo codificato, in una risorsa con del contenuto “rappresentato” o descritto per mezzo di tag e attributi specifici. Per lo scopo, ci aiutano L’XML, i namespace e XML Scheme, ma anche XML Query che permette di interrogare documenti creati con il modello XML.
XML
XML è l’acronimo di Extensible Markup Language. Con XML, si ha la possibilità di aggregare e costruire le informazioni contenute all’interno di una risorsa in modo che possa essere più facilmente condivisa non solo, ma la potenza di questo linguaggio risiede nella possibilità di strutturare le informazioni in qualsiasi modo desideriamo. L’XML potrebbe essere equiparato all’HTML, solo che nel primo caso è possibile creare i propri tag e attributi.
Ad esempio, tramite l’XML siamo in grado di rappresentare una risorsa nel seguente modo:
Tove
Jani
Reminder
Non dimenticarti di inviarmi la mail!
Namespace
I Namespace (alias XML Namespace) sono parte integrante di XML, permettono di etichettare ogni tag o attributo generato in un documento XML, mediante delle URI che li identificano univocamente sul Web. Potrebbe capitare, infatti, che tag utilizzati su diversi documenti, abbiano la stessa nomenclatura. Grazie all’utilizzo dei Namespace, che assegnano una URI univoca alla risorsa, tale problema viene risolto, permettendo di evitare quindi conflitti legati all’uso di stessi tag per documenti diversi, e che hanno semantiche diverse. La sintassi xmlns attribute è definita da xmlns=”namespaceURI”
Un esempio di due risorse identificate dal tag “table” ma con differente Namespace.
Apples | Bananas |
XML Schema
L’XML Schema, gioca un ruolo fondamentale nella descrizione della struttura dei documenti XML, allo stesso modo delle DTD, solo in modo più efficiente. Un XML Schema è conosciuto anche come XML Schema Definition (XSD). In sostanza, se si ha la necessità di utilizzare l’XML per creare delle strutture ad hoc per uno specifico documento, XSD permette di definire delle regole (una specie di linee guida che descrivono gli elementi permessi, come ad esempio tipi di dati che sono ad essi associati e quale relazione gerarchica hanno fra loro gli elementi contenuti – esempio ) in modo da essere facilmente comprensibili sia dalle persone che dalle macchine che poi vanno a interpretare il contenuto.
XML Query
XML Query, o XQuery, è un linguaggio standard utilizzato per effettuare delle query su dati XML, è una combinazione tra database, pagine Web e risorse. E’ un linguaggio molto potente e facile da imparare, nonché è ampiamente supportato da molti database, quindi può essere una valida alternativa ai linguaggi middleware proprietari e a linguaggi di sviluppo Web Application, inoltre si grazie alle sue caratteristiche, è possibile considerarlo un linguaggio che con poche righe di codice può sostituire Java o C + +. Sfrutta l’XPath un linguaggio che permette di individuare i nodi all’interno di un documento XML.
Grazie alla costruzione di questi due livelli, siamo in grado di costruire un pezzetto del Web per mezzo di tre concetti:Unicode, URI, XML. Quindi:
- Unicode permette di codificare universalmente le informazioni in tutto il mondo;
- grazie alle URI, abbiamo la modalità standard per identificare e localizzare le risorse;
- con XML, abbiamo la possibilità di rappresentare le informazioni in modo univoco, ma anche un modo per condividere e descrivere le risorse in modo coerente.
Sfruttando al meglio queste componenti, e combinandole insieme, è possibile integrare i contenuti e servizi in tutto il web.
Per quanto riguarda l’aspetto del Web Semantico, queste tecnologie, benché non nuovissime, descrivono le fondamenta sul quale poggia tutto il sistema futuro. A questo livello siamo in possesso di una informazione ancora poco dettagliata o meglio meno raffinata a livello semantico. Nel momento in cui si scalano i livelli superiori della torta a strati, è possibile riconoscere tuttavia, il vero potere di questi linguaggi.
Nella prossima parte, infatti, vedremo come i concetti di Unicode, URI e XML diventano fondamentali per la costruzione dell’RDF (Resource Description Framework), principalmente per la costruzione dei metadati (dati sui dati). Nel successivo livello, saremo in grado di riconoscere un senso semantico nella rappresentazione delle informazioni.
Vuoi dire la tua?