QLever (pronounced "Clever") is a graph database implementing the RDF and SPARQL standards. QLever can efficiently load and query very large datasets, even with hundreds of billions of triples, on a single commodity PC or server. QLever outperforms other RDF/SPARQL databases by a large margin on most queries in a resourceful manner.
QLever implements the full SPARQL 1.1 standard, including federated queries, named graphs, the Graph Store HTTP Protocol, and updates. On top of its outstanding performance, QLever offers a variety of unique features: advanced text search capabilities, context-sensitive autocompletion of SPARQL queries, live query analysis, very efficient spatial queries, and the interactive visualization of very large numbers of geometric objects on a map.
Here are demos of QLever on a variety of large datasets, including the complete Wikidata, Wikimedia Commons, OpenStreetMap, UniProt, PubChem, and DBLP. Those demos also feature QLever's context-sensitive autocompletion, which makes SPARQL query construction so much easier. The datasets are updated regularly. Click on "Index Information" for a short description (with dates) and basic statistics.
If you use QLever in your research work, please cite one of the following publications: our CIKM'17 paper (QLever's beginning, combination of SPARQL and text search), our CIKM'22 paper (QLever's autocompletion, with an extensive evaluation), our 2023 book chapter (survey of knowledge graphs and basics of QLever, with many example queries), our TGDK'24 article (the dblp knowledge graph and SPARQL endpoint), our SIGSPATIAL'25 paper (efficient spatial joins, with a performance evaluation against PostgreSQL+PostGIS), our ISWC'25 GRASP paper (zero-shot question answering on RDF graphs), and our ISWC'25 Sparqloscope paper (a comprehensive SPARQL benchmark with a performance comparison of QLever and several other RDF databases).
QLever is open source under the permissive Apache 2.0 license. QLever is in active and rapid development. If you find a bug or if you are missing a feature or if there is anything else you want to tell us, please open an issue or open a discussion.
Use QLever via the qlever
command-line interface (CLI), which can be
installed via pip install qlever
. It is self-documenting via qlever --help
(for an overview of all commands) and qlever <command> --help
(for details on
any specific command). For more information and example use cases, see
https://github.com/ad-freiburg/qlever-control .
You can control everything qlever
does via a single configuration file, the
so-called Qleverfile
. You can fetch any of a number of example Qleverfile
s
(in particular, one for each of the demos mentioned above) via qlever setup-config <config-name>
. To write a Qleverfile
for your own data, pick
one of these configurations as a starting point and edit the Qleverfile
as
you see fit. Every option from the Qleverfile
can also be set (and
overridden) via a command-line option with the same name, see qlever <command> --help
.
This is not recommended but can be useful or necessary in certain (in
particular, non-interactive) environments. QLever's main binaries are called
IndexBuilderMain
(for loading and indexing data) and ServerMain
(for
querying the data). Each of these has a --help
option that describes the
available options.
The easiest way to find out the right command line is to use the qlever
CLI,
which for each command prints the exact command line it is going to execute.
With the option --show
, it will print the command-line without executing it,
e.g., qlever start --show
.
QLever can also be used as an embedded database, that is, without the standard client-server setup but running it in-process inside your own C++ program. See #2100 for details and a link to a small example program.
The Qlever Wiki provides high-level descriptions of how Qlever works, as well as performance evaluations, experiences with some concrete datasets, and further details.
There is quite a bit of additional documentation in the docs folder of
this repository. The documents in that folder are not well maintained and may
be outdated. We are currently working on an own qlever-docs
repository that
will provide extensive documentation and tutorials. However, for the RDF/SPARQL
specialist, the self-documenting qlever
CLI should be sufficient.