open-standards/wai/vocab/v2.shapes.ttl
Transaction Science eacf33dd6a Merge B3b #430 (gain maps, ST 2094-50 and exact tone mapping) into train/wai-c
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]>
2026-10-22 07:10:29 -04:00

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 ] .