INCATools / INCATools/ontology-access-kit

Add generate-<statement> family of commands

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

Description

Most of OAK is geared around *lookup*. There are commands to lookup

- edges
- definitions (text)
- logical definitions
- aliases
- mappings

Some of these are parameterized, For edges you can pass in `--entailed` and it will yield entailed edges (this is still technically lookup as these are calculated in advance by relation-graph)

We have an existing lexmatch command which yields results similar in structure to the mappings command, except these are generated rather than a lookup

We can also distinguish rule-based methods, fuzzier predictive methods, lexical, ...

Should we try and unify this a bit more? We could have a `generate-X` command shadow existing commands

- generate-synonyms:
- synonymizer (simpler regex based rules)
- future BERT based plugin
- generate-edges
- link prediction via oakx-grape plugin
- entailed edges? Technically these are not "predictions:
- generate-mappings
- lexical approaches (lexmatch)
- future plugins using link prediction, semsim, etc
- generate-definitions
- rule based e.g. dosdp, could be wrapped as a plugin
- future NLP generation based (plugin)

(I originally has `predict-X` but I think predict has a narrower meaning)

Another option is to fold these into the main commands, the way we do with entailments for edges. But I think this would be over-abstraction. This would explode command line options, and the data model for generated objects may different ones that are merely looked up.

cc @matentzn @caufieldjh @justaddcoffee @hrshdhgd

Contributor guide

Open the contributing guide

Research direction

Start by reading the existing lexmatch command and the current lookup commands for edges, definitions, aliases, and mappings. Compare how generated results differ from looked-up results, then clarify which generate-* commands and plugins are in scope. Done means an agreed command structure and implementation plan, since this issue currently presents alternatives rather than a defined change.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Feature
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.