MediaWiki

Un article de Wikipédia, l'encyclopédie libre.

Ne doit pas être confondu avec Wikimedia.
Logo de MediaWiki
Développeur Wikimedia
Dernière version 1.12.0 (le 20 mars 2008)
Environnement Multiplate-forme
Langue Multilingue
Type Moteur de wiki
Licence GNU GPL
Site web www.mediawiki.org

MediaWiki est un moteur de wiki pour le web qui est notamment utilisé par l’ensemble des projets de la Wikimedia Foundation, l’ensemble des wikis hébergés chez Wikia et également de nombreux autres wikis, dont certains font partie des wikis les plus célèbres et les plus connus. Conçu à la base pour répondre aux besoins de Wikipédia, ce moteur est aujourd’hui également utilisé par des entreprises comme une solution de gestion des connaissances et comme un système de gestion de contenu. L’entreprise américaine Novell l’utilise notamment pour plusieurs de ses sites web qui véhiculent un trafic web important. D'autres associations l'ont aussi adopté (par exemple Wikitravel, Mozilla ou Ekopedia).

MediaWiki est écrit en PHP, et peut aussi bien fonctionner avec le système de gestion de base de données MySQL que PostgreSQL. MediaWiki est un logiciel libre distribué selon les termes de la licence GNU GPL.

MediaWiki inclut de nombreuses fonctions, développées à l'origine spécifiquement pour l'encyclopédie Wikipédia ; mais qui à l'usage se révèlent également pratiques pour nombre d'autres sites à vocation collaborative : par exemple, la gestion des espaces de noms, ou encore l'utilisation de pages de discussion associées à chaque article.

Sommaire

[modifier] Historique

A la base, le logiciel a été écrit pour Wikipédia par Magnus Manske, développeur et étudiant allemand de l’université de Cologne. Auparavant, Wikipédia utilisait un petit moteur de wiki écrit en Perl appelé UseModWiki. Puis, le 25 janvier 2002, Wikipédia a changé de moteur de wiki pour celui de Manske qui a permis de disposer de plus de fonctionnalités et d’une infrastructure plus extensible (grâce à une base de données MySQL). Cependant, la première mise en œuvre étant pitoyable d’un point de vue performance, Lee Daniel Crocker a par la suite décidé de le réécrire en grande partie, et plus tard, Brion Vibber en est devenu le développeur le plus actif et a pris le rôle de dirigeant des sorties logicielles. Depuis la sortie de la première version du script de Manske, plusieurs noms représentatifs de l’état du logiciel lui ont été donnés : « le script PHP », « phase II », « phase III », « le nouveau code source ». Cependant il n’était pourvu d’aucun nom de produit. Après que la fondation Wikimédia ait été annoncée le 20 juin 2003, le wikipédien Daniel Mayer lui a trouvé le nom MediaWiki par jeu de mots sur le nom « Wikimedia » et ce nouveau nom a commencé petit à petit à devenir connu depuis août 2003. A cause de sa grande similarité avec le nom Wikimédia (qui lui-même est déjà semblable au nom Wikipédia), ce nom a souvent été source de confusion. Cependant, MediaWiki est devenu un véritable nom à part entière, une recherche sur ce nom avec Google durant avril 2007 renvoyait plus de 165 millions de résultats. Le logo a été créé par Erik Moeller à partir d’une photographie d’une fleur prise par Florence Devouard, et fut originalement soumis au concours international du nouveau logo pour Wikipédia qui s’est déroulé pendant l’été 2003. Le logo a fini en troisième place, et a été choisi pour représenter MediaWiki plutôt que Wikipédia. Le logo ayant fini second a quant à lui été utilisé pour représenter la fondation Wikimédia et le premier pour Wikipédia. Les doubles crochets sur la photo autour du tournesol symbolisent la syntaxe utilisée par MediaWiki pour créer des hyperliens vers les autres pages du wiki.


[modifier] Les versions

Numéro de version Date Principales nouveautés
1.1 8 décembre 2003
1.2 24 mars 2004
1.3 11 août 2004
1.4 20 mars 2005

MediaWiki 1.4 est maintenue par Brion Vibber. Pour cette version 1.4, le code a été nettoyé, afin que certaines tâches soient accomplies plus rapidement. Le langage de l'interface peut être choisi par l'utilisateur, rendant les projets communs (comme Wikimedia Commons) plus accessibles.

Un effort a été fait pour optimiser l'espace disque utilisé. Ainsi depuis MediaWiki 1.4, la compression gzip employée pour stocker le texte réduit d'environ 15 % l’espace nécessaire. Cette compression n'est pas réalisée à chaque révision, ce qui permet d'épargner un peu plus d'espace.

1.5 5 octobre 2005 MediaWiki 1.5 prolonge les changements architecturaux commencés avec la version 1.4. Son changement le plus remarquable — le schéma de base de données — consiste en un découplage complet entre le stockage du texte et l'évolution des versions de l'article. Ces modifications doivent permettre d'augmenter la vitesse de plusieurs opérations comme le déplacement de page ou la production de l'historique d'une page.

Le support des images a été étendu aux images vectorielles SVG. Celles-ci sont converties par MediaWiki en images PNG pour une plus grande compatibilité avec les navigateurs web actuels qui sont actuellement très rares à prendre en charge de façon native les images au format SVG. Les pages décrivant les images affichent désormais les métadonnées au format Exif contenu dans certains formats d'image.

1.6 5 avril 2006

La version 1.6 marque le début d'un cycle de développement plus professionnel. Les différences pour l'utilisateur sont mineures : changement du formulaire d'identification, amélioration du système de protection et sortie quasi complète en XHTML. Les réelles améliorations sont internes et portent notamment sur le système de cache, la qualité du code et l'arrêt du support d'anciens logiciels (MySQL 3, PHP 4.1.x). À partir de cette version, les développeurs ont décidé de réaliser une nouvelle version tous les trimestres.

1.7 7 juillet 2006
  • Utilisation de PHP 5 obligatoire (5.1 suggéré), le support de PHP 4 n'est plus assuré.
  • Les fichiers effacés peuvent être récupérés.
1.8 10 octobre 2006
  • Intégration de DjVu.
  • L'importation d'une image provenant d'un URL accessible est désormais possible (si activée).
1.9 10 janvier 2007
  • L'annulation simple d'une révision est possible.
  • Les tableaux deviennent triables.
  • Ajout d'un champ donnant le nombre d'éditions d'un contributeur.
  • Le nombre de caractères modifiés par une révision est visible dans les "Modifications récentes" et la liste de suivi.
1.10 9 mai 2007
  • Nombreuses modifications du schéma de la base de données
  • Ajout d'une page spéciale permettant de lister les articles les moins modifiés.
  • Ajout d'une page spéciale permettant de lister les articles sans liens vers d'autres langues.
1.11 10 septembre 2007
  • Il est possible d'interdire à un utilisateur bloqué d'envoyer des courriels.
  • Possibilité de donner à certains groupes le droit de donner seulement certains droits.

[modifier] Les points forts

MediaWiki est muni de base d’un ensemble de fonctionnalités élaborées et d’un système d’extensions lui permettant d’intégrer des fonctions supplémentaires. En raison de la forte présence du plurilinguisme dans les projets Wikimédia, la partie internationalisation a bénéficié d’une attention tout particulière de la part des développeurs. L’interface a été intégralement ou partiellement traduite dans plus de 70 langues, et peut être personnalisée par les administrateurs du site (l’interface entière peut être modifiée directement sur le site). Etant donné que Wikipédia est l’un des sites web les plus visités au monde, les développeurs ont apporté un soin tout particulier à l’extensibilité grâce à un système multicouche de mise en cache et de duplication de base de données. Wikipédia et les autres projets Wikimedia sont actuellement toujours à l’origine d’une grande partie des critères de réalisation de MediaWiki.

[modifier] Les liens

L’une des plus anciennes différences entre MediaWiki et les autres moteurs de wiki (il en va de même pour son prédécesseur UseModWiki) est l’usage de liens libres au lieu du CamelCase (casse de chameau). Là où habituellement les autres wiki ont besoin d’écrire « WorldWideWeb » en un seul mot pour produire un lien vers la page du même nom, MediaWiki lui n’impose aucune contrainte, il suffit simplement de placer l’expression que l’on souhaite lier entre double crochets. Tous les espaces contenus dans l’expression sont ainsi préservés comme [[World Wide Web]]. Cela s’avère essentiel pour pouvoir produire une encyclopédie dans laquelle la précision des titres est parfois très importante.

[modifier] Les espaces de nom

En plus des liens, MediaWiki est pourvu de nombreuses autres fonctionnalités pour structurer le contenu. L’une des plus anciennes fonctionnalités est le système d’espace de nom. Pendant longtemps, la séparation des discussions autour de Wikipédia et de son contenu encyclopédique a constitué un réel problème. Et il en va de même avec les pages personnelles consacrés aux wikipédiens. De façon simpliste, les espaces de nom peuvent se résumer à des préfixes utilisés dans le titre des pages (par exemple « Utilisateur: » ou bien « Discussion: » ce qui permet à une page d’exister sous plusieurs noms, mais avec des finalités différentes selon le préfixe. Par exemple, la page intitulée « [[Terminator]] » peut décrire le film de 1984 mettant en scène Arnold Schwarzenegger, tandis que la page « [[Utilisateur:Terminator]] » peut être une page personnelle décrivant un utilisateur ayant choisi ce nom pour pseudonyme. De façon plus habituelle, chaque page encyclopédique est associée à une page de discussion qui a pour but de permettre aux Wikipédiens de discuter de l’article. Par comparaison avec les systèmes de fichiers, les espaces de nom peuvent être assimilés aux dossiers qui permettent de séparer plusieurs fichiers de même nom. Bien qu’il soit possible de rajouter des espaces de noms, leur nombre dans un wiki est habituellement relativement faible.

[modifier] Les sous-pages

En plus des espaces de noms, les pages peuvent être structurées à l’aide de sous-pages. Une page ayant pour titre "A" peut posséder plusieurs sous-pages dont le titre doit être de la forme "A/x". La sous-page propose alors automatiquement un lien de retour vers la page mère (de la forme "< A")

[modifier] Les catégories

Finalement, MediaWiki permet aux utilisateurs de créer des catégories. Elles fonctionnent de façon similaire aux tags présents dans de nombreuses applications web, mais en plus de cela elles forment une hiérarchie et une description. Dans certains wikis comme Wikipédia, des hiérarchies compliquées se sont développées avec ce système sans pour autant qu’une quelconque planification n’ait été établie.

[modifier] L’interface modifiable

L’interface de MediaWiki peut être intégralement changée directement sur le wiki lui-même par les utilisateurs qui en ont le droit (habituellement il s’agit des personnes qui sont appelées administrateurs). Cela se fait grâce à un espace de nom particulier qui correspond au préfixe « MediaWiki: » où chaque page correspond à un message précis de l’interface. A l’origine, l’espace de nom « MediaWiki: » était utilisé pour créer des blocs de texte personnalisés pouvant être chargés dynamiquement dans les autres pages à l’aide d’une syntaxe spéciale. Ce contenu a été déplacé plus tard dans un espace de nom à part appelé « Modèle: ».

[modifier] Les modèles

Les modèles sont des morceaux de texte qui peuvent être chargés de façon dynamique dans une autre page quelconque. Pour cela il suffit d’appeler le modèle en écrivant son nom entre double accolades (il s’agit en quelque sorte d’un lien spécial). Les modèles possèdent leur propre espace de noms qui correspond au préfixe « Modèle: ». Par exemple pour faire appel au modèle se trouvant à la page intitulé « Modèle:Contesté », il suffit d’écrire « {{contesté}} » à. Cela permet de produire un résultat semblable à celui d’un copier-coller et le modèle n’est donc plus appelé par là. En revanche tout changement apporté au modèle n’aura aucun effet dans la page dans laquelle le modèle y a été substitué. La substitution limite la cohérence de l’utilisation des modèles, mais peut être pratique dans certains cas, et est (peut-être) moins gourmand en ressources serveur. Les modèles sont utilisés de nombreuses manières différentes, comme :

  • L’identification de problème avec un article de Wikipédia en plaçant un modèle dans l’article. Ce modèle ensuite produit un rectangle indiquant que l’article est contesté, et le catégorise par la même occasion de sorte que les articles de cette nature soient tous regroupés ensemble ;
  • La création d’agencement de table compliqué qui sont utilisé de manière cohérente à travers plusieurs pages, et seulement là où le contenu des tables doit être insérés en utilisant les paramètres du modèle ;
  • L’envoi de messages standards aux utilisateurs lorsqu’ils n’ont plus le droit d’écrire quoi que ce soit (lorsque leur comportement est considéré comme incorrect).

[modifier] Le multimédia

Comme le laisse supposer le nom MediaWiki, l’un des points forts du logiciel est sa capacité à gérer une large variété de fichiers multimédias (ces derniers peuvent être envoyés sur le wiki directement grâce à l’interface) et c’est particulièrement vrai en ce qui concerne les images. Si le logiciel est bien configuré, il est alors relativement facile de produire des galeries d’images et des vignettes. Le logiciel gère également les métadonnées Exif. La nécessité de faire tourner Wikimedia Commons (l’un des plus grandes archives de média de contenu libre) avec MediaWiki a été source d’apport en fonctionnalités de ce type.

En février 2008, Florence Devouard annonce la prochaine apparition d'une forme de vidéo collaborative sur Wikipédia[1]. Il s'agirait d'utiliser un logiciel libre conçu par la société Kaltura.

[modifier] Tel-tel (WYSIWYG)

Actuellement, MediaWiki n’est pourvu d’aucune interface WYSIWYG, bien qu’il possède une barre d’outils graphique qui permet de simplifier le processus d’apprentissage de la syntaxe wiki. Il est toutefois possible d'avoir une interface graphique pour la rédaction d'article à l'aide d'une extension appelée FCKeditor.

[modifier] Les sections

MediaWiki permet de modifier seulement une partie d’une page (une sous-section) de façon à rendre plus compréhensible la modification d’une éventuelle longue page (comme cela peut être le cas avec Wikipédia). La section est alors identifiée par son en-tête.

[modifier] Le contenu élaboré

MediaWiki est également muni de fonctionnalités permettant de gérer du contenu élaboré grâce à une syntaxe spéciale. Par exemple, le logiciel permet d’origine de produire des formules mathématiques à l’aide de LaTeX et d’un analyseur syntaxique écrit en OCaml. D’autres fonctionnalités de la sorte existent sous forme d’extension, allant des frises chronologiques en passant par le tracé de courbes mathématiques et les partitions de musique aux hiéroglyphes égyptiens.

[modifier] L’interface personnalisable

Si l’option est activée, les utilisateurs peuvent aussi personnaliser leur feuille de style et configurer du code JavaScript du côté du client pour qu’il soit exécuté sur chaque page visitée. Par exemple, le système de navigation par popup de Lupin est un outil JavaScript qui montre des aperçus d’articles lorsque l’utilisateur passe la souris au dessus d’un lien, et donnent également des liens vers les tâches de maintenance habituelles. wikEd en est un autre exemple, un éditeur de texte intégré à MediaWiki avec de nombreuses fonctionnalités qui apporte la coloration syntaxique et des fonctions de rechercher et de remplacement.

[modifier] Les groupes et les droits d’accès

Bien que MediaWiki possède de base un ensemble de fonctions liées à la restriction, l’accès et la définition de groupes d’utilisateurs, le contrôle de l’accès aux pages ne semble pas constituer un élément de haute priorité dans le processus de développement. Par exemple, il n’est pas possible de définir des permissions d’accès aux pages en fonction de l’espace de nom. Ici, les wikis comme TWiki et MoinMoin apportent plus de puissance en gérant des mécanismes de sécurité avancés comme des listes de contrôle d’accès.

[modifier] Les extensions

Le code source de MediaWiki contient plusieurs « crochets » auxquels peuvent être attachés du code supplémentaire. Cela permet aux programmeurs d’écrire des extensions sans changer la base ou sans les obliger à soumettre leur code à un contrôle de révision. La plupart du temps, installer une extension revient à ajouter une ligne de code dans le fichier de configuration, bien que dans certains cas, des changements au niveau de la base de données soit en plus nécessaires. De nombreuses extensions disponibles sont en fait de simples scripts permettant d’intégrer du contenu comme des fichiers Adobe Flash ou des formulaires HTML. D’autres scripts ajoutent de nouveaux comportements compliqués à la syntaxe wiki. C’est le cas de Semantic MediaWiki qui donne la possibilité d’ajouter des relations structurées et recherchables et des attributs aux pages wiki (cf. web sémantique). La fondation Wikimédia détient un serveur Subversion sur lequel de nombreuses extensions sont hébergés, et annuaire d’entre eux est disponible sur le site web de MediaWiki.

[modifier] Les performances

Étant donné que MediaWiki est utilisé pour faire tourner Wikipédia, qui est un des sites du World Wide Web qui véhicule le plus d’informations, les performances du moteur et son extensibilité ont été optimisées de façon accrue. MediaWiki gère les caches Squid, les duplications de bases de données avec répartition de charge, la mise en cache du côté du client, le memcached ou la mise en cache basée sur les tables pour les traitements fréquemment consultés ou les résultats de demandes courantes, sous la forme d’un simple fichier de cache statique, avec des fonctionnalités réduites, la compression des vieilles versions, et une file d’attente des jobs pour les opérations de base de données. Il se peut que MediaWiki soit surdimensionné pour un usage de taille réduite, là où son large ensemble de fonctionnalités et son interface à la fin ont un coût en terme de performance. D’un autre côté, le logiciel convient parfaitement pour les opérations des fermes wikis, comme le projet Wikimédia et la famille de langue. Cependant, MediaWiki n’est pas pourvu de fonctionnalités pour gérer de telles installations.

[modifier] Les limites

Mis à part le manque d’interface WYSIWYG mentionné précédemment, plusieurs remarques peuvent être faites à propos de MediaWiki : sa documentation est uniquement disponible sur le net (pas de version imprimée) et elle n'est pas propriétaire (des dizaines d’auteurs ont participé à sa rédaction). L’installation et l’utilisation du logiciel MediaWiki ne sont pas très intuitives pour un utilisateur inexpérimenté (comparé à d’autres logiciels comme FrontPage par exemple).

Il n’y a pas de définition finie de la syntaxe de MediaWiki ; la syntaxe valide est celle reconnue par le code PHP de l’analyseur syntaxique, et il se peut qu’une définition de la syntaxe sous la forme EBNF soit impossible. C’est pour cette raison que produire un éditeur WYSIWYG ou une adaptation complète de l’analyseur pour d’autres langages est une tâche difficile.

De plus, il n’existe pas de solution satisfaisante (comprendre : autre chose que des bidouilles dans le cœur du code) pour mettre en place une ACL.

Au niveau de la saisie de texte : les espaces insécables sont automatiquement converties en espace « normal », y compris ailleurs que dans le titre. De plus, l’usage de deux types de liens (simple crochets pour des liens externes, doubles crochets pour des liens internes) est source de confusion et dispensable, comme l’a montré WikiCreole.

[modifier] Références

[modifier] Voir aussi

b:Accueil

Wikibooks propose un ouvrage abordant ce sujet : MediaWiki pour débutants.

[modifier] Articles connexes

  • La fondation Wikimedia
  • Le projet encyclopédique Wikipédia
  • Wikia, hébergeur gratuit de wikis utilisant MediaWiki comme moteur de wiki

[modifier] Liens externes