Plugin Taxonomie, la base des taxons

, par _Eric_

Concepts de la base de taxons

Le plugin Taxonomie est la brique de base du package Le Monde Vivant. Il a pour but de construire une base de taxons la plus complète possible afin de répondre aux besoins de classification des autres plugins. Néanmoins, il ne s’agit pas de reproduire l’ensemble des taxons existants dans le monde vivant mais seulement un sous-ensemble considéré comme significatif.

En premier lieu, seuls les règnes animal, végétal et fongique sont proposés par le plugin.

En outre, pour un règne donné, le contenu se limite aux taxons dont le rang fait partie de 6 des 7 rangs principaux, à savoir, règne, embranchement (appelé aussi division ou phylum suivant le règne), classe, ordre, famille et genre. Les rangs secondaires et intercalaires sont donc ignorés. Les espèces elles font l’objet d’un plugin spécifique.

Structure

La base de taxons est matérialisée par une table SPIP d’objets, les taxons, appelée spip_taxons dont la structure est la suivante :

  • la dénomination du taxon avec son nom scientifique en minuscule et son nom commun (aussi appelé nom vulgaire) exprimé dans les langues disponibles (français et anglais pour l’instant) ;
  • la catégorisation du taxon constituée de son règne (nom scientifique en minuscule) et de son rang taxonomique exprimé en anglais et écrit en minuscule ;
  • la description composée de l’auteur du taxon correctement typographié et du descriptif libre du taxon.

Comme tout objet SPIP, un taxon possède un identifiant unique, id_taxon. Néanmoins, il possède aussi un identifiant ITIS (voir paragraphe suivant) nommé tsn (taxonomic serial number) qui permet de repérer chaque taxon dans la base ITIS.

En outre, la base des taxons reproduit la structure hiérarchique de la taxonomie en organisant les taxons comme un arbre. Pour ce faire, le plugin utilise l’identifiant ITIS et le champ tsn_parent qui désigne le parent de chaque taxon (ou 0 si le parent n’existe pas, c’est-à-dire pour un règne).

Remplissage

Pour remplir cette base de taxons le plugin utilise la base de données Integrated Taxonomic Information System, ITIS, et son service web associé. Ce service est donc la pierre angulaire du plugin Taxonomie même si il n’est pas le seul à fournir des données. Pour éviter les problèmes de performances de la connexion internet la liste des taxons d’un règne donné est embarquée dans le plugin et utilisée lors du chargement.

Le chargement de ce fichier permet de créer toute la hiérarchie des taxons requis pour un règne donné et de remplir les champs nom scientifique, tsn, règne, rang taxonomique et auteur.

En outre, le plugin embarque d’autres fichiers issus de la base ITIS et nommés vernaculars_xx.csv (xx égal fr et en pour l’instant). Ces fichiers contiennent les noms communs (et non pas vernaculaires) en français ou en anglais d’un certain nombre de taxons, tout règne confondu. Particulièrement pour le français, le nombre de « traductions » est très faible et nécessitera donc des compléments pour intégrer les noms communs des taxons.

Pour le descriptif, le plugin offre la possibilité de récupérer la page Wikipedia associée au nom scientifique, si elle existe. Néanmoins, cette interface est manuelle et ne peut pas être lancée automatiquement sur l’ensemble de la base de données. Le texte récupéré est écrit en mediawiki, transformé en SPIP si le plugin Convertisseur est installé. Dans tous les cas, le résultat doit être adapté manuellement suite à son insertion dans le formulaire.

Enfin, l’interface privée propose comme pour tout objet la modification de certains champs de l’objet taxon, à savoir, le nom commun et le descriptif. Tous les autres champs ne sont pas éditables.

Création des fichiers ITIS

Pour créer ces fichiers de taxons par règne, on utilise le service web « hierarchical report » en choisissant le règne souhaité jusqu’au rang genre (genus en anglais) et les options display TSN et display author. Les fichiers obtenus sont au format texte et se nomment ${Regne}_Genus.txt ; il est parfois nécessaire de les sauvegarder avec un EOL Unix (LF). Ils sont inclus tels quels dans le plugin et l’API ITIS du plugin permet de les utiliser.

Il faut noter que le rang principal de niveau 2 est appelé phylum (embranchement) ou division suivant le règne : phylum pour le règne animal, division pour les règnes fongique et végétal. Il est donc nécessaire que les fonctions du plugin en tiennent compte.

Les fichiers de noms communs vernaculars_${langue}.csv sont plus complexes à créer car ils ne sont pas le résultat d’une requête au service web d’ITIS. En effet, il faut les créer en exportant le résultat d’une requête SQL à la base de données complète d’ITIS. Pour ce faire, il faut au préalable télécharger la base SQLite d’ITIS et l’installer en local.
Dès lors, chaque fichier est un export CSV basée sur une requête sur la table vernaculars qui renvoie dans l’ordre le tsn (tsn) et le nom commun (vernacular_name) à partir de la table vernaculars et pour un langage donné (language=French ou language=English) en limitant les taxons aux 3 règnes supportés.

  1. SELECT v.tsn, v.vernacular_name
  2. FROM vernaculars AS v, taxonomic_units AS t
  3. WHERE v.language="English"
  4. AND t.kingdom_id IN (3,4,5)
  5. AND v.tsn=t.tsn
  6. ORDER BY v.tsn

Télécharger

Évolution du plugin et de la base des taxons

La base ITIS évolue constamment même si ce n’est pas forcément le cas du sous-ensemble proposé par le plugin Taxonomie. Le but du plugin étant de faciliter la constitution de la base des taxons il est nécessaire de conserver les automatismes de chargement automatique à partir du service ITIS ou tout autre si besoin. Néanmoins, il reste que les noms communs et les descriptifs sont éditables et donc modifiables manuellement. De fait, si la base ITIS est modifiée, il est essentiel de retrouver les modifications manuelles lors du chargement de la nouvelle version des taxons.

Le plugin Taxonomie doit donc offrir un mécanisme de gestion des évolutions de la liste des taxons incluant la reprise des modifications manuelles. En particulier, il est nécessaire d’ajouter un champ edite dans la table spip_taxons indiquant que le taxon est soit d’origine (non), soit a été modifié manuellement suite à sa création automatique (oui). La liste des taxons dont le statut est modifié sera préservée avant la mise à jour de la base complète et les champs nom commun et descriptif seront réinjectés par la suite en se basant sur le TSN du taxon qui lui ne change jamais.

Le mécanisme de mise à jour de la base des taxons doit pouvoir être déclencher de façon automatique et manuelle.
Automatiquement, on utilise un CRON journalier pour vérifier que le SHA des fichiers ITIS a changé et donc déclencher le mécanisme d’upgrade. Cette solution est plus adaptée car elle se déroule en arrière plan et ne risque pas de tomber en timeout comme la première solution.

Manuellement, le traitement est intégré au formulaire de chargement d’un règne.

Quelques statistiques

L’utilisation de la base ITIS donne les statistiques suivantes pour la base de taxons du plugin Taxonomie :

Date/type Animalia Fungi Plantae
Novembre 2014
- taxons 50336 1617 7186
- noms en [fr] 432 3 69
- noms en [en] 3230 3 2434
Février 2015
- taxons 50496 1618 7334
- noms en [fr] 432 3 70
- noms en [en] 3229 3 2432
Octobre 2015
- taxons 51892 1618 7335
- noms en [fr] 432 3 70
- noms en [en] 3472 3 2436
Mai 2016
- taxons 52011 1618 7335
- noms en [fr] 432 3 70
- noms en [en] 3475 3 2436

On constate donc que la traductions des noms communs est très limitée surtout pour le français et évolue peu. Un complément à ITIS pour le français en particulier serait appréciable.