Omeka Classicでコレクションを一括削除する方法

概要 Omeka Classicでコレクションを一括削除する方法の一例を紹介します。Omeka Classic (Version 3.1.1)では、コレクションを複数選択して削除するGUIは提供されていません。アイテムについては、同機能が提供されています。 そこで、APIを用いてコレクションの一括削除を行います。 APIキーの取得 以下を参考に、APIの有効化とAPIキーの発行を行います。 https://omeka.org/classic/docs/Admin/Settings/API_Settings/ 具体的には、まず以下のページにアクセスします。 /admin/settings/edit-api そして、ユーザ毎のページにアクセスして、「API Keys」のタブを選択します。「New key label」からAPIキーを発行します。 /admin/users/api-keys/1 Pythonスクリプト 以下のようなPythonスクリプトにより、コレクションの一括削除を行うことができます。以下では、アイテム数が0のコレクションのみを削除するように設定しています。 i a e p } # u c f m p n a r o o p i d r コ l l r # i i o _ p a レ l t f r k o m " ク = e c コ e # r t e i s k シ c o レ m i e y n e ョ f t l ク s ア t u q r t = y ン " i l シ _ イ e r u e = " 一 { o e ョ c テ m l e q = { : 覧 e n c ン o ム s _ s u " の n s t に u 数 _ c t e < " a 取 d i 含 n が c o s s 取 h p 得 p = o ま t 0 o l . t 得 t i o n れ の u l d s し t _ i r る = 場 n e e た p k n e i ア 合 t c l A s e t q n イ c t e P : y } u テ o = i t I / / e c ム l = o e キ / c s o 数 l n ( ー e o t l を e 0 f > x l s l 取 c : = " " a l . e 得 t { m e g c i c u # p c e t o o r l t t i n l l 要 e i ( o [ l _ 変 . o u n " e c 更 o n r s i c o r s l : t t l g " , e i l / m o e o p s n c m a " [ t e r ] " i k a [ u o a m " r n / s c l } a = o " " p p u ] , i a n " r t p a " a # m ] r s a 要 ) m 変 . s 更 j = s p o a n r ( a ) m s ) まとめ Omeka Classicでコレクションを一括削除する際の参考になりましたら幸いです。 ...

2023年6月27日 · 2 分 · Nakamura

ArchivematicaのAPIを用いて、TransferからAIPのダウンロードまでを行う。

背景 ArchivematicaのAPIを用いて、TransferからAIPのダウンロードまでを行うことができましたので、メモします。 以前、ArchivematicaのAPI利用と、Storage ServiceのAPI利用をそれぞれ記事にしました。 今回は、上記を組み合わせて、TransferからAIPのダウンロードまでを行います。 方法 以下のノートブックに方法を記載しました。 https://colab.research.google.com/github/nakamura196/ndl_ocr/blob/main/ArchivematicaのAPIを使ってみる.ipynb まとめ ArchivematicaのAPI利用にあたり、参考になりましたら幸いです。 今後は、サーバへの処理対象ファイルのアップロードや、上記のAPIを使用したフロントエンドの開発にも取り組みたいと思います。

2023年6月16日 · 1 分 · Nakamura

DrupalとAmazon OpenSearch Serviceを接続する

概要 DrupalとAmazon OpenSearch Serviceを接続する機会がありましたので、その備忘録です。以下の記事が参考になりました。 https://www.acquia.com/jp/blog/intergration-with-drupal-and-elasticsearch モジュールのインストール drupal/search_apiとdrupal/elasticsearch_connectorに加えて、nodespark/des-connectorをインストールする必要がありました。 (バージョンの指定方法など、改善の余地があるかもしれません。) c c c o o o m m m p p p o o o s s s e e e r r r r r r e e e q q q u u u i i i r r r e e e " ' " n d d o r r d u u e p p s a a p l l a / / r s e k e l / a a d r s e c t s h i - _ c c a s o p e n i a n : r e ^ c c 1 h t . _ o 2 c r 9 o : ' n ^ n 7 e . c x t - o d r e v ^ " 7 . 0 @ a l p h a " 続けて、以下で有効化します。 ...

2023年4月13日 · 4 分 · Nakamura

Nuxt 3のserver/apiでjsonファイルを操作する方法の一例

Nuxt 3のserver/apiでjsonファイルを(インポートして)操作する方法の一例です。以下の記事を参考にしました。 https://github.com/nuxt/framework/discussions/775#discussioncomment-1470136 型定義などの改善の余地は多々ありますが、以下のような書き方で動作確認ができました。 e } x ) p c c c c c c r } ; a o o o o o e s r n n n n n n t " } y t s . s 以 s s s s u h n t d t 下 t t t t r i " } " c d e の n t t , h / e i f i 参 q p s i s o " i a f t a t 考 u a i t { " t v t w a e u e リ e g z e : a a s a u m l m ン r e e m l l " i l s t s ク y : : s { " u : t t _ を _ を : : e : つ t 参 = n n " i を d け o 照 u u a { : t 使 e a る t し g m m n e 用 f n 点 a て e b b y i m し i y に l く t e e [ t s て n 注 : だ Q r r ] e い e = 意 さ u m ま E a い e = = = s す v a n 。 r _ 。 e w y y N N i t n a [ ( u u t o t i ] e m m e t H t v b b m a a = e e e s l n i n r r _ . d m i t ( ( t l l p t ) q q o e e o e u u t n r r m e e a g ( t s r r l t a ( _ y y . h s ' . . . s , y ~ d p s l n / e a i i c a f g z c s a e e e ( s u ) ) ( e e l ( v t t p e s a n / g t i 1 2 e ) n ; 0 d ; - = e > x 1 . ) { j s o n s ' i ) z e , p a g e s i z e ) ; 上記により、例えば/api/items?page=2&size=40のようなクエリを用いることで、インポート元のjsonファイル(~/assets/index.json)の一部を返却することができました。パスはassets以外でも大丈夫のようですが、十分に検証できていません。 ...

2022年10月16日 · 2 分 · Nakamura

Hugging Face SpacesでJSONを返却する

以前、Hugging Face SpacesとYOLOv5モデル(NDL-DocLデータセットで学習済み)を使った推論アプリの構築を行いました。 今回は上記のアプリを一部変更して、以下の差分に示すように、JSON出力を追加しました。 https://huggingface.co/spaces/nakamura196/yolov5-ndl-layout/commit/4d48b95ce080edd28d68fba2b5b33cc17b9b9ecb#d2h-120906 これにより、以下のノートブックのように、返却結果を利用した処理が可能になりました。 https://github.com/nakamura196/ndl_ocr/blob/main/GradioのAPIを用いた物体検出例.ipynb 他により良い方法があるかと思いますが、参考になりましたら幸いです。

2022年8月16日 · 1 分 · Nakamura

The New York Public LibraryのAPIを使ってみる

概要 The New York Public Libraryでは、Digital Collections APIを提供しています。 http://api.repo.nypl.org/ 本記事では、このAPIの使い方の一例について説明します。 サインアップ まず以下のリンクをクリックして、サインアップを行います。 以下のようなフォームが表示されますので、必要な情報を入力します。 入力後、 Welcome to NYPL API という件名のメールが届きます。このメールの中に、 Authentication Token が記載されています。 メタデータの抽出 The New York Public Library Digital Collections APIではさまざまなendpointが提供されています。今回は以下のendpointを利用して、各アイテムのメタデータを抽出してみます。 http://api.repo.nypl.org/api/v1/items/item_details/[:id] 具体的には、以下のアイテムを例としてます。 https://digitalcollections.nypl.org/items/510d47e1-d3b0-a3d9-e040-e00a18064a99 そして、以下に示したメタデータの抽出を試みます。 以下のGoogle Colabにメタデータの抽出サンプルプログラムを作成しました。参考になりましたら幸いです。 https://colab.research.google.com/drive/1sO9plTqraPwdBF61sArlD6k6pZRpfJL8?usp=sharing 上記プログラムを実行すると、例えば以下のようなメタデータが得られます。 { } " " " " " t c d p i i o a l d t l t a e l l e c n e e I e t " c s " i : t s : f i u i " o e " e G n d K r e " " y " n : : o : j t i " " o " 1 " H m > 6 , a o 5 d n G 0 e o e s g n ( a j s C t i t o a a l r m r l i o t e : n ) c t S g 1 i a a 7 o k t 0 n a a 0 k r G i i ( u e i n : n d o d e S ) m a " I a k , D k a i k ( | i l T e h n g e o a c T m y a a ) l k : e i " 4 o , 4 f 3 | G H e a n d j e i s " , s t r u c I D ( l e g a c y ) : 7 4 7 8 7 7 | U n i v e r s a l U n i q u e I d e n t i f i e r ( U U I D ) : c e 4 b c d 9 0 - c 6 0 d - 0 1 2 f - 9 d 1 9 - 5 8 d 3 8 5 a 7 b c 3 4 " まとめ APIを利用したデータ活用の参考になりましたら幸いです。 ...

2022年4月23日 · 2 分 · Nakamura

IIIF Presentation APIのバリデーション方法とその実例の紹介ほか

概要 先日、以下の記事に書いた通り、IIIFのマニフェストファイルの配信と、IIIF Content Search APIを提供するアプリを開発しました。 ただそれぞれ、APIに準拠しない記述をしていた部分がありました。 本記事では、その修正内容を共有するとともに、バリデーションを行うPresentation API Validatorの使用方法について、実例とともに紹介します。 https://presentation-validator.iiif.io/ マニフェストファイルの修正 上記のPresentation API Validatorのサイトにアクセスし、URL of Manifest to ValidateにマニフェストファイルのURLを入力し、対応したAPIのバージョン(今回は3.0)を選択します。 その結果、以下のように、エラーがある場合には、その内容が表示されます。 冒頭で紹介した私が開発したアプリが配信するマニフェストファイルは、そのサイズが大きいため、そのまま本バリデータにURLを入力すると、検証結果が表示されるまで時間がかかります。 そのため、マニフェストファイルの1canvas目のデータのみを残したマニフェストファイルを別途作成しました。それをバリデータにかけた結果、59件のエラーメッセージが表示されました。 以下、それぞれのエラー内容への対応方法を記述します。 Error 1 of 59. Message: ['https://ocr.aws.ldas.jp/v1/manifest/3437686.json'] is not of type 'string' before { } " ] i " d h " t : t p [ s : / / o c r . a w s . l d a s . j p / v 1 / m a n i f e s t / 3 4 3 7 6 8 6 . j s o n " 誤って、マニフェストファイルのidを配列の形で与えていました。以下のように修正しました。 ...

2022年4月6日 · 7 分 · Nakamura