Après avoir fait plus de 14 000 modifications à la main dans Wikidata, je me suis enfin penché sur les modifications semi-automatiques de QuickStatements, une API qui permet les modifications en lot. Voici la méthode pour se sauver du temps et de l’ennui avec l’exemple de la propriété P123 Publisher pour les maisons d’édition de jeux de rôle sur table :
Exporter une table csv depuis Wikidata
- Lancer une requête SPARQL avec, pour chaque élément, une colonne pour l’identifiant Q Wikidata et une colonne pour le label. Dans l’exemple, item = élément de base Q Wikidata du jeu, itemLabel = nom du jeu, publisher = élément Q de la propriété P123, publisherLabel = nom de la maison d’édition.
SELECT DISTINCT ?item ?itemLabel ?publisher ?publisherLabel WHERE {
{
{ ?item wdt:P31 wd:Q1643932. } #TTRPG
UNION
{ ?item wdt:P31 wd:Q2164067. } #System
UNION
{ ?item wdt:P31 wd:Q71631512. } #supplement
UNION
{ ?item wdt:P31 wd:Q4418079. } #setting
UNION
{ ?item wdt:P31 wd:Q4686479. } #adventure, campaign
}
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
OPTIONAL { ?item wdt:P123 ?publisher.}
}
ORDER BY (?itemLabel)
- Enregistrer au format csv.
Éditer le fichier csv
- Ouvrir le fichier csv dans LibreOffice Calc (le meilleur éditeur libre de fichier csv).
- Modifier les éléments désirés en ajoutant les Label dans la colonne Publisher Label. Bénéficier de la saisie semi-automatique si l’élément existe déjà.
Si l’élément n’existe pas, le créer dans Wikidata et le rajouter dans la colonne Q ET la colonne Label. - Trier la colonne Label. Copier-coller les Q manquants très visibles dans les trous de la colonne.
- Supprimer les colonnes Label.
- Sauvegarder les deux colonnes restantes au format csv.
- Déboublonner le fichier csv. J’ai testé 3 méthodes, la meilleure est Notepad++ avec l’extention TextFX. Voir annexe.
- Sur la première ligne, remplacer
item, publisher
parqid,P123
. Le fichier devrait ressembler à ceci :
qid,P123
Q270118,Q2832284
Q2703461,Q762106
Q27102849,Q28466028
Q2720180,Q1433597
Q2755273,Q1543201
Verser dans Wikidata avec QuickStatements
- Aller sur QuickStatements, connectez-vous avec votre identifiant Wikimedia. Nouveau lot > Collez le contenu du fichier csv dans la case puis cliquez sur le bouton Importer les commandes CSV.
- Et voilà!
Annexe : comment dédoublonner des fichiers txt, csv,…
Cas: j’ai 1575 lignes à dédoublonner dans un fichiers csv. Trois méthodes sont testées :
A. Dans Calc : Bien.
- Sélectionner LES DEUX colonnes > Données > Plus de filtres > Filtre Standard > Nom du champs = “Aucun” + Options = “Sans doublons” > OK.
- Copier-coller le résultat dans Notepad++. Remplacer (mode étendu) les
\t
par des virgules,
B. Dans Notepad++, par expression régulière : Pas robuste.
- Remplacer (mode expression régulière)
^(.*?)$\s+?^(?=.*^\1$)
par rien. Cocher .match newlines - Échec : ne fonctionne que pour 300-400 lignes max.
C. Dans Notepad++, avec extension TextFX : Bien.
- Installer TextFX : Plugins > Plugin Manager > Show Plugin Manager > Available tab > TextFX > Install
- Sélectionner tout. TextFX > TextFX Tools > Activer : +Sort Ascending et +Sort output only…
- Puis TextFX > TextFX Tools > Sort lines cases Sensitives (at colums)
Résultats A et C : 901 lignes restantes.