wdq - command line access to Wikidata Query Service
Access Wikidata Query Service via command line to perform SPARQL queries (query mode), lookup entities (lookup), or search items and properties (search or psearch):
query
lookup
search
psearch
wdq -g en solar system # search 'solar system' in English wdq psearch -g es parte # search property 'parte' in Spanish wdq P361 Q544 # lookup properties and items wdq '?c wdt:P361 wd:Q544' # query parts of the solar system
See the manual for details or get help via wdq help:
wdq help
wdq help options # list and explain command line options wdq help modes # list and explain request modes wdq help output # explain output control wdq help formats # list and explain output formats wdq help ontology # show Wikidata ontology in a nutshell wdq help prefixes # list RDF prefixes allowed in queries wdq help version # show version of wdq
The command line script wdq, included in CPAN module App::wdq, provides a tool to access Wikidata Query Service. It supports formulation and execution of SPARQL SELECT queries to extract selected information from Wikidata or other Wikibase instances.
wdq
Perl should already installed at most operating systems. Otherwise get Perl!
Install sources from CPAN including all dependencies:
cpanm App::wdq
First install cpanm if missing. If installation of App::wdq fails try cpanm option --notest or install dependencies as packages as described below.
App::wdq
--notest
Install dependencies as prebuild packages for your operating system:
# Debian based systems e.g. Ubuntu (>= 14.04) sudo apt-get install libhttp-tiny-perl librdf-query-perl # Windows/ActiveState ppm install HTTP-Tiny ppm install RDF-Query
Then install wdq from CPAN as described above or copy the script to some place in your $PATH:
$PATH
wget https://github.com/nichtich/wdq/raw/master/script/wdq chmod +x wdq
The latter method will not install this documentation.
Request mode query (default), lookup, serch, or psearch can explicitly be set via first argument or it's guessed from arguments.
serch
Read SPARQL query from STDIN, option --query|-q, or argument. Namespace definitions and SELECT clause are added if missing.
--query|-q
SELECT
wdq '?c wdt:P361 wd:Q544' wdq '{ ?c wdt:P361 wd:Q544 }' # equivalent wdq 'SELECT * WHERE { ?c wdt:P361 wd:Q544 }' # equivalent wdq < queryfile
Read Wikidata entity ids, URLs, or Wikimedia project URLs from STDIN or arguments. Result fields are label, description, and id:
label
description
id
wdq Q1 wdq lookup Q1 # equivalent echo Q1 | wdq lookup # equivalent wdq http://de.wikipedia.org/wiki/Universum # same result
Search for items or properties. Result fields are label, id, description, and possibly matched alias. Search and result language is read from environment or option --language/-g:
alias
--language
-g
wdq search -g sv Pippi Långstrump
Default output format in search mode is pretty.
pretty
Query or query file (- for STDIN as default)
-
Output format or string template. Call wdq help formats for details.
wdq help formats
Use a Catmandu exporter as output format.
Exclude header in CSV output or other exporter.
Enumerate results by adding a counter variable n
n
Add or override a LIMIT clause to limitate the number of results. Single-digit options such as -1 can also be used to also set a limit.
-1
Abbreviate Wikidata identifier URIs as strings.
Language to query labels and descriptions in. Set to the locale by default. This option is currentl only used on lookup mode.
Prepend SPARQL QUERY to count distinct values
Ignore empty results instead of issuing warning and exit code.
By default output is colored if writing to a terminal. Disable this with --no-color or force color with --color or -C.
--no-color
--color
-C
SPARQL endpoint. Default value: https://query.wikidata.org/bigdata/namespace/wdq/sparql
https://query.wikidata.org/bigdata/namespace/wdq/sparql
Don't query MediaWiki API to map URLs to Wikidata items.
Don't execute SPARQL queries but show them in expanded form. Useful to validate and pretty-print queries. MediaWiki API requests may be
Don't execute any queries. Same as --no-mediawiki --no-execute.
--no-mediawiki --no-execute
Show usage help
Show information about the Wikidata Ontology
Don't add default namespace prefixes to the SPARQL query
Show detailled manual
Show version if this script
Output can be controlled with options --format/-f, --export, --header/--no-header/-H, and --color/--no-color/-C.
--format
-f
--export
--header
--no-header
-H
Option --format/-f sets an output format or string template:
simple
Flat JSON without language tags
ldjson
Line delimited Flat JSON
csv
SPARQL Query Results CSV Format. Suppress header with option --no-header/-H. Use Catmandu CSV exporter for more options
tsv
SPARQL Query Results TSV Format
xml
SPARQL Query Results XML Format
json
SPARQL Query Results JSON Format
Default string template to print label, alias, id, description. Also sets option --ids unless disabled
--ids
...
String template. Call wdq help pretty for details
wdq help pretty
Option --format can be set to a string template with bracket expressions with optional template parameters (for instance {id|pre= (|post=)}).
{id|pre= (|post=)}
Highlight n name, v value, i identifier, t title, or e error
v
i
t
e
Abbreviate long values
Use left or right to align short values to a given length
left
right
length
Add string before/after value
Option --export sets a Catmandu exporter to create output with. Given the corresponding exporter modules installed, one can write results as YAML, Excel (XLS), and Markdown table (Table) among other formats:
YAML
XLS
Table
wdq --export YAML # short form wdq --format ldjson | catmandu convert to YAML # equivalent
Use Catmandu config file (catmandu.yml) to further configure export. See also tools such as jq and miller for processing results.
catmandu.yml
# get all parts of the solar system wdq -q '?c wdt:P361 wd:Q544' # get all references used at an item wdq -q 'wd:Q1 ?prop [ prov:wasDerivedFrom ?ref ]' # get doctoral advisor graph (academic genealogy) as CSV wdq -q '?student wdt:P184 ?advisor' --ids --format csv # print expanded SPARQL query wdq -n -q '?c wdt:P361 wd:Q544' # execute query and return first 10 tab-separated values wdq -f tsv --limit 10 < query # print result as Markdown Table (requires Catmandu::Exporter::Table) wdq --export Table < query # look up label and description wdq Q42 P9 # look up German Wikipedia article and get label description in French wdq -g fr http://de.wikipedia.org/wiki/Argon # count instances (P31) of books (Q571) wdq --count x '?x wdt:P31 wd:Q571' --format {count}
Entity (item/property) wd:Q_ <-- owl:sameAs --> wd:Q_ --> rdfs:label, skos:altLabel, schema:description "_"@_ --> schema:dateModified, schema:version --> wdt:P_ "_", URI, _:blank --> p:P_ Statement Item wd:Q_ <-- schema:about <http://_.wikipedia.org/wiki/_> --> schema:inLanguage, wikibase:badge Property wd:P_ --> wikibase:propertyType PropertyType --> wkibase:directClaim wdt:P_ --> wikibase:claim p:P_ --> wikibase:statementProperty ps:P_ --> wikibase:statementValue psv:P_ --> wikibase:qualifier pq:P_ --> wikibase:qualifierValue pqv:P_ --> wikibase:reference pr:P_ --> wikibase:referenceValue prv:P_ --> wikibase:novalue wdno:P_ PropertyType wikibase: String, Url, WikibaseItem, WikibaseProperty, CommonsMedia, Monolingualtext, GlobeCoordinate, Quantity, Time Statement wds:_ --> wikibase:rank Rank --> a wdno:P_ --> ps:P_ "_", URI, _:blank --> psv:P_ Value --> pq:P_ "_", URI, _:blank --> pqv:P_ Value --> prov:wasDerivedFrom Reference Reference wdref:_ --> pr:P_ "_", URI --> prv:P_ Value Rank wikibase: NormalRank, PreferredRank, DeprecatedRank, BestRank Value (GlobecoordinateValue/QuantityValue/TimeValue) wdv:_ --> wikibase: geoLatitude, geoLongitude, geoPrecision, geoGlobe URI --> wikibase: timeValue, timePrecision, timeTimezone, timeCalendarModel --> wikibase: quantityAmount, quantityUpperBound, quantityLowerBound, quantityUnit URI
Copyright by Jakob Voss voss@gbv.de
voss@gbv.de
Based on a PHP script by Marius Hoch hoo@online.de at https://github.com/mariushoch/asparagus.
hoo@online.de
Licensed under GPL 2.0+
To install App::wdq, copy and paste the appropriate command in to your terminal.
cpanm
CPAN shell
perl -MCPAN -e shell install App::wdq
For more information on module installation, please visit the detailed CPAN module installation guide.