Vorlagenprogrammierung | Diskussionen | Lua | Test | Unterseiten | |||
Modul | Deutsch | English
|
Modul: | Dokumentation |
Modul für Wiederverwendung und geordnete Sammlung von Bibliographiedaten
Author: Vollbracht
Eine unvollständige Spezifikation sollte unter Wikipedia:Lua/Modul/Literatur/Spezifikation wachsen.
Servicefunktionen
BearbeitenISBN(source)
reiner Wert, Typ und formatierte Form einer ISBN, die in source gefunden wurde
Parameter: | ||||||||
---|---|---|---|---|---|---|---|---|
source | Zeichenfolge, die eine Folge von Ziffern und Bindestrichen enthält, optional gefolgt von einem großen X | |||||||
Rückgabewert: | eine Struktur: {plain, key, formated}
|
Beispiel
local isSuccessfull, LiteratureMod = pcall(require, "Modul:Literatur") if not isSuccessfull then ... (Fehlerbehandlung) local Literature = LiteratureMod.service ... local input = '123456789X' local isbnData = Literature.ISBN(input) local plain = isbnData.plain local result-type = isbnData.key local formated = isbnData.formated
byWikiData(qualifier)
konvertiert ein Wikidata-Datenobjekt in eine Lua-Struktur, die auf relevante Daten beschränkt ist.
Parameter: | ||
---|---|---|
qualifier | Wikidata Qualifier | |
noInherit | optional - Ist dieser Parameter gesetzt, wird für eventuell vorhandene Sammelwerk- oder Buchreihenangaben die fallback-Funktion außer Kraft gesetzt. | |
Rückgabewert: | lua-Repräsentant eines Literatureintrages mit vorformatierten Eigenschaftswerten |
Beispiel
local isSuccessfull, LiteratureMod = pcall(require, "Modul:Literatur") if not isSuccessfull then ... (Fehlerbehandlung) local Literature = LiteratureMod.service ... local myBook=Literature.byWikiData('Q208002')
byParamSet(source)
konvertiert eine Liste mit zahlreichen Parametern in eine Lua-Struktur, die auf relevante Daten beschränkt ist.
Parameter: | ||
---|---|---|
source | Liste mit Eigenschaften | |
Rückgabewert: | lua-Repräsentant eines Literatureintrages mit vorformatierten Eigenschaftswerten |
Beispiel
local isSuccessfull, LiteratureMod = pcall(require, "Modul:Literatur") if not isSuccessfull then ... (Fehlerbehandlung) local Literature = LiteratureMod.service ... local myBook=Literature.byParamSet(frame.args)
Die Funktion verwendet die Übersetzungstabelle transCode.tcGer um Eigenschaftswerte in der Rückgabestruktur unter dem richtigen Namen abzulegen. Personennamen sind Komma-separiert anzugeben und werden als Liste abgespeichert. Titel, Sammelwerk und Serie können als Qualifizierer (Name eines Wikidata-Datenobjektes) angegeben werden. Auf diese Weise können Daten per fallback übernommen werden.
Es sollte auf die Angabe einer ID geachtet werden. In der Regel kann diese aber auch automatisch generiert werden.
formatStruct(dataSet)
formatiert einen Datensatz in Wikitext; bringt dazu vorformatierten Text in die richtige Reihenfolge
Parameter: | ||
---|---|---|
dataSet | Bibliographiedaten wie{authors={<name>, ...}, title=<title>,
editors={<name>, ...}, series=<name>, volume=<text>,
publisher=<name>, PoPub=<point of publishing>, year=<text>,
ISBN=<formated number>, DNB=<number>, DOI=<number>,
page=<number>, column=<number>...}
| |
Rückgabewert: | lua-Repräsentant eines Literatureintrages mit vorformatierten Eigenschaftswerten |
lokale Funktionen
BearbeitensatisfyConstraints(source, property, value)
value, wenn Bedingungen erfüllt sind
Parameter: | ||
---|---|---|
source | Datenquelle für die Bedingungen | |
property | Schlüssel(Eigenschaft) zur Auswahl der Bedingungen | |
value | vorgesehener Wert für die Eigenschaft | |
Rückgabewert: | value, wenn alle Bedingungen erfüllt sind, sonst nil |
Die Funktion greift mit dem Schlüssel <property> auf die Tabelle „constraints“ zu und bezieht damit eine Liste von Bedingungen. Jede Bedingung folgt dem Format <Schlüssel>=<Wert>. Innerhalb dieses Wertepaares kann <Schlüssel> eine Eigenschaft sein, die bereits in der Datenquelle enthalten ist. In diesem Fall wird nil zurück gegeben, wenn
- als Wert „false“ angegeben ist,
- als Wert eine Tabelle von Vergleichskriterien angegeben ist, von denen eine nicht erfüllt ist, oder
- als Wert ein anderer Wert angegeben ist, der mit dem Wert der Eigenschaft <source>.<Schlüssel> nicht übereinstimmt.
Innerhalb dieses Wertepaares kann <Schlüssel> aber auch den Wert „target“ annehmen. In diesem Fall wird nil zurück gegeben, wenn als Wert eine Tabelle von Vergleichskriterien angegeben ist, von denen eine nicht erfüllt ist.
Innerhalb dieses Wertepaares kann <Schlüssel> aber auch eine Eigenschaft sein, die in der Datenquelle noch nicht enthalten ist. In diesem Fall wird nil zurück gegeben, wenn
- als Wert „true“ angegeben ist, oder
- als Wert eine Tabelle von Vergleichskriterien angegeben ist, von denen eine nicht erfüllt ist.
Die Vergleichskriterien folgen jeweils dem Format <Operator>=<Wert>. Der (vorgesehene, oder vorhandene) Eigenschaftswert wird dann mit dem in diesem Paar angegebenen Wert auf die mit <Operator> angegebene Weise verglichen.
titles(qualifier)
Titel, Originaltitel und Originalsprache
Parameter: | ||
---|---|---|
qualifier | Wikidata Qualifier | |
Rückgabewert: | Datenstruktur: { title=<Titel> originalTitle=<Originaltitel> originalLanguage=<Originalsprache> } |
Zu einem Datenobjekt, das mit dem Qualifier angegeben ist, können verschiedene Titel (P1476) angegeben sein. Jeder Titel ist mit einer Sprache und eventuell auch mit verschiedenen Objekt der Aussage fungiert als (P3831)-Rollen angegeben. Dazu kann aber das Datenobjekt auch einen Eigenschaftswert zu Originalsprache (P364) haben. Das Modul kennt darüber hinaus auch eine bevorzugte Sprache.
Diese Funktion durchsucht zunächst alle Titel. Als title wird der erste gefundene Titel zurück gegeben, es sei denn, im weiteren Verlauf wird ein Titel gefunden, dessen Sprache mit der bevorzugten Sprache übereinstimmt. Gleichzeitig wird überprüft, ob ein Titel über die Rolle Originaltitel (Q1294573) verfügt. Dieser Titel wird dann in der Datenstruktur als originalTitle gespeichert. Außerdem wird die Sprache dieses Titels dann auch als originalLanguage gespeichert, wenn nicht bereits ein entsprechender Eigenschaftswert im Datenobjekt enthalten ist.
fallBack(target, fbSource, transCodes)
ergänze Felder, die noch nicht angegeben waren, durch Rückgriff auf eine andere Datenquelle
Parameter: | ||
---|---|---|
target | zu ergänzendes Objekt | |
fbSource | fallback-Datenquelle | |
transCodes | Übersetzungsmatrix | |
Rückgabewert: | das aufgefüllte Objekt |
Die Übersetzungsmatrik enthält zu jeder Eigenschaft, die aus fbSource kopiert werden könnte, den Namen der Eigenschaft, unter dem der entsprechende Wert im Zielobjekt abgelegt werden soll. Ist eine entsprechende Eigenschaft in der Quelle vorhanden, im Ziel jedoch (unter dem Zielnamen) noch nicht, wird der Eigenschaftswert unter dem neuen Namen im Ziel abgelegt.