Files
ki-fwi/docs/sessions/00-cadre-et-donnees.md
T
OKIandClaude Opus 5 9e3c176411 feat(participatif): publier les manques et outiller la contribution
Le manque devient une information de première classe : mesuré, daté,
affiché, et accompagné de la marche à suivre pour le combler (ADR 0006).

Mesure
- rapport:manques : couverture des 5 vues pédagogiques dans les fonds
  publics, présence du kréyòl sur Wikidata, observations GBIF par île,
  manques internes du dataset → docs/manques.md.
- Le kréyòl est absent des communs : Wikidata enregistre 124 noms
  vernaculaires pour ces 13 espèces (zh, en, pt, sl) et aucun en kréyòl ;
  0 étiquette gcf sur 13 items.
- L'écorce est la vue manquante : 3 trous sur 65, tous des écorces —
  mansiniyé 0 fichier, aki 0, kénèt 1.
- Pl@ntNet publie en CC BY-SA là où iNaturalist est à ~93 % CC BY-NC :
  meilleur canal de contribution à effort égal.

Correction d'une mesure fausse avant publication
- Le premier rapport annonçait 28 vues manquantes sur 65. Le groupement OR
  de la recherche Commons ne se comporte pas comme attendu : « section »
  seul remonte 17 fichiers là où « (section OR sliced OR cut OR coupe) » en
  remonte 0. Un mot, une requête, avec gestion du débit — le chiffre réel
  est 3 sur 65. Publier les 28 aurait envoyé des bénévoles photographier
  ce qui existait déjà.

Documents
- docs/contribuer.md : six gestes, du nom kréyòl sur Wikidata (5 min) à
  l'enregistrement d'une voix, avec le tableau de choix de licence et la
  consigne de sécurité pour photographier le mancenillier.
- docs/adr/0006-projet-participatif.md : aucun dépôt interne, aucune
  requête tierce au runtime, la porte de validation reste inchangée.
- docs/courriers/appel-liberation-tramil.md : brouillon d'appel public,
  à n'envisager qu'après la demande privée. Publication au porteur.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 10:12:35 -04:00

11 KiB

Session 0 — Cadre et données

Date : 2026-07-27 · Type de mission : B (création ex nihilo) · Code applicatif écrit : aucun.


Ce qui a été fait

Gouvernance. git init et commit de protection des documents de cadrage avant toute autre action (playbook §5b.1 — atlas-fediverse avait été perdu faute de ce réflexe). Le pack de référence doc2sveltekit-transition/ reste local et non versionné, conformément au playbook §0. Branche main.

Cadre. Cinq ADR, LICENSE (AGPL-3.0-or-later, texte canonique récupéré depuis gnu.org), LICENSE-CONTENT, audit des sept sources, SOURCES.md, deux lettres-types.

Outillage. Six scripts dans tools/data/, tous hors bundle :

Commande Rôle
npm run verify:taxa vérifie 13 taxons contre Wikidata (SPARQL) et GBIF
npm run ingest:commons remonte les photos candidates sous licence libre
npm run build:dataset compose les entrées ; refuse d'écraser sans --force
npm run validate:data la porte — schéma + règles métier, sortie non nulle = build refusé
npm run test:porte prouve que la porte refuse les 9 cas interdits
npm run build:credits régénère CREDITS.md depuis les données
npm run check:audio liste les enregistrements kréyòl manquants
npm run rapport:manques mesure les manques, dans le projet et dans les fonds publics

Données. 13 entrées dans src/lib/data/fruits/, 39 médias candidats, 0 validé.


Ce que la vérification a appris

La graine était bonne sur la taxonomie

13 taxons sur 13 trouvés dans Wikidata par correspondance exacte sur P225, et 13 sur 13 acceptés par GBIF en matchType: EXACT, status: ACCEPTED. Zéro divergence sur les familles annoncées dans fruits.seed.json.

Y compris Cascabela thevetia pour le laurier-jaune, alors que le synonyme Thevetia peruviana circule largement. Le contrôle du statut GBIF était écrit pour attraper exactement ce cas ; il n'a rien trouvé à corriger. C'est le bon résultat, et il est maintenant vérifié plutôt que supposédocs/verification-taxons.md.

Aucune machine ne peut valider une photo

La recherche Commons sur Melicoccus bijugatus (kénèt) remonte en deuxième position une photographie de singe capucin mangeant le fruit. Le moteur de recherche classe par pertinence textuelle, pas par contenu botanique.

Cette observation a produit une décision de conception : le schéma distingue désormais photo, planche_botanique et image_generee. Les fonds Commons contiennent beaucoup de planches anciennes du domaine public — Blanco, Merian — exactes mais stylisées. Une planche documente une fiche ; elle ne peut pas porter une épreuve de reconnaissance du réel.

Sur 39 médias candidats retenus : 25 photographies, 14 planches botaniques.

Le mancenillier n'a aucune photographie dans le haut de sa pile

Trois entrées comptent moins de deux photographies parmi leurs trois premiers candidats :

entrée photos sur 3 candidats ce que Commons remonte en tête
mansiniye (mancenillier) 0 trois planches gravées — Jacquin 1780, Green 1816-20, Hocquart 1821
pom-site (pòm-sitè) 0 planches, dont deux Blanco
medisinye (medsinyé) 1

C'est l'entrée la plus critique du module « Pa touché » qui est la moins bien servie. Un enfant doit reconnaître un mancenillier sur une plage, pas sur une gravure de 1780. Il faudra descendre plus bas dans les dix candidats de docs/planche-relecture-medias.md, ou photographier l'arbre sur le littoral — il est signalé par une bande de peinture rouge, ce qui rend la séance de terrain praticable et sans risque de confusion.

Le pré-tri qui produit cette classification a lui-même été corrigé en cours de session : la planche de Jacquin ressortait d'abord en « photo » parce que ni son titre ni son auteur ne disent son siècle. La date de prise de vue est désormais examinée, et toute date antérieure à 1900 classe le média en planche. Ce pré-tri reste un tri, pas un verdict : c'est le relecteur humain qui corrige le champ.

TRAMIL : la situation est pire que ce que le brief supposait

Vérification directe le 2026-07-27 : le pied de page de tramil.net affiche « © Copyright 2017 TRAMIL all rights reserved », et le lien « Legal notice » du site renvoie une 404. Les conditions d'usage ne sont donc même pas consultables. La demande écrite n'est pas une précaution, c'est la seule voie.

iNaturalist : 93 % de non commercial, mesuré

Échantillon de 305 photographies de qualité recherche sur Chrysobalanus icaco : 280 en CC BY-NC, 12 en CC0, 8 en CC BY, 5 en CC BY-NC-SA. Se limiter au non-NC réduirait iNaturalist à un appoint marginal — ce qui donne son poids réel à la décision du porteur.


Ajout en cours de session — la dimension participative

Décision du porteur : les manques ne se masquent pas, ils se publient. ADR 0006, guide contribuer.md, inventaire mesuré manques.md, et appel public à la libération des données TRAMIL en brouillon.

Ce que la mesure a révélé

Le kréyòl est absent des communs numériques. Wikidata enregistre 124 noms vernaculaires pour les 13 espèces — 33 pour le fruit à pain, 22 pour la pomme d'eau, 12 pour la goyave, en chinois, anglais, portugais, slovène. Zéro en kréyòl, et aucune étiquette de langue gcf sur aucun des 13 items. C'est la contribution la moins coûteuse du projet — cinq minutes par entrée, aucun matériel — et l'une des plus durables. Elle suppose en revanche une orthographe relue : à faire après la relecture kréyòl, jamais avant.

L'écorce est la vue qui manque. Après correction de la mesure, il reste 3 trous sur 65 dans les fonds libres, et les trois sont des écorces : mansiniyé (0 fichier), aki (0), kénèt (1). Trois autres sont tout juste au seuil. C'est cohérent avec la pratique — on photographie un fruit, rarement un tronc — et c'est fâcheux, parce que l'écorce est l'indice le plus fiable sur le terrain : un tronc est visible toute l'année, un fruit quelques mois.

Pl@ntNet est un meilleur canal de contribution que iNaturalist. Mesuré sur le zikak en Guadeloupe : les images iNaturalist sont à ~93 % en CC BY-NC, celles de Pl@ntNet apparaissent en CC BY-SA (jeu de données GBIF sous CC BY 4.0). À effort égal pour le contributeur, la seconde voie produit des images pleinement réutilisables. D'où le conseil mis en avant dans le guide : régler sa licence par défaut sur iNaturalist une fois pour toutes.

Une mesure fausse, attrapée avant publication

Le premier rapport annonçait 28 vues manquantes sur 65. C'était faux. Le groupement OR de la recherche Commons ne se comporte pas comme attendu : sur Annona muricata, section seul remonte 17 fichiers là où (section OR sliced OR cut OR coupe) en remonte 0. Le signal d'alerte était que coupe ressortait à zéro pour les treize espèces — Commons contient évidemment des photos de corossol coupé.

Après correction — un mot, une requête, avec gestion du débit des API —, le chiffre réel est 3 sur 65.

Publier les 28 aurait envoyé des bénévoles photographier ce qui existait déjà. La leçon est consignée dans l'ADR 0006 : une mesure qui produit un résultat extrême se suspecte avant de se publier, et une réponse d'API illisible ne se compte jamais comme un zéro.

Écarts constatés et signalés, non corrigés en silence

Le brief §9 impose de signaler les écarts plutôt que de les corriger discrètement.

  1. Le champ danger de la graine a deux formes. Les niveaux « vigilance » (kénèt, pòm-kannèl) portent leur texte dans note, les niveaux « élevé » et « critique » dans resume. Le schéma impose un champ unique : la composition normalise vers resume, sans réécrire un mot. C'est la porte de validation qui a levé l'incohérence, pas une relecture.

  2. Trois identifiants divergent du nom kréyòl au-delà des accents : ake/aki, medisinye/medsinyé, lorye-jonn/lorié-jòn. Non tranchés — docs/kreyol-a-relire.md.

  3. Deux planches Blanco produisaient le même identifiant de média une fois tronquées à 60 caractères. Désambiguïsées par suffixe plutôt que perdues.

  4. comestible: false sur l'akée et la pomme-cajou est une sous-estimation assumée : les deux se mangent sous conditions strictes. Le choix prudent était le seul défendable sans arbitrage humain — docs/a-arbitrer.md §1.

  5. Le brief demandait 8 fruits ; 13 entrées ont été produites (les 5 plantes du module « Pa touché » incluses, sur décision du porteur). La vérification coûtait le même effort et le contenu de sécurité demande le plus long délai de relecture.


La porte de validation

Le brief §2 exigeait que le contrôle soit « un script de build, pas une consigne ». tools/data/validate.mjs refuse :

  • une épreuve ou un indice s'appuyant sur un média non validé, non photographique, de filière B, ou dont la vue n'est pas renseignée ;
  • un média à attribution dont l'auteur est absent ;
  • un compositing sur un média en partage à l'identique ou sous clause non commerciale ;
  • une validation sans nom de validateur ;
  • une épreuve portée par une plante dangereuse ;
  • une entrée publiée avec moins de deux photos validées, ou dont l'orthographe kréyòl n'est pas relue par un humain nommé.

npm run test:porte fabrique ces neuf cas et vérifie que le refus se produit, plus un cas témoin conforme qui doit passer. 10/10. Une règle de sécurité qu'on n'a jamais vue refuser quelque chose est une intention, pas une règle.


Ce qui bloque la suite

Blocage Bloque Qui peut le lever
0 média validé Rekonèt sur données réelles (session 2) le porteur, docs/planche-relecture-medias.md
Aucun relecteur kréyòl désigné toute publication le porteur
13 enregistrements manquants le moment de révélation une après-midi d'enregistrement
Saisonnalité non sourcée publication du mode Sézon CIRAD, lettre prête
6 points non arbitrés publication le porteur, docs/a-arbitrer.md

Le premier travail non délégable est la planche de relecture des médias. La session 1 ne l'exige pas — les fiches affichent texte, taxonomie et crédits sans photo. La session 2, si.


Vérifications de fin de session

npm run verify:taxa      → 13 taxons, 0 divergence
npm run ingest:commons   → 130 candidats, 0 taxon sous le seuil de 2
npm run validate:data    → 13 entrées, 39 médias, 0 validé, 0 erreur
npm run test:porte       → 10/10
npm run build:credits    → 13 entrées, 39 médias, 0 sous clause NC
npm run check:audio      → 13 enregistrements à réaliser
npm run rapport:manques  → 3 vues manquantes sur 65, 0 nom kréyòl sur Wikidata

Dépendances installées : ajv et ajv-formats uniquement, toutes deux importées et utilisées (playbook §2.2 — aucune dépendance installée sans être utilisée).

Prochaine session : 1 — Socle. Ne pas la démarrer sans avoir relu ce document et docs/plan.md.