Vom Austria-Forum zum Wiki-Konzept Masterarbeit
Transcription
Vom Austria-Forum zum Wiki-Konzept Masterarbeit
Vom Austria-Forum zum Wiki-Konzept Masterarbeit an der Technischen Universität Graz vorgelegt von Christoph Trattner Institut für Informationssysteme und Computer Medien IICM Technische Universität Graz A-8010 Graz Österreich Jänner 2009 Copyright 2009, Christoph Trattner Betreuer: Dipl.-Ing. Dr.techn. Univ.-Doz. Denis Helic Kurzfassung 2 Kurzfassung Auch wenn das Austria-Forum - eine zitierfähige Community-geprägte OnlineEnzyklopädie mit vorwiegend österreichischen Inhalten - ein großartiges Konzept darstellt, um User- und Expertengemeinde hinsichtlich der Erstellung von qualitativ hochwertigen und zitierfähigen Beiträgen in ein und demselben System zu vereinen, so war dieses auf Grund technischer Probleme nicht so erfolgreich wie erhofft. Die hier vorgestellte Arbeit befasst sich deshalb näher mit der Analyse des zu Grunde liegenden Systems, wobei einige interessante technische Probleme aufgezeigt und diskutiert werden. Zudem findet eine Reihe von Systemanalysen statt, mit dem Ziel, geeignete Softwarelösungen zu finden, um das Konzept Austria-Forum in technischer Hinsicht besser zu realisieren. Schlussendlich wird eine Lösung auf Basis eines Wiki-Systems vorgestellt, mit der es möglich ist, das Konzept Austria-Forum optimal umzusetzen. Schlagwörter: Austria-Forum, Wiki, JSPWiki, Online-Enzyklopädie Abstract Although the Austria-Forum - a citable community-coined online encyclopaedia with mainly Austrian contents - offers an excellent concept to unite user- and expertcommunities in a common effort to produce high-quality citable contributions in one and the same system, unfortunately, because of technical limitations, to date, this effort has not been as successful as it had been expected. This thesis presents first a detailed analysis of the present system and points out several interesting technical problems, which are then discussed in greater detail. Furthermore, a number of system analyses are carried out, in order to find a suitable software solution which would enable a technically better realization of the Austria-Forum concept. Finally, a solution based on a Wiki system is presented which makes an optimal implementation of the Austria-Forum concept possible. Keywords: Austria-Forum, Wiki, JSPWiki, Online encyclopaedia Inhaltsverzeichnis 3 Inhaltsverzeichnis Kurzfassung ................................................................................................................2 Abstract .......................................................................................................................2 Inhaltsverzeichnis .......................................................................................................3 Abbildungsverzeichnis ...............................................................................................6 Tabellenverzeichnis ....................................................................................................7 Listingverzeichnis .......................................................................................................7 Danksagung.................................................................................................................9 1 Motivation .......................................................................................................10 2 Ziele.................................................................................................................12 3 Das Austria-Forum .........................................................................................13 3.1 Entstehung .......................................................................................................14 3.2 Klassifizierung ..................................................................................................15 3.3 Technik ............................................................................................................16 3.4 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6 Funktionsüberblick ...........................................................................................18 Navigation ........................................................................................................18 Browsing und Searching...................................................................................19 Editieren und Erstellen von Beiträgen...............................................................21 Kommunikation.................................................................................................22 Authentifizierung...............................................................................................24 Sonstige Funktionen.........................................................................................24 3.5 Zusammenfassung...........................................................................................25 4 Kritik und Umsetzbarkeitsanalyse ................................................................26 4.1 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 Kritik .................................................................................................................26 Navigation und Browsing..................................................................................26 Suche...............................................................................................................27 Editieren und Erstellen von Beiträgen...............................................................27 Speichern und drucken von Beiträgen..............................................................27 Sicherheit .........................................................................................................28 Community .......................................................................................................28 Popularität ........................................................................................................29 4.2 Weiterentwicklung sinnvoll?..............................................................................30 4.3 Problem- und Umsetzbarkeitsanalyse ..............................................................31 Inhaltsverzeichnis 4 4.3.1 4.3.2 4.3.3 4.3.4 Usability............................................................................................................31 Sicherheit .........................................................................................................35 Community .......................................................................................................36 Popularität ........................................................................................................36 4.4 Fazit .................................................................................................................36 5 Auf der Suche nach einer geeigneten System-Basis...................................37 5.1 Allgemeine Anforderungen ...............................................................................37 5.2 Technische Anforderungen an das neue System .............................................37 5.3 Die Qual der Wahl - Oder vielleicht doch nicht?................................................38 5.4 Wikis ................................................................................................................40 5.4.1 Was ist ein Wiki? ..............................................................................................40 5.4.2 Entstehung und geschichtlicher Hintergrund ....................................................40 5.4.3 WikiWikiWeb - Das erste Wiki und die Popalisierung........................................41 5.4.4 Wiki-Systeme ...................................................................................................44 5.4.5 Typische Wiki-Merkmale ..................................................................................45 5.4.6 Wiki-Technik.....................................................................................................46 5.4.7 Charakteristische Wiki-Funktionen ...................................................................46 5.4.8 Wieso das Wiki-Konzept überhaupt funktioniert................................................51 5.4.9 Wieso Wikis kein HTML verstehen sollten ........................................................53 5.4.10 Typen von Wiki-Systemen und Anwendungsgebiete ........................................54 5.4.11 Vorteile.............................................................................................................56 5.4.12 Nachteile ..........................................................................................................58 5.5 Wikis als Basis für das Austria-Forum einsetzbar? ...........................................61 5.6 Fazit .................................................................................................................63 6 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 Wiki-Systeme im Vergleich ............................................................................64 MediaWiki.........................................................................................................65 FlexWiki............................................................................................................67 JSPWiki............................................................................................................69 TWiki ................................................................................................................71 DokuWiki ..........................................................................................................73 6.2 Anforderungsanalyse........................................................................................75 6.3 Fazit .................................................................................................................79 7 Implementierung ............................................................................................80 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.1.6 JSPWiki Erweiterungsmöglichkeiten.................................................................80 Plugins .............................................................................................................80 Filter .................................................................................................................81 Variablen ..........................................................................................................82 Forms...............................................................................................................83 Editor Modul .....................................................................................................84 Templates und Styles .......................................................................................86 Inhaltsverzeichnis 5 7.1.7 Datastorage......................................................................................................87 7.1.8 Security Modul..................................................................................................90 7.2 Anpassungen und Featureset...........................................................................93 7.2.1 Strukturierung von Daten..................................................................................93 7.2.2 Navigation und Browsing..................................................................................95 7.2.3 Searching .......................................................................................................100 7.2.4 Editieren und Erstellen von Beiträgen.............................................................102 7.2.5 Upload von Dateien........................................................................................103 7.2.6 Das „Info“ Tab ................................................................................................103 7.2.7 Kommunikation...............................................................................................104 7.2.8 Zugriffsrechte .................................................................................................104 7.2.9 Authentifizierung und Profilverwaltung............................................................105 7.2.10 PDF-Export und Drucken von Beiträgen.........................................................106 7.2.11 Sperren/Verbergen von Beiträgen und das Qualitätsgütesiegel......................107 7.2.12 Daten Import ..................................................................................................108 7.2.13 RSS-Feeds.....................................................................................................108 8 Konklusion....................................................................................................109 9 Ausblick ........................................................................................................110 Literatur ...................................................................................................................111 Anhang.....................................................................................................................123 Erklärung .................................................................................................................134 Abbildungsverzeichnis 6 Abbildungsverzeichnis Abbildung 1: Die Einstiegsseite des Austria-Forums ...................................................14 Abbildung 2: Ajax Modell einer Web-Anwendung, entnommen aus [Garrett 2005] ......16 Abbildung 3: Vergleich zwischen klassischen und Ajax-Modell einer WebAnwendung, entnommen aus [Garrett 2005]....................................................18 Abbildung 4: Suche und Metadatensuche im Austria-Forum .......................................20 Abbildung 5: Das Editor-Modul des Austria-Forums ....................................................23 Abbildung 6: Chatfunktion (Fenster im Vordergrund), Online-Status (Fenster oben) und integrierte Emailfunktion (Fenster unten)...................................................23 Abbildung 7: Alexa Daily Pageviews für die Domain austria-forum.org, entnommen aus [Alexa 2009] ..............................................................................................30 Abbildung 8: Links das Kommunikationsschema „One-to-May“ wie es das Weblogkonzept vorsieht, rechts das Konzept „Many-to-May“, entnommen aus [Pfister 2006] .............................................................................................40 Abbildung 9: WikiWikiWeb Zugriffsstatistik, entnommen aus [C2 2008b].....................43 Abbildung 10: Aktuelle Besucherstatistiken von wikipedia.org, entnommen aus [Wikimedia 2008] .............................................................................................44 Abbildung 11: Darstellung einer, Wiki-Seite auf wikipedia.org .....................................48 Abbildung 12: Editorenansicht der in Abbildung 11 dargestellten Seite .......................48 Abbildung 13: Die „Diff“ Funktion des Wikis wikipedia .................................................50 Abbildung 14: Wikipedia Global Traffic Ranking, entnommen aus [Alexa 2009] ..........58 Abbildung 15: Das MediaWiki......................................................................................66 Abbildung 16: Das FlexWiki.........................................................................................68 Abbildung 17: Das JSPWiki.........................................................................................70 Abbildung 18: Das Twiki..............................................................................................73 Abbildung 19: Das DokuWiki .......................................................................................75 Abbildung 20: Der Standardeditor PlainEditor .............................................................85 Abbildung 21: Der WYSIWYG Editor TinyMCE ...........................................................85 Abbildung 22: JSPWiki im WikiMedia Style von Martin Unger, entnommen aus [JSPWiki 2008] ................................................................................................87 Abbildung 23: Versionsverwaltung des BasicAttachmentProviders auf FilesystemEbene ..............................................................................................................90 Abbildung 24: Ausgabe des List Plugins......................................................................97 Abbildung 25: Ausgabe des GlossaryPlugins ..............................................................98 Abbildung 26: Ausgabe des TabbedGlossaryPlugins ..................................................99 Abbildung 27: Die Ajax basierte Schnellsuche...........................................................101 Abbildung 28: Die Search-Page ................................................................................101 Abbildung 29: Das Tab „Anhänge“ ............................................................................103 Abbildung 30: Das Tab „Info“.....................................................................................104 Abbildung 31: Das Anmeldeformular .........................................................................105 Abbildung 32: Die Profilansicht..................................................................................105 Abbildung 33: Die Druckansicht.................................................................................107 Tabellenverzeichnis 7 Tabellenverzeichnis Tabelle 1: Prozent der globalen Internet User für die Domain austria-forum.org, entnommen aus [Alexa 2009]...........................................................................29 Tabelle 2: Alexa Traffic Rank, basierend auf einer kombinierten Berechnung aus Traffic Rank und Page Views, entnommen aus [Alexa 2009] ...........................29 Tabelle 3: Anzahl der Unique Pages Viewed pro Tag, entnommen aus [Alexa 2009]................................................................................................................29 Tabelle 4: Ergebnisse der Suchmaschinen Google, MSN und Yahoo (Stand 2.1.2009) .........................................................................................................30 Tabelle 5: Seitenanzahlen des WikiWikiWeb in den Jahren 1994 bis 2000, entnommen aus [C2 2008b].............................................................................42 Tabelle 6: HTML vs. Wiki-Syntax der Wiki-Systeme DokuWiki, JSPWiki und MediaWiki ........................................................................................................47 Tabelle 7: Vergleich der 5 Wikis MediaWiki, FlexWiki, JSPWiki, TWiki und DokuWiki .........................................................................................................79 Tabelle 8: JSPWiki CorePages, entnommen aus [JSPWiki 2008] ...............................86 Tabelle 9: Standard Security Policy Einstellungen von JSPWiki, entnommen aus [JSPWiki 2008] ................................................................................................92 Tabelle 10: JSPWiki-Syntax, entnommen aus [JSPWiki 2008] ..................................102 Listingverzeichnis Listing 1: Beispielhafter HTML Code für das Erstellen eine und der Selben Überschrift mit verschiedenen Tag Variationen................................................54 Listing 2: JSPWiki Plugin.............................................................................................81 Listing 3: Das JSPWiki Plugin Interface.......................................................................81 Listing 4: Das PageFilter Interface...............................................................................82 Listing 5: Syntax für JSPWiki Variablen.......................................................................83 Listing 6: Das FormOpen Element...............................................................................83 Listing 7: Das FormClose Element ..............................................................................83 Listing 8: Das FormSet Element ..................................................................................84 Listing 9: Das FormOutpunt Element...........................................................................84 Listing 10: Die Elemente FormSelect, FormTextarea und FormInput ..........................84 Listing 11: Das Interface WikiPageProvider.................................................................87 Listing 12: ACL Syntax ................................................................................................91 Listing 13: ACL Beispiel ..............................................................................................91 Listing 14: URL Codierung ..........................................................................................93 Listing 15: Die angepasste Verzeichnisstruktur des JSPWikis.....................................93 Listing 16: Die Konstanten LEGACY_CHARS_ALLOWED und PUNCTUATION_CHARS_ALLOWD................................................................94 Listing 17: Die Methoden findPages, getPageCount und getAllPages.........................94 Listing 18: Die Methoden getAllCategoryPages und getTotalPageCount ....................94 Listingverzeichnis 8 Listing 19: Das List Plugin ...........................................................................................95 Listing 20: Das ImageList Plugin .................................................................................95 Listing 21: Ergänzungen für die Methode ListFilter in der Datei filter.xml.....................96 Listing 22: Das Sequenz Plugin...................................................................................96 Listing 23: Das CategoryIndexPlugin...........................................................................97 Listing 24: Das GlossaryPlugin....................................................................................98 Listing 25: Das TabbedGlossaryPlugin........................................................................98 Listing 26: Ergänzungen für das Tag CategoryPath ....................................................99 Listing 27: Das CategoryPath Tag.............................................................................100 Listing 28: Ergänzungen in der Datei web.xml für das Einbinden des Plugins PDFPlugin......................................................................................................106 Listing 29: Ergänzungen in der Datei ViewTemplate.jsp............................................106 Listing 30: Das AProoved Plugin ...............................................................................107 Danksagung 9 Danksagung Die hier vorgestellte Diplomarbeit ist am Institut für Informationsverarbeitung und Computer gestützte Neue Medien (IICM) der Technischen Universität Graz im Rahmen einer achtmonatigen Projektmitarbeit - am Austria-Forum - entstanden. Ich möchte mich an dieser Stelle vor allem bei Herrn O.Univ.-Prof. Dr.Dr.h.c.mult. Hermann Maurer bedanken, der mir die Möglichkeit geboten hat, mich als Diplomand in das Projekt einzubringen. Des Weiteren bedanke ich mich recht herzlich bei meinem Betreuer Dipl.-Ing. Dr.techn. Univ.-Doz. Denis Helic für die hilfreiche Unterstützung und die zahlreichen Anregungen während der gesamten Diplomarbeitenzeit. Frau Ingeborg Schinnerl für das aufopfernde Korrekturlesen dieser Arbeit und vor allem für die immer wieder aufmunternden Worte. Vielen herzlichen Dank! Dem Team - Austria-Forum - Christina Fressel, Mag. Dana Kaiser und Katharina Ziegel: Herzlichen Dank! Meinen besonderen Dank schenke ich meinen Eltern Christine und Leonhard Trattner, die mir dieses Studium ermöglicht haben. Danke für eure Geduld und dass ihr immer an mich geglaubt habt. Darüber hinaus bedanke ich mich bei meinen lieben Geschwistern Alexandra und Stephan. Zu guter Letzt, ein besondere Dank noch an meine liebe Freundin Uta: Ohne deine Geduld, deine aufmunternden Worte und vor allem durch deine Liebe, wäre diese Arbeit wohl nicht so schnell entstanden. 1 Motivation 1 10 Motivation War das Publizieren zu den Anfängen des World Wide Web noch staatlichen Regierungsbehörden, Unterrichtsorganisationen oder Online-Redaktionen vorbehalten, so ist dies heute anders. Heutzutage begnügt sich der Internetnutzer nicht mehr mit dem schlichten Browsen des Internets, sondern sieht sich immer mehr selbst dazu berufen, zum Akteur zu werden. In der Form von Blogs, Wikis oder ähnlichen Web 2.0 Anwendungen werden tagtäglich tausende neue „Publikationen“ von Usern selbst geschaffen. Ein Beispiel hierfür ist die Online-Enzyklopädie Wikipedia1, mit über 10 Millionen von Usern verfassten Beiträgen. Doch so brillant das Konzept im ersten Moment möglicherweise erscheinen mag, so komplex sind auch die Probleme, welche damit einhergehen. Vor allem hinsichtlich der Qualität der von den Usern verfassten Beiträge können immer wieder gravierende Unterschiede festgestellt werden [Rosenzweig 2006]. Aber auch Plagiarismus, das „Copy&Paste Syndrom“ oder Copyright-Verletzungen zählen zu einen der vielen Probleme [vgl. Helic et al. 2008]. Auch hinsichtlich der OnlineRecherche muss gesagt werden, dass der Web 2.0 Hype eher ein Fluch als ein Segen ist, denn haben solche Websites (siehe Wikipedia) die Eigenschaft besonders hoch im Ranking der Suchmaschinenbetreiber (siehe Google2) zu stehen [Maurer et al. 2007]. Das Problem dabei: In den meisten Fällen wird davon ausgegangen, dass die Relevanz der gefundenen Beiträge mit der tatsächlichen Qualität des Artikels einhergeht [Johnson 2005; Haber 2005]. Aber wie schon zuvor beschrieben, trifft diese Vermutung nicht immer zu. Doch wie soll diesem Teufelskreis entgegengewirkt werden? Eine mögliche Lösung wäre, das gesamte Web 2.0 unter redaktionelle Aufsicht zu stellen. Dass dieser Gedanke natürlich nicht in die Tat umgesetzt werden kann, ist klar, denn welche Institution hätte schon die Mittel, Millionen von Beiträgen Tag für Tag wissenschaftlich zu prüfen, abgesehen von der Tatsache, dass eine nachträglich eingeführte aufgezwungene Kontrollbehörde in einem sozialen Umfeld, wie dem World Wide Web nicht akzeptiert werden würde. Was aber durchaus Sinn macht, ist eine Symbiose aus wissenschaftlicher Gemeinde und Community, in der Beiträge, wenn gewünscht, redaktionell geprüft werden oder aber als kollaboratives Werk als solches stehen bleiben können, wie es das AustriaForum - eine zitierfähige Online-Enzyklopädie - beweisen soll [vgl. Helic et al. 2008]. 1 2 http://www.wikipedia.org http://www.google.com 1 Motivation 11 Doch so überzeugend dieses Konzept auf den ersten Blick auch erscheinen mag, so konnte das zu Grunde liegende System wegen technischer Mängel in den letzten zwei Jahren leider nicht überzeugen. 2 Ziele 2 12 Ziele Was waren also die Ziele beziehungsweise was sollte im Rahmen dieser Arbeit alles umgesetzt werden? Im Rahmen dieser Arbeit solle(n), • das Konzept Austria-Forum näher untersucht und verstanden werden. • häufige Kritikpunkte im Bezug auf das System schriftlich niedergelegt und diskutiert werden, ob es sich lohnen würde, das alte System weiter zu entwickeln. • darüber nachgedacht werden, welches Konzept sich am Besten dazu eignen würde eine zitierfähige Online-Enzyklopädie zu erstellen. • geeignete Systeme miteinander verglichen werden, um daraus einen „optimalen Kandidaten“ für weitere Entwicklungen zu finden. • das ausgewählte System an die Bedürfnisse des Austria-Forums angepasst werden. Im Großen und Ganzen formulieren die oben genannten Punkte die fünf großen Ziele dieser Arbeit. 3 Das Austria-Forum 3 13 Das Austria-Forum [AF 2008] Würde man das Austria-Forum3 mit einem Satz beschreiben wollen, so wäre man höchstwahrscheinlich dazu geneigt den Begriff „Digitale Datenbank mit vorwiegend österreichischen Inhalten“ zur Beschreibung heranziehen. Doch wäre diese Bezeichnung wohl etwas unglücklich formuliert, denn hat das Konzept bei Weitem mehr zu bieten, als nur einfache Datensätze zu speichern oder nach diesen zu suchen. So wäre die Bezeichnung „Digitale Online-Enzyklopädie“ schon eher passend, denn bietet das Austria-Forum nicht nur Daten aus einem bestimmten Interessengebiet an, sondern vereint eine Fülle an Informationen aus bekannten österreichischen Lexika, Büchern, Bildbänden, Videoarchiven und noch vieles mehr, in einem einzigen System. Auch wenn nun vielleicht der Vergleich nahe steht, das Konzept mit einem „Brockhaus Digital“ oder einer „Microsoft Encarta“ in einer Onlineversion vergleichen zu wollen, so trifft dies, vielleicht in qualitativer Hinsicht und in der Strukturierung der Beiträge zu, aber mit Sicherheit nicht mit dem Grad der Interaktion zwischen User und System. So hat jeder User im Austria-Forum die Möglichkeit sich zu registrieren, um Beiträge zu verfassen beziehungsweise zu kommentieren und über Funktionen wie Forum oder integriertem Emailsystem mit den Autoren in Kontakt zu treten. Des Weiteren können Beiträge nicht nur von einzelnen Personen erstellt werden, sondern auch im kollaborativen Miteinander. Auch wenn jetzt vielleicht der Gedanke aufkommen sollte, das System mit dem von Wikipedia vergleichen zu wollen, gibt es doch einige wesentliche Unterschiede. Kommt bei Wikipedia ein Artikel grundsätzlich nie zur Ruhe oder ist dessen Verfasser meist unbekannt, so ist dies beim Austria-Forum nicht der Fall. So können beispielsweise Beiträge von Autoren gesperrt werden, um ein nachhaltiges Editieren zu verhindern. Des Weiteren ist es möglich, Beiträge von anerkannten österreichischen Interessenvertretern redaktionell prüfen zu lassen. Entsprechen diese den Kriterien einer wissenschaftlichen Arbeit, so können diese Beiträge - wenn gewünscht in einen geschlossenen Publikationsbereich des Systems übernommen werden. Man erhält also im Sinne der Wissenschaften zitierfähige Beiträge. [AF 2008] Das Austria-Forum eine - zitierfähige Community-geprägte Online-Enzyklopädie mit vorwiegend österreichischen Inhalten - würde das Konzept in einem Satz wohl am Besten beschreiben. 3 Das Austria-Forum 14 Abbildung 1: Die Einstiegsseite des Austria-Forums 3.1 Entstehung Auch wenn die Implementierung des Systems schon vor gut zwei Jahren stattgefunden hat, so ist das Konzept Austria-Forum viel älter als man vielleicht annehmen würde. So wurde schon im Jahr 1996 am Institut für Informationsverarbeitung und Computer gestützte Neue Medien (IICM) der Technischen Universität Graz ein ähnliches System entwickelt, das bekannte Kulturinformationssystem AEIOU4. Wer das System kennt, weiß, dass es sich hierbei um eine Online-Enzyklopädie der besonderen Art handelt. So wird beispielsweise ein eigenes Videoarchiv der österreichischen Film Geschichte angeboten, in dem einige der ersten Fernsehaufnahmen des Österreichischen Rundfunks (ORF) in digitaler Form (aufbereitet) zu sehen sind. Aber auch ein eigenes Musikalbum mit Musikstücken von Beethoven, Mozart, Schubert und weitere wichtige Vertreter der österreichischen Musikgeschichte, stehen zum Beispiel in den Formaten MP3 oder WAV zum Download bereit, ganz abgesehen davon, dass das komplette zweibändige Österreich-Lexikon der Verlagsgemeinschaft ÖsterreichLexikon digitalisiert wurde und im System integriert ist. Alles in allem stehen dem Benutzer zehn Gigabyte an Daten zur Verfügung [AEIOU 2008]. 3 4 http://www.austria-forum.org http://www.aeiou.at 3 Das Austria-Forum 15 Eine Weiterentwicklung des Kulturinformationssystems AEIOU stellte das im Jahr 2006 entwickelte Informationssystem Alexander da. Es wurde von Christian Safran unter der Leitung von Prof. Hermann Maurer konzipiert und umgesetzt. Anders als bei AEIOU war es das Ziel, nicht nur hochwertige Datenbestände und Nachschlagewerke anzubieten, sondern auch zusätzlich noch dem User die Möglichkeit zu geben, Beiträge zu kommentieren beziehungsweise diese selbständig zu verfassen oder aber auch Fragen zu stellen, die von Teilnehmern oder Experten beantwortet werden konnten. [Alexander 2008] Doch leider musste das Projekt kurz vor dem offiziellen Start ad acta gelegt werden, obwohl sich die Kombination „aktuelle Informationen“ und „Enzyklopädie - Community“ bewährt hatte. Grund hierfür war, dass ein wichtiger/tragender Partner, der Meyer Verlag, in finanzieller Hinsicht absprang. Dieser Rückschlag hatte zur Folge, dass eine Neuausrichtung nötig war, welche schlussendlich Prof. Hermann Maurer zum Gedanken führte, das Austria-Forum in seiner jetzigen Form entstehen zu lassen. 3.2 Klassifizierung Auch wenn der Begriff „zitierfähige Community-geprägte Online-Enzyklopädie“ dem Anwender als Systembeschreibung zur Genüge reichen mag, so ist es auf Entwicklerseite üblich, ein System möglichst genau zu klassifizieren. Wie schon im Einleitungskapitel beschrieben, handelt es sich beim Austria-Forum um eine zitierfähige Online-Enzyklopädie mit vorwiegend österreichischen Inhalten. Ziemlich vereinfacht ausgedrückt könnte auch gesagt werden: Beim Austria-Forum handelt es sich um ein Internet basiertes (= Web) Informationssystem (= System) mit vorwiegend österreichischen Inhalten (= Content) [AF 2008]. Fasst man die in der Klammerung definierten Begrifflichkeiten zusammen, so könnte das System in erster Instanz also auch als Web-Content-System (WCS) klassifiziert werden. Da aber der Begriff Web-Content System so dehnbar ist, dass im Grunde jedes System, welches Content im Web anbietet (vgl. Newsgroups, Foren, Webseits, Weblogs, und so weiter), als solches bezeichnet werden kann, ist es sinnvoll (wenn möglich) weitere Kriterien zu finden, die eine genauere Klassifizierung zulassen. Wie schon in der Einleitung zu diesem Kapitel erwähnt, hat jeder User die Möglichkeit sich am System zu registrieren, um Beiträge zu verfassen beziehungsweise diese zu bearbeiten (=Erstellung/Bearbeitung), wobei diese von den Autoren gesperrt werden können, um ein nachhaltiges Editieren zu verhindern. Darüber hinaus ist es möglich, selbst verfasste Beiträge redaktionell prüfen zu lassen. Entsprechen diese den Kriterien einer wissenschaftlichen Arbeit, so können diese Beiträge, wenn gewünscht, in 3 Das Austria-Forum einen geschlossenen Publikationsbereich (=Publikation/Archivierung). 16 des Systems übernommen werden Laut [Zschau et. al 2001] können die Begrifflichkeiten „Erstellung und Bearbeitung“ von Beiträgen, „Publikation“ und „Archivierung“ in Summe auch unter dem Begriff Management zusammengefasst werden, was schlussendlich dazu führt, dass das System im Allgemeinen als Web-Content-Management-System (WCMS) klassifiziert werden kann. 3.3 Technik Vom technischen Standpunkt aus betrachtet, ist das Austria-Forum ein typischer Vertreter dessen, was man als eine Ajax (asynchronous JavaScript and XML) Webanwendung bezeichnen würde. Abbildung 2: Ajax Modell einer Web-Anwendung, entnommen aus [Garrett 2005] Der Unterschied zu herkömmlichen Webanwendungen, wie man sie heute kennt, ist jener, dass die eigentliche Applikation nicht am Server läuft, sondern zum größten Teil auf den Client ausgelagert wird. Der Datenaustausch zwischen Client und Server erfolgt asynchron im Hintergrund über die so genannte XMLHttpRequest API (siehe Abbildung 2). Der Vorteil hierbei ist, dass nicht wie bei herkömmlichen Webanwendungen (im klassischen Sinne) eine Seite komplett vom Browser geladen werden muss, sondern die Kommunikation zwischen Client und Server auf ein 3 Das Austria-Forum 17 Minimum reduziert werden kann, da Datensätze „on-demand“ geladen werden (siehe Abbildung 3). Für die Implementierung der Benutzeroberfläche wird die Technologie DHTML, dynamisches HTML oder auch DOM Scripting genannt, zum Einsatz gebracht, um Daten, welche vom Server geladen werden, zu manipulieren und zu visualisieren. Serverseitig kommt die Technologie Java Server Pages (JSP) zum Tragen, um „schwere“ Funktionen wie Suche oder Authentifizierung zu implementieren. Als WebServer wird ein Apache Tomcat5 Server zum Einsatz gebracht. Die eigentlichen Inhalte der einzelnen Webpages, die so genannten HTML Files, werden am Server zusammen mit den Strukturfiles (.txn Files), welche die Zusammenhänge der einzelnen HTML Seiten widerspiegeln, im herkömmlichen Filesystem abgelegt. Auch externe Ressourcen wie Bilder, Video- oder Audiodaten werden so gespeichert. Funktional betrachtet ergibt sich somit folgender Ablauf, um Inhalte vom Server zu laden und am Client zu visualisieren: • Zuerst wird die Clientseitige Applikation des Austria-Forums vom Server geladen und initialisiert. • Fordert der User nun eine Seite vom Server an, so wird ein XMLHttpRequest abgesetzt, welcher den Inhalt eines .txn Files anfordert. • Das .txn File wird vom Client geparst, die Seitenstruktur wird via DOM erstellt beziehungsweise angepasst, und die HTML Files werden vom Server via XMLHttpRequest geladen. • Die vom Server zur Verfügung gestellten HTML Files werden vom Client via DOM in die aktuelle Seitenstruktur eingebunden und schlussendlich zur Anzeige gebracht. 5 http://tomcat.apache.org 3 Das Austria-Forum 18 Abbildung 3: Vergleich zwischen klassischen und Ajax-Modell einer Web-Anwendung, entnommen aus [Garrett 2005] 3.4 Funktionsüberblick Wie schon in der Einleitung beschrieben, bietet das Austria-Forum eine Reihe von Features an. Um welche speziellen Funktionen es sich hierbei im Konkreten handelt und welche Möglichkeiten das System dem User im Allgemeinen bietet, soll in weiterer Folge näher erörtert werden. 3.4.1 Navigation Wie heutzutage üblich, wurde auch beim Austria-Forum daran gedacht, einen zentralen Anlaufpunkt für alle wichtigen Systemfunktionen zu integrieren, die so genannte „Menu-Bar“ oder auch „Menü-Leiste“. Hier findet der Anwender alle wichtigen Funktionen, wie Hilfestellungen zum System, eine Suchfunktion, eine Druckansicht, einen 3 Das Austria-Forum 19 zentralen Kommunikationsknopf, einen Editierbutton und noch vieles mehr. Die wichtigsten Schaltelemente stellen hierbei die fünf Navigationsknöpfe da, mit deren Hilfe durch das System „gelenkt“ werden kann, wobei folgende Optionen zur Verfügung stehen: • Mit dem nach Rechts ausgelegten Pfeilknöpfen kann der User ebenenweise wie bei einer Slideshow - einzelne Kategorien nach vorne durchlaufen. Der einfach ausgeführte Pfeil-Button ermöglicht dabei das schrittweise Durchwandern, wohingegen der mit einem senkrechten Strich ausgeführte an das Ende einer Kategorie springen lässt. • Die nach links ausgelegten Pfeilknöpfe bieten im Grunde die gleichen Funktionalitäten an, nur mit dem Unterschied, dass diese ein Zurücklaufen einer Artikel-Serie ermöglichen. • Das fünfte und letzte Navigationselement, der „Zurück“-Button, musste auf Grund technischer Gegebenheiten eingefügt werden, da, wie aus AjaxSystemen bekannt, ein herkömmliches Zurücknavigieren über die BrowserHistory nicht möglich ist [vgl. Amikelive 2008]. Der „Zurück“-Knopf implementiert im Wesentlichen, wie schon angedeutet, die Funktionalität des Browser-Buttons „Back“. 3.4.2 Browsing und Searching Um Informationen im System zu finden stehen dem User zwei wesentliche Möglichkeiten offen und zwar die des Browsings und die des Searchings, wobei die Begrifflichkeiten wie folgt definiert werden [Guetl 2008]: • Unter Searching versteht man ein explizites Informationsbedürfnis, welches durch die Formulierungen einer Suchanfrage (Query) zu einer Ergebnisliste oder auch Suchliste führt. • Unter Browsing versteht man das Stöbern oder Durchsuchen von Dokumenten. Die Ergebnisliste entsteht hierbei nicht durch ein explizites Informationsbedürfnis oder eine konkrete Suchanfrage, wie dies beim Searching der Fall ist. Entscheidet man sich für die Methodik des Stöberns und Durchsuchens, so bietet das Austria-Forum vier wesentliche Konzepte an [vgl. Guetl 2008]: • Die des Flat-Browsings, um Folgen von Beiträgen nacheinander in einer bestimmten Reihenfolge zu durchsuchen. • Das Konzept des Structure-Guided-Browsings, welches über die Möglichkeit der Darstellung von Dokumenten und Kategorien in einer hierarchischen Baumstruktur realisiert wurde und dem User zur Verfügung steht. • Die des Hypertext-Browsings, welches durch die Möglichkeit der Verlinkung von einzelnen Beiträgen bewerkstelligt wurde. 3 Das Austria-Forum • 20 Die des Tabbed-Browsings, wobei diese Funktion mit der unter dem Begriff bekannten Technik nicht viel gemeinsam hat, denn unterscheiden sich diese deutlich: So wird im Austria-Forum diese Funktion dazu verwendet, um Unterverzeichnisse in Registerkarten darzustellen und nicht, wie bei der herkömmlichen Methode üblich, einzelne Browser-Fenster. Abbildung 4: Suche und Metadatensuche im Austria-Forum Des Weiteren steht dem User, wie schon zuvor angedeutet, die Möglichkeit offen auch dezidiert nach Informationen zu suchen. Insgesamt kommen sieben Suchparadigmen zum Einsatz, welche wie folgt lauten: • Die klassische Volltextsuche, bei der der User einen Suchquery definiert, um Dokumenteninhalte auf das Vorkommen dieses Querys hin zu untersuchen (matchen), und sich diese entsprechend der Ähnlichkeit zum definierten Query ausgeben lässt. Zudem kann vom User definiert werden, ob diese auf den ganzen Datenbestand des Austria-Forums anzuwenden ist, oder strukturiert, auf einen eingeschränkten Datenbestand. • Eine weitere Option, welche im Austria-Forum implementiert wurde, sind die Methodiken der so genannten Titel-, Themen und Keyword-Suche wo versucht wird ,den vom User definierten Query auf diese Bereiche der Dokumente zu beschränken. • Des Weiteren findet man auch die Möglichkeit der so genannten Ähnlichkeitssuche vor, bei der ein gerade betrachtetes Dokument über dessen Titel mit anderen Do- 3 Das Austria-Forum 21 kumenten auch über dessen Titel und Schlüsselwörter verglichen werden kann um zu einem Suchergebnis zu führen. • Eine andere Methodik, welche vielleicht noch nicht so bekannt ist, stellen die so genannten Such-Links dar. So ist es beispielsweise möglich, einzelne Wörter als herkömmlichen Links auszuweisen, um auf der Grundlage derer, eine Schlüsselwortbasierte Suche durchzuführen. • Darüber hinaus wurde auch das Prinzip des Ajaxbasierten Suchfilterkonzeptes umgesetzt. So können beispielsweise Themen lokal oder auch global mit einem vom User verfassten Query an Hand des Titels gefiltert werden. Aber auch in einigen Alben wird dieses Prinzip angewandt, um die Fülle an Informationen besser visualisieren zu können. • Eine interessante Option hinsichtlich der Suche ist die im System integrierte Funktion „Geo-Search“. Beiträge, welche hinsichtlich einer geographischen Positionsangabe „getaggt“ wurden, können im System über eine geographische Suche gefunden werden. Die Resultatsanzeige erfolgt hierbei direkt in einer von Microsoft Virtual World erzeugten Map. • Die letzte Methodik, welche an dieser Stelle noch genannt werden soll, ist die MetaDaten Suche. Ähnlich der Keyword-Suche wird der vom User verfasste Query hier mit dem Meta-Daten-Schema einzelner Beiträge oder Kategorien gematched. Da sich die Meta-Daten von Kategorie zu Kategorie unterscheiden können, wird auch zusätzlich noch das Paradigma des Meta-Daten getriebenen Ajax basierten Suchfilterkonzeptes angeboten, um durch die Formulierung eines Query in den MetaDaten Feldern an Informationen zu gelangen. 3.4.3 Editieren und Erstellen von Beiträgen Wie schon in der Einleitung zu diesem Kapitel beschrieben, beschränkt sich das System nicht nur auf das schlichte Anbieten von Informationen, sondern ermöglicht es, selbst zum Akteur zu werden. Für diesen Zweck steht dem User ein multifunktionales Editiermodul zur Verfügung, welches in der Menu-Bar als eigenes Schaltelement mit der Aufschrift „Bearbeiten“ zur Verfügung gestellt wird. Multifunktional deshalb, weil damit nicht nur Beiträge erstellt oder bearbeitet werden können, sondern auch Beiträge verschoben, Hyperlinks erstellt oder Bilddaten auf den Server geladen werden. Um nun einen Artikel erstellen zu können beziehungsweise diesen zu editieren, steht dem User ein Editoren-Modul zur Verfügung, welches folgende Komponenten in sich vereint: • Ein „Titel“-Feld, um einem Dokument einen entsprechenden Namen geben zu können 3 Das Austria-Forum 22 • Ein „Schlüsselwort“-Feld, um den Inhalt eines Dokumentes mit einer Folge von Wörtern näher zu beschreiben • Eine „Textarea“, um Seiteninhalte mit Hilfe der Textaufzeichnungssprache HTML zu definieren, wobei auch Scriptsprachen wie JavaScript oder Cascading Style Sheets (CCS) zulässig sind • Ein „Drag&Drop“ Feld, mit dessen Hilfe eine Folge von Daten auf den Server geladen werden kann • Vier „Checkboxen“, um Beiträge hinsichtlich der Themenliste, Reihenfolge, Nachfolgebeiträgen oder Verlängerung zu sperren • Ein „Drop-Down“ Menü mit der Möglichkeit, enthaltene Themen in einer Seite zu editieren • Zwei Eingabefelder mit der Option „lat“ und „lng“ um einen Beitrag mit geographische Längen- und Breitenangaben zu „taggen“ • Und natürlich die zwei Funktionsknöpfe, um einen Beitrag via „OK“ zu speichern oder mittels „Abbrechen“ das Erstellen oder Bearbeiten dessen zu verwerfen 3.4.4 Kommunikation Wie schon in der Einleitung erwähnt, stehen dem User eine Reihe von Kommunikationskanälen zur Verfügung, welche wie folgt lauten: • Im System wurde ein Instant-Messenger integriert, welcher es erlaubt, sich über das System mittels Kurznachrichten zu unterhalten. • Des Weiteren zu finden ist eine Chat-Funktion, um mit mehreren Usern gleichzeitig zu kommunizieren. • Darüber hinaus bietet das System ein integriertes Emailsystem an. Die Kommunikation erfolgt hierbei über den Benutzernamen, was den Vorteil hat, dass Nachrichten ohne Preisgabe der Identität und Emailadresse verschickt werden können. • Eine für die Qualitätssteigerung der Beiträge wichtige Funktion ist die Möglichkeit, Artikel kommentieren zu können, weshalb auch diese Option dem User im AustriaForum zur Verfügung steht. Die Kommentare werden hierbei dem Beitrag angehängt und können somit zusammen mit dem Artikel auf einer Seite zusammengefasst angezeigt werden. • Das letzte Werkzeug, welches in die Rubrik der Kommunikationstools fällt, ist ein integrierter Blog Server, auf dem User eigene Blogs anlegen können um Beiträge den Interessengebieten entsprechend zu verfassen und der Community zugänglich zu machen. 3 Das Austria-Forum 23 Abbildung 5: Das Editor-Modul des Austria-Forums Abbildung 6: Chatfunktion (Fenster im Vordergrund), Online-Status (Fenster oben) und integrierte Emailfunktion (Fenster unten) 3 Das Austria-Forum 24 3.4.5 Authentifizierung Da es sich beim Austria-Forum um ein geschlossenes System handelt, in dem nur registrierte Benutzer Beiträge verfassen und kommentieren oder miteinander kommunizieren können, werden folgende Konzepte zum Einsatz gebracht, um den Anforderungen gerecht zu werden: • So findet prinzipiell jeder User einen „Registrierungs“-Button vor, um sich via Benutzername und Emailadresse am System zu registrieren. Das Passwort wird hierbei per Email verschickt. • Die Authentifizierung erfolgt über den Funktionsknopf „Anmelden“. • Des Weiteren bietet das Austria-Forum dem Benutzer die Möglichkeit an ein Profil mit zusätzlichen persönlichen Daten wie Vor- und Zuname, Homepage-Adresse, Organisation, Persönliche Beschreibung, Bild und so weiter zu definieren. • Darüber hinaus können User eigene Benutzergruppen definieren und andere dazu einladen, diesen beizutreten, was den Vorteil mit sich bringt, sich von anderen Mitglieder abzugrenzen um beispielsweise via Chatfunktion miteinander zu kommunizieren oder auch Kategorien unabhängig von anderen Usern gemeinsam zu nutzen. 3.4.6 Sonstige Funktionen Abgesehen von den schon zuvor erwähnten Funktionen, implementiert das AustriaForum eine Reihe von zusätzlichen Features, welche an dieser Stelle kurz vorgestellt werden sollen: • Neues: Über den Menüpunkt „Neues“ stehen dem User eine Reihe von Übersichtsseiten zur Verfügung um beispielsweise über aktuelle Änderungen im System informiert zu werden. • Druck: Über den Menüpunkt Druck ist es möglich eine Druckansicht vom gewünschten Artikel unabhängig vom Seiten-Template zu erzeugen. • Lesezeichen: Des Weiteren wird ein eigener Lesenzeichenmanager angeboten, mit dem systeminterne Seiten unabhängig vom Browser gespeichert werden können. • RSS-Feeds: Einzelne Themen oder auch das ganze System können als RSS-Feed (Version 2.0) abonnieren werden. • Bewertung: Die letzte hier zu nennende Funktion ist die Möglichkeit, Beiträge bewerten zu können. Diese Funktion steht, wie das Kommentieren von Beiträgen, dem User auf jeder Seite im System zur Verfügung. 3 Das Austria-Forum 3.5 25 Zusammenfassung Beim Austria-Forum handelt es sich um eine zitierfähige Community-geprägte OnlineEnzyklopädie mit vielen Erweiterungen wie sie heute nicht in jedem herkömmlichen Web-Content-Management-Systemen zu finden sind. So stechen neben hochwertigen, mit Meta-Daten versehenen, kategorisierten Artikeln vor allem auch Module wie ein integriertes Emailsystem, Blog- und Chatfunktion, sowie ein integrierter Lesezeichenmanager oder ein RSS-Dienst unter Anderem hervor. Ein interessantes Konzept, wenn es darum geht, Community und Online-Enzyklopädie miteinander zu vereinen. 4 Kritik und Umsetzbarkeitsanalyse 4 26 Kritik und Umsetzbarkeitsanalyse Auch wenn das Konzept Austria-Forum durchwegs positives Feedback erntet, so konnten in den zwei Jahren, in denen das System nun im Betrieb ist, auch einige kritische Punkte evaluiert werden. In dem hier folgenden Kapitel sollen diese näher beschrieben und diskutiert werden. 4.1 Kritik Wie schon zuvor angedeutet, wurde das System in einigen speziellen Punkten des Öfteren kritisiert. Im Rahmen dieser Diplomarbeit wurde das System deshalb einigen Analysen unterzogen. Unter Anderem wurde das Editoren-Team des Austria-Forums gebeten, Probleme im Umgang mit dem System in Rahmen der wöchentlich stattfindenden Besprechung bekannt zu geben. Die folgenden Kapitel fassen die vom Editoren-Team und vom Autor dieser Arbeit am meisten kritisierten Punkte zusammen. 4.1.1 Navigation und Browsing Bezug nehmend auf die Navigation wurden folgende Punkte des Öfteren von den Editoren kritisiert: • (P1.1) Menüleiste: Wie schon in Kapitel 3.3.2 erwähnt, ist für das Navigieren durch die einzelnen Artikel und Kategorien eine eigene Navigationsleiste implementiert. Betrachtet man die funktionale Zuordnung der Knöpfe mit deren Symbolen näher, so muss gesagt werden, dass diese auf den Benutzer verwirrend wirken. Vor allem wurde der einfach ausgeführte Pfeil-Zurück-Knopf des Öfteren mit dem Browserbutton „Back“ verwechselt. • (P1.2) Back/Forward-Button-Problem: Ein weiterer kritischer Punkt, welcher angemerkt wurde, ist die Tatsache, dass ein Browser initiiertes Zurück- oder Vorwärtslaufen nicht möglich ist. • (P1.3) Links: Darüber hinaus wurde auch mehrmals angemerkt, dass Hyperlinks nicht als solche im System ersichtlich sind. Vor allem das Nichtunterstreichen und das Verwenden der sonst untypischen Farbe Rot wurden hierbei als Grunde genannt. • (P1.4) Zu tiefe Hierarchien: Einige User beschwerten sich, dass Informationen zu tief im System versteckt sind. 4 Kritik und Umsetzbarkeitsanalyse 27 4.1.2 Suche Hinsichtlich der Suche konnten folgende Dinge festgestellt werden: • (P2.1) Heterogenität: Wie aus Kapitel 3.3.3 ersichtlich, integriert das System eine Reihe von unterschiedlichen Such-Paradigmen. Vor allem die große Anzahl an verschiedenen Möglichkeiten der Suche irritierte einige User. • (P2.2) Globale-Suche: Des Weiteren kam es bei der globalen Suche des Öfteren zu Ärgernissen, da standardmäßig keine Volltext- sondern eine Keyword- und Titelbasierte Suche vom System durchgeführt wird. • (P2.3) Volltextsuche: Die Suchanwendung stürzte ab, wenn Stoppwörter wie „der, die, das“ verwendet wurden. 4.1.3 Editieren und Erstellen von Beiträgen Bezüglich des Editierens von Beiträgen wurden folgende Punkte von den Editoren kritisiert: • (P3.1) Fenstergröße: Insbesondere wurde die Fenstergröße des Editors als zu klein angesehen. Vor allem die nicht vorhandene Möglichkeit, dieses zu vergrößern, war ein häufiger Kritikpunkt bei der Beitragserstellung. • (P3.2) HTML-Syntax: Einige Editoren beklagten den mühevollen Umgang mit HTML als Textaufzeichnungssprache. Vor allem wurde die syntaktische Handhabe teilweise nicht richtig verstanden, weshalb das Erlernen der Syntax von der tatsächlichen Arbeit abhielt. • (P3.3) Verschieben von Beiträgen: Zudem wurde die nicht vorhandene Option zum globalen Verschieben von Beiträgen als Kritikpunkt genannt. Es musste für diese Tätigkeit immer ein Systemadministrator herangezogen werden, was das flüssige Arbeiten mit dem System beeinträchtigte. • (P3.4) Verbergen von Beiträgen: Als sehr unangenehm wurde die nicht vorhandene Möglichkeit zum Verbergen von Beiträgen angesehen. So gab es vor allem das Problem, dass nicht fertig gestellte Beiträge von der Community kritisiert wurden, diese aber nicht verborgen werden konnten. • (P3.5) Upload von Bildern: Es wurde darüber geklagt, dass die Drag&Drop Funktion zum Upload von Bildern nicht immer funktioniert, da eine JAVA Laufzeitumgebung nicht installiert war. 4.1.4 Speichern und drucken von Beiträgen Zuzüglich zu den bereits erwähnten Mängeln wurden auch noch folgende Punkte kritisiert: 4 Kritik und Umsetzbarkeitsanalyse 28 • (P5.1) Speichern von Seiten: Einige User beschwerten sich, dass über die Browser-Funktion „Datei/Speichern Unter“ ein Abspeichern einzelner Artikel nicht möglich ist. • (P5.3) Druck: Zu guter Letzt wurde noch darauf hingewiesen, dass ein Drucken über den Menüpunkt „Druckansicht“ nicht möglich ist. 4.1.5 Sicherheit Hinsichtlich der Systemsicherheit mussten folgende Punkte festgestellt werden: • (P4.1) Überschreiben von Beiträgen: Im System existiert kein LockingMechanismus um Beiträge davor zu schützen gleichzeitig von mehreren Benutzen bearbeitet zu werden. • (P4.2) Überschreiben von Bildern: Des Weiteren können auch Bilder über die Funktion Drag&Drop von anderen Benutzern überschrieben werden. • (P4.3) Keine Verschlüsselung von Userdaten: Userdaten wie Passwörter, EmailAdresse und so weiter werden im System in Plain-Text abgelegt. Obwohl sich der Betreiber des Austria-Forums dazu verpflichtet hat diese zu schützen so können diese Daten von jeder Server-berechtigten Person eingesehen oder sogar verändern werden. • (P4.4) Keine Skriptfilterung im HTML-Editor: Über den HTML-Editor ist es möglich auch JavaScripte mit auf den Server zu speichern. Es ist einem Angreifer also beispielsweise möglich ein Script auf den Server zu laden, um gegebenenfalls sensible Daten unter dem Deckmantel des Austria-Forums vom Benutzer zu erbitten. 4.1.6 Community Zuzüglich zur Usability wurde die Community-Ausprägung des Systems untersucht. Wichtige Kriterien hierfür waren: • Die Anzahl der erstellten Accounts • Die Anzahl der von der Community erstellten Beiträge • Das Nutzen der Community-spezifischen Funktionen wie Chat, Blogging und Kommentare Folgende Punkte konnten dabei festgestellt werden (Stand: 20.12.2008): • Insgesamt wurden seit dem Bestehen des Systems 292 Accounts angelegt • 95% aller Beiträge wurden von bezahlten Editoren verfasst • Vier Prozent aller Beiträge wurden von externen Editoren verfasst • Ein Prozent der Beiträge wurden von der Community verfasst 4 Kritik und Umsetzbarkeitsanalyse 29 • Die Chat Funktion wurde nie genutzt • Das Blog System wurde von insgesamt drei Usern genutzt 4.1.7 Popularität Zusätzlich wurde das System hinsichtlich seiner Popularität untersucht. Als AnalyseTools kamen hierbei der Webinformationsdienst Alexa6 und die drei Suchmaschinen Google, MSN7 und Yahoo8 zum Einsatz. Der Webinformationsdienst Alexa lieferte für die Domain austria-forum.org folgende Ergebnisse (Stand: 2.1.2009): Tabelle 1: Prozent der globalen Internet User für die Domain austria-forum.org, entnommen aus [Alexa 2009] Yesterday 1 wk. Avg. 3 mos. Avg. 3 mos. Change n/a -- 0.000024% ↓ 4% Tabelle 2: Alexa Traffic Rank, basierend auf einer kombinierten Berechnung aus Traffic Rank und Page Views, entnommen aus [Alexa 2009] Yesterday 1 wk. Avg. 3 mos. Avg. 3 mos. Change n/a -- 2,562,866 150,882 Tabelle 3: Anzahl der Unique Pages Viewed pro Tag, entnommen aus [Alexa 2009] Yesterday 1 wk. Avg. 3 mos. Avg. 3 mos. Change n/a -- 1,6 ↓ 10% Des Weiteren bietet Alexa die Möglichkeit an, eine Domain hinsichtlich eingehender Hyperlinks zu untersuchen. Für die Domain austria-forum.org konnten laut [Alexa 2009] sieben Websites gefunden werden, deren Hyperlinkstrukturen Verweise auf das Austria-Forum enthielten. 6 http://www.alexa.com http://www.msn.com 8 http://www.yahoo.com 7 4 Kritik und Umsetzbarkeitsanalyse 30 Abbildung 7: Alexa Daily Pageviews für die Domain austria-forum.org, entnommen aus [Alexa 2009] Tabelle 4: Ergebnisse der Suchmaschinen Google, MSN und Yahoo (Stand 2.1.2009) Suchmaschine Anzahl an unterschiedlichen Websites in denen der Suchbegriff „austria-forum.org“ auftaucht. Indizierte Seiten der Domain „austria-forum.org“ Google 40 150 MSN 33 n/a Yahoo 43 n/a 4.2 Weiterentwicklung sinnvoll? Auch wenn das Konzept Austria-Forum überzeugen mag, so muss hinsichtlich der technischen Realisierung des Systems doch einiges an Kritik ausgesprochen werden. Vor allem hinsichtlich der Usability, eines der wohl mit Abstand wichtigsten Kriterien, wenn es darum geht ein erfolgreiches System zu schaffen [Andrews 2008; Nielson et al. 2001; Zerfaß und Zimmermann 2004], muss gesagt werden, dass das System nicht gerade ein Vorzeigeobjekt ist. So wird beispielsweise ein eigenes Navigationsmenü implementiert, um „besseres“ Browsen durch die einzelnen Beitragshierarchien zu gewährleisten. Doch wie in Kapitel 4.1 gezeigt, kommt es vor allem hinsichtlich der funktionalen Zuordnung der einzelnen Navigationsknöpfe zu Problemen beim User. 4 Kritik und Umsetzbarkeitsanalyse 31 Aber auch hinsichtlich der Suche ist anzumerken, dass das System nicht überzeugen kann. Vor allem der exzessive Einsatz unterschiedlicher Suchparadigmen verwirrte mehr, als dadurch etwas leichter gefunden werden konnte. Ein weiterer kritischer Punkt sind die vielen technischen Mängel des Systems. So werden Beiträge nicht gesperrt, wenn diese von mehreren Usern gleichzeitig bearbeitet werden. Auch das Anbieten einer nicht funktionierten Druckfunktion, die Unmöglichkeit, Artikel speichern zu können oder die nicht vorhandene Option Beiträge zu verschieben beweisen, dass das System leider nicht sehr praktikabel ist, wie die allgemein schwache Community-Ausprägung beweist. Die Frage, welche sich nun aufdrängt ist, in wie weit es Sinn macht, das bestehende System weiter zu entwickeln. 4.3 Problem- und Umsetzbarkeitsanalyse Um die in Kapitel 4.2 aufgeworfene Frage „in wie weit es Sinn macht, das bestehende System weiter zu entwickeln“ zu beantworten, ist es zweckdienlich, das System hinsichtlich der in Kapitel 4.1 geäußerten Kritikpunkte näher zu analysieren, Lösungsvorschläge zu machen und darüber zu diskutieren, in wie weit diese umgesetzt werden können. In den hier folgenden Kapiteln sollen nun eine Analyse hinsichtlich der von den Usern geäußerten und allgemein kritisierten Punkte vorgenommen werden. 4.3.1 Usability Menüleiste und Back/Forward-Button-Problem Problem: P2.1 + P2.2 Lösungsvorschlag: Das Vor- und Rückwärtsnavigieren sollte über die jeweiligen Browser-Buttons möglich gemacht werden [Dué et al. 2008] Die Navigationspfeile sollten deshalb aus dem System entfernt werden. Für das Navigieren durch eine Sequenz wäre es sinnvoll ein gutes Pagination-Konzept zu implementieren (siehe beispielsweise smashingmagazin.com9) Umsetzbarkeit: Schwer/Unmöglich Diskussion: Zwar ist das Ajax Back-Button Problem vom technischen Standpunkt aus schon seit geraumer Zeit gelöst [vgl. Stenhouse 2005; Neuberg 2005], doch wird dieser Hotfix leider nicht von jedem Browser unterstützt, weshalb gesagt wer- 9 http://www.smashingmagazine.com/2007/11/16/pagination-gallery-examples-and-goodpractices/ 4 Kritik und Umsetzbarkeitsanalyse 32 den muss, dass dieses Problem nur schwer oder gar nicht gelöst werden kann Links Problem: P3.3 Lösungsvorschlag: Links sollten dahingehend angepasst werden, dass diese als solche ersichtlich sind. Klassischerweise unterstrichen und in der Farbe blau gehalten, wäre eine gute Lösung für dieses Problem [Nielsen 2004] Umsetzbarkeit: Leicht Diskussion: Die Umsetzung dieses Vorschlages kann als relativ „leicht“ umsetzbar eingestuft werden, da das Einführen eines globalen Styles für das Anker-Tag dieses Problem lösen würde (siehe beispielsweise w3c.org10) Tiefe Hierarchien Problem: P1.4 Lösungsvorschlag: Ein „Ausflachen“ und Zusammenfassen von Hierarchien wäre ein möglicher Lösungsvorschlag für dieses Problem Umsetzbarkeit: Schwierig Diskussion: Auf Grund der in Kapitel 4.1 geäußerten Probleme hinsichtlich des Verschiebens von Beiträgen könnte sich dieses Unterfangen als eher schwierig erweisen. Was die interne und externe Link-Konsistenz anbelangt, so muss gesagt werden, dass die Problemlösung auch eher schwer umzusetzen ist, da auf Grund der Hypertexttechnologie keine 100% Möglichkeit besteht, herauszufinden welche externen Verweise auf einzelne Artikel bestehen Heterogenität und Globale Suche Problem: P2.1+P2.2 Lösungsvorschlag: Es sollte versucht werden die verschiedenen Such Paradigmen auf ein Minimum zu reduzieren. Ein guter Lösungsvorschlag wäre ein einheitliches Suchfeld im Menübereich. [Nielsen 1997] Darüber hinaus sollte standardmäßig die Volltextsuche aktiv sein 10 http://www.w3.org/TR/CSS21/selector.html#link-pseudo-classes 4 Kritik und Umsetzbarkeitsanalyse Umsetzbarkeit: Leicht Diskussion: Siehe beispielsweise w3c.org11 33 Volltextsuche Problem: P2.3 Lösung: Implementierung eines Stoppwortfilters Umsetzbarkeit: Mittel Diskussion: Beispiele hierfür sind auf onjava.com12 oder apache.org13 zu finden Fenstergröße und Fenster allgemein Problem: P3.1 + P5.2 Lösung: Den DHTML Fensterkomponenten sollten Funktionen wie „Drag&Drop“ oder „Resize“ hinzugefügt werden oder aber auf Window-Komponenten verzichtet und eine neue Seite mit dessen Inhalt zur Anzeige gebracht werden Umsetzbarkeit: Mittel Diskussion: Ein möglicher Lösungsvorschlag für dieses Problem kann auf dynamicdrive.com14 gefunden werden HTML Syntax Problem: P3.2 Lösungsvorschlag: Einführen einer simplen Syntax Eingabe-Templates X2HTML Konverter Umsetzbarkeit: Mittel Diskussion: Das Einführen einer simplen Syntax, Eingabe-Templates oder Konvertierroutinen würde dieses Problem mit Sicherheit minimieren. Da dazu einige Lösungsvorschläge auf google.com existieren, siehe Internetforen- oder Wikisyntax oder Word2HTML Konverter, ist das eigentliche Problem nur mehr in der Implementierung zu sehen 11 http://www.w3.org/TR/html401/interact/forms.html http://www.onjava.com/pub/a/onjava/2003/01/15/lucene.html?page=2 13 http://hudson.zones.apache.org/hudson/job/Lucenetrunk/javadoc/org/apache/lucene/analysis/StopFilter.html 14 http://www.dynamicdrive.com/dynamicindex8/dhtmlwindow/ 12 4 Kritik und Umsetzbarkeitsanalyse 34 Verschieben von Beiträgen Problem: P3.3 Lösungsvorschlag: Das zur Verfügung stellen eines globalen DHTML-Baumes mit der Möglichkeit, Artikel via Drag&Drop zu verschieben, wäre ein Lösungsansatz für dieses Problem Umsetzbarkeit: Mittel Diskussion: Auf dhtmlx.com15 findet man beispielsweise eine Ajax basierte Lösung, welche diese Idee umsetzt Verstecken von Beiträgen Problem: P3.4 Lösungsvorschlag: Die Implementierung eines Hide/Show Buttons würde dieses Problem beheben Umsetzbarkeit: Mittel Diskussion: Im Grunde dürfte diese Funktion mit mittlerem Aufwand zu realisieren sein Speichern von Seiten Problem: P5.1 Lösungsvorschlag: Verzicht auf Frames und Einschränkung hinsichtlich des exzessiven Einsatzes von DHTML [Nielsen 1996] Umsetzbarkeit: Unmöglich Diskussion: Um diesen Lösungsvorschlag umzusetzen, müsste das System vom technischen Standpunkt aus betrachtet komplett überarbeitet werden. Der hier beschriebene Kritikpunkt zählt zu einem der Hauptprobleme bei der Umsetzung von AJAX Anwendungen Druck Problem: P5.3 Lösungsvorschlag: Es wäre sinnvoll den Print-View nicht über das Document Object Model anzubieten, da diese Funktion von einigen Browsern (beispielsweise Mozilla Firefox) nicht unterstützt wird. Stattdessen wäre ein nativer Print-View denkbar Umsetzbarkeit: 15 Leicht http://www.dhtmlx.com/docs/products/dhtmlxTree/index.shtml 4 Kritik und Umsetzbarkeitsanalyse Diskussion: 35 Da der Seitencode nativ in .htm Dateien vorliegt (siehe Kapitel 3.3) würde eine Referenz auf diese genügen um das Problem zu beheben 4.3.2 Sicherheit Upload und Überschreiben von Bildern Problem: P3.5+P4.2 Lösungsvorschlag: Ein Verzicht dieser Funktion wäre sinnvoll Umsetzbarkeit: Leicht Diskussion: - Überschreiben von Beiträgen Problem: P4.1 Lösungsvorschlag: Implementierung eines Locking-Mechanismus Umsetzbarkeit: Mittel Diskussion: Auf sun.com16 ist beispielsweise eine Lösung für dieses Problem zu finden Keine Verschlüsselung von Userdaten Problem: P4.3 Lösungsvorschlag: Implementierung einer Verschlüsselungsfunktion Umsetzbarkeit: Mittel Diskussion: Siehe beispielsweise jasypt.org17 Keine Skript Filterung im HTML-Editor Problem: P4.4 Lösungsvorschlag: Es wäre besser, die Eingabe von HTML ganz zu unterbinden oder einen geeigneten HTML und Javascriptfilter zu implementieren Umsetzbarkeit: Mittel Diskussion: Siehe beispielsweise java2s.com18 16 http://java.sun.com/j2se/1.4.2/docs/api/java/nio/channels/FileLock.html http://www.jasypt.org/howtoencryptuserpasswords.html 18 http://www.java2s.com/Code/Java/Servlets/HTMLfilterutilit y.htm 17 4 Kritik und Umsetzbarkeitsanalyse 36 4.3.3 Community Problem: P6 Lösungsvorschlag: Die Community sollte integraler Bestandteil des Systems werden: Behebung der technischen Mängel sowie Steigerung der Usability Community Bereich auf das ganze System ausweiten Es sollten bessere Möglichkeiten des kollaborativen Arbeitens angeboten werden Umsetzbarkeit: Schwierig Diskussion: Um dieses Konzept umzusetzen, wären Funktionen wie Revisionskontrolle, Diff-Funktion, Access Control Listen und so weiter nötig 4.3.4 Popularität Problem: P7 Lösungsvorschlag: Verzicht auf Frames und DHTML Umsetzbarkeit: Unmöglich Diskussion: Um diesen Lösungsvorschlag umzusetzen, müsste das System vom technischen Standpunkt aus betrachtet komplett überarbeitet werden. 4.4 Fazit Auch wenn drei der in Kapitel 4.1 vorgestellten Probleme „leicht“ behoben werden könnten, so konnten dennoch neun „mittelmäßig schwer“ zu lösende, drei „schwer“ zu lösende und drei „unlösbare“ Probleme festgestellt werden. Vor allem in architektonischer Hinsicht kann keine befriedigende Lösung gefunden werden, um beispielsweise die Usability bezüglich der Navigation über alle Browserversionen hinweg zu steigern oder das Problem „Abspeichern von Seiten“ zu lösen. Aber auch der Kritikpunkt Popularität kann auf Grund der zuvor geschilderten Gegebenheiten nicht gelöst werden, da es durch den exzessiven Einsatz von Frames und DHTML den jeweiligen Suchmaschinen verwehrt bleibt Seiteninhalte zu indizieren. Da das System hinsichtlich dieser Kritikpunkte nicht überarbeitet werden kann, es zuzüglich eine Reihe von nur schwer und mittelmäßig schwer zu lösenden Problemen gibt, muss daher vorgeschlagen werden, das System von Grund auf zu überarbeiten. 5 Auf der Suche nach einer geeigneten System-Basis 5 37 Auf der Suche nach einer geeigneten System-Basis Wie schon in Kapitel 4 beschrieben, wurde das System hinsichtlich einer Reihe von Problemen kritisiert. Vor allem bezüglich des Kriteriums Usability konnten einige schwerwiegende Mängel festgestellt werden. Aber auch hinsichtlich der Punkte Sicherheit, Community und Popularität erwies sich das System als nicht hinreichend erfolgreich, weshalb auch festgestellt wurde, dieses von Grund auf zu überarbeiten. Dieses Kapitel befasst sich deshalb neben dem Definieren der neuen Systemanforderungen vor allem mit der Frage, welches Konzept sich am Besten eignen würde, das Austria-Forum in technischer Hinsicht zu realisieren. 5.1 Allgemeine Anforderungen In Anbetracht der in Kapitel 4 geäußerten Probleme können die allgemeinen Anforderungen an die neue Software-Lösung wie folgt definiert werden: Das System sollte, • frei verfügbar sein (OpenSource) • benutzerfreundlich sein • die Community als integralen Bestandteil ansehen • Suchmethoden Volltext- oder Keywordsuche unterstützen • einfache Methodiken zur Content Erstellung anbieten (z.B.: WYSIWYG Editor, simple Syntax, Eingabe-Templates und so weiter) • kollaboratives Arbeiten ermöglichen und damit einhergehende wichtige Methodiken unterstützen (Revisionskontrolle, Diff-Funktion) • ein User Management- und Control-Modul zur Verfügung stellen • eine flexible Art der Kategorisierung anbieten • Drucken und Speichern von Beiträgen ermöglichen 5.2 Technische Anforderungen an das neue System Die technischen Anforderungen können wie folgt definiert werden: • OpenSource: Das System sollte auf eine Open Source Software Lösung aufgebaut werden. 5 Auf der Suche nach einer geeigneten System-Basis 38 • Authentifizierung/Userverwaltung: Das System sollte ein Authentifizierungs- und Userwaltungsmechanismus bereitstellen. • Zugriffskontrolle: Das System sollte dezidierte Zugriffskontrollmechanismen anbieten. • Strukturierung von Beiträgen: Beiträge sollen vom System in strukturierter Form dem User angeboten werden können. Ein Kategorisierungssystem wäre wünschenswert. • Suche: Das System sollte dem User die Möglichkeit offerieren, einfache und komplexe Suchanfragen zu generieren. • Kommentare und Foren: Das System sollte eine Foren- und Kommentarfunktion beinhalten. • XHTML/CSS/PDF Ouput und RSS-Feeds: Das System sollte Standardausgabeformate wie XHTML 1.0/CSS und PDF beherrschen. Des Weiteren sollte einen RSS-Dienst inkludieren. • Mediasupport: Das System sollte einen ausgeprägten Mediensupport (Video/Audio) anbieten. • Conflict Handling: Das System sollte einen Conflict Handling Mechanismus beinhalten. • Revison Control: Das System sollte einen Revision Control Mechanismus beinhalten. • Einfache Syntax: Das System sollte eine einfache Eingabesyntax beziehungsweise Methodiken welche diesem Konzept nahe kommen zur Verfügung stellen. 5.3 Die Qual der Wahl - Oder vielleicht doch nicht? Begibt man sich auf die Suche nach einem geeigneten System, um das Konzept Austria-Forum in technischer Hinsicht zu realisieren, so stellt man fest, dass es im Grunde keine „eins zu eins“ Lösung gibt. Was es aber gibt, ist eine schier unüberschaubare Fülle an Softwarelösungen im Bereich der Web-Content-Management-Systeme (WCMS). So können beispielsweise auf der bekannten CMS Website CMSMatrix19 über 1020 WCM Systeme gefunden werden. Aber auch populäre Directory-Dienste wie das Google-Verzeichnis20 mit über 460 Einträgen oder DMOZ21 mit fast 440 Einträgen bieten nicht gerade weniger Auswahl an. 19 20 http://www.cmsmatrix.org http://directory.google.com 5 Auf der Suche nach einer geeigneten System-Basis 39 Laut Bob Doyle [Doyle 2008] werden mittlerweile annähernd über 1700 Web-ContentManagement-Systeme auf dem Softwaremarkt [Doyle 2005] angeboten. Somit ist es also ratsam, Einschränkungen zu treffen, um die Auswahlmenge weiter zu minimieren. Wie schon in Kapitel 5.1 beschrieben, soll das neue System vor allem auch den Aspekt der Community mit abdecken. Die Softwarelösung kann also auch als Community-Web Content-Management-System klassifiziert werden. Hinsichtlich dieses Kriteriums gestaltet sich die Suche schon ein wenig einfacher, denn fallen insgesamt nur mehr drei Systeme in diesen speziellen Klassifikationsbereich [Baumgartner 2005]: • Weblog-Systeme • Community-Content-Collaboration-Management-Systeme (C3MS) • Wiki-Systeme Doch welches der drei Systeme eignet sich am Besten für die Umsetzung des neuen Systems? Um die Antwort vorweg zu nehmen, Weblog-Systeme und CommunityContent-Collaboration-Management-Systeme eignen sich nicht dafür und zwar aus folgenden Gründen: Anders als beim Austria-Forum, wo die Content-Erstellung auf einer gemeinschaftlichen Ebene stattfindet (kollaborativ), fördern Weblogs die individuelle ContentErstellung. Weblogs arbeiten also nach dem Kommunikationsschema „One-to-Many“ wohingegen das Austria-Forum vorsieht, das Konzept „Many-to-Many“ zu unterstützen. Genau aus diesem Grund muss aber gesagt werden, dass der Weblog leider als geeignetes Konzept für die technische Realisierung des neuen Austria-Forums auszuschließen ist. [vgl. Aigner et al. 2007] Bei den Community-Content-Collaboration-Management-Systemen würde man annehmen, dass die Entscheidungsfindung abgeschlossen sein müsste, denn erfüllen diese Systeme im Grunde alle gewünschten Anforderungen [vgl. Baumgartner 2005]. Doch musste festgestellt werden, dass es entweder nur teure, nicht frei verfügbare Lösungen in diesem Bereich gibt (siehe beispielsweise reddiXL22) oder unausgereifte Portalsoftwarelösungen (siehe beispielsweise PHP-Nuke23 oder PostNuke24) welche in technischer und sicherheitsrelevanter Hinsicht den Anforderungen nicht gerecht werden können [vgl. Valeur et al. 2005; Ferner 2004]. 21 http://www.dmoz.org http://reddi.digi-info.de/reddiXL/downloads_reddi/reddi_kurz.pdf 23 http://phpnuke.org 24 http://support.pn-cms.de 22 5 Auf der Suche nach einer geeigneten System-Basis 40 Somit bleibt also die Frage offen, inwieweit Wiki-Systeme den Anforderungen gerecht werden können. Abbildung 8: Links das Kommunikationsschema „One-to-May“ wie es das Weblogkonzept vorsieht, rechts das Konzept „Many-to-May“, entnommen aus [Pfister 2006] 5.4 Wikis Wie sich in Kapitel 5.3 herausgestellt hat, eignen sich Weblog-Systeme und Community-Content-Collaboration-Management-Systeme nicht für die technische Umsetzung des Konzeptes Austria-Forum, weshalb zu untersuchen ist, inwieweit sich das WikiKonzept als Basis für die technische Realisierung des Systems eignet. 5.4.1 Was ist ein Wiki? wi·ki / wikē/ • n. a Web site that allows collaborative editing of its content and structure by its users. [OPDCE 2008] „A wiki is a freely extandable collection of interlinked Web pages, a hypertext system for storing and modifying information - a database, where each page is easily editable by any user with a forms-capable Web browser client.“ [Leuf und Cunningham 2001] „A wiki is a collaborative Webspace where anyone can add content and anyone can edit content that has already been published.” [Richardson 2008] 5.4.2 Entstehung und geschichtlicher Hintergrund Streng geschichtlich betrachtet könnte man sagen, dass die ersten Ideen zum heutigen Wiki-Konzept, schon lange vor dem eigentlichen Aufkommen des Wiki-Phänomens im Jahr 1985 entstanden sind. So wurde in den Jahren 1972-1985 an der Carnergie Mellon Universität ein Konzept entwickelt, welches in gewisser Weise einem Wiki sehr ähnlich war. Das Konzept, bekannt unter den Namen ZOG, war die erste Datenbank die für mehrere Benutzer ausgelegt war und die Möglichkeit bot, über ein Interface bestehend aus einem Text-Frame (Wiki-Pages) (in dem Titel, Beschreibung und eine 5 Auf der Suche nach einer geeigneten System-Basis 41 Kommandozeile angezeigt wurde) andere Text Frames miteinander zu verlinken. [C2 2008a] In den Jahren darauf wurde das ZOG Datenbanksystem von den beiden Programmierern Robert Akscyn und Donald McCracker erweitert. Das System - bekannt unter den Namen Knowledge Management System (KMS) - war das erste kollaborative System, welches auf direkte Änderungen der Benutzer reagierte, zusätzlich noch Grafiken und Bilder in einem Frame anzeigte und für das Verfolgen von Links einen Browser implementierte. [Akscyn et al. 1987] Im Jahr 1985 entwickelte Janet H. Walker, basierend auf den vorangegangenen Arbeiten am ZOG Projekt, den so genannten „Document Examiner“, welcher dazu verwendet wurde um Computeranleitungen darzustellen [Walker 1987]. Im Jahr 1987 übernahm die Firma Xerox diese Idee und entwickelte daraus das so genannte Note Cards System, um Informationen kombiniert mit einem eigenen Browser und einem Navigationsfenster in scrollbaren Bildschirmfenstern darzustellen. Inspiriert von Xerox’ Idee übernahm dann kurz darauf auch die Firma Apple dieses Konzept und entwickelte ihrerseits wiederum daraus das so genannte HyperCard System, welches laut Cunningham ihm als Grundlage für die Entwicklung des ersten Wiki-Systems diente. [Leuf und Cunningham 2001; C2 2008a] 5.4.3 WikiWikiWeb - Das erste Wiki und die Popalisierung Das erste Wiki-System wurde im Jahr 1994 von Ward Cunningham entwickelt und diente in seinen Anfängen als Plattform zum schnellen Austausch von Informationen im Bereich des Softwaredesigns. Genannt wurde das System WikiWikiWeb, was sich aus dem Hawaianischen ableiten lässt und so viel heißt wie „Sehr schnelles Web“, in Anlehnung daran, dass Cunningham ein „schnelles“ System zum gegenseitigen Austausch von Informationen haben wollte. Der Einfachheit halber nannte Cunningham sein System dann schlichtweg „Wiki“, da ihm WikiWikiWeb zu umständlich erschien [Ebersbach et al. 2007]. Da sich um die Begriffsbildung beziehungsweise dessen Herkunft ein regelrechter Kult entwickelt hat und es noch immer viele Fehlinterpretationen zu geben scheint, sei an dieser Stelle ein Ausschnitt aus einem Briefverkehr zwischen Cunningham und Patrick Taylor, Mitarbeiter der Firma Dictionary Department Trade & Reference Division, dargeboten, wo erklärt wird, wie es zur Namensgebung gekommen war. „[...] Wiki wiki is the first Hawai’ian term I learned on my first visit to the islands. The airport counter agent directed me to take the wiki wiki bus between terminals. I said what? He explained that wiki wiki meant quick. I was to find the quick bus. I did pick up a book about the language before my return home. I learned many things from this but wiki wiki is the word that sticks the most. [...] I thought „wiki wiki web“ was more fun to say than „quick web“, no mater what pronunciation is used. The name „quick web“ 5 Auf der Suche nach einer geeigneten System-Basis 42 would have been appropriate for a system that makes web pages quickly. Microsoft’s „quick basic“ was a precedent for such a name. I chose to call the technology WikiWikiWeb. I used exactly this spacing and capitalization because the technology would then recognize the term as a hyperlink. I consider WikiWikiWeb to be the proper name of the concept, of which Wiki or wiki is an abbreviation.” [Cunningham 2003] Am 16. März 1995 war es dann fast so weit. Cunningham sandte eine Email an einen Freund mit Namen Steve mit folgendem Inhalt: „Steve - ich habe eine neue Datenbank auf meinem Web-Server installiert und bitte Dich, mal einen Blick darauf zu werfen. Es ist ein Web von Menschen, Projekten und Mustern, auf das man über ein cgi-bin-Skript zugreifen kann. Es bietet die Möglichkeit, ohne HTML-Kenntnisse mit Formularen Text zu editieren. Es wäre schön, wenn Du mitmachen oder wenigstens Deinen Namen in der Liste der RecentVisitors eintragen könntest. Die URL ist http://c2.com/cgi-bin/wiki - danke schön und beste Grüße.“ [Moeller 2003a] Am 1. Mai 1995 sandte Cunningham eine Reihe von weiteren Emails an Freunde und Bekannte aus der ihm so geliebten Programm Pattern Szene um diese von seinem Projekt zu begeistern [Moeller 2003a]. Und in der Tat, das Projekt war erfolgreich und zwar so erfolgreich, dass das WikiWikiWeb zur begehrtesten Adresse im Internet wurde, wenn es um das Thema Programm Patterns ging (siehe Tabelle 5 und Abbildung 9). Tabelle 5: Seitenanzahlen des WikiWikiWeb in den Jahren 1994 bis 2000, entnommen aus [C2 2008b] Datum Seitenanzahl Web Nov 29 1994 - Dec 15 1995 2426 Dec 1 1996 5134 Dec 31 1997 10600 Mar 25 1998 14554 Dec 2 2000 62919 WikiWiki- So richtig populär wurde das Konzept WikiWikiWeb aber erst einige Jahre danach durch einen glücklichen Zufall. Das Unternehmen US-amerikanische Unternehmen Bomis hatte in den Jahren 1999 und 2000 die Idee, eine Enzyklopädie auf der Basis des World Wide Web zu entwickelt. Das Projekt, welches unter den Namen Nupidia bekannt wurde, war in seinen Anfängen aber nur mäßig erfolgreich, denn es wurde ein umständliches Experten Review System eingesetzt, was zur Folge hatte, dass trotz 5 Auf der Suche nach einer geeigneten System-Basis 43 begeisterten Lektorengemeinschaft in den drei Jahren seiner Existenz gerade einmal 30 Artikel produziert wurden. [Moeller 2003a] Abbildung 9: WikiWikiWeb Zugriffsstatistik, entnommen aus [C2 2008b] Erst als das System von Jimmy Wales und Larry Sanger Ende des Jahres 2000 auf der Basis eines Wikis umgestellt wurde, war dem Erfolg des Systems kein Einhalt mehr geboten. Am 15. Jänner 2001 ging dieses schließlich unter dem Namen wikipedia.com online. Eigentlich als Experiment gedacht um sich der umständlichen Art und Weise des Reviews zu entledigen, war das Konzept ein voller Erfolg. [Moeller 2003a] Im Jahr 2005 überschritt Wikipedia dann erstmalig die Grenze von einer Million Seiten und wurde zu einer der meist Besuchtesten Websites überhaupt im Internet. Laut Jimmy Wales, war Wikipedia zum damaligen Zeitpunkt mit insgesamt 400 Millionen Aufrufen pro Monat beliebter als bekannte Seiten wie IBM, Paypal, Excite oder Geocities (siehe Abbildung 10) [Wales 2005]. Heutzutage gilt Wikipedia als größte Enzyklopädie und als das Vorzeigeobjekt, wenn es darum geht das Konzept Wiki zu unterstreichen. 5 Auf der Suche nach einer geeigneten System-Basis 44 Abbildung 10: Aktuelle Besucherstatistiken von wikipedia.org, entnommen aus [Wikimedia 2008] 5.4.4 Wiki-Systeme Wie schon zuvor erwähnt, fand das von Cunningahm entwickelte System regen Anklang bei der Community, weshalb auch bald darauf die ersten Wiki Klone entstanden. So kam es dazu, dass Peter Merel den ersten bedeutsamen Wiki Clone im Jahr 1987 entwickelte, welcher unter dem Namen CvWiki bekannt wurde. Im Jahr 1998 wurde das heute noch beliebte TWiki von Peter Tony entworfen. Im Unterschied zum von Peter Merel entwickelten CvWiki, welches zum Ablegen von Dokumenten ein CVS System implementierte, war das Twiki das erste Wiki-System, welches Texte über das herkömmliche Filesystem sicherte und versionisierte. Im Jahr darauf entstanden das UseModWiki und das erste, nicht in der Programmiersprache PERL kodierte Wiki, das so genannte PHPWiki. [C2 2008] Heutzutage existieren mehr als 300 Wiki Klone [C2 2008e; Wikimatrix 2008]. Sie unterscheiden sich auf technischer Ebene zumeist in der zu Grunde liegenden Programmiersprache und dem verwendeten Backend für das Ablegen von Daten. Aber auch auf Anwenderebene sind nicht alle Wikis gleich, denn werden zumeist die unterschiedlichsten Zusatzfeatures mit implementiert (oder auch nicht). 5 Auf der Suche nach einer geeigneten System-Basis 45 Um einen guten Vergleich zwischen den einzelnen Wikis anstellen zu können, empfiehlt es sich, einschlägige Websites wie beispielsweise die bekannte Adresse wikimatrix.org25 aufzusuchen. 5.4.5 Typische Wiki-Merkmale Als „typische“ Wiki-Merkmale bezeichnet man den kleinsten gemeinsamen Nenner aller Eigenschaften, Funktionen und Besonderheiten unterschiedlicher Wiki-Systeme. Laut [Leuf und Cunningham 2001] können die „typischen“ Merkmale eines Wikis - auch gerne als „Essenz eines Wikis“ bezeichnet - in folgenden Punkten zusammen werden: • Wikis laden dazu ein von jedem User benutzt zu werden, sprich jeder hat die Möglichkeit Seiten frei zu erstellen und diese zu bearbeiten. Des Weiteren sollte das Editieren mit einem Standard Webbrowser möglich sein, ohne zusätzliche Software installieren zu müssen. • Wikis fördern eine aussagekräftige thematische Zuordnung zwischen verschiedenen Seiten durch die einfach und intuitive Art und Weise der Verlinkung. • Wikis sind keine sorgfältig zusammen gestellten Websites. Stattdessen zielen Wikis darauf ab, den Benutzer in einen stetigen Prozess der Seitenerstellung und Kollaboration zu involvieren, um das Aussehen und dessen Inhalte ständig zu verändern. Eine etwas andere, aber ähnliche Zusammenfassung dessen, was die „typischen“ Merkmale eines Wikis seien, wird im Buch „Wiki - Kooperation im Web“ von Anja Ebersbach, Markus Glaser, Richard Heigl und Alexander Warta, näher erläutert. Die Autoren beschreiben die Essenz eines Wikis hierbei zusammengefasst wie folgt [Ebersbach et al. 2007]: • Nichtlineare Hypertextstruktur: Wikis ermöglichen die Entstehung assoziativer Hypertexte mit nicht-linearen Navigationsstrukturen. • Einfacher und weitgehender Zugriff: Wiki-Systeme reduzieren das technische Vorwissen im Bezug auf deren Benutzung auf ein Minimum. • Keine Client-Software: Wiki-Systeme erlauben das Lesen, Schreiben, Navigieren und das Editieren einer Seite ohne Installation zusätzlicher Client-Software. • Soziale Prozesse im Vordergrund: In Wiki-Systemen steht das Diskutieren und Philosophieren über Beiträge mehr im Vordergrund als die Erstellung derer. 25 http://www.wikimatrix.org 5 Auf der Suche nach einer geeigneten System-Basis 46 5.4.6 Wiki-Technik Auch wenn sich die einzelnen Wiki-Klone funktional teilweise beträchtlich voneinander unterscheiden, so unterliegen diese vom technischen Standpunkt aus betrachtet immer demselben Prinzip. Wikis sind im Grunde nichts anderes als herkömmliche Client-Server Anwendungen, welche auf der Basis des World Wide Web agieren [Leuf und Cunningham 2001]. So beruht jegliche Kommunikation zwischen Benutzer und System auf dem HTTPProtokoll mit den dazugehörigen Request Methoden GET und POST, wobei die Methode GET dafür verwendet wird, um Daten vom Server zu laden und die Methode POST, um Daten zum Server zu schicken. Möchte man nun als herkömmlicher Benutzer einen Eintrag auf einem Wiki-System lesen, werden im Hintergrund folgende Operationen durchgeführt: • Im ersten Schritt wird über die Methode GET ein Request an den Server abgesetzt, welcher über die URL erkennt, um welche Seite der Benutzer gebeten hat. • Im zweiten Schritt auch Verarbeitungsschritt genannt, generiert das Wiki-System (jetzt serverseitig) aus dem so genannten Wiki-Text HTML Code. • Im dritten Schritt, wird der zuvor erzeugte HTML Code in eine vom Wiki-System zur Verfügung gestellten Vorlage, auch Template genannt, eingebettet um schlussendlich die eigentlich Wiki-Seite zu generieren. • Im vierten und letzten Schritt wird der zuvor produzierte Code zurück an den Client gesendet, welcher dort vom Browser interpretiert und schließlich angezeigt wird. 5.4.7 Charakteristische Wiki-Funktionen Wie die typischen Wiki-Merkmale unabhängig von der Implementierung sind, so verhält sich dies auch mit den so genannten charakteristischen Wiki-Funktionen. Beispiele hierfür der so genannte Wiki-Text, eine einfache Textaufzeichnungssprache um WikiBeiträge zu erstellen, die enthaltene „Edit“ Funktion, mit der Beiträge erstellt und bearbeitet werden können, die Überblicksseiten „History“ und „Recent Changes“ sowie die Suchfunktion oder die so genannte „Sandbox“, um nur einige zu nennen. [Ebersbach et al. 2007] In den hierauf folgenden Kapiteln werden die zuvor kurz dargestellten typischen Vertreter für die wohl rudimentärsten Wiki-Funktionen näher erläutert. 5.4.7.1 Wiki-Syntax „There is no single correct or necessarily even best way to define a markup syntax for text. While Wiki tries to give a small and logically consistent set of markup options, given the nature of the current Web clients, there is no way it can even come close to functioning as a full-featured HTML editing tool. Instead, the intent is to give the user 5 Auf der Suche nach einer geeigneten System-Basis 47 something that is useful, reasonably intuitive (or at least easy to learn), and easy to use.” [Leuf und Cunningham 2001] Wie schon in Kapitel 5.4.5 beschrieben, sollte die Methodik des Beitragerstellens so einfach wie möglich sein. Wiki-Systeme implementieren deshalb häufig eine einfach zu lernende Sprache, gerne auch als „Wiki-Text“ bezeichnet [Krötzsch et al. 2007], welche rudimentäre Elemente moderner Textaufzeichnungssprachen in ihrer einfachsten Form unterstützt. Wiki-Text lehnt sich dabei sehr stark an die Möglichkeiten, die HTML bietet, an. Das hat den einfachen Grund, dass Wiki-Sprach-Elemente, die so genannten Wiki-Tags, vom Wiki-System, vor der Ausgabe auf das Browserfenster in HTML konvertiert werden. Das wiederum bringt natürlich den Vorteil mit sich, dass keine zusätzliche Software installiert werden muss um einen Wiki-Beitrag zu erstellen. Die Gesamtheit aller Wiki-Tags und die für die Verwendung dieser zu Grunde liegenden Regeln wird als Wiki-Syntax bezeichnet [Fiebig 2005], wobei dazu gesagt werden muss, dass sich diese von Wiki-System zu Wiki-System unterscheiden kann [Augar et al. 2004]. Zumeist aber bieten die verschiedenen Wiki-Derivate sehr ähnliche Tags für dasselbe Übersetzungsschema in HTML an, wobei die Sprache als solche sehr einfach zu lernen ist. [Schaffert et al. 2006; Wiebrands 2006] Tabelle 6: HTML vs. Wiki-Syntax der Wiki-Systeme DokuWiki, JSPWiki und MediaWiki HTML DokuWiki JSPWiki MediaWiki <a href=”link”> [[a Link]] [link] [[a link]] <h1>Level1</h1> ====== Level 1 ====== ! Level 1 ==Section== <b>bold</b> **bold** __bold__ ‘‘‘bold’’’ <i><italics/i> //italics// ‘‘italics’’ ‘‘italic’’ <img src=„image.png“> {{image.png}} [image.png] [Image:image.png] 5.4.7.2 Editieren von Beiträgen Die wohl mit Abstand wichtigste Funktion eines Wiki-Systems ist die so genannte Editierfunktion, mit der es möglich ist, Beiträge zu erstellen und zu editieren, zumeist als Tab oder eigener Funktionsknopf im System mit der Aufschrift „Edit“ oder ähnlich ausgewiesen. Die Editierfunktion, auch als „Editpage“ bekannt, beinhaltet eine Reihe von Elementen mit denen es möglich ist eine Seite einfach zu bearbeiten oder zu erstellen. So finden sich auf dieser Seite zumeist ein Eingabefeld und eine Menüleiste mit deren Funktionsknöpfen es möglich ist, Wiki-Code auch ohne syntaktisches Vorwissen zu erzeugen. Aber auch eine „Preview-Funktion“ ist zumeist vorhanden sowie ein „Save“-Button um Beiträge abzuspeichern. 5 Auf der Suche nach einer geeigneten System-Basis Abbildung 11: Darstellung einer, Wiki-Seite auf wikipedia.org Abbildung 12: Editorenansicht der in Abbildung 11 dargestellten Seite 48 5 Auf der Suche nach einer geeigneten System-Basis 49 5.4.7.3 Suchfunktion Ein wichtiges Feature, das in jedem Datenbanksystem zu finden ist, ist die SuchFunktionen. So ist diese wichtige Zugangsmethodik auch integraler Bestandteil eines jeden Wiki-Systems. Die meisten Wiki-Systeme bieten zusätzlich zu herkömmlichen Methodiken, wie Volltext- und Schlüsselwortsuche noch die Möglichkeit an, direkt zu einem Beitrag zu „springen“, ähnlich einem Karteikartensystem. 5.4.7.4 Verlinkung Neben der Möglichkeit Beiträge frei erstellen zu können und diese zu editieren ist wohl die Option Beiträge miteinander zu verlinken, eine der wichtigsten Funktionen, die ein Wiki zu bieten hat. So kann in einem Wiki-System jeder Beitrag auf einen anderen verweisen und eine neue Hyperlinkstruktur bilden. Die Verlinkung eines Artikels erfolgt hierbei zumeist über dessen Namen und verlangt keine Referenzierung über dessen URL. Zudem unterstützen die meisten Wikis das Generieren von so genannten WikiWords, oder auch CamelCases genannt. Hierbei werden Phrasen, welche im eigentlichen Sprachgebrauch auseinander geschrieben werden, zu einem Wort zusammengefasst. Die Phrase „DasIstEinWikiBeitrag“ wäre hierfür ein gutes Beispiel, um zu veranschaulichen was konkret damit gemeint ist. [Ebersbach et al. 2007] Darüber hinaus bieten die meisten Wikis so genannte Übersichtsfelder an, die es ermöglichen festzustellen, welche Links auf eine soeben betrachtete Seite verweisen beziehungsweise davon weg zeigen. Hyperlinks, welche nicht existieren, werden zudem als solche erkennbar gemacht. Zumeist rot unterlegt, offerieren diese dem Benutzer die Möglichkeit, einen Beitrag zu diesem Link/Thema zu erstellen. 5.4.7.5 Recent Changes Eine wichtige und beliebe Anlaufstelle für den Wiki Benutzer ist die Seite „Recent Changes“, auf der, wie der Name schon sagt, der Benutzer eine Liste der letzten Änderungen im Wiki-System vorfindet. Hierbei ist zu beachten, dass diese Liste sich nicht nur Änderungen einer Seite bezieht wie die Funktion „History“, sondern alle in einem Wiki verfügbaren Seiten. Da diese Liste unüberschaubare Ausmaße annehmen würde, wäre sie nicht beschränkt, wird zumeist ein definierter Zeitraum herangezogen, um eine obere Schranke einzuführen und diese übersichtlicher zu gestalten. Neben „normalen“ Wiki-Benutzern, welche diese Überblicksseite zumeist dafür verwenden um über die neuesten Geschehnisse informiert zu werden, ist diese außerdem ein unabdingbares Administratorenwerkzeug, wenn es darum geht Vandalismus entgegen zu wirken (siehe Kapitel 5.4.12). [Osman 2006] 5 Auf der Suche nach einer geeigneten System-Basis 50 5.4.7.6 History und Revision Die wohl mit Abstand wichtigste Wiki-Funktion, wenn es darum geht Änderungen an einer Wiki-Seite zuerkennen, ist die so genannte „History“-Seite. Auf ihr werden, ähnlich der „Recent Changes“-Seite, Änderungen, chronologisch sortiert, dem Benutzer dargeboten. Zudem stehen dem User zwei wichtige Funktionen zur Verfügung: Die Revisions- und die Diff-Funktion (dazu mehr in Kapitel 5.4.7.7). So ist es also dem Benutzer möglich, nicht nur Änderungen festzustellen, sondern diese wenn gewünscht, auch rückgängig zu machen, wobei die Versionisierung der Beiträge zumeist bis zu deren Erstellungsdatum zurückreicht. Eine kleiner Zusatz sei an dieser Stelle noch erlaubt: Das ursprünglich entwickelte Wiki-System Cunninghams das WikiWikiWeb, hatte diese Funktion zwar auch implementiert, doch reichte die Historie einer Seite immer nur auf den letzten Beitrag zurück. Das hatte natürlich zur Folge, dass Wiki-Seiten von Vandalen zur Gänze zerstört werden konnten. Cunningham entdeckte diese Schwachstelle schnell und behob diese in der zuvor beschriebenen Form. 5.4.7.7 Die „Diff“-Funktion Um einen Vergleich zwischen zwei Wiki-Seiten anzustellen, steht dem Benutzer ausgehend von der „History“-Seite, die so genannte „Diff“-Funktion zur Verfügung. Eine sehr praktikable und vor allem übersichtliche Funktion, wenn es darum geht, Unterschiede zwischen zwei Versionen einer Seite zu erkennen. Zumeist wird dem Benutzer eine Ansicht dargeboten, in der Unterschiede zwischen der aktuellen Version und der zur vergleichenden nebeneinander dargestellt und unterschiedliche Text Passagen mittels Syntax-Highlighting erkennbar gemacht werden (siehe Abbildung 13). Abbildung 13: Die „Diff“ Funktion des Wikis wikipedia 5 Auf der Suche nach einer geeigneten System-Basis 51 5.4.7.8 Sandbox Eine wichtige Wiki-Seite, welche man vor dem Erstellen eines Wiki-Beitrages besuchen sollte, ist die so genannte Sandbox. Da die meisten Wiki-Systeme die Philosophie vertreten offen zu sein, jeder User also eine Seite verändern kann, wäre es natürlich fatal ungeschulte „Editierkünste“ auf bereits aufwendig gestaltete Beiträge los zulassen, zumal solch ein „vandaler“ Akt zumeist dazu führt, gebannt zu werden. Es wäre also ratsam sich zuerst in der Sandbox auszutoben, welche speziell dafür gedacht ist um Editierfunktionen auszutesten. 5.4.7.9 Upload Als eine weitere Standardfunktion kann die so genannte „Upload“-Funktion genannt werden, welche es ermöglicht, externe Ressourcen in ein Wiki einzubinden. Typischerweise bieten Wiki-Systeme im Editormodus eine eigenen Schaltfläche an, um diese spezielle Funktion zur Verfügung zu stellen, aber auch eigene Uploadseiten oder Archivseiten, welche konkret für den Upload externer Ressourcen eingerichtet wurden, können diese Funktion implementieren. Dass diese Funktion eher dazu gedacht ist, Beiträge mit zusätzlichen Inhalten wie Bilder, Videos oder Musik zu ergänzen, beschränken die meisten Wiki-Systeme ihre Uploadfunktion auf wenige ausgewählte Formate. 5.4.7.10 Diskussionsforen Da es sich bei der Entstehung eines Wiki-Beitrages um einen kollaborativen Prozess handelt und jeder User die Möglichkeit hat einen Beitrag zu überarbeiten, entstehen natürlich auch im Idealfall Diskussionen darüber. Um die Inhalte einer Seite nicht mit Diskussionen darüber voll zu pflastern wieso, etwas verändert wurde, wieso Inhalte falsch dargestellt wurden oder unzulänglich recherchiert wurden, etc. bieten die meisten Wiki-Systeme die Funktion eines Diskussionsforums an. In diesem, von der eigentlichen Wiki-Seite abgeschnittenen Bereich, werden zumeist rege Unterhaltungen darüber geführt, welche das Ziel haben, einen gemeinsamen Konsens zu bilden um den zu Grunde liegenden Artikel zu verbessern. [Osman 2006] 5.4.8 Wieso das Wiki-Konzept überhaupt funktioniert „Das also ist das WikiWeb: ein schlecht abgesichertes System, Benutzer-feindlich, voll von schwierigen Personen.“ [Wikiservice 2008] Es ist natürlich immer wieder erstaunlich, wieso das Wiki-Konzept überhaupt funktionieren kann. Trotz der Möglichkeit Beiträge anderer zu editieren, zu löschen, zu kommentieren, zu verlinken, also quasi das Schlimmste was einem als Webseitenbetreiber passieren kann, die Kontrolle über den Inhalt und dessen Struktur nicht selbst im Griff zu haben, funktioniert das Konzept - siehe Wikipedia - als wohl bekanntestes Beispiel hierfür. 5 Auf der Suche nach einer geeigneten System-Basis 52 Auf „Gründer Wiki“ einem populären deutschsprachigen Wiki, wenn es darum geht Antworten rund um das Thema „Wiki“ zu finden, werden beispielsweise drei wesentliche Punkte genannt, wieso das Wiki-Konzept funktioniert [Gründerwiki 2008]: Wiki funktioniert, • weil einfach mehrere Menschen gemeinsam ein Thema bearbeiten, diskutieren, sich gegenseitig kritisieren, sich gegenseitig neue Wege zeigen um zu einem Konsens zu kommen. • weil jeder Benutzer Informationen ändern, kommentieren und löschen kann. Überflüsse Kommentare, Flames oder Spams werden einfach gelöscht. Übrig bleiben richtige Inhalte, welche aus einem kreativen Prozess heraus entstanden sind. • weil jeder experimentieren darf. Auch wenn Inhalte zerstört werden, gibt es immer noch die „history“ Funktion, mit der es möglich ist, Beiträge wieder herzustellen. Die Community leitete diesen Beitrag im Übrigen ursprünglich von Cunningham’s WikiSystem WikiWikiWeb ab. Interessanterweise entwickelte sich der Beitrag dort etwas anders weiter. So wurden aus den ehemals drei Punkten, neun wesentliche Antworten darauf, wieso das Wiki-Konzept funktioniert, wobei an dieser Stelle die zusätzlichen sechs genannt werden [C2 2008c]: Wiki funktioniert, • weil die Community sich verpflichtet fühlt ein Wiki sauber zu halten. • weil es kein real-time System ist. Das heißt, Wiki Autoren haben die Möglichkeit sich über einen Artikel, Gedanken zu machen, bevor dieser nieder geschrieben wird. • weil es kein WYSIWYG ist. Das Editieren einer Seite wirkt wie ein kleiner Intelligenztest. Menschen, welche sich von dem nicht angezogen fühlen, nehmen auch nicht am Wiki-Konzept teil. Was bleibt sind die Freuden rationaler Diskurse und reger Diskussionen mit den Beteiligten. • weil dessen User oft von pedantischer, störrischer und unvernünftiger Natur sind, woraus sich ein gewisses gemeinschaftliches Gefühl entwickelt. • weil es von Natur aus unstrukturiert ist. Die Möglichkeit, Seiten selbst zu erstellen und zu verlinken fasziniert einfach. Es gibt keine Diktatur, stattdessen formt sich die Gemeinschaft selbst etwas. • weil man sich sicher sein kann auf spielerisch denkende User zu treffen. Das erstellen einer Wiki-Seite ist wie fast so spannend wie die Beobachtung dessen, was passiert wenn man ein Garnknäuel einer Meute Katzen zum Spielen gibt. Zum Abschluss noch ein Zitat von Ward Cunningham, weshalb dieser daran glaubt, warum das Wiki-Konzept so erfolgreich wurde: 5 Auf der Suche nach einer geeigneten System-Basis 53 „A wiki is a body of writing that a community is willing to know and maintain. That community has every right to be cautiously selective in what it will groom. This particular wiki has been blessed with thoughtful, diligent, diverse and open-minded volunteers, who have invested years learning what works here and what doesn’t. When volunteers tire and depart, others take their place. I remain amazed that this works without mechanically enforced authority. Possibly it works because there is no mechanically enforced authority. In any event, I remain grateful to all volunteers, past, present and future.” [Cunningham 2008] 5.4.9 Wieso Wikis kein HTML verstehen sollten Wie schon in Kapitel 5.4.7.1 beschrieben, implementieren Wiki-Systeme eine eigene Markupsprache, um es dem User zu ermöglichen auf simpelste Art und Weise Textinhalte zu erstellen. Doch vor allem technisch versierte Benutzer kritisieren gerne diese Methodik, denn zumeist fehlen wichtige Elemente (Tags) um eine Seite bis in das kleinste Detail zu designen. So wird öfters gefordert, doch HTML als Markupsprache als zusätzliche Option zur Verfügung zu stellen. Doch es gibt auch einige Gründe, weshalb diese Möglichkeit in den meisten WikiSystemen unterbunden wird [vgl. C2 2008d]: • Wikis legen mehr Wert auf den Inhalt einer Seite als auf deren Präsentation. Vergleicht man das Erstellen von Wiki-Seiten mit dem Erstellen einer Seite mittels HTML, so fällt einem beim näheren Betrachten von aufwendig gestalteten HTML Seiten auf, dass kaum eine Trennung von Inhalt und Code durchgeführt wird. In Wiki-Systemen hingegen legen die Menschen mehr Wert auf den Ausdruck ihrer Ideen als das Verschönern ihrer Inhalte. • Die Wiki Textformatierungsregeln wurden dahingehend geschaffen, das einfachste Mögliche zu implementieren, was funktionieren könnte. • Das Schreiben eines Textes in HTML führt oft dazu, dass der Gedankenfluss unterbrochen wird, speziell dann, wenn schwierige Textformatierungen mittels Tabellen oder Ähnlichem durchgeführt werden. • Teil der Wiki Natur ist es, dass Inhalte trotz der Verwendung von Code-Fragmenten lesbar bleiben sollen. Das oft dargestellte Problem von HTML in diesem Zusammenhang ist jenes, dass der Codeanteil den wirklichen inhaltlichen Anteil überwiegt und deshalb nur schwer bis teilweise gar nicht lesbar ist. • Das Zulassen von HTML innerhalb von Wiki-Seiten hat auch oft zur Folge, dass durch die Fülle an Designmöglichkeiten ein buntes Durcheinander von Seiten entsteht, also keine einheitliche Struktur und Formatierung (als Ganzes betrachtet) gewährleistet werden kann. 5 Auf der Suche nach einer geeigneten System-Basis • 54 Die Möglichkeit, HTML in Wiki-Seiten einzubinden, bringt auch ein gewisses Sicherheitsrisiko mit sich. So sind zum Beispiel ausgeklügelte JavaScripts, welche in HTML Code integriert werden können, in der Lage, Passwörter von Benutzern auszulesen. Darüber hinaus, kann durch das nicht sachgemäße Einhalten der HTML Syntax eine Seite bis zur Unkenntlichkeit entstellt werden. Zwei weitere wichtige Punkte welche an dieser Stelle noch hinzugefügt werden sollten, sind einerseits der Aspekt der Portierbarkeit und andererseits der Aspekt, dass nicht jeder Mensch HTML kennt und den Umgang damit beherrscht. • So ist es beispielsweise in HTML möglich einen Code zu erzeugen, der ein und dasselbe Ergebnis am Browser liefert (siehe Listing 1). Vor allem hinsichtlich der Portierfähigkeit sind in HTML abgelegte Textinhalte problematisch. Denn woher sollte eine Exportroutine wissen, ob nicht vielleicht ein anderer Benutzer dieses Systems die Syntax <p style=“font-size:19px”><b> dazu verwendet hat, wichtige Textpassagen hervorzuheben, wohingegen Überschriften in dessen Texten in der Form <font size=“+2”> ausgewiesen wurden. • Ein weiterer wichtiger Punkt wie schon zuvor angedeutet, der gerne unterschätzt wird, ist die Tatsache, dass nicht jeder Internet User HTML kennt und kann. Wäre es also in einem System zulässig, beispielsweise Dokumente gleichzeitig in HTML oder Wiki-Syntax zu erstellen, um auch versierten Internet Benutzern die Möglichkeit zu geben, über das normale Maß hinaus Seiten zu gestalten, so wäre dies für eine Vielzahl an Benutzern, welche nicht mit HTML vertraut sind, eine herbe Einschränkung. Es steht zwar außer Frage, dass Wiki-Syntax teilweise zu wenig Möglichkeiten bietet, um Beiträge bis in das kleinste Detail zu gestalten, doch muss gesagt werden, dass die zuvor gemachten Aussagen als gute Gründe herangezogen werden können, um HTML als Markupsprache in Wiki-Systemen zu unterbinden. Listing 1: Beispielhafter HTML Code für das Erstellen eine und der Selben Überschrift mit verschiedenen Tag Variationen <h3>Das ist eine Überschrift</h3> <p style=“font-size:19px”><b>Das ist eine Überschrift</b></p> <div style=“font-size:19px;font-weight: bold”>Das ist eine Überschrift</div> 5.4.10 Typen von Wiki-Systemen und Anwendungsgebiete War Cunningham’s Wiki-System WikiWikiWeb darauf ausgelegt, Design Patterns im Bereich der Softwareentwicklung zu entwerfen beziehungsweise darüber zu diskutieren, so gibt es heute eine Vielzahl an Anwendungsbereichen, in denen das Wiki- 5 Auf der Suche nach einer geeigneten System-Basis 55 Konzept zum Tragen kommt. Prinzipiell existieren heutzutage zwei wesentliche Typen von Wiki-Systemen: • offene Wiki-Systeme • geschlossene Wiki-Systeme In offenen Systemen können prinzipiell „alle“ Benutzer, egal ob registriert oder nicht, Beiträge erstellen, editieren oder löschen. In geschlossenen Wikis muss sich der User mit dem System identifizieren, um Beiträge zu editieren, zu erstellen oder zu löschen, wobei zumeist dezidierte Zugriffsrechte auf Rollen- oder Benutzerebene existieren. In weiterer Folge nun einige Beispiele für den Einsatz von Wiki-Systemen: • Wikis als Kommunikationshilfe Wikis erfreuen sich zunehmender Beliebtheit als Zusatztool in geschlossenen Projekten. Hierbei werden Wikis oft dazu eingesetzt, um zu den bekannten Werkzeugen, wie Mailinglisten und Groupeware Lösungen, als ergänzendes Kommunikationstool zu dienen [Cyganiak 2002]. Des Weiteren kommen Wiki-Systeme immer öfter an Schulen im Bereich des E-Learing zum Tragen. Große Firmen wie SAP, Motorola oder British Telecommunications benutzen Wikis als dezentrales Intranet, um die Kommunikation zwischen den Mitarbeitern zu erhöhen [Ebersbach et al. 2007]. • Wikis als Organisationshilfe Neben der Steigerung von Kommunikationsprozessen werden Wiki-Systeme auch häufig dazu verwendet, um Organisationsprozesse zu optimieren. So verwendet beispielsweise das Austria Social Forum oder der Chaos Computer Club Wikis als Organisationshilfe in ihren Unternehmen [Ebersbach et al. 2007], aber auch Firmen wie Amazon, BBC, IBM etc. setzen Wiki-Systeme erfolgreich ein [Tscholotfeldt 2008]. • Wikis als E-Learning Tool Immer mehr Schulen und Universitäten installieren Wiki-Systeme als kollaborative Wissensplattforum. Beispiele hierfür wären der Fachschaftsrat Informations- und Medientechnik (IMT) and der Technischen Universität (TU) Cottbus26 oder die Chinese Students and Scholar Association an der Florida State University27. • Wikis als PIM oder Desktop-Wiki Wikis werden des Weiteren auch immer öfter dafür verwendet um als Personal Information Manager (PIM) zu dienen. Der Vorteil dabei ist das strukturierte Ablegen von Daten. Beispiele hierfür wären das so genannte AcroWiki für Palm OS, Wikipad für Windows oder Zim Wiki für Linux, um nur einige zu nennen. [Wikipedia 2008] 26 27 http://www.tu-cottbus.de/imt http://www.fsucssa.com/wiki/doku.php 5 Auf der Suche nach einer geeigneten System-Basis • 56 Wikis als Online-Enzyklopädien Vor allem als Basis für Enzyklopädiesysteme werden Wikis gerne eingesetzt. Gründe hierfür sind zumeist die einfache Art und Weise der Contenterstellung und die des kollaborativen Arbeitens sowie die Möglichkeit, Beiträge auf simplem Wege miteinander verknüpfen zu können. Bekanntestes Beispiel hierfür ist die OnlineEnzyklopädie Wikipedia. • Wikis als Diskussionsplattformen Viele Wiki-Systeme werden auch oft dahingehend eingerichtet und angepasst, um als einfache Diskussionsplattform zu dienen. Der Vorteil dabei ist, Beiträge bleiben auch nach einigen Monaten oder Jahren erhalten, wohingegen bei herkömmlichen Forumslösungen Beiträge nach einiger Zeit gelöscht werden oder unauffindbar im Forumsdschungel verschwinden. [Cyganiak 2002]. • Wikis als WCMS Solche Systeme stellen einen typischen Vertreter eines geschlossenen Systems dar, denn werden einige Einschränkungen getroffen. So gestatten es solche WikiSysteme beispielsweise nicht, jedes Dokument zu bearbeiten, zu erstellen oder zu löschen. Des Weiteren sind Inhalte zumeist vor strukturiert und obliegen redaktioneller Aufsicht. Nach außen hin sind WCMS-Wikis aber nicht von „normalen“ WikiSystemen zu unterscheiden, was auch Sinn und Zweck der Sache ist, denn so machen sich solche Systeme vor allem die Benutzerfreundlichkeit herkömmlicher Systems zum Nutzen [Cyganiak 2002]. Immer mehr Wikis bieten WCMSFunktionalitäten an, weshalb Unterscheidungen zwischen klassischen WCMSSystemen und Wikis immer schwieriger zu treffen sind. Natürlich gibt es noch eine Vielzahl von weiteren Anwendungsgebieten in denen heute Wiki-Systeme zum Einsatz gebracht werden. Die oben dargestellte Liste sollte nur einen groben Überblick darüber geben, was möglich ist und vielleicht in Zukunft noch kommen wird. 5.4.11 Vorteile Wie schon zuvor erwähnt, bieten Wiki-Systeme eine Reihe von Vorteilen. In weiterer Folge sollen diese zusammengefasst werden: • Wikis sind benutzerfreundlich Wie schon zuvor beschrieben, reduzieren Wiki-Systeme das technische Vorwissen im Bezug auf deren Benutzung auf ein Minimum [Ebersbach et al. 2007]. So muss weder zusätzliche Software installiert werden, um ein Wiki-System zu benutzen, noch muss für die Erstellung von Texten eine komplizierte Markup-Sprache gelernt werden. Auch die breiten Einsatzgebiete, vor allem im Bereich des E-Learnings zeigen, dass es sich um ein benutzerfreundliches System handelt muss, wie auch 5 Auf der Suche nach einer geeigneten System-Basis 57 eine Studie des National Research Council Canada aus dem Jahr 2005 beweist. Trotz einiger Mängel kann als Konklusion Folgendes festgehalten werden: „Overall our study indicates that wiki (or at least our Lizzy implementation) is indeed usable by non-technical users. The fact that a class of 15 Grade 4 children can use it to collaboratively create complex web-based stories with only two 15 minute training sessions attests to that. Though the instructor was present to answer the children’s, Désilets has administered wiki sites for which there was no live help present but were nonetheless used successfully by non-technical adult users. This is consistent with the success and size of the WikiPedia on-line encyclopoedia.” [Désiltes et al. 2005] • Wikis sind billig Wiki-Systeme unterliegen in der Regel Lizenzen wie der GNU General Public Lizenz (GPL), Common Public Lizenz oder der General Lesser Public Lizenz (GLPL), das heißt sie sind im allgemeinen frei verfügbar, zum größten Teil gratis oder ziemlich billig und der Code kann zumeist ohne Einschränkungen erweitert/modifiziert und weitergegeben werden. [vgl. GNU 2008] • Wikis sind populär Egal ob in Schulen als E-Learning Tool genutzt, in Firmen als Organisationshilfe oder Diskussionsplattform, auf Universitäten als Knowledgebase, Wikis sind ein populäres Konzept, wenn es darum geht Content zu erstellen und diesen zu verwalten. • Wikis sind flexibel Vor allem die Möglichkeit, Quelltext an eigene Bedürfnisse anzupassen und die hohe Vielfalt an Anwendungsgebieten beweisen, dass Wikis flexible Softwarelösungen sind. • Wikis sind ortunabhängig Ob im Internetcafe, zu Hause vor dem Rechner oder via Handy, Wiki-Systeme sind überall dort einsetzbar wo das Medium World Wide Web zur Verfügung steht. Das heißt sie sind nicht an einen fixen Ort gebunden. • Wikis ranken gut Vor allem durch die einfache Möglichkeit Seiten zu erstellen, steigt der Content in einem Wiki-System zumeist schnell. Zudem sind Wiki-Seiten oft stark verlinkt, bieten hohen textuellen Informationsgehalt an und verzichten auf Scriptsprachen. All das sind Gründe dafür, warum Wikis gerne von Suchmaschinen indiziert werden (siehe beispielsweise Abbildung 14). 5 Auf der Suche nach einer geeigneten System-Basis • 58 Wikis sind interaktiv Wikis bieten die Möglichkeit, über Funktionen wie Foren oder Kommentarfunktion mit der Community in Kontakt zu treten. Auch wenn das Konzept nicht sonderlich neu ist, gibt es doch einen wesentlichen Unterschied. Ist für das Kommentieren oder das Diskutieren normalerweise eine Anmeldung notwendig, so verzichten die meisten Wiki-Systeme darauf. Die Hemmschwelle ist also relativ gering wodurch eine Konsensbildung meist schneller stattfindet als in herkömmlichen kollaborativen Umgebungen. • Wikis sind schnell Vor allem durch die Möglichkeit selbst Beiträge zu verfassen können Informationen schneller verbreitet werden. Ein Umweg über den Webseitenbetreiber entfällt also. Abbildung 14: Wikipedia Global Traffic Ranking, entnommen aus [Alexa 2009] 5.4.12 Nachteile Trotz der vielen Vorteile gibt es auch einige Nachteile mit denen sich Wikis konfrontiert sehen. Vor allem in offenen Wiki-Systemen (ohne Zugriffskontrolle) treten folgende Probleme des Öfteren auf: • Wikis fördern den Vandalismus Vandalismus meint weniger die User, welche Inhalte unabsichtlich verfälschen, sondern jene, die Beiträge absichtlich und mutwillig verändern oder gar zerstören. So geschah es beispielsweise im Jahr 2006, dass der Komiker Stephan Colbert vor laufender TV-Kamera den Wikipedia Beitrag zu George Washington mutwillig verfälschte. Des Weiteren rief der Comedy Star dazu auf, über Wikipedia die Information zu verbreiten, dass sich die Elefantenpopulation in Afrika im letzten halben 5 Auf der Suche nach einer geeigneten System-Basis 59 Jahr um das Dreifache gesteigert hätte, worauf Wikipedia 20 Artikel über Elefanten sperren musste. [Goeßmann 2006] Dieser eher belustigende Form des Vandalismus folgt aber auch eine Reihe von nicht so rühmlichen Ausführungen. So geschah es beispielsweise, dass der USPharmakonzern AstraZeneca, einen Mitarbeiter dazu ermutigte den Wikipedia Beitrag zum Medikament Seroquel zu manipulieren. Hieß der originale Eintrag noch, das Medikament habe die Nebenwirkung labile Teenager auf Selbstmordgedanken zu bringen, so wurde dieser wichtige Zusatz schlicht und ergreifend gelöscht. [Frank 2007] Das Medikament rief im Übrigen wirklich schon einige Todesfälle hervor, wie die Packungsbeilage28 des Medikamentes beweist. Natürlich bieten Wikis die Möglichkeit einer Revisionskontrolle an, doch wie Beispiele aus der Vergangenheit zeigen, helfen die besten Autorenwerkzeuge und das Auge der Community nicht immer, um solche Falschdarstellungen sofort zu erkennen. So geschah es beispielsweise im Sommer 2005, dass ein Wikipedia Eintrag über den US-Journalisten John Seigenthaler fälschlicherweise mit der Ermordung J. F. Kennedys in Verbindung gebracht wurde. Es dauerte aber nicht weniger als 132 Tage bis der Fehler erkannt und behoben wurde. Ein beträchtlicher Zeitraum, wenn man daran denkt, dass im Schnitt 400 Millionen User Wikipedia monatlich aufsuchen, um „Wissen“ zu recherchieren. [Bichlmeier 2006] • Wikis fördern die Selbstdarstellung Ein weiteres großes Problem mit dem Wiki-Systeme zu kämpfen haben, sind Beiträge aus der Community, die nicht unter dem Aspekt eines neutralen Standpunktes entstanden sind. Auch wenn beispielsweise Wikipedia den Grundsatz „neutraler Standpunkt“ als eine von vier Grundregeln niedergeschrieben hat, so kommt es immer wieder zu Verfälschungen von Tatsachen. Ein gutes Beispiel hierfür ist der Fall Klaus Kleinfeld, seines Zeichens ehemaliges Vorstandsmitglied der Siemens AG. So geschah es, dass im Frühling 2006 dessen Wikipedia Eintrag von Siemens Mitarbeitern verändert wurde, um diesen in der Öffentlichkeit in ein besseres Licht zu rücken. Ein anderes Beispiel, welches für Furore sorgte, war ein vom US-Amerikanischen Geheimdienst CIA verfasster Kommentar zum Beitrag vom iranischen Präsidenten Mahmoud Ahmadinejad. So wurde der Wortlaut „Wahhhhhh!“ neben dessen Bild hinein editiert. Der Vorfall flog im Übrigen nur deshalb auf, weil Virgil Griffith, ein 24-Jähriger Student vom California Institute of Technology sich die Mühe gemacht hatte sämtliche von Wikipedia gespeicherten anonymen IP Adressen zu verfolgen. [Frank 2007] 28 http://www.pharmazie.com/graphic/A/60/1-23460.pdf 5 Auf der Suche nach einer geeigneten System-Basis • 60 Wikis sind von minderer Qualität Ein weiterer großer Vorwurf, welcher Wiki-Systeme betrifft ist jener, dass deren Beiträge zumeist von minderer Qualität seien. Vor allem durch den zuvor dargestellten Vandalismus und das Einnehmen eines nicht neutralen Standpunktes, haben zum Beispiel Wikipedia Beiträge oft damit zu kämpfen, als tatsächliches „Wissen“ anerkannt zu werden. Ein wichtiger Punkt, der in diesem Zusammenhang noch des Öfteren erwähnt wird, ist jener, dass Wikipedia trotz der Fülle an Benutzern nur einen geringen tatsächlichen Autorenstamm hat, der qualitativ hochwertige Beiträge schreibt. Demzufolge wurde im Jahr 2005 eine interessante Studie von Jakob Voß durchgeführt, um herauszufinden, welche beziehungsweise wie viele User tatsächlich sich an der Erstellen eines Wikipedia Beitrages beteiligen und ob signifikante Unterschiede in qualitativer Hinsicht zu erkennen sind. Voß kam am Ende seiner Studien zu folgenden Ergebnissen: Etwa 50% der Artikel wurden von weniger als fünf angemeldeten Autoren bearbeitet, 25% gar nur von einer einzelnen Person, entsprechend unterschiedlich war die Qualität der einzelnen Artikel. [Bichlmeier 2006] • Wikis verletzten das Copyright Ein weiterer wesentlicher Punkt, mit dem sich Wiki-Systeme des Öfteren konfrontiert sehen, sind die die so genannten Copyrightverletzungen. Wiki-Systeme sind im herkömmlichen Sinn frei verfügbare OpenSource Projekte, welche das Ziel haben offene Inhalte anzubieten. Zumeist werden deshalb Lizenzsysteme verwendet, welche diese Art der Publikation unterstützen. So bietet beispielsweise Wikipedia das so genannte GNU Free Documentation License Model an, unter dem es jeden Autor erlaubt ist, Beiträge zu verfassen. Die Problematik, mit der sich Wikipedia deshalb des Öfteren konfrontiert sieht, sind Beiträge in denen geschützte Inhalte unbedachterweise verwendet werden, denn die GNU FDLM erlaubt nicht nur das Kopieren sondern auch das uneingeschränkte Verbreiten von Beiträgen. [Ebersbach et al. 2007] • Wikis produzieren nicht zitierfähige Beiträge Als Beispiel hierfür sei abermals die Online-Enzyklopädie Wikipedia herangezogen. So kam es im Jahr 2006 dazu, dass Erfinder Jimmy Wales selber davon abriet, Wikipedia als Nachschlagewerk für wissenschaftliche Arbeiten heranzuziehen. Wales erhielt in den Monaten vor dieser Meldung anscheinend circa zehn Emails pro Woche, in denen sich Studenten darüber beschwert hatten, dass ihre Arbeiten nicht von ihren Dozenten anerkannt wurden, weil diese Wikipedia Zitate enthielten. [Lombardi 2006] Die Gründe für dieses Verhalten der Dozenten sind schnell erklärt: Wikipedia ist ein offenes Wiki-System, wodurch es prinzipiell jedem möglich ist, Beiträge zu verändern oder zu verfassen und das sogar anonym, das heißt ein wirkliche namentliche 5 Auf der Suche nach einer geeigneten System-Basis 61 Zuordnung ist nicht möglich. Zudem kommen Wiki Artikel nicht wirklich zur Ruhe, das heißt ein wirkliches Veröffentlichungsdatum kann nicht angegeben werden. Dazu kommen noch Gründe wie Vandalismus und nicht vorhandene redaktionelle Prüfung, weshalb Wikipedia Beiträge teilweise als Quellen zurückgewiesen werden. 5.5 Wikis als Basis für das Austria-Forum einsetzbar? Im Folgenden abschließenden Kapitel soll darüber diskutiert werden, ob beziehungsweise wie weit sich Wikis dazu eignen das Konzept Austria-Forum in technischer Hinsicht zu realisieren. Für dieses Unterfangen ist es zweckdienlich, die gewünschten allgemeinen Systemeigenschaften mit denen der Wikis zu vergleichen und zu diskutieren: • Das System sollte frei verfügbar sein (OpenSource) Wie schon in Kapitel 5.4.11 beschrieben, sind die meisten heutigen Wiki-Systeme frei verfügbar und unterstützen Lizenzmodelle wie GNU General Public Lizenz (GPL), Common Public Lizenz oder General Lesser Public Lizenz (GLPL), weshalb das Kriterium „freie Verfügbarkeit“ als Bedingung erfüllt ist. • Das System sollte benutzerfreundlich sein Wie schon in Kapitel 5.4.11 beschrieben sind Wikis vor allem eines, nämlich „benutzerfreundlich“. Es werden keine zusätzlichen Softwaretools benötigt, um ein Wiki zu benutzen, noch muss der User sich damit herumschlagen, eine komplizierte Markupsprache zu lernen um Inhalte zu gestalten. Auch das breite Anwendungsgebiet vor allem im Bereich des E-Learnings beweist, dass Wikis benutzerfreundliche Systeme sind. Die Bedingung „Das System sollte benutzerfreundlich sein“ ist somit erfüllt. • Das System sollte die Community als integralen Bestandteil ansehen Auch diese Bedingung ist vom Wiki-Konzept erfüllt. Vor allem durch Eigenschaften wie Offenheit, die des kollaborativen Arbeitens oder des Diskutierens und Philosophierens in gesonderten Bereichen sowie die Einfachheit und die Benutzerfreundlichkeit des Konzeptes an sich, machen Wikis zu „den“ Community Systemen schlechthin, wie auch die lange Liste der unterschiedlichsten (Community behafteten) Anwendungsgebiete beweist. • einfache Suchmethoden unterstützen (Volltext, Keyword) Bezüglich dieses Kriteriums muss gesagt werden, dass auch hier alle Bedingungen erfüllt sind. Egal ob Volltext- oder Keywordsuche, beide Methodiken werden von den meisten Wiki-Systemen unterstützt. Zudem gibt es immer mehr Wiki-Systeme auf dem Markt, welche Features wie semantische Annotation und Suche von Bei- 5 Auf der Suche nach einer geeigneten System-Basis 62 trägen (siehe beispielsweise IkeWiki29oder Semantic MediaWiki30) ermöglichen, ein Kritikpunkt der „herkömmlichen“ Wikis des öfteren zuteil wird. • einfache Methodiken zur Content Erstellung anbieten (z.B.: WYSIWYG Editor, simple Syntax, Eingabe-Templates, und so weiter) Wie schon in Kapitel 5.4 beschrieben, bietet das Wiki-Konzept besonders einfache und leicht zu lernende Möglichkeiten an, um Content zu erstellen. So kann jeder Beitrag über die Funktion „Edit“ bearbeitet werden beziehungsweise über einen noch nicht vorhandenen Titel (Link) können Beiträge erzeugt werden. Die für die Erstellung der Beiträge zu Grunde liegende Syntax ist dazu besonders einfach gehalten. Somit kann gesagt werden, dass auch dieser Punkt vom Wiki-Konzept erfüllt ist. • ein User Management und Control Modul anbieten Auch wenn „User Management und Control“ nicht explizit als charakteristische Wiki-Funktionen angeführt wurden, so bieten die meisten Wiki-Systeme dieses Konzept an. Vor allem aus Gründen des Vandalismus, aber auch um Copyrightverletzungen vorzubeugen und die Qualität der Beiträge zu steigern, wird dieser Mechanismus von immer mehr Systemen angeboten (siehe beispielsweise JSPWiki31, TWiki32 oder MediaWiki33). Somit ist auch diese Bedingung mehr oder weniger vollständig erfüllt. • eine flexible Art der Kategorisierung anbieten Auch wenn es mittlerweile vereinzelt Wiki Klone mit nativem Support hinsichtlich der Strukturierung von Beiträgen via Sub-Pages gibt, so muss gesagt werden, dass diese Feature alles andere als typisch ist. Was aber fast von allen Wiki-Systemen zumeist unterstützt wird, sind spezielle Tags mit deren Hilfe es möglich ist, Unterteilungen einfach und flexibel nach der Beitragserstellung durchzuführen. So kann gesagt werden, dass auch diese Bedingung mehr oder weniger erfüllt ist. • Drucken und Speichern von Beiträgen ermöglichen Wie schon in Kapitel 5.4.6 beschrieben, sind Wikis vom technischen Standpunkt aus betrachtet recht einfach gehaltene Client-Server Anwendungen. Aber nicht nur das System an sich ist einfach gehalten, sondern auch das Ausgabeformat. So erzeugen Wikis, wie schon des Öfteren erwähnt, zumeist reinen HTML Code und verzichten auf Technologien wie DHTML oder Ajax. Auch wenn moderne Systeme wie beispielsweise JSPWiki oder TWiki solche Konzepte zum Einsatz bringen, wird 29 http://ikewiki.salzburgresearch.at http://semantic-mediawiki.org/wiki/Semantic_MediaWiki 31 http://www.jspwiki.org 32 http://www.twiki.org 33 http://www.mediawiki.org/wiki/MediaWiki 30 5 Auf der Suche nach einer geeigneten System-Basis 63 trotzdem darauf geachtet, dass Beiträge gedruckt oder abgespeichert werden können, sei es durch einen eigens implementierten Print-View oder mittels StyleSheets. Somit kann festgestellt werden, dass auch diese Bedingung erfüllt ist. 5.6 Fazit Auch wenn in diesem Kapitel keine dezidierte Softwarelösung als Basis für das AustriaForum gefunden wurde (dazu in Kapitel 6 mehr), konnte zumindest festgestellt werden, dass sich Wikis im Grunde dazu eignen würden, das Konzept Austria-Forum in technischer Hinsicht zu realisieren. Vor allem bezüglich der Kriterien Usability, Community, Printability und ContentErstellung ist das Konzept dem Austria-Forum in seiner jetzigen Form überlegen. Wo es aber Einschränkungen zu geben scheint, sind Funktionen wie Zugriffskontrolle und Kategorisierung, denn unterstützen nicht alle Wiki-Systeme diese beiden genannten Features. Zudem wurde noch festgestellt, dass Weblogs auf Grund der eingeschränkten Kommunikationsmöglichkeiten und Community-Content-Collaboration-ManagementSysteme wie beispielsweise PHPNuke und PostNuke auf Grund technischer und sicherheitsrelevanten Probleme keine Alternative für das Austria-Forum darstellen. 6 Wiki-Systeme im Vergleich 6 64 Wiki-Systeme im Vergleich Im folgenden Kapitel werden fünf der wohl derzeit bekanntesten Wiki-Systeme miteinander verglichen. Das Ziel hierbei: Das Ausfindigmachen eines geeigneten Systems mit dem das Konzept Austria-Forum in technischer Hinsicht umgesetzt werden kann. Die Vorauswahl der Systeme erfolgte hierbei bezüglich der Kriterien OpenSource, Popularität [Wikimatrix 2008a; Smith und Sauer 2006], Programmiersprache (wobei PHP, Java, .NET und PERL relevant waren) sowie hinsichtlich der Funktionen Zugriffskontrolle und Kategorisierung, wobei als Vergleichssoftware das auf der Website wikimatrix.org zur Verfügung gestellte Komparationstool zum Einsatz gekommen ist. Die abgewandelten „neuen“ technischen Anforderungen an das System können dabei wie folgt definiert werden, da einige Kriterien wie beispielsweise die Revisionskontrolle oder OpenSource-Projekt wegfallen: • Security: Das System sollte einen Authentifizierungsmechanismus bereitstellen. Zudem sollte es dezidierte Zugriffskontrollmechanismen anbieten. • Userverwaltung: Das System sollte einen Userwaltungsmechanismus bereitstellen. • Strukturierung von Beiträgen: Beiträge sollen vom System in strukturierter Form dem User angeboten werden können. Ein Kategorisierungssystem wäre wünschenswert. • Suche: Das System sollte dem User die Möglichkeit offerieren einfache und komplexe Suchanfragen zu generieren. • Kommentare und Foren: Das System sollte eine Foren- und Kommentarfunktion beinhalten. • XHTML/CSS/PDF Ouput und RSS-Feeds: Das System sollte Standardausgabeformate wie XHTML 1.0/CSS und PDF beherrschen. Des Weiteren sollte es einen RSS-Dienst inkludieren. • Mediensupport: Das System sollte einen ausgeprägten Mediensupport (Video/Audio) anbieten. • Conflict Management: Das System sollte einen gutes Conflict-Managment-System beinhalten. • Herstellersupport: Das System sollte einen guten Herstellersupport anbieten. • Datastorage: Das System sollte ein leicht anzupassendes Datastorage-Modul anbieten. • Erweiterbarkeit: Das System sollte prinzipiell leicht erweiterbar sein. 6 Wiki-Systeme im Vergleich 65 • Print-Friendly: Das System sollte einen nativen Print-Support anbieten. • Code und Programmiersprache: Das System sollte eine gute Codebase anbieten und eine professionelle Programmiersprache zum Einsatz bringen. • Syntax: Das System sollte eine leicht zu lernende Wiki-Syntax anbieten. Auch wenn Wikis prinzipiell sehr benutzerfreundlich sind, so unterscheiden sich diese doch in mancherlei Hinsicht, weshalb auch dieser Punkt als Zusatz anführt werden soll: • Usability: Das System sollte möglichst benutzerfreundlich sein. 6.1.1 MediaWiki Das wohl mit Abstand bekannteste Wiki-System [Smith und Sauer 2006], ist das so genannte MediaWiki. Entwickelt wurde die Software vom deutschen Biologen Magnus Maske für die Online-Enzyklopädie Wikipedia. Ursprünglich bildete dessen Basis das so genannte UseMod Wiki. Es musste aber auf Grund des großen Erfolges von Wikipedia und der damit einhergehenden schlechten Skalierbarkeit ausgetauscht werden. Am 25. Jänner 2002 wurde die erste Version von MediaWiki, damals noch unter dem Namen Phase II bekannt, erstmalig zum Einsatz gebracht. Im Juni desselben Jahres noch wurde das System durch eine komplette Code-Überarbeitung durch Lee Daniel Crocker in seine heutige Form gebracht. [Moeller 2003a] Zurzeit (Stand: 17.12.2008) befindet sich das System in der Version 1.13.0 und hat als Systemvoraussetzungen PHP in der Version 5 sowie MySQL4 oder Postgres 8.0. Die Installation erfolgt wie auch bei den meisten anderen Wiki-Systemen über ein Installationskript. Wurde die Installation erfolgreich durchgeführt, so erzeugt das Wiki eine Datei mit dem Namen LocalSettings.php, welche in das Hauptverzeichnis des Wikis verschoben werden muss. Diese Datei ist wichtig, denn werden mit ihr alle relevanten Konfigurationen wie zu verwendende Sprache, Zugriffsrechte und noch vieles mehr, vorgenommen. [Pelka et al. 2007] Bezüglich Rechteverwaltung stehen globale Einstellungen über Gruppen zur Verfügung. Action Control Listen (ACLs) werden nicht unterstützt. Beim Editieren von Seiten wird auf Conflict-Resolution gesetzt. Das Editieren ein und derselben Seite von gleichzeitig mehreren Autoren ist also möglich. [MediaWiki 2008] Was die Robustheit des Codes anbelangt, so wurde daran gedacht einen objektorientierten Ansatz zu verfolgen. Die Dokumentation ist zwar groß und übersichtlich gehalten, kann aber mit einer JAVADoc nicht zur Gänze mithalten. Hinsichtlich der Erweiterungsmöglichkeiten ist das MediaWiki recht umfangreich, denn existieren knapp an die tausend Plugins, mit denen das System in funktionaler Hinsicht ergänzt werden kann. Vor allem auf das Einbinden anderer Module wie beispielsweise des Amazon-Bookstores, Google-Maps oder Youtube-Videos wurde Wert gelegt. Aber auch zahlreiche Exportformate, unter Anderem in PDF, stehen zur Verfügung. Auch 6 Wiki-Systeme im Vergleich 66 können Formeln direkt in Latex geschrieben, in Wiki-Seiten eingebunden und zur Anzeige gebracht werden. Des Weiteren ist das MediaWiki mit seinen 140 Sprachen, das wohl best übersetzte Wiki unter den fünf hier vorgestellten Systemen. [MediaWiki 2008] Abbildung 15: Das MediaWiki Was zusätzliche Add-Ons wie Foren oder Blogs anbelangt, so werden diese nicht dezidiert unterstützt. Ein Forum Plugin oder eine ImageGallery ist vorhanden, auf Blogs wird aber weitgehend verzichtet. Die (Volltext)-Suche im System ist hervorragend wie ein Testbericht aus der Computerfachzeitschrift C’T zeigt. So wurden in einem Test über 10.000 Dokumente (ca. 80MB an Daten) in fast weniger als einer Sekunde Response-Zeit durchsucht. [Moeller 2003b] Was die Syntax anbelangt, so wird neben herkömmlicher Wiki-Syntax auch inlineHTML unterstützt, wobei diese im Vergleich zu anderen Systemen etwas gewöhnungsbedürftig erscheint. Des Weiteren stehen dem User die bekannten Funktionen wie Diff, Edit, RecentChanges, History und so weiter zur Verfügung. 6 Wiki-Systeme im Vergleich 67 6.1.2 FlexWiki Das FlexWiki ist wohl das schlankste von den hier vorgestellten Systemen. So ist die neueste Version 2.1.0.274 (Stand: 18.12.2008), welche auf sourceforge.net34 zum Download bereit steht gerade einmal 900KB groß. Der wesentliche Unterschied zu den hier vorgestellten Systemen ist, dass für die Implementierung des Systems ausschließlich das von Microsoft bekannte .NET-Framework mit den Programmiersprachen C# und ASP zum Einsatz gekommen ist. Entwickelt wurde das System ursprünglich von David Ornstein, seines Zeichen Lead-Program-Manager von Microsoft Windows. FlexWiki war im Übrigen auch eines der ersten Programme, welches von Microsoft zu einem Open-Source-Projekt gemacht wurde. Der erste Release Kandidat kam im Jahr 2004 unter der Common Public License heraus [Cal et al. 2008]. Was die Systemvoraussetzungen anbelangt, so werden laut Herstellerseite das Betriebsystem Windows XP Professional oder Windows Server 2003 empfohlen. Als Webserver reicht ein Microsoft Internet Information Server der Version 5 oder höher. Die Installation ist recht simpel gehalten, denn muss das Zip-Archiv lediglich in den Ordner Inetpub\wwwroot kopiert und Leserechte für das Verzeichnis fwfolder beziehungsweise Schreibrechte für das Verzeichnis fwfolder\WikiBases erteilt werden. Was den allgemeinen Funktionsumfang anbelangt, ist das vorgestellte FlexWiki - laut [Wikimatrix 2008b] - jenes mit dem kleinsten Feature-Set. So wurde das Wiki beispielsweise bis heute noch in keine weitere Sprache übersetzt. Auch fehlen Features wie Kommentarfunktion, PDF-Export, Change Summery, und so weiter [Wikimatrix 2008b]. Das hat vor allem den Grund, dass hinter dem Projekt zurzeit eine kleine Community steht, welche sich um die Pflege des Projektes kümmert. Nichtsdestotrotz läuft das Projekt verhältnismäßig gut, wie die fast monatlichen Releases beweisen. Für das Ablegen von Wiki-Pages stehen dem User die Möglichkeiten eines FileSystem- oder eines Datenbankbasierten Backends offen. In der StandardKonfiguration wird ersteres verwendet. Zum Editieren von Beiträgen wird ein eher ungewöhnliches Feature angeboten, denn können Beiträge direkt durch einen Doppelklick auf den gewünschten Artikel editiert werden. Ein WYSIWYG wird nicht angeboten, dafür aber die Option Keywords zu definieren, um das Suchen nach Inhalten zu vereinfachen. Die zu verwendende Wiki-Syntax ist dabei recht einfach gehalten, wobei aber auch einfache und komplexe Tabellen unterstützt werden. Features wie „Page-Histroy“, „Recent-Changes“, „Lost and Found“ und „Rename“ sind ebenfalls vorhanden. Die Seitenausgabe am Browser erfolgt in HTML, wobei ein dezidierter Standard nicht eingehalten wird. [Wikimatrix 2008b] 34 http://www.sourceforge.net 6 Wiki-Systeme im Vergleich 68 Abbildung 16: Das FlexWiki Die große Stärke von FlexWiki ist eine Smalltalk basierte Programmiersprache namens „Wiktalk“, mit der sich dynamische Seiteninhalte erstellen lässt. Aber auch ein PluginModul wird angeboten um das Wiki in funktionaler Hinsicht zu expandieren. Was die Zugriffsrechte auf das Wiki anbelangt, so können diese über eine Konfigurationsdatei flex.wiki.config eingerichtet werden. Auch ACLs stehen zur Verfügung. Für die Authentifizierung kommt das Windowseigene Backend zum Tragen. Aber auch ein eigenes Anmeldeformular mit ASP .NET Membership Provider wird angeboten [Cal et al. 2008]. Was die Medienintegration anbelangt, werden Flash und Videosupport angeboten. Add-Ons wie Foren, Blogs existieren nicht. Zum Abschluss sei noch etwas über Strukturierung von Beiträgen und der Suche gesagt. So können in FlexWiki zwar Beiträge in Namespaces zusammengeführt werden. Sub-Pages werden aber nicht unterstützt. Was die Suche anbelangt, steht eine Volltextsuche zur Verfügung, mit der auch das Suchen mit Hilfe von regulären Ausdrücken möglich ist. 6 Wiki-Systeme im Vergleich 69 6.1.3 JSPWiki [JSPWiki 2008; JSPWikiDoc 2008] Wie der Name schon vermuten lässt, wird das JSPWiki mit Hilfe von Java Server Pages (JSP) implementiert und liegt zurzeit in der Version 2.8.1 (Stand: 16. Dezember 2008) vor. Neben fast täglichen Builds und einer breiten Community zeichnet sich das Projekt vor allem hinsichtlich seines qualitativ hochwertigen Quellcodes aus. Durch die klare Trennung zwischen Code und Präsentation ist der Code sehr homogen, was sogar dazu geführt hat, dass die Apache Software Foundation das Projekt (Seit Version 2.8) adaptiert hat. Bezüglich der Installation ist das System recht einfach zu handhaben. So wird auf der Herstellerseite eine .WAR Datei, welche auf einfachem Wege mit einen Apache Tomcat Server deployed werden kann, angeboten. Ein simples Installationsscript, mit dem Arbeitsverzeichnis und ein Admin-Passwort definiert werden können, erledigt den Rest um das Wiki zum Laufen zu bringen. Hinsichtlich Dokumentation ist das Wiki auch vorbildlich, so findet sich auf der Dokumentationshomepage eine ausgedehnte FAQ-Seite mit sämtlichen nur erdenklichen Fragen und Antworten. Bezüglich der Erweiterungsmöglichkeiten ist das System allen anderen hier vorgestellten Systemen überlegen. So wird beispielsweise ein File-Provider-Modul implementiert, auf dessen Basis sämtliche Speicherkonzepte abgebildet werden können. In der Standardinstallation ist zum Beispiel ein CVS-, ein herkömmlicher File-System- oder ein Buffer-File-System- Provider enthalten. Aber auch Datenbanken wie MySQL oderPostgreSQL oder Eigenentwicklungen werden unterstützt. Ein weiterer Erweiterungsmechanismus ist die so genannte Plugin-Architektur, um das System vor allem in funktionaler Hinsicht leicht zu erweitern. Aber auch das Feature der so genannten Wiki- „Variablen“ und „Forms“ wird angeboten. Um das System hinsichtlich seines Aussehens zu verändern, steht dem User ein durchdachtes Template-Konzept zur Verfügung. Auf der Herstellerseite finden sich eine Reihe von Vorlagen um beispielsweise das JSPWiki in einer Art Windows-Vista Style erscheinen zu lassen. Die Ausgabe auf den Browser erfolgt im Übrigen via XHTML 1.0 Strict. Als Exportmöglichkeiten einzelner Seiten stehen Print-CSS oder PDF zur Verfügung. Hinsichtlich Zugriffsrechte und Userverwaltung bietet das JSPWiki ein recht umfangreiches Featurset an. So kann die Userverwaltung global über JAAS-Files geregelt werden oder aber auf Page Ebene via ACLs. Darüber hinaus werden Konflikte bei der Seitenbearbeitung erkannt und gegebenenfalls dem Benutzer angezeigt. 6 Wiki-Systeme im Vergleich 70 Die Seitenerstellung erfolgt wie sonst üblich auch über das Broken-Link Konzept, wobei für das Editieren ein WYSIWYG Editor oder eine recht simple Wiki-Syntax zum Einsatz gebracht werden können. Abbildung 17: Das JSPWiki Zu guter Letzt noch etwas zum Thema Community, Suche und Mediensupport. Neben den herkömmlichen Wiki Möglichkeiten, Beiträge kollaborativ zu erstellen und diese zu bearbeiten, werden auch zusätzliche Elemente wie Kommentarfunktion, Foren und Blogs als Add-Ons angeboten. Um auf dem neuesten Stand der Dinge zu bleiben, werden auch RSS-Feeds unterstützt sowie die sonst üblichen Übersichtsseiten „Recent-Changes“ oder „History“. Die Suche im JSPWiki erfolgt mit Hilfe der bekannten OpenSource Suchmaschine Apache Lucene35. Es wird sowohl eine Bereichssuche angeboten, aber auch eine Volltextsuche. Zudem wird ein Ajax basiertes Suchkonzept angeboten. Was den Mediensupport anbelangt, so können neben Bildern auch Videos oder Flashanimationen direkt in den Seiten angezeigt werden. Der Upload erfolgt dabei direkt als Attachment, was den Vorteil mit sich bringt, dass alle Dateien übersichtlich zu der gehörigen Seite im System auffindbar sind. 35 http://lucene.apache.org 6 Wiki-Systeme im Vergleich 71 6.1.4 TWiki Beim so genannten TWiki handelt es sich um ein cgi-bin Skript, welches in der Programmiersprache PERL implementiert wurde. Entstanden ist das System ursprünglich aus dem Projekt JOSWiki an dem auch der Autor Peter Thoeny beteiligt war. Die erste Version von TWiki wurde am 23. Juli 1998 veröffentlicht, wobei das System in seinen Anfängen als Intranet-Tool zum Bereitstellen einer Knowledgebase eingesetzt wurde. [Raygan und Green 2002] Das TWiki in seiner heutigen Form empfiehlt sich laut TWiki Homepage vor allem für Klein- bis Mittelbetriebe. Entwickelt wird das System hauptsächlich von einer breiten Community und Peter Thoeny. Aber auch Firmen wie Yahoo und Motorola beteiligen sich an der Implementierung und setzten es wie viele andere im Unternehmensumfeld ein. [Seibert 2008] Was die Installation des Systems anbelangt, so ist das TWiki wohl mit Abstand das am schwersten zu integrierende (von den hier vorgestellten Systemen). Trotz umfangreicher Installationsanweisung hat das Programm einige Makel. So benötigt man für die zurzeit aktuelle Version 4.2.4 (Stand 18. Dezember 2008) eine Reihe von zusätzlichen PERL-Modulen und UNIX-Funktionen wie beispielsweise [TWiki 2008]: • RCS (Revision Control System) 5.7 oder höher • GNU diff 2.7 oder höher • GNU patch • fgrep, egrep • UNIX cron, und so weiter Kein Wunder, dass es mittlerweile eine Reihe von Installationsanleitungen in elektronischer oder gedruckter Form gibt, um diese Hürde leichter zu überwinden [Mahrbach 2008; Pro 2008; Weber 2007] . Bezüglich des Funktionsumfangs hat das Wiki ähnlich den hier vor gestellten Systemen Einiges zu bieten. So werden Daten gleich wie beim JSPWiki oder dem PHPWiki in Plain-Text abgelegt, auf ein zusätzliches Datenbank-System wird also verzichtet. Der Vorteil bei dieser Art der Datenverwaltung ist jener, dass Daten leichter strukturiert, kopiert oder verschoben werden können [Moeller 2003b]. Auf der Wiki-eigenen Homepage wirbt Thoeny auch gerne mit dem Schlagworten „Structured Wiki“. Auf User Ebene werden die Daten in Webs, Topics und Attachments eingeteilt, wobei ein Web als Themengruppe (Kategorie) angesehen wird. Topics sind, wie der Name schon vermuten lässt, einzelne Dokumente in einem Web-Archiv, wobei diese hierarchisch geordnet werden können. Ein Topic selbst enthält neben dem eigentlichen Textinhalt einer Seite auch Daten wie Autor, Zeitpunkt der Erstellung, Revisionsdatum, Meta-Daten und so weiter An ein Topic angehängt werden die Attachments, welche bis zu 10 MB groß sein dürfen. [Seibert 2008] 6 Wiki-Systeme im Vergleich 72 Als Aufzeichnungssprache (Wiki-Syntax) wird TML verwendet, wobei die Ausgabe am Browser in CCS und XHTML 1.0 Transitional erfolgt. Für das Arbeiten an einem Dokument von gleichzeitig mehreren Editoren unterstützt das System das Konzept der Conflict Resolution. [Wikimatrix 2008b] Für Erweiterungsmöglichkeiten stehen dem User eine Reihe von Plugins zur Verfügung (insgesamt über 300) wobei auch eine API mitgeliefert wird, um eigene Module zu implementieren. So steht zum Beispiel für den Medienexport ein PDF-Plugin bereit, um ein Dokument direkt als PDF-Datei für den Download verfügbar zu machen. Darüber hinaus steht auch ein Template-Modul bereit, um den Standard-Style des Systems auf seine individuellen Bedürfnisse anzupassen. [TWiki 2008] Bezüglich der Zugriffskontrolle bietet das TWiki ähnlich dem JSPWiki auch feine Abstimmungsmöglichkeiten an, so werden zum Beispiel Features wie ACLs auf PageEbene unterstützt. Aber auch eine Zugriffskontrolle über eine Gruppenverwaltung wird unterstützt. Als Authentifizierungsbackend können Apache Webserver Features wie LDAP, NIS, AD oder Kerberos verwendet werden. [Wikimatrix 2008b] Zu guter Letzt noch ein paar Worte zum Thema Community-Support und Suche. Um mit anderen Usern in Kontakt zu treten, unterstützt das TWiki Features wie Blogs, Foren- und Kommentarfunktion. Aber auch ein integriertes Email-Notifikation-System ist vorhanden. Was die Suche anbelangt, so wird eine globale Schnellsuche angeboten, aber auch eine erweiterte Volltextsuche. Als Searchengine kommt das UNIX Tool „find“ und „grep“ zum Einsatz, was bei größeren Dokumentensammlungen dazu führen kann, dass diese leider versagt [Moeller 2003b]. 6 Wiki-Systeme im Vergleich 73 Abbildung 18: Das Twiki 6.1.5 DokuWiki Gleich wie das MediaWiki ist das in weiterer Folge vorgestellte DokuWiki ein in PHP implementiertes Wiki-System. Im Unterschied zu seinem „großen“ Bruder benötigt die Software aber keine zusätzliche Datenbank, um Daten ablegen zu können. Beiträge werden als Plain-Text im Filesystem abgelegt. Dies hat den großen Vorteil, dass das Wiki recht simpel zu installieren ist, da lediglich ein Webserver mit PHP Interpreter benötigt wird. Entwickelt wurde das System von einem Deutschen namens Andreas Gohr. Der erste Release Kandidat wurde im Jahr 2004 veröffentlicht, wobei das Wiki ein Jahr später noch einmal komplett überarbeitet wurde. Heute ist das Dokuwiki laut WikiMatrix.org „das“ Wiki, für welches sich die meisten Benutzer interessieren [Moeller 2003b]. Die zurzeit aktuellste Version ist vom 5.5.2008 (Stand 17.12.2008). Für die Installation empfiehlt DokuWiki das PHP Package in der Version 4.3.10. Aber auch bis zur Version 4.3.3 ist das Wiki-Funktionsfähig, wobei aus Sicherheitsgründen davon abzuraten ist. Natürlich wird darüber hinaus PHP in der Version 5.x unterstützt. [DokuWiki 2008] Hinsichtlich der Codebase ist zu sagen, dass diese recht überschaubare Maße hat, in der man sich schnell zu Recht findet. Nachteil hierbei ist, dass das Wiki nach dem 6 Wiki-Systeme im Vergleich 74 Funktionalen Programmiermodell entwickelt wurde, was auf den zweiten Blick doch einige Redundanzen im Code erkennen lässt. Bezüglich Erweiterbarkeit implementiert das DokuWiki ein Plugin-System, deren Sammlung mittlerweile recht ansehnlich ist. So stehen dem User fast über 300 Plugins zur Verfügung. [DokuWiki 2008] Was die Seiten-Zugriffskontrolle anbelangt, so werden hierfür ACLs verwendet. Aber auch eine dezidierte Kontrolle über den Mime-Typ beim Upload von Daten stehen zur Verfügung. Die Konfiguration erfolgt hierfür (ein wenig umständlich) über eines der insgesamt sechs Konfigurationsdateien. [Dokuwiki 2008] Um eine Seite zu erstellen, stehen dem User neben einer homogenen Wiki-Syntax auch Möglichkeiten, wie „Diff“- und „History“-Funktion zur Verfügung. Ältere Versionen werden dabei in gezippten Dateien abgelegt. Darüber hinaus besteht die Option, Artikel gleichzeitig mit mehreren Usern zu bearbeiten. [Fuecks 2004] Um mit Usern in Kontakt zu treten, werden Features wie Kommentare und Blogging unterstützt. Eine Forenfunktion wird nicht dezidiert angeboten. [Wikimatrix 2008b] Was die Strukturierung von Wiki-Seiten anbelangt, so stehen dem User Namespaces zur Verfügung, um Beiträge thematisch zusammen zu fassen. Aber auch eine übersichtliche Index-Page erleichtert die Navigation durch das Wiki. Des Weiteren werden Statistikseiten wie „Recent-Changes“ und „Wanted-Pages“ unterstützt, aber auch ein Analyse-Tool steht bereit. [Dokuwiki 2008] Bezüglich der Ausgabe werden folgende Features angeboten [Wikimatrix 2008b]: • XHTML 1.0 Transitional + CSS • Print CSS • PDF • RSS Zu guter Letzt sei noch die Suche erwähnt. Auch hier unterstützt das System eine einfache Keywordbasierte Suche über das globale Suchfeld. Aber auch eine eigens entwickelte Volltextsuche wird implementiert. Die Indizierung der einzelnen Wiki-Seiten erfolgt hierbei über (die aus der Webstatistik bekannten Technik) Webbugs. Kleine 1x1 Pixel große „unsichtbare“ Bilder, welche der Suchmaschine Aufschluss darüber geben, ob eine Seite indiziert werden muss oder nicht. [Dokuwiki 2008] 6 Wiki-Systeme im Vergleich 75 Abbildung 19: Das DokuWiki 6.2 Anforderungsanalyse In diesem Kapitel werden die bereits vorgestellten Wiki-Systeme an Hand der zu Beginn des Kapitels 6 dar gebrachten Kriterien näher diskutiert. Ziel dabei ist, eine geeignete Softwarelösung zu finden, mit der das Konzept Austria-Forum in technischer Hinsicht am „Besten“ umgesetzt werden kann. Vergleicht man die fünf Systeme hinsichtlich der zuvor erwähnten Kriterien, so ergibt sich die in Tabelle 7 dargestellte Auswertung. Vor allem die drei Systeme MediaWiki, JSPWiki und DokuWiki stechen dabei ins Auge, da diese am Besten in diesem Vergleich abschneiden. Warum sich das FlexWiki für das weitere Vorhaben nicht eignet, ist schnell erklärt. So fehlen beispielsweise rudimentäre Features wie guter Hersteller-Support (eine ausgedehnte Dokumentation des Systems ist leider nicht vorhanden), Printability (zwar gibt es einen Print-View, aber ein PDF-Export existiert nicht) oder auch die Usability des Systems, in dem man sich leider nur schwer zurechtfinden kann. 6 Wiki-Systeme im Vergleich 76 Das Twiki, obwohl es sich vor allem als Softwarelösung für kleine und mittlere Unternehmen anbietet und sogar als Enterpriselösung in bekannten Firmen eingesetzt wird, scheidet aus folgenden drei Gründen aus: • Zwar ist die Volltextsuche gut für einen kleinen Dokumentenbestand, doch sind die UNIX-Tools „find“ und „grep“ für ein größeres Volumen zu langsam, wie ein Test der Computerfachzeitschrift C’T zeigt. • Des Weiteren ist das System in seiner Gesamtheit für versiertere User ausgelegt, weshalb die Usability für den herkömmlichen Internetbenutzer zu umständlich erscheint. • Darüber hinaus ist nicht sicher, inwieweit sich das Projekt weiterentwickeln wird, denn gab es erst im Oktober diesen Jahres einen heftigen Streit zwischen Gründer Peter Thoeny und der Entwickler-Community, welcher zur Folge hatte, dass sich die beiden Parteien getrennt haben. Die Community entwickelt seitdem ein eigenes Projekt mit dem Namen NextWiki36. Thoeny versucht stattdessen sein Werk am Leben zu erhalten. [Heise 2008] Die Frage, welche sich hiermit stellt ist, in wie Weit sich MediaWiki, JSPWiki und das DokuWiki für das weitere Vorhaben eignen. • Userverwaltung und Security Betrachtet man beispielsweise das Kriterium „Userverwaltung und Security“, so schneiden alle drei Systeme fast gleich gut ab, wobei das MediaWiki keine ACLs unterstützt und das Authentifizierungsbackend auch nicht so ausgereift scheint wie beispielsweise beim JSPWiki, wo als Backend das Java interne Security Policy Modul via JAAS-Files zum Einsatz kommt. • Strukturierung von Beiträgen Was die „Strukturierung von Beiträgen“ anbelangt, das letzte Kriterium welches an dieser Stelle behandelt werden soll, so muss gesagt werden, dass das JSPWiki hinsichtlich dieses Features die schlechtere Wahl ist. Auch wenn Kategorien standardmäßig unterstützt werden, so fehlt die Option Dokumente in Namespaces miteinander zu vereinen. • Suche Bezüglich der „Suche“ beziehungsweise der Volltextsuche bieten MediaWiki und JSPWiki die beiden besten und schnellsten Konzepte an. MediaWiki ist auf Grund des Datenbank-Backends natürlich besonders effizient, wenn es darum geht ein großes Datenvolumen zu durchsuchen. Das JSPWiki mit der Suchmaschine Apache Lucene und einem gecachten Index ist aber nicht bedeutsam langsamer. Das 36 http://www.nextwiki.org 6 Wiki-Systeme im Vergleich 77 DokuWiki verfolgt zwar auch einen gecachten Ansatz, doch ist die proprietäre Suchmaschine nicht so leistungsfähig wie die der beiden Kontrahenten. • Kommentare, Foren und Blogs Hinsichtlich der Features Kommentar-, Forum- oder Blog-Funktion bietet auch hier das JSPWiki die größere Auswahl an. Vor allem fehlt beim MediaWiki ein Blog Modul. Beim DokuWiki ist diese Option zwar vorhanden, doch fehlt dort die Forumsfunktion komplett. • XHTML,CSS, RSS und PDF Ausgabe Bezug nehmend auf die „Ausgabe“ muss gesagt werden, dass hier das JSPWiki als knapper Gewinner hervorgeht. Auch wenn alle drei Systeme RSS, CSS und XHTML als Ausgabeformate angeben, so überzeugt das JSPWiki durch die Verwendung des Standards XHTML 1.0 Strict, wohingegen sich MediaWiki und DokuWiki mit dem Standard XHTML 1.0 Transitional begnügen. • Mediensupport Was den Mediensupport anbelangt, gewinnt hier das MediaWiki. Auch wenn das JSPWiki diesbezüglich fast die gleichen Features anbietet, steht dem User nur eine einfache Mediensuche über den Dateinamen zur Verfügung, wohingegen beim MediaWiki eine Keywordsuche möglich ist. Beim DokuWiki wird diese Option leider nicht geboten. Auch fehlt die Funktion einer Medienrevision. • Conflict Management Vergleicht man die Systeme hinsichtlich des Kriteriums „Conflict Management“, so muss gesagt werden, dass das MediaWiki das beste Konzept anbietet. Zwar kommt es in allen drei Systemen zu keinen „Dirty-Writes“, doch können beim JSPWiki und beim DokuWiki zwei oder mehrere User keinen Beitrag gleichzeitig bearbeiten, auch wenn es dabei zu keinem Konflikt kommen würde. JSPWiki und DokuWiki sperren den gesamten Artikel für die Bearbeitung anderer Benutzer, wohingegen beim MediaWiki der Ansatz Konflikt-Resolution verfolgt wird. • Herstellersupport Ein weiteres wichtiges Kriterium für die Auswahl ist der „Herstellersupport“, denn soll das System erweitert werden und hierfür ist eine gute Dokumentation anbieten. Auch hier schneiden JSPWiki und DokuWiki am Besten ab, denn bieten diese beiden Systeme den meisten Support in diese Richtung an. Was beim MediaWiki missfällt ist die schlechte Code Dokumentation. • Datastorage Hinsichtlich des Kriteriums „Datastorage“ schneidet das JSPWiki mit Abstand am Besten ab, denn bietet es auf Grund seiner Architektur die günstigsten Voraussetzungen dafür um proprietäre Konzepte umzusetzen. 6 Wiki-Systeme im Vergleich • 78 Erweiterbarkeit Hinsichtlich „Erweiterbarkeit“ geht auch hier das JSPWiki als klarer Sieger hervor, denn werden eine Unmenge an Modulen geboten, um das System in allen Belangen zu expandieren. Neben Plugins, Templates, werden auch noch Wiki Variablen oder das Filter-, Edit- oder Formmodul angeboten, ganz abgesehen vom abstrakten Programmier-Model, das leichte und saubere Erweiterungen auf Codeebene zulässt. Das MediaWiki und das DokuWiki bieten zwar auch ein Plugin und Template Konzept an, doch sind Erweiterungen auf Codeebene bei Weitem schwerer zu vollziehen, da die Programmstrukturen weniger gut voneinander getrennt sind. Zwar verfolgt das MediaWiki einen Objektorientierten Ansatz, doch ist die Abstraktionsebene viel zu niedrig angesetzt. • Code und Programmiersprache Was das Kriterium „Code und Programmiersprache“ anbelangt, so muss gesagt werden, dass hier eindeutig das JSPWiki als Sieger hervorgeht, da es in der Programmiersprache Java implementiert ist. Eine saubere Trennung zwischen Code und Präsentation, Robustheit, Stabilität, eine Vielzahl an Tools und eine breite Community zeichnen dieses also besonders aus. Das MediaWiki und das Dokuwiki können in dieser Hinsicht nicht mithalten, denn sind beide in der Programmiersprache PHP implementiert. Der einzige Vorteil, der hierbei gesehen werden kann ist, dass für die Exekution des Codes, da es sich um eine interpretierte Programmiersprache handelt, kein Restart des Servlet-Containers von Nöten ist. Trotz dessen fehlen aber Programmiertools, Typensicherheit oder ein ausgewachsenes Exceptionhandling. • Print-Friendly Vergleicht man die drei Wikis hinsichtlich des Kriteriums Printability, so muss gesagt werden, dass sowohl das MediaWiki als auch das JSPWiki und das DokuWiki gleichen Support bieten. Zum Schluss seien die drei Systeme noch hinsichtlich der Kriterien „Wiki-Syntax“ und „Usability“ miteinander verglichen: • Wiki-Syntax Bezüglich „Wiki-Syntax“ muss gesagt werden, dass alle drei Systeme gleich gut bewertet werden müssen. Auch wenn das JSPWiki vom Funktionsumfang vielleicht den geringeren Support anbietet, so besticht es durch seine einfache Syntax. Vor allem wird auf die Verwendung von HTML-Tags verzichtet, was den Wiki-Code an sich homogener erscheinen lässt als den der beiden Kontrahenten. • Usability Was die „Usability“ anbelangt, muss hier dem MediaWiki der Vortritt gewährt werden. Die klare Anordnung der Schaltelemente und die intuitive Handhabe derer, 6 Wiki-Systeme im Vergleich 79 macht das Wiki in dieser Hinsicht knapp aber doch zum Gewinner in dieser Kategorie. Tabelle 7: Vergleich der 5 Wikis MediaWiki, FlexWiki, JSPWiki, TWiki und DokuWiki Media Wiki Flex JSP Wiki Wiki Security Features o ++ + ++ + Userverwaltung + ++ ++ + ++ Strukturierung ++ o + ++ ++ Suche ++ + ++ -- + Kommentare, Forumen, Blogs o -- + + o XHTML,CSS, RSS, PDF + - ++ + + Media (Video, Audio, Flash) ++ -- ++ ++ o Conflict Management ++ o o ++ o Hersteller Support o -- ++ o ++ Datastorage o + ++ o o Erweiterbarkeit o ++ ++ + o Code&Programmiersprache + + ++ o o Printer Friendly ++ - ++ + ++ Syntax + - + + + Usability ++ -- + - + Kriterien TWiki Doku Wiki ++ Sehr Gut, + Gut, o Befriedigend, - Genügend, -- Nicht Genügend 6.3 Fazit Insgesamt betrachtet muss gesagt werden, dass das JSPWiki das wohl bessere System ist, wenn es darum geht, das Konzept Austria-Forum hinsichtlich der geforderten Kriterien umzusetzen. Vor allem besticht das System sowohl durch sein flexibel einsetzbares und leicht erweiterbares Datastorage-Modul als auch durch die gute Userverwaltung. Auch das Kriterium Suche wird in jeglicher Hinsicht gut realisiert. Die Ausgabe in XHTML 1.0 Strict überzeugt und das Kriterium Printability ist auch erfüllt. Darüber hinaus entspricht das Wiki bezüglich der Usability fast alle gewünschten Anforderungen. Durch die ausgezeichnete Codebase, die vielen Möglichkeiten der Erweiterungen und den glänzenden Support sollte es aber kein Problem darstellen, das System auf die noch gewünschten Features zu erweitern. 7 Implementierung 7 80 Implementierung In diesem abschließenden Kapitel dieser Arbeit sollen folgende Dinge behandelt werden: Im ersten Teil dieses Kapitels werden die „Erweiterungsmöglichkeiten“ des JSPWikis näher erörtert, vor allem um klar zu machen, wie flexibel und anpassungsfähig das System ist. Im zweiten Teil dieses Kapitels wird darüber berichtet, was tatsächlich implementiert wurde um das Konzept einer - zitierfähigen Online-Enzyklopädie mit vorwiegend österreichischen Inhalten - zu realisieren. 7.1 JSPWiki Erweiterungsmöglichkeiten Wie schon in Kapitel 6 dieser Arbeit erwähnt, bietet das JSPWiki eine Reihe von Erweiterungsmöglichkeiten an, die hier näher erörtert werden sollen. Als diesem Kapitel zu Grunde liegende Quellen, können die beiden Ressourcen [JSPWiki 2008] und [JSPWikiDoc 2008] genannt werden. 7.1.1 Plugins Zum wohl wichtigsten und rudimentärsten Erweiterungsfeature des JSPWikis können mit Sicherheit die so genannten JSPWiki-Plugins gezählt werden. Vor allem um das System in funktionaler Hinsicht zu erweitern, müssen dieses als „unabdingbares Feature“ bezeichnet werden. Laut Herstellerseite stehen dem Anwender fünfundzwanzig so genannte Core-Plugins zur Verfügung. Darunter zum Beispiel ein IndexPlugin, mit dem es möglich ist, alle im System vorhandenen Wiki-Seiten namentlich in alphabetischer Reihenfolge sortiert auszugeben, ein InsertPagePlugin, um bereits vorhandene Wiki-Pages zu inkludieren oder ein SearchPlugin, mit dem es möglich ist, auf die Suchmaschinenroutinen des Systems zuzugreifen und noch vieles mehr. Zuzüglich existiert eine lange Liste von Contributed-Plugins. Darunter zum Beispiel ein DrawingPlugin, mit dem es möglich ist, Grafiken direkt in einer Wiki-Seite zu erstellen, ein GoogleMapsPlugin, um geografische Daten direkt via Google Maps anzeigen zu lassen oder ein MathPlugin, um mathematische Formeln, in Latex verfasst, direkt aus einer Wiki-Seite heraus anzeigen zu lassen. Das Einbinden eines Plugins erfolgt ähnlich dem Einbinden eines Hyperlinks oder eines Bildes via Wiki-Syntax, wobei folgende syntaktische Regeln gelten: 7 Implementierung 81 Listing 2: JSPWiki Plugin [{INSERT <plugin class> WHERE <param1=value1>,<param2=value2>,...}] Die Parameter Liste und das Tag WHERE sind hierbei optional zu sehen. Seit Version 1.6.3 kann eine Schreibweise auch ohne dem einleitenden Tag INSERT erfolgen. Um Plugins selbst zu implementieren, steht auf Codeebene ein recht simples Interface mit dem treffenden Namen WikiPlugin zur Verfügung. Aufgerufen wird vom System die Funktion execute, wobei die beiden Parameter vom Typ WikiContext und Map mit übergeben werden. Die Ausgabe erfolgt über den Typen String, womit in der Regel HTML-Codes gemeint sind. Listing 3: Das JSPWiki Plugin Interface public interface WikiPlugin { public String execute( WikiContext context, Map params ) throws PluginException; } 7.1.2 Filter Das Filter-Modul zählt zu einer der neuesten Erweiterungsmöglichkeiten. Es wurde in der Version 2.2 erstmalig eingeführt und dient, wie der Name schon ahnen lässt, dazu den Ein- und Ausgabeprozess zu manipulieren. Insgesamt werden vier Einstiegsstellen angeboten: • Vor dem ersten Konvertierungsschritt, bevor aus Wiki-Syntax HTML Code generiert wird • Nach dem ersten Konvertierungsschritt, nach der Konvertierung aber vor dem httpRequest SEND • Vor dem Ablegen einer Wiki-Seite mittels Datastorage-Modul • Nach dem Ablegen einer Wiki-Seite mittels Datastorage-Modul Wie auch das Plugin Modul eine Reihe von Kern-Funktionen zur Verfügung stellt, so stehen auch hier drei Grundfilter zur Verfügung: • der PingWeblogsCom-Filter • der Profanity -Filter • der Spam-Filter 7 Implementierung 82 Mit Hilfe des PingWeblogsCom-Filter ist es möglich, den Weblog-Bereich einer JSPWiki-Seite zu filtern. Der Profanity-Filter stellt die gleiche Funktionalität wie der PingWeblogsCom-Filter zur Verfügung, nur mit dem Unterschied, dass die Filteroperationen auf eine ganze Seite angewendet werden können. Der Spam-Filter ist der umfangreichste aller drei hier vorgestellten und implementiert eine Reihe von Möglichkeiten, um das JSPWiki Spam frei zu halten. Um einen Filter selbst auf Codeebene zu definieren, steht das Interface PageFilter zur Verfügung. Wie schon zu vor erwähnt, steht es dabei frei, wo die Filterung stattfinden soll. Die Funktion initialize wird, wie der Name schon sagt, beim Initialisieren eines Filters aufgerufen, wohingegen mit der Funktion destroy abschließende Operationen durchgeführt werden. Listing 4: Das PageFilter Interface public interface PageFilter { public void initialize( WikiEngine engine, Properties properties ) throws FilterException; public String preTranslate( WikiContext wikiContext, String content ) throws FilterException; public String postTranslate( WikiContext wikiContext, String htmlContent ) throws FilterException; public String preSave( WikiContext wikiContext, String content ) throws FilterException; public void postSave( WikiContext wikiContext, String content ) throws FilterException; public void destroy( WikiEngine engine ); } 7.1.3 Variablen Zuzüglich zu den bereits vorgestellten Modulen bietet das JSPWiki ein integriertes Wiki-Variablen-Modul an. Folgende Typen werden unterstützt: • Konstante Variablen oder auch System Variablen sind vom JSPWiki Kern vordefiniert und stehen dem User quasi global auf jeder Seite zur Verfügung. Das JSPWiki in der Version 2.8 unterstützt insgesamt fünfzehn dieser globalen Variablen. 7 Implementierung 83 • Kontext Variablen stehen, wie der Name schon andeutet, mit einer anderen Anwendung, zum Beispiel einem Plugin, in Verbindung. Diese können beispielsweise dazu verwendet werden, um Anwendungen zu konfigurieren oder aber auch, um Werte auszulesen. • Property Variablen sind eine sehr angenehme und vor allem simple Lösung, wenn es darum geht, Werte aus dem jspwiki.properties File auszulesen. • Page Variablen dienen dem Benutzer dazu selbst Variablen in einer Wiki-Seite zu definieren. Um eine Variable zu definieren ist folgende Sytax zu verwenden: Listing 5: Syntax für JSPWiki Variablen [{SET <name>=‘<value>’}] Mit Hilfe der Syntax [{<name>}] können JSPWiki Variablen in einer Wiki Page aufgerufen werden. 7.1.4 Forms Die JSPWiki-Forms stellen ein weiteres leicht zu handhabendes Feature dar, wenn es darum geht, das Wiki hinsichtlich (HTML) Formular-Funktionen zu erweitern, wobei folgende Elemente angeboten werden: • Das FormOpen Elements wird, wie der Name schon vermuten lässt, dazu verwendet, um ein Formular einzuleiten. Des Weiteren stehen Parameter wie form, submit, method oder hide zur Verfügung. Die Wertezuteilung der einzelnen Parameter erfolgt hierbei einem an HTML angelehnten Schema. Listing 6: Das FormOpen Element [{FormOpen form=‘meinFormName’ submit=‘/servlets/halloWelt’ method=‘post’ hide=‘onsuccess’] • Das CloseForum Element dient dazu, um Formulare zu schließen. Eine Parametrisierung ist hierfür nicht nötig. Listing 7: Das FormClose Element [{FormClose}] 7 Implementierung • 84 Das FormSet Element wird dazu verwendet um (wie in HTML auch üblich) Parameter und Wertezuweisungen verborgen (hidden) zu übermitteln. Listing 8: Das FormSet Element [{FormSet form=‘meinFormName’ msg=‘hallo’}] • Mit Hilfe des FormOutput Elements ist es möglich, einen eigenen FormHandler zu definieren. Listing 9: Das FormOutpunt Element [{FormOutput handler=‘meinPlugin’ form=‘meinFormName’}] [{FormOpen form=‘meinFormName’}] ... [{FormClose}] • Natürlich stehen dem Benutzer auch die gewohnten (HTML) Steuerelemente FormInput, FormSelect und FormTextarea zur Verfügung. Die Parametrisierung der Elemente FormInput und FormTextarea ist hierbei zu den beiden HTML Pendants identisch, nur die Parametrisierung des Elementes FormSelect erfolgt auf eine etwas ungewohnte Art und Weise. So kann beispielsweise ein eigener Parameter seperator definiert werden, um FormSelcet Values zu splitten. Des Weiteren wird über einen eigens ausgeführten Parameter selector definiert, welcher Wert zur Anzeige gebracht werden soll. Listing 10: Die Elemente FormSelect, FormTextarea und FormInput [{FormSelect name=‘feld1’ separator=‘,’ selector=‘!’ value=‘eins,zwei,!drei’}] [{FormTextarea name=‘feld2’ value=‘Hallo’ rows=5 cols=10}] [{FormInput type=‘submit’ value=‘Send!’ name=‘feld3’}] 7.1.5 Editor Modul Zuzüglich zu den bereits erwähnten Erweiterungsmöglichkeiten bietet das JSPWiki die Option an, über ein eigens ausgeführtes Modul Editoren auszutauschen oder hinzuzufügen. Standardmäßig enthalten ist ein Modul mit dem treffenden Namen „PlainEditor“, um Beiträge via Wiki-Syntax zu erzeugen (siehe Abbildung 20). 7 Implementierung 85 Abbildung 20: Der Standardeditor PlainEditor Aber auch eine Reihe von Contributed-Editoren stehen zur Verfügung. Darunter zum Beispiel bekannte WYSIWYG Editoren wie TinyMCE37 oder FCKeditor38. Abbildung 21: Der WYSIWYG Editor TinyMCE 37 38 http://tinymce.moxiecode.com http://www.fckeditor.net 7 Implementierung 86 7.1.6 Templates und Styles Um den View (Ansicht) beziehungsweise das Aussehen anzupassen, stehen zwei wesentliche Konzepte zur Verfügung: Die der Templates und die des Page-Stylings via CSS-Stylesheets. Mit der Hilfe eines Templates kann die Seitenstruktur angepasst werden. Um die Strukturen im Aussehen zu definieren werden Styles herangezogen, wobei JSPWiki zwischen dynamischen, dem User zur Verfügung gestellten, und dem Site-Admin vorbehaltenen Styles unterscheidet. Bei den in zweiter Folge genannten handelt es sich um herkömmliche CSS-Sheets, um Templates auf das gewünschte Äußere anzupassen. Beim den dynamischen hingegen handelt es sich um aufwendig in JavaScript codierte und dem User in Wiki-Syntax zur Verfügung gestellte Styles. Auch wenn der Programmieraufwand ungleich höher ist, um dynamische Styles zu implementieren, lohnt es sich, denn können so zum Beispiel dynamisch kollabierende Tabellen oder Tab-Listen angeboten werden welche zudem sogar druckbar sind. Um das allgemeine Aussehen anzupassen, steht, wie schon zuvor erwähnt, ein Template-System zur Verfügung, wobei standardmäßig eine Reihe von Vorlagen im Installationspackage enthalten sind. Um selbst ein Seiten-Template zu erstellen, ist es notwendig, einige Anpassungen vorzunehmen. So muss beispielsweise im jspwiki.proterties File der Parameter jspwiki.templateDir=<Templateordner> ge- setzt werden. Des Weiteren müssen die (insgesamt zehn) JSPWiki CorePages in den zuvor definierten Ordner kopiert und angepasst werden. Natürlich steht es auch frei, selbst Funktionen zu definieren, doch ist es ratsam sich zuerst mit den in den JSPWiki CorePages vorhandenen Funktionen vertraut zu machen. Tabelle 8: JSPWiki CorePages, entnommen aus [JSPWiki 2008] CorePages JSP File view PageContent.jsp diff DiffContent.jsp info InfoContent.jsp preview PreviewContent.jsp conflict ConflictContent.jsp find FindContent.jsp prefs PreferencesContent.jsp error DisplayMessage.jsp edit EditContent.jsp comment CommentContent.jsp 7 Implementierung 87 Abbildung 22: JSPWiki im WikiMedia Style von Martin Unger, entnommen aus [JSPWiki 2008] 7.1.7 Datastorage Wie schon in Kapitel 6 beschrieben, stellt das JSPWiki ein besonders leicht anzupassendes Datastorage-Modul zur Verfügung. So existiert auf Codeebene ein Interface mit dem treffenden Namen WikiPageProvider, von dem ausgehend sämtliche DatastorageKonzepte umgesetzt werden können. Listing 11: Das Interface WikiPageProvider public interface WikiPageProvider extends WikiProvider { public void putPageText( WikiPage page, String text ) throws ProviderException; public boolean pageExists( String page ); public Collection findPages( QueryItem[] query ); public WikiPage getPageInfo( String page, int version ) 7 Implementierung 88 throws ProviderException; public Collection getAllPages() throws ProviderException; public Collection getAllChangedSince( Date date ); public int getPageCount() throws ProviderException; public List getVersionHistory( String page ) throws ProviderException; public String getPageText( String page, int version ) throws ProviderException; public void deleteVersion( String pageName, int version ) throws ProviderException; public void deletePage( String pageName ) throws ProviderException; public void movePage(String from, String to) throws ProviderException; } Prinzipiell wird zwischen zwei Typen von PageProvidern unterschieden. So gibt es auf der einen Seite die Klasse der FileProvider und auf der anderen Seite die der WikiAttachmentProvider. Diese Unterscheidung wird aus folgendem Grund getroffen: Anders als bei den Wiki-Systemen MediaWiki oder PHPWiki werden externe Ressourcen wie Bilddaten, Videoarchive, etc. nicht global gespeichert und als solche behandelt, sondern als ein lokales, einer Wikipage zugehöriges Objekt betrachtet. Um nicht selbst Hand anlegen zu müssen, sind im Standardinstallationspaket drei unterschiedliche FileProvider und ein WikiAttachmentProvider enthalten: • der FileSystemProvider • der VersioningFileProvider • der RCSFileProvider • der BasicAttachmentProvider 7 Implementierung 7.1.7.1 89 Der FileSystemProvider Die Klasse FileSystemProvider setzt das einfachste hier vorgestellte Konzept des Datastorages um. So werden Wiki-Pages in herkömmliche Textdateien konvertiert und im Filesystem abgelegt. Zudem existiert keine Strukturierung, denn werden alle Dateien in einen speziellen Ordner „flach“ abgelegt. Des Weiteren wird keine Versionsverwaltung implementiert, das heißt, ältere Dateien werden einfach überschrieben. Die Interfacemethode getVersionHistory retourniert in diesem Fall also immer eine Liste der Länge eins. Dass Methoden wie Revisionskontrolle und Differenzbildung nicht möglich sind ist klar, weshalb auch explizit davon abzuraten ist, diese Klasse zum Einsatz zu bringen. 7.1.7.2 Der VersioningFileProvider Die Klasse VersionFileProvider implementiert, wie der Name schon ahnen lässt, die Funktion eines Versionskontrollmechanismus, wobei Wiki-Pages wiederum im Filesystem als Textdateien abgelegt werden. Anders als beim FileSystemProvider wird zusätzlich ein spezieller Systemordner (OLD) angelegt, in dem alle vorherigen Versionen wiederum als Ordner abgelegt zu finden sind. Die Versionsverwaltung erfolgt im Grunde durch einfaches numerisches Hochzählen. Zuzüglich werden noch spezielle properties Dateien erzeugt, um Meta-Daten wie Erstellungsdatum, Autor, etc. nicht zu verlieren. 7.1.7.3 Der RCSFileProvider Mit Hilfe der Klasse RCSFileProvider ist es möglich, Wiki-Pages über ein so genanntes Revision-Control-System (RCS) zu versionisieren. Auch wenn diese Klasse eine gute Alternative zum VersioningFileProvider darstellt, so musste leider festgestellt werden, dass es kein funktionierendes Revision-Control-System für das Betriebssystem Microsoft Windows (in allen Versionen) gibt. Zudem ist auf der Herstellerseite zu lesen, dass die UNIX Variante vor allem mit einem großen Datenvolumen Performanceprobleme hat, weshalb davon abzuraten ist, diesen Provider zum Einsatz zu bringen. Für nähere Details zum Thema RCS sei an dieser Stelle auf [Tichy 1985] verwiesen. 7.1.7.4 Der BasicAttachmentProvider Die Klasse BasicAttachmentProvider implementiert ein einfaches Datastorage-Konzept hinsichtlich der Verwaltung externer Ressourcen. Ähnlich der Klasse VersioningFileProvider implementiert diese eine Versionskontrolle über das herkömmliche Filesystem. Wird beispielsweise auf Anwendungsebene eine WikiPage mit dem Namen Main erstellt, so erzeugt der BasicAttachmentProvider auf Systemebene in einem definierten Attachment-Verzeichnis den Ordner Main-att. Wird auf Anwendungsebene nun der WikiPage zum Beispiel eine Datei test.png angehängt, so wird auf Systemebene im Verzeichnis Main-att ein Ordner test.png-dir erzeugt, wobei die Datei unter dem Namen 7 Implementierung 90 1.png abgespeichert wird. Zudem wird wiederum ein properties File erzeugt, in dem Meta-Daten abgelegt werden. Abbildung 23: Versionsverwaltung des BasicAttachmentProviders auf FilesystemEbene 7.1.8 Security Modul Wie schon in Kapitel 6 erwähnt, bietet das JSPWiki ein flexibles und leicht anzupassendes Security Modul an. In weiterer Folge soll dieses kurz vorgestellt werden. 7.1.8.1 Authentifizierung Prinzipiell stehen dem Benutzer eines JSPWikis folgende Authentifizierungsmöglichkeiten offen: • anonym • asserted • authentifiziert • admin Anonym ist ein Benutzer dann, wenn dieser vom JSPWiki eindeutig identifiziert werden kann, was bedeutet, dass keine Anmeldung stattgefunden hat und kein Cookie am Rechner des Users gespeichert werden konnte. Wird ein Benutzer als asserted betrachtet, so ist zwar keine dezidierte Anmeldung geschehen, doch konnte der User über ein Cookie identifiziert werden. Authentifiziert ist ein User dann, wenn eine Anmeldung mittels Benutzername und Kennwort erfolgt ist. Des Weiteren wird ein Benutzer als Admin gewertet, wenn eine Authentifizierung via Admin-Name und Passwort erfolgt ist. 7 Implementierung 7.1.8.2 91 Zugriffskontrolle Um den Zugriff auf das JSPWiki zu steuern, stehen insgesamt zwei wichtige Kontrollmechanismen zur Verfügung: Controll Listen (ACLs) auf Page-Ebene und die JAVA2 Security Policy mit den JAAS Konfigurationsdateien für eine allgemeine Zugriffskontrolle, wobei folgende drei Ebenen kontrolliert werden können: • die Benutzerebene (einzelne Personen) • die Gruppenebene (Benutzer können in Gruppen zusammengefasst werden) • die Rollenebene (Benutzer können speziellen Rollen zugeordnet werden) Wie schon zuvor erwähnt, erfolgt die Zugriffskontrolle auf Page-Ebene über ACLs. Insgesamt können fünf Zugriffsprivilegien definiert werden, welche wie folgt lauten: • view • edit • comment • rename • delete Da die einzelnen Zugriffsregeln selbst erklärend sein sollten, wird an dieser Stelle auf eine detaillierte Beschreibung verzichtet. Um nun die gewünschten Zugriffsrechte auf Page-Ebene zu setzten, ist es notwendig, ein Plugin mit folgender Syntax einer JSPWiki-Seite hinzuzufügen: Listing 12: ACL Syntax [{ALLOW <BenutzerPrivilegien> <Benutzer>}] Konkrete Beispiele hierfür wären: Listing 13: ACL Beispiel [{ALLOW view Christoph,Anonym}] [{ALLOW edit Denis, Christoph, Hermann}] [{ALLOW delete Hermann,Admin}] Da eine Zugriffskontrolle auf Page-Ebene zu umständlich wäre um eine Vielzahl von Seiten zu administrieren, wird ein globales Security-Policy-Modul basierend auf der JAVA 2 Security Policy und den JAAS Konfigurationsdateien angeboten. Wichtig hierbei: Zugriffsregeln, welche mittels JAAS Konfigurationsdateien erstellt werden, wirken stärker als jene der ACLs. Es ist also zum Beispiel nicht möglich, mittels ACL einem anonymen Benutzer zu erlauben eine Seite zu editieren, wenn dies zuvor 7 Implementierung 92 in der JAAS Konfigurationsdatei unterbunden wurde. Der JAAS Konfigurationsfile ist im Übrigen im Ordner WEB-INF unter dem Namen jspwiki.policy zu finden und kann selbstverständlich auf die eigenen Bedürfnisse angepasst werden. In Tabelle 9 sind die Grundeinstellungen des jspwiki.policy Files in komprimierter Form zusammengefasst dargestellt. Tabelle 9: Standard Security Policy Einstellungen von JSPWiki, entnommen aus [JSPWiki 2008] Zugriffsrechte Anonym Asserted Authentifiziert Admin Alle Seiten betrachten x x x x Alle Seiten Editieren x x x x Upload von Attachments x x Alle Seiten modifizieren x x Kommentare schreiben x x x x Neue Seiten erstellen x x x x x x Seiten umbenennen Seiten löschen x Alle Gruppen betrachten x x x Alle Gruppen editieren x x Alle Gruppen umbenennen x x Alle Gruppen löschen x Neue Gruppen erstellen x x x x Editieren der User Präferenzen x x Editieren des User Profils x x Neues profil erstellen x x 7 Implementierung 7.2 93 Anpassungen und Featureset Wie schon in Kapitel 6 dieser Arbeit beschrieben, konnte festgestellt werden, dass sich das JSPWiki am Besten dazu eignet, das Konzept Austria-Forum in technischer Hinsicht zu realisieren, denn sind bereits (fast) alle gewünschten Funktionen vorhanden um darauf aufbauen zu können. Aus diesem Grund wurde das JSPWiki auch weitestgehend in seiner Standardkonfiguration übernommen. In den hier folgenden Kapiteln nun eine Zusammenfassung dessen, was bis dato (Stand: 14 Jänner 2009) implementiert wurde und was das System zu leisten vermag. 7.2.1 Strukturierung von Daten Um Beitragsstrukturierungen vorzunehmen, bietet das JSPWiki standardmäßig die Möglichkeit an, Kategorien über ein (Category) Plugin zu definieren. Doch musste festgestellt werden, dass diese Option nicht dafür eignet ist, um auch auf FilesystemEbene Strukturierungen vorzunehmen. Da das System eine Kategorisierung sowohl auf Anwenderebene als auch auf Systemebene möglich machen soll, mussten deshalb eine Reihe von Anpassungen vorgenommen werden. Die gewünschte URL Notation wurde wie folgt definiert: Listing 14: URL Codierung http://www.austria-forum.org/<CategoryName> http://www.austria-forum.org/<CategoryName>/<CategoryName>/... Die Abbildung auf Filesystem-Ebene wurde ähnlich definiert, denn wird für jeden CategoryName ein gleichnamiges Verzeichnis erstellt. Des Weiteren wurde definiert, dass Inhalte einer Wiki-Page als Textdateien auf gleicher Ebene wie das CategoryNameVerzeichnis abgelegt werden sollen. Listing 15: Die angepasste Verzeichnisstruktur des JSPWikis <WebRootDir>/<CategoryName> <WebRootDir>/<CategoryName>.txt Um diese Form der Datenspeicherung und Verwaltung zu unterstützen, mussten an zwei wesentlichen Stellen im Code Änderungen vorgenommen werden. Die erste Änderung erfolgte in der Klasse MarkupParser. Um auch eine Slashdot Notation für die URL Eingabe zu ermöglichen, mussten die beiden Konstanten LEGA- 7 Implementierung 94 CY_CHARS_ALLOWED und PUNCTUATION_CHARS_ALLOWED um dieses Element erweitert werden. Listing 16: Die Konstanten LEGACY_CHARS_ALLOWED und PUNCTUATION_CHARS_ALLOWD protected static final String LEGACY_CHARS_ALLOWED = “._/”; public static final String PUNCTUATION_CHARS_ALLOWED = “ ()&+,-=._$/”; Die größten Anpassungen mussten aber an der Klasse AbstractFileProvider vorgenommen werden. So wurden beispielsweise die Methoden findPages, getPageCount und getAllPages abgeändert, um das gewünschte Konzept zu unterstützen. Listing 17: Die Methoden findPages, getPageCount und getAllPages public Collection findPages(QueryItem[] query); public int getPageCount(); public Collection getAllPages() throws ProviderException; Des Weiteren wurden die zwei Methoden getAllCategoryPages und getTotalCategoryPageCount hinzugefügt, um einerseits die Möglichkeit zu schaffen alle Sub-Kategorien als Collection auslesen und andererseits, um zu erfahren wie viele Sub-Kategorien existieren. Listing 18: Die Methoden getAllCategoryPages und getTotalPageCount public Collection getAllCategoryPages(String category) throws ProviderException; public int getTotalCategoryPageCount (String category) throws ProviderException; Um diese Methoden global zugänglich zu machen, wurde die Interface-Klasse WikiPageProvider und PageManager dementsprechend erweitert. Auf Grund dieser Anpassungen ist es nun möglich, einerseits dem User strukturierte und vor allem leicht zu lesende URLs zur Verfügung zu stellen und andererseits Daten in einer übersichtlichen Form auf Filesystem-Ebene abzulegen, welche zudem leicht exportiert und verschoben werden können. 7 Implementierung 95 7.2.2 Navigation und Browsing Anders als beim alten System wurde besonderen Wert darauf gelegt, dass das neue System hinsichtlich Navigation und Browsing leicht zu bedienen ist. So kann auf Grund der architektonischen Gegebenheiten des JSPWikis ein herkömmliches Navigieren über die Browser-Buttons Back und Forward vollzogen werden. Auch wenn noch kein eigenes Menüfeld existiert (dieses ist bereits in Bearbeitung), stehen zurzeit eine Reihe von Browsing Konzepten zur Verfügung: Das Konzept des • FlatBrowsings (siehe Sequenz, ImageList und List Plugin) • Structure-Guided-Browsings (siehe CategoryIndexPlugin und GlossaryPlugin) • Hypertext-Browsings (wird standardmäßig vom JSPWiki unterstützt) • Tabbed-Browsings (siehe TabbedGlossaryPlugin) Des Weiteren wurde eine „Bread-Crumbs“-Funktion (siehe CategoryPathTag) implementiert, um ein leichteres Navigieren und Orientieren im System zu ermöglichen. 7.2.2.1 Das Sequenz, ImageList und List Plugin Um dem User die Möglichkeit zu geben, auch ebenenweise durch das System zu browsen, wurden drei wesentliche Plugins implementiert. Das erste und vielleicht wichtigste trägt den Namen List und ermöglicht es, aus einer Kategorie eine Listendarstellung zu generieren, wobei die Option besteht selbst eine Sequenz zu definieren. Für das Einbinden dieses Plugins ist folgende Syntax zulässig: Listing 19: Das List Plugin [{list category=‘<CategoryName>’}] [{list category=‘<CategoryName>’ sequenz=‘<Wikipage1>,<Wikipage2>,...’}] Für das sequenzielle Durchlaufen an eine Wiki-Seite angehängter Bilddaten steht das Plugin ImageList zur Verfügung. Es ist recht einfach gehalten, denn werden für die Konfiguration keine zusätzlichen Parameter benötigt: Listing 20: Das ImageList Plugin [{ImageList}] 7 Implementierung 96 Das letzte Plugin aus der Serie der Sequenz-Plugins trägt den passenden Namen Sequenz und ist dafür zuständig, aus einer Linkliste eine Sequenzansicht zu generieren. Da es leider nicht möglich ist, über ein Plugin den kompletten Pageview zu manipulieren, musste zusätzlich ein Filter ListFilter implementiert werden, dessen Aufgabe es ist, Wikilinks zu eliminieren. Um den Filter nicht an eine bestimmte Klasse zu binden, wurde die Datei filter.xml mit dem unten dargestellten Zusatz ergänzt, um das Aufrufen dieser Methode dem FilterManager zu überlassen. Listing 21: Ergänzungen für die Methode ListFilter in der Datei filter.xml <pagefilters> <filter> <class>com.ecyrd.jspwiki.ListFilter</class> </filter> </pagefilters> Um nun eine Sequenz aus mehreren Links zu erzeugen, muss das Plugin Sequenz als erstes Element in eine Seite eingebunden werden. Mehr ist hierfür nicht notwendig, denn das Plugin sucht selbst nach enthaltenen Linkstrukturen und stellt diese als Sequenz dar. Listing 22: Das Sequenz Plugin [{Sequenz}] [WikiLink] [WikiLink] … 7 Implementierung 97 Abbildung 24: Ausgabe des List Plugins Die Vorteile dieser Methode liegen auf der Hand, denn kann aus jeder beliebigen Linkliste eine Sequenz durch das einfache Hinzufügen des Plugins Sequenz erzeugt werden. Des Weiteren muss keine eigene Routine entwickelt werden, um Beiträge aus einer Sequenz zu löschen oder zu verschieben, denn genügt hierfür ein schlichtes Löschen eines Links oder das Einfügen an der gewünschte Position. 7.2.2.2 Das CategoryIndexPlugin und GlossaryPlugin Um ein strukturiertes Browsen im System zu ermöglichen, wurden im Wesentlichen zwei Plugins implementiert, das CategoryIndexPlugin und das GlossaryPlugin. Beim CategoryIndexPlugin handelt es sich um eine Möglichkeit, eine Indexansicht einer Kategorie zu erzeugen. Es ist recht simpel gehalten und kann es mit folgendem Befehl in einer Seite eingebunden werden: Listing 23: Das CategoryIndexPlugin [{CategoryIndexPlugin category=‘<CategoryName>’}] Das GlossaryPlugin stellt eine Möglichkeit zur Verfügung, um eine Glossaransicht aus einer bestimmten Kategorie zu erzeugen. Syntaktisch dem CategoryIndexPlugin sehr 7 Implementierung 98 ähnlich, steht ein zusätzlicher Parameter col zur Verfügung um die Spaltenanzahl für die Ausgabe selbst zu definieren. Es wird folgendermaßen zum Einsatz gebracht: Listing 24: Das GlossaryPlugin [{GlossaryPlugin category=‘<CategoryName>’ col=‘<SpaltenAnzahl>’}] 7.2.2.3 Das TabbedGlossaryPlugin Eine etwas abgewandelte Form des herkömmlichen GlossaryPlugins stellt das so genannte TabbedGlossaryPlugin da. Es bietet die Möglichkeit an, aus einer Kategorie eine Glossaransicht zu erstellen, welche einzelne Beitragsgruppen über Tabs zusammenfasst. Vor allem um große Datenbestände zu visualisieren, eignet sich dieses Plugin besonders gut. Die zu Grunde liegenden syntaktischen Regeln für die Verwendung diese Plugins lauten wie folgt: Listing 25: Das TabbedGlossaryPlugin [{TabbedGlossaryPlugin category=‘<CategoryName>’}] Abbildung 25: Ausgabe des GlossaryPlugins 7 Implementierung 99 Abbildung 26: Ausgabe des TabbedGlossaryPlugins 7.2.2.4 Das CategoryPathTag Wie schon zuvor erwähnt, wurde auch die Möglichkeit geschaffen über eine „BreadCrumbs“-Funktion im System zu navigieren (siehe Abbildung 27 (links oben)). Für diesen Zweck wurde eine eigene Klasse mit dem Namen CategoryPathTag abgeleitet von der Klasse WikiTag implementiert. Um diese Funktion global zur Verfügung zu stellen, war es notwendig, die Library-Datei jspwiki.tld mit dem in weiterer Folge dargestellten Eintrag zu ergänzen. Listing 26: Ergänzungen für das Tag CategoryPath <tag> <name>CategoryPath</name> <tagclass>com.ecyrd.jspwiki.tags.CategoryPathTag</tagclass> <bodycontent>empty</bodycontent> <attribute> <name>seperator</name> <required>false</required> </attribute> </tag> 7 Implementierung 100 Eingebunden wird das CategoryPathTag über das WikiTag: Listing 27: Das CategoryPath Tag <wiki:CategoryPath> 7.2.3 Searching Bezüglich der Suche wurde jegliche Funktionalität des JSPWikis übernommen. Anders als im ursprünglichen System steht dem User also nur mehr ein wesentliches SuchKonzept zur Verfügung und zwar das der „dynamischen Ajax basierten Suche“. Auch wenn dem User ein globales Schnellsuchefeld zur Verfügung steht und zudem eine eigene Search-Page existiert, so ist das Grundprinzip immer das Gleiche: Wird ein Tastenanschlag im Suchfeld erkannt, so wird im Hintergrund über die Methode XMLHttpRequest eine Suchanfrage an den Server gesendet und vom JSPWiki verarbeitet. Sobald Ergebnisse vorliegen, werden diese zusammen mit den Rankingergebnissen zurück zum User geschickt und zur Anzeige gebracht. Auch wenn es sich hierbei um eine herkömmliche Server/Client-Kommunikation handelt und die Methodik der Suche an sich identisch zur klassischen Suchanfrage ist, so unterscheidet sie sich dadurch, dass der Informationsaustausch im Hintergrund stattfindet, mit der Eingabe eines neuen Zeichens passiert und kein neues Laden einer Seite von Nöten ist. Was den Suchbereich anbelangt, so stehen insgesamt fünf Optionen zur Verfügung. Es kann entweder gezielt nach Autoren, Beitragsnamen und Anhangsnamen gesucht werden oder aber auch nach Seiteninhalten und in allen vier Feldern zugleich. Standardmäßig wird die letzte Variante angeboten. 7 Implementierung 101 Abbildung 27: Die Ajax basierte Schnellsuche Abbildung 28: Die Search-Page 7 Implementierung 102 7.2.4 Editieren und Erstellen von Beiträgen Auch die vier Methoden Editieren, Erstellen, Wiederherstellen und Vergleichen von Beiträgen wurden zur Gänze vom JSPWiki übernommen, da alle gewünschten Features schon standardmäßig unterstützt werden. Für das dezidierte Erzeugen eines neuen Beitrages muss zurzeit noch ein Broken-Link eingefügt werden, um zur Ansicht „Neue Seite erstellen?“ zu gelangen. Dieses Feature soll aber in Zukunft über ein eigenes Schaltelement dem User zugänglich gemacht werden, denn so ist diese Art der Seitenerstellung nicht allzu intuitiv. Für das Editieren von Beiträgen stehen dem User der Standardeditor Plaineditor und der WYSIWYG Editor FCKeditor zur Verfügung. Die für die Erstellung von Beiträgen wichtige Wiki-Syntax wurde weitgehend übernommen. Lediglich ein Style-Element um Tabellen leichter zu erstellen, wurde hinzugefügt. Tabelle 10: JSPWiki-Syntax, entnommen aus [JSPWiki 2008] Tag Beschreibung ---- make a horizontal ruler. Extra ‘-’ is ignored. \\ force a line break [link] create a hyperlink to an internal WikiPage called ‘Link’. [this is also a link] create a hyperlink to an internal WikiPage called ‘ThisIsAlsoALink’ but show the link as typed with spaces. [a sample|link] create a hyperlink to an internal WikiPage called ‘Link’, but display the text ‘a sample’ to the user instead of ‘Link’ ~NoLink disable link creation for the word in CamelCase. [1] make a reference to a footnote numbered 1. [#1] the footnote number 1. [link] create text ‘[link]’. !heading small heading with text ‘heading’ !!heading medium heading with text ‘heading’ !!!heading large heading with text ‘heading’ ‘‘text’’ print ‘text’ in italic. __text__ print ‘text’ in bold. {{text}} print ‘text’ in monospaced font. [text|] print ‘text’ underscored (dummy hyperlink) * text make a bulleted list item with ‘text’ # text make a numbered list item with ‘text’ ;term:ex make a definition for ‘term’ with the explanation ‘ex’ 7 Implementierung 103 7.2.5 Upload von Dateien Um externe Dateien einzubinden beziehungsweise zu sichern, steht dem User eine Upload-Funktion zur Verfügung. Auch dieses Modul wurde aus der Standardkonfiguration übernommen und ist über den Reiter „Anhänge“ zugänglich. Um beim Upload von größeren Datensätzen oder langsamen Internetverbindungen nicht in Versuchung zu kommen den Datentransfer vorzeitig abzubrechen, wird ein Progress-Balken zur Anzeige gebracht. Ebenfalls auf dieser Seite zu finden ist eine Liste aller Anhänge sowie eine Reihe von Zusatzinformationen wie Autoren, Versionen und so weiter. Abbildung 29: Das Tab „Anhänge“ 7.2.6 Das „Info“ Tab Um Beiträge wieder herzustellen oder miteinander zu vergleichen sowie allgemeine Beitragsinformationen zu erhalten, steht ein eigens ausgeführtes Tab mit der Aufschrift „Info“ zur Verfügung. Dort ist eine Diff-Funktion, um Beiträge mit einander zu vergleichen, und eine Revisions-Funktion, um Artikel wieder herzustellen, zu finden. Aber auch eine dezidierte Liste aller ein- und ausgehender Links, Seitenversionen und Zusatzinformationen wie Beitragserzeuger, Datum, Größe, Kommentar ist vorhanden. 7 Implementierung 104 Abbildung 30: Das Tab „Info“ 7.2.7 Kommunikation Bezüglich der Kommunikation steht dem User zurzeit nur ein Mittel zur Verfügung. Über den Reiter „Weitere…“ gelangt dieser zur Kommentarfunktion. Ein Beitrag wird mit dem Standardeditor erstellt und dem Artikel angehängt. Es wurde bewusst darauf verzichtet, eine Chatfunktion zu implementieren, denn wurde diese Funktion im alten System ein einziges Mal (vom Autor dieser Arbeit) genutzt. Was in Zukunft noch implementiert werden wird, sind Möglichkeiten der Diskussion über ein eigens dem Beitrag angehängtes Forum sowie die Option einen Weblog zu erstellen. 7.2.8 Zugriffsrechte Hinsichtlich der Zugriffsrechte wurden weitgehend alle Standardkonfigurationen des JSPWikis übernommen, somit können auch nicht registrierte Benutzer Beiträge verfassen und kommentieren. Was aber zusätzlich noch eingeführt wurde, ist eine eigene Gruppe „Editoren“, welcher dieselben Rechte zugeteilt wurde wie der Gruppe „Admin“. Des Weiteren wurden auf Kategorieebene ACLs mit der Konfiguration [{ALLOW edit=‘Editoren’}] eingeführt, um zu verhindern, dass herkömmliche User an der Strukturierung Änderungen vornehmen können. Das Gleiche geschah auch mit den vom alten System übernommenen Beiträgen. 7 Implementierung 105 7.2.9 Authentifizierung und Profilverwaltung Hinsichtlich des Authentifizierungsmechanismus und der Profilverwaltungen konnten auch diese beiden Komponenten aus der Standardkonfiguration übernommen werden. Abbildung 31: Das Anmeldeformular Abbildung 32: Die Profilansicht 7 Implementierung 106 Um sich also mit dem System zu identifizieren, steht ein eigens ausgeführtes Schaltelement („Anmelden“) zur Verfügung. Über den Reiter „Neuen Benutzer registrieren“ kann ein neuer Account angelegt werden, wobei Benutzername, Passwort und Name verpflichtend sind. Die Möglichkeit der Eingabe einer Emailadresse ist vorhanden und wird dahingehend genutzt, um vergessene oder verloren gegangene Passwörter den Usern automatisiert zukommen zu lassen (siehe Reiter „Neues Passwort anfordern). Über den Button „Meine Einstellungen“ steht dem User eine Profilansicht zur Verfügung. Neben herkömmlichen Einstellungsmöglichkeiten wie Zeitzone, Zeitformat und unzähligen weiteren Features, können auch Einstellungen hinsichtlich des gewünschten Seiten-Templates oder Editors getroffen werden. 7.2.10 PDF-Export und Drucken von Beiträgen Um Beiträge in das Format PDF zu konvertieren, wurde im Menüpunkt „Weitere…“ ein Punkt „Seite als PDF anzeigen“ definiert. Diese Feature ist standardmäßig nicht im JSPWiki enthalten, konnte aber leicht durch das auf der JSPWiki Homepage zur Verfügung stehende PDFPlugin implementiert werden. Ergänzungen mussten lediglich in den Dateien web.xml und ViewTemplate.jsp vorgenommen werden. Listing 28: Ergänzungen in der Datei web.xml für das Einbinden des Plugins PDFPlugin <servlet> <servlet-name>Wiki2PDFServlet</servlet-name> <servlet-class> com.palbrattberg.jspwiki.Wiki2PDFServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>Wiki2PDFServlet</servlet-name> <url-pattern>/wiki.pdf</url-pattern> </servlet-mapping> Listing 29: Ergänzungen in der Datei ViewTemplate.jsp <a href=“wiki.pdf?page=<wiki:Variable var=“pagename”/>&ext=.pdf”> Seite als PDF anzeigen</a> 7 Implementierung 107 Bezug nehmend auf das Drucken von Beiträgen mussten keine Anpassungen vorgenommen werden, denn wird standardmäßig ein durchdachtes CSS-Print Konzept unterstützt. Abbildung 33: Die Druckansicht 7.2.11 Sperren/Verbergen von Beiträgen und das Qualitätsgütesiegel Um Beiträge zu sperren oder zu verbergen wurde das eingebaute Konzept der Access Control Listen übernommen. Es steht also jedem User frei, wie Beiträge behandelt werden sollen. Zuzüglich wurde noch ein Plugin mit dem Namen AProoved eingeführt, um gesperrte Beiträge mit einem Qualitätsgütesiegel zu versehen und um diese einzufrieren, das heißt, ein nachträgliches Ändern ist nur noch auf Systemebene möglich. Für das Einfügen dieses Plugins ist folgende Syntax zulässig: Listing 30: Das AProoved Plugin [{AProoved name=‘<LoginName>’}] 7 Implementierung 108 Dieses Plugin kann zurzeit noch von jedem User verwendet werden. Ein entsprechender Filter ist aber bereits in Entwicklung. 7.2.12 Daten Import Auch wenn das Datenimport-Modul kein explizites Feature des Austria-Forums-Neu darstellt, so sollte diese Funktion trotz dessen an dieser Stelle genannt werden. Um sämtliche Datensätze des alten Systems dem neuen zugänglich zu machen, wurde, wie schon angedeutet, ein eigenes Datenimport-Modul implementiert. Hierfür wurden eine Reihe von Konvertierungsroutinen entwickelt, vor allem um alte Beiträge hinsichtlich ihrer Strukturierung und dem zu Grunde liegenden Format anzupassen. Für die Konvertierung von HTML in JSPWiki-Syntax wurde das OpenSource Projekt Bliki39 zum Einsatz gebracht. Auch wenn es sich hierbei um eine JAVA API handelt, welche speziell dafür entwickelt wurde, um Mediawiki Dokumente offline zu editieren, werden mittlerweile eine Reihe von Wiki-Syntaxen unterstützt. Darunter auch ein HTML2JSPWiki Konverter, welcher erweitert wurde und sich im Daten-Import-Modul wieder findet lässt. 7.2.13 RSS-Feeds Zu guter Letzt wurde ein RSS-Feed Dienst eingerichtet. Da diese Funktion standardmäßig im JSPWiki inkludiert, aber nicht aktiviert ist, musste hierfür im jspwiki.properties File der Parameter jspwiki.rss.generate=true gesetzt werde. Die restlichen Einstellungen wurden übernommen, womit also alle 3600 Sekunden eine Aktualisierung des RSS-Files stattfindet und unter der Adresse <WebRootDir>/rss.rdf zur Verfügung steht. 39 http://matheclipse.org/en/Java_Wikipedia_API 8 Konklusion 8 109 Konklusion Auch wenn zu Beginn dieser Arbeit klar war, dass das alte System in seiner jetzigen Form so nicht weiter existieren kann, war es doch erstaunlich festzustellen, dass das Konzept „Austria-Forum - eine zitierfähige Community geprägte Online-Enzyklopädie“ mit einem Wiki-System umgesetzt werden kann. Vor allem wenn man bedenkt, welche Kritikpunkte Wikis des Öfteren zu Teil werden: „Wikis produzieren nicht zitierfähige Beiträge“, „Wikis verletzten das Copyright“ oder „Wikis sind von minderer Qualität“ sind Beispiele dafür, wie sie des Öfteren zu hören sind. Doch wie schon in dieser Arbeit beschrieben, sollten diese Kritikpunkte nicht pauschalisiert werden, denn ist zu unterscheiden, ob es sich um ein offenes oder ein geschlossenes System handelt. Das Wiki-System JSPWiki ist ein gutes Beispiel hierfür, dass auch das Gegenteil funktioniert. Vor allem ein ausgeklügeltes Security Modul erlaubt es, dass Community- und Expertengemeinden nebeneinander existieren und agieren können. Zudem bietet das System alles an, was im alten nicht zur Verfügung stand beziehungsweise kritisiert wurde. So werden dezidierte Kontrollmechanismen auf User-Ebene unterstützt, um beispielsweise Beiträge zu verbergen oder selbst zu sperren. Ebenso wird das Navigieren über die Browserbuttons „Back“ und „Forward“ sowie ein einfach zu verwendendes Such-Paradigma angeboten. Des Weiteren können Beiträge gedruckt oder im Format PDF exportiert werden. Aber auch was die Erweiterungsmöglichkeiten anbelangt, ist das JSPWiki (und die meisten heute bekannten Wiki-Systeme) vorbildlich. So existiert die Möglichkeit, über ein ausgeklügeltes Plugin-Konzept das System in funktionaler Hinsicht fast an jegliche Bedürfnisse anzupassen. Und auch wenn es einmal nicht möglich sein sollte, eine Funktion „schnell“ über ein Plugin zu implementieren, so hilft die vorbildliche Codebase und eine ausführliche Dokumentation weiter, um das Problem auf schnellstem Weg zu lösen. Wenn auch noch kein dezidiertes Userfeedback vorliegt, muss aus technischer Sicht gesagt werden, dass das System in jeglicher Hinsicht dem alten überlegen ist, weshalb auch in dem Zeitraum, in dem diese Diplomarbeit entstanden ist, die Entscheidung getroffen wurde, das hier vorgestellte Konzept zu übernehmen. 9 Ausblick 9 110 Ausblick Wie sich das System und das Konzept Austria-Forum in Hinblick auf die immer größer werdende Konkurrenz (vgl. Google Knol40) am Marktplatz Internet etablieren wird, bleibt natürlich offen. Aus technischer Sicht sollte aber einem Erfolg nichts im Wege stehen, denn das System vereint die Vorzüge eines Wikis wie beispielsweise Benutzerfreundlichkeit, gutes Suchmaschinenranking, Community, etc. mit den Vorzügen einer Enzyklopädie im klassischen Sinn. Auch wenn bereits alle Funktionen vorhanden sind, um das System als eine „zitierfähige Community-geprägte Online-Enzyklopädie mit vorwiegend österreichischen Inhalten“ bezeichnen zu können, bleibt auch in Zukunft Einiges zu tun. So wird beispielsweise die Möglichkeit geschaffen werden, Beiträge mit Meta-Daten zu versehen, um Suchergebnisse noch besser präzisieren zu können. Des Weiteren wird ein Tagging-System implementiert werden, mit dem es möglich sein wird, Beiträge zusätzlich zur dezidierten Meta-Dateneingabe semantisch anzureichern. Darüber hinaus soll eine „Wikifizierung“ des Systems stattfinden, um ein schnelleres Navigieren durch das Wiki zu ermöglichen, und eine Implementierung einer Reihe von weiteren Features, um das System auch in Zukunft am Marktplatz Internet zu etablieren. 40 http://knol.google.com Literatur 111 Literatur [Akscyn et al. 1987] Akscyn R., McCracken D., Yoder E., KMS: a distributed hypermedia system for managing knowledge in organizations, Proceeding of the ACM conference on Hypertext, p. 1-20, Chapel Hill, North Carolina, United States, November 1987 [AEIOU 2008] Annotierbares Elektronisches Interaktives Oesterreichisches UniversalInformationssystem (Aeiou), www.aeiou.at (Datum des letzten Zugriffs: 12. Jänner 2009) [AF 2008] Austria-Forum, http://www.austria-forum.org (Datum des letzten Zugriffs: 12. Jänner 2009) [Aigner et al. 2007] Aigner W., Hinum K., Miksch S., InfoVis:Wiki - Eine Informations- und Diskussionsplattform für die InfoVis-Community, 2007, http://www.donauuni.ac.at/imperia/md/content/department/ike/ike_publications/2007/contributionsinbook s/aigner_2007_infovis-wiki.pdf [Alexa 2009] Alexa the Web Information Company, http://www.alexa.com (Datum des letzten Zugriffs: 12. Jänner 2009) [Alexander 2008] Alexander, Die Wissensgemeinde, http://www.iicm.tugraz.at/ask-lex (Datum des letzten Zugriffs: 12. Jänner 2009) Literatur 112 [Amikelive 2008] Amikelive.com, Whitepaper, Some Issues on Ajax Invocation, 2008, http://tech.amikelive.com/whitepapers/Some_Issues_on_Ajax_Invocationwhitepaper.pdf (Datum des letzten Zugriffs: 12. Jänner 2009) [Andrews 2008] Andrews K., Human-Computer Interaction, Vorlesung, Technische Universität Graz, 2008, http://courses.iicm.tugraz.at/hci/hci.pdf [Augar et al. 2004] Augar N., Raitman R., Zhou W., Teaching and learning online with wikis, School of Information Technology Deakin University, 2004 [Baumgartner 2005] Baumgartner P., Wie man das richtige Content Management Tool für ein bestimmtes Lernmodell auswählt, Fernuniversitaet in Hagen, Institute for Educational Science and Media Research (IfBM), Mai 2005, http://www.irrintzi.net/doks/lernparadigCMS.pdf (Datum des letzten Zugriffs: 12. Jänner 2009) [Bichlmeier 2006] Bichlmeier Ch., „Wer sucht, der findet - oder auch nicht.“ Hilfsmittel, Methoden und Probleme bei der Online-Recherche im Fach Geschichte, Diplomarbeit, Universität Passau, 2006 [CMSReview 2009] CMS-Review, Content Management Systems, http://www.cmsreview.com (Datum des letzten Zugriffs: 12. Jänner 2009) [Cal et al. 2008] Cal D., Eidenberger H., Ludewig M., Mintert S., Schulz C., Spanneberg B., Völkl G., v.d. Heyden R., Sechs exemplarische Wiki-Engines, Mit heißer Feder, IX, Magazin für professionelle Informationstechnik, Heft 12, Dezember 2008 Literatur 113 [Cyganiak 2002] Cyganiak R., Wiki und WCMS: Ein Vergleich. Hausarbeit im Rahmen des Seminars „Content Management - Einführung in Theorie und Praxis“ von Tobias MüllerProthmann, Freie Universität Berlin, Institut für Publizistik- und Kommunikationswissenschaft, Mai 2002, http://richard.cyganiak.de/cm/wiki_und_wcms.pdf (Datum des letzten Zugriffs: 12. Jänner 2009) [C2 2008a] C2.com, Wiki Wiki Origin, http://c2.com/cgi/wiki?WikiWikiOrigin (Datum des letzten Zugriffs: 20. Dezember 2008) [C2 2008b] C2.com, Wiki History, http://c2.com/cgi/wiki?WikiHistory (Datum des letzten Zugriffs: 20. Dezember 2008) [C2 2008c] C2.com, Why Wiki Works, http://c2.com/cgi/wiki?WhyWikiWorks (Datum des letzten Zugriffs: 20. Dezember 2008) [C2 2008d] C2.com, Why Doesnt Wiki Do Html, http://c2.com/cgi/wiki?WhyDoesntWikiDoHtml (Datum des letzten Zugriffs: 20. Dezember 2008) [C2 2008e] C2.com, Wiki Engines, http://c2.com/cgi/wiki?WikiEngines (Datum des letzten Zugriffs: 20. Dezember 2008) [Cunningham 2003] Cunningham W., Correspondence on the Etymology of Wiki, November 2003, http://c2.com/doc/etymology.html (Datum des letzten Zugriffs: 12. Jänner 2009) Literatur 114 [Cunningham 2008] Cunningham W., Why Wiki Works, C2.com http://c2.com/cgi/wiki?WhyWikiWorks (Datum des letzten Zugriffs: 12. Jänner 2009) [Désiltes et al. 2005] Désilets A., Paquet S., Vinson N.G., Are wikis usable?, Proceedings of the 2005 international symposium on Wikis, p. 3-15, October 16-18, San Diego, California, 2005 [DMOZ 2009] DMOZ, Open Directory - Computers: Software: Internet: Site Management: Content Management, http://www.dmoz.org/Computers/Software/Internet/Site_Management/Content_Manage ment/ (Datum des letzten Zugriffs: 12. Jänner 2009) [Dokuwiki 2008] Dokuwiki, http://www.dokuwiki.org/dokuwiki (Datum des letzten Zugriffs: 12. Jänner 2009) [Doyle 2008] Doyle B., Weblog, http://www.bobdoyleblog.com/ (Datum des letzten Zugriffs: 12. Jänner 2009) [Doyle 2005] Doyle B., How many CMS are there?: msg#00035, osdir.com, http://osdir.com/ml/cms.cms-forum.general/2005-08/msg00035.html (Datum des letzten Zugriffs: 12. Jänner 2009) [Dué et al. 2008] Dué R., Tidwell J., Vollmann D., Pattern 35: Back button, AKA: Go back one step (Tidwell), 2008, http://www.trireme.com/WU/wup35.htm (Datum des letzten Zugriffs: 12. Jänner 2009) Literatur 115 [Ebersbach et al. 2007] Ebersbach A., Glaser M., Heigl R., Warta A.,Wiki - Kooperation im Web, Springer, Auflage: 2. Auflage, Berlin, Oktober 2007 [Ferner 2004] Ferner J., PHP-Nuke - Eine Empfehlenswerte Enterprise-Lösung?, Gegenüberstellung der Vor- und Nachteile im Vergleich zu kommerziellen Lösungen, Netskill AG, www.competence-site.de, Juni 2004 [Fiebig 2005] Fiebig H., Wikipedia, Das Buch Aus der freien Enzyklopädie Wikipedia, WikiPress 1, Originalausgabe, p. 20, November 2005 [Frank 2007] Frank H., Manipulationen an der Online-Enzyklopädie, Die CIA und der WikipediaVandalismus, RP Online, WASHINGTON, August 2007 [Fuecks 2004] Fuecks H., Pick of the Wikis: Dokuwiki, sitepoint.com, Oktober 2004, http://www.sitepoint.com/blogs/2004/10/11/pick-of-the-wikis-dokuwiki/ (Datum des letzten Zugriffs: 12. Jänner 2009) [Garrett 2005] Garrett J. J., Ajax: A New Approach to Web Applications, Februar 2005, http://www.adaptivepath.com/ideas/essays/archives/000385.php (Datum des letzten Zugriffs: 12. Jänner 2009) [GNU 2008] GNU, Licenses - GNU GPL, GNU LGPL, GNU FDL, General Public License, Lesser General Public License, Free Documentation License, List of Free Software Licenses, http://www.gnu.org/licenses/ (Datum des letzten Zugriffs: 12. Jänner 2009) Literatur 116 [Gründerwiki 2008] Gründerwiki, Warum Wiki-Funktioniert, http://www.wikiservice.at/gruender/wiki.cgi?WarumWikiFunktioniert (Datum des letzten Zugriffs: 12. Jänner 2009) [Goeßmann 2006] Goeßmann D., WIKIMANIA-TAGUNG 2006, Elefanten überrennen Lexikon, Cambridge, http://www.spiegel.de/netzwelt/web/0,1518,430440,00.html (Datum des letzten Zugriffs: 12. Jänner 2009) [Guetl 2008] Guetl C., Information Search and Retrieval, Vorlesung, Block 01: Basics in IR, Technische Universität Graz, 2008, http://www.iicm.tugraz.at/cguetl/courses/isr/vo/folien/block01_v1_3.pdf [Haber 2005] Haber P., „‘Google-Syndrom’. Phantasmagorien des historischen Allwissens im World Wide Web“, Geschichte und Informatik/Histoire et Informatique. Vom Nutzen und Nachteil des Internet für die historische Erkenntnis, vol. 15, pp. 73-89, 2005 [Helic et al. 2008] Helic D., Maurer H., White B., AUSTRIA-FORUM: A CITABLE WEB ENCYCLOPEDIA, IADIS International Conference WWW/Internet, 2008 [Heise 2008] Heise Online, Twiki.net vs. NextWiki: Freie Entwickler gehen eigene Wege, Oktober 2008, http://www.heise.de/newsticker/Twiki-net-vs-NextWiki-Freie-Entwickler-geheneigene-Wege--/meldung/118143 (Datum des letzten Zugriffs: 12. Jänner 2009) [JSPWiki 2008] JSPWiki, http://www.jspwiki.org (Datum des letzten Zugriffs: 12. Jänner 2009) Literatur 117 [JSPWikiDoc 2008] JSPWiki Dokumentation, http://doc.jspwiki.org/2.4/ (Datum des letzten Zugriffs: 12. Jänner 2009) [Johnson 2005] Johnson S., Everything Bad is Good for You: How Popular Culture is Making Us Smarter, London: Allen Lane, 2005 [Krötzsch et al. 2007] Krötzsch M., Vrandecic´ D., Völkel M., Haller H., Studer R., SemanticWikipedia, Web Semantics: Science, Services and Agents on the World Wide Web (2007), doi:10.1016/j.websem.2007.09.001, http://www.websemanticsjournal.org/papers/20071025/SemanticWikiKrotzschV5I4.pdf [Leuf und Cunningham 2001] Leuf B., Cunningham W., The Wiki Way, Quick Collaboration on the Web, AddisonWesley, New York, 2001 [Lombardi 2006] Lombardi C., Wikipedia: Stop citing our site, CNET News Blog, Juni 2006, http://news.cnet.com/8301-10784_3-6084715-7.html?tag=txt (Datum des letzten Zugriffs: 12. Jänner 2009) [Mahrbach 2008] Marbach W., TWiki: Installieren * Konfigurieren * Administrieren, C & l Computer- U. Literaturverlag, November 2008 [Maurer et al. 2007] Maurer H., Balke T., Kappe F., Kulathuramaiyer N., Weber S., Zaka B., Report on dangers and opportunities posed by large search engines, particularly Google , Report, September 2007 Literatur 118 [Mediawiki 2008] MediaWiki, http://www.mediawiki.org/wiki/MediaWiki (Datum des letzten Zugriffs: 12. Dezember 2008) [Moeller 2003] Möller E., Das Wiki-Prinzip, Tanz der Gehirne Teil 1, Heise Zeitschriften Verlag, Mai 2003, http://www.heise.de/tp/r4/artikel/14/14736/1.html (Datum des letzten Zugriffs: 12. Jänner 2009) [Moeller 2003b] Möller E., Schreibwerkstätten, Fünf Wiki-Engines im Vergleich, C’T, Heft 25, 2003 [Neuberg 2005] Neuberg B., AJAX: How to Handle Bookmarks and Back Buttons, O’Reilly onjava.com, Oktober 2005, http://www.onjava.com/pub/a/onjava/2005/10/26/ajax-handlingbookmarks-and-back-button.html (Datum des letzten Zugriffs: 12. Jänner 2009) [Nielsen 1996] Nielsen J., Why Frames Suck (Most of the Time), Jakob Nielsen’s Alertbox, useit.com, Dezember 1996, http://www.useit.com/alertbox/9612.html (Datum des letzten Zugriffs: 12. Jänner 2009) [Nielsen 1997] Nielsen J., Search and You May Find, Jakob Nielsen’s Alertbox, useit.com, Juli 1997, http://www.useit.com/alertbox/9707b.html (Datum des letzten Zugriffs: 12. Jänner 2009) [Nielsen et al. 2001] Nielsen J., Kara Pernice Coyne and Marie Tahir, Make it Usable, pcmag.org, http://www.pcmag.com/article2/0,1759,33821,00.asp (Datum des letzten Zugriffs: 12. Jänner 2009) Literatur 119 [Nielsen 2004] Nielsen J., Guidelines for Visualizing Links, Jakob Nielsen’s Alertbox, useit.com, Mai 2004, http://www.useit.com/alertbox/20040510.html (Datum des letzten Zugriffs: 12. Jänner 2009) [OPDCE 2008] The Oxford Pocket Dictionary of Current English, „wiki“, 2008, Encyclopedia.com, http://www.encyclopedia.com [Osman 2006] Osman-El Sayed R.,“Wiki-Systeme im eLearning“, Diplomarbeit, Goethe Universität Frankfurt am Main, 2006 [Pelka et al. 2007] Pelka B., Grote M., Kretzmann J., Röber H., Schmidt M., Vanzella K., Weißenborn M., Ein Mediawiki-Handbuch von Einsteigern für Einsteiger, Institut für Journalistik und Kommunikationsforschung (IJK) der Hochschule für Musik und Theater Hannover, 2007, http://www.ijk.hmt-hannover.de/fileadmin/www.ijk/pdf/aktuelles/wikihandbuch_080204.pdf [Pfister 2006] Pfister M., Swisscom, SchoolNetGuide, Jeder Leser auch ein Autor: Blogs und Wikis, SchoolNetGuide Nr. 9, Sommer 2006 [Pro 2008] Program-Transformation.Org, TWiki Installation Guide, http://www.programtransformation.org/TWiki/TWikiInstallationGuide (Datum des letzten Zugriffs: 12. Jänner 2009) [Raygan und Green 2002] Raygan R. E., Green D. G., Internet Collaboration: Twiki, IEEE SoutheastCon, April 2002 Literatur 120 [Richardson 2008] Richardson W., Blogs, Wikis, Podcasts, and Other Powerful Web Tools for Classrooms (Taschenbuch) Corwin Press; Auflage: 0002, September 2008 [Rosenzweig 2006] Rosenzweig R., Can History Be Open Source?, Wikipedia and the Future of the Past, The Journal of American History, Juni 2006 [Schaffert et al. 2006] Schaffert S., Gruber A., Westenthaler R., „A SEMANTIC WIKI FOR COLLABORATIVE KNOWLEDGE FORMATION”, Knowledge-based Information Systems Group, Salzburg Research, Austria, 2006 [Seibert 2008] Seibert M., Wikis im Intranet Teil 1: MediaWiki und TWiki - sehr ausgereifte Systeme für sehr unterschiedliche Anforderungen, Perl Magazin, Mai 2008 [Smith und Sauer 2006] Smith Ch., Sauer Ch., Open Source Wiki Engine Popularity, Hochschule Heilbronn, August 2006, http://www.i3g.hsheilbronn.de/attach/WikiMarkupStandard/WikiPopOS.pdf [Stenhouse 2005] Stenhouse M., Fixing the Back Button and Enabling Bookmarking for AJAX Apps, contentwithstyle , June 2005, http://www.contentwithstyle.co.uk/content/fixing-the-backbutton-and-enabling-bookmarking-for-ajax-apps (Datum des letzten Zugriffs: 12. Jänner 2009) [Twiki 2008] Twiki, http://www.twiki.org (Datum des letzten Zugriffs: 12. Jänner 2009) Literatur 121 [Tscholotfeldt 2008] Tschlotfeldt, E-Learning-Wiki: Wikis in Unternehmen, http://www.tschlotfeldt.de/elearning-wiki/Wikis_in_Unternehmen (Datum des letzten Zugriffs: 12. Jänner 2009) [Valeur et al. 2005] Valeur F., Mutz D., Vigna G., A Learning-Based Approach to the Detection of SQL Attacks, University of California, Santa Barbara, Springer Link, Juni 2005 [Wales 2005] Wales J., Lecture at Stanford University on 2 9 2005, Stanford, Transcribed by Harold Rheingold, answers.com, http://www.answers.com/topic/jimmy-wales-lecture-atstanford-university-on-2-9-2005 (Datum des letzten Zugriffs: 12. Jänner 2009) [Walker 1987] Walker J. H., Document Examiner: delivery interface for hypertext documents, Proceeding of the ACM conference on Hypertext, p. 307-323, Chapel Hill, North Carolina, United States, November 1987 [Weber 2007] Weber C., TWiki 4.1 Installationsanleitung, zungu.net, Februar 2007, http://zungu.net/blog/19/twiki-41-installationsanleitung/ (Datum des letzten Zugriffs: 12. Jänner 2009) [Wiebrands 2006] Wiebrands C., Collaboration and communication via wiki : The experience of Curtin University Library and Information Service., 2006. In Australian Library and Information Association 2006 Biennial Conference, Perth (Australia), p. 19 – 22, September 2006 [Wikimatrix 2008a] WikiMatrix, Most Comparisons, http://www.wikimatrix.org/statistic/Most+Comparisons (Datum des letzten Zugriffs: 12. Jänner 2009) Literatur 122 [Wikimatrix 2008b] WikiMatrix, http://www.wikimatrix.org (Datum des letzten Zugriffs: 12. Jänner 2009) [Wikimedia 2008] Wikimedia, Wikipedia-Statistik - Besucher pro Tag, http://stats.wikimedia.org (Datum des letzten Zugriffs: 12. Jänner 2009) [Wikiservice 2008] Wikiservice, Warum Wiki-Funktioniert, http://www.wikiservice.at/dse/wiki.cgi?WarumWikiFunktioniert (Datum des letzten Zugriffs: 12. Jänner 2009) [Wikipedia 2008] Wikpiedia - Wiki, http://de.wikipedia.org/wiki/Wiki (Datum des letzten Zugriffs: 12. Jänner 2009) [Zerfaß und Zimmermann 2004] Zerfaß A., Zimmermann H.J. (Hrsg.), Usability von Internet-Angeboten, Grundlagen und Fallstudien, Stuttgarter Beiträge zur Medienwirtschaft Nr. 10, pp. 69, Januar 2004 [Zschau et. al 2001] Zschau O., Traub D., Zahradka R., Web Content Management - Websites professionell planen und betreiben, Galileo Business, 2001 Anhang Vergleich der fünf Wiki-Systeme DokuWIki, FlexWiki, JSPWiki, MediaWiki und TWiki. Die folgenden Tabellen wurden mit dem auf wikimatrix.org verfügbaren Komparationstool erstellt. General Features DokuWiki FlexWiki JSPWiki MediaWiki TWiki Version 05.05.2008 2.0.0.199 02.08.2001 1.13.2 TWiki 4.2.4 Last Release Date 05.05.2008 14.02.2008 24.11.2008 02.10.2008 06.12.2008 Author Andreas Gohr Microsoft Apache Software Foundation Magnus Manske, Brion Vibber, Lee Daniel Crocker, Tim Starling, Erik Möller, and others. Peter Thoeny, TWiki community URL www.dokuwiki.org www.flexwiki.com www.jspwiki.org www.mediawiki.org twiki.org and www.twiki.net Free and Open Source Yes Yes Yes Yes Yes License GPL 2 Common Public License Apache License (CPL) GPL GPL Programming Language PHP C# Java PHP Perl Data Storage Files Files, DB Files, DB, RCS Database Files, RCS Anhang License Cost/ Fee 124 0 Development status Mature Intended Audience Free 0 0 $0, and subscriptions for support Mature Mature Mature Mature all End Users/Desktop, Education Large enterprise; small to medium businesses private, small to medium n/a companies System Requirements DokuWiki FlexWiki JSPWiki Operating System UNIX, Windows, MacOS X, probably others Windows XP, Vista, Server 2003 or 2008, LINUX any platform suppor- *nix, Windows, Mac ting JDK 1.5+ OS X Linux, Windows, OS-X and other Root Access No Yes No No No Webserver Apache, IIS, Lighttp, IIS (ASP.NET), anything with PHP APACHE (MONO) support any servlet 2.4+ compliant web server, e.g. Tomcat 5+, Jetty, Glassfish, Websphere Any with PHP support Almost any webserver, typically Apache 1.3/2.0 optional JavaMail none RCS (optional), cron/scheduler, fgrep, egrep; Plugins may have additional dependencies Other Requirements None MediaWiki TWiki Anhang 125 Datastorage DokuWiki FlexWiki JSPWiki MediaWiki TWiki MySQL No No Plugin Yes No PostgreSQL No No Plugin Yes No Oracle No No Plugin SQLite No No Plugin Yes No BerkeleyDB No No Plugin No No RCS No No Plugin No Yes Other None SQL Server 2000, 2005 or Express page provider archi- No tecture -> several implementations RcsLite Perl library for version control without external RCS; backend API for other storage DokuWiki FlexWiki JSPWiki MediaWiki TWiki Patch Yes No No Special Features Right-to-Left Support Yes Interface Languages 44 languages Not localized 8 languages 140 languages 16 languages Email notification Optional Yes Plugin Optional Yes Comments Plugin No Flat Discussion Pages Threaded Categories Plugin Yes Yes Yes Yes Anhang 126 Namespaces Yes Yes No Yes Yes Conflict Handling Page Locking Conflict Detection Page Locking Conflict Resolution Conflict Resolution Search Full Text Full Text Full Text Full Text Full Text Structured Data Plugin n/a Yes Plugin Yes DokuWiki FlexWiki JSPWiki MediaWiki TWiki Page Permissions Yes Yes Yes Yes Yes ACL Yes Yes Yes No Yes Authentication Backends Textfile, LDAP, MySQL, PostgreSQL Windows, Forms JAAS (ASPNET Providers) Yes Internal authentication; anything Apache supports such as LDAP, NIS, AD, Kerberos Host Blocking Plugin Yes Optional Yes Plugin Mail Encryption Optional No Plugin Plugin Yes nofollow Optional Yes Optional Optional Plugin Blacklist Optional Yes Yes Yes Plugin CAPTCHA Plugin Yes Yes Plugin Plugin Security/Anti-Spam Anhang 127 Development/Support DokuWiki FlexWiki JSPWiki MediaWiki TWiki Commercial Support Yes, 16 listed No Yes, 1 listed Yes, 32 listed Yes, 27 listed Preconfigured Hosting Yes No No Yes Yes Code Repository dev.splitbrain.org flexwiki.svn.sourceforge.net svn.apache.org svn.wikimedia.org twiki.org Issue Tracker bugs.splitbrain.org sourceforge.net issues.apache.org bugzilla.wikimedia.org twiki.org Mailing List www.freelists.org lists.sourceforge.net www.jspwiki.org lists.wikimedia.org twiki.org Support Forum forum.dokuwiki.org n/a please use mailing lists or issue tracker mwusers.com twiki.org IRC Channel www.dokuwiki.org n/a Freenode: #jspwiki www.mediawiki.org twiki.org DokuWiki FlexWiki JSPWiki MediaWiki TWiki Preview Yes Yes Yes Yes Yes Minor Changes Yes No No Yes Yes Change Summary Yes No Yes Yes Yes Page History Yes Yes Yes Yes Yes Common Features Anhang 128 Page Revisions Unlimited Unlimited Unlimited Unlimited Unlimited Revision Diffs Between all Between all Between all Between all Between all Page Index Yes Yes Yes Yes Yes Plugin System Yes Yes Yes Yes Yes DokuWiki FlexWiki JSPWiki MediaWiki TWiki HTML Tags Optional Plugin Optional Some All Math formulas Plugin No Plugin Yes Plugin Tables simple simple + complex simple + complex simple + complex simple + complex CREOLE support Plugin No Yes No No Markdown Support Plugin No No No No Textile Support Plugin Yes No No Plugin BBCode Support Plugin No No No No Emoticon Images Yes Yes Plugin Optional Plugin Syntax Highlighting Yes No Plugin Plugin Plugin Footnotes Yes Yes Yes Yes Plugin Quoting Yes Yes No No Yes Internal Comments Plugin Yes Plugin Yes Yes Custom styles No Yes Yes Yes Yes Syntax Features Anhang 129 Scripting Optional, PHP yes; WikiTallk plugins for Optional JavaScript, TCL and Groovy JavaScript; TWiki variables; powerful API Content Includes Plugin Yes Yes Yes Yes Feed Aggregation Yes Yes Plugin Plugin Plugin DokuWiki FlexWiki JSPWiki MediaWiki TWiki Section Editing Yes No Yes Yes Plugin Page Templates n/A n/A Yes Yes Yes Double-Click Edit No Yes No Optional Plugin Toolbar Yes No Yes Yes Yes WYSIWYG Editing Plugin No Plugin Plugin Yes Access Keys Yes No Yes Yes Yes Auto Signature Yes No Plugin Yes Yes DokuWiki FlexWiki JSPWiki MediaWiki TWiki Recent Changes Yes Yes Yes Yes Yes Wanted Pages Plugin No Yes Yes No Usability Statistics Anhang Orphaned Pages 130 Plugin Yes Yes Yes Plugin Most/Least Popular No No No Yes Yes Recent Visitors No No No Plugin No Analysis Plugin No No Optional Yes DokuWiki FlexWiki JSPWiki MediaWiki TWiki Output HTML XHTML 1.0 Transiti- HTML 4 onal XHTML 1.0 Strict XHTML 1.0 Transiti- XHTML 1.0 Transitional onal CSS Stylesheets Yes Yes Yes Yes Yes Printer Friendly Print CSS Print View Print CSS Print CSS Print View Mobile Friendly No n/a No No Plugin Themes & Skins Yes Yes Yes Yes Yes RSS Feeds Yes Yes Yes Yes Yes ATOM Feeds Yes No Yes Yes Yes Auto-TOC Yes Yes Plugin Yes Yes Raw Export Yes Yes Yes Yes Yes HTML Export Yes Yes Optional Yes Yes XML Export No No No Yes Plugin PDF Export Plugin No Plugin Plugin Plugin Anhang 131 Media and Files DokuWiki FlexWiki JSPWiki MediaWiki TWiki File Attachments Yes Optional Yes Yes Yes Media Revisions No No Yes Yes Yes Embedded Flash Yes Plugin Plugin Plugin Plugin Embedded Video Plugin Yes Plugin Plugin Plugin Media Search No No Filenames only Keywords Contents DokuWiki FlexWiki JSPWiki MediaWiki TWiki Image Galleries Plugin n/a Plugin Yes Plugin Forums No n/a Yes Plugin Plugin Blogs Plugin n/a Yes No Yes Extras Syntax Examples Internal Link DokuWiki FlexWiki JSPWiki MediaWiki TWiki [[a Link]] [[namespace:link]] [[link|With a Title]] HomePage [link] [text|link] [text|wiki:link] [[a link]] [[a link|with title]] WikiWord autolink Otherweb.WikiWord [[Spaced text]] [[WikiWord][label]] Anhang External Link Headlines Bold Format Italics Format Underline Format Monospace Format Strikethrough Format Superscript Format Subscript Format Images 132 [[http://example.com]] „WikiMa[[http://example.com|Wit trix“:http:://w h a Title]] ww.wikimatri x.org ====== Level 1 ====== !Heading 1 ===== Level 2 ===== ==== Level 3 ==== === Level 4 === == Level 5 == **bold** //italics// [http://www.example.com/] [example|http://www.example.co m/] [text|wiki:link] ! Level 1 !! Level 2 !!! Level 3 *bold* or __bold__ ‘‘‘bold’’’ ‘‘italics here’’ ‘‘italics’’ [http://example.org The title] http://twiki.org/ autolink [[http://twiki.org/][label]] ---+ Level 1 ==Sectin== ---++ Level 2 ===Subsection=== ====Sub-subsection==== ---+++ Level 3 ---++++ Level 4 ---+++++ Level 5 ---++++++ Level 6 ‘‘‘bold’’’ *bold* ‘‘italic’’ _italic_ __underlined__ +underline text+ %%(text-decoration: under- <u>underlined</u> line) text %% <u>underline</u> ‘‘monospace’’ This is monospace {{monospace}} =monospaced text= and <verbatim> multi line text </verbatim> <strike>strikethrough</strike> <tt>monospace</tt> <del>strikethrough </del> %%(text-decoration: line<s>strikethrough</s> strikethrough through) deleted text %% text<sup>superscript</sup> ^super^ %%(vertical-align: sup) text <sup>superscript</sup> %% <sub>subscript</sub> ~sub~ %%(vertical-align: sub) text <sub>subscript</sub> %% {{local.jpg}} http://whatev [local.jpg] {{http://foo.bar/baz.jpg}} er/path/file.jp [{Image src=‘local.jpg’}] g [{Image src=‘http://foo.bar/foo.jpg’}] [[Image:wiki.png]] <sup>superscript</sup> <sub>subscript</sub> %ATTACHURL%/image.png http://any.domain/image.png Anhang Aligning Text Text Indentation 133 n/a n/a * item 1 * item 1.1 * item 2 - item 1 Numbered Lists - item 1.1 - item 2 Bulleted Lists Definition Lists Horizontal Rule Use a span or div with a class and custom css Use a span or div witha class and custom css * Point * Block Plugin 1. List item one 1. List item two 1. List item three n/a ---- ---- %%(text-align: right) text %% <center>Centered </center> | left | center | right | or HTML or CSS %%(text-indent: 20px) 20 pixels %% %%(text-indent: 30%) 30 percent %% * Item 1 ** Item 1.1 * Item 2 # Item 1 ## Item 1.1 # Item 2 : indented line <blockquote> multi line text </blockquote> * Item 1 ** Item 1.2 * Item 2 # Item 1 ## Item 1.2 # Item 2 * Item 1 * Item 1.1 * Item 2 1. Item 1 a. Item 1.a 1. Item 2 ;term:definition ; term : definition $ Term: Definition ---- ---- --- Erklärung Hiermit erkläre ich, dass ich die vorliegende Diplomarbeit selbständig angefertigt habe. Es wurden nur die in der Arbeit ausdrücklich benannten Quellen und Hilfsmittel benutzt. Wörtlich oder sinngemäß übernommenes Gedankengut habe ich als solches kenntlich gemacht. Ort, Datum Unterschrift