Implémentation — Concepts

Atomes et inscription

Notion, contexte, occurrence — les trois actes premiers

Avant-propos

L'article Le socle stratifié a posé la règle d'or : une notion s'inscrit dans un contexte, le résultat est une occurrence, cette occurrence est l'entité. Le présent texte entre dans le détail de cette règle. Il prend chacun des trois termes — notion, contexte, occurrence — et l'examine pour ce qu'il est, pour ce qu'il porte, pour ce qu'il ne porte pas.

Sept sections. Les deux premières introduisent les deux atomes premiers et leur asymétrie. Les troisième et quatrième examinent la notion et le contexte séparément. La cinquième pose la disjonction stricte qui les sépare. La sixième traite de l'inscription comme acte qui les noue. La septième conclut sur l'immuabilité du résultat.


Section 1 — Deux atomes, pas un

Le modèle Stratide Flux pose deux atomes premiers. Pas un. Pas trois. Deux.

Cette précision n'est pas anodine. La plupart des modèles de système d'information posent un atome unique — l'objet, l'entité, la ressource — auquel on ajoute ensuite des attributs, des relations, des contextes. Stratide Flux refuse cette structure. Il pose deux atomes premiers, indépendants l'un de l'autre, et fait du nouage des deux le seul mécanisme producteur d'entités.

Les deux atomes premiers sont la notion et le contexte. Leur partage des fonctions est strict. La notion porte l'identité — ce qui fait qu'on parle de la même chose. Le contexte porte la substance — ce dans quoi cette chose se trouve qualifiée. Aucun des deux ne peut prendre le rôle de l'autre.

Deux atomes premiers, partage strict des fonctions Notion porte l'identité Ce qui fait qu'on parle de la même chose à travers les contextes. — stable — indépendante du système — sans payload, sans état « liste-client », « commande »… Contexte porte la substance Ce dans quoi la notion se trouve qualifiée à un moment donné. — typé — porteur d'un payload — immuable une fois construit « mes », « tous », « région-X »… Aucun des deux ne peut prendre le rôle de l'autre. Cette asymétrie est constitutive.
Figure 1 — Les deux atomes premiers du modèle, dans leur partage strict de fonctions. La notion porte l'identité — elle est ce qu'on désigne. Le contexte porte la substance — il est la qualification à un moment donné. Cette asymétrie est constitutive et ne peut être levée sans détruire la cohérence du modèle.

L'asymétrie entre les deux atomes est constitutive. Si la notion portait sa propre substance, on aurait une seule structure auto-suffisante — et on perdrait la possibilité d'inscrire la même chose dans plusieurs contextes. Si le contexte portait sa propre identité, on aurait des contextes qui se confondraient avec leur propre contenu — et on perdrait la possibilité de comparer deux qualifications de la même notion.

Le partage de fonctions est ce qui permet à une notion d'apparaître dans plusieurs contextes successifs sans cesser d'être elle-même, et à un contexte de qualifier plusieurs notions différentes sans perdre sa propre cohérence. C'est ce qui rend le modèle lisible dans le temps.


Section 2 — La notion, qui porte l'identité

Une notion est un atome de discours. Elle est ce dont on parle quand on parle de quelque chose dans le système. Une notion possède deux propriétés et seulement deux : un identifiant stable, et un nom libre.

L'identifiant stable est ce qui fait qu'on peut désigner la notion à travers le temps. Il est posé une fois et ne change jamais. Le nom libre est ce qui rend la notion lisible à un humain ou à un autre système. Il peut évoluer — on peut renommer une notion sans changer ce qu'elle désigne.

Cette pauvreté de la notion est délibérée. Elle interdit que la notion porte un état, un payload, une qualification interne. Elle interdit qu'elle soit typée par un paramètre. Elle interdit qu'on lui ajoute des attributs en cours de route. Une notion est une étiquette stable et rien d'autre.

La notion : pauvre par construction Ce qu'elle porte Identifiant stable posé une fois, jamais réécrit Nom libre peut évoluer sans changer ce qu'elle désigne Ce qu'elle ne porte pas — aucun payload — aucun état — aucune qualification interne — aucun paramètre de type — aucun attribut variable Conséquence : la même notion peut apparaître dans des contextes différents notion « liste-client » dans contexte « mes » · contexte « tous » · contexte « région-X » → trois inscriptions distinctes, trois occurrences distinctes, une seule notion partagée.
Figure 2 — La notion, dans sa pauvreté constitutive. Elle ne porte que ce qui désigne : un identifiant stable, un nom libre. Tout le reste est interdit. Cette pauvreté est ce qui rend possible le partage de la même notion à travers plusieurs contextes — la signature même du modèle.

La conséquence directe de cette pauvreté est que la même notion peut être inscrite dans plusieurs contextes sans cesser d'être elle-même. La notion liste-client peut apparaître dans un contexte mes pour un commercial, dans un contexte tous pour un administrateur, dans un contexte région-X pour un responsable de zone. Trois inscriptions distinctes, trois occurrences distinctes, une seule notion partagée.

C'est cette propriété qui rend le modèle utilisable dans des systèmes où la même donnée doit être qualifiée de plusieurs manières selon le point de vue qui la lit. La notion ne change pas — c'est le contexte qui change.


Section 3 — Le contexte, qui porte la substance

Un contexte est une qualification typée. Là où la notion désigne, le contexte qualifie. Le contexte porte ce qui caractérise la notion à un moment donné, dans une situation donnée, sous un angle donné.

Un contexte possède trois propriétés : un identifiant propre, un nom libre, et un payload typé. Le payload est la substance du contexte. Il porte les champs qui décrivent ce que la notion représente dans cette qualification précise.

Le payload est typé. Cela signifie que tout contexte est porteur d'un type explicite, choisi par celui qui crée le contexte. Un contexte qui qualifie un endpoint porte un payload de type endpoint. Un contexte qui qualifie un contrat porte un payload de type contrat. Cette typage est la signature de la qualification : il dit ce que ce contexte prétend décrire.

Le payload est immuable. Une fois le contexte construit, son payload ne change plus. Cette propriété n'est pas négociable : c'est elle qui fait du contexte une qualification stable, susceptible d'être référencée dans le temps. Si le payload pouvait changer, deux observations successives du même contexte pourraient donner deux résultats différents — et la lisibilité du modèle s'effondrerait.

Pour autant, le contexte n'est pas fermé. Chaque payload typé porte un champ d'extensions ouvert, qui permet à une application d'ajouter des attributs propres sans modifier le modèle de base. Cette ouverture est contrôlée : elle est limitée à un canal explicite — le champ d'extensions — et ne casse pas la fermeture du système de types qui porte le contexte.

Le contexte : porteur ouvert typé Contexte identifiant propre stable, distinct de tout autre nom libre lisible humainement payload typé immuable une fois construit — champs obligatoires définis par le type — champs optionnels selon le type — champ d'extensions ouvert (canal explicite) Le contexte est typé — il porte explicitement la nature de ce qu'il qualifie. Il est ouvert — il accepte des extensions applicatives par un canal contrôlé. Il est immuable — sa qualification, une fois posée, ne change plus.
Figure 3 — Le contexte comme porteur ouvert typé. Trois propriétés : un identifiant propre, un nom libre, un payload typé. Le payload est immuable mais ouvert — il accepte des extensions applicatives par un canal contrôlé. Cette structure est ce qui rend le contexte stable dans le temps tout en restant adaptable à des usages applicatifs spécifiques.

Cette tension entre fermeture du noyau et ouverture aux extensions est typique des objets stratidiques. Un contexte est stable au sens où sa qualification ne change pas une fois posée, mais il n'est pas fermé au sens où il interdirait toute personnalisation. Il est ouvert sur un canal nommé, et fermé partout ailleurs.


Section 4 — La disjonction stricte

Notion et contexte sont strictement disjoints. Aucune notion n'est un contexte. Aucun contexte n'est une notion. Aucune coercion ne permet de passer de l'un à l'autre. Cette disjonction est posée au niveau du modèle et garantie au niveau du langage qui le porte.

Cette propriété peut sembler évidente — elle ne l'est pas. Beaucoup de modèles confondent les deux rôles dans une seule structure, et perdent de ce fait la capacité de distinguer ce qui désigne de ce qui qualifie. La disjonction stricte de Stratide Flux n'est pas une commodité : c'est une exigence qui structure tout le reste.

La disjonction stricte a deux conséquences pratiques. La première est que le modèle peut être traversé sans confusion : si l'on parcourt une chaîne d'inscriptions, on sait toujours laquelle des deux composantes on lit. La seconde est que toute opération qui prend une notion en argument refusera silencieusement un contexte, et inversement. La discipline du modèle est portée par le système de types : il n'y a pas d'erreur d'exécution à gérer, parce qu'il n'y a pas d'exécution erronée possible.

La disjonction stricte — aucune coercion possible Notions domaine 𝒩 l'ensemble des étiquettes Contextes domaine 𝒦 l'ensemble des qualifications 𝒩 ∩ 𝒦 = ∅ aucun élément commun La discipline du modèle est portée par le système de types lui-même. Pas d'erreur d'exécution — pas d'exécution erronée possible.
Figure 4 — La disjonction stricte entre le domaine des notions et celui des contextes. L'intersection des deux ensembles est vide — aucune entité ne peut être à la fois l'un et l'autre. Cette propriété est garantie par le système de types qui porte le modèle, ce qui exclut toute violation possible à l'exécution.

Cette disjonction est le premier des invariants structurants du modèle. Elle est posée avant tout, et tout le reste s'y adosse.


Section 5 — L'inscription comme acte primitif

Le nouage d'une notion et d'un contexte est l'acte primitif du modèle. Cet acte porte un nom — l'inscription. L'inscription est ce qui rend une notion opérante dans un contexte donné, à un moment donné, sous une instance donnée.

L'inscription est immédiate. À l'inscription, trois choses se produisent simultanément. Premièrement, le couple (notion, contexte) est constitué. Deuxièmement, l'identifiant de l'occurrence est dérivé du couple, par composition. Troisièmement, l'occurrence est produite, prête à être déposée dans la strate de support.

Aucune phase intermédiaire n'est exposée. Pas de validation conditionnelle. Pas d'étape de préparation où l'occurrence existerait sans son identifiant. L'inscription, soit elle se produit, soit elle ne se produit pas. Quand elle se produit, ses trois actes sont indivisibles.

L'inscription : trois actes simultanés notion l'identité contexte la substance instance le déploiement Inscription le couple (notion, contexte) est constitué l'identifiant est dérivé du couple par composition l'occurrence est produite Simultanés. Pas d'étape intermédiaire. L'inscription se produit ou ne se produit pas. Occurrence l'entité, prête à être inscrite dans le support
Figure 5 — L'inscription comme acte primitif. Trois entrées : la notion, le contexte, l'instance. Trois actes simultanés : constitution du couple, dérivation de l'identifiant, production de l'occurrence. Aucune phase intermédiaire n'est exposée. Le résultat est une occurrence prête à être déposée dans la strate de support.

L'instance qui apparaît comme troisième entrée mérite un mot. Une instance désigne un déploiement particulier du modèle — un nœud, une zone, un environnement. Deux inscriptions de la même notion dans le même contexte mais sous deux instances différentes produiront deux occurrences distinctes. L'instance est le préfixe universel qui qualifie toute inscription par son origine.

Ce triplet — instance, notion, contexte — est ce qui détermine l'identifiant universel d'une occurrence. Cet identifiant est composé, au sens littéral : il est construit par composition des trois identifiants composants, dans un format stable et déchiffrable. Lire un identifiant universel revient à lire d'où vient l'occurrence, ce qu'elle désigne, et dans quoi elle se trouve qualifiée.


Section 6 — Immuabilité et identité composée

Une occurrence est immuable. Une fois construite, ses champs ne changent plus. Cette propriété est posée au niveau du modèle et garantie au niveau du langage qui le porte. Aucun mécanisme n'expose une voie pour modifier une occurrence après sa construction.

L'immuabilité a une conséquence forte : toute évolution sémantique passe par une nouvelle inscription. Si une notion doit être qualifiée différemment — passer d'un état actif à un état retiré, par exemple —, on ne modifie pas l'occurrence existante. On inscrit la même notion dans un nouveau contexte, ce qui produit une nouvelle occurrence avec un nouvel identifiant universel. L'ancienne occurrence persiste, comme inscription antérieure de la même notion dans un autre contexte.

Cette accrétion plutôt que cet effacement n'est pas une propriété accessoire. C'est elle qui rend la trace possible. Si l'on pouvait modifier une occurrence en place, l'historique du système serait perdu à chaque modification. Parce qu'on ne peut pas, l'historique est lisible : il suffit de regarder les inscriptions successives d'une même notion pour voir comment elle a été qualifiée à travers le temps.

Évolution par accrétion, jamais par effacement notion stable, partagée Occurrence à t₁ contexte « actif » identifiant : i · n · c₁ persiste — n'est pas effacée Occurrence à t₂ contexte « modifié » identifiant : i · n · c₂ persiste — n'est pas effacée Occurrence à t₃ contexte « retiré » identifiant : i · n · c₃ la qualification courante Trois identifiants distincts. Trois occurrences distinctes. Une seule notion partagée. Trois qualifications successives. L'historique est lisible — par lecture des inscriptions successives.
Figure 6 — L'évolution sémantique par accrétion. Une notion peut être inscrite successivement dans plusieurs contextes — chaque inscription produit une occurrence distincte avec un identifiant distinct. Les anciennes occurrences ne sont pas effacées : elles deviennent des inscriptions antérieures. L'historique est lisible parce que les traces sont conservées.

L'identité composée d'une occurrence permet de retrouver, à partir de son identifiant, les trois composantes qui l'ont produite. Cette propriété transforme l'identifiant en clé de lecture : il ne désigne pas seulement une entité, il dit aussi ce qu'elle est, d'où elle vient, dans quoi elle se trouve qualifiée. Toute autre information sur l'occurrence est dérivable de cette désignation.


Section 7 — Conclusion

Le modèle Stratide Flux pose deux atomes premiers — la notion et le contexte —, leur disjonction stricte, l'inscription comme acte primitif qui les noue, et l'occurrence comme produit immuable de cet acte. Ces quatre énoncés suffisent à fonder l'ensemble du modèle. Tout ce qui suit en dérive.

L'article suivant, Les neuf entités, présente le catalogue des inscriptions effectivement manipulables dans le socle. Chacune est une occurrence au sens posé ici, distinguée des autres uniquement par le type de contexte qui la qualifie. L'unité du mécanisme et la diversité des entités sont les deux faces d'une même propriété : un seul mécanisme d'inscription, neuf qualifications typées différentes.