INCATools / INCATools/ontology-access-kit

Decide whether to split out OMK or fully fold in

Open
#172 3 comments 0 reactions 0 assignees View on GitHub
design
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.