7.2. RDF Schema

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):

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‑3 of Example 7.1 and line 1‑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‑7 of Example 7.1, or the equivalent in line 18‑6 of Example 7.2, where we declare that the property cb:loved links a person with a wine line 59‑13 of Example 7.1 (line 28‑9 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‑13 of Example 7.1 (line 28‑9 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].