Wikipedia:WikiProjekt Vorlagenauswertung
aus Wikipedia, der freien Enzyklopädie
This page in English: Wikipedia:WikiProjekt Vorlagenauswertung/en
Dieses Projekt (Codename: Templatetiger) beschäftigt sich mit der Extraktion aller Vorlagen und der darin enthaltenen Variablenwerte aus dem DB-Dump, um daraus neue Datendarstellungen und Filtermöglichkeiten zu schaffen.
Anmerkung: Die Auswertung der Dumps fällt durch die Georeferenzierung ohnehin an.
Inhaltsverzeichnis |
[Bearbeiten] Ziele
Es soll damit neuer Schwung in die Bestrebungen des eingeschlafenen Wikidata-Projektes gebracht werden und zudem die Wikipedia in Richtung des hochinteressanten Semantic MediaWiki bewegen.
Es sollen damit einerseits die Wartungsarbeiten (Kategorien und Vorlagen) und Projekte der Wikipedia unterstützt werden und andererseits neue Suchmöglichkeiten für interessierte Leser geschaffen werden. Zwar wurden schon im Projekt Georeferenzierung und in Wikipedia:Personendaten solche Daten extrahiert, bei kleineren Themengebieten und anderen Sprachen wurde der erforderliche Aufwand jedoch bis jetzt zumeist gescheut.
Ziel ist es zudem, zu zeigen, dass eine Vorlagenauswertung direkt über den Parser (Echtzeitdaten) sinnvoll sein könnte und performancetechnisch möglich ist. Zudem benötigt man nicht unbedingt für jede Vorlage eine eigene Tabelle.
Das Projekt ist so angelegt, dass derzeit die wichtigsten Sprachen der Wikipedia unterstützt werden. Eine Ausweitung auf andere Sprachen ist technisch problemlos möglich und nur durch den Zeitfaktor begrenzt, da die Daten nicht Live erhoben sondern aus den Dumps herausgelesen werden. Das Herunterladen und Auswerten kann je nach Größe der Sprachversion zwischen Minuten und Tagen dauern.
[Bearbeiten] Sprachen
Im Moment werden die folgenden Wikipedia-Sprachversionen unterstützt:
Languages | Dump |
---|---|
en | 2008-03-12 |
de | 2008-06-07 |
fr | 2008-03-23 |
es | 2008-03-17 |
pt | 2008-03-13 |
ru | 2008-03-07 |
cs | 2008-03-20 |
fi | 2008-03-11 |
nl | 2008-03-10 |
eo | 2008-03-19 |
ca | 2008-03-09 |
nds | 2008-03-19 |
edit |
[Bearbeiten] Nutzung
Die Nutzung erfolgt durch Bearbeiten der URL und ist somit nur bedingt auf Benutzerfreundlichkeit ausgelegt. Dafür stehen wir auf der Diskussionsseite gerne für Fragen bereit. Alternativ kann auch diese Suchmaske genutzt werden.
Aufgrund der Datenmenge ist teilweise doch etwas Geduld angebracht, bis die ersten Ergebnisse erscheinen. Das Durchblättern der Ergebnisse geht dann jedoch recht schnell.
[Bearbeiten] Beispiele für Abfragen
- Alle Vorlagen der deutschsprachigen Wikipedia nach der meisten Nutzung (Standardsortierung)
- Alle Vorlagen der deutschsprachigen Wikipedia in alphabetischer Sortierung (ab Buchstabe C)
- Infobox Film
- PKW-Modelle
[Bearbeiten] Vorlagenauswahl
Die Auswahl der Vorlagen erfolgt einfach durch einen Klick auf eine der folgenden Seiten:
- Beispiel Nr. 1
template-choice.php?lang=de
- Alle Vorlagen der deutschsprachigen Wikipedia (standardmäßige Sortierung der Vorlagen nach der meisten Nutzung)
- Beispiel Nr. 2
template-choice.php?lang=de&az=yes&from=Info
- Alle Vorlagen in alphabetischer Sortierung ab Vorlage Info…
Bei der erscheinenden Tabelle gelangt man über den Link Wikipedia zur entsprechenden Wikipedia-Seite der Vorlagen. Über Parameter bekommt man alle extrahierten Parameter einer Vorlage angezeigt. Dieses soll zum schnellen Finden von Fehlern dienen, ist jedoch recht rechenaufwändig, wodurch es bei oft verwendeten Vorlagen etwas dauern kann, bis Ergebnisse erscheinen.
[Bearbeiten] Tabellenansicht
[Bearbeiten] Filterung
Es kann zumindest nach einem Wertepaar gefiltert werden. Dafür dienen die URL-Parameter "where" für den Variablennamen und "is" für den gesuchten Variablenwert. So zeigt:
- Beispiel Nr. 1
template=Personendaten&where=GEBURTSORT&is=London
- Alle Personen, die in London geboren sind
- Beispiel Nr. 2
template=Infobox Berg&where=Erstbesteigung&is=[[18__]]
- Alle Berge mit einer Erstbesteigung im 19. Jahrhundert
Die Suche schaut, ob sie einen Teilstring findet. Dabei kommt der SQL-Befehl LIKE %…% zum Einsatz. Als Wildcards können "%" für beliebig viele beliebige Zeichen und "_" für genau ein beliebiges Zeichen zum Einsatz kommen.
- Beispiel Nr. 3
&template=Infobox Berg&where=LETZTE ERUPTION&is=_
- Alle Berge, bei denen das Datum der letzten Eruption eingetragen ist (Vulkane)
[Bearbeiten] Reguläre Ausdrücke
Es können auch reguläre Ausdrücke benutzt werden.
&where=H%he&is=[8][0-9][0-9][0-9]®exp=yes
Beispiel: Ausgabe aller achtausender Berge über regulären Ausdruck
[Bearbeiten] Negierung der Filterabfrage
&where…&is=…¬=yes
(grammatikalisch nicht schön, aber selten) Artikel ohne Eintrag werden prinzipbedingt nicht angezeigt
[Bearbeiten] Sortierung der Ergebnissanzeigen
&order=article
Sortiert die Artikel alphabetisch (Beispiel)&order=Spaltenname
Sortiert alphabetisch nach einer freiwählbaren Spaltenüberschrift. Dabei werden nur Artikel mit Eintrag angezeigt. (Beispiel Computerspiele nach Hersteller sortiert)
Das Sortieren funktioniert nur, wenn keine Filterung vorgegeben ist.
[Bearbeiten] Spaltenauswahl
Durch Hinzugabe des Parameters &columns=Spalte1,Spalte2,…
lässt sich die Anzeige auf bestimmte Spalten begrenzen. Damit kann die Übersichtlichkeit gesteigert und die Ausgabe beschleunigt werden. Beispiel: http://tools.wikimedia.de/~kolossos/templatetiger/tt-table4.php?template=Infobox%20See&lang=de&where=&is=&columns=LAGE,MAX-TIEFE
[Bearbeiten] Änderung der Zeilenanzahl
Über die limit-Variable in der URL können auch mehr als die 30 standardmäßigen Artikel angezeigt werden. Allerdings ist bei 2000 aus Sicherheitsgründen im Moment Schluss.
&limit=50
[Bearbeiten] Ausgabeformat
&format=csv
Über die format-Variable können Ergebnisse auch als eine CSV-Datei ausgegeben werden. Dabei dienen Tabulaturen als Trennzeichen. Beim Abspeichern aus dem Browser Firefox sollte man als Dateityp „Alle Dateien“ einstellen, beim Internet Explorer hingegen den Dateityp Textdatei.
&format=template
Die Ergebnisse können auch in Vorlagenschreibweise in Wiki-Syntax ausgegeben werden.
[Bearbeiten] Weiternutzung der Daten in einer Tabellenkalkulation
Durch die Übernahme der Tabellen in eine Tabellenkalkulation ist es möglich, Spalten auszublenden, Sortierungen vorzunehmen oder die Datenfelder umzuwandeln.
OpenOffice-Calc
unterstützt neben der Copy-Paste-Vorgehensweise auch die Möglichkeit, über Insert/Link to external Datas… direkt die URL zu nutzen.
Microsoft Excel
Das Programm kann über das Menü Daten/externe Daten importieren/neue Webanfrage… genutzt werden.
[Bearbeiten] Halbautomatische Übersetzungen
Für die Entwicklung werden noch Betatester gesucht. Die Diskussionen laufen unter Wikipedia_Diskussion:WikiProjekt_Vorlagenauswertung#Übersetzungstool, dort steht auch die Bedienungsanleitung.
[Bearbeiten] Nachteile der Verarbeitungsweise
Alle Datenfeldeinträge werden einheitlich als Text geführt. Somit sind der Verarbeitung, z.B. dem Sortieren von Zahlen, Grenzen gesetzt. Mehr als ein Filterkriterium erscheint schwer umsetzbar.
Es erscheint schwer, nur solche Artikel zu finden, bei denen bestimmte Einträge fehlen.
[Bearbeiten] Datenbank
[Bearbeiten] Erstellung
Die der Datenbank zugrundeliegenden Daten werden bei der Extraktion der Geodaten (WP:GEO) direkt mit ausgelesen. Das Perl-Skript wurde dafür entsprechend erweitert, so dass alle in geschweiften Klammern ({{…}}) geschriebenen Texte mit ausgelesen werden. Allerdings werden Vorlagen ohne Variablen (z.B. {{Begriffsklärung}}, {{Lagewunsch}}) nicht weiter berücksichtigt. Alle anderen Vorlagen werden zerlegt in die Variablennamen und Werte.
Die bisherige Vorgehensweise erlaubt nur Vorlagen auszulesen, die nicht selber in einer Vorlage enthalten sind. Wenn beispielsweise in einer Vorlage:Infobox in der Variable "LAGE=" eine Vorlage:Koordinate genutzt wird, so kann derzeit diese Vorlage:Koordinate nur als Variablenwert ausgelesen werden. Weiterhin sind alle Kommentareinträge aus den Vorlagen entfernt worden, weil sonst eine Verarbeitung wesentlich schwieriger geworden wäre.
[Bearbeiten] Datenbank-Layout
Für jede Sprachversion wird es eine eigene Tabelle geben; für Deutsch ist das "pub_tt1_de". Jede Variable in jeder Vorlage jedes Artikels erhält einen Datensatz. Damit gibt es im Moment 1,9 Mio. Einträge. Darin enthalten sind:
name | Names des Artikels |
name_id | ID-Nummer des Artikels |
tp_name | Name der Vorlage |
entry_name | Name der Vorlagevariablen (1,2,3,… bzw. Name1,Name2…) |
Value | Wert der Vorlagevariablen |
Daneben gibt es zur besseren Performance bei der Vorlagenauswahl eine Tabelle, für Deutsch mit dem Namen "pub_tt1_de_sum":
tp_name | Names der Vorlage |
sum | Anzahl des Auftretens der Vorlage |
[Bearbeiten] Programmablauf zur Datenbanknutzung
Um die Übersichtstabellen in der tt-table4.php (Quelltext) zu erzeugen, wird im ersten Schritt über ein SQL-Kommando nach den Artikeln gesucht, welche die entsprechende Vorlage enthalten, die Filterkriterien erfüllen und im Limit-Bereich liegen. Anschließend werden die IDs dieser Artikel an ein zweites SQL-Kommando übergeben und sämtliche Einträge des Artikel und der Vorlage in ein zweidimensionales Array $ausgabe[Artikelname][entry_name] geschrieben. Wenn in einem Artikel dabei eine Vorlage mehrfach auftritt, werden die Einträge in eigenen Absätzen aneinandergehangen. Abschließend wird aus dem Array eine Tabelle generiert.
[Bearbeiten] Zugriffsmöglichkeiten
Über den Toolserver hat jeder mit Account Zugriff auf die u_kolossos_p-Datenbank, um so eigene Anwendungen schreiben zu können.
[Bearbeiten] Download-Möglichkeiten der Daten
Wird es geben.
[Bearbeiten] Mögliche Anwendungen
- Interessant wäre ein halbautomatisches Übersetzungswerkzeug für Vorlagen, welches gleich Wikisyntax erzeugt.
- Ein Vergleich der Nutzung zweier gleicher Vorlagen in verschiedenen Sprachen über die Interwikilinks wäre sicher auch spannend.
[Bearbeiten] Projektteilnehmer
Es werden noch Leute gesucht, um die Auswertung weiter zu optimieren und das Projekt, sobald es in mehreren Sprachen läuft, international bekannt zu machen.
Interessenten:
- Purodha Blissenbach (v.a. Mehrsprachigkeit, Interwikiabgleich)
- …
[Bearbeiten] Ansprechpartner
- Benutzer:Stefan Kühn Datenextraktion
- Benutzer:Kolossos Anwendungsprogrammierung