Skip to main content
SDIF

Compact, semantic, canonicalizable data for AI agents
and deterministic machine workflows.

for agents & llmsShare these with your LLM before working with SDIF.

Less noise. More structure.

JSON repeats keys for every object in an array. SDIF declares columns once — rows are tab-separated values. Fewer tokens, same semantics, canonical form, stable hash.

plan.json
[
  { "id": "R1", "status": "done", "gate": "verify" },
  { "id": "R2", "status": "open", "gate": "release" }
]
plan.sdif
@sdif 1.0
kind Plan

milestones[id,status,gate]:
  R1	done	verify
  R2	open	release

Column headers defined once · Rows tab-delimited · Hash-stable canonical form

What SDIF gives you

--compact-tablesDefine columns once. Rows are tab-delimited values — no repeated keys.
--semantic-relationsFirst-class triple syntax: subject predicate object.
--declarative-schemasField types, required constraints, and table shapes in plain SDIF.
--canonical-formDeterministic UTF-8 byte output from any valid source document.
--deterministic-hashSHA-256 over canonical bytes — stable cache keys, signing, comparisons.
--ai-projectionsToken-optimized .sdif.ai with full round-trip fidelity to canonical SDIF.
--json-roundtripJSON ↔ SDIF conversion with semantic preservation.
--reproducible-benchPublic corpus, methodology, and benchmark results in sdif-benchmarks.