IIIF Curation Viewerのインストール

“IIIF Curation Viewer”は、IIIF (International Image Interoperability Framework)準拠の画像ビューワであり、ページ移動やズームといった一般的なビューワが持つ機能に加え、複数の資料から画像の一部を切り取り、収集し、任意の順序で閲覧できる独自の「キュレーション」機能を備えている。

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

この文書は本ビューワをインストールするための情報を記述する。その他の情報については、以下の別資料を参照のこと。

目次

設置時の設定

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

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

  • title
  • resolveIdentifierSetting
    • manifestUrlPrefix:デフォルト値''
    • identifierPattern:デフォルト値''
    • manifestUrlSuffix:デフォルト値''
    • numberOfSlashesInIdentifier:デフォルト値0
  • trustedUrlPrefixes:デフォルト値[]
  • curation
    • enableRectangleMarkerEdit:デフォルト値false
  • timeline
    • steps:デフォルト値[]
  • service
    • croppedImageExportUrl:デフォルト値''
    • curationJsonExportUrl:デフォルト値''
  • controls
    • enableAutoHide:デフォルト値true
  • showOnLoaded
    • description:デフォルト値false
  • doc
    • aboutUrl:デフォルト値'http://codh.rois.ac.jp/software/iiif-curation-viewer/'

title

titleは、ビューワ左上に表示されるタイトルを設定する。

未指定の場合、ビューワ同梱のindex.htmlに記載された内容が用いられる。

言語ごとに表示名を分ける場合は、次のように@language@valueを用いて記述する。

title: [
    {
        '@language': 'en',
        '@value': '<span class="icp_navbar_brand_logo"></span>Pre-modern Japanese Text Viewer'
    },
    {
        '@language': 'ja',
        '@value': '<span class="icp_navbar_brand_logo"></span>日本古典籍ビューア'
    }
]

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://']

curation

enableRectangleMarkerEditは、アノテーションビューモードの矩形枠線マーカーについて、サイズや位置の編集を可能とするか否を設定する。trueの場合、アノテーションビューモード専用キュレーションにおいて、矩形枠線マーカーのサイズや位置が編集可能となる。

timeline

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

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

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

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

service

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

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

controls

enableAutoHideは、ズームイン/ズームアウトボタン、フルページ表示ボタン、部分矩形領域指定ボタンについて、自動的に隠す機能を設定する。trueの場合、これらのボタンは、一定時間でフェードアウトし、マウスオーバーまたはタッチにより再び表示される。falseの場合、これらのボタンは常に表示される。

showOnLoaded

descriptionは、マニフェスト/キュレーション読み込み時に、その説明(マニフェスト/キュレーションに記載されたdescriptionプロパティ)を表示するか否かを設定する。trueの場合、この意図と干渉するURL(GET引数)が指定された場合であっても、こちらの設定が優先される。ただし、表示すべき説明がない場合は、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);
})();

プラグイン

IIIF Curation Viewer v1.4からは、本ビューワにプラグインを導入することで、利用者のニーズに応じた機能拡張が可能となっている。プラグインにより拡張される機能の例についてはプラグイン解説資料を参照のこと。

制限事項

本ビューワは、同一ページへの複数設置には対応していない。同一ページに複数設置する必要がある場合は、iframeの利用を検討されたい。また、埋め込み利用に特化したIIIF Curation Viewer Embeddedも参照のこと。