🚀
Mirador 3でPresentation API v2のマニフェストが表示できない時の対処例
概要
以下のようなPresentation API v2のマニフェストファイルをMirador 3にロードした際、表示エラーが生じました。
以下、Mirador 3での表示です。
この原因と対処法について調べたので、共有します。
原因
以下のエラーメッセージが表示されていました。IIIF v2を入力しているにもかかわらず、v3と判断されているようでした。
Error: A IIIF v3 localized property value must have an array as the value for a given language.
at PropertyValue.ts:126:20
at Array.map (<anonymous>)
at t.parse (PropertyValue.ts:123:29)
at t.getLabel (ManifestResource.ts:35:28)
at canvases.js:162:12
at index.js:67:25
at h (defaultMemoize.js:123:20)
at index.js:81:40
at h (defaultMemoize.js:123:20)
at Function.mapToProps (OpenSeadragonViewer.js:39:12)
これは、以下のように、canvas
のlabel
がオブジェクトの形で記述されている際に発生するようでした。
canvases": [
{
"@id": "https://islamic-architecture.aa-ken.jp/omekas/iiif/2/monument1/canvas/p1",
"@type": "sc:Canvas",
"label": {
"type": "literal",
"property_id": 1,
"property_label": "Title",
"is_public": true,
"@value": "0001-01"
},
...
}
]
なお、上記の記述方法は、Presentation API ValidatorではOKでした。
対処法
以下のように、label
を単純な文字列にすることで、上記のエラーを回避できました。
canvases": [
{
"@id": "https://islamic-architecture.aa-ken.jp/omekas/iiif/2/monument1/canvas/p1",
"@type": "sc:Canvas",
"label": "0001-01",
...
}
]
以下、Mirador 3での表示例です。
まとめ
今回の原因となったlabel
がオブジェクトとして記述される現象は、Omeka SのIIIF Serverモジュールの特定のバージョンを使用している際に発生するようでした。最新版などに更新することで、今回のlabel
の修正も行われているようでした。
同様の問題でお困りの方の参考になりましたら幸いです。
Discussion