IIIF / api

Source for API and model specifications documents (api and model)
http://iiif.io/api
106 stars 54 forks source link

renderingDirection should be allowed on Collection #1244

Closed azaroth42 closed 6 years ago

azaroth42 commented 7 years ago

Collections with the viewingHint of multi-part can be used to represent multi-volume works. Each volume is a separate manifest, and the set of volumes is the collection. If we had modeled this as one huge manifest with ranges, we would have been able to set per set and per volume viewing directions, but currently viewingDirection is not valid on Collection.

@jpstroop @tomcrane has this issue come up at Princeton or Wellcome?

mikeapp commented 7 years ago

:+1: in the abstract, I'll ask @gigamorph where this has come up for http://tenthousandrooms.yale.edu/

gigamorph commented 7 years ago

@mikeapp We have not yet reached a stage where we can consider presentation of collections. It seems natural to me, however, for viewingDirection to be supported at collection level, if it makes sense at sequence and range level, which I think it does.

tomcrane commented 7 years ago

I don't think this is needed. For canvases in a sequence, the serialisation array order is their logical reading order, regardless of text direction. The viewingDirection is required for a viewer to flow, to lay-out, the pages in a book reader or field of thumbnails. mySequence[0] is always the logical start point, the cover of the book, but the viewingDirection determines how the UV (for example) paints things on the screen. It would position canvas 0 over here for an English paperback and over there for a Japanese one.

ltr:  c0 c1 c2 c3 ...
rtl:            ...c3 c2 c1 c0

For a multi volume work, the logical first volume, second volume etc are [0], [1], etc in the array - but would a viewer paint the multi-volume TOC for the Japanese Lord of the Rings in a different order from the English one? Would a "shelf-simulator" paint the thumbnails of each manifest in the collection in a different order on a virtual shelf based on this viewingHint?

I think a direction hint on a collection is a different level of abstraction, it's required for a sequence to ensure a reading/navigation experience that makes sense to someone looking at a work, but doesn't apply in the same way at the parts-of-a-collection-level, which might be more than IIIF needs to say to ensure the correct presentation of a work. I'm not 100% sure though...

azaroth42 commented 7 years ago

would a viewer paint the multi-volume TOC for the Japanese Lord of the Rings in a different order from the English one? Would a "shelf-simulator" paint the thumbnails of each manifest in the collection in a different order on a virtual shelf based on this viewingHint?

I think these are the questions we need answers for. Would it be "wrong" to present a 3 volume collection of arabic works from left to right on a shelf?

azaroth42 commented 7 years ago

Roger Howard says yes:

https://twitter.com/rogerhoward/status/908750677328801792

jpstroop commented 7 years ago

Yes.

azaroth42 commented 7 years ago

Other feedback in favor of yes:

tomcrane commented 7 years ago

I don't dispute that the shelving order would be different, just whether the Presentation API tells you about it. It's necessary for pages, to reconstruct a reading experience in a viewer. This is directly related to physical layout of an object. Arrangement of parts of a larger work, for shelving, or TOC purposes (which for right-to-left books would still be a tree laid out top to bottom), feels like it's in a slightly different category of Presentation, at one remove from physical layout. But I do see that it would be useful for generating visual navigation, laying out thumbs etc. I withdraw my objection!

zimeon commented 6 years ago

:+1: agreed at Toronto WG meeting

azaroth42 commented 6 years ago

Done: http://prezi3.iiif.io/api/presentation/3.0/#renderingdirection

zimeon commented 6 years ago

:+1: agree done:

A Collection may have exactly one renderingDirection, and if so, it applies to the order in which its members are rendered. Clients should process renderingDirection on a Collection.

mikeapp commented 6 years ago

👍 done