INCATools / INCATools/kgcl

What’s the difference between `NodeAnnotationChange` and `NodeMetadataAssertionChange`?

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

Excerpt of the node change hierarchy:

* NodeChange
* NodeAnnotationChange
* NodeAnnotationReplacement
* NodeMetadataAssertionChange
* MetadataAssertionPredicateChange
* MetadataAssertionReplacement
* NewMetadataAssertion
* RemoveMetadataAssertion

where `NodeAnnotationChange` is defined as “A node change where the change alters node properties/annotations. TODO”, while `NodeMetadataAssertionChange` is defined as “A node change where the metadata assertion (OWL annotations) for that node are altered”.

It’s unclear to me why those two types exist and how they actually differ. Intuitively, I feel that the second type should _not_ exist in KGCL. Changes to annotations of a node should all be represented by `NodeAnnotationChange` objects – the fact that annotations are represented by OWL annotation assertion axioms if the underlying graph we’re modifying happens to be a OWL ontology should not matter.

Furthermore, in [the spec for NodeMetadataAssertionChange](https://incatools.github.io/kgcl/NodeMetadataAssertionChange/), it is said that `NodeAnnotationChange` is an “alias” for `NodeMetadataAssertionChange`. This makes sense if we consider that a “metadata assertion” is merely how OWL represents the concept of a node annotation, but then if the two change types are the same thing, why do they have different slots (`NodeAnnotationChange` has a `annotation_property` slot that `NodeMetadataAssertionChange` does not have) and different children?

Contributor guide

Open the contributing guide

Research direction

Start with the NodeAnnotationChange and NodeMetadataAssertionChange definitions and the linked NodeMetadataAssertionChange specification. Compare their slots, child types, and documented alias relationship, then clarify which concept each type represents and whether the hierarchy should be revised.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
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.