geneontology / obographs

Basic and Advanced OBO Graphs: specification and reference implementation
64 stars 12 forks source link

Include a generic structure that captures all untranslatable axioms #94

Open cmungall opened 1 year ago

cmungall commented 1 year ago

the goal for obographs has always been to make the common 99% cases easy but to have a way to do the last 1%

for any untranslatable axiom, we should have a json representation. this should be generic. It can follow the functional syntax spec or it can follow a s-expression style.

See this thread:

https://lists.w3.org/Archives/Public/public-owl-dev/2016OctDec/0000.html

A generic s-expression style might be:

["SubClassOf", <SubClass>, <SuperClass> [<Annotation1>, ...]]`

(obviously this wouldn't be used in the simple case where both are NCs but the idea is to fall back to the generic when a specific pattern is not captured)

Or more like functional syntax:

["SubClassOf", [<Annotation1>, ...] <SubClass>, <SuperClass>]`

But I prefer named arguments and specific types, e.g

type: SubClassOf
subClass: <SubClass>
superClass: <SuperClass>
annotations:
 - ...

Could be coordinated with:

ddooley commented 1 year ago

On this note, is there a way to get more debug information right now? At moment to answer https://github.com/FoodOntology/foodon/issues/277 I'm trying to convert https://github.com/FoodOntology/foodon/blob/master/foodon.owl into obograph using robot 1.9.4 via "robot convert --input ../../foodon.owl --output foodon.json -vvv" but error is cryptic:

OBO GRAPH ERROR Could not convert ontology to OBO Graph (see https://github.com/geneontology/obographs)
For details see: http://robot.obolibrary.org/errors#obo-graph-error
java.io.IOException: errors#OBO GRAPH ERROR Could not convert ontology to OBO Graph (see https://github.com/geneontology/obographs)

I suspect its because there might be two IAO definitions or two rdfs:comments somewhere on a FoodOn entity which technically OWL allows but which the obo format itself forbids? (We'll bring FoodOn into obo format conformance within guidelines of new language tag stuff).