MediaWiki - UOS-Open-Source-Softwareentwicklung/oss1314 GitHub Wiki
Kurzbeschreibung eines Open-Source-Projektes
Universität Osnabrück
Artem Petrov - [email protected]
Einleitung
MediaWiki ist ein Open-Source Content-Management-System für das gemeinschaftliche Arbeiten an Texten, die durch Fotos oder andere Medien ergänzt werden können. Jeder Nutzer kann die Wiki-Inhalte ändern, was einer ursprünglichen Idee des World Wide Webs entspricht[1], [2]. Dadurch werden die Erfahrung und das Wissen der Autoren kollaborativ ausgedrückt. Bei den Wiki-Inhalten handelt es sich also um kollektive Intelligenz. Die bekannteste Anwendung von MediaWiki ist die Online-Enzyklopädie Wikipedia[3], die zurzeit auf dem sechsten Platz der meistbesuchten Seiten der Welt steht[4] und mehrere Millionen Artikel in über 280 Sprachen enthält[3].
[5]
GeschichteAls einer der ersten Vorläufer von MediaWiki fungiert das in Carnegie-Mellon Universität 1972 entwickelte ZOG-Datenbanksystem. Das System war für mehrere Nutzer ausgelegt und stellte Daten als Texte dar, die mit Hyperlinks verbunden waren. Das ZOG-Datenbanksystem wurde 1981 zum Knowledge Management System erweitert, bei dem Änderungen an den Datenblättern sofort im gesamten Netzwerk sichtbar wurden. Auch Grafiken und Bilder waren in diesem System integrierbar, sie könnten mit den Hyperlinks versehen werden. Auf ZOG basierte ein anderes System – der Document Examiner, der von Janet Walker 1985 entwickelt wurde und zur Darstellung von Computer-Anleitungen verwendet wurde. Es handelte sich um ein Hypertextsystem, bei dem Texte in einem scrollbaren Fenster dargestellt wurden. Aus dem Document Examiner wurde von Xerox das Note Cards-System entwickelt, aus dem 1987 das HyperCard-System von Apple entstand. Es ermöglichte verschiedene Typen von Cards. Neue Cards konnten durch das Klicken auf Hyperlinks auf nichtvorhandene Inhalte angelegt werden. Diese Ideen beeinflussten Ward Cunningham, als er das erste im World Wide Web gehostete Wiki (WikiWikiWeb) konzipierte. Das WikiWikiWeb wurde für Wissensverwaltung im Rahmen der Entwurfsmuster-Theorie eingesetzt. In den späten 90er Jahren entstanden mehrere Klone von WikiWikiWeb, u.a. WikiBase, das ebenfalls von Cunningham entwickelt wurde. Einer der bedeutendsten Klone von WikiBase war das CvWiki, aus dem 1999 das UseModWiki hervorging. UseModWiki wurde u.a. für die Online-Enzyklopädie Wikipedia eingesetzt, jedoch zeigte es sich den Anforderungen nicht gewachsen. Deswegen wurde 2002 eine neue Wiki-Engine von Magnus Manske entwickelt, die unter dem Namen „Phase II“ bekannt war[1]. Im gleichen Jahr wurde die Engine durch Lee Daniel Crocker verbessert und erhielt später den Namen „MediaWiki“. MediaWiki wird von Wikimedia Foundation – einer nichtstaatlichen gemeinnützigen Organisation, die freies Wissen und freie Inhalte fördert – weiterentwickelt. Als Content Management System wird MediaWiki für zahlreiche Projekte der Wikimedia Foundation eingesetzt.
Eigenschaften
Im Gegenteil zu seinem Vorgänger – UseModWiki, der in Perl programmiert wurde und die Daten in Form von Textdateien speicherte[6], ist MediaWiki in der Skriptsprache PHP geschrieben und ist dadurch plattformunabhängig einsetzbar. Die derzeit aktuelle Version von MediaWiki – 1.22.5 (Stand 28.03.2014) ist ca. 16,5 MB groß und ist in mehr als 300 Sprachen erhältlich. Zum Speichern der Inhalte wird die relationale Datenbank MySQL verwendet. Alternativ können auch PostgreSQL, Oracle oder SQLite als Datenbank verwendet werden[7]. Laut Ohloh.net umfasst MediaWiki ca. 990.000 Lines of Code[8]. An MediaWiki arbeitet eine relativ kleine Gruppe von bezahlten Programmierern, 2012 gab es ca. 200 Commiter. Desweiteren nimmt Wikimedia an Googles Summer of Code teil. Es gibt auch eine Gruppe von freiwilligen Entwicklern, die an Weiterentwicklung von MediaWiki arbeiten. Jeder Entwickler, der einen bedeutsamen Beitrag zu MediaWiki leistet, bekommt einen Zutritt zum MediaWiki-Git-Repository[7]. Die Finanzierung des MediaWiki-Projektes erfolgt durch das Wikimedia Foundation, das die Mittel hauptsächlich von Spender erhält[9]. MediaWiki ist frei und gehört zu Open-Source-Software und ist unter der GNU General Public Lizenz (Version 2 oder später) veröffentlicht. Hauptreleases von MediaWiki erscheinen jede drei bis acht Monate[7].
Funktionen
MediaWiki ist in hohem Maße anpassungsfähig, es gibt mehr als 700 Konfigurationseinstellungen und über 2000 Erweiterungen[10]. MediaWiki besitzt eine große Anzahl von Funktionen, einige davon sind nachfolgend beschrieben[7].
- Markup. MediaWiki verwendet eine erweiterbare vereinfachte Wiki-Syntax, die eine Alternative zu HTML darstellt. Die Auszeichnungssymbole dieser Sprachen werden im Eingabefenster innerhalb des Textes eingegeben und sorgen nach dem Speichern dafür, dass dieser an den betreffenden Stellen mit Attributen und Formatierungen (beispielsweise kursiv, unterstrichen, eingerückt oder verlinkt) versehen wird.
- Grafischer Editor. Im Rahmen eines Projekts des Wikimedia Foundation wird ein WYSIWYG-Editor erstellt, der es den es den Benutzern ermöglichen soll, Änderungen an Artikeltexten vorzunehmen, ohne die zugrundeliegende Wiki-Syntax zu verwenden.
- Web-API von MediaWiki ermöglicht direkten Zugriff auf die in der Datenbank gespeicherten Daten.
- Auch Rich-Inhalte (von mathematischen Formeln und Grafiken bis auf ägyptischen Hieroglyphen) werden von MediaWiki unterstützt.
- Navigation mit Page-Existence-Detection. Hyperlinks, die auf eine existierende Wiki-Seite verweisen werden blau gefärbt und rot anderenfalls. Falls der Benutzer ein rotes Hyperlink angeklickt hat, wird ihm die Möglichkeit gegeben, eine Wiki-Seite anzulegen.
- Benutzerrechteverwaltung ist in MediaWiki sehr flexibel. Es können mehrere Benutzergruppen mit unterschiedlichen Rechten erstellt werden.
Zu weiteren Funktionen von MediaWiki zählen:
- Tracking von Inhaltsänderungen;
- Vorlagen für oft benötigte Textabschnitte;
- Interwiki- und Inter-Language-Links;
- Sperren von Artikeln für Änderungen;
- Volltextsuche;
- Individuelle Anpassbarkeit des Erscheinungsbildes mit CSS;
- Anpassbarkeit der Funktion mit JavaScript und Erweiterungen;
- Erweiterungen (zum Beispiel):
- Parser-Funktionen
- z.B.: {{#if: Ausdruck | Ausgabe wenn wahr | Ausgabe wenn falsch }}
- String-Funktionen
- z.B.: {{#replace: Zeichenkette|suchen nach|ersetzen durch}} ** Erstellen von Fußnoten; ** Anzeigen von mathematischen Formeln; ** Einbinden von Youtube- und Flash-Videos und RSS-Feeds; ** Integration mit sozialen Netzwerken; ** Anti-Spam Erweiterungen.
- Parser-Funktionen
Referenzen
[1] MediaWiki, http://www.mediawiki.org/wiki/MediaWiki/de, 28.03.2014
[2] MediaWiki - Wikipedia, http://de.wikipedia.org/wiki/MediaWiki, 28.03.2014
[3] Wikipedia, http://de.wikipedia.org/wiki/Wikipedia:Hauptseite, 28.03.2014
[4] TopSites - Alexa, http://www.alexa.com/topsites, 28.03.2014
[5] Wiki - Wikipedia, http://de.wikipedia.org/wiki/Wiki, 28.03.2014
[6] UseMod, http://www.wikimatrix.org/show/usemod, 28.03.2014
[7] MediaWiki - Wikipedia, http://en.wikipedia.org/wiki/MediaWiki, 28.03.2014
[8] MediaWiki - Ohloh.net, http://www.ohloh.net/p/mediawiki, 28.03.2014
[9] Wikimedia Foundation, http://wikimediafoundation.org/wiki/Home, 28.03.2014
[10] Extensions, http://www.mediawiki.org/wiki/Category:All_extensions, 28.03.2014