Skip to content

Conversation

glenrobson
Copy link
Member

No description provided.

@glenrobson
Copy link
Member Author

Use case:

Change:
current form to current order

Implementation Notes

Add a paragraph explaining the following from the spec:

"user interfaces that interact with this order should use the order within the selected Range, rather than the default order of items."

from the sequence text in https://iiif.io/api/presentation/3.0/#behavior

Add a paragraph explaining that behaviour of a range can be a list and could include individuals or paged alongside sequence if you would like the range canvases to be shown as paginated. Also note ranges can have viewingDirection in case of right to left ordering of pages.

Restrictions:

Sequence ranges need to be top order ranges (can’t be embedded in a table of contents). Text from specification:

“Ranges that have the behavior value sequence must be directly within the structures property of the Manifest, and must not be embedded or referenced within other Ranges." from https://iiif.io/api/presentation/3.0/#54-range

Example

  • Example: Context should be a string
  • Use minimum amount of pages to show issue. (~6)
  • The editors would prefer real manuscript images. As the recipe is showing out of order as sequence a and in order as sequence b you could potentially use the picart_german images from UCLA: https://fixtures.iiif.io/. The canvas labels should show the page numbers to demonstrate the order.

Related recipes

Add a note to the table of contents recipe to say its an example of different way of using ranges. (for this type of note see: https://preview.iiif.io/cookbook/0045-css/recipe/0045-css/)

OK to go to TRC if its possible to get the items above done.

@glenrobson
Copy link
Member Author

Also discussing renaming as alternative page sequences.

giacomomarchioro and others added 2 commits September 18, 2025 10:57
I have addressed to the issues highlighted by the editors, but the example section.
As recommended, I have updated the Example with a case study kindly provided by the Biblioteca Civica Bertoliana.

Changed the title to Alternative Page Order (previously Sequence).

Fixed typos.
Images by permission of Biblioteca Civica Bertoliana.
Fixed behavior arrays
Updated title
Added provider
Updated manifest ranges to highlight
## Restrictions

Ranges with `behavior` set to `sequence` indicate that they define an alternative reading order. Therefore, they:
- "must be directly within the `structures` property of the Manifest, and must not be embedded or referenced within other Ranges" (see [Range section](https://iiif.io/api/presentation/3.0/#54-range)). This ensures that clients can easily locate all available sequences without traversing or resolving nested structures.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would put this up in the implementation section - this is just how it works, not a restriction.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good morning, and thank you for the feedback!
We included this in the Restrictions section because using Ranges for ordering purposes limits their use for other functionalities, such as a Table of Contents, which is also a common use case for book objects. We should probably make this more explicit.


Ranges with `behavior` set to `sequence` indicate that they define an alternative reading order. Therefore, they:
- "must be directly within the `structures` property of the Manifest, and must not be embedded or referenced within other Ranges" (see [Range section](https://iiif.io/api/presentation/3.0/#54-range)). This ensures that clients can easily locate all available sequences without traversing or resolving nested structures.
- cannot have `thumbnail-nav` or `no-nav` behaviors.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure about this - it's not a restriction per se, just that if someone were to use no-nav the items wouldn't display. I'm not sure it needs to be mentioned as a restriction?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For clarity, we can move this to Implementation. We considered this a 'formal' restriction of the specification since sequence is disjoint with no-nav or thumbnail-nav and must not be used together.

For an IIIF viewer to display the selectable Ranges, each Range should have a `label`. Additionally, for the viewer to be able to use the provided Ranges for ordering purposes, they must have the `behavior` value `sequence`.

When `behavior` is set to `sequence`, "user interfaces that interact with this order should use the order within the selected Range, rather than the default order of items" ([Presentation API 3.0](https://iiif.io/api/presentation/3.0/#54-range)).
Furthermore, the behavior property can be assigned to a list containing, besides `sequence`, other valid behaviors listed on the [behaviors section of the Presentation API](https://iiif.io/api/presentation/3.0/#behavior). These behaviors will work in combination with any behaviors inherited from the parent Manifest.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The suggestion for other behavior properties was specifically about using paged or individuals to show that one can override the manifests behavior if resequencing affects the layout for some reason. As a general note about behavior being an array, I would probably remove it. Or, combine it with the paragraph below about viewingDirection and simply say that one can add the viewingDirection property and/or other behavior values to overwrite manifest values. As it is now, this bit it somewhat confusing.


## Use Case

A book may contain pages in the incorrect order; for example, a codex which was rebound at some point in history may have certain folios or quires accidentally misplaced. You want to digitally represent the book object in its current order while offering users the option to browse its contents in the intended order.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here you mention representing the book in its current order, then having intended order as the secondary option, but the example shows the reverse - should the example match the use case as described?

Reordering of sections for clarity
Rework of range properties in Implementation
Rework of Restrictions
Swapped orderings to better reflect the case study
@leontpng
Copy link

Thanks again for the feedback. With @giacomomarchioro's previous edits as base:

  • I reordered some sections in Implementation for clarity
  • I rephrased the Restrictions to explain what it means in terms of usability, not being able to embed or reference canvases
  • I rephrased the Range properties section (viewingDirection and layout-specific behaviors besides sequence)
  • I reordered the manifest structures to better reflect the use case

Copy link
Contributor

@giacomomarchioro giacomomarchioro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would change the title to Alternative page sequences as Glen suggested, this will make the recipe easier to find for user that used Sequences in the past implementation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

meta: ready-for-editors Ready for Cookbook editor review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Alternative Sequence (via sequence Range)

4 participants