Benutzer:StefanL/Themenbezogene Wartungslisten

aus Wikipedia, der freien Enzyklopädie

Detail-Diskussion bitte auf der zugehörigen Diskussionsseite

Themenbezogene Artikellistung zu Wartungszwecken

Sinn dieses Projekts

In der Vergangenheit haben sich die Bewertungsbausteine vielfach als wenig wirksam erwiesen. Die entsprechenden Wartungskategorien werden kaum genutzt. Im Moment versucht z.B. die Qualitätsischerung, Artikel die keiner überarbeiten kann/will bei den entsprechenden Portalen anzubringen. Dort findet sich meistens ein interessierter WPner, der den Artikel dann erweitert und verbessert. Jedoch ist dies ein enormer administrativer Aufwand für die QS und nur selten werden die Artikel auch tasächlich den jeweiligen Portalen zugeordnet.

Aber auch bei weniger dringlichen Bewertungsbausteinen hat man das Problem mit der fehlenden Zuordnung. Folgende Punkte dürften wesentliche Ursachen dazu sein:

  • Viele Benutzer wollen oder können nur in ihrem eigenen Themengebiet arbeiten. Für diese Benutzer sind die Wartungskategorien abschreckend, da sie themenunspezifisch sind und somit nur einen sehr kleinen Anteil von Artikel aus dem Fachgebiet des jeweiligen Benutzers enthalten.
  • Benutzer, die themenübergreifend an der Qualitätsverbesserung arbeiten, konzentrieren sich zumeist auf die wirklich dringlichen Fälle wie beispielsweise die Löschkandidaten.

Um dieser Problematik gerecht zu werden, soll bei diesem Projekt automatisch ein nach Themengebieten sortierter Zugang zu den "überarbeitungsbedürftigen" Artikeln ermöglicht werden.

Grundgedanken

  • Es sollte kein zusätzlicher manueller Aufwand zur Sortierung der mit Bewertungsbausteinen versehenen Artikel in Themengebiete nötig sein. Daher sollte das Themengebiet bei diesem aus der ohnehin im Artikel vorhandenen Kategorisierungsinformation abgeleitet werden.
  • Eine manuelle Pflege von Listen würde einen sehr hohen Aufwand darstellen. Daher werden die Listen bei diesem Konzept von einem Bot täglich neu generiert.
  • Es erscheint nicht sinnvoll, für verschiedene Bewertungsbausteine unterschiedliche Sortierstrategien zu verwenden. Deshalb ist das hier vorgestellte Konzept nicht auf Stubs beschränkt, sondern stellt ein integriertes Konzept für alle Bewertungsbausteine gemeinsam dar.
  • Es erscheint auch wenig sinnvoll, die Information über überarbeitungsbedürftige Artikel zu weit zu streuen. Deshalb sollte die Anzahl der Listen oder Kategorien sich nicht multiplikativ aus der Anzahl der Bewertungsbausteine und Anzahl der Themengebiete ergeben. Daher werden die verschiedenen Bewertungsbausteine eines Themengebiets hier in einer gemeinsamen Liste eingetragen, anber dort in Abschnitte separiert.
  • Grundsätzlich scheint eine derartige Auflistung eine Aufgabe für Kategorien zu sein. Prinzipiell sollten die zur Auflistung der Artikel nötigen Kategorien auch schon in den Artikeln enthalten sein. Es mangelt der Software aber an entsprechend mächtigen Möglichkeiten zur Kategoriedarstellung. Insbesondere fehlen Verknüpfungsoperationen (Vereinigungs- und Schnittmenge), Einbeziehung von Unterkategorien sowie eine Beobachtungsmöglichkeit für Veränderungen. Die im nachfolgend vorgestellten Konzept vom Bot zu erzeugenden Listen sind prinzipiell nichts anderes als Kategoriedarstellungen auf Basis komplizierter Verknüpfungsoperationen zwischen verschiedenen Kategorien.

Realisierungskonzept

Wartungsgruppe und Wartungskategorie

Als Wartungsgruppe wird hier eine gedankliche Kategorie von Artikeln bezeichnet, die ein bestimmtes Merkmal aufweisen. Ein mögliches Merkmal ist das Vorhandensein eines bestimmten Bewertungsbausteins. Die bisherigen Bewertungsbausteine haben bereits eine Wartungskategorie. In diesem Fall sind Wartungsgruppe und real existierende Wartungskategorie identisch. Es kann aber z.B. eine Wartungsgruppe aus Artikeln geben, die nur die Eigenschaft haben, kurz zu sein. Solange die Eigenschaft des Artikels vom Bot analysiert werden kann, ist eine Wartungskategorie oder ein Baustein nicht unbedingt erforderlich.

Datenstrukturen zur Steuerung

Kategoriezuordnungstabelle zu Themenbereichen

Es wird eine Tabelle benötigt, die Kategorien einer oder mehreren Artikellisten zuordnet. Dabei soll es auch möglich sein, dass eine Kategorie expliziet keiner Artikelliste zugeordnet wird. Letzteres wäre beispielsweise für Kategorie:Räumliche Zuordnung der Fall, da es wohl wenig Sinn macht, alle Artikel zusammenzufassen, die eine beliebige räumliche Zuordnung aufweisen. Natürlich muß es möglich sein, viele Kategorien der gleichen Artikelliste zuzuordnen.

Es wäre natürlich Wahnsinn, für jede vorhandene Kategorie eine Zuordnung angeben zu müssen. Die Tabelle soll vielmehr kurz gehalten werden. Wenn der Bot auf eine Kategorie trifft, die in der Tabelle nicht enthalten ist, soll er die Gesamtheit der Zuordnungen der übergeordneten Kategorien (aus dem lokalen Kategorie-Baum) verwenden. Diese Rückverfolgung zu übergeordneten Kategorien soll aber nicht erfolgen, wenn die betreffende Kategorie in der Liste enthalten ist.

Benötigte Lokale Datenstrukturen

Kategorie-Baum

Die Hierachie der Kategorien kann zur Vermeidung von Serverlast aus einem Dump ausgelesen werden. Wie Benutzer:M3ax erwähnte, sollen in einem Dump wohl die Kategorieinhalte nicht vorhanden sein. Dies ist aber auch nicht unbedingt erforderlich, da der Bot durch Lesen des editierbaren Teils aller Seiten des Kategorie-Namensraumes die Kategoriehierachie in einer lokalen Datenstruktur anlegen kann.

Es kann als ausreichend angesehen werden, wenn die themenbezogene Artikellistung zu Wartungszwechen auf einer auf einer veralteten Kategoriestuktur basiert. Somit kann auf eine laufende Aktualisierung der lokal gespeicherten Kategoriestruktur weitgehend verzichtet werden. Lediglich wenn vom Bot neue Kategorien in Artikeln entdeckt werden, sollte der Bot sie in der aktuellen Hierachie zurückverfolgen, bis eine bereits lokal bekannte Kategorie erreicht ist, und mit der gewonnenen Information seine lokal gespeicherte Kategoriehierachie ergänzen.

Artikeltabelle

Die Artikeltabelle soll für jeden für die themenbezogene Artikellistung zu Wartungszwecken relevanten Artikel einen Eintrag enthalten. Jeder Eintrag enthält den Artikelnamen, die Namen der Kategorien, in die der Artikel eingeordnet ist, sowie den Zeitpunkt, zu dem die Kategorisierungsinformation aus dem Artikel ausgelesen wurde. Weiterhin muß der Eintrag Verweise auf die Wartungskategorien beinhalten, in denen der Artikel enthalen ist. Zusätzlich ist noch ein Zustand aktuell oder veraltet.

Kopien der Artikellisten

Um die Serverbelastung gering zu halten, sollten Kopien der im letzten Botdurchlauf generierten Listen lokal gespeichert werden. Damit könnte erkannt werden, ob Änderungen aufgetreten sind und die Listen müssen nur im Falle einer Änderung zurückgeschrieben werden.

Initialisierung der Artikeltabelle auf Dump-Basis

Zur erstmaligen Initialisierung werden in einem Dump alle Artikel ausgelesen und überprüft, ob sie die Kriterien zur Einordnung in einer der Wartungsgruppen erfüllen. Falls dies für mindestens eine Wartungsgruppe der Fall ist, wird der Artikel in der Artikelliste mit den entsprechenden Daten aufgenommen.

Operation beim täglichen Botdurchlauf

Manuelle Änderungen revertieren

In den bei letzten Botdurchlauf gespeicherten Wartungslisten manuell vorgenommene Änderungen könnten zu einer Fehlfunktion führen. Daher sind diese Änderungen automatisch zu revertieren.

Aktualisierung der Artikeltabelle

Der Zustand aller Einträge in der Artikeltabelle wird auf "alt" gesetzt

Entfernen gelöschter Artikel

Es werden alle im letzten Botdurchlauf gespeicherten Wartungslisten ausgelesen. Beinhalten sie rote Links, so wird der entsprechende Artikel aus der Artikeltabelle entfernt (soweit dort noch vorhanden).

Erkennung von Abgängen und Umkategorisierungen

Für alle im letzten Botdurchlauf erzeugten themensortierten Wartungslisten wird Spezial:Recentchangeslinked angewendet und die Artikelnamen aller Änderungen bis zurück zum letzen Botdurchlauf extrahiert. Sofern die Artikel nicht schon in der Artikelliste im Zustand aktuell vorhanden ist, wird der Artikel ausgelesen und die Artikelliste bezüglich dieses Artikels aktualisiert (oder ergänzt) und der Zustand aktuell gesetzt.

Erkennung von Neuzugängen

Für alle Wartungskategorien wird Spezial:Recentchangeslinked angewendet und die Artikelnamen aller Änderungen bis zurück zum letzen Botdurchlauf extrahiert. Sofern die Artikel nicht schon in der Artikelliste im Zustand aktuell vorhanden ist. wird der Artikel ausgelesen und die Artikelliste bezüglich dieses Artikels aktualisiert oder ergänzt und der Zustand aktuell gesetzt. Neuzugänge aus Wartungsgruppen ohne Wartungskategorie können erst auf Basis des nächsten Dumps erkannt werden. Sofern es sich aber um wirkliche Neuanlagen handelt, kann der Bot die Spezialseite für neue Artikel auswerten, die entsprechenden Artikel auslesen und der Artikelliste hinzufügen.

Bereinigung

Einträge in der Artikeltabelle, die nach Auswertung der Wartungskategorien keine Verweise auf Wartungsgruppen enthalten, sind in der Artikeltabelle zu löschen. Die Artikeltabelle ist (alfabetisch) zu sortieren.

Generierung der Listen

  • Die für die verschiedenen Themenbereiche generierten Listen sollen für jeden Wartungsgruppe einen separaten Abschnitt enthalten. Zunächst sind alle Abschnitte als separate Teillisten zu erzeugen, die zunächst als leere Liste angelegt werden.
  • Die Artikeltabelle ist in sortierter Reihenfolge einmal zu durchlaufen. Für jeden enthaltenen Artikel ist anhand der Kategorisierungsinformation (in der Artikeltabelle), der Kategoriezuordnungstabelle sowie des Kategoriebaumes zu bestimmen, welchen Themengebieten er zuzuordnen ist. Anhand der Verweise auf Wartungskategorien in der Artikeltabelle ist zu bestimmen, in welche Abschitte der Artikellisten der Artikel einzufügen ist. Für jede zu berücksichtigende Kombination aus Wartungskategorie und Themengebiet ist der Artikel der entsprechenden Teilliste anzufügen.

Speicherung der Artikellisten

Die Artikellisten sind aus den Teillisten (Abschnitten) zusammenzusetzen und mit den lokal gespeicherten Listen des letzten Botsdurchlaufs zu vergleichen. Im Falle von Änderungen sind sie auf dem Server zu speichern.

Aktualisierungen auf Dump-Basis

Jeweils bei Verfügbarkeit eines neuen Dumps der Datenbank sind auf dieser Basis alle Artikel auf die Kriterien der Wartungsgruppen zu scannen und bei Bedarf die Artikelliste zu ergänzen. Insbesondere bei Wartungsgruppen ohne Wartungskategorie ist dieser Schritt erforderlich, da Neuzugänge beim täglichen Botdurchlauf nur unvollständig erkannt werden. Zum Beispiel würden Artikel, die auf Stub-Niveau gekürzt wurden, erst auf Basis des Dumps wieder erkannt.

Machbarkeit

Kapazität der Spezialseite

Das Werkzeug Nahe Änderungen zeigt normalerweise nur maximal die letzten 500 Änderungen von verlinkten Artikeln in den letzten 7 Tagen an. Es ist jedoch eine Modifikation der Parameter möglich. Mit

http://de.wikipedia.org/w/index.php?title=Spezial:Recentchangeslinked&target=Register_Bahn&hideminor=0&days=30&limit=5000

ist es beispielsweise problemlos möglich, alle Änderungen der letzen 30 Tage an den in Register Bahn gelisteten Artikeln abzurufen. Im Falle der Wartungslisten sollte der limit-Parameter hoch angesetzt werden und der days-Parameter entspechend des Zeitabstandes seit dem letzten Botdurchlauf angepaßt werden.

Wartungslisten die länger als Register-Bahn sind, dürften in der Handhabung sehr unpraktisch sein. Daher sollte die Kapazität der Spezialseite absolut ausreichend sein. Sollte es in Ausnahmefällen doch einmal nicht gelingen, alle Änderungen abzufragen, so können einfach alle verlinkten Seiten der entsprechenden Wartungsliste als verändert angenommen werden. Da mehrere Änderungen auf der Spezialseite zusammengefaßt werden, ist ohnehin die maximal zu erwartende Länge der Spezialseite auf die Länge der Wartungsliste beschränkt.


Gestaltung der zu generierenden Listen

Grundgedanken

  • Je Wartungsgruppe soll es einen eigenen Unterabschnitt geben.
  • Hauptabschnitte sollten Unterabschnitte mit gleicher Dringlichkeit zusammenfassen.
  • Liste sollte einspaltig sein, um besser zu beobachtbar zu sein.
  • Quelltext jeder Zeile mit Artikellink sollte einen Kommentar mit einer (abgekürzten) Abschnittsbezeichnung enthalten. Damit wird auch bei langen Abschnitten beim Versionsvergleich ersichtlich, in welchem Abschnitt die Zu- oder Abgänge erfolgt sind.
  • Artikel innerhalb eines Abschnittes sollen alfabetisch sortiert sein, Damit Versionsunterschiede besser erkennbar sind.

Vorschau eines möglichen Ergebnisses

So könnte die Liste dann in etwa aussehen: ... Benutzer:StefanL/Wartungsliste Beispiel

Umsetzung

Benötigte Mitarbeiter

Für die folgenden Aufgaben werden noch Mitarbeiter mit Fachkenntnis bezüglich Bot-Erstellung und Einsatz:

  • Prüfen des Konzeptes
  • Programmieren des Bot
  • Betreiben des Bot

Wer eine oder mehrere dieser Aufgaben übernehmen möchte, möge sich bitte hier eintragen.

Alternative Konzepte

Falls es andere Möglichkeiten geben sollte, das Ziel des Projektes effizient zu erreichen, sollten diese hier zur Diskussion gestellt werden.

Zu kurze Artikel (Stubs)

Sehr kurze unvollständige Artikel gehören auch zu den überarbeitungsbedürftigen Artikeln und sollten selbstverständlich bei der themensortierten Auflistung mit einbezogen werden. Zur Zeit sind diese Artikel mit dem {{Stub}}-Baustein gekennzeichnet. Die bisherige Praxis der Stub-Kennzeichnung stößt bei vielen Benutzern verständlicherweise auf Ablehnung, wie Wikipedia:Meinungsbilder/Stubs zeigt. Es sollte daher eine Alternative gesucht werden, die die Argumente der Gegner des Stub-Bausteins weitgehend berücksichtigt.

Das vorliegende Konzept ermöglich eine themenbezogene Auflistung der Stubs, ohne dass eine Kategorie oder ein Baustein erforderlich wäre, wenn eine automatische Stub-Erkennung implementiert wird.

Kriterien für automatische Stuberkennung

  • Das Hauptkriterium sollte sein, dass der Artikel wirklich kurz ist (in Bytes).
  • Artikel die ohnehin in einer anderen Wartungskategorie eingetragen sind sollten aus der Stub-Wartungsgruppe automatisch ausgeschlossen sein.
  • Artikel, die eine unsichtbare Vorlage {{vollständig}} einbinden, sollen ebenfalls ausgeschlossen werden, um damit kurze aber vollständige Artikel in der Stub-Liste zu vermeiden.
  • Begriffsklärungen und Redirects mussen ausgeschlossen werden.