Curation API 1.0

Curation API

Curation API takes a similar structure with Collection of IIIF Presentation API 2.1 (http://iiif.io/api/presentation/2.1/#collection). At this moment, this is our own extension of IIIF Presentation API 2.1, so we refer to it as a @type of cr:Curation. In the following we call this structure as Curation.

In contrast to Collection, which is regarded as a grouping of the minimum granule of Manifest that corresponds to a physical object (e.g. book), Curation is regarded as a grouping that spans across multiple Manifest with the minimum granule of rectangular boxes within Canvas.

Curation takes a structure as follows.

  • Curation
    • @context(Required)
    • @type(Required)
    • @id(Required)
    • label(Required)
    • selections(Required)
      • Range
        • canvases/members(Either one required)
        • within(Required)

Curation specifies the target Canvas for browsing using theselections property, which was newly introduced. selections is the ordered list (array) of Range (http://iiif.io/api/presentation/2.1/#range). Here Range specifies a canvas or a part of a rectangular region in a canvas using the canvases properties and others, and information about Manifest, to which Canvas belongs, is specified by the within property.

When specifying a rectangular region in Canvas, @id of Canvas should have a fragment in the form of #xywh=(http://iiif.io/api/presentation/2.1/#segments).

Example

{
  "@context": [
    "http://iiif.io/api/presentation/2/context.json",
    "http://codh.rois.ac.jp/iiif/curation/1/context.json"
  ],
  "@type": "cr:Curation",
  "@id": "http://codh.rois.ac.jp/iiif/iiif-curation-viewer/sample/curation.json",
  "label": "Curated NIJL Data set",
  "attribution": "Provided by CODH (ROIS) and NIJL NW Project.",
  "related": {
    "@id": "http://codh.rois.ac.jp/pmjt/book/",
    "format": "text/html"
  },
  "selections": [
    {
      "@id": "http://codh.rois.ac.jp/pmjt/book/200014778/range/r1",
      "@type": "sc:Range",
      "label": "Curated contents from 『画本虫撰』",
      "canvases": [
        "http://codh.rois.ac.jp/pmjt/iiif/200014778/canvas/00000",
        "http://codh.rois.ac.jp/pmjt/iiif/200014778/canvas/00011",
        "http://codh.rois.ac.jp/pmjt/iiif/200014778/canvas/00023",
        "http://codh.rois.ac.jp/pmjt/iiif/200014778/canvas/00023#xywh=3435,2487,840,750"
      ],
      "within": "http://codh.rois.ac.jp/pmjt/book/200014778/manifest.json"
    },
    {
      "@id": "http://codh.rois.ac.jp/pmjt/book/200003067/range/r1",
      "@type": "sc:Range",
      "label": "Curated contents from 『唐糸草紙』",
      "members": [
        {
          "@id": "http://codh.rois.ac.jp/pmjt/iiif/200003067/canvas/00000",
          "@type": "sc:Canvas",
          "label": "p.1"
        },
        {
          "@id": "http://codh.rois.ac.jp/pmjt/iiif/200003067/canvas/00008",
          "@type": "sc:Canvas",
          "label": "p.9"
        },
        {
          "@id": "http://codh.rois.ac.jp/pmjt/iiif/200003067/canvas/00010",
          "@type": "sc:Canvas",
          "label": "p.11"
        },
        {
          "@id": "http://codh.rois.ac.jp/pmjt/iiif/200003067/canvas/00010#xywh=2850,1000,730,680",
          "@type": "sc:Canvas",
          "label": "p.11"
        }
      ],
      "within": {
        "@id": "http://codh.rois.ac.jp/pmjt/book/200003067/manifest.json",
        "@type": "sc:Manifest",
        "label": "唐糸草紙"
      }
    }
  ]
}

Combination of Timeline API and Curation API

Using Curation API in combination with Timeline API allows us to curate from time-series images.

At Curation, when specifying cs:Canvas that belongs to Timeline, we describe the target using members property within selections property. About describing cs:Canvas within members it is required to describe cursorIndex property .@id in within specifies @id in Timeline, and the property value of @type is tl:Manifest.

Example

{
  "@context": [
    "http://iiif.io/api/presentation/2/context.json",
    "http://codh.rois.ac.jp/iiif/curation/1/context.json"
  ],
  "@type": "cr:Curation",
  "@id": "http://codh.rois.ac.jp/iiif/iiif-curation-viewer/sample/himawari/curation.json",
  "label": [
    {
      "@value": "ひまわり8号ギャラリー",
      "@language": "ja"
    },
    {
      "@value": "Himawari-8 Gallery",
      "@language": "en"
    }
  ],
  "attribution": "NII \"Digital Typhoon\" / NICT \"Science Cloud\"",
  "related": {
    "@id": "http://agora.ex.nii.ac.jp/digital-typhoon/himawari-3g/gallery/",
    "format": "text/html"
  },
  "selections": [
    {
      "@id": "http://agora.ex.nii.ac.jp/digital-typhoon/range/r1",
      "@type": "sc:Range",
      "label": "Curated contents from "Digital Typhoon 'Himawari-8 Clipping'",
      "members": [
        {
          "@id": "http://agora.ex.nii.ac.jp/digital-typhoon/iiif/2015/07/07/20150707020000",
          "@type": "cs:Canvas",
          "label": "2015-07-07T02:00:00Z",
          "cursorIndex": 1436234400
        },
        {
          "@id": "http://agora.ex.nii.ac.jp/digital-typhoon/iiif/2015/09/29/20150929025000",
          "@type": "cs:Canvas",
          "label": "2015-09-29T02:50:00Z",
          "cursorIndex": 1443495000
        },
        {
          "@id": "http://agora.ex.nii.ac.jp/digital-typhoon/iiif/2015/09/29/20150929025000#xywh=828,1840,1318,592",
          "@type": "cs:Canvas",
          "label": "2015-09-29T02:50:00Z",
          "cursorIndex": 1443495000
        },
        {
          "@id": "http://agora.ex.nii.ac.jp/digital-typhoon/iiif/2016/08/07/20160807032000",
          "@type": "cs:Canvas",
          "label": "2016-08-07T03:20:00Z",
          "cursorIndex": 1470540000
        },
        {
          "@id": "http://agora.ex.nii.ac.jp/digital-typhoon/iiif/2016/08/07/20160807032000#xywh=5072,1530,2126,1520",
          "@type": "cs:Canvas",
          "label": "2016-08-07T03:20:00Z",
          "cursorIndex": 1470540000
        },
        {
          "@id": "http://agora.ex.nii.ac.jp/digital-typhoon/iiif/2016/08/27/20160827033000",
          "@type": "cs:Canvas",
          "label": "2016-08-27T03:30:00Z",
          "cursorIndex": 1472268600
        },
        {
          "@id": "http://agora.ex.nii.ac.jp/digital-typhoon/iiif/2016/08/27/20160827033000#xywh=2784,1109,4176,3028",
          "@type": "cs:Canvas",
          "label": "2016-08-27T03:30:00Z",
          "cursorIndex": 1472268600
        }
      ],
      "within": {
        "@id": "http://codh.rois.ac.jp/iiif/iiif-curation-viewer/sample/himawari/timeline.json",
        "@type": "tl:Manifest",
        "label": "Digital Typhoon: Himawari-8 Clipping"
      }
    }
  ]
}

Specification

ontology.xml

context.json

Proposed IIIF Extensions

Curation API

Timeline API

Cursor API

Software Implementations

IIIF Curation Viewer

IIIF Curation Viewer for Timeline