add node to subset
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: ontology subset
  on property: in subset
subclass of: add to subset
subclass of: node change
alternative label: add term to slim
definition: Places a node inside a subset, by annotating that node

class creation
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: superclass
subclass of: node creation
definition: A node creation where the owl type is 'class'

datatype change
type: CLASS
subclass of: datatype or language tag change

edge logical interpretation change
type: CLASS
subclass of: edge change
definition: An edge change where the subjet, object, and predicate are unchanged, but the logical interpretation changes
examples: Example(value='changing a SubClassOf r some b to a subClassOf r only b', description=None)

edge obsoletion
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: ontology element
  on property: about
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: predicate
subclass of: Restriction
  max qualified cardinality: 1
  on class: annotation
  on property: annotation set
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: object
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: subject
subclass of: edge change
subclass of: obsoletion
alternative label: relationship obsoletion
definition: An edge change in which an edge is obsoleted.
note: 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

edge rewiring
type: CLASS
subclass of: edge change
definition: An edge change where one node is replaced with another, as in the case of obsoletion with replacement
examples: Example(value='changing G1 annotated-to T1 to G1 annotated-to T2, after obsoletion of T1 and replacement with T2', description=None)

logical axiom change
type: CLASS
subclass of: simple change
definition: A simple change where a logical axiom is changed, where the logical axiom cannot be represented as an edge

mapping creation
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: subject
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: predicate
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: object
subclass of: creation
subclass of: edge creation
alternative label: xref creation
definition: A specific kind of edge creation in which the created edge is a mapping.

mapping predicate change
type: CLASS
subclass of: node mapping change
alternative label: node scope change
definition: A node mapping change where the predicate of a mapping is changed.

mapping replacement
type: CLASS
subclass of: node mapping change
definition: A node mapping change where the object of a mapping is changed

metadata assertion predicate change
type: CLASS
subclass of: node metadata assertion change
alternative label: node scope change
definition: A node metadata assertion change where the predicate of a metadata assertion is changed.

metadata assertion replacement
type: CLASS
subclass of: node metadata assertion change
definition: A node metadata assertion change where the object of a metadata assertion is changed

multi node obsoletion
type: CLASS
subclass of: Restriction
  all values from: change
  on property: associated change set
subclass of: Restriction
  all values from: node obsoletion
  on property: change set
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: complex change
alternative label: multi class obsoletion
alternative label: multi concept obsoletion
alternative label: multi node deprecation
alternative label: multi term obsoletion
definition: A complex change consisting of multiple obsoletions.

name becomes synonym
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: node rename
  on property: change 1
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: Restriction
  max qualified cardinality: 1
  on class: new synonym
  on property: change 2
subclass of: node synonym change
definition: 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

new mapping
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: predicate
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: object
subclass of: node mapping change
alternative label: xref change
definition: A node mapping change where a mapping is added to a node

new metadata assertion
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: object
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: predicate
subclass of: node metadata assertion change
alternative label: xref change
definition: A node metadata assertion change where a metadata assertion is added to a node

new text definition
type: CLASS
subclass of: node text definition change
definition: A node change where a de-novo text definition is created

node annotation replacement
type: CLASS
subclass of: node annotation change
definition: A node annotation change where the change replaces a particular property value. TODO

node deepening
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: node move
definition: 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
examples: Example(value='changing a is-a b to a is-a c, where c is a subclass of b', description=None)

node deletion
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: deletion
subclass of: node change
definition: 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

node direct merge
type: CLASS
subclass of: Restriction
  on class: node
  on property: has direct replacement
  qualified cardinality: 1
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: about node
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: allows automatic replacement of edges
subclass of: node obsoletion
definition: 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
note: 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

node obsoletion with direct replacement
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: Restriction
  on class: node
  on property: has direct replacement
  qualified cardinality: 1
subclass of: allows automatic replacement of edges
subclass of: node obsoletion
definition: 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
type: CLASS
subclass of: Class
  type: CLASS
  intersection of: Restriction
    all values from: node
    on property: has nondirect replacement
  intersection of: Restriction
    on property: has nondirect replacement
    some values from: node
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: node obsoletion
definition: An obsoletion change in which there is no direct replacement

node shallowing
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: node move
definition: The opposite of node deepening
examples: Example(value='changing a is-a c to a is-a b, where c is a subclass of b', description=None)

node unobsoletion
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: replaced by
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: consider
subclass of: node change
subclass of: unobsoletion
alternative label: class unobsoletion
alternative label: concept unobsoletion
alternative label: node undeprecation
alternative label: term unobsoletion
definition: unobsoletion of a node deprecates usage of that node. Rarely applied.

place under
type: CLASS
subclass of: edge creation
definition: An edge creation where the predicate is owl:subClassOf

predicate change
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: edge change
definition: An edge change where the predicate (relationship type) is modified.
examples: Example(value='changing a is-a b to a part-of b', description=None)

remove mapping
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: object
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: predicate
subclass of: node mapping change
definition: A node mapping change where a mapping is deleted

remove metadata assertion
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: predicate
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: object
subclass of: node metadata assertion change
definition: A node metadata assertion change where a metadata assertion is deleted

remove node from subset
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: subset
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: about node
subclass of: Restriction
  max qualified cardinality: 1
  on class: ontology subset
  on property: in subset
subclass of: node change
subclass of: remove from subset
alternative label: remove term from slim
definition: Removes a node from a subset, by removing an annotation

remove synonym
type: CLASS
subclass of: node synonym change
definition: A node synonym change where a synonym is deleted

remove text definition
type: CLASS
subclass of: node text definition change
definition: A node change where a text definition is deleted

remove under
type: CLASS
subclass of: edge deletion
definition: An edge deletion where the predicate is owl:subClassOf

set language for name
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: language tag change
subclass of: node change
definition: A node change where the string value for the name is unchanged but the language tag is set

synonym predicate change
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: textual diff
  on property: has textual diff
subclass of: node synonym change
alternative label: node scope change
definition: 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

synonym replacement
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: textual diff
  on property: has textual diff
subclass of: node synonym change
definition: A node synonym change where the text of a synonym is changed

text definition replacement
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: textual diff
  on property: has textual diff
subclass of: node text definition change
definition: A node change where a text definition is modified

transaction
type: CLASS
subclass of: Restriction
  all values from: change
  on property: change set
subclass of: change
definition: 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

has replacement
type: OBJECT_PROPERTY
domain: node obsoletion
range: node
sub property of: target
definition: A single node obsoletion event may be accompanied by one or more suggested replacement nodes
note: In OBO, the replacement term is indicated using IAO:nnnnnn

new filler
type: DatatypeProperty
range: string
definition: The new filler of an OWL restriction

new property
type: DatatypeProperty
range: string
definition: The new property of an OWL restriction

new subclass
type: DatatypeProperty
range: string
definition: The new subclass of a subsumption axiom

subclass
type: DatatypeProperty
range: string
definition: The subclass of a subsumption axiom

subclass type
type: DatatypeProperty
range: string
definition: The type of a subclass

superclass type
type: DatatypeProperty
range: string
definition: The type of a superclass

class node
type: CLASS
subclass of: node
alternative label: concept
definition: A node that is a class

instance node
type: CLASS
subclass of: node
alternative label: named individual
definition: A node that is an individual

logical definition
type: CLASS
subclass of: ontology element

synonym_scope_enum
type: CLASS
union of: narrow
union of: broad
union of: exact
permissible values: broad
permissible values: exact
permissible values: narrow

agent set
type: OBJECT_PROPERTY
range: agent

kgcl_schema
type: Ontology
IAO_0000700: change
IAO_0000700: change mixin
IAO_0000700: change set summary statistic
IAO_0000700: configuration
IAO_0000700: session
IAO_0000700: textual diff
IAO_0000700: ontology element
IAO_0000700: activity
IAO_0000700: agent
license: https://creativecommons.org/publicdomain/zero/1.0/
title: Knowledge Graph Change Language
version: 0.0.1
generation date: 2023-02-01T11:26:44
metamodel version: 1.7.0
source file: kgcl.yaml
source file date: 2023-02-01T11:23:56
source file size: 33131

change set summary statistic
type: CLASS
subclass of: Restriction
  all values from: property value
  on property: property value set
subclass of: Restriction
  max qualified cardinality: 1
  on data range: anyURI
  on property: change type
subclass of: Restriction
  max qualified cardinality: 1
  on data range: integer
  on property: count
definition: A summary statistic for a set of changes of the same type, grouped by zero or more node properties

complex change
type: CLASS
subclass of: Restriction
  all values from: change
  on property: change set
subclass of: change
definition: A change that is is a composition of other changes

configuration
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: creator_predicate
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: obsoletion_workflow
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: name_predicate
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: contributor_predicate
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: synonym_predicates
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: obsolete_node_label_prefix
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: definition_predicate
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: main_synonym_predicate
subclass of: Restriction
  all values from: ObsoletionPolicyEnum
  on property: obsoletion_policies
definition: The meaning of operations can be configured

edge deletion
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: subject
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: predicate type
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: object
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: subject type
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: predicate
subclass of: Restriction
  max qualified cardinality: 1
  on class: annotation
  on property: annotation set
subclass of: deletion
subclass of: edge change
alternative label: relationship deletion
definition: An edge change in which an edge is removed. All edge annotations/properies are removed in the same action.

language tag change
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: lang
  on property: old value
subclass of: Restriction
  max qualified cardinality: 1
  on data range: lang
  on property: new value
subclass of: datatype or language tag change

node annotation change
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: annotation property
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: annotation property type
subclass of: node change
definition: A node change where the change alters node properties/annotations. TODO

node creation
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: annotation
  on property: annotation set
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: node id
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: name
subclass of: Restriction
  max qualified cardinality: 1
  on class: owl_type_enum
  on property: owl type
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: creation
subclass of: node change
definition: a node change in which a new node is created

remove from subset
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: add to subset
  on property: has undo
subclass of: Restriction
  max qualified cardinality: 1
  on class: ontology subset
  on property: in subset
subclass of: subset membership change
subclass of: mixin
definition: removing an element from a subset

session
type: CLASS
subclass of: Restriction
  all values from: activity
  on property: activity set
subclass of: Restriction
  all values from: change
  on property: change set
definition: A session consists of a set of change sets bundled with the activities that generated those change sets

unobsoletion
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: obsoletion
  on property: has undo
subclass of: change mixin
subclass of: mixin
definition: Opposite operation of obsoletion. Rarely performed.

about edge
type: OBJECT_PROPERTY
range: edge
sub property of: about

about node representation
type: DatatypeProperty
range: string
definition: The representation of a node (URI, CURIE, label)

annotation property
type: DatatypeProperty
range: string
definition: An annotation property

annotation property type
type: DatatypeProperty
range: string
definition: The type of a property (URI, CURIE, label)

change 1
type: OBJECT_PROPERTY
range: node rename

change 2
type: OBJECT_PROPERTY
range: new synonym

change type
type: DatatypeProperty
range: anyURI

consider
type: OBJECT_PROPERTY
range: node

contributor_predicate
type: DatatypeProperty
range: string

count
type: DatatypeProperty
range: integer

creator_predicate
type: DatatypeProperty
range: string

datatype
type: DatatypeProperty
range: string
definition: The datatype of a literal

definition_predicate
type: DatatypeProperty
range: string

main_synonym_predicate
type: DatatypeProperty
range: string

name_predicate
type: DatatypeProperty
range: string

new datatype
type: DatatypeProperty
range: string
definition: The new datatype of a literal

new language
type: DatatypeProperty
range: string
definition: The new language tag of a literal

new object type
type: DatatypeProperty
range: string
definition: The type (IRI or Literal) of a new object

new value type
type: DatatypeProperty
range: string
definition: The type (IRI or Literal) of a new value

node id
type: OBJECT_PROPERTY
range: node
definition: id of a node to be created

object type
type: DatatypeProperty
range: string
definition: The type (IRI or Literal) of an object

obsolete_node_label_prefix
type: DatatypeProperty
range: string
definition: A prefix to add to the label of an obsolete node. This may include a space at the end.

obsoletion_policies
type: OBJECT_PROPERTY
range: ObsoletionPolicyEnum

obsoletion_workflow
type: DatatypeProperty
range: string

old datatype
type: DatatypeProperty
range: string
definition: The old datatype of a literal

old language
type: DatatypeProperty
range: string
definition: The old language tag of a literal

old object type
type: DatatypeProperty
range: string
definition: The type (IRI or Literal) of an old object

old value type
type: DatatypeProperty
range: string
definition: The type (IRI or Literal) of an old value

pull request
type: DatatypeProperty
range: string

qualifier
type: DatatypeProperty
range: string
definition: The qualifier of a change operation

replaced by
type: OBJECT_PROPERTY
range: node

subset
type: DatatypeProperty
range: string
definition: The subset from which the node is to be removed

superclass
type: OBJECT_PROPERTY
range: node

synonym_predicates
type: DatatypeProperty
range: string

target
type: DatatypeProperty
range: string
definition: The secondary entity on which the change operates

filler
type: DatatypeProperty
range: string

filler type
type: DatatypeProperty
range: string

object representation
type: DatatypeProperty
range: string

predicate representation
type: DatatypeProperty
range: string

property
type: OBJECT_PROPERTY
range: node

property type
type: DatatypeProperty
range: string

property value set
type: OBJECT_PROPERTY
range: property value

subject representation
type: DatatypeProperty
range: string

activity set
type: OBJECT_PROPERTY
range: activity

change date
type: DatatypeProperty
range: string

description
type: DatatypeProperty
range: string

add to subset
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: ontology subset
  on property: in subset
subclass of: subset membership change
subclass of: mixin
definition: placing an element inside a subset

allows automatic replacement of edges
type: CLASS
subclass of: obsoletion
subclass of: mixin
definition: Applies to an obsoletion in which annotations or edges pointing at the obsoleted node can be automatically rewired to point to a target

datatype or language tag change
type: CLASS
subclass of: change mixin
subclass of: mixin
definition: A change in a value assertion where the value remain unchanged but either the datatype or language changes

edge creation
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: predicate
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: subject
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: object
subclass of: Restriction
  max qualified cardinality: 1
  on class: annotation
  on property: annotation set
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: predicate type
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: subject type
subclass of: creation
subclass of: edge change
alternative label: relationship creation
definition: An edge change in which a de-novo edge is created. The edge is potentially annotated in the same action.

new synonym
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: qualifier
subclass of: node synonym change
alternative label: add synonym
alternative label: create synonym
alternative label: new alias
definition: A node synonym change where a de-novo synonym is created

node move
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: old object type
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: new object type
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: edge change
definition: 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
examples: Example(value='changing a is-a b to a is-a c', description=None)

node rename
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: textual diff
  on property: has textual diff
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: old value
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: new value
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: node change
definition: A node change where the name (aka rdfs:label) of the node changes
examples: 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'")

ObsoletionPolicyEnum
type: CLASS
union of: NoLogicalAxiomsOnObsoletes
permissible values: NoLogicalAxiomsOnObsoletes

NoLogicalAxiomsOnObsoletes
type: CLASS

subset membership change
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: ontology subset
  on property: in subset
subclass of: change mixin
subclass of: mixin
definition: A change in the membership status of a node with respect to a subset (view)

associated change set
type: OBJECT_PROPERTY
range: change
sub property of: change set
definition: 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`

language
type: DatatypeProperty
range: lang
definition: The language tag of a literal

predicate type
type: DatatypeProperty
range: string
definition: The type (IRI or Literal) of an edge's subject

subject type
type: DatatypeProperty
range: string
definition: The type (IRI or Literal) of an edge's subject

edge
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: predicate representation
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: object representation
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: subject representation
subclass of: Restriction
  max qualified cardinality: 1
  on class: annotation
  on property: annotation set
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: predicate
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: object
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: subject
subclass of: ontology element
alternative label: axiom
alternative label: relationship
alternative label: triple
definition: 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

name
type: DatatypeProperty
range: string

owl type
type: OBJECT_PROPERTY
range: owl_type_enum

broad
type: CLASS

exact
type: CLASS

type
type: DatatypeProperty
range: string

see also
type: DatatypeProperty
range: string

acted on behalf of
type: OBJECT_PROPERTY
range: agent

ended at time
type: DatatypeProperty
range: string

started at time
type: DatatypeProperty
range: string

used
type: DatatypeProperty
domain: activity
range: string

was associated with
type: OBJECT_PROPERTY
range: agent

was generated by
type: OBJECT_PROPERTY
range: activity

creation
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: deletion
  on property: has undo
subclass of: change mixin
subclass of: mixin
definition: Creation of an element.

deletion
type: CLASS
subclass of: change mixin
subclass of: mixin
definition: Removal of an element.
note: In general, for OBO ontologies, node elements should never be deleted, always obsolete. However, edge deletion is more common.

node text definition change
type: CLASS
subclass of: node change
definition: A node change where the text definition is changed

simple change
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: old value type
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: old value
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: old language
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: new value type
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: new value
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: old datatype
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: new language
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: new datatype
subclass of: change
alternative label: atomic change
definition: A change that is about a single ontology element

about node
type: OBJECT_PROPERTY
range: node
sub property of: about

has direct replacement
type: OBJECT_PROPERTY
range: node
definition: An obsoletion replacement where it IS valid to automatically update annotations/edges pointing at the node with its direct replacement
note: if a node obsoletion C C about N1, and Chas direct replacement N2, then N1 IAO:0100001 N2
note: 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

has nondirect replacement
type: OBJECT_PROPERTY
range: node
definition: An obsoletion replacement where it is NOT valid to automatically update annotations/edges pointing at the node with its direct replacement
note: if a node obsoletion C C about N1, and Chas direct replacement N2, then N1 oio:consider N2
note: 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

new value
type: DatatypeProperty
range: string
definition: The value of a property held in the new instance of the ontology

old value
type: DatatypeProperty
range: string
definition: The value of a property held in the old instance of the ontology

owl_type_enum
type: CLASS
union of: CLASS
union of: OBJECT_PROPERTY
union of: NAMED_INDIVIDUAL
permissible values: CLASS
permissible values: NAMED_INDIVIDUAL
permissible values: OBJECT_PROPERTY

property value
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: filler
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: property
subclass of: ontology element
definition: a property-value pair

narrow
type: CLASS
label: related

NAMED_INDIVIDUAL
type: CLASS

was informed by
type: OBJECT_PROPERTY
range: activity

node mapping change
type: CLASS
subclass of: node change
alternative label: xref change
definition: A node change where the mappings for that node are altered

node metadata assertion change
type: CLASS
subclass of: node change
alternative label: node annotation change
definition: A node change where the metadata assertion (OWL annotations) for that node are altered

has textual diff
type: OBJECT_PROPERTY
domain: change
range: textual diff
definition: 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.
note: this is NOT for representing the diff of the change as a whole.

id
type: DatatypeProperty
range: string

node obsoletion
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: ontology element
  on property: about
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change description
subclass of: Restriction
  all values from: change
  on property: associated change set
subclass of: Restriction
  all values from: node
  on property: has nondirect replacement
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: has direct replacement
subclass of: node change
subclass of: obsoletion
alternative label: class obsoletion
alternative label: concept obsoletion
alternative label: node deprecation
alternative label: term obsoletion
definition: Obsoletion of a node deprecates usage of that node, but does not delete it.

node synonym change
type: CLASS
subclass of: node change

obsoletion
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: ontology element
  on property: about
subclass of: Restriction
  max qualified cardinality: 1
  on class: obsoletion
  on property: has undo
subclass of: change mixin
subclass of: mixin
alternative label: deprecation
alternative label: retiring
definition: Obsoletion of an element deprecates usage of that element, but does not delete that element.
note: In OWL, deprecation is handled by the deprecation axiom. In OBO, we use this, but place additional requirements and expectations on obsolete elements

about
type: OBJECT_PROPERTY
range: ontology element
definition: The 'focus' entity on which the change operates

change set
type: OBJECT_PROPERTY
range: change
definition: A collection of changes

has undo
type: OBJECT_PROPERTY
domain: change
range: change
definition: A change that reverses this change

in subset
type: OBJECT_PROPERTY
range: ontology subset
definition: The subset that pertains to this change

textual diff
type: CLASS
definition: A summarizing of a change on a piece of text. This could be rendered in a number of different ways

ontology subset
type: CLASS
subclass of: ontology element

subject
type: OBJECT_PROPERTY
range: node

change mixin
type: CLASS
subclass of: mixin
definition: root class for all change mixins

edge change
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: datatype
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: object type
subclass of: Restriction
  max qualified cardinality: 1
  on class: edge
  on property: about edge
subclass of: Restriction
  max qualified cardinality: 1
  on data range: lang
  on property: language
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: subject
subclass of: simple change
alternative label: axiom change
alternative label: triple change
definition: A change in which the element that is the focus of the change is an edge.

annotation set
type: OBJECT_PROPERTY
range: annotation

agent
type: CLASS
subclass of: Restriction
  on data range: string
  on property: id
  qualified cardinality: 1
subclass of: Restriction
  max qualified cardinality: 1
  on class: activity
  on property: was informed by
subclass of: Restriction
  max qualified cardinality: 1
  on class: agent
  on property: acted on behalf of
definition: a provence-generating agent

annotation
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: annotation
  on property: annotation set
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: property type
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: filler type
subclass of: property value
definition: owl annotations. Not to be confused with annotations sensu GO

object
type: OBJECT_PROPERTY
range: node

predicate
type: OBJECT_PROPERTY
range: node

ontology element
type: CLASS
alternative label: entity
definition: Any component of an ontology or knowledge graph

activity
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: started at time
subclass of: Restriction
  max qualified cardinality: 1
  on class: agent
  on property: was associated with
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: ended at time
subclass of: Restriction
  on data range: string
  on property: id
  qualified cardinality: 1
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: used
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: description
subclass of: Restriction
  max qualified cardinality: 1
  on class: activity
  on property: was informed by
definition: a provence-generating activity

node change
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on data range: lang
  on property: language
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: about node representation
subclass of: Restriction
  max qualified cardinality: 1
  on class: node
  on property: about node
subclass of: simple change
definition: A simple change where the change is about a node

change
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: activity
  on property: was generated by
subclass of: Restriction
  max qualified cardinality: 1
  on class: change
  on property: has undo
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: creator
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: change date
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: creator
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: type
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: see also
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: pull request
subclass of: Restriction
  on data range: string
  on property: id
  qualified cardinality: 1
definition: Any change perform on an ontology or knowledge graph

change description
type: DatatypeProperty
range: string
definition: A string serialization of the change. This should be both human-readable, and parseable.
note: {'Form 1': 'IRIs are denoted by CURIEs, optionally followed by label in parenthesis'}
note: {'Form 2': "IRIs are denoted by the rdfs:label in single quotes, e.g. 'nervous system'"}
examples: Example(value="merge 'cellular metabolic process' into 'metabolic process'", description=None)
examples: Example(value="move 'hand' from 'part of' 'hindlimb' to 'part of' 'forelimb'", description=None)
examples: Example(value="rename UBERON:0002398 from 'manus' to 'hand'", description=None)
examples: Example(value="search and replace 'metabolic process' with 'metabolism' in all labels under 'biological process' retaining as 'exact synonym'", description=None)
examples: Example(value="search and replace 'metabolic process' with 'metabolism' in all labels under 'biological process'", description=None)

OBJECT_PROPERTY
type: CLASS

node
type: CLASS
subclass of: Restriction
  max qualified cardinality: 1
  on class: annotation
  on property: annotation set
subclass of: Restriction
  on data range: string
  on property: id
  qualified cardinality: 1
subclass of: Restriction
  max qualified cardinality: 1
  on data range: string
  on property: name
subclass of: Restriction
  max qualified cardinality: 1
  on class: owl_type_enum
  on property: owl type
subclass of: ontology element
alternative label: entity
alternative label: term
definition: Any named entity in an ontology. May be a class, individual, property