Manipulating synonym types
- Dominant language
- Python
- Stars
- 23
- Forks
- 5
- PR merge metrics
- No merged PRs in 30d
Description
Unless I am missing something, KGCL allows to manipulate synonym _scopes_ (exact/narrow/broad/related), but it is ignorant of the concept of synonym _types_ (represented in OWL, at least in some ontologies from the OBO world, by `oboInOwl#hasSynonymType`).
Being able to add types to a synonym would be useful. For example, several OBO ontologies have a policy that abbreviations that may be used to refer to a term should be represented as synonyms with scope _related_ and a type that clearly marks the synonym as an abbreviation.
This _could_ be done with a general syntax to allow arbitrary axiom annotations (as requested in #12), but I think this would be a bit too “low-level” for KGCL. Ideally users should be able to add synonym types without even having to know that such types are represented with a `oboInOwl#hasSynonymType` under the hood.
Possible syntax:
* Specifying the type when adding the synonym in the first place:
```
create (exact|narrow|broad|exact)? synonym {new_value} (with type {new_synonym_type})? for {about_node}
```
* Adding or changing the type of an existing synonym:
```
change synonym type (from {old_synonym_type})? to {new_synonym_type} for {old_value} on {about_node}
```
Contributor guide
Research direction
Start by tracing how KGCL currently represents and manipulates synonym scopes, then compare that model with the proposed create and change syntax in this issue. The work is done when users can assign synonym types during creation and add or change them on existing synonyms without handling the underlying OWL property directly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100