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
Original issue reported on code.google.com by
cmung...@gmail.com
on 19 Dec 2012 at 6:24