Skip to content
This repository has been archived by the owner on Apr 28, 2023. It is now read-only.

How to synchronize ontologies between OLS instances? #589

Open
KonradHoeffner opened this issue Apr 25, 2022 · 5 comments
Open

How to synchronize ontologies between OLS instances? #589

KonradHoeffner opened this issue Apr 25, 2022 · 5 comments

Comments

@KonradHoeffner
Copy link

We want to setup synchronization between two OLS instances where one instance A is the source and another B is the target. In regular intervals or on a manual triger, ontologies from A should be imported into B if they don't exist yet or if there have been changes. Potentially this could also work in both directions.
Does something like this exist or if not could you give me advice on where I could best start implementing this?

@jamesamcl
Copy link
Member

Nothing like this exists at the moment. If I were to implement it I would perhaps think about modifying the config importer to import the configuration from the other instance, but I'm not sure how easy this would be.

@KonradHoeffner
Copy link
Author

Thanks, I will familiarize myself with the code base and then try to implement the feature at the config importer!
However it may take a while as I don't have any prior experience with Spring.

@KonradHoeffner
Copy link
Author

KonradHoeffner commented May 20, 2022

https://www.ebi.ac.uk/ols/docs/index states:

How often does OLS check for updates in external ontology files?
OLS updates nightly to always provide the latest ontology versions

Where can I know more about this update mechanism? Maybe this can be used as a synchronization mechanism?
Or does this work outside of OLS by rebuilding and restarting the docker container in a cron job?

@henrietteharmse
Copy link
Contributor

The scheduling happens outside of OLS. However, it is the indexing application that decides what needs to be reloaded.

@KonradHoeffner
Copy link
Author

KonradHoeffner commented Nov 17, 2022

In the end, we found it easier to develop a small stand alone command line application at https://github.com/annosaxfdm/olsync that uses the OLS API to read in the ontology configuration of one OLS instance and that transforms this into an OLS configuration file so that those ontologies can be loaded into another OLS instance.
Maybe this is useful for someone else.
While it could probably be implemented more directly inside OLS itself, we found it easier to decouple it into a separate component that can be loaded inside a Docker compose file and that can be used alongside the original OLS without the need to necessarily maintain a fork.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants