This repository provides a Reconciliation Service for the the SkoHub core infrastructure.
The module is designed to serve SKOS Vocabularies according to the Reconciliation API specification. It currently supports:
To insert vocabularies to the service, you can use the SkoHub Reconcile Publish module.
The service currently suppports the following reconciliation services of the above mentioned specifications:
Be aware that this is still in proof-of-concept phase.
/ping
to check if the service is up/vocabs
to see all vocabularies and their service manifest urls
This service uses docker and docker compose to run. To run it, you need to have docker and docker compose installed. Please see the docker installation guide.
To run the service, you need to have a .env
file in the root directory of the project.
You can use the provided .sample.env
as a template.
Run cp .sample.env .env
to create the environment file.
The service uses an external network to communicate with the SkoHub Reconcile Publish module, which is used to publish vocabularies to the service.
Before you start the service make sure the network reconcile-backend
exists.
You can create it with:
docker network create reconcile-backend
Create the data directory for elasticsearch with mkdir -p data/elasticsearch/data
Then, you can run the service with:
docker compose up
This will start the Reconciliation service on the port specified with APP_PORT_EXPOSED
in .env
.
Add -d
to run the service in the background.
Note that the Elasticsearch and Kibana services will also be exposed.
If you start the service for the first time an index with the appropriate mapping will be created automatically. If you want to reset the index later, you can use the following command:
docker compose run --rm reconcile npm run reset-index
For development you can start the service with docker compose -f docker-compose.dev.yml
.
This will mount the ./src
-folder into the container and the reconcile service will be started with npm run dev
.
Nodemon will then listen to file changes in the mounted folder and whenever you change something restart the service.
The project to add a Reconciliation Service to SkoHub has been initiated by Andreas Wagner and carried out in cooperation with the SkoHub.io team.