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]
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 | modifica wikitesto]I costrutti RDFS principali sono le classi e proprietà. Esistono poi altri costrutti, definiti come "utility property", che sono particolari istanze di rdf:Property.
Classi
[modifica | modifica wikitesto]- 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 | modifica wikitesto]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 | modifica wikitesto]- 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 | modifica wikitesto]Fra i più noti vocabolari RDF rappresentati in RDFS troviamo:[6]
- FOAF: con sorgente http://xmlns.com/foaf/spec/, è scritta in RDFS con sintassi RDFa.
- Dublin Core: sorgente RDFS disponibile in diverse sintassi.[7]
- Schema.org: con sorgente https://schema.org/docs/schema_org_rdfa.html, è scritta in RDFS con sintassi RDFa.
- SKOS
Note
[modifica | modifica wikitesto]- ^ a b (EN) RDF Schema 1.1, su w3.org, 25 febbraio 2014. URL consultato il 16 aprile 2016 (archiviato il 15 aprile 2016).
- ^ (EN) RDFS first version
- ^ (EN) XML and Semantic Web W3C Standards Timeline (PDF), su dblab.ntua.gr, 4 febbraio 2012 (archiviato dall'url originale il 24 aprile 2013).
- ^ (EN) FOAF Vocabulary Specification 0.99 by Dan Brickley, Libby Miller.
- ^ (EN) Bob DuCharme, Learning SPARQL, Sebastopol, California, United States, O'Reilly Media, 2011, p. 36, ISBN 978-1-4493-0659-5.
- ^ a b (EN) W3C RDF Primer by Guus Schreiber and Yves Raimond
- ^ (EN) DCMI term declarations represented in RDF schema language, Dublin Core Metadata Initiative
Voci correlate
[modifica | modifica wikitesto]Collegamenti esterni
[modifica | modifica wikitesto]- Sito ufficiale, su w3.org.