Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

aligner ses autorités avec Viaf et IdRef

Tutoriel pour aligner ses données avec différents services de gestion d'autorités auteur

  • Be the first to comment

aligner ses autorités avec Viaf et IdRef

  1. 1. Alignements VIAF et IdRef avec OpenRefine LUC BELLIER LAURENCE GANDOIS
  2. 2. Alignements VIAF et IdRef Contexte • Souhaitant préparer un référentiel d’auteurs actif dans mon université, nous avons essayé de récupérer les identifiants publics disponibles : • Orcid • IdRef • ID BNF • Viaf etc... Premiers constats • chercher un IdRef avec l’API de l’ABES permet de remonter toutes les personnes correspondants au nom recherché, sans tenir compte du prénom. Les remontés sont nombreuses et délicates à nettoyer. • Pour contourner le problème, et sachant que VIAF collecte les données d’autorités auteur de nos deux agences bibliographiques nationales, nous sommes partis chercher IdRef en passant par VIAF.
  3. 3. Alignements VIAF et IdRef • OpenRefine version 3.X • Les tutoriels de Matthieu Saby, et d’Antoine Courtin • Il faut commencer par s’appuyer sur ces tutoriels si vous n’avez jamais utilisé OpenRefine. • Celui de Gauthier Poupeau est utile pour les outils de moissonnage depuis un SPARQL endpoint. • Fichier du personnel de l’université (conformité RGPD) • http://refine.codefork.com/reconcile/viaf via http://refine.codefork.com/ Outils
  4. 4. Voici le résultat du chargement du fichier du personnel depuis un fichier excel. La première étape consiste à fusionner les colonnes noms et prénoms afin d’interroger le service VIAF qui a besoin des deux éléments. Appeler le service « ajouter une colonne en fonction de cette colonne» en cliquant sur la flèche en haut de la colonne « Prenom » Alignements VIAF et IdRef
  5. 5. Alignements VIAF et IdRef • Une fenêtre apparait permettant de saisir la commande souhaitée. • Ici : Cells["Nom"] ,value + " " + cells["Prenom"], value • Cela permet de fusionner les valeurs des cellules de la colonne Nom et les valeurs en cellule de la colonne Prenom, séparées par un espace. • Pour certains besoins demandant Prénom puis Nom il suffit d’inverser les deux commandes, peu importe la colonne choisie pour appeler le service : • Cells[" Prenom "] ,value + " " + cells[" Nom"], value • Indiquez le nom de la colonne. Ce nom doit être unique. Une fenêtre apparait
  6. 6. Alignements VIAF et IdRef Cette colonne va être utilisée pour s’aligner avec VIAF, c’est pourquoi nous l’avons directement nommée VIAF. Plusieurs réconciliation étant possible avec des services distincts, il faudra ajouter des colonnes Nom + Prénom à différentes reprises. En appelant le service « ajouter une colonne en fonction d’une colonne » en indiquant le nom de la colonne souhaitée et sans modifiée la commande indiquée (value), vous ajoutez des colonnes identiques à l’originale.
  7. 7. Alignements VIAF et IdRef Dans le menu de la colonne Viaf, choisir le menu le service « réconcilier ». Une fenêtre s’ouvre vous proposant uniquement le service wikidata (en). Cliquer sur « ajouter un service standard » et saisissez le lien suivant : http://refine.codefork.com/reconcil e/viaf Vous aurez à disposition le service VIAF à chaque ouverture de cette fenêtre. Le traitement de la demande peut être assez long en fonction de la quantité de données à traiter.
  8. 8. Alignements VIAF et IdRef Le résultat apparait ainsi : A gauche des filtres qui permettent de visualiser les résultats. Ici, 7557 alignements proposés et 6964 laissés vides donc sans résultat. Par défaut, les deux critères sont cochés. En décliquant « blank », vous ne verrez plus que les propositions d’alignement et ne travaillerez que sur les 7557 lignes. A droite la colonne proposant les alignements. Au minimum deux choix, un nom aligné et un nouveau sujet. Le nom est actif et permet d’aller sur la page VIAF correspondante. Il est conseiller de faire quelques vérifications pour s’assurer de la fiabilité des résultats.
  9. 9. Alignements VIAF et IdRef Pour aligner automatiquement tous vos liens proposés, il suffit d’aller le menu « réconcilier » de la colonne, et dans « actions », choisir « apparier chaque cellule avec son meilleur candidat » selon le taux de confiance dans l’alignement proposé.
  10. 10. Alignements VIAF et IdRef Les données qui s’affichent désormais dans la colonne sont celles héritées de la réconciliation. En jouant sur les facettes il sera possible d’identifier les incohérences entre les colonnes nom et prénom d’une part et la colonne viaf d’autre part. Le cas des homonymie n’est pas vérifiable à ce stade.
  11. 11. Alignements VIAF et IdRef Une fois l’alignement réalisé, il est possible de récupérer certaines informations et a minima l’identifiant de chaque individu. Dans le menu de la colonne, choisir éditer la colonne, « ajouter une colonne en fonction de la colonne ». Saisir la commande : cell.recon.match.id Indiquer le nom de la colonne souhaitée : ID Viaf
  12. 12. Alignements VIAF et IdRef On récupère ainsi l’ID viaf de chaque personne identifiée avec le service viaf. Avec cet élément on va pouvoir construire et moissonner l’URL de chaque page VIAF des auteurs de ce fichier. Il suffit d’appeler le service, ajouter une colonne et de saisir : "https://viaf.org/viaf/ "+ value +"/viaf.xml« qui permet de construire l’url pointant sur le XML, avec l’ID VIAF comme variable
  13. 13. Alignements VIAF et IdRef On obtient ainsi une URL pour chaque auteur. URL moissonnable par le service ci-contre.
  14. 14. Alignements VIAF et IdRef Il convient de changer le délai de récupération et de décocher la mise en cache des réponse pour améliorer le temps de réponse.
  15. 15. Alignements VIAF et IdRef Extraire les identifiants depuis le flux xml en saisissant la commande ci-dessous dans le menu ‘ajouter une colonne en fonction de cette colonne’ : forEach(value.parseHtml().select('ns1|source nsid'), e ,e.htmlText()).join('n')
  16. 16. Alignements VIAF et IdRef Les identifiants récupérés proviennent de tous les entrepôts moissonnés par Viaf et peuvent donc être multivalués. Il convient désormais d’isoler les identifiant tagués SUDOC et BnF qui nous concernent en premier lieu.
  17. 17. Alignements VIAF vers … Récupérer l’ id Sudoc : • value.find(/((SUDOC).d(8)w)/)[0] • value.replace(« SUDOC|», «») Récupérer l’ id ISNI : • value.find(/((ISNI).d(15)w)/)[0] • value.replace(« ISNI|», «») Récupérer l’ id BNF : • value.find(/((BNF).d(8))/)[0] • value.replace(« BNF|»,«») Récupérer l’ id WIKIPEDIA : •value.find(/((WKP|Q)).d(5)| ((WKP|Q)).d(4) | ((WKP|Q)).d(3) /)[0] •value.replace(« WKP|Q», «»)
  18. 18. Alignements IDREF vers ORCID Récupérer id ORCID à partir de l’id sudoc : • On construit l’url permettant de récupérer l’identifiant ORCID • Ajout d’un colonne en fonction d’une autre colonne (ID SUDOC) • Expression a saisir : • « https://www.idref.fr/services/idref2orcid/ » + value • Moissonner la nouvelle colonne avec les urls formées • Ajouter une colonne en fonction d’une autre colonne (colonne xml générer par le moissonnage) • Expression a saisir : • forEach(value.parseHtml().select(« result>identifiant),e,e.htmlText())
  19. 19. Alignements IDREF vers HAL Récupérer IDHAL à partir de l’id sudoc : • On construit l’url permettant de récupérer l’identifiant IDHAL à partir de l’ID SUDOC • Ajout d’une colonne en fonction d’une autre colonne (ID SUDOC) • Expression à saisir : • « https://www.idref.fr/services/idref2idhal/ » + value • Moissonner la nouvelle colonne avec les urls formées • Ajouter une colonne en fonction d’une autre colonne (colonne xml générer par le moissonnage) • Expression à saisir : • forEach(value.parsehtml().select(« result>identifiant »),e,e.thmlText())
  20. 20. Alignements IDREF vers references Récupérer les publications produites à partir de l’id sudoc : •On construit l’url permettant de récupérer les publications à partir du webservice « references » •Ajout d’une colonne en fonction d’une autre colonne (ID SUDOC) •Expression à saisir : •« https://www.idref.fr/services/services/references/ » + value •Moissonner la nouvelle colonne avec les urls formées •Ajouter une colonne en fonction d’une autre colonne (colonne xml générer par le moissonnage) •Expression à saisir pour récupérer les titres/auteur : •forEach(value.parsehtml().select(« role>doc>citation »),e,e.htmlText()).join(‘ ||||’) •Ajouter une colonne en fonction d’une autre colonne (colonne avec les publications) •Expression a saisir pour récupéréer les identifiant(isbn, issn..) des publications : •ForEach(value.parseHtml().select(« role>doc>ppn »),e,e.htmltext()).join (‘ ||||’) •Mettre chaque titre et chaque identifiant dans une cellule propre •Sur la colonne des titres de publications clic droit -> Editer cellule -> Diviser cellule multivaluée •Mettre dans le séparateur les caractères inclus dans le ‘join()’, pour l’exemple ci-dessus c’est : |||| •Faire de même sur la colonne des identifiants de publications

×