Re: Simple modelling of a temporal sequence

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