ReasoningRaisonnement
bra0 reasons symbolic-first. SPARQL on the Knowledge Space answers 90 % of queries ; named-entity recognition (NER) handles 7 % ; an LLM is involved in only 3 %, and only when its prompt is generated from the Knowledge Space itself. Every output carries a provenance chain.bra0 raisonne d'abord par le symbolique. SPARQL sur le Knowledge Space répond à 90 % des requêtes ; la reconnaissance d'entités nommées (NER) prend en charge 7 % ; un LLM n'intervient que dans 3 % des cas, et uniquement quand son prompt est généré à partir du Knowledge Space lui-même. Chaque sortie porte une chaîne de provenance.
Why symbolic firstPourquoi le symbolique d'abord
An LLM that hallucinates costs more than an LLM that runs. Symbolic-First Cascade (ADR-027) is the project's response : at every reasoning point, the system tries the cheapest, most auditable engine first, and falls through to the next tier only if the previous one cannot answer. SPARQL queries on the Knowledge Space — deterministic, provenance-traceable, sub-millisecond — handle the bulk of the work. NER fills the gap when an entity is mentioned but not yet linked. The LLM enters last, and only with a prompt that was itself generated from the Knowledge Space (bra0:NS-3).
Un LLM qui hallucine coûte plus cher qu'un LLM qui s'exécute. La cascade symbolique d'abord (ADR-027) est la réponse du projet : à chaque point de raisonnement, le système tente d'abord le moteur le moins cher et le plus auditable, et ne descend au niveau suivant que si le précédent ne peut répondre. Les requêtes SPARQL sur le Knowledge Space — déterministes, traçables en provenance, sous-milliseconde — prennent en charge l'essentiel du travail. NER comble le manque quand une entité est mentionnée mais pas encore liée. Le LLM n'intervient qu'en dernier, et uniquement avec un prompt généré à partir du Knowledge Space (bra0:NS-3).
The cascade is grounded by two symbolic siblings under the Semantic Layer : bra0:SL-2 defines the shapes that the Knowledge Space must satisfy (ShEx) ; bra0:SL-3 materialises OWL 2 RL inferences before any query runs. Together they ensure every reasoning tier consumes a Knowledge Space that is shape-valid and inference-complete.
La cascade est ancrée par deux jumelles symboliques sous la couche sémantique : bra0:SL-2 définit les shapes que le Knowledge Space doit satisfaire (ShEx) ; bra0:SL-3 matérialise les inférences OWL 2 RL avant toute requête. Ensemble, elles garantissent que chaque niveau de la cascade consomme un Knowledge Space valide en shapes et complet en inférences.
Every output of the cascade — symbolic or neural — carries a PROV-O provenance chain (bra0:NS-4), making explanations auditable end-to-end.
Toute sortie de la cascade — symbolique ou neuronale — porte une chaîne de provenance PROV-O (bra0:NS-4), rendant les explications auditables de bout en bout.
rudof shacl-validate against its ShEx shapes (bra0:SL-2) and have its OWL 2 RL inferences materialised (bra0:SL-3). A reasoning query against an invalid or non-materialised KS is refused.
Avant qu'un niveau ne s'exécute, le Knowledge Space doit passer rudof shacl-validate contre ses shapes ShEx (bra0:SL-2) et avoir ses inférences OWL 2 RL matérialisées (bra0:SL-3). Une requête de raisonnement contre un KS invalide ou non matérialisé est refusée.
bra0:NS-1 runs ten gap-queries from the Gaur taxonomy), pattern matching. If a SPARQL query returns an answer, the cascade stops here.Requêtes de graphe déterministes. Sous-milliseconde sur un KS typique. Le premier port d'appel pour toute question de raisonnement : récupération, jointures, détection de lacunes (bra0:NS-1 exécute dix requêtes-lacunes de la taxonomie Gaur), reconnaissance de motifs. Si une requête SPARQL renvoie une réponse, la cascade s'arrête ici.
bra0:NS-3 (Context Generation) builds the prompt from a SPARQL CONSTRUCT over the Knowledge Space — changing agent behavior means changing triples, not editing prompt strings. Every LLM output is then ratio-checked by bra0:NS-2 (Grounding Verification — target Grounding Index > 0.95) before being returned.Le LLM est l'ultime recours, et ne reçoit jamais de prompt non contraint. bra0:NS-3 (génération de contexte) construit le prompt à partir d'un CONSTRUCT SPARQL sur le Knowledge Space — changer le comportement d'un agent revient à changer des triplets, pas à éditer des chaînes de prompt. Chaque sortie LLM est ensuite vérifiée par bra0:NS-2 (vérification d'ancrage — indice d'ancrage cible > 0,95) avant d'être renvoyée.
bra0:NS-4). The explanation a user reads is the chain.Chaque niveau — symbolique ou neuronal — émet une chaîne PROV-O (bra0:NS-4). L'explication qu'un utilisateur lit, c'est la chaîne.ShEx · rdf-shex.tsINSERT. 14 ms on the 522-triple OntoEDGY corpus. Materialised triples are visible to every cascade tier.Inférence OWL 2 RL — 9 règles (subClassOf, inverseOf, symmetric, transitive, domain, range, equivalentClass, subPropertyOf, equivalentProperty). Matérialisation à point fixe via INSERT SPARQL. 14 ms sur le corpus OntoEDGY de 522 triplets. Les triplets matérialisés sont visibles à chaque niveau de la cascade.owl.rs · sophia + oxigraph10 SPARQL queriesgrounding.rsCONSTRUCT queries on the KG. Changing agent behavior means changing triples, not editing prompt strings. The mechanism removes the « hidden prompt » failure mode and makes the prompt itself versionable as RDF.Les prompts d'agents sont des requêtes CONSTRUCT SPARQL sur le KG. Changer le comportement d'un agent revient à changer des triplets, pas à éditer des chaînes de prompt. Le mécanisme supprime le mode d'échec « prompt caché » et rend le prompt lui-même versionnable en RDF.context.rsprov-o · min depth 3cascade.rs · ADR-027The cascade is not a runtime convention — its first tier is SPARQL, and any reasoning question can be expressed as a SPARQL query against the Knowledge Space. The example below is a representative gap-detection query from bra0:NS-1 : it finds every edgy:Capability instance that lacks a documented cap:hasInterface binding. The query is the gate ; if it returns rows, those rows are the gaps a neural tier would otherwise have to discover.La cascade n'est pas une convention d'exécution — son premier niveau est SPARQL, et toute question de raisonnement peut s'exprimer comme une requête SPARQL contre le Knowledge Space. L'exemple ci-dessous est une requête représentative de détection de lacunes de bra0:NS-1 : elle trouve toute instance edgy:Capability dépourvue de liaison cap:hasInterface documentée. La requête est la porte ; si elle renvoie des lignes, ces lignes sont les lacunes qu'un niveau neuronal aurait à découvrir autrement.
SELECT ?cap ?label WHERE { ?cap a edgy:Capability ; rdfs:label ?label . FILTER NOT EXISTS { ?cap cap:hasInterface ?iface . } } # Rows returned = capabilities still missing a documented interface. # Tier 1 answers ; no neural tier is invoked.
If the query returns rows, the cascade has done its job at Tier 1 — the gaps are graph data, ready for the next phase of authoring. If it returns no rows, the cascade has verified that every capability is bound. Either way, no LLM was asked to imagine the answer.Si la requête renvoie des lignes, la cascade a fait son travail au Niveau 1 — les lacunes sont des données de graphe, prêtes pour la prochaine phase de création. Si elle ne renvoie aucune ligne, la cascade a vérifié que chaque capacité est liée. Dans les deux cas, aucun LLM n'a été interrogé pour imaginer la réponse.
The cascade delegates its neural tiers to two open-source Rust crates, both runnable in WebAssembly so the system stays local-first. Each is pinned in the project's component registry for reproducibility.La cascade délègue ses niveaux neuronaux à deux crates Rust open-source, exécutables en WebAssembly pour que le système reste local-first. Chacun est épinglé dans le registre de composants du projet pour la reproductibilité.
The rest of the cascade — SPARQL planning, ShEx validation, PROV-O chain emission, grounding-ratio checks — is bra0-internal Rust code, with no external runtime dependency.Le reste de la cascade — planification SPARQL, validation ShEx, émission de chaîne PROV-O, vérifications de ratio d'ancrage — est du code Rust interne à bra0, sans dépendance d'exécution externe.
ADR-090 · Tool-agnostic capability text — every capability statement stays tool-agnostic ; tool binding lives in the realization mapping.Texte de capacité indépendant des outils — chaque énoncé de capacité reste indépendant ; le couplage aux outils vit dans le mapping de réalisation.
ADR-091 · Realization mapping — every capability binds to its realization via
fno:Mapping ; the binding is the audit trail.Mapping de réalisation — chaque capacité se lie à sa réalisation via fno:Mapping ; le couplage est la piste d'audit.ADR-095 · Upstream-standard concepts (SKOS, SHACL, BFO, PROV-O) are used verbatim with citation — never paraphrased.Les concepts des standards en amont (SKOS, SHACL, BFO, PROV-O) sont utilisés verbatim avec citation — jamais paraphrasés.
ADR-116 · Two status badges on every capability — delivery status (gap, planned, partial, shipped) and doctrine stage (DRAFT, PROPOSED, PROVEN, SEALED).Deux badges de statut sur chaque capacité — statut de livraison (lacune, planifié, partiel, livré) et étape doctrinale (BROUILLON, PROPOSÉ, PROUVÉ, SCELLÉ).
ADR-117 · Visual primitives — the
.cap blocks, data-cap-iri binding, and status badges used throughout this drill-down.Primitives visuelles — les blocs .cap, le binding data-cap-iri et les badges de statut utilisés tout au long de ce drill-down.