Six terms
Six terms, one language
RDFS adds exactly six things to RDF that you'll use daily:
| Term | Means |
|---|---|
rdfs:Class | The class of all classes |
rdf:Property | The class of all properties |
rdfs:subClassOf | C1 ⊑ C2 — every C1 is a C2 |
rdfs:subPropertyOf | P1 ⊑ P2 — every (s,p1,o) entails (s,p2,o) |
rdfs:domain | If (?s p ?o), then ?s is of class D |
rdfs:range | If (?s p ?o), then ?o is of class R |
Important gotcha: domain and range are not constraints. They're type inferences. Asserting :hasAuthor rdfs:domain :Book does NOT reject (:Movie :hasAuthor :Alice) — instead, it infers that :Movie is a :Book. If you want validation semantics, use SHACL (covered in L4).