W3C home > Mailing lists > Public > www-rdf-comments@w3.org > July to September 2002

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

From: Brian McBride <bwm@hplb.hpl.hp.com>
Date: Tue, 20 Aug 2002 15:09:12 +0100
Message-Id: <5.1.0.14.0.20020820144538.02958d80@0-mail-1.hpl.hp.com>
To: graham wideman <graham@wideman-one.com>, Frank Manola <fmanola@mitre.org>
Cc: www-rdf-comments@w3.org

At 04:19 20/08/2002 -0700, graham wideman wrote:
>Brian:
>
>Heh heh heh, your writing is helpful in tone,

Hmmm, well I was hoping for helpful in substance, but maybe we are getting 
there.

>  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.

Ok so far as it goes, and for most purposes that is as far as one needs to 
go.

There is a rule:

   a rdf:type b .
   b rdfs:subClassOf c .

implies

   a rdf:type c.

ok?  Now consider:

   bwm:subClass rdfs:subClassOf rdfs:Class .
   <foo> rdf:type bwm:subClass .

Applying the rule, we now get

   <foo> rdf:type rdfs:Class .

i.e. <foo> is an rdfs:Class.


>   (If we can't delete that phrase, then I have no idea how to distinguish 
> a Class from a non-Class.
>
>Or maybe the escape hatch is that it's possible to write:
>
>rdf:type...SomethingThatsNotAClass
>
>Is that legit?

No.  The value of an rdf:type property must be a class.

>  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.
>
>2.
> >I could define the class
> >bwm:ClassesDefinedByBrianMcBride to be a subclass of rdfs:Class.  I could
> >then say something like:
> >   bwm:ClassesDefinedByBrianMcBride rdfs:subClassOf rdfs:Class .
> >   bwm:AClass                       rdf:type 
> bwm:ClassesDefinedByBrianMcBride .
> >
> >This implies
> >
> >   bwm:AClass rdf:type rdfs:Class .
> >
> >Now none of this says anything about the class hierarchy of bwm:AClass.  We
> >know nothing about its sub and super classes.
>
>Eh? Er, I mean, yes indeed, this gets to the heart of the matter!
>
>You've written that AClass is of *type* ClassesDefinedByBrianMcBride, 
>which is a *subClassOf* Class. Now, unless I really suspend disbelief, to 
>me this looks like you've said that AClass has ancestors 
>ClassesDefinedByBrianMcBride and Class!

What do you mean by ancestor?  You can conclude

    AClass rdf:type rdfs:Class .

because of the rule given above.  But you are not empowered to conclude:

   AClass rdfs:subClassOf rdfs:Class.

Consider another example.

   <penguin> rdfs:subClassOf <bird> .
   <p> rdf:type <penguin> .

does not imply

   <p> rdfs:subClassOf <bird> .

it does imply

   <p> rdf:type <bird> .


>You say it doesn't mean that, and certainly there are two different 
>keywords involved which presumably have two different intents, but I sure 
>as heck can't tease out what the different intents are!

subClassOf is similar to subsetOf, and type is similar to memberOf.  In 
this regard its similar to an object oriented programming language.  Draw 
the venn diagrams - they help.

Brian
Received on Tuesday, 20 August 2002 10:43:12 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 21 September 2012 14:16:30 GMT