Wikibase/API

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Wikibase/API and the translation is 29% complete.

Outdated translations are marked like this.
Other languages:
Deutsch • ‎English • ‎Nederlands • ‎español • ‎français • ‎português • ‎български • ‎русский • ‎ไทย • ‎中文 • ‎日本語 • ‎한국어
Версия MediaWiki: 1.9

Что такое Wikibase API?

Wikibase предоставляет общий механизм хранения утверждений в виде структурированных данных. Любая вики на MediaWiki может запустить его.

Утверждения о пунктах находятся на сервере wikidata.org .

(См. wikidata:Glossary для объяснения этих терминов.)

A statement

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

API Wikibase предоставляется набором расширений, реализующих модули API MediaWiki.

Так что чтобы использовать его, вам следует быть несколько осведомлёнными на тему сетевого API MediaWiki: действия, query-запросы, и т.д., и, наоборот, ваши знания об общих параметрах, таких как curtimestamp, requestid и других, применимых к API Wikibase.

How to use it

Send requests to the API through HTTP, the same way with the MediaWiki Action API. See API:Tutorial#How to use it for information on 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, e.g. action=wbgetentities tells the API to get the data for Wikibase entities. For meta and property submodules, use action=query&meta=yourmoduleand action=query&prop=modulename respectively.

Некоторые параметры доступны практически всегда. Формы множественного числа используются в случаях, когда параметр может принимать список из нескольких значений.

  • id/ids
  • site ∩ title/sites ∩ titles: Определяет один объект или несколько объектов. Множественное число используется в wbgetentities. Одновременно только один из параметров sites и titles может принимать множественное число.
  • language/languages: Указанный язык используется для фильтрации меток и описаний в действиях, получающих данные, или для определения конкретного языка в действиях, задающих данные.
  • format: Допустимые значения — только json (или jsonfm для отладки) и xml (или xmlfm для отладки), другие форматы не поддерживаются.
  • summary: Добавляет указанное пользователем описание действия вместо описания, генерируемого системой. Если параметр не указан, модуль сгенерирует своё описание, а если это невозможно, описание будет предоставлено самим объектом.
  • token: Зашифрованная строка, которую должен передать делающий запрос, чтобы запрос был выполнен.
  • baserevid: Идентификатор последней известной версии, который должен быть передан, чтобы сервер мог обнаруживать конфликты правок.

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
}

Обычно у возвращаемого значения или есть ключ $key1, содержащий приведённое к целому булево значение, или ключ $key2, содержащий два (необязательно — три) ключа $key4, $key5 и $key6. Этот последний ключ ассоциирован с дополнительной информацией. Информация о действии или передаётся на верхнем уровне, или в ключе item (для единичных объектов) или items (для множественных). Если объектов несколько, каждый находится под ключом, равным своему идентификаторы. См. также разделы Успешное выполнение и Ошибки.

  • 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.
  • Обратите внимание, что пустые объекты возвращаются как массивы JSON, а не как объекты JSON.
  • Обратите внимание, что при указании пустых параметров содержимое самого свойства объекта удаляется.

API documentation and Wikibase modules

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

Meta submodules

  • wikibase: Gets information about the Wikibase client and the associated Wikibase repository.
  • wbcontentlanguages: Returns information about the content languages Wikibase accepts in different contexts.

Property submodules

  • pageterms: Get the Wikidata terms (typically labels, descriptions and aliases) associated with a page via a sitelink.
  • wbentityusage: Returns all entity IDs used in the given pages.

API modules

Возможные ошибки

Возможные для всех модулей ошибки могут быть найдены по адресу action=paraminfo&modules=modulename, например [$url wbeditentity]

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

Все сообщения об ошибках в модулях Wikibase должны быть интернационализованы (i18n) и локализованы (l10n), но важно отметить, что сообщения об ошибках, исходящих из основы API, могут не быть локализованы. Язык текущего вошедшего в учётную запись пользователя (обычно такой же, как и в веб-интерфейсе) будет использоваться по умолчанию в сообщениях об ошибках. Это поведение можно переопределить, указав uselang=languageCode в URL-строке запроса.

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).

API использует идентификаторы версий для обнаружения конфликтов редактирования. Если идентификатор версии известен из предыдущего ответа, загрузки страницы или какого-либо похожего события, передайте версию редактированию. Без идентификатора версии невозможно с высокой точностью обнаруживать конфликты редактирования. Если конфликт редактирования уже обнаружен, запрашивающий должен получить идентификатор более новой версии, чтобы получить возможность продолжить. Для этого обычно запрашивается wbgetentities для соответствующей записи, а из ответа считывается (и используется) идентификатор версии.

На кластере Викимедиа, большинство вики не выполняют весь набор расширений Wikibase.

(Склад Викимедиа обладает собственным Wikibase для свойств файлов на Складе.)

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

См. также