Zum Inhalt springen

Benutzer:Dirk123456/Baustellenbaustelle 001/Baustelle-D/Baustelle-D.6

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 8. Mai 2020 um 13:49 Uhr durch Dirk123456 (Diskussion | Beiträge) (Leistungsfähigkeit und Übersichtlichkeit). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Ziel(e) der Baustelle

Ziel 1: Anfangs sollte Baustelle D.6 einen Diskussionsbeitrag zum „Ersten Prototyp“ vorbereiten, zu einem Vorschlag der Wikimedia Deutschland (bzw. zu einer Gruppe von Vorschlägen), die Suche nach Vorlagen zu verbessern.

Ziel 2: Im Laufe des Anwachsens meiner ausschweifenden Erörterungen wurde ein Punkt immer umfassender: die Darstellung eines Beispiels für komplexe Vorlagen. Das Beispiel ist eine sehr leistungsfähige Vorlage, die aber nicht einfach anwendbar ist.

Ziel 3: Im Mai 2020 war die Recherche zum ersten Prototyp abgeschlossen und der „Zweite Prototyp“ stand auf dem Programm. Der Beitrag dazu wurde in Baustelle D.7 vorbereitet und dann „gepostet“. Es verblieb das Ziel 2 ohne das Ziel 1, die Darstellung der komplexen Verhältnisse in einer leistungsfähigen, aber schwer anzuwendenden Vorlage.

Prototyp 1 (Ziel 1, Antwort-Beitrag für Prototyp 1)

Start

Ende

Baustelle D.6

Letzte Version mit den Zielen 1 und 2:

  • Benutzer:Dirk123456/Baustellenbaustelle 001/Baustelle-D/Baustelle-D.6, oldid=199674579

Protokoll

Es wird Folgendes gegenüber der Vorversion oldid=199674579 gelöscht:

  • "Beitrag" bis ausschließlich "Leistungsfähigkeit und Übersichtlichkeit" gelöscht.
  • "A.1     Versuche zur Einbeziehung von allen relevanten Parametern" und "z" gelöscht ("z" war eine lediglich als Markierung gedacht).
  • "Zum Schluss" gelöscht.
  • "Eigenheiten des VE" bis ausschließlich "Drei Formen von Genname(n) -- Material" gelöscht.
  • "Inhibitor_fam nicht in der Untervorlage" -- ausgelagert gelöscht.

"Verbannung" der Ziele 1 und 2 aus der Vorversion oldid=199674579; Fokussierung auf Ziel 3.

Einleitung

Leistungsfähigkeit und Übersichtlichkeit

Nach meinem Erleben ist z. B. die Vorlage:Infobox Protein leistungsfähig, aber nicht einfach anzuwenden. Die Vorlage hat um die 40 Parameter und die resultierende Infobox (H:Infoboxen), eine komplexe Tabelle in der Normalansicht, kann bis zu acht Abschnitte aufweisen. Die optischen Abschnitte entstehen durch Hervorhebung einer entsprechenden Tabellenzeile, die optisch als Überschrift wirkt.

Im einfachsten Fall wird ein Parameter mit seinem Wert mit gleichlautenden Schriftzügen in genau einer Tabellenzeile eingetragen, der Parameter links und der Wert rechts; so wird z. B. aus |Wirkstoffklasse=RNase-Hemmer im Wikitext eine Tabellenzeile, die etwa so aussieht:

Wirkstoffklasse RNase-Hemmer

In anderen Fällen werden zusätzlich automatische Verknüpfungen erzeugt, so werden aus |DrugBank=DB00062 z. B. die „verlinkten“ Schriftzüge DrugBank und DB00062, die dann auf der linken bzw. rechten Seite angeordnet sind. Diese resultierenden Schriftzüge nenne ich hier ›optischer Parameter‹ und ›optisches Argument‹, um „Arbeitsbegriffe“ zu haben.

Der Grund für diese Begriffsabgrenzung ist, dass sich vor allem der ›optische Parameter‹ vom Parameter unterscheiden kann, von dem er abstammt. Ein Beispiel ist der Schriftzug „Sekundär- bis Quartärstruktur“ der vom Parameter Struktur herrührt. Dieser ›optische Parameter‹ (also Sekundär- bis Quartärstruktur) teilt das Wort „Struktur“ mit anderen Schriftzügen („Vorhandene Strukturdaten:“ und Masse/Länge Primärstruktur“), die ebenfalls ›optische Parameter‹ sind. Die genaue Zuordnung lässt sich am einfachsten über das ›optische Argument‹ und den Wert des Parameters herstellen, da sich diese beiden weniger unterscheiden: |Struktur=βαββαβ führt zu „Sekundär- bis Quartärstruktur“ auf der linken und „βαββαβ“ auf der rechten Seite der Tabellenzeile in der Infobox.

Es gibt aber auch ›optische Parameter‹ und ›optische Argumente‹, die auf mehreren Werten verschiedener Parameter beruhen. So bewirken die beiden Parameter↔Argument-Paare |Symbol=ALB und |HGNCid=399 zusammen das „Anzeige-Paar“ mit den Schriftzügen „Gen-Name“ und „ALB“ in der resultierenden Infobox-Tabelle, wobei der Text von |Symbol=ALB herrührt, was halbwegs offensichtlich ist, während die Verknüpfungen vom Parameter HGNCid und seinem Wert 399 stammen, was eher versteckt ist. Der ›optische Parameter‹ „Gen-Name“ erhält eine interne Verknüpfung in die Wikipedia (Human Genome Organisation) und das ›optische Argumente‹ erhält eine Verknüpfung zu einer Datenbank (https://www.genenames.org/tools/search/#!/all?query=399).

Es gibt weitere Mehrdeutigkeiten. So kann das Auftreten des ›optischen Parameters‹ „MEROPS“ auf Peptidase_fam oder auf Inhibitor_fam beruhen.

Neben Überschriften gibt es auch so etwas, wie „übergeordnete Rubriken“, z. B. den Schriftzug „Externe IDs“, der links steht, während sich rechts eine Aufzählung der allgemeinen Form:

  • ›Optischer Parameter‹: ›Optisches Argument‹      oder anders ausgedrückt:
  • Einzel-Rubrik: Konkreter Inhalt

befindet.

Es gibt vielfältige Abhängigkeiten, die nicht in jedem Fall einfach nachzuvollziehendes Verhalten der Parameter und ihrer Werte erzeugen.

Eine Code-Komponente mit vielen Abhängigkeiten ist beispielsweise der bereits erwähnte Parameter "HGNCid" (HGNC: Human Genome Nomen¬clature; siehe Human Genome Organisation), der drei bis vier verschiedene Abschnitte in der resultierenden Infobox beeinflussen kann. Setzt man einen Wert ein, dann wird eine Überschrift „Eigenschaften des menschlichen Proteins“ zwischen die Einleitung und die Eigenschaften gesetzt (auch bei einem unsinnigen Wert, z. B. |HGNCid=ß). Ohne "HGNCid", wenn der Parameter in der Einbindung der Vorlage fehlt oder leer ist (leer: {{Infobox Protein...|HGNCid= |...}}), verschmelzen Einleitung und Eigenschaften zu einem Abschnitt.

Um zwischen einzelnen Abschnitten und kombinierten Abschnitten – die durch das Ausbleiben einer Überschrift entstehen – zu unterscheiden, habe ich einen weiteren „Arbeitsbegriff“ eingeführt, den ›Block‹. Ein ›Block‹ ist ein Bereich innerhalb der Infobox Protein, der eine Überschrift haben kann, aber nicht muss, während ein Abschnitt in dem von mir hier angewendeten „Begriffssystem“ immer eine Überschrift hat.

Ich habe acht Blöcke ausfindig gemacht und diese ›Block A‹ bis ›Block H‹ genannt. Der erste Abschnitt, die Einleitung, kann also aus den beiden Blöcken ›Block A‹ und ›Block B‹ bestehen, wenn die entsprechenden Parameter angewendet werden oder auch nur aus ›Block A‹, wenn ›Block B‹ nicht auftritt oder durch die Wirkung von "HGNCid" eine eigene Überschrift aufweist. ›Block B‹ ist der einzige, der ohne Überschrift in einer Infobox auftreten kann, während alle anderen Blöcke (A und C bis H) immer mit einer Überschrift überschrieben sind, wobei diese Überschrift in einem Fall (›Block F‹) variabel lauten kann.

Die meisten Parameter wirken sich jeweils in genau einem Block aus. Für die Überschrift des Blocks ist fast nie ein einzelner Parameter zuständig, sondern es sind dann nahezu alle, die auch entsprechende ›optische Parameter‹ in „ihrem“ Block aufweisen. Die einzige Ausnahme ist ›Block B‹, dessen Überschrift durch nur einen Parameter, "HGNCid", bedingt wird, wobei dieser Parameter keinen ›optischen Parameter‹, also keinen eigenen Schriftzug in der Infobox produziert.

Es gibt – soweit ich das überblicke – zwei Parameter, die sich in mehreren Blöcken auswirken. Das ist zum einen "UniProt" und zum anderen "HGNCid".

Der Parameter "UniProt" kann sich mit ein und dieselbe Eingabe (z. B. |UniProt=P12345) in zwei Blöcken auswirken:

  • in ›Block C‹ (Überschrift „Bezeichner“) tritt der Schriftzug „UniProt:“ als ›optischer Parameter‹ auf, dessen ›optisches Argument‹ einer Verknüpfung zu einer Datenbank dient (z. B. „P12345“ → https://www.uniprot.org/uniprot/P12345) und
  • in ›Block G‹ (Überschrift „Vorkommen“) bedingt UniProt gegebenfalls eine Verknüpfung zu einer Datenbank (z. B. https://pbil.univ-lyon1.fr/cgi-bin/acnuc-ac2tree?query=P12345&db=HOGENOM), je nachdem ob und wie andere Parameter angewendet werden, die „›Block-G‹-spezifisch“ sind (Homolog_db, Homolog_fam, Homolog_url).

Der bereits erwähnte Parameter "HGNCid" der das Ende von ›Block A‹ und den Anfang von ›Block B‹ definiert, weil er eine Überschrift zwischen beide Blöcke setzen kann, beeinflußt einen dritten Block, den ›Block C‹, der die Überschrift „Bezeichner“ trägt. Es bestehen Abhängigkeiten zwischen den Parametern "Symbol" (Gen-Symbol), "AltSymbols" (alternative Gen-Symbole) und "HGNCid".

Sowohl "Symbol" als auch "AltSymbols" (wie auch andere Parameter) können das Auftreten des Abschnitts mit der Überschrift „Bezeichner“ auslösen. Wenn die Überschrift „Bezeichner“ ausgelöst wird, dann kann ein Schriftzug zur Benennung einer Zeile in diesem Abschnitt der Infobox drei verschiedene Formen annehmen: Gen-Name(n), Gen-Name und Gen-Namen. Vereinfacht ausgedrückt ist "Symbol" für die Einzahl, "AltSymbols" für die Mehrzahl und "HGNCid" für Verknüpfungen zuständig.

Diese Auswirkungen eines einzelnen Parameters an mehreren Stellen hat Vor- und Nachteile.

Der größte Vorteil dürfte sein, dass mit relativ wenig Text viel erreicht werden kann. Der Code |HGNCid=399 innerhalb der Vorlagen-Einbindung {{Infobox Protein...}}

  • deklariert einen Satz von Protein-Eigenschaften als „Eigenschaften des menschlichen Proteins“ (mithilfe der entsprechenden Überschrift),
  • verknüpft den Schriftzug „Gen-Name“ oder „Gen-Namen“ zum Artikel Human Genome Organisation (HUGO) und
  • verknüpft den Wert des Parameters "Symbol" (z. B. |Symbol=399) als Verknüpfungstext zu einer Datenbank für HUGO-Gennamen: https://www.genenames.org/tools/search/#!/all?query=399.

Der größte Nachteil der vielfältigen Abhängigkeiten dürfte sein, dass diese schwer zu beschreiben sind.

Es werden, falls ich nicht etwas übersehen habe, sieben Parameter durch HGNCid direkt beeinflusst: fünf durch die Überschrift „Eigenschaften des menschlichen Proteins“ (Groesse, Struktur, Kofaktor, Precursor, Isoformen) von ›Block B‹ und die zwei genannten (Symbol, AltSymbols) in ›Block C‹.

Im Grunde genommen wird auch der ›Block A‹ durch HGNCid beeinflusst, da die An- oder Abwesenheit der ›Block-B‹-Überschrift („Eigenschaften des menschlichen Proteins“) dazu führt, dass die fünf ›Block-A‹-Parameter (Name, Bild, Bild_legende, Andere Namen, PDB) mal allein und mal zusammen mit den ›Block-B‹-Parametern den ersten Abschnitt gestalten (die Einleitung der Infobox). Das macht dann alles zusammen zwölf zusätzliche Parameter (neben "HGNCid" selbst), bei denen in der Dokumentation zu den Abhängigkeiten von HGNCid etwas stehen müsste.

Die detailierte Untersuchung als Erzählung

Start der Analyse – EC-Nummer und Kategorie

Dass es recht komplexe Zusammenhänge zwischen den Parametern geben kann, habe ich anhand der beiden Parameter "EC-Nummer" und "Kategorie" herausgefunden, die ich in der Vorlagen-Einbindung innerhalb des Artikels DNA-Methyltransferasen entdeckte. Dort fand ich in der „Infobox Protein“ eine Zeile vor, die etwa so aussah (2019-09):

EC, Kategorie , Methyltransferase

Das Komma am Anfang eines Schriftzugs irritierte mich und deshalb sah ich mir die Infobox genauer an – Code links, Tabelle rechts:

Vorlage-Einbindung:
{{Infobox Protein
|Name             = DNA-Methyltransferasen
|Bild             = 
|CAS              = 
|EC-Nummer        = <!--2.1.1.- -->
|Kategorie        = Methyltransferase
|Reaktionsart     = [[Methylierung]]
|Substrat         = [[Nukleotide]]
|Produkte         = Methylnukleotide
}}

Resultierende Infobox (nachgestaltete Tabelle):

DNA-Methyltransferasen
Enzymklassifikation
EC, Kategorie , Methyltransferase
Reaktionsart Methylierung
Substrat Nukleotide
Produkte Methylnukleotide

Es fällt auf, dass ein Parameter auf verschiedene Arten leer sein kann: „richtig leer“, dann folgt dem Gleichheits-Zeichen ("=") nichts und „eigentlich leer“, dann folgt dem Gleichheits-Zeichen ein Kommentar: "<!--2.1.1.- -->", der von der auswertenden Software ignoriert wird. Für die auswertende Software sieht der Code an der entsprechenden Stelle wahrscheinlich ungefähr so aus:

  • »{{...|EC-Nummer=|...}} « und für einen Leser – wie mich – ungefähr so:
  • »{{...|EC-Nummer = <!--2.1.1.- -->|...}}«.

Zu der Zeit (2019-09) als ich das erste Mal auf diesen Code der Vorlagen-Einbindung stieß, wusste ich noch nicht, wie "EC-Nummer" und "Kategorie" zusammenarbeiten und dachte, ich könnte in der Infobox etwas ähnliches, wie das folgende unterbringen:

EC, Kategorie Die DNA-Methyltransferasen sind eine Gruppe von Enzymen mit mehreren EC-Nummern (EC 2.1.1.37; EC 2.1.1.72; EC 2.1.1.113), Methyltransferase

Das ging nicht ohne weiteres. Deshalb habe ich Experimente durchgeführt, um über die beiden Parameter ("EC-Nummer" und "Kategorie") und die „Infobox Protein“ als ganzes mehr zu lernen. Ich lernte dabei z. B.:

  • dass mehrere Parameter gleichermaßen für die Überschrift „Enzymklassifikation“ zuständig sind,
  • dass man einen Parameter mehrfach eingeben kann und der Wert des letzten Eintrags relevant ist (»...|EC-Nummer = A |Kategorie = Methyltransferase |EC-Nummer = B |...« ergibt »B, Methyltransferase«),
  • dass bei externen Verknüpfungen nicht alle Wörter gleichermaßen relevant sind, wenn ein Wert eines Parameters mehrere Wörter aufweist (»...|EC-Nummer = eins zwei drei|...« wird zu »zwei drei eins zwei drei«, weil »[https://www.brenda-enzymes.org/enzyme.php?ecno=eins zwei drei]«).

Letztlich war mir nicht klar, ob die Programmierung von „Vorlage:Infobox Protein“ zwischen abwesenden und leeren Parametern unterscheidet. Ich dachte, dass ich vielleicht den Programm-Code selbst mal ansehe.

komm-code-segm -/- Kommentiertes Code-Segment
... Der vorausgehende Code kümmert sich nicht um die Parameter "EC-Nummer" und/ oder "Kategorie" und wird deshalb ausgelassen.
|- Zeilenumbruch für die Wikitext-Tabelle.
{{#if: {{{EC-Nummer|}}}{{{Kategorie|}}}
{{{Peptidase_fam|}}}{{{Inhibitor_fam|}}}
{{{Reaktionsart|}}}{{{Substrat|}}}{{{Produkte|}}}
{{{MoreEC1|}}}{{{MoreEC2|}}}{{{MoreEC3|}}} |
Prüfung der aufgeführten Parameter. Wenn min­destens einer dieser Para­meter auftritt, dann ...
  ! colspan="3" style="background:#90EE90;" 
{{!}} {{#if:
{{{Inhibitor_fam|}}}|Inhibitorklassifikation|
{{#if:
{{{MoreEC1|}}}{{{MoreEC2|}}}
{{{MoreEC3|}}}|Enzymklassifikationen|Enzymklassifikation}}}}
... werden die Formatierungsangaben der Tabellenzelle geschrieben; es wird auf Inhibitor_fam geprüft und gegebenfalls „Inhi­bitor­klassifi­kation“ eingetragen. Ansonsten wird noch ausgewertet, ob MoreEC1 bis 3 auftreten und wenn das so ist, wird „Enzym­klassifi­ka­tionen“ eingetragen. Wenn weder Inhibitor_fam, noch MoreEC1 bis 3 auftreten, wird „Enzymklassifikation“ eingetragen.
  {{!}}- Zeilenumbruch für die Wikitext-Tabelle.
  Nachdem diese Überschriftenzeile der Infobox geschrieben wurde, werden die beiden Parameter EC-Nummer und Kategorie ausgewertet. Zutreffende Code-Segmente werden in runden Klammern angegeben:
  {{#if: {{{EC-Nummer|}}}{{{Kategorie|}}}| Wenn ({{#if:) mindestens einer der beiden Parameter auftritt ({{{EC-Nummer|}}}{{{Kategorie|}}}), dann (|) ...
  {{!}} [[EC-Nummer|EC, Kategorie]] ... wird eine neue Tabellenzelle eröffnet ({{!}}) und ein Verknüpfungstext geschrieben ([[EC-Nummer|EC, Kategorie]]), der „EC, Kategorie“ lautet und den Artikel EC-Nummer als Linkziel hat. Die Tabellenzelle ist die erste einer Zeile, da bereits eine Zeilenumbruch geschrieben wurde (siehe weiter oben).
  {{!}} colspan="2" style="text-align:center;" {{!}} {{#if:{{{EC-Nummer|}}}|<span class="plainlinks">[https://www.brenda-enzymes.org/php/result_flat.php4?ecno={{{EC-Nummer}}} {{{EC-Nummer}}}]</span>}}{{#if: {{{Kategorie|}}}|,&nbsp;[[{{{Kategorie}}}]]}} }} Es wird eine zweite Tabellenzelle eröffnet ({{!}}), die ein Verbund von zwei Zellen werden soll (colspan="2") und deren Text zentriert werden soll (style="text-align:center;"). Diesen Forma­tierungs­anweisungen soll der eigentliche Text folgen ({{!}}), dessen Inhalt an Bedingungen geknüpft wird ({{#if:...}}). Und zwar soll beim Auftreten von EC-Nummer ({{{EC-Nummer|}}}|) ein formatierter (<span ...>...</span>), externer Link ([https://...]) geschrieben werden, der einen allgemeinen (www.brenda-enzymes.org/php/result_flat.php4?ecno=) und einen speziellen Teil ({{{EC-Nummer}}}) beinhaltet. Dieser spezielle Teil entpricht, wie auch der Verknüpfungstext ({{{EC-Nummer}}}), der EC-Nummer.
Die Verknüpfung wird wie eine interne Wikipedia-Verknüpfung formatiert (class=“plainlinks“) und nicht wie eine externe Verknüpfung, die sie eigentlich ist.
Falls der Parameter Kategorie auftritt ({{#if: {{{Kategorie|}}}|), werden ein Komma und ein geschütztes Leerzeichen angehängt (,&nbsp;) und es folgt die Wikipedia-intern verknüpfte „Kategorie“-Angabe ([[{{{Kategorie}}}]]).
  {{!}}- Umbruch der Tabellenzeile
...  Es folgt weiterer Code, der die beiden Parameter "EC-Nummer" und "Kategorie" nicht unmittelbar einbezieht.
komm-code-segm.end

Die Formulierungen der Form: {{#if: ... {{Parameter|}}}... deuten darauf hin, dass jeweils ein Parameter erwartet wird, der weder abwesend noch leer ist. Allerdings ist der Code auch mit Syntaxhervorhebung nicht unbedingt übersichtlich (|}}}{{{, |}}}|, }}}]]}} }} usw.), so dass ich nicht mit mit Bestimmtheit voraussagen konnte, ob es für die beiden Parameter EC-Nummer und Kategorie egal ist, ob sie "Abwesend" oder "Leer" sind.

Deshalb hatte ich eine Untersuchung mit den Zuständen "Abwesend" (0), "Leer" (1) und "Befüllt" (2) durchgeführt – für die zwei Parameter EC-Nummer und Kategorie. Das ergibt 32 = 9 Kombinationen. Diese wurden von 2*0 + 1*0 = 0 bis 2*3 + 1*3 = 8 nummeriert. Das sah etwa so aus:

  • 0 – Beide Parameter, EC-Nummer und Kategorie, sind abwesend: {{Infobox Protein|Name=Name_0}}
  • ...
  • 4 – Beide Parameter leer: {{Infobox Protein|Name=Name_4|EC-Nummer=|Kategorie=}}
  • 7 – EC-Nummer befüllt; Kategorie leer: {{Infobox Protein|Name=Name_7|EC-Nummer=1.2.3.4|Kategorie=}}
  • 8 – Beide Parameter befüllt: {{Infobox Protein|Name=Name_8|EC-Nummer=1.2.3.4|Kategorie=Kategorisch}}

Daraus ließ sich nach visueller Prüfung der neun Infoboxen in der Normalansicht ableiten, dass die beiden Zustände "Abwesend" und "Leer" zumindest für diese beiden Parameter (EC-Nummer und Kategorie) keinen Unterschied ergeben.

Das Komma in EC, Kategorie

Die ursprüngliche Frage, was man mit einer Protein-Gruppe macht (DNA-Methyltransferasen), die nach dem EC-Nummern-System selbst keine einzelne EC-Nummer hat, sondern mehrere Mitglieder, von denen jedes eine EC-Nummer besitzt, war damit noch nicht geklärt.

Alle drei Mitglieder (EC 2.1.1.37; EC 2.1.1.72; EC 2.1.1.113) gehören zwar in die gleiche Gruppe, die “sub-subclass Methyltransferases”, also in die Unter-Unterklasse Methyltransferasen, so dass man eine „Kategorie“ hätte; die vorangestellte Nummer dieser Unter-Unterklasse – EC 2.1.1 oder 2.1.1.- oder auch EC 2.1.1.- – entspricht aber einer anderen Gruppe, den „Methyltransferasen“ und eben nicht den „DNA-Methyltransferasen“, für die die „Infobox Protein“ im konkreten Fall übersichtliche Information liefern soll.

Insgesamt ist eine Darstellung dieser Form: Parameter1, Parameter2 <==> Argument1, Argument2 quasi als ›optischer Doppel-Parameter‹ ungewöhnlich (rechts als Tabellenzeile).
›Optischer Doppel-Parameter‹
Parameter1, Parameter2 Argument1, Argument2
Diese Ansicht (Schema einer Infobox, rechts) liefert mit dem Komma am Beginn eines Schriftzugs keine sehr schlüssige Information ...
DNA-Methyltransferasen
Enzymklassifikation
EC, Kategorie Methyltransferase
... und diese Ansicht (Schema einer Infobox, rechts) irritiert, weil sie suggeriert, das EC und 2.1.1.- sich direkt auf die Enzymklassifikation der DNA-Methyltransferasen beziehen würde, also „EC 2.1.1.−  DNA-Methyltransferase“ gelten würde.
DNA-Methyltransferasen
Enzymklassifikation
EC, Kategorie 2.1.1.-Methyltransferase

Die Empfehlungen zu den vier Ebenen des EC-Nummern-Systems und ihre häufig gefundenen Umsetzungen laufen darauf hinaus, dass Ebenen von der höchsten Ebene zur untersten von oben nach unten oder von links nach rechts angeordnet werden. Innerhalb einer Ebene steht die EC-Nummer zuerst und ein zutreffender Name, falls angegeben, unmittelbar dahinter. Die Ebenen werden stark voneinander abgegrenzt, die EC-Nummer hat als eindeutigere Komponente Vorrang gegenüber einer Benennung.

Beispiele:

Unter BRENDA wurde ein Schema gefunden (2019-11), dass – wenn man einige graphische Elemente weg lässt – in etwa so aussah, wie rechts dargestellt.
EC Tree
2 Transferases
2.1 Transferring one-carbon groups
2.1.1 Methyltransferases
2.1.1.37 DNA (cytosine-5-)-methyltransferase
Unter MetaCyc wurde eine Zeichenkette gefunden (2019-11), die die Hierarchie­verhält­nisse versinnbildlicht, wie rechts dargestellt. Parent class: EC-Numbers → 2 -- Transferases → 2.1 -- Transferring one-carbon groups → 2.1.1 -- Methyltransferases

Letzlich ist jede der vier Ebenen im EC-Nummern-System eine „Kategorie“, da nicht nur die drei höheren Ebenen, die Enzymklassen (Klasse, Unterklasse und Unter-Unterklasse) jeweils Mitglieder beherbergen, sondern auch die unterste Ebene, die sogenannten Enzymeinträge oder Seriennummern. Nach den „Empfehlungen zur Nomenklatur und Klassifizierung von Enzymen anhand der von ihnen katalysierten Reaktionen“, welche von einem Nomenkalturausschuss (NC-IUBMB) im Auftrag des IUBMB gegeben werden, gehören alle Enzyme, die innerhalb von DNA die Nukleinbase Cytosin an der Position 5 methylieren (DNA-Methylierung) zur Seriennummer EC 2.2.1.37 mit der Benennung (akzeptierter Name) "DNA (cytosine-5-)-methyltransferase". Das sind sehr viele verschiedene Enzyme in allen möglichen Lebewesen.

Sichtweisen

Insofern könnte man der Formulierung „EC, Kategorie“ durchaus so verstehen, dass „EC“ die Nummer sein soll und „Kategorie“ die Bezeichnung der zugeordneten Gruppe, die all die Enzyme umfasst. Es gäbe also zwei Sichtweisen:

  • die ›Gehört-in‹-Sichtweise – die EC-Nummer gehört in die Kategorie (im Schriftzug „EC, Kategorie“) und
  • die ›Entspricht‹-Sichtweise – die EC-Nummer entspricht der Kategorie (im Schriftzug „EC, Kategorie“).

Gegen die ›Gehört-in‹-Sichtweise spricht, dass die Reihenfolge der Hierarchie-Ebene unüblich ist und gegen die die ›Entspricht‹-Sichtweise ist einzuwenden, dass das Wort „Kategorie“ selbst eine übergeordnete Ebene andeutet.

In der Wikipedia könnte man auch an die Wikipedia:Kategorien denken. In der englischen Wikipedia wurde versucht, das EC-Nummern-System mit seinen Enzymklassen und Enzym­ein­trä­gen so abzubilden, dass es sowohl dem Wikipedia-System mit Kategorien und Artikeln und den Empfehlungen hinsichtlich der zur Nomenklatur und Klassifizierung entsprechen kann:

Die oberste Einteilungsebene des EC-Systems (z. B. "Hydrolases" oder "Transferases" für die EC 1 Hydrolases oder EC 2 Transferases) ist nur durch den Namen, aber nicht durch die EC-Nummer erreichbar, während die darunter lie­gen­den Enzymklassen eher durch jeweilige EC-Nummer, als durch die Benennung erreichbar sind (z. B. "EC 2.1", aber nicht "Trans­ferring one carbon groups"). Die Enzym­klas­sen (Hierachie-Ebenen 1 bis 3) wurden in Wikipedia-Kategorien erfasst (Category: ...), während die Enzymeinträge (Hierachie-Ebene 4) oft als Weiterleitungen der jeweiligen EC-Nummer auf mehr oder weniger passende Artikel angelegt sind.

In der deutschen Wikipedia gibt es keine „Kategorie:EC 2.1“, „Kategorie:Trans­ferring one carbon groups“ oder „Kategorie:Eine Kohlenstoff-Gruppe übertragend“, so dass die Möglichkeit weitestgehend entfällt, den Parameter "Kategorie" als Wikipedia-Kategorie zu betrachten.

Unter-Vorlagen

Egal, ob man mit der ›Gehört-in‹- oder der ›Entspricht‹-Sichtweise auf eine „Infobox Protein“ schaut, bei einer Proteingruppe, die drei EC-Nummern hat, wie das bei den DNA-Methyltransferasen der Fall ist, wäre die Angabe mehrerer EC-Nummern hilfreich. Dafür kann man die sogenannte Unter-Vorlage Vorlage:Infobox_Protein/MoreEC nutzen.

Es gibt drei Parameter in der Vorlage:Infobox Protein, MoreEC1, MoreEC2 und MoreEC3, die auf jeweils gleiche Weise diese Unter-Vorlage Vorlage:Infobox_Protein/MoreEC einbeziehen können, um so drei weitere „Enzymklassifikationen“ zu bekommen. Diese Mehrzahlform, die dann statt der Einzahl (Enzymklassifikation) als Überschrift auftaucht, irritiert etwas, da die gleiche Enzymklassifikation – nämlich die nach dem EC-Nummern-System – nur mehrfach angewendet wird.

Es sind sechs Parameter in der Unter-Vorlage, Vorlage:Infobox_Protein/MoreEC vorhanden (EC-Nummer, Kategorie, Peptidase_fam, Reaktionsart, Substrat, Produkte), die es sämtlichst auch mit gleichen Namen in der übergeordneten Vorlage:Infobox Protein gibt. Das Verhalten ist ähnlich; wahrscheinlich werden alle genannten sechs Parameter-Namen im gleichen Abschnitt angezeigt. Den ›optischen Doppel-Parameter‹ (Schriftzug „EC, Kategorie“) gibt mehrfach im selben Abschnitt der Infobox, durch die übergeordnete Vorlage und die (mehrfache) Einbeziehung der Unter-Vorlage. Der jeweilige Schriftzug „EC, Kategorie“ muss als eine Art Unter-Überschrift dienen, den zwischen den Angaben zu unterschiedlichen EC-Nummern gibt es sonst keine weiteren optischen Abgrenzungen.

Zur Zeit meiner ersten experimentellen Anwendungen der »Mehr-als-eine-EC-Nummer-Parameter« in der Vorlage:Infobox Protein der entsprechenden Unter-Vorlage war mir noch nicht klar, welche Vielfalt die Überschriften der Abschnitte aufweisen können und welche es überhaupt gibt (2019-10). Ich nahm zur Kenntnis, dass es eine weitere Unter-Vorlage gibt (Vorlage:Protein Orthologe) und das auch Parameter-Werte weitere Vorlagen enthalten können (z. B. |PDB = {{PDB2|1YY1}}, {{PDB2|ABCD}}), ging aber davon aus, das ich das für meine spezifischen Betrachtungen nicht brauche.

Möglichst alle Parameter

Langsam wurde klar, dass die Beziehung möglichst aller Parameter zueinander untersucht werden müsste – oder wenigsten der wichtigsten – wenn ersteres nicht gehen würde.

Der Hauptgrund war, dass ganz grundsätzlich Anzeige-Elemente in der Infobox (Schriftzüge, Formatierungen, Verknüpfungen) den Eingabe-Elementen einer Vorlage-Einbindung (Parameter und Werte) zugeordnet werden sollten. Weiterhin hatte ich den Verdacht, dass einige Zusammenhänge in der Vorlage:Infobox Protein nicht notwendigerweise meiner eigenen Denkweise entsprechen könnten, weswegen es besser wäre, sie zu erkunden.

Ich wollte deshalb die Beispiele im Abschnitt „Parameter-Details“ der Vorlage "Infobox_Protein" entnehmen, um daraus eine „allumfassende Vorlage-Einbindung“ zu erstellen (2019-12).

Es wurde während der Analyse immer deutlicher, dass man sich hinsichtlich der möglichen Änderung von Komponenten auf einen Referenz-Zeitpunkt beziehen müsste.

Da meine Untersuchungen Ende September 2019 begannen, habe ich den 29. September 2019 als Stichtag und 12:00 Uhr Mittags (Mitteleuropäische Sommerzeit) als Stichzeit gesetzt. Die genaue Uhrzeit spielt meist keine Rolle, da weder der Beispiel-Artikel, noch die hier betrachtete Vorlage, noch die relevanten Unter-Vorlagen, noch die Vorlage-Dokumentationen zu dieser Zeit geändert worden sind.

Der Beispiel-Artikel, „DNA-Methyltransferasen“, wurde zwar selben Tages geändert (Änderung am 29. Sep. 2019, nach 18:00 Uhr: oldid=192711864), nicht aber die dort relevante Vorlage-Einbindung der „Infobox Protein“. Die Referenz-Version für den Artikel, „DNA-Methyltransferasen“, ist diejenige, die am 29. Sep. 2019 mittags bestand hatte (oldid=187579075, Version vom 15. April 2019).

Die Analyse möglichst aller Parameter begann also mit dem Kopieren einer Tabelle aus dem Abschnitt „Parameter-Details“,

  • aus der Vorlage: Vorlage:Infobox Protein, oldid=183851377#Parameter-Details, Programm-Version vom 19. Dez. 2018 – oder –
  • aus der Dokumentation, Vorlage:Infobox Protein/Doku, oldid=175729659#Parameter-Details, Dokumentations-Version vom 3. April 2018.

Am Stichtag (29.9.'19) und darüber hinaus (bis zum 27.12.'19) band die damals aktuelle Programm-Version (oldid=183851377) den Text der damals aktuellen Dokumentations-Version (oldid=175729659) ein, so dass es keinen Unterschied machte, ob die Tabelle indirekt aus der Einbindung oder aus der Dokumentation entnommen wurde (am 5.12.'19).

Achtung! — Heute bindet die damalige Programm-Version („eigentliche Vorlage“) den Text der heutigen Dokumentation ein:

Die folgenden Tabellen stellen die relevanten Versionen in Bezug zur Referenzzeit bzw. zum Stichtag zusammen. Es wurden:

in die Tabellen aufgenommen, nicht aber Vorlagen, die innerhalb des Textes von Parameter-Werten angewendet werden.

Vorlage-Einbindung im Artikel
Name – Vorlage und Artikel Vorlage-Einbindung wie am Stichtag (29. Sep. 2019) Gültigkeit "bis" und Nachfolge-Version der Vorlage-Einbindung Aktuell
Vorlage-Einbindung der „Infobox Protein“ im Artikel „DNA-Methyltransferasen ab 15. April 2019, oldid=187579075 – Artikel-Version gültig am Stichtag zur Referenzzeit;

es gibt weitere Artikel-Versionen mit derselben Vorlage-Einbindung – späteste am 3. Nov. 2019, oldid=193718634

bis 27. Februar 2020, ab da oldid=197225232 – Artikel-Version mit einer geänderten Vorlage-Einbindung DNA-Methyltransferasen
Vorlagen und Versionen
Name – Vorlage oder Dokumentation Gültigkeit "ab", Version am Stichtag (29. Sep. 2019) Gültigkeit "bis" und Nachfolge-Version Aktuell
Infobox Protein ab 19. Dez. 2018, oldid=183851377 bis 27. Dez. 2019, ab da oldid=195259690 Vorlage:Infobox Protein
Infobox Protein/Doku ab 3. April 2018, oldid=175729659 bis 27. Dez. 2019, ab da oldid=195259871 Vorlage:Infobox Protein/Doku
Infobox Protein/MoreEC ab 13. Sep. 2013, oldid=122513315 später als 29. April 2020 Vorlage:Infobox Protein/MoreEC
Protein Orthologe ab 1. Mai 2018, oldid=177045241 bis 16. März 2020, ab da oldid=197818503 Vorlage:Protein Orthologe
Protein Orthologe/Doku ab 7. Mai 2017, oldid=165298437 später als 29. April 2020 Vorlage:Protein Orthologe/Doku

Nach einigen Versuchen der Anwendung von Parametern und Beispielen aus zwei Abschnitten der „Doku“ (Infobox Protein/Doku oldid=175729659#Parameter-Details, oldid=175729659#Kopiervorlage) hatte ich eine Vorlage-Einbindung, die – ohne Mitzählen von Unter-Vorlagen – 40 Parameter enthielt. Einige Parameter von den 43 Parameter-Namen unter „Parameter-Details“ und von den 41 Namen unter „Kopiervorlage“ waren nicht gültig – "Bild2" und "Bild_legende2" (aus „Kopiervorlage“) sowie "AltSymbol" (aus „Parameter-Details“). Zwei Parameter, MoreEC2 und MoreEC3, wurden heraus genommen, da sie die gleiche Unter-Vorlage einbezogen, wie MoreEC1, so dass kein anderes Verhalten zu erwarten war.

Ich habe für Parameter von Unter-Vorlagen eindeutige Benennungen „erfunden“, um sie von den Parametern von der Vorlage "Infobox Protein" (Programm-Code: oldid=183851377; Doku: oldid=175729659) unterscheiden zu können:

Tritt ein Parameter-Name, z. B. "Kategorie", in einer Vorlage-Einbindung zweimal auf, dann heißt der Parameter in der übergeordneten Vorlage einfach nur Kategorie, während der Parameter in der untergeordneten Vorlage auch den Namen des übergeordneten Parameters (z. B. MoreEC1) enthält: MoreEC1‑>Kategorie.

Im folgenden Beispiel-Code-Segment wird das gezeigt:

  • {{Infobox Protein |... | Kategorie = ... |MoreEC1 = {{Infobox Protein/MoreEC |... |Kategorie = ... |... }} ...|...}}

Die zuerst aufgeführten Parameter heißen Kategorie und MoreEC1, während ich den Parameter in der Vorlage-Verschachtelung als MoreEC1‑>Kategorie bezeichne.

Für die Unter-Vorlage "Infobox Protein/MoreEC" (Programm-Code und Doku: oldid=177045241) wurden nur zwei Parameter ausgewählt – MoreEC1‑>Name und MoreEC1‑>Kategorie.

Für die Unter-Vorlage "Protein Orthologe" (Programm-Code: oldid=177045241; Doku oldid=165298437) wurden nicht alle möglichen 20, sondern nur 6 Parameter, vor allem Pflichtparameter, einbezogen – z. B. Orthologe‑>Spezies1 und Orthologe‑>Spezies2.

Das Beispiel einer „Riesenvorlage“ mit über 40 direkten und „untergeordneten“ Parametern wurde an entsprechender Stelle eingebunden (Benutzerseite als Baustelle) und das Ergebnis – die als Infobox bezeichnete HTML-Tabelle – analysiert. Der erstaunlichste Aspekt war für mich, dass der Abschnitt „Enzymklassifikation“ jetzt „Inhibitorklassifikation“ hieß.

Die resultierende Tabelle in der Normal-Ansicht wurde in einen Schreib-Programm und einem Tabellenkalkulations-Programm weiter verarbeitet.

Die subjektiv als „atomar“ erscheinenden Schriftzüge wurden strukturiert, nummeriert und katalogisiert. Es erwies sich als sinnvoll, den Parametern möglichst markante und einmalige, wenn auch sachlich sinnlose Werte zuzuordnen, um sie als Schriftzüge in der Infobox wiederzufinden: z. B. |CASergänzend="CASergänzend" freier Text.

Zeichenketten

Anfangs unterschied ich zwischen allgemeinen und konkreten Schriftzügen, später wurde daraus ein Konzept

  • mit Eingabe-Elementen – den Parametern und Argumenten (Parameter-Werten) – und
  • mit Anzeige-Elementen – den Überschriften, ›optischen Parametern‹ und ›optischen Argumenten‹ –

auf der einen Seite sowie

  • mit allgemeinen Elementen – den Parametern, Überschriften und ›optischen Parametern‹ – und
  • mit konkreten Elementen – den Argumenten (Parameter-Werten) und ›optischen Argumenten‹ –

auf der anderen Seite.

Den Hintergrund dieser Überlegungen bildete meine Absicht, eine alphabetisch sortierte Tabelle zu erstellen, die alles enthält, was Buchstaben hat und bei Anwendung der Vorlage „Infobox Protein“ wiederkehrender Natur ist. Deshalb habe ich einen weiteren „Arbeitsbegriff“ eingeführt, die ›konstante, atomare Zeichenkette‹, die einen allgemein verwen­deten, nicht mehr verkürzbaren Textteil darstellt.

Bei einem Beispiel, bei dem der zugrunde liegende Wikitext |OMIM=103600 in der Vorlage-Einbindung den der Schriftzug „OMIM: 103600“ in der resultierenden Infobox hervorruft, wäre "OMIM" eine ›konstante, atomare Zeichenkette‹. Der Schriftzug in der Infobox hat einen allgemeinen Teil: „OMIM: “ und einen konkreten: „103600“ und der Wikitext ebenfalls; das sind der allgemeine Parameter OMIM und sein konkreter Wert 103600. Die beiden allgemeinen, in gleicher Form wiederkehrenden (also ›konstanten‹) Komponenten der „Infobox Protein“ – das Anzeige-Element „OMIM: “ und das Eingabe-Element OMIM – beinhalten eine gemeinsame, nicht mehr sinnvoll teilbare (also ›atomare‹) Zeichenkette, nämlich "OMIM".

Doppelpunkten mit Leerzeichen, die der optischen Abgrenzung dienen, habe ich einen Sonderstatus eingeräumt, es sind zwar Zeichenketten, werden aber als Hervorhebungen betrachtet, ähnlich wie die Umrandungen von Tabellenzellen. Auch das Komma mit dem anschließenden geschützten Leerzeichen, dass bei Einsatz des Parameters Kategorie oder auch MoreEC1‑>Kategorie auftritt und dem resultierenden Schriftzug vorangestellt wird, ist zwar eine Zeichenkette, dient aber der optischen Abgrenzung.

Die Tabelle mit den allgemeinen Zeichenketten, die in der „Infobox Protein“ angewendet werden oder auftreten können, könnte also ungefähr so aussehen:

Zeichenketten Anzeige- und Eingabe-Elemente
...
Kategorie Eingabe-Element, Parameter: "Kategorie"; siehe ...
...
OMIM 1. Anzeige-Element, ›optischer Parameter‹: "OMIM:"; siehe ...
2. Eingabe-Element, Parameter: "OMIM"; siehe ...
...

Da ich unmöglich alle Varianten durchtesten konnte, die es geben könnte, entschied ich mich, den hauptsächlich zugrunde liegenden Programm-Code systematischer zu durchforsten (Vorlage "Infobox Protein", Programm-Code: oldid=183851377). Ich habe den Quell-Code Kopiert und in einem Schreibprogramm und einen Tabellenkalkulations-Programm weiter „verarbeitet“. Ähnlich wie bei den ›konstanten, atomaren Zeichenketten‹ ging es darum, alles zu erfassen, was allgemein auftreten kann. Ein Vorteil dieser Vorgehensweise ist, dass auch Code erkannt werden kann, der sich in einer konkreten Anwendung möglicherweise nicht auswirkt.

Der Code wurde mit „Suchen und Ersetzen“ schrittweise in möglichst sinnvolle Einzelteile zerlegt und zeilenweise geordnet. Anschließend wurde mit „Duplikate entfernen“ die Redundanz reduziert und dadurch das Vorkommen geprüft. Die Vorgehensweise erforderte einige „Handarbeit“ meinerseits, z. B., weil „Suchen und Ersetzen“ innerhalb eines Schreib-Programms kein professionelles Analyse-Werkzeug innerhalb einer Entwicklungsumgebung (IDE) ist. So konnte ich beispielsweise durch „Abhacken“ der Zeilen hinter "]]" zwar ganz gut die internen Verknüpfungen zu Wikipedia-Seiten isolieren, aber nur umständlich herausfinden, wo ein einzelnes "en" herkam. Durch Rückverfolgung von Zeilennummern sah ich dann, dass dies die Endung eines Links war, nämlich von [[Isoform]]en.

Die Quell-Code-Analyse zeigte, dass zwei Parameter, die zuvor als ungültig (unbekannt) getestet worden sind – „Bild2“ und „Bild_legende2“ – durchaus im Quell-Code auftreten.

Der Grund dafür, dass der Programm-Inhalt für die Parameter „Bild2“ und „Bild_legende2“ nicht wie erwartet abgearbeitet wird, ist eine Code-Bereich, der dem „eigentlichen“ Programm-Code folgt und der „Parameterwartung“ genannt wird. In diesem Bereich werden „Bild2“ und „Bild_legende2“ nicht aufgeführt.

Vorlage-Programm-Code (code-tab)
Rechts: Code-Auschnitte aus der Vorlage "Infobox Protein":
  • „Eigentlicher Programmcode“ (oben),
  • Parameterwartung (Mitte) und
  • Dokumentation (unten).

Vorlage:Infobox_Protein, Version: https://de.wikipedia.org/w/index.php?oldid=183851377;

gültig zwischen 19. Dez. 2018 und 27. Dez. 2019, also auch zur Referenzzeit (Stichtag 29. Sep. 2019).

  •  <onlyinclude>{| class="float-right hintergrundfarbe2 infobox wikitable" id="Vorlage_Infobox_Protein" style="fo ... 

 ... ausgelassener Text ... 

  •  ... ologe|}}} | {{{Orthologe}}} }}
  •  |}<!--
  •  
  •  Parameterwartung
  •  
  •  --><includeonly><span class="editoronly" style="display:none;">{{#invoke:TemplatePar|check
  •  |opt= Name= Bild= Bild_legende= Andere Namen= PDB= Groes ... 

 ... ausgelassener Text ... 

  •  ... ate= [[Vorlage:Infobox Protein]]
  •  }}</span></includeonly><!--
  •  
  •  --></onlyinclude>
  •  
  •  {{Dokumentation}}

Ein weiterer, bereits zuvor als ungültig eingestufter Parameter-Name, der in der Dokumentation gefunden wurde, ist „AltSymbol“. Für diese Parameter-Bezeichnung habe ich im Code eine gültige Schreibweise gefunden: "AltSymbols".

Es gibt – soweit ich das überblicken konnte – innerhalb der Vorlage "Infobox Protein" in den betrachteten Versionen fünf Bereiche, in denen Parameter-Namen auftauchen: drei in der Dokumentation und zwei im Programm-Code.

In der Dokumentation () waren drei Abschnitte vorhanden, in denen Listen oder Tabellen mit Parameter-Namen gefunden werden konnten. Im Abschnitt "Kopiervorlage" gibt es eine Vorlage-Syntax mit 41 Namen als Kopiervorlage für die Einbindung in Artikeln, im Abschnitt "Vorlagenparameter" stehen 43 Namen mit ihren „Features“, z. B. Datentypen und im Abschnitt "Parameter-Details" steht eine Tabelle mit Erklärungen und Beispielen.

Im Programm-Code () habe ich zwei Bereiche entdeckt, in denen Parameter-Namen auftauchen: den „eigentlichen“ Programm-Code (43 Namen), der die Anweisungen für das Schreiben einer Infobox als Tabelle mit Wikitext enthält und den ich fürderhin "Programmablauf-Bereich" nenne und den Bereich "Parameterwartung" (41 Namen), in dem definiert wird, welche Parameter-Namen Gültigkeit haben.

Insgesamt habe ich 44 Parameter-Benennungen gefunden. Die meisten Parameter-Namen, 40 an der Zahl, sind konsistent, d. h., sie tauchen in allen oben genannten Bereichen auf. Es gibt drei bis vier Namen, die inkonsistent angewendet wurden: die beiden Namen „Bild2“ und „Bild_legende2“ und ein dritter Name, der in einer ungültigen Schreibweise, „AltSymbol“ und einer gültigen Schreibweise, "AltSymbols" auftaucht.

Parameter-Namen an unterschiedlichen Stellen

Überblick zur Tabelle – Parameter-Namen an unterschiedlichen Stellen

In der Tabelle werden alle 44 in der Vorlage "Infobox Protein" gefundenen Parameter-Bezeichnungen alphabetisch sortiert dargestellt (Spalte Namen) und sind mit einem Index versehen (Spalte Idx, 1 bis 44).

Das jeweilige Vorkommen von Namen wird in den verschiedenen Abschnitten der Dokumentation (Spalten Kv, Vp und Pd) und in den verschiedenen Bereichen des Programmcodes (Spalten Pa und Pw) der Vorlage angegeben.

Dazu steht im jeweiligen Spaltenkopf die Anzahl der im zugeordneten Abschnitt bzw. Bereich gefun­denen Namen und in den einzelnen Zellen steht die Reihenfolge des (ersten) Auftretens des jewei­ligen Namens in Bezug zu den anderen Namen in der jeweiligen Spalte (also in Bezug zum Auftreten der anderen Namen im jeweiligen Abschnitt oder Bereich). Eine solche Reihenfolge wird als Index-Zahl größer null (>0) angegeben; beim Fehlen eines Namens ersetzt eine rot markierte Zahl Null (0) diesen Index.

Die Parameternamen werden hinsichtlich ihrer Gültigkeit und ihres Vorkommens bewertet (Spalte Q) und es wird jeweils auf zutreffende Abschnitte in der Infobox verwiesen (Spalte Blöcke).

Tabelle:

Tabelle – Parameter-Namen an unterschiedlichen Stellen
Idx – Index, alphabetische Sortierung der Parameternamen (44 Namen)
Namen – Alle gültigen und ungültigen Parameternamen (44 Namen)
Kv – Abschnitt "Kopiervorlage" (41 Namen)
Vp – Abschnitt "Vorlagenparameter" (43 Namen)
Pd – Abschnitt "Parameter-Details" (43 Namen)
Pa – Programmablauf (43 Namen)
Pw – Parameterwartung (41 Namen)
Q – Qualität, eindeutig (1), fraglich (0,5), ungültig (0)
Idx Namen Kv Vp Pd Pa Pw Q Blöcke – Wirkung in den Blöcken A bis H
1 AltSymbol 0 0 15 0 0 0 Wäre Block C (C↑↓, C↔)
2 AltSymbols 13 15 0 15 13 0,5 Block C (C↑↓, C↔)
3 Andere Namen 4 6 6 6 4 1 Block A (A↑↓, A↔)
4 ATC-Code 21 23 21 23 21 1 Block D (D↑↓, D↔)
5 Bild 2 2 2 2 2 1 Block A (A↑↓, A↔)
6 Bild_legende 3 3 3 4 3 1 Block A (A↑↓, A↔)
7 Bild_legende2 0 5 5 5 0 0 Wäre Block A (A↑↓, A↔)
8 Bild2 0 4 4 3 0 0 Wäre Block A (A↑↓, A↔)
9 CAS 19 21 22 17 19 1 Block C (C↑↓, C↔)
10 CASergänzend 20 22 23 22 20 1 Block C (C↑↓, C↔)
11 CID 18 20 20 21 18 1 Block C (C↑↓, C↔)
12 DrugBank 22 24 24 24 22 1 Block D (D↑↓, D↔)
13 EC-Nummer 26 28 26 28 26 1 Block F (F↑↓, F↔)
14 GeneCards 14 16 16 20 14 1 Block C (C↑↓, C↔)
15 Groesse 6 8 8 9 6 1 Block B (B↑↓, B↔)
16 HGNCid 11 13 14 8 11 1 Blöcke B (B↑↓, B↔) und C (C↑↓, C↔)
17 Homolog_db 36 38 38 41 36 1 Block G (G↑↓, G↔)
18 Homolog_fam 37 39 39 40 37 1 Block G (G↑↓, G↔)
19 Homolog_url 38 40 40 42 38 1 Block G (G↑↓, G↔)
20 Inhibitor_fam 29 31 29 31 32 1 Block F (F↑↓, F↔)
21 Isoformen 10 12 12 13 10 1 Block B (B↑↓, B↔)
22 Kategorie 27 29 27 29 30 1 Block F (F↑↓, F↔)
23 Kofaktor 7 9 10 11 7 1 Block B (B↑↓, B↔)
24 MGIid 17 19 19 19 17 1 Block C (C↑↓, C↔)
25 MoreEC1 33 35 33 35 27 1 Block F (F↑↓, F↔)
26 MoreEC2 34 36 34 36 28 1 Block F (F↑↓, F↔)
27 MoreEC3 35 37 35 37 29 1 Block F (F↑↓, F↔)
28 Name 1 1 1 1 1 1 Block A (A↑↓, A↔)
29 OMIM 15 17 17 18 15 1 Block C (C↑↓, C↔)
30 Orthologe 41 43 43 43 41 1 Block H (H↑↓, H↔)
31 PDB 5 7 7 7 5 1 Block A (A↑↓, A↔)
32 Peptidase_fam 28 30 28 30 31 1 Block F (F↑↓, F↔)
33 Precursor 8 10 11 12 8 1 Block B (B↑↓, B↔)
34 Produkte 32 34 32 34 35 1 Block F (F↑↓, F↔)
35 Reaktionsart 30 32 30 32 33 1 Block F (F↑↓, F↔)
36 Struktur 9 11 9 10 9 1 Block B (B↑↓, B↔)
37 Substrat 31 33 31 33 34 1 Block F (F↑↓, F↔)
38 Symbol 12 14 13 14 12 1 Block C (C↑↓, C↔)
39 Taxon 39 41 41 38 39 1 Block G (G↑↓, G↔)
40 Taxon_Ausnahme 40 42 42 39 40 1 Block G (G↑↓, G↔)
41 TCDB 24 26 36 26 24 1 Block E (E↑↓, E↔)
42 TranspText 25 27 37 27 25 1 Block E (E↑↓, E↔)
43 UniProt 16 18 18 16 16 1 Blöcke C (C↑↓, C↔) und G (G↑↓, G↔)
44 Wirkstoffklasse 23 25 25 25 23 1 Block D (D↑↓, D↔)

Legende zur Tabelle – Parameter-Namen an unterschiedlichen Stellen

Hervorhebungen:

Fett im Tabellenkopf – Abkürzung, Spaltenname

Hellgrau unterlegte Zellen – Besonderheit: ungültiger Name oder Verwechslungsgefahr oder Zuordnung eines Parameters zu mehreren Blöcken

Roter Parameter-Name – ungültiger Name

Rote Null (0) – fehlender Index (abwesende Parameter-Bezeichnung im jeweiligen Abschnitt/ Bereich, Spalte Kv, Vp, Pd, Pa oder Pw) bzw. ungültiger Namen (Spalte Q).

Tabellenspalten:

Idx – Index, alphabetische Sortierung der Parameter-Namen

Index für 44 alphabetisch sortierte Bezeichnungen (Namen), die sich in der Vorlage Infobox Protein auf Parameternamen beziehen.

Namen – Alle gültigen und ungültigen Parameternamen (44 Namen)

Alle Bezeichnungen, die in der Dokumentation und im Programmcode als Parameternamen auftauchen (Referenz-Versionen).

Kv – Abschnitt "Kopiervorlage" (41 Namen)

Enthält alle gültigen Namen (41) für die Parameter und keine ungültigen Namen – ähnlich wie Pw.

Vp – Abschnitt "Vorlagenparameter" (43 Namen)

Enthält alle 41 gültigen Namen sowie zwei ungültige (Bild2 und Bild_legende2) – ähnlich wie Pa.

Pd – Abschnitt "Parameter-Details" (43 Namen)

Enthält 40 von 41 gültigen Namen, eine unkorrekte Schreibweise ("AltSymbol" statt AltSymbols) und zwei weitere ungültige Namen (Bild2 und Bild_legende2).

Pa – Programmablauf (43 Namen)

Enthält alle 41 gültigen Namen sowie zwei ungültige (Bild2 und Bild_legende2) – ähnlich wie Vp.

Pw – Parameterwartung (41 Namen)

Enthält alle gültigen Namen (41) für die Parameter und keine ungültigen Namen – ähnlich wie Kv.

Q – Qualität, eindeutig (1), fraglich (0,5), ungültig (0)

Die „Qualität“ eines Parameter-Namens wird hier jeweils als 1 (100 %) gewertet, wenn er überall gleich lautet und gültig ist, als 0 (0 %), wenn er ungültig ist und in einem Fall (AltSymbols) als 0,5 (50 %, „halbgut“), da der gültige Namen an einer Stelle in der Dokumentation anders geschrieben wurde.

Blöcke – Wirkung in den Blöcken A bis H

Für jeden Parameternamen wird seine Zugehörigkeit zu den ›Blöcken‹ angegeben. In den meisten Fällen ist das genau ein ›Block‹ unter den Blöcken A bis H. Bei ungültigen Parameternamen wird der mutmaßliche Block genannt („Wäre ...“). In zwei Fällen sind mehrere Blöcke relevant.

Überschriften, Abschnitte, ›Blöcke‹ und die Zuordnung von Parametern

Sowohl bei der Betrachtung der Zeichenketten in Vorlage-Einbindungen und den resultierenden Infoboxen, als auch der Zeichenketten im Programm-Code und der Dokumentation wurde deutlich, dass die Einteilung von Abschnitten nach Überschriften nicht ausreicht, da deren Auftreten und die konkret genutzten Namen variieren können. Erst die „Erfindung“ der ›Blöcke‹, einer Art potentieller Abschnitte, machte es mir möglich, die Parameter den Abschnitten zuzuordnen, indem ich die ›Blöcke‹ als Vermittler genutzt habe:

  • Parameter ↔ ›Block‹ ↔ Überschrift/ Abschnitt

Eigentlich hatte ich vor der Analyse folgende Verhältnisse erwartet:

  • Parameter ←n:1→ Überschrift/ Abschnitt

Es sieht aber wohl eher so aus:

  • Parameter ←m:n→ Überschrift/ Abschnitt

Mit ihrem ›Block‹ als Vermittler haben sowohl Parameter als auch Überschriften und Abschnitte eine „gemeinsame Anlaufstelle“; wobei die Adresse erst einmal nur für die Überschriften bzw. für die Abschnitte eindeutig ist:

  • Parameter ←m:n→ ›Block‹ ←1:n→ Überschrift/ Abschnitt

Von den 42 Parametern, die unterm Strich in der Vorlage "Infobox Protein" anwendbar waren (Programm-Code: oldid=183851377), wenn man von Unter-Vorlagen absieht, sind 40 eindeutig „ihrem ›Block‹“ zuzuordnen, während zwei Parameter die Ausnahme bilden:

  • Regel: Eindeutiger Parameter ←n:1→ ›Block‹ ←1:n→ Überschrift/ Abschnitt
  • Ausnahme: Mehrdeutiger Parameter ←m:n→ ›Block‹ ←1:n→ Überschrift/ Abschnitt

Durch die Art meiner Analyse ist folgende Aussage ziemlich sicher:

  • (Zahl aller Parameter) = (Zahl der eindeutigen Parameter) + (Zahl der mehrdeutigen Parameter) = 42

Allerdings kann nicht 100-%-ig gesagt werden, ob alle als eindeutig eingestuften Parameter dies auch wirklich sind (wenngleich es sehr wahrscheinlich ist).

Extra-Analysen für mehrdeutige Parameter

Es ist relativ schwer, herauszufinden, welche Parameter mehrdeutig wirksam sind, d. h. in verschiedenen Bereichen einer Infobx eine Auswirkung zeigen, die ich ›Blöcke‹ genannt habe. Da der Programmablauf-Code streng prozedural abläuft, ließe sich auswerten, an welcher Stelle eine Tabellenzeile mit Überschrift (a) geschrieben und an welcher nächsten Stelle die nächste Überschrift (b) geschrieben wird:

Erscheint ein Parameter-Name dann in den Bedingungen für die Ausgabe von a oder zwischen den jeweiligen Bedingungen für die Ausgabe von a und b, dann hat er wahrscheinlich in Abschnitt a eine Auswirkung. (Andersherum entsprechend: erscheint ein Parameter-Name weder in den Bedingungen für die Ausgabe von a noch zwischen den jeweiligen Bedingungen für die Ausgabe von a und b, dann hat er wahrscheinlich in Abschnitt a keine Auswirkung.)

Allerdings gibt es variable Überschriften-Namen und rein theoretisch könnte man das Schreiben von Tabellenzeilen mit demselben Überschriften-Namen in verschiedenen Stellen auslösen, was meines Wissens in der Vorlage "Infobox Protein" nicht gemacht wurde. Aber ich habe auch mal gedacht, dass jeder Parameter nur in einem Abschnitt wirkt.

Im Allgemeinen habe ich die ›optischen Argumente‹ in der Infobox den Argumenten (den Werten der Parameter) in der Vorlage-Einbindung gegenüber gestellt und diese bei ausreichender Ähnlichkeit „gematcht“. Dadurch konnten auch der jeweils passende Parameter und der entsprechende ›optische Parameter‹ gefunden werden:

Parameter   ←   Parameter-Wert   ≈   ›optisches Argument‹   →   ›optischer Parameter‹ 

Da Überschriften augenscheinlich jeweils von mehreren Parametern abhingen, aber nicht von den konkreten Parameter-Werten, wurde mit einer visuellen Zuordnung der Anzeige-Elemente, der ›optischen Parameter‹ eines Abschnitts zur entsprechenden Überschrift begonnen:

›optischer Parameter‹   ↔   Überschrift 

Beim Parameter HGNCid war es anders. Es blieb ein Element übrig, das erst einmal nicht zugeordnet werden konnte: ein Anzeige-Element, die Überschrift „Eigenschaften des menschlichen Proteins“. Unterhalb dieser Überschrift gab es zwar ›optische Parameter‹, die eine Überschrift namens „Eigenschaften des Proteins“ plausibel gemacht hätten, andererseits standen in der Infobox auch an anderer Stelle solche Eigenschaften.

Es ging also speziell um ein Protein, eines, das nur beim Menschen vorkommt und außerdem trat die Überschrift nicht immer auf. Es musste also irgendwo einen Parameter geben, dessen Anwesenheit die Überschrift bedingt. Im betreffenden Abschnitt hatte ich aber keinen passenden ›optischer Parameter‹ gefunden. Daher nahm ich an, dass dieser „vorausgesagte Parameter“ vom Typ Boolean wäre (also Ja / Nein) und kein ›optisches Argument‹ im Schlepptau hätte, sondern nur die bedingte Überschrift: wenn Ja, dann gäbe es die Überschrift und wenn Nein, dann nicht.

Die Suche nach der Zeichenkette „Eigenschaften des menschlichen Proteins“ im Programm-Code zeigte dann den Parameter "HGNCid" als Verursacher an:

  1. |-
  2. {{#if:{{{HGNCid|}}}|
  3. ! colspan="3" style="background:#90EE90;" {{!}} Eigenschaften des menschlichen Proteins
  4. }}
  5. |-

Das bedeutet etwa folgendes:

  1. Schreibe einen Zeilenumbruch (|-).
  2. Starte ein Anfrage, ob ({{#if:) "HGNCid" irgendeinen Parameter-Wert hat ({{{HGNCid|}}}); wenn ja, dann (|),
  3. lege eine Tabellenzelle an (), die sich über drei Spalten erstreckt (colspan="3" ) und einen grünen Hintergrund hat (style="background:#90EE90;" ) und schreibe in diese Zeile ({{!}} ) einen Text (Eigenschaften des menschlichen Proteins).
  4. Schließe die Anfrage ab (}}).
  5. Schreibe einen Zeilenumbruch (|-).

Also alles wie gedacht: der Parameter "HGNCid" wirkt quasi wie eine boolsche Variable, also eine, die zwei Werte – Ja oder Nein – annehmen kann, nur, dass hier nicht der Wert selbst, sondern die Anwesenheit eines Parameters entscheidet. Hat "HGNCid" irgendeinen Parameter-Wert, dann wird eine Überschrift geschrieben und wenn kein Wert vorhanden ist (abwesender oder leerer Parameter), dann wird auch keine Überschrift eingefügt.

Merkwürdig blieb allerdings, dass die Dokumentation im Abschnitt „Parameter-Details“ beim Parameter "HGNCid" (oldid=175729659#Parameter-Details) in der Tabellenspalte „Möglicher Wert“ als Beispiel 399 angab, statt "Ja/ Nein" oder etwas ähnliches. Über eine bedingte Überschrift stand nichts in der Tabellenzeile zu "HGNCid" im Abschnitt „Parameter-Details“. Stattdessen wurde für den Parameter "HGNCid" erklärt, dass dieser eine externe Verknüpfung zu einer Datenbank herstellen würde. Für diese Datenbank, HUGO Gene Nomenclature Committee, wurde eine Verknüpfung zu einem Wikipedia-Artikel angegeben („HGNC“), den es allerdings nicht (mehr) gab/ gibt.

Ich testete den Parameter einzeln: abwesend, leer (|HGNCid=), mit dem Beispiel-Wert (|HGNCid=399) und mit einem sinnlosen Wert (|HGNCid=ß).

Es blieb dabei: kein Parameter-Wert bedeutete keine Überschrift und irgendein Parameter-Wert für HGNCid bedeutete, dass die Überschrift „Eigenschaften des menschlichen Proteins“ in der Infobox auftrat; sonst machte der Parameter nichts weiter.

Ich mutmaßte, dass das widersprüchliche Verhalten des Programm-Codes in Bezug zur Dokumentation der Vorlage "Infobox Protein" (Programm-Code: oldid=183851377; Doku: oldid=175729659) darauf zurückzuführen sei, dass übersehen wurde, die Dokumentation anzupassen, nach dem der Code überarbeitet wurde.

Ich weis nicht mehr genau, wie ich zuerst erkannt habe, dass HGNCid in Bezug zum Parameter Symbol stand, wahrscheinlich in Zusammenhang mit der späten „Entdeckung“ des Parameters AltSymbols, der ebenfalls mit Symbol zusammenwirkt. (AltSymbols wurde nur im Programm-Code gefunden, da der Parameter-Name in der Dokumentation in einer ungültigen Schreibweise, „AltSymbol“, stand.) Wenn man bei der Betrachtung einzelner Parameter von AltSymbols ausgeht, erkennt man unschwer, dass der Parameter Symbol dazu gehört. Das ergibt sich aus dem Namen selbst und dadurch, dass es dann nahe liegt, die Dokumentations-Angaben zu der anderen Schreibweise („AltSymbol“) und zum Parameter Symbol als zutreffend zu betrachten.

Wenn man einen Parameter einzeln testet, kann man nicht erkennen, welche anderen Parameter diesen Parameter beeinflussen; daher muss man diesen Parameter, beispielsweise Symbol, mit allen in Frage kommenden anderen Parametern zusammen testen. Wenn man Symbol in einem Test zusammen mit sehr vielen anderen Parametern – unter anderem HGNCid – anwendet, erkennt man nicht ohne weiteres, dass der Parameter-Wert von HGNCid das ›optische Argument‹ von Symbol modifiziert. Die Wirkung ist sehr versteckt, da HGNCid sich nur auf ein Verknüpfungsziel auswirkt. Man erkennt das letztlich mit meinen Mitteln nur, indem man den entsprechenden Link anklickt und im URL den Parameter-Wert von HGNCid erkennt, im verwendeten Beispiel die Zahl 399: "https://www.genenames.org/tools/search/#!/all?query=399".

Nachdem nun klar war, dass Symbol, AltSymbols und HGNCid eine Funktionseinheit bildeten, habe ich eine systematische Testserie durchgeführt. Die Untersuchung war ähnlich angelegt, wie eine vorausgegangene mit zwei anderen Parametern ("EC-Nummer" und "Kategorie") und drei Zuständen (Abwesend, Leer, Befüllt).

Eine Anwendung von drei Zuständen auf drei Parameter hätte wohl 27 Infoboxen ergeben (33 = 27). Um die Zahl geringer zu halten, habe ich nur zwei Zustände einbezogen – "Abwesend" und "Befüllt". Das würde nur 23 = 8 Kombinationen ergeben und zusätzlich habe ich die Kombination „Alle Parameter abwesend“ weg gelassen – also waren es sieben Kombinationen (23−1 = 7). Für die Zuordnung der genauen Abhängigkeiten habe ich jeden Parameter nummeriert (Symbol: 1, AltSymbols: 2 und HGNCid: 3) und mit der jeweils anderen Nummer kombiniert. Die Nummern entsprechen dem Zustand "Befüllt" und das Weglassen der Nummer dem Zustand "Abwesend", so dass sich sieben Kombinationen mit entsprechenden „Namen“ für die Vorlage-Einbindungen und die Infoboxen ergaben (1, 2, 3, 1+2, 1+3, 2+3 und 1+2+3).

Für die Kenntnis über das Verhalten des Parameters UniProt habe ich keine vollständige Analyse angewendet, sondern „herum probiert“. Die potentiellen Kandidaten für einen Zusammenhang zu "UniProt" wurden nacheinander in einer Vorlagen-Einbindung ausgetauscht, um dann das jeweilige Ergebnis – die Tabelle, welche die „Infobox Protein“ darstellt – zu betrachten.

Weitere Gedanken zu den Untersuchungen

Versionskontrolle

Wenn irgendwo Software weiterentwickelt wird, dann gibt es häufig Betaversionen, die man irgendwo testen kann, wo es nicht weh tut, wenn man sich dafür interessiert. Auch bei den stabilen Versionen ist es meist so, dass man sich gegen die allerneuste Version entscheiden kann, wenn man etwas mit einer älteren begonnen hat. Bei größeren Veränderungen wird versucht das Alte und das Neue parallel existieren zu lassen. (Als Microsoft damals die *.doc-Dateien durch die *.docx-Dateien für die Word-Anwendung ergänzt hatte, war ich erstaunt, wie gut man das alte Format weiter nutzen konnte.)

Bei hochdynamischen Sachen, z. B. automatischen Updates ist das anders, da wird gegessen, was auf den Tisch kommt. Die meisten Hersteller bemühen sich darum, dass die Änderungen kaum das Arbeitsergebnis des Anwenders betreffen.

In der Wikipedia ist das Arbeitsergebnis in vielen Fällen eine Artikel-Version, die in der Normalansicht einen Enzyklopädie-Eintrag darstellt. Der größte Teil des zugrunde liegenden Textes ist Wikitext, der nach festen Regeln funktioniert: wenn ich heute »''kursiv'' und '''fett'''« reinschreibe, dann wird das auch morgen »kursiv und fett« angezeigt.

In vielen Artikeln besteht ein nicht unerheblicher Teil des Wikitextes aus der Einbindung von Vorlagen – aus komplexen Anweisungen, die den Wikitext zu etwas anderem machen, als einer reinen Auszeichnungssprache. Eine Artikelschreiberin muss dadurch nicht bloß den überschaubaren Wikicode lernen, sondern auch die „Parameter-Nutzungs-Codes“ der jeweiligen Vorlagen – mehr noch – auch die zur jeweiligen Zeit aktuellen Gegebenheiten der jeweiligen Vorlage (und ein Artikelschreiber auch).

Ganz so schlimm, wie in dem vorausgehenden Satz dargestellt, ist es nicht, da sich die Vorlagen nicht jeden Tag ändern. Außerdem werden einige Vorlagen-Einbindungen auch „betreut“: der VE (VisualEditor: WP:VE, H:VE) macht aus Parametern und Werten Felder und speziell durch das Feature  Belegen wird die Verwaltung der komplexen <ref...>{{...}}</ref>-Anweisungen beim Schreiben handhabbar.

Dennoch halte ich es gegenwärtig – aus Gründen der zeitlichen Stabilität – für problematisch, Vorlagen zu verbessern, da der Name der Vorgängerversion beibehalten wird. Wenn jemand eine Vorlage in einem Artikel einbindet, dann optimiert er dies auf die Normalansicht des Artikels zur Zeit der Einbindung. Verbessert jemand danach die Vorlage, kann er den/ die Artikel zwar anpassen, die Vorgängerversion des Artikels wird aber vermutlich suboptimal bis falsch angezeigt:

Schema der asynchronen Änderung von Komponenten mit Harmonie-Brüchen im Zusammenspiel
Programm-Version Version der Einbindung Anzeige-Ergebnis im Artikel
Alt Alt Gut. Eine bestehende Vorlage (Programm-Version: Alt) wurde so in einem Artikel eingebunden (Version der Einbindung: Alt), dass in diesem Artikel in der Normalansicht alles einigermaßen passt (Artikel-Version: Alt).
Neu Alt Schlecht. Der neue Vorlage-Programm-Code (Programm-Version: Neu) passt nicht gut zum alten Wikitext im Artikel (Version der Einbindung: Alt).
Neu Neu Sehr gut. Der Artikel wurde angepasst. Der Wikitext im Artikel, welcher die Einbindung der Vorlage gewährleistet (Version der Einbindung: Neu), setzt nun den zuvor veränderten Programm-Code (Programm-Version: Neu) um.

Man mag jetzt sagen, dass die Übergänge, in denen der alte Vorlage-Einbindungs-Code mit dem neuen Vorlage-Programm-Code nicht gut zusammenarbeitet, nur drei Minuten dauert; aber es gibt nicht selten mehr als einen Artikel, in dem die jeweilige Vorlage eingebunden wurde.

Weiterhin ist es so, dass man in älteren Artikelversionen teilweise nicht mehr erkennen kann, was damals eigentlich gewollt wurde, da viele Vorlagen geändert worden, die ihrerseits auf Vorlagen zurückgreifen, die geändert oder gelöscht worden sind.

Wenn man sich mit den Zusammenhängen zwischen den Parametern einer einzelnen Vorlage auseinander gesetzt hat, dann kann es sein, dass die gewonnenen Erkenntnisse durch die Verbesserungen einer Vorlage mit der Zeit obsolet werden. Es ist auch schwierig, eine bestimmte Version der Dokumentation einer Vorlage der jeweiligen Version des Programm-Codes der Vorlage zuzuordnen, da diese beiden Sachen zumeist – wie sich das gehört – an verschiedenen Stellen untergebracht sind.

Unter #Es gibt zahlreiche historisch gewachsene Altlasten steht zwar :

  • „...Namen von Vorlagen oder deren Parametern können praktisch nicht mehr geändert werden...“.

Ich denke aber, dass die Namen von Parametern durchaus geändert werden könnten, wenn nicht die alten Vorlagen geändert, sondern neue Vorlagen erstellt werden würden, die etwas anders heißen. Es wird immer so sein, dass eine Maßnahme von heute die Altlast von morgen sein wird. (-; Und glaubt mir, morgen kommt ganz schnell... ;-)

Ich denke, wir sollten dem Alten das Neue hinzu gesellen, statt es radikal zu ersetzen. Es gibt immer Übergangszeiten, die man möglichst smart überbrücken muss.

  • Kleiner Vergleich aus der Biologie: Manch ein Krebs wirft seine alte, schützende Hülle zwar weg, wenn er eine größere braucht, er hat dann aber unter der alten schon was „vorbereitet“. Die Übergangszeit als weicher, angreifbarer „Butterkrebs“ ist dadurch überschaubar und der Krebs kann sich zurückziehen, solange bis seine neue Hülle ausgehärtet ist.

Die Wikipedia ist immer online, deshalb ist Zurückziehen, solange eine Vorlage überarbeitet wird, keine Option. Die alte Version muss weiter Dienst tun. Würde man eine Vorlage zur weiteren Optimierung außerhalb der „Produktiv-Umgebung“ überarbeiten und dann dort testen wollen, könnte man sie zwar wieder mit dem gleichen Namen in die „Produktiv-Umgebung“ zurück bringen, wenn das Ziel erreicht wäre, die bereits genannten Nachteile blieben aber.

Ein Kompromiss wäre, dass man eine z. B. hinsichtlich der VE-Kompatibilität anzupassende Vorlage anders nennt, als das möglicherweise in einigen Punkten leistungsfähigere Vorbild.

So könnte der „Vorlage:Infobox Protein“ eine neue „Vorlage:VE Infobox Protein“ (der Name ist nur ein Beispiel) zur Seite gestellt werden, wobei letztlich beide Vorlagen ungefähr das gleiche machen, nämlich eine Infobox für die Eigenschaften eines Proteins zur Verfügung zu stellen. Der Unterschied wäre nur, dass die bewährte „Vorlage:Infobox Protein“ es einem Kompaktcodeprofi einfacher macht, damit direkt den prägnanten Quelltext zu lesen, während ein Liebhaber der Normalansicht wohl eher die umständliche, VE-angepasste „Vorlage:VE Infobox Protein“ nehmen würde, in der wohl jedes Anzeige-Element der resultierenden Infobox einzeln durch ein Eingabe-Element in Vorlage (Parameter+Wert) unterlegt sein müsste.

Unter Wikipedia:Technische WünscheTopwünscheLeichter mit Vorlagen arbeitenHäufigst genannte Probleme #Es gibt zahlreiche historisch gewachsene Altlasten steht: „...Namen von Vorlagen oder deren Parametern können praktisch nicht mehr geändert werden...“.

Es ist auch schwierig, einen Optimierungs-Gedanken an die Community heranzutragen, wenn sich die Gegebenheiten, auf die sich die Ausführungen beziehen, zwischenzeitlich geändert haben.

Ausgelagert

Variante zu „Code-Ausschnitte“ -- ausgelagert
Rechts: Code-Auschnitte in Vorlage:Infobox Protein:
  • „Eigentlicher Programmcode“ (oben),
  • Parameterwartung (Mitte) und
  • Dokumentation (unten),

Version 183851377,[1] gültig zwischen 19. Dezember 2018 und 27. Dezember 2019, also auch zur Referenzzeit (Stichtag 29. September 2019).

<onlyinclude>{| class="float-right hintergrundfarbe2 infobox wikitable" id="Vorlage_Infobox_Protein" style="fo...

...ausgelassener Text...

...ologe|}}} | {{{Orthologe}}} }}

|}<includeonly><span class="editoronly" style="display:none;">{{#invoke:TemplatePar|check

|opt= Name= Bild= Bild_legende= Andere Namen= PDB= Groes...

...ausgelassener Text...

...ate= [[Vorlage:Infobox Protein]]

}}</span></includeonly>


{{Dokumentation}}



[1] Referenzversionen: A.2, S. 3; Referenzversion der Vorlage:Infobox Protein: "https://de.wikipedia.org/w/index.php?title=Vorlage:Infobox_Protein&oldid=183851377".


Drei Formen von Genname(n) -- Material

Ein weiterer Abschnitt, der durch "HGNCid" beeinflußt werden kann, heißt „Bezeichner“. Allerdings löst "HGNCid" das Erscheinen des Abschnitts mit der Überschrift „Bezeichner“ nicht aus. Es bestehen Abhängigkeiten zwischen den Parametern "Symbol" (Gen-Symbol), "AltSymbols" (alternative Gen-Symbole) und "HGNCid".

Sowohl "Symbol" als auch "AltSymbols" (wie auch andere Parameter) können die Überschrift „Bezeichner“ auslösen. Wenn die Überschrift „Bezeichner“ ausgelöst wird, dann kann ein Schriftzug zur Benennung einer Zeile in diesem Abschnitt der Infobox drei verschiedene Formen annehmen:

  • Gen-Name(n) – Text ohne Verknüpfung; HGNCid fehlt und mindestens einer der beiden anderen Parameter, Symbol oder AltSymbols, hat einen Wert.
  • Gen-Name – Text mit Verknüpfung zum Wikipedia-Artikel Human_Genome_Organisation; "AltSymbols" fehlt und die beiden anderen Parameter, "Symbol" und "HGNCid", haben einen Wert.
  • Gen-Namen – Text mit Verknüpfung zum Wikipedia-Artikel Human_Genome_Organisation; alle drei Parameter ("Symbol", "AltSymbols" und "HGNCid") haben einen Wert.

Vereinfacht ausgedrückt ist "Symbol" also für die Einzahl, "AltSymbols" für die Mehrzahl und "HGNCid" für eine spezielle Verknüpfung zuständig. Ohne diese Verknüpfung wird ein „zahlneutraler“ Schriftzug angegeben. Diese Auswirkung eines einzelnen Parameters an mehreren Stellen hat Vor- und Nachteile. Der größte Vorteil dürfte sein, dass ...

Kombinatorik -- Material

Als Werte bzw. Argumente wurden die Vorschläge aus der Tabelle unter "Parameter-Details" der Dokumentation angewendet (1: |Symbol=ALB, 2: |AltSymbols=; ALB-1 und 3: |HGNCid=399). Jeder Kombination wurde ein entsprechender Name gegeben (allgemeine Form: |Name=Beispiel … …).

Der Parameter HGNCid löst allein (ohne die beiden anderen Parameter) die Überschrift "Eigenschaften des menschlichen Proteins" aus (der zugeordnete Abschnitt wird hier Block B genannt).

Sowohl Symbol als auch AltSymbols lösen jeweils allein die Überschrift "Bezeichner" aus. Wenn die Überschrift "Bezeichner" ausgelöst wird, dann kann ein Schriftzug zur Benennung einer Zeile im zuge¬hörigen Abschnitt (Block C) drei verschiedene Formen annehmen:

▪ "Gen-Name(n)" – Text ohne Verknüpfung; HGNCid fehlt und mindestens einer der beiden anderen Parameter, Symbol oder AltSymbols, hat einen Wert.

▪ "Gen-Name" – Text mit Verknüpfung (Wikipedia, https://de.wikipedia.org/wiki/Human_Genome_Organisation); AltSymbols fehlt und die beiden anderen Parameter, Symbol und HGNCid, haben einen Wert.

▪ "Gen-Namen" – Text mit Verknüpfung (Wikipedia, https://de.wikipedia.org/wiki/Human_Genome_Organisation); Alle drei Parameter (Symbol, AltSymbols und HGNCid) haben einen Wert.

Vereinfacht ausgedrückt ist Symbol also für die Einzahl, AltSymbols für die Mehrzahl und HGNCid für eine Verknüpfung zuständig. Ohne Verknüpfung wird ein „zahlneutraler“ Schriftzug ["Gen-Name(n)"] angegeben.

Setzt man eine gültige ID ein (z. B. |HGNCid=399), dann wird die Überschrift „Eigenschaften des menschlichen Proteins“ auch zwischen Einleitung und Eigenschaften gesetzt.

Engl. Wikipedia -- Auslagerung

In der Wikipedia könnte man auch an die Wikipedia:Kategorien denken. In der englischen Wikipedia wurde versucht, das EC-System mit seinen Enzymklassen und Enzym­ein­trä­gen relativ deckungsgleich abzubilden.

Die oberste Einteilungsebene des EC-Systems (z. B. EC 1 Hydrolases oder EC 2 Transferases) ist nur durch den Namen, nicht durch die EC-Nummer erreichbar (wahrscheinlich, weil solche Angaben wie "EC 1" oder "EC 2" mehrdeutig sind), während die darunter lie­gen­den Klassen meist nur durch die jeweilige EC-Nummer, aber nicht durch den Namen erreichbar sind (wahrscheinlich, weil z. B. "Trans­ferring one carbon groups" deutlich sperriger ist, als "EC 2.1").

Die Enzym­klas­sen (Hierachie-Ebenen 1 bis 3) wurden in Wikipedia-Kategorien erfasst (Category: ...), während die Enzymeinträge (Hierachie-Ebene 4) oft als Weiterleitungen der jeweiligen EC-Nummer auf mehr oder weniger passende Artikel angelegt sind.

Die folgende Tabelle enthält die sechs EC-Nummern, die zu den DNA-Methyltransferasen bzw. "DNA methyltransferases" (https://en.wikipedia.org/wiki/DNA_methyltransferase) einen Bezug haben, zusammen mit deren Umsetzung in der englischen Wikipedia.

EC-Nummer  Name/Bezeichnung.

Kategorie oder Weiterleitung in der englischen Wikipedia

·       Artikel in der englischen Wikipedia

EC 2  Transferases.

https://en.wikipedia.org/wiki/Category:Transferases (Verknüpfung zum Artikel)

·       https://en.wikipedia.org/wiki/Transferase

EC 2.1  Transferring one carbon groups.

https://en.wikipedia.org/wiki/Category:EC_2.1

·       kein Artikel

EC 2.1.1  Methyltransferases.

https://en.wikipedia.org/wiki/Category:EC_2.1.1 (keine Verknüpfung zum Artikel)

·       https://en.wikipedia.org/wiki/Methyltransferase

EC 2.1.1.37  DNA (cytosine-5-)-methyltransferase.

https://en.wikipedia.org/w/index.php?title=EC_2.1.1.37&redirect=no

·       https://en.wikipedia.org/wiki/DNA_methyltransferase

EC 2.1.1.72  Site-specific DNA-methyltransferase (adenine-specific).

https://en.wikipedia.org/w/index.php?title=EC_2.1.1.72&redirect=no

·       https://en.wikipedia.org/wiki/Site-specific_DNA-methyltransferase_(adenine-specific)

EC 2.1.1.113  Site-specific DNA-methyltransferase (cytosine-N(4)-specific).

https://en.wikipedia.org/w/index.php?title=EC_2.1.1.113&redirect=no

·       https://en.wikipedia.org/wiki/Site-specific_DNA-methyltransferase_(cytosine-N4-specific)