IIIF Curation Viewerのインストール

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

IIIF Curation Viewer v1.3からは、閲覧対象を上記データに限定せず、利用者のニーズに応じて本ビューワをカスタマイズして設置できる機能を強化した。

この文書は本ビューワをインストールするための情報を記述するが、現バージョン1.3は試験的な機能を含んでいるため、簡単にインストールするためのダウンロードパッケージは、今後開発を進めるバージョン2.0以降で用意する計画である。

なお利用者向け情報は別資料を参照のこと。

ビューワ設置時の設定

ビューワ設置時のオプション指定により、ビューワの挙動をカスタマイズできる。

オプション指定は、次に挙げるプロパティを持ったオブジェクトをIIIFCurationViewerの引数に与えることによって行う。

  • resolveIdentifierSetting
    • manifestUrlPrefix:デフォルト値''
    • identifierPattern:デフォルト値''
    • manifestUrlSuffix:デフォルト値''
    • numberOfSlashesInIdentifier:デフォルト値0
  • trustedUrlPrefixes:デフォルト値[]
  • timeline
    • steps:デフォルト値[]
  • service
    • croppedImageExportUrl:デフォルト値''
    • curationJsonExportUrl:デフォルト値''
  • doc
    • aboutUrl:デフォルト値'http://codh.rois.ac.jp/software/iiif-curation-viewer/#ui'

resolveIdentifierSetting

resolveIdentifierSettingは、ビューワURLのpagesパラメータ(GET引数)による表示対象指定で用いられるidentifierからmanifest URLへ解決するために用いられる。

この設定を行わない場合、pagesパラメータによる表示対象指定は不可となる。また、ここで解決されたmanifest URLは、trustedUrlPrefixesリスト(後述)に未登録であっても表示が認められる。

manifest URLが{scheme}://{server}{/prefix}/{identifier}/manifestのパターンを取るとき、manifestUrlPrefixには{scheme}://{server}{/prefix}/部分を指定し、identifierPatternには{identifier}が取りうるパターンを正規表現で指定し、manifestUrlSuffixには/manifest部分を指定する。また、numberOfSlashesInIdentifierには{identifier}に含まれるスラッシュの個数を指定する。

例えば、人文学オープンデータ共同利用センターのウェブサイト上で提供されている「日本古典籍データセット」の場合、manifest URLはhttp://codh.rois.ac.jp/pmjt/book/{identifier}/manifest.jsonの形式を取る(ここで{identifier}は9桁の数値であり、{identifier}に含まれるスラッシュは0個)。このmanifest URLパターンに対応するresolveIdentifierSetting設定は、次のようになる。

resolveIdentifierSetting: {
    manifestUrlPrefix: 'http://codh.rois.ac.jp/pmjt/book/',
    identifierPattern: '[0-9]{9}',
    manifestUrlSuffix: '/manifest.json',
    numberOfSlashesInIdentifier: 0
}

上記設定の下、例えば、pagesパラメータによる表示対象指定pages=200014778により、http://codh.rois.ac.jp/pmjt/book/200014778/manifest.jsonが読み込まれる。

trustedUrlPrefixes

trustedUrlPrefixesは、ビューワでの表示を認めるmanifest/timeline URLの接頭辞を設定する。

manifest/timelineパラメータで指定したURL、およびcurationパラメータで指定したURLのJSONファイル内に記述されたmanifest/timelineのURLが、trustedUrlPrefixesリストの要素から始まる場合、ビューワでの表示が認められる。

この設定を行わない場合、pagesパラメータで指定できるmanifest以外は表示不可となる。

例えば、http/httpsで始まる任意のURLをもったmanifest/timelineの表示を認める場合、trustedUrlPrefixes設定は、次のようになる。

trustedUrlPrefixes: ['http://', 'https://']

timeline

stepsは、timeline表示時、ページナビ前後ボタンによる移動コマ数を設定する。このとき、設定値はCursorの返すコマ数未満でなければならない。

この設定を行わない場合、コマ移動幅の増減ボタンは表示されず、ページナビ前後ボタンによる移動は1コマずつとなる。

例えば、コマ移動幅の増減ボタンにより、ページナビでの前後移動コマ数を、1コマ、6コマ、36コマ、144コマに変更できるようにする場合、steps設定は、次のようになる。

timeline: {
    steps: [1, 6, 36, 144]
}

service

croppedImageExportUrlは、表示中のコマの部分矩形領域を選択した際、選択領域を表すURLを外部サービスに送信できるようにする場合、その送信先URLを設定する。

curationJsonExportUrlは、キューレションリスト(JSON形式)を外部サービスに送信できるようにする場合、その送信先URLを設定する。

doc

aboutUrlは、ビューワのヘルプ画面「このビューワについて」ボタンからリンクされるURLを設定する。

例えば、リンク先がhttp://example.org/software/iiif-curation-viewer/about.htmlである場合、aboutUrl設定は、次のようになる。

doc: {
    aboutUrl: 'http://example.org/software/iiif-curation-viewer/about.html'
}

言語ごとにリンク先を分ける場合は、次のように@language@valueを用いて記述する。

doc: {
    aboutUrl: [
        {
            '@language': 'en',
            '@value': 'http://example.org/software/iiif-curation-viewer/about.en.html'
        },
        {
            '@language': 'ja',
            '@value': 'http://example.org/software/iiif-curation-viewer/about.ja.html'
        }
    ]
}

設定例

いくつかの事例での設定例を示す。設定箇所は、ビューワ同梱のindex.jsを参照のこと。

var iiifViewer = (function() {
  var configExample = {
      generic: {
          //pagesパラメータによる表示対象指定は利用不可
          //pagesパラメータで指定できるmanifest以外に表示を認めるURLのリスト
          trustedUrlPrefixes: ['https://', 'http://'] //無制限
          //manifest/timelineパラメータで指定したURL、および
          //curationパラメータで指定したURLのJSON内に記述されたmanifest/timelineのURLが、
          //trustedUrlPrefixesリストの要素から始まる場合、表示を認める。
      },
      pmjt: {
          //pagesパラメータによる表示対象指定可能
          resolveIdentifierSetting: {
              manifestUrlPrefix: 'http://codh.rois.ac.jp/pmjt/book/',
              identifierPattern: '[0-9]{9}',
              manifestUrlSuffix: '/manifest.json'
          },
          //pagesパラメータで指定できるmanifest以外に表示を認めるURLのリスト
          trustedUrlPrefixes: [] //pagesパラメータで指定できるmanifest以外は表示不可
      },
      digitalTyphoonFd: {
          //pagesパラメータによる表示対象指定は利用不可
          //pagesパラメータで指定できるmanifest以外に表示を認めるURLのリスト
          trustedUrlPrefixes: [
              'http://agora.ex.nii.ac.jp/digital-typhoon/himawari-3g/iiif/'
          ],
          timeline: {
              steps: [1, 6, 36, 144]
          },
          service: {
              croppedImageExportUrl: 'http://agora.ex.nii.ac.jp/cgi-bin/iiif/clipping.pl'
          },
          doc: {
              //言語ごとにaboutページを分けない場合の書き方
              aboutUrl: 'http://codh.rois.ac.jp/software/iiif-curation-viewer/timeline.html#ui'
          }
      },
      digitalTyphoonJp: {
          //pagesパラメータによる表示対象指定は利用不可
          //pagesパラメータで指定できるmanifest以外に表示を認めるURLのリスト
          trustedUrlPrefixes: [
              'http://agora.ex.nii.ac.jp/digital-typhoon/himawari-3g/iiif/'
          ],
          timeline: {
              steps: [1, 4, 24, 144, 576]
          },
          service: {
              croppedImageExportUrl: 'http://agora.ex.nii.ac.jp/cgi-bin/iiif/clipping.pl'
          },
          doc: {
              aboutUrl: [ //言語ごとにaboutページを分ける場合の書き方
                  {
                      '@language': 'en',
                      '@value': 'http://codh.rois.ac.jp/software/iiif-curation-viewer/timeline.html#ui'
                  },
                  {
                      '@language': 'ja',
                      '@value': 'http://codh.rois.ac.jp/software/iiif-curation-viewer/timeline.html#ui'
                  }
              ]
          }
      },
      toyobunko: {
          //pagesパラメータによる表示対象指定可能
          resolveIdentifierSetting: {
              manifestUrlPrefix: 'http://dsr.nii.ac.jp/toyobunko/',
              identifierPattern: '.*',
              manifestUrlSuffix: '/manifest.json',
              numberOfSlashesInIdentifier: 1 //identifierには'/'が1つ含まれている
          },
          //pagesパラメータで指定できるmanifest以外に表示を認めるURLのリスト
          trustedUrlPrefixes: [] //pagesパラメータで指定できるmanifest以外は表示不可
      },
      harvardartmuseums: {
          //pagesパラメータによる表示対象指定可能
          resolveIdentifierSetting: {
              manifestUrlPrefix: 'https://iiif.harvardartmuseums.org/manifests/object/',
              identifierPattern: '[0-9]+',
              manifestUrlSuffix: '',
              numberOfSlashesInIdentifier: 0 //identifierに含まれる'/'は0個
          },
          //pagesパラメータで指定できるmanifest以外に表示を認めるURLのリスト
          trustedUrlPrefixes: [] //pagesパラメータで指定できるmanifest以外は表示不可
      },
      bodleian: {
          //pagesパラメータによる表示対象指定可能
          resolveIdentifierSetting: {
              manifestUrlPrefix: 'http://iiif.bodleian.ox.ac.uk/iiif/manifest/',
              identifierPattern: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}',
              manifestUrlSuffix: '.json',
              numberOfSlashesInIdentifier: 0 //identifierに含まれる'/'は0個
          },
          //pagesパラメータで指定できるmanifest以外に表示を認めるURLのリスト
          trustedUrlPrefixes: [] //pagesパラメータで指定できるmanifest以外は表示不可
      }
  };
  return IIIFCurationViewer(configExample.generic);
  })();

制限事項

本ビューワは、同一ページへの複数埋め込みには対応していない。同一ページに複数設置する必要がある場合は、iframeの利用を検討されたい。

ライセンス

IIIF Curation Viewer v1.3

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

バージョン

  1. バージョン1.3 (2017-10-11)