|
Classes are introduced in RDFS (rdfs:Class), which is built on top of RDF. So why is there a property rdf:type, if RDF does not support classes (and everything is therefore untyped on the RDF level)? |
|
There is still some explanation beyond the historic one. The RDF Semantics spec defines four language layers. Two of these layers are RDF and RDFS, the latter being an extension of the former. The RDF layer is semantically pretty weak, because it (mostly) considers an RDF graph as a set of plain triples. For example, the triple " The RDF layer allows for the following conclusion: if you have an RDF triple " In RDFS, which adds to RDF the notion of custom classes and their interrelationships, the semantics of the property |
|
As Michael mentions, RDF was standardised in two major phases. The first phase (under W3C's Semantic Web activity) gave us the Feb 1999 Model and Syntax representation (from a Model and Syntax Working Group), and an RDF Schema specification from a Schema WG that only reached Candidate Recommendation stage, before things ran out of steam: the Metadata Activity expired, RDF was widely disliked in the XML scene, and the then super-important XML Schema WG were worrying that RDF would be imposed upon them from upon high (see http://www.w3.org/TR/schema-arch and nearby). A few years later under the Semantic Web Activity, the RDF specs were remade as the 'RDF Core', in parallel with the first phase of OWL standardisation. Nothing major was changed in RDF or RDFS, but a few things were tidied up. But this isn't about Working Group politics really. The truth is both simpler and nicer: each specification builds upon bits that are touch on in lesser detail in previous specs. So in RDF M+S it was natural to introduce the idea of classes and properties, in a very light way (it was initially couched in terms of set membership). RDFS made this more explicit, and provided as small a schema language as could be created. OWL in turn took RDFS and added in a lot of things people wanted, eg. class specific constraints, class membership rules, etc. And so this has left us with things scattered across various namespaces. I agree it could have been made tidier, but this was the partitioning we had in the late '90s and we're sorta left with it still. |
|
I'm not sure if you really want to know the details (doesn't help building apps ;) but a little warning in advance: one should not to mix up the RDF model (the abstract syntax) with serialisations such as RDF/XML or RDFa as well as the model with the semantics. Due to historical reasons and compromises made in the W3C standardisation process (but hey, to be fair, that's typical in standardisation, right ;) these things have not evolved in parallel (or: at the same time) but there were essentially two major outputs: 1999/2000 and 2004 (together with OWL). That said, if you must, the answer is essentially in the RDF Semantics document in sec 3.1 and sec 4.1 - warning: you can go blind reading this :D Further, related resources are:
|
|
The problem there is that in the Semantic Web Stack RDF Schema is defined as a separate layer on top of RDF Core. Like Eric, I'm wondering why this is the way it has been designed. What I found out was that RDF has been released initially in 1999, while RDFS with all these class-related properties and types has been released in 2000. My guess is that the intent of W3C was to create a Class structure, but didn't fully anticipate yet how to manage this. [edit: I saw that there is an alternative image of the Semantic Web Stack available at http://groupme.org/GroupMe/resource/492; Here RDF and RDFS are grouped together] |
|
As to why it's namespaced to the RDF namespace and not the Schema namespace I'm not sure - perhaps someone who's been working with it for longer can give you the reasons/history behind that in another answer. To be honest though pretty much all real-world RDF data is built using at least some RDF Schema even if no inference or anything is done |

