RDF Schema

insieme di classi e proprietà RDF costituente un'estensione del vocabolario di RDF

RDF Schema ("Resource Description Framework Schema", talvolta abbreviato in RDFS, RDF(S), RDF-S, o RDF/S) è un insieme di classi e proprietà RDF costituente un'estensione del vocabolario base di RDF.[1]

Esempio di grafo RDF(S)

La prima versione venne pubblicata dal World Wide Web Consortium (W3C) nell'aprile del 1998,[2][3] e la raccomandazione W3C definitiva[1] fu pubblicata nel febbraio 2004. Diverse componenti RDFS sono incluse nel linguaggio più espressivo OWL.

RDFS aggiunge a RDF la possibilità esprimere alcune proprietà ontologiche intensionali di base. Ad esempio, permette di dichiarare che ogni oggetto che è istanza di una certa classe è istanza anche di una classe di livello superiore. Oppure, permette di dichiarare che solo gli elementi che sono istanze di una certa classe possono avere una certa proprietà.

Costrutti principali

modifica

I costrutti RDFS principali sono le classi e proprietà. Esistono poi altri costrutti, definiti come "utility property", che sono particolari istanze di rdf:Property.

  • rdfs:Resource è la classe contenente tutto. Tutto ciò che è descritto in RDF è una risorsa.
  • rdfs:Class indica che una risorsa è una classe contenente altre risorse.

Un esempio tipico di rdfs:Class è foaf:Person, nel vocabolario FOAF.[4] Un'istanza di foaf:Person è una risorsa che è collegata alla classe foaf:Person tramite la proprietà rdf:type, che indica il tipo (o, appunto, la classe) di un particolare elemento. Ad esempio, la frase in linguaggio naturale "Mario è una persona" viene formalizzata nel modo seguente:

ex:Mario		rdf:type	foaf:Person

La definizione di rdfs:Class è ricorsiva: rdfs:Class è una classe di classi, quindi è istanza di se stessa:

rdfs:Class	rdf:type	rdfs:Class

Le altre classi descritte nelle specifiche RDF(S) sono:

  • rdfs:Literal – valori letterali, come stringhe o numeri. I letterali possono essere semplici o tipati, ovvero aventi o meno un tipo associato.
  • rdfs:Datatype – la classe dei tipi di dato. rdfs:Datatype è sia istanza che sottoclasse di rdfs:Class. Ogni istanza di rdfs:Datatype è sottoclasse di rdfs:Literal.
  • rdf:XMLLiteral – la classe dei letterali XML. rdf:XMLLiteral è istanza di rdfs:Datatype (e quindi sottoclasse di rdfs:Literal).
  • rdf:Property – la classe delle proprietà.

Proprietà

modifica

Le proprietà sono istanze di rdf:Property e descrivono una relazione tra le risorse soggetto e le risorse oggetto. Una proprietà, quando utilizzata come tale, viene detta "predicato".

  • rdfs:domain definisce il dominio di un'altra proprietà, ovvero la classe del soggetto di cui tale proprietà è predicato.
  • rdfs:range definisce il codominio di un'altra proprietà, ovvero la classe dell'oggetto di cui tale proprietà è predicato.

Ad esempio, le seguenti dichiarazioni sono utilizzate per esprimere la proprietà ex:impiegato avente come soggetto una risorsa di tipo foaf:Person e come oggetto una risorsa di tipo foaf:Organization:

ex:impiegato	rdfs:domain	foaf:Person
ex:impiegato	rdfs:range	foaf:Organization

Date le due precedenti dichiarazioni, la tripla seguente richiede che ex:Mario sia necessariamente di tipo foaf:Person ed ex:AziendaX di tipo foaf:Organization:

ex:Mario	ex:impiegato	ex:AziendaX
  • rdf:type è una proprietà utilizzata per affermare che una risorsa è istanza di una classe. Un qname comunemente accettato per questa proprietà è "a".[5]
  • rdfs:subClassOf è una proprietà utilizzata per affermare che una risorsa di tipo rdfs:Class è sottoclasse di un'altra classe; permette dunque di dichiarare gerarchie fra classi.[6]
  • rdfs:subPropertyOf è utilizzata per affermare che tutte le risorse correlate da una particolare proprietà sono anche correlate da un'altra proprietà.
  • rdfs:label è utilizzata per fornire una versione del nome della risorsa che sia leggibile da un essere umano.
  • rdfs:comment è utilizzata per fornire una descrizione di una risorsa che sia leggibile da un essere umano.

Utility property

modifica
  • rdfs:seeAlso indica una risorsa che potrebbe fornire informazioni ulteriori riguardo alla risorsa soggetto.
  • rdfs:isDefinedBy indica una risorsa che definisce la risorsa oggetto. Questa proprietà può essere utilizzata per indicare un vocabolario RDF in cui la risorsa è descritta.

Esempi di vocabolari RDF

modifica

Fra i più noti vocabolari RDF rappresentati in RDFS troviamo:[6]

  1. ^ a b (EN) RDF Schema 1.1, su w3.org, 25 febbraio 2014. URL consultato il 16 aprile 2016 (archiviato il 15 aprile 2016).
  2. ^ (EN) RDFS first version
  3. ^ (EN) XML and Semantic Web W3C Standards Timeline (PDF), su dblab.ntua.gr, 4 febbraio 2012 (archiviato dall'url originale il 24 aprile 2013).
  4. ^ (EN) FOAF Vocabulary Specification 0.99 by Dan Brickley, Libby Miller.
  5. ^ (EN) Bob DuCharme, Learning SPARQL, Sebastopol, California, United States, O'Reilly Media, 2011, p. 36, ISBN 978-1-4493-0659-5.
  6. ^ a b (EN) W3C RDF Primer by Guus Schreiber and Yves Raimond
  7. ^ (EN) DCMI term declarations represented in RDF schema language, Dublin Core Metadata Initiative

Voci correlate

modifica

Collegamenti esterni

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica
  NODES
Note 2