Il Resource Description Framework (RDF) è lo strumento base proposto da W3C per la codifica, lo scambio e il riutilizzo di metadati strutturati e consente l'interoperabilità semantica tra applicazioni che condividono le informazioni sul Web. È costituito da due componenti:

L'RDF Data Model si basa su tre principi chiave:

  1. Qualunque cosa può essere identificata da un Uniform Resource Identifier (URI).
  2. The least power: utilizzare il linguaggio meno espressivo per definire qualunque cosa.
  3. Qualunque cosa può dire qualunque cosa su qualunque cosa.

Principi e modello dei dati

Qualunque cosa descritta da RDF è detta risorsa. Principalmente una risorsa è reperibile sul web, ma RDF può descrivere anche risorse che non si trovano direttamente sul web. Ogni risorsa è identificata da un URI, Uniform Resource Identifier.

Il modello di dati RDF è formato da risorse, proprietà e valori. Le proprietà sono delle relazioni che legano tra loro risorse e valori, e sono anch'esse identificate da URI. Un valore, invece, è un tipo di dato primitivo, che può essere una stringa contenente l'URI di una risorsa.

L'unità base per rappresentare un'informazione in RDF è lo statement. Uno statement è una tripla del tipo SoggettoPredicatoOggetto, dove il soggetto è una risorsa, il predicato è una proprietà e l'oggetto è un valore (e quindi anche un URI che punta ad un'altra risorsa).

Il data model RDF permette di definire un modello semplice per descrivere le relazioni tra le risorse, in termini di proprietà identificate da un nome e relativi valori. Tuttavia, RDF data model non fornisce nessun meccanismo per dichiarare queste proprietà, né per definire le relazioni tra queste proprietà ed altre risorse. Tale compito è definito da RDF Schema.

RDF Container

RDF quando deve far riferimento a più di una risorsa, per esempio per descrivere il fatto che la risorsa è associata a più proprietà, definisce dei contenitori (container), ossia liste di risorse. Tre sono i tipi di contenitori:

Rappresentazione fisica del modello

Un modello RDF è rappresentabile da un grafo orientato sui cui nodi ci sono risorse o tipi primitivi e i cui archi rappresentano le proprietà. Un grafo RDF è rappresentato fisicamente mediante una serializzazione.

Le principali serializzazioni adottabili per un grafo RDF sono:

In particolare la serializzazione in XML può avvenire secondo due metodi, quello classico e quello abbreviato, più leggibile per l'uomo.

Esempio

Si supponga di voler serializzare la frase "Mario_Rossi" "è_autore_di" "Rosso_di_sera_bel_tempo_si_spera": il risultato in RDF/XML sarà:

 <rdf:RDF 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:au="http://description.org/schema/">
   <rdf:Description about="http://www.book.it/Rosso_di_sera_bel_tempo_si_spera/">
     <au:author>Mario_Rossi</au:author>
   </rdf:Description>
 </rdf:RDF>

RDF Schema

Lo stesso argomento in dettaglio: RDF Schema.

In RDF Schema (RDFS) ogni predicato è in relazione con altri predicati e permette di dichiarare l'esistenza di proprietà di un concetto, che permettano di esprimere con metodo sistematico affermazioni simili su risorse simili. RDF Schema permette di definire nuovi tipi di classe. Inoltre specificando il concetto di classe e sottoclasse, consente di definire gerarchie di classi. In RDF si possono rappresentare le risorse come istanze di classi e definire sottoclassi e tipi.

Classi RDF

Ogni risorsa descritta in RDF è istanza della classe rdfs:Resource.
Le sottoclassi di rdfs:Resource sono:
rdfs:Literal Rappresenta un letterale, una stringa di testo.
rdfs:Property Rappresenta le proprietà.
rdf:Class Una classe dei linguaggi object-oriented.

Proprietà RDF

rdf:type Indica che una risorsa è del tipo della classe che viene specificata.
rdfs:subClassOf Indica la relazione classe/sottoclasse fra due classi.
L'ereditarietà può essere multipla.
rdfs:subPropertyOf Indica che una proprietà è specializzazione di un'altra.
rdfs:seeAlso Specifica che la risorsa è anche descritta in altre parti.
rdfs:isDefinedBy Indica la risorsa "soggetto dell'asserzione" ovvero chi ha fatto l'asserzione.

Vincoli RDF

rdfs:range (codominio) È utilizzato come proprietà di una risorsa; indica le classi che faranno parte di una asserzione con la proprietà.
rdfs:domain (dominio) Indica la classe a cui può essere applicata la proprietà.

Esempi RDFS: Classi e Proprietà

Esempio 1

La classe gatto viene dichiarata sottoclasse della classe animale.

 <rdf:Description rdf:ID="Animale">
   <rdf:type
    rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
 </rdf:Description>

 <rdf:Description rdf:ID="gatto">
   <rdf:type
   rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
 <rdfs:subClassOf rdf:resource="#Animale"/>
 </rdf:Description>

Esempio 2

La proprietà matrice viene dichiarata come specializzazione della proprietà madre.

 <rdf:Description rdf:ID="Madre">
   <rdf:type 
   rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
 </rdf:Description>

 <rdf:Description rdf:ID="Matrice">
   <rdf:type 
   rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
 <rdfs:subPropertyOf rdf:resource="#Madre"/>
 </rdf:Description>

Voci correlate

Altri progetti

Controllo di autoritàLCCN (ENsh2003010124 · GND (DE4737512-7 · J9U (ENHE987007532775605171
  Portale Internet: accedi alle voci di Wikipedia che trattano di internet