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

Bearbeiten

ISBN(source)

reiner Wert, Typ und formatierte Form einer ISBN, die in source gefunden wurde

Parameter:
sourceZeichenfolge, die eine Folge von Ziffern und Bindestrichen enthält, optional gefolgt von einem großen X
Rückgabewert:eine Struktur: {plain, key, formated}
plain alle Ziffern (und 'X') in direkter Abfolge ohne Bindestriche
key 'ISBN-10', oder 'ISBN-13' (wenn gültig)
'ISBNinvalid' (wenn keine ISBN)
'ISBNwrong' (wenn falsch berechnet)
formated üblich formatierte ISBN (wenn ISBN-10, ISBN-13, oder ISBNwrong)
"" (Leerstring, wenn ISBNinvalid)

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:
qualifierWikidata Qualifier
noInheritoptional - 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:
sourceListe 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:
dataSetBibliographiedaten 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

Bearbeiten

satisfyConstraints(source, property, value)

value, wenn Bedingungen erfüllt sind

Parameter:
sourceDatenquelle für die Bedingungen
propertySchlüssel(Eigenschaft) zur Auswahl der Bedingungen
valuevorgesehener 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:
qualifierWikidata 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:
targetzu ergänzendes Objekt
fbSourcefallback-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.