Simple modelling of a temporal sequence

View: New views
6 Messages — Rating Filter:   Alert me  

Simple modelling of a temporal sequence

by mjgraham :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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.

Finally I declare an individual called ptype1 with startStage some 4-
cell.

I then run the reasoner on the ontology and try the DL Query:  
startStage some (before 8-cell)

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?

        Cheers,

        Matthew



Parent Message unknown Re: Simple modelling of a temporal sequence

by mjgraham :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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






RE: Simple modelling of a temporal sequence

by Michael Schneider-6 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Matthew!

It sounds to me that you want to put an existential restriction on a
transitive property ("after"). Since you refer to OWL DL below, let
me say that doing so is not allowed in OWL DL, i.e. your ontology
is not a syntactic valid OWL DL ontology. See

<http://www.w3.org/TR/owl-semantics/syntax.html#transitivity_side>

So you should not expect any OWL DL reasoner to do any reasoning
at all on your ontology, but rather expect it to signal a syntax
error.

Now, you did not tell us which reasoner you are using. For example,
if you are using Pellet, then note that this reasoner actually
performs reasoning in this situation, but only after first dropping
the transitivity axiom from "after". See

<http://clarkparsia.com/pellet/faq/owl-full/>

"""
OWL-DL Restriction: OWL DL requires that no cardinality constraints
(local nor global) can be placed on transitive properties or their
inverses or any of their superproperties.

Pellet Restriction: Pellet requires this restriction. Any
transitivity axiom violating these restrictions are ignored
(cardinality restrictions are not ignored).
"""

Cheers,
Michael

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.
>
>Finally I declare an individual called ptype1 with startStage some 4-
>cell.
>
>I then run the reasoner on the ontology and try the DL Query:
>startStage some (before 8-cell)
>
>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?
>
> Cheers,
>
> Matthew
--
Dipl.-Inform. Michael Schneider
Research Scientist, Dept. Information Process Engineering (IPE)
Tel  : +49-721-9654-726
Fax  : +49-721-9654-727
Email: michael.schneider@...
WWW  : http://www.fzi.de/michael.schneider
=======================================================================
FZI Forschungszentrum Informatik an der Universität Karlsruhe
Haid-und-Neu-Str. 10-14, D-76131 Karlsruhe
Tel.: +49-721-9654-0, Fax: +49-721-9654-959
Stiftung des bürgerlichen Rechts, Az 14-0563.1, RP Karlsruhe
Vorstand: Prof. Dr.-Ing. Rüdiger Dillmann, Dipl. Wi.-Ing. Michael Flor,
Prof. Dr. Dr. h.c. Wolffried Stucky, Prof. Dr. Rudi Studer
Vorsitzender des Kuratoriums: Ministerialdirigent Günther Leßnerkraus
=======================================================================



smime.p7s (4K) Download Attachment

Re: Simple modelling of a temporal sequence

by mjgraham :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Michael,

I'm using Protege 4.0 with Pellet as the reasoner.

Can I place a universality restriction on a transitive property in OWL  
DL? 4-cell subClassOf (after only 2-cell)

Would this give me the result I want? If not, what is the recommended  
way to do this of modelling?

        Cheers,

        Matthew


On Aug 31, 2009, at 10:47 PM, Michael Schneider wrote:

> Hi Matthew!
>
> It sounds to me that you want to put an existential restriction on a
> transitive property ("after"). Since you refer to OWL DL below, let
> me say that doing so is not allowed in OWL DL, i.e. your ontology
> is not a syntactic valid OWL DL ontology. See
>
> <http://www.w3.org/TR/owl-semantics/syntax.html#transitivity_side>
>
> So you should not expect any OWL DL reasoner to do any reasoning
> at all on your ontology, but rather expect it to signal a syntax
> error.
>
> Now, you did not tell us which reasoner you are using. For example,
> if you are using Pellet, then note that this reasoner actually
> performs reasoning in this situation, but only after first dropping
> the transitivity axiom from "after". See
>
> <http://clarkparsia.com/pellet/faq/owl-full/>
>
> """
> OWL-DL Restriction: OWL DL requires that no cardinality constraints
> (local nor global) can be placed on transitive properties or their
> inverses or any of their superproperties.
>
> Pellet Restriction: Pellet requires this restriction. Any
> transitivity axiom violating these restrictions are ignored
> (cardinality restrictions are not ignored).
> """
>
> Cheers,
> Michael
>
> 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.
>>
>> Finally I declare an individual called ptype1 with startStage some 4-
>> cell.
>>
>> I then run the reasoner on the ontology and try the DL Query:
>> startStage some (before 8-cell)
>>
>> 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?
>>
>> Cheers,
>>
>> Matthew
>
> --
> Dipl.-Inform. Michael Schneider
> Research Scientist, Dept. Information Process Engineering (IPE)
> Tel  : +49-721-9654-726
> Fax  : +49-721-9654-727
> Email: michael.schneider@...
> WWW  : http://www.fzi.de/michael.schneider
> =
> ======================================================================
> FZI Forschungszentrum Informatik an der Universität Karlsruhe
> Haid-und-Neu-Str. 10-14, D-76131 Karlsruhe
> Tel.: +49-721-9654-0, Fax: +49-721-9654-959
> Stiftung des bürgerlichen Rechts, Az 14-0563.1, RP Karlsruhe
> Vorstand: Prof. Dr.-Ing. Rüdiger Dillmann, Dipl. Wi.-Ing. Michael  
> Flor,
> Prof. Dr. Dr. h.c. Wolffried Stucky, Prof. Dr. Rudi Studer
> Vorsitzender des Kuratoriums: Ministerialdirigent Günther Leßnerkraus
> =
> ======================================================================
>



RE: Simple modelling of a temporal sequence

by Michael Schneider-6 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

CORRECTION!

Existential restrictions are NOT disallowed to be placed on transitive
properties. Only cardinality restrictions are disallowed.

I must have confused existential restrictions with min-1 cardinality
restrictions in my earlier mail.

Sorry,
Michael

>-----Original Message-----
>From: Michael Schneider
>Sent: Tuesday, September 01, 2009 7:48 AM
>To: 'Matthew Graham'
>Cc: public-owl-dev@...
>Subject: RE: Simple modelling of a temporal sequence
>
>Hi Matthew!
>
>It sounds to me that you want to put an existential restriction on a
>transitive property ("after"). Since you refer to OWL DL below, let
>me say that doing so is not allowed in OWL DL, i.e. your ontology
>is not a syntactic valid OWL DL ontology. See
>
><http://www.w3.org/TR/owl-semantics/syntax.html#transitivity_side>
>
>So you should not expect any OWL DL reasoner to do any reasoning
>at all on your ontology, but rather expect it to signal a syntax
>error.
>
>Now, you did not tell us which reasoner you are using. For example,
>if you are using Pellet, then note that this reasoner actually
>performs reasoning in this situation, but only after first dropping
>the transitivity axiom from "after". See
>
><http://clarkparsia.com/pellet/faq/owl-full/>
>
>"""
>OWL-DL Restriction: OWL DL requires that no cardinality constraints
>(local nor global) can be placed on transitive properties or their
>inverses or any of their superproperties.
>
>Pellet Restriction: Pellet requires this restriction. Any
>transitivity axiom violating these restrictions are ignored
>(cardinality restrictions are not ignored).
>"""
>
>Cheers,
>Michael
>
>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.
>>
>>Finally I declare an individual called ptype1 with startStage some 4-
>>cell.
>>
>>I then run the reasoner on the ontology and try the DL Query:
>>startStage some (before 8-cell)
>>
>>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?
>>
>> Cheers,
>>
>> Matthew
>
>--
>Dipl.-Inform. Michael Schneider
>Research Scientist, Dept. Information Process Engineering (IPE)
>Tel  : +49-721-9654-726
>Fax  : +49-721-9654-727
>Email: michael.schneider@...
>WWW  : http://www.fzi.de/michael.schneider
>=======================================================================
>FZI Forschungszentrum Informatik an der Universität Karlsruhe
>Haid-und-Neu-Str. 10-14, D-76131 Karlsruhe
>Tel.: +49-721-9654-0, Fax: +49-721-9654-959
>Stiftung des bürgerlichen Rechts, Az 14-0563.1, RP Karlsruhe
>Vorstand: Prof. Dr.-Ing. Rüdiger Dillmann, Dipl. Wi.-Ing. Michael Flor,
>Prof. Dr. Dr. h.c. Wolffried Stucky, Prof. Dr. Rudi Studer
>Vorsitzender des Kuratoriums: Ministerialdirigent Günther Leßnerkraus
>=======================================================================


smime.p7s (4K) Download Attachment

Re: Simple modelling of a temporal sequence

by David Sutherland :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Matthew,

I agree with Chris' recommendations here. I just have a couple of minor
points to add: in order to be compliant with the names used in the
relations ontology, you should use 'preceded_by', rather than 'after'.
Also, I'm working on a paper on this problem (I can let you have a partial
draft if you are interested). In this paper we use 'begins_at_end_of' for
what you call 'immediately_after'. We use before, after and simultaneous
only to refer to points in time, rather than things, like stages, that have
temporal extent.

Good luck,

David

On Sep 1 2009, Matthew Graham wrote:

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