IIIFの概要
IIIF(International Image Interoperability Framework)は、デジタル画像をWeb上で相互運用可能な形で公開・共有するための国際標準フレームワークです。「トリプルアイエフ」と読みます。
世界中の図書館、博物館、美術館、大学が所蔵する膨大なデジタル画像資料は、それぞれ独自のシステムで管理・配信されてきました。ある機関の画像を閲覧するにはその機関専用のビューアを使う必要があり、複数の機関の画像を横断的に比較したり、異なるシステム間で画像を再利用したりすることは困難でした。
IIIFはこの課題に対して、画像の配信方法とメタデータの記述方法を標準化することで解決を図ります。IIIFに準拠したシステムであれば、機関を問わず同じビューアで画像を閲覧でき、異なる機関の画像を並べて比較したり、別のアプリケーションで自由に利用したりすることが可能になります。
歴史的背景
IIIFの取り組みは2011年頃から始まりました。スタンフォード大学、大英図書館、フランス国立図書館、ノルウェー国立図書館など、大規模なデジタルコレクションを持つ機関が中心となり、画像配信の共通標準を策定するためのコミュニティが形成されました。
2012年に最初のImage APIの仕様がドラフトとして公開され、その後Presentation API、Content Search API、Authentication APIが順次策定されていきました。現在では、IIIFコンソーシアムとして正式に組織化され、世界中の数百にのぼる機関がIIIFを採用しています。
日本においても、国立国会図書館デジタルコレクション、国立情報学研究所(NII)、東京大学、京都大学をはじめとする多くの機関がIIIF対応を進めており、デジタルアーカイブの国際的な相互運用の基盤として定着しつつあります。
IIIFの仕様は継続的に更新されており、現在の主要な仕様バージョンはImage API 3.0、Presentation API 3.0です。バージョン2からバージョン3への移行では、JSON-LDの記述方法の改善や、音声・動画コンテンツへの対応拡張などが行われました。
IIIFの主要API
IIIFは複数のAPIから構成されるフレームワークです。それぞれのAPIが異なる役割を担い、組み合わせることで豊かな画像体験を実現します。
Image API
Image APIは、IIIFの中核をなすAPIです。画像の特定の領域を、指定したサイズ・回転・品質で取得するためのURLの構造を定義します。
たとえば、ある画像の左上4分の1の領域を、幅300ピクセルで取得したい場合、URLのパラメータを変更するだけで目的の画像を取得できます。この仕組みにより、クライアント側が必要な部分だけを必要なサイズで取得できるため、大規模な高解像度画像の効率的な配信が可能になります。
Image APIの詳細については、次章「IIIF Image API入門」で詳しく解説します。
Presentation API
Presentation APIは、画像をどのように「提示」するかを記述するためのAPIです。1枚の画像単体ではなく、書籍のように複数ページからなる資料の構造や、メタデータ(タイトル、著者、所蔵機関など)を記述します。
このAPIの中心的な概念が「マニフェスト(Manifest)」です。マニフェストはJSON-LD形式で記述され、以下のような情報を含みます。
- 資料のメタデータ(タイトル、作成者、権利情報など)
- キャンバス(Canvas)の一覧: 各ページに対応する仮想的な描画領域
- 各キャンバスに配置される画像やアノテーション
- 資料の構造(目次、章立てなど)
{
"@context": "http://iiif.io/api/presentation/3/context.json",
"id": "https://example.org/iiif/manifest.json",
"type": "Manifest",
"label": { "ja": ["源氏物語 桐壺"] },
"items": [
{
"id": "https://example.org/iiif/canvas/1",
"type": "Canvas",
"width": 3000,
"height": 4000,
"items": [...]
}
]
}
IIIFビューアは、このマニフェストファイルのURLを受け取ることで、資料の構造を理解し、適切な形で画像を表示します。多くのビューアでは、?manifest={URL} のようなパラメータでマニフェストを指定する仕組みが共通しています。さらに、?canvas={canvasURI} のようにキャンバスのURIを指定することで、特定のページを直接表示することも可能です。
Content Search API
Content Search APIは、IIIFリソースに対するテキスト検索機能を提供するAPIです。OCR(光学文字認識)処理された画像資料に対して全文検索を行い、検索結果をアノテーション(Web Annotation)の形式で返します。
これにより、ビューアは検索でヒットしたテキストの位置を画像上でハイライト表示するといった機能を実装できます。大量のデジタル化された文書資料の中から特定の語句を含むページを素早く発見できるため、研究利用において大きな価値があります。
Authentication API(Auth API)
Authentication APIは、IIIF画像へのアクセス制御を行うためのAPIです。すべてのデジタル画像が自由に公開できるわけではなく、著作権や肖像権、所蔵機関の利用規約などにより、アクセスを制限する必要がある場合があります。
Auth APIでは、以下のようなアクセス制御のパターンを定義しています。
- ログイン(Login): ユーザー認証を経て画像にアクセスする
- クリックスルー(Clickthrough): 利用規約への同意を求めてからアクセスを許可する
- キオスク(Kiosk): 特定の場所(館内端末など)からのみアクセスを許可する
- 外部認証(External): 機関のSSOなど外部の認証システムと連携する
これにより、IIIFの相互運用性を維持しながら、適切なアクセス制御を実現できます。
IIIFエコシステムの全体像
IIIFは仕様だけではなく、その仕様を実装したソフトウェア群が豊富に存在することが大きな強みです。ここでは、IIIFエコシステムを構成する主要な要素を概観します。
IIIFビューア
IIIFビューアは、マニフェストファイルを読み込んで画像を表示するクライアントサイドのアプリケーションです。現在、多くのビューアが開発・公開されています。
| ビューア | 特徴 |
|---|---|
| Mirador | 多機能な学術向けビューア。複数画像の比較表示、アノテーション機能が充実 |
| Universal Viewer | 汎用性の高いビューア。画像、音声、動画、3Dに対応 |
| Clover | Samveraコミュニティによるモダンなビューア |
| TIFY | 軽量でシンプルなビューア |
| Glycerine Viewer | 高機能なビューア |
| IIIF Curation Viewer | 人文学研究所(ROIS-DS)開発のキュレーション機能付きビューア |
| Annona | NCSU Libraries開発の埋め込み型ビューア |
多くのビューアは、URLパラメータにマニフェストのURLを指定するだけで画像を表示できます。たとえば、Miradorの場合は https://projectmirador.org/embed/?iiif-content={マニフェストURL} というURLでアクセスできます。これらのビューアの存在により、画像を公開する機関は独自のビューアを開発する必要がなく、既存の高機能なビューアをそのまま利用できます。
IIIF公式サイトでは「IIIF 3.0 Viewer Matrix」として、各ビューアの対応状況を一覧にまとめています。ビューア選定の際に参考になるでしょう。
イメージサーバ
IIIFイメージサーバは、Image APIの仕様に準拠して画像を配信するサーバソフトウェアです。
- Cantaloupe: Java製の高機能イメージサーバ。IIIF Image API 2.1/3.0に対応し、幅広い画像フォーマットをサポート
- IIPImage: C++製の高速イメージサーバ。JPEG2000やTIFFに対応
- Serverless IIIF: AWS Lambda上で動作するサーバレスなイメージサーバ
- 静的タイル配信: Image API Level 0として、事前生成したタイル画像をGitHub PagesやS3から配信する方式
用途や規模に応じて、動的な画像処理を行うフルスペックのサーバから、静的ファイルのみで完結する軽量な方式まで、幅広い選択肢があります。
関連ツール
IIIFエコシステムには、画像の配信・閲覧だけでなく、さまざまな周辺ツールも充実しています。
- マニフェストエディタ: マニフェストファイルをGUIで作成・編集するツール
- マニフェストバリデータ: 作成したマニフェストが仕様に準拠しているかを検証するツール
- 画像比較ツール: 複数のIIIF画像を並べて比較するためのツール
- コマ数指定ツール: マニフェストのキャンバスURIを自動取得し、特定ページへのリンクを生成するツール
- 静的タイル生成ツール: 画像をIIIF Image API Level 0に対応したタイル画像に変換するスクリプト
IIIFを使うメリット
相互運用性
IIIFの最大のメリットは相互運用性(Interoperability)です。IIIFに準拠していれば、どの機関の画像であっても同じビューアで閲覧できます。さらに、異なる機関の画像を一つのビューアに並べて比較することも可能です。
たとえば、国立国会図書館が所蔵する写本と、大英図書館が所蔵する別の写本を、Miradorの画面上で同時に表示して比較するといったことが、特別なシステム連携なしに実現できます。これは、それぞれの機関がIIIFの標準に準拠して画像を公開しているからこそ可能になることです。
再利用性
IIIFで公開された画像は、URIを指定するだけでさまざまなアプリケーションから利用できます。Webサイトへの埋め込み、研究論文での引用、教育教材での利用など、画像を自由に再利用できる環境が整います。
Image APIのURL構造に従えば、画像の特定部分を特定のサイズで取得するURLを構築できるため、サムネイルの生成やトリミングも動的に行えます。
標準化による開発効率の向上
IIIFの仕様に準拠したソフトウェアは、互いに組み合わせて使うことができます。イメージサーバ、ビューア、マニフェスト作成ツールなど、各コンポーネントを独立して選択・交換できるため、システム構築の柔軟性が高まります。
また、IIIFコミュニティが活発に活動しているため、オープンソースのツールやライブラリが豊富に利用可能です。独自開発の労力を最小限に抑えつつ、高品質な画像配信環境を構築できます。
持続可能性
標準的な技術(HTTP、JSON-LD、Web Annotation)の上に構築されているため、特定のベンダーや技術への依存を避けることができます。コミュニティ主導で仕様が策定・維持されているため、長期的な技術の持続可能性が期待できます。
関連技術との関係
IIIFは既存のWeb標準技術の上に構築されています。ここでは、IIIFと密接に関連する技術について説明します。
JSON-LD(JSON for Linked Data)
IIIFのPresentation APIで用いられるマニフェストファイルは、JSON-LD形式で記述されます。JSON-LDは、JSON(JavaScript Object Notation)にLinked Dataのセマンティクスを付与する仕組みです。
通常のJSONとの違いは、@context プロパティの存在です。@context は、JSON内の各キー(プロパティ名)が実際にはどのような意味を持つURIに対応するかを定義します。
{
"@context": "http://iiif.io/api/presentation/2/context.json",
"@type": "sc:Manifest",
"label": "校異源氏物語. 巻一",
"license": "https://dl.ndl.go.jp/ja/iiif_license.html"
}
上記の例では、@context で指定されたURLの定義ファイルにより、license というプロパティは実際には dcterms:rights(Dublin Coreの権利に関するプロパティ)に対応していることが示されています。
JSON-LDはRDF(Resource Description Framework)のシリアライゼーション形式の一つでもあるため、IIIFマニフェストのデータをTurtle形式やRDF/XML形式など、他のRDFフォーマットに機械的に変換することも可能です。これにより、IIIFのメタデータをLinked Dataのエコシステムで活用できます。
Web Annotation
IIIF Presentation API 3.0では、キャンバス上への画像の配置やテキストの付与にWeb Annotation(W3C Web Annotation Data Model)を用いています。Web AnnotationはW3Cの勧告であり、Webリソースに対するアノテーション(注釈)を標準的な形式で記述するためのデータモデルです。
IIIFの文脈では、以下のような用途でWeb Annotationが使われています。
- キャンバスへの画像の配置(Painting Annotation)
- 画像上へのテキスト注釈の付与
- Content Search APIの検索結果の表現
Web Annotationの採用により、IIIFのアノテーションは単なる独自フォーマットではなく、Web標準に基づいた汎用的なデータとして扱えるようになっています。
その他の関連技術
- HTTP/HTTPS: IIIFのすべてのAPIはHTTPベースのRESTful APIとして設計されています
- Dublin Core: メタデータの記述にDublin Core語彙が活用されています
- IIIF Change Discovery API: IIIFリソースの更新情報を配信するためのAPIで、大規模なアグリゲーション(集約)に利用されます
- IIIF Georeference Extension: 画像に地理情報を関連付ける拡張仕様
まとめ
本章では、IIIFの概念と全体像を概観しました。IIIFは単なる画像配信の仕様ではなく、Image API、Presentation API、Content Search API、Auth APIなどの複数のAPIと、それらを実装するビューア、イメージサーバ、ツール群から構成される包括的なエコシステムです。
JSON-LDやWeb Annotationといった既存のWeb標準技術の上に構築されていることで、Linked Dataとの親和性や長期的な持続可能性が確保されています。
次章からは、各APIの詳細に踏み込んでいきます。まずは、IIIFの根幹をなすImage APIの仕組みを学びましょう。