Skip to content

Commit

Permalink
add missing "prev" links.
Browse files Browse the repository at this point in the history
  • Loading branch information
robcast committed Oct 4, 2024
1 parent 89cae76 commit e6e65f1
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 5 deletions.
1 change: 1 addition & 0 deletions recipe/0309-annotation-collection/anno_p2.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"id": "{{ id.path }}/anno_coll.json",
"type": "AnnotationCollection"
}],
"prev": "{{ id.path }}/anno_p1.json",
"items": [
{
"id": "{{ id.url }}-1",
Expand Down
8 changes: 4 additions & 4 deletions recipe/0309-annotation-collection/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,15 @@ The AnnotationCollection has a `first` property that contains the URI of the fir

The IIIF Manifest requires that Annotations that should be shown on a Canvas are contained in AnnotationPages referenced in the `annotations` property of that Canvas. This means that all Annotations need to be grouped by Canvas and put into one or more AnnotationPages per Canvas. An AnnotationPage can not contain Annotations for more than one Canvas.

The AnnotationPages have an `items` property containing the list of Annotations, a `partOf` property that contains the URI of the parent AnnotationCollection, and a `next` property that contains the URI of the next AnnotationPage in the sequence. AnnotationPages are often separate documents that are [referenced][0269] in the manifest using a reference object that can additionally provide some properties for access inside the manifest.
The AnnotationPages have an `items` property containing the list of Annotations, a `partOf` property that contains the URI of the parent AnnotationCollection, and `next` and `prev` properties that contain the URIs of the next and previous AnnotationPages in the sequence. AnnotationPages are often separate documents that are [referenced][0269] in the manifest using a reference object that can additionally provide some properties for access inside the manifest.

A IIIF viewer that displays Annotations on a Canvas follows the URIs in the `annotations` property of the Canvas and loads the Annotations in the referenced AnnotationPages. If the viewer wants to indicate that these Annotations belong to one or more AnnotationCollections it has to follow the URI in the `partOf` property of the AnnotationPages to identify the AnnotationCollection and display its label and choose a common color for the Annotations. The indirect connection from the Manifest to the AnnotationCollection means that a viewer would have to load all AnnotationPages from all Canvases if it wants to present a complete list of all AnnotationCollections in the Manifest to the user. This potentially slow process can be avoided if the `partOf` and `next` properties of the AnnotationPages are provided in the reference object inside the Manifest like in the example below.
A IIIF viewer that displays Annotations on a Canvas follows the URIs in the `annotations` property of the Canvas and loads the Annotations in the referenced AnnotationPages. If the viewer wants to indicate that these Annotations belong to one or more AnnotationCollections it has to follow the URI in the `partOf` property of the AnnotationPages to identify the AnnotationCollection and display its label and choose a common color for the Annotations. The indirect connection from the Manifest to the AnnotationCollection means that a viewer would have to load all AnnotationPages from all Canvases if it wants to present a complete list of all AnnotationCollections in the Manifest to the user. This potentially slow process can be avoided if the `partOf`, `next`, and `prev` properties of the AnnotationPages are provided in the reference object inside the Manifest like in the example below.

## Example

We use a Manifest containing two pages from a newspaper (Berliner Tageblatt, February 16, 1925, from Staatsbibliothek Berlin via Europeana) and a set of Annotations concerning layout and reading order.

The Annotations select rectangular regions on the Canvases in the Manifest and add textual tags describing layout elements. They are contained in two AnnotationPages "anno_p1.json" for Annotations on the first Canvas and "anno_p2.json" for Annotations on the second Canvas. "anno_p1.json" contains a `next` reference to "anno_p2.json" and both pages contain `partOf` references to the AnnotationCollection.
The Annotations select rectangular regions on the Canvases in the Manifest and add textual tags describing layout elements. They are contained in two AnnotationPages "anno_p1.json" for Annotations on the first Canvas and "anno_p2.json" for Annotations on the second Canvas. "anno_p1.json" contains a `next` reference to "anno_p2.json", "anno_p2.json" contains a `prev` reference to "anno_p1.json", and both pages contain a `partOf` reference to the AnnotationCollection.

The AnnotationCollection is in the file "anno_coll.json". It has a `label` and references "anno_p1.json" as the `first` and "anno_p2.json" as the `last` page and contains the `total` number of Annotations.

Expand All @@ -52,7 +52,7 @@ The second AnnotationPage with Annotations on the second Canvas: [anno_p2.json](
## Related Recipes

* [Embedded or Referenced Annotations][0269] for referencing Annotations in external AnnotationPages
* [Simple Annotation Tagging][0021] annotating a rectangular Canvas region
* [Simple Annotation - Tagging][0021] annotating a rectangular Canvas region
* [Annotation with a Non-Rectangular Polygon][0261] annotating an irregular shape on a Canvas

{% include acronyms.md %}
Expand Down
3 changes: 2 additions & 1 deletion recipe/0309-annotation-collection/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,8 @@
"partOf": [{
"id": "{{ id.path }}/anno_coll.json",
"type": "AnnotationCollection"
}]
}],
"prev": "{{ id.path }}/anno_p1.json"
}
]
}
Expand Down

0 comments on commit e6e65f1

Please sign in to comment.