RDF describes simple statements about individuals and relations between them using some basic types without any structure. This allows great freedom in the creation of new individuals but it would often be useful to rely on a better organisation, so that relations can be typed and thus allow some inferences from a given set of facts:
The relations (or properties):
loved links a person with a wine
owned by links a cellar with a person
can seem obvious to a human but, for a machine, knowledge about the vocabulary must be made explicit. RDFS is a language designed for such cases and it was given a semantics that allows to deduce implicit knowledge (i.e. new RDF triples) from existing triples.
RDFS is a special case of RDF, every RDFS document is also an RDF document. RDFS allows generic constructs to define a particular vocabulary. As shown in Example 7.1, RDFS can be written with the fact that it describes in the same RDF document. The resulting document thus carries its own semantics. RDFS is a light ontology language to define classes and instances.
RDFS words are defined in a standard namespace
http://www.w3.org/2000/01/rdf-schema#
(see line 7‑
of Example 7.1 and line 1‑
of Example 7.2)
A word of caution : although RDFS defines a
schema, it does not enforce any constraint on the input of the information. This is in
stark constrast with an XML schema whose role is to validate the content of the
file. The RDF schema allows an inference system, called a
reasoner in Semantic Web parlance, to infer (to entail in the
Semantic Web jargon) new data from the ones that are given explicitely in the file. For
example, from line 29‑
of Example 7.1, or the equivalent
in line 18‑
of Example 7.2, where we declare that the property
cb:loved
links a
person with a wine line 59‑
of Example 7.1 (line 28‑
of Example 7.2), the reasoner
could infer that
#JudeRaisin
is an instance of the class
Person
and that C00043125
is an instance of the class
Wine
.
Similarly, from line 59‑
of Example 7.1 (line 28‑
of Example 7.2), it could infer that
Cellar
is of class CellarBook
and infer
again that JudeRaisin
is of class
Person
, but that fact will only be kept once in the data base of
triples.
Note that nothing in RDF precludes that a ressource be a member of many classes even ones that do not make sense for a human, e.g. a ressource could be an instance of both a human and wine.
RDFS is thus a way of adding some semantics to an RDF file. It allows the definition of classes and properties but also of subclasses and subproperties that are not used in this simple example.
For more details on the semantics associated with RDFS, one should consult [24].