Archives par mot-clé : SPARQL

Exploiter les métadonnées Nakala avec SPARQL : La correspondance du fonds Yves Berthou à l’épreuve des étincelles (3ème partie)

Jean-Baptiste PRESSAC, plateforme CRBC Open Science

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. Les métadonnées saisies dans Nakala peuvent être extraites au format JSON depuis l’API de Nakala. Elles sont également traduites en RDF, le modèle du Web sémantique et interrogeables depuis le point de terminaison SPARQL1 de Nakala, https://nakala.fr/sparql.

Dans les deux précédents billets2, nous avons vu comment contrôler la qualité et explorer les métadonnées des documents depuis https://nakala.fr/sparql. Dans ce nouveau billet, nous allons voir comment afficher les documents sur une frise chronologique.

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.

Les frises chronologiques de YASGUI

Outre l’affichage des résultats des requêtes SPARQL sous forme de tableaux, YASGUI propose divers affichages dont une frise chronologique.

Les différentes visualisations proposées par le logiciel YASGUI.
Les différentes visualisations proposées par le logiciel YASGUI.

La documentation en ligne du logiciel précise que pour être affichés sur une frise chronologique, le résultat de la requête doit contenir au moins les variables ?eventStart ou ?eventDate avec une des trois variables suivantes, ?eventDescription?eventLabel ou ?eventMedia.

Première frise, les titres des lettres

Nous faisons le choix d’afficher uniquement les lettres parmi les documents de la collection, soit les documents avec un dcterms:audience et au moins un dcterms:creator. Le GROUP BY supprime les doublons de lettres ayant plusieurs auteurs ou destinataires. Les titres et les dates des lettres sont associés aux variables ?eventLabel et ?eventStart.

PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dcterms: <http://purl.org/dc/terms/>

SELECT ?eventLabel ?eventStart WHERE {
?data edm:isGatheredInto <https://nakala.fr/pub/Collection/10.34847/nkl.42e2m0yl>;
dcterms:creator ?creator; dcterms:title ?eventLabel; dcterms:date ?eventStart; dcterms:audience ?audience .
FILTER(?creator != "inconnu")
} GROUP BY ?eventLabel ?eventStart

Par défaut, les résultats sont affichés sous forme de tableau. En cliquant sur Timeline dans la barre d’outils juste au dessus des résultats, on passe en mode frise chronologique.

Affichage de la première frise chronologique.
Affichage de la première frise chronologique.

Afficher les vignettes

Outre les titres des documents, comment afficher un aperçu de chaque lettre ? Les fichiers associés à une donnée Nakala sont liés par la propriété http://www.europeana.eu/schemas/edm/aggregatedCHO, soit en abrégé, edm:aggregatedCHO.

Prenons l’exemple d’une lettre de John Kelt Edwards à Jean Le Fustec (cote d’archive, YBE2C503.3) et affichons tous les triplets RDF dont la lettre est sujet ou objet. La donnée Nakala est consultable à l’adresse https://nakala.fr/10.34847/nkl.89101862 mais la ressource sémantique qui la représente dans le graphe des triplets RDF de Nakala a pour URI3 https://nakala.fr/pub/ProvidedCHO/10.34847/nkl.89101862.

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

Parmi les résultats de la requête, on repère le triplet qui a pour prédicat edm:aggregatedCHO. Elle a pour objet la lettre et pour sujet <https://nakala.fr/pub/Aggregation/10.34847/nkl.89101862>.

<https://nakala.fr/pub/Aggregation/10.34847/nkl.89101862> <http://www.europeana.eu/schemas/edm/aggregatedCHO> <https://nakala.fr/pub/ProvidedCHO/10.34847/nkl.89101862>

Continuons à dérouler la pelote par l’affichage des triplets de la ressource <https://nakala.fr/pub/Aggregation/10.34847/nkl.89101862>.

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

Parmi les résultats de DESCRIBE, trois triplets, non reproduits ici, dont le prédicat est http://www.europeana.eu/schemas/edm/hasView, attirent notre attention. Elles ont pour objet trois ressources de type image/jpeg : https://nakala.fr/pub/WebResource/10.34847/nkl.89101862/9daba80e470a50de25f7a572415aebf01b34dad1, https://nakala.fr/pub/WebResource/10.34847/nkl.89101862/eca6ac48c1d0b65839d3730fe2832c9db7c20367 et https://nakala.fr/pub/WebResource/10.34847/nkl.89101862/3a49c2e2bd2baf07a22ef838ce02b21b51f017bb

Nous avons mis la main sur les trois scans en JPEG de la lettre de John Kelt Edwards à Jean Le Fustec (cote d’archive, YBE2C503.3).

Cependant les trois ressources représentent les fichiers mais ce ne sont pas encore les fichiers eux-mêmes. Exécutons un dernier DESCRIBE sur une des ressources représentant une des images JPEG.

DESCRIBE <https://nakala.fr/pub/WebResource/10.34847/nkl.89101862/3a49c2e2bd2baf07a22ef838ce02b21b51f017bb>

On constate que l’adresse Web de l’image est indiquée par la propriété foaf:primaryTopic soit ici,  https://api.nakala.fr/data/10.34847/nkl.89101862/3a49c2e2bd2baf07a22ef838ce02b21b51f017bb.

Dans la requête de la première frise, ajoutons une variable ?eventMedia à laquelle on associe l’adresse Web indiquée par foaf:primaryTopic.

PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

SELECT ?eventLabel ?eventStart (SAMPLE(?eventMedia) as ?eventMedia) (SAMPLE(?view_label) as ?view_label) WHERE {
?data edm:isGatheredInto <https://nakala.fr/pub/Collection/10.34847/nkl.42e2m0yl>; dcterms:creator ?creator; dcterms:title ?eventLabel; dcterms:date ?eventStart; dcterms:audience ?audience .
?aggregation edm:aggregatedCHO ?data ; edm:hasView ?view .
?view dcterms:type "image/jpeg"; skos:altLabel ?view_label; foaf:primaryTopic ?eventMedia.
FILTER(?creator != "inconnu")
# Astuce pour ne récupérer que la première image du document
FILTER(CONTAINS(?view_label, "01."))
} GROUP BY ?eventLabel ?eventStart

Afin d’être certains de récupérer uniquement des images JPEG, on précise le type des ressources renvoyées par edm:hasView. Pour ne récupérer que la première image, on applique un filtre sur le label de la ressource représentant l’image. Le label du fichier (?viewlabel) est ajouté au SELECT uniquement pour un contrôle du bon fonctionnement de la requête, il n’intervient pas dans l’affichage de la frise chronologique.

Pour faciliter la consultation de l’intégralité des lettres, on associe leur adresse Web sur Nakala avec la variable ?eventMediaLink4. L’adresse Web des données Nakala est forgée en supprimant pub/ProvidedCHO aux URI des ressources RDF qui les représentent.

PREFIX edm: <http://www.europeana.eu/schemas/edm/>
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>

SELECT ?eventLabel ?eventStart (SAMPLE(?eventMedia) as ?eventMedia) (SAMPLE(?view_label) as ?view_label) ?eventMediaLink WHERE {
?data edm:isGatheredInto <https://nakala.fr/pub/Collection/10.34847/nkl.42e2m0yl>; dcterms:creator ?creator; dcterms:title ?eventLabel; dcterms:date ?eventStart; dcterms:audience ?audience .
?aggregation edm:aggregatedCHO ?data ; edm:hasView ?view .
?view dcterms:type "image/jpeg"; skos:altLabel ?view_label; foaf:primaryTopic ?eventMedia.
BIND (IRI(CONCAT("https://nakala.fr/", STRAFTER(STR(?data), "https://nakala.fr/pub/ProvidedCHO/"))) AS ?eventMediaLink)
FILTER(?creator != "inconnu")
# Astuce pour ne récupérer que la première image du document
FILTER(CONTAINS(?view_label, "01."))
} GROUP BY ?eventLabel ?eventStart ?eventMediaLink

Conclusion et perspectives

La numérisation et la mise en ligne d’un fonds documentaire n’a pas pour seul intérêt la consultation des documents 24h/24, 7j/7 en dehors de leur lieu de conservation. Les métadonnées qui accompagnent la mise en ligne des scans constituent aussi une source pour la visualisation et l’analyse des documents. Ces opérations sont facilitées sur Nakala, l’entrepôt national des données en sciences humaines et sociales, qui propose depuis https://nakala.fr/sparql, un service en ligne pour interroger les métadonnées converties selon les principes du Web sémantique (utilisation d’ontologies, données disponibles selon le modèle RDF, langage de requêtes SPARQL).

Dans cette série de billets, nous avons abordé https://nakala.fr/sparql de manière frontale en écrivant nous-même des requêtes avec le langage SPARQL. Les néophytes trouverons peut-être plus leur compte en utilisant l’outil Sparnatural, qui permet de forger des requêtes SPARQL dans les métadonnées de Nakala sans en avoir l’air.

Dans les prochains billets, nous explorerons le principe de requêtes fédérées entre Nakala et Wikidata et nous tenterons de reproduire les requêtes précédemment écrites avec Sparnatural.

  1. En anglais, SPARQL endpoint. []
  2. https://dreamcollex.hypotheses.org/501 et  https://dreamcollex.hypotheses.org/1903 []
  3. URI : uniform resource identifier []
  4. Les variables nécessaires au fonctionnement de la visionneuse sont disponibles dans la documentation de YASGUI. []

Exploiter les métadonnées Nakala avec SPARQL : La correspondance du fonds Yves Berthou à l’épreuve des étincelles (2ème partie)

Jean-Baptiste PRESSAC, plateforme CRBC Open Science

Billet mis à jour le 17 juillet 2025

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 second article in a series focuses on how a correspondence is described using Dublin Core and what the digitized correspondence from Yves Berthou’s archival fonds can tell us once its metadata have been queried with SPARQL.

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.

Dans un précédent billet, nous avons vu comment contrôler la qualité et explorer les métadonnées des documents avec le langage SPARQL. Nous avons notamment vu comment écrire des requêtes pour afficher les noms des auteurs et les titres des documents.

Dans ce billet, nous allons aborder l’étude des échanges épistolaires : Comment sont traitées les correspondances dans notre collection de documents Nakala ? Comment sont saisis les destinataires avec le Dublin Core ? Qui sont-ils ? Quelles sont les lettres adressées à une personne donnée ? Quels sont les épistoliers dont nous avons numérisé le plus de lettres ?

Continuer la lecture de Exploiter les métadonnées Nakala avec SPARQL : La correspondance du fonds Yves Berthou à l’épreuve des étincelles (2ème partie)

Exploiter les métadonnées Nakala avec SPARQL : La correspondance du fonds Yves Berthou à l’épreuve des étincelles (1ère partie)

Jean-Baptiste PRESSAC, plateforme CRBC Open Science

Billet mis à jour le 18 juillet 2025

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 a fait l’objet d’un billet dédié publié en juillet 2025).

Continuer la lecture de Exploiter les métadonnées Nakala avec SPARQL : La correspondance du fonds Yves Berthou à l’épreuve des étincelles (1ère partie)