IIIF Curation Platform(ICP)は、IIIFの画像を利用者の視点から自由に収集・加工・公開するためのオープンソースソフトウェア群である。 IIIFが画像提供者の共通ニーズに応える仕様として普及したのに対し、ICPはその上に「利用者側の視点」を重ねる場として開発された。[UC-001 §IIIFの相互運用性とICPの独自性]
「キュレーション」という方法論
ICPの中心概念はキュレーションである。 もともとミュージアムで資料の収集や展示を指す言葉であり、情報的にはあるテーマに沿ってコンテンツを集め、適切な順番に並べ、新たなコンテンツとして提示・共有する活動を指す。[UC-001 §IIIF Curation Platformとは何か]
IIIFはもともと、様々なサイトが公開する画像を同じビューアで閲覧できるという相互運用性を実現した仕様である(IIIFの仕様・API体系の詳細は「IIIFとは?」を参照)。 ICPはその相互運用性を前提としつつ、公式のIIIF仕様が提供者側の視点であるのに対し、利用者が独自に画像を収集・処理・公開できるワークフロー全体を支援する基盤として設計されている。[UC-001 §キュレーションプラットフォームとキュレーションAPIの区別]
ソフトウェア群の構成
ICPは単一のアプリケーションではなく、ウェブブラウザ上で動作するソフトウェア7点、特定目的のアプリ1点、サーバ側で動作するPythonプログラム3点、導入を支援するDocker設定1点の、合わせて12点ほどのオープンソースで構成される。[UC-001 §IIIF Curation Platformとは何か] MiradorやUniversal Viewerといった著名なIIIFビューアと競合するのではなく、IIIFのポテンシャルを引き出すことに集中する場として開発されているという位置づけが北本朝展氏によって強調されている。[UC-001 §IIIF Curation Platformとは何か]
各ツールの役割は大きく「閲覧」「キュレーション作成・管理」「データ保存・検索」「展示・エクスポート」に分けられる。
閲覧の中心はIIIF Curation Viewerで、書籍閲覧を典型用途とし、viewingDirectionの違いを吸収するため和書と洋書のどちらも同一ビューアで閲覧できる。[UC-001 §IIIF画像の閲覧] ウェブページ内で他の情報と組み合わせて使う用途には埋め込み型IIIF Curation Viewerが用意されており、メタデータを外側に配置したり複数画像を切り替えたりする独自機能と組み合わせて使われる。[UC-001 §IIIF画像の閲覧]
キュレーションの作成は、IIIF Curation Viewer上の「切り取り」ボタンで矩形領域を指定し「お気に入り」に追加するだけで行える。 この操作で集まった画像はCuration Listとして蓄積され、他のビューアにはないIIIF Curation Viewer独自の機能となっている。[UC-001 §IIIF画像のキュレーション] 作成したキュレーションの管理と編集にはIIIF Curation ManagerとIIIF Curation Editorが対応する。前者はログイン状態でエクスポートしたキュレーションの一覧・削除に、後者はCuration形式のJSONデータを見ながらのメタデータ追加・変更に使うが、大規模な編集作業には向かないとされる。[UC-001 §IIIF画像のキュレーション]
展示にはIIIF Curation Playerを用い、メタデータを画像に重ねて表示したりスライドショーで自動再生したりできる。[UC-001 §IIIF画像のキュレーション]
データ保存と検索を担うのがJSONkeeperとCanvas Indexerである。JSONkeeperはJSON形式のデータを保存・提供するサービス、Canvas IndexerはJSONkeeperのデータをクロールしてキャンバス単位に分解し検索可能とするサービスで、ビューアやファインダーの背後にあるデータベース的な役割を果たす。[UC-001 §ICPの高度な利用] Canvas Indexerに機械学習によるタグ付けサービスを連携させ、顔にタグを付けて検索するといった利用も可能である。[UC-001 §ICPの高度な利用] キュレーションに利用されている領域をキャンバス単位・マニフェスト単位で可視化するCuration Tracerもあり、画像のどこに注目が集まっているかを分析できる。[UC-001 §ICPの高度な利用]
キュレーションプラットフォームとCuration APIの区別
ICPを理解するうえで重要なのが、ソフトウェア群であるキュレーションプラットフォームと、仕様であるCuration APIを区別することだと北本氏は述べる。[UC-001 §キュレーションプラットフォームとキュレーションAPIの区別] Curation APIはデータのフォーマットと提供方法を定めた仕様であり、ICPはその一実装にすぎない。キュレーションを行うためにICPを必ず使う必要はなく、APIに対応していれば他のソフトウェアからも利用できる。[UC-001 §キュレーションプラットフォームとキュレーションAPIの区別]
ICPが独自に拡張するAPIは3種類ある。キュレーションを作る仕組みであるCuration API、時間を単位として一次元的に順序を定義できる資料の閲覧に使うTimeline API、長大なキャンバスリストの一部を切り出して提供するCursor APIである。Timeline APIとCursor APIは時系列画像の閲覧にのみ使われており、独自拡張に対応したビューアでしか表示できない。[UC-001 §キュレーションプラットフォームとキュレーションAPIの区別]
この区別は実践的な意義も持つ。東京大学史料編纂所の中村覚氏は、ICPの開発元とは別組織にいる一利用者の立場から、複数のデジタルアーカイブ構築においてCuration APIをデータ管理の形式として採用している。[UC-003 §まとめ:相互運用性と管理の容易さ] 複数マニフェストから切り出した画像領域をメタデータとともに管理する要件に対して、キュレーションリスト1ファイルのみで対応できる点が管理の容易さとして評価されており、長期保存にもつながる利点とされている。[UC-003 §まとめ:相互運用性と管理の容易さ]
外部サービスとの連携
ICPのもう一つの特徴が、ビューア内で選択した画像領域を外部サービスに送り外部で処理させるエクスポート機能である。 矩形で囲んだ領域を表すURL(IIIFの画像URI)を外部サービスに送信できる仕組みで、画像を入力として処理結果を返すタイプのサービスであれば、データの渡し方さえ決めれば連携できる。[UC-001 §IIIF画像のエクスポート] エクスポート先の変更はエンドポイント設定(JSONファイル)のドラッグ&ドロップで行える設計になっており、ICPサービスリポジトリでは5種類のエンドポイント設定が公開されている。[UC-001 §IIIF画像のエクスポート]
また、IIIF Curation Viewerのログイン機能(Google社のFirebase認証を使用)はオプションだが、ログインすることでデータの権限管理が有効になり、JSONkeeperへのエクスポート時に他者による上書きを防ぐことができる。くずし字認識など連携サービスの一部はログインを要求するが、これはデータ管理のためであり有料化のためではないと明示されている。[UC-001 §キュレーションプラットフォームとキュレーションAPIの区別]
個別ツールを実際のプロジェクトでどのように組み合わせて使うかについては、「IIIF Curation Platformを用いたユースケース」を参照。