Il Resource Description Framework (RDF)

Il Resource Description Framework è uno standard descritto dal W3C e adatto a descrivere la struttura di una parte della realtà. Per realtà intendiamo qualsiasi risorsa sia possibile identificare sulla rete con un indirizzo univoco, mentre per descrizione indichiamo l’insieme delle proprietà, degli attributi e delle relazioni con altre “realtà”. Nello standard RDF possiamo quindi identificare tre concetti fondamentali:

  • Risorse (resources): una risorsa può essere rappresentata da una pagina, un gruppo di pagine, un’immagine, un server o un qualsiasi altro elemento che abbia un Universal Resource Identifier (URI), cioè un appropriato meccanismo di identificazione, come l’indirizzo Web;
  • Proprietà (properties): una proprietà è una specifica caratteristica o attributo di una risorsa; una proprietà può anche descrivere relazioni con altre risorse;
  • Asserzioni (statements): un’asserzione è costituita dall’insieme di una risorsa, una proprietà e uno specifico valore per quella proprietà e descrive le caratteristiche di una risorsa e le relazioni con altre risorse.

Un esempio può aiutare a chiarire le idee. Poniamo di voler elencare le caratteristiche di un libro. Uno dei documenti RDF che potrebbe descrivere questa operazione è:

<?xml version=“1.0” encoding=“UTF-8”?>
<Librordf:about=“http://www.einaudi.it/einaudi/ita/
catalogo/scheda.jsp?isbn=978880629660&ed=87”
xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmlns=“http://www.miolibro.it/libro#”>
<titolo>Il giovane Holden</titolo>
<autore rdf:resource=“http://www.autori.it/autori#Salinger” />
<casaeditrice>Einaudi</casaeditrice>
<anno>1961</anno>
<pagine>230</pagine>
</Libro>

Ciascun oggetto è descritto da una tripla: una risorsa, una proprietà e un valore. In questo caso la risorsa è il libro “Il giovane Holden”, definita all’URI http://www.einaudi..it/einaudi/ita/catalogo/s cheda.jsp?isbn=978880629660&ed=87, una delle proprietà è titolo, definita all’URL http://www.miolibro.it/libro#titolo e uno dei valori è “Il giovane Holden”. In questo modo abbiamo non solo identificato univocamente l’oggetto (poiché l’URL è univoco a livello mondiale), ma abbiamo anche definito univocamente quale tipo di convenzione stiamo utilizzando per descriverlo.

Facendo un confronto con XML, di cui è un figlio, RDF ha alcuni vantaggi, come per esempio la possibilità di definire agevolmente il tipo e le proprietà degli oggetti (si tratta sempre di un insieme definito di risorse, proprietà e valori). RDF limita e focalizza alcune caratteristiche di XML per renderlo un linguaggio rivolto alla descrizione di un oggetto, delle sue proprietà e delle relazioni con gli altri oggetti.

RDF Schema

RDF è un modello di descrizione astratto e non pone vincoli sulla sintassi e sul significato delle descrizioni di una risorsa. Tuttavia, per ragioni più che altro pratiche, la definizione formulata del W3C propone l’uso di XML come linguaggio per la rappresentazione del modello RDF, cioè propone RDF come linguaggio basato su XML; in pratica, una descrizione RDF è un documento scritto in XML. Il limite di un documento RDF è che si preoccupa soltanto di descrivere le proprietà di un oggetto, senza però definire alcun livello di gerarchia o di relazione tra le classi. Questo è il compito degli RDF Schema, strutture XML basate sui concetti dell’RDF che facilitano la creazione di nessi tra oggetti.

Se si torna al precedente esempio del libro Il giovane Holden, potremmo stabilire uno schema di esempio come quello riportato:

<?xml version=“1.0” encoding=“UTF-8”?>
<rdf:RDF xmlns:rdf=“http://www.w3.org/1999/02/22-rdf-syntax-ns#”
xmlns:rdfs=“http://www.w3.org/2000/01/rdf-schema#”
xml:base=“http://www.pubblicazioni.it/standard#”>
<rdfs:Class rdf:ID=“Rivista”>
<rdf:subClassOf rdf:resource=“#PubblicazioneCartacea”></rdf:subClassOf>
</rdfs:Class>
<rdfs:Class rdf:ID=“Libro”>
<rdf:subClassOf rdf:resource=“#PubblicazioneCartacea”></rdf:subClassOf>
</rdfs:Class>
<rdfs:Class rdf:ID=“Sito”>
<rdf:subClassOf rdf:resource=“#PubblicazioneOnline”></rdf:subClassOf>
</rdfs:Class>
<rdf:Property rdf:ID=“scrittoDa”>
<rdfs:domain rdf:resource=“#Libro”></rdfs:domain>
<rdfs:range rdf:resource=“#Autore”></rdfs:range>
</rdf:Property>
</rdf:RDF>

Le informazioni che si possono ottenere da questo schema sono:

  • “Il giovane Holden” è una pubblicazione cartacea
  • http://www.autori.it/autori#Salinger è un autore

Gli RDF Schema (o RDFs) hanno però alcune limitazioni. Non è ad esempio possibile definire due classi come equivalenti, magari perché realizzate da autori diversi. Non è neppure possibile limitare puntualmente il numero di proprietà da usare (per esempio: ogni Libro ha uno e un solo Autore). Ecco perché la tendenza è quella di passare ad un nuovo linguaggio ossia OWL (Web Ontology Language) che risulta essere lo standard de facto per lo sviluppo delle ontologie. È infatti necessario avere a che fare con delle informazioni chiare e comprensibili, che portino con sé una semantica, un significato intrinseco non ambiguo, che non possa essere frainteso. L’interoperabilità ha quindi bisogno di un modello unico per la rappresentazione delle informazioni; ed è questo l’ambito in cui si inseriscono le ontologie. Andiamo quindi ad affrontare l’argomento “ontologie” che possono essere definite alla base del Web Semantico.

XML vs RDF: perché RDF

Ora che RDF è stato descritto in modo piuttosto approfondito, è possibile spiegare perché non sia stato utilizzato XML per descrivere le risorse del Semantic Web. Prima di tutto è d’obbligo una precisazione. Il modello RDF può essere definito senza alcun riferimento esplicito a XML pur sapendo che quest’ultimo può essere utilizzato come sintassi per rappresentare gli statement del primo. Ma una questione resta aperta: perché XML e XML Schema non possono essere usati per rappresentare gli stessi tipi di informazione che è in grado di esprimere RDF? XML Schema è, dopo tutto, uno strumento molto potente per esprimere requisiti e vincoli, anche complessi, relativi agli elementi XML. Questo è vero, e XML e XML Schema possono essere utilizzati per fare qualcosa di quello che fa RDF, ma non senza grossi problemi. Le ragioni di queste difficoltà sono diverse e sono dovute a differenti scelte modellistiche, sintattiche e semantiche.

  • Il modello RDF e quello XML sono fondamentalmente diversi. Il modello dei dati XML è orientato alla marcatura di elementi posti in strutture ad albero mentre, per contrasto, RDF ha un modello che consiste in archi etichettati. Naturalmente, ogni specifico set di asserzioni forma un grafo che può essere serializzato in XML. Ma dal momento che sia XML sia XML Schema sono stati progettati principalmente per la rappresentazione di documenti “statici”, essi sono significativamente meno adatti ad esprimere metadati, che per loro natura sono soggettivi, distribuiti, soggetti ad evoluzione e spesso espressi in forme diverse. Il modello dell’RDF, sebbene più semplice, è sufficientemente flessibile per supportare queste necessità.
  • Le risorse utilizzate in RDF e XML sono fondamentalmente diverse. I nodi su cui XML Schema opera sono nodi di documenti XML, i quali si trovano in posizioni specifiche nella struttura di un documento. In RDF, i nodi non contengono informazioni già presenti all’interno del documento da descrivere, come accade in XML, ma piuttosto essi rappresentano qualunque risorsa che possiede un URI, e che molto spesso risiede all’esterno del documento stesso. È per questo che l’RDF è definito come un linguaggio per metadati.
  • Le semantiche di XML e RDF sono fondamentalmente differenti. Gli schemi XML hanno essenzialmente un’interpretazione sintattica, che in effetti restringe l’insieme di documenti che si possono produrre con essi; RDF, al contrario, ha principalmente un’interpretazione semantica. Mentre XML è utilizzato per modellare e descrivere documenti, RDF è usato per modellare conoscenza, per la quale una rappresentazione ad albero non sarebbe soddisfacente.

A questi tre punti va aggiunta la considerazione che l’ordine in cui gli elementi appaiono in un documento XML è rilevante e spesso molto significativo. Questo sembra davvero innaturale nel mondo dei metadati. A chi importa l’ordine con il quale il nome del Regista di un film o il suo Titolo si susseguono, se comunque sono entrambi disponibili? Per di più, mantenere il corretto ordine per milioni di elementi di informazione, nella pratica, risulta costoso e difficile. Per riassumere, RDF è stato pensato espressamente per esprimere metadati. XML fa molte cose, e può anche essere usato per descrivere metadati, ma generalmente ha un rapporto molto più stretto con i dati contenendo in se già parte di essi; RDF(S) esprime metadati, nel senso più proprio del termine: di un documento descrive contenuti che in esso non sono presenti. Inoltre XML e RDF differiscono per la capacità espressiva di descrivere relazioni. XML è centrato su una struttura a inclusione, riesce perciò ad esprimere senza difficoltà le relazioni di parentela o di “essere parte di”, ma per le altre dimostra dei limiti. In conclusione la differenza fra i due linguaggi può essere sintetizzata in questo modo: XML/XML Schema è un data modeling language, mentre RDF è un meta-data modeling language. Quando occorre codificare metadati in forma di dati, una sintassi XML risulta molto utile. Tuttavia, la definizione di metadati in puro XML incide seriamente sulla flessibilità.

1 Stella2 Stelle3 Stelle4 Stelle5 Stelle (Nessun voto ancora)
Loading...
You can leave a response, or trackback from your own site.

Leave a Reply

*