Ontology support


I would like to know whether the gen3 platform currently or is planning on providing support for incorporating ontologies into a data model?

For example, being able to specify specific ontologies for a field and for given values to be validated against the ontology?

I'd also like to be added to the gen3 slack if possible.


Hi @marion_s,
welcome to the forum and thank you for your question :slight_smile:
The Data Model in Gen3 is configurable to your needs and supports 3rd party ontologies (e.g. NCI Thesaurus, https://www.snomed.org/, https://ohdsi.org/, Ontology Lookup Service < EMBL-EBI). An example for a property in a node is this one.
The slack request has been sent :slight_smile:

thanks for the slack invite and the pointer to the data dictionary @xritter2 !

I can see now that you can use an ontology to define specific term or enum definitions. Is there a way of using it more generally rather than specifying each term? For example if I had a property that was 'organism_part' and wanted to allow any term within the UBERON ontology? That is, allow any child term of anatomical entity - http://purl.obolibrary.org/obo/UBERON_0001062

Or would I have to specify an enum for all the terms I would want to allow?

Could you specify perhaps what that means as in a short description of what you want to accomplish?
If I understand your question correctly, then, yes, for each property in a node you would need to specify enums/etc.

Okay yep I will try to explain better.

Previously I have worked with json schema where you can specify a parent ontology term so that any child term is considered a valid value for that property, and use json schema validation to validate them as child terms. This means that essentially all child terms of a parent term form an enum, without having to explicitly define them as an enum within the schema. This also means that you don't need to know 'upfront' the exact terms you want as part of the enum, only that the terms will come from a specific ontology or branch of ontology. Additionally, as the ontology changes, there is no need to update the underlying schema by adding/removing enums.

Going back to my example of defining a property for a 'part of organism', it would be somewhat simpler to say, we recognise the all the anatomical terms in the UBERON ontology, rather than having to specify upfront 10s-100s of ontology terms and link each one to an enum value. This of course has other trade-offs in terms of maybe allowing too many terms.

I was just curious as to whether this kind of functionality existed, but as I understand it from your answer, any ontology terms that we would want to use as values for a property would need to be specified explicitly, one-by-one as enums.


Hi @marion_s,

At this time we do support links to the ontologies, but not the automatic population of the values. So yes, you are correct, property values need to be specified explicitly.