W3C home > Mailing lists > Public > www-rdf-interest@w3.org > May 2004

Re: interpretation of instance and subclass

From: Benja Fallenstein <b.fallenstein@gmx.de>
Date: Sat, 08 May 2004 12:47:53 +0300
Message-ID: <409CACC9.6000202@gmx.de>
To: "Burkett, Bill" <WBurkett@modulant.com>
Cc: www-rdf-interest@w3.org

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


I think the part from which all of this follows, and the one that you
really have to wrap your mind around for the rest to become obvious, is
that rdfs:Class is an instance of itself. (Of course, the whole thing is
already obvious to me, so maybe my explanation won't help...)

Let's look at a normal rdf:type triple:

~    prs:timbl   rdf:type   foaf:Person.

Obviously, we can infer from this triple that foaf:Person must be a class.

Or as a triple:

~    foaf:Person   rdf:type   rdfs:Class.

But if we apply the same rule again (the object of rdf:type is a class),
we find that:

~    rdfs:Class   rdf:type   rdfs:Class.

Which makes sense if we see rdfs:Class as 'the kind of thing that can
appear as the object of an rdf:type triple'...

So rdfs:Class is both an instance of itself, and a subclass of itself
(since every class is a subclass of itself). We can call rdfs:Class a
'metaclass,' since it is a class of classes.

With that definition, *any* metaclass must be both--

- - an instance of rdfs:Class

~  (because a 'class of classes' is by definition a class)

- - a subclass of rdfs:Class

~  (because if all members of C are classes, then all its members
~  are instances of rdfs:Class, and therefore C is a subclass
~  of rdfs:Class)

The examples you cite are both instances and subclasses of
rdfs:Class/owl:Class simply because they are metaclasses.

| Bill Burkett wrote:

|>A fundamental
|>problem I'm having is understanding the transtivity of membership.  If
m is an instance/member
|>of class M, and M is both an instance/member of and a subclass of
class C, then transitivity
|>would state that m is also an instance/member of C (because M is a
subclassOf C).

In other words, for the cases we have looked at:

~    If M is a metaclass, and m is an instance of M, then m is a class
~    (instance of rdfs:Class/owl:Class).

Sounds sensible.

|>This would
|>further imply that since M is also an instance of C, m and M are
somehow peers as instances of
|>C - which I find odd and hard to understand/reconcile.

More: In your examples, m, M, *and C* are peers as instances of C!

This is because all of m, M, and C are classes. M and C are a special
kind of class, a metaclass, but they're still classes. So yes, in that
sense they are 'peers.'

I find it all obvious ;) ;) ;)

Dunno if this helps,
- - Benja

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFAnKzIUvR5J6wSKPMRAk+xAKCLW9VeUTkRX55wzTJUfClKP1WqigCeJHHz
AWeMIjon2q0+CRirKGnwFUM=
=dHZm
-----END PGP SIGNATURE-----
Received on Saturday, 8 May 2004 05:48:59 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:07 GMT