(57)【要約】【課題】検索要求元のユーザがアクセス権を持たないデータベース内にあるデータ要素に対する手がかりを、データベースのセキュリティを満たしつつそのユーザに提供する。【解決手段】ユーザが検索条件を入力すると、エージェント２５０が、そのユーザがアクセス権を持たない各組織Ａ，Ｂ等のデータベースに対して、それぞれ検索条件と当該組織のデータベースにアクセス権を持つ協業参加メンバのＩＤとを含む検索要求を送る。各組織の検索装置１１０は、データ要素をノードとしデータ要素同士の関係をリンクとするグラフを記憶する。各組織のプロキシ１３０は、エージェント２５０からの検索要求中の検索条件を満たすデータ要素とその検索要求中の協業参加メンバを表すデータ要素とを結ぶリンクの連鎖を検索装置１１０に検索させ、その結果に基づき、検索条件を満たすデータ要素にアクセスできる可能性がある協業参加メンバの情報をエージェント２５０に返す。【選択図】図１０
2014075107.tif 000002
【特許請求の範囲】
【請求項１】
アクセス権を持つユーザの集合がそれぞれ異なる複数のデータベースと、
検索窓口装置と、
を有し、
前記検索窓口装置は、
前記複数のデータベースの少なくとも１つに対してアクセス権を持ち、且つ当該検索窓口装置に登録されたユーザである各登録ユーザについて、当該登録ユーザがそれぞれ前記複数のデータベースのいずれに対してアクセス権を持っているのかを示すアクセス権情報を記憶する登録ユーザ記憶手段と、
検索要求元のユーザからから検索条件の入力を受けた場合に、前記複数のデータベースのそれぞれに対し、当該データベースに対してアクセス権を持つ前記登録ユーザの識別情報と、前記検索条件と、を含んだ検索要求を送信する検索要求送信手段と、
前記検索要求に対する前記複数のデータベースの各々からの応答情報に基づき、前記検索条件に適合するデータ要素に対して１以上のリンクの連鎖を介して辿れる繋がりを有する前記登録ユーザの情報を前記検索要求元のユーザに提供する検索結果提供手段と、
を有し、
前記複数のデータベースの各々は、
データ要素をノードとしデータ要素同士の関係をリンクとするグラフの情報を記憶するグラフ記憶手段であって、前記データ要素には当該データベースにアクセス権を持つユーザを表すユーザ要素が含まれる、グラフ記憶手段と、
前記検索窓口装置から前記検索要求を取得する検索要求取得手段と、
取得した検索要求中の前記検索条件に適合するデータ要素を前記グラフ記憶手段の中から検索するデータ検索手段と、
前記グラフ記憶手段から、前記データ検索手段が検索した前記検索条件に適合するデータ要素のノードと、前記検索要求に含まれる前記登録ユーザを表すユーザ要素のノードと、を結ぶ前記リンクの連鎖を探索する連鎖探索手段と、
前記連鎖探索手段の探索結果に基づき、当該データベースにアクセス権を持つ前記登録ユーザのうち、前記検索条件に適合するデータ要素のノードに対して前記リンクの連鎖により繋がっている前記登録ユーザを特定し、特定した前記登録ユーザを表す応答情報を前記検索窓口装置に応答する応答手段と、
を有する、ことを特徴とする関連検索システム。
【請求項２】
前記連鎖探索手段は、
前記検索要求に含まれる前記登録ユーザを表すユーザ要素のノード、又は前記検索要求に含まれる前記検索条件に応じて前記データ検索手段が検索した前記検索結果のデータ要素のノード、を基点ノードとし、
着目ノードに対して１つのリンクを介して接続された隣接ノードのうち当該着目ノード又は当該隣接ノードのうちの少なくとも一方があらかじめ定められた属性を有するという探索条件を満たす隣接ノードを前記グラフ記憶手段から探索する探索処理を、前記基点ノードを着目ノードとして前記探索条件を満たす隣接ノードを探索すると共に、前回の探索により求められた前記探索条件を満たす隣接ノードを次の着目ノードとして前記探索条件を満たす隣接ノードを探索する処理を繰り返すことで、前記検索要求に含まれる前記登録ユーザを表すユーザ要素のノードと、前記検索要求に含まれる前記検索条件に応じて前記データ検索手段が検索した前記検索結果のデータ要素のノードと、の間を繋ぐ前記リンクの連鎖を求める、
ことを特徴とする、請求項１に記載の関連検索システム。
【請求項３】
前記検索窓口装置は、
前記検索要求に対する前記複数のデータベースの各々からの応答情報について、それぞれ、当該応答情報が表す前記登録ユーザのノードと、前記検索条件に適合するデータ要素のノードと、を結ぶ前記リンクの連鎖のホップ数が少ないほど高くなる検索スコアを計算するスコア計算手段と、
を更に有し、
前記検索結果提供手段は、前記検索条件に適合するデータ要素に対して１以上のリンクの連鎖を介して辿れる繋がりを有する前記各登録ユーザの情報を、前記スコア計算手段により計算された前記検索スコアに基づいて順位付けして提供する、
ことを特徴とする、請求項１又は２に記載の関連検索システム。
【請求項４】
前記検索窓口装置は、
前記検索要求元のユーザと前記各登録ユーザとの親密度の情報を記憶する親密度記憶手段と、
前記検索要求に対する前記複数のデータベースの各々からの応答情報について、それぞれ、当該応答情報が表す前記登録ユーザと前記検索要求元のユーザとの親密度が高いほど高くなる検索スコアを計算するスコア計算手段と、
を更に有し、
前記検索結果提供手段は、前記検索条件に適合するデータ要素に対して１以上のリンクの連鎖を介して辿れる繋がりを有する前記各登録ユーザの情報を、前記スコア計算手段により計算された前記検索スコアに基づいて順位付けして提供する、
ことを特徴とする、請求項１又は２に記載の関連検索システム。
【請求項５】
複数のデータベースの少なくとも１つに対してアクセス権を持ち、且つ当該検索窓口装置に登録されたユーザである各登録ユーザについて、当該登録ユーザがそれぞれ前記複数のデータベースのいずれに対してアクセス権を持っているのかを示すアクセス権情報を記憶する登録ユーザ記憶手段と、
検索要求元のユーザから検索条件の入力を受けた場合に、前記複数のデータベースのそれぞれに対し、当該データベースに対してアクセス権を持つ前記登録ユーザの識別情報と、前記検索条件と、を含んだ検索要求を送信する検索要求送信手段と、
前記検索要求に対する前記複数のデータベースの各々からの応答情報に基づき、前記検索条件に適合するデータ要素に対して１以上のリンクの連鎖を介して辿れる繋がりを有する前記登録ユーザの情報を前記検索要求元のユーザに提供する検索結果提供手段と、
を有する検索窓口装置。
【請求項６】
データ要素をノードとしデータ要素同士の関係をリンクとするグラフの情報を記憶するグラフ記憶手段であって、前記データ要素には当該データベースにアクセス権を持つユーザを表すユーザ要素が含まれる、グラフ記憶手段と、
検索窓口装置から、当該データベースに対してアクセス権を持つ登録ユーザの識別情報と、検索要求元のユーザが入力した検索条件と、を含んだ検索要求を取得する検索要求取得手段と、
取得した検索要求中の前記検索条件に適合するデータ要素を前記グラフ記憶手段の中から検索するデータ検索手段と、
前記グラフ記憶手段から、前記データ検索手段が検索した前記検索条件に適合するデータ要素のノードと、前記検索要求に含まれる前記登録ユーザを表すユーザ要素のノードと、を結ぶ前記リンクの連鎖を探索する連鎖探索手段と、
前記連鎖探索手段の探索結果に基づき、当該データベースにアクセス権を持つ前記登録ユーザのうち、前記検索条件に適合するデータ要素のノードに対して前記リンクの連鎖により繋がっている前記登録ユーザを特定し、特定した前記登録ユーザを表す応答情報を前記検索窓口装置に応答する応答手段と、
を有する、ことを特徴とするデータベース。
【請求項７】
コンピュータを、
複数のデータベースの少なくとも１つに対してアクセス権を持ち、且つ当該検索窓口装置に登録されたユーザである各登録ユーザについて、当該登録ユーザがそれぞれ前記複数のデータベースのいずれに対してアクセス権を持っているのかを示すアクセス権情報を記憶する登録ユーザ記憶手段、
検索要求元のユーザから検索条件の入力を受けた場合に、前記複数のデータベースのそれぞれに対し、当該データベースに対してアクセス権を持つ前記登録ユーザの識別情報と、前記検索条件と、を含んだ検索要求を送信する検索要求送信手段、
前記検索要求に対する前記複数のデータベースの各々からの応答情報に基づき、前記検索条件に適合するデータ要素に対して１以上のリンクの連鎖を介して辿れる繋がりを有する前記登録ユーザの情報を前記検索要求元のユーザに提供する検索結果提供手段、
として機能させるためのプログラム。
【請求項８】
コンピュータを、
データ要素をノードとしデータ要素同士の関係をリンクとするグラフの情報を記憶するグラフ記憶手段であって、前記データ要素には当該データベースにアクセス権を持つユーザを表すユーザ要素が含まれる、グラフ記憶手段、
検索窓口装置から、当該データベースに対してアクセス権を持つ登録ユーザの識別情報と、検索要求元のユーザが入力した検索条件と、を含んだ検索要求を取得する検索要求取得手段、
取得した検索要求中の前記検索条件に適合するデータ要素を前記グラフ記憶手段の中から検索するデータ検索手段、
前記グラフ記憶手段から、前記データ検索手段が検索した前記検索条件に適合するデータ要素のノードと、前記検索要求に含まれる前記登録ユーザを表すユーザ要素のノードと、を結ぶ前記リンクの連鎖を探索する連鎖探索手段、
前記連鎖探索手段の探索結果に基づき、当該データベースにアクセス権を持つ前記登録ユーザのうち、前記検索条件に適合するデータ要素のノードに対して前記リンクの連鎖により繋がっている前記登録ユーザを特定し、特定した前記登録ユーザを表す応答情報を前記検索窓口装置に応答する応答手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、関連検索システム、検索窓口装置、データベース及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、グループウェアで蓄積された情報の中から特定のメンバに関連する情報を有効に検索するための装置が開示される。この装置は、ユーザから関連元が指定されると、関係データベースから、その関連元に関連する人物や文書、メール等を検索する。そして、ユーザから絞り込み情報が入力されると、その関連元についての検索結果の中から、絞り込み情報に関連するもののみを抽出し、その抽出結果をユーザに提示する。
【０００３】
特許文献２には、人脈データベースに対して、ある人物が本人の意に反して検索され、検索結果として提示されることを防止するシステムが開示されている。このシステムは、人脈繋がりの中に存在する人ごとに、自身に繋がる知人の可否を確認する人脈確認手段を備え、この人脈確認手段が検索対象者から実行され、人脈繋がりに従い検索者側へと１人ずつ遡って順次実行される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２２４９４１号公報
【特許文献２】特開２００３−３１６８８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、検索要求元のユーザがアクセス権を持たないデータベース内にあるデータ要素に対する手がかりを、そのデータベースのセキュリティを満たしつつ検索要求元のユーザに提供できるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に係る発明は、アクセス権を持つユーザの集合がそれぞれ異なる複数のデータベースと、検索窓口装置と、を有し、前記検索窓口装置は、前記複数のデータベースの少なくとも１つに対してアクセス権を持ち、且つ当該検索窓口装置に登録されたユーザである各登録ユーザについて、当該登録ユーザがそれぞれ前記複数のデータベースのいずれに対してアクセス権を持っているのかを示すアクセス権情報を記憶する登録ユーザ記憶手段と、検索要求元のユーザから検索条件の入力を受けた場合に、前記複数のデータベースのそれぞれに対し、当該データベースに対してアクセス権を持つ前記登録ユーザの識別情報と、前記検索条件と、を含んだ検索要求を送信する検索要求送信手段と、前記検索要求に対する前記複数のデータベースの各々からの応答情報に基づき、前記検索条件に適合するデータ要素に対して１以上のリンクの連鎖を介して辿れる繋がりを有する前記登録ユーザの情報を前記検索要求元のユーザに提供する検索結果提供手段と、を有し、前記複数のデータベースの各々は、データ要素をノードとしデータ要素同士の関係をリンクとするグラフの情報を記憶するグラフ記憶手段であって、前記データ要素には当該データベースにアクセス権を持つユーザを表すユーザ要素が含まれる、グラフ記憶手段と、前記検索窓口装置から前記検索要求を取得する検索要求取得手段と、取得した検索要求中の前記検索条件に適合するデータ要素を前記グラフ記憶手段の中から検索するデータ検索手段と、前記グラフ記憶手段から、前記データ検索手段が検索した前記検索条件に適合するデータ要素のノードと、前記検索要求に含まれる前記登録ユーザを表すユーザ要素のノードと、を結ぶ前記リンクの連鎖を探索する連鎖探索手段と、前記連鎖探索手段の探索結果に基づき、当該データベースにアクセス権を持つ前記登録ユーザのうち、前記検索条件に適合するデータ要素のノードに対して前記リンクの連鎖により繋がっている前記登録ユーザを特定し、特定した前記登録ユーザを表す応答情報を前記検索窓口装置に応答する応答手段と、を有する、ことを特徴とする関連検索システムである。
【０００７】
請求項２に係る発明は、前記連鎖探索手段は、前記検索要求に含まれる前記登録ユーザを表すユーザ要素のノード、又は前記検索要求に含まれる前記検索条件に応じて前記データ検索手段が検索した前記検索結果のデータ要素のノード、を基点ノードとし、着目ノードに対して１つのリンクを介して接続された隣接ノードのうち当該着目ノード又は当該隣接ノードのうちの少なくとも一方があらかじめ定められた属性を有するという探索条件を満たす隣接ノードを前記グラフ記憶手段から探索する探索処理を、前記基点ノードを着目ノードとして前記探索条件を満たす隣接ノードを探索すると共に、前回の探索により求められた前記探索条件を満たす隣接ノードを次の着目ノードとして前記探索条件を満たす隣接ノードを探索する処理を繰り返すことで、前記検索要求に含まれる前記登録ユーザを表すユーザ要素のノードと、前記検索要求に含まれる前記検索条件に応じて前記データ検索手段が検索した前記検索結果のデータ要素のノードと、の間を繋ぐ前記リンクの連鎖を求める、ことを特徴とする、請求項１に記載の関連検索システムである。
【０００８】
請求項３に係る発明は、前記検索窓口装置は、前記検索要求に対する前記複数のデータベースの各々からの応答情報について、それぞれ、当該応答情報が表す前記登録ユーザのノードと、前記検索条件に適合するデータ要素のノードと、を結ぶ前記リンクの連鎖のホップ数が少ないほど高くなる検索スコアを計算するスコア計算手段と、を更に有し、前記検索結果提供手段は、前記検索条件に適合するデータ要素に対して１以上のリンクの連鎖を介して辿れる繋がりを有する前記各登録ユーザの情報を、前記スコア計算手段により計算された前記検索スコアに基づいて順位付けして提供する、ことを特徴とする、請求項１又は２に記載の関連検索システムである。
【０００９】
請求項４に係る発明は、前記検索窓口装置は、前記検索要求元のユーザと前記各登録ユーザとの親密度の情報を記憶する親密度記憶手段と、前記検索要求に対する前記複数のデータベースの各々からの応答情報について、それぞれ、当該応答情報が表す前記登録ユーザと前記検索要求元のユーザとの親密度が高いほど高くなる検索スコアを計算するスコア計算手段と、を更に有し、前記検索結果提供手段は、前記検索条件に適合するデータ要素に対して１以上のリンクの連鎖を介して辿れる繋がりを有する前記各登録ユーザの情報を、前記スコア計算手段により計算された前記検索スコアに基づいて順位付けして提供する、ことを特徴とする、請求項１又は２に記載の関連検索システムである。
【００１０】
請求項５に係る発明は、複数のデータベースの少なくとも１つに対してアクセス権を持ち、且つ当該検索窓口装置に登録されたユーザである各登録ユーザについて、当該登録ユーザがそれぞれ前記複数のデータベースのいずれに対してアクセス権を持っているのかを示すアクセス権情報を記憶する登録ユーザ記憶手段と、検索要求元のユーザから検索条件の入力を受けた場合に、前記複数のデータベースのそれぞれに対し、当該データベースに対してアクセス権を持つ前記登録ユーザの識別情報と、前記検索条件と、を含んだ検索要求を送信する検索要求送信手段と、前記検索要求に対する前記複数のデータベースの各々からの応答情報に基づき、前記検索条件に適合するデータ要素に対して１以上のリンクの連鎖を介して辿れる繋がりを有する前記登録ユーザの情報を前記検索要求元のユーザに提供する検索結果提供手段と、を有する検索窓口装置である。
【００１１】
請求項６に係る発明は、データ要素をノードとしデータ要素同士の関係をリンクとするグラフの情報を記憶するグラフ記憶手段であって、前記データ要素には当該データベースにアクセス権を持つユーザを表すユーザ要素が含まれる、グラフ記憶手段と、検索窓口装置から、当該データベースに対してアクセス権を持つ登録ユーザの識別情報と、検索要求元のユーザが入力した検索条件と、を含んだ検索要求を取得する検索要求取得手段と、取得した検索要求中の前記検索条件に適合するデータ要素を前記グラフ記憶手段の中から検索するデータ検索手段と、前記グラフ記憶手段から、前記データ検索手段が検索した前記検索条件に適合するデータ要素のノードと、前記検索要求に含まれる前記登録ユーザを表すユーザ要素のノードと、を結ぶ前記リンクの連鎖を探索する連鎖探索手段と、前記連鎖探索手段の探索結果に基づき、当該データベースにアクセス権を持つ前記登録ユーザのうち、前記検索条件に適合するデータ要素のノードに対して前記リンクの連鎖により繋がっている前記登録ユーザを特定し、特定した前記登録ユーザを表す応答情報を前記検索窓口装置に応答する応答手段と、を有する、ことを特徴とするデータベースである。
【００１２】
請求項７に係る発明は、コンピュータを、複数のデータベースの少なくとも１つに対してアクセス権を持ち、且つ当該検索窓口装置に登録されたユーザである各登録ユーザについて、当該登録ユーザがそれぞれ前記複数のデータベースのいずれに対してアクセス権を持っているのかを示すアクセス権情報を記憶する登録ユーザ記憶手段、検索要求元のユーザから検索条件の入力を受けた場合に、前記複数のデータベースのそれぞれに対し、当該データベースに対してアクセス権を持つ前記登録ユーザの識別情報と、前記検索条件と、を含んだ検索要求を送信する検索要求送信手段、前記検索要求に対する前記複数のデータベースの各々からの応答情報に基づき、前記検索条件に適合するデータ要素に対して１以上のリンクの連鎖を介して辿れる繋がりを有する前記登録ユーザの情報を前記検索要求元のユーザに提供する検索結果提供手段、として機能させるためのプログラムである。
【００１３】
請求項８に係る発明は、コンピュータを、データ要素をノードとしデータ要素同士の関係をリンクとするグラフの情報を記憶するグラフ記憶手段であって、前記データ要素には当該データベースにアクセス権を持つユーザを表すユーザ要素が含まれる、グラフ記憶手段、検索窓口装置から、当該データベースに対してアクセス権を持つ登録ユーザの識別情報と、検索要求元のユーザが入力した検索条件と、を含んだ検索要求を取得する検索要求取得手段、取得した検索要求中の前記検索条件に適合するデータ要素を前記グラフ記憶手段の中から検索するデータ検索手段、前記グラフ記憶手段から、前記データ検索手段が検索した前記検索条件に適合するデータ要素のノードと、前記検索要求に含まれる前記登録ユーザを表すユーザ要素のノードと、を結ぶ前記リンクの連鎖を探索する連鎖探索手段、前記連鎖探索手段の探索結果に基づき、当該データベースにアクセス権を持つ前記登録ユーザのうち、前記検索条件に適合するデータ要素のノードに対して前記リンクの連鎖により繋がっている前記登録ユーザを特定し、特定した前記登録ユーザを表す応答情報を前記検索窓口装置に応答する応答手段、として機能させるためのプログラムである。
【発明の効果】
【００１４】
請求項１、５、６、７又は８に係る発明によれば、検索要求元のユーザがアクセス権を持たないデータベース内にあるデータ要素に対する手がかりを、そのデータベースのセキュリティを満たしつつ検索要求元のユーザに提供できる。
【００１５】
請求項２に係る発明によれば、検索条件に適合するデータ要素に対して、特定の属性を有するノードを介したリンクからなる連鎖を介して繋がる登録ユーザの情報を、検索要求元に提供することができる。
【００１６】
請求項３に係る発明によれば、検索条件に適合するデータ要素に対して関係が深い（ホップ数が少ない）登録ユーザから順に並べて、検索要求元に提示することができる。
【００１７】
請求項４に係る発明によれば、検索条件に適合するデータ要素に対して繋がりを持つ登録ユーザの情報を、検索要求元のユーザに親密な順に並べて提示することができる。
【図面の簡単な説明】
【００１８】
【図１Ａ】着目ノードに対して特定属性を持つノードが接続（隣接）している部分グラフを示す図である。
【図１Ｂ】着目ノードに対して特定属性を持つノードが接続（隣接）している部分グラフを示す図である。
【図２】着目ノードから特定属性を持つ隣接ノードが２つ連鎖した部分グラフを示す図である。
【図３】始点ノードから終点ノードまでの、特定属性（「人」）を持つノードを介した関係の連鎖の経路の例を示す図である。
【図４】実施の形態の検索装置の一例の機能ブロック図である。
【図５】データベースのデータ内容の一例を示す図である。
【図６】検索処理部の全体的な処理手順の一例を示すフローチャートである。
【図７】検索処理部が行う隣接ノード処理の手順の一例を示すフローチャートである。
【図８】検索処理部が求める経路情報の例を示す図である。
【図９】ソート部の処理手順の一例を示すフローチャートである。
【図１０】実施形態の関連検索システムの概要を示す図である。
【図１１】協業用のシステムが有するエージェントの機能構成の例を示す図である。
【図１２】エージェントが持つメンバ情報記憶部が記憶するデータ内容の一例を示す図である。
【図１３】各組織のシステムの機能構成の例を示す図である。
【図１４】組織のプロキシ内の検索結果保持部に保持される検索及びリンク連鎖探索の結果の一例を示す図である。
【図１５】実施形態の関連検索システムにおける検索の流れの例を示す図である。
【図１６】エージェントが検索要求元に提供する、検索結果を表示するＵＩ画面の一例を示す図である。
【図１７】検索要求元が指定した入手依頼先に対してプロキシが提供する、入手依頼に対する回答用のウェブページの表示例を示す図である。
【図１８】エージェントが検索要求元に提供する、入手依頼の結果を表示するＵＩ画面の一例を示す図である。
【発明を実施するための形態】
【００１９】
以下では、まず本実施形態の関連検索システムが用いる関連検索の一例について説明し、その後で、その関連検索を行う個別の検索システムを複数含んだ本実施形態の関連検索システムについて説明する。
【００２０】
データ要素同士の関係が構成するグラフ構造を記述する方式が知られている。例えば、事物（リソース。具体物も抽象概念を含む）同士の関係を主語、述語、目的語の組（「トリプル」と呼ばれる）で記述するＲＤＦ（Resource Description Framework）はその一例である。ＲＤＦでは、複数のトリプルにより、主語又は目的語である事物をノードとし、述語をリンク（エッジ）とするグラフが表される。また、ＲＤＦで記述されたデータを検索するコンピュータ言語として、例えばＳＰＡＲＱＬ（SPARQL Protocol and RDF Query Language）が知られている。
【００２１】
以下に示す実施の形態では、様々な事物同士の関係をＲＤＦに従って記述したデータからなるデータベースを検索する例を示す。なお、事物間の関係を表す方法はＲＤＦに限られるわけではないので、以下に示す実施の形態はＲＤＦ以外の方式でそのような関係を表すデータベースにも適用し得る。
【００２２】
この実施の形態の手法を理解しやすくするために、次のような事例を考える。
【００２３】
ユーザＡがデータベースを検索し、ある電子文書Ｘを見つけたとする。ところが、ユーザＡにはその電子文書Ｘのアクセス権がなく、中身を読むことができない。このような状況において、ユーザＡの知り合いの中にその電子文書Ｘへのアクセス権を持つ人がいれば、ユーザＡがその知り合いに頼んでその電子文書Ｘの内容を教えてもらうことも考えられる。また、ユーザＡの直接の知り合いの人物Ｂの同僚である人物Ｃの同僚である人物Ｄがその文書へのアクセス権を持っている場合には、ユーザＡは、人物Ｂの伝手により人物Ｃに接触し、更に人物Ｃの伝手により人物Ｄに接触することで、人物Ｄに電子文書Ｘの内容を教えてもらうなどの対処をとり得る。
【００２４】
また、ユーザＡの直接の知り合いの人物Ｂが参加していたＹ会議に参加していた人物Ｃがその電子文書Ｘへのアクセス権を持っている場合、人物Ｂと人物Ｃが直接の知り合いや同僚の関係にあるかは不明であるが、人物Ｂは同じ会議Ｘに参加していたという関係から人物Ｃに接触できる可能性がある。これにより、ユーザＡは、人物Ｂの伝手により人物Ｃに接触し、人物Ｃに電子文書Ｘの内容を教えてもらうなどの対処をとり得る。
【００２５】
したがって、人物を含む様々な事物や抽象概念同士の関係をＲＤＦに従って記述したデータベース内で、ユーザＡと電子文書Ｘとの間を繋ぐ、上述のような人物を介する関係の連鎖を見つけることができれば、ユーザＡはその連鎖の経路上の人物の伝手をたどって電子文書Ｘにアクセスできる可能性が出てくる。この経路は、「人である」という属性を持つ事物（例えば人物Ｂ）、又は「人である」という属性を持つ事物に対して関係を持つ事物（例えば人物Ｃが参加したＹ会議）が連鎖した経路である。なお、「Ｃは人である」というデータは、主語「Ｃ」と、述語「（目的語）という属性を有する／（目的語）のクラスのメンバである」と、目的語「人」とからなるトリプルで表現される。
【００２６】
この実施の形態では、事物間の関係の集合からなるグラフ構造を表すデータベースにおいて、そのような特定属性に関与する事物同士の関係の連鎖経路を求める。以下、このための方法の概要を説明する。
【００２７】
例えば、ユーザＡが、電子文書Ｘに関連がある「人」の連鎖を知りたいという場合には、ユーザＡは、検索装置に対して、経路検索の絞り込みの条件として、「人」という属性を有する、という条件を設定する。条件設定の方法としては、例えば、検索装置内に記憶された属性（「人」、「文書」、「会議」、「組織」など）の一覧を提示し、そこから選択させるなどの方法を用いればよい。検索装置が記憶しておく属性は、例えばＲＤＦのvocabularyに属するものなどでもよいし、検索装置内で独自に定義したものでもよい。
【００２８】
ＳＰＡＲＱＬで、例えば、「人」という属性をもったノードを検索する場合には、
Select ?p where { ?prdf:type foaf:Person . }
といった検索式を用いればよい。
【００２９】
ここで「rdf:type」とは、リソースがあるクラスのメンバ（インスタンス）であることを示すプロパティを意味する。また、「rdf:」とはＲＤＦモデル構文の名前空間を表す。この名前空間の具体的な仕様は、Ｗ３Ｃ勧告として，「RDF Vocabulary Description Language 1.0: RDF Schema」にまとめられている(http://www.w3.org/TR/rdf-schema/ 参照)。
【００３０】
同様に、「foaf:Person」とは「人」を表すリソースである。「foaf:Person」という記述は、「FOAF VocabularySpecification 0.9」に準拠したものである(http://xmlns.com/foaf/0.1/ 参照)。
【００３１】
また、ＲＤＦに従って記述されたグラフデータベースにおいて、特定のノード（以下、着目ノードと呼ぶ）を目的語として持つようなノードの検索には、着目ノードが<someUri>として記述できるとき、
Select ?n where { ?n?pred <someUri> }
といった検索式を用いればよい。
【００３２】
上述の検索式を組み合わせた例えば以下のような検索式を用いれば、着目ノードを目的語として持ち、且つ特定属性「人」を有するノード（以下では「subj-n」と表す）が検索されることになる。なお、このノードsubj-nは、着目ノード<someUri>に隣接するノードである。
＜検索式１＞
Select ?subj-n where {
?subj-n ?pred1<someUri> .
?subj-n rdf:typefoaf:Person .
}
この検索式１は、図１Ａに示すようなノードとリンクとからなる部分グラフを表している。図１Ａでは、ノードを楕円で示し、リンクをそれら楕円を結ぶ矢印で示している。すなわち、図１Ａに示す部分グラフは、「Subj-n」というノードが、<someUri>で特定されるリソースを目的語として持ち、且つ「人」という属性を有する(=foaf:Person タイプである)ことを示している。上述の検索式では、リンク（述語）「pred1」を変数としており、これにより「pred1」にはどのようなリンクでもマッチ（適合）することになる（すなわち「subj-n」と<someUri>と間の関係は限定されない）。そして、上記検索式は、ノード「Subj-n」を変数としており、上述のような部分グラフにマッチするノード「Subj-n」を検索結果とすることを示している。
【００３３】
例えば、電子文書ＸがＲＤＦデータベースにおいてリソース<someUri>として記述されているとすると、あるリソース「Subj-n」は、電子文書Ｘとあるプロパティ「pred1」(限定されない。例えば「作成する」)で記述される関係をもち、なおかつ「人」であるという条件を満たすことになる。
【００３４】
また、関係の方向性は一方向に限るものではない。例えば、以下の検索式２を用いれば、着目ノードを主語として持ち、且つ特定属性「人」を有するノード「subj-n」が検索されることになる。
＜検索式２＞
Select ?subj-n where {
<someUri> ?pred1?subj-n .
?subj-n rdf:typefoaf:Person .
}
この検索式２は、図１Ｂに示す部分グラフを表している。例えばリソース<someUri>が電子文書Ｘを表しており、「pred1」が「uploaded」(アップロードされた)という述語である場合には、ノード「subj-n」は、電子文書Ｘをアップロードした人物を示すものとなる。
【００３５】
上述の検索式１及び２のいずれかにより検索された、着目ノード（リソース）<someUri>の隣接ノード「Subj-n」は、着目ノード<someUri>に対して何らかの関係を持つ「人」を表す。
【００３６】
このようにして、上述の検索式１及び２による検索がなされると、次に、検索式１又は２のいずれかを満たすものとして検索された隣接ノード「Subj-n」の各々をそれぞれ次の繰り返し（イタレーション）における着目ノード<someUri>として扱い、同様な検索を繰り返す。このような繰り返しにより、特定属性「人」を持つノードの連鎖が生成される。例えば、図２に、２回の繰り返しにより求められるノードの連鎖「Subj-n -- Subj-n2」を示す。すなわち、図２は、着目ノード<someUri>（例えば目的とする電子文書Ｘ）に対してある関係pred1を持つ人subj-nと、その人subj-nに対してある関係pred2を持つ人subj-n2とからなる連鎖を示している。ここで、関係（述語）pred2は、例えば人物間の関係(たとえば「同僚である」)を表している。
【００３７】
なお上述の検索式１及び２は、着目ノードに隣接する隣接ノードの属性が「人」であることを示すものであるが、隣接ノードの属性が「人」でなくても着目ノードの属性が「人」であれば、連鎖を延ばすようにしてもよい。これは、最初に挙げた事例のうち、同じＹ会議に参加した人物Ｂと人物Ｃとの間を、そのＹ会議を介して連鎖させる例である。すなわち、人物Ｃ（着目ノードとする）がＹ会議（その着目ノードの隣接ノードに該当）に参加していた場合、Ｙ会議は人ではないものの、人物Ｃの次のノードとしてその連鎖の中に組み入れるのである。そして、次にＹ会議を着目ノードとしたときに、その隣接ノードである人物Ｂが、上述の検索式１にマッチすることになり、連鎖に組み入れられることになる。
【００３８】
このように、着目ノードの属性が「人」である場合の隣接ノードを検査するための検索式としては、次の検索式３及び４（それぞれ検索式１及び２の方向性に対応している）を用いればよい。
＜検索式３＞
Select ?subj-n where {
?subj-n ?pred1<someUri> .
<someUri>rdf:type foaf:Person .
}
＜検索式４＞
Select ?subj-n where {
<someUri> ?pred1?subj-n .
<someUri>rdf:type foaf:Person .
}
【００３９】
このように、（ａ）着目ノード<someUri>に対して、検索式１〜４のいずれかを満たす隣接ノードsubj-nを検索する（ｂ）検索された各隣接ノードを次の繰り返しの着目ノードとする、というステップを繰り返すことで、最初に指定された着目ノードに関して関係のあるノードの連鎖が作成される。
【００４０】
そして、この実施の形態では、このようなノードの連鎖を、それらノード間がどのような関係（リンク）であるかと共に、検索結果として提示する。
【００４１】
図３には、あるグラフデータベースに対してそのような検索を行うことで求められる、人物「あなた」から文書「Ｄｏｃ１」に至る、人を介する事物の連鎖が２つ例示されている。なお、図３では、「人」の属性を持つノードを輪郭が破線の楕円で示しており、「人」の属性を持たないノードを輪郭が実線の楕円で示している。
＜連鎖１＞
人物「あなた」の『同僚』である人物「知り合い１」→人物「知り合い１」の『同僚』である人物「誰かａ」→人物「誰かａ」が『参加』した会議「B会議」→会議「B会議」に『参加』した人物「Ｐｓｎ１」→人物「Ｐｓｎ１」が『作成』した文書「Ｄｏｃ１」
＜連鎖２＞
人物「あなた」が『参加』した会議「A会議」→会議「A会議」に『参加』した人物「誰かｂ」→人物「誰かｂ」が『所属』する組織「組織C」→組織「組織C」に『所属』する人物「Ｐｓｎ１」→人物「Ｐｓｎ１」が『作成』した文書「Ｄｏｃ１」
【００４２】
この実施の形態の検索装置は、検索を指示したユーザ「あなた」に対し、このような連鎖経路の情報を提示する。すなわち、隣接ノード群の連鎖を、各ノード、リンクの情報およびノード間の接続情報の系列として、出力する。図３を例にすると、各ノード、リンクの情報は、各ノードに対応するのが「あなた」と「知り合い」であり、リンクに対応するのが「同僚」である。ノード間の接続情報は、「同僚」という関係によって「あなた」と「知り合い」が結びつけられていることを、矢印によって示されている。
【００４３】
以上、この実施の形態の手法について概説した。次に、この手法を実現した検索装置の構成及び処理手順の例を説明する。
【００４４】
図４に、この実施の形態の検索装置の構成の一例を例示する。
【００４５】
図４の構成において、データベース１０には、データ要素同士の関係が構成するグラフ構造を表すグラフデータが記憶されている。ここでは、データ要素同士の関係をＲＤＦで表現する場合の例を用いて説明するが、この実施の形態の検索手法は、ＲＤＦ以外の方式を用いる場合に適用してもよい。
【００４６】
図５に、データベース１０に記憶されるグラフデータの一例を示す。図５に例示するデータには、主語、述語、目的語の組である「トリプル」が複数含まれている。図５に例示したグラフデータは、図３に示したグラフを表している。ただし、図５に例示するデータ形式はあくまで一例に過ぎず、データ要素間の関係を記述できるデータ形式であれば、図５に例示した形式以外の形式を用いてもよい。
【００４７】
再び図１の説明に戻ると、データベース１０は、後で説明する検索処理部２０等のグラフ検索のための機能が実装されるコンピュータに対して実装されていてもよいし、このコンピュータからインターネット等のネットワークを介して接続された別のコンピュータに実装されていてもよい。
【００４８】
基点ノード指定受付部１２は、検索のための指定項目の１つとして、ユーザから基点ノードの指定を受け付ける。基点ノードは、ユーザが検索で求めたい連鎖経路の端点のノードである。図３の例では、経路の始点ノード「あなた」と終点ノード「Ｄｏｃ１」が基点ノードに該当する。なお、始点と終点をユーザに指定させる場合、終点の方がユーザが目的とする事物であり、始点はその終点まで連鎖して欲しい事物（典型的にはそのユーザ自身）である。また、始点と終点という２つのノードを基点ノードとして指定させる代わりに、基点ノードを１つだけ指定させてもよい。例えば、文書「Ｄｏｃ１」に対して人を介して関連する事物を知りたい場合、１つのノードすなわち文書「Ｄｏｃ１」のみを基点ノードとして指定させてもよい。
【００４９】
上限ホップ数指定受付部１４は、基点ノードからの検索範囲を表す上限のホップ数（すなわち、リンクの数）の指定をユーザから受け付ける。
【００５０】
これら基点ノード指定受付部１２及び上限ホップ数指定受付部１４が、この検索装置のための検索条件を入力する検索ＵＩ（ユーザインタフェース）１６を構成している。なお、検索範囲を表す上限ホップ数の指定は必須のことではない。上限ホップ数の指定を求めない構成の場合は、検索ＵＩ１６は上限ホップ数指定受付部１４を持たなくてよい。
【００５１】
検索処理部２０は、上に概説した検索手順を実行することで、検索ＵＩ１６を介してユーザから入力された基点ノードに対して、特定属性（例えば「人」）のノードを介した関係の連鎖経路を検索する。様々な属性のうちどれを「特定属性」とするかは、検索処理部２０内に固定的に設定しておいてもよいし、上述したようにユーザに選択させるようにしてもよい。ユーザに選択させる場合には、検索ＵＩ１６に属性選択のためのＵＩを設ければよい。なお、このように「特定属性」をユーザに選択させる方式の場合、検索に用いる検索式１〜４における述語rdf:type の目的語は、選択された属性を表す値とすればよい。ソート部２２は、検索処理部２０が検索した１以上の連鎖経路を、あらかじめ定められた基準に従ってソート（順序づけ）する。例えば、ソートの基準としては、連鎖経路のホップ数の小さい順などといった基準が考えられる。
【００５２】
検索結果提示部２４は、ソート部２２のソート結果をユーザに提示（すなわち表示）する処理を実行する。検索結果提示部２４は、例えば、検索された１以上の連鎖経路をソート順に一覧表示すればよい。ただし、これは一例に過ぎず、ソート結果の提示の仕方は特に限定されない。
【００５３】
次に、図６及び図７を参照して、検索処理部２０の処理手順の一例を説明する。この例は、基点ノードとして始点と終点の２つをユーザが指定する場合の例である。
【００５４】
この手順では、図６に示すように、まず検索ＵＩ１６の基点ノード指定受付部１２により、グラフ中のノードのうち始点とするノード及び終点とするノードの指定をユーザから受け付けると共に、上限ホップ数指定受付部１４によりユーザから上限ホップ数の指定を受け付ける（Ｓ１０）。これらの指定を受け付けると、検索処理部２０は、ホップ数を表すカウンタの値を１に初期化する（Ｓ１２）。
【００５５】
次に検索処理部２０は、終点に指定されたノードを含んだ経路情報を作成し、作成した経路情報をその終点ノードと対応づけて記憶すると共に（Ｓ１４）、その終点ノードをホップ数１用の着目ノードのリスト（着目ノードリスト）に入れる（Ｓ１６）（すなわち、終点ノードを最初の着目ノードとする）。
【００５６】
ここで、経路情報は、求めたい連鎖の経路に属するノードを、その連鎖経路上でのそれらノードの並び順に並べた列の情報である。なお、連鎖経路上のリンクの情報を経路情報に含めてもよい。
【００５７】
図６及び図７の手順では、終点ノードから連鎖経路の探索を始め、条件に合致する（すなわち上述の検索式１〜４のいずれかを満たす）隣接ノードを求めるごとに、その隣接ノードを経路情報に追加していく。この探索の過程で、連鎖経路が枝分かれする場合もある。このような枝分かれが生じる場合は、枝ごとに経路情報が追加される。
【００５８】
このように終点ノードから探索を開始するのは、ユーザが目的とする終点ノードから連鎖経路を探索することで、仮に始点ノードまで連鎖する経路が見つからない場合でも、目的とする終点ノードに繋がる連鎖経路は提示できるからである。図３の例を参照すると、目的である文書「Ｄｏｃ１」から人を介した関係が連鎖して構成される連鎖経路が、仮に始点である人物「あなた」に到達しなくても、その連鎖経路上にあるいずれかの「人」に、あなたが面識を持っている（ただし、この面識の事実はグラフデータには登録されていない）可能性があるので、このような連鎖経路を提示するのには意味がある。
【００５９】
次に、検索処理部２０は、カレントの着目ノードリスト内のノードごとに、Ｓ１８〜Ｓ３０の処理を繰り返す。これまでの説明の流れでは、現時点ではカレント（すなわちホップ数＝１）の着目ノードリストに終点ノードが入っているだけなので、まずはその終点ノードを着目ノードとして、Ｓ１８〜Ｓ３０の処理を実行する。
【００６０】
カレントの着目ノードリスト内の個々の着目ノードについての処理では、検索処理部２０は、まず、着目ノードリストから未処理の着目ノードを１つ取り出し（Ｓ１８）、その着目ノードに対応づけて記憶していた経路情報を取得する（Ｓ２０）。次に検索処理部２０は、その着目ノードに対してリンクを介して隣接する（すなわち１つのリンクで接続されている）ノードをグラフからすべて（ただしＳ２０で取得した経路情報に含まれるノードは除く）抽出し、それら抽出したノード（着目ノードに対する隣接ノードと呼ぶ）を隣接ノードリストに入れる（Ｓ２２）。そして、検索処理部２０は、隣接ノードリスト内の隣接ノードごとに、隣接ノード処理（Ｓ３０）を繰り返す。
【００６１】
隣接ノード処理（Ｓ３０）の詳細な手順の一例を図８に示す。個々の隣接ノードについての処理では、検索処理部２０は、まず、隣接ノードリストから未処理の隣接ノードを１つ取り出す（Ｓ３２）。そして、取り出した隣接ノード又は着目ノードが特定属性（図３等の例では「人」）を持つかどうかを判定する（Ｓ３４）。Ｓ２２，Ｓ３２，Ｓ３４の処理は、着目ノードを<someUri>に設定して上述した検索式１〜４を実行する処理である。Ｓ３４の判定結果がＹｅｓの場合、Ｓ２０で取得した経路情報（着目ノードに対応するもの）内のノードの列の末尾に当該隣接ノードを追加することで、新たな経路情報を生成し、生成した経路情報を当該隣接ノードと対応づけて記憶する（Ｓ３６）。新たに生成した経路情報には、カレントのホップ数のカウンタ値を含める。このカウンタ値が、その経路情報の終点ノードからの長さ（ホップ数）を示している。なお、経路情報にリンクも記録する場合には、新たに生成する経路情報には、着目ノードと当該隣接ノードとを繋ぐリンクの情報も含める。次に検索処理部２０は、当該隣接ノードがＳ１０で指定された始点ノードに一致しているか否かを判定する（Ｓ３８）。一致していなければ、当該隣接ノードを、（終点ノードからみてカレントのホップ数の）次のホップ数用の着目ノードリストに入れて、処理を終了する（Ｓ４０）。一致していれば、当該隣接ノードに対応づけて記憶している経路情報に対して、「到達済み」の旨の情報を記録して処理を終了する（Ｓ４２）。なお、着目ノードに隣接するすべての隣接ノードについてＳ３２〜Ｓ４２の処理が終わると、当該着目ノードに対応する経路情報は削除してよい。
【００６２】
以上の隣接ノード処理（Ｓ３０）により、着目ノード又は隣接ノードのいずれかが特定属性（例えば「人」）を有するという条件が満たされる場合に、終点ノードから着目ノードまで延びてきている連鎖の経路に対して隣接ノードが追加されることになる。また、条件を満たす隣接ノードが複数存在する場合は、その隣接ノードの数だけ新たな連鎖経路（経路情報）が生成されることになる。
【００６３】
図６に戻ると、カレントの着目ノードリスト中の全ノードについてＳ１８〜Ｓ３０の処理が終わると、検査処理部２０は次のホップ数用の着目ノードリストが空か否かを調べ（Ｓ２４）、空でなければ、ホップ数のカウンタの値を１増加させる（Ｓ２６）。そして、カウンタの値がＳ１０で指定された上限ホップ数を超えたかどうかを判定し（Ｓ２８）、超えていなければ、カウンタが示すホップ数用の着目ノードリストについて、Ｓ１８〜Ｓ３０の処理を繰り返す。カウンタ値が上限ホップ数を超えていれば、探索を打ち切って処理を終了する。また、Ｓ２４で次のホップ数用の着目ノードリストが空である（すなわち特定属性のノードを介した連鎖がとぎれた）ことが分かった場合も、探索を打ち切って処理を終了する。
【００６４】
図６及び図７に示した処理により、終点ノードからみて、特定属性のノードを介する関係により連鎖した経路の経路情報がいくつか作成される。そのような経路情報の例を図８に示す。図８に示した表の１行が１つの経路情報である。個々の経路情報は、到達フラグ、ホップ数、及び終点ノードからの経路、の情報を含んでいる。到達フラグは、当該連鎖の経路が始点ノードまで到達したか否かを示すフラグである。到達フラグは、Ｓ４２（図７）で「到達」にセットされる。それ以外の場合は「未達」（到達していない）である。ホップ数は当該連鎖の経路のホップ数である。そして、終点ノードからの経路は、Ｓ１４及びＳ３６で追加されるノード（及び着目ノードからそのノードまでのリンク）のリストである。図８の例は、図３に示したグラフに対応するものであり、１つめの経路情報は、終点ノード「Ｄｏｃ１」を先頭とし、リンク「作成」、属性が「人」であるノード「Ｐｓｎ１」、逆向きのリンク「参加」（図８においてリンクの名称に引いた下線は逆向きを示す。なお、終点に向かう向きを順方向とした場合の逆向きである）、ノード「Ｂ会議」、…というように始点ノード「あなた」まで延びる連鎖を示している。この経路情報は、始点まで到達しているので、到達フラグの値は「到達」である。図８の３行目の経路情報は、図３には示していないが、これは始点まで到達しない連鎖の例である。
【００６５】
次に、図９を参照して、ソート部２２の処理手順の一例を説明する。ソート部２２は、検索処理部２０が図６及び図７に示した処理により生成した経路情報群（図８参照）に対して、図９の処理を行う。この処理では、ソート部２２は、それら経路情報の中に到達フラグが「到達」となっているものがあるかどうかを調べ（Ｓ５０）、「到達」済みのものが１つでもあれば、それら「到達」済みの経路情報のみをホップ数の少ない順にソートする（Ｓ５２）。すなわち、ホップ数の少ない連鎖経路ほど、上位（すなわち重要度が高い）に順位付けする。間に入る人の数が少ないほど、目的（文書「Ｄｏｃ１」）にアクセスするための労力が少なくて済む可能性が高いからである。「到達」済みのものに限るのは、「到達」済みのものがあるのであれば、「未達」の連鎖経路には価値がないからである。
Ｓ５０の判定結果がＮｏ、すなわち検索処理部２０が求めた経路情報が未達のもののみであれば、それら未達の経路情報をホップ数の少ない順にソートする（Ｓ５４）。そして、Ｓ５２又はＳ５４のソート結果を検索結果提示部２４に出力する（Ｓ５６）。検索結果提示部２４は、ソートされた連鎖経路を表示する。
【００６６】
以上、実施の形態の装置の処理手順の例を説明した。以上の例では、終点ノードから探索を行ったが、これに限らず、始点ノードから探索を行うようにしてもよい。
【００６７】
また、以上に例示した図６及び図７の手順は、ユーザから２つの基点ノード、すなわち始点及び終点の指定を受け付ける場合の例であった。ユーザから１つ基点ノードのみの指定を受け付ける場合、図６の手順はＳ１０を１つの基点ノードの指定を受け付けるように変更すればよく、図７の手順はＳ３８及びＳ４２を除く形に変更すればよい。
【００６８】
また、上述の例では、着目ノード又は隣接ノードのいずれかが特定属性を持っている場合、それら両ノード間のリンクの種類によらずその隣接ノードを連鎖経路に組み入れたが、これは一例に過ぎない。この代わりに、そのような場合でも、両ノード間のリンクがあらかじめ定められた何種類かのうちのどれかに該当しなければ、隣接ノードを連鎖経路に組み入れないようにしてもよい。例えば、図３の例では、着目ノード又は隣接ノードの少なくとも一方が特定属性「人」を持つ場合、着目ノードと隣接ノードとの間のリンク（述語）の種類が「同僚である」、「参加する」、「所属する」のいずれかに該当する場合にのみ、その隣接ノードを連鎖経路に組み入れるようにする、等の処理を行えばよい。「同僚である」、「参加する」、「所属する」等のリンクは、人同士を繋ぐ関係であるため、これらに限定して連鎖経路を延ばすのである。ただし、終点ノードが特定属性（「人」）を持たない場合（図３の終点ノード「Ｄｏｃ１」はこれに該当する）は、例外であり、終点ノードに隣接するノードが特定属性（「人」）を持てば、その隣接ノードを連鎖経路に組み入れるようにしてもよい。
【００６９】
また、以上の例では、着目ノードが特定属性（例えば「人」）を持っている場合、その着目ノードに隣接するノードは無条件に連鎖経路に追加されるが、この代わりに、そのような場合でも、隣接するノードが別の条件を満たさない限り連鎖経路に入れないようにしてもよい。例えば、隣接ノードがある一群の属性のいずれかに該当するという条件を課す等である。
【００７０】
例えば、図３の例では、「人」属性を持つノード「Ｐｓｎ１」に隣接するノードとして「Ｂ会議」、「組織Ｃ」、「Ｄｏｃ１」が例示されているが、この他にその人物「Ｐｓｎ１」が文書「Ｄｏｃ１」以外の文書（例えば「Ｄｏｃ２」と呼ぶ）を「作成」していたとする。この場合、終点ノード「Ｄｏｃ１」から探索をはじめて、「Ｐｓｎ１」が着目ノードとなった場合、（直前の着目ノード「Ｄｏｃ１」を除いて）着目ノードに隣接するノードは「Ｂ会議」、「組織Ｃ」、「Ｄｏｃ２」となる。これらはいずれも特定属性「人」を有していないが、着目ノード「Ｐｓｎ１」が「人」属性を有しているので、上述の図７の手順では、それら３つのノードがそれぞれ連鎖経路に組み入れられる。これに対し、着目ノードが特定属性を持つ場合に、隣接ノードが「人」又は「会議」又は「組織」のいずれかの属性を持つ場合に限り、その隣接ノードを連鎖経路に組み入れるという条件を課してもよい。「会議」や「組織」等といった人の集まりに該当するノードは、人同士の関係を媒介する（例えばその会議の参加者同士として知り合っている）可能性が高いため、「人」を介した関係を辿っていく場合には、「会議」等の属性のノードが間に入っても人間関係が辿れる可能性が高い。これに対し、人物「Ｐｓｎ１」が「作成」した文書「Ｄｏｃ２」を別の人物「Ｐｓｎ２」が「閲覧」したという関係があったとして、人物「Ｐｓｎ１」と「Ｐｓｎ２」とが知り合いである可能性は高いとはいえない。そのようなことから、「人」でないノードは、人間関係を媒介する事物であることを示す属性（「会議」、「組織」など）の集合のうちのいずれかの属性を持つ場合にのみ、連鎖経路に組み入れられるように限定した方がよい場合がある。このように限定した場合、「文書」属性を持つ「Ｄｏｃ２」は連鎖経路に組み入れられない。
【００７１】
また、以上の例では、連鎖の条件とする特定属性が「人」である場合を示したが、他の属性を特定属性として用いてもよい。
【００７２】
以上の例では、図４の検索装置の検索ＵＩ１６には、ユーザが、検索条件として、１つ又は２つの基点ノードを指定したが、これは一例に過ぎない。この代わりに、例えば、基点ノードとするデータ要素が持つべき属性に関する条件（例えば、属性の値又はその範囲、複数の属性の値又は範囲の組合せ等）を検索条件として指定するようにしてもよい。この場合、検索処理部２０は、その検索条件に合致する属性を有するデータ要素をデータベース１０から検索し、検索したデータ要素を基点ノードとして、上述のように、その基点ノードに繋がるリンクの連鎖を探索する。このとき、例えば、検索要求を行ったユーザに対応するノードをデフォルトで一方の基点ノードとし、この基点ノードと、属性に関する検索条件により検索されたデータ要素のノード（すなわちもう一方の基点ノード）との間でのリンクの連鎖を検索するようにしてもよい。
【００７３】
以上、本実施形態において用いる関連検索方式の一例、及びその関連検索方式を実行する個別の検索装置（図４参照）の一例について説明した。次に、そのような検索装置を複数含んだ本実施形態の関連検索システムの一例を説明する。
【００７４】
図１０に、この実施形態の関連検索システムの一例の構成を示す。この例では、複数の組織Ａ、Ｂ、・・・の各々が、当該組織のネットワークのシステム１００Ａ、１００Ｂ、・・・（以下、区別する必要がない場合には「システム１００」と総称する）内に、図４に例示した検索装置（図１０では「検索装置１１０」と表示）を備えている。個々の組織Ａ、Ｂ、・・・は、企業や役所、団体等のように、複数の人から構成された社会的システムである。各組織のメンバは、それぞれ自分が属する組織のシステム１００（及びその中にある検索装置１１０）に対するアクセス権を持っており、当該組織１００にアクセスして検索等のサービスを受ける。
【００７５】
ここで、これら個々の組織Ａ、Ｂ、・・・が、例えばある事業のために、協業（コラボレーション）する場合を考える。各組織Ａ、Ｂ、・・・から協業に参加するのは、当該組織の構成員全員の場合もあればその一部である場合もある。協業は、協業するメンバ同士が実際に集まって進めることもあれば、情報システム上で仮想的に集まったり情報交換を行ったりしながら進めることもある。このような協業のための、例えば仮想的な場の提供、情報交換機能、情報の蓄積や再利用の機能等といった、支援や管理のために、協業用のシステム２００が構築されている。このシステム２００には、図４に例示したものと同等の機能を有する検索装置２１０を設けてもよい。
【００７６】
協業に参加するメンバは、情報を必要とする場合、協業用のシステム２００にて検索を行うが、必要な情報がそのシステム２００内にあるとは限らず、協業に参加している個々の組織Ａ、Ｂ、・・・内のシステム１００Ａ、１００Ｂ、・・・に存在する場合もある。ここで、その検索を行うメンバは、自分の出身組織のシステム１００にはアクセス権があるのでその中の情報を検索できるが、他の組織のシステム１００にはアクセス権がないのでその中の情報は検索できない。そこで、協業用のシステム２００内に、そのメンバに代わって各組織のシステム１００に対して検索要求を行うエージェント２５０を設ける。各組織のシステム１００は、エージェント２５０に対してアクセス権を付与する。これにより、エージェント２５０は、各組織のシステム１００にアクセス可能となり、検索要求を行うことが可能となる。
【００７７】
ただし、エージェント２５０は、各組織のシステム１００内の検索装置１１０に直接アクセスして検索を行うのではない。システム１００のセキュリティを保護するために、各システム１００にはそれに対応するプロキシ１３０が設けられており、エージェント２５０はそのプロキシ１３０に対して検索要求を送る。プロキシ１３０は、その検索要求を検索装置１１０に取り次ぎ、これに応じて検索装置１１０が実行した検索の結果を受け取る。
【００７８】
典型的な例では、エージェント２５０は、協業のメンバの属する組織のプロキシ１３０に対し、そのメンバを特定する情報と検索条件とを含む検索要求を送る。１つの組織の複数の人が協業に参加している場合、検索要求には、それら複数のメンバを特定する情報と検索条件とを含めればよい。この検索要求に応じ、その組織の検索装置１１０はその検索条件を満たすデータ要素を検索し、更に、検索したデータ要素とそのメンバとの間を繋ぐリンクの連鎖を求め、求めた連鎖をプロキシ１３０に返す。
【００７９】
検索装置１１０が求めた検索結果（リンクの連鎖の情報）は、当該組織の内部の情報であり、これらをすべてエージェント２５０に提供するのは、セキュリティ上好ましくない場合が多い。そこで、プロキシ１３０は、その検索結果のうち、当該システム１００の外部（この場合は協業用のシステム２００）に出してよい情報のみを抽出し、エージェント２５０に返す。この例では、それら協業参加メンバのうち、検索条件に該当するデータ要素との間でリンクの連鎖による繋がりがある者が誰であるかを示す応答をエージェント２５０に返す。当該組織から協業に参加しているメンバが誰であるかは協業用のシステム２００にも既知の情報であり、またこの例では、検索条件に合致したデータ要素自体や、その参加メンバとそのデータ要素との間のリンクの連鎖などといった内部情報は組織の外に出さないので、組織内の情報セキュリティは守られる。
【００８０】
エージェント２５０は、複数の組織Ａ、Ｂ、・・・の各々のプロキシ１３０からの応答をとりまとめ、その結果を検索結果として、検索要求元のユーザに対して提供する。このユーザは、その検索結果を参照することで、協業に参加しているどのメンバに連絡を取れば、検索条件に合致する情報を入手できる可能性があるかが分かる。検索要求元のユーザと検索結果に示されるメンバとは、共に協業に参加しており、互いを知っている可能性が高い。検索要求元のユーザは、検索結果に示されるメンバに例えば電子メールや電話等で連絡を取り、検索対象の情報の入手を依頼する。
【００８１】
ここで、この入手の依頼をエージェント２５０が受け付け、該当する組織のプロキシ１３０を介して該当メンバに通知するようにしてもよい。この場合、プロキシ１３０は、検索要求に対する検索装置１１０の検索結果を記憶しておき、エージェント２５０から入手依頼を受け取った場合に、依頼先のメンバに対して検索結果、すなわち当該メンバとその検索要求の検索条件に合致するデータ要素（例えば文書ファイル）との間のリンクの連鎖の情報を提示するようにしてもよい。入手依頼先のメンバは、その提示された情報を参照することで、そのデータ要素に対する自分の関係を把握し、そのデータ要素を自分が実際に入手できるかどうか、及びそのデータ要素が外部（協業先の他の組織の人）に出してよい情報なのかどうか、を判断する。そして、そのデータ要素が入手でき、かつ外部に出してよいと最終的に判断できた場合、その依頼先のメンバは、そのデータ要素をプロキシ１３０経由で協業用のシステム２００へとアップロードし、検索要求元のユーザへと提供する。
【００８２】
以上、本実施形態の関連検索システムの概要を説明した。次に、このシステムの詳細な例を説明する。
【００８３】
図１１に、協業用のシステム２００が備えるエージェント２５０の機能構成の例を示す。例示のエージェント２５０は、検索条件取得部５１、外部検索処理部５３、メンバ情報記憶部５５、検索結果提示部５７及び入手依頼処理部５９を有する。
【００８４】
検索条件取得部５１は、協業用のシステム２００内の検索装置２１０に対してユーザが入力した検索条件を取得する。この検索要求元のユーザは、協業のメンバであり、システム２００に対するアクセス権を持っている。入力される検索条件は、検索したいデータ要素の属性を特定する条件である。例えば、検索したいデータ要素が文書ファイルである場合、その文書ファイルのファイル名、文書のタイトル、その文書に付与されたキーワード等である。例えば、検索要求元のユーザは、検索装置２１０が提供する検索用のウェブページにアクセスし、そのウェブページに検索条件を入力し、検索を指示する。検索要求元のユーザが、協業用のシステム２００の検索装置２１０に対して検索条件を入力すると、エージェント２５０に対してその検索条件を渡し、各組織のシステム１００への検索要求の発行を依頼する。
【００８５】
ここで、検索装置２１０は、自身が有するデータベース１０（図４参照）に対し、その検索条件に対応する検索を実行してもよい。このとき検索装置２１０が実行する検索は、例えば、その検索条件に適合するデータ要素を自身のデータベース１０から、求めたデータ要素と検索要求元のユーザとの間を繋ぐリンクの連鎖を、データベース１０に記憶されたデータ要素同士のリンク状況を示すグラフから求める。もちろん、両者を繋ぐリンクの連鎖が存在しない場合もあり、その場合にはそのような連鎖は検索できない。なお、協業用のシステム２００に検索装置２１０が含まれない場合は、エージェント２５０が協業メンバから検索条件の入力を受け付ければよい。
【００８６】
検索条件取得部５１は、取得した検索条件を外部検索処理部５３に渡す。外部検索処理部５３は、その検索条件を含んだ検索要求を、各組織のプロキシ１３０宛に送る。なお、各プロキシ１３０のＩＰアドレス等、通信のために必要な各プロキシ１３０の情報は、あらかじめエージェント２５０に登録されている。
【００８７】
ここで、各組織のプロキシ１３０宛の検索要求には、それぞれ、当該組織１００のメンバのうち協業に参加しているメンバを特定する情報を含める。例えば、組織１００Ａに対しては、協業の参加メンバのうちその組織１００Ａに属する人の識別情報と、検索条件とを含んだ検索要求を送る。
【００８８】
このような検索要求の発行のために、外部検索処理部５３は、メンバ情報記憶部５５を参照する。メンバ情報記憶部５５は、協業用のシステム２００に登録されたメンバの情報、特に各メンバがそれぞれどの組織の出身であるのかを示す情報を記憶している。
【００８９】
図１２にメンバ情報記憶部５５が記憶するデータ内容の一例を示す。この例では、メンバ情報記憶部５５には、協業に参加するメンバごとに、そのメンバの協業用システム２００におけるユーザＩＤ（識別情報）及びユーザ名、そのメンバの所属する組織（出身組織）の識別情報、及びその所属組織における当該メンバのユーザＩＤの情報が登録されている。
【００９０】
外部検索処理部５３は、協業に参加している組織ごとに、その組織に属する協業参加メンバの当該組織におけるユーザＩＤを、メンバ情報記憶部５５から求める。そして、求めた各メンバのユーザＩＤと、検索条件取得部５１が取得した検索条件とを含む検索要求を作成し、インターネット等の通信ネットワークを介して、当該組織のプロキシ１３０宛に送信する。また、外部検索処理部５３は、その検索要求に対する各組織のプロキシ１３０からの応答を受け取り、検索結果提示部５７に渡す。
【００９１】
検索結果提示部５７は、検索要求に対する各プロキシ１３０からの応答をとりまとめて検索結果の表示画面を作成し、検索要求元のメンバに対して提供する。各プロキシ１３０からの応答は、それぞれ当該プロキシ１３０が属する組織の協業参加メンバのうち、検索条件に適合するデータ要素とグラフ上の繋がりを持つ人の情報である。検索結果提示部５７は、それら応答の情報のリストを含んだ検索結果画面を、検索要求元のユーザに提供する。
【００９２】
検索結果提示部５７の提示する検索結果画面には、各組織のシステム１００から回答された、「検索条件に合致するデータ要素（例えば文書）にアクセスできる可能性のある協業参加メンバ」が一覧表示される。検索要求元のユーザは、その検索結果画面中のその一覧の中から、その検索条件に合致するデータ要素の入手を依頼したい依頼先の協業参加メンバを指定する。これに応じ、入手依頼処理部５９は、その依頼先が属する組織のプロキシ１３０に対して、そのデータ要素の入手依頼を送信する。なお、検索結果画面に一覧表示される各プロキシ１３０からの応答（すなわち「検索条件に合致するデータ要素（例えば文書）にアクセスできる可能性のある協業参加メンバ」）の各々には、それぞれ応答元のプロキシ１３０が付与した一意な検索結果ＩＤ（詳細は後述）が含まれているので、入手依頼処理部５９は、検索要求元のユーザがデータ要素入手の依頼先として選択した応答に対応する検索結果ＩＤを含む入手依頼を、その応答の元であるプロキシ１３０に送る。
【００９３】
そして、この入手依頼に対して依頼先からプロキシ１３０経由でデータ要素が協業用のシステム２００に提供されると、その旨が入手依頼処理部５９を介して検索結果提示部５７の検索結果画面に表示される。検索要求元のユーザは、この表示を経由して、提供されたデータ要素にアクセスする。
【００９４】
次に、図１３を参照して、各組織が有するプロキシ１３０の機能構成の例を説明する。図１３には、図４に例示した検索装置（図１３では符号１１０で示す）も示している。
【００９５】
プロキシ１３０において、検索要求取得部３２は、協業用のシステム２００のエージェント２５０から検索要求を取得する。
【００９６】
エージェント２５０からの検索要求には、前述のように、検索したいデータ要素を特定する検索条件と、当該組織から協業に参加しているメンバのユーザＩＤとが含まれている。検索要求取得部３２は、検索装置１１０の検索処理部２０に対してその検索条件を渡し、その検索条件を満たすデータ要素を記憶装置１０内から検索させる。検索条件を満たすデータ要素が記憶装置１０内から見つからない場合は、検索処理部２０はその旨をプロキシ１３０に応答する。この「検索条件に該当するものなし」という応答は、検索結果保持部３４に保持され、検索結果応答部３６によりエージェント２５０に対して送られる。
【００９７】
検索条件を満たすデータ要素が１以上見つかった場合、検索要求取得部３２は、そのように検索された検索条件を満たすデータ要素を一方の基点ノードとし、検索要求に含まれている協業参加メンバを表すデータ要素のノードをもう一方の基点ノードとして、それら両基点ノードを結ぶリンクの連鎖（すなわちリンクの連鎖からなる経路）の探索を検索処理部２０に指示する。
【００９８】
この探索指示を受けた検索処理部２０は、指定されたそれら２つの基点ノードの間を結ぶ、特定属性（例えば「人（である）」）を持つデータ要素に関係するリンクの連鎖を、図６及び図７に例示する手順により求める。ここで、エージェント２５０からの検索要求に複数の協業参加メンバのユーザＩＤが含まれる場合には、それら個々の協業参加メンバごとに、そのメンバを表すノードと、検索条件を満たすデータ要素のノードとを結ぶリンクの連鎖を求める。また、検索条件を満たすデータ要素が複数検索された場合には、それら検索条件を満たすデータ要素の各々について、当該データ要素のノードと、協業参加メンバのノードとを結ぶリンクの連鎖を探索する。
【００９９】
検索要求に含まれている協業参加メンバと検索条件を満たすデータ要素とを繋げるリンク連鎖が一つも見つからなかった場合は、検索処理部２０はその旨をプロキシ１３０に回答する。この回答に応じ、検索結果応答部３６は、「検索条件に該当するものなし」という応答をエージェント２５０に対して返す。
【０１００】
また、検索要求に含まれる協業参加メンバと検索条件を満たすデータ要素との間のリンクの連鎖が１以上検索されると、それら１以上の検索されたリンクの連鎖が検索結果として検索処理部２０からプロキシ１３０に送られ、検索結果保持部３４に格納される。ここで、検索されたリンク連鎖は、一方の基点ノードである協業参加メンバごとにグループ化し、当該グループに対して付与した一意な検索結果ＩＤに対応づけて格納するようにしてもよい。
【０１０１】
検索結果保持部３４が保持する検索結果の情報の一例を図１４に示す。この例では、検索結果保持部３４には、検索結果ＩＤに対応づけて、リンク連鎖の一方の基点ノードである協業参加メンバのユーザ名（図では、データ要素の入手の依頼先になりうるという意味で「依頼先候補」と表記）、もう一方の基点ノードである検索条件を満たすデータ要素の識別情報（図示例では「Ｄｏｃ１」）、及びそれら両基点ノードを結ぶ１以上のリンク連鎖からなるグループが記憶されている。例えば、検索結果ＩＤ「０１０００１」の行のデータは、図３に例示するよう、協業参加メンバ「Ａ−ａ」（図３では「あなた」と表記）と検索条件を満たすデータ要素「Ｄｏｃ１」との間を結ぶリンク連鎖が２つ見つかった場合の例である。また、図１４の例では、この他に、協業参加メンバ「Ａ−ｂ」及び「Ａ−ｆ」のそれぞれについて、データ要素「Ｄｏｃ１」との間のリンク連鎖が１つずつ見つかっている。エージェント２５０から受け取った検索要求ごとに、図１４に例示するような検索結果のリストが検索結果保持部３４内に記憶されることになる。
【０１０２】
検索結果応答部３６は、検索結果保持部３４に保持された検索結果の情報から、検索条件を満たすデータ要素に対してリンク連鎖を介して繋がっている協業参加メンバを特定する。例えば、そして、特定した協業参加メンバがそのデータ要素を入手できる可能性がある旨を示すメッセージを作成し、このメッセージと検索結果ＩＤ（検索結果保持部３４内で、当該協業参加メンバのリンク連鎖のグループに対応づけられていたもの）とを含む応答情報をエージェント２５０に送る。図１４の例では、協業参加メンバ「Ａ−ａ」、「Ａ−ｂ」及び「Ａ−ｆ」のそれぞれについて、それら各メンバがそのデータ要素を入手できる可能性がある旨を示すメッセージが作成され、それら各メッセージがそれぞれ対応する検索結果ＩＤ「０１０００１」、「０１０００２」、「０１０００３」と対応づけてエージェント２５０に送られる。
【０１０３】
このように、プロキシ１３０は、外部のエージェント２５０に対し、検索されたリンク連鎖そのものを提供することはせず、検索条件を満たすデータ要素にアクセスできる可能性のある協業参加メンバの情報のみを提供する。
【０１０４】
このプロキシ１３０からの応答情報は、エージェント２５０にて他のプロキシ１３０からの同じ検索要求に対する応答ととりまとめられ、検索要求元のユーザに検索結果として提示される。この検索結果の中から、検索要求元のユーザがデータ要素の入手依頼先を選択すると、選択された入手依頼先に対応する検索結果ＩＤを含んだ入手依頼がエージェント２５０の入手依頼処理部５９からプロキシ１３０に到来する。この入手依頼を受けて、プロキシ１３０の入手依頼処理部３８は、その依頼に含まれる検索結果ＩＤに対応する検索結果の情報を検索結果保持部３４に求める。そして、その検索結果に含まれる依頼先の協業参加メンバに対し、データ要素の入手依頼を通知する。この通知には、依頼主（検索要求元のユーザ）を特定する情報（例えばユーザ名）、入手対象のデータ要素を特定する情報（例えば文書名）、及び当該通知先（依頼先）の協業参加メンバとそのデータ要素とを結ぶリンク連鎖の情報が含まれる。依頼先のメンバは、これらの情報を参照することで、依頼対象のデータ要素を依頼主に提供してよいかどうかを判断する。そして、提供可能と判断した場合には、リンク連鎖の情報を参考に「人」を介した繋がりを辿ってそのデータ要素のアクセス権を有するユーザ（例えばそのデータ要素を「作成」した人）を特定し、特定したユーザに対してデータ要素の提供を依頼する。この依頼によりそのユーザからそのデータ要素が（例えば電子メールに添付して送信したり、データベース１０内で当該依頼先メンバに対してアクセス権が設定されたりすることにより）提供された場合は、その依頼先メンバは、そのデータ要素をプロキシ１３０の入手依頼処理部３８に送る。入手依頼処理部３８は、受け取ったデータ要素をエージェント２５０の入手依頼処理部５９に送る。入手依頼処理部５９は、受け取ったデータ要素を、入手を依頼したユーザ（検索要求元）に対して提供する。
【０１０５】
次に、図１５〜図１８を参照して、検索及びデータ要素の入手の流れの例を説明する。
【０１０６】
まず、協業に参加している検索要求元のユーザが協業用のシステム２００の検索システム２１０にログインする。これに応じ、検索システム２１０は、検索条件の入力や検索結果の提示のための検索ＵＩ（ユーザインタフェース）画面を、例えばウェブページの形で、その検索要求元が操作するＰＣ（パーソナルコンピュータ）に提供する。
【０１０７】
図１６にその検索ＵＩ画面３００の一例を示す。この検索ＵＩ画面３００には、検索条件入力欄３０２、検索ボタン３０４、及び外部データベース（この例では各組織のシステム１００内のデータベース１０）の検索結果を表示する外部検索結果表示欄３０６が含まれる。この例では、検索対象のデータ要素は文書ファイルであり、検索条件入力欄３０２には、検索したい文書の名称（の全部又は一部）の文字列を入力するものとする。ただし、これは一例に過ぎない。例えば、文書ファイル以外でも検索要求元のユーザに対して提供可能なデータ要素であれば、どのようなものでも検索及び提供の対象としてよい。また、検索条件入力欄３０２は、検索対象のデータ要素が有する複数の属性についての組合せを入力できるようにしてもよい。
【０１０８】
検索要求元のユーザが検索システム２１０にログインした際の検索ＵＩ画面３００では、検索条件入力欄３０２及び外部検索結果表示欄３０６が共に空欄である。検索要求元のユーザが検索条件入力欄３０２に検索条件（例えば文書名）を入力し、ポインティングデバイス等の操作により検索ボタン３０４を押下すると、その検索条件がそのユーザのＰＣから検索システム２１０に送られ、検索処理が開始される。この処理において、検索システム２１０は、エージェント２５０にその検索条件を渡し、外部の各組織のシステム１００Ａ、１００Ｂ、・・・への問合せを依頼する（図１５のＳ０）。
【０１０９】
この依頼に応じ、エージェント２５０は、各組織のシステム１００に対して検索要求を送る（Ｓ１）。この検索要求には、協業参加メンバのうち宛先の組織に所属するメンバのユーザＩＤと、検索条件とが含まれている。
【０１１０】
エージェント２５０からの検索要求は、各組織のシステム１００内のプロキシ１３０により受信される。プロキシ１３０は、その検索要求に含まれる検索条件を満たすデータ要素を検索システム１１０に検索させる。また、プロキシ１３０は、その検索の結果得られた検索条件を満たすデータ要素のノードと、検索要求に含まれるユーザＩＤに対応する人（すなわち当該組織に属する協業参加メンバ）を表すデータ要素のノードと、を結ぶリンクの連鎖を検索システム１１０に探索させる（Ｓ２）。これに応じ、検索システム１１０は、図６及び図７の処理手順を実行することにより、それら両ノード間を結ぶリンクの連鎖を探索する。
【０１１１】
検索システム１１０は、その検索及びリンク連鎖探索の結果をプロキシ１３０に返す（Ｓ３）。返される結果は、例えば、図１４に例示した情報である。
【０１１２】
プロキシ１３０は、検索システム１１０から返されてきた検索及び探索の結果求められた協業参加メンバごとのリンク連鎖の情報を、図１４に示すように検索結果ＩＤに対応づけて検索結果保持部３４に記憶する。
【０１１３】
また、プロキシ１３０は、その検索及び探索の結果から応答情報を生成し、生成した応答情報をエージェント２５０へ返す（Ｓ４）。ここで、プロキシ１３０が生成する応答情報は、検索により求められたデータ要素に関する詳細な情報やリンクの連鎖そのものの内容を含まない。応答情報に含まれるのは、当該検索システム１１０内のデータベース１０に保持されるグラフ情報において、当該組織に所属する協業参加メンバのうちの誰が、検索条件を満たすデータ要素に対して特定属性（例えば「人」）に関係する１以上のリンクを介して繋がっているのかを表す情報である。また、応答情報には、各協業参加メンバが、図１４に示した検索結果保持部３４に記憶されたどの検索結果ＩＤに対応するかを示す情報と、その応答情報がどの組織のプロキシ１３０からのものかを示す情報が含まれる。なお、検索条件を満たすデータ要素が見つからなかった場合、又は、検索条件を満たすデータ要素と当該組織に所属する協業参加メンバとの間を結ぶリンクの連鎖が１つも見つからなかった場合には、応答情報は、「検索条件に該当するものが見つからなかった」旨を表すものとすればよい。
【０１１４】
各組織のプロキシ１３０から応答情報を受け取ったエージェント２５０は、それら応答情報をとりまとめて検索ＵＩ画面３００に表示する（Ｓ５）。図１６の例は、この時点での画面の例である。すなわち、図１６の例では、検索要求元のユーザが検索条件入力欄３０２に入力した検索条件に対する各プロキシ１３０からの応答の一覧が、外部検索結果表示欄３０６に示されている。この例では、例えば組織Ａからの協業参加メンバＡ−ａと、組織Ｃ（図示省略）からの協業参加メンバＣ−ｃとが、それぞれその検索条件に合致するデータ要素に対してリンクの連鎖により繋がっていることを、「Ａ−ａさんと関連がある可能性があります」及び「Ｃ−ｃさんと関連がある可能性があります」というメッセージにより表現している。各メッセージの右隣には、それぞれ入手依頼ボタン３０８が表示される。なお、各入手依頼ボタン３０８は、それぞれ、対応するメッセージの元になった応答情報の内容（検索結果ＩＤ及び応答元のプロキシ１３０を特定する情報）が関連付けられている。
【０１１５】
以上が、検索及びリンク連鎖探索の処理の流れである。次に、検索要求元のユーザが、これら検索及び探索の結果を利用して、検索されたデータ要素（例えば文書ファイル）を入手する流れを説明する。
【０１１６】
検索要求元のユーザは、外部検索結果表示欄３０６（図１６参照）に表示されたメッセージの一覧を見て、どのメッセージに示される協業参加メンバにそのデータ要素の入手を依頼するかを決定し、入手依頼先に決定した協業参加メンバに対応する入手依頼ボタン３０８を、ポインティングデバイス等を用いて押下する。この操作に応じ、エージェント２５０は、押下された入手依頼ボタン３０８に応答元のプロキシ１３０に対して、その入手依頼ボタン３０８に対応する検索結果ＩＤと、入手依頼を行ったユーザ（すなわち検索要求元）を特定する情報（ユーザ名又はユーザＩＤ等）を含んだ入手依頼情報を送信する。
【０１１７】
この入手依頼情報を受け取ったプロキシ１３０は、その入手依頼情報に含まれる検索結果ＩＤに対応する情報（図１４参照）を検索結果保持部３４から取得し、取得した情報に含まれる「依頼先候補」のユーザに対し、入手依頼を送る。入手依頼は、例えば、依頼回答用のウェブページ（図１７参照）のＵＲＬ（Uniform Resource Locator）とデータ要素の入手依頼メッセージとを含んだ電子メールを送付するなどの方法で、その依頼先のユーザに送ればよい。
【０１１８】
なお、外部検索結果表示欄３０６に表示される協業参加メンバのうちの複数に対して入手依頼を行うことができるようにしてもよい。
【０１１９】
入手依頼を受けた依頼先のユーザは、自分のＰＣから依頼回答用のウェブページにアクセスする。ここでは、組織Ａに属する協業参加メンバ「Ａ−ａ」に対して入手依頼が行われたとする。この場合、依頼回答用のウェブページ４００は例えば図１７に示すようなものとなる。この例では、依頼元（この例では、組織Ｂに属する協業参加メンバ「Ｂ−ｂ」）からデータ要素の入手依頼があったことを示すメッセージ４０１と、入手依頼対象の一覧４０２とが含まれる。この一覧４０２には、入手依頼対象のデータ要素の識別情報及び題名属性（例えば文書ファイルの名称及びタイトル属性）４０４と、選択ボタン４０６と、アップロードボタン４０８とが表示されている。依頼先のユーザが、その一覧の中のあるデータ要素に対応する選択ボタン４０６を押下すると、そのデータ要素とそのユーザとのグラフ上での関係（リンクの連鎖）が、関係表示欄４１０に表示される。図１７の例では、このユーザは、左端のノード「あなた」であり、検索されたデータ要素（文書「Ｄｏｃ１」）に対して、２つの経路を介して関係を持っていることが分かる。
【０１２０】
依頼先のユーザ「Ａ−ａ」は、この関係表示欄４１０の表示を見ることで、目的のデータ要素「Ｄｏｃ１」を、自ら直接入手できるか、又は当該組織Ａ内の自分の知り合いを介してそのデータ要素を入手できそうか、判断することができる。
【０１２１】
直接入手できる場合（例えば自分がそのデータ要素「Ｄｏｃ１」を「作成」したことを示すリンクがある場合）は、依頼先のユーザ「Ａ−ａ」はそのデータ要素の内容を知っている（或いは確認できる）ので、そのデータ要素を依頼元の協業参加メンバ「Ｂ−ｂ」に提供してよいかを自ら判断できる。
【０１２２】
また、知り合いを介して入手する必要がある場合は、その知り合いに対してそのデータ要素を協業参加メンバ「Ｂ−ｂ」に提供してよいかどうかを問い合わせ、提供に対する了解が得られた場合には、その知り合いからそのデータ要素を入手すればよい。プロキシ１３０がこの問合せを仲介してもよい。
【０１２３】
また、目的のデータ要素「Ｄｏｃ１」を提供できる人（図１７の例では「Ｐｓｎ１」）が依頼先のユーザ「Ａ−ａ」の直接の知り合いでない場合には、関係表示欄４１０に示されたリンク連鎖上の直接の知り合い（例えば「誰かａ」）の伝手を辿って、その提供可能な人「Ｐｓｎ１」に対して同様の問合せを行い、入手を試みてもよい。
【０１２４】
このようにして依頼先のユーザが、目的のデータ要素を入手でき、依頼元へ提供してよいと判断できた場合、そのユーザは、図１７の依頼回答用のウェブページ４００上で、目的のデータ要素に対応するアップロードボタン４０８を押下する。これにより、例えばアップロード対象のファイルの選択画面が表示され、依頼先ユーザは、この画面に表示された自分のＰＣ内のファイルの中から、アップロードする入手済みのデータ要素を選択する。この操作に応じ、プロキシ１３０は、そのデータ要素をエージェント２５０にアップロードする。
【０１２５】
エージェント２５０は、アップロードされたデータ要素を保存すると共に、検索要求元のユーザ用の検索ＵＩ画面３００に対して、入手依頼したデータ要素が提供されたことを表示する。例えば、エージェント２５０（検索結果提示部５７）は、図１８に例示するように、提供文書一覧３１０を含む検索ＵＩ画面３００を生成し、検索要求元のユーザのＰＣに対して提供する。提供文書一覧３１０には、入手依頼に応じてアップロードされたデータ要素ごとに、そのデータ要素の識別情報（文書ファイル名等）と閲覧ボタン３１２とが表示される。閲覧ボタン３１２は、保存されたそのデータ要素のファイルへとリンクされている。検索要求元のユーザは、提供文書一覧３１０に表示されたデータ要素の中からその内容を閲覧したいものを選び、選んだデータ要素に対応する閲覧ボタン３１２を押下する。これにより、その閲覧ボタン３１２に関連付けられたデータ要素のファイルが呼び出され、画面に表示される。
【０１２６】
以上、実施形態の処理の流れの例を説明した。以上の例では、協業用のシステム２００が提供する検索ＵＩ画面３００には、各組織のシステム１００からの検索及び探索の結果（外部検索結果表示欄３０８）のみを表示したが、これは一例に過ぎない。例えば、当該システム２００内の検索システム２１０にも同じ検索条件で検索を行わせ、検索により見つかったデータ要素と検索要求元のユーザとの間のリンクの連鎖を探索し、この検索及び探索の結果を検索ＵＩ画面３００内に表示してもよい。表示する内容は、例えば、図１７の関係表示欄４１０に表示されたものと同様のものでよい。
【０１２７】
また、変形例として、エージェント２５０は、検索要求に応じて各プロキシ１３０から返されてきた応答情報に含まれる個々の応答項目（すなわち、検索条件を満たすデータ要素にアクセスできそうなのはどの協業参加メンバかを示す情報であり、検索結果ＩＤが付随している）を順位付けし、順位の高い順にソートして検索ＵＩ画面３００に提示するようにしてもよい。
【０１２８】
この順位付けは、例えば、検索要求元のユーザと、応答情報に含まれる個々の検索結果ＩＤに係る協業参加メンバと、の間の親密度に従って行ってもよい。このために、エージェント２５０は、協業参加メンバ同士の間の親密度のデータベースを保持していてもよい。この場合、エージェント２５０は、各プロキシ１３０からの応答情報内の個々の検索結果ＩＤが示す応答項目について、検索要求元のユーザである協業参加メンバと、当該検索結果ＩＤに対応する協業参加メンバとの間の親密度をそのデータベースから求め、求めた親密度が高いほど高くなるスコアをその応答項目に付与する。そして、それら応答項目をスコアが高い順にソートし、外部検索結果表示欄３０８に表示する。
【０１２９】
親密度のデータベースは、例えば、各協業参加メンバが、それぞれ他の協業参加メンバとの親密度を登録することにより構築してもよい。また、別の例として、協業用のシステム２００を介した協業参加メンバ同士の通信（例えば電子メールのやりとり、電子掲示板の投稿やそれに対するレスポンス）の頻度を集計し、その頻度に応じて親密度を求めてデータベースに登録するようにしてもよい。
【０１３０】
また、上述したソート部２２におけるソートと同様の考え方で、リンク連鎖経路のホップ数に応じ、応答項目の順位付けのためのスコアを求めてもよい。すなわち、探索により求められたリンク連鎖のホップ数が少ないほど、そのリンク連鎖に対応する応答項目のスコアを高くするのである。これは、リンク連鎖のホップ数が少ないほど、当該リンク連鎖の一方の端点である協業参加メンバから他方の端点である検索条件を満たすデータ要素にアクセスしやすいと考えられるからである。このようなリンク連鎖のホップ数に基づく順位付けを行うには、例えば、プロキシ１３０がホップ数に応じたスコア付けを行い、そのスコアをエージェント２５０に提供すればよい。この方式では、例えば、プロキシ１３０は、個々の応答項目（検索結果ＩＤ）に対応するリンク連鎖のホップ数を計算し、そのホップ数が少ないほど高くなるようにあらかじめ定めた関係式に従ってそのホップ数に対応するスコアを求める。そして、そのスコアを各検索結果ＩＤに対応づけて応答情報に含め、エージェント２５０に提供する。なお、１つの検索結果ＩＤに対応する応答項目に複数のリンク連鎖が含まれている場合（例えば、図１４の検索結果ＩＤ「０１０００１」の応答項目）、それら複数のリンク連鎖のうち最もホップ数の少ないものからスコアを計算すればよい。
【０１３１】
また、上述した親密度に基づくスコアとホップ数に基づくスコアを総合した総合スコアに基づき、各応答項目を順位付けしてもよい。
【０１３２】
以上に例示した検索装置１１０、２１０、プロキシ１３０及びエージェント２５０は、それぞれ、例えば、汎用のコンピュータに上述の各機能モジュールの処理を表すプログラムを実行させることにより実現してもよい。ここで、コンピュータは、例えば、ハードウエアとして、ＣＰＵ等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）を制御するＨＤＤコントローラ、各種Ｉ／Ｏ（入出力）インタフェース、ローカル・エリア・ネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばＩ／Ｏインタフェース経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。
【符号の説明】
【０１３３】
１０  データベース、１２  基点ノード指定受付部、１４  上限ホップ数指定受付部、１６  検索ＵＩ、２０  検索処理部、２２  ソート部、２４  検索結果提示部、３２  検索要求取得部、３４  検索結果保持部、３６  検索結果応答部、３８  入手依頼処理部、５１  検索条件取得部、５３  外部検索処理部、５５  メンバ情報記憶部、５７  検索結果提示部、５９  入手依頼処理部、１００Ａ，１００Ｂ  各組織のシステム、１１０  検索装置、１３０  プロキシ、２００  協業用のシステム、２１０  検索装置、２５０  エージェント。
【図１Ａ】
2014075107.tif 000003
【図１Ｂ】
2014075107.tif 000004
【図２】
2014075107.tif 000005
【図３】
2014075107.tif 000006
【図４】
2014075107.tif 000007
【図５】
2014075107.tif 000008
【図６】
2014075107.tif 000009
【図７】
2014075107.tif 000010
【図８】
2014075107.tif 000011
【図９】
2014075107.tif 000012
【図１０】
2014075107.tif 000013
【図１１】
2014075107.tif 000014
【図１２】
2014075107.tif 000015
【図１３】
2014075107.tif 000016
【図１４】
2014075107.tif 000017
【図１５】
2014075107.tif 000018
【図１６】
2014075107.tif 000019
【図１７】
2014075107.tif 000020
【図１８】
2014075107.tif 000021