INCATools / INCATools/ontology-access-kit
Add generate-<statement> family of commands
- 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
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