Wikidata Query Service

The Wikidata Query Service (WDQS) provides a way for tools to access Wikidata data, via a SPARQL API. See the beta at http://query.wikidata.org/

Rationale
The Wikimedia Foundation Mobile team is investigating using Wikidata to provide a reading and contribution experience that is better suited to mobile devices.

Contribution
Inspired by the Wikidata game, the team has built WikiGrok, a feature that generates simple questions about a Wikipedia article and can send the responses to Wikidata. The ultimate goal of WikiGrok is two-fold:


 * 1) Provide an engaging way for users to add value to Wikimedia projects via a mobile device. WikiGrok contributors will be helping convert the tremendous but unstructured repository of knowledge contained in Wikipedia into structured, machine-readable data in Wikidata.
 * 2) Use the data generated by this feature to provide a better reading and editing experience on existing and new devices/platforms. As Wikidata becomes a more robust repository of structured data about Wikipedia items, we can use it to generate more modular blocks of content to our users across the spectrum of mobile devices (handsets, tablets, wearables), in specialized standalone apps, etc.

Reading
Additionally, on both the mobile site and the Wikipedia native apps, we are experimenting with using Wikidata to enhance the reading experience: using Wikidata short descriptors in search and article titles to help readers get more context at a glance, as well as building infoboxes from Wikidata to provide a better formatted quick fact lookup experience. Eventually, we want these items to be editable directly from Wikipedia, so more readers can become editors and help make Wikipedia better.

However, in order for these projects to scale to production, as well as to provide a benefit to other Wikidata-related projects, we need to build a service that allows for simple and more complex queries of Wikidata items/properties.

Use cases
We hope to cover a variety of use-cases with WikiGrok, so that it can be a flexible tool for generating new campaigns to meet the changing needs of Wikidata. However, our current hypothesis is that while simple query question types will be easier to generate, the kinds of questions that require more sophisticated queries will be more interesting and engaging for end-users and will be more valuable for populating niche areas in Wikidata.

Simple query
Collect all Wikidata items with a specific claim or property, so that users can add more properties, claims, or references to those items via WikiGrok.

Examples:
 * all items that are ‘instance of: human’ (claim)
 * all items that have ‘date of publication’ (property)

Complex queries
Collect all Wikidata items that belong to an intersection or combination of parameters (including negation and ranges), so that users can add more properties, claims, or references or references to those items via WikiGrok.

Examples:
 * all ‘instance of: human’ with ‘birth date: between 1900 and 2000’ (note some people have multiple birth dates)
 * all ‘instance of: painting’ with ‘creator: Leonardo da Vinci’ and no 'material used' property
 * all ‘instance of: human‘ with ‘place of birth: Germany‘ or ‘place of birth‘ set to a location with ‘country: Germany‘

Tree traversal
Collect items from a tree, either traveling up the tree or down (or both)

Examples:
 * Build a list of all possible occupations by traversing down the ‘subclass of‘ and ‘instance of‘ properties from the ‘occupation’ item
 * Build a list of all the territories that Berlin belongs to by traversing up the ‘located in the administrative territorial entity‘ property
 * Build a list of all of Queen Victoria's relatives by traversing up and down the various relative properties (mother, child, etc.)

Retrieving data for specific items
Collect data about a particular item for use in interfaces related to that item (for example, Wikipedia articles). This use case is somewhat covered by the existing Wikibase API, but in a very limited way.

Examples:
 * Retrieve all of the occupation values for Albert Einstein
 * Retrieve all the date of birth values for Jesus
 * Retrieve the preferred date of birth value for Jesus (or the first if none are preferred)
 * Retrieve birth date, death date, occupation, nationality, and family tree for Queen Victoria

Other tools
This section should eventually find better place, for now this is the list of related tools:
 * http://tools.wmflabs.org/wdq2sparql/w2s.php - WDQ to SPARQL translator
 * https://tools.wmflabs.org/bene/sparql/ - SPARQL query generator
 * https://tools.wmflabs.org/ppp-sparql/ - natural language query generator based on Platypus
 * https://github.com/mariushoch/asparagus - Command-line client
 * https://github.com/nichtich/wdq - Command-line client
 * https://cran.r-project.org/package=WikidataQueryServiceR - R wrapper for WDQS API; send a SPARQL query, get back a data.frame

Reports

 * Analysis: What kind of things are people doing with WDQS? (original ticket completed in Oct 2015)
 * Analysis: Who are our WDQS users and where are they from? (original ticket completed in Oct 2016)