概要

IIIF Presentation API 3が普及しつつありますが、その仕様を理解しつつ、JSONファイルを直接作成することが難しく感じるようになりました。

そこで、以下のPythonライブラリを使用してみましたので、備忘録です。

https://github.com/iiif-prezi/iiif-prezi3

以下の記事で紹介した東寺百合文書WEBで公開されているデータのIIIFへの変換にあたり、本ライブラリを使用しています。

読みにくいもので恐縮ですが、ソースコードも以下のリポジトリで公開していますので、参考になりましたら幸いです。

https://github.com/nakamura196/toji_iiif

コレクションの作成

以下のようなコードにより、IIIFコレクションを作成できました。

iicoowmiopsipila.tofltmhr_eilvp)h)m]rhaftpcdair,o,e,iko.rt=beomtg=epwieifewveahderizo"liiilpitlfldiitfiniiin{=nddaadyaoaaiis"r(tf3o"ge=bg=pbrntii={soe_.=rDrseeseemgaffss(p(pcii=el=e=lau=__eeoacroigril=il"=ta[ppllstoeniieifsifTs=grrff.hlzfinci.ei.ee"eee..p,liif}tfhlfhxlt=zzrdae3g_/"i_of_otfe"iiiot"c.ps,opm.pm".xj33gchwtcrenreare,ata..hs."ioet=eptept/"KKt_d)onz/"zatzatheesdinfi3rigrigrtyy,ira.i3i3ei3eimVVrnsjg.cg.,b.,blaa}assCohPuHu"ll/mfo[oltrtot,uuie:n'll-oimieei((hletvoeoSSioeeecoinpnttfpnlct-d,a,rr/asptilegiistueioerennehrronfIIggt)esn.ttt((/,_.(j"eell3aas,mmaa/esuo((bbcxctneeoiio"lllsi_,==lt=f""e_FiARcoaetitklltgi=sdrhoTesitnr,.bs.uAu"jeiut,s)ntiodoovneLna"na"ltn,u=ge2'v=]asi.lefauluefIt=.Sosr__eiDllgEafhBn.tUgasGt)=t,erl"isjbeau"tNioonne)),)

iiif_prezi3.config.configs['helpers.auto_fields.AutoLang'].auto_langjaを与えることで、labelmetadataの言語フィールドがjaになりました。

{}""""}"]""]"]"]@itl,m,rp,h,icdyaeiroto"pbtgomen:ee"]a{}{}hv{}e{}m{}t"ljd,tipse":"aasda"xh:"t"eg:tt":"a"}"}"}"}:r"""}e"""}""]""}""tC{"l,vl,v"itl"itl,fl[il,t:po[:aaaa":dya:dyaoadayslblblh"pb"pbrn"bp":l[e"]u"]e"]u"]t[:ee"][:ee"]mg":e"]eh/eljejljejt"lj"ljaujlj"t/c"a"a"a"ap":"a":"ataa""a:tnt":":":":"sh:"h:""g"h:"pai:":":":":t":"t":":et:"":ko{A{{R{h/tA{tT{"t{M/an[t[[i[t/pg[pe[":p[a/m"tgtcsesxts/niu,rhpr:n:te[:1iiritse/t/"x//fiabs:a/"/,t/ef1u"/th,h/ns.9t/iyyhati6icvaatk"o.orekkmagnecuulmai"aogg"upttmoo,rihim..a/uvopp1pbenrr9"r.csee6eio.ff.soWmo.W.Wge/EmrkEkEintBogyByBtto"n/o"o"hajslttuti.ioobi_oc...oirellinignggo/i/s../3flejjt//isppocic///joieb""ininy,,_tfs/ie/e2ixss.ite/1f.tb//j/yjis3/pio/2/inc."f"o1,/,l/3lj/ep1c//t"miaonni.fjessotn."j,son",

iiif_prezi3.KeyValueString関数を使用することで、フィールドや値が配列として出力される点も有用かと思いました。

また、iiif_prezi3.ProviderItemを与えることにより、"type": "Agent",が自動的に設定される点も、ライブラリを使用する利点かと思います。

その他

マニフェストやキャンバスについても、同様の方法で作成することができました。

特に、キャンバスおよび画像のサイズの指定にあたっては、以下が参考になりました。

https://iiif-prezi.github.io/iiif-prezi3/recipes/0004-canvas-size/

まとめ

iiif-prezi3の利用にあたり、参考になりましたら幸いです。