INCATools / INCATools/kgcl

How strict should a KGCL applicator be?

Open
#38 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

Had there been any discussion as to what behaviour one should expect when trying to apply a KGCL change that does not fully match the existing ontology?

For example, considering the following changeset:

```
rename EX:1234 from 'alice' to 'bob'
create exact synonym 'robert' for EX:1234
remove definition for EX:5678
```

What is the expected behaviour if the `rdfs:label` of `EX:1234` is not “alice”?

I can imagine 4 different options:

* _Relaxed_: Apply changes where possible even where there is a mismatch. In this example, `EX:1234` should get the new label “alice” regardless of what its existing label is.
* _Change-level strict_: Reject any change where there is a mismatch, apply all other changes normally. In this example, reject the first change, apply the others two.
* _Node-level strict_: If there is a mismatch in one change, reject all changes that are related to the same node. In this example, reject the first two changes (since both are about `EX:1234`), apply the last one.
* _Changeset-level strict_: Only apply the changes in a changeset if they all can be applied cleanly, reject the entire changeset for any mismatch in any change. In this example, all three changes would be rejected.

Contributor guide

Open the contributing guide

Research direction

The issue names no files, tests, or entry points. Start by locating the KGCL applicator and checking how mismatches are currently handled; done means documenting or implementing an agreed policy for the four options and the supplied changeset.

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
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.