API Document de Gallica
Présentation
À partir d'un document trouvé via l’API de recherche ou de l'interface Gallica, l’API Document (non standardisée) permet de récupérer un certain nombre d'informations (métadonnées) afin d'exploiter la ressource numérique.
Console
Identifiant commun aux services
Le dénominateur commun de ces services est l’ark du document numérique situé dans la balise dc:identifier du retour du service SRU de Gallica dont le contenu débute par https://gallica.bnf.fr/ark:/12148/
<oai_dc:dc>
<dc:contributor>Kauffmann, P.. Illustrateur</dc:contributor>
<dc:creator>Haurigot, Georges. Auteur du texte</dc:creator>
<dc:format>1 vol. (227 p.) : ill. ; 26 cm</dc:format>
<dc:format>application/pdf</dc:format>
<dc:format>Nombre total de vues : 240</dc:format>
<!-- LA BALISE DC:IDENTIFIER -->
<dc:identifier>https://gallica.bnf.fr/ark:/12148/bpt6k9633077k</dc:identifier>
<!-- LA BALISE DC:IDENTIFIER -->
<dc:language>fre</dc:language>
<dc:language>français</dc:language>
<dc:publisher>Paris ()</dc:publisher>
<dc:publisher>
Charavay, Mantoux, Martin, Librairie d'éducation de la jeunesse ()
</dc:publisher>
<dc:relation>
Notice du catalogue : http://catalogue.bnf.fr/ark:/12148/cb444319122
</dc:relation>
<dc:rights>domaine public</dc:rights>
<dc:rights>public domain</dc:rights>
<dc:source>
Bibliothèque nationale et universitaire de Strasbourg, 2015-256233
</dc:source>
<dc:title>
Les malices de Gaspard (10e série) / Par Georges Haurigot ; Illustrations de P. Kauffmann
</dc:title>
<dc:type>text</dc:type>
<dc:type>monographie imprimée</dc:type>
<dc:type>printed monograph</dc:type>
</oai_dc:dc>
Une particularité pour la recherche d’un périodique : elle n’est utilisable que si l’ark de la balise dc:identifier ci-dessus se finit par "/date"
Service de récupération des années et fascicule paru pour un périodique
Ce service permet de récupérer les années de parution ou la liste des fascicule pour une année, d’un périodique transmis en paramètre.
Utilisation :
- Verbe Issues : https://gallica.bnf.fr/services/Issues
Paramètres :
ark
: identifiant ARK du périodique, de la forme « ark:/12148/cb32798952c/date ».date
(optionnel) : date pour laquelle on souhaite récupérer les fascicules.
Sans paramètre date
, le service renvoie la liste complète des années où il existe au moins un fascicule consultable, triée par année.
Avec paramètre date
, le service renvoie tous les fascicules consultables, triés par jour de parution.
Exemple 1 :
Récupération de toutes les dates de parution pour le périodique "Le Journal de Toto" (ark : ark:/12148/cb32798952c/date) : https://gallica.bnf.fr/services/Issues?ark=ark:/12148/cb32798952c/date
<issues compile_time="0:00:00.327" list_type="years" parent_ark="ark:/12148/cb32798952c/date" total_issues="62" uc3="no">
<year>1937</year>
<year>1938</year>
</issues>
Parmi les attributs de la balise issues
total_issues
: nombre total de fascicules de ce titre de périodique.uc3
: signale si ce périodique est de type UC3 ou NUM : si un calendrier peut être construit. Valeurs possibles : yes / no. La grande majorité des périodiques sont de type UC3.
Chaque balise year
contient une année d'édition.
La liste est triée par ordre croissant sur les années de parution.
Exemple 2 :
Récupération des identifiants ark des documents numériques de tous les fascicules parus pour le périodique "Le Journal de Toto" (ark : ark:/12148/cb32798952c/date) à une date donnée (1937) : https://gallica.bnf.fr/services/Issues?ark=ark:/12148/cb32798952c/date&date=1937
<?xml version="1.0" encoding="UTF-8"?><issues compile_time="0:00:01.483" date="1937" list_type="issue" parent_ark="cb32798952c/date">
<issue ark="bpt6k5505325m" dayOfYear="77">1937/03/18 (A1,N2).</issue>
<issue ark="bpt6k5509212w" dayOfYear="84">1937/03/25 (A1,N3).</issue>
<issue ark="bpt6k5509226x" dayOfYear="91">1937/04/01 (A1,N4).</issue>
<issue ark="bpt6k5509221v" dayOfYear="98">1937/04/08 (A1,N5).</issue>
<issue ark="bpt6k5509234g" dayOfYear="105">1937/04/15 (A1,N6).</issue>
<issue ark="bpt6k55092406" dayOfYear="112">1937/04/22 (A1,N7).</issue>
<issue ark="bpt6k5509246p" dayOfYear="119">1937/04/29 (A1,N8).</issue>
<issue ark="bpt6k5509250k" dayOfYear="126">1937/05/06 (A1,N9).</issue>
<issue ark="bpt6k55092562" dayOfYear="133">1937/05/13 (A1,N10).</issue>
<issue ark="bpt6k5509264m" dayOfYear="140">1937/05/20 (A1,N11).</issue>
<issue ark="bpt6k5509271r" dayOfYear="147">1937/05/27 (A1,N12).</issue>
<issue ark="bpt6k55092740" dayOfYear="154">1937/06/03 (A1,N13).</issue>
<issue ark="bpt6k55092792" dayOfYear="161">1937/06/10 (A1,N14).</issue>
<issue ark="bpt6k5509284c" dayOfYear="168">1937/06/17 (A1,N15).</issue>
<issue ark="bpt6k5509289f" dayOfYear="175">1937/06/24 (A1,N16).</issue>
<issue ark="bpt6k5509294r" dayOfYear="182">1937/07/01 (A1,N17).</issue>
<issue ark="bpt6k5509299t" dayOfYear="189">1937/07/08 (A1,N18).</issue>
<issue ark="bpt6k55093038" dayOfYear="196">1937/07/15 (A1,N19).</issue>
<issue ark="bpt6k5509308b" dayOfYear="203">1937/07/22 (A1,N20).</issue>
<issue ark="bpt6k55093142" dayOfYear="210">1937/07/29 (A1,N21).</issue>
<issue ark="bpt6k55093194" dayOfYear="217">1937/08/05 (A1,N22).</issue>
<issue ark="bpt6k55093231" dayOfYear="224">1937/08/12 (A1,N23).</issue>
<issue ark="bpt6k55093268" dayOfYear="231">1937/08/19 (A1,N24).</issue>
<issue ark="bpt6k55093305" dayOfYear="238">1937/08/26 (A1,N25).</issue>
<issue ark="bpt6k55093357" dayOfYear="245">1937/09/02 (A1,N26).</issue>
<issue ark="bpt6k5509338g" dayOfYear="252">1937/09/09 (A1,N27).</issue>
<issue ark="bpt6k5509340j" dayOfYear="259">1937/09/16 (A1,N28).</issue>
<issue ark="bpt6k5509342c" dayOfYear="266">1937/09/23 (A1,N29).</issue>
<issue ark="bpt6k55093446" dayOfYear="273">1937/09/30 (A1,N30).</issue>
<issue ark="bpt6k55093461" dayOfYear="280">1937/10/07 (A1,N31).</issue>
<issue ark="bpt6k5509348v" dayOfYear="287">1937/10/14 (A1,N32).</issue>
<issue ark="bpt6k5509350x" dayOfYear="294">1937/10/21 (A1,N33).</issue>
<issue ark="bpt6k55093535" dayOfYear="301">1937/10/28 (A1,N34).</issue>
<issue ark="bpt6k55093550" dayOfYear="308">1937/11/04 (A1,N35).</issue>
<issue ark="bpt6k55093587" dayOfYear="315">1937/11/11 (A1,N36).</issue>
<issue ark="bpt6k55093609" dayOfYear="322">1937/11/18 (A1,N37).</issue>
<issue ark="bpt6k5509363j" dayOfYear="329">1937/11/25 (A1,N38).</issue>
<issue ark="bpt6k5509365c" dayOfYear="336">1937/12/02 (A1,N39).</issue>
<issue ark="bpt6k5509370p" dayOfYear="343">1937/12/09 (A1,N40).</issue>
<issue ark="bpt6k55093713" dayOfYear="350">1937/12/16 (A1,N41).</issue>
<issue ark="bpt6k5509373x" dayOfYear="357">1937/12/23 (A1,N42).</issue>
<issue ark="bpt6k5509375r" dayOfYear="364">1937/12/30 (A1,N43).</issue>
</issues>
La liste est triée par ordre croissant sur les jours de parution des fascicules.
Chaque fascicule de périodique est identifié par une balise issue
. Parmi les attributs :
ark
: identifiant ARK du fascicule.dayOfYear
: date de parution du fascicule. Il s’agit du jour de l’année de parution.
Le contenu texte de la balise est ce que l’on appelle la "précision" du fascicule. Il s’agit de contenu textuel contenant en général le jour de parution (sous la forme année/mois/jour), mais il peut contenir d’autres informations textuelles complémentaires. Note : Il ne faut pas se baser sur ce texte pour en déduire année/mois/jour, car son format n'est pas structuré (texte libre).
Service de récupération des informations bibliographique d'un document
J'ai un document numérique et je souhaite pouvoir récupérer certaines informations pour ensuite en déduire des actions possible (notamment l'utilisation d'autre services de l'API document).
Utilisation :
- Verbe
OAIRecord
: https://gallica.bnf.fr/services/OAIRecord
Ce service renvoie la notice OAI du document ainsi que d’autres informations techniques, telles que le type de document, ou si la recherche plein texte est disponible ou pas.
Un seul paramètre est obligatoire, il s’agit de l’ark de l’identifiant numérique du document.
Le service retourne donc :
- 400 s’il manque le paramètre
ark
- 404 si la notice n’est pas trouvée (document non indexé).
- Le flux XML contenant la notice au format Dublin Core, accompagnée de certains paramètres récupérés de l’index.
Exemple : https://gallica.bnf.fr/services/OAIRecord?ark=bpt6k5738219s
<?xml version="1.0" encoding="UTF-8" ?>
<results countResults="1" resultType="LuceneOAIRecordSearch" searchTime="0:00:00.001">
<notice>
<record xmlns="http://www.openarchives.org/OAI/2.0/">
<header>
<identifier>oai:bnf.fr:gallica/ark:/12148/bpt6k5738219s</identifier>
<datestamp>2012-01-27</datestamp>
<setSpec>gallica:theme:8:84</setSpec>
<setSpec>gallica:typedoc:monographies</setSpec>
</header>
<metadata>
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<dc:identifier>https://gallica.bnf.fr/ark:/12148/bpt6k5738219s</dc:identifier>
<dc:title>La plage d'Etretat par l'auteur de "Monsieur X et Mme ***"</dc:title>
<dc:publisher>Michel Levy (Paris)</dc:publisher>
<dc:date>1868</dc:date>
<dc:format>In-18</dc:format>
<dc:language>fre</dc:language>
<dc:relation>Notice du catalogue : http://catalogue.bnf.fr/ark:/12148/cb33539190h</dc:relation>
<dc:type xml:lang="eng">text</dc:type>
<dc:type xml:lang="fre">monographie imprimée</dc:type>
<dc:type xml:lang="eng">printed monograph</dc:type>
<dc:format>application/pdf</dc:format>
<dc:source>Bibliothèque nationale de France, département Littérature et art, Y2-59413</dc:source>
<dc:rights xml:lang="fre">domaine public</dc:rights>
<dc:rights xml:lang="eng">public domain</dc:rights>
</oai_dc:dc>
</metadata>
</record>
</notice>
<mode_indexation>text</mode_indexation>
<nqamoyen>092.57</nqamoyen>
<provenance>bnf.fr</provenance>
<source>Bibliothèque nationale de France, département Littérature et art, Y2-59413</source>
<typedoc>monographies</typedoc>
<date>1868</date>
<title>La plage d'Etretat par l'auteur de "Monsieur X et Mme ***"</title>
<sdewey>84</sdewey>
</results>
Ici par exemple dans le balise nqamoyen, on voit la valeur de 092.57, ce qui nous permet de pouvoir utiliser le service d'occurrence de recherche. En effet, si cette valeur est égale ou supérieure à 050.00, nous indexons le contenu des pages.
Des balises ont été ajoutées pour les documents audio ou vidéos afin d'accéder directement aux documents audio ou vidéo.
Document audio:
https://gallica.bnf.fr/services/OAIRecord?ark=bpt6k1279113
<?xml version="1.0" encoding="UTF-8"?><results ResultsGenerationSearchTime="0:00:00.037" countResults="1" resultType="CVOAIRecordSearchService" searchTime="">
<visibility_rights>all</visibility_rights>
<notice>
<record>
<header>
<identifier>oai:bnf.fr:gallica/ark:/12148/bpt6k1279113</identifier>
<datestamp>2016-09-30</datestamp>
<setSpec>gallica:typedoc:audio</setSpec>
</header>
<metadata>
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
<dc:identifier>https://gallica.bnf.fr/ark:/12148/bpt6k1279113</dc:identifier>
<dc:title>[Archives de la parole]. , Discours d'inauguration des Archives de la parole / M. Brunot, aut., participant</dc:title>
<dc:relation>Notice d'ensemble : http://catalogue.bnf.fr/ark:/12148/cb412948151</dc:relation>
<dc:relation>Titre d'ensemble : [Archives de la parole]. [Enregistrements à la Sorbonne] : [1911-1914]</dc:relation>
<dc:creator>Brunot, Ferdinand (1860-1938). Auteur du texte</dc:creator>
<dc:contributor>Brunot, Ferdinand (1860-1938). Participant</dc:contributor>
<dc:publisher>Université de Paris, Archives de la parole (Paris)</dc:publisher>
<dc:description>[Discours. 1911-06-03]</dc:description>
<dc:date>1911</dc:date>
<dc:identifier>94874-RA, 94876-RAUniversité de Paris-Archives de la parole</dc:identifier>
<dc:identifier>Numéro commercial : Université de Paris-Archives de la parole O.3 (n ° de face). O.3bis (n ° de face)</dc:identifier>
<dc:description>Enregistrement : (France) Paris, Université de Paris, La Sorbonne, 03-06-1911</dc:description>
<dc:subject>enregistrement parlé</dc:subject>
<dc:format>1 disque : 90 t ; 35 cm</dc:format>
<dc:language>fre</dc:language>
<dc:language>français</dc:language>
<dc:relation>Notice du catalogue : http://catalogue.bnf.fr/ark:/12148/cb385163820</dc:relation>
<dc:type xml:lang="eng">sound</dc:type>
<dc:type xml:lang="fre">document sonore</dc:type>
<dc:format xml:lang="eng">disc</dc:format>
<dc:format xml:lang="fre">disque pré-lp</dc:format>
<dc:source>Bibliothèque nationale de France, département Audiovisuel, AP-3</dc:source>
<dc:rights xml:lang="fre">domaine public</dc:rights>
<dc:rights xml:lang="eng">public domain</dc:rights>
<dc:format>multipart/mixed</dc:format>
</oai_dc:dc>
</metadata>
</record>
</notice>
<provenance>bnf.fr</provenance>
<source>Bibliothèque nationale de France, département Audiovisuel, AP-3</source>
<typedoc>sonore</typedoc>
<nqamoyen>0.0</nqamoyen>
<title>[Archives de la parole]. , Discours d'inauguration des Archives de la parole / M. Brunot, aut., participant</title>
<date nbIssue="1">1911</date>
<sounds>
<page num="0">
<media>
<title>Plage 1</title>
<file>https://gallica.bnf.fr/ark:/12148bpt6k1279113/f1.audio</file>
</media>
</page>
<page num="1">
<media>
<title>Plage 1</title>
<file>https://gallica.bnf.fr/ark:/12148/bpt6k1279113/f2.audio</file>
</media>
</page>
</sounds>
<first_indexation_date>10/03/2009</first_indexation_date>
</results>
et notamment cette partie
<sounds>
<page num="0">
<media>
<title>Plage 1</title>
<file>https://gallica.bnf.fr/ark:/12148/bpt6k1279113/f1.audio</file>
</media>
</page>
<page num="1">
<media>
<title>Plage 1</title>
<file>https://gallica.bnf.fr/ark:/12148/bpt6k1279113/f2.audio</file>
</media>
</page>
</sounds>
Les balises sont les suivantes:
sounds
: balise englobante indiquant la présence de contenu sonorepage
: balise répétable indiquant à quelle page du document se rattache le contenu sonore. Le numéro de la page est contenu dans l'attribut num de cette balisemedia
: cette balise est répétable dans page. Il poeut y avoir plusieur média rattaché à une pagetitle
: contien le titre de la plage à lirefile
: contient un lien vers la ressource à lire fichier mp3 ici. Plus tard plusieur format pourront y être associé
Document vidéo :
https://gallica.bnf.fr/services/OAIRecord?ark=bpt6k1320053k
<?xml version="1.0" encoding="UTF-8"?><results ResultsGenerationSearchTime="0:00:00.017" countResults="1" resultType="CVOAIRecordSearchService" searchTime="">
<visibility_rights>all</visibility_rights>
<notice>
<record>
<header>
<identifier>oai:bnf.fr:gallica/ark:/12148/bpt6k1320053k</identifier>
<datestamp>2017-09-26</datestamp>
<setSpec>gallica:typedoc:videos</setSpec>
</header>
<metadata>
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
<dc:identifier>https://gallica.bnf.fr/ark:/12148/bpt6k1320053k</dc:identifier>
<dc:title>Le café / Raymond Enokou, réal. ; Louis Effi, voix</dc:title>
<dc:creator>Enokou, Raymond. Réalisateur</dc:creator>
<dc:contributor>Effi, Louis. Voix parlée</dc:contributor>
<dc:publisher>CNDP [prod., distrib.] (Montrouge)</dc:publisher>
<dc:date>1982</dc:date>
<dc:subject xml:lang="fre">Caféiculture -- Côte d'Ivoire</dc:subject>
<dc:description>Collection : Une production agricole</dc:description>
<dc:format>1 fichier vidéo numérique (24 min) : 4/3, coul. (PAL), son.</dc:format>
<dc:language>fre</dc:language>
<dc:language>français</dc:language>
<dc:relation>Notice du catalogue : http://catalogue.bnf.fr/ark:/12148/cb43539572s</dc:relation>
<dc:type xml:lang="fre">image animée</dc:type>
<dc:type xml:lang="eng">moving image</dc:type>
<dc:source>Réseau Canopé, VNUM-9802</dc:source>
<dc:rights xml:lang="fre">conditions spécifiques d'utilisation (sous convention BnF-ADM-2011-061589-01)</dc:rights>
<dc:rights xml:lang="eng">restricted use (convention BnF-ADM-2011-061589-01)</dc:rights>
<dc:description>Résumé : Ce film ivoirien présente avec une grande précision les différentes étapes culturales de la production du café, production économique principale du pays (source : Média-Scérén)</dc:description>
<dc:description>Durée : 00:24:26</dc:description>
<dc:format>Nombre total de vues : 2</dc:format>
<dc:description>Thème : Agriculture, pêche</dc:description>
</oai_dc:dc>
</metadata>
</record>
</notice>
<provenance>bnf.fr</provenance>
<source>Réseau Canopé, VNUM-9802</source>
<typedoc>video</typedoc>
<nqamoyen>0.0</nqamoyen>
<title>Le café / Raymond Enokou, réal. ; Louis Effi, voix</title>
<date nbIssue="1">1982</date>
<video>
<file>http://gallica.bnf.fr/videolabs/bpt6k1320053k.mp4</file>
</video>
<first_indexation_date>01/10/2017</first_indexation_date>
</results>
et notamment cette partie :
<video>
<file>https://gallica.bnf.fr/videolabs/bpt6k1320053k.mp4</file>
</video>
Une seule vidéo par document numérique (pour le moment)
Les balises sont les suivantes :
video
: balise englobante pour l'accès au médiafile
: lien d'accès direct au média
Service de récupération de la pagination d'un document
J'ai un document numérique et je souhaite récupérer les informations nécessaires pour le parcourir.
Utilisation :
- Verbe
Pagination
: https://gallica.bnf.fr/services/Pagination
Ce service renvoie la pagination d'un document.
Un seul paramètre est obligatoire, il s’agit de l’ark de l’identifiant numérique du document.
Le service retourne donc :
- 400, s’il manque le paramètre ark
- 404, si la notice n’est pas trouvée (document non indexé).
- le flux XML contenant la structure de la pagination du document, accompagnée de certains paramètres récupérés de l’index.
Exemple : https://gallica.bnf.fr/services/Pagination?ark=bpt6k5738219s
<?xml version="1.0" encoding="UTF-8"?>
<livre>
<structure>
<firstDisplayedPage>12</firstDisplayedPage>
<hasToc>true</hasToc>
<TocLocation>328</TocLocation>
<hasContent>true</hasContent>
<idUPN>NUMM-5738219</idUPN>
<nbVueImages>374</nbVueImages>
</structure>
<pages>
<page>
<numero>NP</numero>
<ordre>1</ordre>
<pagination_type>N</pagination_type>
</page>
<page>
<numero>NP</numero>
<ordre>2</ordre>
<pagination_type>N</pagination_type>
</page>
…
Description des éléments :
- Si le qualifier
f
n'est pas spécifié dans l'url, l'information defirstDisplayedPage
sera utilisé pour afficher l'image correspondante au chargement du visualiseur. Si la valeur est < 1, on affiche la première page du document. hasToc
: true ou false, si le document contient une table des matières (et donc affichage du module de table des matières ou pas). Il permet également de pouvoir faire appel au service restituant la table des matières si la valeur est à true.hasContent
: true ou false, si le document contient du texte indexé. Préférer la balise<mode_indexation>
d'OAIRecord.idUPN
: cote du document numérique.nbVueAudio
: indique le nombre d'objets audio présents dans le document, cette balise est affichée uniquement pour les documents audio
Chaque information de page est contenue dans une balise <page>
, elles mêmes contenues dans une balise <pages>
.
On y retrouve les informations suivantes :
numero
: chaîne à afficher dans le module de pagination.ordre
: numéro d'ordre séquentiel de l'image correspondante. Il s'agit de la valeur à rajouter dans le qualifierf
lorsqu’on souhaite afficher la page correspondante (cf. service d'affichage dans les images)pagination_type
: type de pagination logique (N comme "non paginé," ou A comme "arabe" par exemple).
Note : dans le cas des documents contenant des légendes (cartes, lot d'images ou manuscrits), une balise supplémentaire est rajoutée pour chaque balise page
:
<page>
<numero>1</numero>
<ordre>1</ordre>
<pagination_type>A</pagination_type>
<legend>Le Louvre. N ° Atget : 5169. 1905-1906. Photographie positive sur papier aristotype d'après négatif sur verre au gélatinobromure ; 21,6 x 17 cm (épr.). [Cote : BNF - Est. Eo 109b bte 1 ; n ° micr. T039204] \ Opaline 047313
</legend>
</page>
legend
: légende associée à la page
Service d'affichage d'image précalculée
Une fois repéré un document numérique avec un certain nombre d'informations, dont la pagination (cf. service de pagination), si l'on souhaite visualiser l'image numérique d'une page sur une page physique spécifique du document, on utilisera alors un qualificatif dit de granularité f
suivi du numéro de page physique spécifique (i.e. le numéro d'ordre du service pagination).
Utilisation :
Pour récupérer des images au format de diffusion on utilise des qualifier "image".
Ces qualifiers sont les suivants :
- le qualificatif thumbnail correspond à une image dont un coté correspond aux dimensions 128*192 px
- le qualificatif lowres correspond à une image dont un coté correspond aux dimensions 256*384 px
- le qualificatif medres correspond à une image dont un coté correspond aux dimensions 512*768 px
- le qualificatif highres correspond à une image dont un coté correspond aux dimensions 1024*1536 px
Pour obtenir la page affichée par défaut du document, on n’utilise pas de qualificatif f
. Iil s’agit alors de la page correspondant à la balise firstDisplayedPage
décrite pour le verbe Pagination
).
Exemples:
- https://gallica.bnf.fr/ark:/12148/btv1b6930733g/thumbnail
- https://gallica.bnf.fr/ark:/12148/btv1b6930733g/lowres
- https://gallica.bnf.fr/ark:/12148/btv1b6930733g/medres
- https://gallica.bnf.fr/ark:/12148/btv1b6930733g/highres
Service d'occurrences de recherche
J'ai un document pour lequel la recherche plein texte est possible (i.e., nqamoyen > 060.00, cf exemple dans le verbe OAIRecord)
Ce service renvoie une liste d’occurrences d’un mot donné au sein d’un document.
Utilisation :
- Verbe
ContentSearch
: https://gallica.bnf.fr/services/ContentSearch
Les paramètres sont les suivants :
ark
: (paramètre obligatoire) identifiant ARK du document numérique, de la forme bpt6kxxxxx ou btv1bxxxxx.query
: (paramètre obligatoire) termes de la recherche à trouver dans ce documentpage
: (paramètre optionnel) numéro d'ordre de page sur laquelle effectuer la recherche. Il s'agit du numéro de la balise <ordre> du verbe Pagination. à n'utiliser que pour récupérer la position sur l'image où se situe le motstartResult
: (paramètre optionnel) il est utiliser pour paginer l'intégralité des résultat sachant que nous bloquons à 10 le nombre d'éléments retourné par le service.
Pour obtenir les pages avec un extrait, on n'utilise pas le paramètre page
- Exemple :
https://gallica.bnf.fr/services/ContentSearch?ark=bpt6k5460422k&query=hugo
<?xml version="1.0" encoding="UTF-8"?> <results ResultsGenerationSearchTime="0:00:00.050" countResults="4" searchTime="50"> <query>hugo</query> <items> <item> <altoid/> <p_id>PAG_357</p_id> <p_width/> <p_height/> <content>e V. <span class='highlight'>HUGO</span></content> <events/> </item> <item> <altoid/> <p_id>PAG_173</p_id> <p_width/> <p_height/> <content>quelque chose comme si on envoyait à <span class='highlight'>Hugo</span> une petite grammaire de Lhomond : « la grammaire est l'art d'écrire et de parler correctement</content> <events/> </item> <item> <altoid/> <p_id>PAG_355</p_id> <p_width/> <p_height/> <content>Et rappelons le jugement éloquent, porté par Victor <span class='highlight'>Hugo</span> en 1848 : ee Deux républiques sont possibles</content> <events/> </item> <item> <altoid/> <p_id>PAG_10</p_id> <p_width/> <p_height/> <content>et tua aussi don <span class='highlight'>Hugo</span> de Car</content> <events/> </item> </items> </results>
Ici 4 pages ont répondu pour le document
Description des éléments du flux
La réponse est contenue dans la balise <results>
. L'attribut countResults
permet de connaître le nombre de pages ayant au moins une occurrence.
Chaque occurrence trouvée est placée dans une balise <item>
, elles mêmes contenues dans une balise <items>
.
L'attribut score
est le score donné par le moteur de recherche, et n'est pas exploité dans l'interface.
p_id
: numéro de page du document numérique contenant un extraitcontent
: flux HTML contenant un extrait pour cette page avec un taggage de la partie qui correspond à la recherche (contenu de la balise <span class="highlight">). Le visualiseur image/mosaïque pour les documents de type image, cartes, manuscrits exploite cette donnée pour afficher la légende surlignée.- les autres balises sont vides mais présentes pour des raisons de compatibilité historique
Si je veux savoir où se situe le mot dans l'image je vais utiliser le paramètre page
. Ci-dessus j'avais par exemple
<p_id>PAG_173</p_id>
Je récupère la partie numérique du contenu et j'interroge comme suit : https://gallica.bnf.fr/services/ContentSearch?ark=bpt6k5460422k&query=hugo&page=173
<?xml version="1.0" encoding="UTF-8"?><results ResultsGenerationSearchTime="0:00:00.044" countResults="1" searchTime="44">
<query>hugo</query>
<items>
<item>
<altoid countResults="1">
<altoidstring height="47" hpos="514" vpos="915" width="101">PAG_00000173_ST000061</altoidstring>
</altoid>
<p_id>PAG_173</p_id>
<p_width>1153</p_width>
<p_height>2138</p_height>
<content/>
<events/>
</item>
</items>
</results>
altoid
: contient des informations détaillées de chaque mot extrait par l'OCR dans l'image. L'attributcountResults
renseigne sur le nombre de mots trouvés :altoidstring
: il s'agit d'un rectangle représentant le mot. Les attributs :height
: détermine la hauteur du rectangle en pixels.width
: détermine la largeur du rectangle en pixels.hpos
: détermine la position X du rectangle sur la page en pixelsvpos
: détermine la position Y du rectangle sur la page en pixels. Ces informations ont été générées par le logiciel de reconnaissance de caractères, et se basent sur la taille physique du fichier master numérisé:p_id
: numéro de page du document numérique contenant un extraitp_width
: largeur en pixels du fichier master.p_height
: hauteur en pixels du fichier master
Ainsi on sait que le mot "hugo" de la page 173 (dont l'image mesure 1153 pixel de large et 2138 de haut) est contenu dans une boîte dont le coin haut/gauche se situe a 514 pixel du bord gauche et 915 pixel du haut. Cette boîte mesure 47 pixels de haut et 101 pixels de large. Je rappelle ces dimension sont donnée par rapport à la taille donnée dans p_width et p_height.
On renvoie systématiquement une version réduite de l’image (png ou jpeg) par rapport au master original (généralement tif), les valeurs de positions affichées doivent donc être calculées par rapport à des coordonnées correspondant aux dimensions du fichier original.
Service de récupération de la table des matières
J'ai un document pour lequel je souhaite exploiter la table des matières (le service de pagination a renvoyé la balise suivante : hasToc=true
) pour faire des liens directement vers la page du document associée à une entrée dans la table des matières.
Utilisation :
- Verbe
Toc
: https://gallica.bnf.fr/services/Toc
Un seul paramètre est obligatoire, il s’agit de l’ark de l’identifiant numérique du document. Ce service renvoie la tables des matières.
Deux cas peuvent alors se présenter.
- Soit la numérisation est ancienne : dans ce cas un flux HTML est renvoyé
Exemple : https://gallica.bnf.fr/services/Toc?ark=ark:/12148/bpt6k83037p
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="http://pictor.pfvd.ux.bnf.fr:8693/../styles/styleTdmImage.css" rel="stylesheet" type="text/css" title="styleTdm" />
<meta http-equiv="Content-Type" content="text/html" /> <title>0083037.htm</title>
<script language="JavaScript" src="http://pictor.pfvd.ux.bnf.fr:8693/../javascript/scriptTdmImage.js" > </script>
</head>
<body>
<div class="Titre2" style="text-align: center"> TABLE ALPHABÉTIQUE </div>
<div class="Titre4" style="text-align: center"> DES MATIÈRES </div>
<div class="Texte" style="font-size: 80%"> ABBEVILLE. Naudé y meurt, <a href="javascript:allerA('0083037', '140')">108</a>. = <a href="javascript:allerA('0083037', '143')">111</a>. </div>
<div class="Texte" style="font-size: 80%"> ACADÉMIE fondée par Mazarin. Comment devait être organisée, ...
Dans un tel cas il faut parser le code source du flux et récupérer les informations contenus dans les balises <a>.
Exemple : 111 Le texte à afficher pour l'entrée est compris entre les balises div
et a
, dans notre exemple " ABBEVILLE. Naudé y meurt, "
Ici on peut retrouver la page en utilisant la qualifier f
de l'api image associé au deuxième paramètre de la fonction javascript "allerA"
Exemple : https://gallica.bnf.fr/ark:/12148/bpt6k83037p/f143, 143 étant le numéro d'ordre et 111 la pagination dans le document original.
- Soit le document a été numérisé plus récemment, et dans ce cas un flux XML au format TEI (pour une description détaillée, voir http://bibnum.bnf.fr/tdmNum/) est renvoyé.
Exemple : https://gallica.bnf.fr/services/Toc?ark=ark:/12148/bpt6k97540464
<TEI.2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/TR/xlink" xsi:noNamespaceSchemaLocation="http://bibnum.bnf.fr/ns/tdmNum.xsd">
<text id="tdm.9754046">
<body>
<div0 type="TdM">
<head>TABLE</head>
<div1>
<table>
<row>
<cell/>
<cell>Pages</cell>
</row>
<row>
<cell>
<seg n="int.000001">AVANT-PROPOS</seg>
</cell>
<cell>
<xref n="lie.000001" type="image" from="FOREIGN(9754046/000011.jp2)">V</xref>
</cell>
</row>
<row>
<cell>
<seg n="int.000002">NOTICE SUR J.-J. ROUSSEAU, par M. Rodolphe Rey</seg>
</cell>
<cell>
<xref n="lie.000002" type="image" from="FOREIGN(9754046/000013.jp2)">VII</xref>
</cell>
</row>
<row>
<cell>
<seg n="int.000003">
J.-J. ROUSSEAU PATRIOTE GENEVOIS, par M. Amédée Roget
</seg>
</cell>
<cell>
<xref n="lie.000003" type="image" from="FOREIGN(9754046/000059.jp2)">LIII</xref>
</cell>
</row>
...
Chaque entrée est contenue dans une balise row
. Pour faire le lien entre le texte de l'entrée de la table des matières, contenu dans la balise seg
, et la page du document numérique, il faut exploiter les attributs de la balise xref
et notamment l'attribut from
.
Exemple : from="FOREIGN(9754046/000059.jp2)
Ici, ce qui nous intéresse est 000059. Et ainsi on peut créer le lien vers la page : https://gallica.bnf.fr/ark:/12148/bpt6k97540464/f59
Service de récupération du texte
Texte brut
Lorsqu'un document est indexé en texte intégral (voir la section "Service de récupération de la pagination d'un document"), il est possible d'obtenir ce texte.Pour ce faire, on utilisera le qualifier texteBrut
. Soit le document Gallica suivant : https://gallica.bnf.fr/ark:/12148/bpt6k5619759j
En ajoutant à la fin de l'url ".textBrut", on obtient alors tout le texte du document (avec en entête les informations bibliographiques) :
Exemple : https://gallica.bnf.fr/ark:/12148/bpt6k5619759j.texteBrut
Si l'on souhaite une partie du document, on ajoutera le qualifier f[X]n[y]
à la fin du qualifier texteBrut
, où X
est le numéro de la page à partir de laquelle on souhaite obtenir le texte, et n
le nombre des pages suivantes.
Exemple : https://gallica.bnf.fr/ark:/12148/bpt6k5619759j/f5n2.texteBrut
Astuce : pour faire afficher un document Gallica en mode texte+image, on utilisera le qualifier texteImage
: https://gallica.bnf.fr/ark:/12148/bpt6k5619759j.texteImage
OCR
Le texte des documents imprimés numérisés dans Gallica est extrait grâce à un processus d’océrisation (voir note plus bas).
L'API Gallica suivante permet d'extraire une page OCR de la bibliothèque numérique :
https://gallica.bnf.fr/RequestDigitalElement?O=id&E=ALTO&Deb=x
où :
id
est l'identifiant ark du document numérique,x
est le numéro de la page à extraire
Exemple : https://gallica.bnf.fr/RequestDigitalElement?O=bpt6k5619759j&E=ALTO&Deb=3
L’OCR produit est au format XML ALTO (https://www.loc.gov/standards/alto/). Le format ALTO utilisé par la BnF diffère légèrement du standard, mais le cœur du format est identique. Le format ALTO de la BnF existe en deux versions :
- http://bibnum.bnf.fr/alto_prod/
- http://bibnum.bnf.fr/alto_bnf-v2_0/ (à partir de 2014)
Pour extraire le texte contenu dans un fichier OCR :
- Le contenu textuel principal est dans l’élément
<PrintSpace>
. Le contenu éventuellement présent dans les marges étant décrit dans les éléments<xxxMargin>
- Le texte est décrit par des éléments
<TextBlock>
et<TextLine>
. Le texte lui-même est porté par l’attributCONTENT
, au niveau de chaque mot<String>
. - Les césures sont décrites par les attributs
SUBS_TYPE
etSUBS_CONTENT
:
<String CONTENT="va" HEIGHT="26" WIDTH="51" VPOS="2701" HPOS="1240" SUBS_TYPE="HypPart1" SUBS_CONTENT="variées" ID="PAG_0_ST000150"/>
<HYP CONTENT="-"/>
<String CONTENT="riées" HEIGHT="37" WIDTH="100" VPOS="2746" HPOS="324" SUBS_TYPE="HypPart2" SUBS_CONTENT="variées" ID="PAG_0_ST000151"/>
Note : le processus OCR et ses résultats sont décrits ici :
- introduction : http://www.bnf.fr/fr/professionnels/numerisation_boite_outils/a.num_conversion_mode_texte.html
- charte technique BnF pour la production OCR : http://www.bnf.fr/documents/ref_num_ocr_v2.pdf
Pour chercher des illustrations décrites dans l’OCR :
Les illustrations sont décrites dans l’élément <Illustration>
. L’attribut TYPE
(optionnel) décrit le type de l’illustration. On trouvera notamment comme valeurs : musicScore, musicalScore (partition musicale), map (carte et plan).
Les légendes d’illustration sont parfois groupées avec l’illustration à l’aide d’un élément <ComposedBlock>.
Sinon, le texte présent avant ou après une illustration contient potentiellement du texte décrivant l’illustration.
Pour extraire une illustration décrite dans l’OCR :
Les éléments Illustration
décrivent les dimensions de l’illustration grâce aux attributs VPOS, HPOS, WIDTH, HEIGHT
.
Exemple : document ark:/12148/bpt6k62530371, page 12, illustration n° 1 :
<Illustration ID="PAG_00000012_IL000001" HPOS="349" VPOS="272" HEIGHT="1346" WIDTH="923">
L’URL du protocole IIIF s’en déduit immédiatement : https://gallica.bnf.fr/iiif/ark:/12148/bpt6k62530371/f12/349,272,923,1346/full/0/native.jpg
Accès
Service de récupération des années et fascicules parus pour un périodique
- accès : https://gallica.bnf.fr/services/Issues
- exemple : https://gallica.bnf.fr/services/Issues?ark=ark:/12148/cb32798952c/date
Service de récupération des informations bibliographique d'un document
- accès : https://gallica.bnf.fr/services/OAIRecord
- exemple : https://gallica.bnf.fr/services/OAIRecord?ark=bpt6k5738219s
Service de récupération de la pagination d'un document
- accès : https://gallica.bnf.fr/services/Pagination
- exemple : https://gallica.bnf.fr/services/Pagination?ark=bpt6k5738219s
Service d'affichage d'image précalculée
- accès : https://gallica.bnf.fr/ark:/12148/btv1b6930733g/[Qualificatif_Image]
- exemple : https://gallica.bnf.fr/ark:/12148/btv1b6930733g/thumbnail
Service d'occurrences de recherche
- accès : https://gallica.bnf.fr/services/ContentSearch
- exemple : https://gallica.bnf.fr/services/ContentSearch?ark=bpt6k5460422k&query=hugo
Service de récupération de la table des matières
- accès : https://gallica.bnf.fr/services/Toc
- exemple : https://gallica.bnf.fr/services/Toc?ark=ark:/12148/bpt6k97540464
Service de récupération du texte