データ発見隊

第2回 ファイル管理の工夫

この記事を読むのに必要な時間:およそ 4 分

ファイル管理の問題

一般的な計算機上のファイル管理法は30年ぐらい前からあまり進歩していないように思われます。現在ほとんどのパソコンやサーバで利用されている階層型ファイルシステムは,UNIXのファイルシステムの開発時にDennis Ritchieによって導入されたものですが,現在ではWindowsやMacintoshなどあらゆるパソコンで採用されてファイルシステムの標準になっており,それ以外のファイル構成を考えることは難しくなっています。URLでもUNIXのファイルシステムと同様の階層表記が採用されているため,現在はあらゆるデータにおいて「/」で親子関係を表現する階層的なデータ構造が採用されているといっても過言ではないでしょう。

階層型ファイルシステム上のファイル管理はだいたい次のような原理に基づいています。

  • さまざまなデータを均質なファイルとして扱う
  • 複数のファイルをディレクトリの中にまとめることができる
  • ディレクトリも別のディレクトリの中に置くことができる
  • ファイルやディレクトリには名前そのほかの属性がある

現在は誰もがこのような階層型ファイルシステム上でファイルを管理していることになりますが,階層的ファイル管理手法にはいろいろ使いにくい点があります。

階層型ファイルシステムの構造の問題

住所表記や組織の構造など世の中のたいていの大規模データは階層的に管理されていますから,階層的なデータ構造については誰でもある程度馴染みがあるはずです。しかし,住所や組織のデータ構造は誰かがしっかり管理しているのに対し,自分の計算機の中のファイルは自分ですべて管理しなければならないという大きな違いがあります。

住所や役職のようなデータは均質なものですし階層構造がほぼ自明なので扱いやすいのですが,パソコンで扱うすべてのデータをきれいに階層的に管理するのは難しいものです。⁠システムが使うファイル」「自分が書いた文書」は別の場所に置いておくべきだということは理解できるとしても,どういう名前でどのような階層構造で管理するのが適切なのかを決めることは簡単ではありません。展示会でメモした資料は日付で管理するべきなのでしょうか,それとも展示会のディレクトリを作るべきなのでしょうか。その展示会で撮ったデジカメ写真は展示会のディレクトリに置くべきなのでしょうか,それともデジカメのディレクトリに置いておくべきなのでしょうか。展示会のメモは「日付」⁠仕事」⁠会社名」などさまざまな属性を持っているはずですが,どの属性をベースにして階層構造を構築するのが適切かは簡単に判断できません。各種の請求書を処理したい場合,請求書関連のデータは仕事別のディレクトリに置くのが良いのか,まとめて1つの「請求書」ディレクトリに置くほうが良いのかわかりません。長年にわたってデータを蓄積して初めて適切な階層構造がわかってくるかもしれません。

メールメッセージやデジカメ写真の場合はそのようなメディアごとに用意されたディレクトリ内で管理されるのが普通です。仕事のメールと遊びのメールとspamメールは同じ場所に保存されますし,仕事のために撮った写真とレジャーの写真も同じディレクトリに保存されます。⁠仕事」をベースに構成した階層データの中でこういうデータを管理しようとすると,メッセージや写真データの複製や移動が必要になるでしょう。

ファイル属性の問題

ファイル自体を管理する方法もそれほど自明ではありません。現在のパソコンでは名前を表現する文字列(例:masui)とファイルの形式を示す拡張子文字列(例:pdf)をピリオドでつないだものをファイル名として利用するのが常識になっています。名前と拡張子を利用するという方法はもともとDECのミニコンのOSで採用されていたものですが,MS-DOSやUNIXでも同様の方法が採用された結果,現在ほぼすべてのパソコンやサーバでこの方法が使われています。ファイルにはデータ形式以外にもさまざまな属性が付随しており,ファイルのバージョン番号をファイル名の一部として利用するシステムも昔は存在しましたが,現在はデータ形式を示す拡張子だけが利用されているようです。

ファイルの属性としてはファイル形式が最も重要だと認識されているためファイル形式を示す拡張子がファイル名の一部として利用されているわけですが,これだけではもちろん十分ではありません。ファイル作成日付,ファイル更新日付,ファイルの大きさ,パーミッションなどの属性も重要になることがあります。これらの属性はファイルシステムに用意されていますが,あらゆる属性を用意しておくことはできません。前回解説したようなファイルのアクセス履歴,ファイルの重要さ,ファイルの秘密の度合いなどの属性が必要になることもありますし,ファイルシステムの機能として「2012年まで要保存」⁠しばらく使われなければ消去」のような変わった属性も欲しいかもしれません。ファイルに関連するさまざまな属性を柔軟に管理する方法がファイルシステムには用意されていないと言えるでしょう。

ファイルを管理する手法

このように,階層型ファイルシステムの現状もファイルの現状も人間にとって十分便利だとは言えないものであり,ファイルを使った情報の整理はとかく面倒なものです。階層型ファイルシステムやファイル名のコンベンション(慣習)はすっかり標準になってしまったので,もっと良い方法があったとしても現状の手法を根本的に変えてしまうことは難しいと思われます。現状のファイルシステムを有効に利用しつつ,うまいデータ管理方法を考える必要があるでしょう。

運用をがんばる方法

階層型ファイルシステムやファイル属性の特徴を最大限に活かすように注意しながら一貫した方法で階層を構築したりファイル名を設定したりできれば,ファイルの構造の把握や名前付けに悩むことはなくなるでしょう。このようなパソコン上の情報整理術はさまざまなものが提案されていますが,既存の階層型ファイルシステムやファイル名を扱っている限りは結局のところ「人間ががんばって整理する」以上のことはできません。

付加的機能を利用する方法

ハードリンクやシンボリックリンクを併用すると階層的でないリンク構造も表現できるので,階層型ファイルシステム上で柔軟なデータ構造を実現できます。しかしOSのファイル操作機能は階層構造を前提にしていますし,複雑なデータ構造は階層構造よりも理解がしづらくなることもあります。また,リンクがループを構成すると階層が無限になってしまう可能性があるので,ループを排除しつつ階層構造を便利に拡張する手法も考案されています参考文献1)⁠

検索システムを併用する方法

適切な階層構造やファイル名を使わなくても,検索によって必要なファイルが見つかるようになっていればファイルの構造にあまり神経質になる必要はなくなるでしょう。⁠展示会レポート」のファイルをどこのディレクトリに格納したかを忘れてしまったとしても,展示会の名前からレポートを検索できれば困りません。また,レポートを作成した日付がわかれば,その日付を頼りにしてデジカメ写真を検索すれば展示会で撮った写真を見つけることができるでしょう。展示会の名前も日付も忘れてしまった場合は,写真に位置情報が関連付けられていれば展示会の場所の記憶をもとに写真を見つけることができるかもしれません。

不完全な情報からでも芋づる式に情報を検索できる「近傍検索システム」参考文献2のようなものを使えば,全文検索システムがなくてもリンクをたどって目的のファイルを捜すことができます。近傍検索システムは,現在注目している情報になんらかの形で近い情報を周囲に提示することにより芋づる的検索を支援するものです。図1において「PalmWiki」のWebページを閲覧すると,内容が近いファイル/置き場所が近いファイル/作成日付が近いファイル……のように対象に近いファイルがリストされるので,ブラウザ上のクリック操作を行うだけで関連情報のリンクをたどることができるようになっています。

図1 近傍検索システム

図1 近傍検索システム

著者プロフィール

増井俊之(ますいとしゆき)

慶應義塾大学教授。ユビキタス時代のインタフェース技術の研究開発に従事。

本棚.orgGyazoQuickMLFeedTVなど各種のネットサービスを運用中。

http://www.pitecan.com/

コメント

コメントの記入