SPEC §5 registers `wai.video.vcm` (video coding for machines, ISO/IEC 23888-2) and `wai.tensor.fcm` (feature coding for machines, ISO/IEC 23888-4) as candidates: neither part is published and neither's text is openly readable (the committee's project pages give each the status `ongoing` and list only common test conditions), so no payload format is pinned, neither is emitted or dispatched, a packager refuses a policy that asks for one (`capability-candidate`), and format-probes §19 says why neither has a probe: `no_probe`, whatever the bytes. Licence class `patent-pool`, provisional; replicate class `StandardUnclassified`. Nothing joins the floor or the recommended set. No benchmark was run and no task accuracy is claimed. task-fidelity §5, which named the split-computation case without solving it, now registers the claim class `split-computation` (jwp-receipts §2.4.4 lets the text that defines a class register it; no core text changes). When a network is cut in two, each side signs a claim about the object that carried the tensor across the cut: its side, the fabric it ran on, what it consumed and produced, the digests of both halves' parameter sets, the cut, a network digest over the cut and both sets, and its energy with its acquisition class, or `null` when unmetered and never 0. Two halves compose only as a head and a tail about one tensor, stating one cut, one network and the same two sets; a set the verifier holds must have the digest they name. The pair's account gives the figures by acquisition class (one class's figures are added, two classes' never are, and there is no total), names the unmetered sides, and states its coverage. machine-descriptors, a new extension of the `live` profile: labels, picture regions and embeddings by digest a model produced about one media object, as the payload (`WMD1`) of a signed `meta` event of live-events anchored to that object, signed by the machine that ran the model and stating the model by digest. A zero model digest is refused (`descriptor_no_model`), as are an origin that is not machine or machine-reviewed, an event with no anchor and a model a reader does not admit. No event kind and no transport is added: the event rides an MSF event timeline indexed by the Location of the object it describes. The references are `claim_receipt::split` and the `machine_coding` module of wai-rs (feature `machine_coding`). The corpus is live-conformance/machine-coding/ (2 candidates, 4 network digests, 18 claims, 12 pairs, 26 descriptor events) and format-probe-conformance gains the two `no_probe` vectors. machine_coding_verify.py, the second implementation, agrees on every case, fails every mutated copy (24 of 24) and catches every weakened verifier (32 of 32); claim_verify.py holds the class's body and rules and replays the corpus's claims through steps 1 to 4. Planted faults, each refused with its own reason: an envelope naming a candidate reported and inert at dispatch; halves of two networks, two cuts, two tensors, two heads, and a held parameter set of another digest; a total added to a body; an unmetered half written as 0 J; a descriptor with no model identity, a person's origin, no anchor, an unlisted model, a changed payload under its old signature. decisions D9 records what was read of ISO/IEC 23888 and what follows. Co-Authored-By: Claude <[email protected]>
2.9 KiB
live-conformance/machine-coding — coding for machines
The corpus of extensions/task-fidelity.md §5 (the
split-computation claim), extensions/machine-descriptors.md
and extensions/format-probes.md §19, in one file,
vectors.json.
Provenance. Generated here by wai_machine_coding_vectors gen (wai-rs, feature
machine_coding), from Ed25519 keys on seeds of one byte repeated 32 times, constant instants,
and digests that are the SHA-256 of a phrase and name nothing: no parameter set, no tensor, no
model and no media exists behind any of them. No input from outside this repository, and no
bitstream of ISO/IEC 23888: neither part's text is openly readable, so none is written.
candidatesstates, forwai.video.vcmandwai.tensor.fcm, that each is registered, a candidate, not dispatchable, and that its probe isno_probe.networks(task-fidelity §5.1) are each acut, ahead_setand atail_setwith thenetworkdigest over them.claimsare each onesplit-computationclaim'swiretext;outcomeisverified, orrefusewith the step of jwp-receipts §3.1 and the reason.pairs(task-fidelity §5.3, §5.4) are each two claims,aandb, andheld, the digests of the parameter sets the verifier holds (nullwhere it holds none);outcomeiscomposedwith theaccount(each side, the rows by acquisition class, the unmetered sides and the coverage; it has no total), orrefusewith its step and reason.descriptors(machine-descriptors §4) are each an eventrecordin lowercase hexadecimal, read for the roomroom, with themodelsthe reader admits (nullwhere it is given none);outcomeisread, with what wasdescribedand themsfrecord that carries the event (live-events §8.1, att0_unix_us), orrefuseand its reason.
Each case states the outcome it was written to have, declared in the generator and never copied from a verifier: a refusal's step and reason, an account's rows, a descriptor's items.
wai_machine_coding_vectors verify and tests/machine_coding.rs check that the file regenerates
byte for byte, that wai-rs reaches every stated outcome, that a refusal restated as an
acceptance is noticed, and that the extensions list the reference's reasons.
../machine_coding_verify.py is the second implementation, written from the extensions' text: it
takes each claim through jwp-receipts §3.1 steps 1 to 4 with ../../claim-conformance/claim_verify.py,
writes the pair's checks, the account, the event and descriptor readers and the MSF record
itself, reads the candidates from the published registry export and format-probes' text, mutates
copies of the corpus and drops each of its own checks in turn and requires each to be caught.
claim_verify.py split vectors.json replays the claims alone.