Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

Re: Reflections on SUO-KIF Ontology




> 
> David,
> 
> I am starting to describe (in XML)
> [http://www.ontologos.org/IFF/Basic%20IFF%20Ontology.html] a base ontology
> for IFF (Information Flow Framework) that has much in common, although not
> precisely the same semantics, with the SUO-KIF ontology.
> 
> Regards,
> Robert
> 
> Robert E. Kent
> rekent@ontologos.org
> 
> > -----Original Message-----
> > From: owner-standard-upper-ontology@ieee.org
> > [mailto:owner-standard-upper-ontology@ieee.org]On Behalf Of David
> > Whitten
> > Sent: Friday, July 10, 2893 3:44 PM
> > To: standard-upper-ontology@ieee.org
> > Subject: Reflections on SUO-KIF Ontology
> >
> >
> >
> >
> > I have been reviewing the beginning Structural
> > Ontology from http://ltsc.ieee.org/suo/suo-kif.html
> > :
> > : Appendix B - Structural Ontology
> > : (instance-of ?X ?Y) - ?X is an individual which is
> > :                       a member of class ?Y
> > : (subclass-of ?X ?Y) - ?X is a class which is a
> > :                       subclass of class ?Y.
> > : subclass-of is transitive and
> > :R1:(=>
> > :    (and
> > :      (subclass-of ?X ?Y)
> > :      (subclass-of ?Y ?Z))
> > :    (subclass-of ?X ?Z))
> > :
> > : instance-of is transitive through subclass-of.
> > :
> > :R2:(=>
> > :    (and
> > :      (instance-of ?X ?Y)
> > :      (subclass-of ?Y ?Z))
> > :    (instance-of ?X ?Z))
> > :
> > : (nth-domain ?X ?N ?Y) -
> > : the argument in position ?N of relation ?X
> > : is a member of class ?Y.
> > : Note that ?N=0 could be used for the return type
> > : of functional relations.
> > :
> > : One term is also required which could be
> > : called "top" (as in Sowa's ontology) or
> > : "Thing" (as in Cyc).
> >
> > In reviewing this, I see several ideas missing.
> > I hope to cover those in this message.
> > We don't have terms for the class of relations,
> > nor for the class of positions, even though
> > they are mentioned in the definition of nth-domain.
> > Until we find a good name for these,
> > I'll use "!Relation", "!Number", and "!Class".
> > I am using the ! to mark names that I am
> > arbitrarily creating for the purposes
> > of discussion in this document.  I am assuming
> > that if the group likes the names I am suggesting
> > that we remove the ! from the beginning.
> >
> > This means we need to define something like :
> >
> > R3: (nth-domain nth-domain 1 !Relation)
> > R4: (nth-domain nth-domain 2 !Number)
> > R5: (nth-domain nth-domain 3 !Class)
> > R6: (instance-of nth-domain !Relation)
> >
> > The definition of instance-of and subclass-of
> > require terms for an "!Individual" and for a
> > "!Class". We also need to define the nth-domain
> > statements for instance-of and subclass-of.
> >
> > R7: (nth-domain instance-of 1 !Individual)
> > R8: (nth-domain instance-of 2 !Class)
> > R9: (instance-of instance-of !Relation)
> >
> > R10: (nth-domain subclass-of 1 !Class)
> > R11: (nth-domain subclass-of 2 !Class)
> > R12: (instance-of subclass-of !Relation)
> >
> > I'm assuming we aren't including the vocabulary
> > of KIF in the ontology, but I can see good reasons
> > to want to do so. Likewise, we may want
> > to add special subclasses of !Relation,
> > like !TransitiveRelation, so we have generalized
> > statements to handle transitivity of any relations,
> > not just the special cases I have labeled R1 and R2.
> >
> > If we have "top" as the uppermost element in the
> > ontology, we should have a rule such as:
> > R13: (forall (?ANY) (instance-of ?ANY top))
> >
> > This is one of Sowa's three axioms for top.
> > (page 498 in Sowa's KR Book)
> > it corresponds to:
> > SOWA3: Everything is an instance of T : (Ax) T (x).
> >
> > The other two are:
> > SOWA1: There exists something : (Ex) T (x).
> >
> > Assuming "existing" means the same as being in
> > the relation instance-of to top, we get:
> >
> > R14: (exists (?ONE) (instance-of ?ONE top))
> >
> > SOWA2: Every type is a subtype of T: (At:Type) t <= T.
> >
> > Assuming "being a subtype of" is the same as being
> > a subclass of, and that Type is another name for "Class"
> > (by this way, this may be tenuous, as I don't see Type
> > mentioned in Sowa's lattice generated by the top three
> > distinctions)
> > we could express this axiom as:
> >
> > R15: (forall (?t)
> >         (=>
> >            (instance-of ?t !Class)
> >            (subclass-of ?t top)))
> >
> >
> > NOTE: I didn't use the syntax:
> > (forall ((?ANY !Class)) ...)
> > because it isn't in the proposed BNF.  Which is rather
> > confusing because the explanation in section 6.3 uses
> > it in one of the examples.
> >
> > It appears we have a vocabulary currently of
> > (in alphabetical order) :
> >
> > "!Class", "!Individual", "instance-of", "nth-domain",
> > "!Number", "!Relation", "subclass-of", "top"
> >
> > we know all of these are instances of top by R14
> > (SOWA2), but we don't yet have statements for the
> > subclasses relations between them.
> > Drawing from the Cyc Kernel KB at
> > http://www.cyc.com/cycl.html
> > we can see sentences:  (#$isa #$Thing #$Collection)
> > which would correspond in our ontology's vocabulary
> > to the statement:
> >
> > R16: (instance-of top !Class)
> >
> > the axiom: (#$isa #$Collection #$Collection) would be
> >
> > R17: (instance-of !Class !Class)
> >
> > the axiom (#$genls #$Collection #$SetOrCollection)
> > would require a new vocabulary term.  Looking at
> > the Upper Cyc Ontology, it is clear that the Cycorp
> > folks make a distinction between being a member of
> > a set and being an instance of a collection.
> > I can see a lot of merit in this distinction,
> > but our ontology currently does not make it. The
> > argument in a nutshell is that a #$SetOrCollection
> > would have subclasses, one for #$Set-Mathematical,
> > which has no restrictions on membership, and the
> > other #$Collection which requires that all members
> > are of the same 'kind'. There is also an axiom
> > (#$genls #$SetOrCollection #$Thing)
> > so we need at least (by transitivity) to include
> > the statement:
> >
> >  (subclass-of !Class top)
> >
> > This statement is redundant, however, because
> > it is a specialization of R12, which says that
> > all instances of !Class are subclasses of top.
> >
> > Cyc uses the name #$Relationship for the term I
> > have named !Relation, the relevant sentences are:
> > (#$isa #$Relationship #$Collection) or
> >
> > R18: (instance-of !Relation !Class)
> >
> > and (#$genls #$Relationship #$IndividualObject)
> >
> > R19: (subclass-of !Relation !Individual)
> >
> > There are several subclasses of #$Relationship
> > which may be of interest to us, one of them is
> > is #$ReflexiveBinaryPredicate.  #$genls is
> > mentioned as an instance of this one, which
> > brings to mind that the associated axiom
> > for subclass-of should be in our Structural
> > Ontology.
> >
> > R20: (forall (?C)
> >         (=>
> >              (subclass-of ?C !Class)
> >              (subclass-of ?C ?C))
> >
> >
> > Those who are interested will note that
> > the more general form of the axiom in the
> > Kernel KB of
> >   (#$implies
> >             (#$isa ?PRED #$ReflexiveBinaryPredicate)
> >             (?PRED ?OBJ ?OBJ))
> >
> > depends on an interaction with the #$arg1Isa and
> > #$arg2Isa declared for the predicate mentioned as
> > ?PRED. This requires that the same collection be
> > named for both of them.
> > In our vocabulary, it would require that given
> > (nth-domain ?PRED 1 ?C1) and (nth-domain ?PRED 1 ?C2)
> > it must be the case that ?C1 == ?C2.
> >
> > The sentences for #$IndividualObject apply to our
> > term !Individual, thus:
> >  (#$isa #$IndividualObject #$Collection)
> >
> > R21: (instance-of !Individual !Class)
> >
> > and (#$genls #$IndividualObject #$Thing)
> > which produces the redundant (by R12) :
> >
> > (subclass-of !Individual top)
> >
> >
> > The term !Number is equivalent to
> > #$NonNegativeInteger in the Cyc Upper Ontology.
> > Tracing through all the extra classes in that
> > document suggests adding the statements:
> >
> > R22: (instance-of !Number !Class)
> > R23: (genls !Number !Individual)
> >
> > In reviewing the Cyc document, I think we
> > should add another relation, which I am
> > going to name !nth-subclass.
> > ie:
> >
> >  (!nth-subclass ?X ?N ?Y) -
> >  the argument in position ?N of relation ?X
> >  is a subclass of class ?Y.
> >  Note that ?N=0 could be used for the
> >  return type of functional relations.
> >
> > defining it would add the statements:
> >
> > R24: (nth-domain nth-subclass 1 !Relation)
> > R25: (nth-domain nth-subclass 2 !Number)
> > R26: (nth-domain nth-subclass 3 !Class)
> > R27: (instance-of nth-subclass !Relation)
> >
> > Reviewing the document, I see we have no
> > statements defining nth-domain and nth-subclass.
> >
> > I believe the following (second order statements)
> > would handle part of the meaning. (for the
> > cases for Unary, Binary, and Trinary relations,
> > and where the class is specified for the
> > first argument of the relation).
> > I'm not sure how to write the general case.
> > I'm also inclined to think that
> > the (instance-of ?REL !Relation)
> > and (instance-of ?COL !Class)
> > tests I have inserted are unnecessary given
> > the statements R3, R5, R24, and R26.
> > I have added them for clarity, but would like
> > to hear the opinions of the group.
> >
> > R28:
> >   (forall (?REL ?INS ?COL)
> >      (=>
> >         (and
> >              (nth-domain ?REL 1 ?COL)
> >              (instance-of ?REL !Relation)
> >              (?REL ?INS))
> >         (instance-of  ?INS  ?COL)))
> > R29:
> >   (forall (?REL ?INS ?COL ?ANY)
> >      (=>
> >         (and
> >              (nth-domain ?REL 1 ?COL)
> >              (instance-of ?REL !Relation)
> >              (?REL ?INS ?ANY))
> >         (instance-of  ?INS  ?COL)))
> >
> > R30:
> >   (forall (?REL ?INS ?COL ?ANY ?ANY-2)
> >      (=>
> >         (and
> >              (nth-domain ?REL 1 ?COL)
> >              (instance-of ?REL !Relation)
> >              (?REL ?INS ?ANY ?ANY-2))
> >         (instance-of  ?INS  ?COL)))
> >
> > R31:
> >   (forall (?REL ?SUB ?COL)
> >      (=>
> >         (and
> >              (nth-subclass ?REL 1 ?COL)
> >              (instance-of ?REL !Relation)
> >              (instance-of ?COL !Class)
> >              (?REL ?SUB))
> >         (subclass-of  ?SUB  ?COL)))
> >
> > R32:
> >   (forall (?REL ?SUB ?COL ?ANY)
> >      (=>
> >         (and
> >              (nth-subclass ?REL 1 ?COL)
> >              (instance-of ?REL !Relation)
> >              (instance-of ?COL !Class)
> >              (?REL ?SUB ?ANY))
> >         (subclass-of  ?SUB  ?COL)))
> >
> > R33:
> >   (forall (?REL ?SUB ?COL ?ANY ?ANY-2)
> >      (=>
> >         (and
> >              (nth-subclass ?REL 1 ?COL)
> >              (instance-of ?REL !Relation)
> >              (instance-of ?COL !Class)
> >              (?REL ?SUB ?ANY ?ANY-2))
> >         (subclass-of  ?SUB  ?COL)))
> >
> > I'm leaving the definitions of some of
> > my terms to the discussion on the list.
> > Since someone else has promised to come up
> > with simple axioms defining the meaning of
> > !Number, I won't do so.  The meaning
> > of !Relation is intuitively the collection
> > of all 'slots' or 'properties' or
> > 'relationships' or 'predicates'. A second
> > order definition of it might use the ?REL
> > syntax such as the following for the
> > unary, binary, and trinary relation cases:
> >
> > R34:
> >  (forall (?REL ?A1 ?A2 ?A3)
> >     (=>
> >        (or
> >            (?REL ?A1)
> >            (?REL ?A1 ?A2)
> >            (?REL ?A1 ?A2 ?A3))
> >        (instance-of ?REL !Relation)
> >
> > I am uneasy with this statement because
> > it runs afoul of the problem of defining
> > a rule for a variable number of arguments,
> > but beyond this, it requires that an
> > assertion exist in the knowledge base
> > that uses a relation before the relation
> > may be recognized as being an instance of
> > the class !Relation.
> >
> > !Class and !Instance are inextricably bound
> > together with the meaning of instance-of
> > and subclass-of.
> > !Class is defined by the fact that it
> > is the class that expresses the meaning of the
> > class for the first and second argument to subclass-of
> > and the first argument of instance-of. !Instance is
> > the class that expresses the meaning of the second
> > argument of instance-of.
> > I welcome any statements to include that
> > express this meaning better than the ones we have
> > now, but consider these to be reasonable.
> >
> > In conclusion, I have reviewed the classes and
> > relations in the SUO-KIF document at
> > http://ltsc.ieee.org/suo/suo-kif.html ,
> > I have added several terms required to better
> > state the meanings of the terms mentioned there.
> > I have come up with 34 statements that I hope
> > are suitable for inclusion in the upper ontology.
> > I expect that all of them will require discussion
> > and some can be better stated by those with more
> > experience in these matters than I.
> >
> > David (whitten@netcom.com)
> >
> 
>