owned this note
owned this note
Published
Linked with GitHub
**Recipe UC3-R1.x.1
**
Original doc: [googledoc](https://docs.google.com/document/d/1XJxX5lwM02ZDQkeNyFP5lG38y5yBSmUx2i0_7JTZZrI/edit#)
## Main Objective
The main objective of this recipe is to maintain an up-to-date version of an inhouse (private/proprietary) ontology, which is built up of various other external sources (usually public ontologies). This internal Application Ontology (AO) will be used in various internal processes, pipelines or annotation and analysis tasks, and so must be as up to date as possible, or at least as up to date as necessary for internal task usage(s).
Analysis of data may be automated, hence there is a need to ensure that the AO is up-to-date when required to be used.
## Graphical overview of the Recipe
<div class="mermaid">
graph TB
A[external ontology 1]-- update frequency -->X[internal application ontology IAO]
B[external ontology 2]-- update frequency -->X
C[external ontology x]-. update frequency .->X
X --> G[internal annotation]
X --> H[internal analysis]
X --> I[internal IAO maintenance]
A -.integrality.- G
B -.integrality.- G
A -.integrality.- H
B -.integrality.- H
A -.integrality.- I
B -.integrality.- I
</div>
External ontologies (1, 2, ..x) are incorporated into the (internal) application ontology (AO).
Each of these external ontologies has a 'update frequency'.
The AO is used in a variety of internal processes or use cases, represented by 'annotation', 'analysis' and 'maintenance' processes.
The 'integrality' property represents how integrated an external ontology is the AO, and may be an important consideration in the ultimate usage internally. For instance, the importance of a specific ontology in a particular use case may be less relevant, and may not hinder the results specifically.
## Considerations
The objective is to determine the required content update frequency for an internal AO, to align it with external sources which may have different update frequencies. These need to be imported, and the imports must meet with use case needs. The considerations would need to include:
* In which use cases and processes is the AO ontology used?
* What is the frequency of initiation of each use case or analysis. Specifically, how frequently is this executed.
* Can or is the process run on demand?
* What is the priority of each use case?
* To what extent does an update of the AO affect the use case?
* Does the use case still deliver acceptable results without updating the AO every time the external ontologies are updated?
* How many resources are needed to fix issues within the use case that are introduced by updating the AO? This might be, for example, deprecated terms, splits of terms or merging of branches within the updated AO.
* Can some processes that rely upon the ontology be run less frequently with negligible or acceptable impact?
* How many external sources need to be incorporated into the internal AO
* For each external source
* how often is each resource updated on the provider side (is this scheduled or *ad hoc*)
* how often does the internal AO run with a dependency on information from that external resource
* Are the incorporated ontology terms cross referenced across other branches of the AO (can the terms from one particular external source considered to be independent or are there inter-dependencies across the imported sources).
**NOTE**: This recipe can be integrated with the recipe to determine when an external resource has been updated (need to check the id)
The table below is an example of how this information may be collated in a manner that allows a decision to be made on update frequency for the AO. Table columns: ‘Use case’, a specific process that uses the AO; ‘Periodicity’, the frequency at which this process is executed; ‘Priority’, ranking of importance of the use case (1-5, with 5 highest); ‘Ext’, external ontology imported displayed as defined abbreviation (in some resource used as a dictionary, such as OLS) with update periodicity (in appropriate units, eg. days); ‘Dep’, whether this imported ontology is cross-related to other branches of the AO (see 'integrality' above.
#### Example only:
|Use case| Periodicity | Priority | Ext (periodicity/days) | dep |Affected by changing the AO|Ressources needed to fix issues|
| -------- | -------- | -------- |-------- | -------- | -------- | -------- |
| one | daily | 5 |
| | |1| BFO (1)|false |high |low ||
| || 3 |EFO (7) |true |medium |low ||
| ||1 | UO (37)|false |medium |high ||
> [name=karsten-quast]Would it make sense to add weights to the respective columns and then calculate an overall score for each row?
>
> [name=Nick Juty] I think that might be useful, but I think this information could also be captured in different ways, not even necessarily in a table. I will let the reviewer comment, and we can take it from there...
### Possible Solutions
Note: Multiple solutions may be possible depending on the importance of the constituent external ontologies in the AO. This may be ‘use case’ dependent; since it is a clinical use case, ‘UO’ may be much more important than ‘BFO’. An analysis should be performed for each process that relies upon the AO.
#### Example
An automated update frequency for use case “one” reliance on the AO may be suggested from the above information. Here, the periodicity of ‘Ext’ may be the overriding factor, where ‘EFO’ is the most important source. Additionally, there are further relationships built internally in the AO (‘Dep’ = true). Since ‘BFO’ and ‘UO’ priority is low for this use case, the update frequency of AO could match the periodicity of ‘EFO’.
Alternatively, AO could be updated ‘on demand’ daily, to match the use case need/periodicity.
A more dynamic approach would be to determine whether any external sources have been updated prior to executing use case “one” (daily).
## Authors:
| Name | Affiliation | orcid | CrediT role |
| ------------- | ------------- | ------------- |------------- |
| Nick Juty |The University of Manchester | 0000-0002-2036-8350 |Writing - Original Draft ||
|Karsten Quast|Boehringer-Ingelheim|0000-0003-3922-5701| Writing - Original Draft||
## Licence:
https://creativecommons.org/licenses/by/4.0/