Linkr
Accueil Ressources Outils Documentation Blog Démo
EN
  • Qu'est-ce que Linkr ?
  • Modes de déploiement
  • Démarrage rapide
  • Installation locale
  • Avec Docker
  • Installation manuelle
  • Client-only
  • Installer LibreChat
  • Votre premier projet
  • Linkr dans un EDS
  • Espaces de travail et projets
  • Le pipeline de données
  • Entités et partage
  • Versioning et collaboration
  • Vue d'ensemble
  • Projets
  • Wiki
  • Plugins
  • Membres et rôles
  • Paramètres
  • Schémas
  • Obtenir et explorer
  • Mapping
  • Bases de données
  • Sous-bases dérivées
  • Qualité des données
  • Catalogue de données
  • Construire et publier
  • Anonymiser
  • Collections de scripts SQL
  • Pipelines ETL
  • Construire et exécuter
  • Générer les scripts
  • Présentation
  • Projets d'alignement
  • Vue d'ensemble
  • Concepts cibles
  • Éditeur d'alignements
  • Suggestions
  • Agent IA
  • Évaluation
  • Export
  • Vue d'ensemble
  • Bases de données
  • Concepts
  • Cohortes
  • Construire
  • Résultats, SQL et rapport
  • Données individuelles
  • Pipeline
  • Jeux de données
  • IDE
  • Applications web
  • Versioning
  • Vue d'ensemble
  • Onglets et widgets
  • Widgets intégrés
  • Widgets d'analyse
  • Cartes de contrôle (SPC)
  • Questionnaires et eCRF
  • Code R et Python
  • Filtres, paramètres et export
  • Vue d'ensemble
  • Mode présentation
  • Exporter un rapport
  • Agents
  • Serveur MCP
  • Skills
  • Import et export
  • Versioning git
  • Catalogue communautaire
  • Créer son catalogue
  • Publier du contenu
  • Installation en production
  • Configuration
  • Connecteurs de bases de données
  • Authentification et permissions
  • Fichiers sur le serveur
  • Sauvegarde et restauration
  • Contribuer au code
  • Tests automatiques
  • Glossaire
  • Raccourcis clavier
  • Notes de version
Documentation Alignement de concepts Suggestions

Suggestions

Les candidats OMOP pré-classés pour chaque concept source : scores syntaxiques et sémantiques précalculés, et suggestions d'un agent IA qui applique le skill concept-mapping en direct dans le projet, par le serveur MCP.

Vidéo · Les suggestions automatiques · Alignement de concepts 6/9Voir sur PeerTube ↗

En résumé

L’onglet Suggestions affiche, pour chaque concept source, des candidats OMOP pré-classés par un score combiné. Ces suggestions ont deux origines : des scores précalculés — syntaxiques et sémantiques — calculés par Linkr sur le serveur, en tâche de fond ; et les propositions d’un agent IA, qui suit le skill concept-mapping et travaille en direct dans le projet par le serveur MCP, sans export. Dans les deux cas, c’est vous qui créez chaque alignement.

Client Disponible en mode client-only — tout fonctionne dans le navigateur, sans backend. Backend Disponible avec le backend FastAPI.

Pourquoi un onglet séparé

Aligner 1 000 codes locaux à la main contre les 4 millions de concepts du vocabulaire OMOP est long. Trois familles d’algorithmes ont chacune leur biais :

  • La comparaison de chaînes rate les synonymes (« HR » vs « heart rate »).
  • Les embeddings sémantiques confondent parfois deux concepts proches (« créatinine sérique » vs « créatininémie urinaire »).
  • Un agent IA ajoute du contexte clinique mais coûte cher si on l’applique à 4 millions de paires.

L’onglet Suggestions cumule plusieurs méthodes en un seul score et expose les détails ligne par ligne, pour que vous gardiez la main sur la décision finale.

D’où viennent les suggestions

Scores précalculés

Syntaxiques et sémantiques, pour tous les concepts source d’un coup.

Calculés par Linkr sur le serveur, depuis Gérer les suggestions. Sans backend, un fichier de scores calculé ailleurs s’importe. Voir Précalculer les scores.

Suggestions d’un agent IA

Quelques candidats justifiés par concept, lot par lot.

Déposées en direct dans le projet par un agent relié au serveur MCP de Linkr. Mode serveur uniquement. Voir Aligner avec un agent IA.

Les deux se complètent : l’agent part des scores précalculés, sa première source de candidats, et interroge l’index sémantique pour les concepts qu’ils laissent sans cible. Il ne lance jamais lui-même un calcul.

L’onglet Suggestions dans Linkr

demo.linkr.interhop.org
Jeux de conceptsRechercherSuggestions
ScoreMéthodesVocabNom du conceptCodeStd
92%
95%88%91%
LOINCCreatinine [Mass/volume] in Serum or Plasma2160-0S
81%
83%79%82%
LOINCCreatinine [Mass/volume] in Blood38483-4S
76%
80%71%77%
LOINCCreatinine [Moles/volume] in Serum or Plasma14682-9S
68%
72%64%
SNOMEDSerum creatinine measurement113075003S
54%
58%51%
LOINCCreatinine renal clearance2164-2S
8 / 24 résultats⚙
L'onglet Suggestions : score combiné à gauche, points colorés par méthode, et barre d'actions pour aligner ou gérer les scores.

Méthodes de similarité

Quatre familles de méthodes peuvent contribuer au pré-classement des candidats. Chacune attaque le problème sous un angle différent, et leurs erreurs ne se recoupent pas — c’est pourquoi les combiner donne de meilleurs résultats qu’utiliser une seule famille.

Syntaxique

Compare les chaînes de caractères des libellés.

Sémantique

Compare le sens via des embeddings biomédicaux.

Statistique

Compare les distributions de valeurs numériques.

IA

Un LLM relit les meilleurs candidats avec le contexte clinique.

Dans Linkr, chaque méthode est représentée à droite du score combiné par une pastille colorée (couleurs ci-dessus) suivie de son pourcentage. Au survol, une infobulle indique le nom exact de l’algorithme. Cela permet de comprendre l’origine d’un score élevé : un candidat noté 92 % uniquement par la méthode syntaxique est probablement un faux ami textuel, tandis qu’un candidat noté 80 % par sémantique + IA est plus solide.

1. Syntaxique — comparer les chaînes de caractères

On compare les chaînes des libellés telles quelles, sans rien comprendre à leur sens. Utile parce que les libellés sources et les libellés OMOP suivent souvent des conventions d’écriture différentes : casse, espaces ou underscores, accents, abréviations, ordre des mots, ponctuation. Trois algorithmes au catalogue :

  • Jaro-Winkler — proximité lettre à lettre, avec bonus pour les préfixes communs. Rapproche « hemoglobin_a1c » et « Hemoglobin A1c » malgré la casse et le séparateur.
  • Token-Sort — découpe les libellés en mots, les trie alphabétiquement, puis compare. Indifférent à l’ordre (« blood pressure systolic » ≈ « systolic blood pressure »).
  • N-gram IDF — découpe en n-grammes de caractères (sous-séquences de N lettres), pondère chaque n-gramme par sa rareté dans le vocabulaire. Méthode historique d’Usagi.
Source
hemoglobin_a1c(libellé source, sans accent ni espace)
Hemoglobin A1c
0.93
A1c hemoglobin
0.78
Hemoglobin
0.62
Glucose
0.14

Jaro-Winkler — proximité lettre à lettre, bonus pour préfixe commun ; Token-Sort permet de rapprocher « A1c hemoglobin » du libellé source malgré l'ordre des mots.

Jaro-Winkler appliqué à un libellé source en snake_case sans accent : les libellés OMOP les plus proches lettre à lettre remontent en tête, malgré les différences de casse, d'espaces et d'ordre des mots.

Forces — détecte les correspondances quasi-littérales malgré les variantes d’écriture (casse, espaces, abréviations, ordre des mots), très rapide (millisecondes par paire).

Limites — ne prend pas en compte les synonymes : « créatinine » et « creat » sont proches, mais « heart rate » et « pulse » sont à zéro.

2. Sémantique — comparer le sens

On encode chaque libellé en vecteur numérique via un modèle de phrase-embedding, puis on mesure l’angle entre les vecteurs via la similarité cosinus. Deux libellés au sens proche produiront des vecteurs proches, même si les mots sont différents.

Du libellé au vecteur d'embedding

BioLORD-2023-M projette chaque libellé dans un espace de 768 dimensions. Voici 24 dimensions sous forme de heatmap — chaque case est une dimension, la couleur encode la valeur.

−1
+1Valeur de la dimension
Frequence cardiaque
…/768
Pouls
…/768
Tension arterielle
…/768

Similarité cosinus

cos(θ) = (A · B) / (‖A‖ × ‖B‖)
Frequence cardiaquevsPouls
0.94
Frequence cardiaquevsTension arterielle
0.21

Les motifs de « Fréquence cardiaque » et « Pouls » sont presque identiques case par case → vecteurs très proches. « Tension artérielle » a un motif différent → vecteur éloigné. Plus le score cosinus approche 1, plus les sens sont proches.

« Fréquence cardiaque » et « pouls » ont presque le même vecteur (cos ≈ 0,94), alors que les caractères diffèrent totalement. « Tension artérielle » est dans une autre région de l'espace.

Modèle par défaut : BioLORD-2023-M, entraîné sur des textes biomédicaux et multilingue (français, anglais, espagnol, allemand…).

Modèles alternatifs configurables — n’importe quel modèle BERT compatible Sentence-Transformers :

  • PubMedBERT, SapBERT, ClinicalBERT — spécialisés biomédicaux mais anglais uniquement.
  • all-MiniLM-L6-v2 — généraliste, anglais uniquement, beaucoup plus rapide.
  • paraphrase-multilingual-MiniLM-L12-v2, LaBSE — multilingues généralistes.

Multilinguisme

Si vos libellés source sont en français (ou dans toute autre langue que l’anglais), gardez BioLORD-2023-M ou basculez sur un modèle explicitement multilingue. PubMedBERT, SapBERT, ClinicalBERT et all-MiniLM-L6-v2 produiront des embeddings de mauvaise qualité sur du texte non-anglais.

Forces — capte les synonymes (« heart rate » ≈ « pulse »), les reformulations, les variantes terminologiques.

Limites — peut rapprocher deux concepts proches mais distincts (« créatinine sérique » vs « créatininémie urinaire »). Coûteux à pré-calculer sur les ~3,5 M concepts OMOP standard : quelques heures, une fois par espace de travail (GPU recommandé).

3. Statistique — comparer les distributions de valeurs

Pour les variables numériques (Measurement uniquement), on compare la distribution statistique des valeurs entre concept source et candidats : min, P25, médiane, P75, max, moyenne, écart-type. Deux variables qui prennent leurs valeurs dans la même plage, avec la même forme, sont probablement la même mesure.

Concrètement, on utilise un test statistique pour quantifier l’écart entre les deux distributions :

  • Test de Kolmogorov-Smirnov (KS) — écart maximal entre les fonctions de répartition. KS = 0 → distributions identiques ; KS proche de 1 → distributions très différentes.
  • Divergence de Wasserstein — « coût » pour transporter la masse d’une distribution vers l’autre. Plus robuste que KS quand les supports sont déplacés (changement d’unité).

Concept source : créatinine sérique (µmol/L)

12 450 mesures, 1 842 patients

Source
Candidat
LOINC 2160-0 — Creatinine [Mass/volume] in Serum or Plasmaunité : mg/dL
Match probable
KS = 0.08Wass. = 0.12
LOINC 14682-9 — Creatinine [Moles/volume] in Serum or Plasmaunité : µmol/L
Match probable
KS = 0.06Wass. = 0.09
LOINC 2951-2 — Sodium [Moles/volume] in Serum or Plasmaunité : mmol/L
Distribution différente
KS = 0.62Wass. = 0.71

Test de Kolmogorov-Smirnov : KS proche de 0 = distributions identiques ; KS > 0,5 = distributions très différentes. Les courbes lissées (estimation de densité) permettent de comparer la forme et la position des distributions sans qu'elles se masquent.

La distribution source (créatinine en µmol/L) se superpose presque parfaitement à deux concepts LOINC de créatinine, et diverge nettement de la natrémie — qui occupe un tout autre intervalle.

Forces — fonctionne même quand le libellé est ambigu ou absent. Très discriminant : difficile de confondre la créatinine (60–120 µmol/L) avec la natrémie (135–145 mmol/L).

Limites — uniquement applicable aux variables numériques avec assez de valeurs pour que la distribution soit représentative. Sensible aux artefacts de saisie (valeurs aberrantes, unités mélangées).

Pas encore calculé par Linkr

Linkr sait afficher et pondérer des scores statistiques (méthodes statistical/…) quand un fichier de scores importé en contient, mais ne les calcule pas encore. En pratique, c’est l’agent IA qui compare les distributions : il lit celles de chaque concept source dans ses métadonnées avant de choisir une cible.

4. IA agentique — laisser un LLM raisonner

Un LLM piloté de façon agentique — c’est lui qui décide quels outils appeler : lire un concept source et ses métadonnées, chercher dans le vocabulaire OMOP, consulter la hiérarchie d’un candidat — examine les meilleurs candidats avec tout le contexte disponible : libellé source, unité, distribution des valeurs, services où le code est utilisé. Il propose un ou plusieurs alignements assortis d’une équivalence SKOS (exactMatch, closeMatch, broadMatch, narrowMatch, relatedMatch) et d’un commentaire qui justifie le choix.

Ses propositions apparaissent dans l’onglet comme une méthode de plus, nommée ai/<modèle> d’après le modèle qui les a produites, dans la catégorie Agentique. La page Aligner avec un agent IA explique comment le lancer.

Concept source
TA_systolique_invasive

ICCA · M0118 · « Tension artérielle systolique invasive » · 24 380 mesures · médiane 122 mmHg

Candidats du pré-classement
  • SNOMED 251071003 — Invasive systolic arterial pressure
    91%
  • SNOMED 72313002 — Systolic arterial pressure
    78%
  • LOINC 8480-6 — Systolic blood pressure
    74%
Raisonnement de l'IA agentique

Le libellé « TA_systolique_invasive » désigne la pression artérielle systolique mesurée par cathéter artériel (ligne artérielle), pas au brassard. Le concept SNOMED 251071003 correspond exactement à cette définition — c'est un alignement direct. Le LOINC 8480-6 est un concept plus large (systolique, toutes méthodes confondues) : la cible est plus générale que la source, ce qui s'écrit broadMatch en SKOS. La distribution observée (médiane 122 mmHg, queue droite jusqu'à ~180) est cohérente avec une mesure invasive en réanimation.

Alignements proposés
SNOMED 251071003 — Invasive systolic arterial pressureConfiance: 97%
Équivalence SKOS : skos:exactMatch — Le concept cible décrit précisément la même mesure.
LOINC 8480-6 — Systolic blood pressureConfiance: 88%
Équivalence SKOS : skos:broadMatch — Le concept cible est plus général (toutes méthodes de mesure), donc plus large que la source invasive.
L'IA agentique relit les trois meilleurs candidats, identifie le SNOMED 251071003 comme correspondance exacte (concept dédié à la mesure invasive), et propose en plus le LOINC 8480-6 en broadMatch puisque ce dernier couvre la pression systolique toutes méthodes confondues.

Forces — la seule méthode qui « comprend » la sémantique clinique (qualificatifs, contexte de mesure, équivalences nuancées). Sait dire « ce n’est pas exact, la cible est plus générale » via broadMatch, et dit dans son commentaire ce qui diffère.

Limites — lente et coûteuse en calcul, risque d’hallucinations sur les cas rares, nécessite toujours une validation humaine.

Principe de frugalité — utiliser le moins coûteux d'abord

Les méthodes forment des paliers de consommation de ressources, à peu près regroupés ainsi :

  1. Syntaxique et statistique — CPU léger, calculs locaux sur les chaînes ou les valeurs déjà présentes en mémoire. Ordre de grandeur : millisecondes par paire.
  2. Sémantique (BERT / embeddings) — un GPU est recommandé pour l’inférence et le pré-calcul des vecteurs OMOP. Ordre de grandeur : minutes à heures selon le matériel, puis quasi-gratuit en interrogation.
  3. IA agentique — appels au modèle, plusieurs allers-retours d’outils par concept. Ordre de grandeur : secondes à minutes par concept.

La règle : ne pas dégainer un palier plus coûteux quand un palier plus bas suffit.

  • Lancer les scores syntaxiques en premier — c’est presque gratuit, et ça résout déjà une bonne partie des cas simples.
  • Le sémantique prend le relais sur les concepts non tranchés (synonymes, reformulations, langues).
  • L’agent travaille sur un périmètre choisi — une catégorie, les concepts les plus fréquents — et part des candidats déjà pré-classés, jamais des 4 M concepts OMOP en aveugle.

C’est à la fois une question de coût (calcul, GPU, et facture pour un modèle distant), d’empreinte écologique et de rapidité : faire passer un projet de 1 000 concepts entièrement par l’agent prend des heures, alors que les scores précalculés traitent la même charge en quelques minutes et laissent à l’agent le résidu difficile.

Le score combiné

Le score combiné (colonne de gauche, barre verte) est une moyenne pondérée des scores de chaque méthode. Les poids par défaut sont :

MéthodePoidsRôle
Syntaxique×1Détecte les correspondances quasi-littérales malgré les variantes d’écriture.
Statistique×1Compare les distributions de valeurs (créatinine vs natrémie).
Sémantique×2Capte les synonymes et reformulations.
IA agentique×3Propositions justifiées d’un agent IA.

Le bouton Gérer les suggestions (en haut à gauche) ouvre une boîte de dialogue à deux onglets. L’onglet Méthodes a des curseurs pour ajuster chaque poids en temps réel — le tableau se re-trie automatiquement ; vous y voyez aussi le nombre de scores chargés, et vous pouvez Importer un fichier ou Tout supprimer. L’onglet Calcul lance le calcul des scores — voir Précalculer les scores.

En mode serveur, la section Méthodes du fichier liste chaque méthode présente — syntactic/jaro-winkler, semantic/biolord, ai/<modèle>… — avec une corbeille : Retirer les suggestions d’une méthode supprime toutes ses lignes du fichier de scores, en conservant les autres méthodes et les alignements. C’est le moyen de retirer d’un coup ce qu’un agent a déposé.

demo.linkr.interhop.org

Gérer les suggestions

Ajustez la pondération de chaque méthode dans le score combiné.

Pondération des méthodes

Syntaxique
×1.0
Statistique
×1.0
Sémantique
×2.0
IA agentique
×3.0

Méthodes du fichier

  • ai/mistral-small-3.2
  • semantic/biolord
  • syntactic/jaro-winkler
12 384 scores chargés depuis similarity-scores.parquet
Importer un fichierTout supprimer
La boîte de dialogue Gérer les suggestions, onglet Méthodes : curseurs de pondération par méthode, liste des méthodes du fichier avec leur corbeille (mode serveur), compteur de scores chargés, et actions Importer un fichier / Tout supprimer. L'onglet Calcul est décrit plus bas.

Sélection et alignement

demo.linkr.interhop.org
SNOMED 251071003 — Invasive systolic arterial pressure91%
SNOMED 72313002 — Systolic arterial pressure78%
LOINC 8480-6 — Systolic blood pressure74%

Les candidats déjà alignés pour ce concept source sont grisés et ne sont pas re-sélectionnables.

Quand une ligne est sélectionnée, la barre d'actions en haut à droite affiche le bouton « + Exact » (avec menu déroulant des autres équivalences SKOS) et un bouton commentaire. Les candidats déjà alignés (ici LOINC 8480-6) apparaissent grisés.
  • Cliquez sur une ligne pour la sélectionner. La barre d’actions en haut affiche alors les boutons d’alignement habituels (Exact match + menu déroulant SKOS + bouton commentaire).
  • Les candidats déjà alignés pour ce concept source sont grisés et ne sont pas re-sélectionnables.
  • L’icône ⓘ en bout de ligne ouvre la fiche du concept OMOP cible (description, synonymes, hiérarchie).

Le bouton d’alignement principal « Exact » est pré-rempli avec l’équivalence SKOS de la suggestion sélectionnée — celle proposée par l’agent pour une ligne ai/… (exactMatch, closeMatch, broadMatch, narrowMatch, relatedMatch). Vous pouvez l’accepter en un clic, ou ouvrir le menu déroulant pour choisir une autre équivalence si vous n’êtes pas d’accord. Linkr n’aligne jamais seul à partir d’une suggestion : c’est ce clic qui crée l’alignement.

Suggestions d’un agent IA

Un agent IA peut déposer ses propres suggestions dans l’onglet, chacune avec une équivalence SKOS et un commentaire qui justifie le choix. La page Aligner avec un agent IA explique comment le faire travailler, ce qu’il écrit dans le projet et comment suivre son travail.

Précalculer les scores

Les scores syntaxiques et sémantiques donnent à chaque concept source une liste de candidats classés avant qu’aucun agent ne s’y penche. Ils se calculent dans Linkr, sur le serveur : Gérer les suggestions → onglet Calcul. Le calcul tourne en tâche de fond, on peut fermer la fenêtre et continuer à travailler.

Mode serveur uniquement

Le calcul s’exécute sur le serveur Linkr. Dans une installation sans backend, chargez un fichier de scores calculé ailleurs — voir Importer un fichier de scores.

Ce qu’il faut

  • Les vocabulaires OMOP importés dans l’espace de travail — voir Concepts cibles. Les candidats sont pris parmi leurs concepts.
  • Pour les méthodes syntaxiques : rien d’autre. Elles s’exécutent dans la base.
  • Pour la méthode sémantique : un environnement d’embeddings, un modèle et une configuration dont l’index est construit. Le bouton Modèles et configurations de l’onglet Calcul installe le tout.

Modèles et configurations

Le bouton Modèles et configurations de l’onglet Calcul ouvre une fenêtre à deux onglets : Embeddings et modèles — l’environnement d’embeddings, c’est-à-dire les paquets Python qui font tourner les modèles (torch, sentence-transformers, environ 2 Go, partagés par tous les espaces de travail du serveur), puis les modèles — et Configurations, décrit plus bas.

Sous la liste des modèles, trois tuiles proposent d’en ajouter un ; un clic sur l’une ouvre son formulaire juste en dessous :

  • BioLORD-2023-M — Proposé par défaut, la voie la plus courte. Installer :
    1. installe l’environnement d’embeddings si besoin ;
    2. télécharge BioLORD-2023-M depuis Hugging Face (environ 1 Go, non livré avec Linkr) ;
    3. crée une configuration qui couvre tous les concepts standard et valides, médicaments compris.
  • Hugging Face — un autre modèle du Hub, désigné par son propriétaire/nom (par exemple cambridgeltl/SapBERT-from-PubMedBERT-fulltext), puis Télécharger. Demande l’environnement d’embeddings.
  • Depuis un dossier — le dossier d’un modèle déjà téléchargé ailleurs, choisi sur votre ordinateur (il est envoyé au serveur et copié dans l’espace de travail) ou sur le serveur (lu sur place). C’est ainsi qu’on apporte un modèle dans un environnement sans accès internet.
État de l'espace de travail
demo.linkr.interhop.org

Modèles et configurations

Ce dont la méthode sémantique a besoin, partagé par les projets de ce workspace : l'environnement, les modèles, et les configurations avec leur index.

Environnement d'embeddings

Non installé : nécessaire aux scores sémantiques, pas aux scores syntaxiques.Installer

Modèles

Aucun modèle pour l'instant.

Installe l'environnement d'embeddings si besoin, télécharge FremyCompany/BioLORD-2023-M (environ 1 Go, non livré avec Linkr) et crée une configuration sur tous les concepts standard, médicaments compris. Il reste ensuite à construire son index : quelques heures pour environ 3,5 millions de concepts. Une construction arrêtée reprend là où elle s'était arrêtée.

Installer
L'onglet Embeddings et modèles, et ses trois tuiles — cliquez-en une pour ouvrir son formulaire. Le sélecteur au-dessus montre l'espace de travail avant l'installation de BioLORD-2023-M, pendant (la progression et Arrêter sur la ligne du modèle, la tuile grisée), et après.

Il reste à construire l’index de la configuration — bouton Construire, dans l’onglet Configurations : chaque concept cible est encodé une fois, puis l’index sert à tous les projets de l’espace de travail. Comptez quelques heures pour environ 3,5 millions de concepts, beaucoup moins avec un GPU (NVIDIA ou Apple Silicon). Une construction arrêtée reprend là où elle s’était arrêtée.

Fermer la fenêtre pendant une installation

Installations, téléchargements et constructions d’index tournent sur le serveur. Vous pouvez fermer la fenêtre ou changer d’onglet : en revenant, vous retrouvez la progression là où elle en est, avec son bouton Arrêter.

Les configurations

Une configuration associe un modèle à ce qu’il encode. Ses scores sont écrits sous la méthode semantic/<identifiant>. Nouvelle en crée une autre, par exemple avec un autre modèle ou sur un périmètre plus étroit :

ChampRôle
ModèleL’un des modèles de l’onglet Embeddings et modèles — de type BERT (sentence-transformers).
Texte encodéCe que le modèle lit pour chaque concept : le nom seul, ou le nom avec le vocabulaire et la classe, qui distingue les homonymes d’un vocabulaire à l’autre.
Concepts standard uniquement, Concepts valides uniquementCochés par défaut.
Domaines, Vocabulaires, Classes de conceptsVides = tous. Les classes visent les médicaments au bon niveau — par exemple Ingredient, Clinical Drug, Branded Drug — sans les boîtes ni les produits commercialisés.
ProcesseurAutomatique : GPU s’il y en a un, CPU sinon.
État de l'espace de travail
demo.linkr.interhop.org

Modèles et configurations

Ce dont la méthode sémantique a besoin, partagé par les projets de ce workspace : l'environnement, les modèles, et les configurations avec leur index.

Configurations

Nouvelle
  • BioLORD-2023-Msemantic/biolordBioLORD-2023-M

    standard · valides · tous les domaines

    Index : 38/41 vocabulaires, 3 412 905 concepts · 1 périmé
    Build the BioLORD-2023-M index64%Arrêter

    SNOMED: 248,000/361,284

  • BioLORD — médicamentssemantic/biolord-drugsBioLORD-2023-M

    standard · valides · Drug

    Index : 1/1 vocabulaires, 107 753 conceptsReconstruire
L'onglet Configurations : celle créée en un clic, dont l'index se construit (un vocabulaire réimporté le rend en partie périmé), et une configuration limitée aux médicaments, à jour.
demo.linkr.interhop.org

Modifier la configuration d'embedding

Quels concepts encoder avec quel modèle. Ses scores sont écrits sous la méthode semantic/<identifiant>.

Nom *

BioLORD — médicaments

Identifiant *

biolord-drugs

Modèle

BioLORD-2023-M

Texte encodé

Nom + vocabulaire et classe — Heart rate [LOINC / Clinical Observation]
Concepts standard uniquementConcepts valides uniquement

Domaines

Drug

Vocabulaires

RxNorm

Classes de concepts

IngredientClinical DrugClinical Drug FormBranded Drug+3

Processeur

Automatique

Taille de lot

64
AnnulerEnregistrer
Une configuration limitée aux médicaments : domaine Drug, vocabulaire RxNorm, et les classes du bon niveau — Ingredient, Clinical Drug, Branded Drug… — sans les boîtes ni les produits commercialisés. Ses scores s'écrivent sous semantic/biolord-drugs.

L’index est construit par vocabulaire : chacun est construit, non construit, ou périmé quand le vocabulaire a été réimporté depuis — un index périmé répond encore, Reconstruire le remet à jour. Modifier le modèle, le texte encodé ou les concepts cibles d’une configuration supprime son index.

Lancer le calcul

Dans l’onglet Calcul :

État du calcul
demo.linkr.interhop.org

Gérer les suggestions

Ajustez la pondération de chaque méthode dans le score combiné.

Méthodes syntaxiques

Jaro-WinklerToken SortN-gram IDF

Méthode sémantique

Modèles et configurations
BioLORD-2023-M (semantic/biolord)

Concepts cibles

Concepts standard uniquementConcepts valides uniquement

Domaines

Tous

Vocabulaires

Tous

Classes de concepts

Tous

Candidats par concept et par méthode

10
Seulement les concepts sources que ces méthodes n'ont pas encore scorés

Chaque méthode calculée remplace ses scores précédents dans ce projet. Les autres méthodes — les suggestions IA notamment — sont conservées.

Calculer
L'onglet Calcul de Gérer les suggestions : méthodes syntaxiques, configuration sémantique, concepts cibles, nombre de candidats. Le sélecteur au-dessus montre le calcul prêt, en cours (avec Pause et Arrêter) et en pause (Recommencer, Reprendre).
  • Méthodes syntaxiques — Jaro-Winkler, Token-Sort, N-gram IDF. N-gram IDF est lent (environ une heure de CPU sur tout le vocabulaire) : restreignez les cibles.
  • Méthode sémantique — une des configurations dont l’index est construit, ou aucune.
  • Concepts cibles — standard, valides, domaines, vocabulaires, classes. Pour la méthode sémantique, les cibles sont en plus limitées à ce que sa configuration a encodé.
  • Candidats par concept et par méthode — combien de cibles chaque méthode garde pour chaque concept source.
  • Seulement les concepts sources que ces méthodes n’ont pas encore scorés — pour compléter un calcul plutôt que le refaire.

Calculer lance la tâche. Chaque méthode calculée remplace ses scores précédents dans le projet ; les autres méthodes — les suggestions d’un agent notamment — sont conservées. Pause arrête le calcul : ce qui est fini est déjà dans les scores, et Reprendre repart du pourcentage atteint. Recommencer abandonne le calcul en pause et en lance un nouveau avec les réglages affichés.

L'agent lit les scores, il ne les calcule pas

Le skill concept-mapping ne lance jamais de calcul ni de construction d’index : ce sont des tâches de plusieurs heures dont vous choisissez le périmètre. Il lit les scores précalculés, qui sont sa première source de candidats, et interroge l’index sémantique pour les concepts qu’ils laissent sans cible. Calculez-les donc avant de faire travailler un agent.

Importer un fichier de scores

Un fichier de scores calculé hors de Linkr — par un autre outil, ou dans une installation sans backend — se charge par Gérer les suggestions → onglet Méthodes → Importer un fichier (.parquet ou .csv). Ses lignes s’ajoutent aux scores du projet et remplacent celles qui existent déjà pour le même concept source, la même cible et la même méthode.

Le fichier contient un score par triplet (source, candidat, méthode) :

demo.linkr.interhop.org
similarity-scores.parquet
4 lignes sur 12 384
source_vocabulary_idsource_concept_codeconcept_idmethodscoreequivalencecommentcreated_at
ICCAM01184353843syntactic/jaro-winkler0.83skos:exactMatch—2026-05-14T09:32:11Z
ICCAM01184353843semantic/biolord0.91skos:exactMatch—2026-05-14T09:34:02Z
ICCAM01184353843ai/mistral-small-3.20.97skos:exactMatchConcept dédié à la pression systolique mesurée par cathéter artériel, comme la source ; la médiane observée de 122 mmHg est cohérente.2026-05-14T09:35:48Z
ICCAM01183004249ai/mistral-small-3.20.88skos:broadMatchLa cible est plus générale : elle couvre toutes les méthodes de mesure et ne retient pas le caractère invasif de la source.2026-05-14T09:35:48Z
Une ligne par triplet (concept source, concept cible, méthode). Les lignes syntaxiques et sémantiques portent toujours skos:exactMatch ; les lignes ai/… d'un agent ajoutent leur propre équivalence SKOS et un commentaire qui justifie le choix.

Deux colonnes complètent le fichier : concept_set_uid et concept_set_source_repo, remplies quand une suggestion a été prise dans un concept set d’un dictionnaire de données.

Pour aller plus loin

  • Aligner avec un agent IA — faire travailler un agent, suivre et relire ses suggestions.
  • Agents — ce qu’un agent peut faire dans Linkr, et comment vous gardez la main.
  • Serveur MCP — créer sa clé API et brancher LibreChat ou OpenCode.
  • Évaluation — relire et valider les alignements, y compris ceux créés par un agent.
PrécédentÉditeur d'alignementsSuivantAgent IA

Produit

  • Accueil
  • Démo

Ressources

  • Documentation
  • Ressources
  • Outils
  • Blog

Communauté

  • Code source Framagit
  • Code source Github

À propos

  • InterHop.org
  • Contact

2021–2026 InterHop — CC BY-NC-SA 4.0 (site) · AGPLv3 (logiciel)