INCATools / INCATools/ontology-access-kit

Loading performance / UX: `rdflib` --> `semsql`

Open
#405 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
198
Forks
35
Avg merge
3d 4h
Merged PRs (30d)
1

Description

## Overview
Currently, if you pass an ontology to OAK, in many/all cases except for when you provide it a pre-converted semantic-sql sqlite DB, it will load it into memory using `rdflib`, which is just too slow for many ontologies. The current way that we get around this is by pre-converting to the db, and then passing that to OAK.

The UX issue heres are (i) multiple steps, (ii) requires user to have docker, or an otherwise much more difficult set of dependencies to set up.

## Possible implementations
### a. Commit binaries
I haven't looked into this enough to know if it is feasible at all (i) obtain the binaries (I'm hoping it is as simple as just 1 file for each of the binaries listed below...), (ii) support multiple systems/architectures for this.
- [relation-graph](https://github.com/balhoff/relation-graph#installation)
- [rdftab](https://github.com/ontodev/rdftab.rs#installation)
- riot

Contributor guide

Open the contributing guide

Research direction

Start with the overview and compare the installation requirements for relation-graph, rdftab, and riot across supported systems and architectures. Define a supported loading path that removes the pre-conversion and Docker steps, then verify that OAK can load an ontology without a pre-converted semantic-sql SQLite database.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, sqlite
Domain
cli, performance, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.