Benutzer:MichaelFreyTool/Interwiki

Beschreibung

Bearbeiten

Diese Software und vorallem die damit generierte Liste dient zum Aufspüren und Auflisten von Interwiki Links zwischen Schwester- und Partnerprojekten.

Sinn dieser Listen ist, die Links im Allgemeinen zu Verifizieren und Aktuell zu halten.

Die Liste hat folgenden Aufbau:

bzw.

* Assemblersprache [[:Assembler-Programmierung für x86-Prozessoren|Assembler-Programmierung]]

auf Benutzer:MichaelFreyTool/Interwiki/Wikipedia bedeutet das der Wikipedia Artikel Assemblersprache auf das Wikibook Assembler (80x86 Prozessor)-Programmierung linkt.

Haupt Idee ist, das tote Links rot in der Liste erscheinen und so Aktualisiert werden können. Dies ist insbesondere deshalb wichtig, weil wir Redirects in der Regel sehr schnell Löschen und es dem Ruf von Wikibooks Nachteilig ist wenn scheinbar alles aus Leeren Seiten besteht, doch in Wirklichkeit wurde nur vergessen die Links anzupassen.

Netter neben Effekt ist, das die Interwiki Links auch auf Spezial:Linkliste (aka Links auf diese Seite) Auftauchen.

Funktionsweise

Bearbeiten

Die Software verarbeite Datenbankkopien im XML Format von ausgewählten Wikis (im moment vorallem Wikipedia).

Die Software selbst ist eine Art Textverarbeitung, d.h. sie greift nicht über ein XML Praser auf die Daten zu, sondern Zeilenweise. Die gesuchten Zeichenketten (mehr ist ja ein Wikipedia Artikel ja auch nicht) werden mittels Regex gesucht und extrahiert.

Implementierung

Bearbeiten

Liste erstellen

Bearbeiten

Datenbankkopie "pages-articles.xml.bz2" von [1] holen, mit 7-Zip entpacken und mit diesem Programm bearbeiten:

Joomla: Vorlage: Klappbox

FileReaderCounter

Bearbeiten

Joomla: Vorlage: Klappbox

Bearbeiten

noch in arbeit' Joomla: Vorlage: Klappbox

Bugs und Einschränkungen

Bearbeiten

Die Software strebt keine 100% einwandfreie Zuverlässigkeit und leichte Bedienbarkeit an, sondern auf Verhältnismäßigkeit. Deshalb gibt es einige Haken, die man bei Verwendung der Liste kennen sollte:

Falsch Positive
  • Auskommentierte Links und Vorlagen werden nicht also solche erkannt
  • Artikeltext und Bearbeitungskommentare werden nicht unterschieden
  • Vorlagen die nicht in jedem Projekt die gleiche Bedeutung haben (v:Vorlage:B und w:Vorlage:B)

Folglich tauchen diese Dinge in der Liste auf, obwohl kein (aktiver) Link im eigentlichen Artikel zufinden ist.

Falsch Negative
  • Die Software findet nur das was sie sucht, also bestimmte Zeichenfolge, die auf einen Link hindeuten. Nicht erfasste Vorlagen werden auch nicht gefunden.
  • Garnicht erfasst werden Hyperlinks (http//*.*.org) weil diese schon über Weblink-Suche gefunden werden können
  • Links auf nicht deutschsprachige Wikibooks werden zwar gefunden, nicht aber geprüft

Ergänzung/Abgrenzung

Bearbeiten

Abgrenzung

Bearbeiten

Die Software soll die Weblink-Suche ergänzen, aber nicht ersetzen. Dieses Tool sucht Interwiki Links [[b:...]] und Weblink-Such Weblinks (http://...).

andere Ansätze

Bearbeiten

Natürlich gibt es nicht nur den Ansatz, einfach brachial das Archiv zu durchsuchen, sondern auch andere.

Die grösste Datenbasis die im moment von mir bearbeitet wird ist de.wikipedia.

Der Download des XML Files brauchte etwa eine Stunde, das entpacken etwa eine halbe Stunde und das auswerten etwa eine Stunde.

Insgesamt braucht das ganze etwa zwei ein halb bis Dreistunden den Rechner und die Internetanbindung, wobei nur folgende manuelle Eingriffe notwendig sind:

  • Auswahl der Datei
  • Extrahieren des Archives
  • Start des Tools

Flaschenhals

Bearbeiten

Mit Umstellung von Freebasic auf Java und Regex hat sich zwar auch die Anzahl Querrys (Abfragen) als Flaschenhals aufgetan, aber der störrt mich weniger.

Meilensteine

Bearbeiten
  • Freebasic Version (erste und letzte)
  • Java Version (erste
  • Java Version auf Regex Basis

Weiterentwicklung

Bearbeiten
  • Laufzeit dekomprimieren
[2]
  • GUI
  • Voraufteilen der Liste mittels "List of page titles" also "all-titles-in-ns0.gz"
  • statt direkt zu Speichern, Resultat im RAM zwischen lagern
  • ....

andere Projekte

Bearbeiten

Da die Verarbeitung der Wikipedia Datenbank vorallem eine Frage der schieren Dateigrösse ist, erzeuge ich Listen für verschiedene Projekte gleichzeitig: