概要

Archivematicaの調査にあたり、File Information Tool Set (FITS)の挙動について確認したい点があり、Dockerを使って試してみましたので、その備忘録です。

https://github.com/harvard-lts/fits

インストール

以下に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ファイルをダウンロードできました。

https://github.com/harvard-lts/fits/releases/tag/1.6.0

あとは、READMEの記載の通りに展開、およびビルドを行いました。

ただし、M1 Macの場合、手順通りに実行したところ、以下のエラーが発生しました。

%2jll0aiiod2vbbpo4ammtc-.ee/k0lddfe1aiiir-naat2giisr6.nn/uUfftn1nooo1s..o:assl-4toosr1i::/m:sm1fcce0iaadenni-dnna`LooipEittnwRnfdRkooo`OEpp/:Rreel/rnniw-onorssurM:hhxkeaa/dUrrlfineeiiaaddbtIbmsnlooefebbd-ojjii:teea9occif5ttnilft-offosaii..Edllssreeohrl::.oi0rbNN:roolacorssaayuundccni'hhonmtgeffdiionillpaaeeetininoovfrrseoh'ddal:iirirrebeedrccattoroobyrrjyyefcotrftihlies:oNpoersautcihngfislyestoermdfiorrecttooorly:MediaInfo.ostype=[Linux]jvmModel=[64]nativeLibPath=[/opt/fits/tools/mediainfo/linux]NonativeMediaInfolibraryforthisOS

これに対して、ChatGPT 4に確認した結果、Dockerfileに以下の追記を行う指示がありました。

RUNaa#m&ppe&ttd--irggameeittn-fruiofpndslativtabaelmrle/&dl&-iiyab\qi/qnafp\ot-/dleivsts/*

上記を追記したところ、正しく動作するようになりました。

試してみる

今回は日本語をファイル名に含むファイルを対象にしたかったため、インターネット上でCC BYライセンスで公開されている「すごくわかる著作権と授業.pdf」(広島大学情報メディア教育研究センター)を使用させていただきました。

https://www.media.hiroshima-u.ac.jp/wp-content/uploads/2023/05/すごくわかる著作権と授業.pdf

そして、以下のように実行しました。

dockerrun-rm`pwd`:/workfits-i.pdf

結果、以下の結果が得られました。

<<?f/xi<<<<<fmti/f/f/m/s/ilsd<ii<<<<<<<<fi<fe<mt<<<<<<<<<<<<<<<stei/dlsclcffmfilwvitd/eattttttttttttttttsvxnd<<<<ieeirariidsleealao<<<<<<<<<<<<<<<<<<<<<<<<dttoooooooooooooooa>emtetttvednizesell5leslledctalphhgf/f/f/f/f/f/f/f/f/f/f/f/f/f/f/f/f/oaioooooooooooooootrlinoooexetneataeecaitlisauiuaaaaro<fo<fo<fo<fo<fo<fo<fo<fo<fo<fo<fo<fo<fo<fo<fo<fo<fcdslllllllllllllllisnftooortniftmtpnhsna-dttmttngssanfonfonfonfonfonfonfonfonfonfonfonfonfonfonfonfonfouatsisiilllsetfotioeaaetftfaaelhgeOAptontontontontontontontontontontontontontontontontonmtitttttttttttttttto=ctirii>onddtmcmouott>neouCunhntntntntntntntntntntntntntntntntnteacoooooooooooooooin"aytttontcogiheko>sroutraotnitt>tt>tt>tt>tt>tt>tt>tt>tt>tt>tt>tt>tt>tt>tt>tt>tt>n>soooooooooooooooc=htooonayalAftsd>mos>tgulocoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNtllllllllllllllls"tifoool>tnpiottuiel>otenitsoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoaoa>fnnnnnnnnnnnnnnn>1toollltIiapeooomfdnootnaClmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmlmiaaaaaaaaaaaaaaa.pnrnnnodomldlooialotetonenenenenenenenenenenenenenenenenetmmmmmmmmmmmmmmm0:>maaaoeneinlltetmnlotiua>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>a>seeeeeeeeeeeeeee"/ammmln>=ctannodoeanootonmDmDmGmGmGmHmHmHmHmHmHmHmHmRmRmRmSE===============/teeent"aomaaoo=maloonteIeIeaeaeoeieieieieieieieieeeyeyehx"""""""""""""""eh====aiJtoemmltl"emnlos=N=N=r=r=t=r=r=r=r=r=r=r=r=i=u=u=ueMOAVDjJefENOOfTnu""""mfhil=eenonJ=eanlt"N"N"a"a"h"a"a"a"a"a"a"a"a"m"m"m"eceIDTrphmixLIIficlPDETeioon"==aoah"=mantoJeJeJmJmJiJgJgJgJgJgJgJgJgJPJiJiJiudSLToyobliNSSiko.Drxi=evnaE""mlmoJ"emaoohxhxhohohchihihihihihihihihrhnhnhMtiilvAefZdadhFik"reNmxOOenevhE=emolototononoMononononononononoooPoPoGiaATTdyeRtFXe"iaifaT"aeiII=a=eox"=elnvLvRvdvdvBvovovovovovovovov-vrvrvooIuoo"z"CuoMiMnnrXdt"itm=fSS"m""viJ"=naeTeoePePe1eUeUeUeUeUeUeUeUeEeoeoeSnndooe"toelLttgv""okote"tOeJefhJ"am"P"u"r"r"0"D"D"D"D"D"D"D"D"x"-"-"tTfilltrtilte"o=aotaooEoFFI=ht"tohJmernee1SSSSSSSSBEMdioo""o"otl"aMo"rmtlo"lotxoiiS"ooovohe=totdtmtmtPtatatatatatatatatotxtet-m"oooidIetlUdio"onloilllOvotoevo="o-oeorororononononononononoloBodoBeIttltlottantovT.moltavof"eeFIelol"ev"JoModoPoPooososososososososodoooio<=tnoovovlyotfaoeFeeltvomeltiS"vo""eJhlelLlrlrl-lFlFlFlFlRlRlRlSl<lllul/"ofooeoev"oaodlr-dtvoeoernotIIlelt"hovdvTvovovDvSvSvSvSvSvSvSvtv/vdvmf2oollrlrelravs8uyeorl=saoonneFtrvtotoveiePe<e-eeetetetetetetetedefe<e<eo2lrvvsvsrtvEmtei"/prlsv"imloffioseoootverurrr/rSrBrdrdrdrdrdrdrdr-ror/r/rn5vmeeieisoexaaro?oesvieDoe"looIloirolooe"smsosfsmsosNsNsNsNsNsNsNsWsnsfsfst6earroroiortt"sn>i=ieorrn=vrrneloslvlo"i<i-ioibili-i-i-i-i-i-i-i3itioioiN"rtssnsnolsrii=s"ornso="temmfvnivevlto/oRonododoWoWoWoWoWoWoWo<oNononoa>siii=i=nviaoto"/ans=ii"JoraaoIe=oerevtonfnentn<n<n3n4n5n6n4n5n6n/nantntnmiooo"o"=eocnon2xp=i"od1hosttrnr"nrsreoo=o=g=N=/=/=<=<=<=<=<=<=<=f=m=N=N=eonnn6n1"rnt"o=.mp"o2n".oliiimfs1=sisrol"n"u"a"f"f"/"/"/"/"/"/"/"o"e"a"a">n"==.=.0s=ol"6ll6n.=2vvoooaoi."ioislv1t1l1m1o1o1f1f1f1f1f1f1f1n1>1m1m1=""5"2.i"rtv0./i.=6"t6eennntro21onoive.N.a.e.n.n.o.o.o.o.o.o.o.t..e.e."t00.262o1"oe.0nc5".2o."r=""imn6.n=noer2a2r2>2t2t2n2n2n2n2n2n2n2N22>2>22o..2.."n2or2"sa.10.o1s"oa=.2="=nrs6m6<66N6N6t6t6t6t6t6t6t6a66662o11"11=.tls"/t22"6l"ti1ttnt"16"1"=si.e./..a.a.N.N.N.N.N.N.N.m.....l""."s"5oviefi"..v>oo2oo"i1".1.1"io1>1f11m1m1a1a1a1a1a1a1a1e11110ve0t50oeoexio50e1on.ooo.122.1on""o""e"e"m"m"m"m"m"m"m">""""9essx"ea."lrnxetn0"r3l=5lltn2s".62.n=n>>eeeeeee"rttext4vs=ecs">s8v"0vvo"6t>5.62="sstssss>s>s>s>s>s>s>ssssssaacseu3eei"cu/pPi4e1"eeo.a01.6"1ttNtttttttttttttttsittutcs"xro0utfdDo5r2>rrlt1t""1.1.aaaaaaaaaaaaaaaaaatouutau=esn.tiifFn1s.2ssvo"u>"1.2ttmtttttttttttttttanssitt"eci=2iot"/=6i50iieossj>"26uueuuuuuuuuuuuuuuut===ouidxuo""onsX"6o02oorls=ta66.ss>sssssssssssssssu"""nsoietn1nT_t-6<n"3nnsvt"a-4s.1=================s0ddT=ndci=.sTioo4./=>-==ieaStJ<t1""""""""""""""""""=.iii"Tuo"0timuo<5s"20""ortIuP/a"SSSSSSSSSSSSSSSSS"1ddmdintn3"ametl/.i10111nsuNs<ptsIIIIIIIIIIIIIIIIId"eimoiT.te=pnv2z.2-..=isG=/austNNNNNNNNNNNNNNNNNinn=detoi6eu="uae"e23100"o=L"lgstaGGGGGGGGGGGGGGGGGdsoo"=nmGxs"2tmr>6-4""1n"ESae=atLLLLLLLLLLLLLLLLLttt2n"rTeAe=71"est.0T.=S_InC"tuEEEEEEEEEEEEEEEEEna9o1ui="c"33=iy110ss0"IR_NgoSus_________________otrr9t2nm"ud87x"op"-5tt"1NEPGuuIs=RRRRRRRRRRRRRRRRRtuuu"0"e9sti""mFne>1:aa.GSDLanN="EEEEEEEEEEEEEEEEEsnnr1=8tidlI>=A43tts0LUFEgtG"SSSSSSSSSSSSSSSSSSr=""u""3aonT"dT1uut"EL_e>LSIUUUUUUUUUUUUUUUUUu"n9"tnnsSpo0:ssa_T.R>EINLLLLLLLLLLLLLLLLLnd"6uTo:"ub62==tsR"iE_NGTTTTTTTTTTTTTTTTT"i3sitxie:6""utE>nSRGL"""""""""""""""""d"=mstd2ZSSsaStdUELE>>>>>>>>>>>>>>>>>"erio"P8<II=tUrdLSE_nd=u=o>D:/NN"uLu<TU_Roi"n"lfF1cGGSsTe/"LREtd2"hvm7rLLI="<t>TES3tetLZeEEN">/iA"SUrn1tr/i<a__GStvtd>ULuo"ps4b/tRRLIralonLTnt:i8rleEEENuleboT""/o8aadSS_Gei>e<">r/n<rs>UURL<d/>7uw=/ytLLEE/>Ihy<nw"emTTS_wnae/"w1x1o""UReDssg..t7d>>LEleO<rw6e.i/TSlsu/a3.r0fw"U-ithp.0n/io>Lfglaho"aAer1Tonisir>lddkf"rnAcgIo>/6>m1ens/dba1e8>nC2ee16d.oo0n18>1tu0tIa4an1in19(tt/fDb7Mi>Xie.26aoMesp39cnLrid65isS>gf02n>cn<70tha0oe1.f00sm8pie<ha.dl2/)-1fe9f<i<nes/n(/a1lasMfm0autaieestacl>fthniedmocnpcoreta1d>"ot5ish3fxh>5is)8ei<4d:/<>sc/crmhedea5mtcaihLneogccAkapstpuilmoi>nc=a"thitotnpN:a/m/eh>ul.harvard.edu/ois/xml/ns/fits/fits_outputhttp://hul.harvard.edu/ois/xml/xsd/fits/fits_output.xsd"version="1.6.0"timestamp="1/26/24,12:49PM">

以下が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の活用に向けて、調査を継続したいと思います。