# Le corpus des Ouvriers des deux mondes : des images et des URLs

Jean-Damien Généro

► To cite this version:

Jean-Damien Généro. Le corpus des Ouvriers des deux mondes : des images et des URLs. 2020. hal-03118736

HAL Id: hal-03118736

https://hal.science/hal-03118736v1

Submitted on 22 Jan 2021

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons CC BY 4.0 - Attribution - International License
Le corpus des *Ouvriers des deux mondes* :
des images et des URLs

Jean-Damien Généro*

19 juin 2020

Si les documents d'archives ont une part prépondérante dans le projet Time us, ils ne représentent pas pour autant l'intégralité de sa documenta- tion. Les imprimés sont également présents, sous la forme de trois importants dossiers : la collection de la presse ancienne lyonnaise, divers imprimés por- tant sur le textile en France au XIXe siècle, et le corpus des *Ouvriers des deux mondes* <fnref n="1" />.

Les *Ouvriers des deux mondes* sont des enquêtes sociologiques répar-
ties en 3 séries et 126 monographies<fnref n="2" />. Initiée par le sociologue Frédéric Le
Play (1806-1882), la publication est assurée par la Société internationale des
études pratiques d'économie sociale de 1857 à 1928 et représente un total de
13 volumes. Ceux-ci sont aujourd'hui intégralement consultables sur le site
*Internet Archive*<fnref n="3" />. Nous allons nous intéresser dans ce billet aux fichiers de
transcription de ces volumes et au lien entre ceux-ci et les images numérisées
d'origine.

Le script LSE OD2M, écrit par Alix Chagué, avait automatiquement seg-
menté et transcrit les images, puis encodé et structuré en XML-TEI les textes
bruts ainsi obtenus<fnref n="4" />; la sortie avait résulté en 13 fichiers XML. Ces fichiers
« sources » avaient ensuite été scindés en 222 fichiers XML correspondant à
autant de divisions logiques des volumes : les monographies bien sûr, mais
egalement les introductions, tables des matières et autres éléments de pa-
ratexte. Des opérations de vérification ont permis de réduire le nombre de
fichiers à 192.

<footnote>*Ingénieur de recherche et développement stagiaire, Inria, équipe ALMAnaCH ; étu-
diant du Master "Technologies numériques appliquées à l'histoire" de l'École nationale des
chartes. Lien vers le billet original.</footnote>

<footnote n="1">1. Aperçu des états sur le wiki Time Us.</footnote>

<footnote n="2">2. Anthony, Lorry, « Les monographies des *Ouvriers européens* (1855, 1877-1879) et des *Ouvriers des deux mondes* (1857-1930). Inventaire et classification », dans *Les Études sociales. Les monographies de famille de l'École de Le Play*, n°s 131-132, 2000, pp. 93-181, spec. p. 101.</footnote>

<footnote n="3">3. Liens des différents volumes sur le wiki Time Us.</footnote>

<footnote n="4">4. Voir son biller à propos de la Constitution d'un corpus textuel sur les monographies de Le Play.</footnote>
# 1 Les images : stockage local ou distant ?

Le schéma d'encodage retenu conserve le lien entre l'image et sa transcription. Celui-ci s'exprime sous la forme d'un élément `<facsimile>` en-globant un ensemble de balises `<graphic>`, dont l'attribut `@url` indique la localisation de l'image.

```xml
<facsimile xml:id="facs_451">
  <surface lrx="2721" lry="4415">
    <figure/>
    <zone rendition="printspace">
      <zone lrx="1357" lry="712" rendition="paragraph">
        ulx="352" uly="474" xml:id="facs_451_p_1"/>
      </zone>
      <zone lrx="1354" lry="864" rendition="paragraph">
        ulx="350" uly="750" xml:id="facs_451_p_2"/>
      </zone>
      <zone lrx="2430" lry="3952" rendition="paragraph">
        ulx="1419" uly="3772" xml:id="facs_451_p_24"/>
      </zone>
    </zone>
  </surface>
  <graphic url="../images/bin/
    lesouvriersdesde01sociuoft_0454.tif"/>
</facsimile>
```

Le script `LSE OD2M` a travaillé à partir d'images stockées localement après avoir été téléchargées depuis *Internet Archive* : chaque attribut `@url` contient donc un chemin local vers une image.

Ce stockage local répondait à un besoin spécifique lors de la phase de transcription. Il pose néanmoins problème pour la suite du traitement, dans la mesure où il ne garantit pas la portabilité du corpus.

Le site *Internet Archive* met à disposition du plus grand nombre des ressources digitalisées ou numériquement natives depuis son lancement en 1996. Son idée fondatrice est d'être un centre stable et durable d'archives digitales; stocker en local les ressources qui en sont issues ne semble ainsi pas nécessaire. Il a donc très vite été question de substituer au chemin local l de l'image sur *Internet Archive*.

Pour ce faire, deux étapes étaient nécessaires :

- Rechercher les *urls*;

- Écrire un script pour :

1. Itérer sur l'ensemble des fichiers XML;

2. Comparer les chemins locaux aux *urls*;

3. Éffectuer la substitution lorsque les deux correspondaient à la même image.
## 2 Recherche des url's

Éffectuer la substitution sur la base d'une expression régulière n'était pas envisageable, car la dénomination des images dans les url's sur *Internet Archive* et dans les des fichiers images n'était pas similaire.

La piste de la librairie python `internetarchive` a été explorée, mais là encore sans succès. C'est finalement l'analyse du code source des pages d'IInternet Archive qui a permis de remonter jusqu'à un fichier JSON contenant les url's des images.

Le format JSON présente une information structurée qui s'apparente à des dictionnaires et des listes pour le langage Python. Celui-ci intègre un module (`json`) permettant de lire les données des fichiers JSON. Dans le cas qui nous intéresse, les url se trouvaient à ce chemin :

```
|---['data']
|---['brOptions']
|---['data']
|---[index de la double page]
|---[index de la page]
|---['uri']
```

Une fois cette information connue, il devenait possible de remplacer dans le fichier XML les chemins locaux par ces url's. Encore fallait-il s'assurer que les deux correspondaient à la même image.

## 3 Le script de substitution

Le script de comparaison des chemins et des url's (fig. 1) requiert trois arguments :

- Un fichier `.csv` contenant une liste des liens vers les fichiers JSON;

- Un deuxième fichier `.csv` avec une liste de fichiers `.xml`;

- Le chemin local menant au dossier de ces fichiers.

Dans un premier temps, le script itère sur les url's des JSON et sur les dénominations des fichiers XML. Dans un second temps et à condition que l'identifiant du JSON se trouve dans l'intitulé du fichier XML — et donc si les deux ont bien pour objet le même volume — une requête GET est effectuée vers le JSON via le module `requests`<fnref n="5" /> et le fichier XML est ouvert et parsé via la librairie `Beautiful soup`<fnref n="6" />.

<footnote n="5">5. Méthode du protocole HTTP permettant de demander une ressource stockée sur un serveur/documentation).</footnote>

<footnote n="6">6. Parser un fichier consiste à le lire et à interpréter son contenu afin d'en extraire certains éléments.</footnote>
Ensuite, une nouvelle itération est effectuée sur chaque double-page dans
le JSON et sur chaque balise <graphic> dans le fichier XML. Les valeurs
obtenues (url de la page de droite, url de la page de gauche, chemin local
de l'attribut @url de <graphic>) sont stockées et comparées : lorsqu'une
correspondance est trouvée, @url prend pour nouvelle valeur l'adresse de
l'image sur Internet Archive.

La comparaison finale est effectuée grâce à une expression régulière fon-
dée sur l'identifiant unique à quatre digits de l'image, précédé par un tiret
bas (\d{4}), présent tant dans le chemin local que dans l.

Conclusion

Le script a effectué 6503 insertions dans 192 fichiers en un peu moins
d'une minute.

Il a été écrit pour répondre à un besoin posé par les fichiers XML d'un
corpus spécifique ; sa réutilisation est néanmoins envisageable si l'utilisateur
peut satisfaire aux arguments du script. Sur les trois requis, les deux premiers
sont essentiels pour son bon fonctionnement (deux tableaux listant les JSON
et les fichiers XML qui seront comparés). Le troisième, le chemin absolu
vers le dossier contenant les XML, peut en revanche être rendu optionnel et
converti en une variable intégrée dans l'exécution du script.

En dernier lieu, il faut noter que les url s listées dans les JSON présentent
l'avantage de pointer directement vers les images sources, et non vers l'in-
terface de consultation d'Internet Archive. C'est une garantie de pérennité
(aucune dépendance vis à vis des mises à jour de la visionneuse). Il devient
possible d'utiliser ces images dans une édition en ligne des *Ouvriers des deux
mondes*, tout en évitant le coût d'hébergement des images.
<figure><img src="image_2.png" /><figcaption>FIGURE 1 – Algorigramme du script</figcaption></figure>