VAO 0.6.0 schema field reference

Generated by Tools/generate_schema_reference.py from the normative manifest JSON Schema. Do not edit by hand. When this reference and the schema differ, the schema controls syntax.

  • Schema ID: https://w3id.org/modavis/vao/0.6.0/schema/manifest.json
  • JSON Schema dialect: https://json-schema.org/draft/2020-12/schema

Root manifest

Required properties: $schema, @context, type, formatVersion, id, release, createdAt, modifiedAt, title, conformsTo, profiles, materializableProfiles, modavisBinding, primaryEntityId, focusEntityIds, entities, relations, scientific, multimodal, physicalSystem, runtime, discovery, logicalAssets, realizations, distributions, repositoryBindings, assetGroups, rights, integrity.

Property Required Contract
$schema yes constant "https://w3id.org/modavis/vao/0.6.0/schema/manifest.json"
@context yes type array; minimum items 1; unique items true; items: type string; format uri
type yes constant "VirtualAcousticObject"
formatVersion yes constant "0.6.0"
id yes identifier
release yes releaseIdentity
createdAt yes dateTime
modifiedAt yes dateTime
title yes localizedText
description no localizedText
conformsTo yes uniqueIRIs
profiles yes type array; minimum items 1; items: profile
materializableProfiles yes type array; items: materializableProfile
modavisBinding yes modavisBinding
primaryEntityId yes identifier
focusEntityIds yes uniqueIdentifiers
entities yes type array; minimum items 1; items: entity
relations yes type array; items: relation
acoustics no acoustics
playable no playable
interactionModel no interactionModel
captureDocumentation no captureDocumentation
logicalAssets yes type array; minimum items 1; items: logicalAsset
realizations yes type array; minimum items 1; items: realization
distributions yes type array; items: distribution
repositoryBindings yes type array; items: repositoryBinding
assetGroups yes type array; minimum items 1; items: assetGroup
rights yes type array; minimum items 1; items: rights
integrity yes integrity
extensions no extensions
scientific yes scientific
multimodal yes multimodal
physicalSystem yes physicalSystem
runtime yes runtime
discovery yes discovery

Definition index

identifier

JSON Pointer: #/$defs/identifier

Contract: type string; format uri; pattern ^(urn:|https?:)[^\s]+$; minimum length 3

iri

JSON Pointer: #/$defs/iri

Contract: type string; format uri

representationStatus

JSON Pointer: #/$defs/representationStatus

Contract: one of "https://w3id.org/modavis/vao/vocab/representation-status/captured", "https://w3id.org/modavis/vao/vocab/representation-status/authored", "https://w3id.org/modavis/vao/vocab/representation-status/converted", "https://w3id.org/modavis/vao/vocab/representation-status/derived", "https://w3id.org/modavis/vao/vocab/representation-status/simulated", "https://w3id.org/modavis/vao/vocab/representation-status/inferred", "https://w3id.org/modavis/vao/vocab/representation-status/reconstructed", "https://w3id.org/modavis/vao/vocab/representation-status/redacted", "https://w3id.org/modavis/vao/vocab/representation-status/hybrid", "https://w3id.org/modavis/vao/vocab/representation-status/undetermined"

orcid

JSON Pointer: #/$defs/orcid

Contract: type string; format uri; pattern ^https://orcid\.org/[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$

ror

JSON Pointer: #/$defs/ror

Contract: type string; format uri; pattern ^https://ror\.org/0[a-hj-km-np-tv-z0-9]{6}[0-9]{2}$

dateTime

JSON Pointer: #/$defs/dateTime

RFC 3339 instant in the VAO exact-comparison subset: known offset, seconds 00-59, and at most 18 fractional digits.

Contract: type string; format date-time; pattern ^[0-9]{4}-[0-9]{2}-[0-9]{2}[Tt][0-9]{2}:[0-9]{2}:[0-5][0-9](?:\.[0-9]{1,18})?(?:[Zz]|[+-][0-9]{2}:[0-9]{2})$

numericValue

JSON Pointer: #/$defs/numericValue

A finite JSON number, numeric vector, or rectangular numeric matrix.

Contract: one of 3 alternatives

nonNegativeNumericValue

JSON Pointer: #/$defs/nonNegativeNumericValue

A non-negative scalar, vector, or rectangular matrix.

Contract: one of 3 alternatives

numericMatrix

JSON Pointer: #/$defs/numericMatrix

Contract: type array; minimum items 1; items: type array; minimum items 1; items: type number

positiveRate

JSON Pointer: #/$defs/positiveRate

A positive clock rate, optionally represented as an exact rational for rates such as 30000/1001.

Contract: one of 2 alternatives

sha256

JSON Pointer: #/$defs/sha256

Contract: type string; pattern ^[0-9a-f]{64}$

safeMemberPath

JSON Pointer: #/$defs/safeMemberPath

Contract: type string; pattern ^(?!/)(?!.*(?:^|/)\.\.(?:/|$))(?!.*\\)[^\x00-\x1F\x7F]+$

localizedText

JSON Pointer: #/$defs/localizedText

Contract: type object; minimum properties 1

uniqueIRIs

JSON Pointer: #/$defs/uniqueIRIs

Contract: type array; minimum items 1; unique items true; items: iri

uniqueIdentifiers

JSON Pointer: #/$defs/uniqueIdentifiers

Contract: type array; minimum items 1; unique items true; items: identifier

identifierList

JSON Pointer: #/$defs/identifierList

Contract: type array; unique items true; items: identifier

extensions

JSON Pointer: #/$defs/extensions

Contract: type object

classification

JSON Pointer: #/$defs/classification

Contract: type object; closed object

Property Required Contract
scheme yes iri
code yes type string; minimum length 1
label no localizedText
version no type string; minimum length 1

externalIdentifier

JSON Pointer: #/$defs/externalIdentifier

Contract: type object; closed object

Property Required Contract
scheme yes type string; pattern ^\S+$; minimum length 1
value yes type string; minimum length 1
resolverIRI no iri

dataciteRelationType

JSON Pointer: #/$defs/dataciteRelationType

DataCite Metadata Schema 4.7 relationType.

Contract: one of "IsCitedBy", "Cites", "IsSupplementTo", "IsSupplementedBy", "IsContinuedBy", "Continues", "IsNewVersionOf", "IsPreviousVersionOf", "IsPartOf", "HasPart", "IsPublishedIn", "IsReferencedBy", "References", "IsDocumentedBy", "Documents", "IsCompiledBy", "Compiles", "IsVariantFormOf", "IsOriginalFormOf", "IsIdenticalTo", "HasMetadata", "IsMetadataFor", "Reviews", "IsReviewedBy", "IsDerivedFrom", "IsSourceOf", "Describes", "IsDescribedBy", "HasVersion", "IsVersionOf", "Requires", "IsRequiredBy", "Obsoletes", "IsObsoletedBy", "Collects", "IsCollectedBy", "HasTranslation", "IsTranslationOf", "Other"

dataciteResourceType

JSON Pointer: #/$defs/dataciteResourceType

DataCite Metadata Schema 4.7 resourceTypeGeneral.

Contract: one of "Audiovisual", "Award", "Book", "BookChapter", "Collection", "ComputationalNotebook", "ConferencePaper", "ConferenceProceeding", "DataPaper", "Dataset", "Dissertation", "Event", "Image", "Instrument", "InteractiveResource", "Journal", "JournalArticle", "Model", "OutputManagementPlan", "PeerReview", "PhysicalObject", "Poster", "Preprint", "Presentation", "Project", "Report", "Service", "Software", "Sound", "Standard", "StudyRegistration", "Text", "Workflow", "Other"

dataciteRelatedIdentifierType

JSON Pointer: #/$defs/dataciteRelatedIdentifierType

DataCite Metadata Schema 4.7 relatedIdentifierType.

Contract: one of "ARK", "arXiv", "bibcode", "CSTR", "DOI", "EAN13", "EISSN", "Handle", "IGSN", "ISBN", "ISSN", "ISTC", "LISSN", "LSID", "PMID", "PURL", "RAiD", "RRID", "SWHID", "UPC", "URL", "URN", "w3id"

dataciteFunderIdentifierType

JSON Pointer: #/$defs/dataciteFunderIdentifierType

DataCite Metadata Schema 4.7 funderIdentifierType.

Contract: one of "ISNI", "GRID", "ROR", "Crossref Funder ID", "Other"

dataciteRelatedIdentifier

JSON Pointer: #/$defs/dataciteRelatedIdentifier

Contract: type object; closed object

Property Required Contract
identifier yes type string; minimum length 1
identifierType yes dataciteRelatedIdentifierType
relationType yes dataciteRelationType
resourceType no dataciteResourceType
relationTypeInformation no type string; minimum length 1
schemeUri no iri

relationScope

JSON Pointer: #/$defs/relationScope

Contract: type object; minimum properties 1; closed object

Property Required Contract
appliesToIds no identifierList
validFrom no dateTime
validUntil no dateTime
timebaseId no identifier
start no type number
endExclusive no type number
coordinateFrameId no identifier
selector no geometrySelector
properties no extensions

releaseIdentity

JSON Pointer: #/$defs/releaseIdentity

Contract: type object; closed object

Property Required Contract
id yes identifier
revision yes type integer; minimum 1; maximum 9007199254740991
contentVersion yes type string; minimum length 1
supersedesReleaseId no identifier
migratedFromManifestSHA256 no sha256

profile

JSON Pointer: #/$defs/profile

Contract: type object; closed object

Property Required Contract
id yes iri
version yes constant "0.6.0"
requiredCapabilities yes type array; unique items true; items: iri
specificationVersion no type string; minimum length 1

materializableProfile

JSON Pointer: #/$defs/materializableProfile

Contract: type object; closed object

Property Required Contract
id yes iri
version yes constant "0.6.0"
requiredCapabilities yes type array; unique items true; items: iri
groupIds yes uniqueIdentifiers
specificationVersion no type string; minimum length 1

modavisBinding

JSON Pointer: #/$defs/modavisBinding

Contract: type object; closed object

Property Required Contract
ontologyIRI yes iri
ontologyVersion yes type string; minimum length 1
ontologyStatus yes one of "development", "released", "embedded-snapshot"
ontologyVersionIRI no iri
mappingVersion yes type string; minimum length 1
mappingIRI no iri
vocabularyReleaseIRI no iri
vocabularyManifestSHA256 no sha256
notes no type string

entity

JSON Pointer: #/$defs/entity

Contract: type object; closed object

Property Required Contract
id yes identifier
kind yes type string; minimum length 1
types yes uniqueIRIs
labels yes localizedText
classifications no type array; items: classification
externalIdentifiers no type array; items: externalIdentifier
properties no extensions

literal

JSON Pointer: #/$defs/literal

Contract: type object; closed object

Property Required Contract
value yes primitiveValue
datatype no iri
language no type string; pattern ^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$
unit no iri

relation

JSON Pointer: #/$defs/relation

Contract: type object; one of 2 alternatives; closed object

Property Required Contract
id yes identifier
subjectId yes identifier
predicate yes iri
objectId no identifier
literal no literal
status yes one of "asserted", "accepted", "rejected", "superseded", "inferred"
confidence no type number; minimum 0; maximum 1
scope no relationScope
evidenceIds no identifierList
generatedByIds no identifierList
properties no extensions

logicalAsset

JSON Pointer: #/$defs/logicalAsset

Contract: type object; closed object

Property Required Contract
id yes identifier
type yes constant "LogicalAsset"
labels no localizedText
roles yes uniqueIRIs
aboutEntityIds yes uniqueIdentifiers
realizationIds yes uniqueIdentifiers
properties no extensions

realization

JSON Pointer: #/$defs/realization

Contract: type object; closed object

Property Required Contract
id yes identifier
type yes constant "Realization"
assetId yes identifier
variantSetId yes type string; minimum length 1
qualityTier yes one of "bootstrap", "mobile", "production", "production-spatial", "preservation", "custom"
mediaType yes type string; pattern ^[^/\s]+/[^\s]+$
byteSize yes type integer; minimum 0; maximum 9007199254740991
sha256 yes sha256
representationStatus yes representationStatus
rightsIds yes uniqueIdentifiers
provenanceIds yes type array; minimum items 1; unique items true; items: identifier
technicalMetadata yes technicalMetadata
distributionIds yes identifierList
contentDigests no type array; minimum items 1; unique items true; items: contentDigest
chunking no chunking
streamingIndexRealizationId no identifier
authenticityEnvelopeRealizationId no identifier
extensions no extensions

technicalMetadata

JSON Pointer: #/$defs/technicalMetadata

Contract: type object; closed object

Property Required Contract
kind yes one of "audio", "video", "geometry", "image", "depth", "volumetric", "motion-capture", "trajectory", "event-stream", "sensor-data", "score", "document", "data", "software", "other"
sampleRate no type number; exclusive minimum 0
sampleFormat no type string; minimum length 1
bitDepth no type integer; minimum 1; maximum 9007199254740991
channelCount no type integer; minimum 1; maximum 9007199254740991
frameCount no type integer; minimum 1; maximum 9007199254740991
channelLabels no type array; items: type string; minimum length 1
audioContainer no type string; minimum length 1
ambisonicsOrder no type integer; minimum 0; maximum 9007199254740991
ambisonicsDimensionality no one of "2D", "3D"
ambisonicsChannelOrder no one of "ACN"
ambisonicsNormalization no one of "SN3D", "N3D"
impulseResponse no impulseResponseTechnicalMetadata
coordinateFrameId no identifier
coordinateUnit no iri
handedness no one of "left", "right"
upAxis no one of "X", "Y", "Z"
lod no type integer; minimum 0; maximum 9007199254740991
triangleCount no type integer; minimum 0; maximum 9007199254740991
vertexCount no type integer; minimum 0; maximum 9007199254740991
textureMaxDimension no type integer; minimum 1; maximum 9007199254740991
purposeLimitations no type array; items: type string; minimum length 1
extensions no extensions
durationSeconds no type number; minimum 0
timebaseId no identifier
width no type integer; minimum 1; maximum 9007199254740991
height no type integer; minimum 1; maximum 9007199254740991
frameRate no positiveRate
codec no type string; minimum length 1
colorSpace no type string; minimum length 1
eventEncoding no type string; minimum length 1
sensorEncoding no type string; minimum length 1
scoreFormat no type string; minimum length 1
trajectoryTrackId no identifier

vector2

JSON Pointer: #/$defs/vector2

Contract: type array; minimum items 2; maximum items 2; items: type number

vector3

JSON Pointer: #/$defs/vector3

Contract: type array; minimum items 3; maximum items 3; items: type number

quaternionXYZW

JSON Pointer: #/$defs/quaternionXYZW

Contract: type array; minimum items 4; maximum items 4; items: type number; minimum -1; maximum 1

matrix4x4

JSON Pointer: #/$defs/matrix4x4

Contract: type array; minimum items 16; maximum items 16; items: type number

uncertainty

JSON Pointer: #/$defs/uncertainty

Measurement uncertainty. unit or axisUnits states component units; covariance entries use the products of the corresponding component units. Scalar/vector magnitudes are non-negative; covariance is square, symmetric, and positive-semidefinite as checked semantically.

Contract: type object; one of 2 alternatives; closed object

Property Required Contract
kind yes one of "standard", "expanded", "bound", "covariance", "registration-rms"
value yes numericValue
unit no iri
axisUnits no type array; minimum items 1; items: iri
coverageFactor no type number; exclusive minimum 1
confidenceLevel no type number; exclusive minimum 0; maximum 1
method no type string; minimum length 1

coordinateFrame

JSON Pointer: #/$defs/coordinateFrame

Contract: type object; closed object

Property Required Contract
id yes identifier
dimension yes one of 2, 3
coordinateType yes one of "cartesian", "geodetic", "projected", "screen", "parametric"
unit no iri
axisUnits no type array; minimum items 2; maximum items 3; items: iri
handedness yes one of "right", "left", "not-applicable"
upAxis yes one of "+X", "-X", "+Y", "-Y", "+Z", "-Z", "not-applicable"
forwardAxis yes one of "+X", "-X", "+Y", "-Y", "+Z", "-Z", "not-applicable"
crs no iri
parentFrameId no identifier
transformToParent no matrix4x4
registrationUncertainty no uncertainty
generatedById no identifier
notes no type string

pose

JSON Pointer: #/$defs/pose

A position in a target frame and, when orientation is present, an explicit local-to-target frame rotation.

Contract: type object; closed object

Property Required Contract
id yes identifier
subjectId yes identifier
frameId yes identifier
localFrameId no identifier
position yes one of 2 alternatives
orientationXYZW no quaternionXYZW
orientationRadians no type number; minimum -3.141592653589793; maximum 3.141592653589793
extent no one of 2 alternatives
positionUncertainty no uncertainty
orientationUncertainty no uncertainty
configurationId no identifier
stateId no identifier
validFrom no dateTime
validUntil no dateTime
trajectoryRealizationId no identifier
interpolation yes one of "none", "step", "linear", "spherical-linear", "cubic"
generatedById no identifier

geometrySelector

JSON Pointer: #/$defs/geometrySelector

Contract: type object; closed object

Property Required Contract
selectorType yes one of "ifc-global-id", "citygml-id", "gltf-node-index", "usd-prim-path", "mesh-primitive", "feature-id", "wkt"
value yes one of 2 alternatives
subSelector no type string

geometryBinding

JSON Pointer: #/$defs/geometryBinding

Contract: type object; closed object

Property Required Contract
id yes identifier
subjectId yes identifier
logicalAssetId yes identifier
role yes one of "authoritative-semantic", "acoustic-simulation", "runtime-visual", "collision", "occlusion", "navigation"
selector no geometrySelector
generatedById no identifier

bandAxis

JSON Pointer: #/$defs/bandAxis

Contract: type object; closed object

Property Required Contract
scale yes one of "linear", "logarithmic", "octave", "third-octave", "erb", "bark", "custom"
centerFrequenciesHz yes type array; minimum items 1; unique items true; items: type number; exclusive minimum 0
lowerEdgesHz no type array; items: type number; minimum 0
upperEdgesHz no type array; items: type number; minimum 0
weighting no one of "none", "A", "C", "Z", "other"

materialModel

JSON Pointer: #/$defs/materialModel

Contract: type object; closed object

Property Required Contract
id yes identifier
materialEntityId yes identifier
bandAxis yes bandAxis
absorption yes type array; minimum items 1; items: type number; minimum 0; maximum 1
scattering no type array; minimum items 1; items: type number; minimum 0; maximum 1
transmissionLossDB no type array; minimum items 1; items: type number; minimum 0
surfaceImpedanceAssetId no identifier
incidence no one of "random", "normal", "angle-dependent", "unspecified"
sidedness no one of "one-sided", "two-sided", "layered"
thicknessMeters no type number; exclusive minimum 0
environmentStateId no identifier
representationStatus yes one of "measured", "simulated", "inferred", "learned", "authored", "hybrid"
absorptionUncertainty no uncertainty
scatteringUncertainty no uncertainty
transmissionLossUncertainty no uncertainty
generatedById yes identifier

responseMeasurement

JSON Pointer: #/$defs/responseMeasurement

Contract: type object; closed object

Property Required Contract
id yes identifier
sourceId yes identifier
receiverId yes identifier
sourcePoseId yes identifier
receiverPoseId yes identifier
spaceId no identifier
sourceSpaceId no identifier
receivingSpaceId no identifier
separatingElementId no identifier
transmissionPathIds no identifierList
configurationId no identifier
stateId no identifier
validFrom no dateTime
validUntil no dateTime

measurementMapping

JSON Pointer: #/$defs/measurementMapping

Contract: type object; closed object

Property Required Contract
measurementId yes identifier
dataIRIndex no type integer; minimum 0; maximum 9007199254740991
channelIndices yes type array; minimum items 1; unique items true; items: type integer; minimum 0; maximum 9007199254740991
delaySamples no type number

impulseResponseTechnicalMetadata

JSON Pointer: #/$defs/impulseResponseTechnicalMetadata

Contract: type object; closed object

Property Required Contract
responseSetId yes identifier
encoding yes one of "AES69-SOFA", "WAV", "FLAC", "HDF5", "netCDF", "Zarr", "custom"
convention no type string; minimum length 1
sampleCount yes type integer; minimum 1; maximum 9007199254740991
timeZeroPolicy yes one of "excitation-origin", "direct-arrival", "recording-start", "per-measurement-delay", "unspecified"
normalization yes one of "physical-pressure", "calibrated-relative", "peak", "energy", "none", "unspecified"
channelTopology no iri
measurementMappings yes type array; minimum items 1; items: measurementMapping

interpolationContract

JSON Pointer: #/$defs/interpolationContract

Contract: type object; closed object

Property Required Contract
method yes one of "none", "nearest", "linear", "barycentric", "spherical-harmonic", "radial-basis", "physics-based", "neural-field", "hybrid"
domain yes identifier
outsideDomainPolicy yes one of "reject", "nearest", "clamp", "fade-to-dry", "fallback"
fallbackResponseSetId no identifier
modelAssetId no identifier
trainingInputIds no identifierList
validationInputIds no identifierList
qualityMetricSetId no identifier
determinism no one of "deterministic", "seeded", "non-deterministic"
seed no type integer; minimum -9007199254740991; maximum 9007199254740991

responseSet

JSON Pointer: #/$defs/responseSet

Contract: type object; closed object

Property Required Contract
id yes identifier
responseEntityId yes identifier
responseKind yes one of "rir", "brir", "srir", "hrir", "hrtf", "binaural-room-transfer-function", "transfer-function", "directivity", "sound-field", "building-transfer"
logicalAssetId yes identifier
representationStatus yes one of "measured", "simulated", "inferred", "learned", "authored", "hybrid"
measurementIds yes uniqueIdentifiers
delayAssetId no identifier
calibrationIds no identifierList
interpolation no interpolationContract
generatedById yes identifier
qualityFlags no type array; unique items true; items: type string; minimum length 1

metricValue

JSON Pointer: #/$defs/metricValue

Contract: type object; closed object

Property Required Contract
property yes iri
values yes type array; minimum items 1; items: type number
unit yes iri
uncertainty no uncertainty
status yes one of "observed", "calculated", "simulated", "inferred", "reviewed", "accepted"
sourceId no identifier
receiverId no identifier
sourceSpaceId no identifier
receivingSpaceId no identifier
separatingElementId no identifier

metricSet

JSON Pointer: #/$defs/metricSet

Contract: type object; closed object

Property Required Contract
id yes identifier
standard yes iri
standardEdition yes type string; minimum length 1
method yes type string; minimum length 1
subjectIds yes uniqueIdentifiers
inputIds yes uniqueIdentifiers
bandAxis yes bandAxis
metrics yes type array; minimum items 1; items: metricValue
generatedById yes identifier
qualityFlags no type array; unique items true; items: type string

audioBinding

JSON Pointer: #/$defs/audioBinding

Contract: type object; closed object

Property Required Contract
id yes identifier
entityId yes identifier
mediaAssetId yes identifier
bindingType yes one of "channel", "object", "higher-order-ambisonics", "binaural", "response", "bed"
channelIndices no type array; minimum items 1; unique items true; items: type integer; minimum 0; maximum 9007199254740991
poseId no identifier
gainDB no type number
directivityResponseSetId no identifier

audioScene

JSON Pointer: #/$defs/audioScene

Contract: type object; closed object

Property Required Contract
id yes identifier
sceneEntityId yes identifier
representationType yes one of "ITU-ADM-BW64", "MPEG-I-immersive-audio", "MPEG-H-3D-audio", "channel-bed", "object-audio", "higher-order-ambisonics", "binaural", "hybrid"
standard no iri
coordinateFrameId yes identifier
mediaAssetIds yes uniqueIdentifiers
metadataAssetId no identifier
bindings yes type array; minimum items 1; items: audioBinding
contentTimebase no type string; minimum length 1
generatedById no identifier

listenerBinding

JSON Pointer: #/$defs/listenerBinding

Contract: type object; closed object

Property Required Contract
mode yes one of "fixed", "tracked-3dof", "tracked-6dof", "trajectory"
receiverId yes identifier
coordinateFrameId yes identifier
poseId no identifier
trajectoryRealizationId no identifier
personalizationAssetId no identifier
headphoneCompensationAssetId no identifier

runtimeFeature

JSON Pointer: #/$defs/runtimeFeature

Contract: type object; closed object

Property Required Contract
feature yes one of "distance", "directivity", "occlusion", "diffraction", "early-reflections", "late-reverberation", "doppler", "portals", "listener-room-adaptation", "source-tracking"
mode yes one of "disabled", "metadata", "response-field", "geometry", "renderer-defined"
inputIds no identifierList

renderConfiguration

JSON Pointer: #/$defs/renderConfiguration

Contract: type object; closed object

Property Required Contract
id yes identifier
sceneId yes identifier
strategy yes one of "static-playback", "tracked-convolution", "response-interpolation", "geometry-acoustics", "MPEG-I-6DoF", "learned-field", "hybrid"
coordinateFrameId yes identifier
inputIds yes uniqueIdentifiers
listener yes listenerBinding
features yes type array; items: runtimeFeature
validDomainId no identifier
outsideDomainPolicy yes one of "reject", "nearest", "clamp", "fade-to-dry", "fallback"
fallbackIds yes identifierList
transitionSeconds no type number; minimum 0
latencyBudgetMilliseconds no type number; minimum 0
levelsOfDetail no type array; items: type object; closed object
rendererRequirements no type array; unique items true; items: iri

acoustics

JSON Pointer: #/$defs/acoustics

Contract: type object; closed object

Property Required Contract
coordinateFrames yes type array; items: coordinateFrame
poses yes type array; items: pose
geometryBindings yes type array; items: geometryBinding
materialModels yes type array; items: materialModel
measurements yes type array; items: responseMeasurement
responseSets yes type array; items: responseSet
metricSets yes type array; items: metricSet
audioScenes yes type array; items: audioScene
renderConfigurations yes type array; items: renderConfiguration

evidenceStatus

JSON Pointer: #/$defs/evidenceStatus

Contract: one of "asserted", "inferred", "reviewed", "accepted", "rejected", "superseded"

playbackMetadataSource

JSON Pointer: #/$defs/playbackMetadataSource

Contract: one of "documented", "native-definition", "embedded-metadata", "measured", "algorithmic", "authored"

frameRange

JSON Pointer: #/$defs/frameRange

Contract: type object; closed object

Property Required Contract
startFrameInclusive yes type integer; minimum 0; maximum 9007199254740991
endFrameExclusive yes type integer; minimum 1; maximum 9007199254740991

signalRegion

JSON Pointer: #/$defs/signalRegion

Contract: type object; closed object

Property Required Contract
id yes identifier
realizationId yes identifier
role yes one of "attack", "sustain", "sustain-loop", "release", "noise", "tremulant", "silence-control", "whole-signal", "other"
startFrameInclusive yes type integer; minimum 0; maximum 9007199254740991
endFrameExclusive yes type integer; minimum 1; maximum 9007199254740991
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
notes no type string

loopPointSet

JSON Pointer: #/$defs/loopPointSet

Contract: type object; closed object

Property Required Contract
id yes identifier
regionIds yes uniqueIdentifiers
mode yes one of "forward", "alternating", "backward"
selectionPolicy yes one of "ordered", "random", "round-robin", "best", "host-defined"
exitPolicy yes one of "immediate", "finish-cycle", "crossfade", "envelope", "recorded-release"
crossfadeFrames no type integer; minimum 0; maximum 9007199254740991
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
reviewedById no identifier
notes no type string

tuningEntry

JSON Pointer: #/$defs/tuningEntry

Contract: type object; any of 4 alternatives; closed object

Property Required Contract
key yes type integer; minimum 0; maximum 127
targetFrequencyHz no type number; exclusive minimum 0
sourceFrequencyHz no type number; exclusive minimum 0
correctionCents no type number
harmonicNumber no type number; exclusive minimum 0
originalPitch no type string; minimum length 1

tuningMap

JSON Pointer: #/$defs/tuningMap

Contract: type object; closed object

Property Required Contract
id yes identifier
referencePitchHz yes type number; exclusive minimum 0
referenceMIDINote yes type integer; minimum 0; maximum 127
temperamentLabel no type string; minimum length 1
entries yes type array; minimum items 1; items: tuningEntry
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
notes no type string

perspectiveGroup

JSON Pointer: #/$defs/perspectiveGroup

Contract: type object; closed object

Property Required Contract
id yes identifier
labels yes localizedText
perspectiveType yes one of "direct", "near", "front", "mid", "far", "rear", "diffuse", "surround", "dry", "wet", "mixed", "unknown"
realizationIds yes uniqueIdentifiers
channelIndices no type array; minimum items 1; unique items true; items: type integer; minimum 0; maximum 9007199254740991
poseIds no identifierList
geometryStatus yes one of "position-registered", "label-only", "unknown"
selectionPolicy yes one of "exclusive", "combinable", "reference", "host-defined"
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier

sampleVariant

JSON Pointer: #/$defs/sampleVariant

Contract: type object; closed object

Property Required Contract
id yes identifier
realizationId yes identifier
trigger yes one of "note-on", "note-off", "continuous", "control"
signalRole yes one of "attack", "sustain", "attack-sustain", "release", "noise", "tremulant", "other"
signalRegionIds no identifierList
loopPointSetIds no identifierList
perspectiveGroupId no identifier
roundRobinGroup no type string; minimum length 1
roundRobinIndex no type integer; minimum 0; maximum 9007199254740991
selectionWeight no type number; exclusive minimum 0
sourceLocator no type string; minimum length 1
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier

midiRange

JSON Pointer: #/$defs/midiRange

Contract: type object; closed object

Property Required Contract
minimum yes type integer; minimum 0; maximum 127
maximum yes type integer; minimum 0; maximum 127

velocityRange

JSON Pointer: #/$defs/velocityRange

Contract: type object; closed object

Property Required Contract
minimum yes type integer; minimum 1; maximum 127
maximum yes type integer; minimum 1; maximum 127

sampleMapping

JSON Pointer: #/$defs/sampleMapping

Contract: type object; closed object

Property Required Contract
id yes identifier
instrumentEntityId yes identifier
componentEntityId no identifier
rankEntityId no identifier
keyRange yes midiRange
velocityRange no velocityRange
velocitySensitivity no one of "none", "range", "transfer-function", "host-defined"
controlKeyMeaning no one of "midi-control-key", "played-key", "sounding-key", "source-definition-key"
soundingKeyOffset no type integer; minimum -127; maximum 127
sampleRootKey no type integer; minimum 0; maximum 127
variantIds yes uniqueIdentifiers
selectionPolicy yes one of "single", "ordered-fallback", "round-robin", "random-weighted", "velocity-layer", "simultaneous", "host-defined"
tuningMapId no identifier
gainDB no type number
pitchTuningCents no type number
noteOffPolicy yes one of "stop", "envelope", "finish-cycle", "recorded-release", "host-defined"
sourceLocator no type string; minimum length 1
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier

playable

JSON Pointer: #/$defs/playable

Contract: type object; closed object

Property Required Contract
signalRegions yes type array; items: signalRegion
loopPointSets yes type array; items: loopPointSet
tuningMaps yes type array; items: tuningMap
perspectiveGroups yes type array; items: perspectiveGroup
sampleVariants yes type array; items: sampleVariant
sampleMappings yes type array; items: sampleMapping

primitiveValue

JSON Pointer: #/$defs/primitiveValue

Contract: any of 3 alternatives

stateCondition

JSON Pointer: #/$defs/stateCondition

Contract: type object; closed object

Property Required Contract
stateVariableId yes identifier
operator yes one of "equals", "not-equals", "less-than", "less-than-or-equal", "greater-than", "greater-than-or-equal"
value yes primitiveValue

interactionControl

JSON Pointer: #/$defs/interactionControl

Contract: type object; closed object

Property Required Contract
id yes identifier
labels yes localizedText
entityId no identifier
controlBehavior yes one of "momentary", "gate", "latched", "toggle", "stepped", "continuous", "snapshot"
valueType yes one of "event", "boolean", "integer", "number", "enumerated"
minimumValue no type number
maximumValue no type number
stepCount no type integer; minimum 2; maximum 9007199254740991
allowedValues no type array; minimum items 1; unique items true; items: primitiveValue
defaultValue no primitiveValue
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
reviewedById no identifier
sourceLocator no type string; minimum length 1
notes no type string

interactionEventType

JSON Pointer: #/$defs/interactionEventType

Contract: type object; closed object

Property Required Contract
id yes identifier
labels yes localizedText
eventKind yes one of "note-on", "note-off", "control-on", "control-off", "control-change", "trigger", "clock", "custom"
valueDomain yes one of "none", "boolean", "integer", "number", "midi-key", "midi-value", "enumerated"
allowedValues no type array; minimum items 1; unique items true; items: primitiveValue
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
reviewedById no identifier
notes no type string

protocolBinding

JSON Pointer: #/$defs/protocolBinding

Contract: type object; closed object

Property Required Contract
id yes identifier
controlId yes identifier
eventTypeId yes identifier
protocol yes one of "MIDI-1.0", "MIDI-2.0", "OSC", "host", "electrical", "custom"
direction yes one of "input", "output", "bidirectional"
messageType yes one of "note", "control-change", "program-change", "channel-pressure", "pitch-bend", "system-exclusive", "addressed-value", "custom"
channel no type integer; minimum 0; maximum 16
number no type integer; minimum 0; maximum 128
channelNumberingBase no one of 0, 1
dataNumberingBase no one of 0, 1
address no type string; minimum length 1
activationValue no primitiveValue
deactivationValue no primitiveValue
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
reviewedById no identifier
sourceLocator no type string; minimum length 1
umpGroup no type integer; minimum 0; maximum 15
functionBlock no type integer; minimum 0; maximum 31
umpMessageType no type integer; minimum 0; maximum 15
dataResolutionBits no one of 7, 14, 16, 32
perNoteControllerIndex no type integer; minimum 0; maximum 127
jrTimestamp no type boolean
midiCIProfileIRI no iri
propertyExchangeResourceIRI no iri

stateVariable

JSON Pointer: #/$defs/stateVariable

Contract: type object; closed object

Property Required Contract
id yes identifier
labels yes localizedText
subjectEntityId no identifier
valueType yes one of "boolean", "integer", "number", "enumerated"
persistence yes one of "momentary", "latched", "until-release", "session", "snapshot"
defaultValue yes primitiveValue
minimumValue no type number
maximumValue no type number
stepCount no type integer; minimum 2; maximum 9007199254740991
allowedValues no type array; minimum items 1; unique items true; items: primitiveValue
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
reviewedById no identifier
notes no type string

declarativeAction

JSON Pointer: #/$defs/declarativeAction

Contract: type object; closed object

Property Required Contract
operation yes one of "set-state", "toggle-state", "increment-state", "emit-event", "start-process", "stop-process", "route-event", "select-render-binding"
targetId yes identifier
value no primitiveValue
keyOffset no type integer; minimum -127; maximum 127
delayConstraintId no identifier
executionGroup no type string; minimum length 1

interactionTransition

JSON Pointer: #/$defs/interactionTransition

Contract: type object; closed object

Property Required Contract
id yes identifier
eventTypeId yes identifier
controlId no identifier
conditions no type array; items: stateCondition
actions yes type array; minimum items 1; items: declarativeAction
atomic yes type boolean
conflictPolicy yes one of "reject", "priority", "last-event-wins", "merge-disjoint"
priority no type integer; minimum -9007199254740991; maximum 9007199254740991
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
reviewedById no identifier
notes no type string

keyTransformEntry

JSON Pointer: #/$defs/keyTransformEntry

Contract: type object; closed object

Property Required Contract
inputKey yes type integer; minimum 0; maximum 127
outputKeys yes type array; minimum items 1; unique items true; items: type integer; minimum 0; maximum 127

keyTransform

JSON Pointer: #/$defs/keyTransform

Contract: type object; closed object

Property Required Contract
kind yes one of "identity", "transpose", "fixed", "table"
semitoneOffset no type integer; minimum -127; maximum 127
fixedOutputKeys no type array; minimum items 1; unique items true; items: type integer; minimum 0; maximum 127
entries no type array; minimum items 1; items: keyTransformEntry

routingRule

JSON Pointer: #/$defs/routingRule

Contract: type object; closed object

Property Required Contract
id yes identifier
sourceControlId no identifier
sourceEntityId yes identifier
targetEntityId yes identifier
routingBehavior yes one of "activates", "selects", "modulates", "copies", "transposes"
inputKeyMeaning yes one of "midi-control-key", "played-key", "sounding-key", "source-definition-key"
outputKeyMeaning yes one of "played-key", "sounding-key", "sample-root-key", "actuator-key"
inputRange yes midiRange
keyTransform yes keyTransform
conditions no type array; items: stateCondition
footageLabel no type string; minimum length 1
harmonicRelation no type number; exclusive minimum 0
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
reviewedById no identifier
sourceLocator no type string; minimum length 1
notes no type string
delayConstraintId no identifier

timingConstraint

JSON Pointer: #/$defs/timingConstraint

Contract: type object; closed object

Property Required Contract
id yes identifier
timingKind yes one of "latency", "minimum-gate", "recovery", "debounce", "repeat-interval", "duration", "attack", "release"
unit yes one of "seconds", "milliseconds", "audio-frames", "samples"
minimum yes type number; minimum 0
typical no type number; minimum 0
maximum no type number; minimum 0
uncertainty no uncertainty
appliesToIds no uniqueIdentifiers
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
reviewedById no identifier
sourceLocator no type string; minimum length 1
notes no type string

processModel

JSON Pointer: #/$defs/processModel

A declarative Process. For stochastic Processes, candidates are direct actions in array order followed by direct childProcessIds in array order; exactly one candidate is selected before a selected child expands.

Contract: type object; any of 2 alternatives; closed object

Property Required Contract
id yes identifier
processKind yes one of "one-shot", "sustained", "repeating", "sequenced", "compound", "stochastic"
ordering yes one of "single", "simultaneous", "sequential", "stochastic"
actions yes type array; items: declarativeAction
childProcessIds no identifierList
timingConstraintIds no identifierList
terminationPolicy yes one of "completed", "on-control-release", "maximum-iterations", "duration-bound", "external-cancel"
maximumIterations no type integer; minimum 1; maximum 9007199254740991
durationConstraintId no identifier
cancellationControlId no identifier
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
reviewedById no identifier
notes no type string
randomSourceId no identifier
probabilityDistribution no type object; one of 2 alternatives; closed object

transferPoint

JSON Pointer: #/$defs/transferPoint

Contract: type object; one of 2 alternatives; closed object

Property Required Contract
input no type number
output yes primitiveValue
inputs no type array; minimum items 1; items: type number
uncertainty no uncertainty

transferFunction

JSON Pointer: #/$defs/transferFunction

Contract: type object; closed object

Property Required Contract
id yes identifier
inputKind yes one of "gate-duration", "expression-step", "velocity", "control-value", "actuator-selection"
outputKind yes one of "force", "gain-db", "spectrum-state", "shutter-configuration", "sample-selection", "control-value"
inputUnit no type string; minimum length 1
outputUnit no type string; minimum length 1
interpolation yes one of "step", "linear", "piecewise-linear", "lookup"
points yes type array; minimum items 1; items: transferPoint
monotonic no type boolean
appliesToIds no uniqueIdentifiers
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
reviewedById no identifier
sourceLocator no type string; minimum length 1
notes no type string
inputKinds no type array; minimum items 1; unique items true; items: type string; minimum length 1
validDomain no type array; minimum items 1; items: vector2
extrapolationPolicy no one of "reject", "clamp", "nearest", "linear"
hysteresis no type boolean
dynamicModel no one of "static", "first-order", "state-space", "lookup-sequence"
fitResidual no quantityValue

renderBinding

JSON Pointer: #/$defs/renderBinding

Contract: type object; any of 2 alternatives; closed object

Property Required Contract
id yes identifier
eventTypeId no identifier
processModelId no identifier
conditions no type array; items: stateCondition
sampleMappingIds no identifierList
sampleVariantIds no identifierList
selectionPolicy yes one of "single", "simultaneous", "ordered", "state-dependent", "host-defined"
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
reviewedById no identifier
notes no type string

interactionModel

JSON Pointer: #/$defs/interactionModel

Contract: type object; closed object

Property Required Contract
controls yes type array; items: interactionControl
eventTypes yes type array; items: interactionEventType
protocolBindings yes type array; items: protocolBinding
stateVariables yes type array; items: stateVariable
transitions yes type array; items: interactionTransition
routingRules yes type array; items: routingRule
processModels yes type array; items: processModel
timingConstraints yes type array; items: timingConstraint
transferFunctions yes type array; items: transferFunction
renderBindings yes type array; items: renderBinding
executionSemantics yes executionSemantics
randomSources no type array; items: randomSource

stateAssignment

JSON Pointer: #/$defs/stateAssignment

Contract: type object; closed object

Property Required Contract
stateVariableId yes identifier
value yes primitiveValue

captureState

JSON Pointer: #/$defs/captureState

Contract: type object; closed object

Property Required Contract
id yes identifier
instrumentEntityId yes identifier
labels no localizedText
stateAssignments yes type array; items: stateAssignment
capturedAt no dateTime
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
reviewedById no identifier
sourceLocator no type string; minimum length 1
notes no type string

eventFrameMapping

JSON Pointer: #/$defs/eventFrameMapping

Contract: type object; closed object

Property Required Contract
eventLocator yes type string; minimum length 1
eventTypeId no identifier
startFrame yes type integer; minimum 0; maximum 9007199254740991
endFrameExclusive no type integer; minimum 1; maximum 9007199254740991

eventAlignment

JSON Pointer: #/$defs/eventAlignment

Contract: type object; closed object

Property Required Contract
id yes identifier
audioRealizationId yes identifier
eventLogRealizationId yes identifier
clockBasis yes one of "audio-frames", "seconds", "midi-ticks", "external-timecode"
offset yes type number
driftPPM no type number
uncertainty no uncertainty
eventMappings yes type array; minimum items 1; items: eventFrameMapping
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
reviewedById no identifier
notes no type string

takeSet

JSON Pointer: #/$defs/takeSet

Contract: type object; closed object

Property Required Contract
id yes identifier
captureStateId yes identifier
realizationIds yes uniqueIdentifiers
setRole yes one of "source-takes", "segmentation-hypotheses", "playback-alternatives", "round-robin", "preservation-variants"
selectionStatus yes one of "candidate", "accepted", "rejected", "superseded", "not-applicable"
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
reviewedById no identifier
notes no type string

derivationOperation

JSON Pointer: #/$defs/derivationOperation

Contract: type object; closed object

Property Required Contract
kind yes one of "segment", "resample", "bit-depth-conversion", "dither", "denoise", "backtrack", "channel-map", "loop-extraction", "normalize", "other"
activityId no identifier
softwareName no type string; minimum length 1
softwareVersion no type string; minimum length 1
parameters no type object

derivationMap

JSON Pointer: #/$defs/derivationMap

Contract: type object; closed object

Property Required Contract
id yes identifier
sourceRealizationId yes identifier
derivedRealizationId yes identifier
sourceFrameRange no frameRange
channelMap no type array; minimum items 1; items: type integer; minimum 0; maximum 9007199254740991
operations yes type array; minimum items 1; items: derivationOperation
status yes evidenceStatus
source yes playbackMetadataSource
generatedById no identifier
reviewedById no identifier
notes no type string

captureDocumentation

JSON Pointer: #/$defs/captureDocumentation

Contract: type object; closed object

Property Required Contract
captureStates yes type array; items: captureState
eventAlignments yes type array; items: eventAlignment
takeSets yes type array; items: takeSet
derivationMaps yes type array; items: derivationMap

distribution

JSON Pointer: #/$defs/distribution

Contract: one of 3 alternatives

repositoryDistribution

JSON Pointer: #/$defs/repositoryDistribution

Contract: type object; closed object

Property Required Contract
id yes identifier
kind yes constant "repository"
repositoryBindingId yes identifier
persistentIdentifier yes iri
conceptIdentifier no iri
recordIdentifier yes type string; minimum length 1
fileIdentifier yes type string; minimum length 1
access yes one of "public", "restricted", "embargoed", "metadata-only"
transportChecksums no type object

packMemberDistribution

JSON Pointer: #/$defs/packMemberDistribution

Contract: type object; closed object

Property Required Contract
id yes identifier
kind yes constant "pack-member"
packRealizationId yes identifier
memberPath yes safeMemberPath
packManifestSHA256 yes sha256

carrierMemberDistribution

JSON Pointer: #/$defs/carrierMemberDistribution

Locates a realization as an embedded member of another VAO carrier deposited in the same immutable repository release. The member path and byte identity are obtained from that carrier's descriptor and the realization record.

Contract: type object; closed object

Property Required Contract
id yes identifier
kind yes constant "carrier-member"
carrierId yes identifier
repositoryBindingId yes identifier
persistentIdentifier yes iri
conceptIdentifier no iri
recordIdentifier yes type string; minimum length 1
fileIdentifier yes type string; minimum length 1
access yes one of "public", "restricted", "embargoed", "metadata-only"
transportChecksums no type object

repositoryBinding

JSON Pointer: #/$defs/repositoryBinding

Contract: type object; closed object

Property Required Contract
id yes identifier
repositoryType yes iri
instance yes iri
apiProfile yes iri
resolutionPolicy yes constant "version-pid-record-file"

assetGroup

JSON Pointer: #/$defs/assetGroup

Contract: type object; closed object

Property Required Contract
id yes identifier
type yes constant "AssetGroup"
labels yes localizedText
selectionSetId yes type string; minimum length 1
qualityTier yes one of "bootstrap", "mobile", "production", "production-spatial", "preservation", "custom"
availability yes one of "offline-required", "remote-optional", "remote-required", "remote-restricted"
selectionPolicy yes one of "independent", "exactly-one", "at-most-one"
realizationIds yes uniqueIdentifiers
dependsOnGroupIds yes identifierList
fallbackGroupId no identifier
totalByteSize yes type integer; minimum 0; maximum 9007199254740991
requiredCapabilities yes type array; unique items true; items: iri
materializesProfileIds yes type array; unique items true; items: iri
cachePolicy yes type object; closed object

rights

JSON Pointer: #/$defs/rights

Contract: type object; closed object

Property Required Contract
id yes identifier
appliesToIds yes uniqueIdentifiers
license no iri
statement yes localizedText
access yes one of "open", "restricted", "embargoed", "unknown"
attribution no type string; minimum length 1
performerAgentIds no identifierList
consentIds no identifierList
communityAuthorityIds no identifierList
traditionalKnowledgeLabelIRIs no type array; unique items true; items: iri
privacyClassification no one of "public", "restricted", "sensitive-personal", "community-governed"
embargoUntil no dateTime
embargoRationale no localizedText
redactionOfRealizationIds no identifierList
carePrinciples no type array; unique items true; items: one of "collective-benefit", "authority-to-control", "responsibility", "ethics"

integrity

JSON Pointer: #/$defs/integrity

Contract: type object; closed object

Property Required Contract
algorithm yes constant "sha256"
manifestDigestLocation yes constant "external-release-and-carrier-descriptors"
carrierDescriptor yes constant "META-INF/vao-carrier.json"
schemaBundleDigest no contentDigest
signatureEnvelopeRealizationId no identifier

contentDigest

JSON Pointer: #/$defs/contentDigest

Contract: type object; closed object

Property Required Contract
algorithm yes one of "sha256", "sha512"
value yes type string; pattern ^[0-9a-f]+$

sha256ContentDigest

JSON Pointer: #/$defs/sha256ContentDigest

Contract: schema-defined value

chunk

JSON Pointer: #/$defs/chunk

Contract: type object; closed object

Property Required Contract
index yes type integer; minimum 0; maximum 9007199254740991
offset yes type integer; minimum 0; maximum 9007199254740991
length yes type integer; minimum 1; maximum 9007199254740991
digest yes contentDigest

chunking

JSON Pointer: #/$defs/chunking

Contract: type object; closed object

Property Required Contract
strategy yes one of "fixed-size", "content-defined", "external-index", "zarr", "pack-shard"
chunkSize no type integer; minimum 1; maximum 9007199254740991
merkleRoot no contentDigest
chunks yes type array; items: chunk
indexRealizationId no identifier

agent

JSON Pointer: #/$defs/agent

Contract: type object; closed object

Property Required Contract
id yes identifier
agentKind yes one of "person", "organization", "community", "software-agent"
labels yes localizedText
orcid no orcid
ror no ror
affiliationAgentIds no identifierList
roles no type array; unique items true; items: iri
contact no type string
extensions no extensions

softwareEnvironment

JSON Pointer: #/$defs/softwareEnvironment

Contract: type object; closed object

Property Required Contract
id yes identifier
name yes type string; minimum length 1
version yes type string; minimum length 1
identity yes contentDigest
identityScope yes one of "executable", "source-file", "source-bundle", "environment-lock", "declaration", "other"
identityDescription yes type string; minimum length 1
sourceCodeIRI no iri
softwareHeritageId no type string; pattern ^swh:1:
containerDigest no contentDigest
modelWeightDigest no contentDigest
dependencies no type array; items: type object; closed object
runtimeDescription no type string; minimum length 1
extensions no extensions

protocol

JSON Pointer: #/$defs/protocol

Contract: type object; closed object

Property Required Contract
id yes identifier
labels yes localizedText
procedure yes type string; minimum length 1
version yes type string; minimum length 1
documentRealizationId no identifier
standardIRI no iri
parameters no extensions

calibration

JSON Pointer: #/$defs/calibration

Contract: type object; closed object

Property Required Contract
id yes identifier
instrumentEntityId yes identifier
protocolId yes identifier
performedByAgentIds yes uniqueIdentifiers
performedAt yes dateTime
certificateRealizationId no identifier
resultStatus yes one of "pass", "fail", "limited", "unknown"
uncertainty no uncertainty
validUntil no dateTime

activity

JSON Pointer: #/$defs/activity

Contract: type object; closed object

Property Required Contract
id yes identifier
activityKind yes one of "capture", "authoring", "measurement", "digitization", "processing", "simulation", "inference", "annotation", "review", "migration", "render"
startedAt yes dateTime
endedAt yes dateTime
agentIds yes uniqueIdentifiers
protocolId yes identifier
softwareEnvironmentId no identifier
inputIds yes identifierList
outputIds yes identifierList
parameterValues no extensions
randomSourceId no identifier
environmentObservationIds no identifierList
notes no type string

quantityValue

JSON Pointer: #/$defs/quantityValue

A scalar, vector, or rectangular matrix numerical quantity with an explicit unit.

Contract: type object; closed object

Property Required Contract
value yes numericValue
unit yes iri
quantityKind no iri
uncertainty no uncertainty
sampleCount no type integer; minimum 1; maximum 9007199254740991
censoring no one of "none", "left", "right", "interval"
outlierPolicy no type string

observation

JSON Pointer: #/$defs/observation

Contract: type object; closed object

Property Required Contract
id yes identifier
observedProperty yes iri
featureOfInterestId yes identifier
result yes quantityValue
resultTime yes dateTime
activityId yes identifier
protocolId yes identifier
sensorId no identifier
calibrationId no identifier
rawResultRealizationId no identifier
processedResultRealizationId no identifier
status yes evidenceStatus
qualityFlags no type array; unique items true; items: type string; minimum length 1

analysis

JSON Pointer: #/$defs/analysis

Contract: type object; closed object

Property Required Contract
id yes identifier
analysisKind yes iri
activityId yes identifier
inputIds yes uniqueIdentifiers
outputIds yes uniqueIdentifiers
softwareEnvironmentId yes identifier
parameters yes extensions
randomSourceId no identifier
reproducibility yes one of "deterministic", "seeded", "non-reproducible"
fitResidual no quantityValue
validationIds no identifierList

claim

JSON Pointer: #/$defs/claim

Contract: type object; closed object

Property Required Contract
id yes identifier
subjectId yes identifier
predicate yes iri
objectId no identifier
literal no literal
status yes evidenceStatus
confidence no type number; minimum 0; maximum 1
evidenceIds yes uniqueIdentifiers
generatedById no identifier
reviewIds no identifierList

review

JSON Pointer: #/$defs/review

Contract: type object; closed object

Property Required Contract
id yes identifier
reviewedId yes identifier
reviewerAgentId yes identifier
reviewedAt yes dateTime
decision yes one of "accepted", "rejected", "needs-revision", "not-assessed"
rationale no type string; minimum length 1

JSON Pointer: #/$defs/consent

Contract: type object; closed object

Property Required Contract
id yes identifier
grantedByAgentId yes identifier
appliesToIds yes uniqueIdentifiers
decision yes one of "granted", "denied", "withdrawn", "conditional"
recordedAt yes dateTime
conditions no localizedText
evidenceRealizationId no identifier

scientific

JSON Pointer: #/$defs/scientific

Contract: type object; closed object

Property Required Contract
agents yes type array; items: agent
activities yes type array; items: activity
observations yes type array; items: observation
analyses yes type array; items: analysis
calibrations yes type array; items: calibration
protocols yes type array; items: protocol
softwareEnvironments yes type array; items: softwareEnvironment
claims yes type array; items: claim
reviews yes type array; items: review
consents yes type array; items: consent

timebase

JSON Pointer: #/$defs/timebase

Contract: type object; closed object

Property Required Contract
id yes identifier
kind yes one of "monotonic", "wall-clock", "media", "musical", "external-timecode"
unit yes iri
rate yes positiveRate
rateUnit yes iri
timeScale no iri
origin yes type number
epoch no dateTime
wrapPeriod no type number; exclusive minimum 0

track

JSON Pointer: #/$defs/track

Contract: type object; closed object

Property Required Contract
id yes identifier
modality yes one of "audio", "video", "image-sequence", "depth", "volumetric", "motion-capture", "sensor", "event", "score", "annotation", "trajectory"
timebaseId yes identifier
realizationId yes identifier
coordinateFrameId no identifier
channelSelector no type string
continuity yes one of "continuous", "segmented", "sparse"

clockSegment

JSON Pointer: #/$defs/clockSegment

Contract: type object; closed object

Property Required Contract
sourceStart yes type number
sourceEndExclusive yes type number
scale yes type number; exclusive minimum 0
offset yes type number
residualUncertainty yes uncertainty
discontinuityAfter yes one of "none", "dropout", "clock-reset", "pause", "unknown"

synchronizationMapping

JSON Pointer: #/$defs/synchronizationMapping

Contract: type object; closed object

Property Required Contract
id yes identifier
sourceTimebaseId yes identifier
targetTimebaseId yes identifier
method yes one of "shared-clock", "timecode", "event-matching", "cross-correlation", "manual", "device-timestamp"
segments yes type array; minimum items 1; items: clockSegment
activityId yes identifier
jitter no uncertainty

annotationSelector

JSON Pointer: #/$defs/annotationSelector

Contract: type object; closed object

Property Required Contract
trackId yes identifier
start no type number
endExclusive no type number
spatialFragment no type string
svgSelector no type string
eventLocator no type string
scoreElementId no type string

annotation

JSON Pointer: #/$defs/annotation

Contract: type object; closed object

Property Required Contract
id yes identifier
motivation yes iri
target yes annotationSelector
body yes one of 2 alternatives
createdByAgentId yes identifier
createdAt yes dateTime
activityId yes identifier

multimodal

JSON Pointer: #/$defs/multimodal

Contract: type object; closed object

Property Required Contract
timebases yes type array; items: timebase
tracks yes type array; items: track
synchronizationMappings yes type array; items: synchronizationMapping
annotations yes type array; items: annotation

physicalComponent

JSON Pointer: #/$defs/physicalComponent

Contract: type object; closed object

Property Required Contract
id yes identifier
entityId yes identifier
componentKind yes iri
parentComponentId no identifier
portIds yes identifierList

physicalPort

JSON Pointer: #/$defs/physicalPort

Contract: type object; closed object

Property Required Contract
id yes identifier
componentId yes identifier
direction yes one of "input", "output", "bidirectional"
signalKind yes one of "mechanical", "pneumatic", "electrical", "optical", "acoustic", "digital", "control", "energy"
quantityKind no iri

physicalConnection

JSON Pointer: #/$defs/physicalConnection

Contract: type object; closed object

Property Required Contract
id yes identifier
sourcePortId yes identifier
targetPortId yes identifier
connectionKind yes one of "signal", "energy", "material", "mechanical-coupling"
delayConstraintId no identifier
bidirectional no type boolean

sensor

JSON Pointer: #/$defs/sensor

Contract: type object; closed object

Property Required Contract
id yes identifier
componentId yes identifier
observedProperty yes iri
outputPortId yes identifier
protocolId yes identifier
calibrationId no identifier

actuator

JSON Pointer: #/$defs/actuator

Contract: type object; closed object

Property Required Contract
id yes identifier
componentId yes identifier
actedOnProperty yes iri
inputPortId yes identifier
protocolId yes identifier
transferFunctionId no identifier

stateBinding

JSON Pointer: #/$defs/stateBinding

Contract: type object; closed object

Property Required Contract
id yes identifier
stateVariableId yes identifier
componentId yes identifier
stateRole yes one of "commanded", "observed", "estimated", "simulated"
observationId no identifier

physicalSystem

JSON Pointer: #/$defs/physicalSystem

Contract: type object; closed object

Property Required Contract
components yes type array; items: physicalComponent
ports yes type array; items: physicalPort
connections yes type array; items: physicalConnection
sensors yes type array; items: sensor
actuators yes type array; items: actuator
stateBindings yes type array; items: stateBinding

executionSemantics

JSON Pointer: #/$defs/executionSemantics

Contract: type object; closed object

Property Required Contract
timestampOrder yes constant "ascending"
simultaneousEventOrder yes constant "priority-then-event-id"
transitionEvaluation yes constant "snapshot"
actionExecution yes constant "execution-group-then-array-order"
runToCompletion yes constant true
reentrancyPolicy yes one of "queue", "reject"
lateEventPolicy yes one of "reject", "clamp", "queue-next-cycle"
timeResolution yes quantityValue
maximumMicrosteps yes type integer; minimum 1; maximum 9007199254740991
voiceAllocation yes one of "lowest-free-then-oldest", "round-robin", "monophonic-priority"
maximumVoices yes type integer; minimum 1; maximum 9007199254740991

randomSource

JSON Pointer: #/$defs/randomSource

Contract: type object; closed object

Property Required Contract
id yes identifier
algorithm yes one of "pcg32", "xoshiro256-star-star"
seed yes type string; pattern ^[0-9a-f]{16,64}$
stream no type string; pattern ^[0-7][0-9a-f]{15}$

renderer

JSON Pointer: #/$defs/renderer

Contract: type object; closed object

Property Required Contract
id yes identifier
name yes type string; minimum length 1
version yes type string; minimum length 1
capabilities yes type array; unique items true; items: iri
softwareEnvironmentId yes identifier
sandboxPolicy yes one of "declarative-only", "isolated-external-renderer"
deterministic no type boolean

traceEvent

JSON Pointer: #/$defs/traceEvent

Contract: type object; closed object

Property Required Contract
timestamp yes type number
eventTypeId yes identifier
controlId no identifier
value no primitiveValue
priority no type integer; minimum -9007199254740991; maximum 9007199254740991
sequence yes type integer; minimum 0; maximum 9007199254740991

traceEmittedEvent

JSON Pointer: #/$defs/traceEmittedEvent

Contract: one of 4 alternatives

traceExpectation

JSON Pointer: #/$defs/traceExpectation

Contract: type object; closed object

Property Required Contract
state yes type object
emittedEvents yes type array; items: traceEmittedEvent
renderBindingIds yes identifierList

conformanceTrace

JSON Pointer: #/$defs/conformanceTrace

Contract: type object; closed object

Property Required Contract
id yes identifier
initialState no type object
inputEvents yes type array; items: traceEvent
expected yes traceExpectation
digest yes sha256ContentDigest

runtime

JSON Pointer: #/$defs/runtime

Contract: type object; closed object

Property Required Contract
executionSemantics yes executionSemantics
randomSources yes type array; items: randomSource
renderers yes type array; items: renderer
conformanceTraces yes type array; items: conformanceTrace

fundingReference

JSON Pointer: #/$defs/fundingReference

Contract: type object; closed object

Property Required Contract
funderName yes type string; minimum length 1
funderIdentifier no type string; minimum length 1
funderIdentifierType no dataciteFunderIdentifierType
schemeUri no iri
awardNumber no type string
awardIRI no iri
awardTitle no type string

discovery

JSON Pointer: #/$defs/discovery

Contract: type object; closed object

Property Required Contract
resourceType yes constant "Dataset"
publisher no type string; minimum length 1
publicationYear no type integer; minimum 1000; maximum 9999
creatorAgentIds yes uniqueIdentifiers
contributorAgentIds yes identifierList
relatedIdentifiers yes type array; items: dataciteRelatedIdentifier
fundingReferences yes type array; items: fundingReference
subjects yes type array; items: type object; closed object
instrumentIdentifiers no type array; unique items true; items: iri
facilityIdentifiers no type array; unique items true; items: iri