Utilisateur:Ludo Thécaire/Index d'articles

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

Une partie de l'index généré pour le projet Antarctique.
Une partie de l'index généré pour le projet Antarctique.

Ludo Thécaire peut générer une page d'index thématique, généralement utilisée comme une liste de suivi thématique et partagée. L'objectif est de pouvoir suivre l'ensemble des pages d'un projet, que se soit les articles, les discussions, ou les autres pages méta.

Adapté pour les petits projets, la taille de la liste devient problématique au alentour de 6 000 articles. Il est ensuite possible de subdiviser la page, tout en conservant la même fonctionnalité de suivi des liens.

Une telle page est générée quotidiennement.

Sommaire

[modifier] Traitement

[modifier] Fonctionnement

Le traitement se déroule en trois phases. Premièrement, la récupération de la liste d'articles brute à partir des différents critères, comme l'usage d'un modèle ou d'une catégorie, un nom préfixé, un modèle particulier sur la page de discussion… Pour les gros projet, le traitement peut avoir recours à la base de donnée de toolserver.

Ensuite, les articles sont triés et classés par espace de nom. Cette partie est très basique, il n'est par exemple pas possible actuellement de classer Albert Einstein, à la lettre E.

Enfin, le traitement met à jour la précédente liste. Il remplace tout le contenu se trouvant entre les balises <-- BEGIN BOT SECTION --> et <-- END BOT SECTION -->, épargnant le haut et le bas de la page de telle sorte que les membres du projet peuvent la personnaliser au besoin. Il en va de même pour chacune des sous-pages, si le robot les génèrent.

[modifier] Paramétrages

Paramètre Type Description
icon Text Nom d'une image sur Commons (en retirant le Image:) pour symboliser le projet pour lequel le script fonctionne. C'est une décoration utilisée dans des pages propre à Ludo Thécaire. N'a aucune influence sur les pages générées.
Source
byTemplate Liste de wikipage Intègre à l'index l'ensemble des pages utilisant l'un des modèles listés.
byPrefix Liste de texte Intègre à l'index l'ensemble des pages dont le nom commence par l'un des préfixes listés.
byCategory Liste de wikipage Intègre à l'index l'ensemble des pages contenues dans l'une des catégories listées.
byRecursiveCategory Liste de wikipage Intègre à l'index l'ensemble des pages contenues dans l'une des catégories listées, ou d'une des catégories de l'ensemble de leurs arborescences. C'est généralement une fausse bonne idée, par exemple, à partir de Catégorie:Santé on peut arrive rapidement à Catégorie:Assassinat de John F. Kennedy. Principalement utilisé pour les catégories de projets, notamment les catégories de modèles.
byTalkPageTemplate Liste de wikipage Intègre à l'index l'ensemble des pages utilisant un page de discussion l'un des modèles listés.
Destination
indexPageName Wikipage Nom de la page contenant l'index complet.
articleIndexPageName Wikipage Facultatif. Nom d'une page pour n'y générer qu'une liste de suivi des pages encyclopédiques.
talkIndexPageName Wikipage Facultatif. Nom d'une page pour n'y générer qu'une liste de suivi des pages méta (tout sauf des articles encyclopédiques).
diffPageName Wikipage Facultatif. Nom de la page pour contenir le résultat d'un traitement spécial. Le diff est constitué par l'ensemble des articles contenus dans les catégories présentes dans l'index en y retirant tous les articles déjà présent dans l'index. Cette page est générée une fois pas mois et permet de mettre en évidence des articles susceptibles d'entrer dans l'index, à la charge des membres du projet d'y ajouter un bandeau de portail ou quelque chose du même ordre pour que ce le soit.
Optimisation
compressionL1L2L3 Booléen Active l'usage de modèle de liens LX ({{L1}}, {{L2}}, {{L3}}, {{L4}}) pour réduire la taille du texte généré. N'est pas adapté pour générer des pages dédiées ux articles ou aux discussions.
editSubpage Booléen Active la génération d'index dans des sous-pages, une par section. La page principale n'est dès lors plus modifiée par le traitement.
replication Booléen Réplication de l'index sur Toolserver en vue d'externaliser le traitement. Les nouveaux articles sont ajoutés, les articles retirés de l'index restent pour le moment dans l'index répliqués.

[modifier] Initialisation de la page d'index

Patron classique pour initialiser la page d'index.

{{mise à jour bot|bayo|période=quotidienne}}

{|id="toc" border="0" align="center"
! align="center" | Sommaire
|- align="center"
|[[#Articles|Articles]] : [[#0-9|0-9]] [[#A|A]] [[#B|B]] [[#C|C]] [[#D|D]] [[#E|E]] [[#F|F]] [[#G|G]] [[#H|H]] [[#I|I]] [[#J|J]] [[#K|K]] [[#L|L]] [[#M|M]] [[#N|N]] [[#O|O]] [[#P|P]] [[#Q|Q]] [[#R|R]] [[#S|S]] [[#T|T]] [[#U|U]] [[#V|V]] [[#W|W]] [[#X|X]] [[#Y|Y]] [[#Z|Z]] __NOTOC__
|- align="center"
| [[#Modèle|Modèle]] — [[#Portail|Portail]] — [[#Catégorie|Catégorie]] — [[#Référence|Référence]] — [[#Projet|Projet]] — [[#Liste|Listes]]
|}

<!-- BEGIN BOT SECTION -->
<!-- le robot va écraser cette zone par l'index -->
<!-- END BOT SECTION -->

[[Catégorie:Sous-page actualisée de suivi thématique|Échecs]]

[modifier] Initialisation en sous-pages

Patron lorsque l'index est généré dans des sous-pages. Ce code remplace l'index, les balises du robot comprises.

==Articles==
{{/0-9}}
{{/A}}
{{/B}}
{{/C}}
{{/D}}
{{/E}}
{{/F}}
{{/G}}
{{/H}}
{{/I}}
{{/J}}
{{/K}}
{{/L}}
{{/M}}
{{/N}}
{{/O}}
{{/P}}
{{/Q}}
{{/R}}
{{/S}}
{{/T}}
{{/U}}
{{/V}}
{{/W}}
{{/X}}
{{/Y}}
{{/Z}}

==Méta==
{{/Modèle}}
{{/Portail}}
{{/Catégorie}}
{{/Référence}}
{{/Projet}}
{{/Liste}}
{{/Autre}}

[modifier] Autres approches

Les longues listes posent un problème de charge serveur, et remettent en cause la pérennité à moyen terme du traitement actuel. Voici d'autres approches pour générer un suivi de liens et un index en évitant ces problèmes.

[modifier] Externalisation

Intégration de l'index externalisé avec l'index classique sur Wikipédia. État transitoire.
Intégration de l'index externalisé avec l'index classique sur Wikipédia. État transitoire.

Comme les longues listes deviennent problématiques, cela remet en cause la pérennité à moyen terme du traitement. Par ailleurs, pour le moment, le suivi des liens n'est pas aussi pratique qu'une véritable page de suivi (pas de filtre robot, pas de filtre pas espace de nom) il est possible de gérer les listes entièrement sur toolserver, ce qui serait incommensurablement plus efficace. Toolserver servirait alors à consulter la page de suivi.

L'implémentation actuelle est intégré au traitement au traitement « classique », la génération de l'index sur Wikipédia est nécessaire. Il est utilisé pour en extraire facilement l'ensemble des pages. La réplication des modifications récents est assurée par un robot IRC affin de palier le déphasage conséquent de la base de réplication de toolserver. Avec ces données brut un script web génère un index, un historique des ajouts et retraits, un liste des modifications récents concernant l'index.

Questions :

  • toolserver est-il suffisent stable (plantage, réinstallation, changement)
    Un test grandeur nature, et pendant plusieurs mois devrait y répondre.
  • toolserver est-il suffisent à jour (déphasage dans le temps de la base de donnée de réplication).
    Il n'est pas nécessaire que l'index lui même soit très à jour. Quelques jours de décalage n'est pas dramatique. Les modifications récentes sont répliquées à la source grâce au service IRC de Wikimedia (irc.wikimedia.org #fr.wikipedia). toolserver répond au besoin.
  • toolserver peut-il supporter la consultation web de telles pages (sollicitation assez fréquente, temps de réponse acceptable).
    Pour le moment pas de problème, un test grandeur nature pour un ou deux projet devrait y répondre.

À faire :

  • pages web de consultation (proto pour le jeu vidéo)
    • améliorer les interfaces selon les attentes.
  • intégration dans Wikipédia (sortie XML, AJAX, réalisation peu probable).
    • base de donnée (table en proto, à retoucher peut-être).
  • modifications précises :
    • s'abstraire de l'index généré sur Wikipédia.
    • fixer une taille pour la table des RC (3 jours, une semaine, un mois ? ; urgent).
    • retirer de l'index les articles qui ne s'y trouvent plus.
    • extraire et répercuter la clé de tri des articles dans l'index : « Albert Einstein » et « É… » à la lettre « E ».
    • répliquer les renommage et les suppressions par le biais de GlaneurRC
    • permettre de répliquer la table commonwatchlist par le service web XML de Wikipédia ET (un bout de la table page OU modifier la structure de commonwatchlist de telle sorte qu'elle soit identique à la table watchlist). La deuxième solution est la plus cohérente avec l'architecture de MediaWiki.
    • demander/ajouter la génération du flag bot dans modifications récents du robot IRC [1]

[modifier] Modèle « marqueur »

Entièrement faux. La page spéciale suivi des liens fonctionne dans les deux sens. Elle permet aussi bien de suivre une page pointé par la page courant (traitement actuel) que de suivre une page pointant vers la page courant (qui permet à Special:Suivi des liens/Portail:Jeu vidéo d'avoir un suivi convenable sur les articles encyclopédiques).

La mise en place peut être faite grâce a un modèle « marqueur » (incluant un lien invisible vers une page, vers le modèle lui même pr exemple) permettant d'avoir ainsi un suivi des liens en temps réel sans besoin de construire une liste. En plaçant un tel modèle sur le bandeau de portail et de projet couvre déjà une grosse partie des articles, un robot peut finir le travail en ajouter le modèles sur d'autres pages, et en vérifiant qu'il s'y trouve toujours bien.

Coté toolserver, le même modèle pourrait servir de base pour afficher un index alphabétique. Comme une telle page n'est pas aussi importante que le suivi, et n'a pas non plus besoin d'être bien à jour, les problèmes inhérent à toolserver sont quasi nuls.

Enfin on peut contribuer à MediaWiki pour apporter des améliorations à la fonction de suivi des liens (filtre robot, filtre espace de nom). Ou encore fouiller l'API XML pour voir s'il n'est pas déjà possible d'en faire quelque chose.

[modifier] Foire aux questions

[modifier] Quelques pages sont suivies ?

Les articles et les sous-pages « à faire », les pages méta telles que projet, référence, portail, wikipédia, les modèles et les sous-pages de documentations, ainsi que toutes les pages de discussions associées.

[modifier] La page n'est plus mise à jour !

Certainement la taille critique du projet est atteint. Il est possible de subdiviser la pages en sous-pages par sections. La page principale devient généralement inconsultable (une page vide s'affiche, sans même l'entête de Wikipédia) mais le suivi des liens fonctionne correctement. Pour la consultation brute de l'index, il est possible d'adapter le sommaire pour naviguer de sous-pages en sous-pages.