geneontology / obographs

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

Commentary on obographs proposal (@kltm) #29

Open kltm opened 7 years ago

kltm commented 7 years ago

@cmungall I'm unsure of the format that you want, so I'm making an actionable super/epic (bleh); I can split these up as well if that works for you.

cmungall commented 7 years ago

Thanks, some early thoughts, more later

github links

thanks, we should fix the links

basic profile

OK, we should spell out the BOG profile :-) though it's mainly there for explanatory purposes, there is no distinct format, it's a profile like OWL2-EL etc

meta tags

The goal here is to have a fixed standard that can express the full range of OWL, with some convenient shortcuts for common idioms.

So would it make sense to have the obograph meta be an official subclass in bbop-graph

types

This needs documented better. There is no nested type in obographs.

ClassAssertion maps to a graph edge using the pred id 'type', e.g:

https://github.com/geneontology/obographs/blob/master/src/test/resources/abox.owl#L57-L58 -> https://github.com/geneontology/obographs/blob/master/examples/abox.yaml#L18-L20

We could have opted for inlining the ClassAssertion into a property of the Individual node as in bbop-graph-noctua, but that would obscure the graph structure of the overall set of axioms (which is advantageous in noctua as it's an abox editor).

Now, we also use (inlined) 'type' as a key in nodes to indicate the type in the RDF full sense. Perhaps it would be better to call these something like 'declaration' consistent with OWL-DL. These are restricted to a set of datatypes/metaclasses.

Related #11 and #7

Annotations

Maybe we should align technology, key=pred, value=val. Pred was chosen for alignment to RDF technology and to emphasis that this is a declared predicate rather than an abritrary dict key.

Example:

https://github.com/geneontology/obographs/blob/master/examples/nucleus.yaml#L173-L178

Reusability

I'm hoping that the shared intersection of bbop-graph + obo-graph is sufficient to support basic graph viz. I expect for other cases a simple translation layer would be required.

kltm commented 7 years ago

It would be interesting to see practically how incompatible obographs and bbop-graph-noctua really are (i.e. are they both "subclasses" of bbop-graph or can they be related to eachother more directly).

Also, just to note that bbop-graph-noctua has more value-type as well:

                    {
                        "value-type": "IRI",
                        "value": "gomodel_taxon_559292-5525a0fc0000001-ECO-00000
05-553ff9ed0000001",
                        "key": "evidence"
                    },
kltm commented 7 years ago

Is the coverage of this ticket considered in https://github.com/geneontology/obographs/milestone/1?