Wikiup Diskussion:Lua/Modul/Wikidata/Archiv/2020

aus Wikipedia, der freien Enzyklopädie

Wartungslinklisten

[Übertragen von BD:Count Count. --Count Count (Diskussion) 14:30, 1. Nov. 2020 (CET)]
Hi Count Count. Was machst Du denn da im Modul:Wikidata? Das ist ein extrem oft produktiv genutztes Modul, an dem auf keinen Fall Tests oder nicht durchgetestete Änderungen durchgeführt werden dürfen. Jede Änderung führt zu enormer Serverlast, und Fehler legen zig Artikel oder abhängige weitere Module lahm. Änderungen sollten daher unbedingt zunächst mit Modul:Wikidata/Test getestet werden. Danke, Yellowcard (D.) 13:52, 1. Nov. 2020 (CET)

Ich habe die Änderungen auf beta getestet. --Count Count (Diskussion) 13:55, 1. Nov. 2020 (CET)
Das ist ehrenwert, dann verstehe ich aber bspw. den Eigenrevert nicht. Sind die Änderungen irgendwo nachvollziehbar für Dritte erklärt / dokumentiert? Yellowcard (D.) 14:02, 1. Nov. 2020 (CET)
Die generelle Idee ist, dass im stillen Fehlerfall, in dem momentan einfach kein Text zurückgegeben wird, Wartungsseiten verlinkt werden, so dass man dann über die Linklisten sehen kann, bei welchen Artikeln Fehler auftreten. Dass eine Aussage zu einem Objekt mit einer bestimmten Eigenschaft nicht existiert, ist aber kein Fehlerfall, sondern bei vielen Infoboxen erwartetes Verhalten, dann werden die entsprechenden Eigenschaften in der Infobox eben nicht angezeigt. Das wusste ich nicht, bzw. kam so auf Wikidata nicht vor, deshalb der Selbstrevert. Bezüglich Dokumenation: Folgt, das sind dann allerdings auch die ersten inhaltlichen Sätze in Modul:Wikidata/Doku. Vielleicht sollten wir diese Diskussion unter Modul Diskussion:Wikidata weiterführen. Wenn du einverstanden bist, verschiebe ich sie dahin. --Count Count (Diskussion) 14:09, 1. Nov. 2020 (CET)
Einverstanden, guter Vorschlag. Grüße, Yellowcard (D.) 14:28, 1. Nov. 2020 (CET)
Die (dringend überarbeitungswürdige) Doku zum Modul findet sich derzeit übrigens hier: Wikipedia:Lua/Modul/Wikidata/de. Vielleicht können dort die genannten Linklisten übergangsweise zumindest kurz aufgelistet werden. Ich bin mir über den Nutzen in der Praxis jedenfalls noch nicht ganz sicher. Gruß Yellowcard (D.) 14:32, 1. Nov. 2020 (CET)
Meine Arbeitshypothese war, dass es durchaus einige fehlerhafte Einbindungen von p.claim() gibt, die aber momentan nirgends auftauchen, da Fehler im Standardfall (ohne showerrors-Argument) ja einfach ignoriert werden. Das scheint nach bisherigere Analyse der Wartungslinklisten Spezial:Linkliste/Modul:Wikidata/Wartung/Fehlendes_Datenobjekt, Spezial:Linkliste/Modul:Wikidata/Wartung/Eigenschaft existiert nicht und Spezial:Linkliste/Modul:Wikidata/Wartung/Ungültige_Datenobjekt-Identifikationsnummer aber nicht der Fall zu sein. Mir ist allerdings unklar, wie lange es dauert, bis alle Seiten, die das Modul (transitiv) einbinden, neu gerendert worden sind. --Count Count (Diskussion) 14:38, 1. Nov. 2020 (CET)
Einen gestern hinzugekommenen Fehler habe ich gerade behoben. Die Fehler in den Diskussionsseiten zu Schwimmmeisterschaften liegen an Vorlage:Defekter Weblink, das irgendwie die Vorderseite einbindet (um das Vorhandensein des Links zu prüfen?), von der Vorderseite ist Vorlage:Infobox Schwimmmeisterschaften eingebunden und in dieser steht {{#invoke:Wikidata|claim|P131|id=Q{{#invoke:Wikidata|claim|P156|parameter=numeric-id}}}}]]}}, was schiefgeht, weil die Diskussionsseite kein zugeordnetes Wikidata-Objekt hat. --Count Count (Diskussion) 12:59, 5. Nov. 2020 (CET)

Skriptfehler

Zumindest der durch das Modul in Northvale verursachte Skriptfehler liegt an einem Fehler in der comparator-Funktion. In Zeile 718-720 wird die Antisymmetrie verletzt, da für zwei nicht-qualifizierte verschiedene Werte sowohl für comparator(a, b) als auch für comparator(b, a) true zurückgegeben wird:

			-- if either of the two statements does not have this qualifer, always sort it to the end. If neither of the two statements has this qualifier, statement A is ordered first 
			if not QualifierSortValueB then return true end
			if not QualifierSortValueA then return false end

Der Fehler tritt z.B. auf für {{#invoke:Wikidata|claim|id=Q1087542|P1082|qualifier=P585|parameter=time:Y|sort=P585|inverse=ja}}:

Ich schlage vor den Code durch folgenden zu ersetzen:

			-- if either of the two statements does not have this qualifer, always sort it to the end 
			if not QualifierSortValueB then 
				if not QualifierSortValueA then
					-- if neither of the two statements has this qualifier, arbitrarily but consistently return a < b
					return a < b
				else
					return true
				end
			elseif not QualifierSortValueA then return false end

Es gibt glaube ich noch auch noch weitere Pfade, die die Antisymmetrie verletzen, Kommentare wie „random result to avoid script error“ sind da wenig vertrauenserweckend. Da sollte man am ebenfalls a < b zurückgeben. --Count Count (Diskussion) 14:39, 7. Nov. 2020 (CET)

Detailliert beschriebene Änderung inzwischen umgesetzt. --Count Count (Diskussion) 18:21, 13. Nov. 2020 (CET)