La BnF et SPARQL. Partie 1 : les bases constitutives de Data

La BnF (Bibliothèque nationale de France) lance sa base sémantique data.bnf.fr (Data) en 2011, avec l’ambition d’offrir un accès simple, ouvert et simultané aux contenus de son Catalogue général, de sa base Archives et manuscrits, de même que de sa bibliothèque numérique Gallica. Le service, considéré comme un produit bibliographique parmi d’autres, fut déployé très progressivement, et régulièrement amélioré, tant au niveau du modèle de données, que de l’ergonomie du site, et de ses fonctionnalités. Il reste en cours d’évolution. Une interrogation à l’aide de SPARQL, (SPARQL Protocol And RDF Query Language) se montre possible depuis 2014.

Plusieurs sortes de choses peuvent être recherchées dans data.bnf.fr . 1/ Des documents et listes de documents publiés, livres, périodiques, enregistrements sonores, films, cartes et autres. 3/ Des documents non publiés, des manuscrits, pièces d’archives et de musée. 3/ Des spectacles, des expositions 4/ Des listes d’agents (individus, organisations et familles), susceptibles de jouer divers rôles, lors des processus de création, d’édition, de réalisation 5/ Des répertoires de concepts, sujets, lieux et périodes temporelles. 6/ Ces éléments liés entre eux.

En matière de couverture, Data ne contient pas toutes les notices de chacune de ses bases constitutives, ni l’entièreté de leur richesse catalographique, ni la même fréquence de mise à jour. Cependant un accès ergonomique et raisonné à de nombreuses connaissances bibliographiques se montre simultanément possible. Des liens renvoient vers les bases sources, relient entre elles les notices de manière interne, et en direction de référentiels externes.

Au niveau technique, la base est motorisée par CubicWeb, un logiciel opensource développé par la société Logilab. Des moteurs de recherche permettent l’exploration des données sans aucune connaissance de SPARQL. De nombreuses pages générées automatiquement permettent l’exploration de données bibliographiques variées. Lorsque l’affichage de résultats finement personnalisés est nécessaires, l’usage de SPARQL devient bienvenu.

Deux interfaces écrites en javascript sont proposées de manière standard, pour assister l’utilisateur dans la formulation des requêtes. Développé par la société Triply, Yasgui (Yet Another SPARQL Graphic User Interface) constitue une interface largement adoptée par diverses bases sémantiques. La requête de même que les résultats apparaissent affichés dans un même écran. Une autre interface, nommée Sparnatural et développée par la société Sparna, est disponible depuis peu. Elle apporte une assistance à l’interrogation, pour des utilisateurs qui n’auraient pas de connaissance préalable sur la structuration des données.

Que pouvous nous espérer trouver dans data.bnf.fr ? Quel modèle de donnée a-t-il été retenu ? Comment identifier un concept ? Comment traduire en SPARQL une question formulée en langage naturel ? Nous allons aborder cela dans ce premier tutoriel. Les bases constitutives de Data sont tout d’abord présentées. Le musicien Bach, maître du contrepoint et de la composition baroque sert de premier exemple. Les notions d’ARK, d’URI et d’ontologies, ainsi que de premières requêtes, permettent d’avoir une idée des contenus de Data et de leur organisation.

Plan

  1. Organisation générale
  2. Le Catalogue général
  3. La base Archives et manuscrits
  4. Gallica
  5. ARK
  6. Organisation générale des données dans Data
    • 6.1 Modèle de données
    • 6.2 Les classes et le nombre des items référencés
    • 6.3 Ontologies
    • 6.4 Trouver l’URI

Requêtes SPARQL de la partie 1 :

  • Q1 Quelles sont les classes des objets décrits dans Data ? Lien
  • Q2 Combien de notices sont de la classe foaf:Person ? Lien
  • Q3 Trouver l’URI à partir du libellé préférentiel “Johann Sebastian Bach (1685-1750)” : Lien
  • Q4 Trouver l’URI à partir du nom “Johann Sebastian Bach” : Lien
  • Q5 Lister les entités dont le libellé contient “Johann Sebastian Bach” : Lien
  • Q6 Trouver l’URI de 10 personnes dont le nom de famille est exactement “Bach” ? Lien

1. Organisation générale

Le site data.bnf.fr (Data) est présenté comme un produit dérivé, constitué à partir de plusieurs autres bases, et dont le fonctionnement est considéré comme non critique pour les activités de la Bibliothèque nationale. Des pannes de maintenance peuvent survenir. Alimenté par le Catalogue et les fichiers d’autorité, par Archives et manuscrits, de même que par Gallica, la base présente des pages HTML relatives aux auteurs, aux thèmes et aux œuvres, et lie entre eux ces contenus. Elle intègre à la fin 2021, 10 millions de notices bibliographiques, rattachées à 4 millions de notices d’autorités du Catalogue général. Un million de liens vers Gallica et 5 000 liens vers les expositions virtuelles peuvent être explorés. D’autres informations quantitatives à propos de la BnF, en date de 2021 :

  • 15 millions de notices bibliographiques dans l’ensemble des bases
  • 780 000 notices de publications périodiques
  • 200 000 notices de sujets dans le Catalogue
  • 60 000 notices de spectacles
  • 4 millions de notices de personnes dans le Catalogue
  • 4 millions de notices dans data.bnf.fr, 19 000 visiteurs uniques par jour
  • 1 musée localisé sur le site Richelieu
  • des expositions temporaires
Les bases constitutives de data.bnf.frLien
Part des notices du Catalogue général versées dans data.bnf.fr en 2020 : Lien20192020
a) Entités Personne98,5%99,6%
b) Entités Organismes99,3%99,9%
c) Entités Titres83,0%99,9%
d) Entités RAMEAU100,0%100,0%
e) Entités Noms géographiques99,2%99,1%
f) Notices de spectacles99,9%99,9%
g) Périodiques62,9%60,6%
h) Monographies74,5%74,0%

Data se montre asynchrone : des mises à jour régulières des contenus s’avèrent nécessaires, et sont régulièrement organisées. Un plan de développement de Data (2020-2024) a été récemment lancé. La Bibliothèque nationale entreprend en 2021 des améliorations, visant à enrichir et aligner les données avec des bases externes (VIAF, Wikipédia, Wikimedia Commons, Wikidata, GeoNames). Une description des bases constitutives de Data est proposée.

  • La BnF en chiffres, 2021 : Lien
  • Rapport d’activité 2021 – L’information et les autres services en ligne : Lien
  • data.bnf.fr. Feuille de route – 2020-2024 : Lien

2. Le Catalogue général

Le Catalogue général représente la base la plus importante en volume de la BnF. Ce catalogue partagé entre plusieurs bibliothèques s’enrichit régulièrement grâce au traitement bibliographique des collections entrées au titre du dépôt légal, par acquisition et don. Le format INTERMARC est utilisé par les catalogueurs professionnels (environ 300) d’un réseau de bibliothèques partenaires, essentiellement municipales et universitaires pour signaler les entrées. On y trouve des livres, périodique, magazines et autres choses assez diverses.

Les notices d’autorités (personnes, collectivités, œuvres, noms communs, noms géographiques, marques) y sont également référencées. Elles nomment de manière normalisée les individus et plus largement familles, groupes de personnes, sociétés qui jouent divers rôles et contribuent à la réalisation des œuvres originales référencées, ou bien sont pour certains sujets de ces œuvres. Objet principal de la Transition bibliographique, la structuration du Catalogue lui-même se montre en cours d’évolution et nous reviendrons dans la partie théorique sur les réalisation en cours.

De manière pratique, la requête “Johann Sebastian Bach” (Bach en notation internationale) peut être lancée et 18 204 notices bibliographiques sont trouvées. Des facettes permettent d’affiner les résultats en n’affichant qu’une partie des résultats. On peut ainsi par exemple sélectionner dans la barre latérale “Nature de document > Musique notée” suivi de “Localisation > Consultable sur Gallica” pour accéder ainsi à 103 partitions numérisées. Un manuscrit autographe est choisi : Ich habe meine Zuversicht. Il s’agit d’un fragment de la 188ème cantate d’inspiration religieuse, numérotée BWV 188 (d’après le Bach-Werke-Verzeichnis) : J’ai placé ma confiance. Un lien vers Gallica permet de visionner le fragment, éventuellement accessible en haute résolution à l’aide du format IIIF. Le papier est localisé en réserve à Richelieu-Louvois. La notice peut être exportée en divers formats de catalogage.

Notice dans le Catalogue du fragment d’une partition manuscrite localisée à la BnF : Lien

En mode recherche avancée, le formulaire permet de lancer une requête en sélectionnant “Dans toute la notice” ou bien “Auteur”, “Titre”, “Sujet, genre ou forme”, “Notes”, “Données éditoriales, ISSN, ISBN, etc.”, “Données matérielles et techniques”, “Langue”, “Date”, “Cote et données de gestion”. Nous choisissons alors de chercher “Johann Sebastian Bach” dans “Auteur” et on obtient 16 717 notices.

Le Catalogue ne se montre pas adapté pour effectuer une recherche sur la liste complète et non redondante des œuvres originales de Bach. Un spécialiste du Cantor de Leipzig à la recherche de manuscrits originaux pourrait se tourner vers Bach Digital, la base de données collaborative qui contient des documents numérisés des œuvres originales de J. S. Bach et des membres de sa famille. Des originaux y sont rassemblés en provenance de diverses archives et bibliothèques localisées en de multiples contrées.

Il est cependant possible d’accéder à l’aide du Catalogue aux 22 partitions manuscrites dont Bach est l’auteur et qui sont numérisées dans Gallica. Parmi celles-ci deux sont des fragments autographes. Au niveau technique, on remarque le formalisme de l’URL d’une notice du Catalogue : (protocole https, nom de domaine, protocole ARK, identifiant BnF, identifiant opaque du document) et nous reviendrons régulièrement sur cet identifiant de type URL.

En ce qui concerne les exports, de nombreuses possibilités existent, centrées autours des formats de description Unimarc, Intermarc et Dublin Core (uniquement pour les notices bibliographiques). L’interface web permet des exports en CSV simple, CSV avancé, SGB (Système de Gestion de Bibliothèque). Il est aussi possible d’extraire de manière experte une sélection de notices encapsulées dans du XML à l’aide du service SRU (Search/Retrieve via URL). La recherche à l’aide de ce service de “Johann Sebastian Bach” et de “BWV 188” donne 35 résultats, exportés en XML au format SRU.

  • Transition bibliographique, des catalogues vers le web de données : Lien
  • Bach, Johann Sebastian (1685-1750) forme internationale, notice de personne : Lien
  • Notice bibliographique du livre “Jean-Sébastien Bach”, possible à emprunter dans plusieurs des bibliothèques gérées conjointement par la BnF : Lien
  • Liste complète des œuvres de Jean-Sébastien Bach sur Wikipédia : Lien
  • Bach digital : Lien
  • BnF, API et jeux de données, Le catalogue général de la BnF : Lien
  • SRU Search/Retrieve Operation, VERSION 1.1 : Lien

3. La base Archives et manuscrits

Les fonds d’archives se montrent constitués autours d’une personne (un donateur), d’un thème ou bien d’un type de document. La base Archives et manuscrits de la BnF contient des manuscrits médiévaux et modernes, les fonds en provenance de personnalités du monde de l’art et du spectacle, des collections de numismatique, médailles et antiques. Le format de catalogage pratiqué est la Description archivistique encodée (EAD) dérivée de la norme internationale ISAD (G).

Une autre interface d’interrogation est proposée. Elle rend possible la recherche de contenus à plusieurs niveaux : dans l’ensemble des collections de la BnF, ou bien à l’intérieur d’une collection donnée. On obtient 54 résultats à la requête “Johann Sebastian Bach”. Deux sortes de facettes facilitent l’exploration des fonds. “Trouvé dans” propose les options “Nom (46)”, “Sujet (5)”, “Titre d’œuvre (22)”, “Intitulé (20)”. Le groupe de facettes “Affiner” propose de détailler “Départements”, “Noms”, “Types de documents”, “Langues”, “Sujets”, “Lieux”, “Dates”.

Les localisations physiques des fonds (Départements) de même que leur organisation arborescente se trouvent mis en avant. Plusieurs pièces d’un même fonds peuvent en effet se montrer pertinentes et contenir des documents de diverses natures (enregistrement sonore, texte manuscrit, texte imprimé). De manière générale, les fonds s’avèrent relativement récents, postérieurs à 1900, et l’on trouve des dons de familles suite au décès d’instrumentistes et de musicologues comme par exemple Yvone Rokseth, Léonce de Saint-Martin. Le fonds d’Olivier Messiaen, grand interprète de Bach et également compositeur est signalé. Géré par la Fondation Olivier Messiaen, il se trouve en cours de classement. D’autre fonds concernent le spectacle et proviennent de théâtres (Athénée, Opéra de Paris, Théâtre de la Ville).

Une recherche avancée dans la base est également possible. L’interrogation dans tous les mots de BWV et dans Sujet de “Johann Sebastian Bach” donne parmi les résultats le fonds Yvone Rokseth localisé au site Richelieu. Le site Richelieu est le berceau historique de la BnF. Il rassemble la bibliothèque de l’Institut national d’histoire de l’art (INHA) et la bibliothèque de l’École nationale des Chartes, le musée de la BnF. On apprend ainsi que ce fonds fut constitué de 1910 à 1948, qu’il est constitué de 13 boîtes et 640 volumes. Des informations sont données en page d’accueil sur la biographie d’Yvone Rokseth ainsi que sur les sous-collections créées par les archivistes.

Exploration du sous-fonds “Œuvres musicologiques” du fonds Rokseth : Lien

Il existe trois manières de parcourir ce fonds, comme l’indiquent les icônes localisées de manière verticale à gauche. 1/ Le mot “BWV” peut être cherché dans le fonds à l’aide d’un poteur 2/ Une navigation dans l’arborescence du fonds est également possible. 3/ Un index des sujets et provenances des papiers est présent. On trouve ainsi la possibilité de rebondir tout en restant dans le fonds sur des noms de personnes, sur des titres d’œuvres, des sujets et des types de documents.

Dans notre exemple, le sous-fonds “Œuvres musicologiques” contient une note sur certaines compositions de Bach, replacées dans leur contexte par Yvonne Rockseth. Les URL d’Archives et manuscrits sont également basées sur ARK :

Un document concernant Bach et numérisé dans Gallica est recherché. Une collection de manuscrits et gravures anciennes et originales acquise par la BnF est choisie. Elle se trouve accessible sous “Département des Manuscrits > Français > Nouvelles acquisitions françaises > NAF 22734-22741“. L’interface assez minimaliste n’autorise qu’un export de la notice au format PDF. La description au format EAD du fonds n’est pas accessible.

Si l’on explore la collection NAF 22734-22741 à l’aide de l’onglet d’exploration de la hiérarchie, on trouve un étrange album relié sous forme de livre qui rassemble des autographes, des dessins et portraits de personnages célèbres. L’objet composite est créé au XIXe siècle par l’homme politique Alexandre Bixio. Un portrait de Bach s’y trouve décrit et présent sous la cote “NAF 22734 (cote) • I. A – B” en vue 64 recto. Un lien vers Gallica donne accès au portrait, visible si on le souhaite au format IIIF, particulièrement adapté au visionnage d’images en haute définition.

Des fonds en provenance de bibliothèques partenaires amenées également à cataloguer en EAD, ou bien constitués lors d’événements spéciaux sont également référencés dans Archives et manuscrits. Outre Data, diverses bases de la BnF se montrent constitutives du Catalogue collectif de France (CCFr). Ainsi, Archives et manuscrits peut être interrogé conjointement avec le Catalogue général des manuscrits (CGM), le Répertoire des manuscrits littéraires français du XXème siècle (Palme), le Catalogue en ligne des archives et des manuscrits de l’enseignement supérieur (CALAMES) dans une interface dédiée.

  • Le Répertoire de Fonds du CCFr, BnF : Lien

4 Gallica

Nous avons déjà vu les relations qui existent entre le Catalogue général, Archives et manuscrits et Gallica en consultant un fragment de partition autographe, de même qu’un portrait de Bach. La BnF numérise actuellement plus d’un million de pages de ses collections patrimoniales tous les mois. Elle s’appuie sur ses ateliers internes à hauteur de 20% et sur des prestataires choisis dans le cadre de marchés publics. Cette production est complétée par des documents numériques produits dans le cadre d’accords conclus avec d’autre bibliothèques.

En ligne depuis 1997, Gallica est la bibliothèque numérique la plus connue de la BnF. La base est élaborée par l’institution épaulée d’un réseau de 270 partenaires en 2022. Elle s’enrichit chaque semaine de nombreuses nouveautés pour donner aujourd’hui accès à plus de 850 000 livres, 170 000 manuscrits, 520 000 objets, 64 000 partitions. Plusieurs millions d’items rendus ainsi accessibles contribuent au rayonnement culturel de la francophonie.

L’interface propose un moteur de recherche standard, une recherche avancée, de même qu’une interface dédiée à l’exploration thématique des contenus. Une recherche menée sur “Johann Sebastian Bach” donne 3802 résultats. Les facettes localisées à gauche facilitent la navigation et l’affinement de la requête. Il est possible ainsi de sélectionner “Type de document > Enregistrement sonore” puis de choisir dans cet ensemble “BWV 846”, la cote de “Prélude et fugue en ut majeur” de Bach.

Une adaptation jazz du prélude est choisie. Il s’agit d’un enregistrement de 1960 écrit par Bruno Coquatrix sous le titre “Play Bach”, réalisé par Jacques Loussier au piano, Pierre Michelot à la contrebasse et Christian Garros à la batterie, et préservé au titre du dépôt légal dans la phonothèque nationale. La notice donne accès à un extrait de 30 secondes des plages de chaque face du disque 33 tours 30 cm, de même qu’au numéro de notice de l’enregistrement dans le Catalogue général. On remarque en ce qui concerne les URL sur Gallica :

Nous pouvons remonter depuis la partie “En Savoir Plus” vers la notice du disque présente dans le Catalogue général. Les deux bases utilisent le même système ARK pour identifier les notices :

Le système centralisé SPAR (Système de Préservation et d’Archivage Réparti) est dédié à la préservation à long terme des métadonnées et des fichiers générés par les diverses opérations de numérisation et de sauvegarde de diverses bibliothèques de la BnF.

  • Rapport d’activité 2021 – Gallica et la politique de diffusion numérique des collections : Lien
  • La numérisation à la BnF : Lien
  • SPAR (Système de Préservation et d’Archivage Réparti) : Lien

5. ARK

Le système ARK (Archive Resource Key) permet à la BnF d’identifier les notices du Catalogue général, de la base Archives et manuscrits, de Gallica, ainsi que de Data. Une politique de pérennisation des ARK est menée, si bien qu’en cas de fusion de notices par exemple, l’ancien ARK redirige l’utilisateur de manière transparente vers le nouvel enregistrement. De plus, Data et le Catalogue utilisent les mêmes ARK. Il est donc aisé de passer d’une notice du Catalogue à une notice de Data et l’inverse en modifiant légèrement l’URL.

6. Organisation générale des données dans Data

Le modèle de données retenu pour Data résulte de réflexions, débutées dès 1991, sur la structure théorique d’une notice bibliographique. Ces réflexions conduisent à l’émergence d’un premier modèle théorique nommé FRBR (Functional Requirements for Bibliographic Records), suivi d’un second IFLA LRM (Library Reference Model), qui élargit la modélisation à l’ensemble des données gérées dans une bibliothèque. Un vocabulaire spécial est employé. L’historique de ces modèles sera évoqué dans la partie 3 de cette série de tutoriels.

6.1 Le modèle de données

Un graphique permet d’appréhender le modèle de données utilisé globalement dans Data. Des pages HTML sont générées à partir des données RDF présentes dans Data. Elles sont symbolisées dans le schéma par un rectangle surmonté d’un logo, et leur nom est référencé en valeur de la propriété “foaf:page”. Elles peuvent être consultées sans connaissance de SPARQL.

On trouve en arrière plan de ces pages une structuration en RDF des données. Des entités sont distinguées, marquées dans le schéma par des ellipses, et identifiées par leur URI. Les URI de toutes les entités de Data sont choisies volontairement opaque, afin de résister aux changements d’appellation. Ainsi, l’URI de Bach dans Data est “http://data.bnf.fr/ark:/12148/cb118897907”.

La notion de Concept réunit toutes ces entités et apparait centrale dans ce schéma. Sont consignés dans les sortes de sous-notice du type Concept, un ensemble de renseignements de base tels qu’un libellé préférentiel en français, d’éventuels libellés alternatifs, en français et dans d’autres langues, des liens vers des référentiels externes.

6.2 Les classes et le nombre des items référencés

Lorsqu’on aborde une base sémantique quelconque, il est nécessaire de connaitre les classes des items décrits. On obtient ainsi la liste des entités décrites.

Q1 Quelles sont les classes d’objets décrits dans Data ? Lien

# Classes utilisées dans la base
SELECT DISTINCT ?ClasseUri # colonne affichée
WHERE {
  [] a ?ClasseUri. # motif de triplet
}
ORDER BY ?ClasseUri
ClasseUri
38<http://xmlns.com/foaf/0.1/Person>
37<http://xmlns.com/foaf/0.1/Organization>
36<http://xmlns.com/foaf/0.1/Document>
34<http://www.w3.org/TR/owl-time/Instant>
Tableau des résultats de la requête

Un tri peut être effectué en appuyant deux fois de suite sur le nom de la colonne “”ClasseUri”. Dans la partie WHERE de la requête, le sujet du motif de triplet “[]” indique “tout contenu de la base”, le prédicat “a” est un raccourci pour “rdfs:type” et désigne la classe, l’objet du motif de triplet “?ClasseUri” désigne la variable affichée en retour.

Autrement dit, il est demandé de mémoriser toutes les classes de la base dans la variable “?ClasseUri”. L’affichage est commandé dans la partie SELECT de la requête. Au final, un tableau de résultat est affiché, trié par ordre alphabétique de l’URI de la classe. 38 classes sont présentes dans Data et définissent autant de catégories d’entités.

Il est ensuite possible de calculer le nombre de notices d’une classe donnée. La classe “foaf:Person” est choisie. Le préfixe “foaf” utilisé dans la partie “WHERE” est déclaré à l’aide de PREFIX. Le comptage est réalisé au niveau de SELECT avec l’instruction COUNT. En octobre 2022, plus de 4 300 000 personnes sont identifées dans Data.

Q2 Combien de notices sont de la classe foaf:Person ? Lien

# Effectif des notices de classe Personne
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT (COUNT (?peopleUri) AS ?effectif)
WHERE {
  ?peopleUri a foaf:Person. # motif de triplet
}
Effectif
1“4311388”^^<http://www.w3.org/2001/XMLSchema#integer>

6.3 Ontologies

Une liste partielle des ontologies utilisées dans Data peut finalement être dressée. Des ontologies structurantes et descriptives peuvent être distinguées. Les des effectifs des classes de ces ontologies peuvent être calculés, afin d’avoir une idée des contenus actuels. On remarque ainsi que la BnF identifie de manière univoque plus de 19 millions de concepts, ainsi que 12 millions d’objets édités.

1/ Ontologies structurantes

  • RDF,
    • <http://www.w3.org/2000/01/rdf-schema#Class> : 15
    • <http://www.w3.org/1999/02/22-rdf-syntax-ns#Property> : 64
  • SKOS
    • skos:Collection : 3
    • skos:Concept : 19 454 701
    • skos:ConceptScheme : 1
    • skos-thes:ConceptGroup : 3
  • OWL (Web Ontology Language)
    • owl:AnnotationProperty : 5
    • owl:Class : 3
    • owl:Ontology : 1
    • owl:OntologyProperty : 0
  • <http://www.w3.org/ns/sparql-service-description#Service> : 1

2/ Ontologies descriptives

  • RDA entités FRBR (avec classes synonymes)
    • Work (<http://rdaregistry.info/Elements/c/#C10001>) : 1 779 702
    • Expression (/Elements/c/#C10006, c/#C10007) : 12 627 236
    • Manifestation : 12 627 236
  • W3C Time Ontology. Instant : 2 695
  • WGS84 Geo Positioning. SpatialThing : 119 174
  • FOAF (Friends Of A Friend)
    • foaf:Person : 4 302 994
    • foaf:Organization : 418 247
    • foaf:Document : 5703
  • Dublin Core
    • dcmitype:InteractiveResource : 13 943
    • dcmitype:Event : 61 423
  • Bibo (The bibliographic Ontology). bibo:periodical : 362 022
  • BNF-ONTO. bnf-onto/ExpositionVirtuelle : 5 168
  • etc…

Les ontologies structurantes telles que RDF, RDFNS, OWL, SKOS sont définies en tant que standard par le W3C. Les ontologies retenues par la BNF pour satisfaire aux exigences d’IFLA LRM sont ici distinguées sous le nom d’ontologies descriptives. D’autres organismes auraient pu faire des choix différents.

6.4 Trouver l’URI

Quatre méthodes permettent de trouver l’URI d’une entité de Data.

1/ Le moteur de recherche

Le moteur de recherche intégré à Data est accompagné d’un système de suggestion, et la classe de l’entité s’affiche sous forme d’étiquettes colorées. On accède ensuite à la page HTML qui nous intéresse. Et le Permalien localisé tout en bas de la page HTML donne l’URI, une fois que le protocole “http” a été spécifié, en lieu et place de “https”.

Le permalien en pied de page donne l’URI (en remplaçant https par http)

2/ A l’aide d’un moteur du web

Dans le cas d’une recherche portant sur “Bach”, la réponse est difficile à trouver. Une manière simple de procéder consiste à chercher à l’aide d’un moteur de recherche classique du web “Jean Sébastien Bach data bnf” la page HTML de Data. Celle-ci est générée et conçue pour être référencée naturellement par les moteurs du web, et peut être aisément retrouvée.

3/ A l’aide du Catalogue

Le Catalogue et Data partagent le même système d’identification, si bien qu’il est fort aisé de passer d’un système à l’autre, en modifiant une petite partie de l’URL. La recherche d’un URI peut donc passer par une recherche dans la partie “Notices d’autorité” du Catalogue. On trouve ainsi par exemple pour les “Bach-Archiv. Leipzig, Allemagne” l’URL : “https://catalogue.bnf.fr/ark:/12148/cb12576410m”. L’URI dans Data est alors : “http://data.bnf.fr/ark:/12148/cb12576410m”.

4/ Avec SPARQL

Plusieurs méthodes permettent de trouver l’URI d’une entité à l’aide de SPARQL. On peut rechercher par exemple, à partir du libellé préférentiel des Concepts, lorsque celui-ci est connu. On se sert alors de la propriété “skos:prefLabel” dans le motif de triplet principal, en précisant la langue recherchée.

Q3 Trouver l’URI à partir du libellé préférentiel “Johann Sebastian Bach (1685-1750)” : Lien

# Trouver l'URI de Jean-Sébastian Bach
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT *
WHERE {
  ?peopleUri skos:prefLabel "Johann Sebastian Bach (1685-1750)"@fr.
}
peopleUri
1<http://data.bnf.fr/ark:/12148/cb118897907>

Il est aussi possible de trouver l’URI d’une personne à partir de son nom complet. Le hashtag “#about” est supprimé de l’URI de manière programmée, à l’aide d’une manipulation sur l’URI,

Q4 Trouver l’URI à partir du nom “Johann Sebastian Bach” : Lien

# Trouver l'URI de Jean-Sébastian Bach
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT *
WHERE {
  ?peopleUriAbout foaf:name "Johann Sebastian Bach".
  BIND(REPLACE(str(?peopleUriAbout), "#about", "") AS ?peopleUriString)
  BIND(URI(?peopleUriString) as ?peopleUri)
}

Une recherche moins stricte peut être lancée, en cherchant un motif dans les libellés de l’ensemble des concepts de Data. Le temps de réponse est supérieur à quinze secondes, pour cette requête qui inclut la clause EILTER.

Q5 Lister les entités dont le libellé contient “Johann Sebastian Bach” : Lien

# Trouver les concepts dont le libellé contient "Johann Sebastian Bach"
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT *
WHERE {
  ?conceptUri skos:prefLabel ?prefLabel.
  FILTER (CONTAINS (?prefLabel, "Johann Sebastian Bach"))
}
LIMIT 10
1<http://data.bnf.fr/temp-work/bc13e7eabcffee7765e6196f30876d5e/>“Johann Sebastian Bach”@fr
2<http://data.bnf.fr/temp-work/4ada566caf9ab6deff102c2e30a6cd80/>“La jeunesse mouvementée de Johann Sebastian Bach”@fr
3<http://data.bnf.fr/temp-work/5a5887e52ad7672cec0bf82a7b250d54/>“Die Kompositionen Johann Sebastian Bachs im Schemellischen Gesangbuch”@fr
Trois premiers résultats d’une liste de huit

On cherche pour conclure, dix personnes nommées Bach. Dans cette dernière requête, deux motifs de triplets et un filtre sont appliqués. L’ordre des instructions dans la partie WHERE n’a pas d’importance.

Q6 Trouver l’URI de 10 personnes dont le nom de famille est exactement “Bach” ? Lien

# 10 personnes nommées Bach
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT * # afficher toutes les variables
WHERE {
  ?peopleUri foaf:familyName ?familyName. # motif de triplet
  FILTER(?familyName = "Bach"). # filtre sur le nom de famille
  ?peopleUri foaf:name ?name. # affichage du nom
}
LIMIT 10
peopleUrifamilyNamename
1<http://data.bnf.fr/ark:/12148/cb16311594h#about>BachS. Bach
2<http://data.bnf.fr/ark:/12148/cb132129979#about>BachJean-Jacques Bach
3<http://data.bnf.fr/ark:/12148/cb14419790h#about>BachSteven Bach
Trois premières personnes nommées Bach

Tutoriels Data de ce blog

  • La BnF et SPARQL. Partie 1 : les bases constitutives de Data
  • La BnF et SPARQL. Partie 2 : les Auteurs dans Data
  • La BnF et SPARQL. Partie 3 : œuvres et éditions (à paraitre)

Affaire à suivre…

1 Star2 Stars3 Stars4 Stars5 Stars (Pas encore noté)
Loading...

Laisser un commentaire