Atomes et inscription
Notion, contexte, occurrence — les trois actes premiers
Les fondements du modèle Stratide Flux, énoncés et matérialisés
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.
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 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.
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.
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'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.
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.