edmcouncil / ontology-publisher

The owl-builder "builds" publishable / deployable versions (and derived products) of a given set of ontologies (such as FIBO)
MIT License
7 stars 6 forks source link

Ontology Builder

What is the Ontology Builder?

The Ontology Builder is a Docker Image that executes the build process, testing and publishing the git-based content of an Ontology "Family".

The Ontology Builder can process any Ontology Family as long as it is based into one git repository.

It has as input a git-clone of the repository of the Ontology Family (the source) and as output a target directory with tested and publishable content.

Local Usage

The Ontology Builder can be run "locally" on your Ontology Development machine provided that you have installed Docker.

Run the publisher with the following command:

./docker-run.sh --run

If you'd like to have a shell inside the Docker Container use this:

./docker-run.sh --shell

If you'd like the ontology-publisher's container to use your local drive for both input and output then add the --dev parameter:

./docker-run.sh --shell --dev

If you'd like the ontology-publisher's container to start with a clean slate in the output directory then add --clean:

./docker-run.sh --shell --dev --clean

If you'd like to just build the image:

./docker-run.sh --buildimage

The --rebuildimage option forces the image to be rebuilt with the ability to change the default values for certain environment variables (see docker-run.sh --rebuild option), e.g .:

env ONTPUB_FAMILY="onto" ./docker-run.sh --rebuildimage

sets the default ontology family to onto.

If you'd like to publish the image to Docker Hub:

./docker-run.sh --pushimage

Environment variables

When running ontology-publisher it is possible to set environment variables appropriate for the processed ontology as follows:

env <VARIABLE_NAME>=<VARIABLE_VALUE> [<VARIABLE_NAME1>=<VARIABLE_VALUE1>...] ./docker-run.sh [OPTION...]

for example:

env ONTPUB_FAMILY="onto" ./docker-run.sh --shell --dev

List of allowed <VARIABLE_NAME> (and defaults for <VARIABLE_VALUE>):

Jenkins

TODO: The text below this point needs to be updated.

How can I get access?

The Jenkins server runs at https://jenkins.edmcouncil.org. It uses Github user authentication, so everyone needs to have a Github userid in order to access the Jenkins server. This userid needs to be part of the EDM Council organization on Github.

Jenkins Master & Slaves

The server that runs at https://jenkins.edmcouncil.org is the so called "Jenkins Master Server". The idea is that most common jobs will run there, until we need more capacity. In that case we can delegate the work of running Jenkins jobs to "slaves". These are Jenkins-servers that do not have their own GUI, they're installed on any other machine automatically by the Jenkins Master, and simply run Jenkins jobs.

Vendor Slaves

The facility that Jenkins provides to run jobs on a slave, can also be used to run specific jobs on special hardware. That hardware could be hosted elsewhere, for instance at the premises of a vendor in the ontology space, such as a triple store vendor. These vendors could then run the ontology test jobs on their own hardware, all configured and tuned as good as it gets. Whenever a change is pulled into the ontology repository, all sorts of jobs can get triggered on many different machines, validating that change.

ontology-infra repo & directory structure