OBO-Edit:Why xps are problematic for GO in OE1

From GO Wiki
Jump to: navigation, search

Note: this assumes we are doing things the conservative way and using the reasoner in the Repair Mode


When the regulation XPs go live in the core ontology file, we will maintaing both xp links (ie. necessary and sufficient conditions) alongside normal links (ie. necessary conditions):

[Term]
id: GO:xxxxxx
name: regulation of X
intersection_of: GO:aaaaa ! biological regulation
intersection_of: regulates X
is_a: GO:bbbbb ! regulation of Y
relationship: regulates X

The advantage of this approach is that the xp definitions can be easily stripped from the file:

[Term]
id: GO:xxxxxx
name: regulation of X
is_a: GO:bbbbb ! regulation of Y
relationship: regulates X

The result is complete in that the consumer gets the full graph.

However, in OE1, xp links cannot be maintained side-by-side with normal links if they connect the same terms with the same relation. They get confused.

This means if we try to maintain:

[Term]
id: GO:xxxxxx
name: regulation of X
intersection_of: GO:aaaaa ! biological regulation
intersection_of: regulates X
is_a: GO:bbbbb ! regulation of Y
relationship: regulates X

We lose the normal link:

[Term]
id: GO:xxxxxx
name: regulation of X
intersection_of: GO:aaaaa ! biological regulation
intersection_of: regulates X
is_a: GO:bbbbb ! regulation of Y

This means when we strip the xp links we get:

[Term]
id: GO:xxxxxx
name: regulation of X
is_a: GO:bbbbb ! regulation of Y

Which is incomplete

This may not be so bad. As the regulates link is always trivially derivable from the xp link; so we can have a script that restores the normal link:

[Term]
id: GO:xxxxxx
name: regulation of X
is_a: GO:bbbbb ! regulation of Y
relationship: regulates X

However, in cases where the is_a parent is the same as the genus:

[Term]
id: GO:xxxxxx
name: regulation of biological process
intersection_of: GO:aaaaa ! biological regulation
intersection_of: regulates GO:0008150 ! biological process
is_a: GO:aaaaa ! biological regulation
relationship: regulates X

We would lose the is_a link as it corresponds to the genus link:

[Term]
id: GO:xxxxxx
name: regulation of biological process
intersection_of: GO:aaaaa ! biological regulation
intersection_of: regulates GO:0008150 ! biological process

So when we strip we get:

[Term]
id: GO:xxxxxx
name: regulation of biological process
relationship: regulates X

With no is_a link

Note that we CANNOT just restate the genus as that would lead to redundancy - see the original example above

This all derives from the fact that John assumed we would be in constant reasoner-on mode, not repair mode, and we would thus not need to maintain normal links as distinct from xp links. If you don't know what repair mode means have a read of the reasoner paper.