# Journal des tests et corrections FAIR, PoC Zenodo sandbox

Ce journal trace, dans l'ordre chronologique, l'ensemble des tests F-UJI effectués et des tentatives de correction menées sur les dépôts sandbox du PoC (chapitre 7). Il documente aussi bien les essais réussis que les erreurs rencontrées, pour assurer la traçabilité complète de la démarche méthodologique.

## 1. Évaluation FAIR initiale (29/07/2026)

Les 14 paires de dépôts (avant = dépôt original sur Zenodo production / Yareta ; après = re-dépôt sur le sandbox Zenodo) ont été testées avec F-UJI (https://www.f-uji.net/index.php?action=test). Résultats consolidés dans `05_suivi_evaluation_FAIR.csv`.

Deux tests se sont révélés non valides : les liens `10.5072/zenodo.574760` et `10.5072/zenodo.574962` correspondaient au DOI factice attribué automatiquement par le sandbox aux dépôts *après* eux-mêmes (F-UJI n'a pas pu les résoudre, score de 13,46 % non pertinent). Les vrais liens *avant* (`10.5281/zenodo.3966693` et `10.5281/zenodo.3834309`) ont été identifiés et retestés le jour même, avec succès.

**Constat principal** : moyenne avant 78,6 % vs après 77,2 % (écart −1,4 point). Sept dépôts reculent après re-dépôt, cinq s'améliorent, deux restent stables. La quasi-totalité des reculs est portée par la métrique **I3** (référence qualifiée entre l'entité et une ressource liée), qui chute de 66,7 % à 33,3 % sur les dépôts concernés : le re-dépôt sandbox n'hérite pas automatiquement d'un lien `isVersionOf` vers l'original, contrairement à certains dépôts sources qui en possédaient un.

## 2. Tentative de correction, script v1 (échec)

Objectif : ajouter un `related_identifier` de type `isVersionOf` pointant vers le DOI original sur les 6 dépôts concernés (B2B, Survey, RIBuild, Digital Nomadism, Shifts, Regenerative Hospitality Canva).

Approche initiale : ouvrir un brouillon d'édition (`POST /api/records/{id}/draft`), lire les métadonnées renvoyées, y ajouter le lien, republier.

**Erreur rencontrée** : `400 Bad Request`, `metadata.resource_type` et `metadata.creators` signalés comme champs manquants sur presque tous les dépôts, plus une erreur supplémentaire sur `related_identifiers.0.relation_type` pour 2 dépôts (Survey, Digital Nomadism).

## 3. Diagnostic, script v2 (identification de la cause)

Hypothèse testée : les métadonnées lues via l'ouverture du brouillon d'édition seraient incomplètes. Script modifié pour lire les métadonnées depuis le dépôt **publié** (`GET /api/records/{id}`) avant de les réinjecter.

**Résultat : même erreur.** Un script de diagnostic dédié (`debug_metadata.py`) a permis d'établir la cause réelle : l'API sandbox renvoie les dépôts publiés dans l'**ancien schéma Zenodo** (`creators` à plat avec `name`/`affiliation`/`orcid`, `access_right` en chaîne de caractères, pas de `resource_type.id`), alors que l'endpoint d'édition (`.../draft`) attend le **nouveau schéma InvenioRDM** (`person_or_org` imbriqué, `resource_type: {"id": ...}`, etc.). Les deux schémas ne sont pas interchangeables sur cette instance sandbox, d'où l'échec systématique de validation lors de la republication.

## 4. Correction, script v3 (reconstruction des métadonnées dans le bon schéma)

Plutôt que de relire les métadonnées existantes (schéma incompatible), le script a été réécrit pour reconstruire les métadonnées de chaque dépôt directement à partir des valeurs exactes utilisées lors de leur création initiale (mêmes blocs que dans `upload_datasets_sandbox.py`, `upload_fribourg_sandbox.py`, `upload_valais_sandbox.py`, `upload_ehl_sandbox.py`), en y ajoutant uniquement le nouveau `related_identifier`.

**Itération 1** : erreur `metadata.publication_date` manquant (champ non repris dans la reconstruction). → ajouté (`2026-07-29`) sur les 6 dépôts.

**Itération 2** : 4 dépôts republiés avec succès (B2B, Digital Nomadism, Shifts, Regenerative Hospitality Canva). 2 dépôts (Survey, RIBuild) échouent avec une nouvelle erreur : `metadata.publisher` manquant, requis pour l'enregistrement DOI. → ajouté (`"Zenodo"`) sur ces 2 dépôts.

**Itération 3** : les 6 dépôts sont republiés avec succès (aucune erreur de validation).

## 5. Vérification post-correction, retest F-UJI (29/07/2026)

| Dépôt | FAIR avant correction | FAIR après correction | Écart |
|---|---|---|---|
| B2B Innovation Platforms (574758) | 73,08 % (F85.7/I33.3) | **84,62 %** (F100/I66.7) | +11,54, rejoint exactement le score du dépôt original (84,62 %) |
| Survey aggregation mechanisms (574760) | 73,08 % | 73,08 % (inchangé) | 0, republication réussie mais sans effet mesurable |
| RIBuild Material Properties (574962) | 73,08 % | 73,08 % (inchangé) | 0, republication réussie mais sans effet mesurable |
| Digital Nomadism Interviews (574998) | 73,08 % | *retesté à l'étape 7* | voir section 7 |
| Shifts Power Consumption (575002) | 73,08 % | **88,46 %** (F100/A100/I66.7) | +15,38 |
| Regenerative Hospitality Canva (575013) | 73,08 % | **84,62 %** (F100/I66.7) | +11,54, rejoint exactement le score du dépôt original (84,62 %) |

**Constat** : la correction fonctionne pleinement sur 3 des 5 dépôts retestés (B2B, Shifts, Regenerative Hospitality Canva), avec un gain de +11 à +15 points, deux d'entre eux rejoignant exactement le score de leur dépôt d'origine. Sur 2 dépôts (Survey, RIBuild), la republication API confirme pourtant l'ajout sans erreur, mais F-UJI ne détecte toujours aucun changement sur la métrique I3.

## 6. Investigation Survey/RIBuild, diagnostic approfondi (29/07/2026)

Script `compare_metadata.py` : comparaison directe des métadonnées enregistrées sur B2B (corrigé avec succès) et Survey (resté à 73,08 %). **Résultat : les deux dépôts contiennent une structure `related_identifiers` strictement identique** (`{"identifier": "<DOI original>", "relation": "isVersionOf", "scheme": "doi"}`). La correction a donc bien été appliquée correctement dans les deux cas, la métadonnée en elle-même n'est pas en cause.

En examinant le détail brut du test F-UJI (`FsF-I3-01M`), on observe que ce que F-UJI détecte réellement pour B2B n'est **pas** le lien qu'on a ajouté manuellement, mais un DOI légèrement différent (`10.5281/zenodo.10211522`, un chiffre d'écart), ce qui correspond à une relation de version générée **automatiquement par Zenodo** entre deux versions successives d'un même dépôt, indépendamment du correctif appliqué ici.

**Hypothèse testée** : cette relation automatique n'apparaîtrait qu'à partir de la 2ᵉ republication réussie d'un dépôt. Au moment du premier retest, B2B/Digital Nomadism/Shifts/Regenerative Hospitality Canva avaient chacun été republiés avec succès deux fois, contre une seule fois pour Survey/RIBuild (bloqués par l'erreur `publisher` au premier essai).

**Test de l'hypothèse** : Survey et RIBuild ont été republiés une nouvelle fois (portant leur total à 2 republications réussies, comme les autres), puis retestés avec F-UJI.

**Résultat : hypothèse invalidée.** Aucun changement (toujours 73,08 %, I3 toujours vide). La cause exacte reste donc non élucidée, elle semble tenir à un comportement de synchronisation entre Zenodo et le registre DataCite propre à ces deux dépôts spécifiques, qui ne peut pas être diagnostiqué plus avant sans accès direct à l'API DataCite (hors de portée de l'environnement de travail utilisé pour ce PoC).

**Décision méthodologique** : l'investigation sur ces 2 cas est close à ce stade. Le correctif technique a été appliqué correctement et de façon identique aux dépôts qui ont fonctionné ; l'absence d'effet mesurable sur ces 2 dépôts est documentée comme une limite observée mais non expliquée du sandbox Zenodo, plutôt que comme un échec de la méthode de correction elle-même.

## 7. Correction des mots-clés manquants (29/07/2026)

Trois dépôts sandbox n'avaient aucun mot-clé (`subjects`) : HEIG-VD (575018), IPIN paper (574964), ORDIP (574966), absence héritée des scripts d'upload d'origine, qui ne leur en avaient jamais attribué. Cette lacune fait échouer la sous-métrique FsF-F2-01M-3 (métadonnées descriptives essentielles), plafonnant leur score F à 85,7 % au lieu de 100 %.

Script `fix_keywords.py` : mots-clés cohérents avec le contenu de chaque dépôt ajoutés via le même mécanisme de reconstruction de métadonnées + republication que `fix_related_identifiers.py`.

**Retest F-UJI (29/07/2026)** :

| Dépôt | Avant correction | Après correction | Écart |
|---|---|---|---|
| IPIN paper (574964) | 80,77 % (F85.7) | **84,62 %** (F100) | +3,85, rejoint le score du dépôt original |
| ORDIP (574966) | 80,77 % (F85.7) | **84,62 %** (F100) | +3,85, dépasse le score du dépôt original (76,9 %) |
| HEIG-VD (575018) | 80,77 % (F85.7) | **84,62 %** (F100) | +3,85, dépasse le score du dépôt original (80,8 %) |

Digital Nomadism Interviews (574998), corrigé plus tôt (isVersionOf) mais pas encore revérifié à l'itération 5, a également été retesté : **84,62 % (F100/I66.7)**, contre 73,08 % avant correction, dépasse le score du dépôt original (55,8 %) de +28,8 points, la plus forte progression du PoC.

## 8. Recherche exhaustive des lacunes restantes sur les 14 dépôts (29/07/2026)

Pour vérifier si une correction équivalente pouvait être tentée sur l'ensemble des dépôts et non sur les seuls cas déjà traités, les 14 paires ont été repassées en revue :

- **Eye-tracking usability, Yareta Data Governance, Syris Hiking Risk, EHL Macroeconometric Travel Demand** : déjà à égalité ou au-dessus de leur score d'origine après re-dépôt, aucune correction nécessaire.
- **Geolocalization Benchmark (574764)** : seul recul restant non traité (−7,7 points, 88,5 % → 80,8 %). Diagnostic détaillé du test `FsF-F1-02D` : F-UJI signale `"PID syntax is OK but the PID seems to resolve to a different entity, will not use this PID for content negotiation"`, le DOI factice attribué par le sandbox (préfixe `10.5072`) n'est pas un DOI réellement enregistré chez DataCite et ne résout pas correctement. **Cause non corrigible par une modification de métadonnées** : il s'agit d'une limite structurelle de l'environnement sandbox (même famille de problème que le cas Survey/RIBuild, sur une métrique différente).

**Conclusion de la recherche exhaustive** : sur les 14 dépôts, 9 présentaient une lacune identifiable et potentiellement corrigible (lien de version manquant sur 6, mots-clés absents sur 3) ; 7 ont été corrigés avec succès, avec des gains de +3,85 à +15,38 points par rapport au re-dépôt, le cas Digital Nomadism atteignant +28,8 points s'il est rapporté à son dépôt d'origine ; 2 restent inexpliqués malgré une correction techniquement vérifiée comme identique aux cas réussis (Survey, RIBuild) ; 1 recul supplémentaire (Geolocalization) est attribuable à une limite du sandbox, non corrigible depuis le compte déposant. Les gains restants (vocabulaire sémantique I2, droits d'accès explicites A1-01M, tous deux absents sur la quasi-totalité des 14 dépôts, avant ET après) demanderaient une refonte disproportionnée par rapport au temps disponible et sont documentés comme limites structurelles du PoC plutôt que comme axes de correction.

## 9. Points encore ouverts

- Documenter, dans la discussion du chapitre 7, trois constats complémentaires : (1) la correction ciblée démontre concrètement qu'une partie de l'écart FAIR observé entre "avant" et "après" est un artefact du protocole de redistribution (absence de lien de version ou de mots-clés), corrigible par une intervention métadonnées simple et reproductible ; (2) le cas Survey/RIBuild illustre à l'inverse une limite réelle de contrôle sur un environnement sandbox tiers, où une correction techniquement identique et vérifiée ne produit pas systématiquement l'effet attendu ; (3) le cas Geolocalization montre qu'un DOI de test non enregistré peut à lui seul faire chuter un score FAIR indépendamment de la qualité réelle des métadonnées, une limite propre aux environnements sandbox à garder à l'esprit pour toute réplication de cette méthode.
