INCATools / ontology-access-kit

Ontology Access Kit: A python library and command line application for working with ontologies
https://incatools.github.io/ontology-access-kit/
Apache License 2.0
123 stars 29 forks source link

add adapter for py-horned-owl #438

Open cmungall opened 1 year ago

cmungall commented 1 year ago

py-horned-owl can provide very fast access to owx/rdf-owl. The underlying data structures are low level s-expressions but we would wrap them and provide both the OwlInterface as well as more bioinformatician friendly ones.

It's advertised as experimental. Initial explorations (os x/arm64) revealed it to install easily and work with a variety of rdf-xml files (I didn't test on owx, it's a useless format).

I didn't test comprehensively but it faithfully preserved complex nested logical structures in ontologies like uberon:

I identified the following gaps:

The first could be worked around, so long as roundtripping (e.g. kgcl) was not desired

The second is a more major limitation given how often axiom annotation is used. however, it would still be possible to do a variety of useful operations.

Another question is regarding releases and distribution of wheels. We would want to be very careful about adding rust dependencies to core OAK (plugins fine). See also:

cmungall commented 11 months ago

Upping the priority of this

See

Which will be in 0.3.0: https://github.com/jannahastings/py-horned-owl/releases/tag/v0.3.0rc1

cmungall commented 5 months ago

Note this change will likely involve a change at the interface level, as we are using funowl objects here

cmungall commented 5 months ago

output will be limited to .owx and input to rdf/xml or owx, see: https://github.com/jannahastings/py-horned-owl/issues/18 -- unless we convert with robot on the fly