Run the W3C SPARQL conformance suites against a SPARQL engine and write a machine-readable result file. The harness covers queries, updates, syntax, SPARQL Protocol, and Graph Store Protocol tests.
The package installs two deliberately different command-line interfaces:
| Command | Use it for | Requirements |
|---|---|---|
sparql-conformance |
Running a custom, file-based engine adapter | Python 3.9 or newer |
sparql_conformance |
Running built-in engine integrations using Qleverfiles | Python 3.10 or newer, qlever-control, Git, and Docker or Podman |
The hyphenated command is standalone and does not require qlever-control. The underscored command lets qlever-control start and operate QLever, Blazegraph, GraphDB, Apache Jena Fuseki, MillenniumDB, Oxigraph, or Virtuoso for you.
The qlever-control integration is currently pending upstream. Follow the temporary installation guide to install the matching branch and this package in one virtual environment.
After installation, create a separate working directory for the engine run:
mkdir qlever-conformance
cd qlever-conformance
sparql_conformance setup qlever
sparql_conformance test --report summarysetup creates the engine's Qleverfile and downloads the W3C SPARQL 1.0 and
1.1 suites. The container runtime downloads and starts the selected engine.
Results are written below ./results.
For a custom adapter instead, start with the standalone CLI guide.
- Standalone CLI
- Built-in engines and integrated commands
- Writing an engine adapter
- Result file format and status meanings
- Temporary qlever-control branch installation
- Result viewer
The core package requires Python 3.9 or newer. Work on the qlever-control integration requires Python 3.10 or newer.
python -m pip install -e ".[dev]"
pytest
ruff format --check
ruff checkThe standalone runner does not require qlever-control. Tests for the optional integration verify that this package boundary remains intact.