owlcollab / owltools

OWLTools
BSD 3-Clause "New" or "Revised" License
108 stars 33 forks source link

Extracting taxon constraints from an ontology #113

Open cmungall opened 9 years ago

cmungall commented 9 years ago

There are different ways of representing TCs in OWL - non-logical (shortcuts) and logical, with different logical forms almost equivalent tuned to different reasoners.

We should have a method for extracting TCs from an ontology (by class or whole ontology) that abstracts over these issues.

It should support inferred direct TCs, to free the client from needing to calculate this. It should of course indicate whether the TC is inferred. It could also indicate if a TC is redundant.

id: GOTAXON:nnnnn   ## optional - not there for all GO axioms
type: "TaxonAxiom"
is_complemented: {true,false}   # true = in-taxon, # false = never-in-taxon
is_entailed: {true,false}   # true if not asserted and is an entailment
is_direct: {true, false} # only direct would be shown in AmiGO, QuickGO
subClass: GO:nnnnnn
taxonClass: NCBITaxon:nnnnnn
annotations:
   - property: P1
     value: V1
   - property: P2
     value: V2

cc @fbastian

cmungall commented 9 years ago

Implementation:

for positive (in-taxon), ExpressionMaterializingReasoner can be used. We basically find the most specific (direct) in_taxon Some ?Y superclass for every GO class.

Based on https://code.google.com/p/elk-reasoner/wiki/OwlFeatures, it seems that EMR would work for complement of: https://github.com/owlcollab/expression-materializing-reasoner/issues/1