Each class defined must be of RDF Class. For this there is name-prefix that is used for the RDF namespace. With RDF Class one can define Abstract Objects that are applied via
rdf:type to create Instances of this Class.
rdf:Property is the base Class of all Properties, any property must be of this class. The base class of all Literals is
rdfs:Literal. In the end all things are a subclass of some topclass that is ontop of all Class Hierarchy, which is the
rdfs:Resource. So everything that is modeled is some kind of class of a resource. Everything in RDF is a resource.
There are also general classes for Datatype, additional there is a general class for Literals that stem from XML Schema Definition as there are some datatypes that can come from XML Schema. There is also a class for Container which are the aggregations of lists of RDF statements. For being a member of an container there is an RDF Membership Properties that define nothing else than membership to a given RDF Container.
rdfs:ClassConcept of a Class, defines and Abstract Object and is applied (with rdf:type) to create Instances
rdf:PropertyBase class for Properties
rdfs:LiteralClass for Literals
rdfs:Resourceevery entity of an RDF model is instance of this Class
A property always relates one class with another, therefore one has to define which is the domain and which is the range class.