IHTSDO / snomed-owl-toolkit

The official SNOMED CT OWL Toolkit. OWL conversion, classification and authoring support.
Other
92 stars 19 forks source link

Am I supposed to see all relationships in the owl file? #52

Closed bsara closed 3 years ago

bsara commented 3 years ago

I'm not seeing the relationships in the resulting OWL file that I see in the relationship files in the Snomed zip. For instance, I don't see the use of 116680003 (which is the Is a attribute) anywhere in the resulting OWL file. Am I supposed to not see any of that stuff in there? I'm very new to this toolkit and am not entirely sure that I'm even using the tool correctly.

kaicode commented 3 years ago

The OWL axiom file (e.g. sct2_sRefset_OWLExpressionSnapshot_INT_20210131.txt) contains the OWL expressions. These hold the stated form of the concepts. These expressions are used to create the OWL ontology file that this toolkit can produce.

OWL uses class definition statements to represent a child -> parent relationships rather than an Is a attribute. For example the follow axiom owl expression represents the model of the 404684003 |Clinical finding (finding)| concept and the fact that 138875005 |SNOMED CT Concept (SNOMED RT+CTV3)| is the only stated parent:

SubClassOf(
    :404684003 |Clinical finding (finding)|
    :138875005 |SNOMED CT Concept (SNOMED RT+CTV3)|
)

The relationships file (e.g. sct2_Relationship_Snapshot_INT_20210131.txt) contains the "inferred form" of the concepts. Because of the format of the relationships table it can only hold triples (source, target, type). Here we use the Is a type relationship to express that a concept is child of another. The relationships in the inferred form come from the classification process which includes OWL reasoning and takes the stated form as input.

bsara commented 3 years ago

thank you so much for the explanation, it is super helpful. (and for the super fast response too)

bsara commented 3 years ago

@kaicode It does make me wonder, however, why are these attribute classes like Is a included in the resulting owl dataset if they are not used/needed?

kaicode commented 3 years ago

I agree that is-a is not needed because it can not be used in owl. It's hard to be so sure about the rest.