Description logic expressibility beyond SNOMED CT: Classification use cases |
Previous
|
|
Next
|
Included reasoners |
|
Concrete domains |
Description logic expressibility beyond SNOMED CT: Classification use cases
Basic classification
This is an example of classifying a newly added concept that does not exceed SNOMED CT's current description logic expressibility.
Example
- Create a new concept Special bone cyst as a child of Disease (64572001) and add the following relationship:
- Associated morphology = Bone cyst (morphologic abnormality) (66954000)
Special bone cyst - Relationships before classification
- Set definition status to fully defined
- Classify
Expected results
- Special bone cyst should have a new parent: Cyst
- The relationship to the original parent should be inactivated
- Two new child concept should be added to Special bone cyst: Bone cyst and Aneurysmal cyst of jaw
- The parent relationship from Bone cyst to Cyst should be inactivated
Classification results demonstrating simple classification
Tested reasoners
The following reasoners have been verified to produce the expected results:
- ELK (bundled with Snow Owl as the default reasoner)
- CB (bundled)
- ConDOR (bundled)
- FaCT++ (bundled)
Disjoint concepts
Snow Owl supports creating disjoint concepts. The disjointedness of sibling concepts can be set at the parent classes concept editor by setting the Subclass enumeration to Exhaustive on the Overview page. If you would like to make a few concepts disjoint that may not necessarily have the same parent, or the parent has other, not disjoint subclasses there is a workaround for that too. You need to create a meaningless container concept, that will only exist for the purpose of holding the disjoint classes together. Then all the concepts that you would like to make disjoint, should be attached to this container concept with an is_a relationship. The last step is to set the 'Subclass enumeration' property of this container concept to 'Exhaustive', so indicating, that all the subclasses are disjoint from each other.
Example
- Create Disjointedness test parent as a subclass of Organism (410607006), setting its subclass enumeration to exhaustive to express that the subtypes are disjoint
Adding new disjointedness test parent concept
- Create children of Disjointedness test parent
- Create Dots with IS A relationships to both Cats and Dogs.
Hierarchy
Expected result
The equivalent classes dialog should show up displaying Dots under the label "Unsatisfiable concepts."
Unsatisfiable concept result
Tested reasoners
The following reasoners have been verified to produce the expected results:
Negation
Snow Owl now supports description logic negation. You can add negation to a newly created relationship by setting the Destination negated property to 'yes' on the New relationship wizard. Negating an already existing relationship is not possible, for that you need to inactivate that relationship first and create a new one with the same attribute and destination but the 'Destination negated' property set to yes.
Example
- Look up Consciousness related finding (106167005) and make subclasses disjoint by setting the subclass enumeration to exhaustive.
- Open Concussion with no loss of consciousness (62106007) and add the following relationship:
- Associated finding: NOT Loss of consciousness (419045004) (you have to set the destination to negated in the new relationship wizard).
- This makes this concept fully defined so please set it to fully defined on the overview page.
Concussion with no loss of consciousness - Relationships after adding negated relationship
- Create a new concept: Waking concussion as a child of Concussion injury of brain (110030002).
Adding Waking concussion concept
- Fully define Waking concussion with the following relationships:
- Is a: Traumatic brain injury with no loss of consciousness (127302008)
- Finding site: Brain structure (12738006) (Group id: 1)
- Associated morphology: Traumatic abnormality (19130008) (Group id: 1)
- Associated finding: Awake (248218005)
Waking concussion - Relationships before classification
- Classify with ConDOR or FaCT++
Expected result
Waking concussion will appear as a child of Concussion with no loss of consciousness, its IS A relationships to its original parents are marked as redundant. The other child of Concussion with no loss of consciousness (Concussion with mental confusion AND/OR disorientation without loss of consciousness) will inherit the associated finding: NOT loss of consciousness relationship.
Classification results demonstrating negation
Hierarchy after classification
Waking concussion - Relationships after classification
Tested reasoners
The following reasoners have been verified to produce the expected results:
- ConDOR in 2:09
- FaCT++ in 19:10
Disjunction
Snow Owl supports description logic disjunction. When creating an union of two clinical meanings the disjunctive concept appears as the parent of the two joined concepts. The actual union has to be reflected by the relationships too: the same union group (other, than 0) and the same relationship group should apply for those relationships that are important for the definition of the disjunction.
Example
- Create a new concept: child of Injury of upper extremity (127278005), call it Fracture OR strain of upper limb
- Add relationships
- Finding site = Musculoskeletal structure of upper limb (281243005), group 1, union group 0
- Associated morphology = Strain - lesion (morphologic abnormality) (308497004), group 1, union group 1
- Associated morphology = Fracture (morphologic abnormality) (72704001), group 1, union group 1
Fracture OR strain of upper limb - Relationships before classification
- Make it fully defined
- Classify using ConDOR or FaCT++
Expected result
Concepts related to fractures or strains of upper limbs should show up as the children of the newly created concept.
Classification results demonstrating disjunction
Tested reasoners
The following reasoners have been verified to produce the expected results:
- ConDOR (as shown) in 2:07
- FaCT++ in 18:49
Notes:
- CB will incorrectly infer that the parent class of Fracture OR strain of upper limb (last statement on the image) is Disorder of musculoskeletal system instead of its subclass Injury of musculoskeletal system. Since CB's reasoning is incomplete over non-Horn ontologies, it should not be used with ontologies requiring disjunction.
Numerical datatypes
Snow Owl supports the addition of numerical datatypes at certain use cases. These datatypes are handled as special SNOMED CT datatypes during the reasoning, and only the default equation operator is supported. Numerical values can only be added to Pharmaceutical/biologic products that has a 'has active ingredient' relationship to a Substance. The numerical value is always tied to this relationship, each relationship can have one associated strength value.
For this test you first need to create a new reference set where you specify a concept modelling rule about using numerical datatypes on the members. That allows you to add numerical values. All the Pharmaceutical products need to be added and edited in the scope of this reference set.
Example
- Create a new concept: child of Oral form Amoxicillin (350162003), call it Amoxicillin 500mg
- Add relationships
- Has dose form = Oral dosage form (385268001)
- Has active ingredient = Amoxicillin (substance) (372687004)
- Has strength = 500mg on Amoxicillin active ingredient
- Make it fully defined
- Find Amoxicillin 500mg capsule (323510009), add 500mg to the active ingredient and set it to fully defined
- Find Amoxicillin 500mg tablet (374646004), add 500mg to the active ingredient and set it to fully defined
- Classify
Expected results
Amoxicillin 500 mg should show up as the parent of Amoxicillin 500 mg tablet and Amoxicillin 500 mg capsule.
Classification results demonstrating numerical datatypes
-
Note: Unsupported reasoners usually drop the complete concept definition; as a result, the concept does not appear in the inferred concept hierarchy anywhere, and this would make the normal form generator believe that the concept's IS A relationships should be deactivated. This causes problems when changing to a more capable reasoner (eg. equivalent concepts appearing). To avoid this, whenever the last IS A relationship would be deactivated, the concept is deactivated instead, and the relationship is preserved. You can test this behavior with ConDOR.
Tested reasoners
The following reasoners have been verified to produce the expected results:
- ELK (as shown) in 1:04
- CB in 1:49
- FaCT++ in 18:45
Universal restriction
Universal restriction has been supported since Snow Owl v0.9. An example is included here for completeness.
Example
- Add a new relationship to Clinical finding (404684003): Clinical course = Courses (288524001)
- In the New relationship wizard, set the modifier to ∀ (All)
Adding new clinical course relationship with universal restriction
Clinical finding - Relationships before classification
Expected result
All children of Clinical finding will inherit this relationship, thereby expressing that there is always one but only one Clinical course relationship (all diseases have some course).
Classification results demonstrating universal restriction
Tested reasoners
The following reasoners have been verified to produce the expected results:
Many other reasoners will work, but have a wide variety of performance and memory usage, some requiring several gigabytes of memory. Your mileage may vary. If you have something specific in mind, please send us a note at
snowowl@b2international.com for advice.