Vous regardez une version antérieure (v. /wiki/pages/viewpage.action?pageId=1369964545) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 31) afficher la version suivante »

Les établissements utilisateurs des données peuvent se féliciter de la présence de vocabulaires contrôlés disciplinaires tels que JEL, ACM ou MeSH ✨.

Car malheureusement, on revient de loin confused face : la saisie, des années durant, de mots-clés libres a généré une "dette technique de données" qui rend délicate, par exemple, la caractérisation des profils d'expertise des chercheurs ou des laboratoires à partir des données Hal 1 Pour rendre le problème plus parlant speaking head , voici la liste des variantes de graphies pour quelques-mots clés, obtenues depuis l'API Hal :

Moyen ÂgeMoyen-ÂgeMoyen âgeMOYEN AGEMoyen ageMoyen ägeMoyen ÄgeMOyen ÂgeMoyen AGeMoyen âgeMoyen ÂgeMOYEN-AGE
Île-de-FranceIle-de-FranceIle-de-franceÎle de FranceIle-de FranceÎle-de-franceIle de franceILE DE FRANCEÏle-de-FranceÎle de franceIle-De-FranceILE-DE-FRANCEÎle-De-FranceÎle-de-France
Partenariat public-privéPartenariat public privéPartenariat Public-PrivéPartenariat public/privéParténariat public-privéPartenariat public-PrivéPartenariat Public PrivéParténariat public-PrivéPartenariat public-privé

Même si ces exemples n'ont pas été choisis tout à fait au hasard face with rolling eyes, ils donnent une petite idée, a posteriori et a contrario, de l'importance qu'il y a à fournir des mécanismes de suggestion ("autocomplétion" ) basés sur des vocabulaires reconnus. Et pas seulement pour limiter les "variantes" orthographiques 🙈 .

Car idéalement, pour gérer les informations sur la recherche selon les canons des "FAIR Data" sports medal , il faudrait également disposer pour chaque concept d'un identifiant unique (une URI) se prêtant, si possible, à un « déréférencement » : une opération qui consiste à naviguer  woman rowing boat sur le web jusqu'à la source de données indiquée par l'URI (qui est aussi, souvent, une URL : c'est pratique  😊 ). 

Par exemple, pour "Partenariat public-privé", si on disposait d'une URI telle que https://catalogue.bnf.fr/ark:/12148/cb13755654m ou https://www.idref.fr/061611514, on pourrait obtenir une foule de bénéfices  : des traductions, des alignements avec des vocabulaires tiers (Public-private sector cooperation de la Library of congress flag: United States ), des variantes... Ou tout simplement vérifier qu'on a des données correctes face with monocle .

Des codes, oui, mais pas d'URI...


Normalement, ce qui précède vous a motivés 🤓 - si vous ne l'étiez pas déjà - pour tirer tout le parti possible des quelques vocabulaires contrôlés (JEL, MeSH, ACM) proposés au sein des données Hal.

 C'est ce que nous avons voulu faire dans le cadre du projet SoVisu+, du consortium CRISalid.

Le consortium CRISalid

La commauté CRISalid réunit plusieurs établissements qui œuvrent ensemble à l'automatisation de la construction de leur "graphe de connaissance institutionnel", socle de la gestions des informations sur la recherche.

Prenons le cas du vocabulaire JEL (pour «Journal of Economic Literature»). C'est un système de classification des publications 📊 qui émane l'American Economic Association (AEA) et s'applique aux publications ... dans le domaine de l'économie (on s'en serait un peu doutés 🤷‍♂️).

Sur son site web, l'AEA fournit certes le vocabulaire avec ses codes et ses définitions , mais ne pousse pas la gentillesse jusqu'à proposer les fameuses "URI" qui permettraient d'intégrer ces concepts parmi d'autres données "sémantiques" 😞. Par exemple, le code "A140" représente "Sociology of Economics", mais son unicité est loin d'être garantie : bien de choses, sur terre, sont susceptibles de s'appeller A140, et par exemple des avions  ✈️. En outre, aucun indice magnifying glass tilted left ne permettra à un système de découvrir l'information associée à ce "A140". On peut parler de vocabulaire « à l'ancienne » 🕰️ en quelque sorte, avec des codes qui sont suffisants dans un contexte fermé, mais mais ne font pas sens dans le vaste océan du web water wave .

Et ce sont ces codes que l'on retrouve dans les données issues de HAL...

Prenons à titre d'exemple une publication économie dotée des fameux domaines JEL : https://hal.science/hal-02169144v1

Et interrogeons à son sujet le endpoint Sparql de Hal. (http://sparql.archives-ouvertes.fr/sparql ) :

Nos classifications sont bien dans le résultat mais comment les exploiter thinking face  ?

Nous pourrions bien nous donner la peine de "rabouter" hammer and wrench  les labels et les identifiants en interrogeant l'API plus JSON de HAL (https://api.archives-ouvertes.fr/search?q=halId_s:hal-02169144&fl=*), à condition de faire confiance à l'ordre des résultats. Mais on est loin de la richesse money-mouth face  promise par les vocabulaires contrôlés !

SKOS à la rescousse

À ce stade, on commence à se dire que ce serait quand-même beaucoup plus simple si quelqu'un avait publié le vocabulaire JEL quelque part sur le web dans un format moderne, généralement SKOS (simple knowledge organization system), qui est le standard du web sémantique pour la représentation des vocabulaires books

Ça tombe bien : quelqu'un l'a fait ! Le Leibniz-Informationszentrum Wirtschaft. Cette institution a converti le vocabulaire au format SKOS et l'a publié sur l'application Skosmos https://zbw.eu/beta/skosmos/jel/en/. Le résultat est ainsi accessible aussi bien aux robots 🤖 qu'aux humains 👤.

Une petite «concaténation» et le tour est joué magic wand : quand Hal nous envoie "G.G1.G13", il ne nous reste plus :

Il ne faudrait toutefois pas vendre trop vite la peau de l'ours bear : à l'usage, il s'avère que le site https://zbw.eu/beta/skosmos 🤒 n'est pas en pleine forme et qu'il cesse rapidement de répondre lorsque les requêtes arrivent en rafales ... Et pour couronner le tout crown , les liens de téléchargement proposés par l’institution sur la page d'accueil du vocabulaire répondent   invariablement "404" 😞 .

Sauvés par la Wayback Machine

C'est là qu'il fallait penser light bulb à la fameuse "Wayback Machine" d'Internet Archive (https://web.archive.org/) 2 Coup de chance , le fichier SKOS contenant l'ensemble du vocabulaire JEL de la ZBW a été régulièrement archivé, et la dernière fois, pas plus tard qu'en janvier 2024 ! 

https://web.archive.org/web/20240000000000*/https://zbw.eu/beta/external_identifiers/jel/download/jel.rdf.zip

Pour nous, voilà qui était suffisant : une fois le vocabulaire récupéré, il suffisait de le charger dans un serveur adapté aux données sémantiques (Apache Jena Fuseki) et d'empaqueter le tout package  dans un container Docker ! Le vocabulaire JEL publié par le Leibniz-Informationszentrum Wirtschaft sera désormais disponible au sein de notre système "SoVisu+" sous forme d'un microservice, afin d'aider à rendre les données de Hal compatibles avec le web sémantique !

Le container Docker :  https://hub.docker.com/repository/docker/crisalidesr/svp-jel-proxy/general

Le code qui a permis de le créer : https://github.com/CRISalid-esr/svp-jel-proxy   

Pour tester vous-mêmes

À ce stade, vous souhaiter peut-être comprendre comment on utilise ce composant.

Installez un outil tel que Postman qui vous facilitera l'édition de requêtes :

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX void: <http://rdfs.org/ns/void#>PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dc: <http://purl.org/dc/terms/>
CONSTRUCT { ?concept rdf:type skos:Concept ; skos:prefLabel ?prefLabel ; skos:altLabel ?altLabel ; skos:notation ?notation ; skos:relatedMatch ?relatedMatch ; skos:narrowMatch ?narrowMatch ; skos:broadMatch ?broadMatch ; skos:inScheme ?scheme ; dc:isPartOf ?dataset ; rdfs:label ?label . ?scheme rdf:type skos:ConceptScheme ; skos:prefLabel ?schemeLabel . ?dataset rdf:type void:Dataset ; rdfs:label ?datasetLabel .}
WHERE { BIND(<http://zbw.eu/beta/external_identifiers/jel#E24> AS ?concept)
OPTIONAL { ?concept skos:prefLabel ?prefLabel . }
OPTIONAL { ?concept skos:altLabel ?altLabel . }
OPTIONAL { ?concept skos:notation ?notation . }
OPTIONAL { ?concept skos:relatedMatch ?relatedMatch . }
OPTIONAL { ?concept skos:narrowMatch ?narrowMatch . }
OPTIONAL { ?concept skos:broadMatch ?broadMatch . }
OPTIONAL { ?concept skos:inScheme ?scheme . ?scheme skos:prefLabel ?schemeLabel . }
OPTIONAL { ?concept dc:isPartOf ?dataset . ?dataset rdfs:label ?datasetLabel . }
OPTIONAL { ?concept rdfs:label ?label . FILTER (LANG(?label) = "en" || LANG(?label) = "de" || LANG(?label) = "fr" || LANG(?label) = "es") }}



  1. On n'oubliera pas toutefois de mentionner ici les louables efforts de l'équipe scanR pour fournir des versions des métadonnées Hal réalignées sur Idref/Rameau et WikiData grinning face  !
  2. Si vous ne connaissez pas ou mal Internet archive, on vous recommande d'écouter la radio radio .



  • Aucune étiquette