Skip to content

ALTO METS

Jean-Philippe Moreux edited this page Nov 19, 2016 · 17 revisions

OCR

Contexte d'utilisation

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

API

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

Documentation

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 :

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’attribut CONTENT, au niveau de chaque mot <String>.
  • Les césures sont décrites par les attributs SUBS_TYPE et SUBS_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’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>
  • 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’attribut CONTENT, 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

METS

Contexte d'utilisation

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

Documentation

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> de TYPE="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> de TYPE="CAPTION". Le texte est porté par l’attribut LABEL au 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’attribut FILEID porte le numéro de la page ALTO concernée et l’attribut FILEID porte 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"/>

Clone this wiki locally