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