RadiationOncologyOntology / ROO

Apache License 2.0
7 stars 6 forks source link

NCIT class hierarchy change breaks reasoning in ROO (when sideloading NCIT) #82

Open jvsoest opened 6 years ago

jvsoest commented 6 years ago

As mentioned before, NCI has changed the class hierarchy in the NCIT. As we are using still the old hierarchy, some errors occur when loading both ontologies with inferencing switched on. These are related to class hierarchies and disjoints in the NCIT, which havent been propagated in the ROO. (Credits Detlef Grittner)

Two examples: Example 1 ncit:C112376 (aka PercentageFEV1) is a subclass of ncit:'Pulmonary Function Test' (which is a subclass of ncit:Activity) in the NCI Thesaurus. The ROO makes the same class ncit:C112376 a subclass of ncit:Percentage (which is a subclass of ncit:'Property or Attribute'). ncit:'Activity' is disjoint with ncit:'Property and Attribute' in the NCI Thesaurus. Thus we get another contradiction, in this case we can't even define an individual of type ncit:C112376.

**Example 2*** I construct individuals for nci:C2926 (lung_carcinoma) and roo:100049 (plns) and link them as triples as follows: lung_carcinoma roo:100022 plns. When starting the inferencer Pellet complains about the fact that plns is of type nci:C20189 and can't be of a type of a complement of this.

I have dug deeper into the problem and obviously this problem originates from within the ROO of Maastro: The property roo:100022 (has_finding) has the Range sty:Finding. roo:100049 (positive lymph node stations) is of type nci:Count. nci:Count is a subclass of nci:'Property or Attribute' (nci:C20189 !) sty:Finding is equivalent to nci:Finding. nci:Finding is a subclass of nci:'Disease, Disorder or Finding'. So the above triple means that the instance of roo:100049 is also of the types sty:Finding, nci:Finding, nci:Count, nci:'Property or Attribute', nci:'Disease, Disorder or Finding'. The NCI thesaurus ontology defines that nci:'Property and Attribute' is disjoint with nci:'Disease, Disorder or Finding'.

Since the instance of roo:100049 is now of type nci:'Property and Attribute' and nci:'Disease, Disorder or Finding', this leads to a contradiction and the resulting ontology is invalid. Therefore you cannot construct statements like lung_carcinoma roo:100022 plns with these two ontologies.