API Document de Gallica
Présentation
À partir d'un document trouvé via l’API de recherche ou de l'interface Gallica, l’API Document permet de récupérer les d'informations (métadonnées) nécessaires à l'exploitation des ressources numériques du document.
Console
Identifiant commun aux services
Le dénominateur commun de ces services est l’ark du document numérique Gallica. Cette information est portée par la balise dc:identifier fournie par le 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>
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 et la liste des fascicules 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) : année pour laquelle on souhaite récupérer les fascicules.
Sans paramètre date
, le service renvoie la liste complète des années pour lesquelles il existe au moins un fascicule consultable, triée par année.
Avec le 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 pour le titre de périodique.uc3
: signale si ce périodique est de type UC3 ou NUM (valeurs possibles : yes / no). Un calendrier ne peut être construit pour les périodiques NUM mais 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 portant 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) pour une année 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 numérique.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 bibliographiques d'un document
Connaissant un document numérique (son ark), ce service permet d'obtenir des informations bibliographiques et techniques 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-PMH 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é).
- 500 en cas d'erreur du serveur
- 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>
Dans cet exemple, on voit la valeur 092.57 dans le balise <nqamoyen>, ce qui indique la présence d'un OCR et permet d'utiliser le service d'occurrence de recherche (voir ci-après). En effet, si cette valeur est égale ou supérieure à 050.00, le texte océrisé est indexé par le moteur de Gallica.
Des balises ont été ajoutées pour les 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 peut y avoir plusieurs média rattachés à une pagetitle
: contient le titre de la plage à lirefile
: contient un lien vers la ressource à lire, un fichier mp3 ici.
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
Connaissant un document numérique, les informations nécessaires pour le parcourir sont fournies par le service Pagination.
Utilisation :
- Verbe
Pagination
: https://gallica.bnf.fr/services/Pagination
Ce service renvoie la pagination et la foliotation 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 :
- 500 en cas d'erreur serveur
- le flux XML contenant la structure de la pagination du document
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 :
firstDisplayedPage
donne la page d'ouverture préférentielle du document (page de titre, couverture). Dans Gallica, si le qualifier f n'est pas spécifié dans l'URL, cette information sera utilisée. Si la valeur est < 1, la première page du document est affichéehasToc
: true ou false, indique si le document contient une table des matières ou un index. Cette information indique également s'il est possible de faire appel au service restituant les tables (voir ci-après).hasContent
: true ou false, si le document contient un 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
: information de foliotation (affichée dans le module de pagination de Gallica).ordre
: numéro d'ordre séquentiel de l'image correspondante. Il s'agit de la valeur à ajouter dans le qualifierf
lorsque l’on souhaite afficher la page correspondante (cf. service d'affichage des images)pagination_type
: type de pagination logique (N comme "non paginé", A comme "arabe", R comme "romain").
Note : dans le cas des documents contenant des légendes (cartes, lot d'images ou manuscrits), une balise supplémentaire est ajouté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
Connaissant un document numérique et ses informations de 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 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 afficher des images selon différents formats de diffusion, on utilise des qualificatifs. Ces qualificatifs sont les suivants :
- le qualificatif thumbnail fournit une image dont un coté correspond aux dimensions 128*192 px
- le qualificatif lowres fournit une image dont un coté correspond aux dimensions 256*384 px
- le qualificatif medres fournit une image dont un coté correspond aux dimensions 512*768 px
- le qualificatif highres fournit une image dont un coté correspond aux dimensions 1024*1536 px
Pour obtenir la page affichée par défaut du document, il suffit de ne pas utiliser le qualificatif f
. La page correspondant à la balise firstDisplayedPage (
décrite par le service Pagination
) est alors affichée.
Exemples:
- https://gallica.bnf.fr/ark:/12148/bpt6k146589h/lowres
- https://gallica.bnf.fr/ark:/12148/bpt6k146589h/f5.lowres
- 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="https://api.bnf.fr/../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="https://api.bnf.fr/../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