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:
La catégorisation (ou classification) automatique
L’annotation sémantique
La normalisation
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.
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.
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).
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).
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).
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 |
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 :
La structure du référentiel (profondeur, hiérarchisation de concepts, nombre de branches, micro-référentiel);
La richesse terminologique (disciplinaire, généraliste, recouvrement sémantique, termes spécifiques vs termes génériques, nombre de termes, synonymes préférentiels, variantes);
La présence de définitions;
Les relations sémantiques (nombre et types d’alignements, exposition des URI);
L’exposition dans le Linked Open Data avec URI;
Le multilinguisme;
La notoriété.
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
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.↩︎
Documentation Antidot:
https://doc.antidot.net/r/AFS-Packages-Contents/Pipes-and-Filters-Packages↩︎Disponible dans le GitLab: https://gitlab.huma-num.fr/isidore/referentiels/-/blob/master/Tools/ISIDORE-hiddenLabel-machine.ipynb↩︎