Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Group images across Canvases #136

Open
lutzhelm opened this issue May 13, 2020 · 2 comments
Open

Group images across Canvases #136

lutzhelm opened this issue May 13, 2020 · 2 comments

Comments

@lutzhelm
Copy link

Group images across Canvases

(Provide link to index.md of the issue, if available. To be filled in after issue is created - you need the issue number!)

Use case

A manifest provides multiple types of images for each Canvas, e.g. visible light and UV photographs. A user wants to select only one of those types to be displayed when navigating through the manifest.

@lutzhelm
Copy link
Author

lutzhelm commented May 13, 2020

(I hope this idea is ready to become a cookbook recipe; if not, I'll post it in the iiif-stories repo.)

While the presentation API 3.0 beta draft quite clearly recommends the use of AnnotationCollections for grouping cross Canvas textual AnnotationsPages like translations of a certain language, grouping AnnotationsPages across Canvases is also useful for identifying commonalities of image annotations. If a IIIF manifest contains both visible light and UV photographs for each Canvas, a user might want to display only one of those two, without adjusting his viewer's settings for each new Canvas.

In a Manifest, the grouped AnnotationPages in the Canvases' items would have to contain a reference to an AnnotationCollection, somthing like:

{
  "@context": "http://iiif.io/api/presentation/3/context.json",
  "id": "https://example.org/iiif/book1",
  "type": "Manifest",
  "items": [
    {
      "id": "https://example.org/iiif/book1/canvas1",
      "type": "Canvas",
      "items": [
        {
          "id": "https://example.org/iiif/book1/annopage/daylight1",
          "type": "AnnotationPage",
          "label": { "@none": "Visible light photograph" },
          "partOf": {
            "id": "https://example.org/iiif/book1/annocoll/daylight",
            "type": "AnnotationCollection"
          },
          "next": {
            "id": "https://example.org/iiif/book1/annopage/daylight2",
            "type": "AnnotationPage"
          },
          "items": [...]
        },
        {
          "id": "https://example.org/iiif/book1/annopage/uv1",
          "type": "AnnotationPage",
          "label": { "@none": "UV photograph" },
          "partOf": {
            "id": "https://example.org/iiif/book1/annocoll/uv",
            "type": "AnnotationCollection"
          },
          "next": {
            "id": "https://example.org/iiif/book1/annopage/uv2",
            "type": "AnnotationPage"
          },
          "items": [...]
        }
      ]
    },
    {
      "id": "https://example.org/iiif/book1/canvas2",
      "type": "Canvas",
      "items": [
        {
          "id": "https://example.org/iiif/book1/annopage/daylight2",
          "type": "AnnotationPage",
          "label": { "@none": "Visible light photograph" },
          "partOf": {
            "id": "https://example.org/iiif/book1/annocoll/daylight",
            "type": "AnnotationCollection"
          },
          "items": [...]
        },
        {
          "id": "https://example.org/iiif/book1/annopage/uv2",
          "type": "AnnotationPage",
          "label": { "@none": "UV photograph" },
          "partOf": {
            "id": "https://example.org/iiif/book1/annocoll/uv",
            "type": "AnnotationCollection"
          },
          "items": [...]
        }
      ]
    }
  ]
}

Additionally, an AnnotationCollection resource would have to be provided for each group of images:

{
  "@context": "http://iiif.io/api/presentation/3/context.json",
  "id": "https://example.org/iiif/book1/annocoll/uv",
  "type": "AnnotationCollection",
  "label": {"@none": ["UV photographs"]},
  "first": { "id": "https://example.org/iiif/book1/annopage/uv1", "type": "AnnotationPage" },
  "last": { "id": "https://example.org/iiif/book1/annopage/uv2", "type": "AnnotationPage" }
}

@glenrobson glenrobson transferred this issue from IIIF/cookbook-recipes May 15, 2020
@glenrobson
Copy link
Member

As discussed in the cookbook discussion we though Ranges might be the place to express all of the different types of image in one place. This should allow the user to navigate using a table of contents to only see all of the UV images or only the Visible light.

If you had the different versions of a page (UV and Visible) all painted on one canvas with a choice annotation this would allow the layer functionality in existing viewers to work.

To create the experience to navigate the images in order e.g. all UV image or all Visible light images it should be possible to create a range which points to the UV images inside the canvas.

While looking at another recipe I came across the following for Start: https://iiif.io/api/presentation/3.0/#start which mentions that in Start and Ranges you can link to items within a canvas using a selector. I'm not sure what selector you could use to point to a image within a canvas but maybe SpecificResource would be an option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants