SUO: RE: Knowing that something is a class
Hi Fred,
Thanks for your message. See my comments below.
-Ian
> -----Original Message-----
> From: Frederick N. Chase [mailto:fnc@mitre.org]
> Sent: Thursday, March 08, 2001 7:51 AM
> To: Ian Niles
> Cc: 'standard-upper-ontology@majordomo.ieee.org'
> Subject: Re: Knowing that something is a class
>
>
> Hi Ian,
>
> I'm still thinking about this.
> It brings to mind the situation in Smalltalk.
> I think there was a little magic performed with respect to the top of
> the object class hierarchy and with respect to classes as objects--
>
> In "Smalltalk-80 The Language" by Goldberg and Robson
> there's chapter on Metaclasses.
>
> "Since all Smalltalk-80 system components are represented by
> objects and
> all objects are instances of a class,
> the classes themselves must be representd by instances of a class.
> A class whose instances are themselves classes is called a metaclass.
> ...
> .....
> In earlier versions of the Smalltalk system,
> there was only one metaclass, named Class.....
> <snip discussion and figure>...
> ...
> This approach had the difficulty that ....
> ...
> THe Smalltalk-80 system removes the restriction that all classes have
> the
> same message protcol by making each class an instance of its own
> metaclass.
> ...
> Metaclasses are similar to other classes because they contain
> the methods used by their instances.
> Metaclasses are diffrent form other classes because
> they are not themselves instances of metaclasses.
> Instead, they are all instances of a class called Metaclass.
> Also, metaclasses do not have class names. ......."
I think "metaclasses", as they're referred to in SmallTalk, are very useful
things, and, in fact, there are several examples of classes of classes in
the merged ontology. 'ContinuantType' and 'OccurrentType' are classes of
classes of, respectively, object-like and process-like things.
>
> -Fred
>
> Ian Niles wrote:
> >
> > Hi Fred,
> >
> > I think the general import of your message is that it's very
> > difficult to find a place for the concept of 'Class' in an
> upper-level
> > ontology. It's most natural to make it a subclass and/or
> instance of
> > 'Abstract', as I did in the merged ontology. However, this
> is problematic,
> > since every concept in the ontology is a class and, hence,
> both an instance
> > and a subclass of 'Class'. Any suggestions you might have
> about how to
> > resolve this problem would be very welcome. See more
> detailed comments
> > below.
> >
> > Thanks,
> > Ian
> >
> > > -----Original Message-----
> > > From: Frederick N. Chase [mailto:fnc@mitre.org]
> > > Sent: Wednesday, February 28, 2001 8:23 AM
> > > To: Ian Niles
> > > Subject: Knowing that something is a class
> > >
> > >
> > > Dear Ian,
> > >
> > >
> > > In the merged ontology,
> > > I can infer that Abstract is a class, from:
> > >
> > > ;; Abstract is a class (is an instance of Class).
> > >
> > > (instance-of Abstract Class)
> >
> > You're right that this is in the merged ontology, but I
> wonder if we should
> > replace it with a general rule, since every concept in the
> ontology is a
> > class and, hence, an instance of 'Class'.
> >
> > >
> > >
> > >
> > > But I don't think I can infer that, e.g.,
> > > Physical is a class (is an instance of Class).
> > >
> >
> > Right, parity is lacking here, so maybe we need a general
> rule that would
> > allow us to infer that all nodes of the ontology are
> instances of 'Class'.
> >
> > >
> > > Perhaps we should also have something like:
> > >
> > > ;; Entity is a class.
> > >
> > >
> > > (=>
> > > (instance-of Entity Class))
> >
> > Right, this would follow from the general rule as well.
> >
> > >
> > >
> > > ;; Every subclass is a class.
> >
> > This actually follows from a definition of 'subclass-of' which I've
> > formulated and which I'll propose adding to the "Structural
> Ontology"
> > section of the merged ontology:
> >
> > (instance-of subclass-of TransitiveRelation)
> > (nth-domain subclass-of 1 Class)
> > (nth-domain subclass-of 2 Class)
> > (documentation subclass-of "Class C is a subclass of parent
> class P if and
> > only if every instance of C is also an instance of P. A class may
> > have multiple superclasses and subclasses. Subclass-of is
> transitive:
> > if (subclass-of C1 C2) and (subclass-of C2 C3) then
> (subclass-of C1 C3).")
> >
>
> Ian, I don't believe what I wrote, below, follows from what you write,
> above.
> What you write (above) makes a conclusion about something being
> subclass-of.
> What I wrote (below) makes a conclusion about something being
> instance-of.
Actually, the 'nth-domain' assertions regarding 'subclass-of' do imply that
every subclass is a class. According to the rewrite rule in the "Structural
Ontology" section of the merged ontology, '(nth-domain subclass-of 1 Class)'
is equivalent to the following:
(forall (?S ?X)
(=>
(subclass-of ?S ?X)
(instance-of ?S Class)))
This says that every subclass is itself a class, and it implies the
formulation that you give at the end of your message.
>
> Is there any reason we can't add the below as a theorem or
> axiom of the
> Merged Ontology?
>
> (And also add (=> (instance-of Entity Class)) as a theorem or axiom?)
This actually is already a theorem of the merged ontology. One of the
top-level assertions in the merged ontology is the following:
(subclass-of Physical Entity)
Since the rewrite rule for 'nth-domain' and '(nth-domain subclass-of 2
Class)' imply the following,
(forall (?S ?X)
(=>
(subclass-of ?S ?X)
(instance-of ?X Class)))
we derive (instance-of Entity Class).
>
> -Fred
>
> > >
> > > (=>
> > > (and
> > > (instance-of ?x Class)
> > > (subclass-of ?s ?x))
> > > (instance-of ?s Class))
> > >
> > >
> > >
> > > (This is the first SUO-KIF I've written, so ...)
> > >
> > >
> > > Regards,
> > >
> > > -Fred
> > >
> > >
> > >
>
>
>