Modul:Wikidata2/Doku

Aus skandinavien-wiki.net

Dieses Modul enthält Funktionen für die Verwendung von Wikidata. Die Funktionen holen sich die Argumente aus der Vorlage und müssen beim Modulaufruf nicht nochmals übergeben werden. Sie können aber, dann werden genutzt, wenn sie bei Verwendung der Vorlage vergessen wurden. Komplett vergessene Parameter werden mit Standardwerten belegt, unbekannte Parameter werden als Fehlermeldung zusätzlich mit im Artikel ausgegeben.

Allgemein gültige Parameter

Die allgemein gültigen Parameter kann man sowohl innerhalb der Vorlage in der Parserfunktion invoke benutzen, als auch innerhalb des Artikels der Vorlage selbst übergeben. Der Paramter, der bei der Einbindung der Vorlage benutzt wird, hat dabei Vorrang. So kann man bestimmte Funktionalitäten für den generellen Gebrauch der Vorlage aktivieren (über invoke) und im Einzelfall im Artikel abschalten (bei der Verwendung der Vorlage).

  • |ignore_errors= auf 1 oder true gesetzt, werden die Ausgabe der Fehlermeldungen der Funktionen unterdrückt. Standardmäßig werden die Fehler angezeigt.
  • |no_category= auf 1 oder true gesetzt, werden die Artikel bei Fehlermeldungen des Moduls einer Fehlerkategorie zugeordnet. Standardmäßig werden Fehlermeldungen in die Kategorie Fehlerberichte des Moduls Wikidata2 eingefügt. Wurden unbekannte Parameter verwendet landen die Artikel zusätzlich in der Kategorie Vorlagen mit unbekannten Parametern.
  • |error_category= gibt den Namen einer Fehlerkategorie an, in der der Artikel bei auftretenden Fehlern einsortiert wird. Standardmäßig ist das Fehlerberichte des Moduls Wikidata2.


Submodule

  • Modul:Wikidata2/i18n – Liefert sämtliche Meldungs- und Statustexte
  • Modul:Wikidata2/Delimiters – Liefert die trennenden Elemente zwischen den einzelnen Einträgen bei der Serialisierung von Wikidataeigenschaften, standardmäßig ein Komma und ein Leerzeichen.
  • Modul:Wikidata2/Units – Liefert die Namen von Maßeinheiten für Eigenaschaften vom Typ quantity
  • Modul:Wikidata2/Formats – Enthält Formatierungsanweisungen für die Daten von Wikidata
  • Modul:Wikidata2/Geography – Das Modul enthält dient der Suche nach Provinzen von Ortschaften und wird von der Funktion getProvince dieses Moduls benutzt. Die Funktion ermittelt auf Wikidata zu jedem Ort die passende Provinz. Mit Provinz ist dabei die erste administrative Hierarchie eines Staates gemeint. Im Falle von Deutschland ist es das Bundesland. Angewendet wird diese Funktion zum Beispiel in der Ortsquickbar (Modul Quickbar Ort und Vorlage Quickbar Ort. Dabei hangelt sich die Funktion ausgehend vom Ort über die Objekteigenschaft Liegt in Verwaltungseinheit über Landkreise und Counties bis zur passenden Provinz.
  • Modul:Wikidata2/POITypes – Das Modul enthält die POI-Typen für das Modul Wikidata2. Benutzt wird des von der Funktion wd.getPOITypes(). Sie liefert zum übergebenen Objekt den passenden Typen zurück, sofern in der Tabelle in diesem Modul definiert ist. Ist nichts hinterlegt wird der Standardwert ausgegeben (derzeit: Lua-Fehler in Modul:Wikidata2, Zeile 29: attempt to index field 'wikibase' (a nil value)). Die Typen werden unter anderem von Vorlagen {{Poi}} und {{VCard}} benutzt um die Markierungen in den dynamischen Karten einzufärben.
  • Modul:Wikidata2/Params – enthält ein mehrdimensionales Array mit allen erlaubten Parametern für jede Funktion/Vorlage und ihre Standardbelegung.

Verwendete Module

  • Modul:Check2 – enthält Routinen zur Parameterprüfung und Fehlergenerierung. Für die Parameterprüfung benötigt das aktuelle Modul Informationen über die erlaubten Parameter einer Funktionen. Diese wird im Regelfall über das Submodul Modul:Wikidata2/Params bereitgestellt.
  • Modul:Yesno – Hilfsmodul zur Auswertung von Ja/Nein-Werten. Es wertet Angaben wie ja, no oder 1 als boolsche Werte aus

Einbindung in anderen Modulen

Dieses Modul wird in folgenden Modulen eingebunden und weiter verwendet. Änderungen an diesem Modul wirken sich daher möglicherweise auf andere Features aus sollten daher mit Bedacht vorgenommen werden. Sprich dich daher bitte mit den Modul- und Vorlagenprogrammierern ab.

Verwendung in anderen Vorlagen

Dieses Modul wird in folgenden Vorlagen verwendet:

  • {{Wikidata}} – Dient den direkten Abruf von Daten aus Wikidata und Verwendung im Artikel.

Siehe auch

Funktionen

Im folgenden werden alle über das Modul verfügbaren Funktionen beschrieben. Für die Benutzung stehen zwei Wege zur Verfügung:

  • Benutzung im Artikel oder in Vorlagen: {{#invoke:Wikidata2|<Funktionsname>|<Parameter 1>=<Wert 1>|<Parameter 2>=<Wert 2>|.....}}
  • Einbindung in ein anderes Modul
local wd = require('Modul:Wikidata2')
objekt = wd.EntityId()

Bei der Anwendung in Artikeln und Vorlagen muss bei den Bezeichnungen Parameter nicht auf Groß- und Kleinschreibung geachtet werden. Die beispielhafte Anwendung der Funktionen kannst du auch auf Wikivoyage:Wikidata/Test Modul:Wikidata2 näher anschauen.

Entity/ID

Einige Funktionen beschäftigen sich mit der Ermittlung der ID des zugehörigen Datenbankobjektes einer Wikivoyage-Seite.

  • EntityId – Liefert die ID des Datenbankobjektes. Existiert kein Objekt, wird eine leere Zeichenkette zurückgegeben.
  • hasEntity – Ist ein Datenobjekt vorhanden? Die Funktion liefert true oder false.
  • EntityIdErrCode - Interner Fehlercode der Abfrage.
    • 0 Es gibt kein Wikidata-Objekt.
    • 1 Es gibt ein Wikidata-Objekt.
  • EntityIdErrText – Fehlertext der Abfrage. Dieser ist auf Wikidata2/i18n parametrierbar.
  • Entity – Liefert ein Objekt mit allen Informationen der Abfrage der ID des Wikidataobjektes zurück. Damit ist eine Weiterverarbeitung in anderen Modulen einfach möglich. Das Objekt hat folgenden Aufbau:
    • "id" – ID des Objektes oder leere Zeichenkette
    • "hasID" – Ginbt es ein Objekt: Boolscher Wert (true/false)
    • "errCode" – Ergebniscode (0/1)
    • "errMsg" – Nachrichten-/Fehlertext der Abfrage
    • "entity" – komplettes Wikidata-Objekt

Bezeichnung/Label

Die folgenden Funktionen bieten Zugriff auf die Bezeichnungen des Wikidata-Objektes

  • Label – Liefert die Bezeichnung des Objektes in der Sprache des Wikis
  • LabelByID – Liefert die Bezeichnung eines beliebigen Objektes in der Sprache des Wikis
  • LabelLang – Liefert die Bezeichnung des Objektes in einer gewünschten Sprache, gibt es keinen Eintrag, wird eine leere Zeichenkette geliefert.
  • LabelLangByID – Liefert die Bezeichnung eines beliebigen Objektes in einer gewünschten Sprache, gibt es keinen Eintrag, wird eine leere Zeichenkette geliefert.
  • LabelLangByIDRaw – Liefert ein Objekt mit allen Informationen der Abfrage der Bezeichnung des Wikidataobjektes zurück. Damit ist eine Weiterverarbeitung in anderen Modulen einfach möglich. Das Objekt hat folgenden Aufbau:
    • "label" – Bezeichnung des Objektes oder leere Zeichenkette
    • "errCode" – Ergebniscode (0/1)
    • "errMsg" – Nachrichten-/Fehlertext der Abfrage

Abfrage von Objekteigenschaften

  • getValue – Die Funktion liefert die Eigenschaften eines Objektes formatiert für die Verwendung in Artikeln zurück. Alle Parameter haben Standardwerte. Komplett ohne Parameter angewendet, wird ausgegeben, was für ein Objekt der aktuelle Artikel darstellt (Eigenschaft: ist ein...).
    • |id= ID des Datenobjektes. Wird nichts angegeben, wird das eigene Objekt benutzt.
    • |p= Angabe der ID der Objekteigenschaft, die abgefragt werden soll. Die IDs beginnen mit einem „P“. Ist nichts angegeben wird die Eigenschaft „P31“ (ist ein...) zurückgeliefert.
    • |format= Wenn gewünscht, kann man für die Ausgabe der Eigenschaft zusätzlich vom Standard abweichende Formatieranweisungen übergeben. Sämtliche Formatierungen sind in dem Submodul Wikidata2/Formats hinterlegt.
    • |ranking= Standardmäßig liefert die Funktion bei mehreren vorhandenen Eigenschaften den bevorzugten Wert zurück (z.B. bei mehreren hinterlegten Einwohnerzahlen die jeweils aktuelle). Ist eine komplette Liste aller Werte gewünscht, kann man dies parametrieren.
      • |ranking=best bevorzugter Wert (Standard)
      • |ranking=all Ausgabe aller Einträge
    • |showranking= Werden alle Eigenschaften angezeigt (siehe voriger Parameter), kann man sich die Werte entsprechen der hinterlegten Rankings unterschiedlich darstellen lassen. Für jede Stufe ist eine Standardfarbe im Wiki voreingestellt. Folgende CSS-Klassen sind für die Darstellung verantwortlich und können benutzerspezifisch in der Datei Benutzer:<Dein Name>/common.css individuell ausgestaltet werden:
      • .wd-rank-truthHöchste Priorität
      • .wd-rank-preferredBevorzugte Priorität
      • .wd-rank-normalNormale Priorität
      • .wd-rank-deprecatedVeraltete Information
  • getProperty – Diese Funktion ist eine Subroutine, die die Aufbereitung der gelieferten Tabelle mit den Objekteigenschaften übernimmt. Sie wird von der hier drüber dokumentierten Funktion getValue benutzt und nicht direkt in Artikeln oder Vorlagen verwendet. Sie ist aber von außen verfügbar und kann somit von anderen Modulen benutzt werden. Sie erwartet als Parameter eine Tabelle die der Wikidata-Datenstruktur, wie sie unterhalb des Knotens Claims => Pxxx geliefert wird.

Anwendungsspezifische Funktionen

Die folgenden Funktionen liefern maßgeschneiderte Informationen für bestimmte Vorlagen, so zum Beispiel die Kartentools und die VCard. Die Funktionen können auch in anderen Vorlagen benutzt werden, meistens wird sich die Anwendung aber auf eine bestimmte Vorlage beschränken.:

  • getPOIType – Die Funktion liefert den POI-Typ eines Datenobjektes. Die Codes werden von dem Submodul Wikidata2/POITypes bezogen. Wird dort nichts passendes gefunden, wird der Standardwert ausgegeben (derzeit: Lua-Fehler in Modul:Wikidata2, Zeile 29: attempt to index field 'wikibase' (a nil value)). Die Typen werden unter anderem von Vorlagen {{Poi}} und {{VCard}} benutzt um die Markierungen in den dynamischen Karten einzufärben.
    • |id= Optionale Angabe einer Objekt-ID. Wird nichts angegeben, wird das eigene Objekt abgefragt.
  • getPOITypeDefault – Die Funktion gibt den derzeit als Standard hinterlegten POI-Typ zurück.
  • getOfficialWebsite – Liefert die ofizielle(n) Webseite(n) des Artikels/Objektes inklusive des ergänzenden Textes: „offizielle Webseite von ...“
    • |id= Optionale Angabe einer Objekt-ID. Wird nichts angegeben, wird das eigene Objekt abgefragt.

Hilfsfunktionen

  • dumpEntity – Die Funktion gibt die gesamte Struktur des Wikidataobjektes aus. Zu Analysezwecken kann man sich somit schnell einen Überblick über die Struktur und die Bezeichnungen der einzelnen Datenfelder verschaffen. Die Ausgabe nimmt schnell mehrere Bildschirmseiten ein (Hier einige Beispiele).
    • |id= Optionale Angabe einer Objekt-ID. Wird nichts angegeben, wird das eigene Objekt ausgegeben.

Benötigte weitere Module

Dieses Modul benötigt folgende weitere Module: Check2 • Languages • Yesno • VarDump

Verwendung in anderen Modulen

Dieses Modul ist notwendig für die Ausführung folgender Module. Bei Anpassungen sollte die Funktionstüchtigkeit der folgenden Module geprüft werden. Benutze dazu auch diese Tracking-Kategorie um Fehler zu finden, die sich dann auf Artikel auswirken: