Perrypedia:Automatisierte Änderungen

Aus Perrypedia
Zur Navigation springen Zur Suche springen

Diese Seite bietet einen Überblick über das Thema Automatisierte Änderungen. Anfragen bezüglich weiterer zu automatisierender Änderungen können auf der Diskussionsseite gestellt werden.

Überblick

Eine Reihe von Arbeiten im Kontext der Perrypedia können prinzipiell automatisiert werden. So wird zum Beispiel gefordert, in Quellenangaben eine Reihe von   einzubringen, um unerwünschte Zeilenumbrüche zu verhindern (siehe hier): Aus dem einfach zu tippenden [[Quelle:PRxxx|PR xxx, S. xx]] wird so das für Menschen wesentlich schwerer zu schreibende [[Quelle:PRxxx|PR xxx, S. xx]].

Quellenangaben besitzen nun wie oben zu sehen ein klares Muster, sind vom Prinzip her immer gleich aufgebaut. Dieses Muster kann zum Beispiel mit Hilfe eines Wikipedia-logo.pngregulären Ausdrucks beschrieben werden. Es ist daher möglich, Programme, so genannte Bots, zu schreiben, die alle Quellenangaben mit Leerzeichen finden, diese Leerzeichen durch   ersetzen und damit den aktiven Benutzern das Ausführen dieser mühsamen Arbeit ersparen.

Das Beispiel Quellenangaben zeigt recht gut, wann automatisierte Änderungen zum einen möglich, zum anderen sinnvoll sind: Möglich werden sie, wenn die Änderung einem klaren Muster folgt, das auch von einem Programm verstanden werden kann. Sinnvoll sind sie, wenn diese Arbeit mühsam ist und sich immer wieder und wieder wiederholt.

So hilfreich Bots auch sind, haben sie doch den Nachteil, dass sie von bestimmten Personen abhängig sind: Ein Perrypedianaut mit den entsprechenden Kenntnissen schreibt einen Bot, setzt ihn regelmäßig ein, baut eventuell vorhandene Fehler im Programm aus, entwickelt den Bot weiter. Das kostet Zeit. Wechselt der Perrypedianaut irgendwann von aktiv nach inaktiv, steht plötzlich auch der Bot still.

Eine mögliche Abhilfe bietet hier die Erweiterung (Extension) »Replace Text«. Mit dieser ist es jedem Bürokraten und eventuell weiteren mit entsprechenden Rechten versehenen Benutzern möglich, komplizierte, auf regulären Ausdrücken basierende Textersetzungen über alle Seiten des wikis auszuführen. Damit bietet die Erweiterung einen Funktionsumfang, der nahe wenn auch nicht ganz an dem eines Bots heranreicht. Ihre Nutzung ist aber nicht an eine bestimmte Person gebunden.

Wenn es gelingt, das Wissen über den Aufbau der Abfragen für die Erweiterung »Replace Text« offen zu kommunizieren, können diese auch wenn der eine oder andere irgendwann einmal keine Zeit mehr haben sollte, weiter ohne Probleme ausgeführt werden. Um diese Transparenz zu erreichen, wurde diese Seite angelegt.

Auf der Diskussionsseite kann jeder fachliche Anforderungen stellen. Gemeinsam kann über den Sinn einer Automatisierung und deren Machbarkeit diskutiert und eine technische Lösung ausgearbeitet, sowie bestehende Lösungen verfeinert werden. Auf der Seite hier findet sich das jeweilige Ergebnis. Bei Änderungen, die per Erweiterung »Replace Text« ausgeführt werden können zählt hierzu neben der allgemeinverständlichen Beschreibung der Änderung die zu verwendenden regulären Ausdrücke. Bei komplizierteren Änderungen, die durch die Erweiterung nicht ausgeführt werden können, wird der Bot genannt, der diese ausführen kann.

Reguläre Ausdrücke

Wikipedia-logo.pngReguläre Ausdrücke (kurz: regex) beschreiben Mengen von Zeichenketten und sind von daher für automatisierte Änderungen sehr hilfreich. Oft kann man regex für den eigenen Anwendungsfall aus anderen regex ableiten. Daher werden im Folgenden einige Beispiele aufgeführt.

Anmerkung: Jede regex lässt sich immer auch anders, manchmal auch besser schreiben. Vorschläge bitte einfach kurz auf der Diskussionsseite zur Diskussion stellen.
Suchmuster Funktion Bemerkungen
(\[\[ *Kategorie:([^]]*)\|[^]]*[0-9][^]]*\]\])
Findet Sortkeys mit Arabischen Zahlen
Text ersetzen = $1
Sortkey-Pflege.
Nur Suche.
\{\{DEFAULTSORT:[^}0-9]+\}\}
Findet DEFAULTSORT:Ohne Zahlen
Text ersetzen = {{PPDefaultsort}}
Sortkey-Pflege.

Änderungen per »Extension:Replace Text«

NGZ-Jahreszahl-Links umwandeln

Die früher üblichen Pipe-Links [[XXXX NGZ|XXXX NGZ]] zur Vermeidung eines unerwünschten Zeilenumbruchs vor »NGZ« sind nicht mehr notwendig und können mittels des nebenstehenden regex nach [[XXXX NGZ]] umgewandelt werden.


Technische Details

Muster des Original-Textes:

\[\[([0-9]+) NGZ\|([0-9]+) NGZ\]\]

Muster für die Ersetzung:

[[$2 NGZ]]

Einschränkungen:

  • Nur Hauptnamensraum.


"Bild:" ist veraltet

Anstelle von "Bild:" soll "Datei:" geschrieben werden.


Technische Details

Einbeziehen von "[" im Suchmuster, um false positiv wie z.B. den Text "Ihm bot sich folgendes Bild:" zu verhindern.
Ersetzung ohne Regex.
Muster des Original-Textes:

[Datei:

Muster für die Ersetzung:

[Datei:

Einschränkungen:

  • --keine--


Zeilenumbruch vor Einheiten verhindern

Zwischen dem Wert einer Einheit und der zugehörigen (abgekürzten) Einheit soll kein Zeilenumbruch möglich sein. Texte wie beispielsweise »10 cm« müssen deshalb durch »10 cm« ersetzt werden. Für die Einheiten »cm«, »m«, »g«, »kg«, ist dies mittels des nebenstehenden regex automatisiert möglich.


Technische Details

Muster des Original-Textes:

([0-9]+) (cm|m|kg|g)([^a-zA-Z0-9äÄöÖüÜ])

Muster für die Ersetzung:

$1 $2$3

Einschränkungen:

  • Nur Hauptnamensraum.


PR Neo-Links

Links für Perry Rhodan Neo wurden anfangs folgendermaßen gesetzt: [[Perry Rhodan (PR Neo)|Perry Rhodan]].

Erst später wurde zur Vereinfachung die Formatvorlage {{PRNA|}} erstellt. Dadurch waren aber beiderlei Arten von Verlinkung anzutreffen.

Das folgende Verfahren stellt die Verlinkung nach dem alten Muster auf die neue Vorlage um.

  • Reihenfolge der Schritte 1 und 2 ist wichtig!
Im ersten Schritt werden nur die Links ersetzt, die vor und nach dem Pipe identisch sind.
Erst im zweiten Schritt dürfen die Links ersetzt werden, die vor und nach dem Pipe unterschiedlich sind.
Technische Details → Schritt 1

Links ersetzen, die vor und nach dem Pipe identisch sind.
Suchmuster:

\[\[([^\]]*)( | )\(PR Neo\)\|\1\]\]

Muster zum Ersetzen:

{{PRNA|$1}}

Einschränkungen:

  • Kategorie = Perry Rhodan Neo


Technische Details → Schritt 2

Links ersetzen, die vor und nach dem Pipe unterschiedlich sind.
Suchmuster:

\[\[([^\]]*) \(PR Neo\)\|([^\]]*)\]\]

Muster zum Ersetzen:

{{PRNA|$1|$2}}

Einschränkungen:

  • Kategorie = Perry Rhodan Neo
  • Bekannte Probleme:
Das Suchmuster ist noch fehlerhaft, auch die Kategorie-Links werden ersetzt. Aus [[Kategorie:Vision Terrania (PR Neo)| {{SortKey}}]] wird {{PRNA|Kategorie:Vision Terrania| {{SortKey}}}}. Da es sich um kaum mehr als eine Handvoll Fehler handelte, wurden die zuviel durchgeführten Ersetzungen manuell rückgängig gemacht.



Zeilenumbruch in Galaxiennamen verhindern

Galaxien-Katalognamen wie beispielsweise »M 13« sollen durch ein   zusammengehalten werden, um einen unerwünschten Zeilenumbruch zu verhindern.

Technische Details

Suchmuster:

(?<!:)\b(M|NGC|IC|HCG|UGC|PGC) ([0-9]+\b)(?![^\]]*\|)

Muster zum Ersetzen:

$1&nbsp;$2

Einschränkungen:

  • Nur Hauptnamensraum


Zeilenumbruch in Raumschiffsnamen verhindern

Raumschiffsnamen mit lateinischer Nummerierung wie beispielsweise »CREST II« sollen durch ein &nbsp; zusammengehalten werden, um einen unerwünschten Zeilenumbruch zu verhindern.

Technische Details

Suchmuster:

\b([-A-Z]+)( | )([IVXLCM]+)\b

Muster zum Ersetzen:

$1&nbsp;$3

Einschränkungen:

  • Die Redirects habe ich manuell abgewählt.


Auflösung Pipelinks

Pipelinks sind unnötig und können durch einen einfachen Link ersetzt werden, wenn vor und nach dem Pipe dasselbe steht. Insbesondere aber auch dann, wenn der einzige Unterschied vor und nach dem Pipe ein &nbsp; ist.

Technische Details

Suchmuster:

\[\[([^\]]+) ([^\]]+)\|\1( | )\2\]\]

Muster zum Ersetzen:

[[$1$3$2]]

Einschränkungen:

  • Namensraum Seiten, Perrypedia, Datei.


Textersetzung ohne regex

Originaltext Ersetzt durch... Anwendungsgrund Angewendet ...von
Datumsformat: z.B. Fr., 15. Februar Freitag, 15. Februar Wunsch der User 16.02.2013 JoBot
Namen mit Abkürzungen
(z.B. Homer G. Adams)
&nbsp; eingefügt
(z.B. Homer G.&nbsp;Adams)
Vermeidung eines nicht gewünschten Zeilenumbruchs. 10.05.2012
17.05.2012
18.05.2012
19.05.2012 [1]
JoBot
JoBot
JoBot
JoBot
[[M 13|M&nbsp;13]] [[M&nbsp;13]] Auflösung des Pipe-Links. 04.05.2012 JoBot
M 13 M&nbsp;13 Vermeidung eines nicht gewünschten Zeilenumbruchs. 04.05.2012 JoBot
[[M 87|M&nbsp;87]] [[M&nbsp;87]] Auflösung des Pipe-Links. 20.05.2012 JoBot
[[Argan U|Argan&nbsp;U]] [[Argan&nbsp;U]] Auflösung des Pipe-Links. 05.05.2012 JoBot
Argan U Argan&nbsp;U Vermeidung eines nicht gewünschten Zeilenumbruchs. 05.05.2012 JoBot
Guan a Var Guan a&nbsp;Var Vermeidung eines nicht gewünschten Zeilenumbruchs. 09.05.2012 JoBot
[[Tatcher a Hainu|Tatcher a&nbsp;Hainu]] [[Tatcher a&nbsp;Hainu]] Auflösung des Pipe-Links. 10.05.2012 JoBot
Tatcher a Hainu Tatcher a&nbsp;Hainu Vermeidung eines nicht gewünschten Zeilenumbruchs. 10.05.2012 JoBot
[[M 30|M&nbsp;30]] [[M&nbsp;30]] Auflösung des Pipe-Links. 14.05.2012 JoBot
[[M 3|M&nbsp;3]] [[M&nbsp;3]] Auflösung des Pipe-Links. 14.05.2012 JoBot
[[CREST II|CREST&nbsp;II]] [[CREST&nbsp;II]] Auflösung des Pipe-Links. 14.05.2012 JoBot
[[CREST III|CREST&nbsp;III]] [[CREST&nbsp;III]] Auflösung des Pipe-Links. 14.05.2012 JoBot
[[CREST IV|CREST&nbsp;IV]] [[CREST&nbsp;IV]] Auflösung des Pipe-Links. 14.05.2012 JoBot
[[CREST V|CREST&nbsp;V]] [[CREST&nbsp;V]] Auflösung des Pipe-Links. 14.05.2012 JoBot
CREST II CREST&nbsp;II Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
CREST III CREST&nbsp;III Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
CREST IV CREST&nbsp;IV Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
CREST V CREST&nbsp;V Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
CREST VI CREST&nbsp;VI Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
CREST XII CREST&nbsp;XII Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
ANDROTEST I ANDROTEST&nbsp;I Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
ANDROTEST II ANDROTEST&nbsp;II Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
ANDROTEST III ANDROTEST&nbsp;III Vermeidung eines nicht gewünschten Zeilenumbruchs. 14.05.2012 JoBot
[[Arkon I|Arkon&nbsp;I]] [[Arkon&nbsp;I]] Auflösung des Pipe-Links. 15.05.2012 JoBot
[[Arkon II|Arkon&nbsp;II]] [[Arkon&nbsp;II]] Auflösung des Pipe-Links. 15.05.2012 JoBot
[[Arkon III|Arkon&nbsp;III]] [[Arkon&nbsp;III]] Auflösung des Pipe-Links. 15.05.2012 JoBot
Arkon I Arkon&nbsp;I Vermeidung eines nicht gewünschten Zeilenumbruchs. 15.05.2012 JoBot
Arkon II Arkon&nbsp;II Vermeidung eines nicht gewünschten Zeilenumbruchs. 15.05.2012 JoBot
Arkon III Arkon&nbsp;III Vermeidung eines nicht gewünschten Zeilenumbruchs. 15.05.2012 JoBot
,__ ,_ Doppeltes Leerzeichen nach einem Komma. 15.05.2012 JoBot
.__ ._ Doppeltes Leerzeichen nach einem Punkt. 15.05.2012 JoBot
XX. Monat XX.&nbsp;Monat Vermeidung eines nicht gewünschten Zeilenumbruchs. 15.05.2012 JoBot
Gonozal III. Gonozal&nbsp;III. Vermeidung eines nicht gewünschten Zeilenumbruchs. 16.05.2012 JoBot
Gonozal V. Gonozal&nbsp;V. Vermeidung eines nicht gewünschten Zeilenumbruchs. 16.05.2012 JoBot
Gonozal VI. Gonozal&nbsp;VI. Vermeidung eines nicht gewünschten Zeilenumbruchs. 16.05.2012 JoBot
Gonozal VII. Gonozal&nbsp;VII. Vermeidung eines nicht gewünschten Zeilenumbruchs. 16.05.2012 JoBot
Gonozal VIII. Gonozal&nbsp;VIII. Vermeidung eines nicht gewünschten Zeilenumbruchs. 16.05.2012 JoBot
Dr. Xxx Dr.&nbsp;Xxx Vermeidung eines nicht gewünschten Zeilenumbruchs. 18.05.2012 JoBot
[[Xxxx NGZ]] [[Xxxx&nbsp;NGZ]] Vermeidung eines nicht gewünschten Zeilenumbruchs. 25.05.2012 JoBot
[[Xx. Jahrhundert]] [[Xx.&nbsp;Jahrhundert]] Vermeidung eines nicht gewünschten Zeilenumbruchs. 25.05.2012 JoBot
[[Xx. Jahrhundert NGZ]] [[Xx.&nbsp;Jahrhundert&nbsp;NGZ]] Vermeidung eines nicht gewünschten Zeilenumbruchs. 25.05.2012 JoBot
{{PPDefaultsort}} Unnötiges {{PPDefaultsort}} in Kategorie »Planeten« entfernt. 29.05.2012 JoBot
{{PPDefaultsort}} Unnötiges {{PPDefaultsort}} in Kategorie »Personen« entfernt. 29.05.2012 JoBot
Standardisierte Tabellen-Lemmata:
»Galaxie«; »Spektraltyp«; »Stern«; »Planet«; »Mond«; »Solsystem«
[[Galaxie]]; [[Spektraltyp]]; [[Stern]]; [[Planet]]; [[Mond]]; [[Sol]]system Verlinkung 10.06.2012 JoBot


  1. Kategorie:Personen abgeschlossen am 19.05.2012. JoBot / Diskussion


Änderungen per Bot

Aktuell sind keine Bots aktiv.