2010年9月4日土曜日

OpenMetaをためしてみる。

ファイルの管理にはやっぱりコメントやタグがつけられると便利!
MacではSpotlightがあるのでコメントはつけれるけどタグはデフォルトではつけれない、そんな人にOpenMeta!

通常、あるファイルには複数の属性があると思います。
たとえば「オペレーティングシステムの講義で提出したデッドロックに関するレポート」だと「OS」「レポート」「デッドロック」「プログラム」「提出済み」などですね。
もしこのような情報を”タグ”として保存し、Spotlightなどのファイル検索ソフトで検索できたら?その上その手法が標準化されていて、いろんな人が作った便利なソフト達の中から好みのソフトを選べるとしたら?
そんな素敵で便利なOpenMetaプロジェクトについて調べてみた。




OpenMetaとは
openmetaプロジェクトが作成したファイルのメタデータ(付加情報)フォーマットの仕様。


従来、ファイルのメタデータはアプリケーションの制作者が自分勝手な仕様で付加していました、だけどそれには大きな問題が、、、そう、そのメタデータを付加するのに使ったソフトでしか情報が見れない!
これは大きな問題です、たとえばそのソフトの開発が終了してしまったら、もしもっと便利そうなソフトを見つけてしまったら、いままで頑張って入力していたメタデータがすべて使い物にならなくなる!


そこで作成されたのがOpenMeta、HFS+ファイルシステム(Macとかで使われてる)で使われているExtended Attributes(xattrとかEAともいう)という拡張属性機構を使用してファイルのメタデータを付与するらしい。
そのときに使われる基本的な語彙はOpenMeta仕様で定義されており、OpenMetaに準処したソフトウェア同士でメタデータを共有する事ができる!!


OpenMetaとタグ
そんなOpenMeta仕様の一部にタグに関する仕様がある。
xattrに「kOMUserTags」という名前で、「コンマ区切り」でタグ情報を記録する(もっと細かいルールもあるかも)というもので、このルールに沿ってタグ情報を保存しておくと他のOpenMeta対応アプリケーションからも同じ情報にアクセスできるというもの。


とても簡単なことだけど、たったそれだけでもメタデータの可搬性(いろんなことに転用できるってこと)はうなぎ上り!


ちなみに他にもレーティング(お気に入り度)や著者情報に関する仕様もあるらしい。
(MacOS X Metadata Importers Referenceを参照)


ソフトAでつけたレーティングを元にソフトBで検索、、、なんてことができるってこと、ちなみにSpotlightもxattrを読めるのでmdlsコマンドで確認する事も出来るし、SpotLight検索やmdfindコマンドで検索する事もできる。



OpenMeta対応のソフト
というわけで、OpenMeta対応ソフトの中からおすすめのものを紹介。


「ファイルをタグで管理したい」「多機能すぎるとめんどくさい」「よけいなソフトは入れたくない」人向けのシンプルイズベストなアプリケーションです。


Tagger:アイコン上にドロップしたファイルにタグをつける。
アイコンの上にドロップしたファイルにタグをつけるだけというシンプルなアプリケーション。

こんなスクリプトを用意しておいて、ランチャなどに登録しとくと幸せになれる。。。かも?
--Finderで選択中のファイルにTaggerを使ってタグをつける
on run
  --選択中の項目を取得
  tell application "Finder"
    set selectedFile to selection as text
    if selectedFile = {} then return --何も選択していなかったらリターン
  end tell
  --Taggerでタグをつける
  do shell script "open -a Tagger /Volumes" & POSIX path of quoted form of selectedFile
end run
Tag Folders:タグをつけてくれるドロップレットを作る
ファイルをドラッグアンドドロップするとタグをつけてくれるアプリケーション(見た目はディレクトリ)を作るアプリケーション。複数のファイルに同じタグをつけるときに便利。
ダブルクリックするとそのタグがつけられたファイルを検索する。






xattrに書き込むので、ほかの対応アプリケーションから検索できる。以下はFinder(Spollight)での検索例





俺も今後ソフトを作るときはOpenMetaに対応するようにしようと思う。


0 comments:

コメントを投稿