Administration des référentiels utilisés dans ISIDORE

Mélanie Bunel

Jean-Luc Minel

Stéphane Pouyllau

Nicolas Sauret

2022/03/15

Introduction

L’utilisation des référentiels dans les plateformes ISIDORE et NAKALA repose sur une chaîne de traitement informatique basée sur des techniques de Machine Learning et des méthodes de matching. Pour que ce process puisse être gage de qualité, les équipes d’Huma-Num avait mis en place, il y a quelques années, un système d’administration des référentiels basé sur du travail principalement humain 1. Avec les dernières versions des plateformes ISIDORE et NAKALA, ce travail a malheureusement été interrompu. Aujourd’hui, le programme HNSO reprend l’ensemble des éléments à considérer pour une utilisation optimale des fonctionnalités d’enrichissement et de traitement sémantiques des données au sein des deux plateformes. Dans cette section, nous décrivons l’ensemble de la chaîne de traitement ainsi que les éléments permettant de comprendre les principes d’utilisation des référentiels dans cette même chaîne de traitement.

Les processus de catégorisation et d’annotation sémantique

Le process d’enrichissement et de traitement sémantique à l’aide de référentiels est de 3 types dans l’interface d’ISIDORE:

Dans la chaîne de traitement ISIDORE, cette phase d’enrichissement et de traitement a lieu après le moissonnage des données et juste avant l’indexation dans le moteur de recherche (Figure 11.1). Historiquement les référentiels étaient gérés via une application spécifique appelée “ITM”, mais la montée en charge de ceux-ci (volume) et des problèmes d’import dans ITM ont conduit à les gérer directement via un éditeur et les pousser directement dans le PAF Antidot de traitement et d’ingestion des référentiels.

Figure 11.1 : Chaîne de traitement ISIDORE (schéma extrait de la Proposition Antidot de 2010)

Les référentiels sont d’abord téléchargés par les administrateurs de ISIDORE à partir des APIs disponibles ou par contact direct avec les producteurs. Ensuite, après leurs traitements documentaires, les référentiels sont injectés manuellement dans la chaîne de traitement (Figure 11.2) et sont utilisés dans l’interface d’enrichissement d’Antidot grâce à un package antidot-paf 2 qui met à disposition un ensemble de composant PAF pour permettre 1) la mise en œuvre de classifications avec un PAF CLASSIFY et 2) l’annotation avec un PAF ENRICH.

Figure 11.2 : Architecture fonctionnelle de la chaîne de traitement pour l’enrichissement sémantique via les PAF CLASSIFY et ENRICH (schéma extrait de la documentation interne à Huma-Num, archive de 2014)

Pour la catégorisation automatique de documents, ISIDORE utilise un classifieur qui, après avoir été entraîné sur un corpus de référence, catégorise tous les documents présents dans ISIDORE parmi les disciplines SHS du référentiel HAL/MORESS. L’entraînement du classifieur est basé sur la catégorisation manuelle effectuée par les chercheurs lors du dépôt de leurs publications dans HAL. La classification automatique ou catégorisation de document relève du TAL (ou NLP en anglais) et fait intervenir des méthodologies de Machine Learning.

Pour l’annotation des documents, ISIDORE compare les mots présents dans les métadonnées des documents aux entrées des référentiels par le biais d’un algorithme fondé sur une analyse morphologique des termes. Si une équivalence s’effectue entre un terme issu du document et une entrée de l’un des référentiels, alors la ressource sera reliée à ladite entrée du référentiel. Les référentiels sont multilingues et alignés entre eux. De ce fait, l’annotation est multilingue. À partir de ce traitement automatique, il est possible d’offrir des mécanismes de facettes pour restreindre les résultats d’une recherche, des suggestions de recherche pendant la frappe de l’utilisateur donnant une vision des sujets principaux du document. Il est important de préciser que l’indexation des documents grâce à l’enrichissement sémantique est réalisée uniquement à partir du skos:altLabel des référentiels. La hiérarchisation des concepts ainsi que toutes les autres propriétés de relations sémantiques ne sont pas utilisées. Les référentiels sont donc considérés comme des listes de termes.

En ce qui concerne la correspondance des documents avec l’un des types de ressource ISIDORE, la méthode repose sur du pattern ‘matching’ à partir des chaînes de caractères extraits dans le dc:type, c’est à dire sur la correspondance exacte entre la chaîne de caractère du producteur et celles présentes dans une catégorie de la classification des types. Pour cela, la chaîne de traitement récupère les dc:type, puis les utilise pour alimenter un skos:hiddenLabel présents dans le fichier skos. Ainsi, l’ensemble des types injectés dans les skos:hiddenLabel agit tel un dictionnaire de variantes de formes d’écriture. Lors de l’ingestion d’un document, le dc:type entré par le producteur de la donnée sera mappé sur les skos:hiddenLabel associés à chaque type ISIDORE (Figure 11.3). La procédure est décrite dans un notebook3(Pouyllau 2021).

Figure 11.3 : Illustration du matching de caractères entre un type “producteur de données” récupéré dans l’OAI de HAL et le référentiel “types de document ISIDORE” sur le terme “Book section” correspondant à “Livres et chapitres d’ouvrages” dans l’interface Web d’ISIDORE

Récupération des référentiels

Avant leur ingestion manuelle dans la chaîne de traitement, les référentiels sont récupérés au format SKOS-RDF/XML soit par téléchargement lorsqu’ils sont accessibles en ligne ou auprès des producteurs des référentiels lorsqu’ils ne sont pas accessibles en ligne (Tableau 11.1).

Tableau 11.1 : Liste des référentiels utilisés dans ISIDORE
Nom du référentiels Récupération Information
ArchiRès Auprès des producteurs ARCHIRES
BNE Par téléchargement http://www.bne.es/es/Inicio/Perfiles/Bibliotecarios/DatosEnlazados/DescargaFicheros/
Calenda Auprès des producteurs Calenda
Gemet Par téléchargement https://www.eionet.europa.eu/gemet/fr/exports/rdf/latest
GeoEthno Auprès des producteurs GeoEthno
GeoNames Par téléchargement https://download.geonames.org/export/dump/
HAL Par téléchargement https://api.archives-ouvertes.fr/docs/ref
LCSH Par téléchargement https://id.loc.gov/download/
Lexvo Par téléchargement http://www.lexvo.org/linkeddata/resources.html
Pactols Auprès des producteurs PACTOLS
Rameau Par téléchargement https://api.bnf.fr/fr/dumps-de-databnffr
Data Culture Par téléchargement http://data.culture.fr/thesaurus/page/ark:/67717/T4

Il est possible d’ajouter de nouvelles entrées ou de modifier des entrées existantes. Pour que les ressources des producteurs se retrouvent dans le type adéquat de la facette, il convient d’analyser ce qu’ils indiquent dans leurs métadonnées (le plus généralement dans le dc:type) et voir si cela correspond à un type dans la classification ISIDORE. Le matching avec l’un des types ne repose que sur du pattern matching sur les chaînes de caractères, c’est à dire sur la correspondance exacte entre la chaîne de caractère du producteur et celles présentes dans une catégorie de la classification des types. Pour analyser la correspondance entre l’élément indiqué chez le producteur et l’une des entrées dans la classification, il convient d’analyser la correspondance « sémantique » indépendamment de la chaîne de caractère présente chez le producteur. Si l’indication chez le producteur correspond « scientifiquement » à l’un des types existant, mais que la chaîne de caractère ne permet pas de matcher avec le type ISIDORE, il faut alors modifier le type ISIDORE pour que cela puisse matcher. Pour cela, il suffit d’ajouter la chaîne de caractères présente chez le producteurs, dans la propriété skos:hiddenLabel. Le matching se faisant sur la correspondance exacte de la chaîne de caractères, il est préférable de ne pas mettre d’attribut de langue. Le matching se fait sur tout type de chaîne de caractères y compris les URIs.

Référentiels et modèle de données ISIDORE

Le modèle de données ISIDORE est exprimé principalement grâce aux standards Dublin Core, DCTerms, OWL, rdf et FOAF (Figure 11.4). Cette illustration permet de localiser sur quelles métadonnées la chaîne de traitement ajoute un prédicat pour traiter l’enrichissement et le traitement sémantique des données (Tableau 11.2).

Tableau 11.2 : Usage des référentiels pour l’enrichissement des données dans le modèle de données ISIDORE
Métadonnées concernées Traitement effectué Prédicat ajouté Référentiels concernés Rôle
dc:subject Ajout d’un URI catégorie sioc:topic HAL et Calenda Catégorisation automatique
dc:description Ajout d’un URI concept dcterms:subject GEMET, Rameau, Pactols, LCSH, BNE, Archirès Annotation sémantique
dc:coverage Ajout d’un URI lieu géographique ou d’une période historique dcterms:coverage Geonames, Geoethno ou Data Culture Annotation sémantique
dcterms:spatial Ajout d’un URI lieu géographique dcterms:coverage Geonames ou Geoethno Annotation sémantique
dcterms:creator Ajout d’un ID auteur owl:sameAs ORCID, VIAF, idRef, idHAL, ISNI Désambiguisation (à termes)
dc:date Correction du format date dcterms:date Norme ISO-8601 Normalisation
dc:type Ajout d’un URI type ou périmètre rdf:type isidore:Ontology et isidore:Scope Catégorisation automatique
dc:language Ajout d’un URI langue dcterms:language LEXVO Normalisation
Figure 11.4 : Modèle de données ISIDORE, adapté de https://isidore.science/sqe

Visualiser le contenu des référentiels

Dans cette section, nous listons les requêtes SPARQL pour accéder aux référentiels utilisés dans ISIDORE incluant l’URI et le label de chaque concept.

Accès au SPARQL ISIDORE: https://isidore.science/sparql

La classification des types ISIDORE

SELECT DISTINCT ?uri ?label
WHERE {
    ?uri  skos:inScheme  <http://isidore.science/ontology> .
    ?uri skos:prefLabel ?label filter (lang(?label) = "fr").
}
ORDER BY(?uri)

La classification de la nature des sources ISIDORE

SELECT DISTINCT ?uri ?label
WHERE {
    ?uri  ?p  <http://isidore.science/class> .
    ?uri skos:prefLabel ?label filter (lang(?label) = "fr").
}

Les disciplines HAL

SELECT DISTINCT ?uri ?label
WHERE {
    ?uri ?p <http://aurehal.archives-ouvertes.fr/subject/shs> .
    ?uri skos:prefLabel ?label filter (lang(?label) = "fr").
}
ORDER BY(?uri)

Les catégories Calenda

SELECT DISTINCT *
WHERE {
    ?uri  ?p  <http://calenda.org/categories.rdf#categories> .
    ?uri skos:prefLabel ?label
    FILTER (lang(?label) = "fr").
}
ORDER BY(?uri)

Les périodes historiques pour l’indexation des archives locales

SELECT DISTINCT *
WHERE {
    ?uri  skos:inScheme  <http://data.culture.fr/thesaurus/resource/ark:/67717/Contexte> .
    ?uri skos:prefLabel ?label
    FILTER (lang(?label) = "fr").
}
ORDER BY(?uri)

Le référentiel RAMEAU

SELECT *
WHERE {
    ?s skos:inScheme <http://rameau.bnf.fr/> .
    ?s skos:prefLabel ?label .
}
ORDER BY ?label

Le référentiel GEMET

SELECT *
 WHERE {
    ?s skos:inScheme <http://www.eionet.europa.eu/gemet/gemetThesaurus/> .
    ?s skos:prefLabel ?label .
    FILTER(lang(?label) = 'fr')
}
ORDER BY ?label

Le référentiel LCSH

PREFIX ns0: <http://www.w3.org/2004/02/skos/core#>
SELECT DISTINCT *
WHERE {
    ?s ns0:inScheme  <http://id.loc.gov/authorities/subjects> .
    ?s ns0:prefLabel ?label .
}
ORDER BY(?label)

Le référentiel Geonames

PREFIX gn: <http://www.geonames.org/ontology#>
SELECT DISTINCT ?s ?label
WHERE {
    ?s a  <http://www.geonames.org/ontology#Feature> .
    ?s gn:name ?label .
}
ORDER BY(?s)

Le référentiel de la BNE

SELECT *
 WHERE {
    ?s skos:inScheme <http://datos.bne.es/scheme/conceptScheme> .
    ?s skos:prefLabel ?label .
 }
ORDER BY ?label

Le référentiel PACTOLS

SELECT *
 WHERE {
    ?s skos:inScheme <http://pactols.frantiq.fr/> .
    ?s skos:prefLabel ?label .
    FILTER(lang(?label) = 'fr')
}
ORDER BY ?label

Le référentiel LEXVO

SELECT DISTINCT ?s ?label
WHERE {
    ?s  rdfs:isDefinedBy <http://lexvo.org>.
    ?s skos:prefLabel ?label
}
ORDER BY ?label

Le référentiel GeoEthno

SELECT DISTINCT ?s ?label
WHERE {
    ?s skos:inScheme  <http://GeoEthno#GeoEthno> .
    ?s skos:prefLabel ?label
}
ORDER BY ?s

Pour accéder à l’ensemble du référentiel ISIDORE qui contient la liste entière des concepts, la requête SPARQL est la suivante:

Le référentiel entier ISIDORE

SELECT DISTINCT ?s
WHERE {
    ?s a <http://www.w3.org/2004/02/skos/core#Concept> .
    ?s skos:prefLabel ?label .
    }
ORDER BY ?s

#ou

SELECT DISTINCT ?s
WHERE {
    graph <http://www.rechercheisidore.fr/Vocabularies>
    {?s a skos:Concept.}
}
ORDER BY ?s

Conclusion

Les référentiels actuels de ISIDORE constituent une bonne base pour l’indexation des ressources et leur découvrabilité. Un travail régulier doit être réalisé sur les référentiels déjà présents, sur leurs aspects techniques (maintenance, mise à jour, interopérabilité), sur la qualité (scientifique, structuration) mais aussi sur leur temporalité, c’est-à-dire, leur cohérence avec l’actualité scientifique (certains termes valables il y a 20 ans ne le sont peut-être plus aujourd’hui). Ce travail permettra de justifier l’intérêt de conserver certaines référentiels ou de les éliminer et d’enclencher une démarche de recherche de nouveaux référentiels. En outre, pour proposer des améliorations permettant d’augmenter leur qualité et la pertinence de leur usage, quelques critères d’évaluation peuvent être explorés :

Il est essentiel d’effectuer une veille régulière sur cette question et d’aller explorer de nouveaux référentiels pour une éventuelle intégration dans la chaîne de traitement.

Ce travail sera un des objectifs du programme HNSO avec notamment le développement d’une méthodologie permettant de faire un suivi des référentiels présents dans ISIDORE, de proposer une méthodologie de cartographie de nouveaux référentiels au regard des besoins de la plateforme, et de mettre en place une nouvelle chaîne de traitement et d’enrichissement des données basées sur des méthodes de Machine Learning et Deep Learning.

Références

Pouyllau, S. 2021. « ISIDORE hiddenLabel machine ». 2021.

  1. En 2014, Shadia Kilouchi, ancienne ingénieure d’études Huma-Num s’occupait de la maintenance et de l’administration des référentiels afin de les maintenir à jour avec beaucoup de rigueur et minutie. Beaucoup d’informations explicatives dans ce chapitre proviennent de son travail.↩︎

  2. Documentation Antidot:
    https://doc.antidot.net/r/AFS-Packages-Contents/Pipes-and-Filters-Packages↩︎

  3. Disponible dans le GitLab: https://gitlab.huma-num.fr/isidore/referentiels/-/blob/master/Tools/ISIDORE-hiddenLabel-machine.ipynb↩︎