Comment créer un graphe de connaissances : méthode et exemple pratique
Créer un graphe de connaissances consiste à représenter des entités et les relations qui les unissent.
Exemple :
Marie → possède → Compétence SEO
Formation SEO intermédiaire → développe → Compétence SEO intermédiaire
Certification SEO → exige → Compétence SEO avancée
Contrairement à une simple liste ou à un tableau, le graphe permet de parcourir plusieurs relations.
Il peut répondre à des questions comme :
- quelle formation permet à Marie d’atteindre le niveau requis ?
- quelles personnes travaillent sur le même projet ?
- quels incidents concernent le même composant ?
- quels documents justifient une relation ?
- quels produits sont couverts par un contrat encore valide ?
Un graphe utile n’est pas celui qui contient le plus de nœuds. C’est celui qui représente les relations nécessaires aux questions du système.
Ce guide présente une méthode indépendante d’un outil particulier.
Cas pratique
Nous allons créer un graphe capable de recommander un parcours de formation.
Le système devra relier :
- les participants ;
- les compétences ;
- les niveaux ;
- les formations ;
- les certifications ;
- les sessions ;
- les formateurs.
Étape 1 — Définir les questions
Commencez par les requêtes attendues.
- Quelles compétences Marie possède-t-elle ?
- Quelle formation exige cette compétence ?
- Quelle formation développe le niveau suivant ?
- Quelle certification valide le niveau avancé ?
- Quelles sessions sont disponibles ?
- Qui anime chaque session ?
- Quelle source confirme le prérequis ?
Ces questions déterminent les entités et relations à représenter.
Étape 2 — Définir le périmètre
Le premier graphe couvrira uniquement :
- les compétences SEO ;
- trois niveaux ;
- deux formations ;
- une certification ;
- quelques participants et sessions.
Il ne couvrira pas encore :
- les paiements ;
- les contrats ;
- la présence ;
- les évaluations détaillées ;
- la comptabilité.
Un périmètre limité facilite les tests.
Étape 3 — Identifier les types de nœuds
Les nœuds représentent les entités.
Pour notre projet :
Participant
Competence
Formation
Certification
Session
Formateur
Document
Chaque type doit être défini.
Participant
Personne susceptible de suivre une formation.
Compétence
Capacité possédée ou développée.
Formation
Programme pédagogique visant une ou plusieurs compétences.
Session
Mise en œuvre datée d’une formation.
Certification
Dispositif validant une compétence ou un niveau.
Document
Source justifiant une information.
Étape 4 — Définir les relations
Les relations doivent être précises.
Participant → POSSEDE → Competence
Formation → DEVELOPPE → Competence
Formation → EXIGE → Competence
Certification → VALIDE → Competence
Session → MET_EN_OEUVRE → Formation
Formateur → ANIME → Session
Relation → JUSTIFIEE_PAR → Document
Évitez une relation générique comme :
EST_LIE_A
Elle n’indique pas la nature du lien.
Étape 5 — Construire un dictionnaire du graphe
Documentez les nœuds.
| Type | Identifiant | Propriétés principales |
|---|---|---|
| Participant | participant_id | nom, email |
| Compétence | competence_id | libellé, niveau |
| Formation | formation_id | titre, durée |
| Session | session_id | date, capacité |
| Certification | certification_id | titre, organisme |
| Formateur | formateur_id | nom |
| Document | document_id | titre, version, date |
Documentez également les relations.
| Relation | Sujet | Objet | Signification |
|---|---|---|---|
| POSSEDE | Participant | Compétence | Compétence détenue |
| DEVELOPPE | Formation | Compétence | Compétence visée |
| EXIGE | Formation | Compétence | Prérequis |
| VALIDE | Certification | Compétence | Compétence certifiée |
| ANIME | Formateur | Session | Animation d’une session |
| MET_EN_OEUVRE | Session | Formation | Formation réalisée |
Ce dictionnaire joue le rôle d’un schéma ou d’une ontologie légère.
Étape 6 — Choisir les identifiants
Chaque entité doit posséder un identifiant stable.
Exemples :
participant:marie-dupont
competence:seo-debutant
formation:seo-intermediaire
session:seo-intermediaire-2026-10
Évitez d’utiliser uniquement le nom affiché.
Deux personnes peuvent porter le même nom.
Deux formations peuvent posséder des titres proches.
Étape 7 — Préparer les données
Un tableur peut suffire pour préparer le premier import.
Participants
| participant_id | nom |
|---|---|
| P001 | Marie Dupont |
| P002 | Jacques Martin |
Compétences
| competence_id | libellé | niveau |
|---|---|---|
| C001 | SEO | Débutant |
| C002 | SEO | Intermédiaire |
| C003 | SEO | Avancé |
Formations
| formation_id | titre | durée |
|---|---|---|
| F001 | Formation SEO intermédiaire | 14 |
| F002 | Formation SEO avancée | 21 |
Relations
| sujet | relation | objet |
|---|---|---|
| P001 | POSSEDE | C001 |
| F001 | EXIGE | C001 |
| F001 | DEVELOPPE | C002 |
| F002 | EXIGE | C002 |
| F002 | DEVELOPPE | C003 |
Cette structure en triplets est facilement transformable en graphe.
Étape 8 — Créer les premiers nœuds
Représentation conceptuelle :
(:Participant {
id: "P001",
nom: "Marie Dupont"
})
(:Competence {
id: "C001",
domaine: "SEO",
niveau: "Débutant"
})
(:Formation {
id: "F001",
titre: "Formation SEO intermédiaire",
dureeHeures: 14
})
La syntaxe exacte dépend de la technologie choisie.
Étape 9 — Créer les relations
Marie
→ POSSEDE
→ Compétence SEO débutant
Formation SEO intermédiaire
→ EXIGE
→ Compétence SEO débutant
Formation SEO intermédiaire
→ DEVELOPPE
→ Compétence SEO intermédiaire
Formation SEO avancée
→ EXIGE
→ Compétence SEO intermédiaire
Formation SEO avancée
→ DEVELOPPE
→ Compétence SEO avancée
Le graphe forme désormais un parcours.
Étape 10 — Ajouter des propriétés aux relations
Une relation peut posséder son propre contexte.
Exemple :
Marie → POSSEDE → Compétence SEO débutant
Propriétés :
dateValidation : 2026-04-12
source : Evaluation 458
statut : Validé
Autre exemple :
Formation SEO avancée → EXIGE → Compétence SEO intermédiaire
Propriétés :
obligatoire : true
version : 2.1
dateEffet : 2026-01-01
Les propriétés permettent de représenter le temps et la provenance.
Étape 11 — Ajouter les documents sources
Créez des nœuds Document.
CatalogueFormation2026
ReglementPedagogique2026
EvaluationMarie458
Relations :
Formation SEO avancée
→ DECRITE_DANS
→ CatalogueFormation2026
Prérequis intermédiaire
→ JUSTIFIE_PAR
→ ReglementPedagogique2026
Compétence SEO débutant de Marie
→ VALIDEE_PAR
→ EvaluationMarie458
Le graphe devient traçable.
Étape 12 — Représenter le temps
Une relation peut cesser d’être vraie.
Exemple :
Paul → ANIME → Session SEO octobre
Cette relation concerne une session précise.
Pour un emploi :
Marie → TRAVAILLE_POUR → Entreprise Alpha
ajoutez :
dateDebut
dateFin
statut
Sans dimension temporelle, le système pourrait présenter une ancienne relation comme actuelle.
Étape 13 — Résoudre les identités
Une même entité peut apparaître sous plusieurs formes :
Marie Dupont
M. Dupont
Marie D.
Le système doit déterminer s’il s’agit de la même personne.
Utilisez plusieurs critères :
- identifiant interne ;
- adresse électronique ;
- entreprise ;
- date de naissance ;
- contexte ;
- source.
Exemple de problème
Marie Dupont
peut désigner deux personnes différentes.
Fusionner automatiquement les deux créerait de fausses relations.
Table de correspondance
| Mention | Entité résolue | Confiance |
|---|---|---|
| Marie D. | P001 | 0,90 |
| Mme Dupont | Non résolu | 0,45 |
| marie@example.fr | P001 | 1,00 |
Les cas ambigus doivent être examinés ou conservés comme non résolus.
Étape 14 — Détecter les doublons
Doublons possibles :
Formation SEO avancée
Formation avancée SEO
SEO avancé
Avant la fusion, vérifiez :
- l’identifiant ;
- le niveau ;
- la durée ;
- la source ;
- la version ;
- le programme.
Deux noms proches ne désignent pas nécessairement le même contenu.
Étape 15 — Définir les contraintes
Exemples :
Un participant doit posséder un identifiant unique.
Une session met en œuvre exactement une formation.
Une formation développe au moins une compétence.
Une relation EXIGE relie une formation à une compétence.
Les contraintes peuvent être appliquées :
- dans la base ;
- dans le code ;
- grâce à une ontologie ;
- grâce à un langage de validation.
Étape 16 — Interroger le graphe
Question 1
Quelles compétences Marie possède-t-elle ?
Motif :
Marie
→ POSSEDE
→ Competence
Question 2
Quelles formations Marie peut-elle suivre ?
Motif :
Marie
→ POSSEDE
→ Competence
← EXIGE
← Formation
Question 3
Quel parcours conduit à la certification ?
Motif :
Participant
→ POSSEDE
→ Competence
← EXIGE
← Formation
→ DEVELOPPE
→ Competence suivante
← VALIDE
← Certification
Le graphe peut suivre plusieurs étapes.
Exemple conceptuel en Cypher
MATCH (p:Participant {id: "P001"})-[:POSSEDE]->(c:Competence)
MATCH (f:Formation)-[:EXIGE]->(c)
RETURN p.nom, f.titre
Cette requête cherche les formations dont Marie possède déjà le prérequis.
Requête de parcours
MATCH path =
(p:Participant {id: "P001"})
-[:POSSEDE]->
(:Competence)
<-[:EXIGE]-
(:Formation)
-[:DEVELOPPE]->
(:Competence)
RETURN path
La syntaxe doit être adaptée au modèle technique et à la version du moteur utilisé.
Étape 17 — Produire une réponse explicable
Le système ne doit pas seulement retourner le nom d’une formation.
Il peut afficher :
Formation recommandée :
Formation SEO intermédiaire.
Pourquoi ?
- Marie possède la compétence SEO débutant.
- Cette compétence est le prérequis de la formation intermédiaire.
- La formation intermédiaire développe le niveau nécessaire à la formation avancée.
Sources :
- Évaluation 458.
- Catalogue des formations 2026.
- Règlement pédagogique 2.1.
Le chemin du graphe fournit l’explication.
Étape 18 — Tester la qualité
Test de nœuds
Les entités possèdent-elles les bons types ?
Test de relations
Les relations sont-elles exactes ?
Test d’identité
Les doublons sont-ils correctement traités ?
Test de provenance
Chaque relation critique possède-t-elle une source ?
Test temporel
Les relations anciennes sont-elles identifiées ?
Test de parcours
Le système retrouve-t-il le chemin attendu ?
Test d’absence
Le système distingue-t-il :
- faux ;
- inconnu ;
- non vérifié ?
Exemple de jeu de tests
| Question | Résultat attendu |
|---|---|
| Que possède Marie ? | SEO débutant |
| Quelle formation peut-elle suivre ? | SEO intermédiaire |
| Quelle formation ne peut-elle pas encore suivre ? | SEO avancée |
| Pourquoi ? | Niveau intermédiaire manquant |
| Quelle source valide son niveau ? | Évaluation 458 |
Étape 19 — Relier le graphe aux documents
Le graphe fournit la structure.
Les documents fournissent les explications détaillées.
Architecture :
Question
↓
Recherche dans le graphe
↓
Identification des entités et relations
↓
Récupération des documents sources
↓
LLM
↓
Réponse expliquée
Cette combinaison constitue une forme de GraphRAG.
Étape 20 — Organiser la mise à jour
Définissez comment traiter :
- une nouvelle formation ;
- une formation supprimée ;
- un prérequis modifié ;
- une compétence renommée ;
- une nouvelle version du catalogue ;
- une erreur de fusion ;
- une source expirée.
Exemple de changement
Ancienne règle :
Formation avancée exige le niveau débutant.
Nouvelle règle :
Formation avancée exige le niveau intermédiaire.
Ne remplacez pas nécessairement la relation sans historique.
Conservez :
- l’ancienne version ;
- la date de fin ;
- la nouvelle relation ;
- la source ;
- la date d’effet.
Quelle technologie choisir ?
Fichiers ou tableurs
Adaptés à :
- un prototype ;
- un petit volume ;
- une validation métier initiale.
RDF
Adapté à :
- l’interopérabilité ;
- les standards sémantiques ;
- les ontologies ;
- SPARQL.
Base graphe de propriétés
Adaptée à :
- des applications opérationnelles ;
- des parcours ;
- des propriétés sur les relations ;
- des requêtes relationnelles.
Base SQL avec tables de relations
Possible lorsque :
- le volume reste maîtrisé ;
- les relations sont relativement simples ;
- l’équipe maîtrise déjà SQL.
L’outil doit être choisi après les questions et le modèle.
Architecture minimale
Tableur des entités
+
Tableur des relations
+
Identifiants stables
+
Jeu de requêtes
+
Tests
Architecture avancée
Documents
+
Pipeline d’extraction
+
Ontologie
+
Graphe
+
Index vectoriel
+
Moteur de règles
+
LLM
+
Évaluation
Erreurs fréquentes
Créer le graphe avant les questions
Le modèle contient de nombreuses relations inutiles.
Transformer chaque mot en nœud
Seules les entités utiles doivent être représentées.
Utiliser EST_LIE_A
La relation ne fournit pas assez de sens.
Ne pas définir d’identifiants
Les doublons deviennent difficiles à gérer.
Fusionner selon le nom uniquement
Les homonymes sont confondus.
Oublier les sources
Les relations ne peuvent plus être vérifiées.
Oublier les dates
Les anciennes connaissances apparaissent comme actuelles.
Laisser un LLM valider ses propres extractions
Le contrôle doit utiliser des règles, des sources ou une validation humaine.
Ne pas comparer avec une solution simple
Un tableau ou une base SQL peut parfois suffire.
Checklist finale
- [ ] les questions sont définies ;
- [ ] le périmètre est limité ;
- [ ] les types de nœuds sont documentés ;
- [ ] les relations possèdent une signification précise ;
- [ ] les identifiants sont stables ;
- [ ] les propriétés nécessaires sont définies ;
- [ ] les sources sont représentées ;
- [ ] les dates importantes sont conservées ;
- [ ] les doublons sont contrôlés ;
- [ ] les contraintes sont testées ;
- [ ] les requêtes prioritaires fonctionnent ;
- [ ] les réponses sont explicables ;
- [ ] une procédure de mise à jour existe.
À retenir
- Un graphe de connaissances commence par des questions.
- Les nœuds représentent les entités.
- Les relations doivent être précises.
- Les identifiants doivent être stables.
- Le dictionnaire du graphe documente le modèle.
- Les propriétés ajoutent le contexte.
- La provenance permet de vérifier les connaissances.
- Les dates évitent d’utiliser des relations obsolètes.
- La résolution d’entités constitue une étape critique.
- Les contraintes améliorent la cohérence.
- Les chemins du graphe peuvent expliquer une recommandation.
- Le graphe doit être étendu progressivement.
Continuer
Comprendre les graphes de connaissances