ontology-access-kit icon indicating copy to clipboard operation
ontology-access-kit copied to clipboard

`ProntoImplementation` Obograph: Differences found compared to `owlapi`/`robot`

Open joeflack4 opened this issue 2 years ago • 2 comments

Overview

I'm trying to use OAK to get an Obograph, and tried ProntoImplementation. I noticed that there are differences between what the bioontologies package gives me, and what ProntoImplementation is giving me. It looks like ProntoImplementation still needs to implement certain Obograph properties, and certain other properties may be problematic (more info in discussion).

Example

These are some screenshots from PyCharm, inspecting the Obograph object for a recent version of mondo.owl.

ProntoImplementation

pronto implementation

Bioontologies

bioontologies

Discussion

I. Empty properties

  • [ ] 1. id
  • [ ] 2. meta
  • [ ] 3. domainRangeAxioms
  • [ ] 4. logicalDefinitionAxioms
  • [ ] 5. propertyChainAxioms

II. Potentially incomplete/problematic properties

  • [ ] 1. nodes: 41,549 vs bioontologies 44,865
  • [ ] 2. edges: 85,787 vs bioontologies 85,146

I didn't quite have the time to do further analysis on this. I would have liked to (i) serialize these to JSON and link them here, (ii) look through the differences in nodes and edges to find specifically which nodes/edges are missing.

Another thing I don't know about is equivalentNodesSets. It's an empty list in my ProntoImplementation object, but also in my bioontologies object, so I can't tell at a glance if this is among the properties in ProntoImplementation that has not been implemented.

There are some further differences; some properties in one but not the other. But I think that other than all the properties listed in (I) and (II) above, these are not part of the Obographs schema, so those are not problems. One of the properties that could probably be removed from ProntoImplementation, though, is a top level property lbl (for "label"). I think this is only supposed to appear in nodes.

Related

  • #338

joeflack4 avatar Oct 29 '22 22:10 joeflack4

I believe biointologies is simply calling the owlapi via robot-py, so the best way to phrase this is as the difference between owlapi and oak

cmungall avatar Dec 09 '22 01:12 cmungall

That makes sense. I just updated the issue title.

I am only slightly familiar with owlapi. Isn't it robot though that uses owlapi to do the conversion to Obographs, though? I don't imagine that robot is simply calling an Obographs dumper that exists within owlapi. If I'm incorrect though I'd definitely like to know.

joeflack4 avatar Dec 09 '22 05:12 joeflack4