IIIFマニフェストの賞味法
- IIIFマニフェストの基本
- 間接記述としての注釈
- 注釈モデルの標準化
- 写本デジタル化の問題意識
- Empty Pages
- 共有カンバス
- IIIFと表現API
- JSON-LDとRDF
- IIIFコレクション
- マニフェストの組み合わせ
- コレクションの入れ子
- IIIFビューアとコレクション
- 複数機関にまたがるコレクション
- 慶応デジタルライブラリと京大貴重書コレクション
- 横断検索と動的コレクション生成
- テキスト注釈とSearch API
- Presentation API 2.1でのテキスト注釈
- Presentation APIのサービス
- Searchサービスの記述と働き
- Search APIサーバー
- くずし字OCRとSearch API
- 簡易Search APIサーバー
- IIIFマニフェストの応用
- 古銭のデータベース
- 貨幣の裏表を表示するカンバス
- TEIとIIIF (1)
- TEIとIIIF (2)
- 非IIIF対応ソースをIIIFビューアで利用する (1)
- 非IIIF対応ソースをIIIFビューアで利用する (2)
- 参照先
IIIFマニフェストの基本
間接記述としての注釈
- 直接プロパティでの記述
- 作品の解説→いつ誰が述べた解説か(メタプロパティ)を記述できない
- 間接的な記述によるメタプロパティ
- 関係をノード化し、主語を対象、目的語を内容とすることで、他のプロパティを追加できる
- 複数の記述を併合しても区別できる=ウェブでの協業に不可欠
- 関係ノードを「注釈」と捉えることで間接記述モデルを汎用化できる
注釈モデルの標準化
- WWWと注釈
- 2000年秋にW3CでAnnotea Projectがスタート
- 2009年には英米豪の大学や図書館を中心にOpen Annotation
- Web Annotation標準化
- 2017年にWeb Annotation Data Modelや語彙がW3C勧告に
- 注釈対象を
target
、内容をbody
とする間接記述モデル
写本デジタル化の問題意識
- 各大学や図書館の写本資料は
- それぞれがサイロ(相互運用性がない)
- アプリケーション個別開発(重複、高コスト)
- 一貫しないユーザ体験
- 写本デジタル化の相互運用の要件
- 画像と実物との関係を表現するモデル
- 異なる解像度や撮影条件など、一つのオブジェクトに対して複数の画像も
- 転写(翻刻)などのテキストと画像の関係を表現するモデル
- 画像やテキストなど構成要素の順序の表現方法
- 間違った順序で綴じられてしまった写本などの扱い
- 画像やテキストの表示(レンダリング)
- 注釈などの付与機能も含め、共同作業が可能な表示環境
- (R. Sandersonらの2011年論文から)
- 画像と実物との関係を表現するモデル
Empty Pages
- 古い写本の状態やデジタル化はさまざま:
- ページの一部が抜け落ちてしまっている
- 一つの写本がばらばらになって複数の機関で保有されている
- それぞれデジタル化の精度が異なる
- 対象の抽象化とデジタル・オブジェクト
- アイテムを表す空白のページ上にそのデジタル画像や転写テキストを重ねて表示する
- EmptyPages:2010年頃にスタンフォード大の写本デジタル化研究会などで提示されていたアイデア
- アイテムを表す空白のページ上にそのデジタル画像や転写テキストを重ねて表示する
共有カンバス
- 注釈モデルを利用したShared Canvas
- 空白ページをCanvasと見立て、そこに画像やテキストを描く
- 注釈モデル(Open Annotation)を用い、カンバスを注釈対象、画像やテキストをその注釈内容とする
- シーケンスとマニフェスト
Sequence
:オブジェクトの基本表示順をカンバスの順序付き配列として表現Range
:カンバス(およびその部分)をグループ化して並べ、入れ子を可能にすることで構造化目次を表現Manifest
:これらの構造(順序)情報と他のメタデータなどをまとめるための容れ物
IIIFと表現API
- 共有カンバスからIIIFへ
- 2011年12月のCNI会議でIIIFプロジェクトを発表
- SharedCanvasデータモデル(2012~2013)をベースに2013年9月にIIIFメタデータAPI 1.0
- 2014年5月のバージョン2.0でPresentation APIに名称変更
- 表現APIの役割
- 記述メタデータではなく表現メタデータ
- アプリケーション(ビューア)が画像などを表示するための情報提供法を標準化
- 書誌的なメタデータ(記述メタデータ)は意図していない
- 技術メタデータとしてのカンバス
- カンバスの領域情報(
width
、height
およびA/Vならduration
) - オブジェクトをカンバスに表示するための座標(A/V拡張なら時間)情報
- オブジェクトを取得するための情報(
resource
とservice
)
- カンバスの領域情報(
- 構造メタデータとしてのマニフェスト
- オブジェクトのデフォルト表示順序(
viewingDirection
)、表示方法(viewingHint
) - オブジェクトの論理的順序と階層(
structures
とRange
)
- オブジェクトのデフォルト表示順序(
- 記述メタデータではなく表現メタデータ
JSON-LDとRDF
- Canvasを記述するJSON構造
- JSONとして入れ子になるように、
Canvas
内にAnnotation
、その中にImage
- JSONとして入れ子になるように、
- JSON-LDコンテクストによるRDFグラフ
- IIIFのJSONを記述する時は
@context
を用いてJSON-LDとする - コンテクストを用いてJSONからRDFグラフを抽出→Web Annotationモデルに従ったグラフが得られる
- IIIF以外のWeb Annotation準拠モデルのデータと組み合わせることができる
- IIIFのJSONを記述する時は
IIIFコレクション
マニフェストの組み合わせ
- マニフェストをグループ化する
sc:Collection
タイプのオブジェクトに、manifests
プロパティで複数マニフェストを列挙する{ "@context": "http://iiif.io/api/presentation/2/context.json", "@id": "http://example.org/iiif/collection/ninjaldl", "@type": "
sc:Collection
", "label": "徒然草(寛文七年版)", "manifests
": [ { "@type": "sc:Manifest
", "@id": "http://dglb01.ninjal.ac.jp/ninjaldl/turezure/001/manifest.json", "label": "上巻" }, ... ] }
コレクションの入れ子
- コレクション自体をグループ化する
collections
プロパティでコレクションの入れ子を記述できる{ ... "@type": "
sc:Collection
", "collections
": [ { "@id": "http://example.org/iiif/collection/ninjald", "@type": "sc:Collection
", "label": "徒然草(寛文七年版)", "manifests
": [ { "@type": "sc:Manifest
", ... }, ... ] }, ... ] }
IIIFビューアとコレクション
- コレクションの表現方法
- 現状では標準的な実装はないが、Universal Viewerは階層目次として表現
- シンプルな入れ子構造なので処理は簡単
- サムネイルを用いてマニフェストギャラリーのような表現も可能
複数機関にまたがるコレクション
- リソース所在地と独立したウェブ注釈
- Web Annotationでは注釈対象、内容ともにウェブ上のどこにあっても構わない
- IIIFマニフェストでも、切り抜かれた写本画像を1つのカンバスに重ねたりできる
- もちろんコレクションでグループ化するマニフェストは複数機関にまたがって構わない
- 個々のアイテム(マニフェスト)はそれぞれの機関で管理しながら、共通点のあるものをグループ化する
慶応デジタルライブラリと京大貴重書コレクション
- それぞれのIIIFコレクション化
- 多数のオブジェクトを階層コレクションに整理する
- 慶應義塾大学メディアセンター デジタルコレクション
- 京都大学貴重資料デジタルアーカイブ
- 富士川文庫
- 慶応と京大の「所蔵分を合わせるとその全貌が明らかになるといわれています」
- それぞれの分類や整理の方法が異なり、単純なグループ化は難しい?
横断検索と動的コレクション生成
- 横断検索結果をIIIFコレクションとする
- 両デジタルコレクションの検索ページに同じキーワードでクエリ
- 検索結果ページをスクレイピングしてマニフェストURIやラベルを取得
- IIIFコレクションを合成する(例えば「講義」の検索結果)
- 条件設定できない、結果が多いと複数ページなど、スクレイピングでは限界
- OPAC検索結果からIIIFマニフェストが辿れるAPIなど
テキスト注釈とSearch API
Presentation API 2.1でのテキスト注釈
- テキスト注釈は外部リソースとして
sc:Canvas
のデフォルト注釈はimages
=画像のみ- それ以外のリソースでカンバスを注釈するときは
otherContent
から参照- API 3では両者を統一する予定
- 注釈リスト
otherContent
で参照するリソースはsc:AnnotationList
resources
プロパティの値として注釈(oa:Annotation
)のリストを持つ- 注釈の
resouce
の値にcnt:ContentAsText
を持ち、注釈文字列をchars
で記述する { "@type":"
sc:AnnotationList
", ... "resources
":[ { "@type":"oa:Annotation
", "motivation":"sc:painting", "resource":{ "@type":"cnt:ContentAsText
", "chars
":"踊っている男性", }, "on
":"http://www2.dhii.jp/loris/NIJL0008/NA4-0644/p5#xywh=2885,1696,743,1232
" }, ... ] }
Presentation APIのサービス
- serviceプロパティ
- リソースに対する利用可能なサービスを関連付ける
profile
でサービスの種類、@id
でサービス提供先URIを示す- 画像がIIIF Image API対応サーバーで提供される場合
"images": [{ "@type": "oa:Annotation", ... "resource": { "@id": "http://iiif.lib.keio.ac.jp/iiif/NRE/110X-625-1/img1", ... "
service
": { "@id": "http://iiif.lib.keio.ac.jp/iipsrv/NRE/110X-625-1/tif/001.tif
", "@context": "http://iiif.io/api/image/2/context.json", "profile
": "http://iiif.io/api/image/2/level1.json" } } }]
- Manifestレベルのサービス
- マニフェスト内のリソース全体に適用されるサービスは
sc:Manifest
のプロパティとして記述 - 認証(Authentication API)、コンテンツ検索(Search API)など
- マニフェスト内のリソース全体に適用されるサービスは
Searchサービスの記述と働き
- Manifestのserviceプロパティ
"service": { "@context": "http://iiif.io/api/search/0/context.json", "
@id
": "https://data.ucd.ie/api/img/search/ucdlib:43138
", "profile
": "http://iiif.io/api/search/0/search
", "label": "Search within this manifest" }
- Search APIを使った検索
@id
プロパティのURIに、?q={検索語}
の形でリクエストを送る- 検索語のみつかったカンバスとその座標が返される
- ビューアはAnnotationを用いて検索結果の座標をハイライトするなど
Search APIサーバー
くずし字OCRとSearch API
- 慶応奈良絵本コレクションの浦島太郎を例に
- くずし字OCRのデータ→現在はPDFで検索可能
簡易Search APIサーバー
- 浦島太郎のOCRデータから簡易サーバー
- くずし字OCRの3ページ分のデータを変換
- マニフェストに
service
を加え、Search API対応ビューアで検索 - 同じデータから全文翻刻を外部注釈とすることも
IIIFマニフェストの応用
古銭のデータベース
- 欧米の機関が収集したマケドニア貨幣の目録データベース
- PELLAプロジェクトで位置情報なども加えたデータベースを構築
- 貨幣のデジタル画像は各所蔵機関のIIIFを利用
貨幣の裏表を表示するカンバス
- 裏表の画像をセットにしてカンバスに表示する
- 裏表それぞれが独立した画像(単純には2カンバス必要)
Canvas
のimages
配列に2つの画像(Annotation)を持たせ、各on
で表示座標を指定する{ "@type": "sc:Canvas", "@id": "
http://numismatics.org/collection/1944.100.28459
", ... "images": [ { "@id": "http://images.numismatics.org/...1944.100.28459.obv.noscale.jpg
", "@type": "oa:Annotation", ... "on": "http://numismatics.org/collection/1944.100.28459
#xywh=0,0,2498,2346
" }, { "@id": "http://images.numismatics.org/...1944.100.28459.rev.noscale.jpg
", "@type": "oa:Annotation", ... "on": "http://numismatics.org/collection/1944.100.28459
#xywh=2498,0,2339,2496
", } ] }- 例:Price.112のマニフェスト表示(M.J.Priceは古銭の研究者)
TEIとIIIF (1)
- TEIで1ページ分画像の注釈を記述
<
facsimile
xml:id="nnan0-187715_X006" xmlns="http://www.tei-c.org/ns/1.0"> <media url="http://images.numismatics.org/archivesimages%2Farchive%2F0-187715_X006.jpg" n="Loose 1" mimeType="image/jpeg" type="IIIFService" height="2212px" width="1679px" /> <surface
xml:id="aho40v9vbhq7" ulx="1182" uly="54" lrx="1540" lry="155"> <desc><ref target="http://coinhoards.org/id/igch1516">IGCH 1516</ref>
</desc> </surface> ... </facsimile>
- IIIFの外部注釈に変換
{ "@type": "
oa:Annotation
", "motiviation": "sc:painting", "resource": { "@type": "cnt:ContentAsText", "chars": "<a href='http://coinhoards.org/id/igch1516'>IGCH 1516</a>
" }, "on": "http://numismatics.org/.../canvas/nnan187715_0015#xywh=812,141,731,181" }
TEIとIIIF (2)
- 書誌データとIIIF画像を並べて表示
-
- 図はEdward T. Newellの埋蔵ノートの詳細ページ
- IIIFマニフェストは他のビューアでも表示できる
-
非IIIF対応ソースをIIIFビューアで利用する (1)
- JPEG画像のみのソースによるIIIFマニフェスト
- カンバスの画像リソースはIIIF画像サービス対応でなくても良い
- 仕様は"If a IIIF Image service is available..."とあるのみ
- Mirador、Universal Viewerもようやく単純JPEG画像に対応(ただし
thumbnail
が必要) { "@type": "sc:Canvas", "@id": ".../canvas/1", ... "
images
": [{ "@type": "oa:Annotation", "@id": ".../gks3466_0053/annot", "motivation": "sc:painting", "resource": { "@type": "dctypes:Image", "@id": "http://img.kb.dk/ha/manus/gks3466/gks3466_0053v.jpg
" }, "on": ".../canvas/1" }], "thumbnail
": {"@id": "http://img.kb.dk/ha/manus/gks3466/gks3466_0053.jpg
"} }- 例:デンマーク王立図書館蔵の動物寓意譚 (CC-BY-NC-ND)から生成したマニフェストを表示
- カンバスの画像リソースはIIIF画像サービス対応でなくても良い
非IIIF対応ソースをIIIFビューアで利用する (2)
- Wikipedia/WikimediaとIIIF
- ZoomViewerで表示した画像のタイルをキャッシュ→IIIF画像サービスのinfo.jsonを提供
- Wikimediaラボにおいて以前から検討されてきたIIIFサポートの方法
- キャッシュがない(タイルがまだ生成されていない)場合は、新たにタイルを生成するので、時間がかかる(タイムアウトになる場合がある)
- 例:ブリューゲルのバベルの塔をImage Annotatorで表示
- ZoomViewerで表示した画像のタイルをキャッシュ→IIIF画像サービスのinfo.jsonを提供
- Wikipediaページからの動的マニフェスト生成
- APIを使って画像情報を取得すれば、Wikipediaページに含まれる画像を集めて単純JPEGによるIIIFマニフェストを生成できる
- Tom Craneのwikipedia-to-iiif
- 例:英語版ブリューゲルのページから抽出したマニフェストをImage Annotatorで表示
参照先
- 参照したリソース
- Annotea Project
<https://www.w3.org/2001/Annotea/> - Open Annotation Collaborations
<http://www.openannotation.org/> - Web Annotation Data Model, 2017-02-23, W3C Reccomendation
<https://www.w3.org/TR/annotation-model/> - SharedCanvas: a collaborative model for medieval manuscript layout dissemination, by Robert Sanderson, et al., 2011, Proceedings of the 11th annual international ACM/IEEE joint conference on Digital libraries
<https://doi.org/10.1145/1998076.1998111> - Overview - Manuscript Studies in an Interoperable Digital Environment, Stanford University(当時の活動の概観)
<https://web.stanford.edu/group/dmstech/cgi-bin/drupal/node/11> - The International Image Interoperability Framework (IIIF): Laying the Foundation for Common Services, Integrated Resources and a Marketplace of Tools for Scholars Worldwide
<https://www.cni.org/topics/information-access-retrieval/international-image-interoperability-framework> - IIIF Metadata API, 2013-09-16, version 1.0
<http://iiif.io/api/metadata/1.0/> - JSON-LD 1.0 - A JSON-based Serialization for Linked Data, 2014-01-16, W3C Recommendation
<https://www.w3.org/TR/json-ld/> - hOCR - OCR Workflow and Output embedded in HTML
<http://kba.cloud/hocr-spec/1.2/> - ALTO: Technical Metadata for Layout and Text Objects
<https://www.loc.gov/standards/alto/> - PELLA
<http://numismatics.org/pella/> - Edward T. Newellの埋蔵ノート
<http://numismatics.org/archives/ark:/53695/nnan187715> - IIIF Presentation API 2.1.1 §5.4. Image Resources
<http://iiif.io/api/presentation/2.1/#image-resources> - GKS 3466 8o: Bestiaire, Det Kongelige Bibliotek
<http://www.kb.dk/permalink/2006/manus/225/eng/> - ZoomViewer
<https://commons.wikimedia.org/wiki/Help:Gadget-ZoomViewer> - T89552 Implement International Image Interoperability Framework (IIIF) prototype service on Wikimedia labs
<https://phabricator.wikimedia.org/T89552> - wikipedia-to-iiif, by Tom Crane
<https://github.com/tomcrane/wikipedia-to-iiif>
- Annotea Project