Omeka SのIIIF Serverモジュールを使用した階層構造を持つ目次の記述
概要
Omeka SのIIIF Serverモジュールを使用し、階層構造を持つ目次の記述方法について紹介します。
マニュアル
やや複雑な記述になっていますが、以下に説明があります。
単純な目次
「Toyo Bunko Media Repository」で公開されている以下を例とします。
以下のように、{RangeのID},{Rangeの名前},{Canvasのインデックス}を指定します。
r1,延享、寛延、宝暦,1
r2,明和,25
r3,安永一,55
r4,安永二,79
r5,天明一,110
r6,天明二,142
r7,寛政一,177
r8,寛政二,218
r9,享和,255
r10,文化一,279
r11,文化、文政、二,313
これにより、以下のように目次が表示されます。
階層構造を持つ目次
以下を例とします。
階層構造を持つ目次を記述する場合には、以下のように4列でデータを用意します。
r0, 全体,-, r1;r2;r29;r55;r73
r1, 目次, 4-8, -
r2, 第一、 蒙疆政府ノ司法制度…一頁, -, r3;r4;r9;r14;r15
r3, 一、 司法制度ノ沿革…一, 8-10, -
r4, 二、 司法關係機關…四, -, r5;r6;r7;r8
r5, (一) 司法部…四, 10, -
r6, (二) 法院…四, 10-11, -
r7, (三) 縣旗司法機關…六, 11, -
r8, (四) 行刑機關…七, 11-12, -
r9, 三、 司法事務…八, -, r10;r11;r12;r13
r10, (一) 刑事事件…八, 12, -
r11, (二) 民事事件…九, 12, -
r12, (三) 行刑事務…九, 12-14, -
r13, (四) 登記…一二, 14-15, -
r14, 四、 司法經費…一四, 15-16, -
4列目に子要素となるRangeのIDを指定します。インデントを含めると、以下のような形になります。
r0, 全体,-, r1;r2;r29;r55;r73
r1, 目次, 4-8, -
r2, 第一、 蒙疆政府ノ司法制度…一頁, -, r3;r4;r9;r14;r15
r3, 一、 司法制度ノ沿革…一, 8-10, -
r4, 二、 司法關係機關…四, -, r5;r6;r7;r8
r5, (一) 司法部…四, 10, -
r6, (二) 法院…四, 10-11, -
r7, (三) 縣旗司法機關…六, 11, -
r8, (四) 行刑機關…七, 11-12, -
r9, 三、 司法事務…八, -, r10;r11;r12;r13
r10, (一) 刑事事件…八, 12, -
r11, (二) 民事事件…九, 12, -
r12, (三) 行刑事務…九, 12-14, -
r13, (四) 登記…一二, 14-15, -
r14, 四、 司法經費…一四, 15-16, -
これにより、以下のように目次の階層が表示されます。
IIIFマニフェストファイルに作成される目次のデータは以下です。注意点として、viewingHint
にtop
が与えられているはじめのRange「全体」については、ビューアでは表示されていません。
{
"structures": [
{
"@id": "https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r0",
"@type": "sc:Range",
"label": "全体",
"viewingHint": "top",
"ranges": [
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r1",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r2",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r29",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r55",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r73"
]
},
{
"@id": "https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r1",
"@type": "sc:Range",
"label": "目次",
"canvases": [
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/canvas/p4",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/canvas/p5",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/canvas/p6",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/canvas/p7",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/canvas/p8"
]
},
{
"@id": "https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r2",
"@type": "sc:Range",
"label": "第一、 蒙疆政府ノ司法制度…一頁",
"ranges": [
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r3",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r4",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r9",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r14",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r15"
]
},
{
"@id": "https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r3",
"@type": "sc:Range",
"label": "一、 司法制度ノ沿革…一",
"canvases": [
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/canvas/p8",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/canvas/p9",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/canvas/p10"
]
},
{
"@id": "https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r4",
"@type": "sc:Range",
"label": "二、 司法關係機關…四",
"ranges": [
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r5",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r6",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r7",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r8"
]
},
{
"@id": "https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r5",
"@type": "sc:Range",
"label": "(一) 司法部…四",
"canvases": [
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/canvas/p10"
]
},
{
"@id": "https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/range/r6",
"@type": "sc:Range",
"label": "(二) 法院…四",
"canvases": [
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/canvas/p10",
"https://app.toyobunko-lab.jp/iiif/2/4797b8ca-530f-8aae-f252-7911ad64039b/canvas/p11"
]
}
]
}
注意点
上述しましたが、1行目に指定した目次については、viewingHint
にtop
が付与され、ビューア上は表示されません。
そのため、以下の例のように、1行目に全体を示す行を追加する必要があります。
r0, 全体,-, r1;r2;r29;r55;r73
以前のIIIFサーバモジュールでは、以下のように記載するだけで問題ありませんでしたが、どこかのタイミングのアップデートにより、1行目に対する処理が変更になったようです。
r1, 目次, 4-8
r2, 第一、 蒙疆政府ノ司法制度…一頁,r3;r4;r9;r14;r15
r3, 一、 司法制度ノ沿革…一, 8-10
r4, 二、 司法關係機關…四,r5;r6;r7;r8
r5, (一) 司法部…四,10
同様に、上記の例では3列となっていますが、当該アップデートにより、以下のような4列のデータが求められるようになりました。
{RangeのID},{Rangeの名前},{Canvasのインデックス},{下位のRangeのID}
そのため、旧式(3列)の記述では、3列目にCanvasのインデックスを指定しているr1,r3,r5は正しく表示されるが、3列目に下位のRangeのIDを指定しているr2とr4は正しく表示されない、という不具合が生じていました。
まとめ
2025年6月時点で最新のIIIFサーバモジュールを使用して階層構造を持つ目次を記述する際、1行目の取り扱いと、4列でデータを記述する点に注意が必要です。
Omeka SのIIIFサーバモジュールの活用にあたり、参考になりましたら幸いです。
Discussion