I am new in the field and I am a bit confused about the definition of the RDFS vocabulary.
Specifically, the vocabulary defines that rdfs:XMLLiteral
, which is a class, is the subclass of rdfs:Literal
(rdfs:XMLLiteral
and rdfs:Literal
are connected using rdfs:subClassOf
).
This is straightforward and is easily understood. However, the vocabulary also said the class rdfs:XMLLiteral
is an instance of rdfs:DataType
(linked by rdf:type
). So, in this case, why the rdf:type
is used instead of rdfs:subClassOf
, given both the rdfs:XMLLiteral
and the rdfs:DataType
are classes.
My personal thought is that, because subclass relationship between Class A and B (suppose A ∈ B) implies that every individual that belongs to A also belongs to B.
So suppose we have an "x" which belongs to the rdfs:XMLLiteral
class, if there was a subclass relationship between rdfs:XMLLiteral
and rdfs:DataType
, then "x" is also a rdfs:DataType
, which is not the fact (because "x" is just an individual literal). Furthermore, because the rdfs:DataType
and rdfs:Class
are connected by rdfs:subClassOf
according to the vocabulary, then "x" is also a class, if the subclass relationship between rdfs:XMLLiteral
and rdfs:DataType
existed. Therefore, such a subclass relationship should not exist.
I do not know if my thought here is right, and I hope someone can give some suggestions to help me understand the subclass relationship and instance relationship in the RDFS vocabulary.