Die folgende Seite ist meine Spielwiese für Aufrufe von Lua-Code aus Wikipedia.

Die Zielsetzung ist der Zugriff auf Wikidata. Daher ist zu beachten, dass gemäß Bedingung D in diesem Meinungsbild das "Einbinden von Wikidata-Daten über Vorlagen ... erfolgen muss".

Das ist aber auch Zweck meiner Seite: ich möchte eine Vorlage basteln, um CODATA-Werte aus Wikidata zu ziehen!

Dennoch starte ich erst einmal mit ein paar einfachen {{#invoke:...}} Kommandos.

Es wird hier das Lua-Modul Modul:WLink untersucht.

Artikelname herausfinden

Bearbeiten
{{#invoke:WLink|getArticleBase}} liefert: Dogbert66/Sandkasten/Lua

Funktionsweise:

  • {{#invoke:...}} hat hier zwei Parameter: WLink und getArticleBase
  • D.h. es wird im Lua-Modul Modul:WLink die Funktion function WLink.getArticleBase( attempt ) aufgerufen, dabei aber attempt leergelassen, weshalb das Lua-Modul den Rückgabewert r mit der Zeile
r = mw.title.getCurrentTitle().text;
setzt, wobei mw für mediawiki steht.

Mit einem gesetzten Parameter attempt sieht das Beispiel so aus:

{{#invoke:WLink|getArticleBase|Lichtgeschwindigkeit}} liefert: Lichtgeschwindigkeit
{{#invoke:WLink|getArticleBase|Lichtgeschwindigkeit#Wert}} liefert: Lichtgeschwindigkeit

Dabei wird intern function WLink.getTarget( attempt ) verwendet:

{{#invoke:WLink|getTarget|Lichtgeschwindigkeit}} liefert:
{{#invoke:WLink|getTarget|Lichtgeschwindigkeit#Wert}} liefert:
{{#invoke:WLink|getTarget|[[Lichtgeschwindigkeit#Wert]]}} liefert: Lichtgeschwindigkeit#Wert
{{#invoke:WLink|getTarget|https://de.wikipedia.org/wiki/Lichtgeschwindigkeit#Wert}} liefert: https://de.wikipedia.org/wiki/Lichtgeschwindigkeit#Wert
{{#invoke:WLink|getTarget|[https://de.wikipedia.org/wiki/Lichtgeschwindigkeit#Wert Linktext]}} liefert: https://de.wikipedia.org/wiki/Lichtgeschwindigkeit#Wert

Es wird hier das Lua-Modul Modul:Wikidata untersucht.

Wikidata-Wert abfragen

Bearbeiten

Als Beispiel dient Code aus Vorlage:Infobox Software. Diese Infobox wird auf Seiten eingesetzt, die Software beschreiben, wie z.B. Mozilla Firefox (D:Q698) oder Microsoft Excel (D:Q11272).

Aktuelle Versionsnummer

Auf den Seiten Mozilla Firefox oder Microsoft Excel steht in der Vorlage im Grunde genommen {{#invoke:Wikidata|claim|P348|references=ja}}. Das führt auf der Seite hier zu keinem Ergebnis

{{#invoke:Wikidata|claim|P348|references=ja}} liefert:

weil diese Sandkasten-Seite kein Wikidataobjekt hat.

Daher müssen wir hier auf der Testseite explizit die id des Wikidata-Items angeben, zu dem wir etwas wissen wollen:

{{#invoke:Wikidata|claim|P348|references=ja|id=Q698}} liefert: 115.12.0esr[1]
{{#invoke:Wikidata|claim|P348|references=ja|id=Q11272}} liefert: Microsoft 365[2]

Beachte, dass die Property P348 auf D:Q698#P348 alle verschiedenen Versionen auflistet, dass dabei die aktuelle Versionsnummer jedoch mit "Preferred rank" gekennzeichnet ist. Das references=ja führt dazu, dass aus dem speziellen Eintrag unter der Property, der verwendet wird, auch die Referenz ausgelesen wird und unten verlinkt ist. noch offen wie genau funktioniert das im Lua-Code?

Offizieller Name der Software (P1448)
{{#invoke:Wikidata|claim|P1448|references=ja|id=Q698}} liefert: Firefox
{{#invoke:Wikidata|claim|P1448|references=ja|id=Q11272}} liefert:

Diese Property wurde bei Excel nicht gesetzt.

Und was hat das jetzt mit CODATA zu tun ?

Bearbeiten

Naja, zumindest einer von den folgenden beiden Aufrufen erzeugt sogar schon eine Referenz:

{{#invoke:Wikidata|claim|P1181|references=ja|id=Q2111}} liefert: 299792458[3][4]
{{#invoke:Wikidata|claim|P1181|references=ja|id=Q3814108}} liefert: 9.1093837015e-31[3]

Weitere Ansätze

Bearbeiten
Lua: naja, die Sprache scheint verständlich  Ok
Modul:Wikidata: da stecken schon soviele Lösungen drin, dass wir erst mal unser Problem genau spezifizieren müssen    noch offen
  • D:Help:Data type
  • Zahlen werden abgespeichert als Wert, untere Unsicherheit, obere Unsicherheit. Darstellung z.B. auf D:Q3814108#P2370 ist nur eine Darstellung!!
  • Units haben eigene Wikidata-Seite, z.B. D:Q182429
Dabei fehlt der TeX-Ausdruck \frac{m}{s} gemäß D:Help:Data type#Mathematical expression
  • Falls Properties (z.B. einer Unit) fehlen, so sollte man auf D:WD:PP einen Vorschlag posten.
  • Ggf. bei D:WD:PHYSICS mitarbeiten oder Unterstützung anfragen.

Unsere Todos

Bearbeiten

außerhalb Wikipedia

Bearbeiten
  • können wir saubere Referenzen zu alten CODATA-Versionen (2010, 2014) erzeugen? z.B. WebArchive auf alten Stand von CODATA?
  • können wir auch die aktuellen Werte schon mit einem eindeutigen WebArchive-Datum erfragen, so dass klar ist, dass das keine Referenz auf einen 2022-Wert ist?

Wikipedia

Bearbeiten
  • Wir brauchen eine klare Aussage, wie wir das hier lösen wollen noch offen
  • Naja, die Vorlage muss natürlich angelegt werden   . Wohl zuerst in der Sandbox.
Dabei benötigen wir wohl mehrere Parameter:
– Referenz erzeugen? ja / nein / evtl. nur Referenz??
– Darstellung als kopierbarer Text / Darstellung als möglichst schöner TeX-Ausdruck / "Concise form" (d.h. mit runden Klammern)
– Darstellung der Unsicherheiten: "Concise form" (d.h. mit runden Klammern) / absolute Unsicherheit / relative Unsicherheit
Intern muss erkannt werden:
– Für exakte Werte soll der Referenz-Text anders lauten, als für unsichere Werte.

Wikidata

Bearbeiten
  • CODATA-Werte überprüfen:
– Alle uns interessierenden CODATA-Werte haben eine de-Wiki-Seite und somit ein Wikidata-Item. (insbesondere auch: gibt es Doubletten?)
– Die Historie der sich geändert habenden Werte ist bei jedem Item mit CODATA 2010, CODATA 2014, CODATA 2018 sauber bezeichnet. Der derzeit gültige Wert hat "Preferred rank".
– Alle Werte haben eine Referenz, mit der wir was anfangen können (noch offen was heißt das?)
– Exakte Werte sind exakt, unsichere Werte sind mit oberer und unterer Grenze
– stimmt die Einheit?
  • Units:
– haben alle eine kopierfähige Text-Darstellung und eine "Mathematical expression"-Darstellung? (noch offen was heißt das?)
  • Gibt es für die obigen Fragen eine SPARQL-Frage, die uns da weiterhilft?? Bei welcher Fragestellung??? noch offen

Lua-Module

Bearbeiten
  • Reicht das, was schon da ist, bereits aus? Welche Erweiterungen benötigen wir?
  • {{#invoke:Wikidata|claim|P1181|references=ja|id=Q3814108}} liefert ja bereits eine "wissenschaftliche Darstellung" mit dem Exponenten: 9.1093837015e-31[3]. Wir bräuchten aber eine TeX-Darstellung \cdot 10^{-31} anstelle des e-31. Können wir den Exponenten bereits separat erzeugen? noch offen dazu den Code von claim lesen!

Durch die Beispiele erzeugte Einzelnachweise

Bearbeiten
  1. Firefox ESR 115.12.0, See All New Features, Updates and Fixes. 11. Juni 2024 (englisch, abgerufen am 11. Juni 2024).
  2. www.microsoft.com.
  3. a b c In: 2018 CODATA recommended values.
  4. In: SI Brochure (9th edition): Concise summary.