Jump to content

Wikibase/API

From mediawiki.org
This page is a translated version of the page Wikibase/API and the translation is 100% 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 Datenobjekte befinden sich auf dem Server unter wikidata.org. Weitere Informationen zu Wikibase und anderen Konzepten findest Du unter Wikidata: Glossar.

Eine Aussage

Die Wikibase-API erlaubt es, Informationen in Wikidata oder jeder anderen Wikibase-Instanz abzufragen, hinzuzufügen, zu entfernen und zu bearbeiten.

Sie wird über eine Reihe von Erweiterungen der MediaWiki-API-Module angeboten. Um die Wikibase API zu nutzen, solltest du grundsätzlich mit der MediaWiki Action API vertraut sein: Aktionen, Abfragen, etc., sowie die generischen Parameter, wie curtimestamp und requestid.

Wie man die Wikibase-API nutzt

Sende Abfragen über HTTP an die API, genau wie bei der MediaWiki Action API. Siehe API:Anleitung#Wie man sie nutzt für Informationen dazu, wie man die MediaWiki Action API nutzt.

Abfrage-Format

Der Endpunkt für die API ist https://wikidata.org/w/api.php.

Füge den Action-Parameter, der der API sagt, welche Aktion ausgeführt werden soll, zur Abfrage-Zeichenkette hinzu. Zum Beispiel sagt action=wbgetentities der API, dass die Daten für Wikibase-Einträge erhalten werden sollen. Nutze für Meta- und Eigenschafts-Submodule entsprechend action=query&meta=yourmodule und action=query&prop=modulename.

Einige Parameter sind fast immer verfügbar. Wenn Parameter mehrere Werte annehmen können, wird der Plural verwendet. Es gibt folgende Parameter:

  • id/ids: Identifiziert eine bestimmte Entität oder Entitäten, typischerweise ein Datenobjekt. Die Pluralform wird in wbgetentities genutzt. Listen von IDs sollten durch Pipe-Zeichen getrennt werden.
  • site ∩ title/sites ∩ titles: Identifiziert ein einziges Datenobjekt oder mehrere Datenobjekt. Die Pluralform wird in wbgetentities genutzt. Nur sites oder titles können gleichzeitig mehrere Werte besitzen.
  • language/languages: Der Sprachparameter filtert Bezeichnungen und Beschreibungen in Get-Aktionen oder identifiziert eine bestimmte Sprache für eine Reihe von Aktionen.
  • format: Sollte immer mit json (bzw. jsonfm for debugging) oder xml (bzw. xmlfm for debugging) belegt werden. Andere Eingaben werden nicht unterstützt.
  • summary: Fügt der vom System generierten Zusammenfassung eine benutzerdefinierte Eingabe an.
  • token: Eine verschlüsselte Zeichenkette, die der Anfragende angeben muss, um die Anfrage auszuführen.
  • baserevid: Die ID der letzten bekannten Version muss dem Server genannt werden, damit Bearbeitungskonflikte erkannt werden können.

Eine einfache Abfrage

GET-Abfrage

Erhält das Datenobjekt für die Seite "Berlin" in der englischsprachigen Wikipedia.

Erklärung von jedem Teil der URL:

  • http://www.wikidata.org/w/api.php ist der Haupt-Endpunkt.
  • action=wbgetentities sagt der API, dass die Daten für Wikibase-Einträge erhalten werden sollen.
  • sites=enwiki bedeutet, dass die Daten aus der englischsprachigen Wikipedia erhalten werden.
  • titles=Berlin gibt den Titel der Seite an, von der Daten erhalten werden sollen.
  • props=descriptions gibt die Eigenschaften an, die von den Einträgen erhalten werden, in diesem Fall stellen die Beschreibungen der Einträge die Eigenschaft dar.
  • languages=en steht dafür, die Ergebnisse auf englischsprachige zu beschränken.
  • format=json gibt JSON-Ausgabe vor, was das empfohlene Ausgabeformat ist.

Antwort

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

Die Antwort einer Anfrage enthält für gewöhnlich Folgendes:

  • Ein success-Schlüssel mit einer booleschen Umwandlung in eine ganze Zahl, wenn die Abfrage erfolgreich ist. Wenn die ganze Zahl Null ist, können alle weiteren Werte falsch sein.
  • Ein error-Schlüssel mit einem Objekt aus zwei oder optional drei Schlüsseln, code, info und *, wenn die Abfrage nicht erfolgreich ist.
  • Information über die Aktion. Die Information wird entweder über die oberste Ebene oder unter dem Datenobjekt übergeben, wenn es sich um ein einziges Datenobjekt handelt oder unter den Datenobjekten, wenn es mehrere sind. Wenn es mehrere Datenobjekt sind, findet sich jedes unter einem Schlüssel mit eigener Datenobjekt-ID.

Leere Objekte werden als JSON-Arrays ausgegeben und nicht als Objekte, während leere Parameter den Eintrag aus dem Datenobjekt entfernen.

API-Dokumentation und Wikibase-Module

Automatisch generierte Dokumentation für die MediaWiki Action API, darunter die Wikibase-'wb'-API-Module, ist auf wikidata.org/w/api.php verfügbar

Meta-Submodule

  • wikibase: ⧼Apihelp-query+wikibase-description⧽
  • wbcontentlanguages: Returns information about the content languages Wikibase accepts in different contexts.

Eigenschafts-Submodule

  • pageterms: ⧼Apihelp-query+pageterms-description⧽
  • wbentityusage: ⧼Apihelp-query+wbentityusage-description⧽

API-Module

Mögliche Fehler

Mögliche Fehler für jedes Modul können durch Nutzung von action=paraminfo&modules=modulename gefunden werden. Die Fehlerformate entsprechen denen der MediaWiki Action API. Siehe API:Fehler und Warnungen#Standard-Fehlermeldungen.

Alle Fehlermeldungen der Wikibase-Module sollten Internationalisiert (i18n) und lokalisiert (l10n) sein. Standard für Fehlermeldungen ist die festgelegte Sprache des angemeldeten Benutzers, dies kann jedoch durch Hinzufügen von uselang=languageCode zur URL der Abfrage-Zeichenkette überschrieben werden.

Fehlertyp Code Information
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

Zusätzliche Anmerkungen

  • Auf vielen Wikimedia-Wikis läuft die Wikibase-Client-Erweiterung. Diese lässt API-Clients das wikibase-Meta-Submodul abfragen, um die URLs für das vollständige Wikibase-Repositorium zu bestimmen und das pageterms-Eigenschafts-Submodul, um Informationen aus Wikidata über Seiten im lokalen Wiki zu erhalten.
  • Zusammen mit Wikibase können die Kalender-Module des Gregorianischen Kalenders (d:Q1985727) und des Julianischen Kalenders (d:Q1985786) genutzt werden.
  • Die API nutzt Versions-IDs, um Bearbeitungskonflikte zu erkennen. Wenn es einen Bearbeitungskonflikt gibt, muss der Abfragesteller sich eine neuere Versions-ID besorgen, um fortfahren zu können. Dies beinhaltet typischerweise, wbgetentities für das fragliche Datenobjekt abzufragen und dann die Version des Eintrags zu speichern (und zu nutzen).
  • Jede MediaWiki-Installation kann Wikibase ausführen. Auf dem Wikimedia-Cluster können die meisten Wikis nicht alle Wikibase-Erweiterungen ausführen. Wikimedia Commons hat seine eigene Wikibase für Eigenschaften der Dateien auf Commons.
  • Teste nicht den info-Wert für einen bestimmten Fehler, nutze stattdessen den code-Wert, da dieser unabhängig von der Lokalisierung bleibt.

Siehe auch