Page History
The logic definitions are represented by the OWL axiom refset that is a replacement of the RF2 stated relationship file. As a result, the nature of the inferred relationship file in the distribution normal form (DNF) has changed, because the new DL features are not representable in the current relationships file. The inferred relationship file will maintain the same format and structure, but it is no longer equivalent to the stated form (containing all necessary and sufficient conditions). In fact, it is a collection of all the necessary conditions of precoordinated concepts and represents a subset of the full semantics.
...
The NNF does not include class disjointness, transitive properties, reflexive properties and sufficient conditions represented as General Concept Inclusions (GCIs) in the OWL axiom refset.
Inferred relationships for concrete values, e.g. decimal, integer, string, or dateTime, should be included in a separate relationship file.
Rules for
...
Determining Redundant Relationships
Rule 1 - Class and Role inclusions
...
Example for Class inclusion
Stated relationships
Inferred relationships before the removal of redundant relationshiprelationships
Inferred relationships after the reduction
For
, the relationship Concept ShowParts term t 12676007 |Fracture of radius|
= Concept ShowParts term t 363698007|Finding site|
is inherited from Concept ShowParts term t 299701004|Bone structure of radius and/or ulna|
, which is a redundant relationship because |Radius bone structure| because Concept ShowParts term t 65966004|Fracture of forearm|
is a subtype of Concept ShowParts term t 62413002|Bone structure of radius|
forearm Concept ShowParts term t 299701004|Bone structure of
. The relationship relationship radius and/or ulna|
= Concept ShowParts term t 116676008|Associated morphology|
is inherited from Concept ShowParts term t 19130008|Traumatic abnormality|
, which is a redundant relationship because because Concept ShowParts term t 429353004|Injury of radius|
| is Concept ShowParts term t 72704001|Fracture
is a subtype of (morphologic abnormality)|
. Concept ShowParts term t 19130008|Traumatic abnormality|
Caption label | ||||
---|---|---|---|---|
| ||||
Example in OWL axiom refset and RF2 relationship file (NNF) |
referencedComponentId | owlExpression (stated relationships) | Inferred Relationships in Necessary Normal Form | |||
sourceId | destinationId | relationshipGroup | typeId | ||
125605004 | EquivalentClasses(:125605004 ObjectIntersectionOf(:64572001 ObjectSomeValuesFrom(:609096000 ObjectIntersectionOf(ObjectSomeValuesFrom(:116676008 :72704001) ObjectSomeValuesFrom(:363698007 :272673000))))) | 125605004 | 284003005 | 0 | 116680003 |
125605004 | 72704001 | 1 | 116676008 | ||
125605004 | 272673000 | 1 | 363698007 | ||
12676007 | EquivalentClasses(:12676007 ObjectIntersectionOf(:64572001 ObjectSomeValuesFrom(:609096000 ObjectIntersectionOf(ObjectSomeValuesFrom(:116676008 :72704001) ObjectSomeValuesFrom(:363698007 :62413002))))) | 12676007 | 65966004 | 0 | 116680003 |
12676007 | 429353004 | 0 | 116680003 | ||
12676007 | 72704001 | 1 | 116676008 | ||
12676007 | 62413002 | 1 | 363698007 | ||
62413002 | SubClassOf(:62413002 :299701004) | 62413002 | 299701004 | 0 | 116680003 |
Example for Role inclusion
Stated relationships
Inferred relationships before the removal of redundant relationship
Inferred relationships after reduction
For concept
, the relationship relationship Concept ShowParts term t 7246002|Kidney biopsy|
= Concept ShowParts term t 363704007|Procedure site|
is inherited from Concept ShowParts term t 64033007|Kidney structure|
, which is a redundant relationship to to Concept ShowParts term t 118851004|Procedure on kidney|
= Concept ShowParts term t 405813007|Procedure site - Direct|
because Concept ShowParts term t 64033007|Kidney structure|
because
is a subtype of Concept ShowParts term t 405813007|Procedure site - Direct|
. Because Concept ShowParts term t 363704007|Procedure site|
. Because
is a subtype of of Concept ShowParts term t 64033007|Kidney structure|
and Concept ShowParts term t 122489005|Urinary system structure|
, the inherited relationships for for Concept ShowParts term t 82849001|Retroperitoneal compartment structure|
are also redundant. Concept ShowParts term t 405813007|Procedure site - Direct|
Caption label | ||||
---|---|---|---|---|
| ||||
Example in OWL axiom refset and RF2 relationship file (NNF) |
referencedComponentId | owlExpression (stated relationships) | Inferred Relationships in Necessary Normal Form | |||
sourceId | destinationId | relationshipGroup | typeId | ||
118851004 | EquivalentClasses(:118851004 ObjectIntersectionOf(:71388002 ObjectSomeValuesFrom(:609096000 ObjectSomeValuesFrom(:363704007 :64033007)))) | 118851004 | 71388002 | 0 | 116680003 |
118851004 | 64033007 | 1 | 363704007 | ||
7246002 | EquivalentClasses(:7246002 ObjectIntersectionOf(:71388002 ObjectSomeValuesFrom(:609096000 ObjectIntersectionOf(ObjectSomeValuesFrom(:260686004 :129314006) ObjectSomeValuesFrom(:405813007 :64033007))))) | 7246002 | 118851004 | 0 | 116680003 |
7246002 | 362995002 | 0 | 116680003 | ||
7246002 | 430212007 | 0 | 116680003 | ||
7246002 | 129314006 | 1 | 260686004 | ||
7246002 | 64033007 | 1 | 405813007 | ||
405813007 | SubObjectPropertyOf(:405813007 :363704007) | 405813007 | 363704007 | 0 | 116680003 |
Rule 2 - Property chains including transitive properties
...
Attribute u is the same as or a subtype of t, and
D has a relationship to C via attribute s
...
Example for property chain:
Stated relationships of
(the other model detail has been omitted): Concept ShowParts term t 323739006 |Product containing precisely amoxicillin (as amoxicillin sodium) 1 gram/1 vial powder for conventional release solution for injection (clinical drug)|
Stated relationships
of
Concept | ||||
---|---|---|---|---|
|
Inferred relationships before the removal of the redundant relationship
Inferred relationships after the reduction
For
ethyl morphine|, the relationship |has Concept ShowParts term t 323739006 |Product containing
, the relationship precisely amoxicillin (as amoxicillin sodium) 1 gram/1 vial powder for conventional release solution for injection (clinical drug)|
= |Morphine| is inherited from Concept ShowParts term t 127489000|Has active ingredient|
is inherited from Concept ShowParts term t 372687004 |Amoxicillin|
morphine|, which is a redundant relationship to |has active ingredient| = |Ethyl morphine| because |Ethyl morphine| |Is modification of| |Morphine| and |has active ingredient| has a property chain with |Is modification of|. Concept ShowParts term t 27658006 |Product containing
. If rule 1 for class inclusion was applied, the relationships would not be considered redundant because amoxicillin|
is not a subconcept of Concept ShowParts term t 427483001 |Amoxicillin sodium (substance)|
. Since Concept ShowParts term t 372687004 |Amoxicillin (substance)| Concept ShowParts term t 427483001 |Amoxicillin sodium| Concept ShowParts term t 738774007|Is modification of|
and property chain of " Concept ShowParts term t 372687004 |Amoxicillin|
o Concept ShowParts term t 127489000|Has active ingredient|
" is a sub-property of Concept ShowParts term t 738774007|Is modification of|
, rule 2 actually compares the anonymous concepts for subsumption, i.e. Concept ShowParts term t 127489000|Has active ingredient|
= Concept ShowParts term t 127489000|Has active ingredient|
with Concept ShowParts term t 372687004 |Amoxicillin|
= Concept ShowParts term t 127489000|Has active ingredient|
. Therefore, the inherited relationship is redundant and can be removed from the NNF. Their relationships and property chain can be demonstrated in the following diagram. Concept ShowParts term t 427483001 |Amoxicillin sodium|
Caption label | ||||
---|---|---|---|---|
| ||||
Example in OWL axiom refset and RF2 relationship file (NNF) |
referencedComponentId | owlExpression (stated relationships) | Inferred Relationships in Necessary Normal Form | |||
sourceId | destinationId | relationshipGroup | typeId |
27658006 | EquivalentClasses(: |
27658006 ObjectIntersectionOf(:763158003 ObjectSomeValuesFrom(:609096000 ObjectSomeValuesFrom(:127489000 : |
372687004)))) |
27658006 |
90704004 | 0 | 116680003 |
73572009
360204007
0
116680003
73572009
27658006 | 372687004 | 1 | 127489000 |
323739006 | EquivalentClasses(: |
323739006 ObjectIntersectionOf(:763158003 ObjectSomeValuesFrom(:609096000 ObjectSomeValuesFrom(: |
762949000 : |
427483001)))) |
323739006 |
27658006 | 0 | 116680003 |
323739006 |
427483001 | 1 |
762949000 | |||||
127489000 | SubObjectPropertyOf(ObjectPropertyChain(:127489000 :738774007) :127489000)) | N/A | N/A | N/A |
427483001 | SubClassOf(: |
427483001 ObjectIntersectionOf(:440327007 ObjectSomeValuesFrom(:738774007 : |
372687004))) |
427483001 |
373298001 | 0 | 116680003 |
427483001 |
372687004 | 0 | 738774007 |
...
427483001 | 768681000 | 0 | 726542003 |
Technical Implementation for Calculating the NNF
This fairly complex process uses the stated form and the output of the reasoner to calculate the necessary normal form which is represented in the relationship RF2 file.
...
Read the Stated Form from RF2 files.
The following files are required: Concept, Stated Relationship, OWL Ontology Reference Set, OWL Axiom Reference Set.
If the edition has any active stated relationships then the Stated Relationship and MRCM Attribute Domain Reference Set files are also required.
Use the OWL API to infer the class hierarchy
Build the Ontology object using:
Axioms from the OWL Axiom Reference Set, making a note of any Transitive property and Property Chain axioms.
Axioms created by converting Stated Relationships to OWL Axioms using the MRCM Attribute Domain Reference Set for list of attributes which should not be grouped in the given domain.
Use a reasoner to pre-compute the class hierarchy.
...
Calculating the necessary normal form happens in two passes of the hierarchy.org.snomed.otf.owltoolkit.normalform
Walk the class hierarchy in a top-down, breadth first, order.
For each class visited gather the stated attributes of this class and each inferred parent.
Compare the attributes and remove those which are found to be redundant because they are less specific in terms of depth in the hierarchy.
During this first pass build a hierarchy for property chains and transitive properties.
Walk the class hierarchy again in the same order reducing the attributes of each class further.
Compare the attributes and remove those which are found to be redundant because they are less specific in terms of depth in one of the alternate hierarchies.
For fine level detail the best source of information is the Java class org.snomed.otf.owltoolkit.normalform.RelationshipNormalFormGenerator which performs the Necessary Normal Form calculation.
Assignment for Role Group Number
It is important to clearly indicate if an attribute is grouped or not because
Concept | ||||
---|---|---|---|---|
|
Concept | ||||
---|---|---|---|---|
|
Concept | ||||
---|---|---|---|---|
|
Concept | ||
---|---|---|
|
The following rules should be followed in the inferred relationship file to provide consistent representation aligned with the concept model diagram and the OWL axiom refset.
All
relationships should be assigned in role group 0;Concept t 116680003 |Is a| Attribute that is not grouped, not a value of
or grouped=0 in MRCM, should be assigned in role group 0;Concept ShowParts term t 609096000 |Role group (attribute)| - Attribute that is grouped, value of
or grouped=1 in MRCM, should be assigned a role group number that is not 0. EachConcept ShowParts term t 609096000 |Role group (attribute)|
in the OWL axiom should be presented by a unique role group number. Note, role group merging is not covered here.Concept ShowParts term t 609096000 |Role group (attribute)|
Concept | ||
---|---|---|
|
An example for the current diagram representation for attribute in role group 0 in the stated relationship file and concept model diagram
sourceId | destinationId | relationshipGroup | typeId |
---|---|---|---|
90708001 | 64033007 | 0 | 363698007 |
After the complete OWL axiom refset is implemented,
Concept | ||||
---|---|---|---|---|
|
referencedComponentId | owlExpression |
---|---|
90708001 | EquivalentClasses(:90708001 ObjectIntersectionOf(:64572001 ObjectSomeValuesFrom(:609096000 ObjectSomeValuesFrom(:363698007 :64033007)))) |
Representation of
Concept | ||||
---|---|---|---|---|
|
sourceId | destinationId | relationshipGroup | typeId |
---|---|---|---|
90708001 | 734045002 | 0 | 116680003 |
90708001 | 443820000 | 0 | 116680003 |
90708001 | 249578005 | 0 | 116680003 |
90708001 | 64033007 | 1 | 363698007 |