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:
- 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
[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:
Main
[Bearbeiten]FileReaderCounter
[Bearbeiten]Verdächtige Links aussortieren
[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.
- 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
[Bearbeiten]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]Weiterentwicklung
[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
[Bearbeiten]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: