Avec plus de 500 millions de visiteurs uniques, 18 milliards de pages vues par mois et plus de 80000 contributeurs ayant écrit 38 millions d’articles dans presque 300 langues, Wikipedia est un des sites les plus visités au monde (top 6).
Derrière cet énorme site web, quelles sont les technos mises en place ?
Car Wikipedia ce n’est pas un site mais une banque de données qui regroupe plusieurs bases de données distinctes (Wikipedia, Wiktionary, Wikiquote, Wikibooks, Wikisource, Wikispecies, Wikivoyage, Commons, Wikidata, MediaWiki, Meta-Wiki et quelques autres…).
Initialement, le projet s’est construit sur un logiciel de type wiki simplement propulsé par PHP et MySql qui se nomme MediaWiki. MediaWiki est un logiciel qui permet de créer des pages web et de lier entre elles. On a donc bien une logique de base de données mais la souplesse a toujours été préférée à la rigueur. Depuis quelques années, un travail de fond consiste à rebatir tous ces outils sur une base plus solide (avec base de données d’entité et identifiant unique) qui permettra une meilleure exploitation des données au sein de chaque base de données et entre les différentes bases de données.
Concrètement, MediaWiki peut utiliser plusieurs SGBD pour fonctionner. MySql est l’original mais l’outil peut aussi travaillera avec PostgresSQL, Oracle, SQLite ou Microsoft SQL Server.
Le coeur de la base de données s’articule autour des tables de pages, révisions, textes et utilisateurs (les notions de droit d’accès, de modifications, de discussions et d’historiques sont fondamentales dans MediaWiki même si, en tant que simple utilisateur, on ne le perçoit pas). Le schéma complet (et ses explications) de la base de données est accessible ici.