Global Illumination for Fun and Profit
Transcription
Global Illumination for Fun and Profit
Wikistreams Timo Hanisch , Lars Baumelt , Felix Spielmann FU Berlin Informatik ABSTRAKT Wikistreams verarbeitet Änderungsprotokolleinträge der Wikipedia zu einer Visualisierung. Dabei Interessiert uns wann, wer, was und wie stark editiert. STICHWORTE: Wikipedia, Processing, IRC, Bot INHALT: 1. Einführung 2. Visualisierung 2.1. Erste Entwürfe 2.2. Entwicklung 2.3. Aktuelle Version 1 3. Erkenntnisse 3.1. Wochenansicht 3.2. Tagesansicht 4. Technische Umsetzung 5. Abschluss 5.1. Was es nicht in diese Version geschafft hat 5.2. Installationsanweisungen Diese Einträge haben wir für jede Sprache und jeden Tag in eine eigene Datenbank zusammengefasst. 2 VISUALISIERUNG Durch den Charakter der nacheinander hineinströmenden Nachrichten sollte unsere Visualisierung einem Fluss nachempfunden sein. Detailiertere Informationen über jeden einzelnen Eintrag sollen erst auf Anfrage erscheinen. Im Vordergrund soll die Übersicht über die Aufzeichnungen stehen. 2.1 Erste Entwürfe Das erste Entwurfsdesign sollte auf Kreisen basieren. Die Größe des Kreises beschreibt die Anzahl der Einträge an dem jeweiligen Tag, von allen aufgezeichneten Sprachen. Einzel und Gruppenauswahlen sind möglich. EINFÜHRUNG Wikipedia ist eine frei zugängliche Wissensdatenbank. Die Artikel können von registrierten, wie auch anonymen Nutzern erstellt, editiert und gelöscht werden. Jeder Artikel kann in verschiedenen Sprachen gleichzeitig existieren. Zum verwalten der Artikel werden häufig Bots ( automatische Scripte ) genutzt, welche z.B. den Inhalt gleichnamiger Artikel zusammenführen, oder Tippfehler und unerwünschte Ausdrücke in den Artikeln entfernen. Damit diese Bots ihre Arbeit erledigen können, wird jede Artikeländerung als Nachricht in einem Internet-Relay-Chat (IRC) ausgegeben. Für jede Sprache existiert jeweils ein Chat-Raum. Diese IRC-Nachrichten enthalten: • Uhrzeit • Artikelname • Aktion • URL zum Artikel • Anzahl der geänderten Zeichen • Kommentare der Authoren Wärend der Arbeit an diesem Projekt haben wir 2 Wochen lang die Aktualisierungen der Sprachen “Deutsch”, “Englisch”, “Italienisch”, “Französisch” und “Spanisch” aufgezeichnet. Je nach IRC-Programm (und damit Aufzeichnungsmöglichkeit) mussten wir störende Zeichen und Systemeinträge entfernen. Dabei haben wir uns bei der Auswahl der Einträge auch auf den Namensraum der “normalen” Artikel beschränkt. Somit sind alle Artikel mit dem Thema “System”, “Diskussion”, “Benutzer” und “Datei” herausgefallen. Figure 1. Erste Entwurfsansicht der Woche Nach Auswahl eines oder mehrerer Tage gelangt man in die Tagesübersicht mit dem eigentlichen Strom an Einträgen. Einträge in einem bestimmten Zeitbereich (5 Sekunden) werden zusammengefasst. Auch hier bestimmt die Größe des Kreises, wieviele Einträge in 5 Sekunden aufgezeichnet worden sind. Die Farben markieren, ob ein Eintrag gelöscht, erstellt oder verschoben wurde. Eine Zeitleiste markiert den aktuellen angezeigten Ausschnitt, Filtermöglichkeiten sind die Sprachen und die Aktionen (Delete, Add, Moves). Bei der Auswahl einer Eintrags-”Blase” werden die gesammten Daten angezeigt. Kontakt: Felix Spielmann | [email protected] Figure 2. Erste Entwurfsansicht der Tagesübersicht 2.2 Entwicklung Wärend der programmierung des ersten Entwurfes stellte sich herraus, dass die Darstellung der Einträge in der Tagesübersicht eine schlechte Wahl war. Da wir viele tausende Einträge darstellen müssen, war die Form der Kreise zu Leistungsintensiv. Verzögerungen und unerwünschtes Ruckeln waren die Folge. Eine gute Lösung waren Rechtecke (Balken). Figure 4. Aktuelle Wochenübersicht Bei Auswahl eines Tages wird dieser in einem kräftigeren rot markiert. Figure 5. Tagesansicht Figure 3. Neuentwicklung der Tagesübersicht Jede Unterteilung eines Balkens steht für einen Eintrag. Die größe der Unterteilung zeigt die Menge der geänderten Zeichen, die Farbe ob Zeichen hinzugekommen (grün) sind oder entfernt (rot) worden sind. An diesem Punkt war zwar die Funktionalität gewährleistet, allerdings hatten wir uns mit den Balken zuweit von der ursprünglichen Idee der Visualisierung eines Flusses entfernt. Dieses Problem lösten wir mit der processing-eigenen ShapeKlasse Curved-Vertex. 2.3 Aktuelle Version In unserer aktuellen Form der Visualisierung haben wir die Wochenansicht von Kreisen zu ineinander übergehende Wellen umgestaltet. Aus komplexitätsgründen ist aktuell nur ein Tag auswählbar. Auch werden nur 3 von 7 Tagen gezeigt, um den Betrachter nicht zu sehr abzulenken. Die Balken in der Tagesansicht sind mit hilfe der Curved-Vertexe zu Wassertropfen geworden, die über das Fenster fließen. Die Farbe der Balken hat nun einen dynamischen Verlauf von Rot (Zeichen entfernt) über Grau nach Grün (Zeichen hinzugefügt). Beim Auswählen eines Eintrages werden die detailierten Informationen am rechten oberen Fensterrand ausgegeben. 3 DISKUSSION Wir beziehen uns in diesem Projektbericht auf einen Zeitraum vom 20.07.2011 bis zum 24.07. 2011 den wir zur ersten Visualisierung verwenden. Aufgezeichnet haben wir vom 20.07. bis zum 03.08.2011. Es ist jederzeit möglich weitere aufgezeichnete Tage (egal welcher Sprache) hinzu zu laden. Aufgezeichnete Sprachen waren in unserem Fall: • deutsch • englisch • spanisch • französisch • italienisch 3.1 Wochenansicht Wie schon in Figure 4 auffällt, existieren fast keine größenunterschiede zwischen den einzelnen Tagen. Das bedeutet, das an jedem Tag praktisch gleich viele Artikel der Wikipedia bearbeitet wurden. Eine mögliche Verbesserung wäre die Markierung eines Maximums und die Einfärbung/Kennzeichnung nach Wochentagen. 3.2 Tagesansicht Wärend dieser Bericht geschrieben worden ist, mussten wir noch stark mit Performanceproblemen der Tagesansicht kämpfen, weswegen einige geplante Features nicht implementiert werden konnten. (Siehe 5.1 Was es nicht in diese Version geschafft hat) • 5.2 Die Zeitleiste zum verfolgen und bestimmen des Zeitbereiches hat es aus Zeitgründen nicht in diese Version geschafft Installationsanweisungen Die Library muss in die Processing-IDE importiert werden Ordner einfach kopieren in "...\processing-1.5.1\modes\java\libraries\" Außerdem: Um die Anwendung nutzen zu kühnen müssen folgende Dinge beachtet werden (leider): Beim bearbeiten der Datensätze und der Tagesansicht viel uns auf, dass um die Mittagszeit (MEZ) die anzahl der Einträge stark ansteigt, dies jedoch unabhängig von den einzelnen Zeitzonen. Die Datei connections.txt im Pfad /data/ muss angepasst werden: Auch Datenbankinterne suche nach bestimmten Schlagwörtern ergibt interessante Erkenntnisse. So ist beispielsweise der Wikipedia-Artikel über die Anschläge von Oslo eine halbe Stunde nach dem tatsächlichen Ereignis erstellt worden. Ab diesem Zeitpunkt entsteht in fast jeder aufgezeichneten Sprache ein Feuerwerk an Editierungen und Änderungen an diesem Artikel. Außerdem muss in der Processor-IDE gegebenenfalls die größe des Virtuellen Speichers erhöht werden. 4 TECHNISCHE UMSETZUNG Den größten Teil dieses Programmes, die Visualisierung, haben wir mit Processing, und der damit verbundenen Entwicklungsumgebung realisiert. Die Aktualisierungs-Einträge wurden mittels Mirc aufgezeichnet. Mit einem selbst geschriebenem Java-Programm haben wir die Aufzeichnungen von störenden Zeichen gefiltert und in eine HSQL-DatenBank gebündelt. Da wir ca 1GB an Daten aufgezeichnet haben, haben wir uns für das Lagern als Datenbank entschieden, da so die Größe der Dateien sehr stark komprimiert werden kann. 5 ABSCHLUSS Processing eignet sich sehr gut, um schnelle und kleine Prototypen zu entwerfen, jedoch ist die Verwendung der processing-eigenen Entwicklungsumgebung bei einem großen Projekt absolut nicht zu empfehlen. 5.1 Was es nicht in diese Version geschafft hat Datum: 12.08.2011: • Eine Mehrfachauswahl der Tage war zwar geplant, konnte aber zu diesem Zeitpunkt noch nicht implementiert werden. • Eine Volltextsuche existiert zwar schon für die Datenbank, allerdings ist es derzeit nicht möglich, diese in der Visualisierung zu verwenden. • Sprachfilter sind noch nicht implementiert • Das Importieren von Aufzeichnungen passiert aktuell noch von Hand, da das Format der einzelnen Einträge sehr stark variiert. Auch hier wäre eine Automatisierung zu realisieren. Die Absoluten-Pfade müssen auf Ihr System eingerichtet werden.