mcoenca / obo-relations

Automatically exported from code.google.com/p/obo-relations
0 stars 0 forks source link

partonomy propagation for only in taxon #16

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Shouldn't only _in_taxon propagate over part_of:

part_of o only_in_taxon -> only_in_taxon 

This property chain is not present, but as far as I can tell it should be

e.g. if (all) bone mineralisation part_of some 'bone development' then if bone 
development occurs only in vertebrates, the same must be true of bone 
mineralisation.

Original issue reported on code.google.com by dosu...@gmail.com on 8 Apr 2014 at 2:52

GoogleCodeExporter commented 9 years ago
I don't think that works. If 'bone development' part_of some 'organ 
development' (I made that up, but you see my point), and 'organ development' 
happens in organisms other than vertebrates, then your inference would be wrong.

Should it propagate over 'has_part' though? In the example above, it would 
*not* be true that 'organ development' has_part some 'bone development', but it 
would be true that 'bone development' has_part some 'bone mineralization'.  

Original comment by bjoern.p...@gmail.com on 8 Apr 2014 at 3:52

GoogleCodeExporter commented 9 years ago
You seem to be reading the property chain backwards.  If I'd written it this 
way round, then your inference would be true:

'bone development' only_in_taxon some vertebtrata
only_in_taxon o part_of -> only_in_taxon  
'bone development' part_of some 'organ development'
=> 'organ development' only_in_taxon some vertebrata.

Writing my example out fully:

'bone development' only_in_taxon some vertebtrata
part_of o only_in_taxon -> only_in_taxon
'bone mineralisation' part_of some 'bone development'
=> 'bone mineralisation'  only_in_taxon some vertebtrata

Original comment by dosu...@gmail.com on 8 Apr 2014 at 4:01

GoogleCodeExporter commented 9 years ago
Yes, I got it backwards. You had an '(all)' in your writeup that I overlooked. 
Should have read more careful, sorry. 

Original comment by bjoern.p...@gmail.com on 8 Apr 2014 at 4:11

GoogleCodeExporter commented 9 years ago
The core relation is 'in taxon' (RO:0002162), which has all the property chains 
attached.

only_in_taxon is an unusual relation. It can be defined as a shortcut relation 
using a universal restriction, but the taxon constraints are currently used in 
large ontologies with EL++ reasoning. We implement the shortcut in a different 
way, by adding (in_taxon some X) DisjointWith (in_taxon some Y) pairs for all 
sibling taxon classes.

Some more background info here:

 * http://douroucouli.wordpress.com/2012/04/24/taxon-constraints-in-owl/
 * https://github.com/obophenotype/uberon/wiki/Taxon-constraints

This is a little opaque. Ideally this would be handled via some kind of rewrite 
rule applied at the time of reasoning. 

http://douroucouli.wordpress.com/2012/04/24/taxon-constraints-in-owl/

Original comment by cmung...@gmail.com on 8 Apr 2014 at 5:44