INCATools / INCATools/ontology-access-kit
add adapter for py-horned-owl
- Dominant language
- Python
- Stars
- 198
- Forks
- 35
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 1
Description
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:
- https://github.com/jannahastings/py-horned-owl/issues/9
- https://github.com/jannahastings/py-horned-owl/issues/10
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:
- #247
Contributor guide
Research direction
Start by reviewing py-horned-owl issues 9 and 10, the limitations described here, and OAK issue #247. The issue does not identify files or tests; done would require agreeing on an adapter design that exposes the OwlInterface and bioinformatician-friendly interfaces while addressing distribution and annotation constraints.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, rust
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100