概要
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.
(機械翻訳)主な違いはサービス依存性がないことです。a3mはGearmanや外部ワーカー、MySQL、Elasticsearch、Nginxに依存していません。a3mはgRPCスタックに基づいた独自のAPIサーバーを提供し、すべての処理はシステムスレッドと生成された子プロセスを介して実行されます。一時的な処理状態を保存するために、SQLiteに基づいた組み込みデータベースが使用されます。
インストール
以下を参考にします。
https://a3m.readthedocs.io/en/latest/installation.html
Dockerを使用します。以下のdocker-compose.ymlを作成しました。
そして、docker-compose.ymlが格納されている同じフォルダで、以下を実行して起動します。
AIPを作成する
以下を参考に進めます。
https://a3m.readthedocs.io/en/latest/usage.html
理解が怪しい点がありますが、サーバ上で実行することも、クライアントから利用することもできそうです。
詳細は以下をご確認ください。
https://a3m.readthedocs.io/en/latest/overview.html#architecture
サーバ上で実行する
まずライブラリをインストールします。
そして、以下のように実行します。
以下のように出力されました。
Processing directoryを確認すると、7zファイルが作成されていました。
クライアントから利用する
まずライブラリをインストールします。
そして、address引数と、処理対象のファイルをURLで指定します。
サーバのドメインを仮にexample.orgとしています。またいらすやさんの画像を利用しています。
これも同様に、以下のように出力され、サーバ上に保存されました。
Pythonで利用する
以下のようにすることで、cliと同様に、AIPを作成することができました。
さらに、以下により、処理結果を取得することができました。
0
1
考察
ProcessingConfig
以下に記載がある通り、ArchivematicaではXMLベースの設定ファイルを事前に用意しておく必要がありました。一方、a3mでは、transfer requestsの一部として、設定を提出できるようです。これにより、AIP作成における柔軟性が向上するのではないかと思います。
https://a3m.readthedocs.io/en/latest/usage.html#processing-configuration
利用にあたって
本ツールは開発中ということで、まだ利用を開始するのは難しいかなと思いました。一方、AIPをよりシンプルに作成できるツールとして、今後の進展に期待したいと思います。
まとめ
参考になりましたら幸いです。