QuickStatements : trucs et astuces
Magnus Manske a créé beaucoup d’outils pour faciliter la contribution à Wikidata, Autolist et le Wikidata Game étant parmi les premiers qui viennent à l’esprit. Un autre de ses outils, très utile pour ajouter du contenu en masse, se nomme QuickStatements[1].
Il est accessible ici et permet de créer des éléments de Wikidata, ou d’en compléter en ajoutant des déclarations (ou des références pour des déclarations existantes), en utilisant une syntaxe à base de tabulations qui est assez bien expliquée sur la page elle-même, ce qui m’évite d’avoir à détailler tout ça ici : débrouillez-vous, RTFM 🙂
Un petit avertissement cependant : si QS se débrouille très bien pour éviter de mettre en doublon une déclaration qui serait déjà présente, il n’y a aucun moyen de lui indiquer de ne pas remplacer un label ou une description s’il y en a déjà un.
Flood flag
Comme dit plus haut, QS permet d’ajouter du contenu en masse : on se retrouve vite à balancer plusieurs milliers de lignes dans le fichier, histoire de partir à un Mardi c’est wiki pour boire des bières[2] pendant que notre ordinateur continue à contribuer tout seul. C’est cool, mais pas pour ceux qui vérifient les RC… Aussi, quand vous avez un gros traitement à lancer, je vous invite à demander le « flood flag » qui vous permet d’être considéré temporairement comme un robot.
Si vous êtes admin sur Wikidata, vous pouvez vous le mettre vous-même.
Conversion CSV vers QuickStatements
La syntaxe de QS peut devenir rapidement assez fastidieuse, et je trouve personnellement plus simple de travailler avec un tableur. J’ai donc écrit un script qui convertit un fichier CSV en liste de commandes pour QS. Il est trouvable à cette adresse, avec un exemple de la syntaxe attendue.
Il peut arriver qu’on veuille insérer le même label dans toutes les langues utilisant l’alphabet latin, aussi j’ai préparé un fichier avec les en-têtes dans un paquet de langues latines.
Récupération des lignes en erreur
Il peut arriver qu’une ligne pourtant correctement formatée ne passe pas dans QS[3], à cause d’un timeout ou parce que Wikidata est passée en lecture seule. On a alors des résultats dans ce goût là dans le journal de QS :
74500. Processing Q18614777 (Q18614777 Apms "xkcd 892") 74501. Processing Q18614777 (Q18614777 Aprg "xkcd 892") 74502. ERROR (set_alias) : The authorization headers in your request are not valid: Nonce already used: 20a2c593f0a3342c26857b120b4a8ad9
Quand il y en a peu, il suffit de repasser la ligne précédente (ou de faire directement le changement en question à la main sur Wikidata…), mais quand il y en a beaucoup, on peut les récupérer automatiquement. Si vous êtes sous Linux, vous pouvez le faire de cette façon :
- enregistrer le journal des actions de QuickStatements dans un fichier texte (qu’on va nommer ici qs1.txt)
- ouvrir une console, se rendre dans le répertoire où est enregistré qs1.txt
- lancer la commande suivante :
grep -B 1 "ERROR" qs1.txt | grep -v "ERROR" | grep Q | sed -e "s/.*(\(.*\)).*/\1/; s/ /\t/; s/ /\t/" > qs1_err.txt
Il suffit ensuite de copier-coller le contenu du fichier qs1_err.txt dans QuickStatements.
Image d’en-tête:
« Shitloads of data to Wikidata », by Jean-Frédéric, CC-BY 4.0