【Omeka S モジュール開発】IIIFマニフェストにIIIF Content Search APIのURIを追加するモジュールを開発しました。

概要 IIIFマニフェストにIIIF Content Search APIのURIを追加するOmeka Sのモジュールを開発しました。 github.com IIIF Content Search APIを使用することにより、以下のように、Universal Viewer等でテキスト検索が可能になります。 本モジュールは、Omeka Sとは独立して提供されるIIIF Content Search APIを利用します。そのため、本モジュールを使用するには、このAPIの提供環境を別途用意する必要があります。この環境構築のコストに課題が残りますが、すでにIIIF Content Search APIの提供環境をお持ちで、かつOmeka Sでの利用を検討している方の参考になれば幸いです。 (IIIF Content Search APIの提供環境の構築については、改めて記事にできればと思います。) 背景 Omeka SのIIIF Serverモジュールは、Omeka Sに登録されたメタデータから、IIIFマニフェストファイルなどを生成するモジュールです。Omekaの様々なモジュールを開発されているDaniel-KM氏が主に開発されています。 omeka.org 本IIIF Serverモジュールの使い方については、以下で紹介しています。 youtu.be 本モジュールは、IIIF Presentation API 3.0への対応やIIIFコレクションの出力、目次の生成など、IIIF Presentation APIに関する様々な機能を提供していますが、本記事執筆時点(2022-02-11)において、IIIF Content Search APIに関する機能は提供していません。 なお、今回開発したモジュールとは別に、以下のIIIF Content Search API関連モジュールがあります。こちらはOmeka Sの内部でIIIF Content Search APIの提供環境を構築する大変便利なモジュールですが、PDFファイルに対するOCRテキストの利用が前提となっており、用途が限定的です。 github.com 機能紹介 本モジュールが提供する機能は単純で、以下に示すように、IIIF Content Search APIのURIを格納したプロパティを指定する設定機能を提供します。ここで設定したプロパティにURI形式の値を持つアイテムについて、IIIFマニフェストにIIIF Content Search APIのサービス情報を追記します。 生成されるIIIFマニフェストの例を以下に示します。(Omeka SのIIIF Serverモジュールによって生成された)IIIFマニフェスト内にIIIF Content Search APIのサービス情報が含まれていることを確認できます。 https://iiif.dl.itc.u-tokyo.ac.jp/repo/iiif/d507a810-cff7-4168-bc10-70a32a55920f/manifest ...

2022年2月11日 · 1 分 · Nakamura

【Omeka S モジュール情報共有】Clean Urlモジュールの不具合と暫定の修正方法

◆ 不具合 Omeka S3 に Clean Url モジュールをインストールし、初期設定を行なったにもかかわらず、サイトのアイテム詳細ページなどにおいて、設定したアイテムの識別子が表示されない(Omekaが自動付与するIDがそのまま表示されてしまう)不具合を確認しました。 ◆ 確認したバージョン OmekaS 3.1.1 CleanUrl 3.17.3.3 ◆ 暫定の修正方法 以下の設定画面において、まず「Skip “s/site-slug/” for default site」にチェックを入れて、画面右上の「Submit」を押します。次に、再度「Skip “s/site-slug/” for default site」のチェックを外して、画面右上の「Submit」を押します。この操作により、「Property for identifier」に設定したプロパティのIDがアイテムの識別子として表示されるようになりました。 ◆ まとめ 同様の不具合でお困りの方の参考になれば幸いです。 なお本件について、GitHubのIssueを作成済です。 https://github.com/Daniel-KM/Omeka-S-module-CleanUrl/issues/9

2022年2月1日 · 1 分 · Nakamura

ジャパンナレッジで検索を行うChrome拡張機能を公開しました。

概要 ジャパンナレッジで検索を行うChrome拡張機能を公開しました。 以下のように、選択した文字列をクエリとして、右クリックからジャパンナレッジの検索結果を表示します。 本記事では、この拡張機能の使い方について説明します。 インストール 以下のページにアクセスして、「Chromeに追加」ボタンをクリックしてください。 chrome.google.com 設定 以下のURLをChromeのアドレスバーに入力し、検索条件の設定を行います。入力項目として、「URL」と「その他のクエリ」の2種類があります。 chrome-extension://cppjkneekbjaeellbfkmgnhonkkjfpdn/options.html URL 検索で使用するジャパンナレッジのURLを指定します。ご自身の環境や契約内容に応じて設定してください。「JK Lib」「JK Personal」ボタンをクリックすると、それぞれのURLが入力されます。 また、例えば東京大学ではEZproxyを使い、学外から以下のURLでジャパンナレッジにアクセスすることができます。このような場合は、URLを直接入力してください。 https://japanknowledge-com.utokyo.idm.oclc.org/lib その他のクエリ この項目では、検索文字列(q1)以外のクエリパラメータを入力します。例えば、「ロベール仏和大辞典」のボタンをクリックすると、当該コンテンツ(cids=42200)に検索対象を限定するクエリパラメータが入力されます。 その他の検索条件の指定方法については、ジャパンナレッジの検索結果のURL等を参考にしてください。 検索 検索したい文字列を選択し、右クリックを行うことで、「ジャパンナレッジでXXXを検索」のメニューが表示されますので、そちらをクリックして検索してください。 まとめ ジャパンナレッジを利用する際の参考になれば幸いです。 ソースコード ソースコードは以下でご確認いただけます。 github.com

2021年9月30日 · 1 分 · Nakamura

Mirador 3のimage tools(画像の回転など)を初期表示で有効にする方法

概要 今回はMirador 3のimage tools(画像の回転など)を初期表示で有効にする方法について説明します。 デフォルトのMirador 3では、Mirador 2ではデフォルトの機能として提供されていた、画像の回転や明度・コントラスト・彩度の調整機能は提供されていません。 これを実現するためには、以下のimage toolsというプラグインを追加する必要があります。 github.com 以下、プラグインの導入方法と、設定方法について説明します。 導入方法 image toolsプラグインの導入方法としては、上記のページの他、以下のリポジトリが参考になります。 モダンなフロントエンドビルドシステム github.com vueでの導入方法 github.com Nuxt.jsでの導入方法 github.com 設定方法 各ウインドウに対して、以下の設定が利用できます。 設定値 タイプ 初期値 説明 imageToolsEnabled boolean false プラグインの表示を有効にする imageToolsOpen boolean false デフォルトでimage toolsを開く 例えば以下のページで、image toolsを初期表示で有効にした例をご確認いただけます。 https://github.com/nakamura196/mirador-integration-vue/blob/master/src/App.vue まとめ Mirador 3の導入の参考になりましたら幸いです。

2021年9月16日 · 1 分 · Nakamura

【Omeka S モジュール紹介】Omeka Sで利用可能なIIIF対応ビューア

概要 2021年9月15日時点でOmeka Sのモジュールとして提供されているIIIF対応ビューアをまとめます。 ビューア一覧 Universal Viewer github.com Mirador github.com Diva IIIF Viewer github.com まとめ 以下のページで導入イメージをご確認いただけます。Omeka Sを用いたIIIF画像配信の参考になりましたら幸いです。 diyhistory.org

2021年9月15日 · 1 分 · Nakamura

【機能開発】Omeka SのIIIFモジュールで、目次を加える機能を追加しました。(その2:階層構造を持つ目次の登録)

概要 前回の記事では、Omeka SのIIIF Serverモジュールを用いて、フラットな目次を追加する方法について説明しました。 nakamura196.hatenablog.com 今回は、階層構造を持つ目次を追加する方法について説明します。 公式のマニュアルはこちらにありますが、このマニュアルを和訳した記事も作成しました。不完全な日本語ですが、参考になりましたら幸いです。 nakamura196.hatenablog.com 詳細 前回は、以下の情報を入力することで、フラットな目次を作成しました。 cover,表紙,1 jyo,序,4-6 legend,凡例,6-15 catalogue,總目錄,16-18 toc,目次,19-20 ch1,きりつほ,20-35 ch2,はゝき木,35 各行は、以下の意味を持ちます。 {id}, {label}, {canvasIndexOrRangeId1};{canvasIndexOrRangeId2};...; {canvasIndexOrRangeIdN} ここでは、目次(id: toc)について、その内容を構造化します。 具体的には、まず、19コマ目を目次の内容(id: toc0)として、目次(id: toc)に含まれる形とします。 また、「きりつぼ」(id: ch1)と「はゝき木」(id: ch2)についても、目次(id: toc)に含まれるように修正します。 具体的には、以下のデータを用意します。上記のマニュアルにも記載がありますが、インデントは、階層構造をみやすくするために用いており、モジュール内の処理では無視されます。 cover,表紙,1 jyo,序,4-6 legend,凡例,6-15 catalogue,總目錄,16-18 toc,目次,toc1;ch1;ch2 toc1,内容,19-20 ch1,きりつほ,20-35 ch2,はゝき木,35 このデータをIIIF Serverモジュールの「Property for structures」として設定したプロパティ(今回の例では、dcterms:tableOfContents「Dublin Core: 目次」)の値として登録することで、下図のように、階層構造を持つ目次を実現することができます。 https://diyhistory.org/nakamura196/s/main/item/15 まとめ 今回は、Omeka SのIIIF Serverモジュールを用いて、階層構造を持つ目次を追加する方法について説明しました。今回は単純な階層構造を作成する例を示しましたが、以下のマニュアルページに記載があるような、複雑な階層構造も作成することができます。 https://github.com/Daniel-KM/Omeka-S-module-IiifServer#input-format-of-the-property-for-structures-table-of-contents 本モジュールを用いた、IIIFマニフェストへの目次情報を追加にあたり、本記事が参考になれば幸いです。

2021年8月13日 · 1 分 · Nakamura

【機能開発】Omeka SのIIIFモジュールで、目次を加える機能を追加しました。(その1:フラットな目次の登録)

概要 Omeka SのIIIF Serverモジュールについて、IIIFマニフェストに目次を加える機能を追加開発しました。以下の、ver 3.6.5.3から本機能が利用可能です。 github.com 本記事では、本モジュールを用いて、目次を追加する方法について説明します。なお、動画でも操作方法を紹介しています。参考なれば幸いです。 youtu.be 詳細 設定 公式の説明は以下にあります。 https://github.com/Daniel-KM/Omeka-S-module-IiifServer#config-options-for-manifest まず、本モジュールの設定画面において、「Property for structures」に指定するプロパティを選択します。ここで選択したプロパティの値に、目次の情報を入力することで、IIIFマニフェストに目次情報を反映させることができます。ここでは、例えば、「Dublin Core: 目次」を選択します。 データ登録 今回は、国立国会図書館で公開されている『校異源氏物語』の一部を例とします。 ここでは、アイテムの登録とBulk Importを用いたIIIF画像の一括登録の方法についても紹介します。Bulk Importの使い方については、以下の記事を参考にしてください。 nakamura196.hatenablog.com アイテムの登録 まず、アイテムを登録します。画面左部のメニューから「アイテム」を選択し、アイテム画面の画面右上部の「新規アイテムの追加」をクリックします。そして、ここでは最低限の情報として、タイトルに「校異源氏物語」、識別子(dcterms:identifier)に「kouigenjimonogatari」を与えます。 画像(メディア)の登録 次に、画像の登録を行います。今回は、IIIF画像を登録する例を紹介します。具体的には、国立国会図書館で配信されているIIIF画像の一部(はじめの35コマ)を登録します。 一括登録用のデータとして、以下のようなCSVファイルを用意します。ポイントとして、列「iiif」にIIIF画像サービスのURL、列「item」に先に入力した「kouigenjimonogatari」を与えます。 https://github.com/omeka-j/Omeka-S-module-BulkImport-Sample-Data/blob/main/media_iiif.csv データの一括登録は、Bulk Importを用います。画面左のメニューから「Bulk Import」をクリックし、「CSV - Medias」をクリックします。そして先に作成したCSVファイルをアップロードして、「Continue」を押します。次の設定画面「Start import」はそのままで、「Continue」>「Start import」を選択して、画像を一括登録します。 アイテムの一覧画面から、先ほど登録した「校異源氏物語」を確認すると、35件の画像が登録されていることを確認できます。 目次の登録 この35件の画像について、目次情報を付与します。ここでは、1コマ目に表紙(id: cover)、4-6コマ目に序(id: jyo)、6-15コマ目に凡例(id: legend)、16-18コマ目に総目録(id: catelogue)、19-20コマ目に目次(id: toc)、20-35コマ目に「きりつぼ」(id: ch1)、35コマ目に「はゝき木」(id: ch2)を与えます。 具体的には、下図のように、プロパティ「目次」を追加して、各行が以下のフォーマットに基づく情報を入力します。 {id}, {label}, {canvasIndexOrRangeId1};{canvasIndexOrRangeId2};...; {canvasIndexOrRangeIdN} または、 {id}, {label}, {canvasIndex1}-{canvasIndexN} 具体的には、以下を入力します。 cover,表紙,1 jyo,序,4-6 legend,凡例,6-15 catalogue,總目錄,16-18 toc,目次,19-20 ch1,きりつほ,20-35 ch2,はゝき木,35 この後、アイテムの公開ページに遷移し、Universal Viewerを確認すると、正しく目次が設定されていることを確認できます。 ...

2021年8月13日 · 1 分 · Nakamura

【機能開発】Omeka SのIIIF Serverモジュールにおけるライセンスプロパティの不具合修正

Omeka SのIIIF Serverモジュールについて、IIIF Presentation APIのバージョン2を使用する際の、ライセンスプロパティにおける不具合を修正しました。 具体的には、以下のIIIF Serverモジュールのライセンスに関する設定において、設定内容がIIIFマニフェストに反映されない不具合を修正しました。 以下の、ver 3.6.5.3から本修正が反映されたモジュールを利用可能です。 github.com 本不具合でお困りの方の参考になれば幸いです。 なお、以下がMerge requestです。 gitlab.com

2021年8月13日 · 1 分 · Nakamura

【和訳】Omeka S IIIF Serverモジュールの目次情報の追加方法

Omeka S IIIF Serverモジュールの目次情報の追加方法に関するマニュアルの和訳です。公式のマニュアルは以下です。 github.com 本モジュールを用いて、IIIFマニフェストに目次情報を追加する際の参考になりましたら幸いです。 Config options for manifest Input format of the property for structures (table of contents) 構造(目次)のプロパティの入力形式 デフォルトの構造は、iiifメディアの単純なシーケンシャルリストです。 目次を使用して複雑なドキュメントの構造を構築するには、特定のプロパティを使用して、必要なjsonを値に入力するか、次の形式のリテラル値を入力します。各行は構造(目次)の一部です。 {id}, {label}, {canvasIndexOrRangeId1}; {canvasIndexOrRangeId2}; ...; {canvasIndexOrRangeIdN} 例: cover, Front Cover, 1 r1, Introduction, 2; 3; 4; 5 backCover, Back Cover, 6 Range ID(行の最初の部分)は、URIの作成に使用されるRangeの名前です。他のインデックスとの衝突を避けるために、数値であってはなりません。スペース、発音区別符号、またはその他の特殊文字を含まない単純な英数字の名前である必要があります(すべてのコーディング規約において非常に安定しています)。「/」を含めることはできません。とにかく、この名前は最後のuriでURLエンコードされます。 さらに、Range IDはすべてのアイテムで一意である必要があります。 入力を省略した場合、行番号が使用されます。その場合、特定のRange名がないことを示すために最初のコンマを残してください。たとえば上記でr1が指定されていない場合、Range IDはr2になります。Rangeを指すrと2行目を指す2から構成されます。ただし、新しい行が挿入されるとURIが変更されるため、この方法はお勧めしません。 各行の2番目の部分は、章などのRangeのラベルです。空の場合、IIIFマニフェスト内容には記述されますが、IIIF対応ビューアなどでは表示されません。 各行の最後の部分は、現在の範囲に含まれる上位のCanvasまたは上位のRangeのリストであるため、基本的には画像とサブセクションのリストです。 ほとんどの場合、Canvasインデックスはメディアの位置です。iiifで使用されているメディアのみが列挙され、アイテムに添付されているpdf、xmlなどの特定のメディアは列挙されないため、添付メディアのリストのOmeka内部位置とは異なる可能性がある点に注意してください。他のインデックスは、Range ID(各行の最初の部分)のリストにある場合、Rangeインデックスとして管理されます。そうでない場合は、Canvasの英数字の名前になります。 最初の行の最初のRange IDは、ツリーのルートです。ルートは1つだけです。複数のルートがある場合(以下を参照)、すべてのルートをブランチとしてメイン範囲が追加されます。 したがって、このリテラル値から複雑な階層的な目次を作成することが可能です。以下は、不完全で誤った例を使用します。 toc, Table of Contents, cover; intro; r1; r2; backcover cover, Front cover, cover intro, Introduction, 2-5 r1, First chapter, 6; r1-1; r1-2; 12 r1-1, First section, r1-1-1; r1-1-2; illustration1; illus2 r1-1-1, First sub-section, 8-9 r1-1-2, Second sub-section, 9-10 r2, Second chapter, 13 backcover, Back cover, "backcover" illustration1, First illustration non paginated, illus1 illustration3, Third illustration non paginated, illus3 iiif v2のjson出力例: ...

2021年8月11日 · 4 分 · Nakamura

Mirador 3をページ内の特定の領域に埋め込む方法

先日、以下の記事で、Nuxt.jsを用いて、Miradorをページ内の特定の領域に埋め込む方法を紹介しました。 nakamura196.hatenablog.com 今回は、Vue.jsなどのフレームワークを使わずに、Miradorを埋め込む方法について紹介します。 具体的には、以下のページのソースコードをご確認ください。 https://nakamura196.github.io/nuxt-mirador/embedded2 上記は単純なHTMLファイルです。 Miradorを画面に埋め込む際、Miradorを表示する要素のID(例:mirador)を指定します。この時、以下のようなCSSを与えることで画面の一部に埋め込むことができます。 #mirador { height: 600px; position: relative; width: 100%; } ポイントは、「position: relative;」です。これを与えないと、heightなどを指定しても全画面で表示されてしまいます。 Mirador 3の利用において、本記事がお役に立つことがあれば幸いです。

2021年8月10日 · 1 分 · Nakamura

Oxygenの自動整形機能においてlbタグの前で改行する方法

概要 本記事では、TEI/XMLを便利に扱うことができるツール「Oxygen XML Editor」において、自動で整形・インデントするルールを変更する方法について紹介します。 特に、行の始まりを示すlbタグの前で改行されるようにすることを目指します。 背景 TEI/XMLを便利に扱うことができるツール「Oxygen XML Editor」において、自動で整形・インデントする機能があります。下図の上部に示しているアイコンです。 本機能を使うことにより、一定のルールに基づいて整形されますが、このルールを編集したくなる場合があります。 例えば、上図は『校異源氏物語』のテキストデータです。行の始まりを示すlb(line beginning)タグがありますが、(私の環境の)デフォルトの整形ルールでは、lbタグが行の途中に入る形で整形されます。 本テキストデータを機械的に処理する際には問題ありませんが、特に人手でテキストデータを作成・編集する際に、lbタグの前で改行されてほしい、というニーズがありました。 整形ルールの編集 Oxygenの「オプション」というメニューから以下の画面を開き、画面左部のナビゲーションから「エディタ」 > 「整形」 > 「XML」を選びます。 下図は、私のデフォルト設定を示します。画面右下の「デフォルト設定」ボタンから、いつでもデフォルト設定に戻すことができます。 これに対して、下図の設定変更を行います。 まず、画面中央部の「要素 間隔」という項目において、右端の「改行」を選び、右下の「追加」ボタンから、lb要素を追加します。この時、「前」という列にチェックが入っていることにより、自動整形時に、lbタグの前で改行されるようになります。 次に、「整形」という項目において、「テキストをそのまま維持」にチェックを入れます。これにチェックを入れないと、マークアップの方法によっては、自動整形するたびに、lbタグの前に空行が入ってしまうことを確認しました。 その他の設定については、必要に応じて試してみてください。 結果 上記の設定を行なった上で自動整形を行うと、下図のように、lbタグの前で改行されるようになりました。 特に人手でTEI/XMLファイルを作成・編集する際に、本記事がお役に立てば幸いです。

2021年8月8日 · 1 分 · Nakamura

Mirador 3をNuxt.jsで使用する方法を紹介するリポジトリを作成しました。

概要 以下の記事で、Mirador 3をVueで使用する方法を紹介しました。 nakamura196.hatenablog.com 上記に続いて、今回は、Nuxt.jsでMirador 3を使用する方法を紹介するGitHubリポジトリを作成しました。 github.com 上記リポジトリにおいて、Miradorをページ全体に表示する例に加えて、ページ内の特定の領域に埋め込む例を用意しています。 https://nakamura196.github.io/nuxt-mirador/embedded 本記事では、上記ページに関する説明を行い、Miradorの使い方の一部について紹介します。 詳細 上記のページは、以下について説明することを意図しています。 Miradorを画面の一部に埋め込む プログラムでカンバスを指定する プログラムでZoomを行う それぞれについて説明します。 なお、ソースコードは以下で確認できます。 https://github.com/nakamura196/nuxt-mirador/blob/master/pages/embedded.vue Miradorを画面の一部に埋め込む Miradorを画面に埋め込む際、Miradorを表示する要素のID(例:mirador)を指定します。この時、以下のようなCSSを与えることで画面の一部に埋め込むことができます。 #mirador { height: 600px; position: relative; width: 100%; } ポイントは、「position: relative;」です。これを与えないと、heightなどを指定しても全画面で表示されてしまいます。 また、以下のスタンフォード大学図書館のMirador 3の埋め込みを例として、Configを設定しました。 https://dlmenetwork.org/library/catalog/oai:N%2FA:Manchester~18~18~162~225617 const config = { id: "mirador", windows: [ { id: 'known-window-id', manifestId: this.manifestId, }, ], window: { allowClose: false, allowMaximize: false, allowFullscreen: true, hideWindowTitle: true, }, workspaceControlPanel: { enabled: false, }, } ポイントは、「workspaceControlPanel」を「enabled: false」にしている点や、「allowClose」「allowMaximize」をfalseにしている点ですが、必要に応じてカスタマイズしてください。 ...

2021年8月7日 · 1 分 · Nakamura

【Omeka S Tips】WindowsでBulkImportモジュールを使用する際の注意点

概要 以下の記事で、CSVファイルを用いたメタデータと画像の一括登録を行うためのモジュール「BulkImport」について紹介しました。 nakamura196.hatenablog.com こちらの記事では、CSVファイルを作成して登録する方法を紹介していますが、macOSでは問題ないものの、WindowsでCSVファイルを作成し、Omeka Sに登録した際、以下のエラーが生じる報告がありました。 File “media_template.csv” has media type “application/vnd.ms-excel”, not “text/csv”. これに対して、ODSファイルで登録することにより、本エラーが解消されました。 以下、本件についての詳細について説明します。 不具合1 CSVファイルでは上記のエラーが発生しましたが、TSVファイルでも以下のエラーが生じました。 File “media_template.tsv” has media type “application/octet-stream”, not “text/tab-separated-values”. 解決策1 この事象に対して、GitHubに以下のIssueがありました。フランス語なので、各種翻訳ツールを利用しながらご確認ください。 github.com 上記では、ODS(OpenDocument Spreadsheet)をお勧めします、と書かれています。なので、ODSファイルで登録してみたところ、エラーが表示されなくなりました。 なお、ODSファイルは、Microsoft ExcelやGoogle スプレッドシートの保存・出力形式の一つとして選択できます。 Bulk ImportモジュールでのODSファイルを用いた登録については、以下の図で示すオプションを選んでください。その後の設定などについては、CSVファイルを用いる場合と同様です。 不具合2 ODSファイルで登録することにより、エラーメッセージは表示されなくなりましたが、WindowsのMicrosoft ExcelでODSファイルを作成した際、一部の(特に)日本語の文字列が抜け落ちてしまう事象が確認されました。 詳細な原因はわかっておらず、またすべてのWindows端末で生じる不具合かは確認できていませんが、Omeka Sを使用している複数のプロジェクトで同様の事象が報告されました。 解決策2 この課題に対する暫定的な対応策として、Google スプレッドシートを用いてデータを作成し、ODSファイル形式でダウンロードしたファイルを使用することにより、上記の一部文字列が抜け落ちてしまう不具合が解消されました。 最善の解決策かはわかりませんが、同様の事象でお困りの方がいらっしゃれば、この方法をお試しいただけますと幸いです。 まとめ 本記事では、WindowsでBulkImportモジュールを使用する際の不具合と暫定的な解決策について紹介しました。 今回ご紹介した方法で、「うまくいった」「うまくいかなかった」ということがあれば、情報共有いただけますと幸いです。 また、他によい方法などがありましたら、お知らせいただけますと幸いです。

2021年8月7日 · 1 分 · Nakamura

【Omeka S Tips】アイテムの新規登録における各サイトへの自動追加の設定について

概要 最新のOmeka Sでは、Omeka Sへのアイテム新規登録時において、サイト毎に自動的にリソースとして登録するか否かを設定できるようになっています。 公式のマニュアルでは、以下に記載があります。 https://omeka.org/s/docs/user-manual/sites/site_settings/#general-settings これはOmeka Sが複数のサイトを管理できる設計となっているため、そのサイト毎に検索対象とするアイテム(リソース)を変更できるようになっています。 ただし、Omeka Sを用いて一つのサイトのみを管理する場合、Omeka Sへのアイテム登録にあわせて、サイトへもアイテムが検索対象として自動登録されるほうが効率的です。 本記事では、この設定について説明します。 設定方法 具体的には、以下のサイト毎の設定画面において、「Auto-assign new items」で設定を行います。こちらに有効化すると、自動的に新規アイテムが当該サイトの検索対象として追加されるようになります。 参考 なお、以下の画面のように、アイテム毎に追加したいサイトを設定することも可能です。 また、各サイトのリソース一覧から、登録条件を指定した一括登録も可能です。 まとめ Omeka Sにアイテムを新規登録したにもかかわらず、サイトにアイテムが登録されない、ということでお困りの方に対して、本記事が参考になりましたら幸いです。

2021年8月6日 · 1 分 · Nakamura

【Omeka S モジュール紹介】Numeric Data Types:日付データに対する範囲検索を可能にする、など

概要 特定のプロパティを数値データとして設定できるようにするモジュール「Numeric Data Types」について説明します。プロパティは、日付と時刻(ISO)、または数値として指定できます。 特に、日付データに対する範囲検索を実現できる点などがポイントです。 github.com 公式のマニュアルは以下です。 omeka.org 上記のマニュアルを参考に、本モジュールの使い方を説明します。 リソーステンプレートの作成または編集 本モジュールを利用するには、リソーステンプレートを作成または編集して、特定のプロパティを数値データ型として設定する必要があります。リソーステンプレートの使い方は、以下に記載がありますが、いずれ紹介記事を作成したいと思います。 omeka.org 今回は、動画に関するリソーステンプレートとして「動画」を作成してみます。以下に示すように、「動画」というリソーステンプレートを作成し、その編集画面を開きます。 本モジュールでは、以下のData typesが追加されます。 Timestamp(xsd:date) 整数(o-module-numeric-xsd:integer) 期間(xsd:duration) 間隔 そのため、リソーステンプレートにおいて、これらの型を持つプロパティを作成します。具体的には、以下のように設定しました。 公開日(ex:date):Timestamp バージョン(ex:version):整数 再生時間(ex:duraion):期間 準備時間(ex:prepare):間隔 なお、独自の語彙「ex」の作成については、以下の記事を参考にしてください。 nakamura196.hatenablog.com プロパティのData types(型)の設定方法について説明します。リソーステンプレートの編集画面を開き、型を設定したいプロパティの「鉛筆」アイコンをクリックします。画面右部に表示されるパネルの「その他のオプション」 > 「Data types」において、「数字」 > 「Timestamp」を選択します。 結果として、今回は以下のリソーステンプレートを使用します。 ここで設定した各プロパティについて、入力フォーム、保存されるデータを以下で説明します。 データ登録 今回は、下図のようなデータを作成します。2021年3月11日に公開された動画について、再生時間、バージョン、準備期間、などを入力します。 アイテムの登録または編集画面において、リソーステンプレートの選択フォームで、先に作成した「動画」を選択します。 それにより、先に設定した各プロパティについて、Data types(型)に応じた入力フォームが表示されます。 例えば、Timestampを設定したプロパティ「公開日」は、下図のように日付(および時刻)の入力に特化したフォームが表示されます。 検索 上記の設定により、管理者画面および公開サイトに検索フォームが追加されます。 例えば、下図のように、プロパティ「公開日」について、「2021-03」以降の値を検索する、といった使い方が可能となります。 その他 API REST APIを通じて、登録したデータ(JSON-LD)を以下で確認できます。下図のように、型がRDFによっても記述されていること(xsd:date, xsd:duration, など)を確認できます。 https://diyhistory.org/nakamura196/api/items/13 モジュール「Bulk Import」を用いた一括登録 別のモジュール「Bulk Import」を用いることで、ここで説明した型を持つデータの一括登録を行うことができます。「Bulk Import」の使い方については、以下の記事を参考にしてください。 nakamura196.hatenablog.com 具体的には、以下に示すようなCSVファイルを用意します。ポイントとして、ヘッダー行に「^^numeric:timestamp」を与えることで、Data types(型)を指定した上での一括登録が可能です。 https://github.com/omeka-j/Omeka-S-module-BulkImport-Sample-Data/blob/main/item_with_datatype.csv まとめ 今回は、特定のプロパティを数値データとして設定できるようにするモジュール「Numeric Data Types」について説明しました。 ...

2021年8月1日 · 1 分 · Nakamura

Nuxt.jsでvis.jsを使用する方法を紹介するGitHubリポジトリを作成しました。

概要 Nuxt.jsでvis.jsを使用する方法を紹介するGitHubリポジトリを作成しました。 github.com 以下のページから、デモサイトをご確認いただけます。 https://nuxt-visjs.netlify.app/ 詳細 Nuxt.jsはVue.jsをより効果的に使えるフレームワークです。 またvis.jsは、ネットワーク図やタイムラインを作成することができる可視化ライブラリです。 visjs.org 今回、Nuxt.jsでvis.jsを使用する方法を紹介するGitHubリポジトリを作成しました。 「Timeline」「Network」「Graph2d」による基本的な可視化例を掲載しています。 Nuxt.jsを用いたvis.jsの利用に際して、お役にたてば幸いです。

2021年7月29日 · 1 分 · Nakamura

【Omeka S モジュール紹介】Metadata Browse:同じメタデータを持つアイテムを検索するリンクを付与する

概要 今回は、Omeka Sのアイテム詳細画面に対して、同じメタデータを持つアイテムの検索を可能とするリンクを付与するモジュール「Metadata Browse」について紹介します。 omeka.org 例えば、以下のようなことが可能となります。アイテム詳細画面の「キーワード/Subject」の値に「この値の全てのアイテム一覧を表示」リンクが付与され、そのリンクをクリックすると、当該メタデータを持つ検索結果のページに遷移します。 設定 本モジュールのインストール後、またはモジュールの設定画面から、以下の設定画面が表示されます。 この設定画面については、基本的にはそのままで問題ありません。 本モジュールを初めて使用する場合にはわかりにくい説明になりますが、「管理者側でグローバル設定を使用する」については、こちらにチェックを入れない場合、管理画面では、個々のサイトで設定された検索可能なプロパティ(の集合)が使用されます。一方、チェックを入れると、本設定画面でしていたプロパティが検索プロパティとなります。プロパティの指定方法としては、画面右部のパネルから、必要なものを選択します。 Direct Linksは、チェックを入れない場合、検索可能として設定したプロパティの値の下に「この値の全てのアイテム一覧を表示」というリンクが表示されますが、チェックを入れた場合、値に直接リンクが付与されます。以下は、チェックを入れた場合の例です。 図の中にも記述していますが、Direct Linksを有効にした場合、URIとして設定した値と、Metdata Browseで検索可能にした項目の区別がつきにくいため、基本的にはDirect Linksを無効にすることをおすすめします。 サイトにおける設定 サイト毎に検索可能なプロパティ(メタデータ)を指定できます。「サイト一覧」から設定したいサイトを選び、画面左部のメニューから「メタデータを見る(Browse)」を選びます。 上記の画面において、画面右部のパネルから、必要なプロパティ(メタデータ)を選択します。 まとめ 本モジュールにより、以下のアイテム詳細ページのように、同じメタデータを持つアイテムの検索を可能とするリンクを付与することができます。 diyhistory.org 本モジュールは、東京大学工学・情報理工学図書館の工学史料キュレーションデータベースで使用されています。 curation.library.t.u-tokyo.ac.jp Omeka Sで構築するサイトの利便性の向上につながれば幸いです。

2021年7月29日 · 1 分 · Nakamura

【Omeka S モジュールカスタマイズ】OaiPmhRepository:独自語彙の作成

ここでは、Omeka SのOaiPmhRepositoryのカスタマイズ例として、DC-NDL(Simple)にマッピングしてメタデータを公開する方法について説明します。 以下のGitLabリポジトリを適宜参考にしてください。 gitlab.com ※ 別途、OaiPmhRepositoryの紹介記事を執筆予定です。 ファイルの修正 以下のコミットを参考にしてください。 https://gitlab.com/nakamura196/Omeka-S-module-OaiPmhRepository/-/commit/702f1c693a62ae21ef03da495e3b4efd6060c561#d57ba0f1ebb8e2008538c451770f3fe535e1c2ca 具体的には、以下のファイルに対する修正を行います。 OaiPmhRepository/config/module.config.php 追加する語彙の情報を追加します。 OaiPmhRepository/src/OaiPmh/Metadata/DCNDLSimple.php 本ファイルにおいて、Omeka Sのプロパティと出力する項目とのマッピングを行います。上記のコミットの例は、あくまで当該リポジトリにおけるマッピングルールです。Omeka Sの導入機関におけるメタデータの記述ルールに基づき、適宜変更する必要があります。 結果 以下のようなOAI-PMHレコードを取得することができます。 ListRecords https://diyhistory.org/nakamura196/oai?verb=ListRecords&metadataPrefix=dcndl_simple GetRecord https://diyhistory.org/nakamura196/oai?verb=GetRecord&metadataPrefix=dcndl_simple&identifier=oai:diyhistory.org:3

2021年7月25日 · 1 分 · Nakamura

【FOSSメモ】CollectiveAccess

以下、GitHubのREADME.mdの一部和訳です。 github.com CollectiveAccessについて CollectiveAccessは、博物館、アーカイブ、および研究のコンテキストで複雑なデジタルおよび物理コレクションを管理、説明、および発見するためのフレームワークを提供するWebベースのアプリケーションスイートです。これは2つのアプリケーションで構成されています。Providenceは、CollectiveAccessの「バックエンド」カタログコンポーネントです。高度に構成可能であり、さまざまなメタデータ標準、データ型、およびメディア形式をサポートします。Pawtucket2は、CollectiveAccessの汎用パブリックアクセス公開ツールです。プロビデンスで管理されているデータを中心にWebサイトを作成する簡単な方法を提供します。(Pawtucket2の詳細については、https://github.com/collectiveaccess/pawtucket2をご覧ください) CollectiveAccessは、オープンソースのGNU PublicLicenseバージョン3で無料で入手できます。

2021年7月25日 · 1 分 · Nakamura

【Omeka S Tips】既存の標準語彙の追加方法

概要 Omeka SではRDF(Resource Description Framework)を用いてリソース(アイテム、アイテムセット、メディア、etc…)の情報を記述します。そのため、RDFのクラスやプロパティのコレクションである語彙をインポートする必要があります。この記事では、この既存の語彙のインポート方法について説明します。なお、公式マニュアルでは以下に記載があります。 omeka.org 具体的には、国立国会図書館が提供する国立国会図書館ダブリンコアメタデータ記述(DC-NDL)とSchema.org、ジャパンサーチの利活用スキーマの登録を例とします。 なお、代表的な語彙としてDublicon Core Terms(dcterms:)が挙げられます。Omeka Sのインストール直後のデフォルト設定では、Dublin Coreに加えて、Dublin Core タイプ(dctype:)、書誌オントロジー / Bibliographic Ontology(bibo:)、FOAF / Friend of a Friend(foaf:)が登録されています。 既存の語彙を可能限り使用することで、データの共有が容易となります。一方、独自の語彙を使用したい場合には、Custom Ontologyモジュールが使用できます。この使用方法については、以下の記事で紹介しています。 nakamura196.hatenablog.com RDFスキーマファイルの取得 語彙の登録にあたり、各語彙のRDFスキーマファイルを取得する必要があります。 DC-NDL 以下から取得することができます。 https://www.ndl.go.jp/jp/dlib/standards/meta/2020/12/ndl-terms.rdf 以下のページに掲載されています。 www.ndl.go.jp なお、接頭語は「dcndl」、名前空間のURIは「 http://ndl.go.jp/dcndl/terms/」です。 Schema.org 以下から取得できます。 https://schema.org/version/latest/schemaorg-current-https.rdf 以下のページに掲載されており、フォーマット(JSON-LD、RDF/XML、Turtleなど)を指定できます。 schema.org なお、接頭語は「schema」、名前空間のURIは「 https://schema.org/」です。 ジャパンサーチの利活用スキーマ ジャパンサーチの利活用スキーマ関連の語彙の例として、以下が挙げられます。 jps: https://jpsearch.go.jp/term/property# type: https://jpsearch.go.jp/term/type/ chname: https://jpsearch.go.jp/entity/chname/ ここでは、上記の接頭語「jps」の語彙を対象とします。本語彙は以下から取得できます。 https://jpsearch.go.jp/term/property Omeka Sへのインポート 画面左部のメニュー「語彙の一覧」にアクセスし、画面右上のボタンをクリックしてください。なお、2021年7月時点で、本ボタンの日本語訳に間違いがありますので、いずれ修正したいと思います。 その後、以下のような入力フォームが表示されますので、基本情報や登録するファイルの情報を入力します。ファイルについては、ファイルのアップロードまたはURL指定による読み込みが可能です。以下は「ジャパンサーチ利活用スキーマ」を登録した例です。 この方法で、「DC-NDL」「Schema.org」も合わせて登録した結果が、以下の「語彙の一覧」画面で確認できます。 Schema.org は膨大な数のクラスとプロパティが定義されていることがわかります。 なお、各語彙で定義されているクラスおよびプロパティ一覧の列の数字をクリックすると、当該語彙のクラスまたはプロパティの一覧画面に遷移します。また、ラベルの横にある省略アイコンをクリックすると、以下の図のように、そのクラスまたはプロパティの詳細な説明が表示され、さらに当該クラスまたはプロパティが使用されているアイテムの一覧を確認することができます。以下の例では、「dcterms:title」が2つのアイテムで使用されていることを確認できます。 更新 語彙の更新は、「語彙の一覧」ページに表示される鉛筆アイコンをクリックして編集画面に入ります。そして、新しい語彙のファイルまたはURLを指定して画面右上の「保存」をクリックします。 その後、以下のような更新前後の変更を確認する画面が表示されます。ここでは、「Schema.org」の「schema:highPrice」というプロパティのラベルを、試験的に変更した例です。問題ない場合には、画面右上の「変更を承認」をクリックして、更新作業を完了させます。 なお、2021年7月時点においては、クラスおよびプロパティの追加と変更のみが可能で、特定のクラスまたはプロパティの削除は非対応のようです。 削除 語彙の削除は、「語彙の一覧」ページに表示されるゴミ箱アイコンをクリックします。画面右部に確認パネルが表示されるので、「削除を確定」を押して作業を完了させます。 まとめ 以上、既存の語彙を追加、更新、削除する方法を説明しました。 ...

2021年7月24日 · 1 分 · Nakamura