IIIF Curation Viewer

“IIIF Curation Viewer”は、国文学研究資料館が公開する古典籍データを人文学オープンデータ共同利用センターのウェブサイト上で閲覧するために開発された画像ビューワである。ページ移動やズームといった一般的なビューワが持つ機能に加え、複数の資料の中から任意のページを取り出し、任意の順序で閲覧する機能を特徴として有している。

この文書は、本ビューワの画面上に示されていない動作詳細を中心に記述する。

基本利用者向け機能

ビューワ画面

ビューワ画面の操作項目
番号 項目名 説明
1 資料名(リンク) 資料名が表示され、押下により関連情報へ遷移する。
curation.jsonのURLによる表示対象指定時は括弧内にキュレーション名が表示され、押下により関連情報に遷移する。
2 ページナビ(ボタンとプルダウン) 閲覧対象内で前後にコマ移動する。中央部(「表示中のコマ番号 / 閲覧対象コマ数」形式)のプルダウンでコマ指定移動する。
3 サムネイル一覧表示(ボタン) 閲覧対象のサムネイル一覧を表示する。
4 資料ナビ(ボタンとプルダウン) 閲覧対象内で前後の資料に移動する。中央部(「表示中の資料番号 / 閲覧対象資料切替数」形式)のプルダウンで資料指定移動する。
5 元資料閲覧(ボタン) 表示中のコマの「元資料内でのコマ番号 / 元資料のコマ数」形式で表示され、押下により元資料単体(ページ絞り込みなし)での閲覧に遷移する。
6 画像ダウンロード(ボタン) 表示中のコマの画像をダウンロードする。
7 情報表示(ボタン) 表示中の資料に関する権利関係やライセンス、ロゴ、manifestのURL等の情報を表示する。
8 ヘルプ表示(ボタン) ヘルプ情報を表示する。
9 ズームイン/ズームアウト(ボタン) 表示中のコマをズームイン/ズームアウトする。
10 フルページ表示(ボタン) フルページ表示状態を切り替える。
フルページ表示時は、ビューワの左右両端にページ移動用ボタンが表示される(一定時間でフェードアウトする)。

キーボードショートカット

キー名 動作
左矢印、Back space 閲覧対象(ピックアップ)内で前のコマへ移動
サムネイル一覧を表示中は、サムネイル一覧ページャの前移動
右矢印、Space 閲覧対象(ピックアップ)内で次のコマへ移動
サムネイル一覧を表示中は、サムネイル一覧ページャの次移動
f フルページ表示トグル
t サムネイル一覧表示トグル
+ (Numpad) ズームイン
- (Numpad) ズームアウト

高度利用者向け機能

URL(GET引数)による動作指定

パラメータ名 内容 値の形式 補足
pages BookIDによる表示対象指定 <BookID>(/<pages>)?(:<BookID>(/<pages>)?)* ここで、
<BookID> ::= [0-9]{9}
<pages> ::= <page num>(-<page num>)?(,<page num>(-<page num>)?)*
<page num> ::= -?[0-9]+
<page num>は、1から始まるページ番号(*1)、負数は最終ページからの位置。
curation curation.jsonのURLによる表示対象指定 URL “curation.json”については後述
pos 表示ページ指定 [0-9]+ pagesまたはcurationで指定された表示すべきページのうち、
何番目を画面に表示するかの数値(1から始まる通し番号)
full フルページ表示(オプション) 1 1:フルページ状態でページを開く
tnパラメータとの同時指定不可
tn サムネイル一覧表示(オプション) 1 1:サムネイル一覧を表示した状態でページを開く
fullパラメータとの同時指定不可
lang 表示言語指定(オプション) "ja"など "ja"または未指定:日本語表示
上記以外("en"など):英語表示

*1:pagesパラメータで指定されたページ番号をiとすると、表示されるcanvasは、manifestのsequences[0].canvases[i-1] のものとなる。

記述例

  1. 単一資料『唐糸草紙』の全ページ表示のケース(通常表示)
  2. 単一資料『唐糸草紙』のp.23-50のみ表示のケース
  3. 単一資料『唐糸草紙』のp.6,9,11,14,19のみ表示のケース
  4. 単一資料『唐糸草紙』の末尾5ページのみ表示のケース
  5. 単一資料『唐糸草紙』を逆順に全ページ表示のケース
  6. 単一資料『唐糸草紙』で一部のページを重複表示のケース
  7. 複数資料『画本虫撰』『唐糸草紙』の全ページ表示のケース
  8. 複数資料『画本虫撰』のp.1,12,24と『唐糸草紙』のp1,9,11のみを表示のケース
  9. curation.jsonの読み込み(表示対象は8.と同じ)
  10. 単一資料『唐糸草紙』のp.6,9,11,14,19のうち、p.11(3番目)を最初に表示するケース
  11. 単一資料『唐糸草紙』のp.6,9,11,14,19のうち、p.11(3番目)を最初にフルページ表示するケース
  12. 単一資料『唐糸草紙』の全ページ表示(英語)のケース
  13. 複数資料『画本虫撰』のp.1,12,24と『唐糸草紙』のp1,9,11のみを表示(英語)のケース

Curation APIの利用機能

Curation APIの記述方法

本ビューワでの閲覧対象は、pagesパラメータでの直接指定、または、閲覧対象を記述したJSONファイル(以下、“curation.json”とする。)のURLによって指定できる。

curation.jsonは、IIIF Presentation API 2.1のCollection (http://iiif.io/api/presentation/2.1/#collection)に類似した構造を取る。現時点ではIIIFの独自拡張であり、@typecodh:Curationとしている。以下、この構造をCurationと呼ぶ。

Collectionが物理的なオブジェクト(一冊の図書など)に対応したManifestを最小粒度としてグループ化したものとして想定されているのに対し、Curationは、Canvasを最小粒度として、Manifest横断的にグループ化可能なものとして想定している。

Curationの基本構造は次のようになる。

  • Curation
    • @context(必須)
    • @type(必須)
    • @id(必須)
    • label(必須)
    • selections(必須)
      • Range
        • canvases/members(どちらか必須)
        • within(必須)

Curationでは、新たに導入したselectionsプロパティを用いて閲覧対象Canvasを指定する。selectionsは、Range (http://iiif.io/api/presentation/2.1/#range)の順序付きリスト(配列)である。Rangeでは、canvasesプロパティ等を用いてCanvasを指定し、Canvasが属するManifestの情報はwithinプロパティを用いて記述する。

なお、本ビューワの実装では、拡張のベースとしたIIIF Presentation API 2.1の全仕様には対応していないが(Range内のrangesプロパティには未対応。Rangemembersプロパティ内ではCanvasのみ対応、members内のRangeの入れ子は未対応など)、Curationの仕様としてこれらを禁じるものではない。

記述例

{
  "@context": [
    "http://iiif.io/api/presentation/2/context.json",
    "http://codh.rois.ac.jp/iiif/curation/1/context.json"
  ],
  "@type": "codh:Curation",
  "@id": "http://example.org/iiif/curation/curation.json",
  "label": "Curated NIJL Data set",
  "attribution": "Provided by CODH (ROIS) and NIJL NW Project.",
  "related": {
    "@id": "http://example.org/iiif/curation/sample.html",
    "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"
      ],
      "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"
        }
      ],
      "within": {
        "@id": "http://codh.rois.ac.jp/pmjt/book/200003067/manifest.json",
        "@type": "sc:Manifest",
        "label": "唐糸草紙"
      }
    }
  ]
}
      

ライセンス

IIIF Curation Viewer v1.0

Copyright 2016 Center for Open Data in the Humanities,
Research Organization of Information and Systems

Released under the MIT license

Core contributor: Jun HOMMA (@2SC1815J)

Licenses of open source JS libraries, see acknowledgements.txt

活用事例