-
Notifications
You must be signed in to change notification settings - Fork 215
Description
The use of BFO encourages redundant representation of the same concept across multiple ontologies, where there is a single core concept and many 'shadows'. Examples:
- air temperature, air temperature measurement, air temperature datum (e.g Term request: 'air temperature measurement datum', 'rate of hydrological precipitation', 'atmospheric water vapor measurement datum', 'mean rate of hydrological precipitation', 'mean air temperature', and 'mean atmospheric water vapor' EnvironmentOntology/envo#387)
- various disease shadows, etc. See e.g. http://www.ontobee.org/search?ontology=IDOBRU&keywords=human+brucellosis&submit=Search+terms
- physical geographic areas and their abstract 2D immaterial counterparts
Counter-examples would be something like COVID-19 and SARS-CoV-2 -- even though infectious disease hierarchies may shadow virus hierarchies, these represent what most biologists would agree are truly distinct concepts, with different nomenclature, specialities, etc.
My own view (which may not be shared by others in OBO, but which is based on extensive experience) is that these are deeply problematic for many reasons including:
- they confuse users
- they serve no real user requirements, only ontologist requirements
- they are frequently incorrectly logically encoded
- they lead to ragged lattices
- they complexify existing difficult modularity issues
- shadow hierarchies typically fall out of sync
- even where exemplary practices are followed (e.g. rector normalization) OWL has well-known shortcomings e.g for shadowing a partonomy
Even if we cannot reach consensus here, we desperately need to issue guidelines concerning the ontology scope principle.
Consider the situation where I maintain an ontology with class "Foo", and an ontologist wants a class "Foo datum". I consider "foo datum" to be trivial and confusing and do not want to include it in my ontology. The ontologist therefore goes ahead and adds "foo datum" to their application ontology which is much narrower in scope than is appropriate for the Foo concept.
How do we resolve these situations? Should it be a freeforall with "application ontologies" creating shadow classes? Should I be compelled to accept "Foo datum" in my ontology? Should we create a single dump autogenerated robot/dosdp template driven ontology called the "Datum" ontology that auto-shadows massive chunks of OBO?
The above scenario may hold for other kinds of shadows beyond Datum shadows.