Plugin Taxonomie, les services web

, par _Eric_

Les services nécessaires au plugin Taxonomie

Le plugin Taxonomie utilise divers services taxonomiques, la plupart offrant une API web, à savoir :

  • ITIS,
  • Wikipedia,
  • IUCN red list,
  • CINFO (pas encore disponible, fichier Excel uniquement).

Seul ITIS est indispensable au plugin car il fourni les données de base de chaque taxon et en particulier son identifiant unique, le TSN. Les autres services sont d’utilisation facultative à la discrétion de l’utilisateur.

Pour éviter de surcharger les services web, le plugin Taxonomie adopte deux stratégies :

  • utiliser un fichier téléchargé ou construit à partir du service concerné et embarqué dans le plugin (cas des fichiers d’importation des taxons du règne au genre pour ITIS) ;
  • ou utiliser un cache pour stocker l’information fournie par le service et éviter de refaire appel pendant plusieurs jours voire semaines. Ces caches sont rechargés très rarement car les informations qu’ils contiennent changent peu. Une interface d’administration permet de les supprimer manuellement si besoin. Etant donné que l’on connait toujours le TSN quand on utilise ces actions, le fichier de cache est nommé de la façon suivante : ${service}[_${action}]_${tsn}[_${langue}].txt. Le nom de l’action et la langue sont optionnels.

Les services peu utilisés ou fournissant une quantité limitée de données sont utilisés directement au travers d’une encapsulation de l’API du service sans cache intermédiaire. Dans la suite de l’article, pour chaque fonction il sera précisée le mode de gestion adopté.

Le service ITIS - les fonctions d’API

Le service taxonomique ITIS est la brique de base du plugin Taxonomie en ce sens qu’il est utilisé pour créer l’ensemble des taxons de la base. Taxonomie organise l’API de ce service en distinguant :

  • les fonctions permettant le chargement automatique, pour un règne donné, des taxons du règne au genre ;
  • les fonctions de recherche de taxons ;
  • et les fonctions de récupération d’informations sur un taxon donné.

Le plugin Taxonomie n’utilise qu’une partie de l’API Web proposée par ITIS mais elle suffit amplement aux besoins du plugin. Le tableau suivant décrit les fonctions d’API fournies par Taxonomie pour utiliser le service ITIS.

Fonction Description Cache ?
F1 - Fonctions de chargement des taxons du règne au genre
itis_read_hierarchy Lit le fichier hiérarchique ITIS des taxons d’un règne (du règne au genre) et renvoie la liste des descriptions des taxons retenus non
itis_read_ranks Lit le fichier des rangs d’un règne donné et construit la hiérarchie de ces mêmes rangs non
itis_read_vernaculars Lit le fichier des noms communs - tout règne confondu - d’une langue donnée et renvoie un tableau de tous ces noms indexés par leur TSN non
itis_list_vernaculars Renvoie la liste des noms communs définis pour certains taxons dans une langue donnée mais tout règne confondu non
F2 - Fonctions de recherche
itis_search_tsn Permet, à partir du nom commun ou du nom scientifique de trouver le TSN du ou des taxons cherchés si ils existent dans la base non
F3 - API d’information sur un taxon
itis_get_record Renvoie, à partir du TSN, l’ensemble des informations disponibles sur le taxon oui
itis_get_information Renvoie, à partir du TSN, l’information unitaire demandée oui

Le premier groupe de fonctions - F1 - est utilisé exclusivement pour charger les taxons du règne au genre à partir des fichiers ITIS embarqués dans le plugin.

Les groupes F2 et F3 sont eux principalement utilisés pour ajouter des espèces car la création d’une espèce se fait en général par son nom scientifique ou commun. De fait, il faut appeler l’action search_tsn pour récupérer le TSN et ensuite enchaîner par l’action get_record en passant le TSN fourni précédemment.

Le service ITIS - les fichiers embarqués dans le plugin

Pour créer les 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 répertoire services/itis/ du plugin.

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 à 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. Le code SQL est fourni ci-dessous.

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

Enfin, les fichiers JSON qui fournissent la liste des rangs, leurs caractéristiques et leur dépendance pour chaque règne sont aussi issus de la base de données ITIS par export de la table taxon_units_types. Le code SQL est fourni ci-dessous.

SELECT *
FROM taxon_unit_types
WHERE kingdom_id=5
ORDER BY rank_id

Le service ITIS - les statistiques sur les taxons

Pour les taxons du règne au genre, les fichiers de taxons et de traductions donnent les tatistiques suivantes depuis 2014.

Date/typeAnimaliaFungiPlantae
Février 2019
- taxons 61775 1664 7472
- noms en [fr] 460 3 72
- noms en [en] 3723 3 2445
Janvier 2018
- taxons 54933 1618 7362
- noms en [fr] 432 3 70
- noms en [en] 3477 3 2435
Mai 2016
- taxons 52011 1618 7335
- noms en [fr] 432 3 70
- noms en [en] 3475 3 2436
Octobre 2015
- taxons 51892 1618 7335
- noms en [fr] 432 3 70
- noms en [en] 3472 3 2436
Février 2015
- taxons 50496 1618 7334
- noms en [fr] 432 3 70
- noms en [en] 3229 3 2432
Novembre 2014
- taxons 50336 1617 7186
- noms en [fr] 432 3 69
- noms en [en] 3230 3 2434

Le nombre de taxons évolue quand même fortement en 4 ans. On est passé pour le règne animal d’un peu plus de 50000 taxons en 2014 à plus de 61000 taxons en 2019. Par contre, la traduction des noms communs est très limitée surtout pour le français et évolue pas. Un complément à ITIS pour le français en particulier serait appréciable.

Le service Wikipedia

Une fois le taxon inséré dans la base à partir de ses informations ITIS, il est donc connu par son identifiant unique et universel, le TSN. Il peut être complété par tout autre service taxonomique ou manuellement par les utilisateurs. C’est le cas du descriptif et du texte qui peuvent être initialisé par Wikipédia ou saisit directement par un utilisateur. Pour ce faire, Taxonomie définit une fonction d’API pour chercher et renvoyer le ou les articles dont le titre contient le nom commun ou le nom scientifique d’un taxon donné.

FonctionDescriptionCache ?
wikipedia_get_page Permet, à partir du nom commun ou du nom scientifique de renvoyer le texte ainsi que les informations de base de page Wikipedia correspondante si elle existe oui

Le service IUCN red list