Beim Bearbeiten eines Projektes fallen oft viele Informationen an, die verstreut über alle Teammitglieder aufbewahrt werden. Herkömmlicherweise pflegt jedes Mitglied eine Reihe von Notizzetteln oder - ganz fortschrittlich - einige lose formatierte Text- oder HTML-Seiten. Die Folge ist, dass niemand eine vollständige und korrekte Sicht auf die Informationen hat.
Das Problem kann behoben werden, indem man die Dateien in einem gemeinsamen Verzeichnis - beispielsweise im AFS - pflegt. Jedoch kann es nun leicht passieren, dass zwei Personen eine Datei gleichzeitig ändern und es beim Abspeichern zu einem Konflikt kommt, bei dem Daten verloren gehen. Außerdem ist nur bei strengen Formalismen gewährleistet, dass vorgenommene Änderungen ersichtlich bleiben. An diese Konventionen werden sich aber garantiert nicht alle Teammitglieder halten wollen oder können. Ein Informatiker würde nun ein CVS aufsetzen, wobei das jedoch nicht jedermanns Geschmack ist.
Hobbyprogrammierer fangen an diesem Punkt an, ein LAMP-Projekt (LAMP=Linux Apache MySql PHP) zu schreiben, welches als webbasierte Lösung eine Informationsverwaltung realisiert. Diese sind jedoch zumeist sehr eingeschränkt verwendbar. Sind sie es nicht, dann ist das zugehörige Programm so kompliziert, dass es kein anderer außer dem Originalautor weiterentwickeln kann.
An dieser Stelle werden dann meist Content Management Systeme gekauft, die versprechen, das Problem zu lösen. Abgesehen von den Kosten muss man auch mit einem großen Einarbeitungs- und Verwaltungsaufwand rechnen.
Hier setzt nun das so genannte Wiki-Konzept ein.
"Wiki-Wiki" stammt aus dem hawaiianischen und bedeutet so viel wie "schnell, schnell". Damit ist einerseits die zügige Arbeitsweise mit einem Wiki-Server als auch die geringe Einarbeitungszeit gemeint. Die Folge: man hat schnell ein Ergebnis.
Das Wiki-Konzept legt die folgenden Annahmen zugrunde:
Jede Seite im Wiki - auch als Topic bezeichnet - bietet die Möglichkeit an, sich im Browser per Texteingabefeld (textarea) bearbeiten zu lassen. Daher sind keine speziellen Editoren oder Autorenwerkzeuge notwendig. Damit wird eine bestmögliche Plattformunabhängigkeit erreicht.
Um zu sehen, wie sich ein Topic im Laufe seines Lebens ändert, ist es jederzeit möglich, die bisher gemachten Änderungen sich anzeigen zu lassen. Dazu sind keine speziellen Kommandos notwendig, sondern man folgt einfach bestimmten Links auf der jeweiligen Seite.
Aufgrund der Versionsverwaltung ist es nicht möglich, Informationen zu vernichten. Daher ist es unkritisch, die Topics von jeder Person bearbeiten zu lassen.
Gelegentlich spielen aber Vertraulichkeit oder auch Authentizität einer Seite eine Rolle. Dann ist es allerdings mit wenigen Änderungen möglich, eine Sammlung von Topics - die Wiki-Web genannt wird - für Schreib- oder gar Lesezugriff zu sperren.
Um den Einarbeitungsaufwand möglichst gering zu halten, ist es nicht notwendig, die Seiten in HTML zu beschreiben. Statt dessen wird eine vereinfachte Formatierung genutzt, die Shorthand genannt wird. (Weiter unten dazu mehr.) Wer unbedingt HTML verwenden möchte, der kann dies aber problemlos tun. Damit ist auch eine Migration bereits vorhandener HTML-Dateien denkbar.
Es existieren mehrere Programmpakete, die Wiki-Webs realisieren. An der Professur Rechnernetze und verteilte Systeme wird seit einigen Monaten das Projekt TWiki getestet, welches kostenfrei erhältlich ist.
TWiki ist eine Sammlung von CGI-Scripts, die in Perl geschrieben sind. Die Installation auf einem Apache-Webserver ist sehr leicht. Unterstützt wird dies durch die gute Dokumentation.
Neben Perl und Apache benötigt man außerdem noch RCS und cron. Diese beiden Tools sind bei jeder aktuellen Installation übliches Beiwerk.
Die Installation muss vom root-Nutzer ausgeführt werden, da einige Änderungen in der Konfiguration des Apache-Servers vorgenommen werden müssen. Auch im Betrieb muss root von Zeit zu Zeit eingreifen, um beispielsweise neue Webs anzulegen. Aus diesem Grund ist eine Bereitstellung auf den WWW-Servern des URZ vorerst nicht zu erwarten.
Es ist möglich, pro Web eine Liste von Nutzern festzulegen, die eine E-Mail erhalten sollen, sobald eine Topic im Web geändert wurde. Damit ist es beispielsweise möglich, den Fortschritt eines Projektes zu überwachen, ohne ständig auf die Webseiten schauen zu müssen.
Der eigentliche Funktionsumfang von TWiki kann mit Hilfe von Plugins nahezu beliebig erweitert werden.
Die Erweiterungen greifen in die Aufbereitung der Topics ein und erlauben so eine Erweiterung der Beschreibungssprache Shorthand oder eine Veränderung der Semantik bestimmter Formulierungen.
Eine Liste von Plugins wird ebenfalls auf www.TWiki.org gepflegt. Erhältlich sind beispielsweise:
Eigene Plugins lassen sich mit ein wenig Perl-Kenntnissen auch selbst schreiben. Die APIs sind erfreulich gut dokumentiert.
Wie oben angekündigt, soll nun noch kurz auf die Formatierungssprache Shorthand eingegangen werden. Die Aufstellung ist keinesfalls vollständig, sondern dient lediglich der Verdeutlichung, wie einfach die Sprache zu verwenden ist.
_kursiv_, *fett* oder =fixed= wird durch Einschließen des Textes in die jeweiligen Sonderzeichen erreicht.
Ein neuer Absatz entsteht allein durch Eingeben einer Leerzeile.
Horizontale Linien (<hr>) entstehen durch mehr als drei Bindestriche am Zeilenanfang.
Listen werden erstellt, indem man 3 Leerzeichen am Zeilenanfang eingibt, danach einen * (für eine "bulleted" List) bzw. 1 (für eine nummerierte Liste). Verschachtelt werden Listen durch das Eingeben von n*3 Leerzeichen.
Tabellen entstehen allein durch geschicktes Verstreuen von Pipe-Symbolen (|) im Text. So ergibt:
| *A* | *B* | | c | d | | das hier: |
|
Links auf externe Dokumente werden einfach hingeschrieben. (Ohne <a href=...>)
Links auf Topics innerhalb eines Webs entstehen automatisch, indem man ein so genanntes WikiWord verwendet. Ein WikiWord beginnt mit einem großen Buchstaben, der von einigen kleinen Buchstaben gefolgt wird, dann wieder einem oder mehreren großen Buchstaben und dann wieder kleinen Buchstaben oder Ziffern. DasHierIstEinWikiWord. Die hinter den WikiWords verborgenen Topics werden automatisch angelegt, sobald sie das erste mal editiert werden. Auf diese Weise entsteht nahezu von selbst eine Strukturierung der Informationen.
Eine Variable in TWiki hat die Form %Name{Schlüssel1=Wert1, Schlüssel2=Wert2, ...}%, wobei die geschweiften Klammern (samt Inhalt) optional sind.
Die Variablen werden beim Anzeigen des Topics durch Text ersetzt. Werden die Variablen durch Plugins definiert, können damit Funktionsaufrufe simuliert werden. Beispielsweise kann so mit Hilfe des LdapPlugins eine Anfrage an einen Ldap-Server gestellt werden.
Die Variablen ermöglichen mit sehr wenig Schreibarbeit ungeahnt Effekte. So kann allein durch Einfügen von %TOC% eine Liste aller Überschriften im Topic (einschließlich einer Verlinkung) eingetragen werden.
Sollten Sie nun neugierig geworden sein, so schauen Sie doch einfach mal ins TWiki an unserer Professur: https://rnvs.informatik.tu-chemnitz.de/twiki/bin/view/Main/.
Im dortigen Test-Web können Sie gern ein paar Experimente machen.
Hier ein Screenshot:
![]() |
| Chris Hübsch, Fakultät für Informatik, 22.04.2002 |