Darkoneko's Weblog

Yesterday, today, and no future / time waits for no one

Posts Tagged ‘automatisation’

Twitter comme outil de Wikipédia

Posted by DarkoNeko sur vendredi 5 août 2011

Cette semaine, j’ai eu envie de Révolutionner Wikipédia. Oh, et m’amuser à apprendre à coder des bots twitter (en plus, ça fera joli sur mon CV)

Bref.

Il existe depuis longtemps des comptes bots « RSS » sur twitter, postant un lien vers les nouveaux articles d’un site donné au moment de leur parution. C’est très pratique si comme moi avoir un truc dédié au RSS vous gave.

J’ai eu l’idée de faire quelque chose de similaire mais en rapport avec la maintenance de Wikipédia. Après les avoir laissé tourner pendant quelques jours pour m’assurer que tout allait bien, je peut donc vous présenter :

@WP_fr_PaS

@WP_FR_PaS se base sur la création de pages de type Discuter:xxxxx/Suppression

Chaque heure, un script vérifie la création de nouvelles pages de ce type et poste un tweet par nouvelle PàS trouvée.

@WP_fr_labels

Le principe est exactement le même que pour l’autre, mais en se basant sur les motifs suivants :

  • Discuter:xxxxx/Bon_article
  • Discuter:xxxxx/Article_de_qualité

La cadence de création de ce type de pages étant beaucoup plus faibles que les PàS, j’ai choisi de ne faire tourner la mise à jour que toutes les 12 heures, à 7H et 19H GMT  (soit 9H et 21H heure d’été française)

Remarques

Le principal problème que j’ai rencontré est la gestion URL.

Twitter force l’utilisation de son URL shortener interne, qui nous donne des liens en t.co/xXxXyy. Et pour que twitter reconnaisse une adresse correctement, je suis forcé de l’encoder (ce qui fait par exemple apparaitre « Apr%C3%A8s » au lieu de « Après »)

De plus, cette conne d’API de twitter compte le nombre de caractères *avant* que l’url ne soit raccourcie, ce qui pose un problème pour les titres de plus de 95 chars. Et bien sur, il est impossible de spécifier à Twitter qu’il y a une URL à raccourcir,  ni de lui envoyer à part pour qu’il la réduise d’abord.

C’est assez dommage. Je ne veux pas utiliser un raccourcissement externe (genre bit.ly) car ces saloperies masquent  le lien de destination. Pour moi, la destination DOIT être visible. J’ai testé frwp.org pour augmenter la limite de taille du titre, mais il ne semble pas fonctionner correctement avec les url encodées.

Donc tant pis. Tant que Twitter n’aura pas corrigé son API, les quelques titres les plus longs ne seront pas twittés ; ces deux feeds vous permettront toutefois de voir les 99% restant :)

Voili, amusez vous bien et soyez nombreux à les suivre !

Posted in les coulisses de Wikipédia | Tagué: , , , , , , | 8 Comments »

Wikipédia : bouter les interwikis hors du code des articles

Posted by DarkoNeko sur lundi 27 juillet 2009

Sur Wikipédia1, les liens inter-langues (souvent appelés « interwikis ») sont des petits bouts de syntaxe inséré dans un article pour indiquer qu’il existe un équivalent de l’article dans une autre langue. Ces liens apparaissent généralement2 en bas du menu de gauche de l’interface.

Pour soulager l’énorme travail que cela représenterais pour des humains, des comptes utilisant des scripts automatisés (appelés robots, ou bots) sont utilisé pour en faire la majeur partie. Vous trouverez plus de détails sur le sujet dans cet autre billet.

Seulement voila, les modifications d’articles par bots interwikis sont nombreuses. Très nombreuses. Je trouve qu’éditer l’ensemble d’un article pour les ajout est un beau gâchis de ressources et que MediaWiki devrait être modifié pour traiter cela plus efficacement (les raisons seront détaillées plus bas) ; mais commençons par voir l’étendue de la chose.

Lire le reste de cette entrée »

Posted in les coulisses de Wikipédia | Tagué: , , , , , , , | 8 Comments »

Wikipédia et l’accueil des nouveaux, partie 2

Posted by DarkoNeko sur mercredi 26 mars 2008

(ce billet fait suite à celui ci, donc lisez le avant si pas déjà fait / sinon : oui, j’ai réussi à trouver un Wifi depuis le coin haute montagne ou je me trouve — je suis geek et j’assume)

découvertes et premiers accrochages

Début octobre 2007, je me suis aperçu qu’une initiative similaire à la mienne était en cours de développement, et je suis allé leur toucher un mot sur mes actions avec ma finesse habituelle (oui, je peut être assez c**, prétentieux et borné quand je m’y met), et quelques accrochages s’ensuivirent – les curieux d’entre vous peuvent en consulter le détail dans les autres sections du lien ci dessus

Ces considérations à part, leur idée initiale se différentiait de la mienne sur un point fondamental : il s’agit non pas de « rattraper les oubliés » après coup, mais de bienvenuter systématiquement tous les comptes (avec ou sans editions) quelques minutes après leur création.

Phase de test et clash

Début novembre 2007, Kelson (du groupe de la section ci dessus) a parachevé sa version du « robot de bienvenutage », et le lance pour une période de test d’une semaine, afin de pouvoir en mesurer les résultats ensuite. Malheureusement, le test tourne court car le robot est rapidement bloqué (voir cette section et celle ci)

La violence de la réaction m’a laissé un arrière gout un peu désagréable : Pourquoi a t-il été bloqué si vite, alors que mon bot tournait lui depuis plusieurs mois ? Plutôt qu’un bête favoritisme, je pense que le motif déclencheur a été le fait qu’il poste un message a des centaines de comptes sans contribs ( « c’était pourtant le but du test » me direz vous, mais apparemment la communauté a une sorte de tabou sur le sujet)

2eme phase de test, 2eme clash

Une 2eme phase de test a été lancée mi novembre, mais a été aussi stoppée rapidement (voir ici).

Kelson a été dégouté par la tournure des évènements et stoppe définitivement son script.

Suite à discussions sur IRC (et ailleurs) avec des membres du projet, j’ai pris le relai avec mon robot, mais avec un certain nombre d’ajustements :

  • Seuls les comptes ayant effectué des contributions sont bienvenutés.
  • Il y a une certaine marge de temps avant d’agir. Le but étant laisser le temps aux contributeurs de bienvenuter la personne s’ils le souhaitent.
  • Le message utilisé est « mon » message de bienvenue (par opposition avec celui qu’ils avaient créé)
  • Le script signe aléatoirement avec un nom pris dans une liste de volontaires. Cela à l’avantage de nominativement laisser une personne à qui s’adresser pour poser ses questions.

Cette version est toujours en activité à l’heure actuelle.

plus récemment…
Le 13 mars 2008, il y a eu cette section sur le bistrot. (J’en profite pour remercier celui qui m’a averti de l’existence de cette section, ainsi que ceux qui ont défendu l’idée :) L’initiateur de la section est persuadé que la tentative originale de bienvenutage correspond aux tentatives de KelBot. Cela m’agace un peu, mais bon c’est aussi ma faute de nombreuses personnes ne sont pas au courant, donc passons.

Quoiqu’il en soit , j’était assez blazé par la chose, et ai eu envie d’une petite expérience : ne rien dire et stopper le bot pendant une semaine, histoire de voir les résultats. Au final, le robot a été stoppé entre le 13 mars à 19h et le 19 mars à 11h. Le nombre de comptes ayant contribué mais n’ayant reçu aucun message durant cette période s’est élevé à 481.

Pas moins de 481 contributeurs oubliés, en seulement 5 jours et 16 heures. Quand je vois ce genre de stats, je ne peut me résoudre à stopper mon script, quoiqu’en disent ceux opposés à cette pratique. Cela engendre quelques rancœurs à mon encontre, et il est possible que mon bot finisse bloqué un jour.

Et maintenant ?

Je suis conscient des risques que je prend en déballant tout ça (et ça n’est pas très facile d’admettre que j’agis parfois comme un gros c**). Maintenant que toute cette histoire est au grand jour, peut-être que mon bot va être bloqué, peut-être que son flag bot sera retiré… peut-être même que l’on demandera le retrait de mon statut d’administrateur/bureaucrate, ou que je me prendrais un arbitrage dans les dents, ou… j’en sais rien, l’avenir nous le dira.

En attendant, le bot continue sa tâche.

Kropotkine_113 m’a récemment contacté vis-à-vis d’une idée de changement du message de bienvenue utilisé. Je suis plutôt pour cette idée, et j’attend sa proposition avec impatience :) Il faut dire que ça fait presque un an que le mien est utilisé à grande échelle, et je commence à en avoir assez de le voir partout ; et aussi, j’aime beaucoup ajouter un peu de changement/chaos dans les choses trop standardisées.

Posted in les coulisses de Wikipédia | Tagué: , , , , , | Leave a Comment »

Wikipédia et les robots

Posted by DarkoNeko sur jeudi 13 mars 2008

Les robots : une Force Maléfique qui agit dans l’ombre, à l’insu du commun des mortels…

Quoi ? Des robots éditent Wikipédia ? Nous sommes envahis ! Ils sont parmi nous ! Appelez la police… l’armée… le gouvernement !!

… non

On appelle « robot » (ou « compte bot »), dans le jargon wikipédien, un compte utilisateur sur lequel tourne un programme qui réalise une tâche répétitive sur un grand nombre d’articles. Une sorte d’esclave qui allège la lourde charge des contributeurs humains.

Les éditions automatiques représentent, à l’heure actuelle, environ 1/5eme du total des éditions sur la Wikipédia francophone.

Les activités robot-esques peuvent être grosso-modo classées en trois types :

Scripts interwikis

il existe un code à rajouter en bas de page qui permet de relier les articles sur un même sujet dans ses différentes langues sur wikipedia. Ce code créé des liens dis « liens interwikis ». Voir la page d’aide sur les « liens interwikis » pour ceux qui ne connaissent pas le terme.

La mise à jour manuelle des liens interwiki entre les 200+ langues que comporte Wikipédia serait une tâche titanesque…imaginez un peu :

  • à chaque fois que vous créez un article
  • à chaque fois que vous supprimez un article (pour les admins)
  • à chaque fois que vous renommez un article

…qu’il faille ajouter/supprimer ou modifier un lien interwiki sur tous les autres wikipedia possédant un article sur le même sujet !

Au lieu de ça, il suffit d’ajouter un lien interwiki depuis/vers un autre wikipedia lors de la création de l’article pour « initialiser la pompe », et le robot se chargera automatiquement de le propager a l’ensemble des autres wikis.

Pour résumer le fonctionnement du script :

  • Parcourir la liste d’articles d’un wiki donné
  • pour chaque article, parcourir ses interwikis
  • Mettre à jour si des éléments ont été ajoutés, supprimés pour déplacés

Ce système n’est pas parfait, car il y a parfois des conflits : des cas ou plusieurs articles d’une langue pointent vers le même article sur un autre wiki. Ces cas doivent être résolus par une intervention humaine.

Note : le script le plus utilisé pour cette manipulation est interwiki.py, du framework Pywikipediabot

Scripts de remplacement de texte

Cette activité est la plus courante. Elle concerne par exemple :

  • le renommage de catégories (comme pour les liens interwikis, on ajoute un code en bas de page pour relier tous les articles partageant un thème
  • l’ajout, transformation ou suppression de modèles.
  • la correction de fautes d’orthographe courantes (ce point pose parfois problème dans la gestion d’exceptions à la règle)
  • le retrait de liens vers des images ou articles ayant été supprimés
  • Création automatique d’articles : notamment, la « base minimale » de la plupart des articles sur des communes françaises ont été créés automatiquement, à partir des données de l’INSEE.
  • etc.

Script à « réactions »

Les scripts de cette catégorie effectuent des actions en réponse à un évènement (ils y réagissent, d’où le nom)

Pour ce faire, ils « lisent » à intervalles réguliers les modifications récentes sur le site ou sur IRC

…exemples :

  • Combat contre le vandalisme. Le robot Salebot, grâce à une série d’algorithmes, détecte si une édition donnée est un vandalisme (blanchiment de sections de la page, ajouts d’insultes, etc) et révoque le cas échéant.
  • Archivage automatique des discussions après un certain temps de non activité
  • Aide aux débutants, par exemple
    • ajout automatique de signature à une message lorsqu’une personne oublie de le faire (existe uniquement sur la Wikipédia anglophone pour l’instant)
    • Laisser un message d’avertissement/aide à un contributeur lorsque, lors de la création d’un article, il ne lui met aucune catégorie ni lien interne. (Escalabot)
    • Souhaiter la bienvenue aux nouveaux, en postant un message d’aide sur leur page de discussion (Loveless)

Un problème avec les robots, c’est que tout comme l’édition des articles, à peu près n’importe qui peut en utiliser un, et les dommages peuvent rapidement être importants en cas d’erreur. De nombreux wikis ont donc rendu obligatoire l’obtention du statut de bot, déclaré et accepté par la communauté, pour l’utilisation de scripts, sous peine de blocage.

Il existe d’autres scripts, dits « d’aide à l’édition », qui automatisent des actions mais demandent eux une confirmation humaine  pour les effectuer. Par exemple : LiveRC, qui sert notamment au combat contre le vandalisme, et AutoWikiBrowser . Mais là encore, l’utilisation peut créer des dommages si l’utilisateur n’est pas suffisamment attentif.

Bref : les robots sont nos amis, ils faut les aimer aussi… mais de grâce, ne faites pas n’importe quoi avec :)

edit :

  • simplification de certaines explications obscures — merci Lilyu :)
  • ajout des robots d’archivage (merci Chico :)

Posted in les coulisses de Wikipédia | Tagué: , , , , , , | 3 Comments »