open-standards/joule-code/vocab/README.md
Transaction Science 43cb6a2ace vocab v1 SHACL shapes across sister standards (wave-23 #4/#5)
Carries the SHACL contract shipped at jouleclaw/vocab/v1.shapes.ttl
across every TX Science sister standard. Each standard now has a
SHACL Core shape graph that validates its main wire types
locally — before a payload crosses a tool boundary, a rail
driver, a lockstep replicator, a CDN cache, an inference vendor.

Live at the same prefix as the JSON-LD + Turtle vocab:

  https://arl.transaction.science/vocab/v1.shapes.ttl
  https://openpay.transaction.science/vocab/v1.shapes.ttl
  https://byte.transaction.science/vocab/v1.shapes.ttl
  https://eoc.transaction.science/vocab/v1.shapes.ttl
  https://wai.transaction.science/vocab/v1.shapes.ttl

All five serve with Content-Type: text/turtle (joulecode.t.s does
not yet have a site config so the file lives in repo only).

What each shape graph covers:

  arl/vocab/v1.shapes.ttl       Claim (four-axis: 1–9 validation
                                depth, A–E convergence, energy
                                profile, S0–S4 security, plus
                                derived arlScore in 1–9),
                                Session (Tier 0–3 isolation +
                                replayable/tampering booleans +
                                joules), Attestation (Ed25519
                                signature 128 hex + public key
                                64 hex + signedAt), Evaluation
                                (input/output BLAKE3 hex 64).

  openpay/vocab/v1.shapes.ttl   Money (signed integer + ISO 4217
                                3-letter currency), Receipt
                                (method ∈ {Card, A2A, Stablecoin,
                                Wallet, EMV}; rail ∈ {FedNow, PIX,
                                SEPAInstant, USDC, USDT}; status ∈
                                {Authorized, Captured, Settled,
                                Refunded, Voided, Disputed,
                                Failed}; idempotencyKey required),
                                Refund (refundedAt required), Card
                                (scheme ∈ {Visa, Mastercard, Amex,
                                Discover} + vaultRef required).

  smart-byte/vocab/v1.shapes.ttl Byte (BLAKE3 64-hex content hash,
                                issuer IRI, cargo + cargoClass ∈
                                {Value, Coding, Identity,
                                Telemetry, Custom}, energy
                                provenance, signature 128 hex,
                                sequence ≥ 0), LockstepEvent
                                (previousHash + contentHash hex +
                                lockstepHeight ≥ 0 + signature),
                                AID ([A-Za-z0-9_-]+ identifier).

  eoc/vocab/v1.shapes.ttl       Receipt (stageClosed ∈ {Cache,
                                KeyValue, Graph, Neural} +
                                joules_uj ≥ 0 + energy provenance
                                + input/output BLAKE3 hex 64 +
                                closedAt RFC 3339), CarbonRecord
                                (carbonGrams ≥ 0), Query
                                (queryText required).

  wai/vocab/v1.shapes.ttl       Manifest (modality ∈ {Image,
                                Audio, Video, Volume, Mesh,
                                Compressed}; path ∈ {NeuralPath,
                                ZerothPath}; codec ∈ the v1
                                registered menu of nine;
                                contentHash BLAKE3 hex 64; size ≥
                                0; mediaType IANA-shaped),
                                NeuralPrior (sharedPriorUri IRI +
                                sharedPriorHash hex 64).

  joule-code/vocab/v1.shapes.ttl Receipt (tierClosed ∈ {L0Cache,
                                L1Lawful, L2Embed, L3Model,
                                L4Wire} + joulesMeasuredUj +
                                joulesEstimatedUj + energy
                                provenance + closedAt),
                                Transition (operation ∈ {Edit,
                                Refactor, Generate} + sourceBefore/
                                AfterHash BLAKE3 hex 64), Agent
                                (agentId + agentVendor ∈
                                {ClaudeCode, Gemini, Codex,
                                GenericAgent} + acpEndpoint).

Every shape graph uses SHACL Core only — no SPARQL constraints,
no qualified value shapes. Consumable by:

  - Any full SHACL validator (pyshacl, Apache Jena, TopBraid).
  - The lightweight jouleclaw-shacl Rust validator, which is the
    reference and ships in ~600 LOC; WASM-compilable for in-browser
    validation.
  - The Python + Go reference clients in
    jouleclaw-hydra-client/clients/{python,go}/.

Each vocab README also gains a row pointing at the shapes file.

Operational follow-up done in parallel: the canonical Caddyfile
at site-ops/ adds an @<site>_jsonld matcher per site so .jsonld
files serve as application/ld+json across all five sister-site
hosts (joulecode.t.s does not yet have a site). The Caddyfile is
in a separate repo and is being committed via that repo's own
flow.

The Gen-3 architecture — vocabulary, Hydra discovery, SHACL
validation — now spans the entire TX Science open-standards
portfolio. A consumer reading any TX-Science wire form can
validate it locally before sending; can ground its meaning in
typed RDF via JSON-LD; can discover what services it can talk
to via Hydra (where the service publishes one). One pattern,
seven standards.
2026-06-02 18:55:56 -04:00

25 lines
1.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Joule Code vocabulary (v1)
Stable IRIs for the Joule Code open standard — the coding cargo
class of the substrate. Covers the JWP receipt (with two-part
measured + estimated joules and honest provenance), the L0–L4
cascade tiers shared with JouleClaw, the operation taxonomy
(Edit / Refactor / Generate), and the agent-vendor enumeration
for the Agent Client Protocol binding (Claude Code / Gemini /
Codex / Generic).
Namespace: `https://joulecode.transaction.science/vocab/v1#`
(prefix `jcd:` by convention).
| File | Format | What |
|------|--------|------|
| [`v1.jsonld`](v1.jsonld) | JSON-LD `@context` | Term → IRI mapping. |
| [`v1.ttl`](v1.ttl) | Turtle (RDF) | Classes, enumerations, properties; subclasses `prov:Activity` for `Transition`, `prov:Entity` for `SourceTree`, `prov:Agent` for `Agent`. |
| [`v1.shapes.ttl`](v1.shapes.ttl) | SHACL Core | Shape graph — validates `Receipt`, `Transition`, `Agent` locally before they enter the receipt stream. SHACL Core only; consumable by any conformant validator. |
A Joule Code receipt that carries
`@context: "https://joulecode.transaction.science/vocab/v1.jsonld"`
expands into typed RDF triples for any JSON-LD or SPARQL consumer
without changing its wire form. Mirrors the pattern shipped at
`jouleclaw/vocab/v1`. Licence CC-BY-4.0 for the spec text;
reference implementation Apache-2.0.