Domain Intelligence Schema
Specification Documentation · v1.8.0

Technical Reference & Formal Grammar

The Domain Intelligence Schema (DIS) is an open, platform-agnostic standard for enterprise agentic systems. Rooted in W3C RDF and SHACL knowledge graphs, DIS provides a closed grammar, SHACL-enforced constraints, and a declared systems layer that names what each agent step reaches and changes.

1. Architecture & The Semantic Stack

Traditional agent frameworks treat domain knowledge as prompt injections or unstructured tool schemas. DIS moves domain authority into a formal, validating semantic knowledge graph.

W3C RDF / Turtle

Knowledge Graph

Every entity, role, mode, and execution binding is formally defined as an attributed triple in a closed semantic graph.

W3C SHACL

Structural & Behavioral Gates

Shapes Constraint Language (SHACL) is the contract. A dossier containing an invalid triplet, a mode its entity does not support, or a role with no access gate for it is rejected by the shape validator.

SPARQL

Causal Audit Queries

Four standardized SPARQL queries audit full causal lineages, medical liability boundaries, ungoverned triplets, and structural integrity without runtime dependencies.

2. The Governed Agentic Triplet

At the heart of DIS is the Agentic Triplet: the atomic unit of agent capability. An agent cannot invoke an arbitrary function with ambient authority. It must execute as an authorized:

ROLE (Who Acts) × ENTITY (What Noun) × MODE (Which Verb)

The 7 Canonical Modes: CREATE, READ, UPDATE, DELETE, INITIATE, RESPOND, and NOTIFY. By constraining operations to these atomic verbs, DIS prevents hallucinated scope and forces explicit discovery of domain boundaries.

3. DIS 1.8 Grammar Extensions (G1 – G6)

Version 1.8 closes six gaps found by transcribing a real automation engine (the Argus trial) as a dossier. Together they give a triplet executable provenance: what it reaches, what it mutates, and what it is allowed to call. The design record is DIS-1.8.md.

G1 · Mode / Mutates

Mode / Mutates Consistency

A READ triplet cannot bind a function whose endpoint has mutates true; CREATE, UPDATE and DELETE triplets must bind one that does. Enforced by TripletModeMutationConsistencyShape.

G2 · Side Effects

Directed Side Effects

A function calling a mutating endpoint must declare the entity it changes with writesEntity, and the triplet's targetEntity must match the function's readsEntity (READ) or writesEntity (CREATE, UPDATE, DELETE).

G3 · Binding

Binding Completeness

A triplet with no executable function declares a bindingStatus: BOUND, MANUAL_PROCEDURE or ABSTRACT_UNBOUND, with an unboundReason. The vocabulary and shape accept these; a rule rejecting an unbound mutating triplet that omits one is specified but not yet enforced.

G4 · Transport

Multi-Transport Systems Layer

An Endpoint declares a dis:transport (HTTPS, MQTT, RTSP, NATS, gRPC and others), and non-HTTP endpoints need no httpMethod or urlPath. An Application declares a networkScope, so a private-network system need not present an https base URL.

G5 · Gates

Function-Level Access Gates

An AccessGateMatrix can name the exact catalog functions a role may run on an entity with allowedFunction, so “may disable, may not re-enable” can be stated. Enforced by TripletWithinAllowedFunctionGateShape.

G6 · Conformance

Single-Graph Conformance

A dossier is validated as one graph merged with vocabulary/v1.8.0/dis.ttl, with no inference flag. scripts/validate-dossier.sh is the canonical recipe.

4. Reference Dossiers

DIS 1.8.0 ships eight dossiers in fixtures/v1.8.0/. Every one except deformed.ttl conforms against the merged vocabulary and shapes; deformed.ttl is the negative fixture and is rejected on purpose.

Domain Dossier File Systems Declared What It Shows
Healthcare fixtures/v1.8.0/healthcare.ttl Epic Cadence & MyChart API, Cerner Millennium EHR, MEDITECH Expanse EHR, Surescripts E-Prescribing Gateway Appointment, patient lookup and refill triplets bound to endpoints; two unbound steps declared MANUAL_PROCEDURE; a structural policy prohibiting automated controlled-substance refills.
Banking & Insurance fixtures/v1.8.0/bfsi.ttl FIS Modern Banking Platform, Fiserv Signature & Card Services, Guidewire ClaimCenter, Guidewire PolicyCenter An unauthenticated caller and an authenticated accountholder as separate roles with separate access gates; a card-freeze gate scoped to one function.
IT Service Management fixtures/v1.8.0/itsd.ttl ServiceNow ITSM, SailPoint IdentityNow & Entra ID Bridge, SAP HANA EAM A backoffice orchestrator role, separate from the interactive virtual agent, holds the only gates on onboarding and offboarding orders, each scoped to one function.
Human Capital fixtures/v1.8.0/hr.ttl Workday HCM, SAP SuccessFactors Employee Central, Oracle PeopleSoft Time and Labor A role per worker population (exempt, hourly, people leader, contractor, Munich campus) with population-specific policies.
Retail fixtures/v1.8.0/retail.ttl Retail Catalog API Apex Retail Customer Support, status DRAFT; the base graph most conformance tests mutate to build negative cases.
IT & HR portal fixtures/v1.8.0/itsd-hr.ttl Enterprise Gateway API A smaller employee IT service desk and HR portal behind one gateway application; status DRAFT.
Minimal fixtures/v1.8.0/dadjoke.ttl Dad Joke Webhook The smallest conforming dossier: one entity, one triplet, one utterance policy.
Negative fixtures/v1.8.0/deformed.ttl None Three deliberate violations (a triplet targeting a Role, an invented mode, an OBLIGATION with no bound value); the suite asserts exactly those three are reported.

5. Conformance Testing Suite

The repository carries an automated conformance suite built on pytest, rdflib and pyshacl. Its CUE and JSON Schema checks also need the cue command and are skipped without it. Output of uv sync --group test && uv run pytest, with the environment header lines trimmed:

$ uv run pytest
collected 196 items

tests/test_agentic_triplet.py ................                           [  8%]
tests/test_artifacts_parse.py ....                                       [ 10%]
tests/test_cue_json_schema.py ........                                   [ 14%]
tests/test_dis_18_grammar.py ..............                              [ 21%]
tests/test_entity_instance.py .........                                  [ 26%]
tests/test_governance_constructs.py ..........................           [ 39%]
tests/test_grammar_matrices.py .......                                   [ 42%]
tests/test_queries.py ....                                               [ 44%]
tests/test_release_gating.py .......                                     [ 48%]
tests/test_systems_layer.py ......................                       [ 59%]
tests/test_utterance_policy.py .............                             [ 66%]
tests/test_v16_compat.py ....                                            [ 68%]
tests/test_validation_recipe.py ..............                           [ 75%]
tests/test_vocabulary_integrity.py .....................                 [ 86%]
tests/test_worked_example.py ...........................                 [100%]

============================= 196 passed in 32.50s =============================

To validate a single dossier, merge it with the vocabulary and check it against the shapes with scripts/validate-dossier.sh:

$ scripts/validate-dossier.sh fixtures/v1.8.0/healthcare.ttl
Validation Report
Conforms: True