Re: subclass loops, proper subclasses and so on

From: Peter F. Patel-Schneider (pfps@research.bell-labs.com)
Date: 08/29/01


From: pat hayes <phayes@ai.uwf.edu>
Subject: subclass loops, proper subclasses and so on
Date: Tue, 28 Aug 2001 15:20:34 -0700

> Re.  today's telecon, I would like to bring up the question of the 
> connections (or lack) between the two issues of whether 'subclass' is 
> understood to mean proper subclass, and whether subclass loops should 
> be illegal. I confess to having conflated these in my mind, largely I 
> suppose because I couldn't imagine any reason to forbid subclass 
> loops other than because 'subclassOf' is understood to hold only 
> between proper subclasses.
> 
> Since Peter, Ian and others all joined in a chorus of dismay when I 
> said this, and since this assumption is currently embedded in the 
> draft RDF/S model theory, I would like to pursue it a little more.
> 
> 1. What reason can there be to forbid subclass loops, other than 
> subClassOf being understood to mean proper subclass?

There is a modelling issue here, one that has very little to do with
semantics, and much more to do with pragmantics.  Consider it in the same
class as forbidding incoherent class definitions.  

Some systems (like CLASSIC) forbid the definition of incoherent classes,
i.e., classes whose extension is empty in every model.  There is nothing in
the semantics that makes these classes any more illegal than any other
classes.  However, the creation of such classes often results from a
modelling error, and thus they are forbidden in CLASSIC.  (Note that I am
now of the opinion that this was a mistake in CLASSIC.  I now feel that a
user interface should complain when such classes are defined, but that the
KR system itself should allow them.)

Similarly, subclass loops in expressively-impoverished systems like RDFS
are generally the result of a modelling error.  Any decent tool for the
creation or integration of KBs should provide some sort of indication that
a subclass loop has been detected.  A very strict interpretation of this is
to forbid such loops in the KR system, as was done in RDFS v 1.0.  (Here
my view is that this is not the best solution.)

> 2. Suppose Subclass is the subclass relation, Psubclass the 
> proper-subclass relation, and R is any binary irreflexive relation 
> between classes; then (R intersect Subclass) = (R intersect 
> PSubclass). From which is follows that if some formal relation symbol 
> on classes is loop-free, then if it can be interpreted as meaning 
> subclass then it can also be interpreted as meaning proper subclass, 
> without changing the truthvalues of any expressions in the language. 
> So, what justification can there be for asserting that 
> rdfs:subClassOf does *not* mean proper subclass?

I don't see how this can be true.  

Suppose R is ``has a different ID than'', and we have the following
DAML+OIL definitions 
	<daml:Class rdf:ID="Upper">
	</daml:Class>
	<daml:Class rdf:ID="Lower">
	   <daml:equivalentTo>
	      <daml:Class rdf:about="Upper"/>
	   </daml:equivalentTo>
	</daml:Class">
Then Upper and Lower are Subclass but not PSubclass related, and 
(R intersect Subclass) relations but not (R intersect PSubclass) related.

> Thanks for any input/feedback. As the RDFCore WG is on the very edge 
> of adopting the model theory as a working draft, i would greatly 
> appreciate any feedback asap, so we don't go public with a major bug.

If RDF(S) was to exist in isolation then these issues would not matter
nearly so much.  However, if RDF(S) is supposed to be *the* foundation for
the semantic web it *must* be amenable to extension, and issues such as
this have to be considered in the context of more-expressive formalisms. 

> Pat

peter


This archive was generated by hypermail 2.1.4 : 04/02/02 EST