Wikipedia:Lua/Werkstatt/Archiv/2021

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Pattern für TemplatePar → valid

Ich habe festgestellt, dass beim Chemobox-Parameter Suchfunktion teilweise fälschlicherweise Formatierungen wie <sub> verwendet werden: hastemplate:Infobox_Chemikalie insource:/Suchfunktion *=[^\|]+\<s/. Daher möchte ich dies mittels {{#invoke:TemplatePar|valid|EG-Nummer|2=/^…$/ abfangen. Ich habe Hilfe:Lua/Zeichenketten#Pattern angeschaut, aber noch nicht so richtig verstanden … Erlaubt sind alle Buchstaben, Ziffern, Klammern, der Mittelpunkt und Leerzeichen. Kann jemand daraus ein Pattern machen? --Leyo 13:15, 29. Apr. 2021 (CEST)

Müsste /^[a-zA-Z0-9()· ]*$/ sein. --FriedhelmW (Diskussion) 13:34, 29. Apr. 2021 (CEST)
Sind da eckige Klammern auch berücksichtigt? --Leyo 15:03, 29. Apr. 2021 (CEST)
Nein, das wäre dann /^[a-zA-Z0-9()· %[%]]*$/ --FriedhelmW (Diskussion) 15:06, 29. Apr. 2021 (CEST)
Besten Dank! Ich habe es übernommen und bin gespannt, ob in der Kategorie:Wikipedia:Vorlagenfehler/Vorlage:Infobox Chemikalie noch weitere Artikel erscheinen werden als diejenigen aus der obigen Cirrus-Suche. --Leyo 15:22, 29. Apr. 2021 (CEST)
Archivierung dieses Abschnittes wurde gewünscht von: Leyo 16:39, 29. Apr. 2021 (CEST)

nachgewiesen in oder URL der Fundstelle als String

Auf Vorschlag von FriedhelmW von der Vorlagenwerkstatt hierhin verschoben:
Wie kann ich den Inhalt von nachgewiesen in oder URL der Fundstelle als String erhalten, um diesen dann mittels der Vorlage:Str find mit einem Parameterwert zu vergleichen oder auf diesen anzuwenden? Mit {{#invoke:Wikidata|claim|P231|references=only}} erhalte ich einen formatierten Einzelnachweis, der für die Vorlage:Str find nicht zugänglich zu sein scheint. --Leyo 21:35, 21. Apr. 2021 (CEST)

Hast du schon {{#invoke:Wikidata|claim|P231|qualifier=P854}} probiert? --FriedhelmW (Diskussion) 21:49, 21. Apr. 2021 (CEST)
Ah, das geht nicht. --FriedhelmW (Diskussion) 22:02, 21. Apr. 2021 (CEST)
Schade. Aus meiner Sicht müsste es – neun Jahre nach dem Start von Wikidata – (so oder ähnlich) möglich sein, auf jedes Element im betreffenden Item zuzugreifen.
Use Case: Beispielartikel bzw. zugehörige Informationen --Leyo 22:16, 21. Apr. 2021 (CEST) PS. Anhand dieser Prüfung soll entschieden werden können, ob CAS-Nummern auf ihren Eintrag in der CAS Common Chemistry Database verlinkt werden (falls in der Datenbank ein Eintrag zur betreffenden CAS-Nummer vorliegt) oder nicht. Betroffen sind global zehntausende Artikel.

@Lydia Pintscher (WMDE): Die für eine solche Abfrage benötigten Lua-Funktionen scheinen nicht zu existieren. Könnte WMDE als Initiator von Wikidata da allenfalls Unterstützung leisten? --Leyo 09:51, 3. Mai 2021 (CEST)

  • Ich bin mir ziemlich sicher, dass das mit Lua durchaus zugänglich ist, bloß nicht in Form einer "fertigen" Funktion die Du einfach aufrufen könntest. Du bräuchtest also ein separates Modul dafür.
  • Abgesehen davon verstehe ich Dein Anliegen noch immer nicht so recht. Ist Lua/Vorlagencode überhaupt der ideale Weg hier?
  • Ganz generell: die Kultur in der deutschsprachigen Wikipedia gegenüber neuem Code (Lua, Javascript) ist ziemlich ablehnend, weshalb kaum jemand etwas neues beiträgt oder jemand anderem helfen möchte.
Viele Grüße, MisterSynergy (Diskussion) 11:05, 3. Mai 2021 (CEST)
Besten Dank für deine Antwort! Ich könnte mir fast nicht vorstellen, dass es mit Lua prinzipielll nicht möglich ist.
Es geht darum, CAS-Nummern z.B. in der Vorlage:Infobox Chemikalie dann mit ihrem jeweiligen Eintrag in der CAS Common Chemistry Database (Herausgeber ist die offizielle Vergabestelle von CAS-Nummern) zu verlinken, sofern dieser existiert. Der einzige URL-Parameter ist die CAS-Nummer. Sofern diese Belege (siehe weitere Informationen dazu) vorhanden sind, soll ein Link erzeugt werden, sonst nicht.
Die Gefahr von Vandismus ist klein, da im schlimmsten Fall fälschlicherweise ein Link auf einen nicht vorhandenen Eintrag erzeugt wird oder umgekehrt. Hingegen wäre der Aufwand für die Wikipedia-Sprachversionen unnötig hoch, bei jeder CAS-Nummer die Prüfung extra nochmals vorzunehmen. --Leyo 11:25, 3. Mai 2021 (CEST)
Wieso möchtest Du denn dafür in Wikidata-Fundstellen nachschauen? Bei welchen Aussagen sollen diese Fundstellen vorhanden sein? Ich nehme pauschal mal an, dass es um das mit dem entsprechenden Wikipedia-Artikel, der die Infobox einbindet, verbundenen Wikidata-Objekt geht. —MisterSynergy (Diskussion) 11:31, 3. Mai 2021 (CEST)
Also nur, weil ich das hier am Rande mitbekommen habe, aber auch im JSON-Format läßt sich sowas bei Wikidata abrufen, auch als API-Call möglich (s. Wikidata:Data access). Ich habe ja bereits in anderer Sache angeregt, die Extension:External Data zu aktivieren, damit könnte man dann beliebige Daten aus so einer API-Abfrage extrahieren und mit Lua-Vorlagen weiter verarbeiten. -- Uwe Martens (Diskussion) 12:59, 3. Mai 2021 (CEST)
Ist hier nicht nötig, mit Lua hat man direkt Zugriff auf alle Daten eines verbundenen oder per Q-ID ausgewählten Wikidata-Objektes. Siehe hier für Dokumentation. —MisterSynergy (Diskussion) 13:09, 3. Mai 2021 (CEST)
Na dann - muß die Abfrage wikibase.entityExists( id ) ja "nur noch" in die entsprechenden Vorlagen eingearbeitet werden... Nehme ich mal an. ;-) PS: Mit dem API-Call und einer einfachen if-Konstruktion könnte man als Workaround durchaus auch ohne String-Extraktion eine true-Rückgabe prüfen (bzw. mit einer if-not-Konstruktion, wenn eine Abfrage false bzw. "Bad Request" ergibt). Allerdings gilt es ja wiederum als "Sünde", bei den zu erwartenden zahlreichen Aufrufen jedesmal die projekteigene API zu bemühen, anstatt die Daten direkt abzufragen. Aber die entsprechenden Module müßten halt erst mal aktiviert werden. Substituiert, also permanent im Quelltext eingebunden, könnte so ein API-Workaround mit einem Botlauf aber bedenkenlos bewerkstelligt werden, je nach Programmierung des Bots sogar ganz ohne die zuvor verlinkte Extension:External Data. Wenn natürlich nicht der Wikidata-Eintrag an sich, sondern nur der CAS-Eintrag aus der Info-Box mit der externen CAS-Datenbank abgeglichen werden sollte, so wäre wieder eine String-Extraktion nötig bzw. kann das ja substituiert mit einem Bot z.B. in PHP leicht bewerkstelligt werden. Für einen dynamischen Abgleich samt Linkgenerierung aus der Info-Box-Vorlage wäre das natürlich ein Paradebeispiel eines Anwendungsfalls der Extension:External Data, was ich in dem zuvor verlinkten Disk-Abschnitt ergänzt habe. PPS: Die Vorlage:Infobox Chemikalie ist hier übrigens 10.059 mal verlinkt, also eine recht überschaubare Sache. Braucht man für so einen einmaligen Durchlauf eigentlich ein Bot-Flag? -- Uwe Martens (Diskussion) 21:22, 3. Mai 2021 (CEST)
IMHO sollte es ein dynamischer Abgleich mit Wikidata sein, da durchaus später für zusätzliche CAS-Nummern ein Eintrag in der Datenbank erstellt werden könnte. So würde auch ein Botlauf entfallen. --Leyo 00:04, 4. Mai 2021 (CEST)
 Info: Kann ich nur befürworten, allerdings wird es für die dynamische Einbindung zwingend der Extension:External Data benötigen. Übrigens verfügt auch Common Chemistry über eine API (offenbar seit März diesen Jahres, leider ohne jegliche Doku), deren einzelnen Parameter mit der Extension:External Data sehr leicht geprüft werden könnten. Ein funktionierender API-Call sieht dann z.B. so aus, eine Abfrage eines nicht vorhandenen Eintrags ergibt "Detail not found". Mit vorgenanntem true-false-Workaround bzw. einer einfachen if-Konstruktion könnte man das also auch lösen, ohne irgendwas aus dem API-Call zu extrahieren. Wäre nur die Frage, mit welchem alternativen Tool/Modul man die Abfrage überhaupt machen kann, wenn nicht mit der Extension:External Data. -- Uwe Martens (Diskussion) 05:07, 4. Mai 2021 (CEST)
 Info: Der vorstehende Beitrag zielt lediglich darauf ab, auf irgendeine Weise Scheinbegründungen für die heißgeliebte Dulcinea-Extension zu konstruieren.
  • Es wird aus Lizenzgründen niemals nie nicht dazu kommen, dass mittels dieser Extension in irgendeine Seite eines Wiki der WMF irgendeine Information automatisch einfließt, die aus commonchemistry.cas.org oder sonst einem Nicht-WMF-CC-Wiki stammen würde.
  • Die gesamte Beteiligung an diesem Abschnitt bezweckt nur, diese Extension als angeblich notwendig zu verkaufen, nicht aber die tatsächliche Lösung der in diesem Abschnitt dargestellten Problematik.
  • Siehe oben und Special:Diff/211569514.
VG --PerfektesChaos 08:14, 4. Mai 2021 (CEST)
Scheinbar ist es dem vorstehenden Nutzer, der sich hier als Wächter der Technikwerkstatt gebiert und dem aber offenbar selber an einer Lösung der hiesigen Problematik nicht im Mindesten gelegen ist, entgangen, dass hier gerade nicht eine externe Einbindung erfolgen soll, sondern lediglich ein Abgleich. Der Verweis auf eine Lizenzproblematik schlägt also fehl. Die Notification in dem anderen Thread wurde übrigens weiter oben bereits verlinkt. --212.95.5.191 10:26, 4. Mai 2021 (CEST)
Für einen dynamischen und damit dauerhaften Abgleich ist übrigens zu bedenken, daß mit jedem Seitenaufruf hierzupedia ein API-Call bei CAS erfolgen würde. Das könnten tausende API-Calls am Tag ergeben. Das müßte man mit denen erst mal abklären, denn wenn da zu viele Requests kommen, können sie einfach die Wikimedia-IPs blocken und das war's dann mit dem dynamischen Abgleich. Für die CAS-Verlinkungen tendiere ich daher eher zu einem Botlauf für eine substituierte Verlinkung, den man ja ggf. periodisch wiederholen kann. Bei Anlage neuer Artikel kann der CAS-Eintrag ja händisch geprüft werden. So ein einfacher Bot ist in ca. einer Stunde fertig aufgesetzt, mit den braven 5 Edits pro Minute würde der dann 1½ Tage laufen und die ganze Sache wäre erledigt. Frühestens am Wochenende könnte ich das testweise aufsetzen. Nichtsdestotrotz diskutiere ich die möglichen Anwendungsgebiete und ggf. die Bedingungen zur Aktivierung der "heißgeliebten niemals nicht" Extension:External Data weiterhin hier. 🤣🤣🤣 -- Uwe Martens (Diskussion) 08:02, 5. Mai 2021 (CEST)
@Uwe Martens: Mir ist nicht klar, was Du mit „einem Botlauf für eine substituierte Verlinkung“ meinst bzw. wo der Bot welche Erkenntnisse hinschreiben soll. Über die Art und Weise, wie die Verlinkung der CAS-Nummern in den Chemoboxen technisch umgesetzt werden soll, herrscht nämlich durchaus keine Einigkeit. Diskussion dazu unter Benutzer_Diskussion:Cactus26#Botaufgabe_für_CAS-Nummern und auf Leyos BD.--Mabschaaf 19:42, 5. Mai 2021 (CEST)
Servus und danke für den Hinweis! Ich habe da mal eine Nachricht hinterlassen. Die Vorlage:CASRN kannte ich nicht, ich dachte, da soll ein klassischer Weblink eingefügt werden, macht programmiertechnisch aber keinen Unterschied. Bez. dynamisch/substituiert siehe bitte zwei Absätze von mir drüber. Dynamisch erfolgt mittels der Infobox-Vorlage bei jedem Wikiseitenaufruf ein Abgleich mit der CAS-Datenbank (wenn hierfür die nötige Extension zum Abruf externer Daten wie oben dargelegt aktiviert würde), was Traffic zu CAS generiert - dafür müßte aber nur ein einziges Mal die Vorlage aktualisiert werden. Substituiert bedeutet dauerhaft im Quelltext als Weblink (oder auch über die Vorlage:CASRN) geparst - dafür müßten allerdings alle 10059 Wikiseiten, die die Infobox verwenden, einzeln mit einem Bot aktualisiert werden. Ich hätte das interessehalber gerne gemacht, da ich schon andere Bots (Tradingbots etc.) programmiert habe und da schon einiges an passendem Framework habe. Aber ich gehe doch davon aus, daß sich die Diskutanten auf der BD von Cactus26 schon einig werden und Cactus26 das übernimmt? Grüße, Uwe Martens (Diskussion) 23:49, 5. Mai 2021 (CEST)
@IP: Ich gehe davon aus, dass PerfektesChaos durchaus an „einer Lösung der hiesigen Problematik“ gelegen ist, aber er halt gegenwärtig keine kennt oder keine Zeit hat. --Leyo 21:20, 5. Mai 2021 (CEST)
Nehmen wir den oben erwähnten Beispielartikel: In der Infobox ist die CAS-Nr. 5471-63-6 angegeben. Im WD-Item ist bei dieser CAS-Nr. Common Chemistry als Fundstelle angegeben (wie bei diesen tausend anderen). Daher soll die CAS-Nr. in der Infobox mit https://commonchemistry.cas.org/detail?cas_rn=5471-63-6 verlinkt werden.
Gegenbeispiel: Die CAS-Nr. 1421927-52-7 ist in der CAS Common Chemistry Database nicht enthalten, so dass kein Link eingefügt werden soll. Entsprechend fehlt im WD-Item Common Chemistry als Fundstelle. --Leyo 13:14, 3. Mai 2021 (CEST)

 Info: In der en-WP, wo zuvor alle CAS-Nummer in der Chembox und der Drugbox verlinkt waren – also unabhängig davon, ob bei Common Chemistry ein Eintrag existiert – habe ich nun zumindest die Links auf CAS-Nr., die im WD-Item keine belegte CAS-Nr. haben, weggekriegt (Chembox, Drugbox). Leider kann nicht unterschieden werden, ob der Beleg von Common Chemistry ist (1,3-Diphenylisobenzofuran (Q42750891)) oder nicht (4,5-Dichlor-1,2,3-dithiazol-1-iumchlorid (Q27251702)). --Leyo 00:07, 6. Mai 2021 (CEST)

Ich hatte oben ja vorgeschlagen, das direkt auf CAS über deren API zu prüfen. -- Uwe Martens (Diskussion) 00:17, 6. Mai 2021 (CEST)
Wird nicht passieren. —MisterSynergy (Diskussion) 00:28, 6. Mai 2021 (CEST)
Ähm, sollte ich den Bot aufsetzen (s.o.), dann wird das mit Sicherheit passieren! Leyos Einbringen, keine 404-Links zu setzen, halte ich nämlich für sinnvoll - auch, wenn man dann die CAS-Datenbank vielleicht halbjährlich nochmal abgleicht. Hierfür würde mein Bot dann nämlich gleich eine Liste mit nicht vorhandenen CAS-Einträgen anlegen, so daß es im Bedarfsfalle nur weniger Edits braucht, die man sogar dann händisch vornehmen könnte. Es könnte mir bei der Beantragung eines Botflags noch nicht mal irgendjemand ins Zeug pfuschen, wenn mein Bot diverse Bearbeitungen nicht vornimmt, nämlich Links auf 404-Seiten setzen. Und daß es weniger sinnvoll ist, das via Vorlage dynamisch/dauerhaft mit jedem Wikiseitenaufruf abzugleichen, habe ich ja nun dargelegt. -- Uwe Martens (Diskussion) 04:57, 6. Mai 2021 (CEST)
Das war keine dumme Frage. Ja, die Items sind aktuell (wenige Wochen alt). Wie da nachzulesen ist, hat Egon Willighagen vom Chemical Abstracts Service (CAS) ein Spreadsheet mit allen Einträgen erhalten und hat diese bei Wikidata eingepflegt. Er steht in Kontakt mit CAS und wird künfige Änderungen (die nicht so oft geschehen werden) nachführen.
Aus diesem Grund sollten die Informationen bei Wikidata genutzt werden, statt in allen Wikipedia-Sprachversionen redundate Arbeiten durchzuführen. --Leyo 09:14, 6. Mai 2021 (CEST)
Danke für den Hinweis! Allerdings frage ich mich dann, wieso u.a. der von Dir selbst monierte WD-Eintrag 4,5-Dichlor-1,2,3-dithiazol-1-iumchlorid (Q27251702) einen 404-CAS-Link bereitstellt und Du das als Problem darstellst. Sollte WD also in absehbarer Zeit eine verlässliche Quelle über das Vorhandensein der CAS-Einträge werden, dann könnte man das Ganze natürlich dynamisch/via Vorlage einbinden. Dann wäre allerdings auch die Bot-Anfrage bei Cactus26 obsolet. -- Uwe Martens (Diskussion) 09:37, 6. Mai 2021 (CEST)
Bei Wikidata werden automatisch alle CAS-Nr. verlinkt, wie dies auch bei anderen Identifikatoren der Fall ist. Hier geht es darum, ob bei der CAS-Nr. eines Items Commons Chemistry als Fundstelle angegeben ist.
Bei einer Minderheit der Artikel mit Chemobox gibt es mehrere CAS-Nr., weshalb dort eine Prüfung via Fundstelle im zugehörigen WD-Item nicht geht. --Leyo 14:56, 6. Mai 2021 (CEST)
Es gibt dort auf WD einen Link auf den CAS-Eintrag, der aber mitunter ins Leere zielt. Ich dachte, das sei Dein Wunsch gewesen, daß eben keine Links auf nicht existierende CAS-Seiten generiert werden, eingangs schriebst Du: "Anhand dieser Prüfung soll entschieden werden können, ob CAS-Nummern auf ihren Eintrag in der CAS Common Chemistry Database verlinkt werden (falls in der Datenbank ein Eintrag zur betreffenden CAS-Nummer vorliegt) oder nicht" und hast auf die Einfügung eines solchen Weblinks referenziert. Wenn kein CAS-Eintrag vorhanden ist (bzw. der Weblink ins Leere zielt), dann ist folglich auch keine CAS Fundstelle angegeben. Also ich bitte dann, jetzt nochmal klarzustellen, was genau das Problem ist und wie es am besten gelöst werden soll. Derzeit blicke ich nicht mehr durch, sorry! -- Uwe Martens (Diskussion) 15:17, 6. Mai 2021 (CEST)
d:Special:Diff/1399203270 --Leyo 15:30, 6. Mai 2021 (CEST)
Ich weiß nicht, was Du mir mit dem Link sagen willst, den ich ja gerade zuvor selber gepostet habe. Wenn ein Abgleich über die WD-Items wegen möglicher Mehrfach-Einträge nicht möglich sein soll (was technisch aber evtl. doch möglich wäre, sofern das oben genannte Lua-Modul oder hilfsweise die Extension:External Data überhaupt aktiviert wären), dann wäre ja wohl ein CAS-API-Call zum Abgleich im Botlauf nun die adäquate Lösung. Wenn neben dem Link in der Infobox noch weitere Weblinks im Artikel zu generieren wären, wie auf der BD von Cactus26 dargetan, so wäre das auch kein großer Mehraufwand. Alternativ könnte man auf WD leergehende Links löschen, aber wenn es eh Probleme geben soll mit Mehrfach-Einträgen, wird es wohl bei dem lokalen Botlauf auf DE:WP bleiben. -- Uwe Martens (Diskussion) 15:39, 6. Mai 2021 (CEST)
Diese Diskussion ist aufgrund der Nebendiskussionen unübersichtlich geworden. Es geht mir hier um die Artikel mit nur einer CAS-Nummer. Wenn im zugehörigen WD-Item bei der CAS-Nummer als Fundstelle die CAS Common Chemistry (Q18907859) angegeben ist, dann soll der Link erzeugt werden, sonst nicht. So kompliziert ist dies nun auch wieder nicht. --Leyo 15:46, 6. Mai 2021 (CEST)
Ja, und wenn so eine Fundstelle angegeben ist, dann zielt auch der Link auf den CAS-Eintrag nicht ins Leere (bzw. zielt der Link ins Leere, wenn keine CAS-Fundstelle angegeben ist). Also wäre der Botlauf mit CAS-API-Call die Lösung (wenn denn ein Abgleich über die WD-Items nicht möglich sein soll, wie Du sagst). Sind wir jetzt dann zu einem Punkt gekommen, an den man einen Lösungsweg konkret diskutieren kann? Wenn ja, dann setze ich dieser Tage einen Bot auf und lasse die 50 obligatorischen Testedits durchlaufen, sofern sich bei Cactus26 nichts tut. -- Uwe Martens (Diskussion) 16:14, 6. Mai 2021 (CEST)

Ist ja kaum auszuhalten hier, da schreib ich lieber mit meinen äußerst rudimentären Lua-Kenntnissen den passenden Code, und sei es erstmal nur zur Demonstration: Modul:Benutzer:MisterSynergy/test; die einzige Funktion des Moduls gibt 1 zurück wenn ein Link generiert werden soll, oder  (leerer String) wenn kein Link generiert werden soll. Den Link müsste die Infobox also selbst zusammenbauen, etwa in der Art: {{#if: {{#invoke:Benutzer:MisterSynergy/test|is_cas_linkable|cas={{{CAS|}}}}} | [https://commonchemistry.cas.org/detail?cas_rn={{{CAS|}}} {{{CAS|}}}] | {{{CAS|}}} }} anstelle von {{{CAS}}} in der Zeile 63 des Infobox-Codes. Via Special:ExpandTemplates kann man das auch erstmal testen.
Jetzt bin ich allerdings nicht besonders gewillt, das fertig für den Produktiveinsatz zu machen, oder auf immer und ewig die Wartungsverantwortlichkeit für das Modul zu übernehmen, wie es hier gelegentlich für neuen Code gefordert wird. —MisterSynergy (Diskussion) 16:23, 6. Mai 2021 (CEST)

@MisterSynergy: Herzlichen Dank! Das sieht schon mal super aus. Ich habe ein paar Testeinfügungen im Quelltext von Artikeln gemacht (nur Vorschau). Vor einem Einbau in die Chemobox müssen mindestens noch folgende Fälle berücksichtigt werden:
  • Verhalten bei CAS-Nr. im Artikel ≠ CAS-Nr. im Item
  • Umgang mit Artikeln, die nicht nur 1 nackte CAS-Nr. im Parameter enthalten
Dazu brauche ich noch etwas Zeit und beim zweiten Punkt ggf. die Hilfe der Vorlagenwerkstatt.
Weiter möchte ich die Möglichkeit zur Verwendung des Moduls in der Vorlage:Substanzinfo prüfen. --Leyo 16:51, 6. Mai 2021 (CEST)
@MisterSynergy: Tja, wäre nur die Frage, ob das die Problematik mit den Mehrfacheinträgen (unklar, ob in einigen Artikeln und/oder auf einigen WD-Einträgen) behebt. Kann ich nicht nachprüfen, da ich schon keine entsprechenden Mehrfach-Einträge kenne. Wenngleich Leyo einen Abgleich über WD gewünscht hatte, so waren die Mehrfach-Einträge bzw. die angenommene Problematik des Abgleichs derselben ein Ausschlußkriterium für diesen Abgleich. Aber da Du hier in einer Überheblichkeit meinst, eh alles selber lösen zu können, klinke ich mich gerne wieder aus, ich habe genug zu tun, Cactus26 wird da auch nicht anderer Meinung sein! In den vier Stunden, in denen Du Dein Lua-Modul da geschustert hast, hätte ich den Bot jedenfalls drei Mal aufgesetzt, und der hätte auch Mehrfach-Einträge in Artikeln geprüft und verlinkt, und das nicht nur in der Infobox. Aber egal. Ich wünsche jedenfalls schon mal viel Spaß beim händischen Einpflegen des Lua-Moduls oder einer entsprechend aktualisierten CAS-Vorlage für alle Nennungen der CAS-Nummern in 10059 Artikeln (Referenzen, Fließtext etc.)! Also ich bin hier raus. -- Uwe Martens (Diskussion) 17:01, 6. Mai 2021 (CEST)
Ich habe Mehrfacheinträge berücksichtigt. Das kann man mehrfach mit verschiedenen CAS-Nummer aufrufen, und mehrere (oder keine) CAS-Nummern im Wikidata-Objekt sind auch kein Problem. —MisterSynergy (Diskussion) 17:15, 6. Mai 2021 (CEST)
Das ist gut, allerdings kann ich es nicht testen, da ich keine exemplarischen Artikel kenne. Wenn, dann wäre Dein Lua-Modul eh in die CAS-Vorlage einzuarbeiten, wie ich oben (bzw. Mabschaaf unten) schrieb. Die Einfügung der CAS-Vorlage an sich (in die Infoboxen oder wohin im Artikel auch immer) bliebe aber immer noch ein Bot-Auftrag, egal, ob der Bot jetzt die Existenz der CAS-Einträge prüfen muß oder nicht. Mein Bot hätte die CAS-Vorlage eben nur eingepflegt, wenn der CAS-API-Call ein Ergebnis liefert, mit einer direkten WD-Abfrage hätte der Bot die aktualisierte CAS-Vorlage ausnahmslos in alle Artikel einzupflegen. Aber das möchte dann doch bitte Cactus26 machen, das war sein ursprünglicher Auftrag. Letztlich wollte ich aber nur mal darauf hinweisen, daß natürlich eine tausendfache Einbindung einer dynamischen/dauerhaften Abfrage der WD-Einträge (und das nur zur Generierung oder Nichtgenerierung eines Weblinks) sowohl traffic- als auch performancemäßig eine erhöhte Serverlast auf den Wikimedia-Servern erzeugt. Eine permanente Einbindung der (unveränderten) CAS-Vorlage für Einträge mit vorhandenem CAS-Eintrag wäre aus meiner Sicht so oder so die bessere Lösung. Zumindest, wenn man die Wahl hat. -- Uwe Martens (Diskussion) 17:55, 6. Mai 2021 (CEST)
Serverlast auf Wikimedia-Servern ist seit 10 Jahren oder so kein echtes Thema mehr. Abgesehen davon wird nicht bei jedem Artikelaufruf durch einen Leser eine Abfrage durchgeführt, sondern es wird beim Speichern einer neuen Version das Ergebnis gecacht und danach werden die Leser aus dem Cache bedient; wenn zwischenzeitlich bei Wikidata was verändet wird, dann wird der Cache ebenfalls erneuert. —MisterSynergy (Diskussion) 19:44, 6. Mai 2021 (CEST)
Vorlagen werden mit Sicherheit nicht gecached, aktualisiere ich eine Vorlage, werden alle Einbindungen augenblicklich aktualisiert, und wenn es hunderttausende Einbindungen sind. So schnell könnte kein Servercache der Welt aktualisiert werden. Außerdem würde es der Cache der DE:WP überhaupt nicht mitkriegen, wenn auf Wikidata etwas verändert wird, jedenfalls gibt es da keine Logik oder Überwachungsprozeß, der projektweite Einbindungen überwacht. Am Besten sieht man das schon auf der Archivseite der VM, wo man ständig manuell den Servercache aktualisieren muß, um die Rotlinks wegzukriegen. -- Uwe Martens (Diskussion) 03:43, 7. Mai 2021 (CEST)
Das ganze ist recht flexibel und sicher noch anpassbar – erstmal ist das bloß eine Demo, damit Du überhaupt mal ausprobieren kannst.
Das Modul benötigt als Input eine lokale CAS-Nummer (zum Beispiel aus einem Vorlagenparameter) und sagt für diese CAS-Nummer dann, ob ein Link erzeugt werden kann. Dazu muss diese CAS-Nummer im Wikidata-Objekt in CAS-Nummer (P231) mit nicht-missbilligtem Rang vorzufinden sein und eine Fundstelle wie oben gewünscht haben.
Da die Rückgabe boolsch ist, kannst Du das praktisch überall einsetzen wo Du eine einzelne CAS-Nummer als Input zur Verfügung stellen kannst. —MisterSynergy (Diskussion) 17:08, 6. Mai 2021 (CEST)
(BK)Ich hatte auf der BD von Cactus26 für Änderungen an der Infobox schon mal mein Veto eingelegt und bitte darum, dass dieses vor irgendwelchen Änderungen in der Chemobox berücksichtigt wird.
Mein Weg wäre schlicht der, dass die hier gefundene Prüfung auf den vorhandenen Common-Chemistry-Eintrag einzig und alleine in die Vorlage:CASRN eingebaut wird und gleichzeitig alle CAS-Nummern, die irgendwo in der deWP stehen (Box, Fließtext, Tabelle, wherever), per Botauftrag in diese Vorlage eingeschlossen werden.
Würde man den Codeschnipsel dagegen in die Infoboxen einbauen, wären alleine was im weiteren Sinne Chemie-Artikel betrifft 10 unterschiedliche Infobox-Vorlagen betroffen und selbst dann ergäbe sich für die absolut zulässigen Mehrfach-Einträge im Parameter CAS (wie bei Rhamnose) keine Lösung.--Mabschaaf 17:14, 6. Mai 2021 (CEST)
Ja, das hört sich nach einer sinnvollen Strategie an. —MisterSynergy (Diskussion) 17:18, 6. Mai 2021 (CEST)
@MisterSynergy Das i-Tüpfelchen wäre dann noch: Lässt sich Dein Code so erweitern, dass zunächst das passende WD-Item zur CAS-Nummer gesucht wird und dann in diesem Item geprüft wird, ob ein Common-Chemistry-Link sinnvoll ist? Damit wäre nämlich völlig egal, auf welcher WP-Seite die CAS-Nummer steht (und damit, welche CAS-Nummer dieser Seite auf WD zugeordnet ist).--Mabschaaf 17:23, 6. Mai 2021 (CEST)
Das ist meines Wissens nicht möglich. Eine solche Rückwärtssuche ist zwar mit SPARQL oder Cirrus/Wikidata-Mediawiki-API einfach möglich, aber da kommen wir mit Lua nicht dran.
Was man machen könnte, wäre ein Abgleich mit einem beliebigen Objekt, nicht bloß mit dem verbundenen Objekt. Dazu müsstest Du aber die Q-ID schon wissen und explizit mit angeben.
Was wäre denn überhaupt das Einsatzszenario für eine beliebige Platzierung? Es gibt ja überlicherweise einen gewissen Kontext, in dem die CAS angezeigt wird. —MisterSynergy (Diskussion) 19:05, 6. Mai 2021 (CEST)
Wenn die CAS-Nr. innerhalb der Vorlage:Infobox Chemikalie in die Vorlage:CASRN eingefügt wird, weiss letztere nicht, dass sie sich im Artikel zu dieser CAS-Nummer befindet (also nicht in einem Stoffgruppen-Artikel oder so) und das zugeordnete Item also zu dieser CAS-Nr. gehört. Das ist anders, wenn der Parameter direkt durch die Infobox übergeben wird. Aus diesem Grund ist für mich der Einsatz der Vorlage:CASRN innerhalb der Infobox höchstens eine Notlösung für die ca. 20 % der Artikel mit mehreren CAS-Nummern. --Leyo 19:33, 6. Mai 2021 (CEST)
@Leyo: Das ist schlicht falsch. Du kannst ja mal {{#invoke:Wikidata|pageId}} in die Vorlage:CASRN einfügen und dir dann die Vorschau eines Artikels anzeigen lassen, bei dem schon jetzt die Vorlage verwendet wird (wie z.B. Bullvalen). Du wirst die zugeordnete Q-Nummer erhalten.--Mabschaaf 20:38, 6. Mai 2021 (CEST)
Ich meine nicht das! Beim Parameter CAS in der Infobox Chemikalie ist die CAS-Nr. diejenige, die zum WD-Item gehört (sofern da keine Fehlzuordnung besteht). Als Parameter in der Vorlage:CASRN (die auch z.B. in Stoffgruppen-Artikeln eingesetzt wird) weiss diese Vorlage nicht, ob sie sich im Artikel befindet, der zu dieser CAS-Nr. gehört und entsprechend, ob das verknüpfte WD-Item zu dieser CAS-Nr. gehört. --Leyo 20:57, 6. Mai 2021 (CEST)
Um das hier der Vollständigkeit halber nachzutragen: Ich kann Deinen Ausführungen nicht folgen. Die Vorlage:CASRN verfügt über keinerlei Logik, es wird lediglich ein Weblink aus dem eingebundenen Parameter erzeugt. Ob Du das neuerliche LUA-Modul, was ja nur eine true/false Logik ergänzt, direkt in die Infobox-Vorlage einpflegst oder eben nur in die Vorlage:CASRN (und diese dann in die Infobox-Vorlage) spielt logikmäßig überhaupt keine Rolle. Da kommt es allein auf die Zuverlässigkeit der Einträge in der Infobox an. Und die Einbindung (der um das LUA-Modul ergänzten) Vorlage:CASRN in die jeweiligen Infoboxen der Artikel erfolgt ja hoffentlich mit einem zuverlässigen Bot (wenn man das nicht irgendwie in die jeweiligen Infobox-Vorlagen selber einarbeiten kann). Wenn denn überhaupt die sonstige Problematik mit Mehrfacheinträgen in Artikeln und/oder WD-Einträgen mit dem neuerlichen LUA-Modul tatsächlich behoben werden kann (ich habe es noch nicht zustande gebracht das zu testen). Siehe dazu ansonsten meine sonstigen Bedenken oben (17:55, 6. Mai 2021). -- Uwe Martens (Diskussion) 04:22, 7. Mai 2021 (CEST)
Ich versuche es noch mal für dich: Wenn eine Vorlage, die in diversen Typen von Artikeln eingesetzt wird/werden soll, innerhalb der Infobox eingesetzt wird, weiss diese nicht, ob der Parameterwert (CAS-Nr.) CAS-Nummer (P231) im den betreffenden Artikel zugeordneten WD-Item entsprechen sollte (weil es die CAS-Nr. des artikelgegenständlichen Stoffs ist) oder nicht (wenn es ein Stoffgruppen-Artikel mit CAS-Nr. zu mehreren Stoffen ist → Beispiel). Es geht hier nicht nur um die Frage Link auf Common Chemistry, ja oder nein, sondern z.B. auch Wartungskategorien usw. --Leyo 10:57, 7. Mai 2021 (CEST)
Da ich im Bereich Chemie kaum tätig bin, kann ich das nicht ganz nachvollziehen. Wenn da eine CAS-Nummer steht und ein Webeintrag auf den Seiten von CAS besteht (bzw. die CAS-Nummer auf dem WD-Eintrag als Fundstelle angegeben ist), soll ein Link erzeugt werden, anderenfalls nicht. Das ist die einfache Logik des zur Debatte stehenden Lua-Moduls (bzw. wäre das die Logik meines Bots, wenn er mit einem CAS-API-Call auf Existenz eines CAS-Webeintrages prüfen würde). Wenn Du eine darüber hinausgehende Logik benötigst, z.B. bedingter oder unbedingter Ausschluß oder Einschluß von gewissen CAS-Nummern (z.B. eben Stoffgruppen-CAS-Nummern), dann mußt Du den Programmierern eine genaue Anweisung geben, wie diese Logik auszusehen hat. Ein CAS-API-Call z.B. könnte einen etwaig bestehenden Stoffgruppen-Eintrag auf Stichworte prüfen und dann ggf. die Linkbildung ausschließen. Wie in das neuerliche Lua-Modul eine solche weitere Logik implementiert werden könnte und ob das nur an Hand des zu prüfenden WD-Eintrages geht oder ob sich so eine Logik durch das Einbinden des Lua-Moduls nur in die Infobox (oder deren Vorlage) bzw. eben nicht in die Vorlage:CASRN ergibt, weiß ich nicht. Ich kann nur sagen, daß diese Infobox-Vorlagen ziemlich komplex sind und daß ich da so meine Zweifel habe, ob man da in den Vorlagen selber noch groß weitere Vorlagen/Module implementieren kann (das müßte man im Einzelnen prüfen). Ich hatte ja dazu tendiert, die Vorlage:CASRN in die Infoboxen der jeweiligen Artikel per Botlauf einzufügen. Ob dabei die Vorlage:CASRN nun um das neuerliche Lua-Modul erweitert wird oder ein externer Bot abhängig von einem CAS-API-Call selektive Edits vornimmt (womit man das Lua-Modul nicht bräuchte), ist dann eine andere Frage. -- Uwe Martens (Diskussion) 12:05, 7. Mai 2021 (CEST)

@MisterSynergy: Wenn ich es richtig verstehe, nimmt dein Modul immer das WD-Item des Artikels, aus welchem es abgerufen wird. Wäre es für dich ein grosser Aufwand, als optionalen Parameter die Angabe eines WD-Items einzubauen? So könnte das Modul in der Vorlage:Substanzinfo verwendet werden. Dort angegebene CAS-Nr. sind nicht diejenigen des Artikels, in dem sie eingebunden sind, sondern dem mit Wikidata angegebenen WD-Item zugeordnet. --Leyo 23:36, 7. Mai 2021 (CEST) PS. Würde dein Modul eigentlich auch in anderen WP-Sprachversionen funktionieren?

Nein, das wäre kein großer Aufwand. Ich könnte es so erweitern, dass beim Modulaufruf optional eine Q-ID angegeben wird, die dann anstelle des verbundenen Wikidata-Objektes genutzt wird.
Das Modul hat keine Abhängigkeiten von anderen lokalen Modulen. Soweit ich das verstehe, ist die Lua-Umgebung an allen anderen Wikimedia-Wikis hinreichend ähnlich, so dass das dort auch funktionieren sollte. Es macht auch nichts besonderes, sondern implementiert im Wesentlichen die von Dir eingangs angefragte Logik. —MisterSynergy (Diskussion) 23:57, 7. Mai 2021 (CEST)
Danke für die prompte Antwort! Die Verwendung des Moduls wäre auch für andere WP-Sprachversionen. In einigen werden gegenwärtig alle CAS-Nummern in Chemoboxen mit Common Chemistry verlinkt, bei anderen noch überhaupt keine. In der en-WP habe ich auf rudimentäre Weise zumindest einen Teil der toten Links eliminieren können (siehe Beitrag von 00:07, 6. Mai 2021). Allenfalls würde sich ein Produktivtest in der lb-WP mit ihren nur 24 Artikeln mit Chemobox anbieten. --Leyo 00:22, 8. Mai 2021 (CEST)
Das würde implizieren, dass man Vorlage:CASRN optional auch eine Q-ID mitgeben können müsste, also etwa {{CASRN|74-82-8|Q37129}}. Im Modul müsste dann geprüft werden, ob beide zueinander passen (also die genannte CAS wirklich im Item steht) und falls ja, ob es auf WD den Link zu Common Chemistry gibt. Dann würde die verlinkte CAS zurückgegeben.
Fehlt dagegen die Angabe einer Item-ID ({{CASRN|74-82-8}}), wird das dem Artikel zugeordnete Item geprüft (CAS passt? Link vorhanden?).
Wäre mM für den Botbetreiber, der die nackten CAS-Nummern durch die Vorlage ersetzten soll, ein erheblicher Mehraufwand, weil jeweils auch noch die Q-IDs dazu gefunden werden müssen. Für einen menschlichen Bearbeiter, der bspw. in einer Tabelle alle CAS-Nummern via Vorlage verlinken will, ist das praktisch nicht machbar. :-/ --Mabschaaf 08:55, 8. Mai 2021 (CEST)
Für einen Bot wäre das nicht übermäßig aufwändig. Du kannst mit einem Abruf über SPARQL eine komplette Mappingtabelle bekommen und machst dann beim Ändern schnell einen Lookup, ob die CAS mit einem Wikidata-Objekt da drin steht. Programmiertechnisch halte ich den Mehraufwand für überschaubar. Allerdings müsste man das regelmäßig laufen lassen, um eventuelle Änderungen nachzuziehen oder vergessene Vorlageneinbindungen nachzutragen. —MisterSynergy (Diskussion) 09:27, 8. Mai 2021 (CEST)
Ich denke, einem Bot kann man relativ einfach beibringen, die Infobox-Einträge zu ersetzen, aber alles was Tabellen oder gar Fließtext ist, dürfte ungleich schwerer werden. Dort müssen die CAS-Nummern ja erst mal sicher identifiziert werden, wofür es entweder Zeilen/Spaltenbeschriftungen oder den Kontext braucht...--Mabschaaf 09:30, 8. Mai 2021 (CEST)
Ja, richtig. Wie häufig sind diese Fälle? In Tabellen könnte man eventuell was machen, vom Fließtext würde ich eher die Finger lassen mit jeder Art von Automatisierung. —MisterSynergy (Diskussion) 09:35, 8. Mai 2021 (CEST)
Ich verstehe immer noch nicht den Sinn dieses ganzen Heckmecks! Es ist doch vollkommen egal bzw. unschädlich, ob bzw. wenn z.B. bei einer Stoffgruppen-CAS-Nummer nun ein Weblink erzeugt wird, oder nicht. Mit einem CAS-API-Call kann das per Bot geprüft werden und dann an jeder x-beliebigen Stelle im Artikel mit der bestehenden CAS-Vorlage verlinkt werden. Auch das muß man dann halt mal halbjährlich durchlaufen lassen für die Artikel, in denen keine CAS-Webeinträge gefunden wurden. Ohne dauerhaft mit abertausenden Artikeln Millionen von Modul-Aktivierungen und WD-Abfragen im Monat zu generieren. Stichpunkt Performance und Serverlast, s.o. (03:43, 7. Mai 2021, und bitte keine weiteren Diskussionen um den Server-Cache). Und da hier noch Probleme bez. des Fließtextes angesprochen wurden: Bei einem Botlauf wird die CAS-Nummer eh aus der Infobox extrahiert. Diese kann man dann im weiteren Quelltext suchen und ggf. verlinken. In diesem Zusammenhang wollte ich aber auch auf die Maßgabe für Weblinks und Einzelnachweise hinweisen, insofern es unzulässig ist, Weblinks im Fließtext einzuarbeiten. Hier wäre, wenn, dann ein Ref-Tag zu setzen. Auch das könnte ein Bot sehr einfach erledigen. Siehe dazu exemplarisch den Abschnitt Weblinks in Tabellenspalten im Orgelportal. -- Uwe Martens (Diskussion) 09:52, 8. Mai 2021 (CEST)
@Uwe Martens: Entschuldige, aber ich finde es schon erstaunlich, mit welcher Entschiedenheit Du hier Statements ablieferst, die aber gleichzeitig erkennen lassen, dass Du die tatsächlichen Gegebenheiten nicht kennst:
Die Entscheidung, Links zu setzen ist durch Diskussion in der Redaktion Chemie längst gefallen, es geht hier nur um die beste technische Lösung, damit 404 liefernde Links eben nicht angeboten werden.--Mabschaaf 20:32, 8. Mai 2021 (CEST)
Ja mir soll's recht sein! Woher soll ich wissen, welche Sonderregelungen sich der Fachbereich Chemie ausgenommen hat? Bisher stand lediglich zur Debatte, die insg. 10059 Artikel, welche die Vorlage:CASRN verwenden, auf Verlinkbarkeit zu prüfen. Dabei bin ich eigentlich davon ausgegangen, daß all diese Artikel über Infoboxen verfügen würden, in welchen diese CAS-Nummern ebenfalls verzeichnet sind (ob mit oder ohne Vorlage:CASRN). Wie ich oben (12:05, 7. Mai 2021) bereits sagte: Ihr müßt den Programmierern genaue Anweisungen geben, was gemacht werden soll. Wenn die Anweisung auch lautet, "verlinke direkt alle vorhandenen CAS-Einträge in Tabellen", dann ist das eine zusätzliche Arbeit, die erst mal als solche definiert werden muß. Wenn darunter auch Artikel sind, welche die Vorlage:CASRN gar nicht verwenden, dann muß alternativ bitte eine Kategorie angegeben werden, unter welcher sämtliche Artikel per Botlauf zu prüfen und ggf. zu überarbeiten sind. Wenn es für den Bot im Quelltext keine sonstigen eindeutigen Erkennungsmerkmale für eine CAS-Nummer gibt, dann wäre die genaue Logik anzugeben, an Hand derer diese Nummern zu finden sind. Ich nehme mal schwer an, es ist das Suchschema "1234-56-7" sowie "12345-67-8" mit beliebigen Zahlenfolgen. Ansonsten ist bitte das genaue Suchschema zu definieren. Unter welchen Bedingungen alternativ ein Ref-Link mittels Vorlage:Substanzinfo zu setzen wäre, ist bitte auch genau zu definieren! Da es sich dann um abertausende Verlinkungen handeln wird mit ungleich mehr Artikeln, als nur die, in denen die Vorlage:CASRN bereits eingebunden ist, rate ich dringenst davon ab, hier jedesmal dynamisch bei jedem Wikiseitenaufruf einen Abgleich mit den WD-Einträgen vorzunehmen! Die massive Beanspruchung der Serverkapazitäten an der restlichen Community vorbei, nur um irgendwelche (dann auch nur möglicherweise) aktuellen Weblinks zu erhalten, ist aus meiner Sicht ein absolutes No go! Gleiches gilt übrigens (unabhängig der Serverbelastung durch Aktivierung des Lua-Moduls) für die Inanspruchnahme eines etwaigen Server-Caches für Wikidata, zumal sich die Wikimedia hier externer Dienstleister bedient (ja, auch Cache-Server können überlastet bzw. unnötig beansprucht werden). Also bitte eine Zusammenfassung aller genauen Botaufgaben, dann setze ich dieser Tage gerne einen Bot auf, der die zu setzenden Weblinks (bzw. bereits mittels Vorlage:CASRN bestehende Weblinks) per CAS-API-Call (s. Beispiel) prüft und ggf. setzt oder ggf. bestehende entfernt (und dies bitte unabhängig davon, ob es ein Stoffgruppen-CAS-Eintrag oder was auch immer für einer ist). Wenn Cactus26 das übernehmen möchte, dann bitte hier bescheid geben! -- Uwe Martens (Diskussion) 01:24, 9. Mai 2021 (CEST)
@Uwe: Du bist hier mM einfach drei Schritte zu schnell. Wir diskutieren hier nur Macbarkeit und ggf. Umsetzungsweg (welche Vorlage, wie eingebunden, welches Modul, was geht, was ist nicht sinnvoll, usw.). Für einen Botlauf gibt es, bevor dieser Weg klar vorgezeichnet ist, naturgemäß noch keine nähere Definition. Endpunkt wäre (wie schon in meinem allerersten Beitrag hier geschrieben [6.5., 17:17]) [es sollen] alle CAS-Nummern, die irgendwo in der deWP stehen (Box, Fließtext, Tabelle, wherever), per Botauftrag in diese Vorlage eingeschlossen werden. Aber nochmal: Botedits wird es erst geben, wenn die Technik für Vorlage und ggf. Modul stehen.
Übrigens hat die aktuelle Version von Vorlage:CASRN noch gar nicht die besprochene Funktionalität der "bedingten CAS-Verlinkung", sie verlinkt einfach immer. Die Menge der Einbindungen beträgt auch nicht >10000, sondern 419× als Untervorlage von Vorlage:Substanzinfo + 25× direkt in Artikeln. Das lässt sich also gerade noch als experimentell bezeichnen und wäre ggf. auch noch rückbaubar.
@MisterSynergy: Du hast oben von einer SRAQL-Abfrage geschrieben: Wie sähe die aus (alle Items mit CAS-Nummer, nicht missbilligter Rang, die als Referenz auf Common Chemistry verweisen; Ausgabe: Item-ID, CAS-Nummer)?--Mabschaaf 08:45, 9. Mai 2021 (CEST)
https://w.wiki/3JRU. Du kannst auch Zeile 5 bis 15 weglassen und bekommst alle CAS-Nummern mit nicht-missbilligtem Rang, also auch jene ohne eine solche Fundstelle. —MisterSynergy (Diskussion) 09:54, 9. Mai 2021 (CEST)
@Mabschaaf: Allein die Infobox Chemikalie ist bereits in 10059 Seiten eingebunden, die auf die Existenz verlinkter oder nicht verlinkter CAS-Nummern zu prüfen wären. Hinzu kommen einige andere Infoboxen aus dem Bereich Chemie bzw. hilfsweise eine abzuarbeitende Kategorie. Vorstehend verlinkte WD-Abfrage gibt ja schon mal 165.379 CAS-Einträge aus (womit sich übrigens meine Frage nach dem Suchschema erübrigt). Wie ich bereits schrieb, würde mein Bot auch auf der unveränderten Vorlage:CASRN aufbauen, eine weitere Logik bräuchte diese nicht, da die Auswahl via CAS-API-Call über den Bot erfolgt. Die Wikimedia-Server samt externen Cache-Servern werden damit dauerhaft sowohl performance- als auch trafficmäßig entlastet wie dargelegt. Um den Bot aufzusetzen, brauche ich eine exakte Aufgabenliste wie oben (01:24, 9. Mai 2021) dargelegt. Ein ähnlicher Auftrag besteht ja auf der BD von Cactus26 ja bereits seit längerem. Ich denke, jetzt hinreichend dargelegt zu haben, warum weitere Diskussionen, um/ob/wie ein Lua-Modul einzubinden, nicht nur überflüssig, sondern unangebracht sind. -- Uwe Martens (Diskussion) 13:26, 9. Mai 2021 (CEST)
Dass es für die IB Chemikalie rd. 10000 Verwendungen gibt, habe ich nie bestritten - bisher aber eben nicht für Vorlage:CASRN, wie von Dir geschrieben.
Ich habe noch nicht verstanden, was Dein Bot machen will/soll. Was wäre denn in der Folge der Unterschied zwischen Common-Chemistry-Eintrag vorhanden/nicht vorhanden? Könntest Du evtl. mal jeweils einen (händischen) Beispieledit für die beiden Fälle machen und die beiden Diffs verlinken?--Mabschaaf 13:47, 9. Mai 2021 (CEST)
Ja, ich schrieb oben "die insg. 10059 Artikel, welche die Vorlage:CASRN verwenden", das ist natürlich mißverständlich, nur ein Teil davon verwendet die CAS-Vorlage. Aber es sollen ja (mindestens) alle 10059 Artikel bearbeitet werden. Ein Beispieledit dürfte sich erübrigen, da mein Bot sehr einfach arbeiten würde (wie ich doch nun schon hinreichend dargelegt habe): Besteht ein CAS-Webeintrag (was vom Bot per CAS-API-Call geprüft wird, s. Beispiel) wird eine unverlinkte CAS-Nummer in die Vorlage:CASRN eingeschlossen (anderenfalls nicht) bzw. besteht kein CAS-Webeintrag, wird eine bestehende Einbindung einer CAS-Nummer in die Vorlage:CASRN aufgehoben. Hinzu kommen die weiteren Aufgaben/Abarbeitungskriterien wie besprochen, z.B. wann alternativ via Vorlage:Substanzinfo zu referenzieren ist. PS: Sollte obige WD-Abfrage aktuell sein, dann kopiere ich mir die Liste (via CSV-Datei) in meinen eigenen SQL-Server, dann spare ich mir den CAS-API-Call. PPS: Die obige SPARQL-Abfrage war leider unbrauchbar, da z.B. eben in Zeile 160.450 der CSV-Datei die CAS-Nr. 75318-43-3 ausgegeben wird, die aber über keinen Webeintrag verfügt. Die Abfrage unterscheidet also nicht zwischen vorhandenem und nicht vorhandenem CAS-Webeintrag. Brauchbar ist die Liste nur zur Bestimmung der Suchkriterien für die CAS-Nummern, offenbar "12-34-5" bis "1234567-89-0" (was ich so überflogen habe). Es bleibt von meiner Seite daher bei dem CAS-API-Call. -- Uwe Martens (Diskussion) 17:14, 9. Mai 2021 (CEST)
 Info: Mein Bot ist im Übrigen betriebsbereit (ein paar "Gehversuche" hat er in der Wiki-Sandbox absolviert). Über die API habe ich damit bereits den zu durchsuchenden Kategoriebaum der Kategorie:Chemie bis zur 5. Subkategorie extrahiert, das sind insg. 3481 Kategorien (s. die vom Bot erstellte Liste). Alle Artikel in diesen Kats können daher geladen und im Wiki-Quelltext untersucht und aktualisiert werden. Den Suchalgorithmus für die CAS-Nummern muß ich noch schreiben, aber das ist keine Kleinigkeit. Wenn wir dann endlich zu einem Punkt kommen, lasse ich dieser Tage gerne die obligatorischen 50 Testedits durchlaufen. -- Uwe Martens (Diskussion) 07:36, 10. Mai 2021 (CEST)
@MisterSynergy: Die Anzahl aus deiner Abfrage unterscheidet sich von derjenigen aus dieser Abfrage. Hast du eine Erklärung dafür? --Leyo 11:26, 11. Mai 2021 (CEST)
  • Die Abfrage dort hat eine Einschränkung auf Objekte mit exakt "ist ein(e) (P31): chemische Verbindung (Q11173)", die ich nicht habe.
  • Andererseits werden Aussagen mit missbilligtem Rang nicht rausgefiltert.
  • Es wird außerdem lediglich nach der P248-Referenz geschaut, nicht zusätzlich nach einem blanken Weblink in P854.
Der erste Punkt macht sicherlich den größten Unterschied aus. —MisterSynergy (Diskussion) 13:02, 11. Mai 2021 (CEST)
<linksrutsch>Mehrere Punkte noch:
  • Rein formal halte ich bei der geplanten Editzahl > 10.000 ein Botflag für zwingend erforderlich.
  • Mein klares Ziel ist es, alle CAS-Nummern in die Vorlage zu packen, d.h. entweder sollte {{CASRN|50-00-0}} eingefügt werden (falls ein Eintrag in commonchemistry existiert) oder {{CASRN|75318-43-3|KeinCASLink=1}} (falls nicht).
  • Das sollte es im Weiteren auch erleichtern, WP-weit alle CAS-Nummern zu finden.
  • CAS-Nummern finden:
    • Prinzipiell auszuschließen ist alles, was innerhalb von <ref>-Tags, Vorlagen und HTML-Kommentaren steht.
    • Ausnahme: Der dafür vorgesehene Parameter in den Infoboxen. Das sind die in Wikipedia:Redaktion_Chemie/Vorlagen#Infoboxen gelisteten. Allerdings können dort im vorgesehenen Parameter mehrere CAS-Nummern sein und ebenfalls Refs, Ergänzungen aller Art und weitere Vorlagen.
    • Identifikation von CAS-Nummern kann gelingen mit Regex /^[1-9]%d%d?%d?%d?%d?%d?%-%d%d%-%d$/ und mit korrekter Prüfziffer gem. CAS-Nummer#Prüfung_von_CAS-Nummern
    • Eine Liste aus Wikidata ist zwar ganz nett, aber selbst wenn WD inzwischen mehr als 1 Mio Einträge mit CAS-Nummer haben dürfte, möglicherweise nicht umfassend.
  • Alle vorkommenden CAS-Nummern innerhalb eines Artikels in Infobox, Tabellen und Fließtext sollen mit einem einzigen Edit gekapselt werden.
  • Vorlage:Substanzinfo wird dabei nie gesetzt.
  • Zusätzlich idealerweise gleichzeitig zu erledigende Aufgaben sind auf Benutzer_Diskussion:Cactus26#Botaufgabe_für_CAS-Nummern beschrieben, da hier wirklich alle Chemie-Artikel angefasst werden, betrifft das mit sehr hoher Priorität den gleichzeitigen Umbau der Vorlage:GESTIS und das Ersetzen von Datum=[alphanumerische Schreibung]Abruf=[ISO-Schreibung] in allen anderen Chemie-Vorlagen.
  • Bitte zunächst erst mal nur 5 Testedits von Artikeln, die gleich eine ganze Reihe von Sonderfällen abdecken, z.B.
Ich denke, die kannst Du auf alle Fälle machen, danach solltest Du aber mit Botflag agieren und zusätzlich sollte auch Benutzer:Leyo sein ok geben.--Mabschaaf 11:53, 10. Mai 2021 (CEST)
Danke, das ist ja mal ein sehr konkreter Auftrag! Dazu meine Kommentare:
Rein formal halte ich bei der geplanten Editzahl > 10.000 ein Botflag für zwingend erforderlich.
Das ist klar, gem. Anträge auf Botflag sind aber 30-50 Testedits obligatorisch.
Mein klares Ziel ist es, alle CAS-Nummern in die Vorlage zu packen, d.h. entweder sollte {{CASRN|50-00-0}} eingefügt werden (falls ein Eintrag in commonchemistry existiert) oder {{CASRN|75318-43-3|KeinCASLink=1}} (falls nicht).
Das ist ein sehr guter Ansatz!
Prinzipiell auszuschließen ist alles, was innerhalb von <ref>-Tags, Vorlagen und HTML-Kommentaren steht.
Alles klar!
Ausnahme: Der dafür vorgesehene Parameter in den Infoboxen. Das sind die in Wikipedia:Redaktion_Chemie/Vorlagen#Infoboxen gelisteten. Allerdings können dort im vorgesehenen Parameter mehrere CAS-Nummern sein und ebenfalls Refs, Ergänzungen aller Art und weitere Vorlagen.
Das sollte kein Problem sein.
Identifikation von CAS-Nummern kann gelingen mit Regex /^[1-9]%d%d?%d?%d?%d?%d?%-%d%d%-%d$/ und mit korrekter Prüfziffer gem. CAS-Nummer#Prüfung_von_CAS-Nummern
Ich werde zusehen, ob ich davon was übernehmen kann. Da ich ja grundsätzlich nicht die Richtigkeit der CAS-Nummer überprüfen muß, sondern diese nur als solche erkennen muß, erübrigt sich für den Bot vermutlich die Anwendung der Prüfziffer.
Eine Liste aus Wikidata ist zwar ganz nett, aber selbst wenn WD inzwischen mehr als 1 Mio Einträge mit CAS-Nummer haben dürfte, möglicherweise nicht umfassend.
Eigentlich sollte man auf Wikidata ebenfalls so einen (entsprechenden) KeinCASLink-Parameter setzen.
Alle vorkommenden CAS-Nummern innerhalb eines Artikels in Infobox, Tabellen und Fließtext sollen mit einem einzigen Edit gekapselt werden.
Das ist klar!
Vorlage:Substanzinfo wird dabei nie gesetzt.
Ich wollte mal hier auf die Eingangs gepostete Möglichkeit hinweisen, daß mit der Vorlage:CASRN und dem Parameter references=only auch nur Fußnoten erzeugt werden können. Wenn wir den Parameter references=only mit dem Botlauf nirgends implementieren, dann wird dieser Parameter womöglich bald obsolet.
Zusätzlich idealerweise gleichzeitig zu erledigende Aufgaben sind auf Benutzer_Diskussion:Cactus26#Botaufgabe_für_CAS-Nummern beschrieben, da hier wirklich alle Chemie-Artikel angefasst werden, betrifft das mit sehr hoher Priorität den gleichzeitigen Umbau der Vorlage:GESTIS und das Ersetzen von Datum=[alphanumerische Schreibung]Abruf=[ISO-Schreibung] in allen anderen Chemie-Vorlagen.
Das sollte dann auch kein Problem sein.
Bitte zunächst erst mal nur 5 Testedits von Artikeln, die gleich eine ganze Reihe von Sonderfällen abdecken
Wie Eingangs dargelegt sind Minimum 30 Testedits zur Beantragung eines Botflags erforderlich. Wenn es hier ausdrücklich gewünscht wird, kann ich es selbstverständlich auf 5 Edits beschränken - allerdings weiß ich nicht, ob ich dann bei einem Antrag auch Erfolg habe.
Grüße, Uwe Martens (Diskussion) 15:45, 10. Mai 2021 (CEST)
Ich antworte mal in Stichpunkten:
  • Botflag / 5 Testedits: Die fünf Edits sehe ich mal als allererste Beurteilung für uns, weitere 30 für den Flagantrag hinterher zu schieben, wenn alles klappt, ist ja gar kein Problem.
  • CAS-Prüfung: Nein, musst Du nicht machen. Ist in Vorlage:CASRN sowieso implementiert. Stimmt die Prüfziffer nicht, landet der Eintrag in einer Fehlerkat. Ist sogar fast besser, wenn Du erst mal alle Fundstellen in die Vorlage packst, das hilft uns im Nachgang, Tippfehler und Zahlendreher in den Artikeln zu finden.
  • KeinCASLink-Flag auf WD: Naja, WD sollte die Logik haben: Ist die CAS-Nummer dort mit CommonChemistry referenziert, ist auch der Link dorthin valide. Muss uns aber jetzt hier nicht kümmern.
  • references=only: Nein, das ist kein Thema
Ich habe lange überlegt (und bin auch noch immer nicht final entschlossen), ob wir der Vorlage:CASRN als zweiten Parameter nicht noch die WD-Item-Nummer übergeben sollten (also etwa {{CASRN|75318-43-3|Q27251702|KeinCASLink=1}}). Das würde es für die Zukunft leicht machen, beispielsweise Wartungskats zu erzeugen, wenn auf WD doch ein neuer Eintrag in Common Chemistry nachgetragen oder die CAS-Nummer zu einem anderen Item verschoben wird.
Viele Grüße --Mabschaaf 17:00, 10. Mai 2021 (CEST)
Nur als Anmerkung der Vollständigkeit halber: Mit {{#if:{{#invoke:Wikidata|claim|P231|id={{#invoke:Wikidata|pageId}}}} | {{CASRN|{{#invoke:Wikidata|claim|P231|id={{#invoke:Wikidata|pageId}}}} }} | {{CASRN|Die blanke CAS-Nummer|KeinCASLink=1}} }} könnte man so eine Selektion (besteht ein CAS-Verweis auf WD ja/nein, wie Leyo auf EN:WP) automatisch durchführen, zumindest was die CAS-Nummer des Lemmas betrifft. Die Logik hier ist: Existiert für das Lemma ein WD-Eintrag, erzeuge den CAS-Link, anderenfalls nicht. Eine Prüfung auf die CAS-Webeinträge erfolgt damit aber ja nicht. Was den optionalen Vorlagen-Parameter betrifft, würde ich aber vorschlagen, diesen eher optional einzubinden. Wenn die Einbindung der Q-Nummern im Zuge des anstehenden Botlaufs erfolgen soll, dann bitte bescheid geben. Ich werde mir jetzt erst mal die Kats und alle Artikel-Lemmata daraus (Mehrfachtreffer gefiltert) in meinen SQL-Server schreiben, dann hat es der Bot etwas leichter. Zum Wochenende hin habe ich dann etwas mehr Zeit, das eigentliche Script für die einzelnen Aufgaben aufzusetzen. Grüße, Uwe Martens (Diskussion) 18:38, 10. Mai 2021 (CEST)
Mal ne Frage zwischendurch: Ausgehend von meiner Kat-Liste (bis einschließlich der 5. Subkategorie) komme ich "nur" auf 30384 Artikel (vorher waren hier über 100.000 Duplikate zu bereinigen). Sollte ich da noch eine Subkategorie tiefer crawlen? Die Testedits in Ehren, aber ich hätte schon ganz gerne das Framework fertig bereitstehen. Vermutlich läßt sich eine komplette Artikelliste auch wieder via WD-SPARQL runterladen, allerdings crawle ich doch lieber die Kats, da solche Übersichtslisten ja an sich schon brauchbar sind. Der ausklappbare Kategorienbaum geht ja scheinbar auch nur bis zur 3. Subkategorie der abgefragten Kategorie, also auch nicht besonders aussagekräftig. -- Uwe Martens (Diskussion) 15:30, 11. Mai 2021 (CEST)
Du kannst dir alle Artikel, die in einem Kategorienbaum enthalten, einfach über Petscan rausziehen, siehe Abfrage. Textausgabe ist möglich. --Count Count (Diskussion) 15:40, 11. Mai 2021 (CEST)
Ok, danke! Na fehlen mir ja nur noch 4.385 Artikel. :-D Ich werd trotzdem mal bis auf die 6. Subkat crawlen und dann schauen, wie hoch die Differenz noch ist. Ansonsten importiere ich mir das halt via CSV. -- Uwe Martens (Diskussion) 16:06, 11. Mai 2021 (CEST)
Also die Artikel Tylosin, 2-Butanol, Dichlortoluole, Zirconium und WD-40 (Diffs) habe ich grad durch den Reißwolf gejagt, da waren dann noch zwei Fehler drin (fehlendes Leerzeichen vor der Vorlage:CASRN sowie unerwünschte Zeichenkonvertierung für "&") - das habe ich schnell behoben. Das mit dem CAS-API-Call funktioniert wunderbar, die Datumskonvertierung für die Vorlage:GESTIS ist auch kein Problem. Die komplette Artikelliste aus der Kategorie Chemie habe ich mir in meinen SQL-Server geschrieben, da kann sich der Bot jetzt draus "bedienen". Ich wollte noch darauf hinweisen, daß ich bei der ordnungsgemäßen Beantragung eines Botpaßwortes auf Wikimedia den Usernamen "Uwe Martens@WikispiderBot" zugeteilt bekommen habe, mit dem ich gerade diese fünf Testedits durchgeführt habe. Komischer Weise taucht das dann unter meinen Edits auf. Wenn ich mich mit "WikispiderBot" selber anmelde und den Edit durchführen will, kommt (im ANR) eine Fehlermeldung wegen ungelöstem Captcha. Keine Ahnung, wie das dann mit dem Botflag geht oder ob man das beheben kann, allerdings gibt es ja hier sogar Admin-Accounts, die einen Bot unter ihrem eigenen Namen betreiben, ich sage nur Benutzer:Aka... 😆 PS, eine Frage noch: Das mit der Vorlage:GESTIS habe ich derzeit ausgelegt auf das Erkennungsmuser {{GESTIS|Name=Adrenalin|ZVG=510500|CAS=51-43-4|Datum=10. Januar 2017}} (also Datum neben CAS-Nummer), siehe Testedit Adrenalin. Allerdings herrscht da leider (wie immer) eine große Willkür a la {{GESTIS|ZVG=492189|CAS=29797-40-8|Name=Dichlortoluol, Isomere|Datum=27. Dezember 2019}} (also Datum neben Name). Wird denn diese Datumsnennung in der Form |Datum=27. Dezember 2019}} irgendwo anders noch gebraucht? Ansonsten beschränke ich das Erkennungsmuster auf diese Datumsform (was jetzt mal die schnellste Variante wäre). PPS: In den Vorlagen des Portals Chemie habe ich keine dieser obsoleten Datumsangaben gefunden (zwei Kopiervorlagen habe ich noch aktualisiert). Ich meine fast, man könnte es wagen, das in den Chemie-Artikeln einfach generell auszubessern (ansonsten muß ich halt da noch das Erkennungsmuster erweitern). Grüße, Uwe Martens (Diskussion) 09:29, 12. Mai 2021 (CEST)
Zu den Botpasswörtern: Diese bitte unter dem Botkonto anlegen, nicht mit dem Hauptkonto. Sie dienen einfach dazu, dass ein Skript sich captchafrei authentifizieren kann und gleichzeitig die Berechtigungen für das per Botpasswort angemeldete Konto eingeschränkt werden können. --Count Count (Diskussion) 09:16, 12. Mai 2021 (CEST)
Danke, ich bin mir aber sicher, daß ich mit dem Botaccount eingeloggt war, anderenfalls wäre mir ja der Username "Uwe Martens@WikispiderBot" nicht zugeteilt worden. Das liegt wohl daran, daß ich den Botaccount angemeldet erstellt habe und der meinem Account somit automatisch zugeordnet wird. -- Uwe Martens (Diskussion) 09:29, 12. Mai 2021 (CEST)
Botpasswörter haben immer die Form: Hauptkonto@gewählter Botbezeichner. Für Count Count habe ich beispielsweise auch Count Count@Huggle. Du kannst ja ganz einfach prüfen, ob das Botpassword deinem Hauptkonto zugeordnet ist: Wenn du als Uwe Martens eingeloggt auf Spezial:BotPasswords gehst und dort unter Vorhandene Botpasswörter Wikispiderbot siehst, dann hast du das mit deinem Hauptkonto angelegt. Dann einfach löschen und unter deinem Botkonto neu anlegen. --Count Count (Diskussion) 09:42, 12. Mai 2021 (CEST)
Danke, habe das geändert! Ich hatte das zuvor auf mediawiki.org gemacht, wo sich dann wohl die Logins überschnitten haben irgendwie. Das Login lautet nun "WikispiderBot@WikispiderBot", allerdings kommt damit (nach Aktualisierung der Bot-Rechte) die Captcha-Fehlermeldung, wenn ich im ANR editieren will. Vielleicht dauert das eine Zeit, bis die Rechteänderungen überall wirksam werden? PS: Ich bin jetzt bis zum späten Abend hier off. Wenn übrigens die CAS-Nummern noch mit dem jeweiligen Lemma gelistet werden sollen, so kann ich diese mit jedem Edit in meine Datenbank schreiben (das kann man dann in allen beliebigen Formaten exportieren). Wenn das gewünscht wird, wie Mabschaaf auf der BD von Cactus26 sagte, dann bitte bescheid geben. -- Uwe Martens (Diskussion) 10:21, 12. Mai 2021 (CEST)
<linksrutsch> Das Einfügen von Vorlage:CASRN scheint ja schon vorzüglich zu funktionieren. Bezüglich der Anpassung der anderen Vorlagen:
  • Vielleicht wäre es sinnvoll, mit einer Positiv-Liste der Vorlagen zu arbeiten, die umgebaut werden sollen. Das sind alle, die auf Wikipedia:Redaktion Chemie/Vorlagen stehen und ein Abrufdatum haben. Ich kann nicht sagen, ob es weitere Vorlagen in Chemie-Artikeln gibt, die einen Parameter Datum= haben und Abruf= dagegen nicht kennen.
  • Der alte Parameter Datum= kann natürlich an jeder Stelle innerhalb der Vorlagen stehen. Falls möglich, sollte Abruf= immer als letzter Parameter eingefügt werden.
  • Bei der Änderung von Datum= zu Abruf= ist bei Vorlage:GESTIS zusätzlich immer noch der Punkt außerhalb der Vorlage wegzunehmen, d.h. aus
    • <ref>{{GESTIS|.....|Datum=....}}.</ref> muss werden:
    • <ref>{{GESTIS|.....|Abruf=....}}</ref> (ohne Punkt)
  • Vorlage:GESTIS ist da die Ausnahme. Alle anderen Vorlagen brauchen diese Sonderlösung nicht.
Viele Grüße--Mabschaaf 15:15, 12. Mai 2021 (CEST)
Alles klar, ich hatte gerade noch einen Testedit unter Alkohole vorgenommen (hatte ich noch was nachzubessern in dem Datums-Array), da aber Dein Posting noch nicht gelesen. Gültige Verwendungen des alten Datums-Parameters habe ich im Bereich Chemie keine gefunden, wie gesagt. Aber ich werde das mit der Vorlage:GESTIS zur späteren Stunde nochmal überarbeiten. Grüße, Uwe Martens (Diskussion) 15:50, 12. Mai 2021 (CEST)

Entschuldigt meine späte Rückmeldung!
Soweit ich dies überblicke, sehen die letzten Testedits von Uwe gut aus. Von mir aus könnte es für alle Artikel losgehen, mit Ausnahme derjenigen, die nichts weiter eine CAS-Nr. als Chemobox-Parameterwert enthalten (zumindest vorerst).
Allerdings ist die Frage, ob zusätzlich die zur CAS-Nr. zugehörige QID angegeben soll, noch offen zu sein. Mittels {{CASRN|1234-5-6|Q12345|KeinCASLink=1}} könnte man ja so einen Link unterdrücken, falls dieser trotz des Vorhandenseins der betreffenden CAS-Nr. inkl. REF auf Common Chemistry im WD-Item. Was würde man allerdings im umgekehrten Fall tun? {{CASRN|1234-5-6|Q12345|KeinCASLink=doch}}? ;-) Oder ist der zweitgenannte im Gegensatz zum erstgenannten Fall nie relevant? --Leyo 17:10, 12. Mai 2021 (CEST)

 Info: Wir verwenden heutzutage für sowas keinen Wert doch mehr, sondern eine boolesche Variable mit Werten 0, 1, auch ja, nein.
Das mit doppelter Verneinung ist nicht sehr intuitiv.
Der Default kann ja 1 sein; ergo Link=1.
Abschalten mit Link=0 oder Link=nein oder Link=-.
CAS heißt bereits die ganze Angelegenheit, ist im Parameternamen redundant und hilft niemandem.
Sollte es zu einem produktiven Modul kommen, was die Kernaufgabe dieser Werkstatt wäre, gäbe es einige generelle Rahmenbedingungen zu beachten.
VG --PerfektesChaos 17:36, 12. Mai 2021 (CEST)

@Leyo: Es haben sich jetzt schon mehrere Beteiligte für eine klare einheitliche Umsetzung ausgesprochen, d.h. ausnahmslos alle CAS-Nummern in eine Vorlage einzupacken. Das ist das einzig sinnvolle und auch verständlich kommunizierbare (Infobox-Doku) Vorgehen. Zudem ist ein Einbau der kompletten Logik, die in Vorlage:CASRN steckt, parallel in jede einzelne Infobox alles andere als wartungsfreundlich.
Das einzige Argument, was dagegen spräche, ist die nötige Editzahl (jeder Artikel mit Infobox muss angefasst werden). Das wird aber mehr als aufgewogen, wenn - wie hier geplant - gleichzeitig alle anderen Chemie-Vorlagen auf den aktuellen Stand gebracht werden, was Datum/Zugriff angeht. Die parallele Pflege von zwei unterschiedlichen Parametern für den gleichen Sachverhalt ist überhaupt nicht erstrebenswert.

Die zusätzliche Angabe der QID muss konsequenterweise bei allen CAS-Nummern erfolgen, bei denen die CAS-Nummer im zugeordneten WD-Item abweicht. Dann kann die Angabe zukünftig genutzt werden, um entweder aus der Vorlage heraus mittels geeigneter Programmierung oder temporärer Einbindung des o.g. LUA-Moduls oder extern/offline über eine Vorlagenauswertung und Vergleich mit dem KeinCASLink-Parameter, ob die Verlinkung korrekt gesetzt ist oder geändert werden sollte. Dafür ist dann kein Botlauf mehr nötig.

Die Logik wäre: KeinCASLink=ja sticht immer, d.h. unabhängig von einer ggf. erfolgenden WD-Abfrage mit abweichendem Ergebnis wird kein Link gesetzt - aber bei Bedarf eine Wartungskat. Den umgekehrten Fall (erzwungene Verlinkung) sehe ich nicht.

@PC: "CAS" ist innerhalb dieser Vorlage tatsächlich redundant, allerdings gibt es die gleiche Konstellation in der Vorlage:Substanzinfo und dort muss sich der Parametername eindeutig auf die CAS-Nummer beziehen. Eine dauerhafte Modulverwendung ist vom Tisch, insofern müssen wir uns hier über Konventionen für Module im Moment nicht unterhalten. Aber ja, für später wäre das natürlich relevant.--Mabschaaf 21:09, 12. Mai 2021 (CEST)

  • Nochmal meine Frage zwischendurch: Soll ich denn jetzt alle (in die Vorlage:CASRN einzufassenden) CAS-Nummern aus/zu den jeweiligen Artikeln extrahieren? Mein Skript hat diese CAS-Nummern (zwecks deren Erkennung und weiteren Behandlung) eh jeweils in einer Variable, sogar die aus der Vorlage:GESTIS. Ich könnte da noch jeweils auf Duplikate prüfen und dann je eine CAS-Nummer in eine Spalte schreiben, oder alle zu einem Artikel gehörenden Nummern in eine Spalte. Es ist dies zwar kein großer Mehraufwand, da ich mich eh meiner MSSQL-Datenbank bediene, allerdings bitte ich dies nur in Erwägung zu ziehen, wenn es wirklich von Nutzen ist.
  • Wie handhaben wir das jetzt mit der obsoleten Datumsangabe? Sind die Änderungen auf die Vorlage:GESTIS oder ggf. weitere Vorlagen zu beschränken, oder sollen sie generell geändert werden? Generell kann ich mit dem Datum jedes gewünsche Format erzeugen, da es mein Skript zunächst ins UNIX-Zeitformat umrechnet.
  • Falls da noch irgendwas konkret mit den Q-Nummern zu machen ist, dann bitte bescheid geben! Wie ich aber oben schon schrieb (18:38, 10. Mai 2021), kann man auch mit den bestehenden Vorlagen auf WD zugreifen und da ggf. was abgleichen - das könnte man ggf. in die Vorlagen (Infobox, CASRN etc.) einarbeiten. Aus Performancegründen, wie dargelegt, rate ich aber von solchen dauerhaften WD-Requests ab - so wichtig sind die CAS-Links doch nun auch wieder nicht, daß da alles jederzeit up-to-date sein muß. Den Botlauf kann man quartalsmäßig oder halbjährlich wiederholen.
  • Eine Nichteinbindung der Vorlage:CASRN in die Infobox halte ich übrigens für weniger gut bzw. verstehe ich nicht den Sinn dieser Option. Sollte der Sinn dieser sein, die Logik der Vorlage:CASRN in die Infobox selber zu implementieren, dann würde ich aber bitten, dies vor meinem Botlauf zu tun. Zwar könnte ich mich dessen auch annehmen, allerdings habe ich momentan nicht die Zeit, um da noch mehr zu programmieren.
Grüße, Uwe Martens (Diskussion) 22:55, 12. Mai 2021 (CEST)
  • Deinen ersten Punkt verstehe ich nicht. Duplikate sind normal innerhalb eines Artikels und sehr gut möglich, wenn es zu einem Stoffgruppenartikel auch noch den einen oder anderen zugehörigen Einzelsubstanzartikel aus dieser Gruppe gibt. Ich glaube nicht, dass Du Dich damit aufhalten musst.
  • Ich kann nur für die Chemie-Vorlagen garantieren, dass "Datum" problemlos durch "Abruf" ersetzt werden kann. Ob es ggf. weitere Vorlagen gibt, die als Parameter Datum verwenden, Abruf dagegen nicht verstehen, kann ich nicht sagen.
  • Ich habe in Vorlage:CASRN nun einen weiteren (unbenannten) Parameter zugelassen, die Q-ID kann also - wie oben beschrieben - mitgegeben werden. Das müsste, wie oben schon gesagt, in allen Fällen geschehen, wo die betroffene CAS-Nummer in einem anderem WD-Item steht als das mit dem Artikel verknüpfte. Eine weitergehende Verwendung ist momentan noch nicht implementiert, aber das hält zumindest viele Möglichkeiten offen.
  • Infobox:<Gebetsmühle>Nein, ich lehne eine Änderung der Infoboxen mit dem Ziel, dort eine Prüfung und Verlinkung direkt einzubauen, strikt ab. Daher müssen alle CAS-Nummern in die Vorlage:CASRN eingepackt werden.--Mabschaaf 08:37, 13. Mai 2021 (CEST)
@Uwe Martens: Was sollen jetzt bei laufender Diskussion und ohne Konsens Deine Änderungen in der IB Chemikalie? Auf ein solches Vorgehen hätte ich mehr als gerne verzichtet. :-/ --Mabschaaf 09:03, 13. Mai 2021 (CEST)
  • Ja also wie hier gesagt, wollte ich die Alternative der Einbindung der Logik der Vorlage:CASRN einmal "live" testen, ehe ich dazu ein Statement abgebe. Ich bin bis dato davon ausgegangen, daß dies durchaus eine Option wäre - daß Du das strikt ablehnst, war mir nicht klar. Aber siehe nun dazu mein Statement auf Deiner Disk. Wenn ich am Programmieren bin, merke ich nicht, was auf anderen Diskussionsseiten los ist (außer auf meiner eigenen). Da dann nach zwei Versionen im vermeintlichen Editwar-Modus auf VM aufzukreuzen, war in der Tat verzichtbar! Wie dem auch sei: Für mein Skript wäre es ohnehin eine Erleichterung, da nicht die Infobox(en) außenvor zu lassen.
  • Was die Duplikate betrifft, so habe ich das nur auf eine etwaig zu erstellende Tabelle mit allen CAS-Nummern zu dem jeweiligen Artikel bezogen. In so einer Tabelle dürften ja keine Duplikate auftauchen, wenn die Tabelle denn einen Nutzen haben sollte. Das war Dein Einbringen auf der Disk von Cactus26.
  • Für die Prüfung der WD-Q-Nummer müßte ich dann ein Wikidata-API-Call in mein Skript implementieren. Das ist kein Problem, allerdings muß ich die WD-API erst einsehen. Bitte hierfür ein paar Beispiel-Artikel herauszusuchen, wo die Nummer einzubinden wäre!
Danke, Uwe Martens (Diskussion) 09:59, 13. Mai 2021 (CEST)
Die Edit-War-Geschichte können wir gerne ganz schnell wieder vergessen - aber das ist die Problematik, wenn Du auf nichts reagierst, was typischerweise über Notifications transportiert wird und auch keine ZQ liest.
Die WD-Q-Nummer müsste u.a. in alle Vorkommen bei Stoffgruppen-Artikeln mitgegeben werden, also bspw. im oben schon verwendeten Dichlortoluole, aber auch in nahezu 100% der Vorkommen im Fließtext oder anderen Tabellen. Ohne WD-Q-Nummer bleibt praktisch ausschließlich der oberste Eintrag in einer Infobox.
Ein Beispiel dazu: Tylosin ist verknüpft mit d:Q411462, d.h. nur die CAS 1401-69-0 bleibt ohne Q-ID, in alle anderen Vorlagen CASRN, die im Artikel irgendwo stehen, kommt die jeweilige Q-ID hinzu.--Mabschaaf 10:13, 13. Mai 2021 (CEST)
Wobei ich gerade sehe, dass Tylosin ein Ausnahmebeispiel dafür ist, dass es hier nicht die oberste Nummer ist, die der im verknüpften WD-Item entspricht.
Sollte es kein WD-Item zur fraglichen CAS-Nummer geben, wäre dann {{CASRN|12-34-5|?}} zu setzen.--Mabschaaf 10:17, 13. Mai 2021 (CEST)
Für Tylosin gibt es keinen CAS-Webeintrag, insofern die erste Prüfung zur Einbindung der Vorlage:CASRN der CAS-API-Call ist. Das wäre nun die Frage, ob die Prüfung der WD-Q-Nummer in Abhängigkeit des Vorhandenseins eines CAS-Webeintrages steht bzw. stehen soll, oder nicht. PS: Genauer gesagt, gibt es zur ersten CAS-Nummer aus der Infobox zu Tylosin keinen CAS-Webeintrag - der CAS-Link auf WD hingegen für CAS-Nummer 1401-69-0 funktioniert. Also die Regel "Ausschluß jeweils der ersten CAS-Nummer in einer Infobox" scheint schon mal nicht zu funktionieren. -- Uwe Martens (Diskussion) 10:45, 13. Mai 2021 (CEST)
Genau das habe ich ja geschrieben: I.d.R. (aber eben nicht immer) ist es die erste Nummer in der Box, die zur Nummer des WD-Items passt. Das und nur das ist das einzige Entscheidungskriterium: Passen die beiden CAS-Nummern nicht zusammen, muss die Q-ID in der Vorlage:CASRN ergänzt werden.
Ganz und gar unabhängig davon wird KeinCASLink=1 gesetzt, wenn in der CommonChemistry-DB kein Eintrag ist.--Mabschaaf 11:44, 13. Mai 2021 (CEST)
Gut, ich arbeite gerade den Wikidata-API-Call mit ein. Allerdings ist die Logik "KeinCASLink=" ja/nein derzeit ausschließlich abhängig vom CAS-API-Call. Bitte dann auch nochmal bescheid geben, welche Vorlagen nun auf das Datumsformat geprüft werden sollen. Des weiteren, ob ich nun alle Lemmata samt CAS-Einträgen (auf Duplikate gefiltert) in meine Datenbank schreiben soll zu Deiner weiteren Verwendung, und wenn ja, ob alle CAS-Nummern in eine einzige oder in getrennte Spalten. -- Uwe Martens (Diskussion) 12:01, 13. Mai 2021 (CEST)
Ja, die Logik "KeinCASLink=" ja/nein soll ausschließlich vom CAS-API-Call abhängig sein.
Die Liste der Vorlagen steht hier nachfolgend auskommentiert im Quelltext.
Ich erwarte von Dir gar keine Liste mit mitgeschriebenen Duplikaten o.ä. Falls ich da mal Bedarf habe, hole ich mir das tagesaktuell mit Hilfe der Vorlagenauswertungs-Tools.--Mabschaaf 14:49, 13. Mai 2021 (CEST)
Sorry, ich war beschäftigt. Wieso hast Du das auskommentiert? Das wären also die Vorlagen, in denen das Datumsformat zu ändern wäre? -- Uwe Martens (Diskussion) 15:44, 13. Mai 2021 (CEST)
Ja.--Mabschaaf 15:54, 13. Mai 2021 (CEST)
Ok, ich kümmere mich darum. Wenn ich fertig bin, tätige ich eine Hand voll Testedits. Bin derzeit im Multitasking-Modus und etwas beschäftigt... Grüße, Uwe Martens (Diskussion) 16:32, 13. Mai 2021 (CEST)
@Mabschaaf: Also ich habe mir jetzt mal die Wikidata-API näher angesehen. Die Q-Nummer eines Lemmas kann ich leicht abrufen. Mit der Q-Nummer wiederum kann ich den Wikidata-Eintrag zu dem Lemma aufrufen und prüfen, ob und welche CAS-Nummer verzeichnet ist. Als nächstes kann ich prüfen, ob die angegebene (erste) CAS-Nummer aus der Infobox mit der CAS-Nummer des WD-Eintrags übereinstimmt. Wenn dies nicht der Fall ist, müßte also für diese erste Nummer die Q-Nummer rausgesucht und eingetragen werden. Gleiches für alle anderen Nummern, wobei offensichtlich nicht klar ist, an welcher Position die CAS-Nummer des Lemmas steht. Demzufolge müßte ich also alle CAS-Nummern erst mit der CAS-Nummer des Lemmas abgleichen, und wenn diese nicht übereinstimmen, dann die zugehörige Q-Nummer ermitteln. Habe ich das so korrekt zusammengefaßt? Für die Abfrage der zugehörigen Q-Nummer einer x-beliebigen freistehenden CAS-Nummer (so wie hier) habe ich allerdings keinen Wikidata-API-Call gefunden, dafür aber ein sehr schnelles Tool auf toolforge - das würde ich dann verwenden.
@Leyo: In Deinem Sinne hatte ich versucht, testweise die Vorlage:CASRN in die Infobox einzuarbeiten. Leider hat mir Dein Herr Kollege dazwischengefunkt und es kam zu einem vermeintlichen Editwar samt völlig verzichtbarer Sperrung der Vorlage. Das Ganze hatte ich zuvor in meinem BNR getestet, was auch gut funktionierte. Da aber im Falle der Angabe mehrerer CAS-Nummern in der Infobox (bzw. im Falle einer bereits eingebundenen CAS-Vorlage) die Prüfung der Nummer nicht mehr funktioniert, habe ich Ausschlußkriterien implementiert. Die Prüfung bei Mehrfachangaben wird also so nicht funktionieren, auf einen grünen Zweig bin ich da dann nicht mehr gekommen. Zudem wird die Vorlage Infobox ziemlich aufgebläht, und das würde allen Infoboxen blühen. Aus diesen Gründen rate ich dringend an, die Logik der Vorlage:CASRN nicht in die Infobox einzubinden, sondern statt dessen die Vorlage:CASRN as it is via Botlauf auch in die Infoboxen einzubinden. Da ich Dich hier in keinster Weise übergehen möchte, daher die Frage, ob Du dem jetzt zustimmen könntest.
Grüße, Uwe Martens (Diskussion) 20:39, 13. Mai 2021 (CEST)
Ja, alles korrekt.--Mabschaaf 22:06, 13. Mai 2021 (CEST)
Von „müssen“ (08:37, 13. Mai 2021) kann keine Rede sein. Die Verwendung der Vorlage:CASRN innerhalb der Infobox ist aus den weiter oben genannten Gründen (nicht primär die benötigten Edits) eine Krücke, die notgedrungen nur bei Infoboxen mit mehreren CAS-Nummern benötigt wird. Dort wird jeweils auch die Q-ID übergeben werden müssen. Von einer vorgeschlagenen einheitlichen Verwendung kann also keine Rede sein.
So viel zusätzlicher Code für die Infoboxen ist auch wieder nicht notwendig und diesen bei einer Handvoll Infoboxen einzubauen, ist ein geringer Aufwand.
Ich möchte dazu anmerken, dass die Verlinkung mit der CAS Common Chemistry Database mein Vorschlag war, meine Meinung nun aber nichts zu zählen scheint. --Leyo 00:22, 14. Mai 2021 (CEST)
Ich kann Dir leider nicht ganz folgen. Auch wenn nur eine CAS-Nummer in der Infobox steht, soll sie ja (ggf.) verlinkt werden. Die Infobox selber erledigt das nicht. Und das mit dem zusätzlichen Code habe ich ja schon dargelegt. Da eine Prüfroutine für die CAS-Nummern einzubauen bei Mehrfach-Einträgen würde eigentlich nur gehen, wenn man mehrere CAS-Parameter einführt. Das wiederum würde den Quellcode der Infoboxen ins Unermessliche aufblähen und widerspricht ja dem Sinn einer einzelnen kleinen Vorlage. Also ich glaube, man kann mir nicht vorwerfen, es nicht probiert zu haben, das zu implementieren! Grüße, Uwe Martens (Diskussion) 02:33, 14. Mai 2021 (CEST)
Du übertreibst krass! Bei nur einer CAS-Nr. steht diese direkt zu Beginn des Parameterwerts (ohne * davor), so dass der String-Vergleich nicht allzu kompliziert ist (nicht komplizierter als was jetzt schon drin ist). Dazu braucht's noch einen Aufruf von MisterSynergys Modul, das im verknüpften WD-Item nach der Präsenz des Common-Chemistry-Nachweises sucht. Anhand des Ergebnisses wird ein Link gesetzt oder eben nicht. Fertig. --Leyo 03:05, 14. Mai 2021 (CEST)

@Leyo: Mir scheint, Du verkennst die Komplexität des Ganzen. Was nötig wäre, um die ganze Logik der Vorlage:CASRN zu implementieren, also samt CAS-Nummern-Prüfung auf deren formalen Richtigkeit, siehst Du hier. Das implementiert noch nicht mal die Prüfung auf die jeweilige WD-Q-Nummer. Des weiteren übergehst Du hier, daß im Falle mehrfacher Nennungen von CAS-Nummern in der Infobox dann mehrere Parameter einzuführen wären, anderenfalls alle CAS-Nummern als ein Parameter aufgefaßt werden und die weitere Behandlung unmöglich wird. Deine Version würde also einen selektiven Botlauf nötig machen, um bei nur einer vorhandenen CAS-Nummer nichts zu machen (in der Hoffnung, daß dann in allen Vorlagen der Infoboxen irgendwann irgendeine Logik implementiert wird) bzw. um bei mehreren CAS-Nummern im CAS-Feld der Infoboxen dann doch jeweils die Vorlage:CASRN einzubinden. Erst mal wird damit der projektweite Quellcode inkonsistent, und zweitens müßte man in eine etwaig nachträglich in die Infoboxen zu implementierende Logik wieder eine Auschlußlogik einfügen, um die Mehrfacheinträge nicht auszuwerten. Oder noch schlimmer, dann im Nachhinein mehrere CAS-Parameter einführen. Ferner läßt Du meine obigen Einlassungen zu Performencefragen außenvor. Neben der zusätzlichen Rechenleistung und dem zusätzlichen Traffic für jeden einzelnen Modulaufruf wird sohin noch die Ladezeit der Wikiseite erhöht, und es werden millionen Seitenaufrufe im Monat betroffen sein. Und das nur für einen CAS-Link ja/nein. Und bitte jetzt keine Diskussionen darum, was nun wie aus dem Cache bedient oder nicht bedient wird. Natürlich bedient sich auch die Vorlage:CASRN diverser Lua-Module, allerdings eben ohne jegliche Abfrage bei Wikidata. Also ich rate dringend von Deiner Version ab, wie gesagt! -- Uwe Martens (Diskussion) 10:30, 14. Mai 2021 (CEST)

Nein, ich verkenne nicht die Komplexität. Mit Ausnahme der Prüfung auf die formale Richtigkeit der CAS-Nr. braucht es nur sehr wenig Code. Von mir aus kann diese Prüfung intern durch eine separate Vorlage durchgeführt werden. Diese könnte auch bei z.B. der Infobox Polymer eingesetzt werden.
In der en-WP funktioniert die (Nicht-)Verlinkung übrigens mit zwei Zeilen Vorlagencode.
Es braucht hier überhaupt nicht die Einführung mehrerer Parameter für CAS-Nr., sondern einen simplen Stringabgleich: CAS-Nr. am Anfang des Parameterwerts, ja oder nein. Die Kapselung der CAS-Nr. innerhalb der Infobox in eine separate Vorlage ist ein Unding. So „kennt“ die Infobox den Wert nicht und der Wert „weiss“ nicht, dass er sich innerhalb einer Infobox befindet. --Leyo 22:44, 14. Mai 2021 (CEST)
Ich weiß nicht, wieso Du das Wort "intern" unterstreichst. Intern i.S.v. innerhalb der Vorlage der Infobox meinst Du nicht, da Du auf eine externe Vorlage verweist. Die Vorlage:CASRN ist aber genau diese Vorlage! Was auf EN:WP los ist, weiß ich nicht, allerdings wird dieses Template dort sicher nicht auf Existenz oder Nichexistent eines CAS-Webeintrages prüfen. Mit Punkt 3 widersprichst Du Dir selber hinsichtlich Punkt 1. Der Wert kann ohnehin nichts "wissen", da er ein passives Objekt ist. Und die Vorlagen der Infoboxen implementieren bisher keine Auswertung der CAS-Nummer. Zur Konsistenz sowohl des Artikelbestandes nebst Infoboxen als auch des Quelltextes an sich hatten wir es ja schon. Wir drehen uns hier also im Kreis. Der Sinn von Vorlagen (und auch Untervorlagen) ist bekanntlich, den jeweiligen Quelltext zu vereinfachen. Das machen wir mit der Einbindung der Vorlage:CASRN. -- Uwe Martens (Diskussion) 23:51, 14. Mai 2021 (CEST)
Ich werde den Eindruck nicht los, dass du mich wiederholt absichtlich falsch oder nicht verstehst. Gemeint ist, dass durch die Infobox Chemikalie (und später durch weitere Infoboxen) eine (Unter-)Vorlage aufrufen kann, welche die Validität der CAS-Nr. prüft. Oder nochmals anders formuliert, damit es nicht mehr missverstanden werden kann: einzelne CAS-Nr. direkt in Infobox → Infobox ruft (Unter-)Vorlage auf
Doch, in der en-WP wird geprüft, ob im zugehörigen Item die CAS-Nr. mit Common Chemistry belegt ist.
Bezüglich deines Verwurfs, ich würde mich widersprechen, möchte ich auf meinen ersten Satz verweisen. --Leyo 00:21, 15. Mai 2021 (CEST)
Macht es jetzt wirklich Sinn, an zwei Orten über den gleichen Sachverhalt zu erörtern? Die Vorlage:CASRN ist die von Dir besagte Untervorlage. Ob der Quelltext nun innerhalb der Wikipedia unter einem anderen Namen gespeichert ist und somit projektweit aufgerufen werden kann, oder nur innerhalb der Vorlage:Infobox irgendwo steht, spielt für die Infobox sowie für das Endergebnis absolut keinerlei Rolle. Von daher bin ich es, der in der Tat nicht im Mindesten versteht, warum Du Dich gegen den sich abzeichnenden Konsens stemmst, es auf die einfachste Weise zu erledigen. Und nein, in der EN:WP wird nicht auf Existenz des CAS-Webeintrages geprüft. Vielmehr warst Du selber es, der bemängelte, daß gerade nicht geprüft wird, ob die Fundstelle mit einer CAS-Nummer belegt ist. Ein weiteres Mal widersprichst Du Dir selber. -- Uwe Martens (Diskussion) 00:50, 15. Mai 2021 (CEST)
Welch ein dreister und inkorrekter Vorwurf! Die Infos aus dem verlinkten Diff sind für die Chembox nicht mehr aktuell.
„Die Vorlage:CASRN ist die von [m]ir besagte Untervorlage“, wenn die Infobox Chemikalie diese aufrufen würde. Eine Einbindung im Artikelquelltext innerhalb der Infobox Chemikalie ist natürlich nicht, wovon ich spreche. Aber das weisst du ja selbst. --Leyo 01:17, 15. Mai 2021 (CEST)
Naja, vielen Dank für die Bestätigung, auf was für einem Niveau wir bereits angelangt sind! Es ist hier an dieser Stelle mit Dir definitiv EOD! Weitere Beiträge Deinerseits werde ich ignorieren. -- Uwe Martens (Diskussion) 01:43, 15. Mai 2021 (CEST)

Test-Botlauf

 Info: Mein Bot hat also nun eine Hand voll Testedits gemacht (zu ergänzen war übrigens die Vorlage:CLH-ECHA). Das mit der Prüfung und Ergänzung der Q-Nummern funktioniert auch. Also wenn es denn jetzt Allen genehm ist, stocke ich die Testedits auf 50 auf und beantrage das Botflag. Sollten irgendwann einmal die Vorlagen der Infoboxen geändert werden und die Einbindung der Vorlage:CASRN obsolet werden, dann gelobe ich feierlich, meinen Bot mit den etwaig notwendigen Änderungen zu bemühen! In der Hoffnung, damit dem Fachbereich Chemie zu dienen, 😃 Uwe Martens (Diskussion) 16:24, 14. Mai 2021 (CEST)

Dass hier ein Dateiname unter die Räder gekommen ist, hast Du ja gesehen und vermutlich für die Zukunft unterbunden. Ansonsten stehen von meiner Seite die Ampeln auf grün.
AFAIK werden die 50 Testedits für das Botflag schon mit dem Botaccount erwartet. Aber das wird man Dir dort schon sagen.--Mabschaaf 16:59, 14. Mai 2021 (CEST)
Ja, den Dateinamen hat er zerheckselt, das behebe ich gerade. Daß es solche Dateien gibt, konnte man ja nicht erahnen. Welche Dateiendungen werden da erwartet bitte? PS: Also das mit dem Dateinamen ist behoben, gefiltert habe ich da jetzt die Endungen .svg, .jpg und .png. Was anderes dürfte da ja kaum vorkommen. Wenn Leyo sich nun auch überzeugen ließe, starte ich weitere 40 Testedits. PPS: Nachdem von meiner Seite alle technischen Dinge besprochen sind, habe ich das Vorhaben in der Redaktion Chemie angekündigt (Permanentlink). Meinetwegen kann man die allfällige Diskussion um das ob und warum dorthin auslagern. Grüße, Uwe Martens (Diskussion) 18:34, 14. Mai 2021 (CEST)
@Mabschaaf eine Frage noch: In dieser Abfrage finden sich noch 10 weitere "Chemo-Vorlagen", die problemlos mit abgearbeitet werden könnten (ich habe da eine Funktion im Skript, die mit geändertem Parameter beliebig oft aufgerufen werden kann). Hat es einen besonderen Grund, daß Du diese Vorlagen außenvor lassen wolltest, oder war Deine Liste aus eurer (dann wohl unvollständigen) Projektliste entnommen? Ich habe die vorsorglich noch in mein Skript eingefügt. -- Uwe Martens (Diskussion) 19:05, 14. Mai 2021 (CEST)
Ich habe in meiner Liste die Vorlagen weggelassen, bei denen ich weiß, dass sie schon vollständig zu "Abruf" migriert sind und die, die "Abrufdatum" als Parameternamen nutzen. Das dürfte die Differenz erklären.--Mabschaaf 19:32, 14. Mai 2021 (CEST)
Ach so! Aber es dürfte zumindest unschädlich sein, wenn ich trotzdem alle Vorlagen einmal checke? Für das Skript dauert das dann eine Millisekunde länger, also wurscht. Was dagegen einiges an Zeit in Anspruch nimmt, sind die zahlreichen API-Calls bei CAS, wikidata-todo.toolforge, Wikidata und Wikipedia. Da dauert es bisweilen einige Sekunden, bis der neue Quelltext eines Artikels generiert ist... -- Uwe Martens (Diskussion) 21:55, 14. Mai 2021 (CEST)

 Info: Der Bot läuft nunmehr im Regelbetrieb, alle Tasks wurden implementiert. -- Uwe Martens (Diskussion) 15:12, 26. Mai 2021 (CEST)

Archivierung dieses Abschnittes wurde gewünscht von: PerfektesChaos 17:51, 4. Jun. 2021 (CEST)

Vorschlag zur Code-Optimierung in Modul Hiero:Cartouche

Der nachfolgende Abschnitt wurde ausdiskutiert und in der Implementation berücksichtigt. Er war Bestandteil des vorhergehenden und wurde zur Archivierung ausgegliedert.

Ich habe einen Code-Vorschlag für die Funktion getData:

 local function getData(NameType)
  --NameType = "xxx"
  --mw.log(NameType)  
  local data = {}
  data["Horus"] = {"G5", "serech", "none"}
  data["Seth"] = {"E20", "serech", "none"} 
  data["HorusSeth"] = {"G5-E20", "serech", "none"}
  data["Nebti"] = {"G16", "Cartouche", "none"} 
  data["Gold"] = {"G8", "Cartouche", "none"}
  data["Thron"] = {"M23:X1-L2:X1", "Cartouche", "rtl"}  
  data["Eigen"] = {"G39-N5", "Cartouche", "rtl"}    
  --mw.log(data[NameType][1]) 
  if data[NameType] ~= nil then
    return {code=data[NameType][1], bordertype=data[NameType][2], BorderDefault=data[NameType][3]} 
  else return nil end
 end 

Die Ergänzungen zum Testen der Funktion können natürlich raus. Ich weiß nicht ob du das kennst. Ich mache das so, um zu sehen was in eine Funktion rein geht, was dort passiert und was wieder raus geht. Dann klappt das mt der Fehlersuche viel besser. Goldzahn (Diskussion) 14:43, 30. Dez. 2021 (CET)

Danke für die gute Idee! Ich finde tatsächlich, dass das eleganter aussieht.
Sag, wie schreibe ich so ein Log in eine Datei? Bisher hatte ich mir den dann gegebenenfalls unter bestimmten Bedingungen mit assert angesehen. Kann ich mir das Log vielleicht sogar in einem separaten Ausgabefenster anzeigen lassen, während die Ausgabe des Moduls normal weiter läuft? --Vollbracht (Diskussion) 16:51, 30. Dez. 2021 (CET)
Archivierung dieses Abschnittes wurde gewünscht von: --Vollbracht (Diskussion) 04:07, 9. Jan. 2022 (CET)

Dokumentationsgestaltung in Modul:Hiero/Cartouche

Der nachfolgende Abschnitt war Bestandteil des vorherigen und wurde zur Archivierung ausgegliedert, da er ausdiskutiert und seine Ergebnisse auf die Moduldokumentation angewandt wurde(n).

An dieser Stelle benötige ich Hilfe. Die Mechanismen der Dokumentation sehen hier nur eine Doku unter Lua/Modul/Hiero vor. Wie können die Pfade entsprechend auf Lua/Modul/Hiero/Cartouche umgebogen werden? --Vollbracht (Diskussion) 20:36, 29. Dez. 2021 (CET)

@Vollbracht: „Die Mechanismen der Dokumentation sehen hier nur eine Doku unter Lua/Modul/Hiero vor. Wie können die Pfade entsprechend auf Lua/Modul/Hiero/Cartouche umgebogen werden?“

  • Es hat seinen tieferen Sinn und Grund, warum es viele WP-Unterseiten gibt.
    • Aber in Modul:DateTime/Doku steht nur eine einzige halbe Zeile, und der Einbau dieser Vorlageneinbindung führt dich sofort auf die Generierung aller weiteren Seiten auf Knopfdruck.
    • Und in Modul Diskussion:DateTime/Doku steht die gleiche halbe Zeile, und der Einbau dieser Vorlageneinbindung führt dich sofort auf die Generierung aller weiteren Seiten auf Knopfdruck.
    • Du hättest es also einfach nur so machen brauchen wie vorgesehen.
  • Es gibt nur eine einzige Diskussionsseite zu einem Modul, und auf der werden zentral alle Diskussionen geführt, und nur diese eine wird beobachtet.
  • Hingegen kann zu jedem Untermodul eine eigene Dokumentation angeboten werden: Wikipedia:Lua/Modul/Sort/cellNum ist die spezielle Doku zu Modul:Sort/cellNum für Vorlagenprogrammierer. Wikipedia:Lua/Modul/Sort/cellNum/de ist die Doku für Lua-Programmierer. Even for foreign visitors. Wikipedia:Lua/Modul/Sort enthält hingegen die Anleitung für Vorlagenprogrammierer zum Basis-Modul.
  • „Sag, wie schreibe ich so ein Log in eine Datei?“ Vorlagen – und Module sind nichts anderes als erweiterte Vorlagen – können grundsätzlich nichts in „Dateien“ (Seiten) hineinschreiben, sondern nur im Kontext einer Einbindung einen Text wirksam werden lassen. Heißt: C&P des log und selbst irgendwohin speichern.

VG --PerfektesChaos 18:24, 30. Dez. 2021 (CET)

Also verstehe ich Dich richtig: Wenn mehrere Moduln, wie Modul:Hiero/Cartouche, Modul:Hiero/Cell, etc. existieren, dann ist genau eine Diskussionsseite für Modul:Hiero vorgesehen, auch wenn ein solches Modul nicht existiert? Und die Doku zum nicht existierenden Modul:Hiero legt, wenn diese Vorlage da rein geschrieben wird, die Dokuseiten zu den "Untermoduln" an?
Zweiter Punkt: Das Log will ich gar nicht speichern, sondern nur ansehen. Wo aber kann ich das, wenn die Ausgabe des Moduls zunächst eine andere ist? Lua scheint generell syntaktisch die Rückgabe von zwei Werten zu erlauben. Ist das richtig? Aber, selbst wenn: Am Ende muss ich mein Log in der Website betrachten, in der es eigentlich nichts zu suchen hat. Oder gibt es da eine Lösung mit einem anderen Fenster, oder Tab die am Besten im ANR dann nicht angezeigt wird, sondern nur in der Modulspielwiese? --Vollbracht (Diskussion) 19:10, 30. Dez. 2021 (CET)
Wenn ich das Modul editiere, gebe ich unten eine Vorlage an. Da unten wird dann auch nach der Vorschau Daten des Parsers ausgegeben. Also wie lange er gebraucht hat, Verbrauch, etc. An einer Stelle kann man sich zusätzliche Informationen anzeigen lassen, ich glaube ein Plus-Zeichen ist da, und da werden die mw.log-Daten angezeigt. Es gibt noch ein ähnliches mw Objekt. In den Hilfetexten findet man auch etwas zu mw.log. Die Doku da unten sagt etwas anderes, da gibt es nämlich ein spezielles Fenster für Log Daten, aber irgendwie habe ich das noch nie funktionieren gesehen. PS: Die Schrift jedenfalls ist sehr schön. Ich hatte mich mal mit so etwas wie der "Maya-Schrift" befasst als ich den Artikel "Mesoamerikanisches Ballspiel" anlegte. Die haben ja auch so eine tolle Schrift. PPS: Das war noch bevor es refs in der WP gab!!! Goldzahn (Diskussion) 20:34, 30. Dez. 2021 (CET)
Danke! Bei der Entwicklung von Hiero/Cell werde ich das versuchen zu nutzen.
P.S.: Gab es die Maya wirklich schon vor der Wikipedia? --Vollbracht (Diskussion) 03:29, 31. Dez. 2021 (CET)
Archivierung dieses Abschnittes wurde gewünscht von: --Vollbracht (Diskussion) 04:07, 9. Jan. 2022 (CET)

Entwurfsfragen zu Modul:Hiero/Cell

Zum Modul wurden im Vorhergendenen Abschnitt folgende Fragen gestellt, die beantwortet wurden und der Vervollständigung der Entwurfsdokumentation (spec, s. o.) dienlich waren. Diesen Teil habe ich daher jetzt zur Archivierung ausgegliedert.

Ausgegliederter Text:

Ich kann dazu eigentlich nichts empfehlen oder anmerken. Du programmierst das zwar in Lua, aber letztlich ist das für Vorlagen, mit denen ich mich so gut wie nicht befasst habe. Ich selber habe Wikidata-Tabellen und -Infoboxen in Lua programmiert. Ich denke die Komplexität dieser Grammatik ist OK und mir scheint derartige n-spaltige Tabellen kann man im Portal Ägyptologie an vielen Stellen einsetzen. Bei einer neuen Infobox Pharao würde das bsw. eine einspaltige Tabelle sein, für die jeweils rechte Zelle, nicht war? --Goldzahn (Diskussion) 11:44, 31. Dez. 2021 (CET)
Nein, die Tabelle ist zwei- oder dreispaltig. Gerade die linke Spalte enthält das Sortierkriterium. Es gilt nun Kartuschen und Serechs darzustellen, die künftig, weil jetzt möglich, den archäologischen Vorlagen entsprechend vorzugsweise senkrecht zu schreiben sind. In dem Fall sollte auch die Transliteration und Übersetzung nicht darunter, sondern daneben stehen (dritte Spalte). --Vollbracht (Diskussion) 19:50, 31. Dez. 2021 (CET)
Dann habe ich die Beispiele falsch verstanden. Könntest du zu den beiden Beispielen die Tabelle machen, damit man sehen kann wie das dann aussehen würde? Ich frage mich bsw wie breit eine dreispaltige Darstellung ist (ich editiere per Smartphone). Goldzahn (Diskussion) 13:34, 1. Jan. 2022 (CET)
Das Design könnte am Ende ähnlich wie bei Thot aussehen. --Vollbracht (Diskussion) 14:24, 1. Jan. 2022 (CET)
  1. Wie ist das mit griechisch, akkadisch, hebräische und den Königslisten? Was wird da als NameType genommen?
  2. Macht annotatedName das selbe wie name + Wiki oder worin unterscheidet sich das Ergebnis?
  3. Was machen colspan und rowspan in Wiki? Ist der Text dann n Spalten breit oder n Zeilen hoch? Und was ist mit den Hieros im dreispaltigen Beispiel bei Thron, wo auch colspan steht? Steht da bei Thron in Spalte 1 Thronname, in Spalte 2 und 3 die Hieros und in Spalte 4 und 5 der Hierotext?

Goldzahn (Diskussion) 08:49, 2. Jan. 2022 (CET)

  1. Alle nicht genannten Namenstypen werden in der Liste nicht berücksichtigt. Sie werden also nicht automatisch sortiert und sind unterhalb der Liste als einzelne Zellen einzutragen. Das könnte aber in der Entwurfsphase, in der wir noch sind, auch noch geändert werden. Eine Regelung könnte sein, dass alle Kartuschen in einer aufgeführten Königsliste senkrecht geschrieben werden (eigener NameType). Hierfür müsste aber das Modul:Hiero/Cartouche erweitert werden. Diskussion dann dort. Griechische Kartuschen habe ich noch nicht gesehen.
  2. annotatedName schreibt einen Namen und dahinter ein Wiki. Jedes Element bildet innerhalb der Tabelle eine Zeile. Rowspan für die Titelzelle richtet sich danach, wie viele Elemente für einen NameType eingetragen sind.
  3. Angaben für colspan könnten als Boolean interpretiert werden. Wenn der Wert (~= 1) angegeben ist, soll der Name, oder das Wiki unter dem Namen genau zwei Spalten breit sein, sonst eine. Angaben für rowspan sollen stets nur auf eine Annotation (Wiki hinter einem Namen), bzw auf ein Spacing (Leerraum hinter einem Namen) angewandt werden und ermöglichen, dass sich eine Annotation auf mehrere Namen bezieht, bzw. dass der Leerraum zusammengefasst werden kann, wenn denn einer sein muss.
Diese Informationen sollen noch in der Entwurfsdoku landen. --Vollbracht (Diskussion) 14:30, 2. Jan. 2022 (CET)
Im Modul:Hiero/Cartouche habe ich jetzt die Änderungen vorgenommen. Abgesehen vom griechischen Namen und dem aus Karnak können mit dem Modul schon mal alle Namen berücksichtigt werden. --Vollbracht (Diskussion) 19:35, 2. Jan. 2022 (CET)
Danke Goldzahn (Diskussion) 02:04, 3. Jan. 2022 (CET)
Archivierung dieses Abschnittes wurde gewünscht von: --Vollbracht (Diskussion) 03:20, 9. Jan. 2022 (CET)

Sichtung von Modul:Graph/sandbox

Moin, bei Wikipedia:Gesichtete Versionen/Anfragen steht bereits ein paar Tage Modul:Graph/sandbox als Sichtungsanfrage drin (siehe auch Wikipedia Diskussion:Lua/Modul/Graph#Line color for pie charts). Hat jemand der hier Mitlesenden Zeit zum Testen und Sichten? Danke und Gruß --Swotty22 (Diskussion) 23:41, 24. Sep. 2021 (CEST)

Archivierung dieses Abschnittes wurde gewünscht von: --Swotty22 (Diskussion) 22:41, 27. Jan. 2022 (CET)