Regiowiki:Lua/Modul/Wikidata

Aus Regiowiki
Zur Navigation springen Zur Suche springen
Vorlagenprogrammierung Diskussionen Lua Unterseiten
Modul Deutsch

Modul: Dokumentation
Zentrale Diskussionsseite fehlt

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:}}.

Parameter:

  • 1 – die Eigenschafts-Id (P…) oder der Eigenschaftsname, dessen Aussage zurückgeliefert werden soll. Aus Performanz- (Geschwindigkeit) und Persistenzgründen (der Name einer Eigenschaft kann sich ändern) sollte die Angabe einer Id bevorzugt werden.
  • 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  Lua/Modul/Wikidata (P585) auf Wikidata (via Reasonator)
eine Aussage gilt oder welche  Lua/Modul/Wikidata (P459) auf Wikidata (via Reasonator)
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 http://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. http://www.wikidata.org/entity/Q1985727 für den proleptischen Gregorianischen Kalender oder http://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 angegeben 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
  • 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 aus
  • hasqualifier – nur Aussagen mit Qualifikatoren ausgegeben. Kann mit einer Eigenschafts-Id (P…) auf einen bestimmten Qualifikator beschränkt werden.
  • hassource – nur Aussagen mit Einzelnachweisen ausgegeben. Kann mit einer Eigenschafts-Id (P…) auf einen bestimmten Einzelnachweis beschränkt werden. !P… ignoriert einen Einzelnachweis.
  • atdate – nur Aussagen ausgegeben, die gemäß den Qualifikatoren  Lua/Modul/Wikidata (P580) auf Wikidata (via Reasonator)
und   Lua/Modul/Wikidata (P582) auf Wikidata (via Reasonator)
am gegebenen Datum gültig sind. Bei keiner Datumsangabe wird das heutige Datum verwendet.
  • showerrors – wenn keine Aussage gefunden werden kann, den Grund zurückgeben

Beispiele:

. Zahlen werden im Gegensatz zu {{#property:}} ohne Dezimalpunkte zurückgegeben.

der Eigenschaft  Lua/Modul/Wikidata (P1082) auf Wikidata (via Reasonator)
  • {{#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|Lua-Fehler in Modul:Wikidata, Zeile 854: attempt to index field 'wikibase' (a nil value)|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  Lua/Modul/Wikidata (P6) auf Wikidata (via Reasonator)

Fehlt noch:

  • Mehrere Aussagen können mit einem Separator getrennt zurückgegeben werden, in vielen Fällen ist jedoch eine besser formatierte Lösung bevorzugt. Daher wird vermutlich eine templatebasierte Rückgabe implementiert werden.

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}}Lua-Fehler in Modul:Wikidata, Zeile 625: attempt to index field 'wikibase' (a nil value)

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}}Lua-Fehler in Modul:Wikidata, Zeile 854: attempt to index field 'wikibase' (a nil value)
  • {{#invoke:Wikidata|labelOf|P281}}Lua-Fehler in Modul:Wikidata, Zeile 854: attempt to index field 'wikibase' (a nil value)

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}}Lua-Fehler in Modul:Wikidata, Zeile 841: attempt to index field 'wikibase' (a nil value), 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.

Beispiel:

  • {{#invoke:Wikidata|sitelinkOf|Q1589880}}Lua-Fehler in Modul:Wikidata, Zeile 866: attempt to index field 'wikibase' (a nil value)

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}}Lua-Fehler in Modul:Wikidata, Zeile 889: attempt to index field 'wikibase' (a nil value), wenn auf der Seite Berlin aufgerufen
  • {{#invoke:Wikidata|sitelinkCount|wiki}}Lua-Fehler in Modul:Wikidata, Zeile 889: attempt to index field 'wikibase' (a nil value), wenn auf der Seite Berlin aufgerufen
  • {{#invoke:Wikidata|sitelinkCount|wikinews}}Lua-Fehler in Modul:Wikidata, Zeile 889: attempt to index field 'wikibase' (a nil value), wenn auf der Seite Berlin aufgerufen

badges

Gibt die Auszeichnungen der mit dem Wikidata-Objekt verbunden Seite im angegebenen Wikimedia-Projekt zurück. Die Auszeichnungen sind üblicherweise  Lua/Modul/Wikidata (Q17437798) auf Wikidata (via Reasonator)

oder  Lua/Modul/Wikidata (Q17437796) auf Wikidata (via Reasonator)

. 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|dawiki}}Lua-Fehler in Modul:Wikidata, Zeile 873: attempt to index field 'wikibase' (a nil value) (lesenswerter Artikel der dänischen Wikipedia), wenn auf der Seite Berlin aufgerufen

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.