Places a node inside a subset, by annotating that node
A node creation where the owl type is 'class'
An edge change where the subjet, object, and predicate are unchanged, but the logical interpretation changes
Example(value='changing a SubClassOf r some b to a subClassOf r only b', description=None)
An edge change in which an edge is obsoleted.
Note there is not yet consensus in how this should be done in rdf/owl implementations. Simply marking the edge deprecated with render it visible to most clients. Care must be taken because simply adding a deprecation tag to an axiom does not silence it -- it is still asserted. It is therefore more common to obsolete an edge by shadowing the axiom as an annotation. See the Mondo docs for example
An edge change where one node is replaced with another, as in the case of obsoletion with replacement
Example(value='changing G1 annotated-to T1 to G1 annotated-to T2, after obsoletion of T1 and replacement with T2', description=None)
A simple change where a logical axiom is changed, where the logical axiom cannot be represented as an edge
A specific kind of edge creation in which the created edge is a mapping.
A node mapping change where the predicate of a mapping is changed.
A node mapping change where the object of a mapping is changed
A node metadata assertion change where the predicate of a metadata assertion is changed.
A node metadata assertion change where the object of a metadata assertion is changed
A complex change consisting of multiple obsoletions.
A node synonym where the name NAME of an node NODE moves to a synonym, and NODE receives a new name. This change consists of compose of (1) a node rename where NAME is replaced by a different name (2) a new synonym
A node mapping change where a mapping is added to a node
A node metadata assertion change where a metadata assertion is added to a node
A node change where a de-novo text definition is created
A node annotation change where the change replaces a particular property value. TODO
A node move in which a node where the destination is a proper descendant of the original location. Note that here descendant applied not just to subclass, but edges of any predicate in the relational graph
Example(value='changing a is-a b to a is-a c, where c is a subclass of b', description=None)
Deletion of a node from the graph. Note it is recommended nodes are obsoleted and never merged, but this operation exists to represent deletions in ontologies, accidental or otherwise
An obsoletion change in which all metadata (including name/label) from the source node is deleted and added to the target node, and edges can automatically be rewired to point to the target node
In the OBO format serialization of the graph, the source node vanishes from the file as a distinct entry and is retained only as an alt_id
An obsoletion change in which information from the obsoleted node is selectively copied to a single target, and edges can automatically be rewired to point to the target node
node obsoletion with no direct replacement
An obsoletion change in which there is no direct replacement
Example(value='changing a is-a c to a is-a b, where c is a subclass of b', description=None)
unobsoletion of a node deprecates usage of that node. Rarely applied.
An edge creation where the predicate is owl:subClassOf
An edge change where the predicate (relationship type) is modified.
Example(value='changing a is-a b to a part-of b', description=None)
A node mapping change where a mapping is deleted
A node metadata assertion change where a metadata assertion is deleted
Removes a node from a subset, by removing an annotation
A node synonym change where a synonym is deleted
A node change where a text definition is deleted
An edge deletion where the predicate is owl:subClassOf
A node change where the string value for the name is unchanged but the language tag is set
A node synonym change where the predicate of a synonym is changed. Background: synonyms can be represented by a variety of predicates. For example, many OBO ontologies make use of predicates such as oio:hasExactSynonym, oio:hasRelatedSynonym, etc
A node synonym change where the text of a synonym is changed
A node change where a text definition is modified
A change that is a composition of a set of changes, where those changes are treated as a single unit. Could be a single change, or the results of an ontology diff
A single node obsoletion event may be accompanied by one or more suggested replacement nodes
In OBO, the replacement term is indicated using IAO:nnnnnn
A summary statistic for a set of changes of the same type, grouped by zero or more node properties
A change that is is a composition of other changes
The meaning of operations can be configured
An edge change in which an edge is removed. All edge annotations/properies are removed in the same action.
A node change where the change alters node properties/annotations. TODO
a node change in which a new node is created
A session consists of a set of change sets bundled with the activities that generated those change sets
Opposite operation of obsoletion. Rarely performed.
The representation of a node (URI, CURIE, label)
The type of a property (URI, CURIE, label)
The type (IRI or Literal) of a new object
The type (IRI or Literal) of a new value
A prefix to add to the label of an obsolete node. This may include a space at the end.
The type (IRI or Literal) of an old object
The type (IRI or Literal) of an old value
The subset from which the node is to be removed
The secondary entity on which the change operates
Applies to an obsoletion in which annotations or edges pointing at the obsoleted node can be automatically rewired to point to a target
A change in a value assertion where the value remain unchanged but either the datatype or language changes
An edge change in which a de-novo edge is created. The edge is potentially annotated in the same action.
A node synonym change where a de-novo synonym is created
A node move is a combination of deleting a parent edge and adding a parent edge, where the predicate is preserved and the object/parent node changes
Example(value='changing a is-a b to a is-a c', description=None)
A node change where the name (aka rdfs:label) of the node changes
Example(value="rename UBERON:0002398 from 'manus' to 'hand'", description="replacing the rdfs:label of 'manus' on an uberon class with the rdfs:label 'hand'")
A change in the membership status of a node with respect to a subset (view)
All changes associated with a set of obsoletions. This change set is the composed change set rather than the set of individual changes. For example, if previous state is: `A subClassOf B subClassOf C subClassOf D` and we obsolete {B,C}, then the individual changes are `A moves from B to C` and `B moves from C to D`, but the composed change set is `A moves from B to D`
The type (IRI or Literal) of an edge's subject
A relationship between two nodes. Currently the only kinds of edges supported in KGCL: * A subClassOf B <==> Edge(subject=A, predicate=owl:subClassOf, object=B) * A subClassOf P some B <==> Edge(subject=A, predicate=P, object=B) * P subPropertyOf Q <==> Edge(subject=P, predicate=owl:subPropertyOf, object=Q) These represent the most common kind of pairwise relationship between classes, and classes are the dominant node type in ontologies. In future a wider variety of OWL axiom types will be supportedn through the use of an additional edge property/slot to indicate the interpretation of the axiom, following owlstar (https://github.com/cmungall/owlstar). For example: * `A subClassOf R only B <==> Edge(subject=A, predicate=P, object=B, interpretation=AllOnly)` * `A Annotation(P,B) <==> Edge(subject=A, predicate=P, object=B, interpretation=annotationAssertion)` Note that not all axioms are intended to map to edges. Axioms/triples where the object is a literal would be represented as node properties. Complex OWL axioms involving nesting would have their own dedicated construct, or may be represented generically. These are out of scope for the current version of KGCL
In general, for OBO ontologies, node elements should never be deleted, always obsolete. However, edge deletion is more common.
A node change where the text definition is changed
A change that is about a single ontology element
An obsoletion replacement where it IS valid to automatically update annotations/edges pointing at the node with its direct replacement
if a node obsoletion C C about N1, and Chas direct replacement N2, then N1 IAO:0100001 N2
if a node obsoletion C, C about N1, and C has direct replacement N2, and there exists an edge with an edge property referencing N1, it is possible to replace with N2
An obsoletion replacement where it is NOT valid to automatically update annotations/edges pointing at the node with its direct replacement
if a node obsoletion C C about N1, and Chas direct replacement N2, then N1 oio:consider N2
The value of a property held in the new instance of the ontology
The value of a property held in the old instance of the ontology
A node change where the mappings for that node are altered
A node change where the metadata assertion (OWL annotations) for that node are altered
A representation of character-level changes on a textual literal property. For example, if a text definition may change by only a single character such as addition of a period, it is useful to be able to see this visually.
this is NOT for representing the diff of the change as a whole.
Obsoletion of a node deprecates usage of that node, but does not delete it.
Obsoletion of an element deprecates usage of that element, but does not delete that element.
In OWL, deprecation is handled by the deprecation axiom. In OBO, we use this, but place additional requirements and expectations on obsolete elements
The 'focus' entity on which the change operates
A summarizing of a change on a piece of text. This could be rendered in a number of different ways
A change in which the element that is the focus of the change is an edge.
owl annotations. Not to be confused with annotations sensu GO
Any component of an ontology or knowledge graph
A simple change where the change is about a node
Any change perform on an ontology or knowledge graph
A string serialization of the change. This should be both human-readable, and parseable.
{'Form 1': 'IRIs are denoted by CURIEs, optionally followed by label in parenthesis'}
{'Form 2': "IRIs are denoted by the rdfs:label in single quotes, e.g. 'nervous system'"}
Example(value="merge 'cellular metabolic process' into 'metabolic process'", description=None)
Example(value="move 'hand' from 'part of' 'hindlimb' to 'part of' 'forelimb'", description=None)
Example(value="rename UBERON:0002398 from 'manus' to 'hand'", description=None)
Example(value="search and replace 'metabolic process' with 'metabolism' in all labels under 'biological process' retaining as 'exact synonym'", description=None)
Example(value="search and replace 'metabolic process' with 'metabolism' in all labels under 'biological process'", description=None)
Any named entity in an ontology. May be a class, individual, property