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, 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?
Excerpt of the node change hierarchy:
where
NodeAnnotationChange
is defined as “A node change where the change alters node properties/annotations. TODO”, whileNodeMetadataAssertionChange
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, it is said that
NodeAnnotationChange
is an “alias” forNodeMetadataAssertionChange
. 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 aannotation_property
slot thatNodeMetadataAssertionChange
does not have) and different children?