The purpose of this ontology is to create compositional classes that assemble existing OBO ontologies such as ExO, CHEBI and ENVO to make ready-made precomposed classes for use in describing:
The scope is very general and can include for example plant treatment regimens, as well as human clinical exposures (although these may better be handled by a more specialized ontology)
An example of a class (in manchester syntax) is:
Class: ECTO:0000977
Annotations: rdfs:label "exposure to ultrafine respirable suspended particulate matter via inhalation"
Annotations: IAO:0000115 "A exposure event involving the interaction of an exposure receptor to ultrafine respirable suspended particulate matter via inhalation."
Annotations: oio:hasExactSynonym "ultrafine respirable suspended particulate matter exposure, via inhalation"
EquivalentTo: ExO:0000002 and RO:0002233 some ENVO:01000416 and BFO_0000050 some ExO:0000057 ## 'exposure event' and 'has input' some ultrafine respirable suspended particulate matter and 'part of' some inhalation
There is no public browser yet. Use one of the following files:
Note: to open the OWL in Protege you will need to check out the repo so that the catalog can be used.
Ontologies used in composition (largely orthogonal):
Similar ontologies (overlapping/non-orthogonal)
response to X
See below for the merge experiment with these ontologies.
We aim to reuse existing open ontologies as far as possible; for orthogonal ontologies, this is via axiomatization.
Note on ENVO: it may seem that ENVO is an overlapping/non-orthogonal ontology, but following our design patterns here this should be considered orthogonal; analogous to the relationship between an anatomical ontology and a variant/aberrant phenotype ontology.
Another new ontology to note is the UNEP Sustainable Development Goals ontology -- https://github.com/SDG-InterfaceOntology/sdgio/ -- this is being built in a modular fashion using ENVO and is seeding the creation of many useful social classes we will need, e.g. poverty, access to resources, etc.
Release files are in top level
Note: these are only for testing so far, not stable! These should not be considered real releases.
The proposed ID space is very tentative
The model we are using is aligned with the environmental conditions model in Phenopackets. We attempt to follow ExO where possible.
We treat exposures as events; in ontological terms, they are types of
occurrents
. Specifically, they are interactions between a receptor
(typically an organism, but could be a population of organisms) and a
stressor
(an agent or process that has a potential effect on the
receptor). The stressor may interact with the organism through some
kind of environmental medium (e.g. air, water, soil), and may enter
via some route (e.g. permeating the skin or analogous barrier).
In some cases the route may be indirect: passive smoking or drug use by a mother during pregnancy.
This model permits a variety of pre-composed classes. We defined and generate these using Dead Simple OWL Design Patterns (DOSDPs)
See src/patterns for the list of patterns in use.
The basic idea is that a term like 'increased exposure to arsenic through ingestion/diet' can be composed using classes from ontologies such as ExO and CHEBI. We can see this as filling in slots in our datamodel.
Broadly speaking, this ontology is designed to support both pre- and post-composed use cases.
With the pre-composed approach, the curator uses a "ready-made" ECTO class expressing the combination of values required for different slots.
With the post-composed approach, ECTO can largely be disposed of, and instead the description is assembled by the curator by filling in the required slots like 'stressor'.
The two approaches are compatible. Post-composed descriptions can be automatically classified against the pre-composed ECTO. Similarly any description that uses ECTO can be unwound (or 'unfolded') to a pre-composed description, using the OWL equivalence axioms in the ontology.
Most of the ontology is stored as CSVs in src/ontology/modules
See the Makefile for how the ontology is compiled from CSV modules.
See the .omn files for a human-readable set of descriptions
See the README-editors.md file in the src/ontology directory for instructions on how to edit, maintain or release the ontology.
See src/mappings for an exploration of merging multiple exposure ontologies using kboom
The intent is not to make a usable ontology, but rather to help gap fill and understand what is out there.
We welcome suggestions from the community for new terms or changes to existing terms! Please create an issue using our issue tracker.