タグ機能の無いファイルシステム上でのファイル命名規則

そう。タグ機能のあるファイルシステムWindows Vistaにつくらしい。*1
Mac OS Xでもタグ機能がついているらしい*2
タグ機能とはフォルダに関係なく、ファイル単位に関係のあるキーワードを登録し、検索時にそのキーワードで検索するとフォルダ等の制約に関係なくファイルが検索される仕組みである。
簡単な話、はてなブックマークのタグ機能
http://b.hatena.ne.jp/t
みたいなものである。
そんなファイルシステムに密着した機能がFAT32NTFSでも欲しいと考えていた。
でも、無いものねだりは出来ないので、検索対象に妥協案として命名規則をつけることにした。
私は
[小文字のアルファベット1文字][ファイル名][タグ][タグ...*3].拡張子
としている。


例:cキングオブC言語[C lang][program].html

以下のような合理点から導き去れたファイルの命名規則である。

  • 先頭の小文字のアルファベット1文字によりエクスプローラーでキーボードを押して対象のファイルに飛びやすい
  • タグをつけて関連性のあるファイルを関連付け(マッピング)させられる。よって検索時に関連性のあるファイルを列挙できる。

しかし、ソースコードなどのファイルにタグをつけるとコンパイラがエラーを吐く恐れがあるのでもっぱらそれ以外の検索対照のファイルのみにこのような命名規則をつけている。


以上、苦肉の策(ハックと呼べるか!?)だったが、タグ機能のあるファイルシステムを設計せよと言われたら、私はそのデータ構造をどのようにしようかと悩む。ファイルシステム自体にそのデータ領域を・・・と、言われても、タグ自体がどのくらいの長さになるかが分からない。しかも、タグ自体が1つのファイルにたくさん付くと仮定すると・・・1ファイル自体の容量がとてもたくさん使ってしまうことが予見される。
私はOSがファイルを移動したりコピーしたり等のイベントをキャッチしてタグのデータベース(以下、DB)を更新させるような処理しか思いつかない・・・しかもDBが破損した時の対応とか、その他もろもろを考えると・・・ 頭が痛くなりそうだ・・・
でも、意外と、そのOS自身のイベントをどうにかできればタグ機能つきファイルシステムを作れるかもしれない。


関連:ファイルシステムはシステムの性能の根幹的な部分と私は考えているのでとても興味深い。

*1:検索フォルダという機能らしい・・・http://www.microsoft.com/japan/windowsvista/features/foreveryone/searchorg.mspx

*2:http://www.apple.com/jp/macosx/features/spotlight/

*3:タグは何個つけても良い