Improve federated SPARQL query testing to use docker and add virtuoso test #789
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
@cthoyt I improved the federated query testing to use docker and added virtuoso
The
docker compose up
starts a virtuoso, blazegraph and bioregistry. There is a little catch with virtuoso, you need to run an additional command the first time you start it to enable federated queriesI added an expandable section under installations to explain how to start the stack with docker and enable federated query in virtuoso
I also added a step to start the docker compose stack directly with
docker compose up -d
in the GitHub action workflow for ubuntu (the images we use are not available on ARM windows apparently), all tests are passing: https://github.com/vemonet/bioregistry/actions/runs/4525145166According to the GitHub action workflow run logs the
test_sparql.py
tests are passing on ubuntu, and skipped as expected on windows:Note that the original query you use with VALUES fails on Virtuoso, so I added a simpler SPARQL query to test the most basic federated querying works, then we can iterate to fix issues related to specific query patterns
The csv parsing was failing due to virtuoso adding double quotes, so I used python built-in
csv.DictReader()
to parse it. And virtuoso was not acceptingapplication/xml
, so I usedapplication/sparql-results+xml
which works on blazegraph and virtuoso