Perrypedia:Automatische Generierung von listenartigen Seiten(abschnitten): ein Vorschlag

Aus Perrypedia
Zur Navigation springen Zur Suche springen

Mit der Extension Semantic Mediawiki (SMW) könnten einige Arbeiten, die wir momentan per Hand ausführen, wesentlich erleichtert bzw. automatisiert werden. Es gab schon mal eine frühere Initiative zur Einführung von SMW, für die sich damals keine Mehrheit gefunden hat. Mit einer der Gründe war (soweit ich das verstehe) der große und eventuell schwer abzuschätzende Aufwand, bestehende Seiten "umzustellen", d.h. die von SMW benötigten »Properties« dort einzupflegen.

SMW kann allerdings nicht nur die eigenen Properties nutzen, sondern auch Kategorieeinträge. Schon damit ließe sich einiges vereinfachen, da z. B. könnten Portalseiten fast vollständig automatisch erstellt werden. Außerdem gibt es (mittlerweile) in SMW Funktionalitäten, mit denen ein »sanfter« Umstieg möglich wäre - die alten Einträge in Listen, etc. bleiben erhalten, aber neue Seiten (auf denen Infos eingepflegt werden) tauchen dort automatisch auf. Im ersten Schritt (und darauf sollte sich die Diskussion zunächst konzentrieren) geht es aber darum, die schon eingepflegten Infos (Kategorieneinträge) nutzbar zu machen.

Erster Schritt: Portalseiten

Die Zyklus-Portale (bzw. Staffel-Portale für Neo) sind besonders reif für einen Versuch automatischer Generierung, denn:

  1. Die Informationen, die man zur Generierung der Portale benötigt sind (fast) alle schon in den Artikeln in maschinenlesbarer Form vorhanden (in den Kategorie-Einträgen).
  2. Portale können peu à peu umgestellt werden: Zunächst werden nur neue Portale automatisch generiert. Schon existierende Portale bleiben erst einmal, wie sie sind, und können später umgestellt werden (oder gar nicht, wenn dadurch kein Mehrwert erreicht wird).

Entsprechend besteht kein Anlass dazu, eine große Anzahl von Artikeln zu bearbeiten: Alles, was umgestellt wird, ist die Portalseite.

Der einfache Fall

Mithilfe der SMW-Erweiterung lassen sich (fast) sämtliche Inhalte der Portalseiten generieren (Ausnahme: Der Unterabschnitt "Personen", dazu siehe unten).

Beispiel: Der Abschnitt Kosmologie des Zyklus-Portal "Mythos" sieht momentan (8. September 2019) so aus:



Kommt nun ein neuer Artikel hinzu, muss die Liste händisch angepasst werden. Und das, obwohl die Einträge in der Liste einfach nur die sind (sein sollten), die sowohl in »Kategorie:Kosmologie« als auch in »Kategorie:Mythos« eingeordnet sind. Entsprechend sollte jeder Artikel, der in der Zukunft diese beiden Kategorien hat, einfach automatisch in der Liste erscheinen.

Genau das ermöglicht uns SMW. Statt der obigen, manuell erstellten Liste schreiben wir:

 == Kosmologie ==
 
 {{Spalten automatisch Anfang|colwidth=18em}}
 
 {{Portalliste|Kosmologie}}
 
 {{Spalten Ende}}

Theoretisch muss dieser Abschnitt danach nie mehr bearbeitet werden: Solange die Kategorie-Einträge richtig gesetzt werden, geschieht alles automatisch.

Redlinks

Nicht selten werden momentan in den Portalen oft auch Links auf Seiten gesetzt, die noch nicht existieren - als Erinnerung, dass diese Seiten noch angelegt werden müssen. Das ist weiterhin möglich, die fehlenden Artikel müssen aber natürlich manuell eingetragen werden.

Beispiel: Abschnitt Phänomene des Zykuls-Portals "Mythos"] sieht momentan so aus:



Suspension und Weltenbrand können wieder einfach automatisch in der Liste erscheinen. Um die beiden Einträge Chaotemporales Gezeitenfeld und Hyperchronschock ebenfalls zu listen, schreiben wir:

 {{Spalten automatisch Anfang|colwidth=18em}}
 
 {{Portalliste|Phänomene}}
 
   {{Fehlt|Chaotemporales Gezeitenfeld}}
   {{Fehlt|Hyperchronschock}}
   
 {{Spalten Ende}}

Die beiden {{Fehlt|...}}-Kommandos erzeugen hier selbst keine Ausgabe - stattdessen sorgen sie dafür, dass die Liste die Redlinks als Einträge erhält. Wenn die Seite einmal angelegt ist, kann der {{Fehlt|...}}-Eintrag wieder entfernt werden - muss er aber nicht: Sobald die entsprechende Seite angelegt ist, macht das {{Fehlt|...}}-Kommando einfach gar nichts.

Anmerkung: Die {{Fehlt|...}}-Kommandos müssen nicht auf der Portalseite stehen. Theoretisch können sie überall stehen, aber es ist sinnvoll, sie "zentral" zu sammeln. Denkbar wäre also auch eine /todo-Unterseite des Portals oder ähnliches.

Externe Links und andere manuelle Einträge

Einige Portallisten enthalten auch Wikipedia-Links, zum Beispiel Kosmologie im Genesis-Portal).

Ob das sinnvoll ist, darüber lässt sich sicher trefflich streiten. Aber wenn es gewünscht ist, geht das wie folgt:

 {{Spalten automatisch Anfang|colwidth=18em}}
 
 {{Portalliste (PR Neo)|Phänomene}}
   {{ManuellerEintrag|Balkenspiralgalaxie|{{WP|Balkenspiralgalaxie}}}}
   {{ManuellerEintrag|Bulge|{{WP|Bulge}}}}
   
 {{Spalten Ende}}

Personenlisten

Mit SMW und den drei erwähnten Vorlagen (plus eine weitere zum Formatieren der Ergebnisse) lassen sich beliebige Portalseiten fast vollständig generieren (solange die Artikel richtig kategorisiert sind).

Einzige Ausnahme: Die Personenliste. Das Problem ist hier, dass mehrteilige Personennamen (zumindest bei den meisten Lemurer/Liduuri-Abkömmlingen und einigen anderen Völkern) umgestellt werden müssen, so dass der Nachname vorne steht. So beginnt der Abschnitt Personen des Portal "Mythos" (Zyklus) [5. September 2019] so:

  • A

Problem: Die Information, dass Homer G. Adams als »Adams, Homer G.« angezeigt werden soll, ist nirgendwo hinterlegt.

Anmerkung: In vielen Fällen könnte man versuchen, diese Information aus dem Sortkey zu »raten«, allerdings ist das fehleranfällig und ich halte es für keine gute Idee.

Mein Vorschlag wäre, diese Information auf den Artikelseiten einzupflegen, etwa in der folgenden Form:

 {PPDefaultsort}}
 [[Kategorie:Personen|Adams, Homer gershwin]]
 
 {{Personendaten
   | Vornamen = Homer Gershwin
   | Nachnamen = Adams
   | Volk = Terraner
 }}
 
 [[Kategorie:Die Dritte Macht]]
 [[Kategorie:Die Posbis]]
 ...

Zu beachten:

  • Es wird hier keine neue Notation benutzt, die für Neu-User schwierig ist - die Vorlage funktioniert genauso wie Vorlage:Astrodaten Planet (/Mond/Galaxie/&c.) oder Vorlage:Techdaten, &c.
  • Wie bei den bestehenden Vorlagen ist auf den ersten Blick recht leicht erkennbar, wie sie funktioniert. Der einzige Unterschied ist hier, dass die Vorlage kein sichtbares Ergebnis auf der Artikelseite produziert. Trotzdem denke ich, dass diese Informationen recht automatisch von neuen Benutzern ausgefüllt würden, wenn sie Teil von Perrypedia:Formatvorlage Person wären.
  • Tatsächlich könnte die Vorlage auch den Personen-Sortkey setzen, wenn gewünscht. Das wäre vermutlich weniger fehleranfällig als die momentane manuelle Spezifierung (trotz der Hilfetexte hat es für mich etwas gedauert, bis ich gelernt habe, dass ich Sonderzeichen ersetzen muss, etc. Und nicht selten vergesse ich das noch heute. Die Vorlage könnte das automatisch machen).
  • Es besteht hier wieder kein Anlass, alle Personenseiten so anzupassen, dass sie einen {{Personendaten|...}}-Eintrag enthalten. Das ist nur nötig für Personenseiten, die in automatisch generierten Personenlisten auftauchen sollen. Wenn wir also zunächst nur "neue" Portalseiten umstellen, so müssen nur die dort erscheinenden Personenartikel den Eintrag haben. Der Aufwand, diesen Eintrag auf der Artikelseite einzufügen ist vergleichbar mit dem, den Link auf die Personenseite im Portal einzufügen (und dann muss man es nie wieder machen!).
  • Diese Art, die Daten einzupflegen, ist relativ future-proof. Sollten wir irgendwann einen Grund haben, SMW wieder zu deinstallieren, muss nur die Vorlage »Personendaten« so angepasst werden, dass sie nichts tut (oder nur den Sortkey setzt).
Anmerkung:
Solche (minimale) future-proofness sollte meines Erachtens immer eine wichtige Erwägung sein bei weiteren Nutzungen von SMW (wie bei den unter #Zukunftsmusik angedachten).
Das Ziel sollte immer sein: Angenommen, alle PPnauten, die irgendeinen Plan von dem SMW-Zeug haben, fallen über den Rand der Halbwelt. Wenn es dann ein Problem mit SMW gibt, sollten schlimmstenfalls die bislang automatisch generierten Seiten nicht mehr funktionieren. Alle anderen Seiten (insbesondere alle Artikel) sollten vollständig funktionieren, sobald eine überschaubare Anzahl von Vorlagen angepasst werden.
Der Vorschlag hier erfüllt diese Anforderungen. Im schlimmsten alle Fälle geht jemand auf Vorlage:Personendaten und löscht den gesamten Inhalt. Dann gibt es eine Menge nutzloser Vorlagen-Aufrufe auf den Artikelseiten, aber alles funktioniert, ohne alle Seiten umzuschreiben. So sollte es (mindestens) sein.

Flexibilität

Gelegentlich kann es nötig sein, den Automatismus teilweise zu umgehen. Das ist möglich, indem bestimmte Tags auf der Artikelseite gesetzt werden. So kann man ...

  • ... dafür sorgen, dass der Artikel gar nicht in Portalen angezeigt werden, indem man {{Nicht im Portal}} einfügt (Beispiel: Alternative Schreibweisen und Redirects, die nur zum leichteren Auffinden angelegt werden).
  • ... dafür sorgen, dass der Artikel im Portal anders angezeigt wird, indem man {{Im Portal|anzeigen als=...}} einfügt (Beispiel: Um den Eintrag für Mimas Health Center als »Mimas Health Center (MHC)« listen zu lassen, schreibt man {{Im Portal|anzeigen als={{PRNA|Mimas Health Center}} ({{PRNA|MHC}})}}
  • ... dafür sorgen, dass der Artikel in einem bestimmten Abschnitt auftaucht, indem man {{Im Portal|anzeigen unter=...}} einfügt. Beispiele:
    1. Artikel mit mehreren Kategorien. Zum Beispiel ist Royal Flair sowohl in Kategorie:Gebäude und Stationen sortiert als auch in Kategorie:Wirtschaftsorganisationen. Meiner Ansicht nach sollte es aber im Portal nur unter »Schauplätze->Gebäude und Stationen« aufgelistet werden. Also füge ich folgendes ein: {{Im Portal|anzeigen unter = Gebäude und Stationen}}
    2. Artikel, deren Kategorien nicht zu den Portal-Abschnitten passen. Beispiel: Servoroboter ist in der Kategorie:Roboter. Im Abschnitt »Künstliche Individuen und Roboter« sollen aber nur einzelne Roboter gelistet werden, keine Robotertypen. Letztere sollten unter »Technologie->Wissenschaft und Technik« auftauchen. Wenn wir an den Kategorien nichts ändern wollen, fügen wir auf der Seiten Servoroboter folgendes ein: {{Im Portal|anzeigen unter = Wissenschaft und Technik}}.

Redirects

SMW geht mit Weiterleitungen sehr speziell um: Es nimmt an, dass ein Redirect »X->Y« immer bedeutet, dass »X« und »Y« identische Begriffe sind. Tatsächlich gibt es in der Perrypedia aber (mindestens) drei Verwendungen für Redirects:

  1. Alternative Schreibweisen. Hier werden die Redirects angelegt, um das Auffinden des richtigen Artikels zu erleichtern.Beispiele: Trade City (->Trade-City), Daghor (->Dagor), Chuncui de yichan (PR Neo) (-> Chúncuì de yíchǎn (PR Neo)).
    Hier ist die Behandlung durch SMW genau richtig.
  2. Teil-von-Redirects. Hier werden Redirects angelegt, weil es nur sehr wenig zu dem Begriff zu sagen gibt. Und weil das, was es zu sagen gibt, besser in einem anderen Artikel aufgehoben ist. Beispiel: Herschel-Krater (-> Mimas#Herschel-Krater).
    Hier geht SMW fehl: Herschel-Krater sollte genau wie alle anderen Artikel behandelt werden.
  3. Alternative Bezeichnungen. Dazu zählen kürzere Formen (Atlan->Atlan da Gonozal), Spitznamen (Bully->Reginald Bull), aber auch Titel (Galaktischer Spieler (Ronald Tekener)->Ronald Tekener)
    Ob diese wie alternative Schreibweisen behandelt werden sollten oder als eigene Seiten ist von Fall zu Fall verschieden.

SMW behandelt diese Redirects zunächst alle gleich (= wie für Fall 1 gewünscht). Damit die Redirects vom Typ 2 (und manche von Typ 3) richtig behandelt werden (= in den Portalen auftauchen) ist leider ein kleine Extension notwendig. Mit dieser funktionieren Redirects dann aber wie immer.

Aufwandseinschätzung

Implementation

Die Funktionalität wie oben beschrieben benötigt SMW, eine Handvoll Vorlagen und eine (sehr) kleine PP-spezifische Extension. Diese existieren bereits in meiner lokalen Kopie der Perrypedia. Theoretisch könnten wir also sofort mit einem Test im Testwiki loslegen, und bei Erfolg / Zustimmung der Community mit einem Probelauf im Live-System beginnen (hier bietet es sich an, zunächst im Neo-Space auszuprobieren, ob alles glatt läuft, es Performance-Probleme gibt, &c. – auch weil ich (Lars Jürgenson (Diskussion))) als Initiator hauptsächlich im Neo-Space arbeite und mehr oder weniger der einzige bin, der sich um die Portale zur aktuellen Handlung kümmert.

Für die Perrypedianauten

  • Für Neu-Autoren, und Autoren, die gelegentlich Artikel bearbeiten, ändert sich wenig bis nichts, allenfalls wird Arbeit gespart:
    Alle Artikel, die keine Person beschreiben, bleiben exakt wie vorher (man muss sie nur nicht mehr händisch im Portal eintragen).
    Für Personen-Artikel erscheint unten in Perrypedia:Formatvorlage Person die {{Personendaten ...}}-Vorlage, die recht straightforward auszufüllen sein sollte.
  • Für die Leute, die Portale pflegen, wird die Arbeit entweder einfacher (Artikel tauchen automatisch auf) oder bleibt etwa gleich: Wenn ein bestehender Artikel fehlt, muss dieser editiert werden, um die richtigen Kategorien zu setzen (das sollte sowieso geschehen) und/oder die Personendaten zu ergänzen.

Softwarepflege

Meiner Ansicht nach ergeben sich für PP-Benutzer/Autor keine Nachteile - einige Dinge verändern sich, aber der Arbeitsaufwand sinkt oder bleibt gleich. Allerdings gibt es potentielle Nachteile in der Softwarepflege der PP, die nicht verschwiegen werden sollen:

  • Aufgrund des Designs von SMW ergibt sich bei Updates der SMW-Extension (und damit oft beim Update der Wiki-Software als Ganzes) eine mehrstündige Update-Zeit, in der zumindest die SMW-Funktionen nicht verfügbar sind. Solche Updates kommen nicht oft vor, da aber Updates der Wiki-Software ohnehin schon einige Zeit dauern, ist dieser Faktor nicht komplett zu vernachlässigen.
  • Damit auch Weiterleitungsseiten in den Listen auftauchen, musste ich eine kleine zusätzliche Extension schreiben (weniger als 300 LOC). Diese ist fertig und funktioniert bereits. Allerdings bringt eine solche selbstgestrickte Extension immer einen Pflegeaufwand mit sich (z. B. Bug fixes, Anpassungen bei Updates). Ich bin bereit, das zu machen und habe nicht vor, zu verschwinden. Trotzdem gilt: Die Komplexität des Systems steigt (in kleinem Umfang), und damit besteht die Möglichkeit, dass die Wikipedia-logo.pngTruck Number der PP sinkt. (Letztendlich gilt das genauso für andere Neuerungen, ich wollte es aber nicht unerwähnt lassen.)

Zukunftsmusik

Im ersten Schritt möchte ich Feedback / Diskussion / ein Meinungsbild zu dem Vorschlag unter #Erster Schritt: Portallisten. Aber falls wir uns entscheiden, SMW für die Generierung von Portalseiten zu benutzen, eröffnen sich für die Zukunft weiter Perspektiven.

Bekannte X

Dir wird aufgefallen sein, dass in dem oben vorgeschlagenen Eintrag für Homer Gershwin Adams die Angabe Volk = Terraner eigentlich unnütz war. Wenn wir ihn aber hinzufügen, eröffnet sich die Möglichkeit, die List der "Bekannten X" auf Seiten, die Völker beschreiben, zu automatisieren (und damit automatisch aktuell zu halten). Für Terraner würde das sicherlich in absehbarer Zeit nicht nützlich (weil die Personendaten-Einträge auf den Seiten fehlen), aber für »neue« Völker durchaus.

Beispiel: In Perry Rhodan Neo 200 trat mit Merkosh (PR Neo) erstmals ein Oproner (PR Neo) in der Serie auf. Es ist aber zu erwarten, dass in der nächsten Staffel diverse andere Mitglieder dieser Serie auftreten. Wenn wir jetzt in Oproner (PR Neo)#Bekannte Oproner die Liste durch etwas wie {{Bekannte|Oproner}} ersetzen, könnte die Liste automatisch alle neuen Oproner aufführen.

Listenseiten

Listenseiten sind wieder ein guter Kandidaten für eine automatische Generierung. Allerdings gibt es hier mehr Informationen, die zuerst auf den entsprechenden Listenseiten eingepflegt werden müssen. Trotzdem ließe sich ein »sanfter« Umstieg realisieren. Das könnte so aussehen.

Wir verschieben die existierenden Listenseiten und stellen an ihre Stelle automatisch generierte. Gleichzeitig werden aber die existierenden Einträge aus den alten, manuell erstellten Listen mit aufgelistet. Dazu ist in diesem Fall eine kleine Extension nötig, die die manuell erstellten Listen parst und entsprechend bereitstellt, aber das ist (in der Theorie) nicht schwierig.

Anders gesprochen: Wir haben dann die alten Listen, in denen lediglich neue Einträge automatisch auftauchen, sobald auf den Seiten die entsprechenden Informationen hinterlegt sind. Nach und nach können dann Einträge, die automatisch in der neuen Liste auftauchen, gelöscht werden. Für einige (z. B. Listeneinträge, die auf die Wikipedia oder ähnliches verweisen), bleiben sie einfach für immer auf der manuellen Liste. Auch ist es danach möglich, neue Einträge in die "alte" Liste einzutragen (wenn es ein externer Link ist, o.ä.).

Und: Die bestehenden Redirects auf Listen können weiter so bestehen bleiben, wie sie sind. Das war mit ein Showstopper des alten Vorschlags.

Zum Format, in dem die Infos auf den Artikelseiten hinterlegt werden, schlage ich wieder ein ähnliches Format vor wie bei den Personendaten. Und tatsächlich gibt es eine Menge Seiten, auf denen die Listeninfos schon hinterlegt sind - nämlich solche, die die Vorlagen Vorlage:Astrodaten Planet (/Mond/Galaxie/&c.) oder Vorlage:Techdaten, &c. benutzen. In diesen Fällen müssen nur die Vorlagen leicht angepasst werden, damit diese Daten auch in einer Form vorliegen, die SMW abfragen kann. An den Artikeln selbst muss nichts geändert werden - außer evtl. eine Zeile |Kurzbeschreibung = ... einzufügen.

Das ist alles noch Zukunftsmusik - obwohl ich mir ziemlich sicher bin, dass sich das so realisieren lässt, ist die entsprechende Extension noch nicht geschrieben und getestet.