Découvrir les données de data.bnf.fr en utilisant SPARQL
1. - thomas.francart@sparna.fr – 07/03/2018 1
Découvrir les données de data.bnf.fr à
travers SPARQL
1 Documentation de data.bnf.fr
1.1 Allez sur le service SPARQL
Ouvrez votre navigateur à http://data.bnf.fr/sparql. Testez les requêtes pré-chargées.
1.2 Lecture du modèle de données
Allez à la page de documentation à http://data.bnf.fr/opendata. Prenez quelques minutes pour analyser
cette doc.
Prenez le temps de consulter le diagramme de documentation du modèle de données. Notez en
particulier l’articulation entre :
L’arborescence Work-Expression-Manifestation ;
Les éditions d’une œuvre et les sujets (dcterms:subject) ;
La différence entre « l’œuvre elle-même » (URI qui se termine par « #about ») et la notice de
l’œuvre dans data.bnf.fr qui est un skos:Concept relié à l’œuvre par « foaf:focus » ;
L’auteur d’une œuvre (dcterms:creator) ;
2 Interrogation de data.bnf.fr
2.1 Recherche dans RAMEAU
2.1.1 Première recherche
Recherchez l’identifiant RAMEAU de l’entrée qui a pour nom « Poésie française ». Utilisez pour cela
la fonction SPARQL « REGEX » :
SELECT …
WHERE {
…
FILTER(regex(?variable, "Poésie française", "i")
}
2. - thomas.francart@sparna.fr – 07/03/2018 2
2.1.2 Désambiguisation
Que constatez-vous en analysant le tableau de résultats ? est-ce que toutes les solutions viennent de
RAMEAU ? comment exclure les solutions qui ne viennent pas de RAMEAU ?
Poésie française = http://data.bnf.fr/ark:/12148/cb119759240
2.2 Recherche des notices indexées sur « Poésie française »
Ecrivez une requête pour rechercher toutes les notices ayant pour sujet l’entrée de RAMEAU « Poésie
française » trouvée précédemment. Sélectionnez le titre des notices (dcterms:title).
2.3 Recherche dans les personnes
2.3.1 Première recherche
Recherchez une personne qui s’appelle « Jean de La Fontaine ». Le nom d’une personne est
exprimée avec la propriété « foaf:name ». N’utilisez pas la fonction « regex ». Attention aux
majuscules/minuscules !
2.3.2 Désambiguisation
Que constatez-vous ? comment désambiguïser le résultat pour trouver "le bon" ? cliquez sur les URIs
pour naviguer vers les fiches et trouver un critère différenciant ; regardez les données en RDF des fiches
pour trouver les URIs des propriétés à utiliser. Ajoutez ce/ces critères à la requête.
Jean de la Fontaine = http://data.bnf.fr/ark:/12148/cb11910267w#about
2.4 Les Fables de la Fontaine
2.4.1 Trouver les Fables
Trouvez l'œuvre "Fables" en naviguant dans data.bnf.fr (partez de la fiche « Jean de La Fontaine »).
Notez l'URI du "permalien". Quelle est l'URI du Work FRBR correspondant ?
Fables = http://data.bnf.fr/ark:/12148/cb120083695#about
2.4.2 Trouver les mot-clés sujet des éditions des Fables
Ecrivez une requête pour trouver tous les mots-clés (sujets) des éditions des fables de la Fontaine.
2.5 Requête combinée « mot-clé » + « auteur »
2.5.1 Œuvres de Jean de la Fontaine
Ecrivez une requête pour sélectionner toutes les œuvres de Jean de la Fontaine avec leur titre.
3. - thomas.francart@sparna.fr – 07/03/2018 3
2.5.2 Critère de mot-clé
Ajouter un critère pour ne conserver que les œuvres qui ont une Manifestation indexée sur « Poésie
Française ».
4. - thomas.francart@sparna.fr – 07/03/2018 4
3 Solutions
3.1 Recherche dans RAMEAU
3.1.1 Première recherche
Recherchez l’identifiant RAMEAU de l’entrée qui a pour nom « Poésie française ».
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT DISTINCT ?sujet ?label
WHERE {
?sujet a skos:Concept .
?sujet skos:prefLabel ?label .
FILTER(regex(?label, "Poésie française", "i"))
}
LIMIT 100
3.1.2 Désambiguisation
Que constatez-vous en analysant le tableau de résultats ? est-ce que toutes les entrées viennent de
RAMEAU ? comment être plus précis ?
Par exemple :
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?sujet ?label
WHERE {
?sujet a skos:Concept .
?sujet skos:prefLabel ?label .
FILTER(regex(?label, "Poésie française", "i"))
FILTER NOT EXISTS {
?sujet foaf:focus ?quelqueChose .
}
}
LIMIT 100
3.2 Recherche des notices indexées sur « Poésie française »
Ecrivez une requête pour rechercher toutes les notices ayant pour sujet l’entrée de RAMEAU « Poésie
française » trouvée précédemment. Sélectionnez le titre des notices (dcterms :title).
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?manifestation ?title
WHERE {
5. - thomas.francart@sparna.fr – 07/03/2018 5
?manifestation dcterms:subject
<http://data.bnf.fr/ark:/12148/cb119759240> .
?manifestation dcterms:title ?title
}
LIMIT 1000
3.3 Recherche dans les personnes
3.3.1 Première recherche
Recherchez une personne qui s’appelle « Jean de la Fontaine ».
SELECT ?personne
WHERE {
?personne a foaf:Person .
?personne foaf:name "Jean de La Fontaine" .
}
3.3.2 Désambiguisation
Que constatez-vous ? comment désambiguiser le résultat pour trouver "le bon" ?
SELECT ?personne ?birth ?death
WHERE {
?personne a foaf:Person .
?personne foaf:name "Jean de La Fontaine" .
?personne bio:birth ?birth .
?personne bio:death ?death .
}
3.4 Les Fables de la Fontaine
3.4.1 Trouver les Fables
Trouvez l'oeuvre "Fables" en naviguant dans data.bnf.fr. Notez l'URI du "permalien". Quelle est l'URI du
Work FRBR correspondant ?
<http://data.bnf.fr/ark:/12148/cb120083695#about>
3.4.2 Trouver les mot-clés sujet des éditions des Fables
Ecrivez une requête pour trouver tous les mots-clés (sujets) des éditions des fables de la Fontaine.
SELECT DISTINCT ?manifestation ?sujet ?label
WHERE {
?manifestation rdarelationships:workManifested
<http://data.bnf.fr/ark:/12148/cb120083695#about> .
?manifestation dcterms:subject ?sujet .
6. - thomas.francart@sparna.fr – 07/03/2018 6
?sujet skos:prefLabel ?label .
}
3.5 Requête combinée « mot-clé » + « auteur »
3.5.1 Œuvres de Jean de la Fontaine
Ecrivez une requête pour sélectionner toutes les œuvres de Jean de la Fontaine avec leur titre.
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT ?work ?titre
WHERE {
?work dcterms:creator <http://data.bnf.fr/ark:/12148/cb11910267w#about>
.
?work dcterms:title ?titre .
}
3.5.2 Critère de mot-clé
Ajouter un critère pour ne conserver que les œuvres qui ont une Manifestation indexée sur « Poésie
Française ».
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT DISTINCT ?work ?titre
WHERE {
?work dcterms:creator <http://data.bnf.fr/ark:/12148/cb11910267w#about>
.
?work dcterms:title ?titre .
?manifestation rdarelationships:workManifested ?work .
?manifestation dcterms:subject
<http://data.bnf.fr/ark:/12148/cb119759240> .
}