Loading data into Virtuoso (Docker)
Deploy a dataset into a Docker SPARQL endpoint (Virtuoso).
Requirements
Docker:
^3.5
Execution
Get docker-compose.yml
get the docker-compose.yml file of the Databus Client Repository, or create your own:
version: '3.5'
services:
  db:
    image: tenforce/virtuoso
    ports:
      - 8895:8890
    volumes:
      - toLoad:/data/toLoad
    entrypoint: >
      bash -c 'while [ ! -f /data/toLoad/complete ]; do sleep 1; done
      && rm -f /data/toLoad/complete && bash /virtuoso.sh'
  # To change the file query: Mount an external query
  # file under volumes between host and container
  # and apply internal path as environment variable.
  databus_client:
    image: dbpedia/databus-client:latest
    environment:
      - SOURCE=/databus-client/query.sparql
      - ENDPOINT=https://dev.databus.dbpedia.org/sparql
      - COMPRESSION=gz
    volumes:
      - ./myQuery.sparql:/databus-client/query.sparql
      - toLoad:/var/toLoad
    entrypoint: >
      bash -c 'bash /databus-client/entrypoint.sh
      && mv -t /var/toLoad $$(find /var/repo -name "*.gz");
      touch /var/toLoad/complete'
volumes:
  toLoad:Select your desired data
Again you need to specify your desired data in a sparql query
echo "PREFIX dcat:   <http://www.w3.org/ns/dcat#>
PREFIX databus: <https://dataid.dbpedia.org/databus#>
SELECT ?file WHERE
{
        GRAPH ?g
        {
                ?dataset databus:artifact <https://dev.databus.dbpedia.org/tester/testgroup/testartifact> .
                { ?distribution <http://purl.org/dc/terms/hasVersion> '2023-06-23' . }
                ?dataset dcat:distribution ?distribution .
                ?distribution databus:file ?file .
        }
}" > myQuery.sparqlStart Containers
docker compose upContainer needs some startup time and endpoint is not immediately reachable. If it is done you can query it with directly in your browser at http://localhost:8895/sparql/ or you can query directly in your terminal: e.g.
curl --data-urlencode query="SELECT * {?a <http://xmlns.com/foaf/0.1/account> ?o }" "http://localhost:8895/sparql"Useful commands
Stopping and reseting the docker with name databus-client, e.g. to change the query
docker rm -f databus-clientDelete pulled image
docker rmi -f dbpedia/databus-clientLast updated