Benutzer:PerfektesChaos/js/WikiSyntaxTextMod/usage/Syntaxkorrektur

aus Wikipedia, der freien Enzyklopädie

WikiSyntaxTextModBenutzung → Projekt Syntaxkorrektur

Projekt Syntaxkorrektur

Das Projekt Syntaxkorrektur soll vom Skript unterstützt werden.

Wo immer es möglich ist, erfolgt die Berichtigung automatisiert. Dies setzt aber voraus, dass der beabsichtigte Sinn zweifelsfrei erschlossen werden kann. Gerade schwere Syntaxfehler benötigen menschliche Interpretation; ein leeres Wikilink [[]] etwa kann nicht einfach eliminiert werden; es verweist auf eine beabsichtigte Verlinkung, ein fehlendes oder daneben stehendes Wort. Das Skript ändert oder löscht werksseitig grundsätzlich keine bedeutungstragenden Informationen.


Zurzeit implementiertes Vorgehen

Bereinigte Fehlertypen bei Check Wikipedia
ID priority Bezeichnung Einzelheiten
8 high Überschrift keine eigene Zeile benutzerdefiniert
30 Bildbeschreibung fehlt
70 ISBN mit falscher Länge auto/Standard
wenn durch ungeeignete Gliederungszeichen etc. verursacht
69 ISBN mit falscher Syntax
46 Anzahl öffnender eckiger Klammern nicht korrekt auto/Standard
wenn eine öffnende vorhanden ist und beide schließende Klammern nicht zu weit entfernt sind
10 Anzahl schließender eckiger Klammern nicht korrekt auto/Standard
wenn eine schließende vorhanden ist und beide öffnende Klammern nicht zu weit entfernt sind
32 Link mit doppeltem senkrechten Strich
80 Weblink mit Zeilenumbruch \n
  • automatisch entfernt, wenn \n der URL unmittelbar folgend
  • sonst belassen, da Ende der Linkbeschreibung nicht absehbar; häufig fehlt die schließende Klammer bis zum Ende des Absatzes
86 Weblink mit zwei eckigen Klammern auto/Standard
79 Weblink ohne Beschreibung Benutzerdefiniert: Domain ergänzen als ersten Notbehelf
57 middle Überschrift endet mit Doppelpunkt benutzerdefiniert
44 Fettdruck in Überschrift auto/Standard
48 Selbstlink auto/Standard
66 Bildbeschreibung mit <small> <small> in <ref> und für ganze Bildbeschreibungen und Exponenten
50 low &ndash; oder &mdash; auto/Standard
(alle Entities werden aufgelöst, wenn nichts dagegen spricht)
63 <small> in Referenz, sub oder sup <small> in <ref> und für ganze Bildbeschreibungen und Exponenten
26 <b>……</b> benutzerdefiniert
38 <i>……</i>
11 HTML-Zeichen benannt auto/Standard
(alle Entities werden aufgelöst, wenn nichts dagegen spricht)
9 Kategorie auf neue Zeile auto/Standard
22 Kategorie mit Leerzeichen
18 Kategoriename kleingeschrieben
21 Category statt Kategorie auto/Standard
(Zu befürchten ist aber, dass die Kategorie selbst auch Englisch ist, weil dies aus einem anderen Projekt übernommen wurde.)
76 Wikilink mit %20 auto/Standard
(alle %-Encodings werden aufgelöst, wenn nichts dagegen spricht)
64 Linkziel ist gleich dem Linktext auto/Standard
6 SORTIERUNG mit Sonderzeichen auto/Standard
(alle lateinischen non-ASCII-Buchstaben)
20 &dagger; auto/Standard
(alle Entities werden aufgelöst, wenn nichts dagegen spricht)
27 &#0000; oder &#x0000;
16 Vorlageneinbindung mit Unicode-Kontroll-Zeichen Immer Umwandlung in &lrm; / &rlm;
Am Ende des Vorlagen-Namens automatisch entfernt; sonst dem manuellen Löschen zugänglich gemacht; auch benutzerdefiniert automatisch.
59 Zeilenumbruch <br /> am Vorlagen-Wertende benutzerdefiniert
2 Zeilenumbruch <BR> im Artikeltext korrektes XHTML
54 Zeilenumbruch <br /> am Ende eines Listenpunkts oder vor einem Listenpunkt benutzerdefiniert

Dies ist jedoch nur ein Teil der Gesamtfunktionalität des Skriptes, die Schnittmenge mit dem Fehlerkatalog des Projekt Syntaxkorrektur.

Nicht automatisierbar zu behebende Syntaxfehler

Nur durch menschliche Interpretation des Textes lassen sich Strukturfehler beheben, die so schwer sind, dass automatische Berichtigungsversuche ausscheiden:

Unkorrigierbare Syntaxfehler bei Check Wikipedia
ID priority Bezeichnung
74 high Link ohne Ziel
14 Source mit undefiniertem Ende
15 Undefiniertes Ende bei Code
5 Undefiniertes Ende bei Kommentar
13 Undefiniertes Ende bei Math
23 Undefiniertes Ende bei Nowiki
24 Undefiniertes Ende bei Pre
28 Undefiniertes Ende bei Tabelle
47 Vorlagenbeginn nicht korrekt
43 Vorlagenende nicht korrekt
60 Vorlagenparameter problematisch
29 low Undefiniertes Ende bei Galerie
36 Weiterleitung nicht korrekt

Genauso muss ausscheiden, wo Inhalte erst zu generieren sind oder inhaltliche Beurteilungen erforderlich sind:

Inhaltsbezogene Fehlertypen bei Check Wikipedia
ID priority Bezeichnung
84 high Abschnitte ohne Inhalt
35 Bildbeschreibung in Galerie fehlt
71
72
73
ISBN
3 Referenz-Tag fehlt
62 middle Überschrift alleinstehend
83 Überschrift beginnt mit drei „=“, nachfolgende auf Ebene 2
92 Überschrift doppelt
58 Überschrift großgeschrieben
19 Überschriften beginnen mit höherer Ebene als 2
7 Überschriften beginnen mit tieferer Ebene als 2
25 Überschriftenstruktur fehlerhaft
55 <small> doppelt
82 Link zu einem anderen Wikiprojekt
68 Link zu einer anderen Sprache
56 Pfeil als ASCII-Kunst
81 Referenz-Angabe mehrfach vorhanden
4 Weblink im Artikel ohne Überschrift
77 low Bildbeschreibung mit teilweise <small>
85 HTML-Tag ohne Inhalt
(Inhalt steht ggf. daneben)
41 <big>
78 Referenz-Tag doppelt
34 Reste aus Vorlagenprogrammierung

Bestimmte Fehler lassen sich zwar formal konvertieren, aber erfahrungsgemäß handelt es sich um Passagen, die aus HTML-Dokumenten kopiert wurden und unter verschiedenen Aspekten wikifiziert werden müssen. Für das seltene Vorkommen lohnen sich Automatisierungsversuche nicht.

Besser manuell aufzuarbeitende Fehlertypen bei Check Wikipedia
49 low Überschrift in HTML-Tags
12 HTML-Listenelemente
31 HTML-Tabellenelemente
39 HTML-Textformatierungselement <p>
51 Interwikilink vor der letzten Überschrift Ließe sich automatisch verschieben, wenn wirklich Interwikilink. Problem: Es könnte [[:Kategorie:Rubrik]] oder [[:en:Lemma]] gemeint sein, dem irrtümlich der führende Doppelpunkt fehlt. Wird bereits erkannt, ggf. MessageBox anzeigen.
52 Kategorie vor der letzten Überschrift
53 Interwikilink vor der letzten Kategorie

Beispiel für benutzerdefinierte Ersetzungen

Die vorstehend erwähnten benutzerdefinierten Ersetzungen der Syntax zusammengefasst:

mw.libs.WikiSyntaxTextMod.config.mod.plain  =  [
   // ID:8
   ["\n(==+) *([^ =\n][^=\n]*[^ =\n]) *\\1 *([^ =\n])",
    "\n$1 $2 $1\n$3"],
   // ID:16
   ["\\{\\{(Arabische Schrift|(Ar|ar|Fa|fa|Ps|ps|Ur|ur)[FS]?|He|he) *\\| *(&rlm;)?([^|}\n]+) *(&lrm;)? *\\|",
    "{{$1|$4|"],
   // ID:26
   ["([^'])<(em|i)>([^'<\n]+)</ *\\2>([^'])",
    "$1''$3''$4",
    "gi"],
   // ID:38
   ["([^'])<(strong|b)>([^'<\n]+)</ *\\2>([^'])",
    "$1'''$3'''$4",
    "gi"],
   // ID:54
   ["<br /> *(\n+[*#:;])",
    "$1"],
   ["(\n[*#:;].+) *<br /> *\n",
    "$1\n"],
   // ID:57
   ["\n(==+) *(.+): *\\1 *\n",
    "\n$1 $2 $1\n"],
   // ID:59
   ["(\\| *[A-Za-z_0-9]+ *=[^|=\n])<br /> *(\n? *\\| *[A-Za-z_0-9]+ *=)",
    "$1$2"]
                                               ];

Hinzu kämen inhaltsbezogene Ersetzungen wie Bildbeschreibungen und Linktitel.

Zu technischen Einzelheiten siehe benutzerdefinierte Ersetzungen.

Ausblick: künftige Möglichkeiten

Künftig automatisierbare Fehlertypen bei Check Wikipedia
ID priority Bezeichnung Kommentar
45 high Interwikilink doppelt machbar, gelegentlich
65 low Bildbeschreibung mit <br /> am Ende selten; machbar; zunächst auch benutzerdefiniert
17 Kategorie doppelt machbar, gelegentlich
37 SORTIERUNG fehlt und Lemma mit Sonderzeichen Ließe sich als Vorschlag generieren und vor die erste Kategorie setzen; neue Lösung (UCA) könnte dies 2012/2013 überflüssig machen.
89 SORTIERUNG mit Großbuchstaben im Wort Neue Lösung (UCA) machte dies 2012 überflüssig.