Projet:Biologie/Taxobot

Une page de Wikipédia, l'encyclopédie libre.
Taxobot

Description de l'image Logo Taxobot.png.
Informations
Créateur Hexasoft
Développé par
Dernière version 1.0.23[1]Voir et modifier les données sur Wikidata
Écrit en PHP
Système d'exploitation Windows, Linux, OS X
Langues français
Type Utilitaire Wikipédia
Licence Licence publique générale GNU version 3Voir et modifier les données sur Wikidata
Site web GitHub

Taxobot, ou Le Taxobot, est un programme qui permet de générer le squelette d'un article de biologie pour un taxon donné. Il extrait les données de diverses sources de référence utilisées par le projet Biologie pour fournir une ébauche.

Il est disponible en version web, en ligne sur Toolforge (lien direct) ou en ligne de commande. Il est compatible avec Linux, Windows (2000, XP, 7, 8 et 10 ou 11) ou Mac OS X, voire potentiellement compatible avec d'autres systèmes UNIX comme Solaris.

Utilisez la page de discussion de cette page pour tout élément lié aux tests, bugs, fonctionnalités (existantes, demandées…) de l'outil.

Avertissement[modifier | modifier le code]

Taxobot est un outil, donc vous êtes responsable de son utilisation :

  • Il fournit un squelette d'article biologique, pas un article fini ;
  • Il utilise des données tierces, il ne garantit pas l'exactitude et la véracité des informations.

Pensez à :

  • Relire l'ébauche générée ;
  • Vérifier la cohérence, le respect des conventions, etc. ;
  • Compléter la taxobox (illustration, renseigner l'auteur et la date de publication) ;
  • Affiner les portails, catégories ou ébauches ;
  • Faire en sorte que les catégories suivantes ne soient pas remplies inutilement :

Bref, pensez aux lecteurs.

Le but est de fournir un remplacement au très bon outil WikipediaBioReferences (WBR), hélas plus maintenu par Liné1 (d · c · b).

Version actuelle : 1.0.23 (github)

Page contenant des exemples de sortie sur des taxons. Passez par la page de discussion pour demander d'autres exemples (dans la mesure où ils ont un caractère d'exemple : domaine non couvert, cas particulier…).

Informations[modifier | modifier le code]

Cette section est pour ajouter des éléments d'informations « d'actualité » par rapport au fonctionnement du programme.

  • il semble que ITIS réponde mal aux requêtes sur son API.
  • il semble que mycoBank soit lent à répondre (générant parfois une erreur coté Taxobot).

En plus de la page Discussion Projet:Biologie/Taxobot où on peut retrouver les demandes de fonctionnalités et autres, ainsi que leur état d'avancement, il est possible de se référer à la page Projet:Biologie/Taxobot/Versions qui indique les évolutions du code.

Code et installation[modifier | modifier le code]

Le code de Taxobot est disponible sur GitHub : https://github.com/Hexasoft/taxobot

N'hésitez-pas à l'utiliser en local chez vous si vous le souhaitez/pouvez. Si vous êtes développeur et êtes intéressé par contribuer au code, n'hésitez-pas à me contacter.

Généralités[modifier | modifier le code]

Pour récupérer le code, il suffit de se rendre sur le lien GitHUB plus haut, puis de cliquer que le bouton « Code » (en vert, en haut à droite) et là cliquer « Download ZIP ». Vous téléchargerez une archive ZIP que vous devrez extraire sur votre ordinateur, à l'endroit qui vous convient. Toute installation windows doit être en mesure nativement de prendre en charge le format ZIP. Sur Ubuntu vous pouvez installer le paquet unzip (pour utilisation en ligne de commande) mais sinon la prise en charge en mode graphique est native (via l'exploreur de fichiers).

Une autre possibilité lorsqu'on a un client git (qui est un programme de gestion de code source décentralisé) est de faire git clone https://github.com/Hexasoft/taxobot.git pour récupérer l'ensemble du code (qui se trouve alors dans un sous-répertoire taxobot/), ou de faire git pull en étant dans le répertoire taxobot/ pour simplement mettre à jour à la dernière version.
Note : utiliser git est la méthode recommandée. En effet un simple git pull vous permet d'être à jour de la dernière version, alors qu'avec la méthode de téléchargement vous devez re-télécharger, puis re-extraire l'archive avant de pouvoir utiliser une version à jour.

Taxobot nécessite PHP (testé versions 7.x et 8.x), ainsi que quelques extensions PHP spécifiques (curl, cli, json, xml, mbstring). Pour une utilisation de l'interface WEB il faut également un serveur Apache configuré pour pouvoir exécuter du PHP.

Ubuntu[modifier | modifier le code]

Testé et compatible Ubuntu 18.04, 20.04, 21.04 et 22.04 / PHP 7.x et 21.10, 22.04 / PHP 8.0

Installer Taxobot sur Ubuntu : Projet:Biologie/Taxobot/Installation Ubuntu (doit fonctionner pour toute distribution basée sur apt, donc a minima Debian et Ubuntu)

Portage sur Windows[modifier | modifier le code]

Testé et compatible Windows 10 et 11 / PHP 8.

Installer Taxobot via WSL sur Windows 10 et 11 : Projet:Biologie/Taxobot/Installation Windows 10 et 11 (WSL)

Installer Taxobot sous Windows (a priori Windows 7, Windows 10, Windows 11) : Projet:Biologie/Taxobot/Installation Windows (un peu plus technique que de passer par WSL)

Portage sur MacOS[modifier | modifier le code]

En cours de test.

Installer Taxobot via Homebrew sur MacOS : Projet:Biologie/Taxobot/Installation Mac OS

Fonctionnalités[modifier | modifier le code]

Présentation[modifier | modifier le code]

Version WEB[modifier | modifier le code]

Le point d'accès est une page permettant de choisir la classification et de saisir le nom du taxon. Sur le coté quelques paramètres permettent de modifier le fonctionnement du programme.

Le résultat est présenté en trois zones :

  • à gauche le wikicode généré pour le taxon (précédé d'un rappel des paramètres utilisés lors de l'appel)
  • à droite une liste de liens vers des ressources associées au taxon (commons, species, wikidata, rangs, interwikis…)
  • en bas la liste des erreurs (typiquement « non trouvé selon XXX ») et des actions

À noter la présence d'un bouton « Copier le wikitexte » qui copie le contenu généré dans le clipboard.

Version ligne de commande[modifier | modifier le code]

Le programme retourne les mêmes informations, mais en « linéaire » (affichage en ligne de commande oblige). Les 3 parties décrites dans la section précédente sont présentes, l'une à la suite de l'autre dans l'ordre indiqué.

Un appel au programme se fait a minima de la façon suivante :
php taxobot.php -taxon "nom taxon"

Le programme dispose de nombreuses options. Vous pouvez voir les options en faisant php taxobot.php -help.

Quelques exemples :

  • sélectionner la classification à utiliser : php taxobot.php -classification nom -taxon "nom taxon"
  • voir les modules et ce qu'ils font (la 2ème valeur indique si le module est utilisable comme classification) : php taxobot.php -liste
  • désactiver un module : php taxobot.php -off nom[,nom[…]] -taxon "nom taxon"
  • préciser le domaine (au sens wikipédien : animal, plante, champignon…) cible. Permet de ne garder que les modules qui supportent ce domaine : php taxobot.php -domaine animal -taxon "nom taxon"
  • blanchir la page pour repartir sur une page vierge : clear
  • sortir du programme : exit

Voir Projet:Biologie/Taxobot/Options pour le détail des options et leur effet.

Éléments à vérifier lors de l'appel[modifier | modifier le code]

Lorsque Taxobot tourne il collecte divers problèmes pour affichage.

Il est donc important de regarder les messages d'erreur : ils se trouvent en général avant le début de la sortie normale (en mode ligne de commande). On peut y voir des problèmes d'exécution. Exemples :

  • PHP Warning: Undefined property: stdClass::$_embedded in /home/hexasoft/Code/Taxobot-git/taxobot/modules/mod_inpn.php on line 107 : signale un problème non géré correctement par Taxobot suite à un problème (ici ponctuel) de communication avec le site de l'INPN
  • PHP Warning: file_get_contents(https://www.itis.gov/ITISWebService/services/ITISService/searchByScientificName?srchKey=Cheramoides+marginata): Failed to open stream: HTTP request failed! in /home/hexasoft/Code/Taxobot-git/taxobot/modules/mod_itis.php on line 172 : signale un problème de communication avec le site de ITIS (ici récurrent)

Il est également important de regarder les logs affichés à la fin. Ils indiquent quels modules ont trouvé des données et quels modules n'ont pas retourné d'info, avec en général un message explicitant où est le problème. Parfois c'est « normal » (exemple : OEPP: taxon non trouvé → le taxon n'est sans doute pas référencé chez eux). Parfois il peut y avoir un message plus précis et spécifique.
Si vous pensez que ce n'est pas normal (vous savez que tel site connaît le taxon demandé) : 1. refaites une tentative plus tard afin de vérifier que ce n'est pas un problème ponctuel (site indisponible, problème réseau…) 2. ajoutez un bug à la liste en donnant le maximum de détails (taxon demandé, message d'erreur retourné pour ce site, éventuellement options spécifiques utilisées…).

Classifications[modifier | modifier le code]

Pour le choix de la classification à utiliser, se référer à la page Projet:Biologie/Bases de données suivies.


Choix de la classification à utiliser : Taxobot doit sélectionner un module (gérant la classification) à utiliser pour déterminer les infos du taxon. La sélection se fait (dans l'ordre) :

  • si une classification est indiquée lors de l'appel (option -classification) elle est utilisée
  • si ni la classification ni le domaine (option -domaine) ne sont indiqués c'est la classification par défaut qui est utilisée
  • si le domaine est précisé :
    • Taxobot cherche le module le plus « précis » pour le domaine indiqué
    • si une seule est la plus précise elle est utilisée
    • si plusieurs ont la même précision :
      • la classification par défaut est utilisée si elle est dans la liste
      • la classification la plus prioritaire est utilisée sinon

Si Taxobot ne peut trouver une classification qui corresponde aux contraintes le programme s'arrête sur une erreur.

Liste des classifications gérées :

GBIF[modifier | modifier le code]

code en ligne de commande : - classification gbif

Note : GBIF est la classification par défaut de Taxobot. GBIF est la classification avec la priorité la plus haute.

  • récupérer les infos du taxon (nom, rang…)
  • récupérer la classification supérieure
  • récupérer le « règne » (« charte » actuellement dans les taxobox)
  • la liste éventuelle des sous-taxons (hors « UNRANKED »)
  • basionyme (si présent)
  • liste des synonymes (si présent)
  • liste des noms en français (si présent)
  • possibilité de suivre les synonymes (option)

Remarque : GBIF ne permet pas d'obtenir des informations sur un synonyme (donc l'option suivre-synonymes non ne fonctionne pas).

ITIS[modifier | modifier le code]

code en ligne de commande : - classification itis

Note : ITIS est au rang 2 des priorités des classifications.
Note : ITIS ne semble marcher que par moment…

  • récupérer les infos du taxon (nom, rang…)
  • récupérer la classification supérieure
  • récupérer le « règne » (« charte » actuellement dans les taxobox)
  • la liste éventuelle des sous-taxons
  • liste des synonymes
  • liste des noms en français
  • possibilité de suivre les synonymes (option)

MycoBank[modifier | modifier le code]

code en ligne de commande : - classification mycobank

Note : MycoBank est au rang 3 des priorités des classifications.

  • récupérer les infos du taxon (nom, rang…)
  • récupérer la classification supérieure
  • récupérer le « règne » (« charte » actuellement dans les taxobox)
  • la liste éventuelle des sous-taxons
  • liste des synonymes
  • basionyme (si présent)
  • possibilité de suivre les synonymes (option)

WoRMS[modifier | modifier le code]

code en ligne de commande : - classification wrms

Note : WoRMS est au rang 4 des priorités des classifications.

  • récupérer les infos du taxon (nom, rang…)
  • récupérer la classification supérieure
  • récupérer le « règne » (« charte » actuellement dans les taxobox)
  • la liste éventuelle des sous-taxons
  • liste des synonymes
  • basionyme (si présent)
  • possibilité de suivre les synonymes (option)
  • noms vernaculaires (si présent)
  • publication originale (si présent)

AlgaeBASE[modifier | modifier le code]

code en ligne de commande : - classification algaebase

Note : AlgaeBASE est au rang 5 des priorités des classifications.

  • récupérer les infos du taxon (nom, rang…)
  • récupérer la classification supérieure
  • la liste éventuelle des sous-taxons
  • publication originale (si présent)

ATTENTION : implémentation incomplète (ne gère pas les genres, par exemple) et partielle

LPSN[modifier | modifier le code]

code en ligne de commande : - classification lpsn

Note : LPSN est au rang 6 des priorités des classifications.

  • récupérer les infos du taxon (nom, rang…)
  • récupérer la classification supérieure
  • récupérer le « règne » (« charte » actuellement dans les taxobox)
  • la liste éventuelle des sous-taxons
  • liste des synonymes
  • possibilité de suivre les synonymes (option)
  • étymologie (si présent)
  • publication originale (si présent)

Taxobox[modifier | modifier le code]

Création d'une taxobox :

  • début : nom scientifique ; charte ; classification
  • classification
  • taxon : rang, nom scientifique, auteur
    • insertion {{auteur}} et lien date (XXXX en science). Liste d'auteurs avec un espace dans le nom, pour éviter de mal les traiter (imparfait : tous les noms ne sont pas pré-connus)
  • UICN ; CITES

Description[modifier | modifier le code]

Nouveau !!! Émoticône
Support d'une section « Description ». À l'heure actuelle la seule source de description fonctionnelle est AlgaeBASE.

Distribution[modifier | modifier le code]

Nouveau !!! Émoticône
Support d'une section « Distribution ». Si aucune distribution une section vide est insérée. À l'heure actuelle la seule source de distribution fonctionnelle est l'UICN (il faut donc que le taxon ait une entrée UICN).

Sont listés les pays « certains » et les pays « incertains ». La résolution est le pays (pas de précision en deçà), classés par ordre alphabétique, et l'assertion est sourcée (par UICN, donc). Pas non plus d'autres précisions (saisonnier, nidification, passage, etc.).

Des extensions sont prévus pour d'autres sources.

Remarque : en cours de test / déploiement. Quelques problèmes restent sur les codes pays.

Liens externes[modifier | modifier le code]

Il existe une catégorie consacrée à ce sujet : Modèle géré par le Taxobot.

Actuellement l'outil sait récupérer des infos pour :

  • UICN (pour la taxobox et pour lien externe) + noms en français
  • CITES (pour la taxobox et pour lien externe) + noms en français
  • Commons (pour Autres projets)
  • species (pour Autres projets)
  • ADW (lien externe)
  • CoL (lien externe)
  • ITIS (cf classification)
  • GBIF (cf classification)
  • ReptileDB (pour espèces : quelques soucis pour les rangs supérieurs)
  • Tropicos (lien externe)
  • WCVP / POWO / IPNI (+ support « non valide » + ajout WCVP/POWO/IPNI du valide correspondant)
  • Fishbase (uniquement Fishbase espèce)
  • WFO (lien externe)
  • OEPP (lien externe et source de noms français)
  • MycoBank / Fungorum espèce (uniquement les taxons « valides «)
  • Faunaeur (via le modèle Faunaeur2)
  • MSW (lien externe)
  • INPN (lien externe + noms en français)
  • IRMNG (lien externe)
  • eBird (lien externe)
  • COI (lien externe + éventuellement nom en français)
  • eFlora (lien externe)
  • Biolib (lien externe)
  • EoL (lien externe)
  • TPDB (lien externe)
  • Taxonomicon (lien externe)
  • WoRMS (cf classification)
  • NCBI (lien externe)
  • MDD (lien externe)
  • LPSN (cf classification)
  • AlgaeBASE (cf classification)
  • ARK (désactivé : changement de « politique » de l'accès aux photos)

Autres éléments[modifier | modifier le code]

  • détermination d'une catégorie, basée sur le rang de famille si présent + catégorie de charte si définie (ex. : Plante (nom scientifique))
  • détermination d'un portail, basé sur la charte taxobox
  • spécification de l'ébauche, basée sur la charte taxobox
  • possibilité de définir des règles spécifiques permettant de spécifier des catégories / portails / ébauches plus précises à partir d'éléments de la classification
  • création d'une phrase d'introduction par défaut
  • affichage de la liste des taxons inférieurs
  • section « Systématique » regroupant (selon présence) : basionyme/protonyme ; noms en français ; synonymes
  • gestion des italiques « complexes » pour tous les noms scientifiques
  • mise en {{colonnes}} des listes (taxons inférieurs et synonymes) au delà d'un certain nombre d'entrées. Ajout d'un paramètre à l'appel permettant de fixer ce seuil.
  • basionyme si présent. Modifications pour ne l'introduire que s'il est différent du nom actuel.
  • publication originale si présente

Paramètres[modifier | modifier le code]

Taxobot permet quelques réglage de son fonctionnement (en plus du nom du taxon recherché) :

  • choix de la classification (gbif, itis, mycobank, algaebase, wrms)
  • paramétrage du seuil de mise en {{colonnes}} (jamais, toujours, nombre d'entrées, par défaut [25])
  • ajout de wikiliens sur les synonymes
    • si oui, ajout de wikiliens lorsqu'on est égal ou en dessous de l'espèce
  • si le taxon entré est considéré comme un synonyme par la classification, traiter le synonyme à la place
  • ne traiter que les liens externes (pas de classification)
  • activer la récupération des liens externes pour les synonymes/non valides/etc. (note : sur certaines sources et certains taxons cette option peut ajouter un grand nombre de liens externes)

Matrice des liens externes / chartes[modifier | modifier le code]

algue animal archaea bactérie champignon protiste végétal virus eucaryote procaryote
GBIF ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
ITIS ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ❌ ✔️ ✔️
MycoBank ❌ ❌ ❌ ❌ ✔️ ❌ ❌ ❌ ❌ ❌
ADW ❌ ✔️ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
CoL ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
ReptileDB ❌ ✔️ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
Tropicos ✔️ ❌ ❌ ❌ ✔️ ❌ ✔️ ❌ ❌ ❌
WCVP/POWO/IPNI ❌ ❌ ❌ ❌ ❌ ❌ ✔️ ❌ ❌ ❌
Fishbase ❌ ✔️ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
WFO ✔️ ❌ ❌ ❌ ❌ ❌ ✔️ ❌ ❌ ❌
OEPP ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
MycoBank/Fungorum ✔️ ❌ ❌ ❌ ✔️ ✔️ ❌ ❌ ❌ ❌
Faunaeur ❌ ✔️ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
MSW ❌ ✔️ ❌ ❌ ❌ ❌ ❌ ❌ ❌ ❌
INPN ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ❌ ✔️ ✔️
IRMNG ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
UICN ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ❌ ✔️ ✔️
CITES ✔️ ✔️ ❌ ❌ ✔️ ❌ ✔️ ❌ ❌ ❌

Comment aider ?[modifier | modifier le code]

Toutes les bonnes volontés sont les bienvenues pour l'amélioration de Taxobot.

Il y a plusieurs façon de m'aider à faire évoluer Taxobot.

Faire remonter des demandes ou des problèmes[modifier | modifier le code]

Il y a une page dédiée pour faire remonter des demandes de nouvelles fonctionnalités ou des problèmes de fonctionnement.

Ceci participe à l'amélioration de Taxobot en éliminant des bugs et en améliorant le résultat.

Participer au code[modifier | modifier le code]

Le programme lui-même est en PHP, et nécessite également des connaissances en système, en HTTP / HTML et en traitement des données. Si vous pensez avoir ces compétences et souhaitez participer au développement je peux vous ajouter au GitHub associé.

Analyser les bases du vivant[modifier | modifier le code]

Taxobot récupère des informations sur les bases du vivant. Certaines relèvent uniquement des modules de classification (taxons supérieurs, inférieurs, etc.) et d'autres de tous les modules (noms vernaculaires, distribution, etc.) en sus des informations spécifiques à chaque module (liens externes).

Vous pouvez aider en repérant et en faisant remonter les informations disponibles sur les différentes bases : il n'est en effet pas toujours évident de connaître l'ensemble des informations qui peuvent être disponibles (ça dépend souvent des taxons).
Certaines informations sont déjà supportées par Taxobot mais ne sont remontée que par certains modules (par exemple la répartition) faute d'avoir trouvé ce type d'information dans les autres bases.
Certaines informations ne sont pas supportées et pourraient être ajoutées si c'est pertinent (par exemple espèce marine / terrestre, etc.).

Compléter la liste formatée des auteurs[modifier | modifier le code]

Taxobot tente de compléter les auteurs des taxons (pour la botanique) ou propose des suggestions d'auteurs (pour la zoologie) à partir de listes décrivant l'auteur (nom, dates, etc.).

Compléter ou corriger ces listes améliore le traitement des auteurs pour tous les utilisateurs de Taxobot.

Ce sont les deux fichiers liste_zoologistes.php et liste_botanistes.php dont le format est (je pense) assez évident.

Compléter les critères de sélection des ébauches/catégories/portails[modifier | modifier le code]

Taxobot retourne une ébauche, des catégories et des portails par défaut pour les taxons traités, en se basant sur le règne / la charte.

Il y a également un système permettant d'affiner ça, à partir de quelques informations sur le taxon (règne/charte, rang, présence de tel ou tel rang supérieur).

Vous pouvez participer à l'amélioration de ce système en fournissant des règles pour affiner ces informations pour les domaines que vous maîtrisez (exemple : si sous-ordre = Gekkota OU famille = Gekkonidae alors ébauche gecko ; portail herpétologie).

Utilisateurs du Taxobot[modifier | modifier le code]

Il existe une catégorie consacrée à ce sujet : Utilisateur Taxobot.

Ajoutez votre signature ici pour indiquer que vous êtes un utilisateur du Taxobot. Cette liste sera utilisée pour notifier les personnes concernées / intéressées lorsqu'il y a des informations importantes à faire passer.

Vous pouvez aussi ajouter le modèle {{Utilisateur Taxobot}} à votre page de présentation :

Taxobot