Structure / content
This section must be completed / corrected to reflect the common elements of the two types of annotations, namely the ones integrated to a manifest and the ones hosted on an annotation server.
Basically an annotation contain the following :
- an id
- a body that can encapsulate content of different types (TextualBody, Image, other?)
- there is always a textual value that can be some HTML, especially to include a link
- a target composed of :
- an item of a manifest
- a spacial frame (a rectangle in the video or image frame, defined by the top left and bottom right corners coordinates)
- a time frame in the case of a video item being annotated (start time and end time)
Formats / types of annotations
Integrated to the manifest
The annotations can be directly included in a manifest.
General structure
A manifest can contain a list of AnnotationPages that contain lists of annotation items.
"annotations":
[
{
"id": "http://localhost:8080/data/demo-content/demo/canvas/1/annotation/1",
"type": "AnnotationPage",
"items": [
{ANNOTATION ITEM 1.1},
{ANNOTATION ITEM 1.2},
etc.
]
},
{
"id": "http://localhost:8080/data/demo-content/demo/canvas/1/annotation/2",
"type": "AnnotationPage",
"items": [
{ANNOTATION ITEM 2.1},
{ANNOTATION ITEM 2.2},
]
},
{
ANOTHER ANNOTATION PAGE
}
]
Content
The content of an annotation item is typically one of the followings, depending of its body type :
{
"id": "http://localhost:8080/data/demo-content/Hakanai/canvas/&/annotation/1/1",
"type": "Annotation",
"motivation": "commenting",
"body": {
"type": "TextualBody",
"language": "fr",
"value": "<a href=\"http://am-cb.net/docs/AMCB-HKN-FicheTech.pdf\" target=\"_blank\">Fiche technique</a>"
},
"target": "http://localhost:8080/data/demo-content/Hakanai/canvas/1"
}
or
{
"id": "http://localhost:8080/data/demo-content/Hakanai/canvas/&/annotation/5/1",
"type": "Annotation",
"motivation": "commenting",
"body": {
"id": "http://localhost:8080/data/demo-content/Hakanai/media/02_HKN-couv.jpg",
"type": "Image",
"format": "image/jpg",
"value": "<a href=\"https://www.am-cb.net/docs/AMCB-HKN-Dossier.pdf\" target=\"_blank\">CARNET : Couverture</a>"
},
"target": "http://localhost:8080/data/demo-content/Hakanai/canvas/1#xywh=1600,50,301,400&t=5,10"
}
Complete examples
Complete exemples are available in the following repo : https://gitlab.tetras-libre.fr/iiif/demo-content/
With an annotation server
In that case, the manifest does not contain any trace of the annotations. It is the annotation server that targets the manifest.
[TODO]
Converting content from an annotation server to the manifest
A function to incorporate annotations from an annotation server to a manifest could be useful for content portability.
"Methods" attached to an annotation
We must be able to achieve the following with an annotation
View
When opening a manifest (image or video), we must see that annotations exist.
We can consider the following modalities for "annotation anchors" :
-
The annotation list on the left
-
The annotation frame on the image or video
-
Somme marks on the video progress bar
One must be able to highlight and "go to" an annotation clicked in the list.
Open / Consult
One must be able to open an annotation in a dedicated space in the application to focus on its content.
Edit
One must be able to edit/create an annotation
Share / direct access
One must be able to share a link that will go directly to the annotation timeframe in a video
Create capsule/manifest from annotation
One must be able to create a complete