La correspondance du fonds Yves Berthou à l’épreuve des étincelles (1ère partie)

Jean-Baptiste PRESSAC, plateforme CRBC Open Science

Summary:

The digitization of archival documents requires specific metadata to describe the files produced, the archival documents’s content and their origin. This article showcases how the querying language SPARQL can be used by researchers on those same metadata to highlight specific information on a large scale (author’s name, date of the document, audience of the document…). This first article in a series focuses on how to request specific metadata using SPARQL, based on digitized documents from Yves Berthou’s archival fonds.

Le Centre de recherche bretonne et celtique (CRBC) conserve dans ses archives le fonds Yves Berthou (1861-1933), poète et acteur de la culture bretonne. Dans le cadre du projet DreAM et du cours de valorisation documentaire du master 2 Civilisations, cultures et sociétés de l’UBO, une centaine de documents de ce fonds ont été documentés, numérisés et mis en ligne sur la bibliothèque numérique du CRBC et sur Nakala, un entrepôt national de données pour les sciences humaines et sociales édité par l’infrastructure de recherche Huma-Num.

Parmi ces documents, quelques lettres et cartes postales témoignent des échanges entre les acteurs de la culture bretonne et de la culture galloise au XIXe siècle. Une des approches possibles d’analyse quantitative de ces documents consiste à télécharger les métadonnées qui les décrivent (titre, date, auteurs, correspondants) via l’API (interface de programmation applicative) de Nakala et à les exploiter à l’aide de logiciels tels que R ou le langage Python.

Une autre approche est d’interroger ces métadonnées depuis le service https://nakala.fr/sparql à l’aide du langage informatique SPARQL (prononcer sparkle, étincelle en anglais) afin de répondre à des questions telles que Combien de lettres ont été écrites par telle personne ? Qui sont les correspondants de cette personne ? Combien de lettres ont été échangées entre chaque correspondant et à quelles dates ?

Dans ce billet nous vous proposons d’explorer quelques requêtes possibles avec ce service, jusqu’à une requête permettant de quantifier et de visualiser sur une frise chronologique les échanges épistolaires conservés dans le fonds de cet écrivain et barde breton (requête dont l’explication détaillée fera l’objet d’un billet dédié).

Notez que https://nakala.fr/sparql n’est pas pleinement opérationnel en ce début d’année 2024. Les opérations de conversions nécessaires pour générer les données interrogées ne sont pour l’instant lancées qu’une fois par mois par l’équipe de Nakala. Les métadonnées des documents tels qu’ils sont affichés sur les notices peuvent donc différer des résultats des requêtes présentées dans ce billet. De plus, les règles de conversion en triplets RDF ne sont pas encore figées. Les résultats des requêtes pourront également changer en fonction des modifications que nous apporterons aux métadonnées des documents, ce projet de valorisation documentaire étant toujours en cours.

Les documents numérisés du fonds Yves Berthou ont également été déposés sur la bibliothèque numérique du CRBC. Mais les scans des documents n’y sont pas disponibles à leur résolution maximale pour des raisons techniques et les URL d’accès aux documents ne sont pas pérennes. Notamment, si le logiciel de la bibliothèque numérique venait à changer, les liens deviendraient invalides. Afin de palier ces deux inconvénients, le CRBC dépose en doublon les scans en haute définition sur Nakala, qui dispose d’un serveur d’images respectant le protocole IIIF et donne accès aux documents à travers des URL pérennes, garantissant un accès quelles que soient les évolutions technologiques de l’entrepôt.

A propos de Yves Berthou

D’après la page de présentation du fonds éponyme sur le site du CRBC, Yves Berthou, né en 1861 et décédé en 1933, est ingénieur et exploitant agricole. À partir de 1903, il est président du Collège des bardes de Bretagne. Il publie en 1906 avec Jean Le Fustec, premier grand-druide de Bretagne, une traduction bretonne des Triades. Grand-druide de la Gorsedd, co-fondateur de l’Union régionaliste bretonne, il publie des textes littéraires et des articles dans divers journaux.

Le fonds Yves Berthou a été extrait du fonds Francis Even par Yves Le Gallo, à l’acquisition de ce dernier fonds par la bibliothèque du CRBC en 1969.

Bien que le fonds porte son nom, une minorité des correspondances numérisées et mises en ligne ont pour auteur ou pour destinataire Yves Berthou, comme nous allons le constater.

Les métadonnées des archives

Les métadonnées des documents déposés sur Nakala sont décrites en utilisant les termes de la Dublin Core Metadata Initiative (DCMI). Les auteurs des documents ont notamment été saisis avec le terme dcterms:creator, le type du document (lettre, discours, tract, poésie, etc.) avec le terme dcterms:type et les destinataires des correspondances avec le terme dcterms:audience.

Par exemple, si vous cliquez sur le lien Afficher la liste complète des métadonnées de la notice Nakala de la [Lettre de John Kelt Edwards à Jean Le Fustec] de 1899, les métadonnées indiquent que l’auteur est Edwards, John Kelt (1875-1934) et le destinataire, Ar Fusteg, Yann (1855-1910).

Les noms des individus ont été saisis en utilisant la forme retenue des notices d’autorités de la BnF, par exemple Ar Fusteg, Yann (1855-1910) pour Jean Le Fustec – équivalent au point d’accès autorisé des notices du référentiel IdRef (voir la notice IdRef de Le Fustec). Lorsque la notice de l’individu était inexistante sur le catalogue de la BnF ou sur IdRef, nous avons forgé son nom selon les mêmes principes : Patronyme, Prénoms (année de naissance-année de décès).

Le titre du document est volontairement évasif. La date de la [Lettre de John Kelt Edwards à Jean Le Fustec] n’est par exemple pas décrite dans le titre puisqu’elle est déjà signalée dans le terme dcterms:date. Dans d’autres documents, telle que cette [Lettre de Frances Marion Gostling], l’objet de la correspondance a été décrit dans dcterms:description.

En plus de dcterms:type, le titre du document (Lettre de X, Carte postale de Y) permet aussi de distinguer la correspondance du reste des documents de la collection mais c’est la présence d’au moins un terme dc:audience qui sera utilisé dans ce billet pour extraire les échanges épistolaires.

Le logiciel Yasgui

Les requêtes sur les métadonnées peuvent être écrites et exécutées depuis l’interface du service https://nakala.fr/sparql. Mais elle ne propose ni correction automatique de syntaxe ni visualisation des résultats sous forme de graphiques, de cartes ou de frises chronologiques. Nous préférons donc utiliser le démonstrateur en ligne du logiciel Yasgui pour écrire nos requêtes SPARQL : https://yasgui.triply.cc/.

Pour interroger avec Yasgui les données de Nakala, il faut préciser l’adresse https://nakala.fr/sparql à droite de la roue crantée, comme illustré ci-dessous.

Première requête : les métadonnées d’une lettre de John Kelt Edwards à Jean Le Fustec

Le service https://nakala.fr/sparql interroge un triple store, une base de données dans laquelle les données sont modélisées sous forme de triplets.

Examinons les triplets concernant la [Lettre de John Kelt Edwards à Jean Le Fustec].

L’URL de la notice du document est https://nakala.fr/10.34847/nkl.89101862 mais dans le triple store, le document est identifié par https://nakala.fr/pub/ProvidedCHO/10.34847/nkl.89101862 (en gras, le DOI de la donnée Nakala).

Le Web sémantique – la technologie sur laquelle repose le triple store – permet d’identifier et de représenter sur le Web tout concept (des documents, des événements, des individus, des collectifs, etc.) appelés ressources. Les ressources sont identifiées par une URI, acronyme de Uniform Resource Identifier. Dans le triple store, la lettre de John Kelt Edwards est une ressource parmi d’autres.

Le Web sémantique est un ensemble de normes et de standards – dont SPARQL et le modèle de données RDF (Resource Description Framework) – permettant de faciliter le traitement de données du Web par des logiciels informatiques. Par données, on entend plutôt des données textuelles et non pas des fichiers informatiques. S’agissant de Nakala, les données concernées sont les métadonnées décrivant les documents déposés sur la plateforme.

La chaine de caractères https://nakala.fr/pub/ProvidedCHO/10.34847/nkl.89101862 ressemble à s’y méprendre à une URL – une adresse permettant d’accéder au document sur le Web – est une URI, acronyme de Uniform Resource Identifier, qui a pour fonction d’identifier le document dans le triple store. Autrement dit, dans le langage courant, le document peut être identifié par la lettre de John Kelt Edwards à Jean Le Fustec datée de 1899 au sujet de la fin de l’Eisteddfod de Cardiff mais dans le triple store, elle est identifiée par https://nakala.fr/pub/ProvidedCHO/10.34847/nkl.89101862. Dans la terminologie du Web sémantique – la technologie sur laquelle repose le triple store – tout ce qui est représenté par une URI est une ressource (le R de URI).

Avec YASGUI, on exécute la requête SPARQL suivante :

DESCRIBE <https://nakala.fr/pub/ProvidedCHO/10.34847/nkl.89101862>

On obtient pour résultat des triplets, composés d’un sujet, d’un prédicat et d’un objet. Par défaut, les triplets sont affichés sous forme d’un tableau à trois colonnes mais Yasgui propose dans l’onglet Response un affichage des triplets dans les syntaxes Turtle, RDF/XML, TriG, N-Triples et N-Quads ainsi que dans les formats JSON, CSV et TSV.

Le triplet suivant – exprimé dans la syntaxe N-Triples – déclare par exemple que la ressource correspondant à la lettre de John Kelt Edwards à Jean Le Fustec est de type <http://www.europeana.eu/schemas/edm/ProvidedCHO> :

<https://nakala.fr/pub/ProvidedCHO/10.34847/nkl.89101862> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>	<http://www.europeana.eu/schemas/edm/ProvidedCHO> .

Le sujet : <https://nakala.fr/pub/ProvidedCHO/10.34847/nkl.89101862>
Le prédicat : <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
L’objet : <http://www.europeana.eu/schemas/edm/ProvidedCHO>

Les deux URI du prédicat et de l’objet correspondent respectivement à une propriété de l’ontologie RDF Schema et à une classe de l’ontologie Europeana Data Model.

Les ressources du Web sémantique sont liées entre elles par des propriétés (le prédicat des triplets). Les ontologies définissent un ensemble de classes, sous-classes et propriétés permettant d’exprimer des informations dans un ou plusieurs domaines de la connaissance.

Les deux triplets suivants (terminés chacun par un point) permettent de déclarer en Dublin Core le titre et l’auteur de la ressource :

<https://nakala.fr/pub/ProvidedCHO/10.34847/nkl.89101862> <http://purl.org/dc/terms/creator> "Edwards, John Kelt (1875-1934)" .

<https://nakala.fr/pub/ProvidedCHO/10.34847/nkl.89101862> <http://purl.org/dc/terms/title> "[Lettre de John Kelt Edwards à Jean Le Fustec]" .

Les objets (la troisième partie) de ces triplets a pour valeur non pas une URI mais une valeur littérale (une chaîne de caractères, écrite entre guillemets droits).

La commande SPARQL DESCRIBE permet d’afficher tous les triplets dont la ressource indiquée est sujet ou objet. Par exemple, si un triple store contient les triplets suivants :

<Sophie Trébuchet> <instance of> <human> .
<Sophie Trébuchet> <date of birth> <1772-06-19> .

<Victor Hugo> <instance of> <human> .
<Victor Hugo> <date of birth> <1802-02-26> .
<Victor Hugo> <child of> <Sophie Trébuchet> .

Alors la requête SPARQL DESCRIBE <Sophie Trébuchet> renverra les trois triplets suivants :

<Sophie Trébuchet> <instance of> <human> .
<Sophie Trébuchet> <date of birth> <1772-06-19> .
<Victor Hugo> <child of> <Sophie Trébuchet> .

Les ontologies du triple store de Nakala

Les principales ontologies utilisées dans le triple store de Nakala sont le Dublin Core et EDM (Europeana Data Model). Le Dublin Core sert à décrire les documents (titre, auteur, date, nature, dimensions, etc.) et EDM est notamment utilisé par Nakala pour décrire la structure de la version numérique des documents (les fichiers qui constituent les documents, les collections numériques auxquelles les documents sont rattaché, etc.).

Afin de faciliter nos prochaines requêtes, nous utiliserons les préfixes suivants.

PREFIX npc: <https://nakala.fr/pub/Collection/10.34847/>
PREFIX npp: <https://nakala.fr/pub/ProvidedCHO/10.34847/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX ore: <http://www.openarchives.org/ore/terms/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>

Dans les exemples qui suivent, si nous faisons référence par exemple à dctems:creator, il s’agira de la version abrégée de http://purl.org/dc/terms/creator. De même que edm:isGatheredInto est la version abrégée de http://www.europeana.eu/schemas/edm/isGatheredInto.

Tous les documents de la collection Fonds Yves Berthou

Les documents déposés sur Nakala peuvent être rattachés à des collections. Parmi les triplets renvoyés par la requête précédente, on trouve les trois collections auxquelles sont rattachées le document [Lettre de John Kelt Edwards à Jean Le Fustec] :

<https://nakala.fr/pub/ProvidedCHO/10.34847/nkl.89101862>	<http://www.europeana.eu/schemas/edm/isGatheredInto>	<https://nakala.fr/pub/Collection/10.34847/nkl.0c5auz52> .

https://nakala.fr/pub/ProvidedCHO/10.34847/nkl.89101862 http://www.europeana.eu/schemas/edm/isGatheredInto https://nakala.fr/pub/Collection/10.34847/nkl.42e2m0yl .

<https://nakala.fr/pub/ProvidedCHO/10.34847/nkl.89101862>	<http://www.europeana.eu/schemas/edm/isGatheredInto>	<https://nakala.fr/pub/Collection/7888757b-d7c0-454e-ada7-3f32890d805e> .

La propriété utilisée pour déclarer l’appartenance d’un document à une collection est edm:isGatheredInto. On note également que les URI des collections (les identifiants des collections dans le triple store) diffèrent de leurs URL (les adresses Web permettant de les consulter).

Par exemple, l’URI https://nakala.fr/pub/Collection/10.34847/nkl.0c5auz52 correspond à la collection Fonds Yves Berthou (1861-1933), accessible à l’adresse https://nakala.fr/collection/10.34847/nkl.42e2m0yl. Le préfixe des URI des collections Nakala est https://www.nakala.fr/pub/Collection/ alors que celui des URL est https://nakala.fr/collection/.

A partir de ces informations, on en déduit la requête SPARQL suivante, permettant d’afficher tous les documents rattachés à la collection Fonds Yves Berthou (1861-1933) :

PREFIX npc: <https://nakala.fr/pub/Collection/10.34847/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>

SELECT ?data WHERE {?data edm:isGatheredInto npc:nkl.42e2m0yl}

La commande SELECT ne renvoie pas de triplets mais un tableau contenant les valeurs des variables, précédées par un point d’interrogation.

Pour ajouter l’affichage des titres, classés par ordre alphabétique, on peut écrire :

PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX npc: <https://nakala.fr/pub/Collection/10.34847/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>

# SELECT * est équivalent à SELECT ?data ?title
SELECT * WHERE {?data edm:isGatheredInto npc:nkl.42e2m0yl; dcterms:title ?title .} ORDER BY ?title

Les noms des variables, préfixés par un point d’interrogation (?data et ?title) sont libres. On aurait tout aussi bien pu écrire ?titre_du_document au lieu de ?title. L’étoile après le SELECT désigne toutes les variables définies dans les instructions entre crochets.

Le SPARQL n’est pas sensible à la casse. Les commandes SELECT et WHERE auraient pu être écrits en minuscules. Ils ont été écrit en majuscule par convention, afin de distinguer les commandes SPARQL du reste de la requête.

Parmi les réponses, les titres dont la langue a été précisée sont écrits entre guillemets droits et suivit d’un @ et du code ISO de la langue. Par exemple, “Lizer-goulen d’ar Bardd meurbet enorus Lloyd George”@br indique que la chaîne de caractères est en breton.

Les titres des documents : Attention aux doublons

Les titres des documents de la collection Yves Berthou ont été saisis dans le champ Titre des métadonnées principales (nakala:title) et dupliqués dans un champ dcterms:title.

Huma-Num a fait le choix d’exprimer en Dublin Core dans le triple store les métadonnées principales du dépôt (nakala:title, nakala:created, nakala:creator, nakala:license et nakala:type). Les métadonnées principales du dépôt sont les métadonnées par défaut de Nakala. Elle sont exprimées avec une ontologie propre à Nakala. Les raisons pour lesquelles Huma-Num n’a pas fait le choix d’exprimer ces métadonnées par défaut en Dublin Core n’est pas explicitée dans la documentation de Nakala.

Si le titre d’un document saisi dans nakala:title est identique à celui du dcterms:title, la requête SPARQL précédente ne renverra qu’un seul résultat pour ce document. Mais si la langue a été saisie pour nakala:title et pas pour dcterms:title, des doublons peuvent apparaitre dans les requêtes.

C’est le cas de la requête précédente qui renvoie 171 résultats au 19 janvier 2023 alors que la collection ne compte que 140 documents.

Par exemple, le document [Hymne aux ancêtres – “Chilulinen! Chicalaen!”] apparait deux fois, l’un avec dcterms:title = [Hymne aux ancêtres - "Chilulinen! Chicalaen!"] et une autre fois avec dcterms:title = "[Hymne aux ancêtres - "Chilulinen! Chicalaen!"]"@fr.

@fr est ce qu’on appelle un tag de langue (language tag) dans le modèle de données du triple store, le RDF (Ressource Description Framework). Le tag de langue permet de préciser la langue d’une chaîne de caractères.

Or, nous avions pour ce document précisé la langue uniquement pour le dcterms:title et non pas pour nakala:title, ce dernier terme étant converti en dcterms:title dans le triple store.

Si le titre avait été saisi exactement de la même manière (même chaine de caractères, même langue) dans dcterms:title et nakala:title, il n’y aurait pas eu de doublon.

Capture d’écran des métadonnées du document https://www.nakala.fr/10.34847/nkl.0add4gun. Le titre est identique dans les champs nakala:title et dcterms:title mais la langue a uniquement été précisée dans le champ dcterms:title.

Capture d’écran partielle du résultat de la requête d’affichage des titres des documents de la collection Yves Berthou. Le même titre apparait deux fois, avec et sans précision de la langue.

Par ailleurs, Nakala permet la saisie d’un nombre illimité de titres. Un document peut donc être associé à plusieurs dcterms:title dans le triple store.

Pour afficher les 140 documents de la collection (au 19 janvier 2024) et un seul de leurs titres, on peut modifier la requête précédente en utilisant GROUP BY et SAMPLE.

PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX npc: <https://nakala.fr/pub/Collection/10.34847/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>

SELECT ?data (SAMPLE(?title) AS ?title) WHERE {?data edm:isGatheredInto npc:nkl.42e2m0yl; dcterms:title ?title .} GROUP BY ?data

Nombre de documents de la collection

Le nombre total des documents de la collection est affichée à l’aide de la commande COUNT, dont le résultat doit être obligatoirement associé à une variable (nommée ici ?document_nbr) :

PREFIX npc: <https://nakala.fr/pub/Collection/10.34847/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>

SELECT (COUNT(*) AS ?document_nbr) WHERE {?data edm:isGatheredInto npc:nkl.42e2m0yl}

Le 19 janvier 2024, cette requête renvoie un résultat de 140 documents.

Les auteurs des documents de la collection

La requête suivante affiche les auteurs des documents. Notez que le SELECT se réduit à l’affichage de la variable ?creator.

PREFIX npc: <https://nakala.fr/pub/Collection/10.34847/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dcterms: <http://purl.org/dc/terms/>

SELECT ?creator WHERE {
?data edm:isGatheredInto npc:nkl.42e2m0yl;
dcterms:creator ?creator.
}
ORDER BY (?creator)

On obtient 155 résultats au 6 février 2024 (la collection compte 140 documents au 19 janvier 2024) qui ne correspondent pas à 155 auteurs distincts mais aux 155 saisies d’auteurs des documents de la collection (autrement dit, à 155 associations entre un document et un auteur). Afin de supprimer les doublons, on ajoute un DISTINCT après SELECT :

PREFIX npc: <https://nakala.fr/pub/Collection/10.34847/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dcterms: <http://purl.org/dc/terms/>

SELECT DISTINCT ?creator WHERE {
?data edm:isGatheredInto npc:nkl.42e2m0yl;
dcterms:creator ?creator.
}
ORDER BY (?creator)

Au moment où ces lignes ont été rédigées, la requête nous a permis de détecter des erreurs dans la saisie d’un auteur, John Kelt Edwards, apparu sous trois formes différentes :

Edwards, John Kelt (1875 – 1934)
Edwards, John Kelt (1875-1934)
Edwards, John Kelt (1875 – 1934)
La requête renvoie trois formes différentes pour le nom de la même personne (extrait du résultat de la requête SPARQL lancée depuis Yasgui)

Mais si nous avons pu distinguer la différence entre (1875 – 1934), avec des espaces et (1875-1934), nous avons mis quelque temps à comprendre la raison pour laquelle la forme avec des espaces avant et après le tiret séparant les dates (Edwards, John Kelt (1875 - 1934)) apparaissait deux fois.

Le problème vient d’un bug d’affichage de Yasgui qui supprime automatiquement les espaces consécutifs des résultats. La même requête lancée directement depuis https://nakala.fr/sparql et l’ajout de la commande STRLEN pour afficher la taille de la chaine de caractères du nom du créateur nous a permis de constater que la troisième forme venait d’un espace en trop entre John et Kelt.

PREFIX npc: <https://nakala.fr/pub/Collection/10.34847/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dcterms: <http://purl.org/dc/terms/>

SELECT DISTINCT ?creator (STRLEN(?creator) AS ?strlen) WHERE {
?data edm:isGatheredInto npc:nkl.42e2m0yl;
dcterms:creator ?creator.
}
ORDER BY (?creator)

Affichage des documents et de leurs auteurs

Affichons de nouveau la liste des documents de la collection en rajoutant l’affichage des auteurs. Le SELECT * de la requête suivant est équivalent à SELECT ?data ?creator.

PREFIX npc: <https://nakala.fr/pub/Collection/10.34847/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dcterms: <http://purl.org/dc/terms/>

SELECT * WHERE {
?data edm:isGatheredInto npc:nkl.42e2m0yl;
dcterms:creator ?creator.
}
ORDER BY (?creator)

Comme dans la requête précédente, on obtient 155 résultats au 6 février 2024 alors que la collection ne compte que 140 documents.

Cette différence s’explique en partie par le choix de saisir pour certains documents l’URI (l’identifiant d’une ressource RDF) correspondant aux auteurs dans la base de données FactGrid – une base de connaissance pour historiens, sur laquelle nous avons créé des notices – en plus de la forme retenue de leur nom sur le catalogue de la BnF. Par exemple dc:creator = "Edwards, John Kelt (1875-1934)" et dc:creator = <https://database.factgrid.de/entity/Q454114> pour cette carte postale de John Kelt Edwards à Jean Le Fustec.

Une première réécriture de la requête permet d’exclure les URI des résultats à l’aide de la commande isIRI, qui teste si la variable est ou non une IRI – la forme internationale des URI :

PREFIX npc: <https://nakala.fr/pub/Collection/10.34847/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dcterms: <http://purl.org/dc/terms/>

SELECT * WHERE {
?data edm:isGatheredInto npc:nkl.42e2m0yl;
dcterms:creator ?creator.
  FILTER(!isIRI(?creator))
}
ORDER BY (?creator)

Certains documents ont probablement plusieurs créateurs. Un GROUP BY associé à COUNT et ORDER BY permettent de regrouper les résultats par documents et de les classer par nombre de créateurs :

PREFIX npc: <https://nakala.fr/pub/Collection/10.34847/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dcterms: <http://purl.org/dc/terms/>

SELECT ?data (GROUP_CONCAT(?creator; separator=" / ") AS ?creators) (COUNT(?data) AS ?creators_nbr) WHERE {
?data edm:isGatheredInto npc:nkl.42e2m0yl;
dcterms:creator ?creator.
  FILTER(!isIRI(?creator))
}
GROUP BY ?data
ORDER BY DESC(?creators_nbr)
Résultats de la requête SPARQL affichant sur chaque ligne un document et ses créateurs (séparés par des barres obliques) ainsi que le nombre de créateurs.

Cette requête affiche bien 140 résultats, correspondants aux 140 documents de la collection, dont certains ont effectivement plusieurs créateurs tel que le livre Triades des Bardes de l’Ile de Bretagne par Jean Le Fustec et Yves Berthou avec des notes manuscrites de Marie Bajard et une facture de la revue L’Occident (pliée et collée sur la deuxième de converture, la numérisation serait à refaire pour révéler son contenu).

Notez au passage que les documents sans auteur (nakala:creator = Anonyme et sans dcterms:creator) apparaissent dans les résultats avec un auteur nommé “inconnu” et une valeur de ?creators_nbr = 1.

Pour faciliter l’identification des documents, on rajoute l’affichage des titres (Dublin Core Title).

PREFIX npc: <https://nakala.fr/pub/Collection/10.34847/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dcterms: <http://purl.org/dc/terms/>

SELECT ?data (GROUP_CONCAT(DISTINCT ?title; separator=" / ") AS ?title) (GROUP_CONCAT(?creator; separator=" / ") AS ?creators) (COUNT(?data) AS ?creators_nbr) WHERE {
?data edm:isGatheredInto npc:nkl.42e2m0yl;
dcterms:creator ?creator; dcterms:title ?title.
  FILTER(!isIRI(?creator))
}
GROUP BY ?data
ORDER BY DESC(?creators_nbr)

Mais attention, quelques lignes du résultat de cette nouvelle requête sont trompeurs. COUNT(?data), que l’on a nommé ?creators_nbr, ne représente pas toujours le nombre d’auteurs mais le nombre de lignes regroupées autour d’un même document. Or les doublons peuvent également venir des titres des documents. C’est le cas du document trilingue Adresse au très honoré barde David Lloyd George, traduit en français, anglais et breton et dont les trois titres ont été saisis séparément.

La requête doit être réécrite en utilisant le principe des sous-requêtes ou subqueries, décrit par la recommandation SPARQL 1.1 du W3C.

Nous écrivons une première requête pour récupérer les données de la collection “Fonds Yves Berthou (1861-1933)” avec pour chacune d’entre elles le nombre et la liste de ses titres.

PREFIX npc: <https://nakala.fr/pub/Collection/10.34847/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dcterms: <http://purl.org/dc/terms/>

# Cette requête permet de récupérer les données de la collection "Fonds Yves Berthou (1861-1933)" avec pour chacune d'entre elles le nombre et la liste de ses titres.
# Cette requête renvoie bien le même nombre de résultats que de données associées à la collection.

SELECT ?data (GROUP_CONCAT(?title; SEPARATOR = " / ") AS ?titles) (COUNT(?title) AS ?titles_nbr) WHERE {
  ?data edm:isGatheredInto <https://nakala.fr/pub/Collection/10.34847/nkl.42e2m0yl>;
    dcterms:title ?title.
} 
GROUP BY ?data ORDER BY DESC(?titles_nbr)

Puis une deuxième requête pour récupérer les données de la collection “Fonds Yves Berthou (1861-1933)” avec pour chacune le nombre et la liste de ses créateurs.

PREFIX npc: <https://nakala.fr/pub/Collection/10.34847/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dcterms: <http://purl.org/dc/terms/>

# Cette requête permet de récupérer les données de la collection "Fonds Yves Berthou (1861-1933)" avec pour chacune le nombre et la liste de ses créateurs.

SELECT ?data (GROUP_CONCAT(?creator; SEPARATOR = " / ") AS ?creators) (COUNT(?creator) AS ?creators_nbr) WHERE {
  ?data edm:isGatheredInto <https://nakala.fr/pub/Collection/10.34847/nkl.42e2m0yl>;
    dcterms:creator ?creator.
  FILTER(!(ISIRI(?creator)))
}
GROUP BY ?data ORDER BY DESC(?creators_nbr)

La requête finale est la combinaison des deux précédentes. Nous avons réussi à distinguer les titres et les créateurs et le nombre de résultats est identique au nombre de données de la collection.

PREFIX npc: <https://nakala.fr/pub/Collection/10.34847/>
PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dcterms: <http://purl.org/dc/terms/>

# Requette définitive qui affiche correctement le nombre de créateurs et le nombre de titres de chaque donnée de la collection

SELECT ?data ?titles ?creators ?creators_nbr ?titles_nbr WHERE {
  {
    SELECT ?data (GROUP_CONCAT(?creator; SEPARATOR = " / ") AS ?creators) (COUNT(?creator) AS ?creators_nbr) WHERE {
      ?data edm:isGatheredInto <https://nakala.fr/pub/Collection/10.34847/nkl.42e2m0yl>;
        dcterms:creator ?creator.
      FILTER(!(ISIRI(?creator)))
    }
    GROUP BY ?data
  }
  {
    SELECT ?data (GROUP_CONCAT(?title; SEPARATOR = " / ") AS ?titles) (COUNT(?title) AS ?titles_nbr) WHERE {
      ?data edm:isGatheredInto <https://nakala.fr/pub/Collection/10.34847/nkl.42e2m0yl>;
        dcterms:title ?title.
    }
    GROUP BY ?data
  }
}
ORDER BY DESC (?creators_nbr)

Bilan provisoire

L’objectif premier de cette série de billets était d’explorer avec SPARQL le triple store de Nakala, jusqu’à une requête permettant de quantifier et de visualiser sur une frise chronologique les échanges épistolaires conservés dans le fonds Yves Berthou. Ou du moins, les échanges qui ont fait l’objet d’une publication sur Nakala. Comme nous avons pu le voir, plusieurs conditions semblent nécessaires pour écrire les requêtes :

  • Une bonne compréhension du language SPARQL et ce, dès l’écriture de requêtes assez simples de prime abord (ex. l’utilisation des subqueries pour afficher sans doublons les documents de la collection avec leurs titres et leurs auteurs).
  • Une bonne compréhension du modèle des données (ex. les documents peuvent avoir plusieurs titres, exprimés dans des langues différentes).
  • L’identification des ontologies utilisées par Huma-Num pour gérerer les triplets RDF et de la manière dont Huma-Num passe d’un modèle à un autre (c.f. les métadonnées Nakala exprimées en Dublin Core au passage dans le triple store).
  • Une vigilance portée sur les résultats des requêtes, en particulier sur la présence éventuelle de doublons.

Malgré tout, les requêtes permettent un contrôle qualité des métadonnées.

Dans le prochain billet, nous commencerons notre exploration des échanges epistolaires.

Je remercie au passage Michel Jacobson de Huma-Num pour ses éclaircissements au sujet de la transformation en triplets RDF des métadonnées de Nakala.


OpenEdition vous propose de citer ce billet de la manière suivante :
Jean-Baptiste Pressac (19 février 2024). La correspondance du fonds Yves Berthou à l’épreuve des étincelles (1ère partie). DreAM-CollEx. Consulté le 21 avril 2025 à l’adresse https://doi.org/10.58079/11oeh


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

This site uses Akismet to reduce spam. Learn how your comment data is processed.