Merged head 17ff17d84f.
By meaning:
- codecs/mod.rs: is_companion_only lists the HDR descriptors, the gain map,
LCEVC and both DRED layers; the licence test's patent-pool list keeps
DRED's and the HDR companions' entries.
- tests/carriage.rs: base_of() (DRED's) gains B3b's gain-map case, an
image base (wai.image.png); the test reads the base from base_of() as
DRED left it.
- SPEC §7.1: the companion list names the HDR descriptors with ST 2094-50,
the gain map, LCEVC and the DRED layers; rule 2 keeps the gain map's
image class and DRED's base admission side by side.
- determinism-tiers §2: exact-upscale's paragraph (pinned integer
derivations keep the tier), then B3b's (HDR display adaptation, pinned
by exact-tonemap).
- wai-conformance.yml: paths unioned; the step that conflicted is rebuilt
as two whole steps, QoE aggregation's then exact tone mapping's.
- Shared lists kept both sides: CHANGELOG (B3b's entry on top), REGISTRY
rows in order, registry constants and wire identifiers, the
live-conformance index (tonemap/ row, its provenance sentence, its
verifier line). capabilities.json and v2.ttl taken from the PR and
regenerated next.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
393 lines
13 KiB
Turtle
393 lines
13 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.opus.dred
|
|
wai:wai.audio.opus.dred.int
|
|
wai:wai.audio.opus.packet
|
|
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.gainmap
|
|
wai:wai.meta.hdr10plus
|
|
wai:wai.meta.st2094_50
|
|
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.quantum.circuit2
|
|
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.vp8
|
|
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.opus.packet
|
|
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.quantum.circuit2
|
|
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.vp8
|
|
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.opus.dred
|
|
wai:wai.audio.opus.dred.int
|
|
wai:wai.audio.opus.packet
|
|
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.gainmap
|
|
wai:wai.meta.hdr10plus
|
|
wai:wai.meta.st2094_50
|
|
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.quantum.circuit2
|
|
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.vp8
|
|
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.opus.packet
|
|
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.quantum.circuit2
|
|
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.vp8
|
|
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 ] .
|