Axioms are statements or propositions which are regarded as being established, accepted, or self-evidently true in the domain. The OWL axioms are in the scope for the OWL axiom refset if they are allowed in the SNOMED CT Logic Profile Specification. Annotation axioms and Class declarations are generally excluded from the OWL axiom refset to avoid duplication to the RF2 files:

The transformation from the OWL expression refset to OWL ontology document should process the description file and language refset when descriptions are included. They should be represented by the following annotation properties for a given language refset.

Referenced component for an Axiom

The OWL Axiom Reference Set is designed to cover all logic definitions in SNOMED CT. A concept can be defined by one or more axioms in the same module or different modules. Each axiom is represented by a string in  in the owlExpression field. Each concept is represented by a concept ID in the referencedComponentId in the refset. The referencedComponentId has no impact on the semantics of the axioms and it is not used for any logical reasoning. The following rules should be followed when assigning the referencedComponentId for an axiom:

The definition status of a concept is  if the concept has at least one EquivalentClasses axiom, irrespective of whether other SubClassOf or EquivalentClasses axioms exist.

Representation of |is a| Relationships

 relationships in SNOMED CT are represented by different axioms, SubClassOf, SubObjectProperty, SubDataPropery, or EquivalentClasses in the OWL axiom refset. 

Class and property are all uniquely identified by an IRI in OWL 2 Ontology. It is not allowed to represent  relationships between SNOMED CT attributes and concepts in the OWL refset.

The metamodeling capacities of OWL 2 allow the punning for Classes and Properties. Both attribute concepts,  and , can be treated as Classes and Properties at the same time to enable the single root node of SNOMED CT. The following two SubClass axioms have been added in addition to SubProperty axioms in the OWL expression refset. These SubClass axioms represent and infer the  relationships to  that is a Class.

For inferred relationships in the Necessary Normal Form (NNF), SubClassOf, SubObjectProperty and SubDataProperty in the OWL axiom refset should be represented as  relationships. The explanation for the Necessary Normal Form and the rules for calculating the NNF can be found in section 2.5. Generating Necessary Normal Form Relationships from the OWL Refsets

Representation of concrete domains

DataHasValue class expression should be used for a  with a particular literal value that is specified in the SNOMED OWL Logic profile specification. The DataSomeValuesFrom and DataAllValuesFrom class expressions should not be used. For example, the value of should be represented as:

    DataHasValue(:1142135004 "50"^^xsd:decimal)

Unfortunately, the xsd:boolean data type is out of the scope for the OWL 2 EL profile (https://www.w3.org/TR/owl2-profiles/#Entities). In order to have a consistent representation and clear semantics, the boolean values should be represented by the concept  and . The attribute should be a subtype of  with a constraint in the SNOMED CT Machine Readable Concept Model that only these two values are in the range and the attribute cardinality is 0..1.

Note, trailing zeros are optional for the decimal data type in SNOMED CT. If the fractional part is zero, the period and following zero(es) can be omitted. For example, 2 is equivalent to 2.0. In particular, trailing zeros are prohibited for medicinal products in SNOMED CT because of clinical safety concerns. This 'trailing zero' policy should be applied in the same subject area of SNOMED CT for consistent classifications because the ELK reasoner has an incomplete implementation of concrete domains. However, it is possible that other subject areas, e.g. clinical findings, could allow for trailing zeros if it is desirable.

Attributes

SNOMED CT is based on concepts, with attributes also being represented as concepts. However, attributes need to be represented as properties in the OWL axiom refset. The following rules should be followed.

Role Group

Role groups must be explicitly stated and represented by the concept  as an object property in the OWL axiom refset. In the diagram of stated relationships in the OWL axiom refset, the attribute  should be represented by a circle rather than an object property. The role group should not be omitted for self-group attributes where there is only a single attribute in a role group.

An example for diagram representation of an OWL axiom

Modules and Axioms

The editing of entries in the OWL refsets can only be performed by the owner of that module. The extensions must not modify the OWL refset entries from the dependent modules, such as . No changes are permitted to the content of the International Edition, except for the addition of new versions of this content in a module owned by the extension producer. 

SNOMED CT extensions can add new axioms to the concepts in the international release to support extension content, such as adding an extension concept as an additional parent to a concept in the international release. Each axiom in an extension must have a new UUID, moduleId and effectiveTime from the extension. An international concept may have multiple axioms - one or more axiom from the international edition and zero or more axiom from extension. An axiom addition in an extension can be presented by two alternative forms with the same classification result.

It is possible that substantive improvements or corrections to the International Edition can be made through axiom overriding in an extension, if they cannot be achieved by the Axiom addition approach. 

This approach is different to the Axiom addition. The extension takes over the ownership of an axiom from the International Edition and overrides the axiom. 

Whichever approach is taken by extensions, either Axiom addition or Axiom overriding, it must follow the General Authoring Principles for extensions. Any modifications resulting in changes to the classification of international content must be accompanied by a disclaimer notifying users of the differences between the extension edition and the International Edition. These changes should be forwarded to SNOMED International in a timely fashion to improve the quality of the International Edition for all users. Please note that modifications of this kind pose a risk to the comparability and interoperability of data captured using different SNOMED CT editions.

Versioning for Axioms

The versioning is at the axiom level for a concept in the OWL axiom refset. This means that there is only one effectiveTime for each version of an axiom, which may have multiple relationships. The changes to any relationships in the current editing tool will trigger an "update" of the most recent version of the relevant axiom. The versioning at the axiom level, where each axiom may represent multiple relationships, is different from the versioning of each individual relationship in the relationship file.

Any changes to the NNF should have a corresponding history of changes in the OWL axiom refset. This will ensure that all entries in the NNF can be derived from the OWL refset except for those relationships listed in table 2.4-1. The NNF will still have the computed effectiveTime for each inferred relationship. The version of each inferred relationship can be derived from the OWL refset, but it is not true in reverse.

It is permitted to make modifications to a published axiom without inactivation by the owner of the module, by creating a new version of the axiom with the same UUID and a new effectiveTime. Since any modification to an axiom could potentially alter its meaning, it is not necessary to inactivate an axiom and create a new axiom. It is also not necessary to reinstate an inactivated axiom in the previous release when the same axiom is created as a new expression. This approach can simplify the tooling and authoring process and it is a different approach to the history of changes to the individual relationship.

However, an axiom must be inactivated in the following situations:

  1. The concept used as the referenced component is inactivated or changed.
  2. Axiom needs to be inactivated without any replacement.
  3. Any inactive concept or attribute referenced in the axiom will not be replaced by an active component.


Special notes on axioms during the transitional period from the stated relationship file to the OWL axiom refset

During the transitional period, there should be only one active axiom in the OWL axiom reference set for each concept. This axiom will represent the set of all active attributes (from the existing stated relationship file) for which the given concept is the source concept. This axiom overriding approach should only be used for the transition once. After the transition period, these axioms will be reviewed, and where appropriate will be split into multiple axioms as described in the Axiom addition approach.

If a dependent module (e.g. an extension module) adds defining relationships to a concept, then this will result in a new version of the axiom (which has the new relationship included) being added to the OWL axiom reference set. A new version of the axiom must be created if any of the concept's defining relationships change, regardless of whether or not that change is in the given module. For example (moduleId, sourceId, destinationId, typeId and referencedComponentId are represented by letters for easier readability):

id

effectiveTime active

moduleId

sourceId

destinationId

typeId

111111

201907311

A

X

W

Ra

222222

201907311

A

X

Y

Rb

333333

201910311

B

X

Z

Rz

Results in two versions of a single OWL reference set entry

UUID

effectiveTime

active

moduleId

referencedComponentId

owlExpression

9c1951e8-bbaa-434b-b9d7-82b460e221de

20190731

1

A

X

EquivalentClasses(:X ObjectIntersectionOf(
ObjectSomeValuesFrom(:Ra :W)
ObjectSomeValuesFrom(:Rb :Y)))

9c1951e8-bbaa-434b-b9d7-82b460e221de

20191031

1

B

X

EquivalentClasses(:X ObjectIntersectionOf(
ObjectSomeValuesFrom(:Ra :W)
ObjectSomeValuesFrom(:Rb :Y)
ObjectSomeValuesFrom(:Rz :Z)
))