12 Alignement de données avec des référentiels externes

Récupérer des identifiants et d’autres informations correspondant aux données dans des référentiels externes (vocabulaire Rameau, Wikidata, etc) pour faciliter l’enrichissement des données.

Deux possibilités:

  • Appeler une API dédiée (ex: API du Sudoc ou de la BNF) pour récupérer un numéro d’identifiant à partir d’un contenu (en utilisant la procédure décrite plus haut)
  • Utiliser un service de « réconciliation» spécialement conçu pour Openrefine (on pourrait aussi traduire « rapprochement»).

12.1 Les services de réconciliation

Un service de réconciliation propose pour chaque valeur une liste de concepts ou d’entités « candidats» issus d’un vocabulaire contrôlé ou d’une autre source de données normalisées.

Si le vocabulaire comprend des formes rejetées, elles seront utilisées par le service. Ex : « Emile Ajar» renverra l’entité « Romain Gary»

Si plusieurs réponses sont possibles, l’usager pourra choisir la bonne directement dans l’interface d’Openrefine.

Attention, le processus peut être lent (plusieurs minutes). A tester sur un petit échantillon!

12.3 Réconcilier des données avec Wikidata

Par défaut, le seul service de réconciliation installé est celui de Wikidata.

Wikidata : Base de donnée accessible en ligne, libre et collaborative qui collecte des données structurées, destinée à alimenter Wikipedia et les autres projets du mouvement Wikimédia, mais largement utilisée par d’autres acteurs.

Triple intérêt :

  • identifier des “entités”
  • leur attribuer des propriétés
  • servir de pivot pour les relier à d’autres référentiels.

Chaque entité de Wikidata (identifié par un Q suivi d’un nombre), et relié à d’autres éléments par des propriétés (identifiées par un P suivi d’un nombre)

Exemple :

à partir d’un projet contenant ces deux lignes, récupérer les identifiants correspondant aux deux auteurs dans Wikidata

(la colonne metier est facultative, mais pourra être utilisé par le service de réconciliation pour préciser la requête)

Pour éviter que les données ne soient écrasées par la réconciliation : Créer une nouvelle colonne nom-reconcilie à partir de nom

nom-reconcilie > Réconcilier > Démarrer la réconciliation

Sélectionner le type d’entité commun aux éléments de chaque ligne.

Openrefine analyse les données et propose plusieurs choix. Ici : human, book, etc. Si un choix est satisfaisant (ni trop précis ni trop large…), sélectionner le. Sinon choisir manuellement un type, ou réconcilier sans type.

Ici, “human” est un bon choix

Résultat : « Emile Ajar » reconnu comme étant « Romain Gary »

« victor hugo » traité comme « hugo victor »

Problème : une vingtaine de Victor Hugo dont 4 reconnus à 100% de probabilité…

Pour trouver le bon Victor Hugo, cliquer sur chaque nom. Ici le 2e est le bon. Cliquer sur “Apparier cette cellule”

12.4 Récupérer les données de réconciliation

Pour récupérer les identifiants Wikidata, une formule GREL est nécessaire :

Colonne nom-reconcile > Editer la colonne> Ajouter une colonne en fonction de cette colonne

Nouvelle colonne id ; Saisir la formule cell.recon.match.id

Vérification : aller à l’URL https://www.wikidata.org/wiki/Q157322 (Romain Gary)

Pour récupérer les propriétés de l’entité Wikidata, deux solutions :

  • Editer la colonne > ajouter une colonne en moissonnant des URL en utilisant l’API JSON de Wikidata, avec l’identifiant de l’entité : https://www.wikidata.org/wiki/Special:EntityData/Q157322.json
  • Editer la colonne > ajouter des colonnes à partir de valeurs réconciliées puis choisir une propriété

12.5 Effacer les données de réconcilation

Réconcilier > Actions > Effacer les données de réconcilations

12.6 Affiner le tri des résultats en utilisant une propriété de l’entité recherchée

Lancer une nouvelle réconcilation en utilisant les informations de la colonne metier . Dans le panneau de gauche, cocher metier et saisir la propriété occupation (en anglais, spécifique de l’ontologie Wikidata)

Le métier (ici novelist) est maintenant pris en compte pour le classements des Victor Hugo. Le romancier est le 1er de la liste et le seul à 100% de probabilité !

Pour le service interrogeant Wikidata il est possible de lier une colonne à une expression complexe combinant plusieurs propriétés.

Ex : P27/P297 = la colonne doit contenir le code à deux lettres (FR, GB…) d’un pays lié à l’entité recherchée

Ex : P27|P297 = la colonne doit contenir le code à deux lettres (FR, GB…) d’un pays lié à l’entité recherchée ou bien le nom complet du pays

P27|P297 = la colonne doit contenir soit le code à deux lettres soit le nom complet du pays

12.7 Au delà de Wikidata

En plus de Wikidata d’autres services existent et peuvent être ajoutés facilement, notamment http://refine.codefork.com/ qui donne accès à plusieurs sources utiles en bibliothèque : VIAF, auteurs BNF (via VIAF), ORCID, Open Library

Mais aussi: * en numismatique : http://nomisma.org/apis/reconcile

En théorie l’extension RDF permet de créer un service de réconciliation à partir n’importe quelle source exposée en RDF (standard du « web de données ») via un SPARQL Endpoint.