Re: SUO: RE: Reducing n-ary relations to binary
I (David Whitten) have chosen to mark comments by Adam Pease with AP:
and my comments by DW:, those by Matthew West are marked already with MW:
If I wasn't sure who made a comment, I dd not mark them.
> > >MW: In that case, I would choose NTH-SUBCLASS:
> > >
> > > ;(NTH-SUBCLASS ?REL ?POS ?TYPE)
> > > ; - the argument in position ?POS
> > > ; of relation ?REL is a subclass of class ?TYPE.
> > > ; ?POS=0 is used for the return type
> > > ; of functional relations
> >
> >MW: Well the argument ought to be a variable, in which case I assume that it
> >is supposed to be a member of class TYPE.
>
> AOL I think David's comment is correct. It may just not be clear
> enough. 'nth-subclass' is a relation. It specifies the typing constraints
> of another relation (which let's call the target relation). Argument 1 to
> the nth-subclass relation, is an instance of the class
> 'relation'. Argument 2 specifies the argument position in the target
> relation that the statement is addressing. Argument 3 specifies the class
> of that argument to the target relation. The arguments should not be
> variables. It would be reasonable for any class to be defined as an
> instance of the class 'type', however, that would be covered in the
> definition of each class that could be used in an 'nth-subclass' statement.
>
DW: I believe Adam has clarified my admittedly terse statement.
>AP: As a concrete example,
>
> (subclass-of TangibleThing Thing)
> (nth-subclass between 1 TangibleThing)
> (nth-subclass between 2 TangibleThing)
> (nth-subclass between 3 TangibleThing)
>
> (instance-of between Relation)
>
> one might also state
>
> (instance-of TangibleThing Class)
>
DW: I must admit I don't think of 'between' as the relation Adam
is describing here, I would probably name it 'physicallyBetween'
but I see no other nit to pick with his concrete example
> >MW:Otherwise this seems to be a subroutine template specifying what the
> >variable in a particular position in a particular relation is a member of.
> >There are no axioms stating this, but there are some relations below (that
> >are subroutine calls and are not defined by axioms) that define the meaning.
> >
DW:Since the SUO-KIF as currently constituted does not have mathematical
definitions (or macro substitutions) which is what you seem to call
subroutine templates, it would be presumptuous of me to not use the
syntax that is the published syntax that this study group has agreed
to use. My personal preference would be to augment SUO-KIF with
appropriate syntax as you suggest, but that was not the intent of
the Starter Structural Ontology which NTH-SUBCLASS is a part of.
> > >DW: ;; define signature of "NTH-SUBCLASS" relation
> > > R041: (NTH-DOMAIN NTH-SUBCLASS 1 RELATION)
> > > R042: (NTH-DOMAIN NTH-SUBCLASS 2 POSITION)
> > > R043: (NTH-DOMAIN NTH-SUBCLASS 3 CLASS)
> >
> MW: These seem to specify the domain for each position is the relation
>AP: yes, these specify the domain for each position in the relation
DW: agreed.
> > >DW: R044: (NTH-ARGUMENT-NAME NTH-SUBCLASS 1 "?REL")
> > > R045: (NTH-ARGUMENT-NAME NTH-SUBCLASS 2 "?POS")
> > > R046: (NTH-ARGUMENT-NAME NTH-SUBCLASS 3 "?TYPE")
> >
> >MW: These are specifying arguments for each position for the nth-subclass
> >relation (I'm not sure why you are doing this as well as specifying the
> >domain)
> AP: I don't think these are necessary. The names one gives to variables in an
> expression are irrelevant. Any token will do.
DW: thse are NOT specifying arguments but simply prefered names. They are
only necessary in the sense that documentation is necessary, since the
NTH-ARGUMENT-NAME relation is primarily for documentation.
> > > DW:R047: (VALENCE NTH-SUBCLASS 3)
> >MW: This seems to be defining the number of places in the nth-subclass
> >relation.
>AP: yes
DW: agreed.
> > > DW: R048: (INSTANCE-OF NTH-SUBCLASS RELATION)
> >MW: This seems to suggest that nth-subclass is a member of relation. I think
> >this is a mistake, nth-subclass should be a subtype of relation. (each
> >member of nth-subclass is a member of relation).
>AP: I believe David is correct in this. Any particular relation is not itself
> a set of relations. 'between' does not specify a set of between-ness
> relations, it's just a particular relation. I'd suggest (as I think David
> does), that if we are to treat relations as first class objects (and I know
> Chris has cautioned us about this so we have to examine the implications of
> this carefully), that we have a relation similar to Cyc's 'genlPreds' which
> allows us to state that a relation is a more specific case of another
> relation. Avoiding overloading the 'subclass-of' relation for this use is
> important.
DW: agreed. I find Matthews reference to a member of nth-subclass
to not make any sense. nth-subclass, in my mind, is a constant or name.
only sets, collections or classes may have members.
I agree that we should have something like genlPreds or SUB-RELATION
defined.
> > > R049: ;;definition
> > > (forall (?SUBTYPE ?TYPE ?REL ?POS ?ASRT)
> > > (=>
> > > (INSTANCE-OF ?SUBTYPE CLASS)
> > > (INSTANCE-OF ?TYPE CLASS)
> > > (INSTANCE-OF ?POS POSITION)
> > > (INSTANCE-OF ?REL RELATION)
> > > (INSTANCE-OF ?ASRT ASSERTION)
> > > (/= ?POS 0)
> >
> >MW: Well you probably want it to be positive integer, so you really need to
> >say a bit more than this.
DW: I admit that I did not include the definition of POSITION from
the Starter Structural Ontology, that I had posted previously.
In it, POSITION is actually limited to numbers from 0 to 10.
> >
> > > (SUBCLASS-OF ?SUBTYPE ?TYPE)
> >
> >MW: It's not clear here what you mean by ?TYPE.
>AP: The token used for the variable is unimportant. The axiom has the same
> meaning if we rename all appearances of ?TYPE to ?GENSYM01, all appearances
> of ?SUBTYPE to ?GENSYM02 etc.
DW: agreed. however this goes further to set a constraint on the values
of the variable ?SUBTYPE that only those which stand in a SUBCLASS-OF
relation to some other class (signified by ?TYPE) will be suitable values.
This also sets a constraint on the values of the variable ?TYPE such that
only those classes which are a 'super-class' of some other class (here
signified by ?SUBTYPE) are suitable values for ?TYPE.
> > > (NTH-ARGUMENT ?ASRT 0 ?REL)
> >
> >MW: I thought you just said above that ?POS could not equal zero?
>AP: good catch. This axiom needs to be corrected.
DW:I agree that I stated ?POS could not equal zero. I fail to see
any reference to ?POS on this line. This line constrains the variable
?ASRT to be those instances of ASSERTION which have a zeroth argument
which is signified by the variable ?REL. It also constrains ?REL
to be an instance of RELATION which occurs as the zeroth argument
of some assertion. The impact of these on the variable ?POS is not
intended, and how you see such an impact is not clear to me.
> > > (NTH-ARGUMENT ?ASRT ?POS ?INS)
> >
> >MW: I don't understand what this is saying. What is ?INS, some instance?
>AP: I think David may be missing a clause
DW: Matthew, your surmise is correct, and Adam is correct that I missed
a clause (INSTANCE-OF ?INS INSTANCE) in the antecedent.
The requirement is that the variable ?INS is constrained to the value
of the argument indexed by ?POS of the assertion ?ASRT mentioned
previously. Likewise, it is a further constraint on ?POS that it is
limited to possible position values which are extant in the assertion
identified by ?ASRT. Finally, since ?POS has been constrained to be
not equal to zero, it is a further constraint on the assertions which
are suitable values for the variable ?ASRT becasue it references a non-zero
argument of those assertions. (hence assertions with 0-ary relations
are not suitable.)
> > > (NTH-SUBCLASS ?REL ?POS ?TYPE)
> > > ))
> >
> >MW: I don't see why you have these 4 statements above. What are they for?
DW: as you stated earlier, this is a constraint on the definition of the
NTH-SUBCLASS relation. I thought you would appreciate working from a
partially formal definition, since my last example (of the meeting)
had only been defined with a paragraph of English text.
> > >DW: How would you suggest this be reduced to a group of binary predicates?
> > > It seems rather natural as a ternary relation.
> >MW: Well to be honest, I wouldn't start from here. It looks to me as if what
> >you are doing here is defining some structures that are convenient for some
> >relational implementation of a meta-model for a logic system.
DW: I'm not sure that this is a 'relational implementation', but it certainly
is part of a structural ontology (that I had posted earlier to this list).
I used it specifically because it would be familiar to the mailing
list members.
> >MW: I would model the whole thing in a fundamentally different way
> >following the
> >principles below, which means that none of the things you are saying above
> >would be said by relations, because they are all subroutine-like in nature,
> >and are used for defining types of relation. So if I take the problem
> >statement as defining some class of relation.
DW:I am sure the group would benefit from your formulating a structural
ontology for the SUO effort. Having clear alternatives gives the study
group a broader perspective on different ways to approach the huge
task that we have chosen to undertake. I am not ready to proide a
non-declarative approach to this problem, but welcome any effective
method you have to solve the same problem.
>AP: Maybe a better relation would be between. How would you model that
> relation and why would a binary version of that be better than the ternary
> version?
DW: As Adam states, BETWEEN is a fine relation in the object language
rather than NTH-SUBCLASS from the metalanguage. I chose NTH-SUBCLASS
because it was trinary with arguments of differing kinds.
Adam has already commented on these principles. I will do so myself.
> >MW: I note the principles I identified in my last note below:
> >
> >PRINCIPLE #1 Do not model constraints in the structure of relations.
I agree that making constraints explicit is a Good Thing.
Since a relation is a connection between two or more individuals,
I question what you mean by its structure.
Clearly, since a relation is a kind of constraint, a sentence
stating a relation between individuals constrains their meaning,
or provides a model that a system can use to reflect upon
the existing (represented) relation.
So I doubt that you are stating that you should not model constraints
using relations. If the 'meaning' of a relation is part of its definition
I don't think the definition is part of the structure.
> >PRINCIPLE #2 Model things in terms of their underlying nature, not in terms
> >of the role played, or the information about the thing that you are
> >interested in.
I'm convinced that you mean something by 'model' that has a
great significance to you, but seems opaque to my tired mind.
> >PRINCIPLE #3 When modelling start at the individual level, modelling
> >relations between individuals. This means your models are grounded.
Seems reasonable. I wouldn't use this as justification to duplicate
data over all 9 million instances of a class if the relation hods
for any instance of the class, however. I would model that kind of
relation with a single universal statement rather than multiple
ground atomic statements.
> >PRINCIPLE #4 All classes should be part of a subtype-supertype hierarchy,
> >and should be the subtype of at least one other class (except Thing of
> >course).
I would agree with this. I would also state that all relations should
be part of subrelation-superrelation hierarchy, that all
contexts/microtheories shuld be part of generalization-specialization
hierarchy, and might even state that all rules are part of subsumption
hierarchy as well. I'm not sure why you limit yourself to only classes
in the principle.
> >PRINCIPLE #5 Model relations in terms of the state of the object that
> >actually participates in the relation. This will ensure that history and
> >change are properly accounted for.
You are using relation to mean something I am not clear about.
I think we lost PRINCIPLE #6, by the way.
> >PRINCIPLE #7 Ordinary relations should only be used to represent the states
> >of affairs between individuals.
I think you call an ordinary relation what I would call an object level
relation. I don't see your point however, as the only think a relation
in the object level can refer to are individuals. (as oppose to relations
in the metalanguage which have a richer universe of discourse)
> >I will try to model within these.
> >
> >So where-as you have defined a set of subroutines that can be applied to the
> >definition of any class of relation, I shall define a particular one.
> >
> >Let us take the parent-of relation (please excuse the semi-KIF):
> >
> >(Forall ?x forsome ?y forsome ?z
> >(=> (= ?x (parent-of ?y ?z))
> > (and
> > (instance-of ?y parent)
> > (instance-of ?z offspring)))
?x is the every possible (maybe true, maybe false) assertion/sentence
that refers to two individuals denoted by ?y and ?z. This seems to say
that you have two classes 'parent' (which could be named
Argument-1-of-parent-of) and 'offspring' (which could be named
Argument-2-of-parent-of). I would assume they are coextensional with Thing,
but I see that you constraints on them to be subclasses of person.
> >(Forall ?x
> >(=> (instance-of ?x parent) (instance-of ?x person)
> >(Forall ?x
> >(=> (instance-of ?x offspring) (instance-of ?x person)
> I think this would be done in SUO-KIF as follows:
>
> (=> (parent-of ?y ?z)
> (and
> (instance-of ?y parent)
> (instance-of ?z offspring)))
>
> I'm unclear why the existential quantifiers are given in your version, or
> why the ?x is included.
>
> (=> (instance-of ?x parent) (instance-of ?x person))
>
> (=> (instance-of ?x offspring) (instance-of ?x person))
>
> These could be stated instead as
>
> (subclass-of parent person)
> (subclass-of offspring person)
>
> I might take exception though to the example in that 'parent' and
> 'offspring' do not deserve to be classes but rather are
> relations. However, since you like reifying temporal subparts of
> individuals I can see how this would make sense for you as a class.
I would like to see a definition agreed upon by the SUO study group
about what we mean when we say a name 'deserves' to be a class.
This will be productive in my opinion.
> >Note that this defines:
> > - the valence of the relation type - all of them have some x and some y
> > - the role of each place. (This actually defines the semantics of parent
> >and offspring)
> > - the type of each role
> >
> >You will note that:
> > - I have only used binary relations
> > - I have not needed the superstructure you seem to want to define
> > - in definition of the relation is relatively compact
> > - the relation is defined in terms of axioms.
> > - I have complied with the principles I recommended
> > - probably there are lots of technical errors with the KIF.
> >
> >Regards
> > Matthew
You defined a binary relation. You ignored the trinary relation
that I asked about. I suppose that you could say that parent-of
is trinary because two parents are necessary to produce a child,
but I think this is a different relation that you axiomatized.
I never stated the structural ontology was needed in simple cases.
This is certainly a simple case that could be defined more compactly
using the structural ontology, therefore I disagree that your definition
is relatively compact. You did not provide any guidance that
you would reject (parent-of Abel Cain Lucy),
nor that you would reject (parent-of Abel Abel),
but I feel confident that you would reject both of these.
I agree that all relations should be defined in terms of axioms.
I still have the suspicion you mean something different than I do
when you say relation, however.
I think by defining classes parent and offspring, that you violated
your principle #2, since being a parent or an offspring is not a
part of the underlying nature of an individual, but a role that
those individuals play, due to the nature of the relation parent-of.
Thank you for your continued participation on this topic.
It is only by thrashing out thse topics that we get a clear
idea what we want to do and how we are doing it.
David