What’s the difference between `NodeAnnotationChange` and `NodeMetadataAssertionChange`?
- 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
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