Add SPARQL Conformance Testing Framework - #301
Open
ricoandris wants to merge 169 commits into
Open
Conversation
…_name for qvirtuoso
…s and the new binary: mdb
…s to RWStore.properties for qblazegraph
…dd info logs to qgraphdb
This should be removed and a better way outside of the testsuite.py should be found. Maybe a "get_graphs" function inside the engine_managers
ricoandris
force-pushed
the
sparql-conformance-command-all-engines
branch
from
July 4, 2026 10:24
a61410d to
26d40fa
Compare
ricoandris
force-pushed
the
sparql-conformance-command-all-engines
branch
from
July 6, 2026 07:12
26d40fa to
063aeb0
Compare
- Delete src/sparql_conformance/ (~8k LOC vendored copy of github.com/ad-freiburg/sparql-conformance) - Resolve command packages via the import system instead of a sibling directory glob, so commands from separately installed distributions and editable installs work alike - Declare the sparql-conformance dependency
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
This branch is built on top of the multi-engine work by Tanmay from
qlever-control#190,
which introduced the basic commands for operating QLever and six additional
SPARQL engines. This PR adapts and extends those commands so they can be used
by the separate
sparql-conformancetest harness.This PR is the qlever-control side of
ad-freiburg/sparql-conformance#61.
To test the integration, check out and install both PRs as described below.
What changed
qblazegraph,qgraphdb,qjena,qmdb,qoxigraph, andqvirtuosocommand-line tools introduced inqlever-control#190,
adjusting their configuration, indexing, startup, query, reset, logging,
status, and shutdown behavior where needed for conformance testing.
terminal followers and prompts, prepares missing engine configuration where
needed, and supports fast test-data resets.
qlever-control as well as commands supplied by separately installed
packages.
depends on
sparql-conformance.the multi-engine work, including the evaluation viewer, memory monitoring,
and expanded index statistics.
Package boundary
sparql-conformanceowns the test runner, W3C manifest handling, engine adapters, result
comparison, Qleverfile templates, and the
sparql_conformanceexecutable.qlever-control owns the reusable commands that configure and operate the
engines. The harness imports qlever-control only when a built-in engine is
selected.
This keeps a normal
qleverinstallation free of the conformance harness andavoids maintaining two copies of the test code.
Quick test setup
Prerequisites
generated Qleverfile)
1. Check out both PRs
Run these commands from a new parent directory:
The result should be two sibling checkouts:
2. Install both packages in one environment
Install qlever-control first and
sparql-conformancesecond:python3 -m venv .venv source .venv/bin/activate python -m pip install -e ./qlever-control python -m pip install -e ./sparql-conformanceThe installation order matters when upgrading from an older version that also
installed a
sparql_conformanceexecutable. Installingsparql-conformancelast ensures that the executable has a single owner.3. Set up and run an engine
Use a separate working directory for each engine because
setupwrites anengine-specific
Qleverfilein the current directory:setupcreates the Qleverfile and downloads the W3C SPARQL 1.0 and 1.1 testsuites.
testthen configures and indexes the test data, starts the selectedengine, runs the tests, resets it between tests when possible, and stops it
again. No separate engine-start command is required.
Results are written below
./results.4. Test another engine
Create another working directory and change only the engine name:
Supported setup targets are:
For example, replace
jenain the commands above withblazegraph,graphdb,mdb,oxigraph, orvirtuoso. Keep each engine in its owndirectory.
Useful commands while testing:
See docs/sparql-conformance.md for more
details.