Benutzer:MichaelFreyTool/Interwiki
Beschreibung
BearbeitenDiese 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:
- Assemblersprache Assembler-Programmierung
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
BearbeitenDie 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
BearbeitenListe erstellen
BearbeitenDatenbankkopie "pages-articles.xml.bz2" von [1] holen, mit 7-Zip entpacken und mit diesem Programm bearbeiten:
Main
BearbeitenFileReaderCounter
BearbeitenVerdächtige Links aussortieren
Bearbeitennoch in arbeit' Joomla: Vorlage: Klappbox
Bugs und Einschränkungen
BearbeitenDie 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
BearbeitenAbgrenzung
BearbeitenDie Software soll die Weblink-Suche ergänzen, aber nicht ersetzen. Dieses Tool sucht Interwiki Links [[b:...]] und Weblink-Such Weblinks (http://...).
andere Ansätze
BearbeitenNatürlich gibt es nicht nur den Ansatz, einfach brachial das Archiv zu durchsuchen, sondern auch andere.
- http://de.wikipedia.org/wiki/Spezial:Linkliste/Vorlage:Wikibooks
- Vorteil: Fast real time
- Nachteil: zeigt nur einen Teil der Links auf Wikibooks, zeigt nicht auf was genau verlinkt wird
Aufwand
BearbeitenDie 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
BearbeitenMit 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
BearbeitenWeiterentwicklung
Bearbeiten- Laufzeit dekomprimieren
- GUI
- Voraufteilen der Liste mittels "List of page titles" also "all-titles-in-ns0.gz"
- statt direkt zu Speichern, Resultat im RAM zwischen lagern
- ....
Listen
Bearbeitenandere Projekte
BearbeitenDa die Verarbeitung der Wikipedia Datenbank vorallem eine Frage der schieren Dateigrösse ist, erzeuge ich Listen für verschiedene Projekte gleichzeitig: