Gestion des ontologies
1. Dashboard /terminologies
Section intitulée « 1. Dashboard /terminologies »🟢🔵 Page admin lecture seule : pour chaque source (Mondo CC0 · SNOMED Int+CH · UMLS), elle montre statut, version, fraîcheur (fenêtre 180 j, clause 6.2 → current / update_recommended / overdue), couverture multilingue (comptes EN/FR/DE/IT par axe), conformité licence (mention 8.3 présente, édition officielle 2.4, BYO/gitignoré) et la provenance (recette + sha de build). Invariant respecté : comptes, jamais de libellés.
2. Métadonnées déclarées (meta.json)
Section intitulée « 2. Métadonnées déclarées (meta.json) »🔵 Pour éviter de dériver/scanner à chaque lecture, les builders émettent des champs
déclarés dans *.meta.json : coverage_by_language, latest_effective_time,
update_window_days, imported_at, provenance{builder,command,git_sha}. Un backfill
(scripts/backfill_meta.py) pose ces champs sur le volume sans reprocess des dumps. Le
dashboard lit le déclaré avec fallback sur le dérivé (dégradation gracieuse).
3. UI d’import des ontologies
Section intitulée « 3. UI d’import des ontologies »🔵🟢 L’opérateur dépose un dump dans le dossier staging (monté RO) ; l’UI le détecte, valide, compare à l’actif, puis (selon l’ontologie) propose un déclenchement de build.
flowchart LR
OP["Opérateur dépose<br/>(staging, RO)"] --> DET["Détection (API)<br/>type · version · complétude · diff actif"]
DET --> BTN{"déclenchable ?"}
BTN -- "SNOMED / UMLS" --> REQ["POST build → ontology_builds (queued)"]
REQ --> RUN["Runner host (timer systemd)<br/>claim → builder → activation in-place"]
RUN --> ACT["index/carte à jour"]
ACT --> DASH["Dashboard reflète"]
BTN -- "Mondo" --> MAN["build manuel (KB linker = xmen GPU)"]
classDef m fill:#e7f5ec,stroke:#2E7D5B
class DET,RUN m
| Ontologie | Détection | Trigger UI |
|---|---|---|
| SNOMED CT (RF2) | ✅ | ✅ runner host (build réel ~24 s vérifié) |
| UMLS (Metathesaurus) | ✅ | ✅ runner host (carte candidate + restart API) |
| Mondo (mondo.json, CC0) | ✅ | ✖ manuel (KB linker = rebuild xmen/FAISS GPU) |
Détails exécution (runner, activation in-place, restart API) : Opérations & infra. Décisions : ADR-010/014.
4. Builders (recettes MC)
Section intitulée « 4. Builders (recettes MC) »🔵 Les recettes versionnées (jamais le contenu) :
| Builder | Entrée | Sortie |
|---|---|---|
kb_builders.snomed | RF2 Int+CH | index topo/morpho + meta |
kb_builders.disease | mondo.json | index maladie + mondo.meta.json |
scripts/build_kb_index | JSONL SNOMED/Mondo | index xmen (ngram + FAISS) |
scripts/build_umls_candidate_map | MRCONSO | carte candidate voie 1.5 (licenciée) |
L’invariant licence (Modèle de licence (open-core)) : la recette est publiable, le contenu produit reste hors-repo (gitignoré, BYO).
Voir aussi
Section intitulée « Voir aussi »- Pont terminologique & émission (Mondo→SNOMED) (la carte UMLS sert l’émission) · Moteur de linking (cœur ML) (le KB xmen sert le linker).