Modul:Wikidata utilities/Doku

Aus Wikivoyage

Zweck der nachfolgenden Lua-Funktionen ist es, teure mw.wikibase.getEntity( i )-Aufrufe zu vermeiden.

Versionsbezeichnung auf Wikidata: 2021-11-05 Ok!

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:

Interne Variable[Bearbeiten]

local catTable
  • In der Tabelle werden die verwendeten Wikidata-Eigenschaften (Properties) gespeichert.

Funktionen[Bearbeiten]

  • Parameter
    • anEntity Wikidata Entity Object (table) oder Wikidata Id (string).
    • id Wikidata Id (Q...) string.
    • p Wikidata Property (P...) string.
    • count Maximalanzahl der gelieferten Werte. Bei count = nil werden alle Werte zurückgeliefert.
function wu.getEntity( id )
  • liefert id, entity, wrongQualifier. Prüft eine Qualifier-Id auf Vorhandensein in Wikidata. wrongQualifier nennt mit true oder false das Ergebnis. Im Erfolgsfall wird zudem ein entity-Objekt zurückgeliefert.
function wu.getEntityId( id )
  • liefert id, entity, wrongQualifier. Prüft eine Qualifier-Id auf Vorhandensein in Wikidata. wrongQualifier nennt mit true oder false das Ergebnis. Im Erfolgsfall wird zudem die entity-Id zurückgeliefert.
function wu.getLabel( entity, lang )
  • Liefert das Label der Eintity oder Qualifier-Id in der optionalen Sprache lang oder in der Inhaltssprache des Wikis zurück.
function wu.getSitelink( entity, globalSiteId )
  • Liefert den Site-Link für das angegebene Wiki globalSiteId (z. B. enwiki, dewikivoyage).
function wu.getSitelinkTable( entity, globalSiteId )
  • Liefert die vollständige Site-Link-Tabelle für das angegebene Wiki globalSiteId (z. B. enwiki, dewikivoyage).
function wu.getSitelinkTable( 'Q513012', 'dewikivoyage' )
 {
  ["site"] = "dewikivoyage",
  ["title"] = "TT1",
  ["badges"] = {
    "Q70894304",
  }
}
function wu.getUnit( unit )
  • Wandelt die unit-URL in eine Qualifier-Id um.
function wu.isGregorian( t )
  • Prüft, ob eine Zeitangabe im Modell „Gregorianischer Kalender“ vorgegeben wurde.
function wu.getDateFromTime( t )
  • Liefert das Datum in der Form YYYY-MM-DD aus einer Zeitangabe zurück.
function wu.getBestStatements( entity, p )
  • Liefert alle Statements als Tabelle zurück, im Fehlerfall die leere Tabelle {}.
function wu.getStatements( entity, p, count )
  • Liefert maximal die ersten count Statements als Tabelle zurück, im Fehlerfall die leere Tabelle {}.
function wu.getValue( entity, p )
  • Liefert den ersten Wert als Zeichenkette oder Tabelle, im Fehlerfall eine leere Zeichenkette.
function wu.getId( entity, p )
  • Liefert die erste Id als Zeichenkette, im Fehlerfall eine leere Zeichenkette.
function wu.getValues( entity, p, count )
  • Liefert maximal die ersten count Werte als Tabelle zurück, im Fehlerfall die leere Tabelle {}.
function wu.getValuesByLang( entity, p, count, lang )
  • Liefert maximal die ersten count Werte als Tabelle zurück, bei denen die Sprache lang gesetzt ist. Im Fehlerfall die leere Tabelle {}. Die Eigenschaft p muss vom Typ monolingual text sein.
function wu.getMonolingualValues( entity, p )
  • Liefert eine Tabelle aller Werte als indizierte Tabelle zurück, im Fehlerfall die leere Tabelle {}. Als Index wird die Sprachbezeichnung benutzt. Es wird der jeweils erste Wert zu einem bestimmten Sprache geliefert.
  • Beispiel:
wu.getMonolingualValues( 'Q47429618', 'P6375' )
table#1 {
 ["ar"] = "٢ شارع قصر النيل ، ميدان التحرير ، القاهرة",
 ["en"] = "2 Kasr El Nil St., El Tahrir Sq., Cairo",
}
function wu.getValuesByQualifier( entity, p, qualifierP, defaultId )
  • Liefert eine Tabelle aller Werte als indizierte Tabelle zurück, im Fehlerfall die leere Tabelle {}. qualifierP ist eine Wikidata Property (P..., string) vom Typ Datenobjekt. Die Datenobjekt-Id stellt den Index in der Tabelle für den zugehörenden Wert dar. Falls keine Datenobjekt-Id gefunden wurde, wird, falls vorhanden, defaultId benutzt bzw. der Index 'unknown' benutzt. Es wird der jeweils erste Wert zu einem bestimmten Index geliefert.
  • Beispiel:
wu.getValuesByQualifier( 'Q47429618', 'P856', 'P407' )
table#1 {
  ["Q1860"] = "https://www.steigenberger.com/en/hotels/all-hotels/egypt/cairo/steigenberger-el-tahrir-cairo",
  ["Q188"] = "https://www.steigenberger.com/hotels/alle-hotels/aegypten/kairo/steigenberger-el-tahrir-cairo",
}
function wu.getValuesWithQualifiers( entity, p, values, qualifiers, references, count, labelFct, ... )
  • Liefert eine Tabelle, die für jedes Statement eine Tabelle mit dem Wert und den Qualifikatoren enthält.
    • values Tabelle gewünschter Werte oder nil für alle.
    • qualifiers kann nil für alle möglichen Qualifikatoren-Eigenschaften, eine Zeichenkete für eine einzelne Qualifikator-Eigenschaft oder eine Tabelle gewünschter Qualifikatoren-Eigenschaften sein. Es werden maximal die ersten count Statements zurückgeliefert.
    • references Tabelle gewünschter Eigenschaften oder nil für alle.
  • Die Funktion labelFct überführt einen Qualifier-Id in sein Label. ... sind zusätzliche Parameter für diese Funktion, die nach der Q-Id an die Funktion übergeben werden.
  • Beispiel 1:
wu.getValuesWithQualifiers( 'Q183', 'P85' )
table#1 {
  table#2 {
    ["P51"] = table#3 {
      "National anthem of Germany - U.S. Army 1st Armored Division Band.ogg",
    },
    ["P51-type"] = "string",
    ["P805"] = table#4 {
      "Q4122341",
    },
    ["P805-type"] = "wikibase-entityid",
    ["sort1"] = 1,
    ["sort2"] = 1,
    ["value"] = "Q44042",
    ["value-type"] = "wikibase-entityid",
  },
}
  • Beispiel 2:
wu.getValuesWithQualifiers( 'Q183', 'P85', nil, nil, nil, nil, p.getLabel, 'en' )
table#1 {
  table#2 {
    ["P51"] = table#3 {
      "National anthem of Germany - U.S. Army 1st Armored Division Band.ogg",
    },
    ["P51-type"] = "string",
    ["P805"] = table#4 {
      "National Anthem of Germany",
    },
    ["P805-type"] = "wikibase-entityid",
    ["sort1"] = 1,
    ["sort2"] = 1,
    ["value"] = "Das Lied der Deutschen",
    ["value-type"] = "wikibase-entityid",
  },
}
function wu.getAliases( entity, lang )
  • Liefert eine Tabelle mit Aliasen zur Wikidata-Entität entity. Wenn keine Aliase vorliegen, ist die Tabelle leer. Eine fehlende Sprache wird durch die Sprache des Wikis ersetzt.
function wu.addProperty( p )
  • Fügt die Eigenschaft p in die Liste genutzter Eigenschaften ein.
function wu.removeProperty( p )
  • Löscht die Eigenschaft p in der Liste genutzter Eigenschaften ein.
function wu.getCategories( formatStr )
  • Liefert eine Zeichenkette mit den Kategorie-Links aller verwendeten Wikidata-Eigenschaften zurück.
function wu.getLastedit( lastEdit, statements )
  • Liefert das aktualisierte Datum der letzten Änderung aus dem Abrufdaten (P813) der Fundstellen.