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

Omeka SのOAI-PMHリポジトリのresumptionTokenの不具合への対応

概要 Omeka SのOAI-PMHリポジトリのresumptionTokenにおいて、有効期限内にもかかわらず、以下のように、[badResumptionToken]が出力される事例に遭遇しました。 この不具合への対処方法についてメモします。 対応 以下のファイルについて、$currentTimeと$expirationTimeを比較する処理を加えたところ、有効期限内のtokenが残るようになりました。 p { r i v a $ $ ] f } t a e ) o e p x - r i p > e f i ' g a $ $ i } u = r e e c c e f n e x t h u x / c $ d p C r p ( / t t T i o ( r i ! $ i h o r n $ e r $ a 追 o i k e t e n a e p 加 n s e d e x t t x i - n ' n p T i p - r > s t i i o i > e s = ( r m n r d s e = > ) e e T e e u r ; d i d l m v $ t T = m T e e i a r o e o t L c p u k n k e i e i e e e = e ( s L - , n w n ' t o > s $ o R c s \ e a e a e a D x i s t a s a p p p o r t i $ m o r c $ e r c h n - h e T e u _ s > ( x i d r r e g ' p m T r e ( e o i e o e p $ t a r ( k n o t ( i e ) e t s o ' p d ; n T i k C m T - i t e o h o > m o n n _ k e e r ) t r e x y : r e n 追 p > _ o p ) 加 i t l o r $ o o l s { a e k i e i t x e d r t i p n P o o i s l r n r ' u y ( a , g _ ) t i t ; i $ n o e M k n x a e T p n n i i a s 追 m r g ' 加 e e e , ) d r T ' [ { o ) k - / e > / n g - e 追 > t 加 i ( d ' ( a ) p ) i ; ' ) ; 上記のような対応をしなくてもうまくいくケースがあったので、PHPのバージョン等による違いがあるのかもしれません。 ...

2024年10月10日 · 6 分 · Nakamura

(非標準)Omeka SのOAI-PMH RepositoryモジュールでDeleteレコードを出力してみる

概要 Omeka SのOAI-PMH RepositoryモジュールでDeleteレコードを出力してみましたので、備忘録です。 背景 以下のモジュールを使用することにより、OAI-PMHのリポジトリ機能を構築することができます。 https://omeka.org/s/modules/OaiPmhRepository/ ただ、確認した限り、Deleteレコードを出力する機能はないようでした。 関連モジュール Omekaの標準機能では、削除されたリソースを保存する機能はないかと思います。 一方、以下のモジュールは削除されたリソースを保持する機能を追加します。 https://github.com/biblibre/omeka-s-module-Necropolis 本モジュールを有効化することにより、以下のように、リソースがいつ誰によって削除されたかを記録できるようになりました。 OAI-PMH Repositoryモジュールへの応用 上記のモジュールで作成される削除されたリソースの情報が格納されるテーブルを使って、Deleteレコードの出力を試みます。 以下のファイルのlistResponse関数に追記します。 p { r i v a $ $ $ $ $ $ $ i } t a e i q q q e f e p n t b b u x @ @ i t e - e p 以 ( f v v A i m = > r r 下 $ $ $ $ $ i } } i } i } $ $ $ $ i } } r u a a d t R s y を s s n d e f f f q q p r f e n r r a y e $ e = 追 e e a e x e b b a o e t c p M p i l = 加 t t m 削 l o p ( l 日 ( ( 結 - - g w ( l u t \ \ t a o t e $ t e 除 e a o $ $ s $ 付 $ $ $ $ $ $ 果 > > i s $ $ s i } } $ $ f } i } } r i O D e n s e c n q = i s 済 t i s e q e q フ f q q u q q の s s n r t e f v t o f n o m o r a i m t e b = n p み e p e x b b ィ r b b n b b 制 e e a = o h e e h r e ; n e c M g t R ( w - = g a レ d m M p { I ル o - - t - - 限 t t t w i { ( l r i e R ( l k t a e o e ' > s c コ R h e o = t = タ m > > i > > と M F o c s s $ $ s $ b s a $ $ $ $ $ $ $ e $ $ $ $ $ $ $ s $ $ l a r n r r p o A e e ー e r d s e > > リ ) a s l a s オ a i r o - v m e m E - c h h i h d h v s r t t t t t v e t v i \ i a y o m r x o = I ド s e i e $ m $ a s ン n e ) n e フ x r u = > e e i e l > h e e d e a e e u o o o o o o e i o e s A n g = s e r p : d を o p a M d の d n e グ { d t d t セ R s = n = t r t f t e d 削 a a e a t a r m w k k k k k r f k r t p e e = i k a r d $ u o e e み e d t W P { W P ッ e t t h b h h m o ( 除 d d n d e d b p s e $ e e e e b e b R i \ r $ t a y ( e t = n r s = d l を l W P h a h a ト s R n ( 0 r o ( o e c $ さ e e t e s e E t n c n n n n E ( n E e \ O t $ o _ O ) l h e c i i e 取 e h a e r e r u e e $ ) o = d $ d n u p れ r r i r t r l i > u E E E E l $ E l s A R = h e r r b ; e i $ c e t $ a t 得 t e r r a r a l s w p w = v t m a た - f - a - e o = r l l l l e c l e p d M i n y o j t s s r R o s ) e す e r a e m e m t u a { E = e = e g リ = > i > m > m n ( s e e e e m u e m o a \ $ s t - o e e - e o e r e d る d e m ( e ( e s l P g r ' r = n i ソ s e a p a e $ $ o m m m m e r m e n p E t - i > t c d > t p p y t { R R ( e $ t $ t ( t a i r L ' b ' t n ー $ e r p p n T c t r e e e e n s e n s t n h > t c ' t ' s t o o _ t e e ' t e e e e $ ( g n o i a a $ - a ス t t p = p t o u h n n n n t o n t e e t i s y r ) ; ) e i l s e i s s n e x r x r t $ i a r s p = p t > t の h A = e e - k r i + t t t t - r t - ( r i s e M e ; r n i i x n o o e r p ( p ( h c n t ( t p = p h d o 情 i t n $ n > e s s - - - > > $ \ t - r a a { v g s t p g u u c ( r ' r ' i u a o s I e e i o r 報 s t $ d t d a n o - $ = > > > a ! = a v M y > v n t i s _ o o s r r r ' - f - u s r t r e d n ' n s c を - r t C h C p r > t s s s p = p e a M s i a e c - r r s - c c o i > r > n - s o ) l e d L d - u a O > i h h i h p の c h $ e e e p $ p r n a e c g Q e > e y e > e e p t g o l t > o r ; f n H i R > m s A d b i i s i e 処 + r i t t t t e 0 t e b a n r e e u L g s _ g R R o e t m t i _ r ( : t e s e d e I o u s l - l n 理 e s h A A A n ) h n , g a v L r e o e o = m e e e l m e ' e l l ) $ : i a t c o n $ - c t - d > d d $ a - i t t t d i d e g i o - r c t u e t p p i T ( , ( ' i ; q O f d R o c t d P u e > ( d ( C t t > s t t t C { s C $ r e c c > y a ( r $ d ( o o s y ' ' , s b A i e e r u E e M m ( d $ o $ h h e _ - r r r h - h m r e a g B t ' c e i ' s s _ p n $ n t , I e r c d m l l H e ' o i c d i i R l > i i i i > i e $ L t e u o o e n a o i i r e e f e $ L _ r ' o ' e e e レ n s c d u a l s e i d b b b l d l t a $ o o t i r a t に a t t e ' c r c u i f E s ; r ; n m t ス t t u e m t d - s s o u u u d o d a p e c r R l - i テ i 応 i o o s , r o r n m a R ' d t e e ポ - a m n e e ( > u t c t t t ( c ( d i n a - e d > p ー t じ p r r o o m o t i l R ) s - n d ン > t e t n s $ _ m L u e e e $ u $ a A t t > p e g m ブ y て m y y u ' p ) p i t s _ ' > t E ス c u n i t t h l p i m ( ( ( t m t t d i o g o r e h ル M 、 h - - r O o ; o l ) e N { ) c - n に r s t f - a e i t m e ' ' ' o e o a a t r e s ( t r か a m r > > c m l l ) ; ) O r > t 追 e ' - i > m a s i i n e c c k n k P p y - t i ' ( e ら n e e c c e e i i ; ; _ { e a i 加 a , > e c p d t o t t x o u e t e r t M > ( t o ' p 取 a d p r r . k s s R a p t t c r r ) e L n , - p m r n - n e e a g ' o m O o 得 g i o e e r a _ _ E t p y e ' r ) e ; r i T > i p s E > E f r n e O r e m s す e a s a a e \ r r C e e ) E d e ; a ) m o $ c r l o l c l i M a t m y k e i る r と i t t s E e e O E n l e a t ; i k s r a e r e r e x a g ( e ( a k t - i t e e o n s s R l d { e l t e t e e e t t ' m e m , n e ' k \ _ a o > t o Q Q u t o o D e C m e e E ) n t a i e , e a e a r O a O r \ r g e r u u r i u u S m h e t E l ) ( , t o L n t n $ g m \ m o S y e m y e e c t r r _ e i n e l e $ e n i ( t e t c e e E e o e _ t の _ r r e y c c M n l t d e m { v $ E D s s ) E ) u r k n k t t n R 取 e y y T \ e e A t d ( ' m e e f l a t t ; l ; r a t a ' t a e 得 x B B y I . . T ( ( ' ) e n r r e t S r e s \ i \ ) i m p を p u u p t d d C $ $ h ; n t b o m e i i m o A t E ; n e o 分 o i i e e e e H v v e t ( , m e ' z n e r p y n g s s け s l l m l l , e e a ( ' , n , e g n , i M t s p i る e d d = ' e e r r d ' d $ t ' ) t A a i ' a t _ e e ) t t n b b e i a m $ ( $ , ( $ d n t ) c o m r r : ; e e e ) E r d t e u ' t $ ' s a a y ; e r e ( ( i d d w ; l ' 削 e e t n r o ( c r e p g \ _ y d ' ' t ' ' e ) 除 n s a t e k s u e t t e I i ( i n n e , , M m ; 済 t t d i s e t r s , e r t d \ a e e m e e み i a a l u n r s u r ' e ' N ' c c T ' ' s n レ f m t ) m - i o m $ M ) m , e , r r y : : s t コ i p a ; p > n r p f a ; : c o o p f u a ) ー e ' P t e g ) t r n : ' r f p p e r n g ; ド r , r i x ) ; i o a c d o a o o ' o t e と ' e o p o m g l e p l l l ) m i ( し , $ f n i $ n , e a f o s i i ' l ' て d i T r r T r s a l e s s ) ' N 設 e x o a o o $ ' s u i ) _ _ ) ) o 定 o l , k t w k u ) ) l s ; r r ; ) a e e i s e n ; ; t \ e e ; r i t n o ) n t _ E s s e : e ' n ; ' i n n o o c ' d , ( ) l a t u u o E ) ; ) m i r r r . n ( - : e t デ c c d t s > s y フ e e s $ i t f p \ ォ ' ' n t r o o a N ル ) ) m a y i r i c e ト ; a m - n m d e c は t e > g a ' r f c s g ) t ) o a h p e ( ; p l a t $ ' o s t c D t Y l e h e e o - i ( e I l k m s i d e e - R t g t n d e e i . e - \ s m v d > T o の e " ( i H u み n : ) d : r ) " - ( i c c > ) : e r . f ) s : i o ; \ : t $ r Z c e d m ' l r e a ) a i l t ) s a e ( ; s . t ' ) ' e Y ; ) d - ) E m ; n - t d i \ t T カ y H ス @ - : タ t > i ム r g : エ a e s ン n t \ テ s I Z ィ l d ' テ a ( ) ィ t ) ) e ) ; ; OAI-PMH標準には合致していない実装方法ですが、setにo:deletedを指定すると、削除レコードを返却することができます。 ...

2024年10月10日 · 18 分 · 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

Omeka SでのCSRF: Value is required and can’t be emptyエラーへの対応

概要 Omeka Sにおいて、多くのメディアが関連づけられたアイテムを保存しようとする際、CSRF: Value is required and can’t be emptyというエラーメッセージが表示され、保存が完了しない事象に遭遇しました。 本記事では、このエラーへの対処方法について説明します。 関連記事 以下の記事などで言及されています。既知のエラーのようで、php.iniを変更する必要があると述べられています。 https://forum.omeka.org/t/csrf-value-is-required-and-cant-be-empty/15421 https://github.com/omeka/omeka-s/issues/1472 対処方法 以下にチャットGPTによる回答を掲載します。 php.ini で max_input_vars を設定するには、以下の手順を実行してください。 php.ini ファイルを開きます。php.ini の場所は、環境によって異なるため、以下のいずれかのディレクトリにあることが多いです: /etc/php/8.x/apache2/php.ini (Apache) /etc/php/8.x/cli/php.ini (CLI) /etc/php/8.x/fpm/php.ini (PHP-FPM) max_input_vars の値を設定または変更します。設定するために、次の行を探します。または、存在しない場合は新しく追加します。 m a x _ i n p u t _ v a r s = 1 0 0 0 1000 という値はデフォルトですが、必要に応じて大きな数に変更できます。例えば、5000に変更する場合は次のようにします。 m a x _ i n p u t _ v a r s = 5 0 0 0 php.ini ファイルを保存します。 ...

2024年10月2日 · 1 分 · Nakamura

TropyのデータをOmeka Sにエクスポートする

概要 TropyのデータをOmeka Sにエクスポートする機会がありましたので、備忘録です。 操作方法 末尾に公式のマニュアルの機械翻訳を掲載しています。 使用例 以下、Tropyの画面です。いらすとやさんの画像を利用させていただきます。以下のように、画像へのアノテーションなども行うことができました。 以下はOmeka Sにエクスポートした結果です。切り出した画像などの複数のメディアとともに、新規のアイテムとして登録されました。 所感 全アイテム、および個々のアイテムごとにワンクリックでOmeka Sにエクスポートできる点は便利でした。 一方、現在は新規登録のみに対応しており、同じアイテムで2回エクスポートを行うと、Omeka Sに2つのアイテムが作成されました。 プラグインはJavaScriptで作成されていますので、今後、更新処理を行う機能などの追加を検討したいと思います。 https://github.com/tropy/tropy-plugin-omeka/ まとめ 参考になりましたら幸いです。 以下、公式のマニュアルの機械翻訳です。 Omeka Sへのエクスポート Omeka Sプラグインは現在ベータ版です。 プラグインのインストール Omeka Sプラグインのインストールは複数のステップからなります。 パート1: 準備 プラグインのGitHubリポジトリに移動します。 Omeka Sプラグインを含むZipファイルをダウンロードしますが、解凍しないでください。 パート2: Omeka S内 Omekaの管理パネルに移動し、 ユーザー をクリックします。ユーザーリストの各名前の横に鉛筆アイコンがあります。鉛筆アイコンをクリックしてユーザープロファイルを開きます。ユーザーの追加や編集方法についてはこちらをご覧ください。 ユーザープロファイル内で、 APIキー をクリックします。 新しいキーを追加する必要があります。 新しいキーラベル フィールドに名前を入力し、 Enter キーを押します。 key identity と key credential が生成されるボックスが表示されます。Tropyプラグインのインストールと設定が完了するまで、このブラウザページを閉じないでください。 パート3: プラグインペイン内 Tropyを開き、トップメニューの「Preferences」へ移動します(Windowsでは、 Edit > Preferences )。 「Preferences」で、「Plugins」をクリックします。プラグインペインの下部で、「 Install Plugin 」をクリックします。GitHubリポジトリから保存したプラグインファイルの場所に移動し、それを選択して「 Open 」をクリックします。 これで、Omekaプラグインがプラグインペインに表示されるはずです。「 Enable 」をクリックしてセットアップを続けます。 プラグインを有効にすると開くフォームで、プラグインが正しく動作するためにすべてのフィールドに入力する必要があります。 名前 : Omekaプラグインのインスタンスに任意の名前を付けることができます。Omekaサイトと同じ名前を付けることをお勧めします。 API URL : OmekaインストールのURLをコピーして、< >の間に貼り付けます(山括弧は削除)。http://が一つだけあることを確認してください。Omekaインストール内の個別のサイトにリンクするのではなく、Omeka Sインストールのルートにリンクしてください。 Identity keyおよびcredential key : これらの2つのフィールドは、Omekaインストールでまだ開いているはずのページから取得します。適切なフィールドにコピーして貼り付けます。 これらのフィールドに入力が完了したら、設定が完了です。Preferencesウィンドウを閉じることができます。 ...

2024年8月23日 · 1 分 · Nakamura

Omeka Sのv4.0.4からv4.1へのアップデートに伴うエラー対応

概要 Omeka Sの更新作業にあたり、以下のエラーが発生しました。 Fatal error: Uncaught ArgumentCountError: Too few arguments to function Omeka\View\Renderer\ApiJsonRenderer::__construct(), 0 passed このエラーへの対処方法に関する備忘録です。 対処方法 以下に記載がありました。 https://forum.omeka.org/t/upgrade-from-4-0-4-to-4-1-failed/22281 具体的には、Nextモジュールをアンイストールすることで、上記の不具合を解消することができました。 まとめ 同様のことでお困りの方の参考になりましたら幸いです。

2024年8月1日 · 1 分 · Nakamura

Omeka Sの更新

概要 Omeka Sの更新作業に関する備忘録です。以下の公式ドキュメントも参考にしてください。 https://omeka.org/s/docs/user-manual/install/#updating 事前準備:バックアップ 更新作業の前には、不測の事態に備えてデータベースとファイル一式のバックアップを必ず取得してください。 1. データベースのバックアップ mysqldumpコマンドなどでデータベースのダンプファイルを作成します。 # m y m s y q s l q d l u d m u p m p - u - u d b [ _ D u B s ユ e ー r ザ ー - 名 p ] o - m p e k [ a D _ B s 名 _ ] d b > > [ 出 o 力 m フ e ァ k イ a ル _ 名 s ] _ b a c k u p . s q l 2. ファイルのバックアップ Omeka Sのインストールディレクトリ全体をバックアップ(複製)します。 ...

2024年8月1日 · 11 分 · Nakamura

Omeka SのBulkExportを使って、特定のアイテムの指定した項目のみをエクスポートする

概要 Omeka SのBulkExportを使って、特定のアイテムの指定した項目のみをエクスポートする方法について紹介します。 ここでは、「Table Of Contents(dcterms:tableOfContents)」を持つアイテムのみに限定し、「タイトル(dcterms:title)」と「識別子(dcterms:identifier)」のみをエクスポートしてみます。 関連 以下の記事で、Omeka SのBulkExportモジュールの概要について説明しています。 今回は、具体的な使用例を元に説明します。 方法 以下にアクセスします。 /admin/bulk-export/bulk-export 「Add an exporter」ボタンを押します。 適当なラベルと、フォーマット(Writer)を指定します。 作成後、再度アクセスして、「Writer」タブを開きます。 そこで、「Metadata」項目から、出力したい項目を指定します。 また、「Resource query」項目から、出力したいアイテムを限定します。ここでは、「Table Of Contents(dcterms:tableOfContents)」に何かしらの値を持つ「has any value」を指定します。 以後、この設定を使用することにより、上記の条件に合致するアイテムおよび項目をエクスポートすることができます。 まとめ 検索条件や出力項目を変更して、目的に応じたエクスポートをお試しください。 本記事が参考になりましたら幸いです。

2024年7月31日 · 1 分 · Nakamura

Omeka S IIIF Serverモジュール[3.6.19, 3.6.20]の不具合

概要 Omeka SのIIIF Serverモジュールの3.6.19と3.6.20について、URIの表記が崩れる不具合が確認できました。 具体的には、以下のように、FQDNがおかしくなりました。 https://xxx.yyy.zzz.jp//aaa.bbb.ccc.jp/iiif/3/1234/manifest 対策 本記事執筆時点において、3.6.21はリリースされていないので、3.6.18以前のモジュールを使用することをお勧めします。 まとめ 参考になりましたら幸いです。

2024年7月19日 · 1 分 · Nakamura

OAI-PMHリポジトリからPythonでレコードを全件取得する

OAI-PMHリポジトリからPythonでレコードを全件取得するスクリプトです。参考になりましたら幸いです。 i f i # b # p } r # r p p r d # w p p m r m a a e e r r o a h r r p o p エ s O r s 初 q e i o t 全 i i i o m o ン e A a p 回 p n t a デ l n n r r ド _ I m ' ' o リ = a t ー e # f # t i p } r r t t t r t ポ u - s v m s n ク r ( = = タ o o f a e o ( ( e イ r P e e e s エ R e " の T レ r r k r s o " l r q x ン l M = r t t e ス e d S E [ 取 r コ e e t a p t 全 e e u m ト H b a ' ト q _ e T ] 得 u ー r i p # d s n o b m ' o 件 n q e l の = { ' d : = の u r n . e ド e d r a u _ k r s v r n = 取 ( u s . 定 リ : a 準 e e d f : の c e i 他 t m e e e e e s 得 d e t e 義 ' ク t ' r 備 s q i r 処 o n n の a p l n a = r s e E が a s s t h エ ' a 9 e t n o 理 r t t デ . t e _ k b u T 完 t t r t ス L P 7 q ( = g m d i ( ー a i m e { ' m = . 了 a s i e t ト i r 5 u ' s f f タ p o e l : p f し ) m e p の s e 9 e G r r t i i ' も p n n e # t r r ま ) p . s 初 t f 0 s E e e r n e R こ e T t m ' i e o し o E : 回 R i ' t T q q i r e こ n o e ト L o q m た r l / 実 e x s ' . u n r c で d k = n ー i n u s 。 t e / 行 c ' . , p e g o = o 処 ( e t ク s T e t " m c o : g r s ( o r 理 r n r ン t o s r ) R e u r e b e t r t r d 可 e の o i が R k t i e n r d ' t a p e . e 能 c 取 o s な e e s n q t a s c ( s a t s f c I o 得 t い c n . g u T t ' u b e r o p i o D r と . N 場 o ' g ( e r i , r a _ e : o n r : d 次 f o 合 r : e r s e o a s u ( " n d d ) の i n 、 d t e t e n t e r ) , s a . { リ n e ル s t ( s . i _ l e l f i ク d ー ' o b p a l o u , p . l i d エ ( o プ , k a o s i n r p r c ( n e ス ' r を e s n b ' l a e o ' d n ト . 終 n e s E r , , r p n . ( t の / n 了 _ _ e T a a a t / ' i 実 / o e u . r p m r e . f 行 { t l r c y a s e n { / i h e l o . r = d t h / e t t m , n t a p _ ) t { r t o e t . m a r t h } p k n p e u s r e p t ' : e t a n - = a q : t ) / n . r t t p m . / p / _ t a ) o a s u / : w e e m k r ) r w / w l x s y a l w / w e t = o m ) w w . m p . s . w o e a a ) o w p n r c # p . e t a . e o n . m j U n p a t s p R a e r e ) / L r n c x o を c a h t a 出 h r i : i 力 i c v ' v h e e i s s v . . e o o s r r . g g / r O O g A A / I I O / / A 2 2 I . . / 0 0 2 / / . } } 0 r r / e e } s c i u o d m r e p d n t ' t i ) i o : f n i T e o r k ' e ) n . ' t ) e x t

2024年7月14日 · 5 分 · Nakamura

Omeka SのOaiPmhリポジトリモジュールにおいて、アイテムが公開されいているサイトページのURLを取得する

概要 Omeka SのOaiPmhリポジトリモジュールにおいて、アイテムが公開されいているサイトページのURLを取得する方法に関する備忘録です。 背景 以下の記事で、OaiPmhRepositoryを使った独自語彙の作成方法を紹介しています。 https://nakamura196.hatenablog.com/entry/2021/07/25/222651 こちらも参考にしてください。 アイテムが公開されいているサイトページのURLの取得 修正前 あるカスタマイズ事例において、以下のようにサイトページのURLを取得していました。以下は、Clean Urlモジュールにおいてdcterms:identifier以外が設定されている場合にはうまくいきません。また、/s/db/record/といったハードコーディングが見られます。 i } f ( $ $ t i h t i e s m - - > > a v p a p l e u n e d ( N e " w d E c l t e e m r e m n s t : ( i $ d o e a n i t , i f ' i c e u r r " a t ) i o ) n : { r e l a t i o n ' , s e l f : : p r e f i x . " / s / d b / r e c o r d / " . ( s t r i n g ) $ i t e m - > v a l u e ( " d c t e r m s : i d e n t i f i e r " ) - > v a l u e ( ) ) ; 修正後 以下のようにシンプルに記述することができました。これにより、当該アイテムが複数のサイトで公開されていても対応することができます。 ...

2024年7月14日 · 2 分 · Nakamura

Chromeでサイズが大きい動画が再生できない

概要 Chromeにおいて、サイズが大きい動画が再生できないことがありました。一方、Safariでは再生できました。 開発者ツールで確認すると、ダウンロードがキャンセルされていました。 ビューア部分は以下のようになっています。 < v s i v d u i e r d o c e e o c > o s n r t c r = o " l h s t = t " p c s o : n / t / r o o m l e s k " a . p a r w e s l . o l a d d a = s " . n j o p n / e f " i l s e t s y / l o e r = i " g w i i n d a t l h / : c 4 6 8 2 6 0 f p e x 4 ; a e h 8 e d i 9 g 2 h 6 t 0 : 3 4 4 6 6 7 5 8 p f x a ; 1 " 1 b w 0 i d d 6 t b h 2 = f " d 1 5 0 5 0 b % 0 " e 6 h 9 e 5 i . g m h p t 4 = " " 1 t 0 y 0 p % e " = > " v i d e o / q u i c k t i m e " t i t l e = " u n d e f i n e d " > このHTMLは、以下の記事で紹介した、Omeka S + IIIF Serverの組み合わせによって作成されたものです。 ...

2024年7月4日 · 2 分 · Nakamura

Omeka SのSetEnv APPLICATION_ENVのproductionとdevelopmentの違い

Omeka Sでのエラー詳細の表示を有効にする手順は次の通りです。この設定を行うことで、「Omeka S has encountered an error」というページに具体的なエラーメッセージと詳細が表示されるようになります。また、PHPレベルのエラーや警告もページ上に表示されるようになります。これは開発中に問題の特定と解決を容易にするためのものですが、セキュリティ上の理由から本番環境では使用しないことが推奨されます。 エラー詳細の表示を有効にする手順 .htaccessファイルを見つける : Omeka Sのインストールフォルダのメインディレクトリに.htaccessファイルがあります。このファイルはWebサーバーの設定をカスタマイズするために使用されるものです。 .htaccessファイルを編集する : .htaccess ファイルをテキストエディタで開きます。 ファイル内の次の行を探します。 S e t E n v A P P L I C A T I O N _ E N V " p r o d u c t i o n " * この行を次のように変更します。 S e t E n v A P P L I C A T I O N _ E N V " d e v e l o p m e n t " 変更を保存してサーバーを再起動する : ...

2024年7月4日 · 1 分 · Nakamura

Omeka S GoogleAnalyticsモジュールの不具合対応

概要 Omeka Sにおいて、Google Analyticsを有効するにするためのモジュールとして、Google Analyticsがあります。 https://github.com/Libnamic/Omeka-S-GoogleAnalytics/ 本モジュールを有効化した際、以下のエラーメッセージが表示されるケースがありました。 Undefined index: additional_snippet in (...) /modules/GoogleAnalytics/Module.php on line 316 これについて、以下のIssueも上がっていました。 https://github.com/Libnamic/Omeka-S-GoogleAnalytics/issues/9 本件の対応方法について共有します。 対応方法 以下のように変更します。 https://github.com/Libnamic/Omeka-S-GoogleAnalytics/pull/10/commits/0123ce557d0f38834c5c37fa1ac9c986c87cbc90 具体的には、以下です。 変更前 i } i } f f ( ( e $ $ i e $ $ i m s s f m s s f p e e p e e t t t ( t t t ( y t t $ $ y t t $ $ ( i i s e ( i i s e $ n n e x $ n n e x e g g t t e g g t t x s s t r x s s t r t i a t i a r = = n _ r = = n _ a g s a g s _ $ $ s n _ $ $ s n s t s i s t s i n h e ! p n h e ! p i i t = p i i t = p p s t e p s t e p - i n t p - i n t e > n u e > n u t g g l = t g g l = ) e s l ) e s l ) t - ) $ ) t - ) $ S > s S > s { e g e { e g e r e t r e t v t t v t t i ( i i ( i c ' n c ' n e g g e g g L o s L o s o o [ o o [ c g ' c g ' a l a a l a t e d t e d o a d o a d r n i r n i ( a t ( a t ) l i ) l i - y o - y o > t n > t n g i a g i a e c l e c l t s _ t s _ ( ' s ( ' s ' , n ' , n O i O i m p m p e p e p k ) e k ) e a ; t a ; t \ ' \ ' S ] S ] e ; e ; t t t t i i n n g g s s ' ' ) ) ; ; 変更後 i } i } f f ( ( e $ $ i e $ $ i m s s f m s s f p e e p e e t t t ( t t t ( y t t $ i } } y t t $ i } } ( i i s f ( i i s f $ n n e e $ n n e e e g g t A ( l e g g t A ( l x s s t s i $ s $ x s s t s i $ s $ t i s s e e e t i s s e e e r = = n u s x x r = = n u s x x a g m e t { t a g m e t { t _ $ $ s i t r r _ $ $ s i t r r s t s n ( a a s t s n ( a a n h e ! g $ _ _ n h e ! g $ _ _ i i t = s s s i i t = s s s p s t t e n n p s t t e n n p - i n h t i i p - i n h t i i e > n u i t p p e > n u i t p p t g g l s i p p t g g l s i p p ) e s l n e e ) e s l n e e ) t - ) i g t t ) t - ) i g t t S > s s S > s s { e g [ = = { e g [ = = r e p ' r e p ' v t a a $ v t a a $ i ( r d s ' i ( r d s ' c ' t d e ; c ' t d e ; e g i t e g i t L o o t t L o o t t o o f i i o o f i i c g o n c g o n a l t n g D a l t n g D t e h a s e t e h a s e o a e l [ f o a e l [ f r n _ ' a r n _ ' a ( a c s a u ( a c s a u ) l o n d l ) l o n d l - y d i d t - y d i d t > t e p i > t e p i g i p t v g i p t v e c w e i a e c w e i a t s h t o l t s h t o l ( ' e ' n u ( ' e ' n u ' , r ] a e ' , r ] a e O e ) l O e ) l m _ i m _ i e y & s f e y & s f k ) o & n k ) o & n a ; u i ' a ; u i ' \ ! p a \ ! p a S h e p d S h e p d e a m e d e a m e d t n p t i t n p t i t d t ' t t d t ' t i l y ] i i l y ] i n e ( ; o n e ( ; o g $ n g $ n s t s a s t s a ' h e l ' h e l ) e t _ ) e t _ ; t s ; t s e i n e i n x n i x n i t g p t g p r s p r s p a [ e a [ e ' t ' t s a ' s a ' n d n d i d k i d k p i e p i e p t y p t y e i e i t o i t o i n s n s a a l n l n _ o _ o s t s t n n i s i s p e p e p t p t e e t t ' ' ] ] ) ) ) ) { { まとめ 上記の変更が完全に正しいか自信はありませんが、プルリクエストも出しておきました。 ...

2024年7月3日 · 6 分 · Nakamura

Docker版のOmeka SでCORS対応を行う

概要 Docker版のOmeka Sで、以下の記事のようにCORS対応を実施した際、サーバエラーが発生しました。その備忘録を記載します。 Dockerfile 以下のようなDockerfileを対象とします。 F L R E R R # R R # A R & & & & C # C R & & & & & & V C R A U N U U U U R U & & & & O O U & & & & & & O M O B N V N N P N N D G N P C P N L D M E H o u r r m Y o Y r l r l c f U L a D a a z l l l i u w P d d w v w n m m v n m m n m n h i M [ p 2 E p p l i i i m n g o o n e g z f k o n E " h m e B t t i b b b a z e e c c l r e i - i / d - - - w d a p a n I - - b p j f g i t x k k o s t p v r v . g d i v s R s n p : i m A g g 1 n p r e p t e e a i a f a h u a r a f v a a n o N e e g g e e m e r r d o h - r r t r t r - v a c p t d _ t t - - g e a \ n - - n t q / / a e a - v v R a r h a a F d d - t g s p p O = t w w c b p w a v a r / e c i r R - i e e d y i i h h m 4 p w a w c a w r a r w / w 2 h n e O q n v v e p c o p p e . s v w r w e o s w r w w w - e e w N q s v e k n - - k 1 : a / / s l e v w w w w w f r r T t 6 s e e a . / r w o s u . a h w w w - w / o = i E u a - \ x x - 1 / m w m m i r t w w w d / h r " t N p l d t t s g w e w e e n / m / w a h t e S e D d l e - - i w k / k v s i w l h h t t m g a a v i c t w a h a a w / t h t a m l r t n t - n o h / - t - r a w c m t m : l / o o o e y s n u o s m s / n v / o l m l w / v u r n t f b m - l w d a h n / l w v o n u i & \ a i . e $ w r t f v w o l d n & l g c k { w p / m i f o - l u " N t l u o a v v / e w l g l i l d u m ] a e a r m - e a h r w / / u l u a m e k r p - e / s r r t m w d m e m t e / a a t j o - s / m i / o a e s e a / m c - $ g m $ i w l s h l t / / / u t g ( d e { o w / s t u a c f - r i e n k v n w . i m m b o i v t a v t p a e } / h o l e a n l a y e r - / r . h t n / / s f e r p < - o w o s z t a s f e i s e n q c i m i i m c o i . g w a q ) t e o p l c l l i / w f . h k n / e u e n d w k - i - a } \ s m s i a v / - a y c j - . s e t a h e m o p s z \ a r t x u u n e / i c b / m e r p v g r p o a w l c a g = e n s w / . r p / l - f e w c 1 a d u e d i . h 2 d o s a g i h m 6 e r s / n t o 3 p / e v i m d @ d i s a l g o n / r / 6 m _ c d v f 0 a m l w a i 0 i y u w w r l l s d n w / e { . q e l w s } c l / w o a w \ \ m m d / ; > y - / h " s w v t q i $ m l t { l i h v / - e c g f r o d r s n e i f e o i t n g y } / p / d e o a = m t / e a u k b s a a r - s / s e i - . n $ i c { n l v i u e d r \ e s / i o n } . z i p - O v a r / w w w / o m e k a - s - $ { v e r s i o n } . z i p \ 原因と対策 以下を追記する必要がありました。 ...

2024年7月2日 · 6 分 · Nakamura

Omeka SのBulkImportを使用する際の設定例

概要 Omeka SのBulkImportを使ってデータの一括登録を行う際、登録方法の各種設定を行うことができます。 これはアップロードの都度、設定することもできますが、事前に登録しておいた設定を使用するようにすることで、作業者によるミスなどを軽減することができます。 ここでは、登録済みのアイテムに対して、IIIF画像を紐づける際の、一括登録用の設定例について紹介します。 アイテムの例 以下のように、dcterms:identifierにsampleを持つアイテムを作成しておきます。 設定 以下にアクセスします。 /admin/bulk/bulk-import 登録するフォーマットに合わせて、「CSV - Medias」または「OpenDocument spreadsheet (ods) - Medias」の編集アイコンをクリックします。 Importer タブにおいて、MapperをManualに設定します。これにより、登録時にマッピング結果を確認できるように、マッピングミスの有無などを確認できるようになります。 またProcessor タブにおいて、Identifier to use for linked resources or updateをdcterms:identifierに設定します。これにより、CSVやODSファイルにおいて、メディアを紐づけるアイテムをdcterms:identiferで指定できるようになります。 データ例 以下のようなデータを用意します。 iiif o:item dcterms:source https://dl.ndl.go.jp/api/iiif/3437686/R0000001/info.json sample https://dl.ndl.go.jp/api/iiif/3437686/R0000001/info.json CSVまたはODSファイルの項目の指定方法については、以下などを参考にしてください。 https://nakamura196.hatenablog.com/entry/2021/07/28/080952#アイテム マッピング表は以下にあります。 https://gitlab.com/Daniel-KM/Omeka-S-module-BulkImport/-/blob/master/data/mappings/fields_to_metadata.php 登録 Step 1/4: Reader において、ファイルを選択します。 (基本的には作業不要)Step 2/4: Mapper において、登録対象のリソースの数や、マッピング結果に問題がないかを確認します。 (基本的には作業不要)Step 3/4: Processor において、Identifier to use for linked resources or updateで先に設定した値が登録されているかを確認します。 (作業不要)Step 4/4: Confirmation において、画面右上の「Start import」ボタンを押します。 ...

2024年7月2日 · 1 分 · Nakamura

Omeka SのBulkImportモジュールの不具合

概要 PHP 8.1.29とOmeka S version 4.0.4の組み合わせにおいて、BulkImportモジュールを使用した際、以下のエラーが発生しました。 F S # a t 0 t a a c / l k h o e t m r r e r a / o c x r e x : : x / U w n w c w a / u o g m h e t k a T - y … p e E r r o r : m b _ s u b s t r ( ) : A r g u m e n t # 1 ( $ s t r i n g ) m u s t b e o f t y p e s t r i n g , n u l l g i v e n i n / h o m e / x x x / w w w / o m e k a - s / m o d u l e s / B u l k I m p o r t / s r c / P r o c e s s o r / R e s o u r c e P r o c e s s o r . p h p : 1 0 7 9 現時点で、原因までは特定できていませんが、対策を紹介します。 ...

2024年7月2日 · 2 分 · Nakamura

Omeka SのIIIF ServerモジュールでのCORSエラー

概要 Omeka SのIIIF Serverモジュールを使ってIIIFマニフェストを配信した際、外部のビューア等で以下のCORSエラーが発生しました。 A c c e s s t o f e t c h a t ' h t t p s : / / x x x / i i i f / 2 / 0 9 f d 2 9 d 5 - 8 4 9 7 - 4 d e f - a 6 4 d - c a 1 0 4 2 8 4 f 9 0 d / m a n i f e s t ' f r o m o r i g i n ' h t t p s : / / u n i v e r s a l v i e w e r . i o ' h a s b e e n b l o c k e d b y C O R S p o l i c y : N o ' A c c e s s - C o n t r o l - A l l o w - O r i g i n ' h e a d e r i s p r e s e n t o n t h e r e q u e s t e d r e s o u r c e . I f a n o p a q u e r e s p o n s e s e r v e s y o u r n e e d s , s e t t h e r e q u e s t ' s m o d e t o ' n o - c o r s ' t o f e t c h t h e r e s o u r c e w i t h C O R S d i s a b l e d . ...

2024年7月2日 · 3 分 · Nakamura