Vorlagenprogrammierung Diskussionen Lua Test Unterseiten
Modul Deutsch

Modul: Dokumentation

Wikidata – Modul zum Abfragen von Informationen aus Wikidata basierend auf der Wikibase Client Lua-API.

Dieses Modul ist in vielen Projekten vorhanden, jedoch mit vielen unterschiedlichen Funktionen und Funktionsnamen. Sie sind untereinander nicht kompatibel.

Hinweis: Um die Datenextraktion mit diesem Modul zu testen, kann Wikipedia:Wikidata/Wikidata-Spielwiese und das zugeordnete Datenobjekt Q4115189 verwendet werden, welches auch eine freie Bearbeitung von dessen Eigenschaften zulässt.

Funktionen für Vorlagen

Die im folgenden angegeben Beispiele beziehen sich darauf, dass das Modul im Artikel Berlin verwendet wird, und gibt somit die Werte auf Basis des verknüpften Wikidata-Objekts Q64 zurück. Die hier aufgeführten Beispielergebnisse sind u.U. nicht aktuell.

claim

Gibt eine Aussage des mit der aktuellen Seite verknüpften Wikidata-Objekts zurück. Aussagen sind hierbei Eigenschaften eines Wikidata-Objekts. Diese Funktion bietet eine erweiterte Funktionalität gegenüber dem eingebauten {{#property:}}. Aus Speicher- und Performancegründen sollte {{#property:}} bevorzugt werden.

Parameter:

  • 1 – die Eigenschafts-Id (P…), dessen Aussage zurückgeliefert werden soll.
  • weitere unbenannte Parameter sind paarweise anzugeben und wirken als Filter auf die zurückgegebenen Werte in Form von Qualifikatoraussagen. Das heißt: Möchte man die Einwohnerzahl (P1082) eines Ortes angeben unter der Bedingung, dass diese aus einer Volkszählung stammt (also als Qualifikator Bestimmungsmethode (P459)Volkszählung (Q39825) angegeben ist), erreicht man dies durch {{#invoke:Wikidata|claim|P1082|P459|Q39825}}. Wenn die Einwohnerzahl entweder durch eine Volkszählung oder durch statistische Fortschreibung (Q52679562) ermittelt worden sein soll, gibt man die erlaubten Bestimmungsmethoden mit einem Komma getrennt an: {{#invoke:Wikidata|claim|P1082|P459|Q39825,Q52679562}}. Möchte man Einwohnerzahlen erhalten, die durch keine der beiden Methoden ermittelt wurden oder bei Wikidata ohne den Qualifikator Bestimmungsmethode (P459) geführt sind, muss man der Liste ein Ausrufezeichen voranstellen: !Q39825,Q52679562. Für Qualifikatoren, die sich auf ein Datum beziehen, siehe #atdate.
  • id – Id (Q…) des Wikidata-Objektes, auf das zugegriffen werden soll. Wenn nicht angegeben, wird das mit der aktuellen Seite verknüpfte verwendet.
  • qualifier – Aussagen können einen Qualifikator beinhalten, z.B. für welchen Zeitpunkt/Stand (P585) eine Aussage gilt oder welche Bestimmungsmethode (P459) verwendet wurde
  • parameter – Aussagen bestehen aus komplexen Datentypen, von denen üblicherweise nur die wichtigsten Elemente zurückgegeben werden. Mit parameter kann dieses Verhalten überschrieben werden. Die einzelnen Datentypen und deren möglichen Parameter sind (wenn parameter nicht angegeben wird, wird das fettgedruckte Element zurückgegeben):
    • Koordinaten: latitude, longitude, altitude, precision, globe [Wikidata-URI, üblicherweise https://www.wikidata.org/entity/Q2 [Erde]]
    • Zahlen: amount, unit, upperBound, lowerBound
    • Datum/Zeit: time [ISO 8601], time:format (angepasste Formatierung gemäß Hilfe:Vorlagenprogrammierung#Funktion time), timezone [Minuten], before, after, precision (0 - Mrd. Jahre, 1 - 100 Mio. Jahre, ..., 6 - Jahrtausend, 7 - Jahrhundert, 8 - Jahrzehnt, 9 - Jahr, 10 - Monat, 11 - Tag, 12 - Stunde, 13 - Minute, 14 - Sekunde), calendarmodel [Wikidata-URI, z.B. https://www.wikidata.org/entity/Q1985727 für den proleptischen Gregorianischen Kalender oder https://www.wikidata.org/wiki/Q11184 für den Julianischen Kalender]
    • Wikidata-IDs: entity-type, numeric-id (Standardmäßig wird der Titel des mit numeric-id bezeichneten Wikidata-Objekts zurückgegeben), link für einen Wikilink
    • Text mit Sprachauszeichnung: language, text (Standardmäßig wird <span lang="[language]">[text]</span> zurückgegeben)
  • language – sofern eine Eigenschaft mehrere Aussagen mit Sprachauszeichnungen besitzt, wird diejenige Aussage zurückgegeben, die in der Sprache des angegebenen Sprachkürzels vorliegt (z.B. language=de für Deutsch oder language=en für Englisch)
  • list – wenn eine Eigenschaft mehrere Aussagen besitzt, alle mit dem angegebenen Listenseparator ausgeben (\n bzw. <br /> für Zeilensprung verwenden)
  • includeempty – Listenseparator wird auch im Fall von leeren Werten ausgegeben
  • listMaxItems – funktioniert nur mit dem Parameter list. Mit diesem Parameter kann die maximale Zahl an zurückgegebenen Listenelementen festgelegt werden.
  • references – gibt zusätzlich mit Hilfe von <ref>-Tags formatierten Einzelnachweis als Quellenangabe zurück. Mit references=only wird nur die Quellenangabe ausgegeben.
  • sort – Sortierung nach Qualifikatoren, Standard: aufsteigende Sortierung
  • sortInItem – wenn die Aussagen einer Eigenschaft Wikidata-Items darstellen, wird in diesem Item nach der in sortInItem angegebenen Eigenschaft gesucht und der Wert als Sortierschlüssel verwendet. Achtung: rechenintensiv!
  • inverse – gibt die sortierten Werte in absteigender Folge ausgeben
  • sortEmptiesFirst – Aussagen, die den per sort angegebenenen Qualifikator nicht aufweisen, werden standardmäßig an das Ende der Liste sortiert. Ist sortEmptiesFirst gesetzt, werden diese davon abweichend an den Anfang der Liste gesetzt.
  • hasqualifier – nur Aussagen mit Qualifikatoren ausgegeben. Kann mit einer Eigenschafts-Id (P…) auf einen bestimmten Qualifikator beschränkt werden. Wenn dem Qualifikator ein Ausrufezeichen vorangestellt wird (!P…), werden nur Aussagen zurückgegeben, die den Qualifikator nicht besitzen.
  • hassource – nur Aussagen mit Einzelnachweisen ausgegeben. Falls lediglich irgendwelche Fundstellen vorhanden sein müssen, wird dies über hassource=true erreicht. Soll in der Fundstelle ein bestimmter Qualifikator enthalten sein (P…), kann dieser entsprechend angegeben werden (hassource=P854). Durch Voranstellen eines Ausrufezeichens (!P…) wird der gegenteilige Effekt erreicht: Aussagen, die Einzelnachweise mit dieser Eigenschaft enthalten, werden explizit weggefiltert und nicht zurückgegeben.
  • atdate – nur Aussagen ausgegeben, die gemäß den Qualifikatoren Startzeitpunkt (P580) und Endzeitpunkt (P582) oder aber Zeitpunkt/Stand (P585) am gegebenen Datum gültig sind. Bei keiner Datumsangabe wird das heutige Datum verwendet. Bei Angabe einer Jahreszahl werden auch die Qualifikatoren nur jahresgenau abgeglichen.
  • default – wenn über den Parameter |default= ein Wert angegeben wird, wird dieser Wert zurückgegeben für den Fall, dass auf Wikidata kein Wert den definierten Eigenschaften entspricht.
  • countValues – wird dieser Parameter gesetzt (z.B. über |countValues=ja), werden nicht die Inhalte der Eigenschaften/Items zurückgegeben, sondern die Anzahl der gefundenen Aussagen, die den Filterbedingungen entspricht.
  • showerrors – wenn keine Aussage gefunden werden kann, den Grund zurückgeben
  • includedeprecated – wenn angegeben, werden auch Aussagen mit Rang "deprecated" berücksichtigt. Standardmäßig werden diese ignoriert.

Beispiele:

  • {{#invoke:Wikidata|claim|P1082|id=Q64}}3401147 für die Eigenschaft Einwohnerzahl (P1082). Zahlen werden im Gegensatz zu {{#property:}} ohne Dezimalpunkte zurückgegeben.
  • {{#invoke:Wikidata|claim|P1082|id=Q64|qualifier=P585}}31. August 2013 für den Qualifikator Zeitpunkt/Stand (P585) der Eigenschaft Einwohnerzahl (P1082)
  • {{#invoke:Wikidata|claim|P1082|id=Q64|qualifier=P585|parameter=time}}2013-08-31T00:00:00Z. Abruf des (normalisierten) Rohdatums.
  • {{#invoke:Wikidata|claim|P1082|id=Q64|qualifier=P585|parameter=precision}}11 (taggenaue Angabe)
  • {{#invoke:Wikidata|claim|P1082|id=Q64|qualifier=P585|parameter=time:Y}}2013. Abruf des formatierten Datums.
  • {{#invoke:Wikidata|claim|Einwohnerzahl|id=Q64}}3401147
  • {{#invoke:Wikidata|claim|P6|list=,&#32;}}Klaus Wowereit, Eberhard Diepgen, Walter Momper, Eberhard Diepgen, Richard von Weizsäcker, Hans-Jochen Vogel, Dietrich Stobbe, Klaus Schütz, Heinrich Albertz, Willy Brandt, Franz Amrehn, Otto Suhr, Walther Schreiber, Ernst Reuter für die Eigenschaft Leiter der Regierung oder Verwaltung (P6)
  • {{#invoke:Wikidata|claim|P6|list=,&#32;|parameter=link}}Klaus Wowereit, Eberhard Diepgen, Walter Momper, Eberhard Diepgen, Richard von Weizsäcker, Hans-Jochen Vogel, Dietrich Stobbe, Klaus Schütz, Heinrich Albertz, Willy Brandt, Franz Amrehn, Otto Suhr, Walther Schreiber, Ernst Reuter
  • {{#invoke:Wikidata|claim|P6|id=Q64|atdate=2000-01-01}} → Eberhard Diepgen
  • {{#invoke:Wikidata|claim|P901|references=ja}}GM16<ref>Datenherkunft: englischsprachige Wikipedia, URL: https://en.wiki.x.io/w/index.php?title=List_of_FIPS_region_codes_(G%E2%80%93I)&oldid=575296220, Originalsprache: Englisch, Titel: List of FIPS region codes (G-I), abgerufen am: 2013-12-30T00:00:00Z</ref>
  • {{#invoke:Wikidata|claim|P131|id=Q64|parameter=numeric-id}}183. Id (Q…) des Wikidata-Objektes, siehe Deutschland (Q183)
  • {{#invoke:Wikidata|claim|P361|id=Q{{#invoke:Wikidata|claim|P131|id=Q64|parameter=numeric-id}}}}Europäischer Wirtschaftsraum. Verkettung: Zuerst wird der Staat von Berlin erfragt und danach die allfällige Zugehörigkeit dieses Staates zu einer Wirtschaftszone. Beachte: Diese Information ist im Objekt Berlin (Q64) nicht enthalten sondern wird aus Deutschland (Q183) bezogen.

Wartungslinklisten

getValue

Kombiniert die Funktionalität von claim mit der Funktion getValue des englischen Module:Wikidata, d.h. es wird nur Wikidata abgefragt, wenn dies explizit (üblicherweise beim Ausfüllen einer Vorlage) angegeben wird. Bei einer Verwendung in Vorlagen überträgt dies damit die Kontrolle ob Wikidata verwendet werden soll auf den Ausfüller einer Vorlage. Dies kann hilfreich dabei sein den Wikicode von Vorlagen verständlich zu halten.

Hinweis: Das englische Wikidata-Modul geht bei getValue stets davon aus, dass die abgefragte Eigenschaft ein Verweis auf einen Wikipedia-Artikel ist und verlinkt diesen. Diese automatische Verlinkung geschieht hier nicht, sondern muss wie im unten angegebenen Beispiel explizit angegeben werden.

Parameter:

  • siehe claim
  • 2 – Gibt stets diesen angegebenen Wert zurück, außer dieser ist ABFRAGE_WIKIDATA, wobei dann die Funktion claim aufgerufen wird. (Das englische FETCH_WIKIDATA funktioniert ebenso, sollte aber zugunsten der deutschen Version vermieden werden.) Mittels eines vordefinierten ABFRAGE_WIKIDATA in der Vorlage kann die Abfrage auch erfolgen, wenn ein Parameter nicht gesetzt wurde.

Beispiel: Angenommen die Vorlage {{Infobox Staat}} verwendet zur Ausgabe der Eigenschaft Hauptstadt den Vorlagencode {{#invoke:Wikidata|getValue|P36|{{{HAUPTSTADT|}}}|parameter=link}} und im Artikel Deutschland würde diese wie folgt ausgefüllt:

  • {{Infobox Staat|…|HAUPTSTADT=[[Berlin]]|…}}Berlin, kein Wikidata verwendet
  • {{Infobox Staat|…|HAUPTSTADT=ABFRAGE_WIKIDATA|…}}Berlin, Wikidata verwendet
  • {{Infobox Staat|…|HAUPTSTADT=|…}} →      , kein Wikidata verwendet
  • {{Infobox Staat|…|…}} →      , kein Wikidata verwendet

Wenn ein Wert vordefiniert wurde mittels {{#invoke:Wikidata|getValue|P36|{{{HAUPTSTADT|ABFRAGE_WIKIDATA}}}|parameter=link}}:

  • {{Infobox Staat|…|HAUPTSTADT=[[Berlin]]|…}}Berlin, kein Wikidata verwendet
  • {{Infobox Staat|…|HAUPTSTADT=ABFRAGE_WIKIDATA|…}}Berlin, Wikidata verwendet
  • {{Infobox Staat|…|HAUPTSTADT=|…}} →      , kein Wikidata verwendet
  • {{Infobox Staat|…|…}}Berlin, Wikidata verwendet (Dies erschwert allerdings die Lesbarkeit des Wikicodes)

descriptionIn

Gibt die Wikidata-Beschreibung des Wikidata-Objekts in der angegebenen Sprache (Wiki-Sprachcode) zurück.

Parameter:

  • 1 – Wiki-Sprachcode
  • 2 – Id (Q…) des Wikidata-Objektes auf das zugegriffen werden soll. Wenn nicht angegeben wird das mit der aktuellen Seite verknüpfte verwendet.

Beispiel:

  • {{#invoke:Wikidata|descriptionIn|nl}}hoofdstad en deelstaat van Duitsland

labelIn

Gibt den Wikidata-Titel des Wikidata-Objekts in der angegebenen Sprache (Wiki-Sprachcode) zurück.

Parameter:

  • 1 – Wiki-Sprachcode
  • 2 – Id (Q…) des Wikidata-Objektes auf das zugegriffen werden soll. Wenn nicht angegeben wird das mit der aktuellen Seite verknüpfte verwendet.

Beispiel:

  • {{#invoke:Wikidata|labelIn|nl}}Berlijn

labelOf

Gibt den deutschsprachigen Titel des angegebenen Wikidata-Objekts oder -Eigenschaft zurück.

Parameter:

  • 1 – ID des Wikidata-Elements (Q…) oder -Eigenschaft (P…). Wenn nicht angegeben wird das Element der aktuellen Seite verwendet.

Beispiele:

  • {{#invoke:Wikidata|labelOf|Q1589880}}Haus
  • {{#invoke:Wikidata|labelOf|P281}}Postleitzahl

pageId

Gibt die Id eines Wikidata-Objekts zurück, um beispielsweise zu überprüfen, ob die aktuelle Seite mit einem Wikidata-Objekt verbunden ist oder ob das Wikidata-Objekt eine Weiterleitung auf ein anderes Wikidata-Objekt darstellt.

Parameter:

  • 1 – Id (Q…) des Wikidata-Objektes auf das zugegriffen werden soll. Wenn nicht angegeben wird das mit der aktuellen Seite verknüpfte verwendet.

Beispiel:

  • {{#invoke:Wikidata|pageId}}Q64, wenn auf der Seite Berlin aufgerufen
  • {{#invoke:Wikidata|pageId|Q18511155}}Q9404406, da Weiterleitung

sitelinkOf

Gibt den Titel der mit dem Wikidata-Element verbunden Seite in der deutschen Wikipedia zurück.

Parameter:

  • 1 – Id (Q…) des Wikidata-Objektes auf das zugegriffen werden soll. Wenn nicht angegeben wird das mit der aktuellen Seite verknüpfte verwendet.
  • 2 – Angabe eines konkreten Schwesterprojektes, für das der Sitelink zurückgegeben werden soll (optional). Standardwert ist das aktuelle Wiki.

Beispiel:

  • {{#invoke:Wikidata|sitelinkOf|Q1589880}}Haus (Begriffsklärung)
  • {{#invoke:Wikidata|sitelinkOf|Q1589880|itwiki}}Haus (disambigua)

sitelinkCount

Zählt die mit dem Wikidata-Objekt verbundenen Seiten.

Parameter:

  • 1 – Projekt-Filter. Standardmäßig werden alle Wikiprojekte berücksichtigt, bei wiki nur die Wikipedia-Sprachversionen und Commons, wikibooks, wikinews, wikiquote, wikisource und wikivoyage jeweils nur die Sprachversionen dieser Projekte. Daneben kann auch konkret eine Sprachversion wie enwiki angegeben werden, welches entsprechend 0 oder 1 zurückgibt, je nachdem ob es einen Artikel in der Sprachversion gibt.
  • 2 – Id (Q…) des Wikidata-Objektes auf das zugegriffen werden soll. Wenn nicht angegeben wird das mit der aktuellen Seite verknüpfte verwendet.

Beispiel:

  • {{#invoke:Wikidata|sitelinkCount}}322, wenn auf der Seite Berlin aufgerufen
  • {{#invoke:Wikidata|sitelinkCount|wiki}}265, wenn auf der Seite Berlin aufgerufen
  • {{#invoke:Wikidata|sitelinkCount|wikinews}}15, wenn auf der Seite Berlin aufgerufen

badges

Gibt die Auszeichnungen der mit dem Wikidata-Objekt verbundenen Seite im angegebenen Wikimedia-Projekt zurück. Die Auszeichnungen sind üblicherweise lesenswerter Artikel (Q17437798) oder exzellenter Artikel (Q17437796). Mehrere Auszeichnungen sollten nicht vorkommen, würden aber durch einen Schrägstrich getrennt ausgegeben.

Parameter:

  • 1 – Id des Wikimedia-Projekts, z.B. enwiki für die englische Wikipedia.
  • 2 – Id (Q…) des Wikidata-Objektes auf das zugegriffen werden soll. Wenn nicht angegeben wird das mit der aktuellen Seite verknüpfte verwendet.

Beispiel:

  • {{#invoke:Wikidata|badges|dewiki|Q64}}Q17437798 für Berlin; lesenswerter Artikel der deutschen Wikipedia

Debug-Funktionen

Die folgenden Funktionen können auf Wikipedia-Seiten (insbesondere Spezial:Vorlagen expandieren) zu Debugging- oder Entwicklungszwecken aufgerufen werden um detailliertere Informationen zu Programmfehlern und Wikidata-Datenstrukturen zu erhalten.

printEntity

Gibt alle mit der aktuellen Seite verbundenen Wikidata-Daten zurück.

Parameter:

  • 1 – Id (Q…) des Wikidata-Objektes auf das zugegriffen werden soll. Wenn nicht angegeben wird das mit der aktuellen Seite verknüpfte verwendet.

debug

Falls ein Modulaufruf einen Skriptfehler zurückgibt, können hiermit die eigentlichen Fehlerinformationen (Fehlerbeschreibung und evtl. Ort) abgerufen werden.

Parameter:

  • 1 – Name der Funktion
  • weitere Parameter – Parameter dieser Funktion

Beispiel:

  • {{#invoke:Wikidata|debug|claim|P1082|qualifier=P585}} anstatt {{#invoke:Wikidata|claim|P1082|qualifier=P585}} um konkrete Fehlerinformationen zu letzterem zu erhalten, wenn dort ein Skriptfehler auftritt.


Allgemeine Hinweise zur Einbindung von Modulen

Eine Einbindung erfolgt jeweils im Format

{{#invoke: Wikidata | Funktionsname | Wert1 | Wert2 | NameX=Wert … }}

Die Parameter können wie bei Vorlagen benannt oder unbenannt sein; deren Regeln gelten analog.

Wenn unbekannte Zeichenketten von außen kommen (als Vorlagenparameter), sollte immer mit der Form 1=Wert gearbeitet werden.

Zu allgemeinen Problemen beachte die Abhilfen wie bei Vorlagen.

Wenn in einer Vorlage ein Modul verwendet wird, sollte auch immer die Vorlage:Dokumentation/Lua in der Dokumentationsseite eingebunden werden.

  1. Das gibt einem Programmierer Aufschluss, dass ein Lua-Modul benutzt wird, welche/s und ggf. welche Einzelfunktion daraus, und verlinkt auf die Dokumentation.
  2. Die Modul-Dokumentationen bekommen ein Link, in welchen Vorlagen sie eingesetzt werden, und wo bei eventuellen Funktionsänderungen Anpassungen erforderlich werden.
  3. Die Vorlage wird zur Übersicht kategorisiert in Kategorie:Vorlage:mit Lua-Programmierung.

Zu weiteren Informationen siehe Hilfe:Lua.

Bei Problemen wende dich bitte an die Vorlagen-Werkstatt, in schweren Fällen hilft auch die Lua-Werkstatt.