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.