File Information Tool Set (FITS)を試す
概要
Archivematicaの調査にあたり、File Information Tool Set (FITS)の挙動について確認したい点があり、Dockerを使って試してみましたので、その備忘録です。
インストール
以下にDockerを用いたインストール方法が記載されています。
https://github.com/harvard-lts/fits?tab=readme-ov-file#docker-installation
ただ、マニュアルに記載のある以下のページにアクセスしても、Dockerfileが含まれる最新のリリース(1.6.0)はダウンロードできませんでした。
https://projects.iq.harvard.edu/fits/downloads
代わりに、GitHubの以下のリリースページで、最新版のzipファイルをダウンロードできました。
あとは、READMEの記載の通りに展開、およびビルドを行いました。
ただし、M1 Macの場合、手順通りに実行したところ、以下のエラーが発生しました。
% docker run --rm -v `pwd`:/work fits -i fits.sh
2024-01-26 11:41:10 - ERROR - MediaInfo:95 - Error loading native library for this operating system for tool: MediaInfo. ostype=[Linux] -- jvmModel=[64] -- nativeLibPath=[/opt/fits/tools/mediainfo/linux] -- No native MediaInfo library for this OS
java.lang.UnsatisfiedLinkError: Unable to load library 'mediainfo':
libmediainfo.so: cannot open shared object file: No such file or directory
libmediainfo.so: cannot open shared object file: No such file or directory
/opt/fits/tools/mediainfo/linux/libmediainfo.so.0: cannot open shared object file: No such file or directory
...
これに対して、ChatGPT 4に確認した結果、Dockerfile
に以下の追記を行う指示がありました。
RUN apt-get update && \
apt-get install -yqq \
# 他の依存関係
mediainfo libmediainfo-dev \
&& rm -rf /var/lib/apt/lists/*
上記を追記したところ、正しく動作するようになりました。
試してみる
今回は日本語をファイル名に含むファイルを対象にしたかったため、インターネット上でCC BYライセンスで公開されている「すごくわかる著作権と授業.pdf」(広島大学情報メディア教育研究センター)を使用させていただきました。
https://www.media.hiroshima-u.ac.jp/wp-content/uploads/2023/05/すごくわかる著作権と授業.pdf
そして、以下のように実行しました。
docker run --rm -v `pwd`:/work fits -i すごくわかる著作権と授業.pdf
結果、以下の結果が得られました。
<?xml version="1.0" encoding="UTF-8"?>
<fits xmlns="http://hul.harvard.edu/ois/xml/ns/fits/fits_output" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hul.harvard.edu/ois/xml/ns/fits/fits_output http://hul.harvard.edu/ois/xml/xsd/fits/fits_output.xsd" version="1.6.0" timestamp="1/26/24, 12:49 PM">
<identification>
<identity format="PDF/X" mimetype="application/pdf" toolname="FITS" toolversion="1.6.0">
<tool toolname="Droid" toolversion="6.5.2" />
<tool toolname="Exiftool" toolversion="12.50" />
<tool toolname="Tika" toolversion="2.6.0" />
<version toolname="Tika" toolversion="2.6.0">PDF/X-4</version>
<externalIdentifier toolname="Droid" toolversion="6.5.2" type="puid">fmt/488</externalIdentifier>
</identity>
</identification>
<fileinfo>
<size toolname="Jhove" toolversion="1.26.1">13845166</size>
<creatingApplicationName toolname="Jhove" toolversion="1.26.1">Adobe PDF Library 17.0/Adobe InDesign 18.1 (Macintosh)</creatingApplicationName>
<lastmodified toolname="Exiftool" toolversion="12.50">2023-01-14T06:28:17Z</lastmodified>
<created toolname="Exiftool" toolversion="12.50">2023-01-14T05:31:26Z</created>
<filepath toolname="OIS File Information" toolversion="1.0" status="SINGLE_RESULT">/work/すごくわかる著作権と授業.pdf</filepath>
<filename toolname="OIS File Information" toolversion="1.0" status="SINGLE_RESULT">すごくわかる著作権と授業.pdf</filename>
<md5checksum toolname="OIS File Information" toolversion="1.0" status="SINGLE_RESULT">1f6a11a1b23607a0e29e10efdc153584</md5checksum>
<fslastmodified toolname="OIS File Information" toolversion="1.0" status="SINGLE_RESULT">1684976952000</fslastmodified>
</fileinfo>
<filestatus>
<well-formed toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">true</well-formed>
<valid toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">true</valid>
</filestatus>
<metadata>
<document>
<title toolname="Jhove" toolversion="1.26.1">すごくわかる著作権と授業_PDF版.indd</title>
<author toolname="Exiftool" toolversion="12.50" status="SINGLE_RESULT">Adobe InDesign 18.1 (Macintosh)</author>
<language toolname="Jhove" toolversion="1.26.1">ja-JP</language>
<pageCount toolname="Jhove" toolversion="1.26.1">64</pageCount>
<hasOutline toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">no</hasOutline>
<hasAnnotations toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">yes</hasAnnotations>
<graphicsCount toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">7</graphicsCount>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>DINNextLTPro-Medium</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>DINNextRoundedLTPro-Regular</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>GaramondPremrPro</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>GaramondPremrPro-Smbd</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>GothicMB101Pro-DeBold</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>HiraginoUDSansFStdN-W3</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>HiraginoUDSansFStdN-W4</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>HiraginoUDSansFStdN-W5</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>HiraginoUDSansFStdN-W6</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>HiraginoUDSansRStdN-W4</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>HiraginoUDSansRStdN-W5</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>HiraginoUDSansRStdN-W6</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>HiraginoUDSansStd-W3</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>ReimPro-ExBold</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>RyuminPro-ExBold</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>RyuminPro-Medium</fontName>
</font>
<font toolname="Jhove" toolversion="1.26.1" status="SINGLE_RESULT">
<fontName>ShueiMGoStd-B</fontName>
</font>
</document>
</metadata>
<statistics fitsExecutionTime="2256">
<tool toolname="MediaInfo" toolversion="22.09" status="did not run" />
<tool toolname="OIS Audio Information" toolversion="0.1" status="did not run" />
<tool toolname="ADL Tool" toolversion="0.1" status="did not run" />
<tool toolname="VTT Tool" toolversion="0.1" status="did not run" />
<tool toolname="Droid" toolversion="6.5.2" executionTime="299" />
<tool toolname="jpylyzer" toolversion="2.1.0" status="did not run" />
<tool toolname="Jhove" toolversion="1.26.1" executionTime="1201" />
<tool toolname="embARC" toolversion="0.2" status="did not run" />
<tool toolname="file utility" toolversion="5.43" executionTime="963" />
<tool toolname="Exiftool" toolversion="12.50" executionTime="983" />
<tool toolname="NLNZ Metadata Extractor" toolversion="3.6GA" status="did not run" />
<tool toolname="OIS File Information" toolversion="1.0" executionTime="231" />
<tool toolname="OIS XML Metadata" toolversion="0.2" status="did not run" />
<tool toolname="ffident" toolversion="0.2" executionTime="738" />
<tool toolname="Tika" toolversion="2.6.0" executionTime="2137" />
</statistics>
</fits>
以下がChatGPT 4による解説です。
提供されたXMLは、FITS(File Information Tool Set)によって生成された出力の一例です。FITSは、デジタルファイルの特性とメタデータを特定し、報告するために使用されるツールです。このXML出力は、特定のPDFファイルの分析結果を示しています。それぞれのセクションの意味を説明します:
<identification>
セクション
- ファイルのフォーマット、MIMEタイプ(この場合は
application/pdf
)、そしてそれを特定するために使用されたツール(Droid、Exiftool、Tika)の情報が含まれます。 -
version
タグは、PDFファイルのバージョン(PDF/X-4)を示しています。 -
externalIdentifier
タグは、Droidツールによって特定されたファイルフォーマットのPUID(永続的な一意識別子)を示しています。
<fileinfo>
セクション
- ファイルサイズ、作成アプリケーション、最終変更日、作成日、ファイルパス、ファイル名、MD5チェックサム、ファイルシステム上の最終変更日時など、ファイルに関する基本的な情報が含まれます。
<filestatus>
セクション
- ファイルの形式が適切である(well-formed)かつ有効(valid)であるかどうかを示します。これはファイルが標準に従っているかどうかを示すものです。
<metadata>
セクション
- ドキュメントに関するメタデータが含まれます。例えば、タイトル、著者、言語、ページ数、アウトラインの有無、アノテーションの有無、画像の数、使用されているフォントなどの情報があります。
<statistics>
セクション
- 各ツールの実行時間やステータスを示します。これにより、どのツールがどれくらいの時間をかけてファイルを分析したかがわかります。
この出力は、PDFファイルの詳細な分析結果を示しており、アーカイブ、図書館、デジタル保存の分野で重要な情報を提供します。FITSは、さまざまなツールの結果を統合して、ファイルの特性に関する包括的なビューを提供するために使用されます。
まとめ
FITSを用いることで、デジタルファイルのさまざまな情報を知ることができました。引き続き、FITSの活用に向けて、調査を継続したいと思います。
Discussion