INCATools / INCATools/kgcl

Adding, removing, and modifying cross-references to node metadata

Open
#99 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
23
Forks
5
PR merge metrics
No merged PRs in 30d

Description

It is very common for OBO ontologies to have cross-references (that is, `oboInOwl:hasDbXref` annotations) on definitions and synonyms, which are then interpreted as providing a source (akin to a citation in an academic paper) for the definition or the synonym.

For example (in OBO format):

```
[Term]
id: UBERON:0009058
name: faveolus
def: "A bellow-shaped respiratory unit extending from the outer wall of the lung into a central air space." [PMID:12869615]
synonym: "edicula" RELATED [PMID:12625309]
```

In fact, in several ontologies, it is _required_ that definitions have at least one such cross-reference.

KGCL does not allow to specify cross-references when adding or modifying a definition or synonym, which prevents its use on ontologies that have this kind of requirements.

KGCL should at least allow to specify cross-references when adding a definition or synonym, maybe with a syntax which could look like the following:

```
add definition "A bellow-shaped respiratory unit extending from the outer wall of the lung into a central air space." to UBERON:0009058 with xrefs PMID:12869615
create related synonym "edicula" for UBERON:0009058 with xrefs PMID:12625309
```

Alternatively or additionally, KGCL could allow adding, removing, or modifying cross-references on pre-existing definitions or synonyms.

Contributor guide

Open the contributing guide

Research direction

No files or tests are named in the issue. Start by tracing KGCL's existing syntax and data model for definition and synonym changes; done means cross-references can be specified when adding or modifying these items, and can be added, removed, or modified on existing items if that option is supported.

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.