The basic semantic web stack has been explained a lot already in this thread. I'd like to focus on the initial question and compare RDF to OWL.
- OWL is a super-set of RDF & RDF-S (on top)
- OWL allows to effectively working with RDF & RDF-S
- OWL has some extended vocabulary
- classes & individuals ("instances")
- properties & data-types ("predicates")
- OWL is required for proper reasoning and inference
- OWL comes in three dialects lite, description logic & full
Using OWL is essential to get more meaning (reasoning & inference) by just knowing a few facts. This "dynamically created" information can further be used for accordant queries like in SPARQL.
Some examples will show that that actually works with OWL - these have been taken from my talk about the basics of semantic web at the TYPO3camp Mallorca, Spain in 2015.
equivalents by rules
Spaniard: Person and (inhabitantOf some SpanishCity)
This means that a Spaniard must be a Person (and thus inherits all properties in the inferencing part) and must live in at least one (or more) SpanishCity.
meaning of properties
The example shows the result of applying inverseOf to the properties isPartOf and contains.
- inverse
- symmetric
- transitive
- disjoint
- ...
cardinalities of properties
<:hasParent owl:cardinality “2“^^xsd:integer>
This defines that each Thing (in this scenario most probably a Human) has exactly two parents - the cardinality is assigned to the hasParent property.