Créer un nœud ou un attribut ?
| Critère | Créer un nœud si… | Ajouter un attribut si… |
|---|---|---|
| Existence propre | Le concept existe indépendamment des autres nœuds. Ex : EMPLOYEE existe même sans SKILL associé. | L’information n’a pas de sens sans son nœud parent. Ex : start_date sans EMPLOYEE n’existe pas. |
| Relations propres | Le concept est relié à d’autres concepts. Ex : SUPPLIER — located_in — COUNTRY. | L’information ne pointe vers aucun autre concept. Ex : country_name est une simple chaîne de caractères. |
| Concept partagé | Le concept est partagé par plusieurs nœuds. Ex : SKILL est lié à plusieurs EMPLOYEE et JOB_PROFILE. | L’information est propre à une seule instance. Ex : employee_id est unique à chaque EMPLOYEE. |
| Questions de l’agent IA | L’agent IA devra naviguer vers ce concept ou partir de lui. Ex : « Tous les fournisseurs de cette pièce ? » → PART — is_supplied_by — SUPPLIER. | L’agent IA n’a besoin que de lire la valeur. Ex : « Date de création de cette pièce ? » → created_at de PART suffit. |
| Évolution dans le temps | Le concept peut changer ou avoir un historique propre. Ex : la certification d’un SUPPLIER (obtenue, renouvelée, révoquée). | La valeur est stable et intrinsèque. Ex : le legal_registration_number du SUPPLIER. |
| Volumétrie | Le concept a plusieurs attributs propres. Un nœud avec 3+ attributs mérite d’exister. Ex : un PART a un nom, un poids, un matériau… | La valeur est atomique : un seul champ, un seul type. Ex : weight_kg: 2.4 |
| ★ Filtres | L’agent IA devra filtrer sur ce concept depuis plusieurs types de nœuds. Ex : COUNTRY filtre des SUPPLIER, des PLANT, des EMPLOYEE → nœud pivot. | Le filtre ne s’applique qu’à un seul type de nœud. Ex : status: "approved" ne filtre que des SUPPLIER. |
| ★ Navigation | Le concept sert de point d’entrée de la requête. Ex : « Tout ce qui est basé en Italie ? » → COUNTRY comme point de départ. | L’agent IA lit la valeur sans naviguer. Ex : « Nationalité de ce fournisseur ? » → SUPPLIER.country = "Italy" suffit. |
Exemple :
- ✅
SUPPLIERcomme nœud —PART — is_supplied_by — SUPPLIER — located_in — COUNTRY: l’agent IA filtre depuisPART,SUPPLIERetCOUNTRY. « Tous les fournisseurs italiens approuvés ? » devient une navigation naturelle. - ❌
STATUScomme nœud —PART — has_status — STATUS {value: "approved"}: l’agent IA ne filtre que depuisPART.WHERE PART.status = "approved"suffit, pas besoin de naviguer.