# Les données observées : volume, complétude, fraîcheur

import { Mermaid } from "../../../src/components/Mermaid";

> **En bref :**
> Le graphe porte **18,5 millions de nœuds**, alimentés par **OpenAlex, scanR, HAL et IdRef**, et identifie Paris-Saclay par **235 unités à code RNSR**. Le modèle observé est celui que décrit le code.
> Mais **184 unités sur 235 n'ont aucun chercheur rattaché** : une vitrine construite sur ce seul graphe afficherait trois fiches de laboratoire vides sur quatre. L'enrichissement est **arrêté depuis le 7 septembre 2026**, et **3 353 documents** marqués « à supprimer » sont toujours là.
> Le chemin critique passe **de la technique à la curation du référentiel**. Tous les constats : **Observé sur instance (dev)**.

Comptages issus des compteurs internes de Neo4j et de requêtes bornées ; le cadre de l'observation est dans [Ce que montre l'instance](./00-ce-que-linstance-demontre).

## Le graphe en trois étages

<Mermaid
  title="Le graphe en trois étages"
  caption="Volumes observés le 29 octobre 2026. Chaque entité consolidée garde le lien vers les notices dont elle provient."
  chart={`flowchart TB
    subgraph S["Étage source : ce qui a été moissonné"]
      SR["536 361 notices"]
      SP["1,6 M personnes citées"]
    end
    subgraph C["Étage consolidé : ce qui serait publié"]
      PUB["251 191 publications"]
      P["833 195 personnes"]
    end
    subgraph R["Étage référentiel : ce qui fait autorité"]
      RU["235 unités de recherche"]
      INS["114 établissements"]
      CPT["515 000 concepts"]
    end
    SR -->|"fusion"| PUB
    SP -->|"fusion"| P
    P -->|"rattachement"| RU
    PUB -->|"sujets"| CPT
    RU -->|"tutelles"| INS`}
/>

| Étage | Rôle | Labels principaux |
|---|---|---|
| **Source** | Chaque notice moissonnée, telle que reçue | `SourceRecord`, `SourcePerson`, `SourceContribution`, `SourceOrganization` |
| **Consolidé** | Les entités fusionnées, candidates à la publication | `ScholarlyPublication` et ses sous-types, `Person`, `Contribution`, `Journal` |
| **Référentiel** | Organisations, vocabulaires, disciplines | `ResearchUnit`, `Institution`, `OrganizationUnit`, `AuthorityOrganization`, `Concept`, `Topic` |

- **Modèle conforme au code** : 49 types de nœuds, 27 contraintes d'unicité ; la traçabilité entre une entité consolidée et ses sources existe (2,2 millions de liens). Le modèle fait foi dans [Le modèle de données](/03-crisalid/01-donnees/modele-de-donnees).
- **Classement par discipline** : la hiérarchie domaine, champ, sous-champ, sujet reproduit la classification d'OpenAlex.
- **Fusions** : 336 777 rapprochements inférés entre notices et **3 362 fusions en attente** ([provenance et fusion](/03-crisalid/01-donnees/provenance-qualite-fusion)).

## La provenance

<Mermaid
  title="Notices par source"
  caption="536 361 notices sources."
  chart={`pie showData
    "OpenAlex" : 200569
    "scanR" : 171533
    "HAL" : 113558
    "IdRef" : 50701`}
/>

**Scopus n'alimente aucune notice**, bien que le code le permette ([catalogue des sources](/03-crisalid/01-donnees/catalogue-des-sources)). Les identifiants de publication confirment la diversité : 222 013 DOI, 165 867 identifiants HAL, 113 419 PubMed, 36 320 Sudoc, 30 746 thèses, 10 093 arXiv.

## Le périmètre Saclay

| Entité | Nombre | Identifiants portés |
|---|---:|---|
| Unités de recherche | **235** | RNSR (234), wikidata (221), ROR (215), identifiant local (235) |
| Établissements | 114 | ROR, identifiant local |

Chaque unité croise **RNSR, ROR, wikidata et un identifiant local** : c'est la clé de rapprochement qu'attend une vitrine. Ce qu'est une unité, et comment elle se relie aux publications : [Qu'est-ce qu'une unité ?](/03-crisalid/00-reperes/quest-ce-quune-unite).

**Deux questions ouvertes** (Q19 du [registre](/04-prochaines-etapes/grille-evaluation)) : l'annuaire de l'université compte **248 laboratoires**, l'écart reste à expliquer ; et aucun traitement du code lu ne charge le fichier RNSR, alors que les 235 unités portent leur code RNSR : par quel chemin ont-elles été chargées ?

### Ce que les volumes ne disent pas

- **833 195 personnes** n'est pas le nombre de chercheurs de Paris-Saclay : ce sont tous les coauteurs des publications moissonnées, externes compris. Une propriété `external` devrait permettre de les distinguer ; sa signification reste **à confirmer**.
- **251 191 publications** n'est pas la production de Paris-Saclay : c'est ce que les moissonneurs ont rapporté pour les chercheurs suivis, sur une instance déclarée incomplète.

## Le rattachement des chercheurs aux unités

C'est le constat le plus lourd de conséquences pour une vitrine « laboratoires et chercheurs ».

<Mermaid
  title="Couverture des 235 unités de recherche"
  caption="Deux chemins relient une unité à ses publications : les chercheurs rattachés, ou les affiliations déclarées dans les publications. Le meilleur couvre 36 % des unités."
  chart={`flowchart TB
    U["235 unités de recherche"]
    U --> M["51 unités avec au moins<br/>un chercheur rattaché"]
    U --> A["85 unités retrouvées par les<br/>affiliations des publications"]
    U --> V["184 unités sans<br/>chercheur rattaché"]
    M --> P["222 072 publications atteignables,<br/>88 % du graphe"]
    classDef ok fill:#DCFCE7,stroke:#16A34A,color:#14532D
    classDef mid fill:#FEF9C3,stroke:#CA8A04,color:#713F12
    classDef ko fill:#FEE2E2,stroke:#DC2626,color:#7F1D1D
    class M,P ok
    class A mid
    class V ko`}
/>

| Mesure | Valeur |
|---|---:|
| Unités de recherche | 235 |
| **Unités ayant au moins un chercheur rattaché** | **51** |
| Chercheurs rattachés à une unité | 5 848 |
| Unités retrouvées par les affiliations déclarées | 85, soit 36 % |
| Publications atteignables par les chercheurs rattachés | 222 072 |

**Le paradoxe.** 88 % des publications sont atteignables, mais par **22 % des unités** seulement. Les unités peuplées sont soit les plus productives, soit celles traitées en priorité : les cinq premières comptent 761, 596, 439, 425 et 267 chercheurs rattachés.

**Lecture pour la décision.** Le modèle sait représenter le rattachement, et le parcourt en moins d'une seconde. Ce qui manque, c'est **la donnée**. Ce n'est pas un travail de développement mais de **référentiel**, qui relève de l'annuaire, des ressources humaines et des unités. Périmètre volontairement restreint sur une instance de test, ou état réel du référentiel ? La réponse change tout (question Q9).

## L'arrêt de l'enrichissement

<Mermaid
  title="Activité observable de la chaîne d'enrichissement"
  caption="Le calcul de l'accès ouvert horodate chaque article traité : c'est le seul indicateur de cadence lisible sans accès à l'orchestrateur."
  chart={`gantt
    title Calcul de l'accès ouvert, 2026
    dateFormat YYYY-MM-DD
    axisFormat %d/%m
    section Activité
    Calcul sur 210 651 articles :done, 2026-08-27, 2026-09-07
    Aucun calcul observé :crit, 2026-09-07, 2026-10-29
    section Repères
    Observation de l'instance :milestone, 2026-10-29, 0d`}
/>

| Indicateur | Valeur |
|---|---|
| Premier calcul horodaté | 27 août 2026 |
| **Dernier calcul horodaté** | **7 septembre 2026** |
| Durée sans activité au jour de l'observation | **7 semaines** |

Deux mécanismes sont à distinguer :
- le **chargement de l'annuaire** n'a pas de planification intégrée dans le code : il est lancé à la main ou par un ordonnanceur externe ;
- le **moissonnage des publications** est relancé à intervalle court pour une personne tirée au hasard ([exploitation](/03-crisalid/03-fonctionnement-transversal/exploitation-et-gouvernance)).

L'instance **ne permet pas de trancher** la planification réelle : la liste des traitements exige une authentification. Elle montre en revanche qu'**aucun article n'a été enrichi depuis sept semaines**. Un moissonnage aléatoire peut tourner sans que l'enrichissement suive : la fraîcheur d'une fiche dépend alors du hasard, pas d'une cadence garantie (question Q10).

<Mermaid
  title="Publications par année de publication"
  caption="Environ 9 500 publications par an jusqu'en 2021, puis une décrue. L'année 2026 est incomplète par nature, mais son niveau reste très bas."
  chart={`%%{init: {"themeVariables": {"xyChart": {"plotColorPalette": "#2563EB"}}}}%%
xychart-beta
    title "Publications consolidées par année"
    x-axis [2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026]
    y-axis "Publications" 0 --> 11000
    bar [9892, 9473, 9761, 9801, 9590, 9520, 9390, 9096, 8092, 7710, 3185]`}
/>

Deux lectures, **non tranchées** : le moissonnage ne suit plus, ou les publications récentes tardent à apparaître dans les sources, ce qui est normal pour OpenAlex et HAL. L'arrêt de l'enrichissement début septembre penche pour la première.

**Conséquence pour la vitrine.** Rien sur l'instance ne démontre qu'une mise à jour hebdomadaire est tenue. La [vitrine](/01-cadrage-saclay/02-scenarios/01-partie-1-vitrine-marque-blanche) affiche donc la date de mise à jour de chaque fiche, alerte quand la donnée vieillit, et complète par les sources ouvertes.

## Les files de traitement non purgées

| File | Volume | Ce que cela signifie |
|---|---:|---|
| Documents marqués « à supprimer » | **3 353** | Suppressions décidées mais non appliquées |
| Articles marqués « à recalculer » | 914 | Recalculs en attente |
| Fusions en attente | 3 362 | Rapprochements identifiés mais non exécutés |

Le code ne traite pas les suppressions ([contrats et événements](/03-crisalid/01-donnees/contrats-api-evenements#suppressions-non-propagées)) ; l'instance le montre. **Tout extrait doit exclure explicitement les entités marquées pour suppression** (question Q20).

## Les dates futures

| Source | Date de publication la plus lointaine |
|---|---|
| OpenAlex | **28 juillet 2027** |
| scanR | 3 mars 2027 |
| HAL | 3 mars 2027 |
| IdRef | 21 août 2026 |

Des notices portent des dates jusqu'à **neuf mois dans le futur**, probablement des numéros de revue annoncés par les éditeurs. Publiées telles quelles, elles feraient paraître des articles avant leur sortie : **l'extrait doit plafonner ces dates** (question Q21).

## Ce que cela ajoute au dossier

1. **Un risque principal** : la complétude du rattachement chercheurs–unités ([risques de la Partie 1](/01-cadrage-saclay/02-scenarios/01-partie-1-vitrine-marque-blanche#risques-et-facteurs-de-variation)).
2. **Une charge à chiffrer** : la curation du référentiel, distincte du développement de la vitrine.
3. **Trois règles d'extrait** : exclure les entités à supprimer, plafonner les dates, signaler les unités sans chercheur ([Extrait et comparatif du POC](/01-cadrage-saclay/02-scenarios/03-extrait-et-comparatif-du-poc)).
