AIDAVA-DEV / AIDAVA-Reference-Ontology

AIDAVA Reference Ontology
1 stars 0 forks source link

Introduce a strategy for Measurement and its subclasses #40

Closed KateSerafimova closed 4 months ago

KateSerafimova commented 4 months ago

The Measurement class in SPHN has many subclasses, but not all data that can be described with Measurement can fit in one of the subclasses. We need a consistent strategy on how to instantiate entities of type Measurement.

Options:

  1. Instantiate everything in Measurement - add all needed properties directly to it and deprecate all the subclasses
  2. Instantiate everything with a subclass, and use measurement just as the Parent class - keep the subclasses with their specifics and introduce new subclasses for the needed data points - such as aidava:DiagnosticMeasurement
KateSerafimova commented 4 months ago

We decide on the 1st approach

KateSerafimova commented 4 months ago

In SPHN, the sub-classes of Measurement are used to add specific restrictions for a given Concept. So when we deprecate them, we will lose those restrictions:

 hasQuantity owl:someValuesFrom [ a owl:Restriction ;
                                owl:onProperty sphn:hasUnit ;
                                owl:someValuesFrom [ a owl:Restriction ;
                                        owl:hasValue ucum:Lpermin ;
                                        owl:onProperty sphn:hasCode ] ]
...
hasMethodCode owl:someValuesFrom [ a owl:Class ;
                                owl:unionOf ( snomed:63075001 snomed:117610000 ) ]
 hasQuantity owl:someValuesFrom [ a owl:Restriction ;
                                owl:onProperty sphn:hasUnit ;
                                owl:someValuesFrom [ a owl:Restriction ;
                                        owl:hasValue ucum:percent ;
                                        owl:onProperty sphn:hasCode ] ]
 hasMeasurementMethod 0-1 owl:someValuesFrom [ a owl:Restriction ;
                                owl:onProperty sphn:hasCode ;
                                owl:someValuesFrom [ a owl:Class ;
                                        owl:unionOf ( snomed:716777001 snomed:46973005 ) ]
...
 hasBodySite 0-1 owl:someValuesFrom [ a owl:Restriction ;
                                owl:onProperty sphn:hasCode ;
                                owl:someValuesFrom [ a owl:Class ;
                                        owl:unionOf ( snomed:113257007 snomed:40983000 snomed:8205005 snomed:7569003 snomed:344001 ) ]
 hasRegularityCode owl:someValuesFrom [ a owl:Class ;
                                owl:unionOf ( snomed:271636001 snomed:61086009 ) ]

These restrictions are maybe not always needed or they can be implemented in a different way.

KateSerafimova commented 4 months ago

Changes done:

Move to Measurement properties from the subclasses:

Deprecate properties (and add replacements for some):