Ecosystems
Ce que c'est
Ecosystems est un module Drupal qui présente un ensemble sélectionné d’espèces comme une communauté vivante. Chaque espèce porte des paramètres de réponse écologique, ainsi, lorsqu’un visiteur modifie les réglages du temps, du site d’enquête et de la quantité et de la qualité des milieux boisés, les espèces arrivent, déclinent ou disparaissent.
Il est conçu comme un produit pour tout site Drupal 10 ou 11 et n’a besoin d’aucun des modules de données de MADDev : il peut fonctionner à partir d’une simple charge utile JSON. Son premier client est le Quercus Project, dont l’inventaire de la biodiversité des chênes du sud et du centre de la Suède est le premier jeu de données qu’il affiche.
En un coup d'œil
- Modules
ecosystems, le visualiseur et son moteur de données ;ecosystems_builder, un outil de création facultatif- Cœur de Drupal
- 10 ou 11
- Prérequis
- Options, Taxonomie et Vues du cœur ; MADDev
infopaneletrequest_bus - Données sur les espèces
- Une charge utile JSON, des enregistrements d’espèces stockés sous forme d’entités Drupal, ou un type d’entité d’espèce fourni par un autre module
- Enrichissement facultatif
- Descriptions Wikipédia, photographies et observations GBIF,
species_ext - Rendu
- SVG et HTML, pas de canvas et pas d’étape de build ; thèmes clair, sombre et à contraste élevé via des propriétés personnalisées CSS
- Premier jeu de données
- L’enquête INFRAVIS sur la biodiversité des chênes du Pr Markus Franzén : 824 espèces en 30 ensembles (10 communautés mixtes et 20 guildes) réparties sur 31 sites d’enquête
- Statut
- Fonctionnel ; la version 4 de son modèle de données a été vérifiée en août 2026. Installé sur le site en production du Quercus Project, pas encore ouvert au public.
Ce que voient les visiteurs
Une page d'ensemble présente quatre vues de la même communauté, dessinées en SVG afin que chaque étiquette puisse être sélectionnée, traduite et lue par un lecteur d'écran :
- une carte d'adéquation des sites d'enquête
- une coupe transversale depuis la canopée jusqu'au sol
- un diagramme en arcs d'interaction selon un ordre trophique fixe
- des fiches d'espèces
Le modèle de réponse de l'auteur du jeu de données s'exécute sans modification dans le navigateur pour la simulation interactive. Un portage PHP de sa partie sans état affiche la page avant l'exécution de tout script, de sorte que les moteurs de recherche et les visiteurs sans JavaScript obtiennent de vrais nombres ; un test de parité maintient les deux implémentations synchronisées.
Ce que cela apporte à un site Drupal
Pages
Chaque page publique est une vue, une entité ou un terme de taxonomie. Il n'y a pas de contrôleurs de page personnalisés, donc un constructeur de site peut réorganiser le produit sans développeur.
/ecosystems: chaque ensemble, regroupé en communautés et guildes (Vueecosystem_sets)- une page par ensemble : un terme de taxonomie avec la visionneuse placée via Gérer l'affichage
/ecosystems/species/{id}: une espèce avec son enrichissement/ecosystems/payload.json: la charge utile brute
Composants d'affichage
ecosystem_viewer: la visionneuse interactiveenrichment_<source>: un composant par source d'enrichissement, placé et désactivé indépendamment ; une source désactivée n'est jamais récupérée
Point d'extension
SpeciesRecordSourceInterface, collecté via l'étiquette de service ecosystems.species_record_source. N'importe quel module peut fournir une source d'espèces, et Ecosystems la sélectionne par son nom sans connaître ses champs ni son stockage. Le paramètre ecosystems.settings:source choisit entre un fichier JSON, les entités propres au module et une source fournie.
Commandes Drush
ecosystems:import, ecosystems:enrich, ecosystems:interactions, ecosystems:verify
Accès
La permission Voir la visionneuse d'écosystème n'est accordée à personne lors de l'installation, donc une nouvelle installation reste privée jusqu'à ce que quelqu'un l'ouvre.
Création avec ecosystems_builder
Recherchez un vivier d'espèces, ajoutez des espèces à une communauté ou à une guilde, et acceptez ou refusez les suggestions du Builder sur ce qui doit également y figurer. Chaque modification passe par un seul service, donc désinstaller le Builder laisse chaque écosystème exactement tel qu'il était.
Sources de données et licences
- Wikipedia : une description en langage clair, essayée d'abord en anglais puis en suédois, sous licence CC BY-SA et créditée sur la page
- GBIF : une photographie, acceptée uniquement sous CC0 ou CC BY selon ce que l'API rapporte réellement, car une grande partie du contenu suédois de GBIF est sous CC BY-NC, qu'un client payant ne peut pas publier ; ainsi que les dernières observations suédoises et un nombre d'observations
species_ext, lorsqu'il est installé : sa photographie stockée, son récit et ses interactions typées entre espèces
Rien n'est récupéré pendant le rendu d'une page. Les appels sortants passent par request_bus, et les valeurs récupérées sont conservées dans un stockage clé-valeur, de sorte qu'une reconstruction du cache n'entraîne pas la perte de centaines de recherches. L'attribution et la licence d'un jeu de données voyagent avec sa charge utile, et non avec le code.
Décisions de conception
- Vendez la visionneuse, pas la stack. Aucune dépendance à
species_extoudynamic_mirror_base: sans les modules de données de MADDev, Ecosystems fonctionne à partir d'une charge utile JSON exportée et n'effectue aucun appel sortant. - Les valeurs dérivées n'ont pas de widget de formulaire. Les paramètres du modèle, les éléments de preuve d'enquête et les résultats précalculés sont en lecture seule, de sorte que les modifications manuelles ne peuvent pas compromettre la cohérence du modèle.
- Une source d'enrichissement, un composant. Gérer l'affichage détermine ce qui apparaît et où, et une source désactivée ne coûte rien.
- Privé par défaut. Personne ne voit la visionneuse tant que l'autorisation n'est pas accordée.
Démarrer un projet.
Parlez-nous de vos données sur les espèces et du site sur lequel elles doivent être hébergées.