基本はカンバス

  • 共有カンバス(Shared Canvas)
    • カンバス上に画像などを「描く」(motivation:painting)
    • 縦横のサイズ(widthheight)=アスペクト比を持つ
    • アスペクト比は画像の縦横比と一致させる → 不正確だと不具合の元
    • 多くは1カンバスに1枚の画像だが、複数画像でもカンバスの一部にでも
    • テキスト注釈はotherContentとして外部から与える(v2の場合)
    • 図1:

注釈としてのカンバス

  • Web Annotationモデル
    • カンバス注釈対象(target)、画像、テキスト=注釈内容(body)
    • 図2:
    • v2のJSON-LD構文では、対象(target)をon、内容(body)をresourceプロパティ値として記述する
      • v3ではtargetbody
    • カンバスの一部をターゲットにするときは、領域の座標(xywh)をメディアフラグメントを用いて表現する

カンバスの拡張

  • v3のカンバス
    • 縦横軸に時間軸(duration)を追加
    • 音声や動画をカンバス上に「描く」。時間軸上で同期させる
    • 図3:
    • テキスト注釈も直接記述できる(別ファイルにotherContentでリンクしなくてよい)

マニフェストの役割

  • カンバスの並びと構造
    • sequences:リソースとしてのカンバスの並び(物理的順序)
    • structures:構造化目次(論理的順序)
    • 並べるためのメタデータ(後述)
  • 人間向けに表示する説明情報
    • labeldescriptionattribution以外のテキストは汎用のmetadata
    • 機械可読なプロパティではなく、メタデータの項目名と値の組合せ
    • 多言語を意識 → v3でますます重視される
  • 他のリソースとの関係
    • seeAlso:機械可読な構造的メタデータ記述
    • related:人間向けの目録詳細など情報ページ
      • metadataでも記述は可能(→v3では廃止との案も?)
    • rendering:ビューアなど表示ページ/PDF版などDL用URL
    • service:Search APIなどの連携サービス

カンバスの並べ方 (1)

  • 表示方向:viewingDirection
    • ページ送りの方向を指定する。デフォルトはleft-to-right
    • 和書の場合right-to-leftの指定を忘れずに
    • 図4:
    • 最新版のビューアはほぼright-to-leftにも対応

カンバスの並べ方 (2)

  • 見開きと連続:viewingHint
    • pagedとすると、冊子体の見開きページとして表示(1頁目は単独、以下2&3頁目、4&5頁目...と2つのカンバスを並べる)
    • 図5:
    • continuousとすると、カンバスを連続して表示(巻物の場合など)
    • 指定しなければindividuals(各ページ単独)として扱われる

カンバスの並べ方 (3)

  • viewingHintは要注意
    • 画像が見開きページなのに、仕様書の例をそのまま使ってpagedとするとおかしなことに
    • カンバスにnon-pagedを指定すると例外処理(多くのビューアが対応していない)
    • 図6:
    • viewingDirectionが正しくないとやはり問題を生じる

マニフェスト設計のヒント

  • アクセシブルなマニフェスト
    • 単一のビューアに依存しない
    • ラベルだけでも多言語化する
    • 機械可読メタデータにseeAlsoでリンクする
  • 単独でも利用できるカンバス
    • @idのURIからカンバスを取得できるようにし、外部アプリケーションがカンバスを直接利用可能にする
      • 単独出力するときは@contextを忘れずに
    • 例えばTEIのページからリンクし翻刻テキストと画像を同時表示など
    • Curation APIもマニフェストを辿らずに利用できるように
    • カンバスにも意味のあるラベルを
  • v3への移行を見据えた設計
    • 構文やプロパティ名が大きく変わる(@ididsequencesitems)など、v2と互換性のない変更が導入される
      • 草案段階のJSON-LD 1.1の機能も取り入れたりする。2018年春のワシントン会議頃の確定を目標
      • α版の仕様書は不正確かつ未編集(2.1のまま)部分が多いので鵜呑みにしないこと
    • カンバスやマニフェストを固定的に作り込まず、データと出力テンプレートを分離して