Du diagramme intuitif au meta-modele M2 — la distance est courte
Six types, des relations typees, des contraintes implicites : un proto-fichier de definition
Document source : Diapositive Ontologie des mots et des choses rapportes par l'humain de la nature, 3 novembre 2017 Croise avec : Architecture en couches — M3, M2-meta, M2 racines Auteur : Stephane Erard -- 13 avril 2026
La question de cet article
Cet article pose une question simple et en tire les consequences : a quelle distance le schema de 2017 se trouve-t-il d'un meta-modele formel de niveau M2 ? La reponse est : plus pres qu'on ne le croirait.
Le schema de 2017 est un diagramme PowerPoint. Il ne contient pas une ligne de code. Il n'est pas ecrit dans un langage formel. Il n'a pas de grammaire explicite. Mais il a une structure -- six types, des relations orientees, des contraintes implicites, une topologie -- et cette structure est celle d'un proto-meta-modele.
Pour comprendre cette affirmation, il faut d'abord comprendre ce qu'est un meta-modele.
Ce qu'est un meta-modele M2
L'article Architecture en couches decrit la pile MOF (Meta-Object Facility) qui structure le compilateur metacratique de 2026. Cette pile distingue quatre niveaux :
M3 est le meta-meta-modele : cinq primitives auto-descriptives -- MetaConcept, MetaProperty, MetaReference, MetaConstraint, MetaInherits -- qui se decrivent dans leur propre langage. M3 ne bouge presque jamais. C'est le niveau ou vivent les regles de formation des regles.
M2 est le niveau des meta-modeles : les vocabulaires d'attributs specialises construits sur M3. Le DDD DSL, le Content DSL, le Law.Dsl sont des meta-modeles M2. Ils definissent les types, les proprietes, les relations et les contraintes d'un domaine specifique. Un meta-modele M2 est, en essence, une legende -- il dit comment lire les cartes M1 qui l'utilisent.
M1 est le niveau des modeles : le code annote que les developpeurs ecrivent en utilisant les attributs M2. C'est la carte de votre domaine.
M0 est le niveau de l'execution : les instances reelles qui tournent.
Un fichier de definition M2 contient donc : des types (les concepts du domaine), des proprietes (les attributs de chaque type), des references (les relations entre types), et des contraintes (les regles que les instances M1 doivent respecter).
Le schema de 2017 lu comme proto-M2
Relisons le schema de 2017 avec les lunettes du meta-modeleur. Qu'y voyons-nous ?
Six types
Le schema definit six entites clairement identifiees : Espace, Temps, Continuum, Individu, Role, Personne. En notation M2, chacune serait un [MetaConcept] -- un type formel dans le meta-modele.
Des proprietes implicites
Chaque concept a des attributs implicites. L'Espace a une etymologie (spatium), une description (stade, champ de course, arene, etendue, duree). Le Temps a une etymologie (tempus), une note historique (le p muet ajoute en 1835). Le Continuum a une definition (espace tri-dimensionnel + temps comme 4e dimension). En notation M2, chacun de ces attributs serait un [MetaProperty] -- une propriete formelle du type.
Des relations typees
Le schema dessine des relations orientees entre les types. Le Continuum compose Espace et Temps. Le Role divise l'Individu. La Personne joue un Role dans un Continuum. La Personne est vue par une autre Personne. En notation M2, chacune de ces relations serait un [MetaReference] -- une reference formelle entre deux types, avec une direction et une cardinalite.
Des contraintes implicites
Le schema contient des contraintes non formalisees mais reconnaissables. L'Individu est indivisible (c'est sa definition) mais le Role le divise (c'est le paradoxe central). La Personne n'existe que dans le regard d'une autre Personne (pas de Personne sans regard d'autrui). Le Continuum est necessaire pour que la Personne joue un Role (pas de Role sans Continuum). En notation M2, chacune de ces contraintes serait un [MetaConstraint] -- une regle formelle que les instances doivent respecter.
Un parcours prescrit
L'instruction « COMMENCER LECTURE PAR LA » est, en notation M2, un hint de navigation -- une indication formelle du point d'entree dans le graphe de types. C'est l'equivalent d'un [RootConcept] ou d'un [EntryPoint] dans un meta-modele formel.
La reecriture en notation M2
Voici le schema de 2017 reecrit en notation M2 formelle. Ce n'est pas du code compilable -- c'est une notation intermediaire qui montre la structure formelle implicite dans le diagramme PowerPoint.
La distance entre ce diagramme de classes et le diagramme PowerPoint original est courte. Les types sont les memes. Les relations sont les memes. Les proprietes sont les memes, simplement rendues explicites. Les contraintes sont les memes, simplement formalisees.
Les cinq primitives M3 dans le schema de 2017
L'article sur l'architecture en couches decrit les cinq primitives du M3 qui est deja implemente dans le monorepo : MetaConcept, MetaProperty, MetaReference, MetaConstraint, MetaInherits. Cherchons ces cinq primitives dans le schema de 2017.
MetaConcept : les six concepts (Espace, Temps, Continuum, Individu, Role, Personne) sont six MetaConcepts.
MetaProperty : les etymologies, les definitions, les notes historiques sont des MetaProperties de ces concepts.
MetaReference : les relations « compose », « divise », « joue dans », « est vue par » sont des MetaReferences entre concepts.
MetaConstraint : l'indivisibilite de l'Individu, la necessite du Continuum pour le Role, la necessite du regard d'autrui pour la Personne sont des MetaConstraints implicites.
MetaInherits : la seule primitive absente. Le schema ne contient pas de relation d'heritage entre les concepts. C'est significatif : le schema pense en composition (le Continuum compose Espace et Temps) et en relation (la Personne joue un Role), pas en classification (le Role est un sous-type de quelque chose). L'absence d'heritage est un indice que le schema pense en graphe conceptuel (Sowa) plutot qu'en hierarchie de classes. Les graphes conceptuels privilegient les relations sur les classifications -- et c'est exactement ce que le schema fait.
Ce que le compilateur de 2026 ajoute
La pile MOF complete -- M3, M2-meta, M2 racines, M2 instances, bridges, quality gates, M0 -- ajoute au proto-M2 du schema de 2017 plusieurs couches que le schema ne pouvait pas contenir.
La generation automatique. Les meta-generateurs (CommonDslGenerator, LawDslGenerator) prennent les definitions M2 et produisent automatiquement les instances compilables. Le schema de 2017, etant un PowerPoint, ne genere rien automatiquement. La distance entre dessiner six concepts et generer du code compilable a partir de ces six concepts est la distance entre l'intuition et l'outil.
La verification croisee. Les bridges (Law.Commons.Bridge, Law.Citizen.Bridge) verifient la coherence entre deux meta-modeles. Le schema de 2017, etant un seul diagramme, n'a pas besoin de bridges : tout est sur le meme plan. Mais des qu'on deploie le schema en plusieurs vocabulaires separes -- un pour le droit, un pour les biens communs, un pour les citoyens -- la coherence entre ces vocabulaires devient un probleme, et les bridges deviennent necessaires.
Le parametrage par META(Ex x Ty). Les instances M2 du compilateur sont parametrees par leur signature META(Ex x Ty) : Law.France2026.Etalab.Dsl, Law.France1995.Erard.Dsl, etc. Le schema de 2017 contient le Continuum (le couple Espace x Temps) mais ne le parametre pas : il n'y a pas de variables indexees, pas de notation formelle. La parametrisation est le pas que la metacratie de 2026 fait au-dela du schema de 2017 : passer du concept de Continuum au parametre (Ex x Ty), c'est passer de l'ontologie a l'outil.
Le quality gate. Le quality gate mesure la couverture, la complexite et la qualite des instances M0. Le schema de 2017 n'a pas de quality gate -- il ne distingue pas entre des usages « corrects » et « incorrects » de ses six concepts. Le quality gate est la transposition technique de ce que la metacratie nomme le « theoreme des limites d'expressivite » : on ne peut verifier que ce qu'on a rendu explicite.
Sowa en filigrane
La structure concepts-relations du schema est exactement celle des graphes conceptuels de Sowa. Le geste de reification -- la relation Espace-Temps devenue concept Continuum -- est un geste sowaien. Le fait que l'auteur ait rencontre Sowa a dix-huit ans explique cette affinite structurelle.
Mais il faut aller plus loin. Sowa, dans Conceptual Structures (1984), construit la premiere ontologie formelle qui se decrit elle-meme de maniere implementable. C'est l'ancetre direct du Meta-Object Facility (MOF) de l'OMG qui structure tout le compilateur metacratique de 2026. La lignee est directe : Sowa -> MOF -> M3 -> les cinq primitives auto-descriptives.
Le schema de 2017 se situe sur cette lignee, a un stade pre-formel. Il utilise les concepts de Sowa (types, relations, reification) sans la notation de Sowa (graphes conceptuels formels). Il dessine un meta-modele sans le formaliser. C'est un proto-Sowa -- une carte conceptuelle qui contient la structure d'un graphe conceptuel sans en avoir la syntaxe.
La distance entre le proto-Sowa de 2017 et le M2 formel de 2026 n'est pas une distance de nature mais une distance de degre. C'est la meme structure, rendue progressivement plus explicite : d'abord un dessin sur PowerPoint, puis un diagramme de classes, puis des attributs C#, puis du code genere. Chaque etape ajoute de la formalisation sans changer la structure sous-jacente.

La these de cet article
La these de cet article tient en une phrase : un ingenieur qui dessine six types relies par des relations typees sur un PowerPoint fait deja du meta-modelage, meme s'il ne le sait pas.
Cette these n'est pas triviale. Elle dit que le meta-modelage n'est pas une activite reservee aux specialistes du Model-Driven Engineering. C'est une activite cognitive fondamentale : identifier les types, les relations entre les types, et les contraintes sur ces relations. Tout ingenieur, tout architecte, tout penseur qui dessine un schema conceptuel fait du meta-modelage informel.
Ce qui distingue le meta-modelage formel du meta-modelage informel, ce n'est pas la pensee : c'est l'outil. Le meta-modeleur formel dispose d'un compilateur qui verifie la coherence de ses definitions, qui genere automatiquement les artefacts, qui detecte les violations de contraintes. Le meta-modeleur informel dispose d'un PowerPoint. La pensee est la meme ; l'outillage est different.
Le projet metacratique de 2026 est, en un sens, le passage du meta-modelage informel de 2017 au meta-modelage formel. Les six concepts deviennent des MetaConcepts. Les etymologies deviennent des MetaProperties. Les relations deviennent des MetaReferences. Les contraintes implicites deviennent des MetaConstraints explicites. Et le tout est encadre par un M3 auto-descriptif qui garantit la coherence de l'ensemble.
La diapositive de novembre 2017 est le proto-fichier M2 de la metacratie. Le compilateur de 2026 en est la realisation outillee. La distance entre les deux est courte -- mais elle a pris neuf ans a parcourir.