-
Notifications
You must be signed in to change notification settings - Fork 56
Open
Description
I'm currently working on a 3D manifest exporter and am looking to export a commenting annotation that includes audio. This is an increasingly common use case for 3D experiences at my institution. I've run into an issue on how to correctly associate a caption (.vtt) file with the audio clip comment. Targeting the scene will not work as there could be (and often are) more than one of these audio clips and targeting specific durations seems awkward and unintuitive.
My current solution (below) is to include the captions as an additional Body in the annotation Body array. Is this appropriate per the Web Annotation Data Model? If anyone with WADM expertise could weigh in I would greatly appreciate it - it was unclear to me from the spec.
{
"@context": "http://iiif.io/api/presentation/4/context.json",
"id": "https://example.org/iiif/3d/astronaut_audio_comment.json",
"type": "Manifest",
"label": {
"en": [
"Single Model with Audio Comment Annotation"
]
},
"summary": {
"en": [
"Viewer should render the model at the scene origin with a comment annotation containing an audio clip targeting a point near the astronaut's glove."
]
},
"items": [
{
"id": "https://example.org/iiif/scene1",
"type": "Scene",
"label": {
"en": [
"A Scene"
]
},
"backgroundColor": "#33404d",
"items": [
{
"id": "https://example.org/iiif/scene1/page/p1/1",
"type": "AnnotationPage",
"items": [
{
"id": "https://example.org/iiif/3d/anno1",
"type": "Annotation",
"motivation": [
"painting"
],
"body": {
"type": "SpecificResource",
"source": {
"id": "https://raw.githubusercontent.com/IIIF/3d/main/assets/astronaut/astronaut.glb",
"type": "Model",
"label": {
"en": [
"Model"
]
},
"format": "model/gltf-binary"
}
},
"target": {
"type": "SpecificResource",
"source": [
{
"id": "https://example.org/iiif/scene1",
"type": "Scene"
}
]
}
}
]
}
],
"annotations": [
{
"id": "https://example.org/iiif/scene1/page/p2/1",
"type": "AnnotationPage",
"items": [
{
"id": "https://example.org/iiif/3d/anno2",
"type": "Annotation",
"motivation": [
"commenting"
],
"body": [
{
"type": "Choice",
"items": [
{
"type": "TextualBody",
"value": "Glove",
"language": "en",
"format": "text/plain"
}
]
},
{
"type": "Choice",
"items": [
{
"id": "https://fixtures.iiif.io/audio/wikicommons/Nice_to_be_in_orbit/Discovery_-_Nice_to_be_in_orbit.mp3",
"type": "Sound",
"language": "en",
"format": "audio/mp3",
"duration": "5.6163125"
}
]
},
{
"type": "Choice",
"items": [
{
"id": "https://fixtures.iiif.io/audio/wikicommons/Nice_to_be_in_orbit/Discovery_-_Nice_to_be_in_orbit.mp3.vtt",
"type": "Text",
"language": "en",
"format": "text/vtt",
"duration": "5.6163125"
}
]
}
],
"target": {
"type": "SpecificResource",
"source": [
{
"id": "https://example.org/iiif/scene1",
"type": "Scene"
}
],
"selector": [
{
"type": "PointSelector",
"x": 1.075,
"y": 1.894,
"z": 0.204
}
]
}
}
]
}
]
}
]
}
Metadata
Metadata
Assignees
Labels
No labels