TEI/XMLの可視化例:Leafletを用いた地図表示

概要 TEI/XMLファイルの可視化にあたり、可視化例とソースコードを公開するリポジトリを作成しました。 https://github.com/nakamura196/tei_visualize_demo 可視化例は以下のページでご確認いただけます。 https://nakamura196.github.io/tei_visualize_demo/ 今回、MarkerClusterを用いたマーカー表示の例を追加しましたので、紹介します。 前提 Leafletを使って、(MarkerClusterを使用せずに、)マーカーの表示ができていることを前提とします。まだの方は、以下の可視化例、およびソースコードを参考にしてください。 可視化例 https://nakamura196.github.io/tei_visualize_demo/01/ ソースコード https://github.com/nakamura196/tei_visualize_demo/blob/main/docs/01/index.html MarkerClusterを使った実装例 可視化例は以下です。 https://nakamura196.github.io/tei_visualize_demo/02/ ソースコードは以下です。 https://github.com/nakamura196/tei_visualize_demo/blob/main/docs/02/index.html 「TEIを用いた『渋沢栄一伝記資料』テキストデータの再構築と活用」のデータを利用しています。 ライブラリの追加 以下を追記します。 <link rel="stylesheet" href="https://leaflet.github.io/Leaflet.markercluster/dist/MarkerCluster.css" /> <link rel="stylesheet" href="https://leaflet.github.io/Leaflet.markercluster/dist/MarkerCluster.Default.css" /> <script src="https://leaflet.github.io/Leaflet.markercluster/dist/leaflet.markercluster-src.js"></script> L.markerClusterGroupの利用 markersを作成して、個々のmarkerをaddLayerメソッドを使って追加します。最後に、mapにaddLayerメソッドを使って、markersを追加します。 ... // 地図の初期化 var map = L.map("map").setView(center, zoom); ... var markers = L.markerClusterGroup(); for (var i = 0; i < places.length; i++) { var place = places[i]; const geoList = place.getElementsByTagName("geo"); for (const geo of geoList) { var [lat, lon] = geo.textContent.trim().split(" ").map(Number); // 文字列を数値の緯度経度に変換 // マーカーを作成して地図上に追加 var marker = L.marker([lat, lon]); const placeName = place.getElementsByTagName("placeName")[0].textContent; // マーカーにクリック時のポップアップを設定 marker.bindPopup(placeName); markers.addLayer(marker); } } map.addLayer(markers); まとめ TEI/XMLの可視化にあたり、参考になりましたら幸いです。 ...

2024年4月12日 · 1 分 · Nakamura

HuTimeの暦変換サービスを使って、和暦を西暦に変換する

概要 時間情報解析ソフトウェアであるHuTimeの暦変換サービスを使って、和暦を西暦に変換する機会がありましたので、その備忘録です。 https://www.hutime.jp/ 変換例 以下の{和暦年月日}に和暦を入力します。 https://ap.hutime.org/cal/?method=conv&ical=1001.1&itype=date&ival={和暦年月日}&ocal=101.1&oform=yyyy-MM-dd&out=json 例えば、「慶応4年9月8日」の場合、以下です。 https://ap.hutime.org/cal/?method=conv&ical=1001.1&itype=date&ival=慶応4年9月8日&ocal=101.1&oform=yyyy-MM-dd&out=json その他の使い方 以下に詳しい説明があります。パラメータの指定方法など、参考にしてください。 https://ap.hutime.org/cal/ まとめ HuTime Web APIの利用にあたり、参考になりましたら幸いです。 また有益なツールを作成してくださっているHuTimeの開発者の方に感謝いたします。

2024年4月12日 · 1 分 · Nakamura

Omeka SのCleanUrlモジュールインストール時の不具合対応

概要 以下の環境で構築したOmeka SにClean Urlモジュールをインストールしようとしたところ、 PHP Version: 8.3.2 Omeka S Version: 4.0.4 Clean Url Version: 3.17.7 以下のメッセージが表示されました。 Deprecated: Creation of dynamic property CleanUrl\Router\Http\CleanRoute::$priority is deprecated in /var/www/html/vendor/laminas/laminas-router/src/SimpleRouteStack.php on line 285 この課題に対して、以下に記載したように、/modules/CleanUrl/src/Router/Http/CleanRoute.phpファイルを一部修正することにより、上記メッセージを非表示にすることができました。 https://github.com/Daniel-KM/Omeka-S-module-CleanUrl/issues/19 .htaccessファイル内のSetEnv APPLICATION_ENV "production"という記述を、SetEnv APPLICATION_ENV "development"に設定していない場合には、そもそも上記メッセージが表示されないかもしれませんが、参考になりましたら幸いです。 補足 Clean Urlモジュールでは、インストール時に、/configフォルダにcleanurl.config.phpというファイルを作成するようです。 https://gitlab.com/Daniel-KM/Omeka-S-module-CleanUrl#installation そのため、configフォルダの権限によっては、以下のようなメッセージが表示され、インストールができないケースがありました。 The file “cleanurl.config.php” in the config directory of Omeka is not writeable. このような場合、いったんconfigフォルダの権限をfilesなどを同じにして、インストールを行い、その後、元に戻す、といったプロセスが必要になるかと思われます。 こちらも参考になりましたら幸いです。

2024年3月19日 · 1 分 · Nakamura

File Sideload: Omeka Sで画像を一括アップロードする

概要 Omeka Sで画像を一括アップロードするためのモジュール「File Sideload」について説明します。 https://omeka.org/s/modules/FileSideload/ 以下で公式のマニュアルが公開されています。 https://omeka.org/s/docs/user-manual/modules/filesideload/ モジュールのインストール 通常の方法でインストールできます。 https://omeka.org/s/docs/user-manual/modules/#installing-modules モジュールの設定 インストール後、以下のような設定画面に遷移します。ここで、一括登録用の画像をアップロードするためのフォルダへのパスを指定します。権限によるかと思いますが、任意のパスを指定することができるかと思います。 画像のアップロード 先に指定したフォルダに画像をアップロードします。これは、Omekaの機能を使用するのではなく、WinSCPやFileZillaなどのツールを使って、Omekaがインストールされているサーバに直接ファイルをアップロードしておきます。 メディアの登録 以下のように、右のメニューから「サイドロードするディレクトリ」を選択し、ディレクトリを選択します。 指定したディレクトリ内のファイルを再帰的に登録したい場合には、「Ingest directory recursively」オプションを有効化します。 まとめ Omeka Sへの画像の一括アップロードにあたり、「Bulk Import」モジュールを用いる方法や、REST APIと各種プログラミング言語を用いる方法、などがありますが、本記事で紹介した「File Sideload」モジュールを使用する方法も参考になりましたら幸いです。

2024年3月14日 · 1 分 · Nakamura

Nuxt3でサイトマップを作成する

概要 Nuxt3でサイトマップを作成する方法がいくつかありましたので、備忘録です。 [1] @nuxtjs/sitemap ドキュメント https://sitemap.nuxtjs.org/ 参考記事 https://zenn.dev/kumao/articles/3fe10078a7e9d2 インストール npm install -D @nuxtjs/sitemap リポジトリ https://github.com/nuxt-community/sitemap-module [2] sitemap 参考記事 https://zenn.dev/kakkokari_gtyih/articles/db1aed4fed6054 インストール npm install -D sitemap リポジトリ https://github.com/ekalinin/sitemap.js [3] nuxt-simple-sitemap こちらは、以下の記載がありましたので、[1]の@nuxtjs/sitemapを使うのがよさそうです。 Package has been migrated to @nuxtjs/sitemap. https://www.npmjs.com/package/nuxt-simple-sitemap ドキュメント https://nuxt.com/modules/simple-sitemap 参考記事 https://shinobiworks.com/blog/615/ インストール npm install --save-dev nuxt-simple-sitemap リポジトリ https://github.com/nuxt-modules/sitemap まとめ 他にもあるかもしれませんが、参考になりましたら幸いです。

2024年3月8日 · 1 分 · Nakamura

DrupalのSimple OAuthとPostmanを使ったOAuth認証の確認

概要 DrupalのSimple OAuthとPostmanを使ったOAuth認証の確認を行います。 以前に以下の記事を書きましたが、もう少し掘り下げてみます。 DrupalでSimple OAuthの設定を行う 以下を参考にしてください。 https://nakamura196.pages.dev/ja/posts/e4ce978db12227/#oauthクライアントの作成 Postman グラントタイプがpasswordの場合 /oauth/token に対して、Body > x-www-form-urlencoded に以下を指定しました。 キー 値 grant_type password client_id {作成したCLIENT_ID。例:gt8UKlKltI4qs1XP5KLucIXiYw9ulGb0xS4RyO437dc} client_secret {作成したCLIENT_SECRET。例:test} username {ユーザ名。例:yamato} password {パスワード。例:yamato} 結果、以下のようなJSONが返却されました。 { "token_type": "Bearer", "expires_in": 300, "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJS...", "refresh_token": "def50200295e412f..." } jwt.ioで確認したところ、以下のようにデコードされました。 { "aud": "gt8UKlK...", "jti": "6dc1fee..", "iat": 1709386974, "nbf": 1709386974, "exp": 1709387274.122002, "sub": "2", "scope": [ "authenticated", "cj" ] } subはDrupalのユーザのIDに該当し、scopeはDrupalで設定した値が返却されました。 異なるユーザでログインした場合、異なるsubが与えられました。 ユーザ名またはパスワードをまちがえる 以下が返却されました。 { "error": "invalid_grant", "error_description": "The user credentials were incorrect.", "message": "The user credentials were incorrect." } 間違ったscopeを指定する 以下のように、間違ったscopeを指定します。 キー 値 grant_type password client_id {作成したCLIENT_ID。例:gt8UKlKltI4qs1XP5KLucIXiYw9ulGb0xS4RyO437dc} client_secret {作成したCLIENT_SECRET。例:test} username {ユーザ名。例:yamato} password {パスワード。例:yamato} scope test 以下が返却されました。 ...

2024年3月2日 · 2 分 · Nakamura

METSFlaskを試す

概要 以下のMETSFlaskを試します。 https://github.com/tw4l/METSFlask 以下のように説明されています。 A web application for human-friendly exploration of Archivematica METS files [機械翻訳] ArchivematicaのMETSファイルを人間に優しい方法で探索するためのウェブアプリケーション 使い方 以下のサイトで試すことができます。 http://bitarchivist.pythonanywhere.com/ METSファイルをアップロードした結果が以下です。今回は、1つのWordファイルのみが格納されていたため、1つのオリジナルファイルに関する情報が表示されます。 Viewボタンをクリックすると、詳細画面に遷移します。 PREMIS Eventsにおいて、METSファイルのmets:digiprovMDセクションの内容が表示されていました。このセクションは、デジタルプロビナンス(デジタルオブジェクトの起源や履歴を追跡する情報)メタデータを扱うようです。 <mets:digiprovMD ID="digiprovMD_8"> <mets:mdWrap MDTYPE="PREMIS:EVENT"> <mets:xmlData> <premis:event xmlns:premis="http://www.loc.gov/premis/v3" xsi:schemaLocation="http://www.loc.gov/premis/v3 http://www.loc.gov/standards/premis/v3/premis.xsd" version="3.0"> <premis:eventIdentifier> <premis:eventIdentifierType>UUID</premis:eventIdentifierType> <premis:eventIdentifierValue>24741142-467a-45da-936e-78e43ab68a6c</premis:eventIdentifierValue> </premis:eventIdentifier> <premis:eventType>ingestion</premis:eventType> <premis:eventDateTime>2024-02-26T03:34:19.082563+00:00</premis:eventDateTime> <premis:eventDetailInformation> <premis:eventDetail/> </premis:eventDetailInformation> <premis:eventOutcomeInformation> <premis:eventOutcome/> <premis:eventOutcomeDetail> <premis:eventOutcomeDetailNote/> </premis:eventOutcomeDetail> </premis:eventOutcomeInformation> <premis:linkingAgentIdentifier> <premis:linkingAgentIdentifierType>preservation system</premis:linkingAgentIdentifierType> <premis:linkingAgentIdentifierValue>Archivematica-1.16</premis:linkingAgentIdentifierValue> </premis:linkingAgentIdentifier> <premis:linkingAgentIdentifier> <premis:linkingAgentIdentifierType>repository code</premis:linkingAgentIdentifierType> <premis:linkingAgentIdentifierValue>test</premis:linkingAgentIdentifierValue> </premis:linkingAgentIdentifier> <premis:linkingAgentIdentifier> <premis:linkingAgentIdentifierType>Archivematica user pk</premis:linkingAgentIdentifierType> <premis:linkingAgentIdentifierValue>1</premis:linkingAgentIdentifierValue> </premis:linkingAgentIdentifier> </premis:event> </mets:xmlData> </mets:mdWrap> </mets:digiprovMD> mets:mdWrapのChatGPT 4による説明は以下のとおりです。 ...

2024年2月27日 · 2 分 · Nakamura

Access to MemoryのRESTful APIを試す

概要 Access to MemoryのRESTful APIの一例を試してみます。 以下が公式のドキュメントです。 https://www.accesstomemory.org/en/docs/2.8/dev-manual/api/api-intro/ Browse taxonomy terms https://demo.accesstomemory.org/api/taxonomies/34 [ { "name": "Collection" }, { "name": "File" }, { "name": "Fonds" }, { "name": "Item" }, { "name": "Part" }, { "name": "Record group" }, { "name": "Series" }, { "name": "Sous-fonds" }, { "name": "Subseries" } ] Browse information objects endpoint https://demo.accesstomemory.org/api/informationobjects { "total": 460, "results": [ { "reference_code": "CA ON00012 SC105", "slug": "kathleen-munn-fonds", "title": "Kathleen Munn fonds", "repository": "Art Gallery of Ontario", "level_of_description": "Fonds", "creators": [ "Munn, Kathleen Jean, 1887-1974" ], "creation_dates": [ "1912-[193-]" ] }, { "reference_code": "CA ON00012 SC069", "slug": "gallery-44-centre-for-contemporary-photography-fonds", "title": "Gallery 44 Centre for Contemporary Photography fonds", "repository": "Art Gallery of Ontario", "level_of_description": "Fonds", "creators": [ "Gallery 44 Centre for Contemporary Photography" ], "creation_dates": [ "[ca. 1979] - 2000" ], "place_access_points": [ "Toronto", "York, Regional Municipality of", "Ontario", "Canada" ] }, { "slug": "bitter-paradise-sell-out-of-east-timor-fonds", "title": "*Bitter Paradise: The Sell-Out of East Timor* fonds", "repository": "University of British Columbia Archives", "level_of_description": "Fonds", "creators": [ "Briere, Elaine" ], "creation_dates": [ "1985 - 1997" ] }, ... Read information object endpoint 以下の記事でOAIを通じて取得したレコードを、API経由で取得してみます。 ...

2024年2月26日 · 2 分 · Nakamura

ArchivesSpaceのRESTful APIを試す

概要 ArchivesSpaceのRESTful APIの一例を試してみます。 以下が公式のドキュメントです。 https://archivesspace.github.io/archivesspace/api/#introduction List all corporate entity agents 以下に記載があります。 https://archivesspace.github.io/archivesspace/api/#list-all-corporate-entity-agents デモサイトを使用した場合、以下のURLでアクセスできます。 https://sandbox.archivesspace.org/staff/api/agents/corporate_entities?page=1 結果は以下です。 { "first_page": 1, "last_page": 3, "this_page": 1, "total": 27, "results": [ { "lock_version": 5, "publish": false, "created_by": "admin", "last_modified_by": "admin", "create_time": "2022-03-23T13:44:30Z", "system_mtime": "2024-02-25T06:02:12Z", "user_mtime": "2022-05-17T20:46:06Z", "is_slug_auto": false, "jsonmodel_type": "agent_corporate_entity", "agent_contacts": [ { "lock_version": 0, "name": "Manuscripts Repository", "created_by": "admin", "last_modified_by": "admin", "create_time": "2022-05-17T20:46:06Z", "system_mtime": "2022-05-17T20:46:06Z", "user_mtime": "2022-05-17T20:46:06Z", "is_representative": true, "jsonmodel_type": "agent_contact", "telephones": [ ], "notes": [ ] } ], "agent_record_controls": [ ], "agent_alternate_sets": [ ], "agent_conventions_declarations": [ ], "agent_other_agency_codes": [ ], "agent_maintenance_histories": [ ], "agent_record_identifiers": [ ], "agent_identifiers": [ ], "agent_sources": [ ], "agent_places": [ ], "agent_occupations": [ ], "agent_functions": [ ], "agent_topics": [ ], "agent_resources": [ ], "linked_agent_roles": [ ], "external_documents": [ ], "notes": [ ], "used_within_repositories": [ ], "used_within_published_repositories": [ ], "dates_of_existence": [ ], "used_languages": [ ], "metadata_rights_declarations": [ ], "names": [ { "lock_version": 0, "primary_name": "Allen Doe Research Center", "sort_name": "Allen Doe Research Center", "sort_name_auto_generate": true, "created_by": "admin", "last_modified_by": "admin", "create_time": "2022-05-17T20:46:06Z", "system_mtime": "2022-05-17T20:46:06Z", "user_mtime": "2022-05-17T20:46:06Z", "authorized": true, "is_display_name": true, "jurisdiction": false, "conference_meeting": false, "source": "local", "jsonmodel_type": "name_corporate_entity", "use_dates": [ ], "parallel_names": [ ] } ], "related_agents": [ ], "uri": "/agents/corporate_entities/1", "agent_type": "agent_corporate_entity", "is_linked_to_published_record": false, "display_name": { "lock_version": 0, "primary_name": "Allen Doe Research Center", "sort_name": "Allen Doe Research Center", "sort_name_auto_generate": true, "created_by": "admin", "last_modified_by": "admin", "create_time": "2022-05-17T20:46:06Z", "system_mtime": "2022-05-17T20:46:06Z", "user_mtime": "2022-05-17T20:46:06Z", "authorized": true, "is_display_name": true, "jurisdiction": false, "conference_meeting": false, "source": "local", "jsonmodel_type": "name_corporate_entity", "use_dates": [ ], "parallel_names": [ ] }, "title": "Allen Doe Research Center", "is_repo_agent": "Allen Doe Research Center" }, { ... GUIでは以下のページが該当しました。 ...

2024年2月26日 · 2 分 · Nakamura

DACSとISAD(G)の違い

DACSとISAD(G)の違いについて、ChatGPT4による回答を共有します。間違っている点があるかもしれませんが、参考になりましたら幸いです。 DACS(Describing Archives: A Content Standard)とISAD(G)(International Standard Archival Description, General)は、それぞれアメリカと国際的な文脈でアーカイブ資料の記述に使用される標準です。これらの標準はアーカイブ資料の目録作成、アクセス、理解を促進するために開発されましたが、適用範囲、構造、および特定の焦点点においていくつかの違いがあります。 DACS DACSは、アメリカのアーカイブおよび記録管理コミュニティ向けに特化して開発された標準です。DACSの主な目的は、アーカイブ資料の記述プラクティスを標準化し、利用者がアーカイブ資料にアクセスしやすくすることにあります。DACSは、記述の最小要件を提供し、アーカイブ資料のコンテキスト、構造、および内容に関する情報を組織化する方法に焦点を当てています。DACSは、記述的メタデータの作成に関する具体的なガイドラインを提供し、アーカイブ資料の一貫性と理解を向上させることを目指しています。 ISAD(G) ISAD(G)は、国際的なアーカイブコミュニティによって広く受け入れられている一般的なアーカイブ記述標準です。この標準は、異なる国や文化におけるアーカイブ資料の記述を促進し、標準化することを目的としています。ISAD(G)は、アーカイブ資料の記述に関する一般的な原則とガイドラインを提供し、アーカイブ資料の同定、文脈、内容、およびアクセス条件に関する情報の組織化を指導します。ISAD(G)の焦点は、国際的な互換性と理解を促進することにあり、多様なアーカイブ環境での使用に適しています。 主な違い 適用範囲と焦点 : DACSはアメリカのコンテキストに特化しているのに対し、ISAD(G)はより広範な国際的な適用を目指しています。 構造と詳細度 : DACSはアメリカのアーカイブ資料の記述に特化した詳細なガイドラインを提供しますが、ISAD(G)はより広範な原則とガイドラインを提供し、異なる国や文化のアーカイブ記述ニーズに適応します。 利用者との関係 : DACSは、特にアメリカのアーカイブコミュニティとその利用者のニーズに合わせて開発されたのに対し、ISAD(G)は国際的なアーカイブコミュニティとその利用者を対象としています。 両標準はそれぞれ有用であり、特定のコンテキストやニーズに応じて選択されるべきです。国際的な相互運用性を重視する場合はISAD(G)が、アメリカ国内の慣習に沿った記述を行いたい場合はDACSが適しています。

2024年2月26日 · 1 分 · Nakamura

Omeka ClassicとOmeka Sの違い

Omeka ClassicとOmeka Sの違いについて、ChatGPT4による回答を共有します。参考になりましたら幸いです。 OmekaとOmeka Sは、デジタルコレクションと展示を構築するためのオープンソースのウェブパブリッシングプラットフォームです。どちらも学術機関、図書館、博物館、アーカイブ、教育者、および文化遺産を扱う組織によって広く使用されています。しかし、OmekaとOmeka Sは設計と使用目的において異なる点があります。 Omeka (Classic) 対象 : 個人や小規模プロジェクトに最適です。学校のプロジェクト、個人の研究、小規模なアーカイブコレクションに適しています。 機能 : インストールが簡単で、直感的な管理インターフェイスを提供します。個々のウェブサイトやプロジェクトに焦点を当て、単一のサイトの管理と展示作成に特化しています。 使用シナリオ : 小規模なデジタルコレクションの展示や教育目的のプロジェクトに最適です。プラグインとテーマを使用してカスタマイズが可能ですが、複数のプロジェクトやコレクションの統合管理には向いていません。 Omeka S 対象 : 大学、図書館、博物館など、複数のプロジェクトやコレクションを持つ組織に最適です。 機能 : Omeka Sは、複数のサイトの作成と管理を可能にするよう設計されています。一つのインストールで、異なるプロジェクトやコレクションを跨いだリソースの共有、再利用、および関連付けが可能です。 使用シナリオ : 複数のデジタルコレクションや展示を持ち、それらを統合して管理したい大規模な機関に最適です。API、高度な検索機能、そしてLinked Open Dataのサポートを含む、より高度な機能を提供します。 主な違い 使用目的 : Omeka Classicは小規模なプロジェクトや個人ユーザー向け、Omeka Sは複数のプロジェクトやサイトを持つ組織や機関向けに設計されています。 機能性 : Omeka Sは、複数のサイト管理、Linked Open Dataのサポート、API経由でのデータアクセスなど、より高度な機能を提供します。 拡張性と相互運用性 : Omeka Sは、コレクション間でアイテムを共有し、より広範なデータの統合と相互運用性を目指しています。 選択はプロジェクトの規模、目的、および管理するデータの種類に依存します。小規模なプロジェクトや個人的な使用にはOmeka Classicが、複数のプロジェクトや大規模なデータセットを扱う組織にはOmeka Sが適しています。

2024年2月26日 · 1 分 · Nakamura

ArchivesSpaceのOAI Repositoryを試す

概要 ArchivesSpaceは、以下のように説明されています。 https://github.com/archivesspace/archivesspace Built for archives by archivists, ArchivesSpace is the open source archives information management application for managing and providing web access to archives, manuscripts and digital objects. (機械翻訳)アーキビストによってアーカイブのために構築されたArchivesSpaceは、アーカイブ、原稿、デジタルオブジェクトの管理とウェブアクセス提供のためのオープンソースのアーカイブ情報管理アプリケーションです。 この記事では、ArchivesSpaceが提供するOAI Repository機能を試します。 https://archivesspace.github.io/tech-docs/architecture/oai-pmh/ 設定 今回は、ArchivesSpaceのデモサイトを使用します。 以下にアクセスし、必要な設定を行います。 https://sandbox.archivesspace.org/staff/oai_config/edit メタデータフォーマットの一覧を取得する 以下により、メタデータフォーマットの一覧を取得できました。 https://sandbox.archivesspace.org/oai?verb=ListMetadataFormats 以下が結果です。oai_dc、oai_ead、oai_dcterms、oai_marc、oai_modsが利用可能なことが確認できます。 <OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd"> <script/> <responseDate>2024-02-26T12:11:15Z</responseDate> <request verb="ListMetadataFormats">https://sandbox.archivesspace.org/</request> <ListMetadataFormats> <metadataFormat> <metadataPrefix>oai_dc</metadataPrefix> <schema>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</schema> <metadataNamespace>http://www.openarchives.org/OAI/2.0/oai_dc/</metadataNamespace> </metadataFormat> <metadataFormat> <metadataPrefix>oai_ead</metadataPrefix> <schema>https://www.loc.gov/ead/ead.xsd</schema> <metadataNamespace>http://www.loc.gov/ead/</metadataNamespace> </metadataFormat> <metadataFormat> <metadataPrefix>oai_dcterms</metadataPrefix> <schema>http://dublincore.org/schemas/xmls/qdc/2008/02/11/dcterms.xsd</schema> <metadataNamespace>http://purl.org/dc/terms/</metadataNamespace> </metadataFormat> <metadataFormat> <metadataPrefix>oai_marc</metadataPrefix> <schema>https://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd</schema> <metadataNamespace>http://www.loc.gov/MARC21/slim</metadataNamespace> </metadataFormat> <metadataFormat> <metadataPrefix>oai_mods</metadataPrefix> <schema>https://www.loc.gov/standards/mods/v3/mods-3-6.xsd</schema> <metadataNamespace>http://www.loc.gov/mods/v3</metadataNamespace> </metadataFormat> </ListMetadataFormats> </OAI-PMH> セットの一覧を取得する 以下により、セットの一覧を取得できました。 ...

2024年2月26日 · 6 分 · Nakamura

Access to MemoryのOAI Repositoryを試す

概要 Access to Memoryは、以下のように説明されています。 https://github.com/artefactual/atom AtoM (short for Access to Memory) is a web-based, open source application for standards-based archival description and access. The application is multilingual and multi-repository. First commissioned by the International Council on Archives (ICA) to make it easier for archival institutions worldwide to put their holdings online using the ICA’s descriptive standards, the project has since grown into an internationally used community-driven project. (機械翻訳)AtoM(Access to Memoryの略称)は、標準に基づいたアーカイブ記述とアクセスのためのウェブベースのオープンソースアプリケーションです。このアプリケーションは、多言語かつ多リポジトリに対応しています。国際アーカイブ評議会(ICA)によって初めて委託された目的は、世界中のアーカイブ機関がICAの記述標準を使用して所蔵品をオンラインで公開しやすくすることでしたが、プロジェクトは以降、国際的に使用されるコミュニティ主導のプロジェクトへと成長しました。 ...

2024年2月26日 · 2 分 · Nakamura

AIPscanを試す

概要 以下のツールを試します。 https://github.com/artefactual-labs/AIPscan 本ツールは以下のように説明されています。 AIPscan was developed to provide a more in-depth reporting solution for Archivematica users. It crawls METS files from AIPs in the Archivematica Storage Service to generate tabular and visual reports about repository holdings. It is designed to run as a stand-alone add-on to Archivematica. It only needs a valid Storage Service API key to fetch source data. AIPscanは、Archivematicaユーザーにより詳細なレポーティングソリューションを提供するために開発されました。それはArchivematicaストレージサービスのAIPからMETSファイルをクロールして、リポジトリ保有物についての表形式および視覚的レポートを生成します。これはArchivematicaへのスタンドアロンアドオンとして実行されるように設計されています。ソースデータを取得するために有効なストレージサービスAPIキーのみが必要です。 Archivematicaのストレージサービスに格納されたAIPの内容を視覚化します。 本記事は、その使い方について説明します。 セットアップ 以下の記載の通りに進めることでセットアップすることができました。 https://github.com/artefactual-labs/AIPscan?tab=readme-ov-file#installation 試す:ストレージサービスの追加 Archivematica Storage Servicesメニューをクリックし、以下にアクセスします。画面下部のNew storage serviceボタンをクリックします。 ...

2024年2月25日 · 1 分 · Nakamura

メディア芸術データベースのSPARQLエンドポイントをYasguiで使ってみる

概要 メディア芸術データベースが2024/1/31に正式公開されました。 https://mediaarts-db.artmuseums.go.jp/ 本記事では、メディア芸術データベースのSPARQLエンドポイントについて、Yasguiでの利用例を紹介します。Yasguiについては、以下の記事も参考になりましたら幸いです。 利用例 マンガ単行本の公開数の時系列変化 https://api.triplydb.com/s/AqIH1InmC ゲームパッケージの公開数の時系列変化 https://api.triplydb.com/s/L2REuOshZ “異世界"または"転生”‘を含むマンガ単行本公開数の時系列変化 https://api.triplydb.com/s/4ciTNJGb2 “かっぱ"を含む出版物の(ジャンル別)時系列変化 https://api.triplydb.com/s/LbzMGMo-O PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX schema: <https://schema.org/> PREFIX neptune-fts: <http://aws.amazon.com/neptune/vocab/v01/services/fts#> SELECT ?公開年 ?genre (COUNT(DISTINCT ?resource) AS ?node) WHERE { SERVICE neptune-fts:search { neptune-fts:config neptune-fts:endpoint "https://vpc-mediaarts-db-blue-gob5vblr7tbjai7huexqntpq4i.ap-northeast-1.es.amazonaws.com" . neptune-fts:config neptune-fts:field schema:name . neptune-fts:config neptune-fts:queryType "query_string" . neptune-fts:config neptune-fts:query '"かっぱ"' . neptune-fts:config neptune-fts:return ?resource . } ?resource schema:genre ?genre ; schema:datePublished ?公開年月日 . BIND (SUBSTR(?公開年月日, 1, 4) AS ?公開年) } GROUP BY ?公開年 ?genre ORDER BY DESC(?公開年) まとめ メディア芸術データベースのSPARQLエンドポイントの利用例として、参考になりましたら幸いです。

2024年2月17日 · 1 分 · Nakamura

Omeka Sの詳細検索画面で絞り込み項目を限定する

概要 Omeka Sで構築したサイトごとの詳細検索画面において、ユーザがプロパティを選択した上で、特定の値などで検索することができます。 この機能について、デフォルトの設定では、Omeka Sに登録されているすべてのプロパティが表示されてしまうため、利用しづらいことがあります。 この課題に対して、以下のように、選択肢として表示するプロパティを限定する方法について紹介します。 本記事は、Omeka Sのversion 4.0.4を対象にしています。 マニュアル 以下に記載があります。 https://omeka.org/s/docs/user-manual/sites/site_settings/#:~:text=Advanced search vocabulary members 最新ではないですが、機械翻訳によって作成した日本語版マニュアルでは、以下に記載があります。 https://nakamura196.github.io/omeka-s-enduser/ja/sites/site_settings/#:~:text=選択できます。-,高度な検索語彙メンバー,-では、プロパティと 方法 以下にアクセスして、設定 タブを選択します。 /admin/site/s/<サイト名> 検索 という見出しを持つ箇所において、Advanced search vocabulary members という項目があります。 このフォームを使って、詳細検索に使用するプロパティを限定することができます。 まとめ Omeka Sのバージョンによって一部操作方法が異なる可能性がありますが、参考になりましたら幸いです。

2024年2月17日 · 1 分 · Nakamura

sidebase/nuxt-authをproduction環境で使う際のTips

概要 sidebase/nuxt-authをproduction環境で使う際の注意点に関する備忘録です。 sidebase/nuxt-authは、Nuxt 3 アプリケーション向けの認証モジュールです。 https://github.com/sidebase/nuxt-auth 問題 VercelやAWS Amplifyにデプロイした際、以下のメッセージとともに、サーバエラーが発生しました。 AUTH_NO_ORIGIN: No `origin` - this is an error in production, see https://sidebase.io/nuxt-auth/resources/errors. You can ignore this during development 対策 以下が参考になりました。 https://github.com/sidebase/nuxt-auth/issues/613 以下のようにbaseURLを与えることで、上記のエラーを解消できました。 auth: { baseURL: process.env.AUTH_ORIGIN, }, 改めて確認すると、以下に記載がありましたが、なかなかたどり着くことができませんでした。 https://sidebase.io/nuxt-auth/configuration/nuxt-config#provider-authjs-baseurl まとめ 同様の事象でお困りの方の参考になりましたら幸いです。

2024年2月12日 · 1 分 · Nakamura

sphinxを用いた作成されたドキュメントサイトに日本語訳を追加する

概要 sphinxを用いた作成されたドキュメントサイトに日本語訳を追加することがあり、その備忘録です。 以下を対象にします。 https://github.com/artefactual/archivematica-storage-service-docs 方法 まず、対象リポジトリをForkします。 次に、Cloneします。 git clone https://github.com/nakamura196/archivematica-storage-service-docs cd atom-docs ここでは、Pythonの仮想環境を作成しておきます。 python -m venv .venv source .venv/bin/activate pip install --upgrade pip pip install -r requirements.txt ライブラリの追加 requirements.txtにsphinx-intlを追加して、インストールします。 sphinx sphinx-intl sphinx-autobuild pip install -r requirements.txt (オプション) conf.py conf.pyに言語設定が存在しない場合には、以下のように追加します。 ... # 言語設定 locale_dirs = ['locale/'] # 翻訳ファイルを格納するディレクトリ gettext_compact = False # ファイル名を短くしない language = "ja" そして、gettextビルドを実行します。 make gettext 日本語ディクレトリの作成 以下を実行すると、locale/jaにpoファイルが作成されます。 sphinx-intl update -p _build/locale -l ja 編集 locale/ja以下のpoファイルを編集することで、多言語化を行います。 ...

2024年2月12日 · 2 分 · Nakamura

GitHub ActionsとSCPを使って、さくらのレンタルサーバにビルド結果をコピーする

概要 GitHub ActionsとSCPを使って、さくらのレンタルサーバにビルド結果をコピーする機会がありましたので、その備忘録です。 以下のGitHub Actionsを使用しました。 https://github.com/appleboy/scp-action つまづいた点 以下の記法で試みたところ、ローカル環境でactを使った際にはうまく動作しましたが、GitHub Actionsで実行した際にはうまくいきませんでした。 name: scp files on: [push] jobs: build: name: Build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: copy file via ssh password uses: appleboy/scp-action@master with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} password: ${{ secrets.PASSWORD }} port: ${{ secrets.PORT }} source: "tests/a.txt,tests/b.txt" target: your_server_target_folder_path 具体的には、以下のエラーが発生しました。 GitHub actions workflow error: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none password], no supported methods remain こちらについて以下が参考になりました。 ...

2024年2月8日 · 1 分 · Nakamura

MariaDBでのmysqldump: not foundへの対応

MariaDBを使用している際、例えば以下のようにバックアップを試みたところ、mysqldump: not foundのエラーが生じました。 mysqldump -uomeka -pomeka omeka > test.sql この対応として、以下の記事を参考にして、mariadb-dumpを使うと回避できました。 https://mariadb.com/kb/en/mysqldump/ 具体的には、以下のようにすることで、無事にバックアップできました。 mariadb-dump -uomeka -pomeka omeka > test.sql 同様の事象でお困りの方の参考になりましたら幸いです。

2024年2月7日 · 1 分 · Nakamura