api icon indicating copy to clipboard operation
api copied to clipboard

Image API Selector LD Terms

Open thehabes opened this issue 2 years ago • 2 comments

The IIIF Image API supports a kind of selector as defined in https://iiif.io/api/annex/openannotation/#iiif-image-api-selector. It states:

This document describes extensions to the Web Annotation Data Model required within the IIIF context.

The annex does not offer a context.json file or a specific link to an ontology beyond the mention of Web Annotation and the IIIF context.

The Web Annotation and IIIF Contexts are listed below.

  • https://iiif.io/api/image/3/context.json
  • https://iiif.io/api/image/2/context.json
  • http://iiif.io/api/presentation/3/context.json
  • https://iiif.io/api/presentation/2/context.json
  • http://www.w3.org/ns/anno.jsonld

The annex offers this table to give definition to the properties it expects to find in this format.

Property Default Description
type Required. Must be the value "ImageApiSelector".
region "full" The string to put in the region parameter of the URI.
size "full" The string to put in the size parameter of the URI.
rotation "0" The string to put in the rotation parameter of the URI. Note that this must be a string in order to allow mirroring, for example "!90".
quality "default" The string to put in the quality parameter of the URI.
format "jpg" The string to put in the format parameter of the URI. Note that the '.' character is not part of the format, just the URI syntax.

From which minted JSON looks like

{
   "type":"SpecificResource",
   "source":{
      "id":"https://cdm21033.contentdm.oclc.org/digital/iiif/krt/2891",
      "type":"ImageService2",
      "profile":"http://iiif.io/api/image/2/level2.json"
   },
   "selector":{
      "type":"ImageApiSelector",
      "region":"810,900,260,370",
      "size":"5965,2514",
      "rotation": "45",
      "quality": "bitonal"
   }
}

The terms from the table listed above are all described in the IIIF Image API 2 & 3's specification body, which can be their vocabulary. The Presentation API does not list these terms. At this time, the terms in the able are not present in any IIIF API context.json file, nor are they available through Web Annotation. For example, there is no context.json entry like

"size": {
   "@id": "iiif_image:size",
   "@type": "@id"
}

An entry for the type class ImageApiSelector is also not present in any available context.json file.

Without these context entries, there is no proper link between the actual properties described in the table above and their ontological reference and resulting vocabulary, even though the vocabulary can be found in multiple IIIF API documents.

thehabes avatar Apr 20 '23 00:04 thehabes

Note we have a number of Cookbook recipes also using the ImageAPISelector:

Currently they are using the presentation context only but we can update to reflect what is decided.

glenrobson avatar Apr 20 '23 09:04 glenrobson

@thehabes - it does provide a context! It's here: https://iiif.io/api/annex/openannotation/context.json. An updated version in a new location is coming soon. The PR is here: https://github.com/IIIF/api/pull/2231

kirschbombe avatar Apr 25 '23 23:04 kirschbombe