Wikibase/API
Diese Seite ist Teil der Dokumentation der MediaWiki action API. |
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.
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
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
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
- wbgetentities: ⧼Apihelp-wbgetentities-description⧽
- wbavailablebadges: ⧼Apihelp-wbavailablebadges-description⧽
- wbcreateclaim: ⧼Apihelp-wbcreateclaim-description⧽
- wbcreateredirect: ⧼Apihelp-wbcreateredirect-description⧽
- wbeditentity: ⧼Apihelp-wbeditentity-description⧽
- wbformatvalue: ⧼Apihelp-wbformatvalue-description⧽
- wbgetclaims: ⧼Apihelp-wbgetclaims-description⧽
- wblinktitles: ⧼Apihelp-wblinktitles-description⧽
- wbmergeitems: ⧼Apihelp-wbmergeitems-description⧽
- wbparsevalue: ⧼Apihelp-wbparsevalue-description⧽
- wbremoveclaims: ⧼Apihelp-wbremoveclaims-description⧽
- wbremovequalifiers: ⧼Apihelp-wbremovequalifiers-description⧽
- wbremovereferences: ⧼Apihelp-wbremovereferences-description⧽
- wbsearchentities: Sucht nach Objekten, die Bezeichnungen und Aliasse verwenden.
- wbsetaliases: ⧼Apihelp-wbsetaliases-description⧽
- wbsetclaim: ⧼Apihelp-wbsetclaim-description⧽
- wbsetclaimvalue: ⧼Apihelp-wbsetclaimvalue-description⧽
- wbsetdescription: ⧼Apihelp-wbsetdescription-description⧽
- wbsetlabel: ⧼Apihelp-wbsetlabel-description⧽
- wbsetqualifier: ⧼Apihelp-wbsetqualifier-description⧽
- wbsetreference: ⧼Apihelp-wbsetreference-description⧽
- wbsetsitelink: ⧼Apihelp-wbsetsitelink-description⧽
- wbsgetsuggestions: ⧼Apihelp-wbsgetsuggestions-description⧽
- wbcheckconstraints: ⧼Apihelp-wbcheckconstraints-description⧽
- wbcheckconstraintparameters: Überprüft die Beschränkungsparameter der Beschränkungsaussagen.
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 daspageterms
-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 dencode
-Wert, da dieser unabhängig von der Lokalisierung bleibt.
Siehe auch
- API:Hauptseite - Die Schnellstart-Anleitung für die MediaWiki Action API.
- API:FAQ - Häufig gestellte Fragen über die MediaWiki Action API.
- API:Tutorial - Eine Anleitung zur Verwendung der MediaWiki Action API.
- Lade Wikidata-Datenbank-Dumps in den Formaten JSON (empfohlen), XML und RDF herunter.