-
Notifications
You must be signed in to change notification settings - Fork 4
ALTO METS
Le texte des documents imprimés numérisés pour Gallica est extrait grâce à une étape d’océrisation.
Ce processus et ses résultats sont décrits ici : http://www.bnf.fr/fr/professionnels/numerisation_boite_outils/a.num_conversion_mode_texte.html
L'API suivante permet d'extraire une page OCR de la bibliothèque numérique : http://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 page à extraire
Exemple : http://gallica.bnf.fr/RequestDigitalElement?O=bpt6k5773155v&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)
La charte technique utilisée par la BNF pour la production OCR est : http://www.bnf.fr/documents/ref_num_ocr_v2.pdf
Pour extraire le texte contenu dans un fichier OCR :
- Le contenu textuel principal est dans l’élément XML
<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 XML
<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_TYPEetSUBS_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"/>Pour chercher des images dans l’OCR :
- Les illustrations sont décrites dans l’élément XML
<illustration>. L’attributTYPE(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> - Le texte présent avant ou après une illustration contient potentiellement du texte décrivant l’illustration. Ce texte est stockés dans des éléments XML
<TextBlock>. Le texte lui-même est porté par l’attributCONTENT, au niveau de chaque mot<String>.
Pour extraire une image décrite dans l’OCR :
-
Les éléments XML illustrations décrivent les dimensions de l’image 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 IIIF s’en déduit immédiatement : http://gallica.bnf.fr/iiif/ark:/12148/bpt6k62530371/f12/349,272,923,1346/full/0/native.jpg
Les documents numériques de la BnF sont décrits à l’aide des formats XML refNum (obsolète) et METS.
Pour en savoir plus : http://www.bnf.fr/fr/professionnels/formats_catalogage/a.f_mets.html
Le format METS est géré par la Library of Congress : https://www.loc.gov/standards/mets/
Charte technique utilisée par la BNF : Référentiel d’enrichissement des métadonnées METS version 3
Chercher des images dans les manifestes METS des fascicules de presse :
- Les illustrations sont décrites dans la structure logique du fascicule (élément XML
structMap):<mets:structMap LABEL="Logical Structure" TYPE="LOGICAL">à l’aide d’éléments XML<div>deTYPE="ILLUSTRATION". Elles sont également décrites dans l’OCR (voir plus haut).
Exemple :
<mets:structMap LABEL="Logical Structure" TYPE="LOGICAL">
...
<mets:div ID="DIVL30" TYPE="ILLUSTRATION" ORDER="1" DMDID="MODSMD_PICT1" LABEL="DANS LA COUR DES INVALIDES, PENDANT LE DISCOURS DE L'AMIKAL DAKIAN (Transmis par bellno, n* 74.779.) (LIRE NOS INFORMATIONS EN DEUXIEME PAGE)">
<mets:div ID="DIVL31" TYPE="IMAGE">
<mets:fptr>
<mets:area BETYPE="IDREF" FILEID="ALTO00001" BEGIN="P1_CB00001"/>
</mets:fptr>
</mets:div>
<mets:div ID="DIVL32" TYPE="CAPTION">
<mets:fptr>
<mets:area BETYPE="IDREF" FILEID="ALTO00001" BEGIN="P1_TB00014"/>
</mets:fptr>
</mets:div>
</mets:div>
...- Les légendes sont décrites dans la structMap logique à l’aide de
<div>deTYPE="CAPTION". Le texte est porté par l’attributLABELau niveau de la<div>de niveau illustration.
Extraire les contenus OCR décrits dans la structure logique d’un manifeste METS de fascicule de presse :
-
Les contenus OCR sont pointés à l’aide de
<mets:fptr>et<mets:area>. L’attributFILEIDporte le numéro de la page ALTO concernée et l’attributFILEIDporte l’identifiant de l’élément XML ALTO concerné. -
Exemple :
<mets:area BETYPE="IDREF" FILEID="ALTO00001" BEGIN="P1_TB00014"/>
Dans le fichier ALTO de la page 1 (000001.xml) :
<TextBlock ID="P1_TB00014" HPOS="1328" VPOS="2571" WIDTH="1460" HEIGHT="94" STYLEREFS="TXT_16 PAR_LEFT">
<TextLine ID="P1_TL00124" HPOS="1328" VPOS="2572" WIDTH="1385" HEIGHT="24">
<String ID="P1_ST00875" HPOS="1328" VPOS="2574" WIDTH="85" HEIGHT="21" CONTENT="DANS" WC="0.94" CC="7775"/>
<SP ID="P1_SP00752" HPOS="1413" VPOS="2595" WIDTH="20"/>
<String ID="P1_ST00876" HPOS="1433" VPOS="2574" WIDTH="40" HEIGHT="21" CONTENT="LA" WC="0.33" CC="76"/>