GRUNDNORM · COUCHE CANONIQUE DE VÉRITÉ DU DROIT
Là où une IA vous dit ce que le droit énonce, Grundnorm prouve ce qu'il signifiait.
Fournissez un identifiant ouvert et une date. Le système renvoie l'enregistrement scellé de ce que cette norme signifiait à cette date, décomposé en atomes déontiques, chacun portant le fragment littéral du texte dont il provient, signé avec Ed25519.
Il ne répond pas à des questions juridiques. Il résout le sens et prouve la résolution.
PAS UN PRODUIT AUQUEL ON S'ABONNE
Une plateforme construite autour de votre corpus, pas un rayon où l'on se sert.
Il n'existe ni offre en libre-service ni déploiement générique. Vous apportez vos spécifications, votre corpus, vos sources et vos signataires, et le déploiement est construit autour d'eux. Le mode d'arrivée du corpus vous appartient : un journal officiel, une livraison en masse, votre propre gestionnaire documentaire, votre propre API. Ce que la plateforme résout, c'est tout ce qui se passe après l'ingestion.
Parlons de votre corpusSUR LES CHIFFRES DE PRÉCISION
Nous n'en publions aucun, et c'est une position, non une lacune.
Un chiffre de précision mesuré sur cinq articles d'un règlement ne dit rien d'un corpus de droit commercial dans un autre pays, dans une autre langue, sous d'autres institutions. Agréger des corpus dissemblables produit un nombre sans référent. Ici, la précision est un critère de recevabilité par mission, mesuré sur votre corpus et par vos juristes. Méfiez-vous de tout fournisseur qui vous montre un chiffre de précision unique. Y compris nous, si nous devions un jour vous en montrer un.
VÉRIFIEZ PAR VOUS-MÊME
Ne nous croyez pas sur parole. Le démonstrateur est livré dans le paquet.
Le point d'accès et sa clé sont intégrés au SDK publié : ce code s'exécute tel quel. La version est épinglée à dessein : une page qui dit "vérifiez par vous-même" ne doit pas casser quand nous livrons.
pip install grundnorm==0.5.0
from grundnorm import GrundnormClient
c = GrundnormClient()
n = c.resolve(id="http://data.europa.eu/eli/reg/2016/679/art_99",
jurisdiction="EU", at="2026-01-01", domain="legislation")
print(n.status, n.verification["verdict"], n.verification["absence"])Lisez lentement, car tout l'argument tient en trois mots. Le système ne possède pas cet article. Il le dit. Et il le prouve : la réponse négative porte une preuve cryptographique de non-inclusion contre un engagement signé sur l'ensemble. Puis il refuse de se déclarer faisant autorité, car le démonstrateur est signé avec une clé que nous générons et publions, donc nous pourrions en contrefaire les signatures. Une couche de vérification incapable de vous dire quand ne pas lui faire confiance ne vaut rien.
La preuve est bornée et le dit. Elle ne prouve pas que l'article n'existe pas en droit de l'UE ; elle prouve que, dans un périmètre déclaré et signé, il n'y figure pas. La même réponse énonce ce périmètre : un corpus de démonstration de cinq enregistrements scellés.
TREIZE VERDICTS, PAS UNE COCHE
Il ne peut pas renvoyer un simple "ok".
Chaque réponse nomme celui d'un ensemble fermé de verdicts dans lequel elle se situe, et l'ensemble est exporté par le paquet, afin que vous puissiez le lire sans nous le demander. Treize pour un enregistrement qui existe, dix pour une absence attestée, ordonnés de l'échec au succès. Onze des treize sont autant de façons distinctes de dire non : contenu altéré, vue incohérente, hors de la fenêtre de scellement, signature invalide, provenance non prise en charge, répond à une autre question. Seuls les deux derniers sont des résultats que l'on qualifierait de succès, et l'un des deux refuse encore de revendiquer l'autorité.
from grundnorm import VERDICTS, ABSENCE_VERDICTSTROIS ÉTATS, PAS DEUX
Quand deux lectures compétentes divergent réellement, il ne désigne pas de gagnant.
Chaque atome déontique porte un état : fixed, needs_review ou for_the_court. Le dernier est l'essentiel. Là où des lectures indépendantes divergent sur le fond, la machine enregistre la divergence et la laisse au tribunal, plutôt que de choisir une lecture pour paraître sûre d'elle. L'état découle de l'accord entre lectures indépendantes, non de la confiance d'un modèle en lui-même.
Celui-ci, vous ne pouvez pas le reproduire dans le démonstrateur, et nous préférons le dire plutôt que de le feindre. Cinq articles choisis pour montrer la chaîne de traitement ne produisent pas de divergence réelle, et sceller un enregistrement divergent à dessein reviendrait à fabriquer un désaccord que le moteur n'a jamais trouvé, ce que ce produit existe précisément pour empêcher.
CE QU'EST LE DÉMONSTRATEUR
Cinq enregistrements scellés, des clés que nous publions, et une charge utile qui l'admet.
Le corpus public est un échantillon d'un règlement publié comme démonstrateur, non un déploiement institutionnel. Ses sceaux dérivent d'une clé que nous générons et publions : n'importe qui pourrait les contrefaire, et le vérificateur le déclare explicitement plutôt que de vous laisser le découvrir. La réponse porte la custody comme unverified, le registre comme unanchored et la classification comme not present. Rien de cela n'est un défaut que l'on divulgue. C'est le produit qui fonctionne : une couche d'attestation dont la première tâche est de vous dire jusqu'où on peut lui faire confiance.
Apportez-nous votre corpus.
Grundnorm est une entreprise indépendante de Quantum Nexus Ventures FZCO, une sœur de Nexus Legal plutôt qu'une de ses fonctionnalités. Les déploiements sont cadrés par mission, y compris les critères de recevabilité au regard desquels vos juristes les mesureront.