INCATools / INCATools/ontology-access-kit
`ProntoImplementation` Obograph takes ~8 minutes to load
- Dominant language
- Python
- Stars
- 198
- Forks
- 35
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 1
Description
## Overview
I'm trying to use OAK to get an Obograph, but `ProntoImplementation` took me 467 seconds to load it, where the `bioontologies` package took 48 seconds.
## Example
**ProntoImplementation**
```py
from datetime import datetime
from oaklib.resource import OntologyResource
from oaklib.implementations.pronto.pronto_implementation import ProntoImplementation
resource = OntologyResource(slug=inpath, local=True)
t1 = datetime.now()
oi = ProntoImplementation(resource)
graph = oi.as_obograph()
t2 = datetime.now()
print(f'Loaded obograph using ProntoImplementation in {(t2-t1).seconds} seconds')
```
> `Loaded obograph using ProntoImplementation in 467 seconds`
**bioontologies & robot**
```py
from datetime import datetime
t1 = datetime.now()
from bioontologies import robot
parse_results: robot.ParseResults = robot.convert_to_obograph_local(inpath)
graph = parse_results.graph_document.graphs[0]
t2 = datetime.now()
print(f'Loaded obograph using robot through bioontologies in {(t2-t1).seconds} seconds')
```
> `Loaded obograph using robot through bioontologies in 48 seconds`
## Additional info
I was looking around and wasn't quite sure which implementation was best to use for Obographs. I tried `OboGraphImplementation`, but I [got an error](https://github.com/INCATools/ontology-access-kit/issues/337). I was searching through the `implementations/` dir, but it was difficult for me to tell whether or not Obographs were fully implemented in each implementation. If there's a better implementation to use, I'm open to trying.
## Related
- #339
Contributor guide
Research direction
Start with oaklib.implementations.pronto.pronto_implementation.ProntoImplementation and compare its Obograph loading path with bioontologies.robot.convert_to_obograph_local. Review the implementations/ directory and related issue #339; done means identifying the cause of the loading gap and either improving the implementation or documenting the better choice.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100