Re: RDF Issue rdfs-clarify-subClass-and-instance

Graham, Brian--

Thanks for the comments.  Actually, I think the situation is both less 
complicated and more complicated than you've described it, as I'll try 
to explain below.

graham wideman wrote:

> Brian:
> Heh heh heh, your writing is helpful in tone, though I'm not sure whether I'm getting clearer or muddier :-)
> 1. You are right that *part* of what's confusing is the phrase "(or some subclass of rdfs:Class)". Absent that phrase, I would believe that if a resource Description has a property 
> rdf:type...Class
> then that resource is a Class, and otherwise it's not.  (If we can't delete that phrase, then I have no idea how to distinguish a Class from a non-Class.)

I'm grateful for Brian's confidence in my infallibility, but I've also 
received a comment from Peter Patel-Schneider on this, and on looking at 
it carefully, I've decided that the inclusion of the phrase "(or some 
subclass of rdfs:Class)" is wrong (or at least unnecessarily confusing), 
and the current Primer Editor's Draft (which has not yet been made 
public) doesn't include it.   The phrase was included originally because 
it was copied from the original RDFS Schema specification (the March 
2000 Candidate Rec).  However, there is nothing in that document that 
actually illustrates that particular usage (all the subclass examples 
are declared with rdfs:type...Class, and none of the diagrams show it). 
   There's nothing in the current Schema draft that says anything about 
this either.  Moreover, nowhere do we explain the ramifications of 
declaring a new class by using an rdf:type property to point to a 
subclass of rdfs:Class.  Mind you, I think Brian's example works, at 
least up to the point where we can't say anything about the class 
hierarchy of bwm:AClass, and at that point it seems a little 
counterintuitive (and I think we'd need to look carefully at that, were 
we to continue to want to talk about classes being defined by having 
their types be subclasses, but I'm hesitant to have the Primer continue 
to use that phrase without that investigation).  However, see my 
response to the next point:

> Or maybe the escape hatch is that it's possible to write:
> rdf:type...SomethingThatsNotAClass
> Is that legit? If it is (and I'm now thinking it is) then the earlier sentence in the primer: 
> "The RDF Schema *type* system allows resources to be defined as *instances* of one or more *classes*." 
> ... is kind of misleading, since apparently the type system (ie: the system using the keyword "type") can define resources to be of something other than classes as well.

This is where things may appear a little complicated.  In the first 
place (at least as far as I know), rdf:type doesn't require that its 
object (the thing it points to) be a Class, nor does it require that an 
application that uses rdf:type even use RDFS (note the "rdf:" namespace 
on rdf:type).  The intent is that it be used for "type-like" things, but 
it doesn't specifically require RDFS classes;  so users could "roll 
their own" type systems if they wanted (or point to classes or types 
from DAML, OWL, or some other language that defines "type-like" things). 
  So "the RDFS type system" allows instances to be declared as Classes, 
but RDF doesn't require that only RDFS classes be used (nor does it 
require that an application even think that there *are* such things as 
RDFS classes).  This is a point of interaction between RDF and RDFS that 
may require a little more explanation.

Having said that, (and assuming we've removed the "offending" phrase), 
do things make better sense?  What additional explanations would you 



Frank Manola                   The MITRE Corporation
202 Burlington Road, MS A345   Bedford, MA 01730-1420       voice: 781-271-8147   FAX: 781-271-875

Received on Tuesday, 20 August 2002 09:39:57 UTC