Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo


#244 Trim redundant links when integrating XPs.

Amina Abdulla
OBO-Edit (271)

Can we have an option to make the reasoner trim* the redundant is_a links that result from integrating cross-product definitions into the class heirarchy?

*By trim I mean
(a) remove them from display in the reasoned ontology
(b) remove them from versions of the ontology that result from saving implied links.

I've posted an example of the problem here:

intercalary segment sensillum
intersection_of: sense organ
intersection_of: part_of intercalary segment

With reasoning, we get redundant links like this:

sense organ
. is_a dorsolateral papilla <-
. is_a intercalary segment sensillum
. . is_a dorsolateral papilla *

*= inferred link
<- = hard link, now redundant.

Note - the hard link should stay in an edited copy of the ontology (otherwise the XP defs won't work!). But I'm proposing that they should be removed from display in the reasoned ontology and from version saved with reasoned links for public consumption.

Relevant screenshots - including one showing how this works already in Protege4, are shown here:



    • priority: 5 --> 7
  • Logged In: YES
    Originator: YES

    Note - this is a serious obstacle to the widespread use of XP definitions. Editing fly_anatomy.obo without this option in place is painfully slow an error prone.

  • Chris Mungall
    Chris Mungall

    Logged In: YES
    Originator: NO

    David - how about setting up a global link filter to simply not show redundant links? Of course you will not be able to see genuine undesirable redundant links.

    The alternative is to abandon repair mode and do not asserted redundant is_as in the editors version

  • Logged In: YES
    Originator: YES

    RE: filtering redundant links - Good point. Filtered save which removes redundant links would solve my problem. Of course, that will require filtered save to be fixed.

    Don't understand your second point though. I'm not using repair mode. The problem is that is_a links higher up the chain become redundant as soon as new is_a links lower further down the same chain are inferred by the reasoner because of a term defined completely using 'intersection_of'. This should be clear from the example:
    These newly redundant links must be asserted in the edited version for the reasoner to do its thing.

  • Hi all,
    Now that filtering is fixed for the OTE and for saving and the new reasoner is working well I've come to the conclusion that Chris is right. As far as I can tell from tests done so far - this can be achieved using a link filter to remove redundant links in the OTE. The same filter can be used in combination with "save implied links [for presentation]" to remove redundant links when implied links are instantiated for release.

    So - I'm switching this to fixed.


    • status: open --> open-fixed
    • status: open-fixed --> closed-fixed