Thursday, November 24, 2005
Center of Excellence Proposal
à
ONTAC stands for Ontology and Taxonomy Coordinating Working Group
It is a working group of
Semantic Interoperability Community of Practice (SICoP)
Communication from Matthew West
Dear Barry,
Thank you for pointing me to your paper:
http://genomebiology.com/2005/6/5/R46
Which shows how you use relations between classes.
I have now had a chance to read this, so I can make a considered comparison to our approach in ISO 15926.
I notice that for a number of relations you identify at the individual level you single out a relation between classes in addition to the relation at the individual level. You have:
Part_of
Located_in
Contained_in
Adjacent_to
Co-adjacent_to
Transformation_of
Derives_from
Preceded_by
Has_participant
Has_agent
You also recognize a reciprocal relation (e.g. has_parts to indicate necessary parts) and one that combines the two (e.g. integral_parts).
I will take part_of as an example.
The relevant piece from your paper to this discussion is below (some formatting lost in cut and paste).
QUOTE
Parthood as a relation
between classes. To define part_of as a relation between classes we again need to
distinguish the two cases of continuants and processes, even though the
explicit reference to instants of time now falls away. For continuants, we have
C part_of C1 if and only if any instance of C at any time is an instance-level
part of some instance of C1 at that time, as for example in: cell nucleus part_
of cell.
Formally:
C part_of C1 = [definition]
for all c, t, if Cct then there is some c1 such that C1c1t and c part_of c1 at
t.
Note the 'all-some'
structure of this definition, a structure which will recur in almost all the
relations treated here. C part_of C1 defines a relational property of permanent
parthood for Cs. It tells us that Cs, whenever they exist, exist as parts of
C1s. We can also define in the obvious way C temporary_part_of C1 (every C
exists at some time in its existence as part of some C1) and also C
initial_part_of C1 (every C is such that it begins to exist as part of some
instance of C1).
END QUOTE
I should start by questioning whether this is even a true or useful statement. From your initial comment:
Uniquely, among existing contributions, the BFO Relation Ontology allows the drawing of a clear distinction between relations on the level of instances (e.g. between your heart and your body) and relations on the level of types (e.g. between the type human heart and the type human body).
I presume you mean that:
human heart part_of human body
Would be a (good) example of your class level part_of relation. However, hearts can clearly be removed from bodies, and have been successfully transplanted to another body, with at least some period in between, and I suspect even specimen hearts that have been preserved would still be considered and recognised as hearts.
Perhaps a more appropriate thing to say is that human hearts are created in and as part of a human body (though I remember seeing a photo of a mouse with a human ear growing on its back).
So perhaps what you really want to say is that hearts are NORMALLY parts of bodies. But that is not what your axiomatisation says.
If we move up a level, and look at what you are doing, then what we see is that you are really defining some constraints that might apply to some subset of a part_of relation at the individual level.
This is a more general problem and there is certainly more than one set of constraints that one might wish to apply to the individual level part_of relation. For example (following your approach of using relations between classes):
part_may_be_part_of_whole (e.g. impellers may be part of pumps - but may be on a shelf)
For additional reciprocal relations we could have:
has_exactly_one_part (e.g. cars have one steering wheel) has_exactly_two_parts (e.g. mammal has two eyes) ...
What I fail to see is why the particular constraint you have picked out for the relation between classes and its reciprocal are privileged. Certainly no explanation is offered.
This pattern is repeated with the other class level relations. It seems you consider that there is only one pattern in each case. This does not reflect our experience.
Reflecting on this at a different level:
Uniquely, among existing contributions, the BFO Relation Ontology allows the drawing of a clear distinction between relations on the level of instances (e.g. between your heart and your body) and relations on the level of types
I am not sure quite what is 'unique' or indeed 'clear' about this distinction between relations between classes and individuals.
I understand that over a 100 years ago Frege introduced predication for non-monadic properties and since then there has been a clear distinction in type between 'relations on the level of instances' and 'relations on the level of types' - (for non-monadic predicates) between ordered tuples and predicates. So, I do not understand why you think your contribution unique in drawing this distinction.
Furthermore, it seems to me that your exposition makes less of a distinction between these two things - as both these levels appear to be the same ontological type.
I would also like to clarify the relationship between some different sorts of relation.
You state:
1) There is a general category of Relation
2) There are the following sub-types (sub-kinds, sub-classes, etc) of the Relation Category:
<class, class> <instance, class> <instance, instance>
3) The type <class, class> has among its sub-types (etc.) 'is a' and this has sub-types 'C is a C' and 'P is a P'.
4) The type <instance, class> has among its sub-types (etc.) 'instance of' and this has sub-types 'c instance_of C at t' and 'p instance_of P'.
As a hierarchy this looks like:
Relation
<class, class>
'is a' '
C is a C'
'P is a P'.
<instance, class>
'instance of'
'c instance_of C at t'
'p instance_of P'.
<instance, instance>
Ordinary language would lead us to believe that the sub-type 'links' shown in this hierarchy are 'instances of' the 'is a' relation. Is this the case or is there some ontological queasiness or logical nicety that stops you from taking this natural approach?
As an aside, it would appear from this that you are restricting yourself to first order objects - in other words, you do not recognize classes of classes (or higher order universals). Hence you use individual/particular and instance inter-changeably. Is that correct? Do you not find this an onerous restriction?
Other questions arise from your use a format of T r t - where T is a class, r is a relation and t is an individual - similar to typed logics. This would seem to imply a 'relation' between r and T and r and t (for example, in the case of 'p instance_of P' between this relation and the class of process particulars and the class of process classes - in other words, the relation is between members of the class of process particulars and members of class of process classes).
This seems to me very similar to the notion of role in entity modelling. Is this correct?
And, what kind of relation is this in your scheme of things? It does not seem to fit well into any of the categories in the hierarchy above.
Coming back to the two part_of relations that are at the heart of the 'clear distinction' being proposed.
"c part_of c1 at t - a primitive relation between two continuant
instances and a time at which the one is part of the other"
and
"For continuants, we have C part_of C1 if and only if any instance of C at any time is an instance-level part of some instance of C1 at that time, as for example in: cell nucleus part_ of cell."
It would seem to me that there is a common natural understanding that there is a relation between these this class and instance level relation. This does not seem to appear in your ontology. It also appears difficult to place it - for example, it cannot be 'instance of' as these are both relations and that relation is between instances and classes. Do you feel the need for this relation, and if so, how would you fit it into your framework?
It also seems to me useful to look at the normal set-theoretic interpretation of the relations you describe.
a) For the first, there
would be a class of ordered triples <c, c1, t> for which it is true that
'c is a part of c1 at t' - and this would be the extension of that relation.
b) For the second, there would be a class of ordered pairs <C, C1> for which it is true that 'C is a part of C1' - and this would be the extension of that relation.
Is this how you envision what you describe this working? If not, how do you see this working?
I think it is worth noting that your description of the class level relation C part_of C1 above, implies the existence of a class of ordered triples <c, c1, t> that range over C, C1 and time - and that this class is a sub-class of the instance level part class mentioned in a) above. As I understand it, this is the more common way of showing the relationship between the instance and class level. It also provides a natural explanation of the relation between the two.
Given this class, I do not see the utility of introducing another more distantly related instance of class level relations to play the same role. I'd be interested in an explanation of your rationale in doing this.
Still I suppose that is just preamble to the question of whether instances of class_of_composition are actually classes (well I guess in your terminology sub-relations).
From below:
Uniquely, among existing contributions, the BFO Relation Ontology allows the drawing of a clear distinction between relations on the level of instances (e.g. between your heart and your body) and relations on the level of types (e.g. between the type human heart and the type human body).
Just for the record, ISO 15926 also supports this.
Note the use of the word "support". What I described reflects how we support specifying the kind of constraints you have specified. However, our approach to this problem is more fine grained, not restricting ourselves to two constraints, one for the relation and another for its reciprocal.
We use an entity relationship formalism that is well understood in the database and systems design world, but may not be familiar to you.
To support the constraint you wish to say, we create an instance of class_of_composition. This is in essence a subrelation of composition_of_individual.
Let us take your example of heart part_of_ body, and the constraint that a heart must be part of some body (and assume for the moment it is true).
I think we can do a useful bit of generalization. It seems to me that what is true for a heart is probably true for any organ - let us assume so anyway. So I name my instance of class_of_composition (say) OrganPartOfBody. Despite being implicit in the name, I now need to specify the restricted domain of individuals that can be parts and wholes. This is done through two relationships, one of which will point to the class_of_individual, organ, the other to the class_of_individual, body.
I now have the opportunity to add cardinality constraints, so I can say that each organ must be a part an OrganPartOfBody relationship. (We can add the reciprocal constraint as well if required). These relations are an essential part of the definition of the class of relationship, and so are often brought into the English definition.