- From: Matthew Graham <mjg@cacr.caltech.edu>
- Date: Mon, 31 Aug 2009 20:32:19 -0700
- To: Chris Mungall <cjm@berkeleybop.org>
- Cc: Owl Dev <public-owl-dev@w3.org>, David Sutherland <djs93@gen.cam.ac.uk>
- Message-Id: <55AAB39D-610D-4F99-86FE-D7626020CFA3@cacr.caltech.edu>
HI Chris,
On Aug 31, 2009, at 6:07 PM, Chris Mungall wrote:
>
> On Aug 31, 2009, at 5:06 PM, Matthew Graham wrote:
>
>> Hi,
>>
>> I'm trying to model a simple temporal sequence with a class called
>> Stage which has 5 subclasses: 2-cell, 4-cell, 8-cell, 16-cell and
>> 32-cell.
>>
>> There are also four object properties: startStage, endStage, before
>> and after. before and after are defined to be transitive and
>> inverse to each other and with domain Stage and range Stage.
>>
>> 32-cell is then defined to be: after some 16-cell; 16-cell is
>> defined as: after 8-cell; etc.
>
> This doesn't sound right. If you have
>
> EquivalentClasses(32-cell after some 16-cell)
> EquivalentClasses(16-cell after some 8-cell)
> etc
> and after is transitive
>
> then 16-cell will subsume 32-cell. The subsumption hierarchy would be
>
> 1-cell
> 2-cell
> 4-cell
> 8-cell
> ...
>
> If this is really your intent you may wish to name these classes 32-
> cell-or-after, 16-cell-or-after, etc
I defined them as: subClassOf(after some 16-cell) and not as
EquivalentClass.
> If this is not your intent then I would recommend
>
> ObjectProperty(immediatelyAfter)
> TransitiveProperty(after)
> SubPropertyOf(immediatelyAfter after)
> ObjectProperty(immediatelyBefore)
> TransitiveProperty(before)
> SubPropertyOf(immediatelyBefore before)
> inverseProperties(after before)
> inverseProperties(immediatelyAfter immediatelyBefore)
>
> EquivalentClasses(32-cell immediatelyAfter some 16-cell)
> EquivalentClasses(16-cell immediatelyAfter some 8-cell)
>
>> Finally I declare an individual called ptype1 with startStage some
>> 4-cell.
>
> Minor stylistic comment: ptype1 may be a confusing name for an
> individual. Presumably ptype1 is a temporal slice of an embryo?
>
>> I then run the reasoner on the ontology and try the DL Query:
>> startStage some (before 8-cell)
>
> Minor syntactic correction - I think you mean:
>
> startStage some (before some 8-cell)
Yes that is correct.
>
>> This does not return ptype1. Why not? Do I have to explicitly state
>> the inverse relationships, e.g. 16-cell before some 32-cell, as
>> well - why are these not inferred during reasoning?
>
> The inverses would be inferred for individual axioms. In this case I
> believe you do need to assert subclassof axioms in the inverse
> direction to get the inference you want.
>
> This should make some intuitive sense: all 32-cell stage instances
> must be preceded by some 16-cell stage instance. However, not every
> 16-cell stage instance is succeeded by some 32-cell stage instance
> (development may be terminated).
>
> For your purposes you may wish to model a 'canonical' developmental
> process in which there is no termination. In this case you can add
> 'fictitious' axioms of the form:
>
> SubClassOf(16-cell (before some 32-cell))
>
> (preferably annotating them)
>
> SubClassOf("holds in the canonical case" 16-cell (before some 32-
> cell))
>
> This may get tedious if you have lots of stages. You could possibly
> write some kind of macro that populate an axiom:
>
> SubClassOf("holds in the majority of cases" X (before some Y))
>
> for every axiom of the form
>
> EquivalentClasses(Y (immediatelyAfter some X))
>
> There are tools to make this kind of macro-generation easier (OPPL,
> Thea2, LSW)
>
> At some point you will probably want some property chain axioms e.g.
> startsBeforeStage <- startStage o before
>
> possibly even up to the full Allen algebra - then it gets
> complicated..
>
> Cheers
> Chris
>
>
>> Cheers,
>>
>> Matthew
>>
>>
>>
>
Received on Tuesday, 1 September 2009 03:33:05 UTC