owlcollab / oboformat

Automatically exported from code.google.com/p/oboformat
5 stars 2 forks source link

ECAs with >2 arguments #80

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago

The obo2owl specification only allows limited forms of ECAs - you can translate

    ECA(x y) ==> id: x <newline> equivalent_to: y, where x and y and classes

or

    ECA(x IntersectionOf(a1 a2 ... an)) ==> intersection_of, where ai is either a class or simple SomeValuesFrom

however, there is nothing in the spec for 3 or more arguments

    ECA(x y z)

Now this axioms is structurally different from but logically equivalent to

    ECA(x y)
    ECA(y z)

The structure is destroyed when you roundtrip through rdf/xml 
(http://www.w3.org/TR/owl2-mapping-to-rdf/#Translation_of_Axioms_without_Annotat
ions) - but not necessarily through other OWL syntaxes.

This means that you can't save a 3-argument ECA directly into obo from an OWL 
document, but if you roundtrip through RDF/XML, you can.

(actually it's more complex - now untranslateable axioms get added to the 
header, so technically the 3-arg ECA is preserved, and will be there if you 
write OWL from the obo, but it's not in the obo in a 'natural' way)

This is unexpected and confusing. We xould probably change the spec to be more 
aligned with the rdf/xml one such that multi-arg ECAs are split.

This is not our top priority right now. But it's important the current behavior 
is noted.

Original issue reported on code.google.com by cmung...@gmail.com on 19 Dec 2012 at 6:24