Retour : page principale

Stage d'intégration du fichier PDF de Coste


Stagiaire : Julien Grillot
Période : 18 février au 26 avril 2008

Contexte


Des informations telles que la description, la localisation et le milieu de nombreuses espèces sont dans un fichier PDF. Tel quel, le fichier ne peut-être utilisé que pour être lu, mais il serait intéressant d'en extraire toutes les informations utiles afin de les intégrer dans la base de données de l'eFlore de Tela-Botanica.

Objectifs


Extraction

A partir du fichier PDF, extraire son contenu et l'insérer dans un fichier texte. Il faudra corriger l'encodage, et les retours à la lignes intempestifs. Il faudra également supprimer les numéros de pages. Ensuite, il sera necessaire de formatter ce fichier texte afin qu'un robot puisse l'analyser. C'est à dire que chaque "bloc" d'espèce ou de genre (qu'il faudra séparer), il faudra retrouver auteur, description, etymologie et localisation et les remettre sur une ligne, chacune de ces données séparées par une tabulation (et chaque bloc par un retour à la ligne). L'analyse de certains mots permettront de savoir dans quel type de phrase on se situe : "europe", "habitant" reviennent souvent dans le lieu ; "plante", "tige" reviennent souvent dans la description. Pour l'auteur, on sait qu'il se situe juste après le nom de l'espèce, composé de deux ou trois mots (si c'est un croisement). Enfin, pour distinguer ces blocs entre eux, il faudra vérifier les préfixes des nom d'espèces.

Exemple :

Hypecoum pendulum[tab]Linné[tab]Tiges dressées, lisses, dichotomes ; Feuilles glauques, à divisions linéaires, allongées, les radicales nombreuses, dressées, celles de la tige naissant sous les rameaux ; Fleurs petites, solitaires dans les dichotomies ; Pétales extérieurs entiers, non tachés, les inférieures à 3 lobes dont les latéraux tachés de points noirâtres ; Capsule pendante, cylindracée, non arquée, ni articulée, mais noueuse.[tab]Champs calcaires, en Provence et en Languedoc ; l'Ouest dans la vienne, les Deux-Sèvres, le Maine-et-Loire et l'Indre-et-Loire. Europe méridionale ; Asie occidentale et centrale ; Afrique septentrionale.[retour]

Croisement

Après avoir utilisé le robot pour stocker toutes ces informations dans une base de données (formatées en xml), il faudra croiser ces informations avec deux autres tables afin d'en réaliser une complète, avec toutes les informations sur les espèces. Ceci permettra d'intégrer toutes ces nouvelles informations sur l'eFlore de Tela-Botanica

Génération de PDF

Les données intégrées, il faudra créer une "fiche technique" pour chaque espèce, qui sera généré automatiaquement en pdf via la bibliothèque PHP TCPDF, qui inclura les informations récoltées précédement ainsi que des images (illustrations, photos des utilisateurs, carte de répartition). Il faudra utiliser les classes existantes pour récupérer les données et les intégrer sur le site. Tout est fait initialement en local avant d'être publié sur l'Internet.

Outils de programmation

Tela-Botanica utilise de nombreux outils libres pour le développement - OS inclus, Ubuntu et Mandriva sont très utilisés dans l'association. J'utilise ici le module PHP d'Eclipse (un logiciel de développement, initialement fait pour JAVA), et son module CVS, qui permet d'effectuer un travail collaboratif : chaque page de code a un historique de version et chaque modification d'une page peut être "mise à jour", ce qui permettra de synchroniser les version entre tous les postes (évite les conflits de versions entre plusieurs programmeurs codant sur le même projet).

Retours utilisateurs

Avant la diffusion, des exemples sont envoyées sur le groupe de discussion Tela Botanica généraliste sur Yahoo Groups. Les retours permettront d'améliorer l'ergonomie de la fiche et éventuellement d'en modifier le contenu.

Intégrations de nouvelles données

Maintenant "imergé" dans le code, je profite de la connaissance de celui-ci pour intégrer à la volée de nombreuses autres données, comme les clés des genres (qui permettent d'identifier les espèces), les bases des noms vernaculaires (non latin), des auteurs, de données sur la chorologie en Guadeloupe et Martinique. Le traitement est similaire aux étapes plus haut, à la différence que les fichiers tabulés sont déjà présent (il n'y plus besoin d'extaire depuis un fichier PDF pour ces données, ce qui simplifie la tâche). Les informations pertinantes seront ajoutées à la fiche PDF.

Travaux Annexes

Certaines parties de la chaine sont gérées par JP nottament lorsqu'il faut établir un standard pour recueillir dans une base de données les informations extraites - il faut pour cela avoir connaitre les autres projet pour assurer une harmonisation des tables -. Pendant ces périodes de "creux" (passer la main à JP, congés...), je m'occupe de quelques tâches sur Tela-Botanica ou Outil-Réseau, qui emplois les mêmes outils (Papyrus, un CMS développé par l'association) confiées par Alexandre. Par exemple, sécuriser l'envoie de fichier par le formulaire mis à disposition des utilisateurs, pouvoir éditer ceux si sans avoir à le supprimer et ré-envoyer ; parser des groupes Yahoo pour récolter des statistiques croisées avec celles de Tela-Botanica.
Après avoir appris à manipuler les robots, la création d'un robot spécifique à la récolte de données sur le site de l'IPNI a permis de récupérer une liste de botaniste afin de les référencer sur Tela Botanica. Cela permet par exemple de mensionner des références bibliographiques à chaque fois que l'un des noms est mensionné. Au vue des dizaines de millier de requêtes, les scripts devront optimiser au maximum chacune des requêtes (bons index, load file plutôt qu'insert, bonne jointure, etc). Il faudra procéder à des comparaisons "laxistes" pour voir si certains auteurs ne seraient pas déjà présents dans la base.

Mots clés

MVC, PEAR, Curl, TCPDF, CVS, Eclipse, PHP, GD, Mandriva, Ubuntu, CMS, Papyrus