RDF Schema (RDFS)
RDF Schema (RDFS) rozšiřuje slovník RDF tak, aby bylo možné popisovat taxonomie tříd a vlastností. Zároveň rozšiřuje definice některých prvků RDF, například stanovuje doménu a obor hodnot vlastností a propojuje třídy a vlastnosti RDF do taxonomií pomocí slovníku RDFS.
Nejprve si použití slovníku RDFS ukažme na příkladu, který znázorňuje taxonomii tříd a vlastností a použití oboru hodnot a domény vlastností:
@prefix : <http://www.example.org/sample.rdfs#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
:Dog rdfs:subClassOf :Animal.
:Person rdfs:subClassOf :Animal.
:hasChild rdfs:range :Animal;
rdfs:domain :Animal.
:hasSon rdfs:subPropertyOf :hasChild.
:Max a :Dog.
:Abel a :Person.
:Adam a :Person;
:hasSon :Abel.
Seznam tříd definovaných v RDFS je uveden v tabulce níže.
Všechny zdroje lze rozdělit do skupin zvaných třídy. Třídy jsou samy také zdroje, takže jsou identifikovány pomocí URI a lze je popisovat pomocí vlastností. Členové třídy jsou instancemi tříd, což se vyjadřuje pomocí vlastnosti rdf:type. Všimněte si, že třída a množina instancí nemusí být totéž. Množina instancí je extenzí třídy a dvě různé třídy mohou obsahovat tutéž množinu instancí. Například při pohledu na příklad grafu RDF je třída lidí, kteří mají mailbox
mailto:joe.smith@example.org, odlišná od třídy lidí, kteří mají
domovskou stránku http://www.example.org/~joe/, ale extenze (tj. množina instancí) těchto tříd je stejná - jde o zdroj
http://www.example.org/~joe/contact.rdf#joesmith.
| Element | Třída | rdfs:subClassOf | rdf:type |
| rdfs:Resource | všechny zdroje | rdfs:Resource | rdfs:Class |
| rdfs:Class | všechny třídy | rdfs:Resource | rdfs:Class |
| rdfs:Literal | hodnoty literálů | rdfs:Resource | rdfs:Class |
| rdfs:Datatype | datové typy | rdfs:Class | rdfs:Class |
| rdf:XMLLiteral | hodnoty literálu XML | rdfs:Literal | rdfs:Datatype |
| rdf:Property | vlastnosti | rdfs:Resource | rdfs:Class |
| rdf:Statement | výroky | rdfs:Resource | rdfs:Class |
| rdf:List | seznamy | rdfs:Resource | rdfs:Class |
| rdfs:Container | kontejnery | rdfs:Resource | rdfs:Class |
| rdf:Bag | neuspořádané kontejnery | rdfs:Container | rdfs:Class |
| rdf:Seq | uspořádané kontejnery | rdfs:Container | rdfs:Class |
| rdf:Alt | kontejnery alternativ | rdfs:Container | rdfs:Class |
| rdfs:Container MembershipProperty | rdf:_1... vlastnosti vyjadřující členství | rdf:Property | rdfs:Class |
Třídy RDFS
V RDFS může být třída instancí třídy. Všechny zdroje jsou instancemi třídy rdfs:Resource. Všechny třídy jsou instancemi rdfs:Class
a podtřídami rdfs:Resource. Všechny literály jsou instancemi
rdfs:Literal. Všechny vlastnosti jsou instancemi
rdf:Property. Relace rdfs:subClassOf (relace podtřída) a
rdf:type (relace instance) pro všechny třídy RDFS jsou uvedeny v tabulce výše.
| Element | Vyjadřuje | rdfs:domain | rdfs:range |
| rdfs:range | omezuje subjekty | rdf:Property | rdfs:Class |
| rdfs:domain | omezuje objekty | rdf:Property | rdfs:Class |
| rdf:type | instance třídy | rdfs:Resource | rdfs:Class |
| rdfs:subClassOf | podtřída | rdfs:Class | rdfs:Class |
| rdfs:subPropertyOf | podvlastnost | rdf:Property | rdf:Property |
| rdfs:label | lidsky čitelný popisek | rdfs:Resource | rdfs:Literal |
| rdfs:comment | lidsky čitelný komentář | rdfs:Resource | rdfs:Literal |
| rdfs:member | členství v kontejneru | rdfs:Resource | rdfs:Resource |
| rdf:first | první prvek | rdf:List | rdfs:Resource |
| rdf:rest | zbytek seznamu | rdf:List | rdf:List |
| rdf:_1, rdf:_2, ... | členství v kontejneru | rdfs:Container | rdfs:Resource |
| rdfs:seeAlso | další informace | rdfs:Resource | rdfs:Resource |
| rdfs:isDefinedBy | definice | rdfs:Resource | rdfs:Resource |
| rdf:value | pro strukturované hodnoty | rdfs:Resource | rdfs:Resource |
| rdf:object | objekt výroku | rdf:Statement | rdfs:Resource |
| rdf:predicate | predikát výroku | rdf:Statement | rdfs:Resource |
| rdf:subject | subjekt výroku | rdf:Statement | rdfs:Resource |
Vlastnosti RDFS (všechny jsou instancemi rdf:Property)
Vlastnosti v RDFS jsou relace mezi subjekty a objekty v trojicích RDF, tj. predikáty. Vlastnosti definované v RDFS jsou uvedeny v tabulce vlastností RDFS. U všech vlastností lze definovat doménu a obor hodnot. Doména vlastnosti říká, že každý zdroj, který má danou vlastnost, je instancí příslušné třídy. Obor hodnot vlastnosti říká, že hodnoty vlastnosti jsou instancemi příslušné třídy. Pokud je jako doména nebo obor hodnot definováno více tříd, použije se jejich průnik. Obory hodnot a domény vlastností RDFS jsou shrnuty v tabulce výše. Následuje příklad, který říká, že doménou vlastnosti hasSon je Person a oborem hodnot téže vlastnosti je Man:
@prefix : <http://www.example.org/sample.rdfs#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
:hasSon rdfs:domain :Person;
rdfs:range :Man.
Taxonomii tříd tvoří vlastnost rdfs:subClassOf, taxonomii vlastností tvoří vlastnost rdfs:subPropertyOf.
RDFS také definuje jednu instanci, která není ani třídou, ani vlastností. Tato instance označuje prázdný seznam: rdfs:nil, viz tabulka s instancí RDFS.
| Element | Význam | rdfs:type |
| rdfs:nil | prázdný seznam | rdf:List |
Instance RDFS