comparing

The choice of one over the other depends on how much complexity the situation you are modeling requires.

Resource Description Framework (RDF)

Focused on mapping instances to their types (i.e. rdf:type), and the instances’ custom properties

Example of RDF serialized in Turtle:

@prefix : <http://www.example.org/> .
:john		rdf:type	:Man .
:john		:livesIn	"New-York" .
:livesIn	rdf:type	rdf:Property .

RDF Schema (RDFS)

Builds upon RDF by providing a mechanism for describing groups of related resources (i.e. rdfs:subClassOfrdfs:range, and/or rdfs:domain). A reasoner can then expand on this. For instance, if you have triples John rdf:type Man and Man rdfs:subClassOf Human then you can generate the triple John rdf:type Human. This is not possible to do with RDF alone.

Example of RDFS serialized in Turtle:

@prefix : <http://www.example.org/> .
:john		rdf:type 			:Man .
:Man    	rdfs:subClassOf		:Human .
:john    	:livesIn  			"New-York" .
:livesIn    rdf:type    		rdf:Property .
# After reasoning
:john    	rdf:type			:Human .

Web Ontology Language (OWL)

Builds upon RDFS (i.e. owl:Class, owl:DatatypeProperty, owl:NamedIndividual, etc). OWL relies heavily on the reasoner, it is possible to express complex constructs such as chained properties for instance, or restrictions between classes. OWL serves to build ontologies or schema on top of RDF datasets.

Example of OWL constructs serialized in Turtle.

@prefix : <http://www.example.org/> .
:livesIn	rdf:type		owl:DatatypeProperty .
:Human    	rdf:type    	owl:Class .
:Man   		rdf:type    	owl:Class .
:Man    	rdfs:subClassOf	:Human .
:John    	rdf:type    	:Man . 
:John    	rdf:type    	owl:NamedIndividual .