ArchivematicaのMETSファイルの内容を可視化するPythonライブラリ

概要 ArchivematicaのMETSファイルの内容を可視化するPythonライブラリを作成しました。 例えば以下のように、AIPの作成過程で行われた処理(premis:event)の集計結果などを可視化します。 背景 以下の記事で、ArchivematicaのMETSファイルを人間に優しい方法で探索するためのウェブアプリケーションであるMETSFlaskを紹介しました。 今回作成したものは、このMETSFlaskで提供されている機能を、Flask以外からも利用しやすいようにライブラリ化したものです。 リポジトリ 以下で公開しています。README.mdファイルに使用方法を記載しています。 https://github.com/nakamura196/mets_tools GitHub Pagesでもドキュメントを公開しています。 https://nakamura196.github.io/mets_tools/ まとめ ArchivematicaおよびAIPの利用にあたり、参考になりましたら幸いです。

2024年10月31日 · 1 分 · Nakamura

LEAF WriterをNext.jsから使用する

概要 LEAF WriterをNext.jsから使用する方法について紹介します。 デモ 以下のURLからお試しいただけます。 https://leaf-writer-nextjs.vercel.app/ 以下が画面例です。ヘッダー部分がNext.jsを用いて追加した部分です。エディタ部分はLEAF Writerを使用しています。 ソースコードは以下でご確認いただけます。 https://github.com/nakamura196/leaf-writer-nextjs 使用方法 以下に記載があります。 https://gitlab.com/calincs/cwrc/leaf-writer/leaf-writer/-/tree/main/packages/cwrc-leafwriter?ref_type=heads 注意点として、div containerのidをleaf-writer-containerにする必要があります。これを行わない場合、スタイルが崩れることがわかりました。この点は、今後プルリクエストを送りたいと思います。 # c o c n o s n t s t c o c n o t n a t i a n i e n r e r = = d o d c o u c m u e m n e t n . t g . e g t e E t l E e l m e e m n e t n B t y B I y d I ( d ' ( # ' l # e l a e f a - f w - r w i r t i e t r e - r c ' o ) n ; t a i n e r ' ) ; まとめ LEAF Writerの応用にあたり、参考になりましたら幸いです。 ...

2024年10月29日 · 1 分 · Nakamura

Romaを使ってタグの属性に使用可能な値を限定する

概要 Romaを使ってタグの属性に使用可能な値を限定する方法に関する備忘録です。 背景 以下の記事で、タグに使用可能な属性を限定する方法を記載しました。 例えば、persNameタグには、key属性とtype属性のみを使用可能にする、といった具合です。 本記事では、さらに特定の属性で使用可能な値を限定します。例えば、type属性には、「右傍注」または「左傍注」のいずれかを設定する、といった具合です。 Romaでの設定 以下の記事を参考に、タグの属性の設定を行います。 ここでは、persNameタグにtype属性を設定済みとします。そして、以下のように、鉛筆アイコンをクリックします。 以下のように、属性に関する情報を編集するためのページに遷移します。ここで、「値」という項目において、「右傍注」「左傍注」といった値を登録します。合わせて、必要に応じて「説明」文も追加します。 Oxygen XML Editorでの表示例 rngファイルとしてダウンロードし、それをTEI/XMLからロードすることにより、Oxygen XML Editorでは以下のように表示されました。 LEAF Writerでの表示例 LEAF Writerでは、以下のように、セレクトボックスで選択肢が提示されました。 まとめ TEI/XMLの導入あたり、参考になりましたら幸いです。

2024年10月28日 · 1 分 · Nakamura

Romaを使ってプロジェクトに応じたタグに使用する属性を限定する

概要 Romaを使ってプロジェクトに応じたタグに使用する属性を限定する方法に関する備忘録です。 背景 以下の記事で、Romaを使ってプロジェクトに応じたタグを限定する方法を記載しました。 今回はこの延長で、各タグで使用する属性のカスタマイズを行います。 ユースケース ここでは、一例として、persNameで使用可能な属性を限定してみます。 デフォルト(tei_all.rng)をOxygen XML Editorで用いた際、以下のように、persNameタグで使用可能な属性として、多くの選択肢が提示されていることがわかります。 一方、本記事で説明するカスタマイズしたrngファイルを使用した場合、以下のように、5つの属性のみが利用可能となっていることがわかります。 このようにプロジェクト毎に使用可能なタグや属性を限定することで、入力者の負担軽減や、Validationの効率化が期待できます。 手順 以下の記事を参考に、Romaで新規にODDファイルを作成するか、既存のODDファイルを登録した状態から開始します。 そして、今回対象とするpersNameにチェックが入っていることを確認します。 次に、上記のpersNameのリンクをクリックすると、以下の画面に遷移します。 そして、属性をクリックします。このページにおいて、使用する属性を限定することができます。 以下では、少しわかりにくいですが、key属性は使用するものとして残しており、xml:lang属性は使用しないものとして除外している例です。 その他、新規の属性の作成や、 既存のものからインポート(用語が正しいか自身がありません)することもできました。 このカスタマイズ内容を保存できるように、ダウンロード > 「ODDとしてカスタマイズ」により、oddファイルをダウンロードしておきます。また、「RELAX NGスキーマ」などを選択して、実際にTEI/XMLで使用するファイルをダウンロードします。 詳細は以下を参考にしてください。 参考:説明文のカスタマイズ Roma RELAX NG スキーマ < d e / e l d f < e e i e m / f n l e e i e e < < < n < < < < < < l n m a r p t / r r r r r e e e n e : e a p e e e e e m m > a n d f t x < h a f f f f f p e m t o t m s a / t t n e c n e l c s s t n n n n n y t = n u a r n h x x < c e a a a a a / > " a m m n s : m m s n h r m m m m m > t m e e : r l l c o : n e e e e e e e n = x r u n n h r > = = = = = i = t " m n l s s : t u " " " " " _ " a t l g e : = a e l t t t t t p p t e n = x " s x e e e e e e e e i i s " x i h s t > i i i i i r r o _ = h m = t e u _ _ _ _ _ s s n m " t l " t r a a a a a a N N a h t n h p t l t t t t t a a x c t p s t : t t t t t m m m r t : : t / t s b c . . . . . e e l o p / s p / e y u o c g g g g " " n . : c : w s s t n a l l l l > > s p r h / w t t t n o o o o : h / e = / w = e t e o b b b b a r p l " w . " m h n n a a a a = a u a h w t s s i t i l l l l " s r x t w e t s . c . . . . h e l n t . i r o < a a a l a t S . g p w - i r < / l t t i n t e o . : 3 c n s s . t t n a p q c o / . . g c c c a r r k l : " l r o o - a h h t i i i y / c g p r r l l : : t b b n t . u g g e e n a r u u g i r n r / / n n a s i t t . c e r s l 2 n g d m s b e e a . l g . 0 s t a e e u . . t a a s o 0 / h r / r t x n t t x d t c 1 1 ( s > t e m " r t n s r l / . > . l / i r g d u c X 0 n t k i > b i . l c . I " o o e d u b o / t o n r y " t u r s u r c c m w " e t g c r g l o a h . e / h e u n l i c . n e d d t i c o a s m 1 s e e z h r n / a . d " x e r a c t 0 l t - t e " o r " / = s h s / m o s " p e p > p n i c t a " a " d h e c d / t = e i e a > i " m : ( t b t a * . e i e t [ ) l i r @ r i _ o c ) e t h n a p y i " l g r / _ e t e a d n s n n d 0 e n s a " n o - r > t t p ] e a e " @ d t r > c i s a b o N l y n a e s m n t / e d h 1 - a e . c r 0 a c " l i o > e n n ( n d t p d i e e a c n r r a t s - t o c e o n h s f a e l c o t k n h n - e i a p s m e o e r r e ) s l N m e 日 a o m 本 m r e 語 e e n に - t よ c る o b カ n e ス s l タ t o マ r n イ a g ズ i s で n , す t 。 - r [ u 1 l 4 e . - 2 2 . 3 1 " . > P e r s o n a l N a m e s ] < / a : d o c u m e n t a t i o n > LEAF Writer ...

2024年10月28日 · 5 分 · Nakamura

GakuNin RDMとZoteroを接続する

概要 GakuNin RDMとZoteroを接続する機会がありましたので、備忘録です。 以下のように、指定したZoteroのコレクションおよびフォルダを連携することができます。 方法 GakuNin RDMの/addons/において、Zoteroの「プロフィールからアカウントをインポート」リンクをクリックして、プロジェクトとZoteroアカウントを接続します。 その後、まずライブラリに設定を行います。 次にフォルダを指定します。 上記において、Changeや変更といったボタンを押して、それぞれ設定する必要がありました。 まとめ GakuNin RDMとZoteroの連携にあたり、参考になりましたら幸いです。

2024年10月25日 · 1 分 · Nakamura

Archivematicaにmdx.jpのオブジェクトストレージを追加する

概要 Archivematicaにmdx.jpのオブジェクトストレージを追加する機会がありましたので、備忘録です。 背景 以下の記事で、Amazon S3をArchivematicaの処理対象およびAIPの保存先に設定する方法を記載しました。 今回は、この手順をベースとしつつ、mdx.jpのオブジェクトストレージを接続してみます。 設定方法 以下のように設定します。 S3 Endpoint URLには、https://s3ds.mdx.jpを設定します。 Access Key ID to authenticateとSecret Access Key to authenticate withには、以下で得られるアクセスキーと秘密鍵を使用します。 結果 結果、以下のように、mdx.jpのオブジェクトストレージを入出力ストレージとして利用できるようになりました。これにより、AIPやDIPをmdx.jpのオブジェクトストレージに保存することができます。 補足 以下の記事で記載した方法を参考に、GakuNin RDMとmdx.jpのオブジェクトストレージを接続することができます。 これにより、GakuNin RDM上でAIPやDIPの確認が可能となります。これにより、GakuNin RDMのBinderHubを用いたAIPの分析や可視化が可能となります。 可視化例として、ArchivematicaのMETSファイルを人間に優しい方法で探索可能とするMETSFlaskの応用などが考えられます。 まとめ Archivematica, GakuNin RDM, mdx.jpなどの連携にあたり、参考になりましたら幸いです。

2024年10月25日 · 1 分 · Nakamura

Omeka SのModel Viewerモジュールを試す

概要 Model Viewerは、Omeka S向けのモジュールであり、3Dモデル用のビューワーであるthree.jsを統合しています。 https://github.com/Daniel-KM/Omeka-S-module-ModelViewer 本記事では、本モジュールの使用方法について説明します。 参考 以下で、IIIFを用いた3Dモデルの公開方法を紹介しています。こちらも参考にしてください。 インストール 他の一般的なモジュールのインストール方法と同じです。 使用方法 メディアの詳細画面において、以下のように、3Dビューアが表示されます。 まとめ 操作性についてはUniversal Viewerのほうが優れているように感じましたが、参考になりましたら幸いです。

2024年10月18日 · 1 分 · Nakamura

GakuNin RDMとAmazon S3を接続し、Archivematicaでファイルを処理する

概要 GakuNin RDMとAmazon S3を接続し、Archivematicaでファイルを処理する方法に関する備忘録です。 https://rcos.nii.ac.jp/service/rdm/ 背景 以下の記事で、ArchivematicaでAmazon S3を処理対象とする方法を記載しました。 これにより、指定したバケットにファイルやフォルダをアップロードすることにより、それらをArchivematicaの処理対象として、AIPやDIPを作成することができます。 ただし、このままではプロジェクトのメンバー毎にIAMユーザを作成する必要がありました。 GakuNin RDMの利用 今回はメンバー全員がGakuNin RDMのプロジェクトのメンバーとして登録されていました。 そこで、プロジェクトにAmazon S3を接続して、GakuNin RDMからS3にファイルをアップロードできるようにしてみます。 これにより、IAMユーザの管理が不要になります。 設定方法 アドオンを選択します。 Amazon S3を有効にします。 IAMユーザで作成したアクセスキーIDとシークレットアクセスキーを入力することで、バケットの一覧が表示されます。 結果、GakuNin RDMからAmazon S3にファイルをアップロードできるようになりました。 Archivematicaからも同バケットを以下のように参照できるため、ここからAIPなどを作成することができます。 まとめ GakuNin RDMを利用可能な方に限られてしまいますが、参考になりましたら幸いです。

2024年10月9日 · 1 分 · Nakamura

iiif-prezi3を使って、動画に関するIIIF v3マニフェストを作成する

概要 iiif-prezi3を使って、動画に関するIIIF v3マニフェストを作成する機会がありましたので、備忘録です。 https://github.com/iiif-prezi/iiif-prezi3 参考 IIIFマニフェストファイルの例、およびiiif-prezi3を使った実装例は、IIIF Cookbookで公開されています。 以下、動画に関するIIIF v3マニフェストを作成する例です。 https://iiif.io/api/cookbook/recipe/0003-mvm-video/ iiif-prezi3を使った実装例は以下で公開されています。 https://iiif-prezi.github.io/iiif-prezi3/recipes/0003-mvm-video/ f c m c a a a h a h c a c p r o a a n n n w n w a n a r o n n n n n n d n d n n n i m f i v o o o o [ v o v n i f a _ _ = _ " a _ a t i g e s b p = b w s p s ( i . s o a { o i . a . m i c t = d g A " d d s g a a f o y e n h y t e e d n _ n = m n e . h t . d i p f a = = o i s " _ a _ f r i M n t g e ] h d i e e g a i R A a h t w d t s z s n f e n t t _ = d _ e t i [ i e s n i " h ( i m . 3 ' f s o o o : w 6 * t ( j h e t u t n d 4 * e a s i e s . r a ( 3 ( 0 h m n o m l t m c t i m b t 6 * w ( n n p p ( a e i d o o a 0 * d a o ( o e i k I o = t d r , h ) n _ i r r d e t n " i y g w n p n t s = _ e P h v = e " d o a d . " c m a t a a t w ) ) g e M a h a ( g t t n = i e n a u t n i t f e p i n c d ) t n t t v d y o ( s o o a t = i o p a = p r i : n _ n h 2 f _ s s " e m d / = b v " ) e f : ( h = a = / " o a : ) s i / i t " t " i p d s t e / d t V = h i a y . 4 , l i = p i " t i i , i 8 d i " s d v t f n d 0 A s i h : e i p . t ) , n . f t / d s i i n A . t " e : n " o u i p f , o g d t t o s i a " u a o / : x m i p , r t L a / t p i i a i a p / u 4 i / t o n i i r " f c i n g / i e ) . o o P ' c i s i o n a ] o f . o k " g . o . i / b : e a k i i a o , u b o i p o 5 t o f i k 7 A o a . / / 2 n _ k p i c r . n l / i o e 0 o a r o c 3 t n e c v k i 4 a g c o i b p } t i o d o e i = p k e o / o e b o k 0 n " / o / 0 , e 0 i r 0 n 0 k n e 3 R " 0 / d c - e 3 r i i m s - e a p v o m c n e m u v i a / - r m p / 0 v c - e l 0 i e v / u 0 d I i 0 n 3 e t d 0 c - o e e 0 h m / m o 3 r c , / - o m a m m o - n c a v m v v o n m _ i a n i - m d s f f v a e i e i n p g s d n / a t e e c g . o r a e j / s n / s c / a o a h a n n n i s n " v g / o , a h p t s / a a l " l g t a ) u e i b n " o e c ) n l h " = r , " o V o i m d _ e m o a n E n x e a r m s p _ l 1 e 0 2 3 4 " k ) b . m p 4 " , まとめ 他にも多くのサンプルや実装例が公開されています。参考になりましたら幸いです。 ...

2024年10月8日 · 5 分 · Nakamura

Omeka Sのテーマの一覧を視覚的に確認するページを作成するプログラム

概要 以下の記事で、Omeka Sのテーマの一覧を視覚的に確認するページを紹介しました。 上記のページ作成に使用したプログラムを以下のリポジトリで公開しました。 https://github.com/nakamura196/OmekaS まとめ 同様の作業を行うにあたり、参考になりましたら幸いです。

2024年10月5日 · 1 分 · Nakamura

Omeka Sで3Dモデルを公開する

概要 Omeka Sで3Dモデルを公開する方法について調べてみましたので、備忘録です。 結果、以下のように3DモデルをOmeka Sで扱うことができました。 https://omeka.aws.ldas.jp/s/sample/item/43 バージョン 使用するOmeka Sおよびモジュールのバージョンは以下です。 Omeka S 4.1.1 Common 3.4.62 IIIF Server 3.6.21 Universal Viewer 3.6.9 モジュールのインストール Common, IIIF Server, Universal Viewerモジュールをインストールします。 モジュールの設定 IIIF Serverモジュールについて、設定を2点行います。 まず、Default IIIF api version of the manifestを3にします。 また、Default IIIF image api versionをNo image serverにします。 glbファイルのアップロード 以下で公開されているglbファイルを利用させていただきます。 https://ft-lab.github.io/gltf.html 以下のように、apple.glbをメディアとして、新規のアイテムを登録します。 結果、サイトの詳細ページにおいて、Universal Viewer上に3Dモデルが表示されます。 https://omeka.aws.ldas.jp/s/sample/item/43 作成されるマニフェストファイルは以下です。 { } " " " " } " ] " " ] " " ] " ] " ] @ i t l , m , r p , v s , h , i c d y a e i r i e o t o " p b t g o e e m e n : e e " ] a { } h v { } w A { } e { } m { } t " l n d t i i l p s e " : " o a s d n s a " x h : n t " e g o g : t t " e " a " } " } : r " " " } D " " " " } " " e " " " } " " ] " " " " } " " ] " t M { " g " l , v " i t l i : i t l , f p " i t l , f l [ @ i t l , r i : p a : l : a a " : d y a r d y a o r : d y a o a c d y a i t s n b b l h " p b e [ " p b r o " p b r n o " p b g e " : i [ " [ e " ] u " ] t [ : e e " ] c : e e " ] m f [ : e e " ] m g " n : e e " ] h m { } h / f l n e n t " l n t " l n a i " l n a u j t " l n t s t / e " o " o p " : " o i " : " o t l " : " o t a a e " : " o s " t o s : n : n s h : n o h : n " e h : n " g " x h : n " : p m t e " e " : t " e " n t " e " : " t " e " : e t t " e " : " " " ] : e " { " T { " g / t A { " O " t D { " A : t T { " R " " t C { " 1 [ i t i / k , : i : l / p g : m : p a : p " p e : e " : : p a : " " d y t / a t b r s e e s t i a " s x s t s n h " p e i . [ l [ " i : n [ k " : a [ p h : t [ o e [ " : [ t : e m { } i a e g / t a l / s r p t / " u x h / a t " s i w " h / " e / e e l t / , r t t / s p " : " f s t o , S f o t s i p o c / t o " s h : . . s m " t m " t c s m e h p m , : t " " " " " } " " } i l s e - e , a : e t : e / t A [ i t m b , t l o d t k t k j t / k i m / k / p n d y o o a a / a a a o a s i a n l / a r s n " p t d r b a s t . - . o o . " i . i : : e i y " " " " " " " g e " ] p . e a r a n n m a s , i a g t " v " i t f s h w d e l n i j m w i w - / e w i i w h a " : a : d y o e e i u t " o / p e s g s l l k s t f s t o t h t " p r r i d r " : n p / n . h . d d a . e . . s m i t " i { : e m v g t a : e " r i t l t l " + . l : i l s e o t A o " a i h h t { " [ e i s d " d j a d o d t k n p n n " : t c t " i " : U s i . a , a s w a a / a a a P s n " h " e " : o h n e f o s s o s s a a s t . a : : t " : " : n t [ t n / r . . n . . a p . e a g t t M : n " t i t 3 g j j " l j " i j m w e a " p o " n u : p t a / / p p , d p / p e s " o t p s d m [ u l s l t 4 v / / a / p / n . , m i a : e o ] l l n : e i 3 o " a s s r i t l e o i / l d , l , u / d o / c , p . / e i s d k n n / " e , l / ] n m a i j a s i . a a " t o , l l o " / a b / p a e f o s . , i m / m 3 n / i / a n / r . a n e g e / i C t a / t 3 g j w g k l k c f N e p i a / / p s " a t a o e E m i t t 4 v / . , . f . n s / s - e i 3 o i l a - a t t 1 / c m o / c i d w b w e " . 4 o / n c a i a s i s x , 0 3 n 4 / a b f s . n . t / " t 3 3 n / / . l a l . " , e " / v C 3 j d r d j , x , c a N / p a y a s t o s E 4 / s " s o " n / / 3 i . , . n t p 1 / i j j " e 1 . a i p p , x " 0 n f / / t , / n / f i . " o 3 i i j , t / l i s a 4 e f o t 3 s / n i / / 3 " o a o / , n n r 4 - n i 3 p o g / a t i c g a n a e t a n / i l v 4 o / a 4 n c s " / 2 / , 4 8 p 4 f 1 " 7 " , 1 , 0 7 5 2 5 2 7 0 b 0 3 b 4 3 1 4 e 7 3 4 b b d d 3 1 8 d 0 3 4 2 a 4 . g l b " , まとめ Omeka Sと関連モジュールを使用することで、比較的に3Dモデルを公開することができました。 ...

2024年10月4日 · 8 分 · Nakamura

[2024年版] AWSサーバーレスアプリケーションによるIIIF Image Serverの構築

概要 AWSサーバーレスアプリケーションによるIIIF Image Serverの構築に関する2024年度版の記事です。 背景 以下で、serverless-iiifというリポジトリが公開されています。本リポジトリを用いることにより、AWSのサービスを用いて、コスト効率が高く、無限にスケーラブルなIIIF Image Serverを構築することができると謳われています。 https://github.com/samvera/serverless-iiif 以下で、2022年時点の使い方を紹介しましたが、今日のサービスはより使いやすいものになっていました。 方法 いくつか構築方法がありますが、GUIを通じた構築方法として、以下を参考にします。基本的な構築については、以下のサイトの通り行います。ここでは、CloudFrontとRoute 53によるカスタムドメインの設定を含む手順について紹介します。 Lambdaの作成 https://samvera.github.io/serverless-iiif/docs/quick-start/deployment-sam まず、以下にアクセスします。 https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:625046682746:applications/serverless-iiif カスタムドメインによる配信にあたり、いくつかの設定を行います。 まず、ForceHostの項目に、設定したいカスタムドメイン名を入力します。 さらに、SourceBucketにバケット名を入力します。以下の例ではたまたまカスタムドメインと同じ名前の例ですが、任意のバケット名を入力します。 最後に、「このアプリがカスタム IAM ロールを作成することを承認します。」にチェックを入れて、「デプロイ」ボタンを押します。 その後に遷移する以下のような画面において、「デプロイ」タブを選択して、「CloudFormation スタック」のリンクをクリックします。 「出力」タブに遷移すると、v2やv3のエンドポイントが確認できます。 tiled TIFFsの作成 以下のページなどを参考に、tiled TIFFsファイルを作成します。 https://samvera.github.io/serverless-iiif/docs/source-images または、「『石見国絵図』,写,〔江戸中期〕. 国立国会図書館デジタルコレクション 」の画像をtile TIFFsに変換したファイルを以下から取得いただけます。サンプルデータとしてお使いください。 https://github.com/nakamura196/iiif-sampledata/raw/main/1286204.tif このファイルを先に指定したAmazon S3のバケットにアップロードすると、以下のようなURLでImage APIにアクセスすることができます。 https://istxbnjtm5x7qcpkwapsznyltm0sufnb.lambda-url.us-east-1.on.aws/iiif/3/1286204/info.json 注意点として、上記の結果得られるJSONファイルのidには、https://iiif.aws.ldas.jp/iiif/3/1286204という値が指定されています。 これは、先の設定で、ForceHostに指定した値が反映されています。 なお、画像の閲覧には、神崎正英氏が作成されているImage Annotatorが便利です。以下のように、uパラメータでURLを指定すると、画像を表示することができます。 https://www.kanzaki.com/works/2016/pub/image-annotator?u=https://istxbnjtm5x7qcpkwapsznyltm0sufnb.lambda-url.us-east-1.on.aws/iiif/3/1286204/info.json カスタムドメインの設定 最後にカスタムドメインの設定を行います。 まず、CloudFrontでディストリビューションを作成します。Origin domainには、先ほどアクセスしたURLのon.awsで終わるところまでを入力します。 そして、「代替ドメイン名 (CNAME)」の箇所において、設定したいドメイン名を入力します。合わせて、「Custom SSL certificate」も設定します。 上記でCloudFrontの設定は完了です。 最後に、Route 53でCloudFrontディストリビューションへの設定を行います。 結果、以下のURLからJSONファイルを取得することができます。 https://iiif.aws.ldas.jp/iiif/3/1286204/info.json まとめ 誤っている点もあるかもしれませんが、AWSサーバーレスアプリケーションによるIIIF Image Serverの構築にあたり、参考になりましたら幸いです。 ...

2024年9月9日 · 1 分 · Nakamura

DTSとCTSの関係

概要 DTS(Distributed Text Services)とCTS(Canonical Text Services protocol)の関係の調査結果です。 以下に記載がありました。 https://distributed-text-services.github.io/specifications/FAQ.html#what-is-the-relationship-between-dts-and-cts-are-they-redundant (機械翻訳)日本語訳 DTSとCTSの関係は何ですか?それらは重複していますか? DTS(Distributed Text Services)は、Canonical Text Services(CTS)プロトコルからインスピレーションを受け、その影響を受けて開発されました。CTSは、TEI形式でエンコードされた多くの古典的で正典的なテキストを、機械が処理可能な形でリンクドオープンデータとして提供することを可能にしました。しかし、CTS APIはCTS URN識別子システムに密接に結びついており、現代のコンテンツやパピルスや碑文などの他の形式の書き物で使用される引用システムには対応していません。また、このAPIはWeb APIに関する最新のコミュニティ標準にも準拠していません。 DTSはこれらの制限に対処し、さまざまなテキストにわたって標準化された、機械が処理可能な操作を可能にするために作成されました。DTSは、テキストコレクションを機械が処理可能なリンクドデータとして扱うためのハイパーメディア駆動のWebアプリケーションプログラミングインターフェース(API)を定義する、コミュニティ主導の取り組みです。DTS仕様は、コレクションの組織方法、参照に使用される永続的識別子の種類、メタデータに使用するオントロジー、テキスト自体の構造、APIの実装方法については規定していません。できる限り汎用的であり、コレクションのナビゲーション、テキスト内のナビゲーション、テキストコンテンツの取得のためのシンプルな操作を提供することを目指しています。DTSは、テキストコレクションを機械が処理可能なデータとして共有し、再利用するための標準的な方法を提供することを目指して、標準的で採用しやすい仕様を定義しています。 その他 参考までに、上記FAQの他の箇所の機械翻訳結果を掲載します。 DTSに関するよくある質問 DTSとは何ですか? DTSは、TEIドキュメントのコレクション向けのAPIです。 なぜTEIにコレクション用のAPIが必要なのですか? DTSは、クライアントがTEIドキュメントのコレクションと標準的な方法でやり取りできるようにします。標準APIにより、ユーザーは同じクライアントソフトウェアを使用して多くのテキストコレクションにアクセスできます。また、編集者は既存のクライアントが使用できる形でテキストコレクションを公開できるようになります。 DTSをダウンロードして使い始めるにはどうすればいいですか? ダウンロードできません。DTSはプログラム同士の通信方法を定義します。最終的にエンドユーザーがこのソフトウェアを使用します。ソフトウェア開発者向けにはDTSをサポートするライブラリがあり、それらはここにリストされています。 クライアントはこれらのドキュメントで何ができますか? クライアントがテキストデータでできることなら何でも可能です。例えば、このデータはユーザーが読める形で表示されたり、言語学的、文学的、談話的な特徴を分析したり、ユーザーがテキストに注釈を付けて有用なデータを作成できるツールで提示されたりします。 DTSは私のテキストをFAIRにするのに役立ちますか? はい!デジタルテキストコレクションの発行者は、DTS APIを使用して、そのテキストデータを見つけやすく(Findable)、アクセスしやすく(Accessible)、相互運用可能(Interoperable)で、再利用可能(Reusable)なFAIRな形にすることができます。 DTSは以下の方法でテキストデータのFAIRなデータプラクティスをサポートします: 発行者にテキストやコレクションに安定した永続的識別子を使用することを促す メタデータ記述のために標準的な語彙を使用することをサポート テキストコンテンツ自体とは別にメタデータを表現できるようにする 引用可能な単位に至るまで、テキストリソースの構造に関する情報への文書化された(が制約のない)アクセスを提供 テキストリソース間の関係を詳細に指定できるようにする DTSはどのようなAPIですか? DTSは、REST APIであり、Webブラウザのように機能します。クライアントソフトウェアがリクエストを送ると、サーバーはドキュメントを返します。クライアントはこのドキュメント内の情報を使用して、さらにリクエストを送ることができます。このAPIは、HTTPリクエストやレスポンスに含まれるドキュメントとヘッダーに基づいて完全に定義されています。つまり、DTSは言語に依存せず、デバッグが容易で、多くのユーザーに対してスケールすることができます。APIに詳しい人向けに言うと、DTSはピュアなハイパーメディア中心のREST APIで、HTTPの慣習に基づいて定義されています。 DTSは、ウェブサイトを作成するのと同じように構築されています。すべてが発見可能で、ユーザー(クライアント)が簡単に目的のものを見つけられるように整理されています。その上で、リンクされ共有されている語彙を使用し、データのウェブ全体で利用可能なものを活用しています。 Hydraとは何ですか?なぜHydraを使用するのですか? HydraはREST APIを構築するための良いフレームワークを提供します。私たちはゼロから始めるのではなく、標準を使用したかったのです。JSONとピュアなハイパーメディアベースのAPIのサポートが欲しかったため、Hydraを選びました。Hydraはコア機能を提供し、私たちのモデルに合わせてカスタマイズできる拡張性を提供します。(他の3つか4つのアプローチを試しましたが、Hydraが私たちのユースケースに最適でした。APIに関する宗教的な議論があることは承知していますが、これが私たちにとってうまく機能しました。) 私のテキストコレクションにDTS APIを実装すると、何が可能になりますか? DTS APIを実装することで、データの消費者は以下を簡単に取得できるようになります: コレクションメンバーのリスト 個々のコレクションアイテムに関するメタデータ テキスト内の引用可能なパッセージのリスト クライアントが定義したサイズ(例:10行ごとのグループ)で引用可能なパッセージのリスト ドキュメントの引用構造に関するメタデータ 引用階層の任意のレベルでの単一のテキストパッセージ 明確に定義された開始と終了のパッセージを含む範囲のテキストパッセージ 全体のテキスト DTSが必要とし、サポートする識別子スキームは何ですか? DTSは、URLパラメータとして安全に表現できる任意のコレクションおよびドキュメントの識別子スキームをサポートします。 DTSはネストされたコレクション(例:コレクションのコレクション)をサポートしますか? はい、サポートします。 DTSは複数レベルのテキスト引用階層をサポートしますか? はい、サポートします。 DTSはドキュメント内で異なるテキスト引用階層をサポートしますか? はい、サポートします。 私のテキストがTEI/XML形式で公開されていなくてもDTSを使用できますか? はい、部分的に使用できます。 ...

2024年9月4日 · 1 分 · Nakamura

Archivematicaでフォルダにメタデータを登録する際には、日本語のフォルダ名は避ける

概要 Archivematicaでフォルダにメタデータを登録する際には、日本語のフォルダ名は避ける必要がありましたので、その備忘録です。 メタデータ 以下のような/metadata/metadata.csvファイルを用意することにより、AIPにメタデータを含めることができます。 filename dc.type objects/aaa フォルダ objects/aaa/MARBLES.TGA 画像 この時、aaaを日本語で用意すると、当該レコードに関するメタデータが登録されませんでした。 まとめ 同様のことでお困りの方の参考になりましたら幸いです。

2024年8月27日 · 1 分 · Nakamura

DrupalからGitHubのActionsを実行するモジュールを作成しました。

概要 DrupalからGitHubのActionsを実行するモジュールを作成しました。 https://github.com/nakamura196/Drupal-module-github_webhook 以下、使い方について説明します。 使い方 設定 モジュールのインストール後、以下にアクセスします。 /admin/config/github_webhook 以下のような画面に遷移します。 大きく、Respositories とTrigger Webhook に分かれています。 まず、Respositories のRepository 1にGitHub Actionsの実行対象のリポジトリの情報を入力します。Add repositoryやRemove repositoryから、リポジトリの追加と削除を行うことができます。 Event Typeには、GitHub Actions側で設定した値を入力します。初期値のwebhookは、以下のようなActionsを想定しています。 n o p c j a n e o o m : p w r r c p i n g c b b e u o e m o a d c r a s u : s b r p t i n g - u o n : i r s h r k o y s t e t r u c l u t D : a f s p s e s o r p e d n e - e n l i e i n : k e : l : s p p c o t s o t e n - - s n u l h w o : n s w n c " i o : a s o e _ r s : r : y p n n m e y s d y [ : i : a - : e s : i _ w r t w g p : : t s d e e e r e r u o [ p i b a i s o b C a " a s h d t " g u h c G m t p o e r n e t i a c a o e t c i t i h t k s u k o H n : c ] s - o n u " h : l u s b ] : a t / t t c P r e h a u s e g e t c e k s o u t @ v 3 設定後、画面下部の送信 ボタンを押して保存します。 ...

2024年8月24日 · 2 分 · Nakamura

Nuxtで@elastic/search-uiを使ったサンプルリポジトリを作成しました。

概要 Nuxtで@elastic/search-uiを使ったサンプルリポジトリを作成しました。 https://github.com/nakamura196/nuxt-search-ui-demo 以下からお試しいただけます。 https://nakamura196.github.io/nuxt-search-ui-demo 背景 @elastic/search-uiは以下のように説明されています。 https://www.elastic.co/docs/current/search-ui/overview A JavaScript library for the fast development of modern, engaging search experiences with Elastic. Get up and running quickly without re-inventing the wheel. (機械翻訳)Elasticを使用して、モダンで魅力的な検索エクスペリエンスを迅速に開発するためのJavaScriptライブラリです。車輪を再発明することなく、すぐに使い始めることができます。 以下でVue.jsを使ったサンプルリポジトリが公開されています。 https://github.com/elastic/vue-search-ui-demo 今回は上記のリポジトリを参考に、Nuxtを使ったサンプルリポジトリを作成しました。 メモ 初期検索 以下のように指定することで、初期読み込み時の検索を実行することができました。 https://github.com/nakamura196/nuxt-search-ui-demo/blob/main/searchConfig.ts#L49 a l w a y s S e a r c h O n I n i t i a l L o a d : t r u e , 公式ドキュメントの以下に記載がありました。 ...

2024年8月23日 · 1 分 · Nakamura

縦書きに対応したText Overlay pluginを導入済みのMiradorのリポジトリ

概要 縦書きに対応したText Overlay pluginを導入済みのMiradorのリポジトリを更新しました。 https://github.com/nakamura196/mirador-integration-textoverlay 参考 変更元のText Overlay pluginのリポジトリは以下です。 https://github.com/dbmdz/mirador-textoverlay デモ 以下のページで動作内容をご確認いただけます。 https://nakamura196.github.io/mirador-integration-textoverlay/ 画面右上の「Text visible」ボタンを押すと、テキストが表示されます。ロード中のままとなってしまう場合には、ページの再読み込みをしてください。 参考 以下の記事で紹介した方法を使い、Text Overlay pluginをMirador 3に追加しています。 使用例 Text Overlay pluginの使用方法などについては、以下の記事を参考にしてください。 まとめ 今後、テキスト表示にあたり、ロードしたままになってしまう不具合を解消したいと思います。 IIIF画像とテキストの応用にあたり、参考になりましたら幸いです。

2024年8月23日 · 1 分 · Nakamura

Archivematicaのサンプルデータ

概要 Archivematicaのサンプルデータは以下のリポジトリに格納されています。 https://github.com/artefactual/archivematica-sampledata 補足 Archivematicaでは、Standard, Zipped directory, Zipped bagなど、複数の入力タイプをサポートしています。 これらのタイプごとにどのようなファイルおよびフォルダを用意すればよいのか、という際に、上記のリポジトリのデータが参考になります。 例: メタデータを記述したCSVファイルと共に登録する マニュアルの記載箇所は以下です。 https://www.archivematica.org/en/docs/archivematica-1.16/user-manual/transfer/transfer/#transfers-with-metadata 以下にサンプルがあります。 https://github.com/artefactual/archivematica-sampledata/tree/master/SampleTransfers/CSVmetadata 例: Submission documentationと共に登録する マニュアルの記載箇所は以下です。 https://www.archivematica.org/en/docs/archivematica-1.16/user-manual/transfer/transfer/#create-submission 以下にサンプルがあります。「メタデータを記述したCSVファイルと共に登録する」と同じです。 https://github.com/artefactual/archivematica-sampledata/tree/master/SampleTransfers/CSVmetadata まとめ 参考になりましたら幸いです。

2024年8月23日 · 1 分 · Nakamura

ArchivematicaのNormalizationの挙動の確認

概要 ArchivematicaではPreservation planningにおいて、Normalizationなどの設定を行うことができます。この挙動の確認に関する備忘録です。 設定 Normalizationに関する設定は以下で確認できます。 /fpr/fprule/normalization/ 上記では、Purpose がPreservationであるもので、Format がTruevision TGA Bitmapであるものについて、Command に記載があるTranscoding to tif with convertを行う、と指示されています。 実行例 以下を処理の対象とします。 https://github.com/artefactual/archivematica-sampledata/tree/master/SampleTransfers/CSVmetadata 実際にAIPを作成したところ、以下に示すように、入力ファイルはMARBLES.TGAというファイルでしたが、上記の変換ルールに基づき、MARBLES-b9c7a103-220b-4d12-bda5-10cfd892e16a.tifというTIFファイルに正規化されたファイルが含まれていることが確認できます。 まとめ Archivematicaの利用にあたり、参考になりましたら幸いです。

2024年8月23日 · 1 分 · Nakamura

DrupalのFacetsで並び順を指定する

概要 DrupalのFacetsで並び順を指定するための備忘録です。 方法 以下にアクセスすることで、ファセットの設定を変更することができます。 /admin/config/search/facets それぞれのファセットで編集ボタンを押すと、以下の画面に遷移します。 画面下部にFacet sorting という項目があり、カウントおよび名前順を設定することができます。名前順にしたい場合には、Sort by countのチェックを外します。 まとめ Drupalの利用にあたり、参考になりましたら幸いです。

2024年8月23日 · 1 分 · Nakamura