ファイルシステム
【課題】 表計算ソフトやリレーショナル・データベース等に登録する前の加工されていない生データや各種のアプリケーションプログラムのファイルなど、コンピュータに記憶されるファイルやフォルダに手を加えず、表形式にファイルやフォルダを分類できるようにして分類作業の操作性を著しく改善することが可能なファイルシステムを提供すること。
【解決手段】 複数の分類属性を持つフォルダを作成する手段と、作成したフォルダに対し前記複数の分類属性に対応した属性値を持つファイルを格納する手段と、前記フォルダおよびファイルを2次元の分類表形式で表示画面に表示する手段とを備えることを特徴とする。
【解決手段】 複数の分類属性を持つフォルダを作成する手段と、作成したフォルダに対し前記複数の分類属性に対応した属性値を持つファイルを格納する手段と、前記フォルダおよびファイルを2次元の分類表形式で表示画面に表示する手段とを備えることを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータの記憶装置に記憶するファイルとフォルダをグラフィカルユーザインタフェース(GUI)を用いたコンピュータ(利用者端末)に表示させて管理するファイルシステムに関するものである。
【背景技術】
【0002】
従来、コンピュータ・ファイルシステムの利用者端末への表示形式としては1970年頃Ken Thompson、Dennis Ritchieらが開発したUNIX(登録商標)OSのファイルシステムに採用されて以来、ファイルとファイルを格納するフォルダをツリー形式に表示するファイルシステム技術が広く用いられている。
一方、表計算ソフトやリレーショナル・データベース管理システムではデータを表形式に表示し編集する方法が用いられている。
【非特許文献1】DEC PDP−11技術資料等
【発明の開示】
【発明が解決しようとする課題】
【0003】
従来、コンピュータ・ファイルシステムの表示形式として用いられているツリー形式は単純な階層構造をもつファイルを分類整理する方法として優れているが、分類観点が1つ増える都度、ツリーの階層を1つ増やす必要がある。
また、多くの分類観点からファイルを分類しようとすると、複数のフォルダに対して同時にフォルダ階層を増やす必要があり、操作が煩雑になる欠点がある。
また、表計算ソフトやリレーショナル・データベース管理システムは、データベース等に登録した数値データや文字データなどのデータを管理するには優れているが、そのために登録するデータの正規化やデータベースソフトウェアが扱える形式にファイルデータを変換するなどデータを加工する必要があり、利用するまでの準備に多大な労力を要する問題がある。
【0004】
本発明の目的は、表計算ソフトやリレーショナル・データベース等に登録する前の加工されていない生データや各種のアプリケーションプログラムのファイルなど、コンピュータに記憶されるファイルやフォルダに手を加えず、表形式にファイルやフォルダを分類できるようにして分類作業の操作性を著しく改善することが可能なファイルシステムを提供することにある。
【課題を解決するための手段】
【0005】
上記目的を達成するために、本発明に係るファイルシステムは、複数の分類属性を持つフォルダを作成する手段と、作成したフォルダに対し前記複数の分類属性に対応した属性値を持つファイルを格納する手段と、前記フォルダおよびファイルを2次元の分類表形式で表示画面に表示する手段とを備えることを特徴とする。
なお、従来技術のファイルシステムで用いられてきたフォルダは本発明では分類属性を持たない0次元分類フォルダと見なすことができる。従来技術のファイルシステムで使用されているフォルダと本発明のフォルダを明確に区別する為、以下フォルダという名称を使う場合は上記に説明した分類属性数Nを名前の前に付けて1次元分類フォルダ、2次元分類フォルダ等、一般にN次元分類フォルダと呼ぶ。0次元分類フォルダは従来技術のフォルダと同じ機能をもつと考えてよく、単にフォルダと呼ぶ。
【発明の効果】
【0006】
本発明によれば、ファイルとN次元分類フォルダを分類属性に基づき表形式に分類表示できるので、多数の分類観点からファイルを分類する際にもツリー形式のように深い階層や縦長の表示にならず、操作性が優れている。
また、分類表の縦軸と横軸に割り当てる属性を任意に選べるので分類観点変えた比較が容易に行える。
【発明を実施するための最良の形態】
【0007】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
図1及び図2は、本発明を実装したファイルシステムの利用者端末における表示例を示す図である。
本発明ではファイルやN次元分類フォルダなどファイルシステムが管理して利用者が操作する対象物はアイコン(図像)と名前を用いて表示する。
各アイコンはGUI機能を利用してマウス操作で展開表示またはクローズできる。ボリュームアイコン1.1は記憶装置の論理的な単位を表している。ボリュームにはファイルとN次元分類フォルダを格納する。
図1のボリュームアイコン1.1は、“MYVOL”という名前を付けた場合を例示している。図1の1.2は“アジア・レポート”という名前の0次元分類フォルダのアイコンを例示している。次元数が1以上のN次元分類フォルダの場合は“アセアン諸国”)という名前のアイコン1.3で例示するように、0次元分類フォルダと異なるアイコン図柄を用いて区別する。
N次元分類フォルダはアイコンの図柄に属性数(次元数)Nを重ね合わせて表示する。“アセアン諸国”)という名前のアイコン1.3は、分類属性数が“2”の2次元分類フォルダを例示している。本例に示すアイコンの図柄は利用者の嗜好に合わせて適宜変更してもよい。
図1の1.4は“アセアン諸国”という名前のアイコン1.3をマウス操作で展開表示した分類表の例を示している。図1の分類表1.4は分類属性として「国名」、「国の姿」という2属性を持つ場合を例示している。分類表の各セル(要素)の中には更にファイルやN次元分類フォルダを繰り返し格納できる。
例えば、図2のセル1.6は国名属性が“ヴェトナム”で国の姿属性が“経済”である要素として2次元分類フォルダを格納した例である。国名属性が“ミャンマー”で国の姿属性が“政治”のセル1.7ように空白のセルは該当する分類に要素がないことを示している。
【0008】
“ヴェトナム”・“経済”のセル1.6をマウス操作で展開した場合を1.8に例示する。
このセル1.8も1.4と同様に縦軸(年度)と横軸(統計)に分類表の属性をとり分類表示する。
セル1.8の中のアイコン1.9は、年度属性が“2001年度”で統計属性が“貿易統計”の要素のファイルアイコンを例示しており、この要素が1つのファイルであることを示している。“2005年度”・“貿易統計”のセルのアイコン1.10は0次元分類フォルダアイコンを例示している。マウス操作で同アイコン1.10を展開した場合を1.11に例示する。アイコン1.11ではフォルダ内に2個のファイルが格納されている場合を例示している。
【0009】
図3は、本発明のファイルシステムを実装するコンピュータの機能構成を示すブロック図である。
ここで例示するコンピュータは、CPU3.1と内部記憶装置3.2と外部記憶装置3.6などから構成される。利用者は利用者端末3.7からオペレーティングシステム3.3と本発明のファイルシステム3.4を使って外部記憶装置3.6に格納されたファイルにアクセスできる。
利用者はアプリケーションプログラム3.5を起動して外部記憶装置3.6内のファイルに対して様々な処理が行える。これらの処理はクライアントサーバ型のシステムで実装してもよく、パーソナルコンピュータで実装してもよい。
【0010】
図4は、ファイルシステム3.4の詳細を示すブロック図である。
ファイルシステム3.4は、ファイル入出力処理プログラム4.1、ファイル探索プログラム4.2、ユーティリティプログラム4.3の3つの要素から構成されている。
ファイル入出力処理プログラム4.1は、ファイル探索プログラム4.2、ユーティリティプログラム4.3及びアプリケーションプログラム3.5から要求されるファイルやN次元分類フォルダに対する論理的な入出力要求を物理的な入出力要求に変換し、デバイスドライバ4.5に対して物理入出力命令を発行し、入出力制御装置4.6経由で外部記憶装置3.6に入出力を行う。
【0011】
図1、図2に例示したGUI画面はファイル探索プログラム4.2の表示例であり、GUI画面表示関数4.8を用いることにより、利用者端末(図3のコンピュータ)のボリューム1.1に含まれるファイルやN次元分類フォルダの作成、構成内容の表示、検索等の機能をGUI操作として利用者に提供する。
また、ファイル探索プログラム4.2はOS(オペレーティングシステム)3.3のジョブ管理機能の命令(ジョブの起動)を内部で発行し、当該ファイルと関連するアプリケーションプログラム3.5を起動する機能を利用者に提供する。
例えばワードプロセッサ・ソフトが作成したファイルであれば、ユーザのマウス操作(ダブルクリック)によりファイルに関連するワードプロセッサを起動する。起動されたワードプロセッサは入出力処理プログラム4.1)に要求して当該ファイルを読込み、データ編集処理を開始できる。また、GUI操作以外に従来からOS等が提供しているコマンド(利用者がキーボードから入力するコンピュータ操作命令)4.12を用いてアプリケーションプログラム3.5を起動できる。
【0012】
本発明では、ファイル入出力処理プログラム4.1とファイル入出力処理プログラムにファイル入出力命令を発行する全てのアプリケーションプログラム3.5、OSコマンド4.12、ユーティリティプログラム4.3、ファイル探索プログラム4.2等の間で共通のファイル名称規則を使用する必要がある。ファイル名称規則の一例については後述とする。
【0013】
図5に本発明を実施するための外部記憶装置3.6の論理的な構成を示す。
外部記憶装置3.6には、論理的な記憶単位である前述のボリューム1.1に相当する複数のボリューム領域1〜Nが存在し、また各ボリュームのボリューム名称と割当て情報を管理するためのボリューム登録情報領域5.2が存在する。割当て情報にはボリューム領域の開始位置、終了位置、所有者、アクセス権限等の情報を格納する。
各ボリューム領域は制御領域5.5とデータ領域5.6とから構成される。
制御領域5.5はマトリックス構造体領域5.7、属性リスト領域5.8、属性値テーブル領域5.9、要素リスト領域5.10、ファイル割当情報領域5.11から構成され、それぞれ後述するマトリックス構造体、属性リスト、要素リスト、ファイル割当テーブルを格納するための領域としてファイルシステム3.4が使用する。
データ領域5.6は、ファイル未使用領域を管理するビットマップテーブルとファイル実体を格納するファイルエンティティ領域から構成される。これらの領域はユーティリティプログラム4.3の一種である外部記憶装置初期化プログラムが初期化フォーマットを行い使用可能とする。
【0014】
図6に本発明のファイルシステムにおけるN次元分類フォルダの実装方式例を示す。
1つのN次元分類フォルダに対応して分類フォルダの情報を格納するマトリックス構造体6.1と呼ぶ管理領域を設ける、このマトリックス構造体6.1を起点としてN次元分類フォルダに格納される全てのファイルとファイルの属性は起点からポインタで辿ることができる。
マトリックス構造体6.1は、(1)次元数N、(2)属性リストポインタ、(3)属性名、(4)フォルダ名称、(5)チェーンから構成した例を示す。
マトリックス構造体6.1の次元数Nは分類属性数を格納する。例えば図2の1.3に示した“アセアン諸国”は2次元分類フォルダであり、「国名」と「国の姿」という2つの分類属性を持つので、この場合のマトリックス構造体6.1の次元数には“2”を格納する。マトリックス構造体6.1の属性リストポインタは属性リスト6.2へのポインタであり、次元数と等しいN個の属性リストポインタをマトリックス構造体6.1に格納する。但し、0次元分類フォルダの場合は例外として次元数に拘わらず1つの属性リストポインタをマトリックス構造体6.1に格納する。N次元分類フォルダに格納する要素は属性リストを用いるため分類属性がない0次元分類フォルダの場合でも1つの属性リストを使用するためである。
マトリックス構造体6.1の属性名は、各属性リストポインタと対でN個存在する。例えば図2の1.3に示した“アセアン諸国”の2次元分類フォルダでは属性「国名」と「国の姿」という2個の属性名をマトリックス構造体6.1に格納し、その属性と対に2個の属性リストポインタが存在する。
マトリックス構造体のフォルダ名称はマトリックス構造体(N次元分類フォルダ)6.1に付けた名前を格納する。例えば図2の1.3に示した“アセアン諸国”という名前の2次元分類フォルダでは「アセアン諸国」が名前でありフォルダ名称に格納する。
マトリックス構造体6.1のチェーンは、未使用のマトリックス構造体を管理する時に使用する領域であり、使用済みのマトリックス構造体ではチェーンはNIL(空)を設定する。
【0015】
属性リスト6.2は属性値ポインタと要素リストポインタから構成するリストである。例えば図2の1.3に示した“アセアン諸国”という2次元分類フォルダの「国名」という属性リストには10個(タイ、ラオス、カンボジア、・・・、フィリピン)の属性値がある。属性値ポインタは属性値テーブル6.3上の属性値へのポインタである。
要素リストポインタは要素リスト6.4へのポインタである。
属性リスト6.2は、図5の属性リスト領域5.8に格納され、属性値テーブル6.3は図5の属性値テーブル領域5.9に格納する。属性リストのチェーンは未使用の属性リストを管理する時に使用する領域である。
【0016】
要素リスト6.4は、ある属性値をとる要素の集合をリストにしたものである。例えば図2の1.3に示した“アセアン諸国”という2次元分類フォルダの場合、「国名」という属性の属性値が「タイ」であるファイルやN次元分類フォルダの集合をリストにしたものが「国名」が「タイ」の要素リストであり、そのポインタを「タイ」の要素リストポインタに格納する。同様に「国名」属性の属性値がXであるファイルやN次元分類フォルダの集合をリストにしてXの要素リストポインタに格納する。
要素リスト6.4は、(1)ポインタ種別、(2)ファイル名称、(3)ポインタ、(4)次要素ポインタから構成する。
【0017】
要素リスト6.4のポインタは、図6に矢印で示すように、(1)ファイルをポイントする場合と(2)N次元分類フォルダをポイントする場合があり、ポインタ種別によって、ポイント先を区別する。要素リストに含まれる集合の要素は次要素ポインタによって最終要素まで連結する。最終要素の次要素ポインタはNIL(空)とする。
要素リスト6.4のポインタ種別がファイルポインタの場合、要素リストのフアイルポインタはフアイル割当テーブル6.5のファイルエントリをポイントする。
また、要素リスト6.4のポインタ種別がN次元分類フォルダの場合、要素リスト6.4のファイルポインタは当該N次元分類フォルダの起点となるマトリックス構造体をポイントする。要素リスト6.4は図5の要素リスト領域5.10に格納する。
【0018】
ファイル割当てテーブル6.5は、図6に示すように、ファイル領域割当開始番号、ファイル領域割当終了番号とチェーンから構成する。
ファイル割当テーブル6.5は図5のファイル割当情報領域5.11)に格納される。ファイル実体は図5のデータ領域5.6に格納する。
【0019】
図5のデータ領域5.6は、固定長のデータブロックに分割し、各データブロックには番号をつけて識別する。ファイル実体は1つの初期割当領域と0個以上のエクステントから構成される。初期割当領域とエクステントは連続するデータブロックであり、開始番号と終了番号がある。例えば図6では要素リスト6.4に登録された「4月貿易統計.dat」というファイルエンティティが初期割当領域としてブロック番号6〜12、エクステントがブロック番号18〜20から構成されている場合を例示している。その場合、図6の6.6に示すように初期割当領域のエントリにはファイル割当開始番号とファイル終了番号にそれぞれ「6」と「12」が格納され、チェーンはエクステントのエントリアドレスへのポインタを格納する。エクステントのエントリにはファイル割当開始番号とファイル終了番号にそれぞれ「18」と「20」を格納し、チェーンは「NIL(空)」を格納する。
ファイルエンティティ6.6を格納するデータ領域の各ブロックの使用状況を管理するため、ビットマップテーブル6.7を使用する方法がある。ビットマップの各ビットはデータブロックに対応しており、未使用=0、使用済み=1として管理する。以上のように1つのN次元分類フォルダの要素は対応するマトリックス構造体を起点として辿ることができる。
図1で説明したように全てのN次元分類フォルダの起点はボリュームである。ボリュームは1つ0次元分類フォルダであり、マトリックス構造体領域の先頭のマトリックス構造体がこの0次元分類フォルダである。このボリュームに対応する1つのマトリックス構造体を全ての起点(原点)として、そのボリュームに含まれる全てのN次元分類フォルダとファイルを辿ることができる。
【0020】
図7にマトリックス構造体の未使用領域の管理方法を例示する。
図7は前述の外部記憶装置初期化プログラムを用いてボリュームを初期化した直後の状態を示している。
外部記憶装置初期化プログラムは、マトリックス構造体領域に連続する固定長のマトリックス構造体(図7の7.3)を作成し、最初のレコードをボリュームに対応するマトリックス構造体として使用する。2番目のレコードから未使用のレコードとして、チェーンを用いてレコードを連結する。最初の未使用レコードへのポインタをフリーレコードポインタ(図7の7.2)に設定する。未使用レコード数をフリーレコード数(図7の7.1)に格納する。
新しいN次元分類フォルダを作成する際、フリーレコードポインタ7.2がポイントするマトリックス構造体のレコードを一連のチェーンから外し、2番目のフリーレコードをフリーレコードポインタ7.2に設定する。チェーンから外した未使用のマトリックス構造体を新しいN次元分類フォルダの起点とする。
【0021】
図8に属性リストの未使用領域の管理方法の例を示す。
図8は前述の外部記憶装置初期化プログラムを用いてボリュームを初期化した直後の状態を示している。外部記憶装置初期化プログラムは属性リスト領域に連続する固定長の属性リスト(図8の8.3)を作成し、チェーンを用いて未使用のレコードを連結し、最初の未使用レコードへのポインタをフリーレコードポインタ(図8の8.2)に設定する。未使用レコード数をフリーレコード数(図8の8.1)に格納する。新しい属性リストをマトリックス構造体に格納する際、フリーレコードポインタ8.2がポイントする属性リストのレコードを一連のチェーンから外し、2番目のフリーレコードをフリーレコードポインタ8.2に設定する。チェーンから外した未使用の属性リストをマトリックス構造体の新しい属性リストポインタに設定する。
【0022】
図9に要素リストの未使用領域の管理方法を示す。
図9は前述の外部記憶装置初期化プログラムを用いてボリュームを初期化した直後の状態を示している。外部記憶装置初期化プログラムは要素リスト領域に連続する固定長の要素リスト(図9の9.3)を作成し、次要素ポインタを用いて未使用のレコードを連結し、最初の未使用レコードへのポインタをフリー要素ポインタ(図9の9.2)に設定する。未使用レコード数をフリーレコード数(図9の9.1)に格納する。新しい要素を要素リストに格納する際、フリーレコードポインタ9.2がポイントする要素リストのレコードを一連のチェーンから外し、2番目のフリーレコードをフリーレコードポインタ9.2に設定する。チェーンから外した未使用の要素リストレコードを要素リストに連結する。
【0023】
図10にファイル割当テーブルの未使用領域の管理方法を示す。
図10は前述の外部記憶装置初期化プログラムを用いてボリュームを初期化した直後の状態を示している。外部記憶装置初期化プログラムはファイル割当情報領域に連続する固定長のファイル割当レコード(図10の10.3)を作成し、チェーンを用いて未使用のレコードを連結し、最初の未使用レコードへのポインタをフリーレコードポインタ(図10の10.2)に設定する。未使用レコード数をフリーレコード数(図10の10.1)に格納する。新しいファイルポインタを要素リストに格納する際、フリーレコードポインタ10.2がポイントするファイル割当テーブルのレコードを一連のチェーンから外し、2番目のフリーレコードをフリーレコードポインタ10.2に設定する。チェーンから外した未使用のファイル割当テーブルレコードアドレスを要素リストのポインタに設定する。
【0024】
図11にデータ領域の未使用データブロックの管理方法を示す。
データ領域は前述の外部記憶装置初期化プログラムを用いてボリュームを初期化した際に固定長のデータブロックにフォーマットし、各ブロックにはブロック番号を付け一意に識別する(図11の11.2)。各ブロックの使用、未使用状態はファイル未使用領域ビットマップテーブル(図11の11.1)のビット状態で管理する。フォーマット直後は全ビットが“0”である。データブロックが使用状態になったときに該当するビットを“1”に設定すると同時に、その領域の開始番号と終了番号をファイル割当テーブル6.5のエントリに設定する。ファイル割当の際に連続する領域を割り当てた方が不連続な領域よりもハードウェアの動作上より高速にアクセス可能であり、ビットマップを使って未使用領域を管理する理由は、連続する未使用領域を探すことが容易になるためである。
【0025】
図7から図11を使って説明した外部記憶装置初期化処理のフローチャートを図12に示す。
この初期化処理はステップ1201〜1207で構成されており、ステップ1201ではデータ領域5.6にデータブロックを作成し、初期化する。
ステップ1202では、ファイル未使用領域ビットマップテーブル6.7を作成し、続くステップ1203ではマトリクス構造体領域5.7を作成し初期化する。
ステップ1204では、属性リスト領域5.8を作成し初期化する。
ステップ1205では、属性値テーブル領域5.9を作成し初期化する。
ステップ1206では、要素リスト領域5.10を作成し初期化する。
ステップ1207では、ファイル割当情報領域5.11を作成し初期化する。
【0026】
図13は、ファイル探索プログラム(図4の4.2)を使ってN次元分類フォルダを作成する際の画面操作例を示す図である。
まず、新しいN次元分類フォルダを作成する場所をマウスで選択する。図13の場合はアジア・レポート(図13の1.131)という0次元分類フォルダをマウスで選択している例を示している。
N次元分類フォルダを作成する場所を選択し、マウス右クリック操作により、作成→分類フォルダ1.132を選択した後、作成したいN次元分類フォルダの属性1.133を入力し、登録ボタンを押下する操作を繰り返すことで、属性を順番に入力する。この処理のフローチャートを図14に示す。
まず、ステップ1401において、選択されたN次元分類フォルダのマトリックス構造体PMを特定する。前記の段落「0014」で述べたとおり、本ファイルシステムでは登録したファイルやフォルダは全て起点から辿ることができ、ファイル探索プログラムは起点から辿ったファイルやフォルダを辿り画面に表示している。次に、ステップ1402において、フォルダ名称を画面から入力する。次に、ステップ1403において、属性を画面から入力する。
次に、ステップ1404において、入力された属性数から次元数Nを決定する。次に、ステップ1405において、マトリックス構造体NMをフリーリストから取得する。次に、ステップ1406において、入力したフォルダ名称と属性名称をマトリックス構造体NMに設定する。
ここで、PMは新しく生成するN次元分類フォルダを格納する場所となる既存のN次元分類フォルダに対応するマトリックス構造体であり、NMは新しく生成するN次元分類フォルダに対応するマトリックス構造体である。図13の場合アジア・レポートという0次元分類フォルダに対応するマトリックス構造体がPMであり、新規作成するアセアン諸国という名前のN次元分類フォルダに対応するマトリックス構造体がNMである。
次に、ステップ1407において、入力された新しく生成するN次元分類フォルダの属性を格納する属性リスト用領域をフリーリストから取得し、マトリックス構造体NMにポインタを格納する。図13の場合、新しく作成されるアセアン諸国という名前のN次元分類フォルダの分類属性として、国名を指定されているので、マトリックス構造体NMの属性名1には国名を格納し、属性リストに新たに取得された属性リストのポインタを格納する。
次に、ステップ1408において、PMの次元数=0であるかを判定し、“0”であったならば、既に「0014」に述べたとおり、0次元分類フォルダの場合には分類属性による分類を行わないがフォルダの要素はN次元分類フォルダと同様に要素リストに登録するため、以下の処理を行う。まずステップ1410において、フリーリストから要素リストNEを取得し、NMのアドレスを設定する。NEとは、新しく生成するN次元分類フォルダのアドレスを格納するための新しい要素リストである。
次に、ステップ1411において、フリーリストから属性リストNPを取得し、NEアドレスを格納し、PMの属性リストに追加する。NPとは新しい要素リストNEを格納する新しい属性リストである。
【0027】
一方、ステップ1408において、PMの次元数=0でなかった場合、即ち1次元以上のN次元分類フォルダに新しいN次元分類フォルダを作成する場合以下の処理を行う。ファイル探索プログラムはN次元分類フォルダを「0033」以下に後述する方法で展開表示するので、縦軸と横軸に割当てる属性、及び各セルの属性値が既知である。このことは3次元以上のN次元分類フォルダにおいても2次元の展開表示を繰り返し行うので、左記の通り、ファイル探索プログラムにとって表示中の各セルの属性値は既知である。ただし3次元以上のN次元分類フォルダの場合、2次元による表示を繰り返し、N個の属性全てを展開表示することができる一方、必ずしもN個の属性を全て表示せず部分的な表示を行うこともできる。後者の場合、ファイル探索プログラムは各セルの展開表示された属性については属性値が既知であるが、展開されていない残りの属性については情報をもたない。ファイル探索プログラムが展開表示して各セルの属性値が既知である属性の数のことを既知の属性数と略記する。さて、ステップ1413から1416は既知の属性について繰り返し処理をおこなうため、1412において、1412においてループカウンタLを1に設定する。次のステップ1413において、選択されたセルのL番目の属性Xに対する属性リストPPを取得する。
次のステップ1414において、属性Xの属性値が既知の値Zとなる属性リストPPのエントリYを求める。
次に、ステップ1415において、フリーリストから要素リストNEを取得し、NMのアドレスを設定する。
次に、ステップ1416において、YにNEアドレスを設定した後、ステップ1417においてX=X+1とし、ステップ1418においてX>セルの既知の属性数かどうかを判定する。
X>セルの既知の属性数であった場合には、処理を終了する。そうでなかった場合にはステップ1413に戻って処理を繰り返す。
ここで、PMは新しく生成するN次元分類フォルダを格納する場所となる既存のN次元分類フォルダに対応するマトリックス構造体であり、NMは新しく生成するN次元分類フォルダに対応するマトリックス構造体である。Xは選択されたセルに対してファイル探索プログラムが既知の属性の総称であり、PPは属性Xの属性リストであり、Zは選択されたセルの属性Xに対するの既知の値であり、YはPPの中で属性値が既知値のZとなる属性リストエントリである。NEは新しいN次元分類フォルダアドレスを格納する要素リストである。
【0028】
図15は、ファイル探索プログラム(図4の4.2)を使ってN次元分類フォルダの分類属性に属性値を登録する際の画面の操作例を示す図である。
図13に例示した操作画面で分類属性として「国名」と「国の姿」という2つの分類属性を設定した場合、図15のように2次元分類フォルダアイコン1.3を表示する。このアイコン1.3をマウスで選択し右クリックし、属性分類の編集1.151→編集対象属性(「国名」)選択1.152→属性リスト編集1.155と進み、属性編集補助画面1.156を使い属性リストを入力する。
【0029】
図16に属性リストにエントリを追加するフローチャートを示す。
まず、ステップ1601において、選択されたN次元分類フォルダのマトリックス構造体Mを求める。
次に、ステップ1602において、入力対象属性を画面から求める。
次に、ステップ1603において、属性値を画面から入力する。
次に、ステップ1604において、入力された属性値が既に属性値として登録済みかチェックし、既に登録済みであれば、ステップ16104において画面にエラー表示する。
しかし、登録済みでなかった場合には、次に、ステップ1606において、属性値テーブルに新しい属性値を登録した後、次のステップ1607において、フリーリストから新しい属性リストを取得する。
次に、ステップ1608において、フリーリストから新しい属性リストレコードを取得し、次のステップ1609において、新しい属性リストレコードを属性リストにつなぐ。
【0030】
図17は、ファイル探索プログラム(図4bの4.2)を使って新しいファイルをN次元分類フォルダに追加する際の画面操作例を示す図である。
まず、新しいファイルを追加したい場所を選択してマウス右クリック操作をする。図17の場合、国名=“ラオス”、国の姿=“経済”のセルをマウス選択して、右クリック→作成1.171→ファイル1.172→ファイル名1.173を入力する。
【0031】
図18に新しいファイルの作成処理フローチャートを示す。
まず、ステップ1801において、選択されたN次元分類フォルダのマトリックス構造体PMを特定する。
次に、ステップ1802において、ファイル名称を画面から入力する。
次に、ステップ1803において、ファイル未使用領域ビットマップテーブル6.7から空領域を取得する。
次に、ステップ1804において、フリーリストからファイル割当テーブルレコードを取得し、開始ブロック番号と終了ブロック番号をセットする。
次に、ステップ1805において、PMの次元数=0であるかを判定し、0であればステップ1807において、フリーリストから要素リストNEを取得し、NMのアドレスを設定する。
次に、ステップ1808において、フリーリストから属性リストを取得し、NEアドレスを格納し、PMの属性リストに追加する。左記の処理は「0026」に記述したN次元分類フォルダを作成する際の処理と同様である。
【0032】
一方、ステップ1805においてPMの次元数=0でなかった場合には、ステップ1810から1813は既知の属性について繰り返し処理をおこなうため、1809においてループカウンタLを1に設定する。ステップ1810において、選択されたセルのL番目の属性Xに対する属性リストPPを取得する。
次に、ステップ1811において属性Xの属性値が既知の値Zとなる属性リストPPのエントリYを求める。
次に、ステップ1812において、フリーリストから要素リストNEを取得し、NMのアドレスを設定する。
次に、ステップ1813において、YにNEアドレスを設定する。
次に、ステップ1814において、L=L+1としとした後、L>セルの既知の属性数かどうかを判定する、L>PMの次元数であれば処理を終了する。しかし、そうでなかった場合には、ステップ1810に戻って処理を繰り返す。左記の処理は「0027」に記述したN次元分類フォルダを作成する際の処理と同様である。
【0033】
図19は、ファイル探索プログラム(図4の4.2)を使ってN次元分類フォルダを展開表示する際の画面操作例を示す図である。
図19に示すように、展開表示を行うN次元分類フォルダをマウスで選択して、右クリック→表示属性の選択1.191→縦軸と横軸の選択→分類表示1.193と入力する。
【0034】
図20にN次元分類フォルダの展開表示のフローチャートを示す。
まず、ステップ2001において、選択されたN次元分類フォルダのマトリックス構造体Mを求める。
次に、ステップ2002において、縦軸と横軸に指定された属性を画面から取得する。
次に、ステップ2003において、横軸の属性Xの要素リストXEを求め,XEの要素数XENOを求める。
次に、ステップ2004において、I=1、J=1とし、次のステップ2006において、セル(I,J)に含まれるファイルまたはN次元分類フォルダを属性リスト、要素リストを辿って取得し、セルに表示する。
【0035】
次に、ステップ2007において、I=I+1とし、次のステップ2008においてI>XENOかどうかを判定し、I>XENOであれば、ステップ2009においてI=1、J=J+1とし、次のステップ2010においてJ>YENOかを判定する。
J>YENOであれば、処理を終了し、そうでなければステップ2006に戻って処理を繰り返す。
一方、ステップ2008において、I>XENOでなかった場合にもステップ2006に戻って処理を繰り返す。
【0036】
前述の通り、図4のファイル入出力処理プログラム4.1は、ファイル探索プルグラム4.2、ユーティリティプログラム4.3、アプリケーションプログラム3.5からファイル入出力要求を受け処理を行う。ファイル入出力要求で指定するファイル名はN次元分類フォルダの属性名と属性値を対に指定する必要がある。例えば図2の1.10に例示した「7月速報.dat」というファイルのファイル名の例を以下に示す。
「¥MYVOL¥アジア・レポート¥アセアン諸国(国名(ヴェトナム)*国の姿(経済))¥(年度(2005年度)*統計(貿易統計))¥7月速報.dat」
ファイル入出力処理プログラム4.1は、上記のようなファイル名を受取るとN次元分類フォルダを順に辿り、該当するファイルを見付け出し、そのファイルの外部記憶装置上のアドレスをファイル割当てテーブルから読み出す。このアドレスを用いてデバイスドライバ4.5にファイルアクセス命令を発行する。ファイルアクセス命令としてはバイト単位のアクセス、ブロック単位のアクセスがあり、シーケンシャルアクセスまたはダイレクトアクセスを行う。
ファイル探索プログラム4.2は、ファイルの識別子に対応するアプリケーションプログラムを起動し、起動する際に上記のファイル名称をアプリケーションプログラムにパラメータとして渡すことで、ファイルに対応するアプリケーションを自動起動できる。
【図面の簡単な説明】
【0037】
【図1】本発明に係るファイルシステムによる表形式の分類表示例を示す図である。
【図2】本発明に係るファイルシステムによる階層的な分類表示例を示す図である。
【図3】本発明に係るファイルシステムを適用したコンピュータの実施の形態を示すブロック図である。
【図4】本発明に係るファイルシステムの詳細構成を示すブロック図である。
【図5】外部記憶装置の論理的な構成図である。
【図6】N次元分類フォルダ構造体の構成を示す図である。
【図7】マトリックス構造体の未使用領域の管理方法の例を示す図である。
【図8】属性リストの未使用領域の管理方法の例を示す図である。
【図9】要素リストの未使用領域の管理方法の例を示す図である。
【図10】ファイル割当テーブルの未使用領域の管理方法の例を示す図である。
【図11】データ領域の未使用データブロック管理方法の例を示す図である。
【図12】外部記憶装置初期化処理のフローチャートである。
【図13】新しいフォルダの作成画面の例を示す図である。
【図14】新しいフォルダの作成処理手順を示すフローチャートである。
【図15】属性値の追加画面の例を示す図である。
【図16】属性リストにエントリを追加する処理手順を示すフローチャートである。
【図17】新しいファイルの作成画面の例を示す図である。
【図18】新しいファイルの作成処理手順を示すフローチャートである。
【図19】N次元分類フォルダの展開表示の画面操作の例を示す図である。
【図20】N次元分類フォルダの展開表示処理手順を示すフローチャートである。
【符号の説明】
【0038】
1.1…論理ボリュームアイコン、1.2…フォルダアイコン、1.3…2次元分類フォルダアイコン、1.4…分類表、1.5…2次元分類フォルダアイコン、1.6…(選択した)2次元分類フォルダアイコン、1.7…要素のない分類表セル、1.8…分類表、1.9…ファイルアイコン、1.10…0次元分類フォルダアイコン(フォルダアイコン)、1.11…フォルダの展開表示、1.131…新しいファイル作成指示画面、1.151…新しい属性値の登録画面、1.171…新しいファイル作成指示画面、1.191…N次元分類フォルダ展開表示指示画面、3.1…CPU、3.2…内部記憶装置、3.3…オペレーティングシステム、3.4…ファイルシステム、3.5…アプリケーションプログラム、3.6…外部記憶装置、3.7…利用者端末、4.1…ファイル入出力処理プログラム、4.2…ファイル探索プログラム、4.3…ユーティリティプログラム、4.4…アプリケーションプログラム、4.5…デバイスドライバ、4.6…入出力制御装置、5.2…ボリューム登録情報領域、5.3…ボリューム領域、5.4…ボリューム登録情報領域の構成、5.5…制御領域、5.6…データ領域、5.7…マトリックス構造体領域、5.8…属性リスト領域、5.9…属性値テーブル領域、5.10…要素リスト領域、5.11…ファイル割当情報領域、6.1…マトリックス構造体、6.2…属性リスト、6.3…属性値テーブル、6.4…要素リスト、6.5…ファイル割当テーブル、6.6…ファイルエンティティ、6.7…ファイル未使用領域ビットマップ、7.1…マトリックス構造体フリーレコード数、7.2…マトリックス構造体フリーレコードポインタ、7.3…マトリックス構造体フリーリスト、6.4…マトリックスエンティティ、7.5…1次元分類フォルダ構造体、7.6…ファイル割当テーブル、7.7…ファイルエンティティ、7.8…0次元フォルダ構造体、7.9…マトリックスエンティティ、8.1…属性リストフリーレコード数、8.2…属性リストフリーレコードポインタ、8.3…属性リストフリーリスト、9.1…要素リストフリーレコード数、9.2…要素リストフリーレコードポインタ、9.3…要素リストフリーリスト、10.1…ファイル割当テーブルフリーレコード数、10.2…ファイル割当テーブルフリーレコードポインタ、10.3ファイル割当テーブルフリーリスト、11.1…ファイル未使用領域ビットマップテーブル、11.2…データブロック。
【技術分野】
【0001】
本発明は、コンピュータの記憶装置に記憶するファイルとフォルダをグラフィカルユーザインタフェース(GUI)を用いたコンピュータ(利用者端末)に表示させて管理するファイルシステムに関するものである。
【背景技術】
【0002】
従来、コンピュータ・ファイルシステムの利用者端末への表示形式としては1970年頃Ken Thompson、Dennis Ritchieらが開発したUNIX(登録商標)OSのファイルシステムに採用されて以来、ファイルとファイルを格納するフォルダをツリー形式に表示するファイルシステム技術が広く用いられている。
一方、表計算ソフトやリレーショナル・データベース管理システムではデータを表形式に表示し編集する方法が用いられている。
【非特許文献1】DEC PDP−11技術資料等
【発明の開示】
【発明が解決しようとする課題】
【0003】
従来、コンピュータ・ファイルシステムの表示形式として用いられているツリー形式は単純な階層構造をもつファイルを分類整理する方法として優れているが、分類観点が1つ増える都度、ツリーの階層を1つ増やす必要がある。
また、多くの分類観点からファイルを分類しようとすると、複数のフォルダに対して同時にフォルダ階層を増やす必要があり、操作が煩雑になる欠点がある。
また、表計算ソフトやリレーショナル・データベース管理システムは、データベース等に登録した数値データや文字データなどのデータを管理するには優れているが、そのために登録するデータの正規化やデータベースソフトウェアが扱える形式にファイルデータを変換するなどデータを加工する必要があり、利用するまでの準備に多大な労力を要する問題がある。
【0004】
本発明の目的は、表計算ソフトやリレーショナル・データベース等に登録する前の加工されていない生データや各種のアプリケーションプログラムのファイルなど、コンピュータに記憶されるファイルやフォルダに手を加えず、表形式にファイルやフォルダを分類できるようにして分類作業の操作性を著しく改善することが可能なファイルシステムを提供することにある。
【課題を解決するための手段】
【0005】
上記目的を達成するために、本発明に係るファイルシステムは、複数の分類属性を持つフォルダを作成する手段と、作成したフォルダに対し前記複数の分類属性に対応した属性値を持つファイルを格納する手段と、前記フォルダおよびファイルを2次元の分類表形式で表示画面に表示する手段とを備えることを特徴とする。
なお、従来技術のファイルシステムで用いられてきたフォルダは本発明では分類属性を持たない0次元分類フォルダと見なすことができる。従来技術のファイルシステムで使用されているフォルダと本発明のフォルダを明確に区別する為、以下フォルダという名称を使う場合は上記に説明した分類属性数Nを名前の前に付けて1次元分類フォルダ、2次元分類フォルダ等、一般にN次元分類フォルダと呼ぶ。0次元分類フォルダは従来技術のフォルダと同じ機能をもつと考えてよく、単にフォルダと呼ぶ。
【発明の効果】
【0006】
本発明によれば、ファイルとN次元分類フォルダを分類属性に基づき表形式に分類表示できるので、多数の分類観点からファイルを分類する際にもツリー形式のように深い階層や縦長の表示にならず、操作性が優れている。
また、分類表の縦軸と横軸に割り当てる属性を任意に選べるので分類観点変えた比較が容易に行える。
【発明を実施するための最良の形態】
【0007】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
図1及び図2は、本発明を実装したファイルシステムの利用者端末における表示例を示す図である。
本発明ではファイルやN次元分類フォルダなどファイルシステムが管理して利用者が操作する対象物はアイコン(図像)と名前を用いて表示する。
各アイコンはGUI機能を利用してマウス操作で展開表示またはクローズできる。ボリュームアイコン1.1は記憶装置の論理的な単位を表している。ボリュームにはファイルとN次元分類フォルダを格納する。
図1のボリュームアイコン1.1は、“MYVOL”という名前を付けた場合を例示している。図1の1.2は“アジア・レポート”という名前の0次元分類フォルダのアイコンを例示している。次元数が1以上のN次元分類フォルダの場合は“アセアン諸国”)という名前のアイコン1.3で例示するように、0次元分類フォルダと異なるアイコン図柄を用いて区別する。
N次元分類フォルダはアイコンの図柄に属性数(次元数)Nを重ね合わせて表示する。“アセアン諸国”)という名前のアイコン1.3は、分類属性数が“2”の2次元分類フォルダを例示している。本例に示すアイコンの図柄は利用者の嗜好に合わせて適宜変更してもよい。
図1の1.4は“アセアン諸国”という名前のアイコン1.3をマウス操作で展開表示した分類表の例を示している。図1の分類表1.4は分類属性として「国名」、「国の姿」という2属性を持つ場合を例示している。分類表の各セル(要素)の中には更にファイルやN次元分類フォルダを繰り返し格納できる。
例えば、図2のセル1.6は国名属性が“ヴェトナム”で国の姿属性が“経済”である要素として2次元分類フォルダを格納した例である。国名属性が“ミャンマー”で国の姿属性が“政治”のセル1.7ように空白のセルは該当する分類に要素がないことを示している。
【0008】
“ヴェトナム”・“経済”のセル1.6をマウス操作で展開した場合を1.8に例示する。
このセル1.8も1.4と同様に縦軸(年度)と横軸(統計)に分類表の属性をとり分類表示する。
セル1.8の中のアイコン1.9は、年度属性が“2001年度”で統計属性が“貿易統計”の要素のファイルアイコンを例示しており、この要素が1つのファイルであることを示している。“2005年度”・“貿易統計”のセルのアイコン1.10は0次元分類フォルダアイコンを例示している。マウス操作で同アイコン1.10を展開した場合を1.11に例示する。アイコン1.11ではフォルダ内に2個のファイルが格納されている場合を例示している。
【0009】
図3は、本発明のファイルシステムを実装するコンピュータの機能構成を示すブロック図である。
ここで例示するコンピュータは、CPU3.1と内部記憶装置3.2と外部記憶装置3.6などから構成される。利用者は利用者端末3.7からオペレーティングシステム3.3と本発明のファイルシステム3.4を使って外部記憶装置3.6に格納されたファイルにアクセスできる。
利用者はアプリケーションプログラム3.5を起動して外部記憶装置3.6内のファイルに対して様々な処理が行える。これらの処理はクライアントサーバ型のシステムで実装してもよく、パーソナルコンピュータで実装してもよい。
【0010】
図4は、ファイルシステム3.4の詳細を示すブロック図である。
ファイルシステム3.4は、ファイル入出力処理プログラム4.1、ファイル探索プログラム4.2、ユーティリティプログラム4.3の3つの要素から構成されている。
ファイル入出力処理プログラム4.1は、ファイル探索プログラム4.2、ユーティリティプログラム4.3及びアプリケーションプログラム3.5から要求されるファイルやN次元分類フォルダに対する論理的な入出力要求を物理的な入出力要求に変換し、デバイスドライバ4.5に対して物理入出力命令を発行し、入出力制御装置4.6経由で外部記憶装置3.6に入出力を行う。
【0011】
図1、図2に例示したGUI画面はファイル探索プログラム4.2の表示例であり、GUI画面表示関数4.8を用いることにより、利用者端末(図3のコンピュータ)のボリューム1.1に含まれるファイルやN次元分類フォルダの作成、構成内容の表示、検索等の機能をGUI操作として利用者に提供する。
また、ファイル探索プログラム4.2はOS(オペレーティングシステム)3.3のジョブ管理機能の命令(ジョブの起動)を内部で発行し、当該ファイルと関連するアプリケーションプログラム3.5を起動する機能を利用者に提供する。
例えばワードプロセッサ・ソフトが作成したファイルであれば、ユーザのマウス操作(ダブルクリック)によりファイルに関連するワードプロセッサを起動する。起動されたワードプロセッサは入出力処理プログラム4.1)に要求して当該ファイルを読込み、データ編集処理を開始できる。また、GUI操作以外に従来からOS等が提供しているコマンド(利用者がキーボードから入力するコンピュータ操作命令)4.12を用いてアプリケーションプログラム3.5を起動できる。
【0012】
本発明では、ファイル入出力処理プログラム4.1とファイル入出力処理プログラムにファイル入出力命令を発行する全てのアプリケーションプログラム3.5、OSコマンド4.12、ユーティリティプログラム4.3、ファイル探索プログラム4.2等の間で共通のファイル名称規則を使用する必要がある。ファイル名称規則の一例については後述とする。
【0013】
図5に本発明を実施するための外部記憶装置3.6の論理的な構成を示す。
外部記憶装置3.6には、論理的な記憶単位である前述のボリューム1.1に相当する複数のボリューム領域1〜Nが存在し、また各ボリュームのボリューム名称と割当て情報を管理するためのボリューム登録情報領域5.2が存在する。割当て情報にはボリューム領域の開始位置、終了位置、所有者、アクセス権限等の情報を格納する。
各ボリューム領域は制御領域5.5とデータ領域5.6とから構成される。
制御領域5.5はマトリックス構造体領域5.7、属性リスト領域5.8、属性値テーブル領域5.9、要素リスト領域5.10、ファイル割当情報領域5.11から構成され、それぞれ後述するマトリックス構造体、属性リスト、要素リスト、ファイル割当テーブルを格納するための領域としてファイルシステム3.4が使用する。
データ領域5.6は、ファイル未使用領域を管理するビットマップテーブルとファイル実体を格納するファイルエンティティ領域から構成される。これらの領域はユーティリティプログラム4.3の一種である外部記憶装置初期化プログラムが初期化フォーマットを行い使用可能とする。
【0014】
図6に本発明のファイルシステムにおけるN次元分類フォルダの実装方式例を示す。
1つのN次元分類フォルダに対応して分類フォルダの情報を格納するマトリックス構造体6.1と呼ぶ管理領域を設ける、このマトリックス構造体6.1を起点としてN次元分類フォルダに格納される全てのファイルとファイルの属性は起点からポインタで辿ることができる。
マトリックス構造体6.1は、(1)次元数N、(2)属性リストポインタ、(3)属性名、(4)フォルダ名称、(5)チェーンから構成した例を示す。
マトリックス構造体6.1の次元数Nは分類属性数を格納する。例えば図2の1.3に示した“アセアン諸国”は2次元分類フォルダであり、「国名」と「国の姿」という2つの分類属性を持つので、この場合のマトリックス構造体6.1の次元数には“2”を格納する。マトリックス構造体6.1の属性リストポインタは属性リスト6.2へのポインタであり、次元数と等しいN個の属性リストポインタをマトリックス構造体6.1に格納する。但し、0次元分類フォルダの場合は例外として次元数に拘わらず1つの属性リストポインタをマトリックス構造体6.1に格納する。N次元分類フォルダに格納する要素は属性リストを用いるため分類属性がない0次元分類フォルダの場合でも1つの属性リストを使用するためである。
マトリックス構造体6.1の属性名は、各属性リストポインタと対でN個存在する。例えば図2の1.3に示した“アセアン諸国”の2次元分類フォルダでは属性「国名」と「国の姿」という2個の属性名をマトリックス構造体6.1に格納し、その属性と対に2個の属性リストポインタが存在する。
マトリックス構造体のフォルダ名称はマトリックス構造体(N次元分類フォルダ)6.1に付けた名前を格納する。例えば図2の1.3に示した“アセアン諸国”という名前の2次元分類フォルダでは「アセアン諸国」が名前でありフォルダ名称に格納する。
マトリックス構造体6.1のチェーンは、未使用のマトリックス構造体を管理する時に使用する領域であり、使用済みのマトリックス構造体ではチェーンはNIL(空)を設定する。
【0015】
属性リスト6.2は属性値ポインタと要素リストポインタから構成するリストである。例えば図2の1.3に示した“アセアン諸国”という2次元分類フォルダの「国名」という属性リストには10個(タイ、ラオス、カンボジア、・・・、フィリピン)の属性値がある。属性値ポインタは属性値テーブル6.3上の属性値へのポインタである。
要素リストポインタは要素リスト6.4へのポインタである。
属性リスト6.2は、図5の属性リスト領域5.8に格納され、属性値テーブル6.3は図5の属性値テーブル領域5.9に格納する。属性リストのチェーンは未使用の属性リストを管理する時に使用する領域である。
【0016】
要素リスト6.4は、ある属性値をとる要素の集合をリストにしたものである。例えば図2の1.3に示した“アセアン諸国”という2次元分類フォルダの場合、「国名」という属性の属性値が「タイ」であるファイルやN次元分類フォルダの集合をリストにしたものが「国名」が「タイ」の要素リストであり、そのポインタを「タイ」の要素リストポインタに格納する。同様に「国名」属性の属性値がXであるファイルやN次元分類フォルダの集合をリストにしてXの要素リストポインタに格納する。
要素リスト6.4は、(1)ポインタ種別、(2)ファイル名称、(3)ポインタ、(4)次要素ポインタから構成する。
【0017】
要素リスト6.4のポインタは、図6に矢印で示すように、(1)ファイルをポイントする場合と(2)N次元分類フォルダをポイントする場合があり、ポインタ種別によって、ポイント先を区別する。要素リストに含まれる集合の要素は次要素ポインタによって最終要素まで連結する。最終要素の次要素ポインタはNIL(空)とする。
要素リスト6.4のポインタ種別がファイルポインタの場合、要素リストのフアイルポインタはフアイル割当テーブル6.5のファイルエントリをポイントする。
また、要素リスト6.4のポインタ種別がN次元分類フォルダの場合、要素リスト6.4のファイルポインタは当該N次元分類フォルダの起点となるマトリックス構造体をポイントする。要素リスト6.4は図5の要素リスト領域5.10に格納する。
【0018】
ファイル割当てテーブル6.5は、図6に示すように、ファイル領域割当開始番号、ファイル領域割当終了番号とチェーンから構成する。
ファイル割当テーブル6.5は図5のファイル割当情報領域5.11)に格納される。ファイル実体は図5のデータ領域5.6に格納する。
【0019】
図5のデータ領域5.6は、固定長のデータブロックに分割し、各データブロックには番号をつけて識別する。ファイル実体は1つの初期割当領域と0個以上のエクステントから構成される。初期割当領域とエクステントは連続するデータブロックであり、開始番号と終了番号がある。例えば図6では要素リスト6.4に登録された「4月貿易統計.dat」というファイルエンティティが初期割当領域としてブロック番号6〜12、エクステントがブロック番号18〜20から構成されている場合を例示している。その場合、図6の6.6に示すように初期割当領域のエントリにはファイル割当開始番号とファイル終了番号にそれぞれ「6」と「12」が格納され、チェーンはエクステントのエントリアドレスへのポインタを格納する。エクステントのエントリにはファイル割当開始番号とファイル終了番号にそれぞれ「18」と「20」を格納し、チェーンは「NIL(空)」を格納する。
ファイルエンティティ6.6を格納するデータ領域の各ブロックの使用状況を管理するため、ビットマップテーブル6.7を使用する方法がある。ビットマップの各ビットはデータブロックに対応しており、未使用=0、使用済み=1として管理する。以上のように1つのN次元分類フォルダの要素は対応するマトリックス構造体を起点として辿ることができる。
図1で説明したように全てのN次元分類フォルダの起点はボリュームである。ボリュームは1つ0次元分類フォルダであり、マトリックス構造体領域の先頭のマトリックス構造体がこの0次元分類フォルダである。このボリュームに対応する1つのマトリックス構造体を全ての起点(原点)として、そのボリュームに含まれる全てのN次元分類フォルダとファイルを辿ることができる。
【0020】
図7にマトリックス構造体の未使用領域の管理方法を例示する。
図7は前述の外部記憶装置初期化プログラムを用いてボリュームを初期化した直後の状態を示している。
外部記憶装置初期化プログラムは、マトリックス構造体領域に連続する固定長のマトリックス構造体(図7の7.3)を作成し、最初のレコードをボリュームに対応するマトリックス構造体として使用する。2番目のレコードから未使用のレコードとして、チェーンを用いてレコードを連結する。最初の未使用レコードへのポインタをフリーレコードポインタ(図7の7.2)に設定する。未使用レコード数をフリーレコード数(図7の7.1)に格納する。
新しいN次元分類フォルダを作成する際、フリーレコードポインタ7.2がポイントするマトリックス構造体のレコードを一連のチェーンから外し、2番目のフリーレコードをフリーレコードポインタ7.2に設定する。チェーンから外した未使用のマトリックス構造体を新しいN次元分類フォルダの起点とする。
【0021】
図8に属性リストの未使用領域の管理方法の例を示す。
図8は前述の外部記憶装置初期化プログラムを用いてボリュームを初期化した直後の状態を示している。外部記憶装置初期化プログラムは属性リスト領域に連続する固定長の属性リスト(図8の8.3)を作成し、チェーンを用いて未使用のレコードを連結し、最初の未使用レコードへのポインタをフリーレコードポインタ(図8の8.2)に設定する。未使用レコード数をフリーレコード数(図8の8.1)に格納する。新しい属性リストをマトリックス構造体に格納する際、フリーレコードポインタ8.2がポイントする属性リストのレコードを一連のチェーンから外し、2番目のフリーレコードをフリーレコードポインタ8.2に設定する。チェーンから外した未使用の属性リストをマトリックス構造体の新しい属性リストポインタに設定する。
【0022】
図9に要素リストの未使用領域の管理方法を示す。
図9は前述の外部記憶装置初期化プログラムを用いてボリュームを初期化した直後の状態を示している。外部記憶装置初期化プログラムは要素リスト領域に連続する固定長の要素リスト(図9の9.3)を作成し、次要素ポインタを用いて未使用のレコードを連結し、最初の未使用レコードへのポインタをフリー要素ポインタ(図9の9.2)に設定する。未使用レコード数をフリーレコード数(図9の9.1)に格納する。新しい要素を要素リストに格納する際、フリーレコードポインタ9.2がポイントする要素リストのレコードを一連のチェーンから外し、2番目のフリーレコードをフリーレコードポインタ9.2に設定する。チェーンから外した未使用の要素リストレコードを要素リストに連結する。
【0023】
図10にファイル割当テーブルの未使用領域の管理方法を示す。
図10は前述の外部記憶装置初期化プログラムを用いてボリュームを初期化した直後の状態を示している。外部記憶装置初期化プログラムはファイル割当情報領域に連続する固定長のファイル割当レコード(図10の10.3)を作成し、チェーンを用いて未使用のレコードを連結し、最初の未使用レコードへのポインタをフリーレコードポインタ(図10の10.2)に設定する。未使用レコード数をフリーレコード数(図10の10.1)に格納する。新しいファイルポインタを要素リストに格納する際、フリーレコードポインタ10.2がポイントするファイル割当テーブルのレコードを一連のチェーンから外し、2番目のフリーレコードをフリーレコードポインタ10.2に設定する。チェーンから外した未使用のファイル割当テーブルレコードアドレスを要素リストのポインタに設定する。
【0024】
図11にデータ領域の未使用データブロックの管理方法を示す。
データ領域は前述の外部記憶装置初期化プログラムを用いてボリュームを初期化した際に固定長のデータブロックにフォーマットし、各ブロックにはブロック番号を付け一意に識別する(図11の11.2)。各ブロックの使用、未使用状態はファイル未使用領域ビットマップテーブル(図11の11.1)のビット状態で管理する。フォーマット直後は全ビットが“0”である。データブロックが使用状態になったときに該当するビットを“1”に設定すると同時に、その領域の開始番号と終了番号をファイル割当テーブル6.5のエントリに設定する。ファイル割当の際に連続する領域を割り当てた方が不連続な領域よりもハードウェアの動作上より高速にアクセス可能であり、ビットマップを使って未使用領域を管理する理由は、連続する未使用領域を探すことが容易になるためである。
【0025】
図7から図11を使って説明した外部記憶装置初期化処理のフローチャートを図12に示す。
この初期化処理はステップ1201〜1207で構成されており、ステップ1201ではデータ領域5.6にデータブロックを作成し、初期化する。
ステップ1202では、ファイル未使用領域ビットマップテーブル6.7を作成し、続くステップ1203ではマトリクス構造体領域5.7を作成し初期化する。
ステップ1204では、属性リスト領域5.8を作成し初期化する。
ステップ1205では、属性値テーブル領域5.9を作成し初期化する。
ステップ1206では、要素リスト領域5.10を作成し初期化する。
ステップ1207では、ファイル割当情報領域5.11を作成し初期化する。
【0026】
図13は、ファイル探索プログラム(図4の4.2)を使ってN次元分類フォルダを作成する際の画面操作例を示す図である。
まず、新しいN次元分類フォルダを作成する場所をマウスで選択する。図13の場合はアジア・レポート(図13の1.131)という0次元分類フォルダをマウスで選択している例を示している。
N次元分類フォルダを作成する場所を選択し、マウス右クリック操作により、作成→分類フォルダ1.132を選択した後、作成したいN次元分類フォルダの属性1.133を入力し、登録ボタンを押下する操作を繰り返すことで、属性を順番に入力する。この処理のフローチャートを図14に示す。
まず、ステップ1401において、選択されたN次元分類フォルダのマトリックス構造体PMを特定する。前記の段落「0014」で述べたとおり、本ファイルシステムでは登録したファイルやフォルダは全て起点から辿ることができ、ファイル探索プログラムは起点から辿ったファイルやフォルダを辿り画面に表示している。次に、ステップ1402において、フォルダ名称を画面から入力する。次に、ステップ1403において、属性を画面から入力する。
次に、ステップ1404において、入力された属性数から次元数Nを決定する。次に、ステップ1405において、マトリックス構造体NMをフリーリストから取得する。次に、ステップ1406において、入力したフォルダ名称と属性名称をマトリックス構造体NMに設定する。
ここで、PMは新しく生成するN次元分類フォルダを格納する場所となる既存のN次元分類フォルダに対応するマトリックス構造体であり、NMは新しく生成するN次元分類フォルダに対応するマトリックス構造体である。図13の場合アジア・レポートという0次元分類フォルダに対応するマトリックス構造体がPMであり、新規作成するアセアン諸国という名前のN次元分類フォルダに対応するマトリックス構造体がNMである。
次に、ステップ1407において、入力された新しく生成するN次元分類フォルダの属性を格納する属性リスト用領域をフリーリストから取得し、マトリックス構造体NMにポインタを格納する。図13の場合、新しく作成されるアセアン諸国という名前のN次元分類フォルダの分類属性として、国名を指定されているので、マトリックス構造体NMの属性名1には国名を格納し、属性リストに新たに取得された属性リストのポインタを格納する。
次に、ステップ1408において、PMの次元数=0であるかを判定し、“0”であったならば、既に「0014」に述べたとおり、0次元分類フォルダの場合には分類属性による分類を行わないがフォルダの要素はN次元分類フォルダと同様に要素リストに登録するため、以下の処理を行う。まずステップ1410において、フリーリストから要素リストNEを取得し、NMのアドレスを設定する。NEとは、新しく生成するN次元分類フォルダのアドレスを格納するための新しい要素リストである。
次に、ステップ1411において、フリーリストから属性リストNPを取得し、NEアドレスを格納し、PMの属性リストに追加する。NPとは新しい要素リストNEを格納する新しい属性リストである。
【0027】
一方、ステップ1408において、PMの次元数=0でなかった場合、即ち1次元以上のN次元分類フォルダに新しいN次元分類フォルダを作成する場合以下の処理を行う。ファイル探索プログラムはN次元分類フォルダを「0033」以下に後述する方法で展開表示するので、縦軸と横軸に割当てる属性、及び各セルの属性値が既知である。このことは3次元以上のN次元分類フォルダにおいても2次元の展開表示を繰り返し行うので、左記の通り、ファイル探索プログラムにとって表示中の各セルの属性値は既知である。ただし3次元以上のN次元分類フォルダの場合、2次元による表示を繰り返し、N個の属性全てを展開表示することができる一方、必ずしもN個の属性を全て表示せず部分的な表示を行うこともできる。後者の場合、ファイル探索プログラムは各セルの展開表示された属性については属性値が既知であるが、展開されていない残りの属性については情報をもたない。ファイル探索プログラムが展開表示して各セルの属性値が既知である属性の数のことを既知の属性数と略記する。さて、ステップ1413から1416は既知の属性について繰り返し処理をおこなうため、1412において、1412においてループカウンタLを1に設定する。次のステップ1413において、選択されたセルのL番目の属性Xに対する属性リストPPを取得する。
次のステップ1414において、属性Xの属性値が既知の値Zとなる属性リストPPのエントリYを求める。
次に、ステップ1415において、フリーリストから要素リストNEを取得し、NMのアドレスを設定する。
次に、ステップ1416において、YにNEアドレスを設定した後、ステップ1417においてX=X+1とし、ステップ1418においてX>セルの既知の属性数かどうかを判定する。
X>セルの既知の属性数であった場合には、処理を終了する。そうでなかった場合にはステップ1413に戻って処理を繰り返す。
ここで、PMは新しく生成するN次元分類フォルダを格納する場所となる既存のN次元分類フォルダに対応するマトリックス構造体であり、NMは新しく生成するN次元分類フォルダに対応するマトリックス構造体である。Xは選択されたセルに対してファイル探索プログラムが既知の属性の総称であり、PPは属性Xの属性リストであり、Zは選択されたセルの属性Xに対するの既知の値であり、YはPPの中で属性値が既知値のZとなる属性リストエントリである。NEは新しいN次元分類フォルダアドレスを格納する要素リストである。
【0028】
図15は、ファイル探索プログラム(図4の4.2)を使ってN次元分類フォルダの分類属性に属性値を登録する際の画面の操作例を示す図である。
図13に例示した操作画面で分類属性として「国名」と「国の姿」という2つの分類属性を設定した場合、図15のように2次元分類フォルダアイコン1.3を表示する。このアイコン1.3をマウスで選択し右クリックし、属性分類の編集1.151→編集対象属性(「国名」)選択1.152→属性リスト編集1.155と進み、属性編集補助画面1.156を使い属性リストを入力する。
【0029】
図16に属性リストにエントリを追加するフローチャートを示す。
まず、ステップ1601において、選択されたN次元分類フォルダのマトリックス構造体Mを求める。
次に、ステップ1602において、入力対象属性を画面から求める。
次に、ステップ1603において、属性値を画面から入力する。
次に、ステップ1604において、入力された属性値が既に属性値として登録済みかチェックし、既に登録済みであれば、ステップ16104において画面にエラー表示する。
しかし、登録済みでなかった場合には、次に、ステップ1606において、属性値テーブルに新しい属性値を登録した後、次のステップ1607において、フリーリストから新しい属性リストを取得する。
次に、ステップ1608において、フリーリストから新しい属性リストレコードを取得し、次のステップ1609において、新しい属性リストレコードを属性リストにつなぐ。
【0030】
図17は、ファイル探索プログラム(図4bの4.2)を使って新しいファイルをN次元分類フォルダに追加する際の画面操作例を示す図である。
まず、新しいファイルを追加したい場所を選択してマウス右クリック操作をする。図17の場合、国名=“ラオス”、国の姿=“経済”のセルをマウス選択して、右クリック→作成1.171→ファイル1.172→ファイル名1.173を入力する。
【0031】
図18に新しいファイルの作成処理フローチャートを示す。
まず、ステップ1801において、選択されたN次元分類フォルダのマトリックス構造体PMを特定する。
次に、ステップ1802において、ファイル名称を画面から入力する。
次に、ステップ1803において、ファイル未使用領域ビットマップテーブル6.7から空領域を取得する。
次に、ステップ1804において、フリーリストからファイル割当テーブルレコードを取得し、開始ブロック番号と終了ブロック番号をセットする。
次に、ステップ1805において、PMの次元数=0であるかを判定し、0であればステップ1807において、フリーリストから要素リストNEを取得し、NMのアドレスを設定する。
次に、ステップ1808において、フリーリストから属性リストを取得し、NEアドレスを格納し、PMの属性リストに追加する。左記の処理は「0026」に記述したN次元分類フォルダを作成する際の処理と同様である。
【0032】
一方、ステップ1805においてPMの次元数=0でなかった場合には、ステップ1810から1813は既知の属性について繰り返し処理をおこなうため、1809においてループカウンタLを1に設定する。ステップ1810において、選択されたセルのL番目の属性Xに対する属性リストPPを取得する。
次に、ステップ1811において属性Xの属性値が既知の値Zとなる属性リストPPのエントリYを求める。
次に、ステップ1812において、フリーリストから要素リストNEを取得し、NMのアドレスを設定する。
次に、ステップ1813において、YにNEアドレスを設定する。
次に、ステップ1814において、L=L+1としとした後、L>セルの既知の属性数かどうかを判定する、L>PMの次元数であれば処理を終了する。しかし、そうでなかった場合には、ステップ1810に戻って処理を繰り返す。左記の処理は「0027」に記述したN次元分類フォルダを作成する際の処理と同様である。
【0033】
図19は、ファイル探索プログラム(図4の4.2)を使ってN次元分類フォルダを展開表示する際の画面操作例を示す図である。
図19に示すように、展開表示を行うN次元分類フォルダをマウスで選択して、右クリック→表示属性の選択1.191→縦軸と横軸の選択→分類表示1.193と入力する。
【0034】
図20にN次元分類フォルダの展開表示のフローチャートを示す。
まず、ステップ2001において、選択されたN次元分類フォルダのマトリックス構造体Mを求める。
次に、ステップ2002において、縦軸と横軸に指定された属性を画面から取得する。
次に、ステップ2003において、横軸の属性Xの要素リストXEを求め,XEの要素数XENOを求める。
次に、ステップ2004において、I=1、J=1とし、次のステップ2006において、セル(I,J)に含まれるファイルまたはN次元分類フォルダを属性リスト、要素リストを辿って取得し、セルに表示する。
【0035】
次に、ステップ2007において、I=I+1とし、次のステップ2008においてI>XENOかどうかを判定し、I>XENOであれば、ステップ2009においてI=1、J=J+1とし、次のステップ2010においてJ>YENOかを判定する。
J>YENOであれば、処理を終了し、そうでなければステップ2006に戻って処理を繰り返す。
一方、ステップ2008において、I>XENOでなかった場合にもステップ2006に戻って処理を繰り返す。
【0036】
前述の通り、図4のファイル入出力処理プログラム4.1は、ファイル探索プルグラム4.2、ユーティリティプログラム4.3、アプリケーションプログラム3.5からファイル入出力要求を受け処理を行う。ファイル入出力要求で指定するファイル名はN次元分類フォルダの属性名と属性値を対に指定する必要がある。例えば図2の1.10に例示した「7月速報.dat」というファイルのファイル名の例を以下に示す。
「¥MYVOL¥アジア・レポート¥アセアン諸国(国名(ヴェトナム)*国の姿(経済))¥(年度(2005年度)*統計(貿易統計))¥7月速報.dat」
ファイル入出力処理プログラム4.1は、上記のようなファイル名を受取るとN次元分類フォルダを順に辿り、該当するファイルを見付け出し、そのファイルの外部記憶装置上のアドレスをファイル割当てテーブルから読み出す。このアドレスを用いてデバイスドライバ4.5にファイルアクセス命令を発行する。ファイルアクセス命令としてはバイト単位のアクセス、ブロック単位のアクセスがあり、シーケンシャルアクセスまたはダイレクトアクセスを行う。
ファイル探索プログラム4.2は、ファイルの識別子に対応するアプリケーションプログラムを起動し、起動する際に上記のファイル名称をアプリケーションプログラムにパラメータとして渡すことで、ファイルに対応するアプリケーションを自動起動できる。
【図面の簡単な説明】
【0037】
【図1】本発明に係るファイルシステムによる表形式の分類表示例を示す図である。
【図2】本発明に係るファイルシステムによる階層的な分類表示例を示す図である。
【図3】本発明に係るファイルシステムを適用したコンピュータの実施の形態を示すブロック図である。
【図4】本発明に係るファイルシステムの詳細構成を示すブロック図である。
【図5】外部記憶装置の論理的な構成図である。
【図6】N次元分類フォルダ構造体の構成を示す図である。
【図7】マトリックス構造体の未使用領域の管理方法の例を示す図である。
【図8】属性リストの未使用領域の管理方法の例を示す図である。
【図9】要素リストの未使用領域の管理方法の例を示す図である。
【図10】ファイル割当テーブルの未使用領域の管理方法の例を示す図である。
【図11】データ領域の未使用データブロック管理方法の例を示す図である。
【図12】外部記憶装置初期化処理のフローチャートである。
【図13】新しいフォルダの作成画面の例を示す図である。
【図14】新しいフォルダの作成処理手順を示すフローチャートである。
【図15】属性値の追加画面の例を示す図である。
【図16】属性リストにエントリを追加する処理手順を示すフローチャートである。
【図17】新しいファイルの作成画面の例を示す図である。
【図18】新しいファイルの作成処理手順を示すフローチャートである。
【図19】N次元分類フォルダの展開表示の画面操作の例を示す図である。
【図20】N次元分類フォルダの展開表示処理手順を示すフローチャートである。
【符号の説明】
【0038】
1.1…論理ボリュームアイコン、1.2…フォルダアイコン、1.3…2次元分類フォルダアイコン、1.4…分類表、1.5…2次元分類フォルダアイコン、1.6…(選択した)2次元分類フォルダアイコン、1.7…要素のない分類表セル、1.8…分類表、1.9…ファイルアイコン、1.10…0次元分類フォルダアイコン(フォルダアイコン)、1.11…フォルダの展開表示、1.131…新しいファイル作成指示画面、1.151…新しい属性値の登録画面、1.171…新しいファイル作成指示画面、1.191…N次元分類フォルダ展開表示指示画面、3.1…CPU、3.2…内部記憶装置、3.3…オペレーティングシステム、3.4…ファイルシステム、3.5…アプリケーションプログラム、3.6…外部記憶装置、3.7…利用者端末、4.1…ファイル入出力処理プログラム、4.2…ファイル探索プログラム、4.3…ユーティリティプログラム、4.4…アプリケーションプログラム、4.5…デバイスドライバ、4.6…入出力制御装置、5.2…ボリューム登録情報領域、5.3…ボリューム領域、5.4…ボリューム登録情報領域の構成、5.5…制御領域、5.6…データ領域、5.7…マトリックス構造体領域、5.8…属性リスト領域、5.9…属性値テーブル領域、5.10…要素リスト領域、5.11…ファイル割当情報領域、6.1…マトリックス構造体、6.2…属性リスト、6.3…属性値テーブル、6.4…要素リスト、6.5…ファイル割当テーブル、6.6…ファイルエンティティ、6.7…ファイル未使用領域ビットマップ、7.1…マトリックス構造体フリーレコード数、7.2…マトリックス構造体フリーレコードポインタ、7.3…マトリックス構造体フリーリスト、6.4…マトリックスエンティティ、7.5…1次元分類フォルダ構造体、7.6…ファイル割当テーブル、7.7…ファイルエンティティ、7.8…0次元フォルダ構造体、7.9…マトリックスエンティティ、8.1…属性リストフリーレコード数、8.2…属性リストフリーレコードポインタ、8.3…属性リストフリーリスト、9.1…要素リストフリーレコード数、9.2…要素リストフリーレコードポインタ、9.3…要素リストフリーリスト、10.1…ファイル割当テーブルフリーレコード数、10.2…ファイル割当テーブルフリーレコードポインタ、10.3ファイル割当テーブルフリーリスト、11.1…ファイル未使用領域ビットマップテーブル、11.2…データブロック。
【特許請求の範囲】
【請求項1】
複数の分類属性を持つフォルダを作成する手段と、作成したフォルダに対し前記複数の分類属性に対応した属性値を持つファイルを格納する手段と、前記フォルダおよびファイルを2次元の分類表形式で表示画面に表示する手段とを備えることを特徴とするファイルシステム。
【請求項1】
複数の分類属性を持つフォルダを作成する手段と、作成したフォルダに対し前記複数の分類属性に対応した属性値を持つファイルを格納する手段と、前記フォルダおよびファイルを2次元の分類表形式で表示画面に表示する手段とを備えることを特徴とするファイルシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2007−47913(P2007−47913A)
【公開日】平成19年2月22日(2007.2.22)
【国際特許分類】
【出願番号】特願2005−229464(P2005−229464)
【出願日】平成17年8月8日(2005.8.8)
【出願人】(000233055)日立ソフトウエアエンジニアリング株式会社 (1,610)
【Fターム(参考)】
【公開日】平成19年2月22日(2007.2.22)
【国際特許分類】
【出願日】平成17年8月8日(2005.8.8)
【出願人】(000233055)日立ソフトウエアエンジニアリング株式会社 (1,610)
【Fターム(参考)】
[ Back to top ]