Files
ki-fwi/docs/audit-sources.md
T
OKIandClaude Opus 5 945a524b44 feat(session-0): cadre juridique, porte de validation et dataset vérifié
Session 0 du plan — aucun code applicatif.

Cadre
- 5 ADR : licences, Phaser 4 hors budget initial, frontière Svelte/Phaser,
  filières A/B des assets, kréyòl langue principale (norme gwadloupéyenne).
- LICENSE (AGPL-3.0-or-later, texte canonique gnu.org), LICENSE-CONTENT
  (CC BY-SA 4.0). Le jeu est une œuvre collective : aucun compositing sur un
  média SA ou NC, contrainte vérifiée par script.
- Audit des 7 sources avec endpoints réellement appelés. TRAMIL vérifié en
  direct : « all rights reserved » et page de mentions légales en 404.
  iNaturalist mesuré à 93 % de CC BY-NC sur un échantillon de 305 photos.

Outillage (tools/data/, hors bundle, zéro appel réseau au runtime)
- verify:taxa, ingest:commons, build:dataset, validate:data, test:porte,
  build:credits, check:audio.
- validate.mjs est la porte exigée par le brief §2 : le build échoue si une
  épreuve s'appuie sur un média non validé, non photographique ou de filière B,
  sur une attribution sans auteur, sur un compositing SA/NC, ou sur une entrée
  publiée sans relecture kréyòl. test:porte prouve les 9 refus + 1 témoin.

Données
- 13 entrées (8 fruits + 5 plantes du module Pa touché) vérifiées contre
  Wikidata ET GBIF : 13/13 ACCEPTED, 0 divergence avec la graine.
- 130 candidats Commons sous licence libre, 39 pré-inscrits, 0 validé —
  aucun agent ne peut valider un média.

Écarts signalés, non corrigés en silence
- Le champ danger de la graine a deux formes (note vs resume) : normalisé.
- 3 identifiants divergent du nom kréyòl au-delà des accents : non tranchés.
- comestible:false sur akée et pomme-cajou : sous-estimation prudente assumée.
- Le mancenillier n'a aucune photographie moderne dans ses 3 premiers
  candidats — l'entrée la plus critique est la moins bien servie.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-26 23:47:27 -04:00

11 KiB
Raw Blame History

Audit des sources — KI FWI SA YÉ ?

Session 0. Chaque fiche répond à quatre questions : ce qu'on y prend, sous quelle licence, avec quelle contrainte, comment on l'interroge. Les endpoints listés ont été appelés réellement pendant l'audit, pas recopiés d'une documentation.

Date de l'audit : 2026-07-27.


Tableau de synthèse

Source Ce qu'on y prend Régime Verdict
Wikidata Q-id, taxonomie CC0 Utilisée, sans réserve
GBIF nom accepté, clé d'usage, famille données ouvertes Utilisée, sans réserve
Wikimedia Commons photographies, planches CC0 / PD / CC BY / CC BY-SA Utilisée, attribution obligatoire, pas de compositing
iNaturalist photographies de complément ~93 % CC BY-NC (mesuré) ⚠️ Autorisée mais engage le non-commercial (ADR 0001)
TRAMIL vérification factuelle citée tous droits réservés Aucun fichier. Demande écrite requise
CIRAD / Agritrop vérification, publications mixte, majoritairement © Demande écrite avant tout usage
INRAE vérification mixte Demande écrite avant tout usage
Photos du porteur tout choisi par le porteur La meilleure source disponible

1. Wikidata — la colonne vertébrale des identifiants

Ce qu'on y prend. L'identifiant Q de chaque taxon, et la famille botanique remontée par la chaîne de taxons parents.

Licence. CC0 pour les données. Aucune contrainte d'attribution, mais le projet cite la source par honnêteté et pour la traçabilité.

Contrainte. Wikidata est un wiki : une valeur peut être fausse ou obsolète. C'est pourquoi le projet croise systématiquement avec GBIF et exige les deux dans le schéma (verifie_contre doit contenir wikidata et gbif — un seul ne suffit pas).

Comment on l'interroge. Une seule requête SPARQL pour les 13 taxons :

SELECT ?taxon ?name ?fam WHERE {
  VALUES ?name { "Annona muricata"  }
  ?taxon wdt:P225 ?name .
  OPTIONAL { ?taxon wdt:P171+ ?f . ?f wdt:P105 wd:Q35409 ; wdt:P225 ?fam . }
}

P225 = nom du taxon · P171 = taxon supérieur · P105 = rang · Q35409 = famille. Endpoint https://query.wikidata.org/sparql, en-tête User-Agent identifiant le projet (exigé par l'infrastructure Wikimedia). Implémenté dans tools/data/verify-taxa.mjs.

Résultat de l'audit. 13/13 taxons trouvés par correspondance exacte sur P225.


2. GBIF — le nom scientifique accepté

Ce qu'on y prend. La clé d'usage (usageKey), le nom scientifique accepté, le statut (ACCEPTED / SYNONYM) et la famille.

Licence. Données ouvertes. GBIF demande la citation du jeu de données ; le projet cite GBIF globalement dans CREDITS.md et lie chaque entrée à sa fiche.

Contrainte. C'est ici que se détectent les synonymes, piège central d'un dataset botanique. Le laurier-jaune est le cas d'école : il circule largement sous Thevetia peruviana, alors que le nom accepté est Cascabela thevetia. Un dataset qui fige un synonyme se désynchronise silencieusement des référentiels.

Comment on l'interroge.

GET https://api.gbif.org/v1/species/match?name=<nom>&strict=false
GET https://api.gbif.org/v1/species/<usageKey>     # si status ≠ ACCEPTED

Résultat de l'audit. 13/13 en matchType: EXACT et status: ACCEPTED. Aucune divergence avec les familles annoncées dans fruits.seed.json. La graine était bonne sur ce point — c'est vérifié, plus supposé. Rapport : docs/verification-taxons.md.


3. Wikimedia Commons — le fonds photographique principal

Ce qu'on y prend. Des photographies pour la filière A (vérité), et des planches botaniques anciennes pour les fiches encyclopédiques.

Licence. Commons n'héberge que du libre, mais « libre » recouvre plusieurs régimes très différents. Sur les 130 candidats remontés pendant l'audit : domaine public, CC0, CC BY 2.0 à 4.0, CC BY-SA 2.0 à 4.0.

Contraintes, dans l'ordre de gravité.

  1. Le partage à l'identique contamine les dérivés. Une photo CC BY-SA compositée dans un sprite rend le sprite CC BY-SA. D'où l'interdiction absolue de compositing posée par l'ADR 0001 et vérifiée par npm run validate:data.
  2. L'attribution est nominative. Il faut l'auteur, la licence, l'URL du fichier et l'URL de la page de description. Le script les récupère et refuse tout fichier à attribution dont l'auteur est absent des métadonnées.
  3. Le titre ne garantit rien. Une recherche sur Melicoccus bijugatus remonte en deuxième position une photographie de singe capucin mangeant le fruit. Le moteur de recherche n'est pas un botaniste. Rien ne sort de l'ingestion autrement qu'en valide: false.
  4. Toutes les licences ne sont pas acceptables. L'audit a écarté automatiquement 4 fichiers : deux sous GFDL 1.2 ou « Attribution » simple (régimes non retenus), deux sous licence à attribution dont l'auteur était introuvable dans les métadonnées.

Comment on l'interroge.

GET https://commons.wikimedia.org/w/api.php
    ?action=query&generator=search&gsrnamespace=6
    &gsrsearch="<nom scientifique>" filetype:bitmap
    &prop=imageinfo&iiprop=url|size|mime|extmetadata
    &iiextmetadatafilter=LicenseShortName|LicenseUrl|Artist|Credit|ImageDescription|DateTimeOriginal

Implémenté dans tools/data/ingest-commons.mjs. Aucun fichier n'est téléchargé en session 0 : on ne collecte que des métadonnées et des URLs.

Résultat de l'audit. 130 candidats sous licence libre sur 13 taxons, soit au moins 10 par taxon. Aucun taxon sous le seuil de deux candidats.


4. iNaturalist — complément, au prix d'un engagement

Ce qu'on y prend. Des photographies pour les espèces mal couvertes par Commons, et des observations géolocalisées aux Antilles (utile pour la saisonnalité par île, mode Sézon).

Licence — mesurée, pas supposée. Échantillon relevé pendant l'audit sur Chrysobalanus icaco (zikak), 305 photographies de qualité recherche :

licence photos part
CC BY-NC 280 92 %
CC0 12 4 %
CC BY 8 3 %
CC BY-NC-SA 5 2 %

94 % du fonds est donc sous clause non commerciale. Se limiter au non-NC réduirait iNaturalist à un appoint marginal.

Contrainte. Retenir une seule photo NC engage le projet à ne jamais être distribué commercialement (ADR 0001, décision du porteur). Le champ usage_non_commercial marque ces médias dans les données, et CREDITS.md les isole dans une section dédiée pour rendre un retrait ultérieur possible.

Comment on l'interroge.

GET https://api.inaturalist.org/v1/observations
    ?taxon_name=<nom>&quality_grade=research
    &photo_license=cc0,cc-by,cc-by-sa,cc-by-nc,cc-by-nc-sa
    &place_id=<Guadeloupe|Martinique>   # pour la saisonnalité locale

État à ce jour. Aucune photo iNaturalist n'est encore embarquée. L'engagement non commercial n'est donc pas encore consommé.


5. TRAMIL — ressource majeure, inutilisable sans autorisation

Ce qu'on y prend. Rien, en fichiers. TRAMIL sert de source de vérification factuelle citée en référence — usages traditionnels, toxicité, parties de plante concernées — dans le champ sources_factuelles de chaque entrée.

Licence — vérifiée directement pendant l'audit.

  • Le pied de page de tramil.net affiche : « © Copyright 2017 TRAMIL all rights reserved. »
  • Le lien « Legal notice » du site renvoie une erreur 404 (/content/mentions-legales, vérifié le 2026-07-27).

Autrement dit : non seulement aucune licence n'est accordée, mais les conditions ne sont pas même consultables. Par défaut : tous droits réservés.

Contrainte. La TRAMILothèque (photographies, planches d'herbier, coupes microscopiques, scans) est exactement ce dont ce projet aurait besoin, et est inutilisable sans autorisation écrite. Aucun fichier TRAMIL ne peut entrer dans le dépôt tant que cette autorisation n'existe pas.

Ce qu'il faut faire — et qui ne se délègue pas. TRAMIL est hébergé par le SCD de l'Université des Antilles à Schœlcher. Le porteur est à quinze minutes. Un partenariat TRAMIL × OKI sur un jeu scolaire martiniquais a toutes les chances d'aboutir, et transformerait le projet : accès à des images d'herbier vouchées, et une caution scientifique sur le module « Pa touché ».

Lettre-type prête : docs/courriers/tramil.md.


6. CIRAD / Agritrop et INRAE

Ce qu'on y prend. De la vérification factuelle : saisonnalité réelle sous climat antillais, variétés cultivées localement, données agronomiques. Agritrop, le dépôt ouvert du CIRAD, contient de l'open access exploitable en citation.

Licence. Régimes mixtes, majoritairement propriétaires, avec des cas d'usage pédagogique négociables. À demander, jamais à présumer — y compris sur un dépôt « ouvert », où l'ouverture porte souvent sur la lecture, pas sur la réutilisation.

Comment on l'interroge. Consultation manuelle d'Agritrop (agritrop.cirad.fr), avec enregistrement de la référence dans sources_factuelles. Aucune ingestion automatisée : le volume ne le justifie pas et le régime de licence l'interdirait.

Lettre-type prête : docs/courriers/cirad.md.


7. Photographies du porteur — la meilleure source

Une photographie prise au marché de Fort-de-France vaut mieux que n'importe quelle génération, et mieux que la plupart des photos de Commons : elle montre la variété locale, au bon stade de maturité, dans le contexte où l'enfant la rencontrera.

Licence. Choisie par le porteur. OKI-CC-BY-SA-4.0 dans le schéma, alignée sur LICENSE-CONTENT. Aucune contrainte externe, aucun risque, et aucun compositing interdit puisque le projet en détient les droits.

Ce qui manquera nécessairement. Les vues d'indice — écorce, feuille isolée, coupe nette — sont rares sur Commons pour les espèces antillaises. Ce sont précisément celles dont le mode Kaché a besoin. Une après-midi de terrain avec un appareil comblera plus de trous que n'importe quelle recherche automatisée.


Ce que cet audit ne couvre pas

  • La validité botanique de chaque photographie : aucune machine ne peut la trancher.
  • Les droits voisins des locuteurs pour les enregistrements audio : autorisation écrite à obtenir avant embarquement, crédit nominatif dans CREDITS.md.
  • La licence des poids du modèle utilisé par rembg dans le pipeline de filière B (session 3) : les poids ne suivent pas toujours la licence du paquet, à vérifier avant toute utilisation.