PlantPhenoOntology / ppo

An ontology for describing the phenology of individual plants and populations of plants, and for integrating plant phenological data across sources and scales.
16 stars 8 forks source link

Remove dependence on GCIs for inferring present or absent #82

Closed ramonawalls closed 1 week ago

ramonawalls commented 2 months ago

PPO currently uses a general glass inclusion/axiom for each structure present or absent class. These axioms are of the form:

'flower presence' and ('has quality datum' some ('data item' and (('lower count' some xsd:integer[> 0]) or ('lower percent' some xsd:decimal[> 0.0])))) SubClassOf 'flowers present'

for present and:

'flower presence' and ('has quality datum' some ('data item' and (('upper count' value 0) or ('upper percent' value 0.0)))) SubClassOf 'flowers absent'

for absent.

These axioms allow us to feed count data from our sources directly into the reasoner and infer which phenotype is associated with the record. However, they add unnecessary complication for a step that probably could be accomplished more efficiently during data processing.

I suggest that we remove these axioms from the ontology and only use the subClassOf and equivalantTo axioms created via Robot templates.

ramonawalls commented 2 months ago

@jdeck88 can you please comment on changes that will be needed to the data processing pipeline. I want to make sure the new version of the ontology fully supports data ingest.

ramonawalls commented 2 months ago

I will remove these axioms as part of the ODK conversion process (see https://github.com/PlantPhenoOntology/ppo/tree/odk-conversion). I spent quite a few hours trying to get DOSDPs to work with the GCIs, but I could not figure out the correct syntax for including GCIs that specify data types as a value for data properties, and there is no documentation available on how to do so.

@jdeck88 This means that the next release of the ontology (using ODK) may not work with the existing data pipeline. Instead, we may have to infer the present and absent classes as part of the pre-processing pipeline.