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