Wikibase/API

This page is a translated version of the page Wikibase/API and the translation is 12% complete.
MediaWiki version:
1.9

Was ist die Wikibase-API?

Wikibase bietet einen allgemeinen Mechanismus zum Speichern von Anweisungen als strukturierte Daten. Die Aussagen über Items befinden sich auf dem Server unter wikidata.org. Weitere Informationen zu Wikibase und anderen Konzepten finden Sie unter Wikidata: Glossar.

 
A statement

The Wikibase API allows querying, adding, removing and editing information on Wikidata or any other Wikibase instance.

It is provided via a set of extensions to MediaWiki API modules. So, to use the Wikibase API, you should have a basic familiarity with the MediaWiki Action API: actions, queries, etc., as well as with generic parameters such as curtimestamp and requestid.

How to use the Wikibase api

Send requests to the API through HTTP, the same as with the MediaWiki Action API. See API:Tutorial#How to use it for information about how to use the MediaWiki Action API.

Request Format

The endpoint for the API is https://wikidata.org/w/api.php.

In the query string, add the action parameter, which tells the API which action to perform. For example, action=wbgetentities tells the API to get the data for Wikibase entities. For meta and property submodules, use action=query&meta=yourmodule and action=query&prop=modulename respectively.

Some parameters are nearly always available. Plural forms are used in those cases in which a parameter can take several values. The parameters are:

  • id/ids: Identifies a specific entity or entities, typically an item. The plural form is used in wbgetentities. Lists of ids should be separated by the pipe character
  • site ∩ title/sites ∩ titles: Identifies a single item or multiple items. The plural form is used in wbgetentities. Only one of sites and titles can have multiple values at the same time.
  • language/languages: The language parameter filters labels and descriptions in get actions or identifies a specific language for a set of actions.
  • format: Should always be set to json (or jsonfm for debugging), or xml (or xmlfm for debugging). No other form is supported.
  • summary: Adds a user-specified summary in addition to the system-generated one.
  • token: An encrypted string the requester must pass for the request to be fulfilled.
  • baserevid: An id for the last known revision that must be passed so that the server can detect edit collisions.

A simple query

GET request

Get the item for page "Berlin" on English Wikipedia.


Explanation of each part of the URL:

  • http://www.wikidata.org/w/api.php is the main endpoint.
  • action=wbgetentities tells the API to get the data for Wikibase entities.
  • sites=enwiki means get the data from English Wikipedia.
  • titles=Berlin indicates the title of the page to get data from.
  • props=descriptions indicates properties to get from the entities, in this case the property is the descriptions of the entities.
  • languages=en means filter the results down to the English language.
  • format=json indicates JSON output, which is the recommended output format.

Response

{
    "entities": {
        "Q64": {
            "type": "item",
            "id": "Q64",
            "descriptions": {
                "en": {
                    "language": "en",
                    "value": "capital and largest city of Germany"
                }
            }
        }
    },
    "success": 1
}

The response of a request will usually contain:

  • A success key with a boolean cast as an integer if the request is successful. If the integer is zero, any additional values might be wrong.
  • An error key with an object of two, optionally three keys, code, info and *, if the request is unsuccessful.
  • Information about the action. The information is either passed on the top level or under item if it is one single item or items if it is several. If it is several items, each is found under a key with its own item id.

Empty objects are returned as JSON arrays and not as objects, while empty parameters remove the actual entry from the item.

API-Dokumentation und Wikibase-Module

Source-generated documentation for the MediaWiki Action API including Wikibase 'wb' API modules is available at wikidata.org/w/api.php

Meta submodules

  • wikibase: Bezieht Informationen über den Wikibase-Client und das verknüpfte Wikibase-Repositorium.
  • wbcontentlanguages: Returns information about the content languages Wikibase accepts in different contexts.

Property submodules

  • pageterms: Ruft die Wikidata-Begriffe ab (typischerweise Bezeichnungen, Beschreibungen und Aliasse), die mit einer Seite über einen Websitelink verknüpft sind.
  • wbentityusage: Gibt alle Objektkennungen zurück, die in den angegebenen Seiten verwendet werden.

API modules

  • wbgetentities: Ruft die Daten für mehrere Wikibase-Objekte ab.
  • wbavailablebadges: Fragt verfügbare Auszeichnungs-Datenobjekte ab.
  • wbcreateclaim: Erstellt Wikibase-Behauptungen.
  • wbcreateredirect: Erstellt Objektweiterleitungen.
  • wbeditentity: Erstellt ein einzelnes neues Wikibase-Element und verändert es mit fortlaufenden Informationen.
  • wbformatvalue: Formatiert Datenwerte.
  • wbgetclaims: Ruft Wikibase-Behauptungen ab.
  • wblinktitles: Ordnet zwei Seiten aus zwei verschiedenen Wikis einem Wikibase-Datenobjekt zu.
  • wbmergeitems: Führt mehrere Objekte zusammen.
  • wbparsevalue: Parst die Werte mithilfe eines ValueParser.
  • wbremoveclaims: Entfernt Wikibase-Behauptungen.
  • wbremovequalifiers: Entfernt einen Qualifikator von einer Behauptung.
  • wbremovereferences: Entfernt eine oder mehrere Referenzen der gleichen Aussage.
  • wbsearchentities: Sucht nach Objekten, die Bezeichnungen und Aliasse verwenden.
  • wbsetaliases: Legt die Aliasse für ein Wikibase-Objekt fest.
  • wbsetclaim: Erstellt oder aktualisiert eine ganze Aussage oder Behauptung.
  • wbsetclaimvalue: Legt den Wert einer Wikibase-Behauptung fest.
  • wbsetdescription: Legt eine Beschreibung für ein einzelnes Wikibase-Objekt fest.
  • wbsetlabel: Legt eine Bezeichnung für ein einzelnes Wikibase-Objekt fest.
  • wbsetqualifier: Erstellt einen neuen Qualifikator oder legt den Wert eines bereits vorhandenen Qualifikators fest.
  • wbsetreference: Erstellt einen Einzelnachweis oder legt den Wert eines vorhandenen Einzelnachweises fest.
  • wbsetsitelink: Associates a page on a wiki with a Wikibase item or removes an already made such association.
  • wbsgetsuggestions: API-Modul zum Abrufen von Vorschlägen für zusätzliche Eigenschaften zum Hinzufügen zu einer Wikibase-Entität. Das API-Modul ist in erster Linie für die Verwendung durch das Vorschlags-Widget gedacht, wenn Benutzer Wikibase-Entitäten bearbeiten.
  • wbcheckconstraints: Führt Beschränkungsprüfungen zu jedem gewünschten Objekt aus und gibt das Ergebnis zurück.
  • wbcheckconstraintparameters: Überprüft die Beschränkungsparameter der Beschränkungsaussagen.

Mögliche Fehler

Possible errors for any module can be found using action=paraminfo&modules=modulename.

The error format corresponds to that of the MediaWiki Action API. See API:Errors and warnings#Legacy format.

All error messages from the Wikibase modules should be internationalized (i18n) and localized (l10n). The user language for the logged-in user will be the default for error messages, but you can override this by adding uselang=languageCode to the URL query string.

Error type Code Info
An internationalized error message that isn't localized. no-such-item <wikibase-api-no-such-item>
A correctly localized error message. no-such-item There are no such item to be found
A localized variant.(Norwegian) no-such-item Det finnes ingen slik item

Additional notes

  • Many Wikimedia wikis run the Wikibase Client extension. This lets API clients on them to query the wikibase meta submodule to determine URLs for the full Wikibase repo, and the pageterms property submodule to get some Wikidata information about pages on the local wiki.
  • The calender models that can be used with Wikibase are the Gregorian calendar(d:Q1985727) and the Julian calendar(d:Q1985786).
  • The API uses revision ids for edit collision detection. If there is an edit collision, the requester must acquire a newer revision id to be able to continue. This typically involves requesting wbgetentities for the item in question, and then storing (and using) the revision from the entry.
  • Any MediaWiki installation can run Wikibase. On the Wikimedia cluster, most wikis do not run the full set of Wikibase extensions.

Wikimedia Commons has its own Wikibase for properties of the files on Commons.

  • Do not test the info value for a particular error, instead use the code value as this will remain independent of localization.

Siehe auch

  • API:Main page - The quick start guide for the MediaWiki Action API.
  • API:FAQ - Frequently asked questions about the MediaWiki Action API.
  • API:Tutorial - A tutorial on how to use the MediaWiki Action API.