INCATools / INCATools/ontology-access-kit
Decide whether to split out OMK or fully fold in
- Dominant language
- Python
- Stars
- 198
- Forks
- 35
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 1
Description
OAK contains a "secret" application, the Ontology Mapping Kit
Code:
https://github.com/INCATools/ontology-access-kit/tree/main/src/oaklib/omk
Currently there is one core method, for performing cross-ontology diffs. E.g. use MP and HP mappings to give a report on how these ontologies are structurally different.
The output conforms to this datamodel:
https://github.com/INCATools/ontology-access-kit/blob/main/src/oaklib/datamodels/cross_ontology_diff.yaml
Tests:
https://github.com/INCATools/ontology-access-kit/tree/main/tests/test_omk
There is also a CLI, with only one command:
```
poetry run omk mdiff --help
Usage: omk mdiff [OPTIONS]
Calculates a relational diff between ontologies in two sources using the
combined mappings from both
E.g. use MP and HP mappings to give a report on how these ontologies are
structurally different.
Options:
-S, --source TEXT ontology prefixes e.g. HP, MP
--other-input TEXT Additional input file
--other-input-type TEXT Type of additional input file
--help Show this message and exit.
```
For context, we also have other mapping tools that layer over OAK such as https://github.com/monarch-initiative/mapping-walker/
Should we
1. Properly split this out into a separate repo that depends on OAK
2. Make it a proper part of OAK, and if so
- make an interface for doing cross-ontology structural diffs, or fold this into existing differ interface
- make this a separate non-OO utility under utilities
cc @matentzn @joeflack4 @hrshdhgd
Contributor guide
Research direction
Start by reviewing the code under src/oaklib/omk, the cross_ontology_diff.yaml data model, and tests/test_omk. Run `poetry run omk mdiff --help` to understand the existing CLI surface. Done means reaching and documenting a decision about splitting OMK out or integrating it properly, including the proposed interface or utility placement.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100