- MediaWiki
-
MediaWiki Développeur Wikimedia Première version 25 janvier 2002 Dernière version 1.17.0 (22 juin 2011) [+/-] Version avancée [+/-] Environnements Multiplate-forme Langues Multilingue Type Moteur de wiki Licence GPL Site web www.mediawiki.org modifier MediaWiki est un moteur de wiki pour le Web. Il est utilisé par l’ensemble des projets de la Wikimedia Foundation, ainsi que par l’ensemble des wikis hébergés chez Wikia et par de nombreux autres wikis. Conçu pour répondre aux besoins de Wikipédia, ce moteur est en 2008 é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 important. Des associations, comme par exemple Wikitravel, Mozilla ou Ékopedia, l'ont aussi adopté.
MediaWiki est écrit en PHP, et peut aussi bien fonctionner avec le système de gestion de base de données MySQL que PostgreSQL. C'est un logiciel libre distribué selon les termes de la GPL.
MediaWiki inclut de nombreuses fonctionnalités pour les sites à vocation collaborative : par exemple, la gestion des espaces de noms, ou encore l'utilisation de pages de discussions associées à chaque article.
Sommaire
Historique
Initialement, Wikipédia utilisait un moteur de wiki rudimentaire écrit en Perl, appelé UseModWiki. Le 25 janvier 2002, MediaWiki, développé par Magnus Manske, un étudiant allemand de l’université de Cologne, devient le moteur de wiki de l'encyclopédie collaborative pour laquelle il a été développé. MediaWiki a ainsi permis de disposer de plus de fonctionnalités et d’une infrastructure plus extensible (grâce à une base de données MySQL). Les performances du logiciel ont ensuite été améliorées par Lee Daniel Crocker, avant que Brion Vibber n'en devienne le développeur le plus actif et ne prenne le rôle de dirigeant des sorties logicielles[1].
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 l'annonce de la création de la Wikimedia Foundation le 20 juin 2003, le wikipédien Daniel Mayer lui donne le nom « MediaWiki » par jeu de mots sur le nom « Wikimedia » et ce nom est progressivement adopté. Toutefois, la similarité des noms MediaWiki et Wikimedia (qui lui-même est déjà semblable au nom Wikipédia) est à l'origine de fréquentes confusions.
Le logo de MediaWiki a été créé par Erik Moeller à partir d’une photographie d’une fleur prise par Florence Devouard (qui sera par la suite présidente de la Wikimedia Foundation), et fut initialement soumis au concours international du nouveau logo pour Wikipédia qui s’est déroulé pendant l’été 2003. Le logo s'est placé en troisième position à l'issue de ce concours, et a été choisi pour représenter MediaWiki plutôt que Wikipédia, tandis que le logo vainqueur a été adopté pour représenter Wikipédia, et le second pour la Wikimedia Foundation. Les doubles crochets sur la photo autour du tournesol symbolisent le wikicode, c'est-à-dire la syntaxe utilisée par MediaWiki pour créer des hyperliens vers les autres pages du wiki.
Développement
MediaWiki compte en 2009[2] :
- environ 195 développeurs qui ont accès en écriture aux sources officielles[3]. Ce sont les SVN committers, terme venant de la commande commit du programme subversion, qui permet de transmettre les modifications sur le serveur central ;
- un certain nombre de développeurs d'extensions à MediaWiki, sans privilège sur le dépôt subversion de la Wikimedia Foundation ;
- un certain nombre d'utilisateurs et testeurs actifs sur bugzilla, déposant bugs et/ou patchs.
année nombre de committers 2009 195 2008 ? 2007 82 2006 58 2005 32 2004 33 2003 18 2002 8 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 en 2005 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. 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 la page des modifications récentes et dans 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.
1.12 20 mars 2008 - Grandes améliorations au niveau de l'internationalisation et de la localisation. De nombreuses nouvelles traductions ont été ajoutées. Les calendriers hébreux, thaï et iraniens sont également supportés.
- L'analyseur syntaxique a été réécrit.
- La gestion des droits utilisateur a été améliorée et généralisée à l'ensemble de l'interface.
1.13 14 août 2008 - Amélioration de la recherche (suggestions lors de la saisie, affichages des miniatures pour les images).
- Possibilité de cacher des catégories (__HIDDENCAT__).
- Réorganisation des pages spéciales.
1.14 22 février 2009 - Ajout de Spécial:Log/newusers
- Ajout des mots magiques __INDEX__ et __NOINDEX__ pour indexer ou ne pas indexer la page au moteur de recherche.
- Ajout des mots magiques {{NUMBERINGROUP}}
- Ajout des notices d'éditions par espace de nom et par page. MediaWiki:Editnotice-NS-PAGENAME
- MediaWiki:Print.css contrôle le style des versions imprimables.
1.15 10 juin 2009 - Gestion du sexe de l'utilisateur, via ses préférences et le mot magique {{GENDER:}}
- Ajout des mots magiques {{NUMBEROFACTIVEUSERS}} --> 16 470 utilisateurs actifs et {{REVISIONUSER}} --> Cantons-de-l'Est
- Spécial:Export permet d'exporter tout un espace de nom (limité à 5 000 pages).
- Le nombre de langages supportés par MediaWiki dépasse les 300.
1.16 28 juillet 2010 Réorganisation des scripts de maintenance 1.17 22 juin 2011 - Nouvel installateur
- Nouveau resource loader (logiciel destiné à rendre plus rapide l'exécution des scripts en JavaScript[4])
Fonctionnalités
MediaWiki est muni 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 Wikimedia, la partie internationalisation a bénéficié d’une attention toute particulière de la part des développeurs. L’interface a été intégralement ou partiellement traduite dans plus de 180 langues[5], et peut être personnalisée par les administrateurs du site. Wikipédia étant l’un des sites web les plus visités au monde[6], 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. En 2008, Wikipédia et les autres projets Wikimedia sont toujours à l’origine d’une grande partie des critères de réalisation de MediaWiki.
Liens libres
Le principal atout de MediaWiki par rapport aux autres moteurs de wiki est l’usage de liens libres au lieu du CamelCase. Là où habituellement les autres wikis ont besoin d’écrire « WorldWideWeb » en un seul mot pour produire un lien vers la page du même nom, MediaWiki 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 pour [[World Wide Web]].
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ées 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 à plusieurs pages d'exister sous le même nom (à l'espace de nom près), 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 pseudonyme. Chaque page de Wikipédia est associée à une page de discussion qui a pour but de permettre aux wikipédiens de discuter du sujet de la page.
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 nom, leur nombre dans un wiki est habituellement relativement faible.
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 est alors de la forme « A/x ». La sous-page propose alors automatiquement un lien de retour vers la page mère (de la forme « < A »). Dans cette dernière, on peut accéder à l'une de ses sous-pages en omettant son titre ; ainsi, le lien « [[/x]] » pointera vers la sous-page ayant pour titre « A/x ». Pour un espace de nom donné, le système de sous-pages peut être activé ou désactivé. Par exemple, sur Wikipédia, il est désactivé dans l'espace encyclopédique et activé dans l'espace « Utilisateur: ».
Catégories
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, et 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.
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 ou sysops). 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. À 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: ».
Modèles
Les modèles sont des morceaux de texte qui peuvent être chargés de façon dynamique ou statique dans n'importe quelle page. 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 nom qui correspond au préfixe « Modèle: ». Par exemple pour faire appel dynamiquement au modèle se trouvant à la page intitulée « Modèle:Annexe », il suffit d’écrire « {{annexe}} ». Le contenu du modèle sera ainsi reproduit dans la page où il est appelé, en temps réel. Si des changements sont apportés au modèle par la suite, la page sera également mise à jour automatiquement.
Le modèle peut également être appelé à l'aide du préfixe « subst: » (exemple : {{subst:annexe}}), ce qui aura pour effet de substituer l'appel au modèle par son contenu au moment où la modification est validée. Le résultat est équivalent à un copier-coller du contenu du modèle. Par conséquent, 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 a priori moins gourmande en ressources serveur.
Il est aussi possible de créer des modèles d'un espace de nom autre que modèle. Exemple : Toto est administrateur. Il souhaite annoncer facilement à un utilisateur qu'il le bloque et peu d'utilisateurs ont l'occasion d'utiliser ce modèle : il peut le créer dans son espace utilisateur sous un nom du type [[Utilisateur:Toto/Blocage]]. Il pourra alors l'utiliser sous la forme {{Utilisateur:Toto/Blocage}} ou {{subst:Utilisateur:Toto/Blocage}}. Il n'est pas possible d'insérer des portions d'articles de l'espace encyclopédique ou de pages de discussions sous forme de modèle ou de substitution de modèle.
Les modèles sont utilisés de nombreuses manières différentes, par exemple :
- l’identification de problème avec un article de Wikipédia en plaçant un modèle dans l’article. Le modèle produit un bandeau indiquant le type de problème rencontré dans l’article, et si le modèle a été prévu pour, la page peut être automatiquement catégorisée de sorte que tous les articles sur lesquels ce modèle est apposé soient tous regroupés dans une même catégorie ;
- la création de tables ayant une syntaxe compliquée, et dont l'utilisation est rendue simple dans les pages par l'utilisation de paramètres.
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), en particulier les fichiers d'images, mais aussi les sons (au format Ogg). 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[7]. Il s'agirait d'utiliser un logiciel libre conçu par la société Kaltura.
Tel-tel (WYSIWYG)
En 2011, 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.
Sections
Il est possible avec MediaWiki de modifier une partie d’une page (une section), ce qui permet notamment de modifier plus facilement et de façon concurrente des pages longues. En effet, si un utilisateur tente de valider des changements sur une page alors qu'un autre utilisateur l'a modifiée entre temps, il se produira alors un « conflit d'édition », et l'utilisateur devra effectuer une manipulation pour intégrer ses changements à la nouvelle version. En revanche, si deux utilisateurs modifient en même temps deux sections différentes d'une même page, ce problème n'aura pas lieu.
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 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, notamment les frises chronologiques, le tracé de courbes mathématiques, les partitions de musique ou encore les hiéroglyphes égyptiens.
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 pop-up 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, qui ne fonctionne qu'avec les navigateurs web de la famille Mozilla, avec de nombreuses fonctionnalités qui apporte la coloration syntaxique et des fonctions de rechercher et de remplacement.
Groupes et 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. D'autres moteurs de wiki, 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.
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 soient en plus nécessaires.
De nombreuses extensions disponibles sont 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 (voir : Web sémantique). La Wikimedia Foundation détient un serveur sur lequel de nombreuses extensions sont hébergées.
Performances
Étant donné que MediaWiki est utilisé pour faire tourner Wikipédia, qui est un des dix sites les plus visités au monde[6], 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 fichier de cache statique, avec des fonctionnalités réduites, la compression des vieilles versions, et une file d’attente des tâches pour les opérations de base de données.
Il se peut que MediaWiki soit surdimensionné pour un usage de taille réduite, car son large ensemble de fonctionnalités et son interface ont un coût en termes de performance. D’un autre côté, le logiciel convient parfaitement pour les opérations des fermes wikis, comme les projets Wikimedia et la famille de langue. Cependant, MediaWiki n’est pas pourvu de fonctionnalités pour gérer de telles installations.
Limites
Mis à part le manque d'interface WYSIWIG mentionné précédemment[note 1], plusieurs remarques peuvent être faites à propos de MediaWiki : sa documentation est uniquement disponible sur Internet (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 pour mettre en place une liste de contrôle d'accès.
Concernant la saisie de texte, les espaces insécables sont automatiquement converties en espaces « normales », 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é Wikicréole.
Notes et références
Notes
- WYSIWIG (voir : (en) WYSIWYG editor). Le logiciel admet néanmoins des extensions
Références
- (en) [PDF] Brion Vibber, CTO, Wikimedia Foundation, « MediaWiki's big code & usability push – And other fun stories for the internet age », février 2009, euksman.com.
- (en) « MediaWiki SVN Statistics », organicdesign.co.nz.
- mw:developers et la liste http://svn.wikimedia.org/users.php Voir :
- (en) Contributeurs, « MediaWiki 1.17/Wikimedia deployment », Wikimedia Foundation, février 2011. Consulté le 20 février 2011
- (en) Page d'accueil de Translatewiki.net, site servant à traduire les messages de l'interface de MediaWiki.
- (en) « Top Sites – The top 500 sites on the web », sites les plus consultés et les détails du trafic Web de Wikipédia sur le site d'Alexa Internet.
- « Il y aura bientôt de la vidéo collaborative sur Wikipédia », 01net, 26 février 2008.
Bibliographie
- (en) Daniel J. Barrett, MediaWiki (Wikipedia and Beyond), O'Reilly Media, Inc., 2008 (ISBN 978-0596519797).
- (en) Mizanur Rahman, MediaWiki Administrators' Tutorial Guide: Install, manage, and customize your MediaWiki installation, Packt Publishing, 2007 (ISBN 978-1904811596).
- (en) Richard Carter, MediaWiki Skins Design: Designing attractive skins and templates for your MediaWiki site, Packt Publishing, 2008 (ISBN 978-1847195203).
Voir aussi
Articles connexes
Liens externes
- (fr) Site officiel
- (fr) Quelques sites fonctionnant avec MediaWiki
- (fr) Installer Mediawiki avec une carte FreeMind comme tutoriel
- (en) Accueil du projet MediaWiki sur SourceForge.net
- (en) MediaWiki sur Wikimedia meta
Catégories :- MediaWiki
- PHP
- Wikimédia
- Moteur de wiki
- Logiciel libre sous licence GPL
Wikimedia Foundation. 2010.