OxO is a service for finding mappings (or cross-references) between terms from ontologies, vocabularies and coding standards. OxO imports mappings from a variety of sources including the Ontology Lookup Service and a subset of mappings provided by the UMLS.
OxO is comprised of three components:
- The loader scripts (oxo-loader/), which pull data about terms and mappings from the OLS, OBO xrefs, and UMLS and upload them to neo4j
- The indexer (oxo-indexer/), which indexes terms and mappings found in neo4j in solr
- The Web application (oxo-web/), which provides the user interface
The preferred method of deployment for OxO is using Docker. If you would like to deploy the entire OntoTools stack (OLS, OxO, and ZOOMA), check out the OntoTools Docker Config repository. If you would like to deploy OxO only, read on.
First, create the necessary volumes:
docker volume create --name=oxo-neo4j-data
docker volume create --name=oxo-neo4j-import
docker volume create --name=oxo-mongo-data
docker volume create --name=oxo-solr-data
docker volume create --name=oxo-hsqldb
Then, start OxO:
docker-compose up
The OxO instance will be empty until the loader and indexer have been executed.
The loader scripts are documented in the README of the oxo-loader/ directory.
After using the loader to load data into neo4j, the indexer can be executed using Docker:
docker run --net=host ebispot/oxo-indexer:dev
Sometimes it is impractical to use Docker (e.g. for local development). To get OxO up and running without Docker, first install:
- neo4j community edition 3.1.1
- solr 5.3.0
- Java 1.8
- Maven
The instructions for the loader are not Docker-specific, and can be found in the oxo-loader/ directory. For the indexer and Web application, first compile the project using Maven:
mvn clean package
Then run the indexer:
java -Xmx10g -jar oxo-indexer.jar
The Web application is a standard WAR and can be deployed using e.g. Tomcat.
It is possible to customise several branding options in oxo-web/src/main/resources/application.properties
:
oxo.customisation.debrand
— If set to true, removes the EBI header and footer, documentation, and about pageoxo.customisation.title
— A custom title for your instance, e.g. "My OxO Instance"oxo.customisation.short-title
— A shorter version of the custom title, e.g. "MYOxO"oxo.customisation.description
— A description of the instanceoxo.customisation.org
— The organisation hosting your instance