(57)【特許請求の範囲】
【請求項１】
複数の要素を含む文書構造を有する複数の構造化文書を記憶するとともに、ルートノードに、構造化文書の種別を示す種別ノードをリンクし、当該種別ノードに、各構造化文書に含まれる各要素の記憶エリアを当該構造化文書の文書構造に従ってリンクした論理構造により、前記複数の構造化文書を管理する構造化文書データベースから、構造化文書を検索する構造化文書検索方法であって、
語彙と、要素名と、当該要素名の要素が当該語彙を含む構造とが指定された検索条件を含み、当該語彙、当該要素名及び当該構造の類似範囲への検索を指示する検索要求を入力する入力ステップと、
前記論理構造から、前記検索条件で指定された要素名をもつ要素及び前記検索条件で指定された要素名に類似する要素名をもつ要素を、第１の要素群として求めるステップと、
前記検索条件で指定された語彙に類似する語彙群を求めるステップと、
前記論理構造から、前記指定された語彙及び前記語彙群のうちの少なくとも１つの語彙を含む第２の要素群を求めるステップと、
前記第１の要素群のなかから、前記第２の要素群のうちのいずれかの要素を含む要素、及び前記第２の要素群のうちのいずれかの要素に一致する要素を、第３の要素群として求めるステップと、
前記第３の要素群のうちのいずれか１つの要素を含む検索結果の構造化文書を出力する出力ステップと、
を有する構造化文書検索方法。
【請求項２】
複数の要素を含む文書構造を有する複数の構造化文書を記憶するとともに、ルートノードに、構造化文書の種別を示す種別ノードをリンクし、当該種別ノードに、各構造化文書に含まれる各要素の記憶エリアを当該構造化文書の文書構造に従ってリンクした論理構造により、前記複数の構造化文書を管理する構造化文書データベースから、構造化文書を検索する構造化文書検索方法であって、
語彙と、要素名と、当該要素名の要素が当該語彙を含む構造とが指定された検索条件を含み、当該語彙及び当該要素名の類似範囲への検索を指示する検索要求を入力する入力ステップと、
前記論理構造から、前記検索条件で指定された要素名をもつ要素及び前記検索条件で指定された要素名に類似する要素名をもつ要素を、第１の要素群として求めるステップと、
前記検索条件で指定された語彙に類似する語彙群を求めるステップと、
前記論理構造から、前記指定された語彙及び前記語彙群のうちの少なくとも１つの語彙を含む第２の要素群を求めるステップと、
前記第１の要素群のなかから前記第２の要素群のうちのいずれかの要素に一致する第３の要素群を求めるステップと、
前記第３の要素群のうちのいずれか１つの要素を含む検索結果の構造化文書を出力する出力ステップと、
を有する構造化文書検索方法。
【請求項３】
複数の要素を含む文書構造を有する複数の構造化文書を記憶するとともに、ルートノードに、構造化文書の種別を示す種別ノードをリンクし、当該種別ノードに、各構造化文書に含まれる各要素の記憶エリアを当該構造化文書の文書構造に従ってリンクした論理構造により、前記複数の構造化文書を管理する構造化文書データベースから、構造化文書を検索する構造化文書検索方法であって、
語彙と、要素名と、当該要素名の要素が当該語彙を含む構造とが指定された検索条件を含み、当該構造の類似範囲への検索を指示する検索要求を入力する入力ステップと、
前記論理構造から、前記検索条件で指定された要素名をもつ第１の要素群を求めるステップと、
前記論理構造から、前記指定された語彙を含む第２の要素群を求めるステップと、
前記第１の要素群のなかから、前記第２の要素群のうちのいずれかの要素を含む要素、及び前記第２の要素群のうちのいずれかの要素に一致する要素を、第３の要素群として求めるステップと、
前記第３の要素群のうちのいずれか１つの要素を含む検索結果の構造化文書を出力する出力ステップと、
を有する構造化文書検索方法。
【請求項４】
複数の要素を含む文書構造を有する複数の構造化文書を記憶するとともに、ルートノードに、構造化文書の種別を示す種別ノードをリンクし、当該種別ノードに、各構造化文書に含まれる各要素の記憶エリアを当該構造化文書の文書構造に従ってリンクした論理構造により、前記複数の構造化文書を管理する構造化文書データベースから、構造化文書を検索する構造化文書検索方法であって、
語彙と、第１の要素名と、第２の要素名と、当該第２の要素名の要素が当該第１の要素名の要素を含み、当該第１の要素名の要素が当該語彙を含む構造とが指定された検索条件を含み、当該語彙、当該第１及び第２の要素名及び当該構造の類似範囲への検索を指示する検索要求を入力する入力ステップと、
前記論理構造から、前記第１の要素名をもつ要素及び当該第１の要素名に類似する要素名をもつ要素を、第１の要素群として求めるステップと、
前記論理構造から、前記第２の要素名をもつ要素及び当該第２の要素名に類似する要素名をもつ要素を、第２の要素群として求めるステップと、
前記検索条件で指定された語彙に類似する語彙群を求めるステップと、
前記論理構造から、前記指定された語彙及び前記語彙群のうちの少なくとも１つの語彙を含む第３の要素群を求めるステップと、
前記第１の要素群のなかから、前記第３の要素群のうちのいずれかの要素を含む要素、及び前記第３の要素群のうちのいずれかの要素に一致する要素を、第４の要素群として求めるステップと、
前記第２の要素群のなかから、前記第４の要素群のうちのいずれかの要素を含む要素、及び前記第４の要素群のうちのいずれかの要素に一致する要素を、第５の要素群として求めるステップと、
前記第５の要素群のうちのいずれか１つの要素を含む検索結果の構造化文書を出力する出力ステップと、
を有する構造化文書検索方法。
【請求項５】
複数の要素を含む文書構造を有する複数の構造化文書を記憶するとともに、ルートノードに、構造化文書の種別を示す種別ノードをリンクし、当該種別ノードに、各構造化文書に含まれる各要素の記憶エリアを当該構造化文書の文書構造に従ってリンクした論理構造により、前記複数の構造化文書を管理する構造化文書データベースから、構造化文書を検索する構造化文書検索方法であって、
語彙と、第１の要素名と、第２の要素名と、当該第２の要素名の要素が当該第１の要素名の要素を含み、当該第１の要素名の要素が当該語彙を含む構造とが指定された検索条件を含み、当該語彙、当該第１及び第２の要素名の類似範囲への検索を指示する検索要求を入力する入力ステップと、
前記論理構造から、前記第１の要素名をもつ要素及び当該第１の要素名に類似する要素名をもつ要素を、第１の要素群として求めるステップと、
前記論理構造から、前記第２の要素名をもつ要素及び当該第２の要素名に類似する要素名をもつ要素を、第２の要素群として求めるステップと、
前記検索条件で指定された語彙に類似する語彙群を求めるステップと、
前記論理構造から、前記指定された語彙及び前記語彙群のうちの少なくとも１つの語彙を含む第３の要素群を求めるステップと、
前記第１の要素群のなかから、前記第３の要素群のうちのいずれかの要素に一致する第４の要素群を求めるステップと、
前記第２の要素群のなかから、前記第４の要素群のうちのいずれかの要素に一致する第５の要素群を求めるステップと、
前記第５の要素群のうちのいずれか１つの要素を含む検索結果の構造化文書を出力する出力ステップと、
を有する構造化文書検索方法。
【請求項６】
複数の要素を含む文書構造を有する複数の構造化文書を記憶するとともに、ルートノードに、構造化文書の種別を示す種別ノードをリンクし、当該種別ノードに、各構造化文書に含まれる各要素の記憶エリアを当該構造化文書の文書構造に従ってリンクした論理構造により、前記複数の構造化文書を管理する構造化文書データベースから、構造化文書を検索する構造化文書検索方法であって、
語彙と、第１の要素名と、第２の要素名と、当該第２の要素名の要素が当該第１の要素名の要素を含み、当該第１の要素名の要素が当該語彙を含む構造とが指定された検索条件を含み、当該構造の類似範囲への検索を指示する検索要求を入力する入力ステップと、
前記論理構造から、前記第１の要素名をもつ第１の要素群を求めるステップと、
前記論理構造から、前記第２の要素名をもつ第２の要素群を求めるステップと、
前記論理構造から、前記指定された語彙を含む第３の要素群を求めるステップと、
前記第１の要素群のなかから、前記第３の要素群のうちのいずれかの要素を含む要素、及び前記第３の要素群のうちのいずれかの要素に一致する要素を、第４の要素群として求めるステップと、
前記第２の要素群のなかから、前記第４の要素群のうちのいずれかの要素を含む要素、及び前記第４の要素群のうちのいずれかの要素に一致する要素を、第５の要素群として求めるステップと、
前記第５の要素群のうちのいずれか１つの要素を含む検索結果の構造化文書を出力する出力ステップと、
を有する構造化文書検索方法。
【請求項７】
前記出力ステップは、前記検索結果の複数の構造化文書を、前記検索条件で指定された語彙、要素及びそれらの前記文書構造上の発生位置と、前記検索結果の各構造化文書に含まれる語彙、要素及びそれらの前記文書構造上の発生位置との間の類似度に基づき並べて出力することを特徴とする請求項１乃至６のいずれか１つに記載の構造化文書検索方法。
【請求項８】
前記検索要求は、検索結果の構造化文書の出力形式を示す出力条件を含み、
前記出力ステップは、前記検索結果の構造化文書を前記出力形式で出力することを特徴とする請求項１乃至６のうちのいずれか１つに記載の構造化文書検索方法。
【請求項９】
前記類似度は、前記検索条件で指定された語彙及び要素と、前記検索結果の構造化文書に含まれる語彙及び要素との間の第１の類似度と、前記検索条件で指定された語彙及び要素の前記文書構造上の発生位置と、前記検索結果の構造化文書に含まれる語彙及び要素の前記文書構造上の発生位置との間の第２の類似度との積であることを特徴とする請求項７記載の構造化文書検索方法。
【請求項１０】
各構造化文書に含まれる各要素の要素名及び各要素に含まれる語彙を含む複数の語彙と、当該複数の語彙間の類似関係とを示す意味ネットワークを用いて、前記検索条件で指定された語彙及び要素名に類似する語彙及び要素名を求めることを特徴とする請求項１、２、４及び５のいずれか１つに記載の構造化文書検索方法。
【請求項１１】
複数の要素を含む文書構造を有する複数の構造化文書を記憶するとともに、ルートノードに、構造化文書の種別を示す種別ノードをリンクし、当該種別ノードに、各構造化文書に含まれる各要素の記憶エリアを当該構造化文書の文書構造に従ってリンクした論理構造により、前記複数の構造化文書を管理する構造化文書データベースから、構造化文書を検索する構造化文書検索装置であって、
語彙と、要素名と、当該要素名の要素が当該語彙を含む構造とが指定された検索条件を含み、当該語彙、当該要素名及び当該構造の類似範囲への検索を指示する検索要求を入力する入力手段と、
前記論理構造から、前記検索条件で指定された要素名をもつ要素及び前記検索条件で指定された要素名に類似する要素名をもつ要素を、第１の要素群として求める手段と、
前記検索条件で指定された語彙に類似する語彙群を求める手段と、
前記論理構造から、前記指定された語彙及び前記語彙群のうちの少なくとも１つの語彙を含む第２の要素群を求める手段と、
前記第１の要素群のなかから、前記第２の要素群のうちのいずれかの要素を含む要素、及び前記第２の要素群のうちのいずれかの要素に一致する要素を、第３の要素群として求める手段と、
前記第３の要素群のうちのいずれか１つの要素を含む検索結果の構造化文書を出力する出力手段と、
を具備したことを特徴とする構造化文書検索装置。
【請求項１２】
複数の要素を含む文書構造を有する複数の構造化文書を記憶するとともに、ルートノードに、構造化文書の種別を示す種別ノードをリンクし、当該種別ノードに、各構造化文書に含まれる各要素の記憶エリアを当該構造化文書の文書構造に従ってリンクした論理構造により、前記複数の構造化文書を管理する構造化文書データベースから、構造化文書を検索する構造化文書検索装置であって、
語彙と、要素名と、当該要素名の要素が当該語彙を含む構造とが指定された検索条件を含み、当該語彙及び当該要素名の類似範囲への検索を指示する検索要求を入力する入力手段と、
前記論理構造から、前記検索条件で指定された要素名をもつ要素及び前記検索条件で指定された要素名に類似する要素名をもつ要素を、第１の要素群として求める手段と、
前記検索条件で指定された語彙に類似する語彙群を求める手段と、
前記論理構造から、前記指定された語彙及び前記語彙群のうちの少なくとも１つの語彙を含む第２の要素群を求める手段と、
前記第１の要素群のなかから前記第２の要素群のうちのいずれかの要素に一致する第３の要素群を求める手段と、
前記第３の要素群のうちのいずれか１つの要素を含む検索結果の構造化文書を出力する出力手段と、
を具備したことを特徴とする構造化文書検索装置。
【請求項１３】
複数の要素を含む文書構造を有する複数の構造化文書を記憶するとともに、ルートノードに、構造化文書の種別を示す種別ノードをリンクし、当該種別ノードに、各構造化文書に含まれる各要素の記憶エリアを当該構造化文書の文書構造に従ってリンクした論理構造により、前記複数の構造化文書を管理する構造化文書データベースから、構造化文書を検索する構造化文書検索装置であって、
語彙と、要素名と、当該要素名の要素が当該語彙を含む構造とが指定された検索条件を含み、当該構造の類似範囲への検索を指示する検索要求を入力する入力手段と、
前記論理構造から、前記検索条件で指定された要素名をもつ第１の要素群を求める手段と、
前記論理構造から、前記指定された語彙を含む第２の要素群を求める手段と、
前記第１の要素群のなかから、前記第２の要素群のうちのいずれかの要素を含む要素、及び前記第２の要素群のうちのいずれかの要素に一致する要素を、第３の要素群として求める手段と、
前記第３の要素群のうちのいずれか１つの要素を含む検索結果の構造化文書を出力する出力手段と、
を具備したことを特徴とする構造化文書検索装置。
【請求項１４】
複数の要素を含む文書構造を有する複数の構造化文書を記憶するとともに、ルートノードに、構造化文書の種別を示す種別ノードをリンクし、当該種別ノードに、各構造化文書に含まれる各要素の記憶エリアを当該構造化文書の文書構造に従ってリンクした論理構造により、前記複数の構造化文書を管理する構造化文書データベースから、構造化文書を検索する構造化文書検索装置であって、
語彙と、第１の要素名と、第２の要素名と、当該第２の要素名の要素が当該第１の要素名の要素を含み、当該第１の要素名の要素が当該語彙を含む構造とが指定された検索条件を含み、当該語彙、当該第１及び第２の要素名及び当該構造の類似範囲への検索を指示する検索要求を入力する入力手段と、
前記論理構造から、前記第１の要素名をもつ要素及び当該第１の要素名に類似する要素名をもつ要素を、第１の要素群として求める手段と、
前記論理構造から、前記第２の要素名をもつ要素及び当該第２の要素名に類似する要素名をもつ要素を、第２の要素群として求める手段と、
前記検索条件で指定された語彙に類似する語彙群を求める手段と、
前記論理構造から、前記指定された語彙及び前記語彙群のうちの少なくとも１つの語彙を含む第３の要素群を求める手段と、
前記第１の要素群のなかから、前記第３の要素群のうちのいずれかの要素を含む要素、及び前記第３の要素群のうちのいずれかの要素に一致する要素を、第４の要素群として求める手段と、
前記第２の要素群のなかから、前記第４の要素群のうちのいずれかの要素を含む要素、及び前記第４の要素群のうちのいずれかの要素に一致する要素を、第５の要素群として求める手段と、
前記第５の要素群のうちのいずれか１つの要素を含む検索結果の構造化文書を出力する出力手段と、
を具備したことを特徴とする構造化文書検索装置。
【請求項１５】
複数の要素を含む文書構造を有する複数の構造化文書を記憶するとともに、ルートノードに、構造化文書の種別を示す種別ノードをリンクし、当該種別ノードに、各構造化文書に含まれる各要素の記憶エリアを当該構造化文書の文書構造に従ってリンクした論理構造により、前記複数の構造化文書を管理する構造化文書データベースから、構造化文書を検索する構造化文書検索装置であって、
語彙と、第１の要素名と、第２の要素名と、当該第２の要素名の要素が当該第１の要素名の要素を含み、当該第１の要素名の要素が当該語彙を含む構造とが指定された検索条件を含み、当該語彙と、当該第１及び第２の要素名との類似範囲への検索を指示する検索要求を入力する入力手段と、
前記論理構造から、前記第１の要素名をもつ要素及び当該第１の要素名に類似する要素名をもつ要素を、第１の要素群として求める手段と、
前記論理構造から、前記第２の要素名をもつ要素及び当該第２の要素名に類似する要素名をもつ要素を、第２の要素群として求める手段と、
前記検索条件で指定された語彙に類似する語彙群を求める手段と、
前記論理構造から、前記指定された語彙及び前記語彙群のうちの少なくとも１つの語彙を含む第３の要素群を求める手段と、
前記第１の要素群のなかから、前記第３の要素群のうちのいずれかの要素に一致する第４の要素群を求める手段と、
前記第２の要素群のなかから、前記第４の要素群のうちのいずれかの要素に一致する第５の要素群を求める手段と、
前記第５の要素群のうちのいずれか１つの要素を含む検索結果の構造化文書を出力する出力手段と、
を具備したことを特徴とする構造化文書検索装置。
【請求項１６】
複数の要素を含む文書構造を有する複数の構造化文書を記憶するとともに、ルートノードに、構造化文書の種別を示す種別ノードをリンクし、当該種別ノードに、各構造化文書に含まれる各要素の記憶エリアを当該構造化文書の文書構造に従ってリンクした論理構造により、前記複数の構造化文書を管理する構造化文書データベースから、構造化文書を検索する構造化文書検索装置であって、
語彙と、第１の要素名と、第２の要素名と、当該第２の要素名の要素が当該第１の要素名の要素を含み、当該第１の要素名の要素が当該語彙を含む構造とが指定された検索条件を含み、当該構造の類似範囲への検索を指示する検索要求を入力する入力手段と、
前記論理構造から、前記第１の要素名をもつ第１の要素群を求める手段と、
前記論理構造から、前記第２の要素名をもつ第２の要素群を求める手段と、
前記論理構造から、前記指定された語彙を含む第３の要素群を求める手段と、
前記第１の要素群のなかから、前記第３の要素群のうちのいずれかの要素を含む要素、及び前記第３の要素群のうちのいずれかの要素に一致する要素を、第４の要素群として求める手段と、
前記第２の要素群のなかから、前記第４の要素群のうちのいずれかの要素を含む要素、及び前記第４の要素群のうちのいずれかの要素に一致する要素を、第５の要素群として求める手段と、
前記第５の要素群のうちのいずれか１つの要素を含む検索結果の構造化文書を出力する出力手段と、
を具備したことを特徴とする構造化文書検索装置。
【請求項１７】
前記出力手段は、前記検索結果の複数の構造化文書を、前記検索条件で指定された語彙、要素及びそれらの前記文書構造上の発生位置と、前記検索結果の各構造化文書に含まれる語彙、要素及びそれらの前記文書構造上の発生位置との間の類似度に基づき並べて出力することを特徴とする請求項１１乃至１６のいずれか１つに記載の構造化文書検索装置。
【請求項１８】
前記検索要求は、検索結果の構造化文書の出力形式を示す出力条件を含み、
前記出力手段は、前記検索結果の構造化文書を前記出力形式で出力することを特徴とする請求項１１乃至１６のうちのいずれか１つに記載の構造化文書検索装置。
【請求項１９】
前記類似度は、前記検索条件で指定された語彙及び要素と、前記検索結果の構造化文書に含まれる語彙及び要素との間の第１の類似度と、前記検索条件で指定された語彙及び要素の前記文書構造上の発生位置と、前記検索結果の構造化文書に含まれる語彙及び要素の前記文書構造上の発生位置との間の第２の類似度との積であることを特徴とする請求項１７記載の構造化文書検索方法。
【請求項２０】
各構造化文書に含まれる各要素の要素名及び各要素に含まれる語彙を含む複数の語彙と、当該複数の語彙間の類似関係とを示す意味ネットワークを用いて、前記検索条件で指定された語彙及び要素名に類似する語彙及び要素名を求めることを特徴とする請求項１１、１２、１４及び１５のいずれか１つに記載の構造化文書検索装置。
【請求項２１】
複数の要素を含む文書構造を有する複数の構造化文書を記憶するとともに、ルートノードに、構造化文書の種別を示す種別ノードをリンクし、当該種別ノードに、各構造化文書に含まれる各要素の記憶エリアを当該構造化文書の文書構造に従ってリンクした論理構造により、前記複数の構造化文書を管理する構造化文書データベースを備えたコンピュータに、
語彙と、要素名と、当該要素名の要素が当該語彙を含む構造とが指定された検索条件を含み、当該語彙、当該要素名及び当該構造の類似範囲への検索を指示する検索要求を入力する入力ステップと、
前記論理構造から、前記検索条件で指定された要素名をもつ要素及び前記検索条件で指定された要素名に類似する要素名をもつ要素を、第１の要素群として求めるステップと、
前記検索条件で指定された語彙に類似する語彙群を求めるステップと、
前記論理構造から、前記指定された語彙及び前記語彙群のうちの少なくとも１つの語彙を含む第２の要素群を求めるステップと、
前記第１の要素群のなかから、前記第２の要素群のうちのいずれかの要素を含む要素、及び前記第２の要素群のうちのいずれかの要素に一致する要素を、第３の要素群として求めるステップと、
前記第３の要素群のうちのいずれか１つの要素を含む検索結果の構造化文書を出力する出力ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、異なる文書構造の複数の構造化文書を、階層化された論理構造を持つ構造化文書データベースで管理する構造化文書管理システムに関する。
【０００２】
【従来の技術】
ＸＭＬ（Ｅｘｔｅｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）データベースなど構造化文書データベースでは、検索言語によって記述されたユーザ検索要求により所望の構造化文書を検索する手段が提供されてる。検索言語には、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）に似た構文を持ち、検索位置、検索条件、情報抽出部分などを記述したものもある。この手段により多種多様な構造化文書を検索することができる。しかし、このような検索言語をベースとしたクエリデータを作成するには、ユーザ側にあらかじめ構造化文書データベース中に存在する構造化文書の文書構造（ＤＴＤ）や語彙発生状況などに関する情報が必要であった。
【０００３】
また、文書であるから語彙的な揺らぎや曖昧性が発生する。例えば、「タイトル」を同じ意味合いで、「表題」「件名」と表現したり、「要旨」を同じ意味合いで「まとめ」や英語で「ＡＢＳＴＲＡＣＴ」と表現したりするなど、同義語、類字語が数多く存在する場合が挙げられる。
【０００４】
これを従来の検索言語では厳密すぎて、これらの揺らぎや曖昧性を吸収した検索が行えないという問題点があった。
【０００５】
一方、サーチエンジンなどの文書検索エンジンの分野では、一般にキーワード列を使ってユーザ検索要求を表現する。キーワード列を文書検索エンジンに投入すると、そのキーワードを含む文書集合を検索して、その一覧を表示する。高度な文書検索エンジンでは、同義語辞書、類似語辞書などを用いて関連するキーワード列を追加抽出して、それらのキーワード列も含めてＯＲ展開し、ユーザ検索要求を拡大解釈して検索する機能を持っているものもある。これを使うと、文書の語彙的な揺らぎや曖昧性に対処することも可能である。
【０００６】
だが、同じ文書であっても文書構造を持った構造化文書に対して同様の手段では問題がある。つまり、キーワード列を使って検索する文書検索エンジンでは、構造化文書の中に発生する重要な情報である文書構造を完全に無視して、単なる文書として検索してしまうからである。
【０００７】
そのため、文書の語彙的な揺らぎや曖昧性を考慮した構造化文書の検索手法が数多く提案されている。
【０００８】
以下に挙げる手法は、類似文書同士の類似性比較であり、実現方法は対応タグ内の語彙比較（語彙曖昧性）で実現されていた。
【０００９】
特開２００１−１４３２６号公報の「構造指定による類似文書の検索装置及び検索方法」（日立）には、検索条件として指定された文書（種文書）に類似する文書を検索する装置について開示されている。この装置は、計算機を利用して検索条件として指定された文書あるいは文章（種文書）に類似する構造化文書を検索するものであって、類似度計算の検索条件として種文書と構造化文書に属する１つの構造の指定を受けて、類似度計算の後、類似度のより高い対象文書を優先して表示するようになっている。
【００１０】
また、特開平７−４４５６７号公報の「文書検索装置」（富士通）には、文書を蓄積した文書データベースから、利用者により入力された文書と類似の内容を持つ文書を検索するための文書検索装置であって、特に、定型的な構造を持つ入力文書と類似の内容を持つ文書を検索するための文書検索装置について開示されている。入力文書を解析し、文書構成要素に従った重み付けをした検索キーワード集合を生成する検索キーワード集合生成手段と、検索キーワード集合に基づき文書データベースを検索して、その結果得られた文書ごとに、マッチした各キーワードの重みを計算し、検索結果文書に対する累計重みを得る文書検索手段とを有し、検索結果には、入力文書との類似度を表す累計重みが付加されているので、利用者は、これを参考とすることにより、検索結果の取捨選択を効率的に行うことができる。
【００１１】
文書構造を持った構造化文書に対して、文書の語彙的な揺らぎや曖昧性に対処するアイデアが提案されているが、これらはあくまでもユーザ検索要求として「種文書」を入力として与えなければならない。出力として得られるのは、類似した構造化文書の集合である。このような入出力の形態は、サーチエンジンなどの文書検索エンジンに近い形態である。
【００１２】
しかし、このような手法を構造化文書データベースに適用するのは困難である。つまり、類似した構造化文書中の一部の要素だけを情報抽出したり加工するといった要求を記述する検索言語とのミスマッチが大きいからである。
【００１３】
種文書をベースとした類似比較では、「「ＸＭＬ」や「ＳＧＭＬ」を含む」といった語彙に関する論理条件を指定することはできない。あくまでも「ＸＭＬ」とか「ＳＧＭＬ」といった具体的なデータでの類似比較しか行えない。
【００１４】
上記特開２００１−１４３２６号公報記載の発明は、あらかじめ特徴文字列抽出プログラムにより特徴文字列を抽出している。しかし、語彙と語彙との類似性、語彙の曖昧性には強弱があるのが一般である。たとえば、「ＸＭＬ」と「ＳＧＭＬ」は近く、「ＸＭＬ」と「テキスト」は相対的に遠い。上記特開２００１−１４３２６号公報記載の発明は、このような語彙と語彙との類似性、語彙の曖昧性には強弱を数値的に表した類似度で特徴文字列の類似度を算出するのではなく、同一構造内での抽出された特徴文字列の発生頻度の総和で算出されている。また、同一構造内での抽出された特徴文字列の発生頻度の総和で類似度を算出しているため、構造同士の類似性は考慮されていない。
【００１５】
また、上記特開平７−４４５６７号公報記載の発明では、語彙と語彙との類似性、語彙の曖昧性は、「展開キーワードの重み」という付加データにより考慮されている。しかし、構造同士の類似性として、検索属性定義情報データにて、例えば、「質問文」であれば、「「質問文」に「２．０」の類似度、「回答文」に「１．０」の類似度」といった情報にて、多少の構造同士の類似性も考慮されている。
【００１６】
しかし、同義語辞書や類似語辞書などの辞書データ以外に、検索属性定義情報データを作り込むコストは膨大である。これでは汎用的な類似検索機能は実現できない。
【００１７】
【発明が解決しようとする課題】
以上説明したように、従来からある、文書の語彙的な揺らぎや曖昧性を考慮した構造化文書の検索手法には、以下のような問題点があった。
【００１８】
（１）語彙類似性だけでなく構造類似性も加味した類似検索ができない。
【００１９】
（２）データベースのＳＱＬのように類似した構造化文書中の一部の要素だけを抽出するといった検索要求を記述することができない。
【００２０】
（３）データベースや同義語辞書や類似語辞書以外に、類似計算のためにデータの作り込みが必要となる。
【００２１】
そこで、本発明は上記問題点に鑑み、（構成要素、語彙、文書構造（論理構造）の類似計算のために必要な構成要素名や語彙の類似関係を表したデータベースを追加するだけで）構造化文書データベースに格納されている構造化文書の構成要素と語彙とを指定した検索条件に基づき、この指定した構成要素と語彙とそれらの論理構造上の発生位置とに類似する構造化文書の検索が容易に行える構造化文書検索方法および、それを用いた構造化文書検索装置を提供することを目的とする。
【００２２】
【課題を解決するための手段】
本発明は、異なる文書構造の複数の構造化文書を格納した階層化された論理構造を持つ構造化文書データベースに対して、前記論理構造を構成する前記構造化文書の構成要素と語彙を検索条件に含む検索要求に基づき類似検索を行うものであって、前記検索条件を該検索条件で指定された構成要素と語彙とそれらの文書構造上の位置関係の類似範囲まで緩和して、前記構造化文書を検索し、この検索された構造化文書を、該構造化文書に含まれる構成要素と語彙とこれらの文書構造上の位置関係と、前記検索条件で指定された構成要素と語彙とこれらの文書構造上の位置関係との類似度に基づき並び替えて出力することにより、構造化文書データベースに格納されている構造化文書の構成要素と語彙を指定した検索条件に基づき、この指定した構成要素と語彙とそれらの論理構造上の発生位置とに類似する構造化文書の検索が容易に行える。
【００２３】
例えば、前記検索条件で指定された語彙あるいは該語彙に類似する語彙を包含する構成要素が、前記検索条件で指定された構成要素あるいは該構成要素に類似する構成要素と一致する構造化文書を検索する。
【００２４】
本発明は、異なる文書構造の複数の構造化文書を格納した階層化された論理構造を持つ構造化文書データベースに対して、前記論理構造を構成する前記構造化文書の構成要素と語彙を検索条件に含む検索要求に基づき検索を行うものであって、前記構造化文書データベースに格納されている構造化文書のうち、その構成要素に、前記検索条件で指定された構成要素あるいはそれに類似する構成要素と、前記検索条件で指定された語彙あるいはそれに類似する語彙を包含し、かつ、前記語彙あるいはそれに類似する語彙と、前記構成要素あるいはそれに類似する構成要素との前記論理構造上の発生位置が、前記検索条件で指定された発生位置あるいはそれに類似する発生位置である構造化文書を検索する。
【００２５】
本発明によれば、構造化文書データベースに格納されている構造化文書の構成要素と語彙を指定した検索条件に基づき、この指定した構成要素と語彙とそれらの論理構造上の発生位置とに類似する構造化文書の検索が容易に行える。
【００２６】
好ましくは、前記検索された構造化文書を表示するために、該構造化文書に包含される語彙と構成要素とそれらの前記論理構造上の発生位置との、前記検索条件で指定された語彙と構成要素とそれらの前記論理構造上の発生位置とに対する類似度に基づき並び替える。
【００２７】
好ましくは、前記検索要求に含まれる前記構造化文書から検索結果として抽出すべき構成要素の出力形式に基づき、前記検索された構造化文書を出力する。
【００２８】
好ましくは、前記類似度は、前記検索された構造化文書に包含される語彙と構成要素の前記検索条件で指定された語彙と構成要素に対する第１の類似度と、前記検索された構造化文書に包含される語彙と構成要素の前記論理構造上の発生位置と、前記検索条件で指定された語彙と構成要素の前記論理構造上の発生位置に対する第２の類似度との積である。
【００２９】
【発明の実施の形態】
まず、本発明の実施形態について説明する前に、構造化文書管理システムについて説明する。
【００３０】
（構造化文書管理システムの説明）
構造化文書として、ＸＭＬやＳＧＭＬなどで記述した文書が挙げられる。ＳＧＭＬ（Ｓｔａｎｄａｒｄ  Ｇｅｎｅｒａｌｉｚｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）とは、ＩＳＯ（国際標準化機構）で定められた規格である。ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）とは、Ｗ３Ｃ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ）にて定められた規格である。それぞれ文書を構造化することを可能とする構造化文書規約である。
【００３１】
以下、構造化文書として、ＸＭＬにて記述された文書を例に説明を進める。構造化文書の文書構造を定義したデータ（文書構造定義データ）をスキーマと呼ぶ。ＸＭＬではそのスキーマを定義するためにＸＭＬ−ＳｃｈｅｍａやＸＤＲ（ＸＭＬ  Ｄａｔａ  Ｒｅｄｕｃｅｄ）などのスキーマ言語が提案されている。ここでは、例えば、ＸＤＲでのスキーマを記述する場合を例にとり説明する。
【００３２】
スキーマも、構造化文書管理システムの管理対象の構造化文書であり、従って、スキーマ文書と呼ぶことがある。スキーマ文書と区別するために、特許明細書やメール、週報、広告などの種々雑多な内容を有す文書をコンテンツ文書と呼ぶこともある。
【００３３】
構造化文書管理システムでは、上記スキーマ文書、上記コンテンツ文書、さらに、後述するようなユーザからの検索要求内容を記述したクエリ、すなわち、クエリ文書も管理対象とし、これらを総称して「文書」と呼ぶ。
【００３４】
以下、特にことわりがない場合、「文書」と呼ぶときは、コンテンツ文書、スキーマ文書、クエリ文書を全て指すものとする。
【００３５】
まず、実施形態の説明を前に、ＸＭＬについて簡単に説明する。
【００３６】
図３は、ＸＭＬで記述された構造化文書の一例として、「特許」情報の例を示したものである。ＸＭＬやＳＧＭＬは、文書の構造の表現にタグが用いられる。タグには、開始タグと終了タグがあり、文書構造情報の構成要素を開始タグと終了タグで囲むことにより、文書中の文字列（テキスト）区切りと、そのテキストが構造上どの構成要素に属するのかを明確に記述することができる。
【００３７】
ここで開始タグとは要素名称を記号「＜」、「＞」で閉じたものであり、終了タグとは要素名称を記号「＜／」と「＞」で閉じたものである。タグに続く構成要素の内容が、テキスト（文字列）または子供の構成要素の繰り返しである。また開始タグには「＜要素名称  属性＝“属性値”＞」などのように属性情報を設定することができる。「＜特許ＤＢ＞＜／特許ＤＢ＞」のようにテキストを含まない構成要素は、簡易記法として「＜特許ＤＢ／＞」のように表わすこともできる。
【００３８】
図３に示した文書は、「特許」タグから始まる要素をルート(根)とし、その子要素として「タイトル」、「出願日」、「出願者」、「要約」タグから始まる要素集合が存在する。また、例えば、「タイトル」タグから始まる要素には「ＸＭＬデータベース」といった、１つのテキスト（文字列）が存在する。
【００３９】
ＸＭＬなどの構造化文書は、任意の構成要素を繰り返し含んでいたり、さらには文書構造があらかじめ決まっていない（ＲＤＢ（リレーショナルデータベース）やＯＯＤＢ（オブジェクト指向データベース）のスキーマでは定義できない）のが普通である。
【００４０】
図３に示したような構造化文書を論理的に表現するために、図４に示すようなツリー表現が用いられる。ツリーは、ノード（番号が付され、円形で示されたもの）とアーク（ノードを表す円形間をつなぐデータ付き線）と四角形で囲まれたテキストから構成されている。
【００４１】
ノードは文書オブジェクトに対応し、ノードからタグ名や属性名に相当するラベルが付与された複数のアークが出てきている。そのアークの先は、ノードまたは要素値としての文字列（テキスト）である。ノードの中に記載されている英数字（＃０、＃４９）などはオブジェクトＩＤである。
【００４２】
図４に示したツリー構造を図３に示した構造化文書の文書オブジェクトツリーと呼ぶ。
【００４３】
図１は、本実施形態に係る構造化文書管理システムの構成例を示したものである。図１において、構造化文書管理システムは、大きく分けて、要求制御部１、アクセス要求処理部２、検索要求処理部３、データアクセス部４、文書記憶部５、インデックス記憶部６から構成されている。文書記憶部５、インデックス記憶部６は例えば、外部記憶装置を用いて構成される。
【００４４】
図１のシステム構成は、ソフトウエアを用いて実現可能である。
【００４５】
要求制御部１は、要求受付部１１と結果処理部１２から構成されている。要求受付部１１は、ユーザからの文書格納や文書取得、文書検索などの要求を受け付けて、アクセス要求処理部２を呼び出す。結果処理部１２は、アクセス要求処理部２が処理した結果を要求元のユーザに返す処理を行う。
【００４６】
アクセス要求処理部２は、ユーザからの文書格納や文書取得などの要求に対応した複数の処理部から構成されている。つまり、文書格納部２１、文書取得部２２、文書削除部２３から構成されている。
【００４７】
文書格納部２１は、文書記憶部５中の論理的な指定エリアに文書を格納する処理を行う。
【００４８】
文書取得部２２は、文書記憶部５中の論理的なエリアが指定されたときに、その指定エリアに存在する文書を取得する処理を行う。
【００４９】
文書削除部２３は、文書記憶部５中の論理的な指定エリアに存在する文書を削除する処理を行う。
【００５０】
文書記憶部５は、構造化文書データベースであり、例えば、図８に示すように、文書をＵＮＩＸのディレクトリ構造のように階層的にツリー構造状に格納している。
【００５１】
図８に示すように、構造化文書データベースは、図４に示したような１つの構造化文書のツリー構造と同様に表現できる。すなわち、任意のノード以下の部分階層木（部分ツリー）は、構造化文書データベースから切り出された構造化文書であり、ここでは、これを文書オブジェクトツリーと呼ぶ。各ノードにはオブジェクトＩＤが割り当てられている。オブジェクトＩＤは、構造化文書データベース内ではユニークな数値を持つものとする。
【００５２】
階層木のルートとなるノードには、それがルートノードであることを特定するためのオブジェクトＩＤ「＃０」が割り当てられるものとする。
【００５３】
ルートノード、すなわち、「＃０」のノードからは「ｒｏｏｔ」タグを先頭に持つ「＃１」のノードへリンクが張られている。「＃１」のノードからは、「特許ＤＢ」タグを先頭にもつ「＃２」ノードへのリンクが張られている。「＃２」ノードからは、「特許」タグを先頭に持つ「＃４２」ノード、「＃５２」ノード、「＃６２」ノードへのリンクがそれぞれ張られている。
【００５４】
図３に示した「特許」情報は、「＃４２」ノード以下の部分ツリーに対応している。このノードからは「タイトル」タグ、「出願者」タグ、「要約」タグなどを先頭にもつノードへリンクが張られ、末端のノードからは、「ＸＭＬデータベース」、「Ｔ社」。「ＸＭＬを統一的に管理するデータベースを提供する…」などの文字列（要素値）へのリンクが張られている。
【００５５】
「＃５２」ノード以下の部分ツリー、「＃６２」ノード以下の部分ノードも１つの「特許」情報に対応する部分である。
【００５６】
ところで、例えば、「＃４３」ノードにリンクされた「ＸＭＬデータベース」という要素値は、「＃４３」ノードと「＃ｖａｌｕｅ」という特殊なタグ名で接続されている。このタグ名は、「＃」で始まるためＸＭＬ規格においては標準的なタグ名として利用することはできない。
【００５７】
このような構造化文書データベースの特定ノードを指定するために構造化文書パスを用いる。構造化文書パスは「ｕｉｘ：／／ｒｏｏｔ」から始まる文字列である。ｕｉｘ（Ｕｎｉｖｅｒｓａｌ  Ｉｄｅｎｔｉｆｉｅｒ  ｆｏｒ  ＸＭＬ）は構造化文書パスであることを示す前置文字列である。
【００５８】
例えば、「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ」は、「＃１」ノードから「特許ＤＢ」が付与されたアークが指し示すノード、つまり「＃２」ノードに対応する。このように「ｒｏｏｔ」から「／」で区切られた部分文字列をタグ名とみなすことで「＃０」ノードからタグ名の並びに沿って対応するアークを下っていき、その最後のアークが指すノードが、パスの場所を指し示す。
【００５９】
例えば、「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／特許」は、「＃４２」ノード、「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／出願日／年」は、「＃４５」ノードを指し示す。
【００６０】
「＃２」ノード以下に、すなわち、「特許ＤＢ」に、複数の「特許」情報を格納する場合には、個々の「特許」情報を識別するために、構造化文書パスにインデックス表現が可能である。
【００６１】
「特許ＤＢ」の最初の「特許」情報であれば、「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／特許［０］」となるが、これは「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／特許」と同じとみなす。
【００６２】
「特許ＤＢ」の２番目の「特許」情報であれば、「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／特許［１］ＤＢ」の５番目の「特許」情報であれば、「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／特許［４］」となる。
【００６３】
インデックス記憶部６には検索時に用いる、要素名称生起インデックスとデータ生起インデックスが記憶されている。
【００６４】
要素名生起インデックスとは構造化文書データベースに格納されている要素名称のリストと、各要素名称が先頭にある構造化文書（文書オブジェクトツリー）の位置とを関連付けてインデックスファイル化したものである。例えば、図８の構造化文書データベースのように、（「特許」情報に対応する）「特許」という要素名称が「＃４２」ノード以下の構造化文書、「＃５２」ノード以下の構造化文書、「＃６２」ノード以下の構造化文書に存在する場合、これらをインデックス化すると、図９に示すように、それらの親ノード、「＃２」ノードが、要素名称生起インデックスファイルに「特許」キーからのチェーンで格納される。
【００６５】
このように、親ノードでインデックス化すると、インデックスファイルを圧縮することができる。すなわち、親ノードでインデックス化すれば、子ノードが増大しようとも、親ノードで代用しているので、チェーンサイズは増大しない。これに対し、実ノードをインデックス化すれば「特許」情報の格納数の増大とともにチェーンサイズはそれに比例して増加してしまう。
【００６６】
データ生起インデックスとは、構造化文書データベースに格納されている文字列データのリストと各文字列データがある構造化文書（文書オブジェクトツリー）の位置とを関連付けてインデックスファイル化したものである。例えば、図８の構造化文書データベースのように、「ＸＭＬ」という文字列データ（および、「ＸＭＬ」という文字列を含む文字列）が「＃４３」ノード以下の構造化文書、「＃４９」ノード以下の構造化文書に存在する場合、これらをインデックス化すると、図１０に示すように、「＃４３」ノード、「＃４９」ノードが、データ生起インデックスファイルに「ＸＭＬ」キーからのチェーンで格納される。
【００６７】
なお、逆階層インデックスなど、その他のインデックスファイルを用いてもよい。逆階層インデックスとは、あるノードとその親ノードとの対応を格納したものである（あるノードからその親ノードを求めることができる）。
【００６８】
文書記憶部５中の論理的な指定エリアとは、ユーザにより構造化文書パスを用いて指定された文書の格納場所を指す。構造化文書パスは、ユーザにとって認識可能な表現である。
【００６９】
図１の説明に戻る。
【００７０】
データアクセス部４は、文書記憶部５をアクセスする基本インターフェイスの集合である。データアクセス部４は、文書オブジェクトツリー格納部４７、文書オブジェクトツリー削除部４８、文書オブジェクトツリー取得部４９、文書文字列取得部４４、パスから文書オブジェクトツリー取得部４５、文書パーサ部４６、合成文書作成部４７、インデックス更新部４８から構成される。
【００７１】
文書オブジェクトツリー格納部４１は、文書記憶部５中の物理的な指定エリアに文書オブジェクトツリーを格納する処理を行う。
【００７２】
文書オブジェクトツリー削除部４２は、文書記憶部５中の物理的な指定エリアに存在する文書オブジェクトツリーを削除する処理を行う。
【００７３】
文書オブジェクトツリー取得部４３は、文書記憶部５中の物理的な指定エリアに存在する文書オブジェクトツリーを取得する処理を行う。
【００７４】
文書文字列取得部４４は、文書オブジェクトツリーを構造化文書（ＸＭＬ文書）に変換する処理を行う。
【００７５】
パスから文書オブジェクトツリー取得部４５は、構造化文書パスを解析して文書記憶部５中の物理的なエリアを特定して、そのエリアに存在する文書オブジェクトツリーを取り出す処理を行う。
【００７６】
文書パーサ部４６は、ユーザにより入力された構造化文書を読み込んで構文解析して整合性の検査を行い、さらに文書構造定義データであるスキーマが存在すれば構造的に妥当かどうかの検証を行う。出力結果は文書オブジェクトツリーとなる。文書パーサは、通常、ｌｅｘ（ｌｅｘｉｃａｌ  ａｎａｌｙｚｅｒ  ｇｅｎｅｒａｔｏｒ）といったレキシカルアナライザ（字句解析を行い，トークンに分解する）とｙａｃｃ（ｙｅｔ  ａｎｏｔｈｅｒ  ｃｏｍｐｉｌｅｒ  ｃｏｍｐｉｌｅｒ）といったパーサジェネレータを組み合わせて構築することができる。
【００７７】
合成文書作成部４７は、文書格納や文書削除などをする際に、スキーマに合致しているかどうか検査しなければならないが、この検査時に必要となるデータを作成して出力する。
【００７８】
インデックス更新部４８は、文書格納や文書削除などにより、構造化文書データベースの格納内容が更新されるたびに、図９、図１０に示した要素名称生起インデックスとデータ生起インデックスを更新する。
【００７９】
文書記憶部５中の物理的な指定エリアとは、ファイルオフセットやオブジェクトＩＤなどの構造化文書データベース内ではユニークな文書データの存在場所を指し示す内部データである。ユーザにとっては認識不能なデータである。
【００８０】
文書記憶部５中に格納された文書を検索する処理を行う。要求制御部１の要求受付部１１でユーザからの文書検索の要求が受け付けられると、検索要求処理部３には、要求受付部１１からクエリ言語で記述されたクエリ文書が入力する。そしてデータアクセス部４を通してインデックス記憶部６，文書記憶部５にアクセスし、検索要求に合致する文書集合を取得して、その結果を結果処理部１２を介して出力する。
【００８１】
図２は、図１に示した構造化文書管理システムの一利用形態を示したもので、図２では、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）のバックエンドで、図１に示した構成の構造化文書管理システム１００が動作している場合を示している。
【００８２】
複数（ここでは、例えば３つ）のクライアント端末（例えばパーソナルコンピュータ、携帯通信端末など）１０２のそれぞれでＷＷＷブラウザ１０３が動作している。ユーザは、各クライアント端末からＷＷＷサーバ１０１にアクセスすることにより、構造化文書管理システム１００にアクセスすることができる。ＷＷＷブラウザ１０３とＷＷＷサーバ１０１とは、ＨＴＴＰ（Ｈｙｐｅｒ  ＴｅｘｔＴｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）で通信している。また、ＷＷＷサーバ１０１と構造化文書管理システム１００とは、ＣＧＩ（Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ）またはＣＯＭ（Ｃｏｍｐｏｎｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ）などで通信している。
【００８３】
ユーザからの文書格納、文書取得、文書検索などの要求は、ＷＷＷブラウザ１０３から送信されて、ＷＷＷサーバ１０１を通して構造化文書管理システム１００にて受け付けられ、処理された結果は、ＷＷＷサーバ１０１を通して要求元のＷＷＷブラウザ１０３へ返信される。
【００８４】
以下、図１の構造化文書管理システムの（１）格納機能、（２）検索機能について詳細に説明する。そして、（３）適用例では、概念検索を用いた特許調査の場合を例にとり説明する。
【００８５】
（１）   格納機能
図１の構造化文書管理システムにおける格納系のコマンドには以下のものがある。
【００８６】
ｉｎｓｅｒｔＸＭＬ（パス、Ｎ番目、ＸＭＬ）：文書格納
ａｐｐｅｎｄＸＭＬ（パス、ＸＭＬ）        ：文書格納
ｇｅｔＸＭＬ（パス）                      ：文書取得
ｒｅｍｏｖｅＸＭＬ（パス）                ：文書削除
ｓｅｔＳｃｈｅｍａ（パス、スキーマ）      ：スキーマ格納
ｇｅｔＳｃｈｅｍａ（パス）      ：スキーマ取得
「ｉｎｓｅｒｔＸＭＬ」は、（  ）内に指定した構造化文書パス以下のＮ番目に文書を挿入するコマンド（以下、簡単に挿入コマンドと呼ぶ）である。
【００８７】
「ａｐｐｅｎｄＸＭＬ」は、（  ）内に指定した構造化文書パス以下の最後に文書を挿入するコマンド（以下、簡単に追加コマンドと呼ぶ）である。
【００８８】
「ｇｅｔＸＭＬ」は、（  ）内に指定した構造化文書パス以下の文書を取り出すコマンド（以下、簡単に取得コマンドと呼ぶ）である。
【００８９】
「ｒｅｍｏｖｅＸＭＬ」は、（  ）内に指定した構造化文書パス以下の文書（スキーマ文書以外の文書で、主に、コンテンツ文書）を削除するコマンド（以下、簡単に削除コマンドと呼ぶ）である。
【００９０】
「ｓｅｔＳｃｈｅｍａ」は、（  ）内に指定した構造化文書パスにスキーマを設定するコマンド（以下、簡単にスキーマ格納コマンドと呼ぶ）である。
【００９１】
「ｇｅｔＳｃｈｅｍａ」は、（  ）内に指定した構造化文書パスに設定されているスキーマを取り出すコマンド（以下、簡単にスキーマ取得コマンドと呼ぶ）である。
【００９２】
上記コマンドのうち、挿入コマンド、追加コマンド、スキーマ格納コマンドについての処理はアクセス要求処理部２の文書格納部２１で実行され、取得コマンド、スキーマ取得コマンドについての処理は文書取得部２２で実行され、削除コマンドについての処理は文書削除部２３で実行される。
【００９３】
図５を参照して、構造化文書データベースの初期状態（図５（ａ）参照）において、追加コマンドを実行する場合について説明する。
【００９４】
図５（ａ）に示すように、「＃０」ノードと「＃１」ノードが「ｒｏｏｔ」アークで接続されている初期状態に対して、
「ａｐｐｅｎｄＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ”，“＜特許ＤＢ／＞”）」
を実行した結果、図５（ｂ）に示すように、「＃２」ノードと「特許ＤＢ」アークが作成される。
【００９５】
図５（ｂ）に示した状態の構造化文書データベースに対して、取得コマンドを実行する場合について説明する。
【００９６】
例えば、「ｇｅｔＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ”）」を実行すると、図５（ｂ）の「ｒｏｏｔ」アークが示す「＃０」ノード以下の文書オブジェクトツリーが取り出され、それをＸＭＬの文字列表現に変換する。その結果、図６に示すように、「＜ｒｏｏｔ＞＜特許ＤＢ／＞＜／ｒｏｏｔ＞」なる文字列が取り出される。取得コマンドの処理は、アクセス要求処理部２の文書取得部２２にて実行される。
【００９７】
次に、図５（ｂ）に示した状態の構造化文書データベースに対して、図３に示すようなコンテンツ文書（ＸＭＬ文書）としての「特許」情報を格納するための追加コマンドを実行する場合について説明する。すなわち、この場合、「ａｐｐｅｎｄＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ”，“＜特許＞…＜／特許＞”）」を実行する。このコマンド中「“＜特許＞…＜／特許＞”」が、図３に示した「特許」情報に対応する。
【００９８】
上記追加コマンドの処理が実行されると、図７に示すように、「＃２」ノード以下に「＃４２」ノードをトップとする文書オブジェクトツリー（図４に対応）が追加される。
【００９９】
図５（ｂ）に示した状態の構造化文書データベースに対して、次に示すような追加コマンドを３回繰り返して実行したとする。
【０１００】
「ａｐｐｅｎｄＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ”，“＜特許＞…＜／特許＞”）」
上記コマンド中、「＜特許＞…＜／特許＞」は、図３に示した文書構造のコンテンツ文書に対応する。
【０１０１】
すると、図８に示すように、「＃２」ノード以下に「＃４２」ノード、「＃５２」ノード、「＃６２」ノードをトップとする文書オブジェクトツリーが追加される。
【０１０２】
次に、図８に示した状態の構造化文書データベースに対して、３つの「特許」情報を取り出すための取得コマンドを実行した場合について説明する。この場合、「ｇｅｔＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ”）」を実行する。すると、「特許ＤＢ」アークが示す「＃２」ノード以下の文書オブジェクトツリーが取り出され、それをＸＭＬの文字列表現（ＸＭＬ文書）に変換する。その結果、図１１に示すように、「＜特許ＤＢ＞＜特許＞…＜／特許＞＜特許＞…＜／特許＞＜特許＞…＜／特許＞＜／特許ＤＢ＞」なる文字列が取り出される。
【０１０３】
構造化文書データベースでは、上記の「特許」情報などのコンテンツ文書（ＸＭＬ文書）の文書構造を定義したデータ、すなわち、スキーマも管理対象とする。
【０１０４】
図１２は、ＸＭＬ文書の文書構造を定義するスキーマの一例を示したものである。ここでは、ＸＭＬの文書構造定義言語の一つであるＸＤＲ（ＸＭＬ−Ｄａｔａ  Ｒｅｄｕｃｅｄ）を取り上げる。もちろん、ＸＭＬ−Ｓｃｈｅｍａなど他の文書構造定義言語を用いてもかまわない。
【０１０５】
図１２に示したスキーマは、図３に示した「特許」情報の文書構造をＸＤＲで定義したものである。図１２からも容易に分かるとおり、スキーマもＸＭＬ形式の構造化文書である。「Ｓｃｈｅｍａ」タグから始まる構成要素から始まり、その子要素として、「ＥｌｅｍｅｎｔＴｙｐｅ」タグから始まる要素集合が存在する。
【０１０６】
図１２に示したスキーマにおいて、例えば、最初の「ＥｌｅｍｅｎｔＴｙｐｅ」タグから始まる子要素は以下の情報を意味している。
【０１０７】
・「特許」タグを持つ要素の文書構造定義（「ＥｌｅｍｅｎｔＴｙｐｅ  ｎａｍｅ＝”特許”」）である。
【０１０８】
・子要素は要素だけ（「ｃｏｎｔｅｎｔ＝”ｅｌｔＯｎｌｙ”」）である。
【０１０９】
・「タイトル」、「出願日」、「要約」タグから始まる子要素から構成される（「ｅｌｅｍｅｎｔ  ｔｙｐｅ＝”タイトル”、…」）。さらに、その順番は一意に決まっている（「ｏｒｄｅｒ＝”ｓｅｑ”」）。
【０１１０】
・上記「特許」タグから始まる要素の文書構造定義の他に、「タイトル」「出願者」「要約」「年」「月」「日」「出願日」の文書構造定義を記述している。すなわち、「出願日」を除く、「タイトル」「出願者」「要約」「年」「月」「日」タグから始まる構成要素の子要素はテキストだけと定義されている（「ｃｏｎｔｅｎｔ＝”ｔｅｘｔＯｎｌｙ”」）。
【０１１１】
・「出願日」タグから始まる構成要素の子要素は、「年」、「月」、「日」の並びである。
【０１１２】
図８に示した状態の構造化文書データベースに対して、図１２に示したスキーマ文書を格納するためのスキーマ格納コマンドを実行する場合について説明する。この場合、「ｓｅｔＳｃｈｅｍａ（“ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ”，“＜Ｓｃｈｅｍａ＞…＜／Ｓｃｈｅｍａ＞”）」を実行する。このコマンド中、「“＜Ｓｃｈｅｍａ＞…＜／Ｓｃｈｅｍａ＞”」」が図１２に示したスキーマ文書に対応する。
【０１１３】
上記コマンドの実行により、図１３に示すように、「＃２」ノード以下に「＃ｓｃｈｅｍａ」アークが追加され、その先には、「＃３」ノードをトップノードとする文書オブジェクトツリーが追加される。スキーマ自身がＸＭＬ文書表現になっているため、前述した「特許」情報のようなコンテンツ文書格納のケースと同様にツリー展開可能である。
【０１１４】
図１３において、「＠ｎａｍｅ」など「＠」で始まるアークは属性に対応する。タグ名「＃ｓｃｈｅｍａ」も「＃」、「＠」で始まるためＸＭＬ規格においては標準的なタグ名として利用することはできない。
【０１１５】
「＃２」ノード下に図１２に示したスキーマ文書が格納されたことにより、以後、「＃２」ノード以下にこれから格納される文書の文書構造は、図１２に示したスキーマ文書により定義された文書構造に適合することが要求される。すなわち、「＃２」ノード以下に図１２に示したスキーマが設定されることになる。
【０１１６】
「＃２」ノード以下に図１２に示したスキーマが設定されると、図１４に示すように、「＃２」ノードの文書オブジェクトのファイルには、「＃２」ノード以下の文書オブジェクトツリーには、当該スキーマが存在する旨の属性値がセットされる。
【０１１７】
「＃２」ノード以下に図１２に示したスキーマが設定された後に、このスキーマで定義された文書構造に一致する図３に示したような「特許」情報を、図１４に示したように、文書オブジェクトツリーとして構造化文書データベースに格納したとき、この文書の文書構造には図１２に示したスキーマが存在する旨の属性値が、当該文書オブジェクトツリーを構成する各文書オブジェクトにセットされる。例えば、当該文書オブジェクトツリーを構成する各文書オブジェクトのファイルに対して、スキーマが存在している旨の属性値（例えば、「スキーマ適合有無」）に「１」がセットされる。図１４では、スキーマに適合している各文書オブジェクト（ノード）は２重丸で示している。２重丸で示した各文書オブジェクトには、その文書オブジェクトに対応した文書構造定義が存在することになる。
【０１１８】
図１５は、各文書オブジェクトのファイルの内容を概念的に示したもので、例えば、オブジェクトＩＤが「＃４２」の文書オブジェクトのファイルには、その文書オブジェクトにリンクされている他の文書オブジェクトに関する情報（例えば、アークや、リンク先の文書オブジェクトへのポインタ値など）とともに、上記属性値が記述されている。なお、当該文書オブジェクトに適用するスキーマが存在しないときは、「スキーマ適合有無」の値は「０」となる。
【０１１９】
図１６、図１７は、図１の構造化文書管理システムで、必要に応じて検索で使用される概念階層を構造化文書で表現した例を示す。図１６、図１７に示す「概念」情報はＸＭＬで記述したコンテンツ文書である。
【０１２０】
図１６に示した「概念」情報の例は、いわゆる特許調査における特許文書の内容を分類するための１つの分類軸として用いる「情報モデル」を概念階層で表現している。「概念」タグで囲まれた「概念」情報は、入れ子構造を持った文書構造をもっている。つまり、図１６の例では、概念「情報モデル」の子供概念として、概念「ドキュメント」、概念「リレーション」、概念「オブジェクト」が存在している。また、概念「ドキュメント」の子供概念として、概念「構造化訴求メント」、概念「非構造化ドキュメント」が存在し、さらに、概念「構造化ドキュメント」の子供概念として、概念「ＸＭＬ」、概念「ＳＧＭＬ」が存在している。
【０１２１】
図１７に示す「概念」情報の記述例は、図１６とは異なる分類軸「情報操作」を概念階層で表現している。図１７の例では、概念「情報操作」の子供概念として、概念「検索」、概念「格納」、概念「加工」、概念「流通」が存在している。
【０１２２】
図１６，図１７に示したような「概念」情報も、前述の「特許」情報と同様にして、構造化文書データベース内に格納することができる。すなわち、例えば、まず、図８に示した状態の構造化文書データベースに対して、「ａｐｐｅｎｄＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ”，“＜概念ＤＢ／＞”）」を実行して、図１８に示すように、「＃２０１」ノードと「概念ＤＢ」アークが作成される。この状態において、図１６に示した「概念」情報を格納する場合には、「ａｐｐｅｎｄＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ／概念ＤＢ”，“＜概念名前＞…＜／概念＞”）」を実行する。このコマンド中「“＜概念名前＞…＜／概念＞”」が、図１６に示した「概念」情報に対応する。
【０１２３】
上記追加コマンドの処理が実行されると、図１９に示すように、「＃２０１」ノード以下に「＃２０２」ノードをトップとする文書オブジェクトツリーが追加される。
【０１２４】
以上説明したように、図１の構造化文書管理システムでは、構造化文書データベース上に登録される文書構造が異なる膨大な数のＸＭＬ文書群（コンテンツ文書、スキーマ文書、クエリ文書など）を、図１８，図１９に示すように、「ｒｏｏｔ」タグを先頭に持つツリー状の１つの巨大なＸＭＬ文書として取り扱う。そのため、部分的なＸＭＬ文書をアクセスするには巨大なＸＭＬ文書に対するパスという文書構造に依存しない統一的なアクセス手段を用いることにより、幅広くＸＭＬ文書を検索したり加工したりすることが可能になる。
【０１２５】
また、構造化文書データベース上の一部にスキーマを設定することで、格納しようとする文書の文書構造がそのスキーマにより定義されている文書構造に一致するか否かの妥当性のチェックが自動的に行なえる（後述）。
【０１２６】
（１−１）文書格納処理
次に、図１の構造化文書管理システムの文書格納処理動作について、図２０に示すフローチャートを参照して説明する。
【０１２７】
クライアント端末から構造化文書管理システムに対し、文書格納要求として、挿入コマンド、追加コマンド、スキーマ格納コマンドのうちのいずれかが送信されて、要求受付部１１にて受け付けられたとき、図２０に示した処理動作を行う。
【０１２８】
クライアント端末の所定の表示装置には、構造化文書管理システム１００（の例えば、要求制御部１）から提供された、例えば、図３１に示すようなユーザインターフェイスとしての画面が表示されている。
【０１２９】
図３１に示す画面には、構造化文書管理システム１００への操作項目の一覧（メニュー）が表示されている。操作項目として、「ＸＭＬ登録／削除」、「スキーマ設定」、「ＸＭＬ検索」とがある。
【０１３０】
ユーザが例えば、この画面上で「ＸＭＬ登録／削除」をマウス等のポインティングデバイスなどを用いて選択すると、図３２に示したような文書の格納／削除を行うためのユーザインタフェースとしての画面が表示される。
【０１３１】
図３２において、領域Ｗ１には、文書構造化文書データベースの現在のツリー構造の要素名（タグ名）がユーザが理解可能なように簡略的に表示されている。なお、図３２では、上位階層の要素名のみを表示しているが、末端の要素名まで表示可能である。また、領域Ｗ２は、構造化文書パスの入力領域であり、領域Ｗ１の表示内容に従って、構造化文書パスを入力するようになっている。また、領域Ｗ３は、格納する文書を入力したり、取得した文書を表示するようになっている。
【０１３２】
例えば、構造化文書パスとして「ｒｏｏｔ」を入力する場合には、領域Ｗ１の「ｒｏｏｔ」をマウス等で選択すればよい。すると、図３２に示すように、領域Ｗ２の構造化文書パスの入力領域に「ｕｉｘ：／／ｒｏｏｔ」と表示される。また、新たに、「特許ＤＢ」という要素を追加する場合は、図３２に示すように、領域Ｗ３に、「特許ＤＢ」を入力する。そして、「登録」ボタンＢ１を選択すると、クライアント端末からａｐｐｅｎｄＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ”，“＜特許ＤＢ／＞”）」なる追加コマンドが構造化文書管理システムへ送信される。構造化文書管理システムでは、上記追加コマンドを受け、後述するような処理を実行した結果、例えば、図５（ｂ）に示すように、「＃２」ノードと「特許ＤＢ」アークが作成される。また、領域Ｗ１には、図３３に示すように、「ｒｏｏｔ」の下に「特許ＤＢ」が追加表示される。
【０１３３】
さて、ユーザが図３４に示したような文書の格納／削除画面上の領域Ｗ３に、例えば、文書「＜Ａ＞データ＜／Ａ＞」を入力し（あるいはＣＤ−ＲＯＭ等の所定の記録媒体等から読み込むことにより入力し）、領域Ｗ１の「特許［０］」をマウス等で選択すると、構造化文書パスの入力領域Ｗ２に、「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／特許［０］」と表示される。そして、「登録」ボタンＢ１を選択すると、クライアント端末からａｐｐｅｎｄＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ”，“＜特許ＤＢ／＞”）」なる追加コマンドが構造化文書管理システムへ送信される。
【０１３４】
ここでは、例えば、構造化文書データベースが、図１４に示した状態のときに、「ａｐｐｅｎｄＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／特許［０］”，“＜Ａ＞データ＜／Ａ＞”）」なる追加コマンドを受け付けた場合を例にとり説明する。
【０１３５】
要求受付部１１は、上記追加コマンドを受け付けると、上記追加コマンド中の２つのパラメータである構造化文書パス「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／特許［０］」と文書「＜Ａ＞データ＜／Ａ＞」（以下、格納文書と呼ぶ）とを文書格納部２１へ渡す（ステップＳ１）。
【０１３６】
まず、文書格納部２１は、文書パーサ部４６に格納文書を渡す。文書パーサ部４６は、格納文書を読み込んで、構文解析を行い、当該格納文書の文書構造がＸＭＬにて規定された正しい形式であるか否かの整合性の検査を行う（ステップＳ２）。
【０１３７】
この整合性の検査でエラーが見つかれば（ステップＳ３）、文書格納部２１，結果処理部１２を介して、クライアント端末に「文書格納失敗」の旨のメッセージを返す（ステップＳ４）。
【０１３８】
整合性の検査でエラーが見つからなければ、次に、文書格納部２１は、パスから文書オブジェクトツリー取得部４５へ構造化文書パスを渡す。パスから文書オブジェクトツリー取得部４５は、構造化文書パスから文書記憶部５中の物理的なエリアを特定することにより、そのエリアに存在する構造化文書パスにて表されたノード（文書オブジェクトＯｘ０）を含む文書オブジェクトツリーを取り出す（ステップＳ５）。構造化文書パスの指定が正しければ、文書オブジェクトＯｘ０のオブジェクトＩＤを取得することができるので（ステップＳ６）、その場合は、ステップＳ８へ進む。
【０１３９】
例えば、上記追加コマンドの場合、「＃４２」ノードが文書オブジェクトＯｘ０となるので、そのオブジェクトＩＤとして、「＃４２」を取得するとともに、この「＃４２」ノードを含む文書オブジェクトツリー（例えば、「＃４２」ノードの全ての子孫ノードと「＃４２」ノードと同じ階層にある全ての（兄弟）ノードと、「＃４２」ノードの親ノードである「＃２」ノードとからなる文書オブジェクトツリー）を取得する。
【０１４０】
指定された構造化文書パスからそれに対応する文書オブジェクトＯｘ０が見つからなければ、エラーとなり（ステップＳ６）、文書格納部２１，結果処理部１２を介して、クライアント端末に「文書格納失敗」の旨のメッセージを返す（ステップＳ７）。
【０１４１】
例えば、構造化文書データベースが、図１８に示した状態のときに、追加コマンドのパラメータとして、構造化文書パスが「ｕｉｘ：／／ｒｏｏｔ／その他」と表されていたとき、これに対応する文書オブジェクトは存在しないので、ステップＳ６でエラーとなり、ステップＳ７へ進む。
【０１４２】
次に、ステップＳ８では、文書オブジェクトＯｘ０にスキーマが存在するか否かを検査する。この検査は、前述したように、各文書オブジェクトのファイルに属性値が記述されているので、この値をチェックすればよい。文書オブジェクトＯｘ０のもつ「スキーマ属性有無」の値が「１」のときは、ステップＳ９へ進む。
【０１４３】
以下、図２０のステップＳ９の処理（合成文書作成部４７の処理）について、図２１に示すフローチャートを参照して詳細に説明する。
【０１４４】
文書格納部２１は、ステップＳ５で取得した文書オブジェクトツリーを合成文書作成部４７へ渡す。
【０１４５】
合成文書作成部４７は、この文書オブジェクトツリーを文書オブジェクトＯｘ０から遡り、「Ｓｃｈｅｍａ」タグを子要素として持つ文書オブジェクトＯｘ１を検索する（ステップＳ２１）。
【０１４６】
例えば、図１４に示した構造化文書データベースでは、文書オブジェクトＯｘ０としての「＃４２」ノードの親ノードである「＃２」ノードから「Ｓｃｈｅｍａ」タグをトップ（先頭）にもつノード（「＃３」ノード）へのリンクが張られているので（「Ｓｃｈｅｍａ」タグを子要素として持つので）、この「＃２」ノードが文書オブジェクトＯｘ１となる。よって、ステップＳ２２をスキップして、ステップＳ２３へ進む。
【０１４７】
この文書オブジェクトＯｘ１から文書オブジェクトＯｘ０、さらに文書オブジェクトＯｘ０からアークを辿って、その下流にある、文書オブジェクトの属性値の値が「１」である全ての子ノードからなる文書オブジェクトツリーＯｔ１を取り出す（ステップＳ２３）。
【０１４８】
例えば、上記追加コマンド中のパラメータの構造化文書パスが「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／特許［０］」と指定されているとき、文書オブジェクトツリーＯｔ１は、「＃４２」ノード〜「＃４９」ノードから構成されたものとなる（図１４参照）。
【０１４９】
次に、ステップＳ２５へ進む。
【０１５０】
ステップＳ２５では、文書オブジェクトツリーＯｔ１に格納文書の文書オブジェクトツリーを文書オブジェクトＯｘ０の子ノードとして挿入する。その結果得られた新たな文書オブジェクトツリーを文書オブジェクトツリーＯｔ２とする。
【０１５１】
この文書オブジェクトツリーＯｔ２をＸＭＬ文書に変換し、それをテンポラリファイルＡに出力する（ステップＳ２７）。
【０１５２】
例えば、上記追加コマンド中のパラメータの格納文書「＜Ａ＞データ＜／Ａ＞」の文書オブジェクトツリー（この場合は、１つの文書オブジェクト）を「＃４２」ノード〜「＃４９」ノードで構成された文書オブジェクトツリーＯｔ１に「＃４２」ノードの子ノードとして挿入して得られた合成文書の文書オブジェクトツリーＯｔ２をＸＭＬ文書に変換した結果を図２２に示す。この合成文書は、もともとある「特許」情報に「＜Ａ＞データ＜／Ａ＞」というデータを追加したものとなっている。
【０１５３】
図２２に示したＸＭＬ文書、すなわち、合成文書がテンポラリファイルＡに出力され、テンポラリファイルＡに一時格納される。
【０１５４】
一方、スキーマタグ以下の文書オブジェクトツリーＯｔ３をＸＭＬ文書に変換して、それをテンポラリファイルＢに出力する（ステップＳ２８）。すなわち、テンポラリファイルＢには、スキーマ文書が一時格納されることになる。
【０１５５】
例えば、文書オブジェクトツリーＯｔ３である「＃３」ノードをトップノードとする文書オブジェクトツリーをＸＭＬ文書に変換した結果を図２３に示す。図２３に示したＸＭＬ文書がテンポラリファイルＢに出力され、テンポラリファイルＢに一時格納される。
【０１５６】
図２２に示すように、テンポラリファイルＡ（「ｔｍｐ０００．ｘｍｌ」）には、もともとある「特許」情報の要素の他に、格納文書、すなわち、ここでは、例えば、「＜Ａ＞データ＜／Ａ＞」が挿入されている。また、「ｘｍｌｎｓ＝”ｘ−ｓｃｈｅｍａ：ｔｍｐ００１．ｘｍｌ”」という、テンポラリファイルＢ（「ｔｍｐ００１．ｘｍｌ」）へのリンク情報の記述がある。この記述は、「特許」情報に適用されるスキーマが出力されているテンポラリファイルＢを指定している。
【０１５７】
次に、図２０の説明に戻る。
【０１５８】
ステップＳ１０では、文書格納部２１は文書パーサ部４６に、合成文書のテンポラリファイルＡとスキーマのテンポラリファイルＢとを与えて、合成文書の文書構造の妥当性をチェックする。すなわち、文書パーサ部４６は、合成文書のテンポラリファイルＡとスキーマのテンポラリファイルＢとを読み込み、合成文書の文書構造が、スキーマにより定義されている文書構造に一致するか否かをチェックする。
【０１５９】
例えば、図２２に示した合成文書と、図２３に示したスキーマとで妥当性のチェックを行った場合、合成文書には、スキーマにより定義されていない「Ａ」という要素が存在するため、図２３の合成文書は、妥当性のチェックでエラーとなる（ステップＳ１１）。この場合、文書格納部２１，結果処理部１２を介して、クライアント端末に「文書格納失敗」の旨のメッセージを返す（ステップＳ１２）。
【０１６０】
例えば、クライアント端末の所定の表示装置には、図３５に示すようなメッセージが表示される。
【０１６１】
次に、構造化文書データベースが、図１４に示した状態のときに、「ａｐｐｅｎｄＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ”，“＜特許＞…＜／特許＞”）」なる追加コマンドを受け付けた場合について、図２０を参照して説明する。前述同様にして、文書オブジェクトＯｘ０のオブジェクトＩＤ「＃２」を取得する（ステップＳ５）、この文書オブジェクトには、スキーマが存在するので（ステップＳ８）、ステップＳ９において合成文書を作成する。
【０１６２】
この場合、文書オブジェクトＯｘ０である「＃２」ノード自体から「Ｓｃｈｅｍａ」タグをトップ（先頭）にもつノード（「＃３」ノード）へのリンクが張られているので、この「＃２」ノードが文書オブジェクトＯｘ１となる（図２１のステップＳ２１）。すなわち、文書オブジェクトＯｘ０と文書オブジェクトＯｘ１が同じなので（ステップＳ２２）、ステップＳ２９へ進み、格納文書「＜特許＞…＜／特許＞」の文書オブジェクトツリーをＸＭＬ文書に変換し、テンポラリファイルＡに出力する（ステップＳ２９）。
【０１６３】
例えば、図２４に示すように、テンポラリファイルＡ（「ｔｍｐ０００．ｘｍｌ」）には、格納文書である「特許」情報、すなわち、ここでは、「＜特許＞…＜／特許＞」が出力されている。また、「ｘｍｌｎｓ＝”ｘ−ｓｃｈｅｍａ：ｔｍｐ００１．ｘｍｌ”」という、テンポラリファイルＢ（「ｔｍｐ００１．ｘｍｌ」）へのリンク情報の記述がある。
【０１６４】
次に、ステップＳ２８へ進む。図２５に示すように、テンポラリファイルＢには、「＃３」ノードをトップノードとするスキーマの文書オブジェクトツリーをＸＭＬ文書に変換した結果が出力されている。
【０１６５】
図２０のステップＳ１０で、図２４に示した合成文書と、図２５に示したスキーマとで妥当性のチェックを行ったとき、合成文書の文書構造と、スキーマにより定義されている文書構造とは一致する、この場合、ステップＳ１１からステップＳ１３へ進む。
【０１６６】
ステップＳ１３では、格納文書の文書オブジェクトツリーが、文書オブジェクトＯｘ０下に追加される。すなわち、文書格納部２１により、格納文書の文書オブジェクトツリーを構成する各文書オブジェクト（のファイル）にオブジェクトＩＤが与えられ、文書オブジェクトＯｘ０から格納文書の文書オブジェクトツリーの先頭の文書オブジェクトへリンクが張られる。そして、文書オブジェクトツリー格納部４１により、格納文書の文書オブジェクトツリーを構成する各文書オブジェクト（のファイル）が文書記憶部５に格納される。
【０１６７】
次に、ステップＳ１４へ進み、インデックス記憶部６のインデックスを更新する。
【０１６８】
なお、ステップＳ８で、文書オブジェクトＯｘ０のもつ属性値の値が「０」のときは、上述したスキーマを用いた合成文書の文書構造の妥当性のチェックを行わずに、そのままマステップＳ１３へ進み、格納文書の文書オブジェクトツリーを、文書オブジェクトＯｘ０下に追加し（ステップＳ１３）、それに伴い、インデックス記憶部６のインデックスを更新する（ステップＳ１４）。
【０１６９】
（１−２）文書取得処理
次に、図１の構造化文書管理システムの文書取得処理動作について、図２６に示すフローチャートを参照して説明する。
【０１７０】
クライアント端末から構造化文書管理システムに対し、文書取得要求として、取得コマンド、スキーマ取得コマンドのうちのいずれかが送信されて、要求受付部１１にて受け付けられたとき、図２６に示した処理動作を行う。
【０１７１】
例えば、ユーザが図３６に示したような文書の格納／削除画面上の領域Ｗ１の「特許ＤＢ」をマウス等で選択すると（クリックすると）、構造化文書パスの入力領域Ｗ２に、「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ」と表示されとともに、「ｇｅｔＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ”）」なる取得コマンドが構造化文書管理システムへ送信される。
【０１７２】
ここでは、例えば、構造化文書データベースが、図８に示した状態のときに、「ｇｅｔＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ”）」なる取得コマンドを受け付けた場合を例にとり説明する。
【０１７３】
要求受付部１１は、上記取得コマンドを受け付けると、上記取得コマンド中のパラメータである構造化文書パス「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ」を文書取得部２２へ渡す（ステップＳ３１）。
【０１７４】
文書取得部２２は、パスから文書オブジェクトツリー取得部４５へ構造化文書パスを渡す。パスから文書オブジェクトツリー取得部４５は、構造化文書パスから文書記憶部５中の物理的なエリアを特定することにより、そのエリアに存在する構造化文書パスにて表されたノード（文書オブジェクトＯｘ５）を取り出す（ステップＳ３２）。構造化文書パスの指定が正しければ、文書オブジェクトＯｘ５のオブジェクトＩＤを取得することができるので（ステップＳ３３）、その場合は、ステップＳ３５へ進む。
【０１７５】
例えば、上記取得コマンドの場合、「＃２」ノードが文書オブジェクトＯｘ５となるので、そのオブジェクトＩＤとして、「＃２」を取得するとともに、この「＃２」ノード以下の文書オブジェクトツリーＯｔ５（「＃２」ノード、「＃４２」ノード〜「＃４９」ノード、「＃５２」ノード以下、「＃６２」ノード以下）を取得する（ステップＳ３５）。
【０１７６】
ステップＳ３２において、指定された構造化文書パスからそれに対応する文書オブジェクトＯｘ５が見つからなければ、エラーとなり（ステップＳ３３）、文書取得部２２，結果処理部１２を介して、クライアント端末に「文書取得失敗」の旨のメッセージを返す（ステップＳ３４）。
【０１７７】
ステップＳ３５で取得した文書オブジェクトツリーＯｔ５は、文書文字列取得部４４でＸＭＬ文書に変換される。例えば、上記取得コマンドの場合、取得したＸＭＬ文書は、図１１に示すような３つの「特許」情報のＸＭＬ文書となる。
【０１７８】
文書取得部２２は、結果処理部１２を介して、図１１に示したようなＸＭＬ文書を（例えば、ＸＳＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｓｔｙｌｅ  Ｌａｎｇｕａｇｅ）といった所定のスタイルシートとともに）、クライアント端末へ返す（ステップＳ３７）。
【０１７９】
クライアント端末では、図１１に示したＸＭＬ文書を、スタイルシートを用いてＨＴＭＬデータに変換して、例えば、図３６に示すように、領域Ｗ２に表示する。
【０１８０】
ＸＳＬを利用すると、ＸＭＬ文書を様々な形に変換することが出来る。違う構文書造のＸＭＬ文書に変換することも出来るし、ＸＭＬ文書からＨＴＭＬページを生成することも出来る。
【０１８１】
（１−３）文書削除処理
次に、図１の構造化文書管理システムの文書削除処理動作について、図２７に示すフローチャートを参照して説明する。
【０１８２】
クライアント端末から構造化文書管理システムに対し、文書削除要求として、削除コマンドが送信されて、要求受付部１１にて受け付けられたとき、図２７に示した処理動作を行う。
【０１８３】
例えば、ユーザが図３６に示したような文書の格納／削除画面上の領域Ｗ１の「特許ＤＢ」をマウス等で選択すると（クリックすると）、構造化文書パスの入力領域Ｗ２に、「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ」と表示され、さらに、「削除」ボタンＢ２を選択すると「ｒｅｍｏｖｅＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ”）」なる削除コマンドが構造化文書管理システムへ送信される。
【０１８４】
ここでは、例えば、構造化文書データベースが、図１４に示した状態のときに、「ｒｅｍｏｖｅＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／特許［０］／出願日”）」なる削除コマンドを受け付けた場合を例にとり説明する。
【０１８５】
要求受付部１１は、上記削除コマンドを受け付けると、上記削除コマンド中のパラメータである構造化文書パス「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／特許［０］／出願日」を文書削除部２３へ渡す（ステップＳ４１）。
【０１８６】
次に、文書削除部２３は、パスから文書オブジェクトツリー取得部４５へ構造化文書パスを渡す。パスから文書オブジェクトツリー取得部４５は、構造化文書パスから文書記憶部５中の物理的なエリアを特定することにより、そのエリアに存在する構造化文書パスにて表されたノード（文書オブジェクトＯｘ０）を含む文書オブジェクトツリーを取り出す（ステップＳ４２）。構造化文書パスの指定が正しければ、文書オブジェクトＯｘ０のオブジェクトＩＤを取得することができるので（ステップＳ４３）、その場合は、ステップＳ４５へ進む。
【０１８７】
例えば、上記削除コマンドの場合、「＃４４」ノードが文書オブジェクトＯｘ０となるので、そのオブジェクトＩＤとして、「＃４４」を取得するとともに、この「＃４４」ノードを含む文書オブジェクトツリー（例えば、「＃４４」ノードの全ての子孫ノードと「＃４４」ノードと同じ階層にある全ての（兄弟）ノードと、「＃４４」ノードの親ノードである「＃４２」ノード、その親ノードである「＃２」ノードとからなる文書オブジェクトツリー）を取得する。
【０１８８】
指定された構造化文書パスからそれに対応する文書オブジェクトＯｘ０が見つからなければ、エラーとなり（ステップＳ４３）、文書格納部２１，結果処理部１２を介して、クライアント端末に「文書削除失敗」の旨のメッセージを返す（ステップＳ４４）。
【０１８９】
次に、ステップＳ４５では、文書オブジェクトＯｘ０にスキーマが存在するか否かを検査する。この検査は、前述したように、各文書オブジェクトのファイルに属性値が記述されているので、この値をチェックすればよい。文書オブジェクトＯｘ０のもつ属性値の値が「１」のときは、ステップＳ４６へ進む。
【０１９０】
以下、図２７のステップＳ４６の処理（合成文書作成部４７の処理（削除コマンド用））について、図２８に示すフローチャートを参照して詳細に説明する。
【０１９１】
なお、図２８において、図２１と同一部分は同一符号を付している。
【０１９２】
文書格納部２１は、ステップＳ４２で取得した文書オブジェクトツリーを合成文書作成部４７へ渡す。
【０１９３】
合成文書作成部４７は、この文書オブジェクトツリーを文書オブジェクトＯｘ０から遡り、「Ｓｃｈｅｍａ」タグを子要素として持つ文書オブジェクトＯｘ１を検索する（ステップＳ２１）。
【０１９４】
例えば、図１４に示した構造化文書データベースでは、文書オブジェクトＯｘ０としての「＃４４」ノードの上流にある「＃２」ノードから「Ｓｃｈｅｍａ」タグをトップ（先頭）にもつノード（「＃３」ノード）へのリンクが張られているので（「Ｓｃｈｅｍａ」タグを子要素として持つので）、この「＃２」ノードが文書オブジェクトＯｘ１となる。
【０１９５】
この文書オブジェクトＯｘ１から文書オブジェクトＯｘ０、さらに文書オブジェクトＯｘ０からアークを辿って、その下流にある、文書オブジェクトの属性値の値が「１」である全ての子ノードからなる文書オブジェクトツリーＯｔ１を取り出す（ステップＳ２３）。
【０１９６】
例えば、上記追加コマンド中のパラメータの構造化文書パスが「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／特許［０］／出願日」と指定されているとき、文書オブジェクトツリーＯｔ１は、「＃４２」ノード〜「＃４９」ノードから構成されたものとなる（図１４参照）。
【０１９７】
次に、ステップＳ２６ヘ進み、文書オブジェクトツリーＯｔ１から文書オブジェクトＯｘ０以下の文書オブジェクトツリーを削除する。その結果得られた新たな文書オブジェクトツリーを文書オブジェクトツリーＯｔ２とする。
【０１９８】
この文書オブジェクトツリーＯｔ２をＸＭＬ文書に変換し、それをテンポラリファイルＡに出力する（ステップＳ２７）。
【０１９９】
例えば、上記削除コマンド中のパラメータの構造化文書パス「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／特許［０］／出願日」が指し示す「＃４４」ノード以下の文書オブジェクトツリーを「＃４２」ノード〜「＃４９」ノードで構成された文書オブジェクトツリーＯｔ１から削除することにより得られた合成文書の文書オブジェクトツリーＯｔ２をＸＭＬ文書に変換した結果を図２９に示す。この合成文書は、もともとある「特許」情報から「＜出願日＞…＜／出願日＞」というデータを削除したものとなっている。
【０２００】
図２９に示したＸＭＬ文書、すなわち、合成文書がテンポラリファイルＡに出力され、テンポラリファイルＡに一時格納される。
【０２０１】
一方、スキーマタグ以下の文書オブジェクトツリーＯｔ３をＸＭＬ文書に変換して、それをテンポラリファイルＢに出力する（ステップＳ２８）。すなわち、テンポラリファイルＢには、スキーマ文書が一時格納されることになる。
【０２０２】
例えば、文書オブジェクトツリーＯｔ３である「＃３」ノードをトップノードとする文書オブジェクトツリーをＸＭＬ文書に変換した結果を図３０に示す。図３０に示したＸＭＬ文書がテンポラリファイルＢに出力され、テンポラリファイルＢに一時格納される。
【０２０３】
次に、図２７の説明に戻る。
【０２０４】
ステップＳ４７では、文書削除部２１は文書パーサ部４６に、合成文書のテンポラリファイルＡとスキーマのテンポラリファイルＢとを与えて、文書格納処理の場合と同様にして、合成文書の文書構造の妥当性をチェックする。
【０２０５】
例えば、図２９に示した合成文書と、図３０に示したスキーマとで妥当性のチェックを行った場合、合成文書には、スキーマにより定義されている「出願日」という要素が存在しないため、図２９の合成文書は、妥当性のチェックでエラーとなる（ステップＳ４８）。この場合、文書削除部２１，結果処理部１２を介して、クライアント端末に「文書削除失敗」の旨のメッセージを返す（ステップＳ４９）。
【０２０６】
なお、構造化文書データベースが、図１４に示した状態のときに、「ｒｅｍｏｖｅＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／特許［０］”）」なる削除コマンドを、図２７に従って処理を行うと、図２８のステップＳ２７において、図２４に示したような合成文書がテンポラリファイルＡに出力される。テンポラリファイルＢは、図３０と同様である。
【０２０７】
このとき、図２４に示した合成文書と、図３０に示したスキーマとで妥当性のチェックを行った場合、合成文書の文書構造と、スキーマにより定義されている文書構造とは一致するので、ステップＳ４８からステップＳ５０へ進む。
【０２０８】
ステップＳ５０では、文書オブジェクトＯｘ０以下の文書オブジェクトツリーを削除する。すなわち、文書オブジェクトツリー削除部４２により、文書オブジェクトＯｘ０以下の文書オブジェクトツリーを構成する各文書オブジェクト（のファイル）が文書記憶部５から削除される。例えば、「＃２」ノードから「＃４２」ノード以下の文書オブジェクトのファイルが削除される。
【０２０９】
次に、ステップＳ５１へ進み、インデックス記憶部６のインデックスを更新する。また、クライアント端末の図３６に示したような表示画面の領域Ｗ１には、「特許［０］」が表示さなくなる。
【０２１０】
なお、ステップＳ４５で、文書オブジェクトＯｘ０のもつ属性値の値が「０」のときは、上述したスキーマを用いた合成文書の文書構造の妥当性のチェックを行わずに、そのままマステップＳ５０へ進み、文書オブジェクトＯｘ０以下の文書オブジェクトツリーを削除し（ステップＳ５０）、それに伴う、インデックス記憶部６のインデックスを更新する（ステップＳ５１）。
【０２１１】
（１−４）スキーマの設定、スキーマを用いた文書格納
図３１に示した画面上で、ユーザが「Ｓｃｈｅｍａ設定Ｗｉｎ」をマウス等のポインティングデバイスなどを用いて選択すると、図３７に示したようなスキーマの設定を行うためのユーザインタフェースとしての画面が表示される。
【０２１２】
ユーザが、領域Ｗ３に、例えば、図１２に示したような「特許」情報のスキーマを入力し、この入力したスキーマを「特許ＤＢ」以下のノードに設定する場合には、領域Ｗ１から「特許ＤＢ」をマウス等でクリックして選択した後（領域Ｗ２には、「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ」が表示される）、「スキーマ設定」ボタンＢ３を選択する。すると、「ｓｅｔＳｃｈｅｍａ（“ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ”，“＜Ｓｃｈｅｍａ＞…＜／Ｓｃｈｅｍａ＞”）」なるスキーマ格納コマンドが構造化文書管理システムへ送信される。このコマンドの処理は前述した文書格納処理動作と同様である。
【０２１３】
次に、「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ」の下に「特許」情報を格納しようとするとき、「特許ＤＢ」以下のノードに既に設定されているスキーマを用いて「特許」情報を入力する場合について説明する。
【０２１４】
まず、スキーマを取得する。例えば、図３８に示すような文書の格納／削除を行うための画面の領域Ｗ１から「スキーマ」をマウス等を用いて選択すると、文書パスの入力領域Ｗ２に、「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／＃Ｓｃｈｅｍａ」と表示されとともに、「ｇｅｔＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ／Ｓｃｈｅｍａ”）」なるスキーマ取得コマンドが構造化文書管理システムへ送信される。
【０２１５】
このコマンドの処理は、前述した文書取得処理と同様である。構造化文書管理システムから返されるＸＭＬ文書は、図３８の画面の領域Ｗ３に表示される。
【０２１６】
図３８に示すように、領域Ｒ３には、「特許」情報のデータ入力領域が各要素毎に設定されて表示されている。この表示に従って、ユーザは、データを入力すればよい。例えば、「タイトル」、「年」などのデータ入力領域が階層的に配置され、表示されている。ユーザは、このデータ入力領域にデータを入力することで、スキーマにより定義された文書構造の格納文書が容易に作成することができる。
【０２１７】
また、領域Ｗ３に入力した「特許」情報の格納先として、領域Ｗ１で「特許ＤＢ」をマウス等を用いて選択すると、領域Ｗ２に構造化文書パスとして、「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ」が表示される。その後、「登録」ボタンＢ１を選択すると、「ａｐｐｅｎｄＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ”，“＜特許＞…＜／特許＞”）」なる追加コマンドが構造化文書管理システムへ送信される。
【０２１８】
この場合、格納文書は、予めスキーマに従って入力されたものなので、図２０のステップＳ１０の妥当性チェックでエラーとなることはない。
【０２１９】
（２）検索機能
図１の構造化文書管理システムにおける検索系のコマンドには以下のものがある。
【０２２０】
ｑｕｅｒｙ（ｑｌ）
「ｑｕｅｒｙ」は、パラメータとして（  ）内のクエリｑｌを実行し、その結果のＸＭＬ文書を取得するコマンド（以下、検索コマンドと呼ぶ）である。
【０２２１】
クエリは、図３９に示すように、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  ＱｕｅｒｙＬａｎｇｕａｇｅ）に似た形式の言語により、検索位置、検索条件、情報抽出部分などを記述した、構造化されたＸＭＬ文書である。クエリ文書も構造化文書管理システムの管理対象である。
【０２２２】
「ｋｆ：ｆｒｏｍ」タグから始まる要素には、検索位置の指定と文書要素の値に変数を対応付ける記述があり、「ｋｆ：ｗｈｅｒｅ」タグのから始める要素には、変数に関する条件づけの記述があり、「ｋｆ：ｓｅｌｅｃｔ」タグから始まる要素には、検索結果の出力形式が記述される。
【０２２３】
検索には、単純検索と概念検索とがある。単純検索とは、クエリ中に指定された検索条件を満たす情報を検索・抽出するものであり、概念検索とは、クエリ中に指定された概念情報を利用して、クエリ中に指定された検索条件を満たす情報を検索・抽出するものである。
【０２２４】
図４０は、単純検索のクエリの例を示したものである。図４０のクエリは、例えば、図１４に示したような状態の構造化文書データベースに対し、「特許ＤＢ」アークが示すノード以下に格納されている「特許」情報の文書群において、「１９９９年でかつ、「ＰＣ」のような内容の「要約」という要素をもつ文書（「特許」情報）の「タイトル」を列挙せよ」という検索要求を意味している。
【０２２５】
「ｋｆ：ｆｒｏｍ」タグから始まる要素の記述により、変数「＄ｔ」、「＄ｙ」、「＄ｓ」に、それぞれ「特許」情報の「タイトル」、「年」、「要約」という文書要素の値が代入される。
【０２２６】
「ｋｆ：ｗｈｅｒｅ」タグから始める要素の記述により、変数「＄ｙ」＝「１９９９」という比較がなされる。また、コンポーネント「ＭｙＬｉｋｅ」は変数「＄ｓ」と「ＰＣ」を引数として、「ＰＣ」と類似する値の変数「＄ｓ」を検知するための関数である。
【０２２７】
「ｋｆ：ｆｒｏｍ」タグから始まる要素の記述により、変数「＄ｔ」が出力値として利用される。
【０２２８】
なお、「ｋｆ：ｓｔａｒ」タグは構造の曖昧表現であり、例えば「＜特許＞＜ｋｆ：ｓｔａｒ＞＜年＞」は「タグ名が「特許」である要素の子孫の要素としていずれかに存在し、タグ名が「年」である要素」を意味する。
【０２２９】
図４１に図４０の単純検索のクエリを用いた検索結果を示す。この検索結果もＸＭＬ文書である。
【０２３０】
図４２は、概念検索のクエリの例を示したものである。図４２のクエリは、例えば図１８，図１９に示すような状態の構造化文書データベースに対し、「特許ＤＢ」アークが示すノード以下に格納されている「特許」情報の文書群に対し、「概念ＤＢ」アークが示すノード以下に格納されている「概念」情報を利用して検索するための検索要求である。ここで、概念「周辺装置」の値をもつタグの子要素の値には、概念「ＳＣＳＩ」、「メモリ」、「ＨＤＤ」などがあるものとする。また、図１８には示していないが、各「特許」情報の構成要素には、「キーワード」タグから始める要素も存在するものとする。
【０２３１】
すなわち、図４２のクエリは、「概念「周辺装置」以下の概念のいずれかを「キーワード」という要素の値にもつ文書（「特許」情報）の「タイトル」を列挙せよ」という検索要求を意味している。
【０２３２】
「ｋｆ：ｆｒｏｍ」タグから始まる要素の記述により、変数「＄ｔ」、変数「＄ｋ」に、それぞれ、「特許」情報の「タイトル」、「キーワード」という要素の値が代入される。また、変数「＄ｘ」は「概念」情報として「周辺装置」の値をもつタグの子要素の値（「ＳＣＳＩ」、「メモリ」、「ＨＤＤ」など）が代入される。
【０２３３】
「ｋｆ：ｗｈｅｒｅ」タグから始める要素の記述により、「＄ｋ」＝「周辺装置」もしくは「＄ｋ」＝「＄ｘ」という比較がなされる。
【０２３４】
次に、図１の構造化文書管理システムの文書検索処理動作について、図４３に示すフローチャートを参照して説明する。
【０２３５】
図３１に示した画面上で、ユーザが「ＸＭＬ検索Ｗｉｎ」をマウス等のポインティングデバイスなどを用いて選択すると、図４４に示すような文書検索を行うためのユーザインタフェースとしての画面が表示される。
【０２３６】
図４４の検索画面において、領域Ｗ１には、前述同様、構造化文書データベースの現在のツリー構造の要素名（タグ名）がユーザが理解可能なように簡略的に表示されてている。
【０２３７】
領域Ｗ２は、検索対象の範囲（ツリー構造上の検索範囲）や、検索条件などを入力するための領域である。領域Ｗ３には、検索結果が表示される。
【０２３８】
例えば、「「ｕｉｘ：／／ｒｏｏｔ」以下の「特許」を先頭タグに持つ文書の中から、「タイトル」タグに「文書」という文字列を含み、「１９９８」年以降に作成された文書を検索せよ」という検索要求の場合には、領域Ｗ１から「ｒｏｏｔ」をマウス等で選択して検索対象の範囲として、構造化文書パスを入力する。そして、トップノードとして、「特許」を入力する（この場合、領域Ｗ１から「特許」をマウス等で選択することにより入力してもよい）。また、検索条件として、「「タイトル」という要素の値に「文書」という文字列を含む」「「年」という要素の値が「１９９８」以上である」という内容を予め設定されたデータ入力領域に入力すればよい。
【０２３９】
その後、「検索」ボタンＢ２１を選択することにより、例えば、図４５に示すようなクエリが、当該クエリを構造化文書データベース上に格納するための追加コマンドとともに構造化文書管理システムへ送信される。クエリの格納場所は、予め定められており、システム側が自動的に、この追加コマンドのパラメータを設定することとなる。例えば、構造化文書データベースが図１８に示した状態のとき、当該クエリの格納場所を表すパラメータとしての構造化文書パスは、「ｕｉｘ：／／ｒｏｏｔ／クエリＤＢ」となる。また、追加コマンドのもう一方のパラメータは、当該クエリ文書である。
【０２４０】
要求受付部１１は、上記クエリを受け付けると（ステップＳ１０１）、当該クエリを検索要求処理部３へ渡す。そして、当該クエリ文書を格納するための追加コマンドのパラメータを文書格納部２１へ渡す。この追加コマンドの処理を、前述同様に行って、当該クエリは、文書記憶部５に格納される。
【０２４１】
例えば、図４２に示すようなクエリの場合、構造化文書データベースには、図４６に示すように展開されて、構造化文書パス「ｕｉｘ：／／ｒｏｏｔ／クエリＤＢ」の示す「＃３０１」ノード以下にリンクされる。
【０２４２】
一方、検索要求処理部３では、受け取ったクエリを基に、データアクセス部４を通してインデックス記憶部６，文書記憶部５にアクセスし、検索要求に合致する文書集合などを取得して、クエリの中で要求された情報を抽出して結果処理部１２を介して出力する。
【０２４３】
例えば、上記クエリの場合、まず、「「タイトル」タグに「文書」という文字列を含む」という条件に合致するものを検索することが検索対象を絞り込む上で効率がよい。そこで、図１０に示したようなデータ生起インデックスを用いて、「文書」という文字列にリンクされているノード（文書オブジェクト）のオブジェクトＩＤを得る。そして、そのそれぞれについて、文書オブジェクトツリーを上流側に１つ遡り、「タイトル」というタグ名にたどり着いたときは、更に上流に辿っていき、「特許」というタグ名にたどり着いたときは、そのノード以下の文書オブジェクトツリーＯｔ１１を抽出する。
【０２４４】
次に、この抽出された複数の文書オブジェクトツリーＯｔ１１の中から、さらに、「年」という要素の値が「１９９８」年以上の文書オブジェクトツリーＯｔ１２を抽出する。
【０２４５】
この文書オブジェクトツリーＯｔ１２が上記クエリの内容に適合する文書となる。さらに上記クエリの要求内容に従えば、各文書オブジェクトツリーＯｔ１２のトップノードへの構造化文書パスを求める（ステップＳ１０２）。
【０２４６】
なお、上記検索処理は、上記した方法に限るものではなく、インデックス情報を用いた様々な効率のよい検索方法が可能である。
【０２４７】
検索要求処理部３は、ステップＳ１０２で得られた結果を統合して、検索結果としてのＸＭＬ文書を作成する（ステップＳ１０３）。
【０２４８】
例えば、検索結果のＸＭＬ文書は、
0003842577.tif 000002
となる。
【０２４９】
検索要求処理部３は、検索結果処理部１２を介して、上記ＸＭＬ文書をスタイルシートとともに、要求元のクライアント端末に返す（ステップＳ１０４）。
【０２５０】
クライアント端末では、図１１に示したＸＭＬ文書を、スタイルシートを用いてＨＴＭＬデータに変換して、例えば、図４４に示すように、領域Ｗ１２に表示する。
【０２５１】
同様にして、スキーマの検索も行える。
【０２５２】
例えば、「「ｕｉｘ：／／ｒｏｏｔ」以下の「ｓｃｈｅｍａ」を先頭タグに持つ文書の中から、「特許」と「要約」というタグ名を持つスキーマを検索せよ」という検索要求の場合には、図４７に示すように、領域Ｗ１から「ｒｏｏｔ」をマウス等で選択して検索対象の範囲として、構造化文書パスを入力する。そして、トップノードとして、「＃ｓｃｈｅｍａ」を入力する。また、検索条件として、「要素の属性名に「特許」という文字列を含む」「要素の属性名に「要約」という文字列を含む」という内容を予め設定されたデータ入力領域に入力すればよい。
【０２５３】
その後、「検索」ボタンＢ２１を選択することにより、上記検索要求を記述したクエリ（図４８参照）が、当該クエリを構造化文書データベース上に格納するための追加コマンドとともに構造化文書管理システムへ送信される。
【０２５４】
さて、上記クエリの場合、例えば、「「＃ｓｃｈｅｍａ」を先頭タグに持つ」という条件に合致するものを検索する。そこで、図９に示したような要素名称生起インデックスを用いて、「＃ｓｃｈｅｍａ」という要素にリンクされているノードの（文書オブジェクト）のオブジェクトＩＤを得る。そして、そのそれぞれについて、文書オブジェクトツリーを下流側にアークを辿っていき、属性名が「特許」と「要約」という要素にたどり着いたときは、当該「＃ｓｃｈｅｍａ」を先頭タグにもつ文書オブジェクトツリーＯｔ２１を抽出する。この文書オブジェクトツリーＯｔ２１が上記クエリの内容に適合する文書となる。さらに、図４８に示したクエリの要求内容に従えば、各文書オブジェクトツリーＯｔ２１のトップノードへの構造化文書パスを求める。
【０２５５】
検索要求処理部３は、文書オブジェクトツリーＯｔ２１が複数あれば、それぞれのトップノードへの構造化文書パスをまとめて、検索結果としてのＸＭＬ文書を作成し、検索結果処理部１２を介して、上記ＸＭＬ文書をスタイルシートとともに、要求元のクライアント端末に返す。
【０２５６】
クライアント端末では、検索結果として受け取ったＸＭＬ文書を、スタイルシートを用いてＨＴＭＬデータに変換して、例えば、図４４に示すように、領域Ｗ１２に表示する。
【０２５７】
クライアント端末では、検索結果の中の１つのスキーマを選択して、表示させると、例えば、図３８に示すような文書の格納／削除を行うための画面とともに、その領域Ｗ３に、「特許」情報のデータ入力領域が各要素毎に設定されて表示される。
【０２５８】
ユーザは、このデータ入力領域にデータを入力することで、スキーマにより定義された文書構造の格納文書が容易に作成することができる。
【０２５９】
例えば、図３８の領域Ｗ３に入力した「特許」情報の格納先として、領域Ｗ１で「特許ＤＢ」をマウス等を用いて選択すると、領域Ｗ２に構造化文書パスとして、「ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ」が表示される。その後、「登録」ボタンＢ１を選択すると、「ａｐｐｅｎｄＸＭＬ（“ｕｉｘ：／／ｒｏｏｔ／特許ＤＢ”，“＜特許＞…＜／特許＞”）」なる追加コマンドが構造化文書管理システムへ送信される。
【０２６０】
この場合、格納文書は、予めスキーマに従って入力されたものなので、図２０のステップＳ１０の妥当性チェックでエラーとなることはない。
【０２６１】
同様にして、クエリの検索も行える。クエリを検索して、検索結果として得られた既存のクエリを加工して、再利用することもできる（クエリの再利用）。
【０２６２】
クエリの検索は、前述したような構造化文書の検索と同様にして行われ、その検索範囲は、クエリ群の格納されている構造化データベース上の一部の文書オブジェクトツリーとなる。
【０２６３】
例えば、図１８に示したような状態の構造化文書データベースから、「ｋｆ：ｆｒｏｍ」タグに「特許ＤＢ」を含むクエリを検索する場合について説明する。そのような検索要求を記述したクエリを図４９に示す。
【０２６４】
図４９に示すクエリは、「「ｕｉｘ：／／ｒｏｏｔ／クエリＤＢ」の示す「＃３０１」ノード以下に存在するクエリの中から「ｋｆ：ｆｒｏｍ」タグに「特許ＤＢ」を含むクエリを検索し、その内容（タグ名が「ｑｕｅｒｙ」である要素以下の文書オブジェクトツリーの文書）を列挙せよ」を意味するものである。
【０２６５】
なお、「ｋｆ：ａｓ」タグの内容で変数「＄ｅｌｔ」に、「ｋｆ：ｆｒｏｍ」タグに「特許ＤＢ」を含むクエリのタグ名が「ｑｕｅｒｙ」である要素以下の文書オブジェクトツリーが代入される。
【０２６６】
このクエリを検索要求処理部３が処理する際には、前述同様にして、例えば、図９に示したような要素名称生起インデックスを用いて、「ｋｆ：ｆｒｏｍ」という要素にリンクされているノードの（文書オブジェクト）のオブジェクトＩＤを得る。そして、そのそれぞれについて、文書オブジェクトツリーを下流側にアークを辿っていき、「特許」というタグ名にたどり着いたときは、さらに、上流側にアークを辿って「ｑｕｅｒｙ」というタグ名に辿りついたとき、当該「ｑｕｅｒｙ」を先頭タグにもつ文書オブジェクトツリーＯｔ３１を抽出する。この文書オブジェクトツリーＯｔ３１が上記クエリの内容に適合する文書となる。
【０２６７】
複数の文書オブジェクトツリーＯｔ３１が検索されたら、それらを統合して、ＸＭＬ文書を作成して、それをスタイルシートとともにクライアント端末へ返す。
【０２６８】
クライアント端末では、検索結果の中の１つのクエリを選択して、表示させると、例えば、図４４に示した検索画面の領域Ｗ１１に、各データ入力領域にデータの入力された状態で、当該クエリに記述された検索要求の内容が表示される。
【０２６９】
ユーザは、この状態から、「「ｕｉｘ：／／ｒｏｏｔ」以下の「特許」を先頭タグに持つ文書の中から、「タイトル」タグに「文書」という文字列を含み、「１９９８」年以降に作成された文書を検索せよ」という当該クエリに記述された検索要求中の「文書」を「ＸＭＬ」に変更して、「検索」ボタンＢ２１を選択すれば、「「ｕｉｘ：／／ｒｏｏｔ」以下の「特許」を先頭タグに持つ文書の中から、「タイトル」タグに「ＸＭＬ」という文字列を含み、「１９９８」年以降に作成された文書を検索せよ」という意味のクエリが構造化文書管理システムへ送信される。
【０２７０】
以上説明したように、図１の構造化文書管理システムでは、構造化文書データベース上に登録される文書構造が異なる膨大な数のＸＭＬ文書群（コンテンツ文書、スキーマ文書、クエリ文書など）を、図１８，図１９に示すように、「ｒｏｏｔ」タグを先頭に持つツリー状の１つの巨大なＸＭＬ文書として取り扱う。従って、文書構造が異なる、様々なスキーマを持つ膨大な数の文書の中から検索条件に合致する文書を容易に検索できる。
【０２７１】
また、検索に用いるクエリも構造化文書であるので、構造化文書データベースにログとして格納することにより、過去のクエリを再利用するようなアプリケーションも容易に構築することができる。
【０２７２】
（３）適用例
次に、上記概念検索の特許調査への適用例について説明する。
【０２７３】
図５０は、特許調査における構造化文書データベースの一例であり、「特許」情報の他に、「概念」情報も格納している。
【０２７４】
特許調査において、最も重要となってくる作業は、関連する「特許」情報を収集し、「特許」情報を様々な観点から分析し、特許マップ（図５４参照）を作成することである。特許マップを作成するために、従来、特許マップにおける縦軸、横軸を予め決定し、それに従い、縦軸に並ぶ任意の項目と横軸に並ぶ任意の項目とを検索条件とした検索を逐次行うという方法がとられ、この部分に非常に莫大なコストがかかっていた。しかし、構造化文書管理システムを用いることで、この部分のコストを大幅に減少させることが可能となる。
【０２７５】
なお、ここで、マップとは、縦軸（ｙ軸）に並ぶ任意の項目と横軸（ｘ軸）に並ぶ任意の項目とを検索条件とした検索結果をｘ軸とｙ軸とを分類軸として分類整理するものである。
【０２７６】
構造化文書管理システムで、クライアント端末のユーザが図５４に示すような特許マップを作成しようとする場合、ユーザは、クライアント端末上の表示装置に表示される図５０に示すような構造化文書データベースの現在のツリー構造を参照して、図５１に示すような検索画面上に、分析対象の範囲とする「特許」情報のパスと、分析の軸（例えば、ｘ軸、ｙ軸）となる要素を、それぞれ領域Ｗ２１、Ｗ２２に入力する。分析の軸となる要素は、構造化文書データベース内の「特許」情報の要素、「概念」情報の要素のいずれであってもよい。
【０２７７】
例えば、図５１では、ｘ軸に「機能」、ｙ軸に「技術」という「概念」情報の要素を入力している。
【０２７８】
その後、ユーザは、「実行」ボタンＢ３１を選択すると、クライアント端末から図１の構造化文書管理システムへ、図５２に示したようなクエリが送出される。
【０２７９】
この場合のクエリには、「「特許ＤＢ」アークが示すノード以下に格納されている「特許」情報の文書群の中から、「概念ＤＢ」アークが示すノード以下に格納されている、概念「機能」の子要素のいずれかと概念「技術」の子要素のいずれかとを、「キーワード」や「要約」などの要素の値に含む「特許」情報を検索せよ。検索結果として、「機能」の子要素と「技術」の子要素と、それらに対応する「特許」情報の「公開番号」との組を列挙せよ。」という意味の検索要求である。
【０２８０】
概念「機能」には、「検索」「格納」…「分析支援」という子要素があり、概念「技術」には、「実装データベース」「反構造データベース」「自然言語処理」…という子要素があるものとする。
【０２８１】
上記クエリを受けた構造化文書検索システムの検索要求処理部３では、例えば、図１０に示したようなデータ生起インデックスを用いて、概念「機能」の各子要素（文字列）にリンクされているノード（文書オブジェクト）のオブジェクトＩＤを得る。そして、そのそれぞれについて、文書オブジェクトツリーを上流側に遡り、「特許」というタグにたどり着いたときは、さらに、そのノード以下の文書オブジェクトツリーを下流側に辿って概念「技術」の子要素（文字列）のいずれかにリンクされているタグ名にたどり着いたときは、当該文書オブジェクトツリーと、その「公開番号」タグにリンクされている文字列（要素値）を抽出する。このようにして、抽出された「特許」情報のそれぞれについて、対応の「機能」の子要素と「技術」の子要素と「公開番号」との組を統合して、図５３に示すような検索結果としてのＸＭＬ文書を作成、要求元のクライアント端末へ、所定のスタイルシートとともに返す。
【０２８２】
これらを受け取ったクライアント端末の表示装置には、図５４に示したような表形式の特許マップが表示されることになる。
【０２８３】
このように、所望の概念を「軸」として指定するだけで、構造化文書データベースに蓄積された情報を「軸」として指定された概念に基づき集計・分類して、マップ表示するこたが容易に行える。すなわち、構造化文書データベースに蓄積された情報を、「概念」情報を用いて様々な観点で集計・分類することが容易に行える。
【０２８４】
（本発明の実施形態の説明−類似検索）
以下、本発明の実施形態について、図面を参照して説明する。
【０２８５】
図５５は、本実施形態に係る構造化文書管理システムの構成例を示したものである。なお、図１と同一部分には同一符号を付し、異なる部分についてのみ説明する。すなわち、図５５では、検索要求処理部３は類似検索処理部２０１を有し、さらに、この類似検索処理部２０１には、意味ネットワーク記憶部２００に記憶されている意味ネットワーク、インデックス記憶部６に記憶されているデータ生起インデックスや要素名生起インデックス、文書記憶部５を参照しながら、処理を実行するような構成になっている。
【０２８６】
図５６は、類似検索処理部２０１の構成例を示したもので、クエリ解析部２０３と、クエリ条件処理部２０４と、クエリ出力処理部２０５とから構成されている。
【０２８７】
クエリ解析部２０３は、要求受付部１１で受け付けられたユーザからの検索要求であるクエリを入力とし、入力したクエリを解析して、クエリ条件グラフとクエリ出力テンプレートを生成する。
【０２８８】
クエリ条件グラフとは、入力クエリに記述されている検索対象（所望する構造化文書）の検索条件、すなわち、
・構成要素の名称（要素名）に関する条件
・構成要素間の条件
・構成要素の値に関する条件
などをグラフ形式で展開したものである。
【０２８９】
クエリ出力テンプレートとは、入力クエリに記述されている検索結果の出力形式、すなわち、
・抽出・出力する構成要素
・出力する構成要素の構造パターン
などをグラフ形式で展開したものである。
【０２９０】
クエリ解析部２０３からはクエリ条件グラフとクエリ出力テンプレートが出力される。
【０２９１】
クエリ条件処理部２０４は、クエリ条件グラフを入力として、クエリ中に発生する検索条件を考慮して、構造化文書データベース中に格納されている各種データの組み合わせを作成する。この組み合わせを記述したものをバインドテーブルと呼ぶ。
【０２９２】
クエリ出力処理部２０５は、クエリ条件処理部２０４にて最終的に作成された最終バインドテーブルとクエリ出力テンプレートを入力とする。
【０２９３】
クエリ出力処理部２０５は、最終バインドテーブルに基づき、検索結果として構造化文書ののＸＭＬデータを作成する。その際、検索された構造化文書の集合は類似度の高い順からソートされてＸＭＬ形式で出力される。
【０２９４】
単純検索の場合は、検索結果は上記のように構造化文書の集合となるが、複合検索や概念検索の場合には検索された構造化文書の一部の構成要素だけが抽出される。この場合も、上記同様、構成要素の集合は類似度の高い順からソートされてＸＭＬ形式で出力される。
【０２９５】
図５７は、クエリ条件処理部２０４の構成例を示したものである。クエリ条件グラフを入力としてオペレータ適用部２１１にて基本オペレータを適用可能な限り繰り返し適用し、中間バインドテーブルを順次作成していく。
【０２９６】
基本オペレータとは、バインドテーブルを入出力とする関数であるが、図５７の基本オペレータ部２１２の各構成部２１３〜２１９では、上記関数に対応する各処理を行うものである。
【０２９７】
類似語展開部２１３は、与えられた語彙に関連する語彙を語彙間の類似度とともにバインドテーブルとして出力する。
【０２９８】
語彙発生展開部２１４は、インデックス記憶部６に記憶されているデータ生起インデックス（以下、簡単に語彙インデックスと呼ぶ）を用いて、構造化文書データベース中に語彙の発生位置（格納位置（ロケーション）であって、具体的には、例えば、構造化文書データベースの階層木の各ノードに与えられたオブジェクトＩＤ）の集合を生成して、入力バインドテーブルを展開して新たなバインドテーブルを作り出す。
【０２９９】
構造発生展開部２１５は、インデックス記憶部６に記憶されている要素名生起インデックス（以下、簡単に構造インデックスと呼ぶ）を用いて、構造化文書データベース中の要素の発生位置（格納位置（ロケーション）であって、具体的には、例えば、構造化文書データベースの階層木の各ノードに与えられたオブジェクトＩＤ）の集合を生成して、入力バインドテーブルを展開して新たなバインドテーブルを作り出す。
【０３００】
バインドテーブル値集約部２１６とは、１つの入力バインドテーブル中に複数の同じレコード（各カラムに同じ値）があるときは、それらを１つに集約して新たなバインドテーブルとして作り出す。
【０３０１】
バインドテーブル結合部２１７は、２つの入力バインドテーブル中のあるカラムに関して結合（ＪＯＩＮ）して新たな１つのバインドテーブルを作り出す。
【０３０２】
上位発生展開部２１８は、あるロケーション（具体的には、例えば、ノード）に存在する要素からルート（「ｒｏｏｔ」）のある上流方向に遡り、その要素の親を含めた先祖要素まで組み合わせを生成して新たなバインドテーブルを作り出す。
【０３０３】
下位発生展開部２１９は、あるロケーション（具体的には、例えば、ノード）に存在する要素から下流方向に下って、その要素の子を含めた子孫要素まで組み合わせを生成して新たなバインドテーブルを作り出す。
【０３０４】
図５８は、クエリ出力処理部２０５の構成例を示したものである。クエリ出力テンプレートと最終バインドテーブルを入力として、ソート部２２２で類似計算を行ってソートし、ＸＭＬ出力処理部２２１にてそのソート順でＸＭＬ形式のデータである検索結果を作り出す。
【０３０５】
図５９は、意味ネットワーク記憶部２００に記憶されている意味ネットワークを模式的に示したものである。意味ネットワークとは、語彙の間の類似関係をグラフで表現したものであり、類似関係のある語彙と語彙をアークで結び、その語彙間の類似度の値をアークに与えて、語彙間のネットワークを構成しているものである。例えば、「構造化文書」や「ＸＭＬ」などの語彙があったとする。図５９に示した意味ネットワークから、「構造化文書」と「ＸＭＬ」の類似度は「０．８」となっている。なお、ここでは、類似度の値は「０」から「１」までの値を取るものとする。また、アークに与えた２つの語彙間の類似度をアークウェイトと呼ぶ。
【０３０６】
図６０は、図５５の文書記憶部５の構造化文書データベースの構造化文書の格納状態を模式的に示したものである。
【０３０７】
図６０において、「＃０」ノード以下には、「論文」情報と「特許」情報と「文献」情報が、それぞれ「＃１」ノードを先頭とする文書オブジェクトツリーとして格納されている。また、同様にして、「＃１」ノード以下には「＃４０」ノードを先頭とする文書オブジェクトツリーとして「ＰＡＰＥＲ」情報が格納され、「＃５０」ノードを先頭とする文書オブジェクトツリーとして「論文」情報が格納されている。
【０３０８】
「＃１」以下に格納されている「論文」情報、「特許」情報、「文献」情報を、ＸＭＬ形式で表したものを、それぞれ図６１〜図６３に示す。また、「＃４０」ノード以下に格納されている「ＰＡＰＥＲ」情報、「＃５０」ノード以下に格納されている「論文」情報を、ＸＭＬ形式で表したものを、それぞれ、図６４〜図６５に示す。
【０３０９】
構造化文書データベースは、断片的なＸＭＬ文書を登録して行くと大きなＸＭＬ文書として参照できるようになっている。その大きなＸＭＬ文書のルートタグが＜ｒｏｏｔ／＞というものである。
【０３１０】
以下、図６０に示した構造化文書データベースを対象として説明を行う。
【０３１１】
図６６は、本発明の類似検索のクエリの一例を示したものである。図６６に示したクエリは「ＸＭＬやＳＧＭＬをタイトルに含む論文のタイトルと要旨を検索し一覧にせよ」という内容のものであるが、第１の実施形態で説明した（通常の）クエリと異なるのは、図６６に示したクエリ中の検索条件を該検索条件で指定された構成要素や、その値の類似範囲まで拡大解釈（緩和）する点である。そのために（類似検索であることをシステム側に知らせるために）、図６６に示したクエリでは、検索条件を類似範囲にまで広げるための類似検索特有の記述がなされている。
【０３１２】
例えば、当該類似検索のクエリの構成要素の＜ｋｆｓｉｍ：ｓｅｌｅｃｔ＞には、検索結果を類似度でソートして出力するための記述である。
【０３１３】
＜ｋｆｓｉｍ：ｆｒｏｍ＞タグは、構成要素および構造の類似する範囲まで検索条件を広げるためのもので、例えば、図６６のクエリの場合、当該クエリにて指定した＜論文＞以下の構造（すなわち、「論文」要素の子要素として「タイトル」と「要素」が存在するという構造）に類似するものを、指定された構造化文書パス（図６６のクエリの場合「ｕｉｘ：／／ｒｏｏｔ」）以下の範囲から検索するための記述がなされている。
【０３１４】
＜ｋｆｓｉｍ：ｃｍｐ＞タグは、語彙の類似範囲まで検索条件を広げるためのもので、例えば、構造化文書の構成要素の値が代入される変数「＄ｔ」が「ｐａｒａｍ２」で指定された語彙（群）（例えば、図６６のクエリの場合「ＸＭＬ」「ＳＧＭＬ」）、あるいはこれらに類似する語彙群を含む旨の記述がなされている。
【０３１５】
このような類似検索特有の記述がなされているために、上記クエリは、クエリ解析部２０３において、「「ＸＭＬ」や「ＳＧＭＬ」、あるいは、「ＸＭＬ」や「ＳＧＭＬ」に類似する語彙を「タイトル」あるいは「タイトル」に類似する構成要素、あるいは、「タイトル」、「タイトル」に類似する構成要素に包含される構成要素の値に含み、この「タイトル」あるいは「タイトル」に類似する構成要素を包含する「論文」あるいは「論文」に類似する構成要素（構造化文書）検索し、その結果得られた構造化文書中の「タイトル」あるいは「タイトル」に類似する構成要素と、「要旨」あるいは「要旨」に類似する構成要素の値を一覧にせよ」という内容に解釈される。
【０３１６】
例えば、クライアント端末から送られてきた図６６に示した類似検索のクエリが図５５の構造化文書管理システムの要求受付部１１にて受け付けられると、当該類似検索のクエリは、検索要求処理部３の類似検索処理部２０１に送られる。
【０３１７】
類似検索処理部２０１のクエリ解析部２０３は、図６６に示した類似検索のクエリから図６７に示したようなクエリ条件グラフと、図６８に示したようなクエリ出力テンプレート（クエリ出力グラフとも呼ぶ）を生成する。
【０３１８】
図６７に示したクエリ条件グラフの各部Ａ１〜Ａ６について説明する。
【０３１９】
Ａ１：「ｒｏｏｔ」の下にある（包含する）「論文」およびこのタグ名に類似するタグ名の構成要素（群）を変数「＄１」に対応させる。「ＳＩＭＴＡＧ」にてタグ名「論文」の類似範囲まで検索条件を広げている。
【０３２０】
Ａ２：「論文」およびこのタグ名に類似するタグ名の構成要素の下にある（包含する）、「タイトル」およびこのタグ名に類似するタグ名の構成要素（群）を変数「＄２」に対応させる。「ＳＩＭＴＡＧ」にてタグ名「タイトル」の類似範囲まで検索条件を広げている。
【０３２１】
Ａ３：「論文」およびこのタグ名に類似するタグ名の構成要素の下にある（包含する）、「要旨」およびこのタグ名に類似するタグ名の構成要素を変数「＄３」に対応させる。「ＳＩＭＴＡＧ」にてタグ名「要旨」の類似範囲まで検索条件を広げている。
【０３２２】
Ａ４：「タイトル」およびこのタグ名に類似するタグ名の構成要素、あるいはその構成要素に包含される構成要素の値には変数「＄ｔ」に対応する値を含む。
【０３２３】
Ａ５：「要旨」およびこのタグ名に類似するタグ名の構成要素、あるいはその構成要素に包含される構成要素の値を変数「＄ａ」に対応させる。
【０３２４】
Ａ６：変数「＄ｔ」には、「ＸＭＬ」「ＳＧＭＬ」、およびこれらの語彙に類似する語彙を含む、構成要素の値を対応させる。「ＳＩＭＣＭＰ」にて語彙「ＸＭＬ」「ＳＧＭＬ」の類似範囲まで検索条件を広げている。
【０３２５】
クエリ条件グラフは、クエリにある検索条件で指定された構成要素と語彙と文書構造（構成要素や語彙発生位置の文書構造上の位置関係）をもつ構造化文書および、該検索条件で指定された構成要素と語彙と文書構造に類似する構成要素と語彙と文書構造をもつ構造化文書の文書構造を表したものである。
【０３２６】
図６７では、構成要素と、その構成要素の値に対応する上記各変数は丸で囲まれている。文書構造上の包含関係にある構成要素と構成要素、および、構成要素と値とにそれぞれ対応する変数間は、６角形の接続記号で接続する。変数と変数とを接続記号で接続することにより、「この接続記号の前段にある構成要素に包含される構成要素のいずれかに後段にある構成要素があればよい」というように、クエリにある検索条件で指定された文書構造上の条件を緩和している。
【０３２７】
例えば、図６６の類似検索のクエリでは、＜ｋｆｓｉｍ：ｆｒｏｍ＞タグ以で、「論文」要素の子要素として「タイトル」と「要旨」が存在するという構造が指定されているが、この指定された文書構造の条件を緩和すると、「「論文」要素のいずれかに「タイトル」という要素と「要旨」という要素が存在する」という条件となる。この緩和された文書構造をクエリ条件グラフで表すと、図６７に示したように、「論文」タグおよびそれに類似するタグに対応する変数「＄１」と、「タイトル」タグおよびそれに類似するタグに対応する変数「＄２」とが上記接続記号で接続され、同様に、変数「＄１」と、「要旨」タグおよびそれに類似するタグに対応する変数「＄３」とが上記接続記号で接続されている。
【０３２８】
クエリ出力グラフは、検索結果として出力するＸＭＬ文書の構造（パターン）を表したものである。すなわち、図６８において、変数「＄ｔ」の値を「ＴＩＴＬＥ」というタグ名の構成要素の値とし、また、変数「＄ａ」の値を「ＡＢＳＴ」というタグ名の構成要素の値とし、「ＰＡＰＥＲ」というタグ名の構成要素は、これら２つの構成要素から構成する旨を表している。さらに、「Ｒｅｐｅａｔ」ノード以下の上記文書構造を（検索した構造化文書の数だけ）繰り返すことも表している。
【０３２９】
まず、類似語展開部２１３の処理動作について、図６９に示すフローチャートを参照して説明する。なお、ここでキーワードとは、類似検索のクエリに検索条件として指定された構成要素名（タグ名）とその値である。たとえば、「論文」「タイトル」「要旨」「ＸＭＬ、ＳＧＭＬ」である。
【０３３０】
（ステップＳ２０１）キーワード群を入力とし、種キーワード集合とする。例えば、「ＸＭＬ、ＳＧＭＬ」が入力されたとする。
【０３３１】
（ステップＳ２０２）種キーワード集合の各キーワードの語彙ウェイトを「１．０」にセットする。例えば、「ＸＭＬ」と「ＳＧＭＬ」の語彙ウェイトをそれぞれ「１．０」にする（図７０参照）。
【０３３２】
（ステップＳ２０３）種キーワード群より意味ネットワークを一段展開する。種キーワード群から展開元のキーワードを削除する。例えば、図７１に示したように、「構造化文書」、「マークアップ言語」などが得られる。
【０３３３】
（ステップＳ２０４）展開されたキーワード群の各キーワードに対して語彙ウェイトをセットする。展開されたキーワードの語彙ウェイトが未設定であれば、そのキーワードの語彙ウェイトを（種キーワードの語彙ウェイト）×（アークウェイト）とし、そうでなく設定済であれば、（種キーワードの語彙ウェイト）×（アークウェイト）と、当該設定されている語彙ウェイトの大きい方を当該キーワードの語彙ウェイトとして更新する。例えば、「構造化文書」と「マークアップ言語」は、前者の場合で、「０．８」となる（図７１参照）。
【０３３４】
（ステップＳ２０５）語彙ウェイトの設定、更新があれば、そのキーワードを種キーワード集合に追加する。例えば、ここでは、「構造化文書」、「マークアップ言語」を新たな種キーワード集合とする。
【０３３５】
（ステップＳ２０６）種キーワード集合が空にでないなるまで、ステップＳ２０３〜ステップＳ２０５の処理を繰り返す。例えば、ここでは、新たな種キーワード集合は「構造化文書、マークアップ言語」であるので、ステップＳ２０３へ戻る。
【０３３６】
新たな種キーワード集合「構造化文書、マークアップ言語」に対し、ステップＳ２０３〜ステップＳ２０５を繰り返すことにより、図７２に示すように、新たな類似語として、「ＨＴＭＬ」（語彙ウェイト＝０．８×０．８＝０．６４）、「構造文書」（語彙ウェイト＝０．８×０．５＝０．４）、「半構造化文書」（語彙ウェイト＝０．８×０．８＝０．６４）が得られ、さらに、図７３に示すように、これらを種キーワード群として、ステップＳ２０３〜ステップＳ２０５を繰り返すことにより、図７３に示すように、新たな類似語として、「セミストラクチャードドキュメント」（語彙ウェイト＝０．６４×１．０＝０．６４）が得られる。
【０３３７】
このようにして、数回ステップＳ２０３〜ステップＳ２０６を繰り返すことで、図７４（ａ）に示すように、「ＸＭＬ、ＳＧＭＬ」に類似する語彙を語彙ウェイトとともに得られることになる。
【０３３８】
同様にして、「タイトル」「論文」「要旨」についても、これらに類似する語彙を語彙ウェイトとともに求めた結果を、図７４（ｂ）〜図７４（ｄ）にそれぞれ示す。
【０３３９】
次に、構造に関する類似度について、図７５を参照して説明する。
【０３４０】
ある構成要素「＃ｘ」に対して、親要素「＃ｙ」、そのさらに親要素「＃ｚ」、そのさらに親要素「＃ｗ」があるとする。仮に要素「＃ｘ」から１段上の要素が検索条件にて指定されていたとき、各要素｛＃ｙ，＃ｚ，＃ｗ｝に対する構造に関する類似度を考える。この場合、検索条件にマッチする要素「＃ｘ」の１段上の要素「＃ｙ」には、最も高い類似度を与えることとなる。そこで、構造に関する類似度を
構造に関する類似度＝１．０／段数（上記指定した段数と各要素の存在する所の段数との差）として定義する。つまり、
要素「＃ｙ」の構造に関する類似度は、１．０／１
要素「＃ｚ」の構造に関する類似度は、１．０／２＝０．５
要素「＃ｗ」の構造に関する類似度は、１．０／３＝０．３
である。「１．０」が最も類似度が高い。
【０３４１】
オペレータ適用部２１１は、クエリ条件グラフから以下示すような処理を行う。すなわち、入力したクエリ条件グラフに対して、適用可能な基本オペレータを繰り返し実行する。
【０３４２】
（１）語彙について、その類似範囲まで検索条件を広げることが可能なときは、類似語展開部２１３で類似語展開を行う。
【０３４３】
（２）タグ名について、その類似範囲まで検索条件を広げることが可能なときは、類似語展開部２１３で類似語展開を行う。
【０３４４】
（３）語彙の発生展開可能なときは、語彙発生展開部２１４で語彙発生展開を行う。
【０３４５】
（４）構造について、その類似範囲まで検索条件を広げることが可能なときは、構造発生展開部２１５で構造発生展開を行う。
【０３４６】
（５）タグの上位関係があるときは、上位発生展開部２１８で上位発生展開を行う。
【０３４７】
（６）タグの下位関係があるときは、下位発生展開部２１９で下位発生展開を行う。
【０３４８】
（７）複数の（例えば２つの）中間バインドテーブルが同じ変数のカラム持つとき、バインドテーブル結合部２１７で複数の（例えば２つの）中間バインドテーブルを結合する。
【０３４９】
（８）１つのバインドテーブル中の１つの変数のカラムに同じ値（例えばノード）が存在するときは、バインドテーブル値集約部２１６でバインドテーブル値を集約する。
【０３５０】
以上（１）〜（８）のいずれかを繰り返し実行することで、最終的に１つのバインドテーブル、すなわち、最終バインドテーブルが作成される。この最終バインドテーブルについて、最終的な類似度計算を行う。
【０３５１】
次に、上記オペレータ適用部２１１の処理動作について、図６６に示した類似検索のクエリの場合を例にとり、図７６に示すフローチャートを参照して、より具体的に説明する。
【０３５２】
また、図７７には、クエリ条件グラフに対する処理手順（ステップＱ１〜Ｑ１２）を示している。図７７も適宜参照して説明を行う。
【０３５３】
オペレータ適用部２１１に図６７に示すようなクエリ条件グラフが入力すると（ステップＳ２１１）、意味ネットワークを用いて、語彙の類似語展開、タグ名についての類似語展開を行う（ステップＳ２１２，ステップＳ２１３、図７７のステップＱ１）。その結果が図７８である。
【０３５４】
図７８に示すように、「ＸＭＬ、ＳＧＭＬ」に類似する語彙とその語彙ウェイト、タグ名「タイトル」「論文」「要旨」のそれぞれについても、これらに類似する語彙（タグ名）とその語彙ウェイトとが得られている。なお、図７８に示した各テーブルを中間バインドテーブルとしてもよい。この場合、これはカラムが１個の中間バインドテーブルである。バインドテーブルのカラムデータは、語彙あるいはロケーション（ノード）と類似度のペアである。図７８の場合、語彙と類似度のペアとなっている。「ＸＭＬ」と「ＳＧＭＬ」に類似する語彙を語彙ウェイトとともにレコード化している。
【０３５５】
次に、データ生起インデックスを用いて、「ＸＭＬ、ＳＧＭＬ」に類似する語彙とその語彙ウェイトについて、語彙発生展開を行う（ステップＳ２１４）。
【０３５６】
ここで一例として示した構造化文書データベースは、図６０に示すように単純な構造であるので、データ生起インデックスを見るまでもなく、図６０に示すデータベースの構造のみからでも容易に語彙や、タグ名の存在するノードがわかるので、図６０を参照して説明する。
【０３５７】
まず、データ生起インデックスを検索すると、例えば、語彙「ＸＭＬ」が発生している要素は、オブジェクトＩＤ「＃１３」、「＃１４」…「＃５５」のノードである。従って、これらノード群と類似度とを対にして、列挙する。その他の語彙についても同様に、当該語彙が発生しているノードと、その語彙の類似度とを対にして列挙し、図７９に示したような中間バインドテーブルＢ１を作成する。これがクエリ条件グラフ中の変数「＄ｔ」の候補となる（図７７のステップＱ２）。
【０３５８】
図６６に示した類似検索のクエリ中には「タイトル」や「要旨」や「論文」などの構成要素が指定されている。
【０３５９】
次に、これら構成要素について、要素生起インデックスを用いて構造発生展開を行う（ステップＳ２１５）。
【０３６０】
「タイトル」に対し類似語展開を行った結果（図７８参照）から、「タイトル」およびそれに類似するタグ名をもつ構成要素のノードは、「＃１３」、「＃２２」、「＃３１」…「＃４５」である。従って、これらノード群と類似度とを対にして、列挙し、図８０に示したような中間バインドテーブルＢ２を作成する。これがクエリ条件グラフ中の変数「＄２」の候補となる（図７７のステップＱ３）。
【０３６１】
「要旨」に対し類似語展開を行った結果（図７８参照）から、「要旨」およびそれに類似するタグ名をもつ構成要素のノードは、「＃１４」、「＃４６」、「＃５８」、「＃３２」である。従って、これらノード群と類似度とを対にして、列挙し、図８１に示したような中間バインドテーブルＢ３を作成する。これがクエリ条件グラフ中の変数「＄３」の候補となる（図７７のステップＱ４）。
【０３６２】
「論文」に対し類似語展開を行った結果（図７８参照）から、「論文」およびそれに類似するタグ名をもつ構成要素のノードは、「＃１０」、「＃５１」、「＃４１」、「＃３０」である。従って、これらノード群と類似度とを対にして、列挙し、図８２に示したような中間バインドテーブルＢ４を作成する。これがクエリ条件グラフ中の変数「＄１」の候補となる（図７７のステップＱ５）。
【０３６３】
さて、この段階まできたところで、図９に示した中間バインドテーブルＢ１をスキャンしてみると、変数「＄ｔ」のカラムに同じノードのレコードが複数存在している。例えば、「＃１３」「＃４５」である。そこで、図８３に示したように、バインドテーブル値集約部２１６にて、当該中間バインドテーブルＢ１の値を集約して、新たな中間バインドテーブルＢ５を作成する（ステップＳ２１６、図７７のステップＱ６）。
【０３６４】
すなわち、複数の同じノードのレコードがあれば、類似度を計算し直して、１レコードに集約する。ここでの類似度の計算は、例えば、各レコードの類似度の最大値をとることとする。
【０３６５】
次に、図７７のクエリ条件グラフからも明らかなように、下流にある変数「＄ｔ」のカラムを持つ中間バインドテーブルＢ５に対し、上位発生展開を行う（ステップＳ２１７）。
【０３６６】
上位発生展開部２１８は、中間バインドテーブルＢ５中の各レコードを参照して、構造化文書データベースの各レコードのノード位置からその親ノード、さらにその親ノードへと上流へと遡り、該当のノードを収集する。この収集したノード群をクエリ条件グラフ中の変数「＄２」の候補とし、図８４に示すように、新たな中間バインドテーブルＢ６を作成する（図７７のステップＱ７）。
【０３６７】
例えば、バインドテーブルＢ５のノード「＃１３´」のレコードについては、構造化文書データベース中の当該ノード位置「＃１３」からその親ノード（ノード「＃１３」から見て１段上の親ノード）である「＃１０」が得られる。さらに、その親ノード（ノード「＃１３」から見て２段上の親ノード）が存在するときは、その親ノードのオブジェクトＩＤも取得する。ただし、ルート「ｒｏｏｔ」ノード「＃１」は除く。
【０３６８】
例えば、バインドテーブルＢ５のノード「＃４５´」のレコードの場合は、構造化文書データベース中の当該ノード位置「＃４５」からその親ノード（ノード「＃４５」から見て１段上の親ノード）である「＃４２」、さらに、その親ノード（ノード「＃４５」から見て２段上の親ノード）である「＃４１」、さらにその親ノード（ノード「＃４５」から見て３段上の親ノード）である「＃４０」が得られる。ノード「＃４０」の親ノードは「＃１」であるので、ここでストップする。
【０３６９】
上位発生展開、下位発生展開を行う場合、得られたノードの類似度は、前述した構造に関する類似度を用いる。
【０３７０】
図６６のクエリからも明らかなように、検索条件としては、変数「＄ｔ」は「タイトル」タグを持つ構成要素の値として定義されているから（図６７のＡ４に相当）、前述した構造に関する類似度を適用して、変数「＄２」に対応するノードと変数「＄ｔ」に対応するノードが等しいとき、当該変数「＄ｔ」に対応するノードの構造に関する類似度として「１．０／１＝１．０」、変数「＄２」に対応するノードが変数「＄ｔ」に対応するノードより１段上の親ノードであるときは当該変数「＄ｔ」に対応するノードに「１．０／２＝０．５」、２段上の親ノードであるときは「１．０／３＝０．３」…と与える。
【０３７１】
このようにして、バインドテーブルＢ５の各レコードについて、その１段上の親ノード、２段上の親ノード、３段上の親ノード、…と求めていき、そのそれぞれについて、上記構造に関する類似度を対にしてレコード化する。これがクエリ条件グラフ中の変数「＄２」の候補となる（図７７のステップＱ７）。
【０３７２】
中間バインドテーブルＢ６を作成した時点で、この中間バインドテーブルＢ６と、中間バインドテーブルＢ２には、同じ変数「＄２」のカラムを持つこととなるので、次に、バインドテーブル結合部２１７で、この２つの中間バインドテーブルを１つに結合する（ステップＳ２１８）。
【０３７３】
図８５に示すように、ここでは変数「＄２」という共有するカラムについて結合演算を行っている。これは通常のデータベースの結合（ＪＯＩＮ）演算とほぼ同じであるが、類似度についても考慮し、類似度同士を掛け合わせを行っている点で異なる。
【０３７４】
例えば、中間バインドテーブルＢ６のレコードのうち、変数「＄２」のカラムにある値が中間バインドテーブルＢ２のレコードに存在するもののみを残して、上記のように類似度を計算し直して（双方の中間バインドテーブル中の変数「＄２」のカラムにある同じノード対応の類似度同士を掛け合わせる）、新たな中間バインドテーブルＢ７を作成する（図７７のステップＱ８）。
【０３７５】
次に、中間バインドテーブルＢ７に対し上位発生展開を行い、図８６に示すような、クエリ条件グラフの変数「＄１」の候補となるノードを列挙したカラムを追加した新たな中間バインドテーブルＢ８を作成する（ステップＳ２１７、図７７のステップＱ９）。
【０３７６】
なお、この場合の、変数「＄１」の候補として挙げれた各ノードの構造に関する類似度について簡単に説明する。
【０３７７】
図６６のクエリからも明らかなように、検索条件としては、「タイトル」タグを持つ構成要素は、「論文」タグを持つ構成要素の１段下の子要素として指定されているから（図６７のＡ２に相当）、前述した構造に関する類似度を適用して、変数「＄１」に対応するノードが変数「＄１」に対応するノードより１段上の親ノードであるときは変数「＄１」に対応するノードに「１．０／１＝１．０」、２段上の親ノードであるときは「１．０／２＝０．５」…と与える。
【０３７８】
中間バインドテーブルＢ８を作成した時点で、この中間バインドテーブルＢ８と、中間バインドテーブルＢ４は、同じ変数「＄１」のカラムを持つこととなるので、次に、バインドテーブル結合部２１７で、この２つの中間バインドテーブルを１つに結合して、図８６に示すように、新たな中間バインドテーブルＢ９を作成する（ステップＳ２１８、図７７のステップＱ１０）。
【０３７９】
次に、図７７のクエリ条件グラフからも明らかなように、下流にある変数「＄３」のカラムを持つ中間バインドテーブルＢ３に対し、上位発生展開を行う（ステップＳ２１７）。その結果、図８７に示すように、変数「＄１」のカラムを持つ新たな中間バインドテーブルＢ１０が作成される（図７７のステップＱ１１）。
【０３８０】
中間バインドテーブルＢ１０を作成した時点で、この中間バインドテーブルＢ１０と、中間バインドテーブルＢ９は、同じ変数「＄１」のカラムを持つこととなるので、次に、バインドテーブル結合部２１７で、この２つの中間バインドテーブルを１つに結合して、図８７に示すように、新たな中間バインドテーブルＢ１１を作成する（ステップＳ２１８、図７７のステップＱ１２）。
【０３８１】
これで、全ての中間バインドテーブルが１つに結合された（ステップＳ２１９）。そこで、次に、図７７のクエリ条件グラフにある変数「＄ａ」のカラムを中間バインドテーブルＢ１１に追加するために、中間バインドテーブルＢ１１に対し、下位発生展開部２１９で下位発生展開を行う（ステップＳ２２０）。
【０３８２】
下位発生展開部２１９は、中間バインドテーブルＢ１１中の各レコードの変数「＄３」のカラムの値（ノードのオブジェクトＩＤ）を参照して、構造化文書データベースの各レコードのノード位置からその子ノード、さらにその子ノードへと下流へと下り、該当のノードを収集する。この収集したノード群をクエリ条件グラフ中の変数「＄ａ」の候補とし、図８８に示すように、新たな中間バインドテーブルＢ１２を作成する（図７７のステップＱ１３）。
【０３８３】
例えば、バインドテーブルＢ１１のノード「＃１４´」のレコードについては、構造化文書データベース中の当該ノード位置「＃１４」のみが得られる（ノード「＃１４」から見て１段下の子ノードは存在しない）。
【０３８４】
図６６のクエリからも明らかなように、検索条件としては、変数「＄ａ」は、変数「要旨」タグを持つ構成要素の値として定義されているから（図６７のＡ５に相当）、前述した構造に関する類似度を適用して、変数「＄ａ」に対応するノードと変数「＄３」に対応するノードが等しいとき、変数「＄ａ」に対応するノードの構造に関する類似度として「１．０／１＝１．０」、変数「＄ａ」に対応するノードが変数「＄３」に対応するノードより１段下の子ノードであるときは変数「＄ａ」に対応するノードに「１．０／２＝０．５」…と与える。
【０３８５】
従って、変数「＄ａ」の候補として挙げられたノード「＃１４」には、構造に関する類似度として「１．０／１」を設定する。
【０３８６】
新たな中間バインドテーブルＢ１２には、全ての変数のカラムが結合されているので、これ以上の基本オペレータは適用できない。従って、中間バインドテーブルＢ１２が最終バインドテーブルとなる。
【０３８７】
最終バインドテーブルは、すべての変数のロケーションおよび類似度のペアの組み合わせを記録したもので、最終バインドテーブルの横一列は１つの構造化文書に対応する。構造化文書の文書オブジェクトツリーを構成するノードのうち、各変数に対応するノードのみが最終バンドテーブルの横一列に並べられている。
【０３８８】
最後に、最終バインドテーブルに対して、最終的な類似度計算を行う（ステップＳ２２１）。図８９に示すように、ここでの類似度「＄ｓｉｍ」の計算は、最終バインドテーブル中の各変数対応の全てのカラムの類似度を、各構造化文書毎に掛け合わせて計算している。簡単のため下２桁で四捨五入している。
【０３８９】
例えば、図８９に示したような最終的な類似度を含めた最終バインドテーブルは、オペレータ適用部２１１からクエリ出力処理部２０５へ渡される。
【０３９０】
クエリ出力処理部２０５のＸＭＬ出力処理部２２１では、図６８に示したようなクエリ出力グラフを用いて、最終バインドテーブルから図９０に示すような検索結果のＸＭＬ文書を作成する。
【０３９１】
すなわち、最終バインドテーブルの４つのレコードについて、クエリ出力グラフの「Ｒｅｐｅａｔ」ノード以下のテンプレートを繰り返し適用する。この場合はレコード数は４つなので、４回繰り返される。
【０３９２】
図９０に示した検索結果のＸＭＬ文書において、「ｓｃｏｒｅ」属性で、最終バインドテーブル中の類似度「＄ｓｉｍ」の値を表示している。
【０３９３】
例えば、図８９の１列目にあるレコードは、図６１に示した「論文」情報のＸＭＬ文書に対応するが、クエリ出力グラフに従えば、この「論文」情報の文書オブジェクトツリーを構成するノードのうち、変数「＄ｔ」に対応するノード「＃１３」と、変数「＄ａ」に対応するノード「＃１４」のみが抽出される。この各ノードに対応する「タイトル」というタグ名を持つ構成要素と「要旨」というタグ名を持つ構成要素の値を、それぞれ、「ＴＩＴＬＥ」、「ＡＢＳＴ」というタグ名を持つ構成要素の値とし、さらに、これら構成要素を「ＰＡＰＥＲ」というタグ名を持つ構成要素の子要素とする。
【０３９４】
ソート部２２２は、最終バインドテーブル中の類似度「＄ｓｉｍ」の値で上記４つのレコードをソートする。この場合、先頭の＜ＰＡＰＥＲ  ｓｃｏｒｅ＝”１．０”＞がもっとも語彙的にも構造的にも類似性が高い構造化文書として検索されている。それ以外は、ほとんど変わりが無い。
【０３９５】
ここで、最終バインドテーブルに対する類似度「＄ｓｉｍ」の他の計算方法について説明する。すなわち、上記説明では、１レコード中の全カラムの類似度を単純に掛け合わせて、（１つの構造化文書に対応する）レコード毎の類似度を計算したが、１レコード中の全カラムの類似度のうち、最小値を当該レコードの類似度としてもよい。
【０３９６】
また、構造に関する類似度も、図７５を参照して説明した、「１／段数」ではなく、「１／（段数＋１）」としてもよい。こうすると、語彙に関する類似度の方が構造に関する類似度より強くなり、その結果、図９１に示すように、検索結果も変化する。
【０３９７】
図９１に示した検索結果では、図９０に示した検索結果の２番目と４番目のＸＭＬデータ（構造化文書）の位置が入れ替わっている。
【０３９８】
以上説明したように、上記実施形態によれば、類似検索のクエリからクエリ条件グラフとクエリ出力グラフ（クエリ出力テンプレート）とを生成し、クエリ条件グラフに従って、このクエリに含まれる検索条件を該検索条件で指定された構成要素と語彙とそれらの文書構造（論理構造）上の発生位置の類似範囲まで緩和した構造化文書の検索を行う。すなわち、構造化文書データベースに格納されている構造化文書のうち、その構成要素に、検索条件で指定された構成要素あるいはそれに類似する構成要素と、検索条件で指定された語彙あるいはそれに類似する語彙を包含する構造化文書を検索し（類似語展開、語彙発生展開、構造発生展開）、この検索された構造化文書のうち、さらに、該構造化文書に包含される語彙と構成要素の論理構造上の発生位置が、検索条件で指定された発生位置あるいはそれに類似する発生位置である構造化文書を検索する（上位発生展開、下位発生展開、バインドテーブル結合）ことにより、構成要素名（タグ名）や語彙の類似語を探すための意味ネットワークを追加するだけで、検索条件で指定された構成要素や語彙の類似範囲はもとより、構成要素や語彙の文書構造上の発生位置が類似する構造化文書の検索が容易に行える。
【０３９９】
また、クエリ出力グラフに基づき、検索された構造化文書の一部の構成要素のみを抽出して、検索結果として出力することができる。
【０４００】
なお、本発明の実施の形態に記載した本発明の手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピーディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、半導体メモリなどの記録媒体に格納して頒布することもできる。
【０４０１】
また、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明は含まれており、開示される複数の構成用件における適宜な組み合わせにより、種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題（の少なくとも１つ）が解決でき、発明の効果の欄で述べられている効果（のなくとも１つ）が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【０４０２】
【発明の効果】
以上説明したように、本発明によれば、構造化文書データベースに格納されている構造化文書の構成要素と語彙とを指定した検索条件に基づき、この指定した構成要素と語彙とそれらの文書構造（論理構造）上の発生位置とに類似する構造化文書の検索が容易に行える。
【図面の簡単な説明】
【図１】本発明の実施形態に係る構造化文書管理システムの構成例を示した図。
【図２】図１に示した構造化文書管理システムの一利用形態を示したもので、ＷＷＷのバックエンドで、構造化文書管理システムが動作している場合を示した図。
【図３】ＸＭＬで記述された構造化文書の一例を示した図。
【図４】図３の構造化文書の文書構造を模式的に示した図。
【図５】追加コマンドの機能を説明するための図で、構造化文書データベースの初期状態に追加コマンドを実行した場合について示している。
【図６】図５（ｂ）に示した状態の構造化文書データベースに対し、取得コマンドを実行した場合の処理結果を示した図。
【図７】図５（ｂ）に示した状態の構造化文書データベースに対し、追加コマンドを実行して１つの「特許」情報の文書オブジェクトツリーを追加した場合を示している。
【図８】図５（ｂ）に示した状態の構造化文書データベースに対し、追加コマンドを実行して３つの「特許」情報の文書オブジェクトツリーを追加した場合を示している。
【図９】要素名生起インデックスの格納例を示した図。
【図１０】データ生起インデックスの格納例を示した図。
【図１１】図８に示した状態の構造化文書データベースに対して、３つの「特許」情報を取り出すための取得コマンドを実行した場合の実行結果を示した図。
【図１２】ＸＭＬ文書の文書構造を定義するスキーマの一例を示した図。
【図１３】図８に示した状態の構造化文書データベースに、スキーマ格納コマンドを実行して、図１２に示したスキーマを追加格納（設定）した場合を示した図。
【図１４】スキーマが設定されて、スキーマが存在している旨の属性値のセットされた文書オブジェクトツリーを示した図。
【図１５】各オブジェクトファイルに、スキーマが存在している旨の属性値が格納されている様子を概念的に示した図。
【図１６】必要に応じて検索で使用される概念階層を構造化文書で表現した例を示した図。
【図１７】必要に応じて検索で使用される概念階層を構造化文書で表現した例を示した図。
【図１８】図８に示した状態の構造化文書データベースに対し、追加コマンドを実行して、図１６，図１７に示した「概念」情報の文書オブジェクトツリーを追加した場合を示した図。
【図１９】図８に示した状態の構造化文書データベースに対し、追加コマンドを実行して、図１６，図１７に示した「概念」情報の文書オブジェクトツリーを追加した場合を示した図。
【図２０】図１の構造化文書管理システムの文書格納処理動作について説明するためのフローチャート。
【図２１】図２０のステップＳ９の処理（合成文書作成部の処理）について説明するためのフローチャート
【図２２】追加コマンド中のパラメータの格納文書の文書オブジェクトツリーを構造化文書データベースから取得した文書オブジェクトツリーに挿入して得られた合成文書の文書オブジェクトツリーをＸＭＬ文書に変換した結果であって、テンポラリファイルＡに格納される合成文書の一例を示した図。
【図２３】テンポラリファイルＢに格納される、構造化文書データベースから取得されたスキーマ文書の一例を示した図。
【図２４】テンポラリファイルＡに格納される合成文書の他の例を示した図。
【図２５】テンポラリファイルＢに格納される、構造化文書データベースから取得されたスキーマ文書の一例を示した図。
【図２６】図１の構造化文書管理システムの文書取得処理動作について説明するためのフローチャート。
【図２７】図１の構造化文書管理システムの文書削除処理動作について説明するためのフローチャート。
【図２８】図２７のステップＳ４６の処理（合成文書作成部の処理（削除コマンド用））について説明するためのフローチャート。
【図２９】テンポラリファイルＡに格納される合成文書のさらに他の例であって、削除コマンドの実行時に作成される合成文書の一例を示した図。
【図３０】テンポラリファイルＢに格納される、構造化文書データベースから取得されたスキーマ文書の一例を示した図。
【図３１】ユーザインタフェースとしての画面の表示例を示した図。
【図３２】文書の格納／削除を行うためのユーザインタフェースとしての画面の表示例を示した図。
【図３３】文書の格納／削除を行うためのユーザインタフェースとしての画面の表示例を示した図。
【図３４】文書の格納／削除を行うためのユーザインタフェースとしての画面の表示例を示した図。
【図３５】妥当性のチェックでエラーとなっときにクライアント端末へ返すメッセージの表示例を表示例を示した図。
【図３６】文書の格納／削除を行うためのユーザインタフェースとしての画面の表示例を示したもので、文書取得動作を説明するための図。
【図３７】スキーマの設定を行うためのユーザインタフェースとしての画面の表示例を示したもので、スキーマの設定動作を説明するための図。
【図３８】スキーマの取得するためのユーザインタフェースとしての画面の表示例を示したもので、取得されたスキーマの表示例を示している。
【図３９】クエリ（ＸＭＬ文書）の一例を示した図。
【図４０】単純検索のクエリ（ＸＭＬ文書）の一例を示した図。
【図４１】図４０の単純検索のクエリを用いた検索結果（ＸＭＬ文書）を示した図。
【図４２】概念検索のクエリ（ＸＭＬ文書）の一例を示した図。
【図４３】図１の構造化文書管理システムの文書検索処理動作について説明するためのフローチャート。
【図４４】文書検索を行うためのユーザインタフェースとしての画面の表示例を示した図。
【図４５】図４４に示した画面上から入力された情報に基づき作成されるクエリを示した図。
【図４６】図４２に示したクエリの構造化文書データベース内における格納例を示した図。
【図４７】文書検索を行うためのユーザインタフェースとしての画面の表示例であって、スキーマの検索処理動作を説明するための図。
【図４８】スキーマ検索のクエリの一例を示した図。
【図４９】クエリを検索するためのクエリの一例を示した図。
【図５０】特許調査における構造化文書データベースの一例を示した図。
【図５１】概念検索のための入力画面の表示例を示した図。
【図５２】図５１に示した入力画面上の入力情報に対応するクエリを示した図。
【図５３】図５２に示したクエリに対応する検索結果としてのＸＭＬ文書を示した図。
【図５４】特許マップの一例を示した図。
【図５５】本発明の実施形態に係る構造化文書管理システムの構成例を示した図。
【図５６】類似検索処理部の構成例を示した図。
【図５７】クエリ条件処理部の構成例を示した図。
【図５８】クエリ出力処理部の構成例を示した図。
【図５９】意味ネットワーク記憶部に記憶されている意味ネットワークを模式的に示した図。
【図６０】図５５の文書記憶部の構造化文書データベースの構造化文書の格納状態を模式的に示した図。
【図６１】図６０に示した構造化文書データベースに格納されている構造化文書の具体例を示した図。
【図６２】図６０に示した構造化文書データベースに格納されている構造化文書の具体例を示した図。
【図６３】図６０に示した構造化文書データベースに格納されている構造化文書の具体例を示した図。
【図６４】図６０に示した構造化文書データベースに格納されている構造化文書の具体例を示した図。
【図６５】図６０に示した構造化文書データベースに格納されている構造化文書の具体例を示した図。
【図６６】類似検索のクエリの具体例を示した図。
【図６７】クエリ条件グラフの具体例を示した図。
【図６８】クエリ出力グラフ（クエリ出力テンプレート）の具体例を示した図。
【図６９】類似語展開処理について説明するためのフローチャート。
【図７０】類似展開処理を具体的に説明するための図で、意味ネットワークを探索しながら、検索条件にて指定された語彙に類似する語彙とその類似度（語彙ウェイト）を求める方法を説明するための図。
【図７１】類似展開処理を具体的に説明するための図で、意味ネットワークを探索しながら、検索条件にて指定された語彙に類似する語彙とその類似度（語彙ウェイト）を求める方法を説明するための図。
【図７２】類似展開処理を具体的に説明するための図で、意味ネットワークを探索しながら、検索条件にて指定された語彙に類似する語彙とその類似度（語彙ウェイト）を求める方法を説明するための図。
【図７３】類似展開処理を具体的に説明するための図で、意味ネットワークを探索しながら、検索条件にて指定された語彙に類似する語彙とその類似度（語彙ウェイト）を求める方法を説明するための図。
【図７４】検索条件にて指定された語彙（構成要素名を含む）に対し類似語展開を行って、その語彙に類似する語彙と語彙ウェイトとを求めた結果を示した図。
【図７５】構造に関する類似度について説明するための図。
【図７６】オペレータ適用部の処理動作を説明するためのフローチャート。
【図７７】クエリ条件グラフに対する処理手順を説明するための図。
【図７８】検索条件にて指定された語彙（構成要素名を含む）に対し類似語展開を行った結果を示した図。
【図７９】語彙発生展開を行って得られた中間バインドテーブルＢ１を示した図。
【図８０】構造発生展開を行って得られた中間バインドテーブルＢ２を示した図。
【図８１】構造発生展開を行って得られた中間バインドテーブルＢ３を示した図。
【図８２】構造発生展開を行って得られた中間バインドテーブルＢ４を示した図。
【図８３】中間バインドテーブルＢ１に対しバインドテーブル値の集約を行う場合を説明するための図。
【図８４】中間バインドテーブルＢ５に対し上位発生展開を行う場合を説明するための図。
【図８５】中間バインドテーブルＢ６、Ｂ２を結合して中間バインドテーブルＢ７を作成する場合を説明するための図。
【図８６】中間バインドテーブルＢ７に対し上位発生展開を行た後、中間バインドテーブルＢ４と結合して、中間バインドテーブルＢ９を作成する場合を説明するための図。
【図８７】中間バインドテーブルＢ３に対し上位発生展開を行た後、中間バインドテーブルＢ９と結合して、中間バインドテーブルＢ１１を作成する場合を説明するための図。
【図８８】中間バインドテーブルＢ１１に対し、下位発生展開を行う場合を示した図。
【図８９】最終バインドテーブルを示した図。
【図９０】類似検索結果の一例を示した図。
【図９１】類似検索結果の他の例を示した図。
【符号の説明】
１…要求制御部
２…アクセス要求処理部
３…検索要求処理部
４…データアクセス部
５…文書記憶部
６…インデックス記憶部
１１…受付要求部
１２…結果処理部
２１…文書格納部
２２…文書取得部
２３…文書削除部
４１…文書オブジェクトツリー格納部
４２…文書オブジェクトツリー削除部
４３…文書オブジェクトツリー取得部
４４…文書文字列取得部
４５…パスから文書オブジェクトツリー取得部
４６…文書パーサ
４７…合成文書作成部
４８…インデックス更新部
１００…構造化文書管理システム
１０１…ＷＷＷサーバ
１０２…クライアント端末
１０３…ＷＷＷブラウザ
２００…意味ネットワーク記憶部
２０１…類似検索処理部
２０３…クエリ解析部
２０４…クエリ条件処理部
２０５…クエリ出力処理部
２１１…オペレータ適用部
２１２…基本オペレータ部
２１３…類似語展開部
２１４…語彙発生展開部
２１５…構造発生展開部
２１６…バインドテーブル値集約部
２１７…バインドテーブル結合部
２１８…上位発生展開部
２１９…下位発生展開部
２２１…ＸＭＬ出力処理部
２２２…ソート部
【図１】
0003842577.tif 000003
【図２】
0003842577.tif 000004
【図３】
0003842577.tif 000005
【図４】
0003842577.tif 000006
【図５】
0003842577.tif 000007
【図６】
0003842577.tif 000008
【図７】
0003842577.tif 000009
【図８】
0003842577.tif 000010
【図９】
0003842577.tif 000011
【図１０】
0003842577.tif 000012
【図１１】
0003842577.tif 000013
【図１２】
0003842577.tif 000014
【図１３】
0003842577.tif 000015
【図１４】
0003842577.tif 000016
【図１５】
0003842577.tif 000017
【図１６】
0003842577.tif 000018
【図１７】
0003842577.tif 000019
【図１８】
0003842577.tif 000020
【図１９】
0003842577.tif 000021
【図２０】
0003842577.tif 000022
【図２１】
0003842577.tif 000023
【図２２】
0003842577.tif 000024
【図２３】
0003842577.tif 000025
【図２４】
0003842577.tif 000026
【図２５】
0003842577.tif 000027
【図２６】
0003842577.tif 000028
【図２７】
0003842577.tif 000029
【図２８】
0003842577.tif 000030
【図２９】
0003842577.tif 000031
【図３０】
0003842577.tif 000032
【図３１】
0003842577.tif 000033
【図３２】
0003842577.tif 000034
【図３３】
0003842577.tif 000035
【図３４】
0003842577.tif 000036
【図３５】
0003842577.tif 000037
【図３６】
0003842577.tif 000038
【図３７】
0003842577.tif 000039
【図３８】
0003842577.tif 000040
【図３９】
0003842577.tif 000041
【図４０】
0003842577.tif 000042
【図４１】
0003842577.tif 000043
【図４２】
0003842577.tif 000044
【図４３】
0003842577.tif 000045
【図４４】
0003842577.tif 000046
【図４５】
0003842577.tif 000047
【図４６】
0003842577.tif 000048
【図４７】
0003842577.tif 000049
【図４８】
0003842577.tif 000050
【図４９】
0003842577.tif 000051
【図５０】
0003842577.tif 000052
【図５１】
0003842577.tif 000053
【図５２】
0003842577.tif 000054
【図５３】
0003842577.tif 000055
【図５４】
0003842577.tif 000056
【図５５】
0003842577.tif 000057
【図５６】
0003842577.tif 000058
【図５７】
0003842577.tif 000059
【図５８】
0003842577.tif 000060
【図５９】
0003842577.tif 000061
【図６０】
0003842577.tif 000062
【図６１】
0003842577.tif 000063
【図６２】
0003842577.tif 000064
【図６３】
0003842577.tif 000065
【図６４】
0003842577.tif 000066
【図６５】
0003842577.tif 000067
【図６６】
0003842577.tif 000068
【図６７】
0003842577.tif 000069
【図６８】
0003842577.tif 000070
【図６９】
0003842577.tif 000071
【図７０】
0003842577.tif 000072
【図７１】
0003842577.tif 000073
【図７２】
0003842577.tif 000074
【図７３】
0003842577.tif 000075
【図７４】
0003842577.tif 000076
【図７５】
0003842577.tif 000077
【図７６】
0003842577.tif 000078
【図７７】
0003842577.tif 000079
【図７８】
0003842577.tif 000080
【図７９】
0003842577.tif 000081
【図８０】
0003842577.tif 000082
【図８１】
0003842577.tif 000083
【図８２】
0003842577.tif 000084
【図８３】
0003842577.tif 000085
【図８４】
0003842577.tif 000086
【図８５】
0003842577.tif 000087
【図８６】
0003842577.tif 000088
【図８７】
0003842577.tif 000089
【図８８】
0003842577.tif 000090
【図８９】
0003842577.tif 000091
【図９０】
0003842577.tif 000092
【図９１】
0003842577.tif 000093