ExifTool で取得できるタグ名をFileMaker書類に作成し、マイ分類したり他のフィールドを追加して育てます。これをメインとなるメディアデータベースに接続させることで機能アップの補助装置として活躍しました。
Exiftool で画像パスを指定すると多くのタグと値が手に入ります。ExifやIPTCをはじめ汎用的なものやICCプロファイルやメーカー独自のタグなど大量です。まだ慣れていない頃、タグ名の記録を取って理解を深めようとしたんです。最初は表計算ソフトでコツコツ作っていたのですが、面倒なので FileMaker に変換してデータベースファイルとしたところ頭角を現し、かなり使える奴と化しました。
タグ名のデータベース
最初は csv にメモ
最初にやったのは表計算ソフトにグループとタグ名、値のサンプルと簡単な説明を書き留めることでした。
csvで作っても面倒なだけだし他で活用もできないので、そうだここはFileMaker Pro の出番である。と、FM書類に変換したのです。
FM書類になればこっちものものです。すでに稼働しているメディア管理のデータベースに接続しました。画像データベースでは Exiftool を使ってメタデータをゲットし、リレーションしたメタデータテーブルに網羅します。このメタデータテーブルとグループ名やタグ名で接続するわけです。
metaKeysというのがタグ名データベースのテーブルの名前です。当初はExiftoolだけを対象に考えていたのでその名も ExiftoolTagsでした。けど、Exiftool以外のメタデータも扱うことにしたので後にmetaKeysに改名されました。
名前なんかはともかく、とにかくメタデータテーブルと接続します。metaKeys は「新規レコード可」設定です。最初は、タグ名データベースmetaKeysを育てるためにこの接続を行いました。
タグ名データベースを育てるため
運営していく中で metadataテーブルに Exiftool で取得したタグと値がずらずら〜と入ります。この時、metaKeys に同じタグ名がリレーションされていればそれでよし、もし未登録でリレーションが成立していなかったら metaKeys のKeyフィールドにタグ名が転記されレコードが作成されるという仕組みのスクリプトを付け加えていました。
このような運営を続けつつ、メディア管理データベースを試行錯誤して弄くったりポイと捨てたりしていました。メインファイルは棄てられても metaKeys は別ファイルだし特に問題も無いので棄てられることもなく育ち続けました。
データベースの充実
そうこうしているうちにタグ名データベース metaKeys のレコードも増え、必死で育てる段階ではなくなってきました。これ何かに使えないか?と思い始めます。
マイ分類
Exiftool で取得するグループは単なる技術的なグループなので、意味中心のカスタム分類フィールドを追加し、日付データには「日付」、露出やレンズ情報などには「写真」GPSなら「撮影場所」著作者の情報なら「作成者」などとざっくりマイ分類をしてみたりします。これが思いのほか役に立つことになると、最初はあまり考えていませんでした。
さて当初は metaKeys を育てることが目的だったわけですが、それが逆転します。metaKeys と接続しているデータベースのほうが育ってくるようになりました。
メタデータ管理の補助に力を発揮
メディア管理データベースのほうこそ metaKeys の助けを借りて充実していく方向に変化してきました。
例えばメディア管理でメタデータを表示するのにポータルを使います。タグ名(Keyフィールド)を配置するとこのようになります。すっきり判りやすい英語的表示ですが、時には日本語もほしいところ。
metaKeys には Label フィールドがあって、一部日本語ラベルを書き入れてます。これを持ってきて「ラベルがあればラベル、なければタグ名を表示」する設定にできます。省スペースにも役立ち、日本語で判りやすいという案配。
目的に応じた絞り込みも簡単です。ポータルフィルタにカスタム分類をセットして分類ごとに表示をコントロールします。
そんなこんなで、metaKeys との接続により、メタデータテーブルのポータルでラベルや分類が自在に使えるようになりました。
メタテーブルとメインテーブルのフィールドを結びつける
metaKeys を使ったさらなる一手があります。メタテーブルとメインテーブルのフィールドを結びつけて操作の一翼を担います。
metaKeys にさらにフィールドを追加しました。entry_field と output_field です。この二つのフィールドは、メディア管理メインテーブルのフィールド名と一致させます。
例えば、DateTimeCreated、DateTimeOriginal、CreateDate、CreateDate といったタグ名があります。グループが ExifだったりQuickTimeだったりIPTCだったりいろいろですが、これらすべてオリジナルデータの作成タイムスタンプという同じ情報です。これらの entry_field フィールドに 「オリジナル作成日」と付けておきます。
一方、メディア管理のメインテーブルに「オリジナル作成日」というフィールドがあります。
インポート時またはメタデータ取得時に、ループの中で空でない entry_field を見つけたら同じ名前のメインテーブルに値が転記されるというスクリプトを紛れ込ませています。メタデータを取得しメタテーブルに網羅している途中に、フィールドにも値が記入されるという案配です。
output_field はこれとは逆に、エクスポート時に同じフィールド名を見つけたらその値をメタデータとして出力したり埋め込んだりできます。
こうした操作は metaKeys にタグ名とフィールド名があるからこそ実現するのでして、今やなくてはならないテーブル(ファイル)となりました。
実践
metaKeys.fmp12 ファイルは各種メディアデータベースに接続して活躍しますが、FMメディア管理の作り方シリーズでは DBTools フォルダ内にあります。
本投稿は、以下の作るシリーズR13とR14に対応した内容となっております。