Skip to content
Github mirror of "wikidata/query/rdf" - our actual code is hosted with Gerrit (please see for contributing
Branch: master
Clone or download
smalyshev Bump Blazegraph version
Change-Id: Id65c8ffc1c532a7feebd8131c5c7bcbb7dae345d
Latest commit 5442ec1 Apr 11, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
blazegraph 0.3.2-SNAPSHOT Mar 20, 2019
dist Fix directory name Mar 22, 2019
docs Update docs Mar 19, 2019
gui @ 0af1f01 Update GUI Apr 4, 2019
queries Add test queries Apr 13, 2016
testTools Add meter for skip-ahead revision loads Mar 22, 2019
tools Work around status 400 on redirect revision fetch Apr 4, 2019
war 0.3.2-SNAPSHOT Mar 20, 2019
.gitignore Replacing the custom assembly by an overlay to generate blazegraph WAR Jan 25, 2017
.gitreview moving to 0.0.2 for 0.0.1 release May 14, 2015 Publish metric of MWAPI call times. May 7, 2018
backporting_blazegraph.txt Blazegraph vocabulary and inline uri setup Apr 22, 2015
mvnw Add mvnwrapper Nov 7, 2017
mvnw.cmd Add mvnwrapper Nov 7, 2017
package.json Move GUI to submodule Feb 9, 2016
pom.xml Bump Blazegraph version Apr 11, 2019

Wikibase RDF Query

Tools for Querying Wikibase instances with RDF. The modules:

  • blazegraph - Blazegraph extension to make querying Wikibase instances more efficient
    • GPLv2 Licensed
  • war - Configurations for Blazegraph and the service
    • GPLv2 Licensed
  • tools - Tools for syncing a Wikibase instance with an SPARQL 1.1 compliant triple store
    • Apache Licensed
  • common - Code shared between tools and blazegraph
    • Apache Licensed
  • testTools - Helpers for testing
    • Apache Licensed
  • gui - UI for running queries and displaying results
    • Apache Licensed
  • dist - scripts for running the service
    • Apache Licensed

See more in the User Manual.


Mapped Diagnostic Context contains some information depending on the context:

  • remote-query: a query sent to mediawiki
  • a few request related context, see ch.qos.logback.classic.helpers.MDCInsertingServletFilter for details)

See also org.wikidata.query.rdf.common.LoggingNames.

Development Notes


Works well with m2e.

Randomized Testing

Some tests use RandomizedRunner. If they fail you'll get a stack trace containing a "seed" that looks like this:

	at __randomizedtesting.SeedInfo.seed([A4D62887A701F9F1:1BF047C091E0A9C2]:0)

You can reuse that see by adding @Seed to the test class like this:

	public class MungerUnitTest extends RandomizedTest {

Just remember to remove the @Seed annotation before committing the code.

We use RandomizedRunner because its a good way to cover a ton of testing ground with relatively little code. Its how Lucene consistently finds bugs in the JVM before they're hit in production.

Unit and Integration Testing

All tests either end in "UnitTest" or "IntegrationTest". "UnitTest"s are so named because they don't need any external services. "IntegrationTest"s either need to spin up some service like Blazegraph or they need an Internet connection to or


We use Blazegraph for testing SPARQL. You can start it from the command line by running

	cd tools &&

It is started automatically during integration testing.


pom.xml files are sorted according to the usual code convention. The sortpom-maven-plugin is used to fail the build if this order is not respected. The pom.xml can be automatically sorted with:

mvn sortpom:sort

The application can be started by running the following command in the war submodule:

mvn -pl war jetty:run

The -pl war argument tells maven to run inside the war submodule, this is equivalent to running:

cd war && mvn jetty:run

The same target can be used directly from your IDE to run in debug mode and use all the nice IDE integration (automatic class reloading, ...). Check your IDE documentation for details.

Note: jetty:run will not automatically detect changes to other modules, but if you run mvn install in the root of the project, the changes should be compiled and jetty should auto reload the application.

Current central released version: Maven Central

You can’t perform that action at this time.