Wikidata:Tools/For programmers

From Wikidata
Jump to navigation Jump to search
For programmers

Command-line tools [edit]

Screenshot of wikidata-taxonomy.

Data access libraries [edit]

Name Language Wikibase API WDQS JSON dumps
Read Write
wikibase-sdk JavaScript Yes via wikibase-edit Yes via wikibase-dump-filter
Wikidata Toolkit (docs) Java Yes Yes No Yes
WikiClientLibrary (docs, [2]) .NET Yes Yes No Yes[3]
go-wikidata (docs) Go Yes No No No
WikidataR (docs) R Yes QS[1] Yes No
WikidataQueryServiceR (docs) R No No Yes No
JsonDumpReader PHP No No No Yes
sparesults (docs) Rust No No Yes No
Wikidata for Ruby Ruby Yes No No No
  1. While WikidataR doesn't support writing via the Wikibase Action API, it supports writing via QuickStatements.

Python libraries[edit]

Name Type hints Wikibase API WDQS JSON dumps
Read Write
Pywikibot (docs) Yes Partial[1] Partial[2] Yes No
Wikibase Integrator (docs) Yes Partial[3] Partial[3] Yes Yes
Wikidata Integrator No Partial Partial Yes No
qwikidata (docs) Yes LDI[4] No Yes Yes
wikidata (docs) Yes LDI[4] No No No
  1. Pywikibot does not support e.g. wbgetclaims. Also note that a major API change is planned. (phab:T186200)
  2. Pywikibot does not support wbsetqualifier or wbsetreference. (phab:T186198)
  3. 3.0 3.1 There are several API actions not (yet) supported by Wikibase Integrator. ([1])
  4. 4.0 4.1 While qwikidata and the wikidata package don't support the Wikibase Action API, they support the Linked Data Interface.

Batch validation[edit]

Wikidata Integrator (Q31743627) is the only one of these libraries that has native support validation of items against entity schemas (code example needed).

Wikibase Integrator (Q108259643) can be used with entityshape (Q119899931) as shown in this notebook.

Simplifying libraries[edit]

The following libraries either simplify an existing API, automatically resolve labels or provide property-specific functions.

Entitree Helper
A JavaScript helper package (using TypeScript) based on wikidata-sdk to easily query and process data.
by Germartin1
Wikipedia Tools (for Humans)
wptools is a python library intended to make it as easy as possible to get data from MediaWiki instances, expose more Wikidata, and extend Wikimedia APIs just for kicks. We say (for Humans) because that is a goal.
by Siznax
wikidatanpm
Javascript library that make queries easier.
by MCheca5
wikirepo
Python based Wikidata framework for easy dataframe extraction.
by AndrewTavis


Data quality[edit]

See: Wikidata:WikiProject Schemas#Tools


GraphQL[edit]

GraphQL
Development of a GraphQL API inspired by Tpt's original implementation below. There are a bit more features.
GraphQL API
GraphQL API allowing to interact with the Wikidata content. The API endpoint URI is https://tptools.toolforge.org/wdql.php. It follows Relay specifications.
by Tpt


Import tools[edit]

Catmandu-Wikidata
Perl module to import entities from Wikidata for processing with the Catmandu ETL framework
by JakobVoss
RaiseWikibase
A Python tool for fast inserts into a Wikibase instance. RaiseWikibase 1) uploads up to a million entities and wikitexts per hour, 2) fills data directly into the MariaDB database, and 3) can create a bot account for the wrappers of the Wikibase API.
by RShigapov
elastic-wikidata
Simple Python CLI to load subsets of Wikidata into ElasticSearch from a dump or SPARQL query. Automatically paginates SPARQL queries for bulk loading.
by Kdutia
Wikidata Subset Search Engine
Tools to setup an ElasticSearch instance fed with subsets of Wikidata
by Maxlath

Other datasets[edit]

QRank
A ranking signal for Wikidata. Periodically (re)computed from Wikimedia pageviews, available for bulk download. For an introduction, see the README file.
by Sascha
Wikidata Lang
A JSON/JS index of 183 languages accessible either by their 2-letters language code or Wikidata Qid.
by Maxlath

Other[edit]

Tool Translate
Offers a centralized, user-friendly way for The Community (TM) to provide translations for tools.
by Magnus Manske

See also[edit]