- 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