# Ontology references in ODM

**URL:** <https://odm.discourse.group/t/ontology-references-in-odm/196>\
**Category:** Development\
**Tags:** odm-v3, ontology\
**Created:** [June 30, 2026, 10:19pm UTC](https://odm.discourse.group/t/ontology-references-in-odm/196 "2026-06-30T22:19:33Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![matthomson](https://avatars.discourse-cdn.com/v4/letter/m/dec6dc/32.png) [@matthomson](https://odm.discourse.group/u/matthomson)\
**Post date:** [June 30, 2026, 10:19pm UTC](https://odm.discourse.group/t/ontology-references-in-odm/196/1 "2026-06-30T22:19:33Z")

</div>

We have had some succession using the [PHES-ODM Search Model Context Protocol (MCP)](https://github.com/PHES-ODM/PHES-ODM-Search-MCP) and the [ontology mapping tool](https://github.com/PHES-ODM/ontology-mapping) that @dmanuel developed, to improve the ontology linkages within the PHES-ODM to better support controlled vocabulary usage.

However, the PHES-ODM exists at a niche that isn’t well ontoglogized, I would argue (public health, wastewater surveillance), and despite the strong and valiant efforts of our colleagues over at PHA4GE and the GENEPIO ontology, there are still a lot of gaps.

Now a lot of things are close, but I am unsure if they’re appropriate to link because of the purpose of their source ontology - for example, COVOC:0050061 is a ontology entry for a school closure as a public health action, but the ontology is only for COVID-19 pandemic study and work, so not useable in other contexts. Or the particularly rich APOLLO\_CV, which has entries like APOLLO\_SV:00000621 for lockdowns, but is intended for epidemiological modelling and simulation, not reporting real life actions. For these items I feel like it’s a “close but no cigar” kind of scenario.

For other items, like GENEPIO:0100953 for a grab sample and UO:0000180 for mass for unit volume, they’re useful, but more as a parent to certain ideas (like parent to horizontal and vertical grab samples, or for gram per cubic meter respectively).

I am wondering:

- Is continuing to pursue better ontology alignment worthwhile?
- Should we add a new parts table column, “ontologyParentID” to use where a satisfactory match is unavailable, but a parent exists?
- Should we just do what we can, matching mostly units and genes and pathogens, and call it a day for now?

Looking forward to hearing more feedback!
