(57)【要約】【課題】ストレージシステムに保存されたＸＭＬ文書の分類の容易化【解決手段】ＸＭＬファイルビューワ１０１が、ストレージ１０３に保存されている複数のＸＭＬ文書を、文書内に特定の要素／属性が存在するか否か、およびその値の同一性に基づいて分類し、フォルダに分けて配置したフォルダ階層表現を作成し、階層型ファイルＧＵＩ１０２に提供する。【選択図】図１
2005250820.tif 000002
【特許請求の範囲】
【請求項１】
ストレージシステムに保存された複数のＸＭＬ文書から、第一の任意の文字列（以下、第一の起文字列）を名前に持つ要素（以下、起要素）が文書中に存在するＸＭＬ文書のみを抽出するＸＭＬ文書分類方法であって、
（１）該起要素の子供が唯一文字列であるようなＸＭＬ文書群を、該文字列（以下、要素値）の同一性に基づいて分類し、
（２）該起要素と同名のフォルダ（以下、起要素フォルダ）を生成し、該起要素フォルダの直下に、該同一要素値毎に該要素値を名前とする下位フォルダ（以下、要素値フォルダ）を配置し、さらに各該要素値フォルダの直下に、該要素値が該要素値フォルダの名前と同一であるようなＸＭＬ文書群を配置した、フォルダ階層表現を生成し、
（３）該要素値フォルダのうちの一つが選択され、さらに第二の起文字列が指定された場合は、該要素値フォルダに配置したＸＭＬ文書群から、該第二の起文字列を名前に持つ要素（以下、第二の起要素）が文書中に存在する文書のみを抽出し、該第二の起要素を改めて起要素として（１）、（２）の処理を行い、（２）の処理によって生成する該第二の起要素と同名のフォルダを、該要素値フォルダの直下に配置した、フォルダ階層表現を生成し、
上記（１）〜（３）の再帰的な繰返しによって生成するフォルダ階層表現を提供する、ＸＭＬ文書分類方法。
【請求項２】
生成するフォルダ階層表現と同型のフォルダアイコンの階層構造を持つ階層型ファイル・グラフィカルユーザインタフェース（以下、ＧＵＩ）をユーザに提示し、
前記第一の起文字列の指定は、ユーザによる、該ＧＵＩ上での、ルートフォルダの直下に、前記第一の起文字列を名前とするフォルダを作成する操作によって行われ、
前記要素値フォルダの選択は、ユーザによる、該ＧＵＩ上での、該要素値フォルダを開く操作によって行われ、
前記第二の起文字列の指定は、ユーザによる、該ＧＵＩ上での、該要素値フォルダの直下に、該第二の起文字列を名前とするフォルダを作成する操作によって行われる請求項１に記載のＸＭＬ文書分類方法。
【請求項３】
（ａ）起要素が文書中に存在するＸＭＬ文書において、該起要素が子供として要素（以下、従要素）群を持つ場合は、該従要素毎に該従要素と同名の下位フォルダ（以下、従要素フォルダ）を、起要素フォルダの直下に配置した、フォルダ階層表現を生成し、
（ｂ）該従要素フォルダのうちの一つが選択された場合は、該従要素を改めて起要素として、請求項１の（１）、（２）の処理を行い、さらに上記（ａ）の処理を行い、
上記（ａ）、（ｂ）の再帰的な繰返しによって生成するフォルダ階層表現を提供する、請求項１に記載のＸＭＬ文書分類方法。
【請求項４】
生成するフォルダ階層表現と同型のフォルダアイコンの階層構造を持つ階層型ファイルＧＵＩをユーザに提示し、
前記記載の従要素フォルダの選択は、ユーザによる、該ＧＵＩ上での、該従要素フォルダを開く操作によって行われる請求項３に記載のＸＭＬ文書分類方法。
【請求項５】
起要素が属性群を持つ場合は、該属性毎に該属性と同名の下位フォルダ（以下、属性フォルダ）を、起要素フォルダの直下に配置した、フォルダ階層表現を生成し、
該属性フォルダのうちの一つが選択された場合は、該ＸＭＬ文書群を、該属性の値（以下、属性値）の同一性に基づいて分類し、
該属性フォルダの直下に、該同一属性値毎に該属性値を名前とする下位フォルダ（以下、属性値フォルダ）を配置し、さらに各該属性値フォルダの直下に、該属性値が該属性値フォルダの名前と同一であるようなＸＭＬ文書群を配置した、フォルダ階層表現を生成して該フォルダ階層表現を提供することを特徴とする請求項３に記載のＸＭＬ文書分類方法。
【請求項６】
生成するフォルダ階層表現と同型のフォルダアイコンの階層構造を持つ階層型ファイルＧＵＩをユーザに提示し、
前記属性フォルダの選択は、ユーザによる、該ＧＵＩ上での、該属性フォルダを開く操作によって行われることを特徴とする
請求項５に記載のＸＭＬ文書分類方法。
【請求項７】
任意の２つの要素値フォルダ、または属性値フォルダ（以下、両者をまとめて値フォルダ）が選択された場合は、一方の値フォルダ（以下、被値同義化フォルダ）の直下に配置した全てのＸＭＬ文書を、他方の値フォルダ（以下、値同義化フォルダ）の直下にも配置したフォルダ階層表現を生成し、提供することを特徴とする請求項５に記載のＸＭＬ文書分類方法。
【請求項８】
生成するフォルダ階層表現と同型のフォルダアイコンの階層構造を持つ階層型ファイルＧＵＩをユーザに提示し、
前記被値同義化フォルダ、および値同義化フォルダの選択は、ユーザによる、該ＧＵＩ上での、被値同義化フォルダの、値同義化フォルダへの、ドラッグアンドドロップ操作によって行われることを特徴とする請求項７に記載のＸＭＬ文書分類方法。
【請求項９】
任意の２つの起要素フォルダ、または従要素フォルダ、または属性フォルダ（以下、３者をまとめて変数フォルダ）が選択された場合は、一方の変数フォルダ（以下、被変数同義化フォルダ）の直下に配置した全ての値フォルダについて、該値フォルダ毎に、
該値フォルダと同名の値フォルダを、他方の変数フォルダ（以下、変数同義化フォルダ）の直下にも既に配置してある場合は、前者値フォルダの直下に配置した全てのＸＭＬ文書を、後者値フォルダの直下にも配置し、
該値フォルダと同名の値フォルダを、変数同義化フォルダの直下には未配置である場合は、該変数同義化フォルダの直下に、該値フォルダと同名のフォルダを配置し、該値フォルダの直下に配置した全てのＸＭＬ文書を該フォルダの直下にも配置したフォルダ階層表現を生成し提供することを特徴とする請求項５に記載のＸＭＬ文書分類方法。
【請求項１０】
生成するフォルダ階層表現と同型のフォルダアイコンの階層構造を持つ階層型ファイルＧＵＩをユーザに提示し、
前記被変数同義化フォルダ、および変数同義化フォルダの選択は、ユーザによる、該ＧＵＩ上での、被変数同義化フォルダの変数同義化フォルダへのドラッグアンドドロップ操作によって行われることを特徴とする請求項９に記載のＸＭＬ文書分類方法。
【請求項１１】
任意の変数フォルダが選択され、さらに値に対する条件を表す文字列が指定された場合は、
該変数フォルダの直下に配置した、全ての値フォルダの直下に配置した、全てのＸＭＬ文書から、該条件に従う値を持つ該変数が文書中に存在する、ＸＭＬ文書のみを抽出し、
該条件を表す文字列を名前とするフォルダを生成し、該変数フォルダの直下に該フォルダを配置し、該フォルダの直下に該抽出したＸＭＬ文書を配置したフォルダ階層表現を生成し、提供することを特徴とする請求項５に記載のＸＭＬ文書分類方法。
【請求項１２】
生成するフォルダ階層表現と同型のフォルダアイコンの階層構造を持つ階層型ファイルＧＵＩをユーザに提示し、
変数フォルダの選択は、ユーザによる、該ＧＵＩ上での、該変数フォルダを開く操作によって行われ、
条件を表す文字列の指定は、ユーザによる、該ＧＵＩ上での、該変数フォルダの直下に、該条件を表す文字列を名前とするフォルダを作成する操作によって行われることを特徴とする請求項１１に記載のＸＭＬ文書分類方法。
【請求項１３】
請求項１に記載のＸＭＬ文書分類方法に従って生成したフォルダ階層表現を、ファイルシステム、またはＧＵＩ、または任意の形式のソフトウェアコンポーネントに提供するインタフェースを有するストレージシステム。
【請求項１４】
ストレージシステムに保存された複数のタグ付き文書（ＳＧＭＬ文書、ＨＴＭＬ文書、またはＸＭＬ文書）から、第一の任意の文字列（以下、第一の起文字列）を名前に持つタグ（以下、起タグ）が文書中に存在するタグ付き文書のみを抽出するタグ付き文書分類方法であって、
（１）該抽出したタグ付き文書群を、文書中において該起タグの直後に続く文字列（以下、タグ値）の同一性に基づいて分類し、
（２）該起タグと同名のフォルダ（以下、起タグフォルダ）を生成し、該起タグフォルダの直下に、該同一タグ値毎に該タグ値を名前とする下位フォルダ（以下、タグ値フォルダ）を配置し、さらに各該タグ値フォルダの直下に、該タグ値が該タグ値フォルダの名前と同一であるようなタグ付き文書群を配置した、フォルダ階層表現を生成し、
（３）該タグ値フォルダのうちの一つが選択され、さらに第二の起文字列が指定された場合は、該タグ値フォルダに配置したタグ付き文書群から、該第二の起文字列を名前に持つタグ（以下、第二の起タグ）が文書中に存在する文書のみを抽出し、該第二の起タグを改めて起タグとして（１）、（２）の処理を行い、（２）の処理によって生成する該第二の起タグと同名のフォルダを、該タグ値フォルダの直下に配置した、フォルダ階層表現を生成し、
上記（１）〜（３）の再帰的な繰返しによって生成するフォルダ階層表現を提供するタグ付き文書分類方法。
【請求項１５】
生成するフォルダ階層表現と同型の、フォルダアイコンの階層構造を持つ、階層型ファイル・グラフィカルユーザインタフェース（以下、ＧＵＩ）をユーザに提示し、
前記第一の起文字列の指定は、ユーザによる、該ＧＵＩ上での、ルートフォルダの直下に、該第一の起文字列を名前とするフォルダを作成する操作によって行われ、
前記タグ値フォルダの選択は、ユーザによる、該ＧＵＩ上での、該タグ値フォルダを開く操作によって行われ、
前記第二の起文字列の指定は、ユーザによる、該ＧＵＩ上での、該タグ値フォルダの直下に、該第二の起文字列を名前とするフォルダを作成する操作によって行われる請求項１４に記載のタグ付き文書分類方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムに関する。特に、ストレージシステムに保管される複数のＸＭＬ文書の分類方法に関わり、特に、内容に基づいて文書を階層的に分類することを容易化する、ファイルビュー生成方法、およびグラフィカルユーザインタフェース（以下、ＧＵＩ）に関する。
【背景技術】
【０００２】
ハードディスクやＮＡＳ（Ｎｅｔｗｏｒｋ Ａｔｔａｃｈｅｄ Ｓｔｏｒａｇｅ）、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）などのストレージシステムに保管されるファイル群は、一般に、ＦＡＴ、ＮＴＦＳ、ＣＩＦＳ、ＵＮＩＸ（登録商標）ファイルシステム、ＮＦＳなどに代表されるファイルシステムによって、フォルダ（ディレクトリ）に分類されたビューが提供される。これらのファイルシステムが提供するビューでは、共通して、フォルダが木構造状に階層化されており、ユーザによる任意のファイルの指定は、その階層構造において頂点から該ファイルに到るパス（ロケーション）を、ファイルシステムに指示することで行う。ユーザは、この階層構造上に作成したフォルダに、複数のファイルを分類して保管することができる。
【０００３】
しかし、このようなロケーション主体の分類方法では、ユーザ自身が、ファイルの内容を適切に判別して、正しいフォルダに配置する必要がある。また、自身が作成したフォルダの階層構造を正しく記憶している必要がある。一般に、ファイルの数が増える程、フォルダの階層構造は複雑になるため、ユーザが記憶することは困難になり、また、ユーザがファイルの判別／配置を誤ると、あとで該ファイルを見つけ出すことは極めて難しくなる。
【０００４】
さらに、上記分類方法では、ある観点で分類したファイル群を、後から別の観点で分類し直す作業が煩雑である。例えば、ファイルの作成者毎にフォルダ別に分類してあるファイル群を、作成日時や種類別に分類し直すには、新たにフォルダ階層を作り、ファイルをコピーあるいはリンクを張るなどして、該新規フォルダに配置し直す必要がある。
さらに、ネットワーク上の他の計算機に配置されたファイルを指定するためには、該計算機の名前を指示する必要がある。ストレージシステムのバックアップ機能やマイグレーション機能によりファイルが配置される計算機は変化するため、上記ロケーション主体の分類方法では、これらの機能に対応できない。
【０００５】
これに対し、ファイルを、ロケーションとは無関係に、その内容（コンテンツ）によって分類する方法として、全文キーワード検索によるファイル検索技術が存在する。但し、従来技術では、キーワードの意味は考慮されないため、キーワードの有無による単純な分類しかできなかった。
一方、今後、Ｗｅｂサービスの拡大により、ＳＯＡＰ（Ｓｉｍｐｌｅ Ｏｂｊｅｃｔ Ａｃｃｅｓｓ Ｐｒｏｔｏｃｏｌ）に代表される、データのＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ Ｍａｒｋｕｐ Ｌａｎｇｕａｇｅ）化が推進されると予想されている。ＸＭＬ化によって、タグによるデータの意味付けがなされることに対応し、コンテンツ指定によるファイルアクセス方法についても、全文キーワード検索以上の高機能化が期待されている。
【０００６】
ＸＭＬに対する検索式の記述方法としてはＸＰａｔｈ（ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＴＲ／ｘｐａｔｈ２０／）、ＸＱｕｅｒｙ（ｈｔｔｐ：／／ｗｗｗ．ｗ３．ｏｒｇ／ＸＭＬ／Ｑｕｅｒｙ）などの標準仕様が存在する。また、米国特許申請書ＵＳ２００１／００４９６７５“ＦＩＬＥ  ＳＹＳＴＥＭ  ＷＩＴＨ  ＡＣＣＥＳＳ  ＡＮＤ  ＲＥＴＲＩＥＶＡＬ  ＯＦ  ＸＭＬ  ＤＯＣＵＭＥＮＴＳ”は、ＸＭＬ文書自体の文法構造をファイルシステムにおけるフォルダの階層構造に同型にマッピングすることで得られるファイルビューの提供方法を提示している。
【０００７】
【特許文献１】米国特許公開２００１／００４９６７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ＸＰａｔｈは、ＸＭＬ文書中でのノード（要素、属性、テキストなど）階層パターンの表現形式であり、特定の文書中から該表現形式に従って記述されたパターンにマッチするノード群を抽出する。あるＸＰａｔｈ表現にマッチするノードが文書中に存在するか否かによって、複数のＸＭＬ文書を分類できる。但し、ユーザがＸＰａｔｈ表現を記述するためには、対象とするＸＭＬ文書の文法構造（ＤＴＤ定義、ＸＭＬ  Ｓｃｈｅｍａ定義など）を把握している必要がある。また、ＸＰａｔｈ表現をテキストで記述する必要があるのでは利便性が損なわれる。
【０００９】
これに対し、ＵＳ２００１／００４９６７５の実施例には、該提案手法が提供するファイルビューを、階層型ファイルＧＵＩに入力することで実現されるファイルシステムが例示されている（ここでの階層型ファイルＧＵＩとは、Ｗｉｎｄｏｗｓ（登録商標）のエクスプローラに代表される、木構造型のファイル階層表現を提供するＧＵＩを指す）。該システムでは、ユーザがＸＰａｔｈ表現を記述することなく、従来型のファイルＧＵＩによって、ファイルにアクセスすることが可能である。但し、分類される全てのＸＭＬ文書の文法構造が同一である必要があり、また、ＸＰａｔｈと同様、ユーザが文法構造を把握している必要がある。
【００１０】
以上を鑑み、上記従来技術に対して、さらに以下の要件に応える技術が必要である。
第一に、互いに異なる文法構造を持つ複数のＸＭＬ文書を、ユーザ独自の観点で分類可能であること。
第二に、上記作業が、該文法構造群を把握すること無しに可能であること。
第三に、上記作業が、従来型の階層型ファイルＧＵＩを通して可能であること。
従って、第一、第二の要件を満たす機能を、階層型ファイルＧＵＩに付加するかたちで実現することが、本発明が解決しようとする課題である。
【課題を解決するための手段】
【００１１】
階層型ファイルＧＵＩに対し、以下の各処理を実行する機能を付加する。
（１）ユーザが、ある文字列（以下、起文字列）を名前とするフォルダ（以下、起要素フォルダ）の作成操作をした場合、該起文字列を名前とする要素（以下、起要素）を文書中に含む全ＸＭＬ文書を選別し、さらに、該起要素の子供が唯一テキスト（以下、要素値）であるようなＸＭＬ文書群については、該要素値の同一性によって該ＸＭＬ文書群を分類し、該起要素フォルダの直下に、該要素値毎にそれを名前とするフォルダ（以下、要素値フォルダ）群を作成し、該要素値フォルダ群に前記分類した該ＸＭＬ文書群を配置する。
（２）前記起要素が属性群を持つ場合には、該属性毎にその属性名を名前とするフォルダ（以下、属性フォルダ）を、また、該起要素が子供として要素（以下、従要素）群を持つ場合には、該従要素毎にその要素名を名前とするフォルダ（以下、従要素フォルダ）を、前記起要素フォルダの直下に作成する。
【００１２】
（３）ユーザが、ある属性フォルダを開いた場合には、該属性に対する属性値の同一性によって前記ＸＭＬ文書群を分類し、該属性フォルダの直下に、該属性値毎にそれを名前とするフォルダ（以下、属性値フォルダ）群を作成し、該属性値フォルダ群に前記分類した該ＸＭＬ文書群を配置する。
（４）ユーザが、ある従要素フォルダを開いた場合は、該従要素フォルダの名前を改めて起文字列として、上記（１）（２）の処理を行う。
（５）ユーザが、任意の２つの要素値フォルダ、または属性値フォルダ（以下、両者をまとめて値フォルダ）を、マウス操作によって指定することで、一方の値フォルダ（以下、被値同義化フォルダ）は他方の値フォルダ（以下、値同義化フォルダ）に値同義化される。値同義化とは、以下の処理である：
被値同義化フォルダに配置された全ＸＭＬ文書を、値同義化フォルダにも配置する。
【００１３】
（６）ユーザが、任意の２つの起要素フォルダ、従要素フォルダ（以下、両者をまとめて要素フォルダ）、または属性フォルダ（以下、３者をまとめて変数フォルダ）を、マウス操作によって指定することで、一方の変数フォルダ（以下、被変数同義化フォルダ）は他方の変数フォルダ（以下、変数同義化フォルダ）に変数同義化される。変数同義化とは、以下の処理である：
被変数同義化フォルダの直下に存在する各値フォルダについて、変数同義化フォルダの直下に該値フォルダと同名の値フォルダが存在する場合には、前者値フォルダに配置された全ＸＭＬ文書を、後者値フォルダにも配置し、同名の値フォルダが存在しない場合には、該値フォルダと同名の値フォルダを変数同義化フォルダの直下に生成して、前者に配置された全ＸＭＬ文書を後者にも配置する。
【００１４】
（７）ユーザが、変数フォルダ内に、条件指定を名前とする値フォルダを作成した場合、該変数が該条件に従う値を持つＸＭＬ文書群のみを、該値フォルダに配置する。
（８）ユーザが、値フォルダ内に、新規起要素フォルダを作成することで、該値フォルダに配置されたＸＭＬ文書群のみについて、上記（１）〜（７）の処理によりさらなる分類が可能である。
【発明の効果】
【００１５】
（１）任意の要素の有無とその値の同一性によって、文書を分類することができる。
（２）ある要素の下にどのような属性や子要素が存在するかを提示するため、ユーザは提示された中から関連しそうなものを選択していくことができる。
（３）文書の分類は、属性値の同一性によっても行うことができる。
（４）ＸＭＬ文書の再帰的な階層構造に基づいて分類することができる。
（５）ＸＭＬの文法上異なる要素あるいは属性と値の組み合わせを、同一の意味として纏めることができる。
（６）ＸＭＬの文法上異なる要素あるいは属性を、同一の意味として纏め、その値の同一性によって、文書を分類することができる。
（７）要素あるいは属性の値に対して条件検索をかけることができる。
（８）分類を階層的にネストさせることができる。
【００１６】
（１）〜（４）の効果は、ＸＭＬ文書の文法構造を把握することなしに分類することを容易化する。また、（５）および（６）の効果は、異なる文法構造の文書をまとめて分類することを容易化する。さらに、（７）および（８）の効果は、ユーザが独自の観点で分類することを容易化する。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の一形態を、図面を参照しながら説明する。なお簡単のために、本明細書中では以下に述べる発明の実施の形態を単に「本実施例」と呼ぶことにする。
図１と図２を用いて、本実施例の概略を説明する。
本実施例では、大別して、ＸＭＬファイルビューワ１０１、および階層型ファイルＧＵＩ１０２の２つの構成要素を用いる。ＸＭＬファイルビューワ１０１は、ストレージ１０３に保存されている複数のＸＭＬ文書を分類するソフトウェアである。また、分類を効率化するために、該ＸＭＬ文書群の内容をデータベース１０４に格納する。階層型ファイルＧＵＩ１０２は、ユーザによって指定された階層パスを、ＸＭＬファイルビューワ１０１に通知する。ＸＭＬファイルビューワ１０１は、通知された該階層パスをクエリに変換して、データベース１０４に問い合わせ、得られた結果を、階層型ファイルＧＵＩ１０２に通知する。階層型ファイルＧＵＩ１０２は、通知された該結果を、該階層パスに存在するフォルダ／ファイルとして、アイコン化してユーザに提示する。
【００１８】
図２に示したＸＭＬ文書２０１〜２０９は、本実施例の説明のために取り上げる例文である。これらのＸＭＬ例文は、互いに異なる文法構造を持っている。該ＸＭＬ例文群は、ストレージ１０３に保存されており、また、その内容がデータベース１０４に格納されている。これに対し、ユーザが、階層型ファイルＧＵＩ１０２を通して、該ＸＭＬ例文群を以下のように分類したフォルダ階層表現を得ようとする場合を想定する：
・ユーザ１０５は、ｕｓｅｒ＝ｔａｎａｋａ であるファイルを、日付で分類
・ ユーザ１０６は、ｑｕｅｒｙ を、ｕｓｅｒ別に分類。
【００１９】
この場合、ＸＭＬファイルビューワ１０１および階層型ファイルＧＵＩ１０２は、ユーザ１０５に対して、フォルダ階層表現１０７を提示する。フォルダ階層表現１０７では、ｕｓｅｒ＝ｔａｎａｋａフォルダ１０８の下に、ｄａｔｅ＜０２−０１−０１フォルダ１０９、およびｄａｔｅ＞０１−１２−３１フォルダ１１０が存在する。フォルダ１０９を開いたウィンド１１１には、ユーザがｔａｎａｋａで、かつ、日付が０２−０１−０１より前であるＸＭＬ文書ａ．ｘｍｌ、およびｃ．ｘｍｌが存在する。一方、フォルダ１１０を開いたウィンド１１２には、ユーザがｔａｎａｋａで、かつ、日付が０１−１２−３１より後であるＸＭＬ文書ｄ．ｘｍｌ、ｅ．ｘｍｌ、およびｇ．ｘｍｌが存在する。
【００２０】
一方、ＸＭＬファイルビューワ１０１および階層型ファイルＧＵＩ１０２は、ユーザ１０６に対して、フォルダ階層表現１１３を提示する。フォルダ階層表現１１３では、ｑｕｅｒｙフォルダ１１４の下に、ｕｓｅｒ＝ｔａｎａｋａフォルダ１１５、およびｕｓｅｒ＝ｓｕｚｕｋｉフォルダ１１６が存在する。フォルダ１１５を開いたウィンド１１７には、クエリであり、かつ、ユーザがｔａｎａｋａであるＸＭＬ文書ｃ．ｘｍｌが存在する。一方、フォルダ１１６を開いたウィンド１１８には、クエリであり、かつ、ユーザがｓｕｚｕｋｉであるＸＭＬ文書ｂ．ｘｍｌ、ｈ．ｘｍｌ、およびｉ．ｘｍｌが存在する。
【００２１】
以上が、本実施例の概略である。以降、本実施例における、上記を実現するためのＸＭＬファイルビューワ１０１、および階層型ファイルＧＵＩ１０２の動作の詳細を説明する。なお、以降では、簡単のために、ＸＭＬ例文２０１〜２０４のみを対象とする。
まず、図３を参照して、本実施例における、ＸＭＬ文書のデータベース１０４への格納方法を説明する。
【００２２】
本実施例では、データベース１０４は、リレーショナルデータベースとする。表は、ＩＤ，ＶＡＬＵＥ，ＴＹＰＥ，ＰＩＤ，ＰＶＡＬＵＥ，ＦＩＬＥの６つの列を持つ。該表は、ストレージ１０３に保存されているＸＭＬ文書の内容を、ＸＭＬのノード（要素、属性、値）毎に分解して格納する。一つの行が、一つのノードを表す。各列の意味は、以下の通り：
ＩＤ  ．．．  ノードの一意な識別子
ＴＹＰＥ  ．．．  ノードの種類
ＶＡＬＵＥ  ．．．  ノードの名前、または値
ＰＩＤ  ．．．  親ノードのＩＤ
ＦＩＬＥ  ．．．  ノードが存在するＸＭＬ文書名
ＩＤの値は、ノードが存在するＸＭＬ文書名（ＦＩＬＥの値）から「．ｘｍｌ」の拡張子をのぞいた文字列と、それに続く「：」を先頭に、ノードの兄弟間における順番を表す数字を、階層毎に「／」で区切ったものを再帰的に繋げることで決まる文字列とする。例えば、ＸＭＬ例文２０３のａｄｄｒｅｓｓ要素は、ｃ．ｘｍｌという名前のＸＭＬ文書中に存在するため「ｃ：」で始まり、文書の１番目の要素であるｑｕｅｒｙ要素の、１番目の子供要素であるｕｓｒ要素の、２番目の子供要素であるため、そのＩＤは「ｃ：／１／１／２」となる（表３００の２９行目）。但し、このようなＩＤの付け方は、あくまで一例であり、ノードについて一意であれば、どのような文字列でも構わない。
【００２３】
ＴＹＰＥの値は、ノードが要素であれば「ＴＡＧ」、属性であれば「ＡＴＲ」、値であれば「ＰＣＤ」とする。これらの他、実際にＸＭＬ文書中には存在しない、仮想的なノードの種類として「ＣＭＰ」、および「ＶＡＣ」がある。以下、それぞれを、複合ノード、および空ノードと呼ぶ。複合ノードは、親ノードが唯一文字列を子供とするのではない場合に用意する、仮想的なノードである。空ノードは、親ノードが空ノードである場合に用意する、仮想的なノードである。複合ノード、および空ノードの、兄弟間における順番は、共に０とする。
【００２４】
ＶＡＬＵＥの値は、ノードが要素である場合にはその要素名、属性である場合にはその属性名、値である場合には値それ自身、複合ノード、および空ノードの場合はｎｕｌｌ
とする。
以上のルールに従って、ＸＭＬ例文２０１〜２０４の全ノードを、深さ優先でトラバースして格納した結果が、表３００である。行１〜６、７〜２２、２３〜３４、３５〜３８が、それぞれＸＭＬ例文２０１、２０２、２０３、２０４の内容に相当する。
【００２５】
この表（以下、表名を「ＴＡＢＬＥ」とする）を用いて、特定の名前を持つ要素を親とする全てのノードの種類、および名前（または値）を抽出するには、以下のようなＳＱＬ文を用いる：
ＳＥＬＥＣＴ  Ｔ２．ＴＹＰＥ，Ｔ２．ＶＡＬＵＥ
ＦＲＯＭ  ＴＡＢＬＥ  ＡＳ  Ｔ１，
ＴＡＢＬＥ  ＡＳ  Ｔ２
ＷＨＥＲＥ  Ｔ１．ＴＹＰＥ＝’ＴＡＧ’  ＡＮＤ  Ｔ１．ＶＡＬＵＥ＝要素名
ＡＮＤ  Ｔ１．ＩＤ＝Ｔ２．ＰＩＤ
例えば、ｕｓｅｒ要素を親とする全てのノードを抽出すると、表３００の行４、１０、１１、１３、１５、１７が選ばれ、｛（ＰＣＤ，ｔａｎａｋａ），（ＣＭＰ，ｎｕｌｌ），（ＡＴＲ，ｎａｍｅ），（ＴＡＧ，ａｄｄｒｅｓｓ），（ＴＡＧ，ｔｅｌｅｐｈｏｎｅ），
（ＴＡＧ，ｊｏｂ）｝が結果となる。
【００２６】
また、特定の名前を持つ要素が、特定の値をとるような、ＸＭＬ文書を抽出するには、以下のようなＳＱＬ文を用いる：
ＳＥＬＥＣＴ  Ｔ２．ＦＩＬＥ
ＦＲＯＭ  ＴＡＢＬＥ  ＡＳ  Ｔ１，
ＴＡＢＬＥ  ＡＳ  Ｔ２
ＷＨＥＲＥ  Ｔ１．ＴＹＰＥ＝’ＴＡＧ’  ＡＮＤ  Ｔ１．ＶＡＬＵＥ＝要素名
ＡＮＤ  Ｔ１．ＩＤ＝Ｔ２．ＰＩＤ
ＡＮＤ  Ｔ２．ＴＹＰＥ＝’ＰＣＤ’  ＡＮＤ  Ｔ２．ＶＡＬＵＥ＝値
例えば、ｕｓｅｒ要素の値がｔａｎａｋａであるようなＸＭＬ文書を抽出すると、表３００の行４が選ばれ、｛（ａ．ｘｍｌ）｝が結果となる。
【００２７】
また、特定の名前を持つ要素の、特定の属性が、特定の値をとるような、ＸＭＬ文書を抽出するには、以下のようなＳＱＬ文を用いる：
ＳＥＬＥＣＴ  Ｔ３．ＦＩＬＥ
ＦＲＯＭ  ＴＡＢＬＥ  ＡＳ  Ｔ１，
ＴＡＢＬＥ  ＡＳ  Ｔ２，
ＴＡＢＬＥ  ＡＳ  Ｔ３
ＷＨＥＲＥ  Ｔ１．ＴＹＰＥ＝’ＴＡＧ’  ＡＮＤ  Ｔ１．ＶＡＬＵＥ＝要素名
ＡＮＤ  Ｔ１．ＩＤ＝Ｔ２．ＰＩＤ
ＡＮＤ  Ｔ２．ＴＹＰＥ＝’ＡＴＲ’  ＡＮＤ  Ｔ２．ＶＡＬＵＥ＝属性名
ＡＮＤ  Ｔ２．ＩＤ＝Ｔ３．ＰＩＤ
ＡＮＤ  Ｔ３．ＴＹＰＥ＝’ＰＣＤ’  ＡＮＤ  Ｔ３．ＶＡＬＵＥ＝値
例えば、ｕｓｅｒ要素のｎａｍｅ属性の値がｓｕｚｕｋｉであるようなＸＭＬ文書を抽出すると、表３００の行１２が選ばれ、｛（ｂ．ｘｍｌ）｝が結果となる。
【００２８】
また、特定の名前（要素名１）を持つ要素の、特定の子供要素（要素名２）が、特定の値をとるような、ＸＭＬ文書を抽出するには、以下のようなＳＱＬ文を用いる：
ＳＥＬＥＣＴ  Ｔ３．ＦＩＬＥ
ＦＲＯＭ  ＴＡＢＬＥ  ＡＳ  Ｔ１，
ＴＡＢＬＥ  ＡＳ  Ｔ２，
ＴＡＢＬＥ  ＡＳ  Ｔ３
ＷＨＥＲＥ  Ｔ１．ＴＹＰＥ＝’ＴＡＧ’  ＡＮＤ  Ｔ１．ＶＡＬＵＥ＝要素名１
ＡＮＤ  Ｔ１．ＩＤ＝Ｔ２．ＰＩＤ
ＡＮＤ  Ｔ２．ＴＹＰＥ＝’ＴＡＧ’  ＡＮＤ  Ｔ２．ＶＡＬＵＥ＝要素名２
ＡＮＤ  Ｔ２．ＩＤ＝Ｔ３．ＰＩＤ
ＡＮＤ  Ｔ３．ＴＹＰＥ＝’ＰＣＤ’  ＡＮＤ  Ｔ３．ＶＡＬＵＥ＝値
例えば、ｕｓｒ要素の子供であるｎａｍｅ要素の値がｔａｎａｋａであるようなＸＭＬ文書を抽出すると、表３００の行２８が選ばれ、｛（ｃ．ｘｍｌ）｝が結果となる。
【００２９】
一般に、ｎ階層の先祖−子孫関係を持つ要素（または、ｎ−１階層の先祖−子孫関係を持つ要素の、特定の属性）を親とする全てのノードの種類、および名前（または値）を抽出するには、以下のようなＳＱＬ文を用いる：
ＳＥＬＥＣＴ  Ｔｎ＋１．ＴＹＰＥ，Ｔｎ＋１．ＶＡＬＵＥ
ＦＲＯＭ  ＴＡＢＬＥ  ＡＳ  Ｔ１，
ＴＡＢＬＥ  ＡＳ  Ｔ２，
：
ＴＡＢＬＥ  ＡＳ  Ｔｎ
ＴＡＢＬＥ  ＡＳ  Ｔｎ＋１
ＷＨＥＲＥ  Ｔ１．ＴＹＰＥ＝’ＴＡＧ’  ＡＮＤ  Ｔ１．ＶＡＬＵＥ＝要素名１
ＡＮＤ  Ｔ１．ＩＤ＝Ｔ２．ＰＩＤ
ＡＮＤ  Ｔ２．ＴＹＰＥ＝’ＴＡＧ’  ＡＮＤ  Ｔ２．ＶＡＬＵＥ＝要素名２
ＡＮＤ  Ｔ２．ＩＤ＝Ｔ３．ＰＩＤ
：
ＡＮＤ  Ｔｎ．ＴＹＰＥ＝’ＴＡＧ’  ＡＮＤ  Ｔｎ．ＶＡＬＵＥ＝要素名ｎ
（またはＡＮＤ  Ｔｎ．ＴＹＰＥ＝’ＡＴＲ’  ＡＮＤ  Ｔｎ．ＶＡＬＵＥ＝属性名）
ＡＮＤ  Ｔｎ．ＩＤ＝Ｔｎ＋１．ＰＩＤ
以下、上記ＳＱＬ文をＣＨＩＬＤＲＥＮ（要素名１／要素名２／．．．／要素名ｎ）（または、ＶＡＬＵＥ（要素名１／要素名２／．．．／要素名ｎ−１／＠属性名））と表記する。
【００３０】
また、一般に、ｎ階層の先祖−子孫関係を持つ要素（または、ｎ−１階層の先祖−子孫関係を持つ要素の、特定の属性）が、特定の値をとるような、ＸＭＬ文書を抽出するには、以下のようなＳＱＬ文を用いる：
ＳＥＬＥＣＴ  Ｔｎ＋１．ＦＩＬＥ
ＦＲＯＭ  ＴＡＢＬＥ  ＡＳ  Ｔ１，
ＴＡＢＬＥ  ＡＳ  Ｔ２，
：
ＴＡＢＬＥ  ＡＳ  Ｔｎ
ＴＡＢＬＥ  ＡＳ  Ｔｎ＋１
ＷＨＥＲＥ  Ｔ１．ＴＹＰＥ＝’ＴＡＧ’  ＡＮＤ  Ｔ１．ＶＡＬＵＥ＝要素名１
ＡＮＤ  Ｔ１．ＩＤ＝Ｔ２．ＰＩＤ
ＡＮＤ  Ｔ２．ＴＹＰＥ＝’ＴＡＧ’  ＡＮＤ  Ｔ２．ＶＡＬＵＥ＝要素名２
ＡＮＤ  Ｔ２．ＩＤ＝Ｔ３．ＰＩＤ
：
ＡＮＤ  Ｔｎ．ＴＹＰＥ＝’ＴＡＧ’  ＡＮＤ  Ｔｎ．ＶＡＬＵＥ＝要素名ｎ
（またはＡＮＤ  Ｔｎ．ＴＹＰＥ＝’ＡＴＲ’  ＡＮＤ  Ｔｎ．ＶＡＬＵＥ＝属性名）
ＡＮＤ  Ｔｎ．ＩＤ＝Ｔｎ＋１．ＰＩＤ
ＡＮＤ  Ｔｎ＋１．ＴＹＰＥ＝’ＰＣＤ’  ＡＮＤ  Ｔｎ＋１．ＶＡＬＵＥ＝値
以下、上記ＳＱＬ文をＦＩＬＥＳ（要素名１／要素名２／．．．／要素名ｎ，値）（または、ＦＩＬＥＳ（要素名１／要素名２／．．．／要素名ｎ−１／＠属性名，値））と表記する。
【００３１】
以上を前提として、本実施例における、ＸＭＬファイルビューワ１０１および階層型ファイルＧＵＩ１０２の動作を、以下に説明する。
階層型ファイルＧＵＩ１０２は、ユーザが、フォルダ開封操作などで階層パスを指定すると、該階層パスをＸＭＬファイルビューワ１０１に通知する。その際に、該階層パスが変数フォルダ（後述）であるか、値フォルダ（後述）であるかも共に通知する。値フォルダである場合には、階層パスと共に値も通知する。
【００３２】
ＸＭＬファイルビューワ１０１は、通知された階層パスを基に以下の処理をする：
１． 階層パスが変数フォルダの場合は、ＳＱＬ文ＣＨＩＬＤＲＥＮ（階層パス）をデータベース１０４に対して発行する
２． 階層パスが値フォルダの場合は、ＳＱＬ文ＦＩＬＥＳ（階層パス，値）をデータベース１０４に対して発行する
さらに、ＸＭＬファイルビューワ１０１は、上記処理にて得られた結果を、階層型ファイルＧＵＩ１０２に通知する。階層型ファイルＧＵＩ１０２は、該結果を以下のようにアイコン化して、該階層パスに配置する：
１．階層パスが変数フォルダの場合は、結果のＴＹＰＥ別に、以下のようなアイコンを用意する：
ＴＡＧ：  ＶＡＬＵＥを名前とする、真中に「＜＞」というマークをつけたフォルダアイコン（以下、要素フォルダ）
ＡＴＲ：  ＶＡＬＵＥの前に「＠」を付けた文字列を名前とする、真中に「＠」というマークをつけたフォルダアイコン（以下、属性フォルダ）
ＰＣＤ：  ＶＡＬＵＥの前に「＝」を付けた文字列を名前とする、無印のフォルダアイコン
ＣＭＰ，ＶＡＣ：  「＜／＞」を名前とする、無印のフォルダアイコン
２．階層パスが値フォルダの場合は、結果ＦＩＬＥを名前とする、ファイルアイコン
ここで、変数フォルダとは、何らかのマークが付いているフォルダアイコン、値フォルダとは、無印のフォルダアイコンのことである。
【００３３】
次に、図４を例に、ユーザのＧＵＩ上での操作に伴う、フォルダ階層表現の生成過程を説明する。
ユーザが、階層型ファイルＧＵＩ（以下、ＧＵＩ）１０２上で、空のフォルダ４０１に、ｕｓｅｒという名前の要素フォルダ４０２を作成し、該要素フォルダを開く操作をすると、ＧＵＩ１０２は、ウィンドウ４０３を表示する。（以降、図面に登場する、黒丸を始点とする矢印は、始点側のフォルダを開いたイメージが、終点側のウィンドウに現れることを意味する。また、ウィンドウをフォルダと呼ぶことがある。）ウィンドウ４０３の左上には、灰色のボタン４０４を付ける。これは、フォルダ４０２（および、それを開いたイメージであるフォルダ４０３）が変数フォルダであることを表す。
【００３４】
さらに、ＧＵＩ１０２は、ＸＭＬファイルビューワ（以下、ビューワ）１０１に、階層パス「ｕｓｅｒ」を通知する。ビューワ１０１は、ＳＱＬ文ＣＨＩＬＤＲＥＮ（ｕｓｅｒ）をデータベース（以下、ＤＢ）１０４に発行し、表３００の行１１、１３、１５、１７、１０、４が選ばれ、結果｛（ＡＴＲ，ｎａｍｅ），（ＴＡＧ，ａｄｄｒｅｓｓ），（ＴＡＧ，ｔｅｌｅｐｈｏｎｅ），（ＴＡＧ，ｊｏｂ），（ＣＭＰ，ｎｕｌｌ），（ＰＣＤ，ｔａｎａｋａ）｝を得て、ＧＵＩ１０２にこれを通知する。ＧＵＩ１０２は、この情報からフォルダアイコン４０５〜４１０を生成して、フォルダ４０３に配置する。こうして生成したフォルダ階層表現を、ユーザに提示する。
【００３５】
ユーザが、属性フォルダ４０５を開くと、ＧＵＩ１０２はウィンドウ４１１を表示する。フォルダ４１１は変数フォルダなので、ボタン４１２を付ける。さらに、ＧＵＩ１０２は、階層パス「ｕｓｅｒ／＠ｎａｍｅ」をビューワ１０１に通知し、ビューワ１０１はＳＱＬ文ＣＨＩＬＤＲＥＮ（ｕｓｅｒ／＠ｎａｍｅ）を発行し、表３００の行１２が選ばれ、結果｛（ＰＣＤ，ｓｕｚｕｋｉ）｝を得て、ＧＵＩ１０２にこれを通知する。ＧＵＩ１０２は、この情報からフォルダアイコン４１３を生成して、フォルダ４１２に配置する。
【００３６】
ユーザが、値フォルダ４１３を開くと、ＧＵＩ１０２はウィンドウ４１４を表示する。フォルダ４１４は（値フォルダであり）変数フォルダではないので、ウィンドウの左上にボタンを付けない。さらに、ＧＵＩ１０２は、階層パス「ｕｓｅｒ／＠ｎａｍｅ」と値「ｓｕｚｕｋｉ」をビューワ１０１に通知し、ビューワ１０１はＳＱＬ文ＦＩＬＥＳ（ｕｓｅｒ／＠ｎａｍｅ，ｓｕｚｕｋｉ）を発行し、表３００の行１２が選ばれ、結果｛（ｂ．ＸＭＬ）｝を得て、ＧＵＩ１０２にこれを通知する。ＧＵＩ１０２は、この情報からファイルアイコン４１５を生成して、フォルダ４１４に配置する。
【００３７】
以降、ビューワ１０１、ＧＵＩ１０２のやり取りの説明は省略する。
ユーザが要素フォルダ４０６を開くと、ウィンドウ４１６、ボタン４１７、フォルダ４１８が表示される。フォルダ４１８は、ＳＱＬ文ＣＨＩＬＤＲＥＮ（ｕｓｅｒ／ａｄｄｒｅｓｓ）で表３００の行１４が選ばれ、結果｛（ＶＡＣ，ｎｕｌｌ）｝をアイコン化した値フォルダである。フォルダ４１８を開くと、ウィンドウ４１９が表示され、ＳＱＬ文ＦＩＬＥＳ（ｕｓｅｒ／ａｄｄｒｅｓｓ，＜／＞）が発行される。但し、値が「＜／＞」の場合は、ＳＱＬ文ＦＩＬＥＳの最終行を、
ＡＮＤ  Ｔｎ＋１．ＴＹＰＥ＝’ＰＣＤ’  ＡＮＤ  Ｔｎ＋１．ＶＡＬＵＥ＝値
の代わりに、
ＡＮＤ  （Ｔｎ＋１．ＴＹＰＥ＝’ＶＡＣ’  ＯＲ  Ｔｎ＋１．ＴＹＰＥ＝’ＣＭＰ’）
とする。アイコン４２０は、上記ＳＱＬ文で表３００の行１４が選ばれ、結果｛（ｂ．ｘｍｌ）｝をアイコン化したファイルアイコンである。値フォルダ４２１内のファイルアイコン４２２は、ＳＱＬ文ＦＩＬＥＳ（ｕｓｅｒ，＜／＞）で選ばれる表３００の行１０をアイコン化したもの、また、値フォルダ４２３内のファイルアイコン４２４は、ＳＱＬ文ＦＩＬＥＳ（ｕｓｅｒ，ｔａｎａｋａ）で選ばれる表３００の行４をアイコン化したものである。
【００３８】
次に、図５を例に、別のフォルダ階層表現の生成過程を示す。以降は、アイコン毎に、その生成の際に使用したＳＱＬ文と、それによって選択された表３００の行のみを示す。また、ＳＱＬ文ＣＨＩＬＤＲＥＮをＣ、ＳＱＬ文ＦＩＬＥＳをＦと略す。
要素フォルダ５０５    Ｃ（ｕｓｒ）                                行２７，３９
要素フォルダ５０６    Ｃ（ｕｓｒ）                                      行２９
要素フォルダ５０７    Ｃ（ｕｓｒ）                                      行３１
要素フォルダ５０８    Ｃ（ｕｓｒ）                                      行４５
値フォルダ５０９    Ｃ（ｕｓｒ）                                行２６，３８
要素フォルダ５１２    Ｃ（ｕｓｒ／ｎａｍｅ）                            行４１
要素フォルダ５１３    Ｃ（ｕｓｒ／ｎａｍｅ）                            行４３
値フォルダ５１４    Ｃ（ｕｓｒ／ｎａｍｅ）                            行４０
値フォルダ５１５    Ｃ（ｕｓｒ／ｎａｍｅ）                            行２８
値フォルダ５１８    Ｃ（ｕｓｒ／ｎａｍｅ／ｌａｓｔ）                  行４４
ファイル５２０    Ｆ（ｕｓｒ／ｎａｍｅ／ｌａｓｔ，ｔａｎａｋａ）    行４４
ファイル５２２    Ｆ（ｕｓｒ／ｎａｍｅ，＜／＞）                    行４０
ファイル５２４    Ｆ（ｕｓｒ／ｎａｍｅ，ｔａｎａｋａ）              行２８
ファイル５２６    Ｆ（ｕｓｒ，＜／＞）                              行２６
ファイル５２７    Ｆ（ｕｓｒ，＜／＞）                              行３８
次に、図６を例に、変数同義化処理について説明する。ここで、変数同義化処理とは、文法構造上異なる複数の要素／属性を、同義であるとして纏めた場合、それらの値の同一性によって、ＸＭＬ文書を分類することを意味する。
【００３９】
図６では、図４および図５に表記したアイテムの中から、変数同義化処理の説明に関係する部分のみを抜き出している。例として、ｕｓｅｒ要素に、ｕｓｅｒ要素のｎａｍｅ属性、ｕｓｒ要素の子供のｎａｍｅ要素、ｕｓｒ要素の子供のｎａｍｅ要素の子供のｌａｓｔ要素を同義化する場合について示す。
【００４０】
ユーザは、２つの要素／属性を変数同義化することを、一方の変数フォルダのボタンに他方の変数フォルダのボタンをドラッグアンドドロップすることで、指定する。前者の変数フォルダを変数同義化フォルダ、後者を被変数同義化フォルダと呼ぶ。例では、ｕｓｅｒ要素フォルダ４０３のボタン４０４に、ｕｓｅｒ要素のｎａｍｅ属性フォルダ４１１のボタン４１２、ｕｓｒ要素の子供のｎａｍｅ要素フォルダ５１０のボタン５１１、およびｕｓｒ要素の子供のｎａｍｅ要素の子供のｌａｓｔ要素フォルダ５１６のボタン５１７を、ドラッグアンドドロップすることになる。
【００４１】
ユーザによる該操作に対して、以下の処理を行う：
被変数同義化フォルダの直下に存在する各値フォルダについて、変数同義化フォルダの直下に該値フォルダと同名の値フォルダが存在する場合には、前者値フォルダに配置された全ＸＭＬ文書を、後者値フォルダにも配置し、同名の値フォルダが存在しない場合には、該値フォルダと同名の値フォルダを変数同義化フォルダの直下に生成して、前者に配置された全ＸＭＬ文書を後者にも配置する。
【００４２】
例では、フォルダ５１０の直下に存在する値フォルダ５１５と同名（＝ｔａｎａｋａ）の値フォルダ４１０が、フォルダ４０３の直下に存在するため、値フォルダ５１５に配置されたファイルｃ．ｘｍｌを、値フォルダ４１０にも配置する。値フォルダ５１８に配置されたｄ．ｘｍｌについても同様である。これらは、フォルダ４２３にファイル群６０１として配置する。一方、フォルダ４１１の直下に存在する値フォルダ４１３と同名の値フォルダは、フォルダ４０３の直下に存在しないため、同名（＝ｓｕｚｕｋｉ）の値フォルダ６０２を生成して、値フォルダ４１３に配置されたファイルｂ．ｘｍｌをファイル６０４として配置する。
また、ユーザによって、変数フォルダのボタンが押されると、変数同義化されている全要素／属性のリストを表示する。例では、ユーザがボタン４０４を押すと、リスト６０５を表示する。
【００４３】
次に、図７を例に、値同義化処理について説明する。ここで、値同義化処理とは、特定の要素／属性が特定の値をとるという関係を、複数まとめて同義であるとして、該関係郡を満たすＸＭＬ文書群を一つのフォルダに配置することを意味する。
まず、ｑｕｅｒｙ要素に関するフォルダ階層表現の生成過程を示す。
要素フォルダ７０５    Ｃ（ｑｕｅｒｙ）                                  行２５
要素フォルダ７０６    Ｃ（ｑｕｅｒｙ）                                  行２８
値フォルダ７０７    Ｃ（ｑｕｅｒｙ）                                  行２４
ファイル７０９    Ｆ（ｑｕｅｒｙ，＜／＞）                          行２４
また、ｔｙｐｅ要素に関するフォルダ階層表現の生成過程を示す。
【００４４】
値フォルダ７１４    Ｃ（ｔｙｐｅ）                                    行２２
ファイル７１６    Ｆ（ｔｙｐｅ，ｑｕｅｒｙ）                        行２２
ここで、例として、ｑｕｅｒｙ要素を含むことに、ｔｙｐｅ要素の値がｑｕｅｒｙであることが同義として、値同義化する場合について示す。
ユーザは、２つの要素／属性−値間の関係を値同義化することを、一方の値フォルダに他方の値フォルダをドラッグアンドドロップすることで、指定する。前者の値フォルダを値同義化フォルダ、後者を被値同義化フォルダと呼ぶ。例では、ｑｕｅｒｙ＜／＞値フォルダ７０７に、ｔｙｐｅ＝ｑｕｅｒｙ値フォルダ７１４を、ドラッグアンドドロップすることになる。
【００４５】
ユーザによる上記操作に対して、以下の処理を行う：
被値同義化フォルダに配置された全ＸＭＬ文書を、値同義化フォルダにも配置する。例では、値フォルダ７１４に配置されたファイルｂ．ｘｍｌを、値フォルダ７０７にも、ファイル７１７として配置する。
【００４６】
次に、図８を例に、文書分類の階層化方法を説明する。これは、ある観点で分類したＸＭＬ文書を、さらに別の観点で細分化することを意味する。例として、図７にて抽出したｑｕｅｒｙ文書を、さらに、ｕｓｅｒ別に分類する場合について示す。
【００４７】
ユーザは、ある観点で分類されて一つの値フォルダに纏められたＸＭＬ文書を、さらに別の観点で分類することを、該値フォルダに、新規の要素フォルダを作成することによって指定する。例では、ｑｕｅｒｙ文書ファイル７０９，およびファイル７１７を纏めた値フォルダ７０８に、新規のｕｓｅｒ要素フォルダ８０１、およびｕｓｒ要素フォルダ８０２を追加することになる。さらに、関連するフォルダ階層表現の生成過程を以下に示す：
属性フォルダ８０５    Ｃ（ｕｓｅｒ）                                    行１１
要素フォルダ８０６    Ｃ（ｕｓｅｒ）                                    行１３
要素フォルダ８０７    Ｃ（ｕｓｅｒ）                                    行１５
要素フォルダ８０８    Ｃ（ｕｓｅｒ）                                    行１７
値フォルダ８０９    Ｃ（ｕｓｅｒ）                                    行１０
値フォルダ８１２    Ｃ（ｕｓｅｒ／＠ｎａｍｅ）                        行１２
ファイル８１４    Ｆ（ｕｓｅｒ／＠ｎａｍｅ，ｓｕｚｕｋｉ）          行１２
要素フォルダ８１７    Ｃ（ｕｓｒ）                                      行２７
要素フォルダ８１８    Ｃ（ｕｓｒ）                                      行２９
要素フォルダ８１９    Ｃ（ｕｓｒ）                                      行３１
値フォルダ８２０    Ｃ（ｕｓｒ）                                      行２６
値フォルダ８２３    Ｃ（ｕｓｒ／ｎａｍｅ）                            行２８
ファイル８２５    Ｆ（ｕｓｒ／ｎａｍｅ，ｔａｎａｋａ）              行２８
ここで、上記のＳＱＬは、ｑｕｅｒｙ＜／＞値フォルダ７０８に配置された文書ｂ．ｘｍｌおよびｃ．ｘｍｌのノードデータのみに対して実行されることとする。
【００４８】
さらに、変数フォルダ８０３に、変数フォルダ８１０，８２１が変数同義化されることによって、値フォルダ群８２６が変数フォルダ８０３の直下に生成される。値フォルダ８２７には、値フォルダ８１２に配置された文書ｂ．ｘｍｌがファイル８３０として、値フォルダ８２８には、値フォルダ８２３に配置された文書ｃ．ｘｍｌがファイル８３２として、それぞれ配置される。
以上をもって、ｑｕｅｒｙ文書が、さらにｕｓｅｒ別に分類された、フォルダ階層表現が完成する。
【００４９】
次に、図９を例に、値に対する条件付けによって文書を分類する方法を説明する。例として、図６にて抽出したｕｓｅｒ＝ｔａｎａｋａである文書の中で、０２−０１−０１より以前の日付のものを、さらに抽出する場合について示す。
まず、ｕｓｅｒ＝ｔａｎａｋａである文書ファイルａ．ｘｍｌ、ｃ．ｘｍｌ、ｄ．ｘｍｌを纏めた値フォルダ４２３に、新規のｄａｔｅ要素フォルダ９０１を追加する。フォルダ９０１の下には、以下の生成過程によって、値フォルダ９０４、９０５、および９０６が生成される：
値フォルダ９０４    Ｃ（ｄａｔｅ）                                    行６
値フォルダ９０５    Ｃ（ｄａｔｅ）                                    行３４
値フォルダ９０６    Ｃ（ｄａｔｅ）                                    行４８
例えば、値フォルダ９０６には、以下の生成過程によって、ファイル９０８が配置される：
ファイル９０８    Ｆ（ｄａｔｅ，０２−０８−３０）                  行４８
ユーザは、特定の要素／属性の値について条件付けをして文書を抽出することを、該変数フォルダの直下に、該条件を表す文字列を名前とする値フォルダを作成することによって指定する。また、該条件に適合するＸＭＬ文書を抽出するために、ＳＱＬ文ＦＩＬＥＳの最終行を、
ＡＮＤ  Ｔｎ＋１．ＴＹＰＥ＝’ＰＣＤ’  ＡＮＤ  Ｔｎ＋１．ＶＡＬＵＥ＝値
の代わりに、
ＡＮＤ  Ｔｎ＋１．ＴＹＰＥ＝’ＰＣＤ’  ＡＮＤ  Ｔｎ＋１．ＶＡＬＵＥ［条件］
としたＳＱＬ文を発行する。ＳＱＬ文中に記述可能な条件なら、どのような文字列でも利用可能である。
【００５０】
例では、変数フォルダ９０２の直下に、０２−０１−０１より以前を表す文字列「＜０２−０１−０１」を名前とする値フォルダ９０９を作成する。この結果、行６、および行３４が選ばれ、ａ．ｘｍｌ、およびｃ．ｘｍｌが、ファイル９１１、およびファイル９１２として値フォルダ９０９に配置される。
以上をもって、ｕｓｅｒ＝ｔａｎａｋａである文書が、さらにｄａｔｅの範囲によって分類された、フォルダ階層表現が完成する。
【００５１】
以上は、ＸＭＬファイルビューワ１０１と、階層型ファイルＧＵＩ１０２が連携する場合の実施例であるが、ＧＵＩ１０２の代わりに、フォルダやディレクトリの木構造型階層構造を操作するファイルシステム一般が、同様にビューワ１０１と連携可能であることは自明である。これは、ビューワ１０１が、指定された階層パスに存在するフォルダ／ファイル群を返却するような、アプリケーションプログラミングインタフェースや通信プロトコルなどのインタフェースを、ファイルシステムやＧＵＩに提供することで、実現可能である。また、ストレージシステム１０３に組み込まれているＣＰＵ／メモリ上で、ビューワ１０１の処理を実行することにより、本実施例で示したフォルダ階層表現を、ファイルシステムやＧＵＩに提供するインタフェースを持つ、ストレージシステムを実現可能であることは自明である。
【００５２】
また、以上は、ＸＭＬ文書の分類方法として説明したが、本実施例における、要素（タグ）の値の同一性に基づく文書の分類方法、および、図８の説明の前半で示した、文書分類の階層化方法は、ＳＧＭＬ、ＨＴＭＬに代表される、タグ付き文書一般の分類方法としても適用可能であることは自明である。
【００５３】
なお、本実施例では、リレーショナルデータベースを利用し、５つの列を持つ表に格納した。但し、ここで示したのと同様のフォルダ階層表現を生成することが可能ならば、別の形式の表を用いても構わないし、リレーショナルデータベースではなく、ＸＭＬネイティブなデータベースを用いても構わないし、また、より効率的な、独自のデータ形式・アルゴリズムを用いても構わない。本特許は、特定の実現方法には限定されない、機能仕様に関する発明である。
【産業上の利用可能性】
【００５４】
以上の本発明は、属性に実質的な差がなくても形式的に差がある多数のファイルを統一的に扱うファイル属性の同一化を可能とするもので、分散ファイルシステムやアーカイビングの分野での適用可能性が大きい。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施例の全体構成図。
【図２】本発明の実施例を適用するＸＭＬ例文の図。
【図３】本発明の実施例におけるＸＭＬ例文のリレーショナルデータベースへの格納結果の図。
【図４】本発明の実施例を適用してＸＭＬ例文を分類した結果のフォルダ階層図（その１）。
【図５】本発明の実施例を適用してＸＭＬ例文を分類した結果のフォルダ階層図（その２）。
【図６】図４・図５の部分抜粋より本発明の変数同義化処理を示す図。
【図７】本発明の実施例を適用してＸＭＬ例文を分類した結果のフォルダ階層図（その３）。
【図８】本発明の実施例を適用してＸＭＬ例文を分類した結果のフォルダ階層図（その４）。
【図９】本発明の実施例における値の条件による分類処理を示す図。
【符号の説明】
【００５６】
１０１．．．ＸＭＬファイルビューワ，１０２．．．階層型ファイルＧＵＩ，１０３．．．ストレージ，１０４．．．データベース，２０１〜２０９．．．ＸＭＬ例文，３００ａ／３００ｂ．．．ＸＭＬ例文のリレーショナルデータベースへの格納結果，４０１〜４２４／５０１〜５２７／７０１〜７１６／８０１〜８２５．．．ＸＭＬ例文の分類結果のフォルダ階層，６０１．．．変数同義化処理により纏められたＸＭＬ文書群，６０２．．．変数同義化処理により纏められた値フォルダ，６０５．．．変数同義化された要素名／属性名のリスト，７１７．．．値同義化処理により纏められたＸＭＬ文書，８２６．．．変数同義化処理により纏められた値フォルダ群，９０１〜９０８．．．新規起要素の追加による分類結果のフォルダ階層，９０９〜９１２．．．値の条件による分類結果のフォルダ階層。
【図１】
2005250820.tif 000003
【図２】
2005250820.tif 000004
【図３】
2005250820.tif 000005
【図４】
2005250820.tif 000006
【図５】
2005250820.tif 000007
【図６】
2005250820.tif 000008
【図７】
2005250820.tif 000009
【図８】
2005250820.tif 000010
【図９】
2005250820.tif 000011