> >3. Introduce a rule into RDFS prohibiting the situation above:
>
> My take is that this going beyond what RDFS is trying to do. Others may
> disagree. Danbri, Guha?
I am now convinced that this is a real problem in RDFS. The rdfs:subClassOf
property already restricts its domain and range to rdfs:Class, because
subclassing only "makes sense" for classes. But what happens when (for
whatever reason) you have different kinds of classes, i.e. different
subclasses of rdfs:Class? I think subclassing only "makes sense" for
classes instantiated from the same metaclass [1]. (This can be relaxed to
"related metaclasses", with the relationship as explained below.)
I think UML is generally a good guide for metamodeling [2], and it does have
this restriction in the form of 2.5.3.20 [5]: "A GeneralizableElement may
only be a child of GeneralizableElement of the same kind." This essentially
says that if A subclasses B, then A's metaclass must be a subclass of B's
metaclass.
The problem now is to adapt this constraint to a metamodel that a) is
unstratified and b) has multiple classification. Actually (a) turns out not
to be a problem. For (b), I think we must take the rule above and expand it
to all pairs of metaclasses.
In terms of the RDF model theory, I propose the two extra closure rules
below. rdfs10 just makes rdfs:subClassOf reflexive. [3] rdfs11 imposes the
metaclass subclass restriction on rdfs:subClassOf.
rdfs10
If E contains:
xxx [rdf:type] [rdfs:Class]
then add:
xxx [rdfs:subClassOf] xxx
rdfs11
If E contains:
www [rdfs:subClassOf] xxx
www [rdf:type] yyy
xxx [rdf:type] zzz
then add:
yyy [rdfs:subClassOf] zzz
Comments and criticisms are, of course, appreciated.
-- P.
[1] I'm only using the word metaclass to indicate a resource that is a
subclass of rdfs:Class. Nothing to do with stratification.
[2] Please don't let the mention of UML negatively prejudice my comment.
The problem is inherent to all class-based systems that support subclassing,
but UML happens to be a relatively well-specified one.
[3] I didn't follow all the discussions about proper subclasses and such,
but when searching the archive the trend seemed to be towards a non-proper
interpretation. If this is wrong, rdfs11 will be a bit trickier to write.
--
Piotr Kaminski <piotr@ideanest.com> http://www.ideanest.com
It's the heart afraid of breaking that never learns to dance