Google Colabを用いたNDL古典籍OCRチュートリアルの不具合の修正および機能追加を行いました。

概要 以下の記事で紹介している、Google Colabを用いたNDL"古典籍"OCRアプリのチュートリアルを作成しています。 今回、以下の更新を行いました。 利用条件の追加 不具合の修正 IIIF Presentation API v3のマニフェストファイルの入力への対応 更新したノートブックは、これまでと同じ以下のURLでアクセスいただけます。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/NDL古典籍OCRの実行例.ipynb 利用条件の追加 ノートブック自体はCC0でご利用ください。ただし、「NDL古典籍OCRアプリケーション」は国立国会図書館がCC BY 4.0ライセンスで公開するものですので、クレジットの表示をお願いいたします。また、OCR適用対象の資料の利用条件などについても、それぞれご確認ください。 不具合の修正 OCR結果が出力されない不具合が発生していました。また、ライブラリのインストールにも長い時間がかかるようになっていました。これらの2点を修正しています。 IIIF Presentation API v3のマニフェストファイルの入力への対応 これまで、IIIF Presentation API v2のマニフェストファイルの入力のみに対応していました。 今回、v3への対応を行いました。この検証にあたり、以下の記事で紹介したIIIF Presentation API v3のマニフェストファイルを使用しました。 まとめ この間、不具合が発生しており申し訳ありません。NDL古典籍OCRの活用に役立つことができれば幸いです。

2023年4月12日 · 1 分 · Nakamura

Omeka Sを用いて、IIIF Presentation API v3のマニフェストファイルを作成する

概要 IIIF Presentation API v3のマニフェストファイルを作成する必要がありましたので、Omeka Sを用いて作成する方法について紹介します。 Omeka SとIIIF Serverモジュールのインストール 以下などを参考にインストールしてください。 https://zenn.dev/nakamura196/books/f4f87f9730e12e Omeka Sでのアイテム作成 今回は国立国会図書館で公開されている、以下の画像を対象にします。 https://dl.ndl.go.jp/api/iiif/2585098/R0000003/full/full/0/default.jpg アイテムの新規作成を行い、適当なタイトルを与えます。 次に、「メディア」タブを選択して、続けて、画面右のメニューで「URL」を選択します。そして、「URL」に画像のURLを入力します。 そして、画面右上の「追加」ボタンをクリックして、アイテムを登録します。 IIIFマニフェスト 今回は、https://omekas.aws.ldas.jp/omeka4/というサイトに対してアイテムを作成し、Omekaの内部IDとして19が与えられました。 v2 このとき、以下のURLでIIIF Presentation API v2のマニフェストファイルにアクセスできます。 https://omekas.aws.ldas.jp/omeka4/iiif/19/manifest またはAPIのバージョン/2を追加して、以下のURLでもアクセスできます。 https://omekas.aws.ldas.jp/omeka4/iiif/2/19/manifest v3 上記の/2となっている箇所を/3に変更することで、IIIF Presentation API v3のマニフェストファイルにアクセスできます。 https://omekas.aws.ldas.jp/omeka4/iiif/3/19/manifest または、IIIF Serverモジュールの設定画面において、デフォルトのバージョンを3に変更することで、バージョンを指定しない場合に、v3のマニフェストファイルが生成されます。 まとめ IIIF Presentation API v3(および Image API v3)の生成において、参考になりました幸いです。

2023年4月12日 · 1 分 · Nakamura

IIIFを中心としたデジタルアーカイブ関連ツールを作成しました。

概要 IIIFを中心としたデジタルアーカイブ関連ツールを作成しました。以下のURLからお試しいただけます。 https://nakamura196.github.io/viewer/ 現在、以下の2つの機能を提供しています。 Mirador 3による画像比較 コマ数の指定ツール Mirador 3による画像比較 https://nakamura196.github.io/viewer/input 比較したいマニフェストファイルのURLやCanvasのURIを指定します。例などをお試しください。 以下のように、画像を比較することができます。 コマ数の指定ツール https://nakamura196.github.io/viewer/canvas IIIF対応のビューアにおいて、{url}?manifest={manifest}&canvas={canvas}のような形でコマ数を指定することが多いです。 ただこのcanvasのURIを取得するのが難しい場合があるため、マニフェストファイルとコマ数を指定すると、canvasのURIを自動取得するツールを作成しました。 必要項目を入力して「URLを作成」ボタンをクリックすると、canvasのURIを含むURLが表示されます。わかりにくいと思いますので、画面下部の「例」などをお試しください。 まとめ IIIF Presentation APIのv2のみへの対応ですが、お役に立ちましたら幸いです。

2023年4月6日 · 1 分 · Nakamura

IIIF Curation Viewerのアノテーションの色を変更する

概要 IIIF Curation Viewerで付与したアノテーションの色を変更したい、というご要望をいただいたので、その方法の一例を紹介します。 アノテーションのマーカーの種類に関する説明は以下などにまとめられています。 http://codh.rois.ac.jp/software/iiif-curation-viewer/annotation.html#マーカーの種類 JSONデータを手動または機械的に修正して実現することも可能ですが、今回はGUIを使った変更方法をご紹介します。 動画 作業の流れを動画にしました。参考にしてください。『百鬼夜行図』(東京大学総合図書館所蔵)を使用しています。 https://www.youtube.com/watch?v=fbfdQVxHTgs 作業内容 IIIF Curation Viewerでアノテーションを付与する この部分までは、以下の記事などを参考に進めてください。 https://zenn.dev/nakamura196/books/f4f87f9730e12e 結果、以下のように、青色の矩形でアノテーションが表示されます。この矩形の色を変更してみます。 独自ツールを用いた編集 矩形の色の変更にあたり、独自のツールを作成しました。以下のURLから編集画面にアクセスできます。 https://ndl-ocr.vercel.app/icv Curation URIを入力すると、以下のような編集画面に遷移します。 https://ndl-ocr.vercel.app/icv/editor?curation=https://mp.ex.nii.ac.jp/api/curation/json/bfb7d80e-4e51-44fb-97d2-94e7c5acb2fd まず、「1. ダウンロード」を押して、編集前のデータをローカルにダウンロードしてください。念の為、以後の作業前のデータをバックアップしておきます。 次に、動画を参考に、以下のように、ColorやCharsを編集します。 そして、「3. コピー」を押して、編集内容のjsonデータをコピーします。 あとは、動画を参考に、IIIF Curation Editorを開き、JSONデータを更新し、IIIF Curation Viewerのアノテーションモードで変更内容を確認します。以下のように、矩形に色が付き、charsに指定した文字列が合わせて表示されます。 まとめ IIIF Curation Viewerのアノテーションモードにおいて、矩形の色などを変更されたい場合の参考になりましたら幸いです。

2023年3月28日 · 1 分 · Nakamura

Headless CMSを使ってIIIFマニフェストファイルを作成する

概要 Headless CMSの学習のため、CMSに登録した情報からIIIFマニフェストを生成する試みを行いました。 以下がその結果です。(といっても、以下のアプリからはサーバ側の処理内容は見えないです。) https://iiif-headless-cms.vercel.app/ 本記事は上記の取り組みの備忘録です。 Contentful https://www.contentful.com/ 以下のようなiiifというContent modelを作成しました。画像データ(url, width, height)の紐付けには、フィールド「JSON object」と「Reference」が使用できそうでしたが、ここでは「Reference」を選択し、画像データの情報を管理するimageというContent modelを別途作成しました。 IIIFマニフェストの形式に変換して返却するAPIについては、Nuxt3を用いて作成しました。 https://github.com/nakamura196/iiif-headless-cms/blob/main/server/api/iiif/contentful/[id]/manifest.ts 以下のライブラリを使用することで、簡単に接続することができました。 https://www.npmjs.com/package/contentful microCMS https://microcms.io/ microCMSにおいても同様のスキーマ作成を行いました。 以下のような画像データを格納するカスタムフィールドを作成しました。 このカスタムフィールドを繰り返しありの形でiiifスキーマに追加することで、以下のように、画像に関する情報を格納できるようになりました。 スキーマをエクスポートしたデータは以下です。 { } " ] " ] a , c p u i s F { } { } t { } i , o e m l F d " " " " " " " " " ] i " " " " ] " ] " " s i f n k i f n k c e c f n f , p , u v " d i a i s i a i u l r i a i o p i : V e m n U e m n s d e e m e s d e a l e d n l e d t " s a l e l { } { } { } i [ ] a w [ l d " " i d " " o 2 " t d " d , , t t e u I : : q I : : m 0 : e I : s i e r e d u d F 2 d d " o d G " " " " e " " " i 3 [ A " " : " " " " " " " " " " " " n " " " A r : : ラ t " : 画 r e - t : i i f n k i f n k i f n k " Y k S t o ベ e : 像 e l 0 " i [ d i a i d i a i d i a i : 1 S p " u " " ル x " " p d 2 : " i V e m n V e m n V e m n B 9 L : p Z l " t f i , e C - i f a l e d a l e d a l e d [ 3 a h " R a , " a m a r 0 " i 画 l d " " l d " " l d " " C f B " : d b , l a t e 3 2 i 像 u I : : u I : : u I : : _ B E 2 e e s g e a T 0 f に e d e d e d t R a 0 " X l e e r t 0 2 _ 関 " " " " " " " " " " " " C R p 2 H x " " " e 0 3 i す : : U t : : 幅 n : : 高 n 1 H V 3 7 i , , , d : - m る R e " u さ u c r h - Y W A 4 0 a フ " " L x " " , m " " " m " " " 0 " O t 2 2 g ィ Y u " t k w b S h , b , , 2 B L : - e ー 1 r , " S i e p e e - " i 0 0 " ル B l 9 d r L i r 0 , s 8 3 , ド 3 " a t " h g " 3 t . T " C , f h B h T " 1 0 , _ B " E t 0 : 1 0 t R , a " 0 8 : C R p , : [ Z 4 1 H V 4 " 2 c r h 5 : " " " : 0 , , , 5 8 0 . . 1 4 1 2 8 6 Z Z " " , , IIIFマニフェストの形式に変換する処理は以下です。 ...

2023年2月3日 · 4 分 · Nakamura

IIIF Image API level 0による画像公開方法

概要 IIIF Image API level 0は、事前に作成した静的なタイル画像を用いて画像配信を行います。これにより、GitHub PagesやAmazon S3といった静的ファイルのホスティングサービスのみでの画像公開が可能となります。一方、任意の範囲の画像切り出しができないといった欠点も挙げられます。 本記事は、IIIF Image API level 0を用いた画像公開の一例について紹介します。 ツール 以下のノートブックでお試しいただけます。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/IIIF_Image_API_静的ファイル作成ツール.ipynb 本ノートブックは、以下のスクリプトを参考にしています。 https://github.com/zimeon/iiif/blob/main/iiif_static.py 公開例 GitHub Pagesで公開するタイル画像を表示している例です。 https://www.kanzaki.com/works/2016/pub/image-annotator?u=https://nakamura196.github.io/iiif_static/files/tile/kunshujo/info.json まとめ 静的なファイルのみでIIIF Image API(のlevel 0)に対応する方法について紹介しました。 本手法の利点と欠点を考慮したうえで、ご活用いただけますと幸いです。

2023年1月30日 · 1 分 · Nakamura

IIIF Presentation Validatorのローカル環境で利用方法

概要 IIIF Presentation Validatorは、その名の通り、IIIFプレゼンテーションAPIの検証を行うためのツールです。 https://presentation-validator.iiif.io/ 以下の記事で、その使い方を説明しています。 今回、以下の記事で紹介するIIIF Presentation API v3に対応したマニフェストファイルの作成にあたり、ローカル環境での検証が必要になりました。 そこで、本ツールのローカル環境へのインストールを行いましたので、その備忘録です。 インストールの方法 以下に説明がありますが、Step oneを実行するとうまくいきませんでした。(こちらのIssueも上がっていました。) https://github.com/IIIF/presentation-validator#local-installation そこで少し方法を変えて、以下のように実行することで、ローカル環境でうまく実行できました。 g c p p i d i y t p t p h c r i o l e n n o s s n e t i e n a i t l i h a l f t t - t i - p p o r r s n e : - r s / e e / a q n g l u t i i i a t d r t h a e i u t m o b o e n . r n - c t v o s a m . l / t i I x d I t a I t F o / r p . r p e y s e n t a t i o n - v a l i d a t o r . g i t 上記により、localhost:8080 で本ツールが起動します。 ...

2023年1月25日 · 3 分 · Nakamura

画像とIIIFマニフェストをipfsに追加してみる

概要 以下のツイートを参考に、画像とIIIFマニフェストをipfsに追加してみました。 https://twitter.com/edsilv/status/1400221815369355267 ipfsへの追加については、上記のツイートでも言及されているFleekを使用しました。 https://fleek.co/ Fleekの使い方は以下のサイトが参考になりました。 https://i-407.com/blog/m10/ ソースコード ソースコードは以下です。 https://github.com/nakamura196/fleek_test 手順 画像のアップロード まず、上記のリポジトリに以下の画像をアップロードしました。 https://github.com/nakamura196/fleek_test/blob/main/kunshujo_400.jpg 先のサイトを参考に、本リポジトリをfleekに接続しました。その結果、以下のURLでアクセスできました。 https://ipfs.io/ipfs/QmbZekG5x834rwGKVZntBefkbNfL5auH171m4c26TZmCAo/kunshujo_400.jpg 参考 またIPFSのデスクトップアプリをダウンロードして、「QmbZekG5x834rwGKVZntBefkbNfL5auH171m4c26TZmCAo」を入力したところ、以下のように表示することができました。 さらに、以下のGoogle Chromeの拡張機能をインストールしました。 https://chrome.google.com/webstore/detail/ipfs-companion/nibjojkomfdiaoajekhjakgkdhaomnch 上記のデスクトップアプリを起動した状態で、先のURL(https://ipfs.io/ipfs/…)を入力すると、以下のURLに変換されました。 http://bafybeigepsc4mwgbur7y7tao5v26oeqgi3bkial2rrbuudlaf3z43iyquq.ipfs.localhost:8080/kunshujo_400.jpg マニフェストファイルのアップロード 次にマニフェストファイルを作成します。以下のようなマニフェストファイルを作成しました。 { } " " " " " " " ] " ] @ @ @ a d l m , s c i t t e a e e o d y t s b t q n " p r c e a { } u { } t : e i r l d e e " b i " a n x " : u p : t c t h t t a " " e " " " ] " t " i i " " l v s @ @ c : t s o o M : a a " i t a p c n n y b l : d y n " s : " " [ e u " p v { } h : M : : f l e [ : e a t / a i " " " s t / n " " r : : " : e p i i s M s h s " " " " ] " " } " : p f a a t " " t " " @ @ h i , l t , w / f e m n k i t s : i t e m a h i / s s p i I e p p c d y i a b u d i . t l f I y f s : [ " p g g { } e m " t i i " e e I w s : S : e h e l b @ h i o , " s F o " / e " t s " n i " f , t r / q " : " " : a d : . i a d i u h : : " " " " " } i " i p f n " p e t " @ @ m o r " l : 4 o f i d , f n t s 2 [ i t o n e [ " 0 / s l s c p c 8 d y t " s 1 : " 0 a / e I . e s : 9 " p i : o " " " " " ] h p Q P i " : C , : e v u @ @ f h w " { t i m o F o , / a " a " r i t o e i , t / b f S / / n " : t h c d y r i d p p Z " i i v h i t e " p m g t s r e M , p p a t " o t " : e a h h : e k y f f s t o n p : " t t " / s G s s " p a " s " : " " : / e 5 f / . , s : : : { h : : i n x i Q i : A / t " 4 p t 8 r m o / n " / t d " 2 0 f a 3 s b / / n s i p c i 8 0 s t 4 t Z i i o c p s t m 9 . i r e p p t : f : y a , i o w I k f f a p s / p g o n G I G s s t a . / e e / / K I 5 / . i i i i s / i 2 V F x Q i o n o p : j p / Z 8 m o n t / f I p f c n a 3 b / " i i s m e s o t n 4 Z i , n p . a g / n B d r e p g f i g " Q t e w k f " s o e , m e f I G G s , / / " b x k P K 5 / Q i , Z t b F V x Q m p e . N S Z 8 m b f k j f " n 3 b Z s G s L , t 4 Z e / 5 o 5 B r e k Q x n a e w k G m 8 " u f G G 5 b 3 , H k K 5 x Z 4 1 b V x 8 e r 7 N Z 8 3 k w 1 f n 3 4 G G m L t 4 r 5 K 4 5 B r w x V c a e w G 8 Z 2 u f G K 3 n 6 H k K V 4 t T 1 b V Z r B Z 7 N Z n w e m 1 f n t G f C m L t B K k A 4 5 B e V b o c a e f Z N / 2 u f k n f k 6 H k b t L u T 1 b N B 5 n Z 7 N f e a s m 1 f L f u h C m L 5 k H u A 4 5 a b 1 j o c a u N 7 o / 2 u H f 1 _ k 6 H 1 L m 4 u T 1 7 5 4 0 n Z 7 1 a c 0 s m 1 m u 2 . h C m 4 H 6 j u A 4 c 1 T p j o c 2 7 Z g o / 2 6 1 m " _ k 6 T m C , 4 u T Z 4 A 0 n Z m c o 0 s m C 2 / . h C A 6 k j u A o T u p j o / Z n g o / k m s / _ k u C h s 4 u n A u e 0 n s o j q 0 s h / o u . h u k _ e j u j u 4 n p j o n 0 c g o _ s 0 e / _ 4 h . / c 4 0 u j n a 0 0 j p o n 0 . o g r v . j _ " m a j p 4 a s p g 0 l / g / 0 " p / c . , 1 a a j " n n p , n v g o a " t s , a / t p i 1 o " n , / p 1 - i m a g e " , その結果、以下のURLでアクセスできるようになりました。 ...

2023年1月16日 · 6 分 · Nakamura

TEIビューアでの利用を想定したCustom OpenSegDragon Viewerを作成しました。

概要 TEIビューアでの利用を想定したCustom OpenSegDragon Viewerを作成しました。 背景 以下のようなTEIとIIIFを対応させたビューア開発において、次に示す機能を持ったビューアが必要でした。 https://www.hi.u-tokyo.ac.jp/collection/digitalgallery/wakozukan/tei/ IIIFのマニフェストファイルを読み込むことができる。 ビューアコンポーネント側でのコマ送りを、コンポーネント外で把握することができる。 画像の部分領域をハイライトすることができる。 上記の要件を全てを満たす既存のIIIF対応ビューアを見つけることができなかったため、独自のビューアの開発を試みました。合わせて、npmパッケージとして公開することも試みました。 開発したビューア ドキュメンテーション等がまだ不十分ですが、以下のページで公開しています。このページで、ソースコードへのリンクも掲載しています。 https://www.npmjs.com/package/@nakamura196/osd-custom-viewer vue3とviteを使ったコンポーネントの開発およびnpmでの公開にあたっては、以下のサイトを参考にしました。 https://blog.egmond.dev/vue-component-to-npm-package 使用例 以下のページで導入例をご確認いただけます。 https://nakamura196.github.io/nuxt3-iiif-viewer/custom-osd コンポーネント内外からのコマ送りが可能です。これにより、例えばIIIF画像とTEIテキストの並列表示を行った際、TEIテキスト側からのコマ送りや、画像のコマ送りによる当該テキストへのスクロールなどを行うことができます。 またハイライト機能用いることで、あるテキスト行に対応した画像の部分領域をハイライトさせる、といったことが可能です。 使用例のソースコードは以下です。 https://github.com/nakamura196/nuxt3-iiif-viewer/blob/main/pages/custom-osd/index.vue ssrでの公開にあたり、pluginsフォルダに以下を追加しています。 https://github.com/nakamura196/nuxt3-iiif-viewer/blob/main/plugins/custom-osd.client.js まとめ ドキュメンテーションの充実や、IIIF v3への対応など、多くのTODOが残っていますが、参考になりましたら幸いです。

2022年12月26日 · 1 分 · Nakamura

Nuxt3のssrでIIIF viewerを導入する

概要 Nuxt3のssrでIIIF viewerを導入する方法の備忘録です。 Canvas Panel 以下のビューアの導入です。 https://iiif-canvas-panel.netlify.app/ インストール n p m i @ d i g i r a t i / c a n v a s - p a n e l - w e b - c o m p o n e n t s page 以下を参考にしてください。 https://github.com/nakamura196/nuxt3-iiif-viewer/blob/main/pages/canvas-panel/index.vue 表示例 https://nakamura196.github.io/nuxt3-iiif-viewer/canvas-panel Tify 以下のビューアの導入です。 https://github.com/tify-iiif-viewer/tify インストール n p m i t i f y page 以下を参考にしてください。 ...

2022年12月26日 · 1 分 · Nakamura

【Omeka S モジュール紹介】IIIF Searchモジュール

概要 IIIF Search は、全文検索のためのIIIF Content Search APIを追加する Omeka S 用モジュールです。 特に、日本語テキストを扱うための改修を加えた以下のモジュールを対象に、その使用方法を紹介します。 https://github.com/nakamura196/Omeka-S-module-IiifSearch インストール githubからソースコードをcloneします。omeka-sは適宜読み替えてください。 c g d i t o m c e l k o a n - e s / h m t o t d p u s l : e / s / g i t h u b . c o m / n a k a m u r a 1 9 6 / O m e k a - S - m o d u l e - I i i f S e a r c h . g i t I i i f S e a r c h githubからインストールする場合には、上記のように、フォルダ名を対象モジュール名に変更する必要がある点に注意が必要です。 ...

2022年11月24日 · 10 分 · Nakamura

iiif auth apiを試す

概要 iiif auth apiを試すため環境として、以下のリポジトリが提供されています。 https://github.com/digirati-co-uk/iiif-auth-server 今回は、上記のリポジトリを使用して、iiif auth apiを試します。 起動 準備 g c p s p p i d y o i i t t u p p i h r c i o c i i l i n e n n o f s s n - - v t t e a m e a a u n l l h t v v l l t h e / t - n b - p s v i - r s e n u : r v / p r / e a g e / e n c r q g r v t a u i i d i t v e r h a e u t p m b e i e . p n c t o s m . / t d x i t g i r a t i - c o - u k / i i i f - a u t h - s e r v e r pip install -r requirements.txt時にバージョンの不具合などが発生した場合、以下のように、バージョン情報を削除して、再度試すなどしてみてください。 ...

2022年11月18日 · 16 分 · Nakamura

TEIテキストの作成支援ツール「FairCopy」の紹介

概要 研究仲間に、「FairCopy」というTEIテキストの作成支援ツールを教えていただきました。本ツールはGUIを介してTEIテキストを作成可能なツールで、とても便利なものに感じました。 有料のツールですが、2週間は無料で試用できるため、この調査結果を共有します。 インストール 以下のSign Up画面から情報を送信することで、トライアルのコードとアプリケーションのダウンロードリンクが表示されます。 https://faircopyeditor.com/sign_up ダウンロード後にアプリケーションを起動すると、以下のようなプロジェクトの選択画面が表示されます。 プロジェクトの作成 プロジェクトを作成します。今回は、以下のような情報を入力しました。 その後、以下のような画面が表示されます。 作成するデータ 今回は、すでに公開されている校異源氏物語テキストDBで公開されている「きりつぼ」のTEIデータについて、本ツールを使って再現することを試みます。 https://kouigenjimonogatari.github.io/tei/01.xml 国立国会図書館で公開されているIIIF画像と、プロジェクトで翻刻したテキストデータを対応づけたTEI/XMLファイルです。 新規リソースの作成 「NEW RESOURCE」をクリックすると、以下のような登録フォームが表示されます。適当なNameとIDを与えます。 また「Resource Type」については、複数の選択肢が表示されますが、TEI Header付きのTEIとIIIFを組み合わせたXMLファイルを作成したい場合には、「TEI Document」を選択するのがよさそうです。 結果、以下のように、「校異源氏物語・きりつぼ」フォルダの中に、「TEI Header」というファイルが作成されます。 IIIFのインポート まず、IIIF画像のインポートを試みます。「IMPORT IIIF」ボタンを押し、以下のようなIIIFマニフェストのインポート画面において、URLを入力します。 今回は、以下のマニフェストのURLを入力しました。 https://www.dl.ndl.go.jp/api/iiif/3437686/manifest.json すると、以下のように画像が追加されます。 その行をクリックすと、以下のように、マニフェストファイル内の画像が取り込まれます。ID列で、各画像にIDが与えられていることが確認できます。テキストと画像の紐付けにおいて、後ほど使用します。 画面右上の画像アイコンをクリックすると、画像を表示することもできます。 参考までに、「校異源氏物語・きりつぼ」に戻り、以下のように、画像の行のチェックボックスを選択して、「ACTIONS」 > 「Export」を押すと、XMLファイルが出力されます。 以下のように、facsimile要素を持つXMLファイルが作成されます。 < < ? T < < x E f < < < < . T m I a s < < / s < < . f E l c u l g s u l g s . a I x s r a r u r a r u c > v m i f b a r f b a r s e l m a e p f a e p f i r n i c l h a c l h a m s s l e > i c e > i c i i = e 1 c e 2 c e l o " x < > x < > e n h s m / m m / m > = t a l l i l l i " t m : a m : a m 1 p e i b e i b e . : A d e T d e T 0 / s = l y = l y " / = " > p " > p w " f e f e e w h 0 = 0 = n w t 0 " 0 " c . t 0 a 1 a o t p " p " p d e s p p i i : u l u l n - / l i l i g c x c x c = . w = a = a " o w " t " t U r w 0 i 0 i T g . " o " o F d n n - n l u / u / 8 s . l j l j " n y s y s ? 1 d = o = o > . l " n " n 0 . 0 " 0 " " g " " > o u u . l r l r j r l r l p x = x = / = " = " a " h " h p 6 t 6 t i 8 t 8 t / 9 p 9 p i 0 s 0 s i " : " : i / / f l / l / / r w r w 3 y w y w 4 = w = w 3 " . " . 7 4 d 4 d 6 7 l 7 l 8 0 . 0 . 6 6 n 6 n / " d " d m l l a s . s . n a g a g i m o m o f e . e . e A j A j s s p s p t = / = / . " a " a j h p h p s t i t i o t / t / n p i p i " s i s i > : i : i / f / f / / / / w 3 w 3 w 4 w 4 w 3 w 3 . 7 . 7 d 6 d 6 l 8 l 8 . 6 . 6 n / n / d R d R l 0 l 0 . 0 . 0 g 0 g 0 o 0 o 0 . 0 . 0 j 0 j 0 p 1 p 2 / " / " a / a / p > p > i i / / i i i i i i f f / / 3 3 4 4 3 3 7 7 6 6 8 8 6 6 / / c c a a n n v v a a s s / / 1 2 " " > > 後ほど、TEI Headerとtext - bodyを組み合わせたTEI/XMLをエクスポートしますが、上記のように、画像やテキスト、TEI Headerなど、それぞれの要素のTEI/XMLをエクスポートする機能が提供されています。 ...

2022年11月11日 · 14 分 · Nakamura

IIIFアイコンのドラッグ&ドロップ対応について

背景 IIIF(International Image Interoperability Framework )のアイコン(具体的には、IIIFのマニフェストURL)は、多くのIIIF対応ビューアにおいて、ドラッグ&ドロップによるロードに対応しています。 ただし、以下のモジュールによって表示するIIIFアイコンについては、ドラッグ&ドロップができない、というフィードバックをいただきました。 https://github.com/omeka-j/Omeka-S-module-IiifViewers この原因について、以下のページなどを参考に調査しました。 https://zimeon.github.io/iiif-dragndrop/ その結果、以下のようなHTMLの記述が必要なことがわかりました。 < a / < a h i > r m e g f = s " r d c e = f " a i u i l i t f _ - t d a r r a g g e n t d ? r m o a p n - i 1 f 0 e 0 s p t x = . m p a n n g i " f e a s l t t _ = U " R I I I & I c F a n D v r a a s g = - c n a - n d v r a o s p _ " U / R > I " > 上記のパターンに合致していないことが、上述したモジュールでドラッグ&ドロップができない不具合の原因でした。 ...

2022年9月22日 · 3 分 · Nakamura

Cultural Japanにおいて指定したIIIFマニフェストを含むアイテムの一覧を返却するAPIを作成しました。

Cultural Japanにおいて指定したIIIFマニフェストを含むアイテムの一覧を返却するAPIを作成しました。 構築したAPIのドキュメントは以下です。 https://petstore.swagger.io/?url=https://api.cultural.jp/v3/api-docs 実行例は以下です。 https://api.cultural.jp/v3/items/urls?manifest=https://iiif.harvardartmuseums.org/manifests/object/215190 APIの開発にあたっては、以下の記事を参考に、express-openapiを利用し、AWS Lambdaを用いて配信しています。 https://www.forcia.com/blog/002471.html Cultural Japanの活用にあたり、参考になりましたら幸いです。

2022年9月20日 · 1 分 · Nakamura

Omeka S IIIF ServerのIIIFマニフェスト(version 2)の出力内容

概要 Omeka SでIIIFマニフェストを配信するためのモジュールとして、IIIF Serverがあります。 https://github.com/Daniel-KM/Omeka-S-module-IiifServer 本記事では、このIIIFマニフェスト(特に、IIIF Presentation API version 2)の出力内容について確認します。 例 以下、https://shared.ldas.jp/omeka-sというURLで公開しているOmeka Sにおいて、IDtest-111のアイテムに関するIIIFマニフェストの例です。 { } " " " " " } " " " } " } " ] " ] @ @ @ l t , l a r , s , m , s ] c i t a h i t e e e e " o d y b u c t l e t q m { } n " p e m " " " " " e r a " " A " " a { } { } u { e } t : e l b @ @ f w h n i t @ f l @ f d , e t " " e " " n i t o i e s b e i o s i o a n a l v x " : : a d y r d i e u d d r o d r t c d a a t h i " p m t g " t " " m " " m a " " " " e " " " " " a b l ] " t " " l : e a h h : i : : a : : a " l v l v s @ @ l v c t e u : t s S " " t " t o t t : a a a a " i t a i a a l e p c a : " : " : " " n { " " { " " b l b l : d y b e n " " " " s : m h : : h " h : h : [ e u e u " p e w v { } { : : : } h : M p { t " 2 t : t t l e l e [ : e l i a , t / a l t d " 0 2 t t " t " " " " " " " n s [ " " t / n e p c i 0 0 p " p t p a : : : : " : : g e T 2 p s i s t m , 0 s サ s e s p h D s " " " " } " " " ] " " " " } " " " ] i 枚 : h f I : y a : ン : x : p " " " " t " " i " @ @ l t , w h i @ @ l t , w h i , t 目 / a e t / p g / プ / t / l T S I t t s C r : i t a h i e m i t a h i e m l " / r s e / e e / ル / / / i i a d e p c u e d y b u d i a d y b u d i a e i e t m i s / s 機 s h s c t m e s s : r c [ " p e m " " " " " t g g { } " p e m " " " " " t g g { } " i d " " i : j h 関 h t h a l p n t : S r t : e l b @ @ f w h h h e : e l b @ @ f w h h h e , i . , , i I p a " a m a t e l t - / e e i " " n i t o i e " t s " " n i t o i e " t s f l f m e r , r l r i " e i 1 / q n o " : : a d y r d i : " " " : : a d y r d i : " " . d . a g e e " e o , f 1 s u t n h i " p m t g : : " " " " } " h i " p m t g : : " " " " } " i a d g " d d d n I i 1 h e " t " " l : e a h h 6 @ @ m r , o t " " l : e a h h 6 @ @ m r , o o s l e , . . . / t e " a n P : t s 1 " " t " t 4 4 [ i t o e n t s 2 " " t " t 4 4 [ i t o e n / . . " l l l l e r r c a p c " : " : " : " 0 8 d y t s " p c 枚 : " : " : " 0 8 d y t s " a j i , d d d d m " e e g " s : , h : : 1 1 " p i o " " " " " " } : s : 目 h : : 1 1 " p i o " " " " " " } : p p t a a a + " , d " e l : C { t " 2 , 0 : e v u @ @ f w h s : C " { t " 2 , 0 : e v u @ @ f w h s i c s s s j . , e / a t d " 0 2 , " a r i t o i e e " / a , t d " 0 2 , " a r i t o i e e " o . . . . s l O f / n p c i 0 0 " : t c d y r d i r h / n p c i 0 0 " : t c d y r d i r h p m u j j j o d r t s v s t m , 0 h i e " p m t g v " " " t s v s t m , 0 h i e " p m t g v " " " t r e - p p p n a d - h a : y a t " o " : e a h h i @ @ p t h a : y a t " o " : e a h h i @ @ p t e k t / / / " s e t a s / p g t o n : " t " t c c i r p a s / p g t o n : " t " t c c i r p s a o o o o . r o r " / e e p a " " : " : " e o d o s r " / e e p a " " : " : " e o d o s e - k m m m j " - e , i s / s : : { h : : " n " f : e , i s / s : : { h : : " n " f : n s y e e e p , r d i : j : A t " 6 : t : i / d i : j : A t " 6 : t : i / t / o k k k / i . i I p / n " t d " 4 4 e l / . i I p / n " t d " 4 4 e l / a i . a a a o g l f m e / n s p c i 0 8 { x " e s l f m e / n s p c i 0 8 { x " e s t i a - - - m h d . a g s o c s t m 1 1 t h " h d . a g s o c s t m 1 1 t h " h i i c s s s e t a d g " h t : : y a , 0 " t : a a d g " h t : : y a , 0 " t : a o f . / " / k " s l e , a a p / p g , : t r s l e , a a p / p g , : t r n j s , a a , . . " r t a / e e p " e . . " r t a / e e p " e t p / p - j i , e i i i s / " s h d j i , e i i i s / " s h d 2 e / t i s p t d o n i : j h : t . p t d o n i : j h : t . / s i e / / / c . n t i I p t / t l / c . n t i I p t / t l c t i s i i o . l " i f m e t / p d o . l " i f m e t / p d o - i t t i m u d , n . a g p i : a m u d , n . a g p i : a n 1 f / e i e - a g d g " : i / s e - a g d g " : i / s t 1 / p m f k t s " l e , / i / . k t s " l e , / i / . e 1 k a s / a o . , . " / f i j a o . , . " / f i j x / u g / t - k j i , i . i p - k j i , i . i p t m n e 1 e s y p t i d i / s y p t i d i / . a s / 2 s / o / c i l f o / o / c i l f o j n h r 7 t i . o . f . . m i . o . f . . m s i u e 0 - i a m u . i i e i a m u . i i e o f j u " 1 i c e - i t o k i c e - i t o k n e o s , 1 f . k t o c a f . k t o c a " s u e 1 / j a o / . a - / j a o / . a - , t / " / t p - k a u p s t p - k a u p s " A , s e / s y p - i / e / s y p - i / , 0 e s i / o i t i s i / o i t i 0 q t i i . / i i t i i . / i i _ u - i i a i k m i - i i a i k m i 6 e 1 f i c m y a f 1 f i c m y a f 0 n 1 / f . a o g / 1 / f . a o g / 1 c 1 k / j g . e t 1 k / j g . e t 0 e / u t p e a / e / u t p e a / e / / c n e / / c 2 s c n e / / c 2 s 0 n a s s i 2 . / t a s s i 2 . / t 0 o n h t i j l - n h t i j l - 1 r v u - i c p e 1 v u - i c p e 1 / m a j 1 f o / v 1 a j 1 f o / v 1 0 a s o 1 / n i e 1 s o 1 / n i e 1 0 l / u 1 k t i l / / u 1 k t i l / 1 " p / / u e i 1 c p / / u e i 1 c _ , 1 A a n x f . a 2 A a n x f . a 0 " 0 n s t j n " 0 n s t j n 0 , 0 n h . k s v , 0 n h . k s v 0 _ o u j u o a _ o u j u o a 1 6 t j s n n s 6 t j s n n s . 0 a o o s " / 0 a o o s " / t 1 t u n h p 1 t u n h p i 0 i / " u 1 0 i / " u 2 f / o A , j " / o A , j " / 0 n 0 o 0 n 0 o f 0 / 0 u 0 / 0 u u 1 p _ / 1 p _ / l / 0 6 A / 0 6 A l 0 0 0 0 0 0 0 0 / 0 0 1 0 0 0 1 0 ! 1 1 0 _ 1 2 0 _ 2 _ - / 6 _ - / 6 0 0 i 0 0 0 i 0 0 0 0 m 0 1 0 m 0 1 , 0 a 1 0 0 a 1 0 2 1 g / / 2 g / / 0 . e 0 0 . e 0 0 0 t " 0 0 t " 0 0 / i , 1 1 i , 1 1 0 f _ / f _ / / / 0 0 / 0 0 d f 0 0 f 0 0 e u 0 1 u 0 1 f l 1 _ l 2 _ a l . 0 l . 0 u / t 0 / t 0 l ! i 0 ! i 0 t 2 f 1 2 f 2 . 0 / . 0 / . j 0 f t 0 f t p , u i , u i g 2 l f 2 l f " 0 l " 0 l " , 0 / , 0 / , / f / f 0 u 0 u / l / l d l d l e / e / f 0 f 0 a / a / u d u d l e l e t f t f . a . a j u j u p l p l g t g t " . " . , j , j p p g g " " , , 以下、それぞれのタイプについて説明します。 ...

2022年9月1日 · 22 分 · Nakamura

Mirador 3 による画像比較ツールを作成しました。

Mirador 3 による画像比較ツールを作成しました。URLは以下です。 https://ldas-jp.github.io/viewer/input/ またGitHubリポジトリのURLは以下です。 https://github.com/ldas-jp/viewer 以下が入力フォームです。比較する画像のIIIFマニフェストファイルのURLとCanvasのURIを指定します。「例」にあるボタンをクリックすることで、入力例をご確認いただけます。 「開く」ボタンをクリックすると、以下のようにMirador 3が起動します。入力情報に基づく画像比較を行うことができます。 Mirador 3を用いた画像比較にあたり、ご活用いただけますと幸いです。

2022年7月8日 · 1 分 · Nakamura

Omeka ClassicのIIIF Toolkitを用いたアノテーションの一括登録方法

はじめに 備忘録的な意味合いの強い記事です。わかりにくい点も多々あるかと思いますが、ご容赦ください。 特に以下で紹介されている、IIIF Toolkitが使用するアノテーションエンドポイントの使い方について、参考になりましたら幸いです。 https://github.com/utlib/IiifItems/wiki/The-Mirador-Omeka-Annotator-Endpoint 概要 Omeka ClassicのIIIF Toolkitプラグインは、IIIFマニフェストファイルの読み込みや、画像へのアノテーションを行うことができるとても便利なツールです。 https://zenn.dev/nakamura196/books/2a0aa162dcd0eb/viewer/b37a8c 今回は、Omeka Classicとは独立して作成されたアノテーションデータを持っていることを前提として、それらのアノテーションをOmeka Classicに一括登録する方法を記事にします。 以下のGooble Colabのノートブックを用意しています。参考になりましたら幸いです。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/Omeka_ClassicのIIIF_Toolkitを用いたアノテーションの一括登録方法.ipynb 使い方 事前準備0 上記のノートブックを実行する前に、Omeka ClassicのAPIの有効化、およびAPIキーの発行を行う必要があります。 Omeka ClassicのAPIの有効化 以下に示すように、デフォルトではOFFになっているAPIの有効化を行います。 APIキーの発行 非公開のアイテムについては、APIキーを用いたアクセスが必要になるため、ユーザ毎にAPIキーを発行します。 ノートブックの実行 上記のノートブックに従って、Omeka ClassicのAPIを用いたデータ登録を行います。 結果 以下に示すように、アノテーションが一括登録されていることが確認できます。 まとめ Omeka ClassicのIIIF Toolkitが提供するAPIの扱い方など、参考になりましたら幸いです。

2022年7月8日 · 1 分 · Nakamura

Mirador 3にmirador-image-toolsプラグインを追加して、1つのjsファイルにまとめて配布する方法

概要 表題の通り、Mirador 3にmirador-image-toolsなどのプラグインを追加して、1つのjsファイルにまとめて配布する方法を記述します。 JavaScriptに関する知識不足により、誤った記述があるかもしれません。間違っている点などがありましたらご指摘いただけますと幸いです。 ゴール 以下に示すようなHTMLファイルを記述することにより、以下のURLから確認できるアプリを作成することが目的です。mirador-image-toolsプラグインが有効化されているMirador 3を使用しています。 https://nakamura196.github.io/mirador-integration-alt/ < < ! h / D t < < h O m h / b / t C l e < < h o < < < < b m T > a m t e d d ! s s / o l Y d e i a y i - c c c c } M s d > P > t t d > v - r r o o ; i c y E a l > i i n n i w ] r r > e i ポ p p 注 s s d i a i h c > d イ t t 意 t t : n { } d p t h B = ン > 点 d , o t m a a " ト s { c " o i i m r > l r s d r M o d w m m a . > s i e c i n e s a a n v e c m = r f m : g g i i t o " a i o e e f e = M " h d g " [ T T e w " i > t o , o o s e u r < t r = o o t r t a / p , l l I ( f d d s { s s d c - o i : m E O : o 8 r v / i n p n " < > / r a e " f n a b n h i t a d l : t g i k o e t , t a r d t p l m I : r s [ e u m u : . > r a t e / . a g r , / . 1 e u i m 9 T e i i 6 o , i r . o f a g l . d i s d o t P l r h l . I u u i m b g t a . i c g i n . e o } u T / - o m = t o i o l r i k s a n y P d t o l o e . u r g a g - r c i i a . n n t j ] t i p ) e o / ; g n r r e a p t o i / o i n i - i a f l / t f / b d d i 0 s 4 t 7 / 9 m b a - i d n b . b j 4 s - " 4 > e < a / a s - c 9 r 5 i b p 8 t - > f 2 7 e 1 c 4 2 3 e 4 b / m a n i f e s t " , ポイントは、上記のソースコードで「<!-- ポイント -->」としている点です。1つのjsファイルを読み込むことで、Mirador 3とmirador-image-toolsプラグインを使用しています。 ...

2022年6月8日 · 4 分 · Nakamura

Nuxt 3とVuetify 3を用いたIIIF Image API関連ツールを作成しました。

概要 Nuxt 3とVuetify 3を用いたIIIF Image API関連ツールを作成しました。本ツールを開発した背景として、IIIF Image APIを操作するニーズに加えて、Nuxt 3の使い方を学ぶ目的がありました。 GitHubリポジトリは以下です。参考になりましたら幸いです。 https://github.com/nakamura196/nuxt3-vuetify3 使い方 以下のURLからアクセスいただけます。 https://nv3.netlify.app/ 以下のように、「例」ボタンを押すと、画面上部のテキストフォームにURLが入力され、そのURLに含まれる要素(「region」や「size」など)が画面下部に表示されます。 IIIF Image APIを操作する際の参考になりましたら幸いです。

2022年6月7日 · 1 分 · Nakamura