OBO-Edit:Why xps are problematic for GO in OE1
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.