SPEC registers the residual refinement capabilities wai.image.int_refine, wai.video.int_refine, wai.audio.int_refine and wai.splat.int_refine, each refinement-only: applied in a declared order to the output of the stage below it, bound to that output's producer by content hash, and never decoded on its own. Section 4 never takes step 3 or 5 with one; section 8 adds the role and lists the envelopes its registration makes non-conforming. SPEC section 5's Base admission table holds the bases of every capability applied to a base's output, the refinements and the LCEVC enhancement layer. codecs::BASE_ADMISSION is that table; enhancement_bases, companion_applies_to and admits read it, and no other admission logic remains. The registry gains the refinement kind and role. A refinement is not dispatchable, never selected, never a companion or a companion's base, and not in the video media class; its class is StandardDefined and, like the audio scene, it composes another envelope's decoded output, so it is as exact as the base it refines. The registry export is regenerated. A WAI1 manifest gains the optional member refines, kept as JSON so a malformed value still parses; container::Refines reads it and reports refines-malformed. Wai::check_component_roles reports a refinement without refines, with a fallback, as a fallback, and refines on any other capability. The emit paths parse a refinement's WIR1 payload. extensions/staged-delivery.md defines stage sets, the refines member, the per-unit application algorithm with its closed list of reasons, holds and batches, tiers and stage hashes, the residual form, deferral, live deadlines, attestation, byte counting, and the WIR1 payload with its check order, caps, declared cost and refusal codes. Co-Authored-By: Claude Opus 5.5 <[email protected]>
373 lines
12 KiB
Turtle
373 lines
12 KiB
Turtle
# Generated by `wai registry export` from wai-rs/src/codecs/registry.rs. Do not edit.
|
|
@prefix wai: <https://wai.transaction.science/vocab/v2#> .
|
|
@prefix sh: <http://www.w3.org/ns/shacl#> .
|
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
|
|
|
# A WAI manifest, typed or not: every manifest has a wai (version) field. A WAI1 manifest names a
|
|
# capability, a WAI2 manifest a renditions list, and never both. The capability is a
|
|
# registered payload, companion or refinement capability that is not a candidate; the
|
|
# fallback a registered payload capability that is not a candidate. (A WAI1 naming a
|
|
# companion-only capability, or a refinement-only one without refines, parses but does
|
|
# not conform; the reference implementation's role check reports it.) media is
|
|
# informational, and a reader accepts a value it does not know
|
|
# (SPEC sections 3 and 8), so only its form is checked.
|
|
wai:ManifestShape a sh:NodeShape ;
|
|
sh:targetClass wai:Manifest ;
|
|
sh:targetSubjectsOf wai:wai ;
|
|
sh:targetSubjectsOf wai:intent ;
|
|
sh:property [ sh:path wai:capability ; sh:nodeKind sh:IRI ; sh:maxCount 1 ;
|
|
sh:in (
|
|
wai:wai.audio.aac
|
|
wai:wai.audio.ac4
|
|
wai:wai.audio.avs3
|
|
wai:wai.audio.flac
|
|
wai:wai.audio.iamf
|
|
wai:wai.audio.int_codec
|
|
wai:wai.audio.int_refine
|
|
wai:wai.audio.ivas
|
|
wai:wai.audio.mpegh
|
|
wai:wai.audio.opus
|
|
wai:wai.audio.scene
|
|
wai:wai.audio.score
|
|
wai:wai.avatar.pose
|
|
wai:wai.feed.state
|
|
wai:wai.film.linear
|
|
wai:wai.film.reel
|
|
wai:wai.generate.spectral
|
|
wai:wai.haptic.mihs
|
|
wai:wai.haptic.signal
|
|
wai:wai.image.avif
|
|
wai:wai.image.int_refine
|
|
wai:wai.image.jp2
|
|
wai:wai.image.jpeg
|
|
wai:wai.image.jpegai
|
|
wai:wai.image.jxl
|
|
wai:wai.image.png
|
|
wai:wai.mesh.draco
|
|
wai:wai.mesh.glb
|
|
wai:wai.meta.dovi
|
|
wai:wai.meta.hdr10plus
|
|
wai:wai.neural.bmshj2018
|
|
wai:wai.neural.cmic
|
|
wai:wai.neural.dac
|
|
wai:wai.neural.dcvc_fm
|
|
wai:wai.neural.dcvc_rt
|
|
wai:wai.neural.elic
|
|
wai:wai.neural.encodec32
|
|
wai:wai.neural.glc
|
|
wai:wai.neural.int_hyper
|
|
wai:wai.neural.int_mlicpp
|
|
wai:wai.neural.int_synth
|
|
wai:wai.neural.mbt2018_mean
|
|
wai:wai.neural.mimi
|
|
wai:wai.neural.mlicpp
|
|
wai:wai.neural.mlicv2
|
|
wai:wai.neural.snac
|
|
wai:wai.neural.video_bmshj2018
|
|
wai:wai.neural.wavtokenizer
|
|
wai:wai.pc.gpcc
|
|
wai:wai.pc.vpcc
|
|
wai:wai.prior.nnc
|
|
wai:wai.prior.set
|
|
wai:wai.quantum.circuit
|
|
wai:wai.semantic.clip
|
|
wai:wai.semantic.perco2
|
|
wai:wai.splat.4d
|
|
wai:wai.splat.int_codec
|
|
wai:wai.splat.int_refine
|
|
wai:wai.splat.spz
|
|
wai:wai.ternary.tt
|
|
wai:wai.text.xz
|
|
wai:wai.text.zstd
|
|
wai:wai.video.av1
|
|
wai:wai.video.av1.lossless
|
|
wai:wai.video.av2
|
|
wai:wai.video.avc
|
|
wai:wai.video.avs3
|
|
wai:wai.video.evc
|
|
wai:wai.video.evc.baseline
|
|
wai:wai.video.hevc
|
|
wai:wai.video.int_hyper
|
|
wai:wai.video.int_motion
|
|
wai:wai.video.int_refine
|
|
wai:wai.video.j2k
|
|
wai:wai.video.lcevc
|
|
wai:wai.video.vp9
|
|
wai:wai.video.vvc
|
|
wai:wai.world.live
|
|
wai:wai.world.model
|
|
wai:wai.world.replay
|
|
wai:wai.world.scene
|
|
) ] ;
|
|
sh:property [ sh:path wai:fallback ; sh:nodeKind sh:IRI ; sh:maxCount 1 ;
|
|
sh:in (
|
|
wai:wai.audio.aac
|
|
wai:wai.audio.ac4
|
|
wai:wai.audio.avs3
|
|
wai:wai.audio.flac
|
|
wai:wai.audio.iamf
|
|
wai:wai.audio.int_codec
|
|
wai:wai.audio.ivas
|
|
wai:wai.audio.mpegh
|
|
wai:wai.audio.opus
|
|
wai:wai.audio.scene
|
|
wai:wai.audio.score
|
|
wai:wai.avatar.pose
|
|
wai:wai.feed.state
|
|
wai:wai.film.linear
|
|
wai:wai.film.reel
|
|
wai:wai.generate.spectral
|
|
wai:wai.haptic.mihs
|
|
wai:wai.haptic.signal
|
|
wai:wai.image.avif
|
|
wai:wai.image.jp2
|
|
wai:wai.image.jpeg
|
|
wai:wai.image.jpegai
|
|
wai:wai.image.jxl
|
|
wai:wai.image.png
|
|
wai:wai.mesh.draco
|
|
wai:wai.mesh.glb
|
|
wai:wai.neural.bmshj2018
|
|
wai:wai.neural.cmic
|
|
wai:wai.neural.dac
|
|
wai:wai.neural.dcvc_fm
|
|
wai:wai.neural.dcvc_rt
|
|
wai:wai.neural.elic
|
|
wai:wai.neural.encodec32
|
|
wai:wai.neural.glc
|
|
wai:wai.neural.int_hyper
|
|
wai:wai.neural.int_mlicpp
|
|
wai:wai.neural.int_synth
|
|
wai:wai.neural.mbt2018_mean
|
|
wai:wai.neural.mimi
|
|
wai:wai.neural.mlicpp
|
|
wai:wai.neural.mlicv2
|
|
wai:wai.neural.snac
|
|
wai:wai.neural.video_bmshj2018
|
|
wai:wai.neural.wavtokenizer
|
|
wai:wai.pc.gpcc
|
|
wai:wai.pc.vpcc
|
|
wai:wai.prior.nnc
|
|
wai:wai.prior.set
|
|
wai:wai.quantum.circuit
|
|
wai:wai.semantic.clip
|
|
wai:wai.semantic.perco2
|
|
wai:wai.splat.4d
|
|
wai:wai.splat.int_codec
|
|
wai:wai.splat.spz
|
|
wai:wai.ternary.tt
|
|
wai:wai.text.xz
|
|
wai:wai.text.zstd
|
|
wai:wai.video.av1
|
|
wai:wai.video.av1.lossless
|
|
wai:wai.video.av2
|
|
wai:wai.video.avc
|
|
wai:wai.video.avs3
|
|
wai:wai.video.evc
|
|
wai:wai.video.evc.baseline
|
|
wai:wai.video.hevc
|
|
wai:wai.video.int_hyper
|
|
wai:wai.video.int_motion
|
|
wai:wai.video.j2k
|
|
wai:wai.video.vp9
|
|
wai:wai.video.vvc
|
|
wai:wai.world.live
|
|
wai:wai.world.model
|
|
wai:wai.world.replay
|
|
wai:wai.world.scene
|
|
) ] ;
|
|
sh:property [ sh:path wai:media ; sh:nodeKind sh:IRI ; sh:maxCount 1 ] ;
|
|
sh:property [ sh:path wai:intent ; sh:datatype xsd:string ; sh:minCount 1 ; sh:maxCount 1 ] ;
|
|
sh:xone (
|
|
[ sh:property [ sh:path wai:capability ; sh:minCount 1 ] ]
|
|
[ sh:property [ sh:path wai:renditions ; sh:minCount 1 ] ]
|
|
) .
|
|
|
|
# A WAI2 component, in any role: its capability is a registered payload, companion or
|
|
# refinement capability that is not a candidate, and the base a companion names is a
|
|
# registered payload capability that is not a candidate.
|
|
wai:ComponentShape a sh:NodeShape ;
|
|
sh:targetClass wai:Component ;
|
|
sh:targetObjectsOf wai:renditions ;
|
|
sh:property [ sh:path wai:capability ; sh:nodeKind sh:IRI ; sh:minCount 1 ; sh:maxCount 1 ;
|
|
sh:in (
|
|
wai:wai.audio.aac
|
|
wai:wai.audio.ac4
|
|
wai:wai.audio.avs3
|
|
wai:wai.audio.flac
|
|
wai:wai.audio.iamf
|
|
wai:wai.audio.int_codec
|
|
wai:wai.audio.int_refine
|
|
wai:wai.audio.ivas
|
|
wai:wai.audio.mpegh
|
|
wai:wai.audio.opus
|
|
wai:wai.audio.scene
|
|
wai:wai.audio.score
|
|
wai:wai.avatar.pose
|
|
wai:wai.feed.state
|
|
wai:wai.film.linear
|
|
wai:wai.film.reel
|
|
wai:wai.generate.spectral
|
|
wai:wai.haptic.mihs
|
|
wai:wai.haptic.signal
|
|
wai:wai.image.avif
|
|
wai:wai.image.int_refine
|
|
wai:wai.image.jp2
|
|
wai:wai.image.jpeg
|
|
wai:wai.image.jpegai
|
|
wai:wai.image.jxl
|
|
wai:wai.image.png
|
|
wai:wai.mesh.draco
|
|
wai:wai.mesh.glb
|
|
wai:wai.meta.dovi
|
|
wai:wai.meta.hdr10plus
|
|
wai:wai.neural.bmshj2018
|
|
wai:wai.neural.cmic
|
|
wai:wai.neural.dac
|
|
wai:wai.neural.dcvc_fm
|
|
wai:wai.neural.dcvc_rt
|
|
wai:wai.neural.elic
|
|
wai:wai.neural.encodec32
|
|
wai:wai.neural.glc
|
|
wai:wai.neural.int_hyper
|
|
wai:wai.neural.int_mlicpp
|
|
wai:wai.neural.int_synth
|
|
wai:wai.neural.mbt2018_mean
|
|
wai:wai.neural.mimi
|
|
wai:wai.neural.mlicpp
|
|
wai:wai.neural.mlicv2
|
|
wai:wai.neural.snac
|
|
wai:wai.neural.video_bmshj2018
|
|
wai:wai.neural.wavtokenizer
|
|
wai:wai.pc.gpcc
|
|
wai:wai.pc.vpcc
|
|
wai:wai.prior.nnc
|
|
wai:wai.prior.set
|
|
wai:wai.quantum.circuit
|
|
wai:wai.semantic.clip
|
|
wai:wai.semantic.perco2
|
|
wai:wai.splat.4d
|
|
wai:wai.splat.int_codec
|
|
wai:wai.splat.int_refine
|
|
wai:wai.splat.spz
|
|
wai:wai.ternary.tt
|
|
wai:wai.text.xz
|
|
wai:wai.text.zstd
|
|
wai:wai.video.av1
|
|
wai:wai.video.av1.lossless
|
|
wai:wai.video.av2
|
|
wai:wai.video.avc
|
|
wai:wai.video.avs3
|
|
wai:wai.video.evc
|
|
wai:wai.video.evc.baseline
|
|
wai:wai.video.hevc
|
|
wai:wai.video.int_hyper
|
|
wai:wai.video.int_motion
|
|
wai:wai.video.int_refine
|
|
wai:wai.video.j2k
|
|
wai:wai.video.lcevc
|
|
wai:wai.video.vp9
|
|
wai:wai.video.vvc
|
|
wai:wai.world.live
|
|
wai:wai.world.model
|
|
wai:wai.world.replay
|
|
wai:wai.world.scene
|
|
) ] ;
|
|
sh:property [ sh:path wai:companionOf ; sh:nodeKind sh:IRI ; sh:maxCount 1 ;
|
|
sh:in (
|
|
wai:wai.audio.aac
|
|
wai:wai.audio.ac4
|
|
wai:wai.audio.avs3
|
|
wai:wai.audio.flac
|
|
wai:wai.audio.iamf
|
|
wai:wai.audio.int_codec
|
|
wai:wai.audio.ivas
|
|
wai:wai.audio.mpegh
|
|
wai:wai.audio.opus
|
|
wai:wai.audio.scene
|
|
wai:wai.audio.score
|
|
wai:wai.avatar.pose
|
|
wai:wai.feed.state
|
|
wai:wai.film.linear
|
|
wai:wai.film.reel
|
|
wai:wai.generate.spectral
|
|
wai:wai.haptic.mihs
|
|
wai:wai.haptic.signal
|
|
wai:wai.image.avif
|
|
wai:wai.image.jp2
|
|
wai:wai.image.jpeg
|
|
wai:wai.image.jpegai
|
|
wai:wai.image.jxl
|
|
wai:wai.image.png
|
|
wai:wai.mesh.draco
|
|
wai:wai.mesh.glb
|
|
wai:wai.neural.bmshj2018
|
|
wai:wai.neural.cmic
|
|
wai:wai.neural.dac
|
|
wai:wai.neural.dcvc_fm
|
|
wai:wai.neural.dcvc_rt
|
|
wai:wai.neural.elic
|
|
wai:wai.neural.encodec32
|
|
wai:wai.neural.glc
|
|
wai:wai.neural.int_hyper
|
|
wai:wai.neural.int_mlicpp
|
|
wai:wai.neural.int_synth
|
|
wai:wai.neural.mbt2018_mean
|
|
wai:wai.neural.mimi
|
|
wai:wai.neural.mlicpp
|
|
wai:wai.neural.mlicv2
|
|
wai:wai.neural.snac
|
|
wai:wai.neural.video_bmshj2018
|
|
wai:wai.neural.wavtokenizer
|
|
wai:wai.pc.gpcc
|
|
wai:wai.pc.vpcc
|
|
wai:wai.prior.nnc
|
|
wai:wai.prior.set
|
|
wai:wai.quantum.circuit
|
|
wai:wai.semantic.clip
|
|
wai:wai.semantic.perco2
|
|
wai:wai.splat.4d
|
|
wai:wai.splat.int_codec
|
|
wai:wai.splat.spz
|
|
wai:wai.ternary.tt
|
|
wai:wai.text.xz
|
|
wai:wai.text.zstd
|
|
wai:wai.video.av1
|
|
wai:wai.video.av1.lossless
|
|
wai:wai.video.av2
|
|
wai:wai.video.avc
|
|
wai:wai.video.avs3
|
|
wai:wai.video.evc
|
|
wai:wai.video.evc.baseline
|
|
wai:wai.video.hevc
|
|
wai:wai.video.int_hyper
|
|
wai:wai.video.int_motion
|
|
wai:wai.video.j2k
|
|
wai:wai.video.vp9
|
|
wai:wai.video.vvc
|
|
wai:wai.world.live
|
|
wai:wai.world.model
|
|
wai:wai.world.replay
|
|
wai:wai.world.scene
|
|
) ] .
|
|
|
|
# The parameter-set pin (SPEC section 3.1). The JSON-LD context types no prior object,
|
|
# so the shape targets whatever wai:prior points at rather than a class. pinTier is a
|
|
# closed vocabulary; the tokens are the ones codecs::TIER_TOKENS holds.
|
|
wai:ParameterSetPinShape a sh:NodeShape ;
|
|
sh:targetObjectsOf wai:prior ;
|
|
sh:property [ sh:path wai:pinId ; sh:datatype xsd:string ; sh:minCount 1 ; sh:maxCount 1 ] ;
|
|
sh:property [ sh:path wai:pinSha256 ; sh:datatype xsd:string ; sh:minCount 1 ; sh:maxCount 1 ;
|
|
sh:pattern "^[a-f0-9]{64}$" ] ;
|
|
sh:property [ sh:path wai:pinDeterminism ; sh:datatype xsd:string ; sh:minCount 1 ; sh:maxCount 1 ] ;
|
|
sh:property [ sh:path wai:pinForm ; sh:datatype xsd:string ; sh:maxCount 1 ] ;
|
|
sh:property [ sh:path wai:pinTier ; sh:datatype xsd:string ; sh:maxCount 1 ;
|
|
sh:in ( "decode-equivalence" "entropy-consistency" "none" ) ] ;
|
|
sh:property [ sh:path wai:pinSupersedes ; sh:node wai:SupersedesShape ; sh:maxCount 1 ] .
|
|
|
|
# supersedes names a set as a pin names one, by sha256 and, if it is pinned in a
|
|
# declared form, form; it has no id, determinism or tier.
|
|
wai:SupersedesShape a sh:NodeShape ;
|
|
sh:property [ sh:path wai:pinSha256 ; sh:datatype xsd:string ; sh:minCount 1 ; sh:maxCount 1 ;
|
|
sh:pattern "^[a-f0-9]{64}$" ] ;
|
|
sh:property [ sh:path wai:pinForm ; sh:datatype xsd:string ; sh:maxCount 1 ] .
|