Skip to content

Start a Docker‐based Qanary Question Answering Pipeline

Andreas Both edited this page Jan 9, 2025 · 1 revision

Goal

Establish a plain Docker-based Qanary Pipeline locally. This will include a Qanary triplestore as it is required by the Qanary Pipeline for storing the information about each processed question.

Note: We will use here a Dockerfile-based approach. A similar approach based on Docker-compose is shown here.

Starting Docker containers

1. Starting the Qanary triplestore

There is a prepared Docker image built on top of the Virtuoso triplestore available at Dockerhub.

Create a configuration file

Create a file triplestore.conf for storing the configuration of your triplestore with the following content (you might change the values):

VIRTUOSO_ADMIN_USER=USER_ADMIN
VIRTUOSO_ADMIN_PASSWORD=PASSWORD_ADMIN
VIRTUOSO_RW_USER=USER_RW
VIRTUOSO_RW_PASSWORD=PASSWORD_RW
VIRTUOSO_RO_USER=USER_RO
VIRTUOSO_RO_PASSWORD=PASSWORD_RO
DBA_PASSWORD=PASSWORD_DBA

Start the Virtuoso triplestore

The Docker container will be started with the properties of the defined configuration file. Here the ports 40141 (web access) and 40142 (JDBC access).

docker run -p 40142:1111 -p 40141:8890 --env-file=triplestore.conf --name qanary-triplestore wseresearch/qanary-virtuoso:latest

Hint: You might at the parameter -d to run the container in the background.

2. Start the Qanary pipeline

Create a configuration file

Create a file pipeline.conf for storing the configuration of your Qanary pipeline with the following content (you might change the values but keep them consistent with the data stored in triplestore.conf):

QANARY_PROCESS_ALLOW-ADDITIONAL-TRIPLES=false
SERVER_HOST=http://127.0.0.1
VIRTUOSO_URL=jdbc:virtuoso://localhost:40142
VIRTUOSO_USERNAME=USER_RW
VIRTUOSO_PASSWORD=PASSWORD_RW
MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE=*
SERVER_PORT=40111
EXPLANATION_SERVICE=http://demos.swe.htwk-leipzig.de:40190/explain

Start the Qanary Pipeline

The Docker container will be started with the properties of the defined configuration file. Here port 40111 (web access) will be used.

docker run -p 40111:40111 --env-file=pipeline.conf --name qanary-pipeline qanary/qanary-pipeline:latest

Hint: You might at the parameter -d to run the container in the background.

Now, the pipeline should be ready to use at http://127.0.0.1:40111/.

Clone this wiki locally