“Reconcilier” une liste de nom d’architectes avec Wikidata en utilisant OpenRefine

Avec la sortie de la version OpenRefine 2.6-rc2 Release Candidate 2 en octobre puis récemment la version OpenRefine 2.7-rc1 Release Candidate 1, le 11 février 2017 de nouvelles (et très chouettes) fonctionnalités sont arrivées ! Les deux fonctions majeures selon moi sont :

  • la reconciliation de données avec wikidata (l’objet du billet)
  • l’export des clusters (et les clusters, sont, pour reprendre la doc officielle -> “clustering refers to the operation of “finding groups of different values that might be alternative representations of the same thing”).

Objectifs

  • mettre en place la fonction pour reconcilier les données avec wikidata
  • expliciter certaines options pour augmenter le taux de reconciliation
  • exploiter la reconciliation

Installer OpenRefine + mise en place de la fonction de reconciliation

Pour installer OpenRefine, il suffit de télécharger l’application sur la page officielle selon votre système d’exploitation. Je rappelle que détail très utile, OpenRefine étant une application qui se lance en local dans un navigateur, elle ne nécessite pas les droits administration sur sa machine (utile pour ceux qui travaillent dans les administrations françaises…)

Précaution de rigueur -> il s’agit de la 1er version bêta de la 2.7 donc prudence, n’oubliez pas de sauvegarder votre répertoire concernant vos projets avant de faire la mise-à-jour si vous avez déjà une instance d’OpenRefine !

Ensuite, il faut paramétrer OpenRefine pour utiliser l’api de wikidata permettant de faire de la reconciliation. Pour cela, nous utilisons le web service mis en place par Antonin Delpeuch. Merci à lui.

Voici un extrait d’un jeux de données issu d’une base de données recensant des architectes . L’objectif est donc d‘aligner ces entrées avec les entrées de wikidata et ainsi de récupérer les id de wikidata pour ensuite récupérer d’autres types d’information.

  1. Après l’import de votre fichier de données, choisir une colonne de votre choix, puis le menu Reconcile et Start reconciling. [capture n°1]
[capture n°1] : ouvrir l’option de reconciliation dans OpenRefine

2. Une fenêtre s’ouvre, cliquer sur le bouton en bas à gauche Add Standard Service

3. Une popup s’ouvre, ajouter l’URL suivante : https://tools.wmflabs.org/openrefine-wikidata/fr/api. [capture n°2]

[capture n°2]: ajouter l’URL de l’API de wikidata dans OpenRefine

4. Une fois cette URL rentrée, la colonne de gauche propose différents “types” (sous le forme de Q????? dans wikidata) susceptibles de correspondre à votre type de données. Dans notre cas, il identifie (à raison) le Q5 -> être humain. [capture n°3]

[capture n°3]: écran de paramétrage pour la reconciliation

5. [capture n°3] Ensuite dans la colonne de droite, (et voilà l’une des force de l’outil), il est possible de rajouter des infos issues de votre jeux de données comme une une propriété de wikidata (sous le forme de P????? dans wikidata) afin d’améliorer le taux de matching lors du réalignement. C’est un élément essentiel pour le réalignement notamment de personnes, notamment pour réduire les soucis à cause des homonymies, etc. Astuce pratique, l’outil propose l’auto-complétion, donc pas besoin de connaitre toutes les propriétés par coeur ! Vous pouvez également définir d’autres options sous la forme de cases à cocher:

  • décocher la case “Auto-Match candidate” si vous souhaitez voir apparaitre l’ensemble des candidats (avec le score) pour réaliser ensuite le choix de l’alignement de manière manuel. Bon à savoir, il sera toujours possible, a posteriori, de réaliser cette opération de manière automatique.

6. Une fois l’ensemble de ces paramètres saisis, appuyez sur Start Reconling. Le temps de travail est bien entendu lié à la masse de données. A titre d’exemple, un jeux de données de 1200 lignes à mis 7 min. OpenRefine possède une zone de notification en jaune permettant de suivre la progression du travail de réalignement.

7. Une fois le travail réalisé, pour chaque terme de votre colonne, des propositions de réalignement seront affichées (en bleu car il s’agit de lien cliquable) avec entre parenthèse, le score (100 étant le Saint-Graal) [capture n°4]. Vous pouvez faire afficher une pop-pu affichant 2–3 infos de wikidata avant de valider le réalignement en cliquant sur la case avec une seule coche [capture n°5 et n°6]. Ensuite, chaque entrée deviendra bleue après votre maching manuel. Si vous souhaitez faire un maching automatique, choisissez le menu de votre colonne puis Reconcile > Actions > Match each cell to its best candidate.

[capture n°4–5–6] 3 étapes de validation

6. Derrière ce “lien bleu” se cache en réalité, en ensemble de données que l’on peut extraire. Pour cela, retourner dans le menu de la colonne puis faire Edit Column > Add column base on this column [capture n°7]. Une fenêtre s’affiche, ajouter dans la zone “Expression”, l’élément suivant: cell.recon.match.id. Dans la prévisualisation, vous pouvez ainsi voir le résultat, càd, l’extraction de l’id wikidata.[capture n°8]

[capture n°7–8]: extraction de l’id après reconciliation

7. On se retrouve donc après ces quelques manipulations au résultat suivant:

Et pour finir 2 petites slides pour garder un éveil critique sur tout ça ! ;-)