Data Model
The annotations emitted from LibCrowds Viewer are based on the Web Annotations Data Model, see See Annotations for specific examples for each type of task.
Property | Type | Description |
---|---|---|
@context | String | The JSON-LD context (always 'http://www.w3.org/ns/anno.jsonld') |
id | String | An automatically generated UUID (to be replaced with an IRI by the client when the Annotation is stored) |
type | String | The class for Web Annotations (always 'Annotation') |
motivation | String | The relationship between the Annotation and a Motivation |
created | String | The time at which the Annotation was created |
generated | String | The time at which the Annotation serialization was generated |
modified | String | The time at which the Annotation was modified, after its creation |
target | String or Object | The target of the Annotation |
body | Object | The relationship between the Annotation and its Body |
target
The annotation target is specified via the target
property of each
task configuration.
If a String is passed as the task target
and a specific fragment is
subsequently selected, as is the case in select mode, then the target will be
modified according to the properties below.
Property | Type | Description |
---|---|---|
source | String | The initial target |
selector | Object | The relationship between the resource and a selector |
selector.type | String | The class of the selector (always 'FragmentSelector') |
selector.conformsTo | String | The fragment selector syntax IRI (always 'http://www.w3.org/TR/media-frags/') |
selector.value | String | The contents of the fragment component |
Example
"target": {
"source": "http://example.org/iiif/book1/canvas/p1",
"selector": {
"type": "FragmentSelector",
"conformsTo": "http://www.w3.org/TR/media-frags/",
"value": "xywh=100,100,100,100"
}
}
body
The Annotation body will differ depending on the task configuration.
Tags
Tags are used to associate some label, generally as plain text, with the target.
Property | Type | Description |
---|---|---|
type | String | The type of the resource (always 'TextualBody') |
purpose | String | The reason for the inclusion (always 'tagging') |
value | String | The tag text |
Example
{
"type": "TextualBody",
"purpose": "tagging",
"value": "title"
}
Semantic Tags
Semantic Tags are used to link the annotation to a URI that identifies a specific resource.
Property | Type | Description |
---|---|---|
type | String | The type of the resource (always 'SpecificResource') |
purpose | String | The reason for the inclusion (always 'classifying') |
source | String | A URI identifying the specific resource |
Example
{
"type": "SpecificResource",
"purpose": "classifying",
"source": "http://purl.org/dc/terms/title"
}
Descriptions
Descriptions are used to describe the target in plain text.
Property | Type | Description |
---|---|---|
type | String | The type of the resource (always 'TextualBody') |
purpose | String | The reason for the inclusion (always 'describing') |
format | String | The format of the description (always 'text/plain') |
value | String | The description text |
Example
{
"type": "TextualBody",
"purpose": "describing",
"format": "text/plain",
"value": "The Merchant of Venice"
}