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. Seuls les règnes animal, végétal et fongique sont proposés par le plugin.
Pour un règne donné, le contenu intégral des taxons du règne au genre est mis à disposition des utilisateurs en un chargement.
Les espèces et descendants ne sont pas créés automatiquement comme les autres taxons ascendants mais manuellement à la demande des utilisateurs pour constituer l’écosystème souhaité. En effet, si le règne animal contient environ 62000 taxons du règne au genre, il regroupe presque 500000 taxons à partir du rang espèce. Il est donc difficilement envisageable de charger automatiquement tous ces taxons.
Structure de la table des taxons
La base de taxons est matérialisée par une table SPIP d’objets, les taxons, appelée spip_taxons
dont les principaux éléments de structure sont les suivants :
- 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, anglais, espagnol, italien, portugais et allemand) ;
- 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é, du descriptif synthétique et d’un texte libre sur le 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 de façon unique et pérenne.
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).
Création et édition des taxons du règne au genre
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 (fichier xxxx_genus.txt
où xxxx est le nom scientifique du règne).
Pour un règne donné, le chargement de ce fichier est lancé par l’utilisateur. Il permet de créer toute la hiérarchie des taxons (rangs principaux, secondaires et intercalaires) pour le règne choisi jusqu’au genre 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, en, es, pt, it, de pour l’instant). Ces fichiers contiennent les noms communs (et non pas vernaculaires) en français ou dans une autre langue 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 et le texte, 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 des taxons. Le texte récupéré est écrit en mediawiki et 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, le descriptif et le texte. Les autres champs ne sont pas éditables.
Création et édition des espèces et descendants
Le plugin Taxonomie se sert de la base ITIS pour remplir sa propre base de taxons du règne au genre en utilisant un fichier et non un service web pour des raisons de performance.
Par contre, les taxons fils comme les espèces ou autres variétés sont trop nombreux et ne sont donc pas créés automatiquement mais unitairement suivant le besoin de l’utilisateur : le plugin Taxonomie offre une interface de création de ces taxons.
Cette interface utilise des services web ITIS cette fois pour trouver les informations d’un taxon de rang espèce désigné par son nom commun ou son nom scientifique. L’utilisateur est guidé tout le long du processus de création. La création d’une espèce ou d’un descendants peut provoquer la création automatique des ascendants si ceux-ci appartiennent à des rangs entre le genre et le taxon en cours de création (par exemple, un sous-genre).
Ensuite, comme tout autre taxon, les espèces et descendant peuvent être complétés en utilisant le service Wikipedia ou manuellement en éditant les champs idoines du taxon.
Outre son rang, un taxon espèce ou descendant est repéré dans la base par un champ espece
dont les valeurs sont « oui » ou « non ».
Gestion du statut des taxons
Les taxons, comme beaucoup d’objet SPIP, possède un statut de publication qui prend les valeurs « proposé à la publication », « publié » et « à la poubelle » et un workflow de mise à jour.
Pour les taxons du règne au genre importé au travers des fichiers texte ITIS, le statut est positionné à « publié » lors de l’import. Il n’est pas modifiable par la suite.
Pour les taxons d’espèces et descendants, le statut est positionné à « proposé à la publication » lors de la création du taxon. Il est ensuite possible de le modifier pour le publier ou le mettre à la poubelle.
Comme expliqué précédemment, la création d’un taxon d’espèce peut impliquer la création automatique de taxons d’ascendants pour faire le lien avec le taxon de genre qui lui existe toujours. Le statut de ces taxons est positionné conformément aux règles précédemment décrites. En outre, si une espèce ou un descendant est positionné au statut publié, Taxonomie s’assure que tous les taxons ascendants sont aussi publiés et les publie si ce n’est pas encore le cas, le but étant toujours d’avoir une arborescence cohérente en terme de statut.
Évolution de la base des taxons
Les taxons, qu’ils aient été importés via un fichier ITIS ou créés manuellement possèdent tous des champs éditables, à savoir, le nom commun, le descriptif, le texte et pour les espèces et descendants, le statut.
En outre, la base ITIS des taxons évolue constamment même si cela peut être considéré comme marginal pour les non initiés. Les fichiers texte d’importation des taxons du règne au genre et les fichiers de traduction doivent être régulièrement mis à jour dans le plugin Taxonomie et les modifications répercutées dans la table des taxons des sites utilisateur.
Le but du plugin étant de faciliter la constitution de la base des taxons il est nécessaire de conserver les mécanismes de chargement automatique à partir du service ITIS ou tout autre si besoin. Si la base ITIS des taxons du règne au genre est modifiée, il est aussi essentiel de conserver les modifications effectuées manuellement par les utilisateurs lors du chargement automatique de la nouvelle version des taxons.
Le plugin Taxonomie offre donc un mécanisme de gestion des évolutions de la liste des taxons incluant la reprise des modifications manuelles. Pour cela, 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). Ce champ est utilisé en conjonction avec le champ importe
qui indique si le taxon a été importé via les fichiers ITIS (oui) ou créé suite à une demande utilisateur (non).
La liste des taxons importés et édités manuellement sera préservée avant la mise à jour de la base complète et les champs nom commun, texte et descriptif seront réinjectés par la suite en se basant sur le TSN du taxon qui lui est invariant. Ce sont les seules taxons à préserver car les taxons espèces ne sont pas concernés par un quelconque mécanisme de création automatique.
Le mécanisme de mise à jour de la base des taxons doit pouvoir être déclenché de façon automatique et manuelle. Automatiquement, Taxonomie 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.