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

236 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 :
```sparql
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.