Omeka SのCustomOntologyモジュールを使って、クラスやプロパティを追加する

概要 Custom Ontologyは、LOV、schema.org、W3Cといった標準的なオントロジーが利用できないときに、独自の語彙を追加することができるモジュールです。 本モジュールの基本的な使い方については、以下を参考にしてください。 https://nakamura196.hatenablog.com/entry/2021/07/24/235050 また本モジュールを使ってすでに作成した語彙を更新する方法は以下を参考にしてください。 今回は、すでに作成した語彙に、クラスやプロパティを追加する方法に関して説明します。 方法 以下のように、「myprefix」という独自語彙が作成済みであることを前提とします。 myprefix http://localhost/ns/myprefix/ この語彙にクラスなどを新規に追加する場合には、「Create a specific ontology」のフォームは空のままにしておきます。 結果、以下のように、追加を行うことができます。 参考 すでに語彙が作成済みの場合、「Create a specific ontology」のフォームを埋めると、以下のようにエラーが発生しますので、ご注意ください。 An ontology exists for the prefix "myprefix". An error was found. Turtle cannot be created. Nothing was imported. まとめ Custom Ontologyの使用にあたり、参考になりましたら幸いです。

2024年6月17日 · 1 分 · Nakamura

Omeka-S-module-FixCjkSearchのv4.1.0をリリースしました。

概要 Omeka Sの標準機能では、日本語による全文検索がうまくいかない課題に対して、以下のモジュールを作成しています。 https://github.com/nakamura196/Omeka-S-module-FixCjkSearch 本モジュールについて、本記事執筆時点のOmeka Sの最新版、v4.1.0では動作しなくなっていたため、モジュールの最新版をリリースしました。 https://github.com/omeka-j/Omeka-S-module-FixCjkSearch/releases 不完全な点もあるかと思いますが、参考になりましたら幸いです。 参考 日本語による全文検索の不具合については、以下の記事も参考にしてください。 また、日本語検索時における「たこ」「タコ」「だこ」「ダコ」などのアクセスの区別については、以下の記事を参考にしてください。

2024年6月17日 · 1 分 · Nakamura

Omeka Sの部分一致検索時のアクセントの区別

概要 Omeka Sの部分一致検索について、アクセントの区別について調査しましたので、その備忘録です。 事象 例えば、「たこ」という文字列を含むアイテムが格納されている場合、「たこ」「タコ」「だこ」「ダコ」で同じ検索になります。 原因 インストール時にデフォルトで設定される照合順序「utf8mb4_unicode_ci」が原因のようでした。 具体的には、この照合順序は「case-insensitive」(大文字小文字を区別しない)および「accent-insensitive」(アクセントを区別しない)となるため、「たこ」「タコ」「だこ」「ダコ」で同じ検索になるようでした。 対策 ! 照合順序を変更する際、既存のデータに影響が出ないように注意して、変更前には必ずバックアップを取ることをお勧めします。 もし上記を区別したい場合、「value」というテーブルの照合順序を「utf8mb4_bin」に設定するのが一つの方法のようです。 上記の設定を行った結果、例えば「ダコ」で検索すると0件になりました。 まとめ Omekaの利用にあたり、参考になりましたら幸いです。

2024年6月17日 · 1 分 · Nakamura

DHCフォーマットの中身を確認する

概要 Digital HumanitiesやThe Japanese Association for Digital Humanities (JADH)の年次大会では、以下のdhconvalidatorというツールを使い、DOCXやODT形式のファイルを、DHCファイルに変換して提出することが多いです。 https://github.com/ADHO/dhconvalidator 今回は、このフォーマットを理解するための備忘録です。 内容を確認する DHCファイルは以下のように説明されています。 This is essentially a ZIP archive containing their original OCT/DOCX file, an HTML rendering and an XML-TEI rendering, plus a folder with the image files, properly renamed). (機械翻訳)これは基本的に、元のOCT/DOCXファイル、HTMLレンダリング、XML-TEIレンダリングを含むZIPアーカイブであり、適切に名前が付けられた画像ファイルのフォルダも含まれています。 したがって、上記のdhconvalidatorを使って作成された.dhc形式のファイルについて、展開してみます。 unzip nakamura.dhc 結果、以下のようにファイルが展開されました。 入力元のdocxに加えて、TEIに変換されたXMLファイル、およびHTMLファイルが含まれていました。HTMLファイルは以下のようにブラウザで表示されます。 共著者や他者が作成したDHCファイルの内容を確認するには、上記のように展開の上、HTMLファイルを確認するのがよさそうです。 ! 未調査ですが、DHCファイルの閲覧に特化したビューアなどが存在するかもしれません。 (参考)変換の仕組み 以下のように説明されています。 The DHConvalidator works together with the conference management tool ConfTool and uses TEIGarage (formerly known as OxGarage) to do the bulk conversion. ...

2024年6月16日 · 1 分 · Nakamura

Zoteroの使用メモ

概要 https://www.zotero.org/ Zoteroは以下のように説明されています。 Zotero is a free, easy-to-use tool to help you collect, organize, annotate, cite, and share research. (機械翻訳)Zoteroは、研究を収集、整理、注釈付け、引用、共有するための使いやすい無料ツールです。 Zoteroの使用方法に関する備忘録です。 識別子から 以下のように、DOIからインポートできます。 ウェブサイト 以下のchrome拡張「Zotero Connector」をインストールします。 https://chromewebstore.google.com/detail/ekhagklcjbdpajgpjgmbionohlpdbjgc 引用したいウェブサイトで拡張機能をクリックすると、以下のように登録できます。 参考文献の作成 コレクションから参考文献目録を作成できます。 DH2024やJADH2024では、「Digital Humanities Abstracts」が引用スタイルとして指定されているかと思います。 結果、以下のように、文献一覧を出力できます。 引用スタイル「Digital Humanities Abstracts」のインストール 以下からダウンロードします。 https://raw.githubusercontent.com/computationalstylistics/DHAbstracts_biblio_style/master/digital_humanities_abstracts.csl Zotero Connectorがインストールされている場合、以下のように、引用スタイルをインポートできます。 さいごに 参考になりましたら幸いです。

2024年6月15日 · 1 分 · Nakamura

a3mを試す

概要 a3mを試します。 https://github.com/artefactual-labs/a3m a3mは以下のように説明されています。 a3m is a lightweight version of Archivematica focused on AIP creation. It has neither external dependencies, integration with access sytems, search capabilities nor a graphical interface. (機械翻訳)a3mはArchivematicaの軽量版で、AIP(アーカイブ情報パッケージ)の作成に特化しています。外部依存関係、アクセスシステムとの統合、検索機能、グラフィカルインターフェースはありません。 Archivematicaとの違い 以下についても機械翻訳結果を掲載します。 The main differentiator is the lack of service dependencies. a3m does not depend on Gearman or external workers, MySQL, Elasticsearch or Nginx. a3m provides its own API server based on the gRPC stack and all processing is performed via system threads and spawned child processes. An embedded database based on SQLite is used to store temporary processing state. ...

2024年6月13日 · 3 分 · Nakamura

StrapiでCSPのエラーが発生した際の対処法

概要 Strapiと以下のプラグインを使って、メディアをS3に格納する構成としました。 https://www.npmjs.com/package/@liashchynskyi/strapi-provider-upload-s3-cloudfront その際、以下のエラーが発生し、画像が表示されませんでした。 Refused to load the image 'https://xxx/uploads/yyy.jpg' because it violates the following Content Security Policy directive: "img-src 'self' data: blob: dl.airtable.com". この課題に対して、以下の記事で述べられている通り、./config/middleware.jsを修正することで、この問題を解決することができました。 https://zenn.dev/studiobros/articles/04400f413eb2aa ACLについても 同様に、S3にメディアをアップロードできない状態にも遭遇しましたが、上記の記事にある通り、S3のACLを有効にし、さらに適切なブロックパブリックアクセス (バケット設定)を設定することで、無事にアップロードできるようになりました。 まとめ StrapiとS3を組み合わせたヘッドレスCMSの構築にあたり、参考になりましたら幸いです。

2024年6月12日 · 1 分 · Nakamura

さくらのVPSでSSH接続ができなくなった場合の対処法

さくらのVPSでSSH接続ができなくなった場合、シリアルコンソールを利用してログインすることができます。シリアルコンソールは、ネットワーク経由での通常のSSH接続が利用できない場合にも、VPSにアクセスするための緊急回避策として機能します。 シリアルコンソールへのアクセス方法は以下の通りです: さくらのVPSコントロールパネルにログインします。 対象のVPSを選択します。 「シリアルコンソール」のオプションを見つけてクリックします。 指示に従ってシリアルコンソールへの接続を行います。 シリアルコンソールを使用すると、SSHのキーが誤って設定されているか、ファイアウォールによる通信の遮断があっても、システムの設定や修復作業を行うことが可能です。ただし、コンソールを安全に使用するためには、適切な認証情報が必要です。

2024年6月12日 · 1 分 · Nakamura

docker-compose コマンドでコンテナを再起動すると同時にビルドも行う

docker-compose コマンドでコンテナを再起動すると同時にビルドもしたい場合、以下のようなコマンドを実行できます。まず、ビルドと再起動を個別に実行する方法と、それを一つのコマンドで実行する方法を示します。 ビルドと再起動を個別に実行 ビルド : docker-compose -f ./docker-compose.prod.yml build 再起動 : docker-compose -f ./docker-compose.prod.yml restart 一つのコマンドでビルドと再起動を実行 ビルドしてからサービスを再起動するには、up コマンドを使い、--build オプションを付けてから restart ポリシーを使います。しかし、restart オプションは up コマンドには存在しないので、実際にはサービスを停止して再起動することになります。 docker-compose -f ./docker-compose.prod.yml up --build -d このコマンドはサービスをビルドした後、デタッチドモードで実行します。これにより、コンテナが更新されてからバックグラウンドで自動的に再起動します。ただし、これによる完全な再起動を保証するためには、各サービスの設定で適切な再起動ポリシーが設定されている必要があります。 どちらの方法でも目的を達成できますが、作業の流れに合わせて選択してください。

2024年6月12日 · 1 分 · Nakamura

StrapiのData transferを試す

概要 Strapiにおいて、ローカル環境のデータを公開環境に反映させる機会があり、以下のData transferを使ってみました。 https://docs.strapi.io/dev-docs/data-management/transfer 手順 公開環境側 公開環境側で、Transfer Tokensを発行します。 ローカル環境 公開サイトをhttps://strapi.example.org、tokenをxxxとします。 この時、以下のコマンドにより、ローカル環境のデータを公開環境に反映することができました。 strapi transfer --to https://strapi.example.org/admin --to-token xxx 既存のデータが上書きされるため、その点はご注意ください。 ? The transfer will delete existing data from the remote Strapi! Are you sure you want to proceed? Yes Starting transfer... ✔ entities: 71 transfered (size: 73.6 KB) (elapsed: 1680 ms) ✔ links: 54 transfered (size: 10.3 KB) (elapsed: 687 ms) ... まとめ Strapiの利用にあたり、参考になりましたら幸いです。

2024年6月12日 · 1 分 · Nakamura

Drupal: Prepopulateモジュールを使って、事前に入力する値を設定する

概要 Drupalのコンテンツ作成画面にアクセスする際、クエリパラメータを指定することにより、事前に入力する値を設定することができましたので、備忘録です。以下のモジュールを使用します。 https://www.drupal.org/project/prepopulate 使い方 例えば、poemsというコンテンツタイプに新規のコンテンツを追加する際、以下のように、クエリパラメータを追加します。 </node/add/poems?edit[field_spot][widget][0][target_id]=1&edit[title][widget][0][value]=テスト> その結果、以下のように、初期値が入力された状態の登録画面が表示されます。 まとめ 参考になりましたら幸いです。

2024年6月12日 · 1 分 · Nakamura

Microsoft Visioを使ってRDFデータを作成する

概要 RDFデータの作成にあたり、Microsoft Visioを使う機会があったので、備忘録です。 https://www.microsoft.com/ja-jp/microsoft-365/visio/flowchart-software なおMicrosoft VisioはRDFデータの作成に特化したツールではありませんが、フローチャートと図面の作成ソフトウェアであり、高い操作性を有します。そこで、本ツールで作成したデータをRDFに変換することを試みます。 Microsoft Visioで作成したデータのRDFへの変換にあたっては、以下のPythonライブラリを使用します。 https://pypi.org/project/vsdx/ データ作成 今回は、以下のようなネットワークを作成しました。 https://univtokyo-my.sharepoint.com/:u:/g/personal/2436196812_utac_u-tokyo_ac_jp/EXf0yPI39-pNnruSXMT3JBsBXsUmJ4XYMF_-oRFjjz0CXw?e=wJcFVc 以下の例を参考にしています。 https://www.w3.org/TR/rdf11-primer/#fig4 リソースの作成にあたっては、以下のように楕円を選択します。リテラルは長方形を選択します。 プロパティの編集にあたっては、描画コネクタでノード同士を繋ぎ、以下のように「テキストの編集」からプロパティを入力します。 以下が作成例です。 リソースおよびプロパティはURIによる記述が基本です。またリテラル(長方形)から他のノードに接続することはせず、リソース(楕円)からのみ、他のノードへ接続します。 ただし、後述する変換ライブラリ側の処理になりますが、リソースおよびプロパティに単純な文字列を与えた場合には、http://example.org/を補うことで、URIとして出力します。 つまり、以下のように作成しても、上記と同じRDFデータが作成されます。 変換ライブラリ 本ライブラリについては別の記事で紹介予定です。 Microsoft Visioで作成したファイルは、vsdxファイルとして保存されます。 このvsdxファイルを入力して変換処理を行うことで、以下のような出力が得られます。 @prefix dcterms: <http://purl.org/dc/terms/> . @prefix ex: <http://example.org/> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . ex:BOB ex:knows ex:Alice ; ex:type foaf:Person ; foaf:topic_interest <http://www.wikidata.org/entity/Q12418> . ex:subject ex:predicate "リテラル" . <http://www.wikidata.org/entity/Q12418> dcterms:title "Mona Lisa" . また、神崎正英氏が作成された可視化ツールを使うことで、以下のようなネットワーク図が得られます。 この可視化図の作成には、以下の記事で紹介した方法を使用しています。 ...

2024年6月8日 · 1 分 · Nakamura

「ARC2によるRDFグラフの視覚化」をPythonで利用する

概要 神崎正英氏が公開する「ARC2によるRDFグラフの視覚化」をPythonで利用させていただく機会がありましたので、備忘録です。 「ARC2によるRDFグラフの視覚化」の公開ページは以下です。 https://www.kanzaki.com/works/2009/pub/graph-draw Turtle、RDF/XML、JSON-LD、TriGもしくはMicrodataで記述したRDFを入力として、可視化結果をpngやsvgファイルで取得することができます。 Pythonでの利用例 import requests text = "@prefix ns1: <http://example.org/propery/> .\n\n<http://example.org/bbb> ns1:aaa \"ccc\" ." output_path = "./graph.png" # POSTリクエストに必要なデータ url = "https://www.kanzaki.com/works/2009/pub/graph-draw" data = { "RDF": text, "rtype": "turtle", "gtype": "png", "rankdir": "lr", "qname": "on", } # POSTリクエストを送信 response = requests.post(url, data=data) # 応答がPNG画像でない場合、内容を確認 if response.headers['Content-Type'] != 'image/png': print("応答はPNG画像ではありません。内容を表示します:") # print(response.text[:500]) # 最初の500文字を表示 # [:500] else: os.makedirs(os.path.dirname(output_path), exist_ok=True) # 応答をPNGファイルとして保存 with open(output_path, 'wb') as f: f.write(response.content) まとめ RDFデータの可視化にあたり、参考になりましたら幸いです。

2024年6月7日 · 1 分 · Nakamura

tropy-plugin-iiifを試す

概要 tropy-plugin-iiifを試す機会がありましたので、備忘録です。 https://github.com/tropy/tropy-plugin-iiif tropy-plugin-iiifは以下のように説明されています。 Tropy plugin to import IIIF manifests 準備 Tropyをインストールします。 https://tropy.org/ 次に、以下のリンク先から、最新のzipファイルをダウンロードします。 https://github.com/tropy/tropy-plugin-iiif/releases/latest 設定 > プラグイン で以下を開きます。 「プラグインをインストール」ボタンをクリックして、ダウンロードしたzipファイルを選択し、「有効にする」をクリックします。 これでインストールは完了です。 IIIFマニフェストのインポート ファイル > インポート から、tropy-plugin-iiifを選択します。 別途ダウンロードしたIIIFマニフェストファイル(jsonファイル)を選択します。 以下のように、IIIFマニフェストの情報をインポートできました。 ダウンロードされた画像は、プロジェクトごとに作成される.tropyフォルダのassetsに格納されていました。 参考:PDFエクスポート 以下のようなフォーマットのPDFが作成されました。 ページごとに、アイテムや画像のメタデータが表示され、使いやすいように思いました。 まとめ 今回はIIIFマニフェストのインポート機能について紹介しましたが、現在、IIIFコレクションでのエクスポートを行うプラグインが開発されているとのことでした。 https://iiif.io/event/2024/los-angeles/schedule/#107 Tropyを使用することで、今後データの作成と公開の両方を担うことができそうです。 参考になりましたら幸いです。

2024年6月6日 · 1 分 · Nakamura

@iiif/parserを試す

概要 @iiif/parserというnpmモジュールを知ったので、一部の機能を試してみました。 https://github.com/IIIF-Commons/parser 使い方 以下は一例です。v2のIIIFマニフェストを、v3に変換します。 "use client"; import { useState } from "react"; import { convertPresentation2 } from "@iiif/parser/presentation-2"; import { Button, Label, TextInput } from "flowbite-react"; import ComponentsPagesParserPre from "./pages/parser/pre"; type ManifestData = any; export default function ComponentsParser() { const [url, setUrl] = useState<string>( "https://iiif.dl.itc.u-tokyo.ac.jp/repo/iiif/fbd0479b-dbb4-4eaa-95b8-f27e1c423e4b/manifest" ); const [data, setData] = useState<ManifestData>(null); const fetchAndConvertManifest = async ( manifestUrl: string ): Promise<void> => { try { const response = await fetch(manifestUrl); const manifestJson = await response.json(); const convertedManifest = convertPresentation2(manifestJson); setData(convertedManifest); } catch (error) { console.error("Failed to fetch or convert manifest", error); setData("Error fetching or converting manifest."); } }; const handleSubmit = (event: React.FormEvent<HTMLFormElement>): void => { event.preventDefault(); fetchAndConvertManifest(url); }; return ( <> <form className="flex flex-col gap-4" onSubmit={handleSubmit}> <div> <Label htmlFor="url" value="IIIF Manifest URL (v2)" /> <TextInput id="url" type="text" value={url} placeholder="https://example.com/iiif/manifest.json" required onChange={(e) => setUrl(e.target.value)} /> </div> <Button type="submit">Submit</Button> </form> <div className="mt-8"> <ComponentsPagesParserPre data={data} /> </div> </> ); } まず、以下でインポートします。 ...

2024年6月5日 · 1 分 · Nakamura

ndlocr_cli実行時の共有メモリ不足への対応ほか

概要 ndlocr_cli(NDLOCR(ver.2.1)アプリケーションのリポジトリ)を実行した際、いくつか対応を行う必要がありましたので、その備忘録です。 なお、これらの対応は私の設定漏れや変則的な使用方法によるものが多く、一般的な使用においては発生しないと思われます。同様の不具合が発生した際の参考としてご覧ください。 共有メモリ不足 ndlocr_cliを実行した際、以下のエラーが発生しました。 Predicting: 0it [00:00, ?it/s]ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm). DataLoader worker (pid(s) 3999) exited unexpectedly Chat GPTによる回答は以下でした。 「Unexpected bus error encountered in worker」というエラーメッセージは、通常、PyTorchのDataLoaderを使用している際に、共有メモリ(shared memory)が不足している場合に発生します。特に、データセットが大きい場合や多くのワーカーを使用している場合にこの問題が見られることがあります。 そして、以下の指示がありました。 Dockerや他の仮想環境を使用している場合は、共有メモリのサイズを増やす必要があります。Dockerを使用している場合は、コンテナを起動する際に --shm-size オプションを設定します。例えば、docker run --shm-size 2G ... のように設定します。 これについて、私のdockerの実行コマンドを確認したところ、--shm-sizeの指定が漏れていました。以下のスクリプトでは、--shm-size=256mが指定されていました。 https://github.com/ndl-lab/ndlocr_cli/blob/master/docker/run_docker.sh 上記のオプションを付与して実行したところ、無事、共有メモリ不足のエラーは解消しました。 (参考)現在の共有メモリのサイズを確認する 以下のコマンドにより確認できました。 df -h /dev/shm 上記のエラーが発生した時、64mとなっていました。 KeyError: ‘STRING’ 何度か、KeyError: 'STRING'に遭遇しました。この対処にあたり、以下の二つのファイルに変更を加えました。 https://github.com/ndl-lab/ndlocr_cli/blob/master/cli/core/inference.py#L681 https://github.com/ndl-lab/ruby_prediction/blob/646de35cefde6fa205f4b6a3ac308e7f5ba91061/output_ruby.py#L104C45-L104C65 line_xml.attrib['STRING']やelm.attrib['STRING']の箇所でエラーが発生していたため、以下の処理を加えました。 if 'STRING' not in line_xml.attrib: continue 参考:プログレスバーの追加 OCR処理中のプログレスバーを表示したいケースがありました。以下の箇所を修正します。 ...

2024年6月5日 · 1 分 · Nakamura

Omeka Sで動画を公開する

概要 Omeka Sで動画を公開する方法について調べてみましたので、備忘録です。 標準機能 Omeka Sは標準で動画をサポートしています。 以下は標準の機能を使用した例です。 以下のmp4ファイルを使用させていただいています。 https://file-examples.com/storage/fe4e1227086659fa1a24064/2017/04/file_example_MP4_480_1_5MG.mp4 具体的には、以下のように<video>タグが使用されていました。 <div class="media-render file"> <video src="https://omeka-d.aws.ldas.jp/files/original/5060f3ba2537676746a7aa69c9884c64daac300b.mp4" controls=""> <a href="https://omeka-d.aws.ldas.jp/files/original/5060f3ba2537676746a7aa69c9884c64daac300b.mp4">5060f3ba2537676746a7aa69c9884c64daac300b.mp4</a> </video> </div> 同様に.movファイルをアップロードしたところ、ブラウザ依存かと思いますが、無事に再生されました。 IIIF Server IIIF Serverモジュールを使用することで、IIIFマニフェストファイルを配信することが可能になります。 https://omeka.org/s/modules/IiifServer/ これをインストールし、合わせて、Universal Viewerをインストールします。 https://omeka.org/s/modules/UniversalViewer/ 結果、以下のように、Universal Viewerが表示され、マニフェストファイルに記載されたメタデータとともに、動画を表示することができました。 マニフェストファイルの確認(v2) IIIF Sererモジュールによって生成するマニフェストファイル(v2)を確認したところ、以下のように表示されました。 { "@context": [ "http://iiif.io/api/presentation/2/context.json", "http://wellcomelibrary.org/ld/ixif/0/context.json" ], "@id": "https://omeka-d.aws.ldas.jp/iiif/2/1/manifest", "@type": "sc:Manifest", "label": "mp4", "metadata": [ { "label": "Title", "value": "mp4" } ], "viewingDirection": "left-to-right", "license": "https://rightsstatements.org/vocab/CNE/1.0/", "related": { "@id": "https://omeka-d.aws.ldas.jp/s/test/item/1", "format": "text/html" }, "seeAlso": { "@id": "https://omeka-d.aws.ldas.jp/api/items/1", "format": "application/ld+json" }, "sequences": [ { "@id": "https://omeka-d.aws.ldas.jp/iiif/2/1/sequence/normal", "@type": "sc:Sequence", "label": "Unsupported extension. This manifest is being used as a wrapper for non-IIIF v2 content (e.g., audio, video) and is unfortunately incompatible with IIIF v2 viewers.", "compatibilityHint": "displayIfContentUnsupported", "canvases": [ { "@id": "https://omeka-d.aws.ldas.jp/iiif/ixif-message/canvas/c1", "@type": "sc:Canvas", "label": "Placeholder image", "thumbnail": "https://omeka-d.aws.ldas.jp", "width": null, "height": null, "images": [ { "@id": "https://omeka-d.aws.ldas.jp/iiif/ixif-message/imageanno/placeholder", "@type": "oa:Annotation", "motivation": "sc:painting", "resource": { "@id": "https://omeka-d.aws.ldas.jp/iiif/ixif-message-0/res/placeholder", "@type": "dctypes:Image", "width": null, "height": null }, "on": "https://omeka-d.aws.ldas.jp/iiif/ixif-message/canvas/c1" } ] } ] } ], "mediaSequences": [ { "@id": "https://omeka-d.aws.ldas.jp/iiif/2/1/sequence/s0", "@type": "ixif:MediaSequence", "label": "XSequence 0", "elements": [ { "@id": "https://omeka-d.aws.ldas.jp/files/original/bc5bbd4550ae7b6eab3affbc832bb158b5e280ab.mp4/element/e0", "@type": "dctypes:MovingImage", "label": "mp4", "metadata": [ { "label": "Title", "value": "mp4" } ], "thumbnail": "https://omeka-d.aws.ldas.jp/application/asset/thumbnails/video.png", "rendering": [ { "@id": "https://omeka-d.aws.ldas.jp/files/original/bc5bbd4550ae7b6eab3affbc832bb158b5e280ab.mp4", "format": "video/mp4" } ], "service": { "@id": "https://omeka-d.aws.ldas.jp/iiif/2/5", "profile": "http://wellcomelibrary.org/ld/ixif/0/alpha.json" }, "width": 0, "height": 0 } ] } ] } v2では動画などには非対応のため、mediaSequencesをUniversal Viewerが独自にロードして表示しているようです。 ...

2024年6月4日 · 2 分 · Nakamura

ndlocr_cliをdockerでインストールした後の容量

ndlocr_cliをdockerでインストールした後の容量に関する備忘録です。 以下の手順を参考に、ndlocr_cliをセットアップしました。 以下のように、50GB弱が使われるようでしたので、残りの容量で入出力の画像ファイルなどを処理する必要があります。(以下では、200GBのディスク容量を割り当てた例です。) mdxuser@ubuntu-2204:~/ndlocr_cli$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 5.7G 1.4M 5.7G 1% /run /dev/sda2 196G 45G 143G 24% / tmpfs 29G 0 29G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda1 1.1G 6.1M 1.1G 1% /boot/efi tmpfs 5.7G 4.0K 5.7G 1% /run/user/1000 AWS(Amazon Web Services)やmdx(データ活用社会創成プラットフォーム)において、仮想マシンを立ち上げる際の、仮想ディスク(GB)の指定などに役立てば幸いです。 参考になりましたら幸いです。

2024年6月3日 · 1 分 · Nakamura

プログラムを使ってDrupalにログインする

プログラムを使ってDrupalにログインする方法に関する備忘録です。 以下の記事が参考になりました。 https://drupal.stackexchange.com/questions/185494/how-do-i-programmatically-log-in-a-user-with-a-post-request curl --location 'http://drupal.d8/user/login?_format=json' \ --header 'Content-Type: application/json' \ --data '{ "name": "admin", "pass": "admin" }' 上記のようなリクエストをおくることで、以下のようなレスポンスを取得できました。 {"current_user":{"uid":"1","roles":["authenticated","administrator"],"name":"admin"},"csrf_token":"wBr9ldleaUhmP4CgVh7PiyyxgNn_ig8GgAan9-Ul3Lg","logout_token":"tEulBvihW1SUkrnbCERWmK2jr1JEN_mRAQIdNNhhIDc"} 参考になりましたら幸いです。

2024年5月31日 · 1 分 · Nakamura

Drupalで登録済みのコンテンツをCSV形式で一括エクスポートする

概要 Drupalで登録済みのコンテンツをCSV形式でエクスポートする機会があり、その備忘録です。 以下のモジュールを使用しました。 https://www.drupal.org/project/content_export_csv インストール 通常の方法でインストールできました。 composer require 'drupal/content_export_csv:^4.7' ./vendor/bin/drush en content_export_csv 使い方 インストール後、Administration > Content > Content にアクセスすると、「Export Content」ボタンが表示されます。 次の画面で、エクスポートしたいコンテンツタイプを選択することで、指定したコンテンツタイプのコンテンツ一覧をエクスポートできました。 まとめ Drupal内のコンテンツの一括エクスポートにあたり、参考になりましたら幸いです。

2024年5月30日 · 1 分 · Nakamura