open-standards/wai/vocab/v1.jsonld
Transaction Science 22928147f3 wai: the parameter-set pin, component identity, pin-aware selection
SPEC §3.1 defines the pin a manifest carries (conditioning.prior, and a
WAI2 rendition's prior): id, sha256, determinism, and the optional form,
tier and supersedes. The digest covers the whole parameter set. A set of
several files is pinned through its listing, the new registered prior
form wai.prior.set. A sink verifies the pin before it decodes, reports a
refusal with one of an ordered set of snake_case reasons, and decodes
only from the set it verified. Tier is a closed vocabulary; supersedes is
informative.

A pin that does not resolve makes its capability unsupported for that
envelope: SPEC §4 dispatch continues at the fallback, §7.1 selection at
the next rendition, and an inert envelope's error names the reasons. A
rendition entry may carry id, sha256 and, on a companion,
companion_of_id. SPEC §7 gains a Digests subsection, and §8 says how a
MINOR revision adds an optional member.

In wai-rs: the manifest types are #[non_exhaustive] with builders; a new
pin module verifies pins in memory and on disk; Wai::dispatch_verified,
WaiMulti::pick and primary check pins and component digests; every
neural decoder reads through ParamSource; a codec-free `ffi` feature
carries the C envelope surface with wai_envelope_select and
wai_neural_decode_ex. wai-web wraps wai::container. New vectors: the
int_mlicpp set-form twin and the pin-conformance corpus with an
independent Python verifier, plus sha256.json sidecars for the vectors
of capabilities that decode against a parameter set.

Squashed from wai/stream-a-parameter-set-identity onto link 12. Conflicts
are resolved to keep both sides; the integration commits that follow
make the two streams agree.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-01 05:51:50 -04:00

58 lines
2.4 KiB
Text

{
"@context": {
"@version": 1.1,
"wai": "https://wai.transaction.science/vocab/v1#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"prov": "http://www.w3.org/ns/prov#",
"Manifest": "wai:Manifest",
"Capability": "wai:Capability",
"Codec": "wai:Codec",
"Path": "wai:Path",
"NeuralPrior": "wai:NeuralPrior",
"Stream": "wai:Stream",
"Envelope": "wai:Envelope",
"modality": { "@id": "wai:modality", "@type": "@vocab" },
"codec": { "@id": "wai:codec", "@type": "@id" },
"path": { "@id": "wai:path", "@type": "@vocab" },
"capabilities_required": { "@id": "wai:capabilitiesRequired", "@container": "@list" },
"ParameterSetPin": "wai:ParameterSetPin",
"prior": { "@id": "wai:prior", "@context": {
"id": { "@id": "wai:pinId", "@type": "xsd:string" },
"sha256": { "@id": "wai:pinSha256", "@type": "xsd:string" },
"determinism": { "@id": "wai:pinDeterminism", "@type": "xsd:string" },
"form": { "@id": "wai:pinForm", "@type": "xsd:string" },
"tier": { "@id": "wai:pinTier" },
"supersedes": { "@id": "wai:pinSupersedes" }
} },
"shared_prior_uri": { "@id": "wai:sharedPriorUri", "@type": "@id" },
"shared_prior_hash": { "@id": "wai:sharedPriorHash", "@type": "xsd:string" },
"content_hash": { "@id": "wai:contentHash", "@type": "xsd:string" },
"size": { "@id": "wai:size", "@type": "xsd:nonNegativeInteger" },
"media_type": { "@id": "wai:mediaType", "@type": "xsd:string" },
"encoded_at": { "@id": "wai:encodedAt", "@type": "xsd:dateTime" },
"decoded_at": { "@id": "wai:decodedAt", "@type": "xsd:dateTime" },
"schema_id": { "@id": "wai:schemaId", "@type": "xsd:string" },
"Image": "wai:Image",
"Audio": "wai:Audio",
"Video": "wai:Video",
"Volume": "wai:Volume",
"Mesh": "wai:Mesh",
"Compressed": "wai:Compressed",
"Neural": "wai:NeuralPath",
"Zeroth": "wai:ZerothPath",
"PNG": "wai:PNG",
"JPEG": "wai:JPEG",
"AVIF": "wai:AVIF",
"JXL": "wai:JPEGXL",
"FLAC": "wai:FLAC",
"Opus": "wai:Opus",
"AV1": "wai:AV1",
"zstd": "wai:zstd",
"XZ": "wai:XZ"
}
}