To explain a domain and its associated phenomena one need to create models of Classes and Relations on which one can later on make Facts about Individuals in RDF. One need to think about Models from which Facts can be made.
If there is an Application Program and within this Program one can access and define RDF data, but one can only do this if the Application knows which Terms and Classes to use. There are several problems associated with it. Does not know the term in advance and one needs some way to look this up? Are all terms that are used in the Program are really correct, is there something where one can look up to see if this is a correct usage of the data? Are there more logical Relations between the terms. These cannot be expressed in RDF, therefore a Schema Definition Language is required, the
RDF Schema which is officially the
RDF Vocabulary Description Language. The RDF Schema Language is a way to define an RDF Vocabulary and Classes as well as Relations between Classes.
... if the Application program knows, which Terms and Classes to use, as e.g.
RDF Vocabulary Description Language
RDF defines a data model for the generation of RDF Statements and therefore provide the possibility to define classes and to instantiate these Classes, i.e. define individuals (instances of this Classes). This is done with the keyword
<rdf:type>. On the other-hand one can define new kinds of Properties and pose restriction on those Properties. There are also other kind of special Relations between classes like Class Hierarchies among Classes and Properties. What is a sub- and what a superclass or what is a sub and what a superproperties.
RDF Schema allows
RDF-Schema is a language for defining a data model of simple knowledge. It lacks things like negation so it is difficulty to model inconsistency and failure. Everything defined in RDFS is potential true. Via RDFS Ontologies Statements or Facts about Individuals can be expressed which is much more than pure XML as in XML there is not ontological agreement on what the labels defined really means. RDFS allows to have a small vocabularies with an exactly Meaning. So what is a rdf:Class and what is a rdf:Property has a special Meaning which is interpreted in the way that this word means that it is a Class and of course it needs to be defined what is a Class.
What it still misses is some-kind of formal Semantics that defines the Meaning, but it already provides a vocabulary and what those terms means in regard to their Relation with each other. In the end for the machine to understand this a formal representation is needed that can be done via Logic.