TOP > 国内特許検索 > 検索システム、情報処理装置、検索方法、プログラム及び記録媒体 > 明細書

明細書 :検索システム、情報処理装置、検索方法、プログラム及び記録媒体

発行国 日本国特許庁(JP)
公報種別 特許公報(B2)
特許番号 特許第4863410号 (P4863410)
登録日 平成23年11月18日(2011.11.18)
発行日 平成24年1月25日(2012.1.25)
発明の名称または考案の名称 検索システム、情報処理装置、検索方法、プログラム及び記録媒体
国際特許分類 G06F  17/30        (2006.01)
FI G06F 17/30 340B
G06F 17/30 110C
G06F 17/30 350C
請求項の数または発明の数 15
全頁数 20
出願番号 特願2009-516346 (P2009-516346)
出願日 平成20年5月28日(2008.5.28)
国際出願番号 PCT/JP2008/059838
国際公開番号 WO2008/146858
国際公開日 平成20年12月4日(2008.12.4)
優先権出願番号 2007145347
優先日 平成19年5月31日(2007.5.31)
優先権主張国 日本国(JP)
審査請求日 平成23年5月26日(2011.5.26)
特許権者または実用新案権者 【識別番号】504145342
【氏名又は名称】国立大学法人九州大学
発明者または考案者 【氏名】江島 賢司
【氏名】御手洗 秀一
早期審査対象出願または早期審理対象出願 早期審査対象出願
個別代理人の代理人 【識別番号】100116573、【弁理士】、【氏名又は名称】羽立 幸司
審査官 【審査官】鈴木 和樹
参考文献・文献 特開2007-004476(JP,A)
特開2006-048546(JP,A)
峯恒憲、外2名,エージェントコミュニティを利用したP2P 型情報検索,人工知能学会論文誌[online],2004年,第19巻,第5号,p.421-428,[検索日:2008/6/17][URL:http://www.jstage.jst.go.jp/article/tjsai/19/5/19_421/_article/-char/ja]
Tsunenori Mine、外2名,ACP2P: Agent-Community-based Peer-to-Peer Information Retrieval - an Evaluation,Proceedings of the Fourth International Workshop on Agents and Peer-to-Peer Computing (AP2PC2005)[online],2005年 7月26日,p.152-165, [検索日:2008/6/17][URL:http://www-al.is.kyushu-u.ac.jp/~mine/Paper/ap2pc05-pre-proceedings.pdf]
羽多野一磨、外3名,利用者の探索傾向を反映したP2P ネットワークの再構成と視覚化,第15 回データ工学ワークショップ(DEWS2004)[online],2004年 6月18日,p.1-8,[検索日:2008/6/17][URL:http://www.ieice.org/~de/DEWS/proc/2004/paper/I-2/I-2-06.pdf]
調査した分野 G06F 17/30
G06F 13/00
JSTPlus(JDreamII)
特許請求の範囲 【請求項1】
ネットワークにより互いに接続されたサーバ及び複数のノードを含み、前記ノードに入力された検索条件に基づく検索処理を行い、検索結果を表示する検索システムであって、
前記各ノードは、検索データ記憶手段と、行動履歴記憶手段と、アクセス管理手段と、行動類似度演算手段と、問い合わせ手段と、回答手段と、表示手段を備え、
前記検索データ記憶手段は、前記検索条件を用いた検索処理の対象となる複数の検索データを記憶するものであり
前記行動履歴記憶手段は、前記各ノードが前記サーバに保持されているデータにアクセスするための複数のアクセスデータを含む行動履歴データを記憶するものであり
前記行動履歴データの前記各アクセスデータは、前記複数の検索データのいずれかに対応するものであり、
前記アクセス管理手段は、自ノードが前記サーバに保持されているデータにアクセスした場合、
当該データに基づいて検索データを更新して前記検索データ記憶手段に記憶させ
当該データにアクセスするためのアクセスデータを用いて前記行動履歴データを更新して前記行動履歴記憶手段に記憶させるものであり、
前記行動類似度演算手段は、自ノードの前記行動履歴データと他ノード前記行動履歴データとの類似度を演算するものであり
前記検索条件が入力されたノードの前記問い合わせ手段は、前記行動類似度演算手段により演算された類似度に基づいて他のノードに対して検索要求を送信
前記検索要求を受信したノードの前記回答手段は、前記検索データ記憶手段に記憶された検索データを検索し前記検索要求を送信したノードに対して前記検索条件を満たす検索データのアクセスデータを送信
前記検索条件が入力されたノードの前記表示手段は、受信したアクセスデータに基づいて検索結果を表示する、検索システム。
【請求項2】
前記アクセスデータは、階層構造を有するものであり、
前記類似度演算手段は、前記アクセスデータの階層構造に基づいて、上位から下位への前方一致により類似度を演算する、請求項1に記載の検索システム。
【請求項3】
前記サーバは、ウェブサーバであり、
前記サーバに保持されているデータはウェブページであり、
前記アクセスデータはURLである、請求項2記載の検索システム。
【請求項4】
前記行動履歴データには入力された検索条件を示すデータが含まれ、
前記検索条件が入力されたノードの前記問い合わせ手段は、入力された検索条件を用いて前記行動履歴データを更新する、請求項1から3のいずれかに記載の検索システム。
【請求項5】
なくとも1つのノード前記行動履歴記憶手段に記憶された行動履歴データを保持する所在管理サーバを備え
前記検索条件が入力されたノードの前記問い合わせ手段は、前記所在管理サーバに対して、自ノードの行動履歴データと類似する行動履歴データを記憶するノードを問い合わせ、
前記所在管理サーバは、保持する行動履歴データに基づいて、問い合わせたノードの行動履歴データと類似するノードを回答し、
前記検索条件が入力されたノードの前記問い合わせ手段は、前記所在管理サーバにより回答されたノードに対して検索要求を送信する、請求項1から4のいずれかに記載の検索システム。
【請求項6】
前記複数のノードの一部は、
前記行動類似度演算手段を備えず、
前記問い合わせ手段は、検索条件が入力された場合に、前記所在管理サーバに対して類似するノードを問い合わせる、請求項5に記載の検索システム。
【請求項7】
ノードから検索要求を受信した場合に、前記検索条件に基づいて検索処理を行う検索サーバを備え
前記検索条件が入力されたノードの前記問い合わせ手段は前記検索サーバに対して前記検索要求を送信する、請求項1から6のいずれかに記載の検索システム。
【請求項8】
前記検索要求を受信したノードの前記問い合わせ手段は、受信した前記検索要求を転送するかしないかを判断し、転送するときは他のノードに対して当該検索要求を送信する、請求項1から7のいずれかに記載の検索システム。
【請求項9】
前記各ノードは、質問情報が入力された場合に、前記行動類似度演算手段により演算された類似度に基づいて他のノードに対して前記質問情報を送信する質問手段を備える、請求項1から8のいずれかに記載の検索システム。
【請求項10】
前記各ノードは、前記行動類似度演算手段により演算された類似度に基づいて、他ノードに対して、所定の条件を満たす前記検索データにアクセスするためのアクセスデータ及び/又は所定の条件を満たす前記行動履歴データに含まれるアクセスデータを送信する推薦手段を備える、請求項1から9のいずれかに記載の検索システム。
【請求項11】
入力された検索条件に基づく検索処理を行わせる情報処理装置であって、
検索データ記憶手段と、行動履歴記憶手段と、アクセス管理手段と、行動類似度演算手段と、問い合わせ手段と、回答手段を備え、
前記検索データ記憶手段は、前記検索条件を用いた検索処理の対象となる複数の検索データを記憶するものであり
前記行動履歴記憶手段は、ネットワークにより接続されたサーバに保持されているデータにアクセスするための複数のアクセスデータを含む行動履歴データを記憶するものであり、
前記行動履歴データの前記各アクセスデータは、前記複数の検索データのいずれかに対応するものであり、
前記アクセス管理手段は、前記サーバに保持されているデータにアクセスした場合、
当該データに基づいて前記検索データを更新して前記検索データ記憶手段に記憶させ
当該データにアクセスするためのアクセスデータを用いて前記行動履歴データを更新して前記行動履歴記憶手段に記憶させるものであり
前記行動類似度演算手段は、前記行動履歴記憶手段に記憶された前記行動履歴データと、ネットワークにより接続された他の情報処理装置の行動履歴記憶手段に記憶された行動履歴データとの類似度を演算するものであり
前記問い合わせ手段は、前記検索条件が入力された場合に、前記行動類似度演算手段により演算された類似度に基づいて他の情報処理装置に対して検索要求を送信
前記回答手段は、検索要求を受信した場合、検索条件を用いて前記検索データ記憶手段に記憶された検索データを検索し、当該検索要求を送信したノードに対して当該検索条件を満たす検索データのアクセスデータを送信する、情報処理装置。
【請求項12】
ネットワークにより互いに接続された複数の情報処理装置を含み、前記複数の情報処理装置のうちの一部の情報処理装置に入力された検索条件に基づく検索処理を行い、検索結果を表示する検索システムであって、
前記一部の情報処理装置は、それぞれ、検索データ記憶手段と、行動履歴記憶手段と、アクセス管理手段と、行動類似度演算手段と、問い合わせ手段と、回答手段と、表示手段を備え、
前記検索データ記憶手段は、前記検索条件を用いた検索処理の対象となる複数の検索データを記憶するものであり
前記行動履歴記憶手段は、前記複数の情報処理装置のいずれかに保持されているデータにアクセスするための複数のアクセスデータを含む行動履歴データを記憶するものであり
前記行動履歴データの前記各アクセスデータは、前記各検索データに対応するものであり、
前記アクセス管理手段は、前記複数の情報処理装置のいずれかに保持されているデータにアクセスした場合、
当該データに基づいて前記検索データを更新して前記検索データ記憶手段に記憶させ
当該データにアクセスするためのアクセスデータを用いて前記行動履歴データを更新して前記行動履歴記憶手段に記憶させるものであり
前記行動類似度演算手段は、前記行動履歴記憶手段に記憶された前記行動履歴データと他の情報処理装置の行動履歴記憶手段に記憶された行動履歴データとの類似度を演算するものであり
前記検索条件が入力された情報処理装置の前記問い合わせ手段は、前記行動類似度演算手段により演算された類似度に基づいて他の情報処理装置に対して検索要求を送信
前記検索要求を受信した情報処理装置の前記回答手段は、前記検索条件を用いて前記検索データ記憶手段に記憶された検索データを検索し、前記検索要求を送信した情報処理装置に対して前記検索条件を満たす検索データのアクセスデータを送信
前記検索条件が入力された情報処理装置の前記表示手段は、受信したアクセスデータに基づいて検索結果を表示する、検索システム。
【請求項13】
ネットワークにより互いに接続されたサーバ及び複数のノードを含む検索システムにおいて、前記ノードに入力された検索条件に基づく検索処理を行い、検索結果を表示する検索方法であって、
前記各ノードは、検索データ記憶手段と、行動履歴記憶手段と、アクセス管理手段と、行動類似度演算手段と、問い合わせ手段と、回答手段と、表示手段を備え、
前記検索データ記憶手段は、前記検索条件を用いた検索処理の対象となる複数の検索データを記憶するものであり
前記行動履歴記憶手段は、前記各ノードが前記サーバに保持されているデータにアクセスするための複数のアクセスデータを含む行動履歴データを記憶するものであり、
前記行動履歴データの前記各アクセスデータは、前記各検索データに対応するものであり、
前記アクセス管理手段は、当該ノードが前記サーバに保持されているデータにアクセスした場合に、
当該データに基づいて前記検索データを更新して前記検索データ記憶手段に記憶させ
当該データにアクセスするためのアクセスデータを用いて前記行動履歴データを更新して前記行動履歴記憶手段に記憶させるものであり
前記行動類似度演算手段は、自ノードの前記行動履歴データと他のノードの前記行動履歴データとの類似度を演算するものであり
前記検索条件が入力されたノードの前記問い合わせ手段が、前記行動類似度演算手段により演算された類似度に基づいて他のノードに対して検索要求を送信する問い合わせステップと、
記検索要求を受信したノード前記回答手段が、前記検索条件を用いて前記検索データ記憶手段に記憶された検索データを検索し、前記検索要求を送信したノードに対して前記検索条件を満たす検索データのアクセスデータを送信する回答ステップと、
前記検索条件が入力されたノードの前記表示手段が、受信したアクセスデータに基づいて検索結果を表示する提示ステップと、を含む、検索方法。
【請求項14】
コンピュータを、請求項1から10のいずれかに記載のノードとして、又は、請求項11記載の情報処理装置として機能させるためのプログラム。
【請求項15】
請求項14記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
発明の詳細な説明 【技術分野】
【0001】
本発明は、検索システム、情報処理装置、類似度演算装置、検索方法、プログラム及び記録媒体に関し、特に、ネットワークにより互いに接続された複数の情報処理装置を含み、前記複数の情報処理装置のうちの一部の情報処理装置に入力された検索条件に基づく検索処理を行い、検索結果を表示する検索システム等に関する。
【背景技術】
【0002】
従来、インターネットにおける検索サービスとしては、例えばGoogleにより行われているものがある。Googleの検索サービスでは、検索エンジンが世界中のウェブページをクロールして集め、htmlの静的なリンク関係を元に分析し、一般に多くリンクされているものを優先してランキングして表示するものである。
【0003】
また、Googleは、30万台とも推定される計算機で集中管理を行うものであり、シリコンバレーの1/4の電気を消費しているともいわれている。
【0004】

【非特許文献1】L.A.Barroso、外2名著,“Web Search for a Planet:The Google Cluster Architecture”,IEEE Micro,2003
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、Googleの検索サービスでは、例えば検索エンジン最適化(Search Engine Optimization:SEO)などで、ランキングが崩れつつある。また、動的なページが増加し、さらに、ソーシャルブックマークやSNSが台頭しているが、Googleの検索サービスでは、クロールできないため、これらに対応することは困難である。
【0006】
そこで、発明者らは、インターネットでの情報へのアクセスの仕方の局所性(例えば、時間局所性、空間局所性など)に着目した。
【0007】
ここで、時間局所性には、例えば、作成時間により認められるもの、利用者の閲覧状況により認められるものなどがある。例えば2時間前に作成されたニュース記事は、一般的に利用者の興味が高いものである。また、例えば3年前に執筆されたニュース記事は、通常、利用者の興味は認めにくいが、多くの利用者が急に読み始めたものであれば利用者の興味が高いものとしてよいであろう。また、空間局所性は、例えば、言語圏により認められるもの、などがある。例えば一般の日本人にとっては、ラトビアのウェブページは興味が少ないであろう。
【0008】
そして、発明者らは、同じ局所的な情報を見ている人同士は、興味が近いと考えた。すなわち、同じ局所的な情報を見ている人同士では、ある人は、他の人が見るページに興味を示す可能性は高く、さらに、他の人たちが注目し始めたページには特に興味を示す可能性が高いと考えたのである。
【0009】
このような局所性のある情報の分析は、Googleのように静的なhtmlのリンク構造を解析しても明確でない。閲覧している利用者の動的な行動を分析する必要がある。
【0010】
そこで、本願発明は、ネットワークでの情報へのアクセスの仕方の局所性に着目したサービスの提供に適した検索システム等を提供することを目的とする。
【課題を解決するための手段】
【0011】
請求項1に係る発明は、ネットワークにより互いに接続されたサーバ及び複数のノードを含み、前記ノードに入力された検索条件に基づく検索処理を行い、検索結果を表示する検索システムであって、前記各ノードは、検索データ記憶手段と、行動履歴記憶手段と、アクセス管理手段と、行動類似度演算手段と、問い合わせ手段と、回答手段と、表示手段を備え、前記検索データ記憶手段は、前記検索条件を用いた検索処理の対象となる複数の検索データを記憶するものであり前記行動履歴記憶手段は、前記各ノードが前記サーバに保持されているデータにアクセスするための複数のアクセスデータを含む行動履歴データを記憶するものであり前記行動履歴データの前記各アクセスデータは、前記複数の検索データのいずれかに対応するものであり、前記アクセス管理手段は、自ノードが前記サーバに保持されているデータにアクセスした場合、当該データに基づいて検索データを更新して前記検索データ記憶手段に記憶させ、当該データにアクセスするためのアクセスデータを用いて前記行動履歴データを更新して前記行動履歴記憶手段に記憶させるものであり、前記行動類似度演算手段は、自ノードの前記行動履歴データと他ノード前記行動履歴データとの類似度を演算するものであり前記検索条件が入力されたノードの前記問い合わせ手段は、前記行動類似度演算手段により演算された類似度に基づいて他のノードに対して検索要求を送信前記検索要求を受信したノードの前記回答手段は、前記検索データ記憶手段に記憶された検索データを検索し前記検索要求を送信したノードに対して前記検索条件を満たす検索データのアクセスデータを送信前記検索条件が入力されたノードの前記表示手段は、受信したアクセスデータに基づいて検索結果を表示すものである。
【0012】
請求項2に係る発明は、請求項1に記載の検索システムであって、前記アクセスデータは、階層構造を有するものであり、前記類似度演算手段は、前記アクセスデータの階層構造に基づいて、上位から下位への前方一致により類似度を演算するものである。
【0013】
請求項3に係る発明は、請求項2記載の検索システムであって、前記サーバは、ウェブサーバであり、前記サーバに保持されているデータはウェブページであり、前記アクセスデータはURLである。
【0014】
請求項4に係る発明は、請求項1から3のいずれかに記載の検索システムであって、前記行動履歴データには入力された検索条件を示すデータが含まれ、前記検索条件が入力されたノードの前記問い合わせ手段は、入力された検索条件を用いて前記行動履歴データを更新するものである。
【0015】
請求項5に係る初美絵は、請求項1から4のいずれかに記載の検索システムであって、なくとも1つのノード前記行動履歴記憶手段に記憶された行動履歴データを保持する所在管理サーバを備え前記検索条件が入力されたノードの前記問い合わせ手段は、前記所在管理サーバに対して、自ノードの行動履歴データと類似する行動履歴データを記憶するノードを問い合わせ、前記所在管理サーバは、保持する行動履歴データに基づいて、問い合わせたノードの行動履歴データと類似するノードを回答し、前記検索条件が入力されたノードの前記問い合わせ手段は、前記所在管理サーバにより回答されたノードに対して検索要求を送信するものである。
【0016】
請求項6に係る発明は、請求項5記載の検索システムであって、前記複数のノードの一部は、前記行動類似度演算手段を備えず、前記問い合わせ手段は、検索条件が入力された場合に、前記所在管理サーバに対して類似するノードを問い合わせるものである。
【0017】
請求項7に係る発明は、請求項1から6のいずれかに記載の検索システムであって、ノードから検索要求を受信した場合に、前記検索条件に基づいて検索処理を行う検索サーバを備え前記検索条件が入力されたノードの前記問い合わせ手段は前記検索サーバに対して前記検索要求を送信するものである。
【0018】
請求項8に係る発明は、請求項1から7のいずれかに記載の検索システムであって、前記検索要求を受信したノードの前記問い合わせ手段は、受信した前記検索要求を転送するかしないかを判断し、転送するときは他のノードに対して当該検索要求を送信するものである。
【0019】
請求項9に係る発明は、請求項1から8のいずれかに記載の検索システムであって、前記各ノードは、質問情報が入力された場合に、前記行動類似度演算手段により演算された類似度に基づいて他のノードに対して前記質問情報を送信する質問手段を備える。
【0020】
請求項10に係る発明は、請求項1から9のいずれかに記載の検索システムであって、前記各ノードは、前記行動類似度演算手段により演算された類似度に基づいて、他ノードに対して、所定の条件を満たす前記検索データにアクセスするためのアクセスデータ及び/又は所定の条件を満たす前記行動履歴データに含まれるアクセスデータを送信する推薦手段を備えるものである。
【0021】
請求項11に係る発明は、入力された検索条件に基づく検索処理を行わせる情報処理装置であって、検索データ記憶手段と、行動履歴記憶手段と、アクセス管理手段と、行動類似度演算手段と、問い合わせ手段と、回答手段を備え、前記検索データ記憶手段は、前記検索条件を用いた検索処理の対象となる複数の検索データを記憶するものであり前記行動履歴記憶手段は、ネットワークにより接続されたサーバに保持されているデータにアクセスするための複数のアクセスデータを含む行動履歴データを記憶するものであり、前記行動履歴データの前記各アクセスデータは、前記複数の検索データのいずれかに対応するものであり、前記アクセス管理手段は、前記サーバに保持されているデータにアクセスした場合、当該データに基づいて前記検索データを更新して前記検索データ記憶手段に記憶させ、当該データにアクセスするためのアクセスデータを用いて前記行動履歴データを更新して前記行動履歴記憶手段に記憶させるものであり前記行動類似度演算手段は、前記行動履歴記憶手段に記憶された前記行動履歴データと、ネットワークにより接続された他の情報処理装置の行動履歴記憶手段に記憶された行動履歴データとの類似度を演算するものであり前記問い合わせ手段は、前記検索条件が入力された場合に、前記行動類似度演算手段により演算された類似度に基づいて他の情報処理装置に対して検索要求を送信前記回答手段は、検索要求を受信した場合、検索条件を用いて前記検索データ記憶手段に記憶された検索データを検索し、当該検索要求を送信したノードに対して当該検索条件を満たす検索データのアクセスデータを送信するものである。
【0022】
請求項12に係る発明は、ネットワークにより互いに接続された複数の情報処理装置を含み、前記複数の情報処理装置のうちの一部の情報処理装置に入力された検索条件に基づく検索処理を行い、検索結果を表示する検索システムであって、前記一部の情報処理装置は、それぞれ、検索データ記憶手段と、行動履歴記憶手段と、アクセス管理手段と、行動類似度演算手段と、問い合わせ手段と、回答手段と、表示手段を備え、前記検索データ記憶手段は、前記検索条件を用いた検索処理の対象となる複数の検索データを記憶するものであり、前記行動履歴記憶手段は、前記複数の情報処理装置のいずれかに保持されているデータにアクセスするための複数のアクセスデータを含む行動履歴データを記憶するものであり、前記行動履歴データの前記各アクセスデータは、前記各検索データに対応するものであり、前記アクセス管理手段は、前記複数の情報処理装置のいずれかに保持されているデータにアクセスした場合、当該データに基づいて前記検索データを更新して前記検索データ記憶手段に記憶させ、当該データにアクセスするためのアクセスデータを用いて前記行動履歴データを更新して前記行動履歴記憶手段に記憶させるものであり、前記行動類似度演算手段は、前記行動履歴記憶手段に記憶された前記行動履歴データと、他の情報処理装置の行動履歴記憶手段に記憶された行動履歴データとの類似度を演算するものであり、前記検索条件が入力された情報処理装置の前記問い合わせ手段は、前記行動類似度演算手段により演算された類似度に基づいて他の情報処理装置に対して検索要求を送信し、前記検索要求を受信した情報処理装置の前記回答手段は、前記検索条件を用いて前記検索データ記憶手段に記憶された検索データを検索し、前記検索要求を送信した情報処理装置に対して前記検索条件を満たす検索データのアクセスデータを送信し、前記検索条件が入力された情報処理装置の前記表示手段は、受信したアクセスデータに基づいて検索結果を表示するものである
【0023】
請求項13に係る発明は、ネットワークにより互いに接続されたサーバ及び複数のノードを含む検索システムにおいて、前記ノードに入力された検索条件に基づく検索処理を行い、検索結果を表示する検索方法であって、前記各ノードは、検索データ記憶手段と、行動履歴記憶手段と、アクセス管理手段と、行動類似度演算手段と、問い合わせ手段と、回答手段と、表示手段を備え、前記検索データ記憶手段は、前記検索条件を用いた検索処理の対象となる複数の検索データを記憶するものであり前記行動履歴記憶手段は、前記各ノードが前記サーバに保持されているデータにアクセスするための複数のアクセスデータを含む行動履歴データを記憶するものであり、前記行動履歴データの前記各アクセスデータは、前記各検索データに対応するものであり、前記アクセス管理手段は、当該ノードが前記サーバに保持されているデータにアクセスした場合に、当該データに基づいて前記検索データを更新して前記検索データ記憶手段に記憶させ、当該データにアクセスするためのアクセスデータを用いて前記行動履歴データを更新して前記行動履歴記憶手段に記憶させるものであり前記行動類似度演算手段は、自ノードの前記行動履歴データと他のノードの前記行動履歴データとの類似度を演算するものであり前記検索条件が入力されたノードの前記問い合わせ手段が、前記行動類似度演算手段により演算された類似度に基づいて他のノードに対して検索要求を送信する問い合わせステップと、前記検索要求を受信したノード前記回答手段が、前記検索条件を用いて前記検索データ記憶手段に記憶された検索データを検索し、前記検索要求を送信したノードに対して前記検索条件を満たす検索データのアクセスデータを送信する回答ステップと、前記検索条件が入力されたノードの前記表示手段が、受信したアクセスデータに基づいて検索結果を表示する提示ステップと、を含むものである。
【0024】
請求項14に係る発明は、コンピュータを、請求項1から10のいずれかに記載のノードとして、又は、請求項11記載の情報処理装置として機能させるためのプログラムである。
【0025】
請求項15に係る発明は、請求項14記載のプログラムを記録したコンピュータ読み取り可能な記録媒体である。

【0026】
なお、ネットワークは例えばインターネットである。他の情報処理装置に保持されているデータは、例えば、ウェブページ、音声データ、画像データ、動画データ、テキストデータ、文書情報などである。検索データは例えば検索用の索引である。アクセスデータは例えばデータの所在するところを示すアドレス(URLなど)である。請求項2に記載された発明にあるように、例えば、検索データはウェブページに基づいて作成され、行動履歴データの比較は、URLの階層構造に基づいて階層の上位から下位へ前方一致により行い、完全一致を最大スコアとする部分一致により行うようにしてもよい。このような比較により、類似性を精度よく判断することができる。また、類似度演算手段は、ACオートマトンを用いて行動履歴データの比較を行うようにしてもよい。ACオートマトンを利用することにより、計算量を削減することが可能となる。
【0027】
また、検索条件が入力された場合に、回答手段が当該検索条件に基づいて検索データ記憶手段に記憶された検索データを検索し、表示手段が、前記回答手段の検索結果及びネットワークにより接続された他の情報処理手段の回答手段による回答に基づいて検索結果を提示するものであってもよい。
【0028】
さらに、検索データ記憶手段には、例えば情報処理装置が保有し他の情報処理装置による閲覧が許可されたデータやソーシャルブックマークなどに基づいて生成された検索データが記憶されるようにしてもよい。さらに、推薦手段が、他の情報処理装置に対して、このようなデータへのアクセスを推薦するようにしてもよい。
【0029】
さらに、アクセス管理手段は、例えばネットバンクのページにおいて個人情報を含まないように検索データを生成するように、指定された情報又は特定の情報を自動的に含まないように検索データ記憶手段や行動履歴記憶手段を制御するようにしてもよい。
【0030】
さらに、検索装置は、行動履歴記憶手段に記憶された行動履歴データを用いて検索処理を行い、又は、検索結果を回答するものであってもよい。
【0031】
さらに、情報処理装置に入力される検索条件は、当該情報処理装置にネットワークにより接続された情報処理端末を介して入力されたものであってもよい。この場合、当該情報処理端末が行動履歴記憶手段を有しているときは、検索処理は、当該情報処理端末の行動履歴記憶手段に記憶された行動履歴データを用いて行われるものであってもよい。また、当該情報処理端末が行動履歴記憶手段を有していないときは、検索処理は、当該情報処理装置の行動履歴記憶手段に記憶された行動履歴データを用いて行われるものであってもよい。
【発明の効果】
【0032】
本願発明によれば、閲覧する情報に基づいて興味の類似性を判断し、興味の近い人たちを結ぶ動的な興味空間を構築し、その興味空間で例えば検索、質問、推薦などのサービスを実現することができる。
【0033】
検索サービスであれば、興味の近い人たちが閲覧したページから検索結果を得ることができる。各ユーザの類似度は、各ユーザがアクセスし、また、他のユーザがアクセス可能な情報により判断される。そのため、検索サービスについて、類似度の演算から検索結果の回答まで、各ユーザがアクセスした情報という共通の情報を用いた、一貫した処理を実現することが可能となる。
【0034】
質問サービスであれば、質問者にとっては興味の近い人たちに質問して適切な解答を得ることが期待でき、さらに、解答者にとっても、質問者が自力で検索しなければ興味の近い人として認識されないことから、自力である程度調べた人からの質問であるため気分よく解答をすることができる。
【0035】
推薦サービスであれば、利用者は、興味が近い人たちからの推薦を自動的に次々と得られることとなる。利用者はその中から興味のある情報にアクセスすればよい。
【0036】
さらに、このサービスは、ピア・ツー・ピア(以下、「P2P」という。)を用いて実現可能である。集中的な管理を使用するとしても、その軽減を図ることができる。
【図面の簡単な説明】
【0037】
【図1】本願発明の実施例1に係る検索システム1の一例を示す概略ブロック図である。
【図2】図1のノード5及び7に対応するノード21の一例を示す概略ブロック図である。
【図3】図2のノード21があるウェブページを閲覧した場合の、検索用の索引と行動履歴の更新の一例を示す図である。
【図4】ノード41の行動類似度演算部が、接続可能なノード43、45及び47に対して行動履歴を要求し、要求されたノードが行動履歴を送信する動作を示す図である。
【図5】検索条件がノード41に入力された場合の検索処理の一例を示す図である。
【図6】隣人ノード43及び47に加えて、図1の検索サーバ9に対しても検索要求を行い、その検索結果を得る場合を示す図である。
【図7】ノード47による転送処理の一例を示す図である。
【図8】本願発明の実施例2に係る検索システム51の一例を示す概略ブロック図である。
【図9】図8のクライアント・ノード17及び19に対応するクライアント・ノードの一例を示す概略ブロック図である。
【図10】図9(b)のクライアント・ノード71に検索条件が入力された場合の検索処理の一例の概要を示す図である。
【図11】本願発明の実施例4に係るノード101を構成するプロセスの一例を示す図である。
【符号の説明】
【0038】
1 検索システム、3 Webサーバ、5及び7 ノード、9 検索サーバ、11 所在管理サーバ、21 ノード、23 検索データ記憶部、25 行動履歴記憶部、27 アクセス管理部、29 行動類似度演算部、31 問い合わせ部、33 回答部、35 検索結果表示部、37 質問部、39 推薦部
【発明を実施するための最良の形態】
【0039】
以下、図面を参照して、本願発明の実施の形態について説明する。
【実施例1】
【0040】
図1は、本願発明の実施例1に係る検索システム1の概略ブロック図である。検索システム1は、ウェブサーバ3と、ウェブサーバ3にアクセスしてウェブページを閲覧するノード5及び7を含むノード群(本願請求項の「一部の情報処理装置」に対応。)と、所定の検索条件につき検索処理を行う検索サーバ9(本願請求項の「検索装置」に対応。)と、ノード群のノードにアクセスするための情報を管理する所在管理サーバ11(本願請求項の「所在記憶情報処理装置」に対応。)を備える。ウェブサーバ3、ノード5及び7、検索サーバ9並びに所在管理サーバ11は、インターネットにより相互にアクセスが可能である。
【0041】
検索システム1は、ノード5又は7の利用者により入力された検索条件に基づいて、ノード5及び7の全部又は一部、さらに、必要に応じて検索サーバ9が検索処理を行い、利用者に検索結果を提示するものである。
【0042】
図2は、図1のノード5及び7に対応するノード21の概略ブロック図である。
【0043】
図2のノード21は、検索処理の対象となる検索用の索引を記憶する検索データ記憶部23と、検索用の索引にそれぞれ対応し、対応する検索用の索引を作成するために用いられたデータ(例えばウェブページ)にアクセスするための複数のURLを含む行動履歴を記憶する行動履歴記憶部25と、ウェブサーバ3のウェブページなどを閲覧した場合に、閲覧したウェブページに関する検索用の索引を作成して検索データ記憶部23を制御し、閲覧したウェブページのURLを用いて行動履歴記憶部25を制御するアクセス管理部27を備える。
【0044】
図3は、ノード21がウェブページ(http://hoge.com/huga.html)を閲覧した場合の、検索用の索引及び行動履歴の更新の一例を示す図である。アクセス管理部27は、検索データ記憶部23にhuga.htmlの索引を追加し、行動履歴としてhttp://hoge.com/huga.htmlを追加する。なお、検索データ記憶部23や行動履歴記憶部25の制御する場合に、例えば、所定の個数内に納めるようにしてもよく、また、所定の容量内に納めるようにしてもよい。
【0045】
また、図2のノード21は、他のノードの行動履歴記憶部に記憶された行動履歴と行動履歴記憶部25に記憶された行動履歴との類似度を演算し、行動履歴の類似性を判定する行動類似度演算部29を備える。図4を参照して、行動類似度演算部29の動作について説明する。
【0046】
検索システム1には、複数のノードが存在している。しかし、各ノードは、他の全てのノードの存在を必ずしも把握できない。また、例えば物理的に距離が遠くて、通信コストとの関係で接続できない(接続すべきでない)ものもある。そのため、各ノードには、接続可能なノードと接続できないノードが存在する。図4は、ノード41の行動類似度演算部29が、接続可能なノード43、45及び47に対して行動履歴を要求し、要求されたノードが行動履歴を送信する動作を示す図である。ノード41は、定期的に、接続可能なノード43、45及び47に対して行動履歴を要求し、ノード43、45及び47は行動履歴をノード41に送信する。
【0047】
行動類似度演算部29は、ノード43、45及び47から受信した行動履歴と自身の行動履歴を比較し、例えば共通する情報の数などにより類似度を演算する。例えば、行動履歴の比較は、ACオートマトンを用いて行う。すなわち、2つの行動履歴の比較において、一方の行動履歴から状態遷移を生成し、生成した状態遷移を用いて他方の状態遷移との比較を行う。このことにより、計算量が、単純に個々のデータをそれぞれ比較する方法であれば、データの個数Nに対してNのオーダーになるのに対して、ACオートマトンを利用することにより、Nのオーダーとすることが可能となる(例えば、A.V.Aho、外1名著,“Efficient String Matching:An Aid to Bibliographic Search”,Communications of the ACM18(6):333-340参照)。また、行動履歴が、URLのように階層構造により表現されている場合、行動履歴の比較は、階層の上位から下位へ前方一致により行い、完全一致を最大スコアとする部分一致により行うようにしてもよい。そして、例えば、類似度が一定以上のノード、より類似するものから順に所定の数のノードなどを選択する。以下では、選択されたノードを「隣人ノード」という。図4では、ノード43及び47が隣人ノードとして選択されたものとする。
【0048】
図2を参照して、ノード21は、利用者により検索条件が入力された場合に隣人ノードに対して検索要求を送信する問い合わせ部31と、検索要求を受信した場合に検索条件に基づいて検索データ記憶部23に記憶された検索用の索引を検索して検索条件を満たす検索用の索引に対応するウェブページのURLなどを含む検索結果を回答する回答部33と、隣人ノードの回答部から受信したURLなどに基づいて検索結果を表示する検索結果表示部35を備える。図5及び図6を参照して、問い合わせ部31と回答部33と検索結果表示部35の動作について、さらに説明する。
【0049】
図5は、検索条件がノード41に入力された場合の検索処理の一例を示す図である。検索条件が入力されたノード41の問い合わせ部31は、隣人ノード43及び47に検索要求を送信する。検索要求を受信した隣人ノード43及び47の回答部33は、検索データ記憶部23に記憶された検索用の索引を検索し、検索条件を満たす検索用の索引に対し、行動履歴記憶部に記憶された行動履歴のURLなどの検索結果をノード41に送信する。ノード41の検索結果表示部35は、ノード43及び47から受信した検索結果を集計し、集計結果を表示する。なお、ノード41の回答部33も検索処理を行い、ノード41の検索結果表示部35が、ノード43及び47から受信した検索結果に併せてノード41自身の検索結果も集計するようにしてもよい。
【0050】
図2を参照して、問い合わせ部31は、例えば検索結果の精度がよくない場合など、必要に応じて、検索サーバ9に検索要求を送信し、検索サーバ9の検索結果を得る。図6は、隣人ノード43及び47に加えて、図1の検索サーバ9に対しても検索要求を行い、その検索結果を得る場合を示す図である。なお、ノード41は検索サーバ9に対して検索要求と共に行動履歴を送信し、検索サーバ9は、ノード41の行動履歴を考慮した検索処理・検索結果の回答を行うようにしてもよい。
【0051】
図2を参照して、問い合わせ部31は、他のノードから検索要求を受信した場合に、例えば検索結果の精度がよくない場合などに、転送するかしないかを判断し、転送するときは他のノードに対して検索要求を送信する。図7を参照して、問い合わせ部31による転送処理について説明する。
【0052】
図7は、ノード47による転送処理の一例を示す図である。検索条件が入力されたノード41は、検索要求を隣人ノード43及び47に送信する。検索要求を受けた隣人ノード47は、例えば検索条件を満たす検索用の索引が少ないなど良好な検索結果が得られないような場合、自身の隣人ノード45に対し更に検索要求を送信し、その検索結果を得、これらの検索結果をノード41に送信する。このような転送処理を行うことにより、よりよい検索結果を得ることが期待できる。なお、転送処理は検索サーバ9に対して行ってもよい。また、転送処理する場合には、例えば、パスの数とIDのような情報を付加していき、類似度は検索要求者からの低減された距離としてもよい。
【0053】
図2を参照して、ノード21は、質問情報が入力された場合に、隣人ノードに対して質問情報を送信し、その回答を得て表示する質問部37を備える。この質問部37により、ノード21の利用者は、閲覧するページが似ている人たちに質問することが可能となる。例えば、ある利用者が「バビロニア」について知りたくて、いろいろと検索処理をしたとする。これにより、ノード21は、この利用者が中近東古代史に興味があると認識し、中近東古代史に興味がある他の人により使用されているノードに隣人ノードとして結びつくようになる。そして、利用者から「バビロニアに連れて行かれたユダヤ人は何人?」という質問があった場合、結び付けられた人たちにこの質問を尋ねる。すると、その人たちから「最初は3,023人で、後で10,832人」という素敵な解答を得られるであろう。これは、質問者にも解答者にもメリットがある。質問者側のメリットは質問相手が適切であることである。そのため、適切な解答が返ってくる可能性が高くなる。解答者側のメリットは、興味がある人として結びついていることから、ただの「教えてくん」と違ってきちんと自力で調べた人の質問であり、気分よく解答することができることである。
【0054】
図2を参照して、ノード21は、検索用の索引、行動履歴などに基づいて、隣人ノードに対して、頻繁に閲覧されているウェブページなどの情報を送信する推薦部39を備える。隣人ノードから推薦を受けた情報は、利用者に自動的に表示される。例えば似た興味の人たちが注目し始めたウェブページは、利用者も興味を示す可能性が高い。推薦部39により、このような利用者が興味を示す可能性が高い情報を自動的に表示することが可能となる。
【0055】
続いて、図1の所在管理サーバ11について説明する。図4を参照して説明したように、各ノードには存在を知らないために接続できないノード群が存在する。図1の所在管理サーバ11は、例えば、各ノードから行動履歴とそのアクセス方法を収集しておく。そして、各ノードは、接続可能なノード群との類似度が低い場合や検索結果の精度が悪い場合などには、この所在管理サーバ11に自身の行動履歴と類似するノードを問い合わせて、その後は直接に他のノードと通信を行う。
【0056】
なお、図2の行動履歴記憶部25に記憶される行動履歴には、入力された検索条件を示すデータが含まれてもよい。この場合、問い合わせ部31は、検索条件が入力された場合に入力された検索条件に基づいて行動履歴を更新する。また、行動履歴には、例えば、ゲームなどをプレイしたことを示す情報、クリアしたことを示す情報、利用者が行ったことのある場所の情報、利用者が購入した商品の履歴などを含むようにしてもよい。
【0057】
また、図2の行動類似度演算部29は、類似度を、例えばジャンル毎など行動履歴を区分して求めるようにしてもよい。
【0058】
さらに、図2のアクセス管理部27は、他の情報処理装置に保持されている公開されているデータ、例えばウェブページ、音声データ、画像データ、動画データ、テキストデータ、文書情報などのデータにアクセスした場合に検索データ記憶部23及び行動履歴記憶部25を制御するようにしてもよい。
【0059】
さらに、図2のアクセス管理部27は、例えばネットバンクのウェブページにおいて個人情報を含まない検索用の索引等を生成するように、指定された情報又は特定の情報を含まないように検索データ記憶部23や行動履歴記憶部25を自動的に又は指定により制御するようにしてもよい。
【0060】
さらに、図2の検索データ記憶部23には、例えば自分自身が保有し他のノードによる閲覧が許可されたデータやソーシャルブックマークなどに基づいて生成された検索用の索引等が記憶されるようにしてもよい。
【0061】
さらに、図2の検索データ記憶部23には、検索用の索引に加えて、アクセスしたデータ(例えばウェブページのhtmlなど)の全部又は一部を含み、回答部33はこれを含めて検索処理を行うようにしてもよい。
【0062】
さらに、隣人ノードを決定するタイミングは、検索条件が入力されたときに行うようにしてもよい。例えば、行動類似度演算部29は定期的に他のノードの行動履歴との類似度を演算しておき、検索条件が入力された場合に、問い合わせ部31が隣人ノードとなるノードを決定して検索要求を送信するようにしてもよい。また、行動類似度演算部29は検索条件が入力されて類似度を演算して隣人ノードとなるノードを決定してもよい。
【0063】
さらに、検索システム1は、ノード5及び7の行動履歴に基づいて、商品の広告等の情報を送信する広報サーバを備えてもよい。検索サーバ3と所在管理サーバ11と広報サーバは、例えば検索処理の際に広告等を付与して検索結果を送信するように、一つの情報処理装置が2つ以上のサーバとして機能することにより実現されるものであってもよい。また、各サーバはそれぞれ複数あってもよい。
【実施例2】
【0064】
実施例1では、各ノードは、検索処理のサーバとしてもクライアントとしても動作するものであった。実施例2は、検索処理のサーバとしてもクライアントとしても動作するノードだけでなく、クライアントとしてのみ動作するもの(以下、「クライアント・ノード」という。)も存在する場合のものである。
【0065】
図8は、本願発明の実施例2に係る検索システム51の概略ブロック図である。検索システム51は、ウェブサーバ3、ノード5及び7を含むノード群、検索サーバ9、所在管理サーバ11に加え、クライアント・ノード13及び15を含むクライアント・ノード群を備える。ウェブサーバ3、ノード5及び7、検索サーバ9、所在管理サーバ11並びにクライアント・ノード13及び15は、インターネットにより相互にアクセスが可能である。
【0066】
ノード5及び7は、図2のノード21と同様の構成である。異なる点について下記に説明する。
【0067】
図9は、図8のクライアント・ノード13及び15に対応するクライアント・ノードの一例を示す概略ブロック図である。
【0068】
図9(a)は、クライアント・ノード61が、行動履歴記憶部62とアクセス管理部63と行動類似度演算部64と問い合わせ部65と検索結果表示部66を備える場合を示す図である。この場合、クライアント・ノード61がノードと違う点は、他のノードやクライアント・ノードから検索要求を受信しないことである。そのため、クライアント・ノード61に検索条件が入力された場合の動作は、実施例1においてノード41に関して説明したことと同様のものとなる。
【0069】
図9(b)は、クライアント・ノード71が、行動履歴記憶部72とアクセス管理部73と問い合わせ部75と検索結果表示部76を備える場合を示す図である。クライアント・ノード71は行動類似度演算部を有しない。そのため、この実施例では、問い合わせ部75が他のノードに対して検索要求を送信するときに、併せて行動履歴部72に記憶された行動履歴を送信し、検索要求を受信したノードは、受信した行動履歴と類似するノードを探して検索要求を送信し、これらの検索結果をクライアント・ノード71に送信するものとする。
【0070】
図10は、図9(b)のクライアント・ノード71に検索条件が入力された場合の検索処理の一例の概要を示す図である。
【0071】
検索条件が入力されたクライアント・ノード71の問い合わせ部75は、例えば所在管理サーバ11に問い合わせて接続可能なノードを知り、検索要求を送信する。図10の場合では、接続可能なノードはノード91であったとする。このとき、クライアント・ノード71の問い合わせ部77は、行動履歴記憶部73の行動履歴を併せて送信する。検索要求を受信したノード91の行動類似度演算部29は、クライアント・ノード71の行動履歴と類似するノードを探索する。図10の場合では、類似するノードは、ノード93とノード97であったとする。ノード91の問い合わせ部31は、ノード93とノード97に検索要求を転送する。転送を受けたノード93及び97の回答部33は検索処理を行い、ノード91に検索結果を送信する。検索結果を受信したノード91は、クライアント・ノード71に検索結果を送信する。検索結果を受信したクライアント・ノード71の検索結果表示部76は、受信した検索結果を集計して表示する。
【0072】
図9(b)のクライアント・ノード71の場合に、検索システム51を以下のように捉えてもよい。ネットワークにより互いに接続され、第1の情報処理装置群及び第2の情報処理装置群の情報処理装置を含む複数の情報処理装置を含み、第1の情報処理装置群及び第2の情報処理装置群の情報処理装置に入力された検索条件に基づく検索処理を行う検索システムであって、前記第1の情報処理装置群の各情報処理装置は、検索処理の対象となる複数の検索データを記憶する検索データ記憶手段と、それぞれが前記検索データのいずれかに対応し、対応する検索データを作成するために用いられたデータにアクセスするための複数のアクセスデータを含む行動履歴データを記憶する行動履歴記憶手段と、他の情報処理装置に保持されているデータにアクセスした場合に、当該データに基づいて検索データを生成して前記検索データ記憶手段を制御し、当該データのアクセスデータに基づいて前記行動履歴記憶手段を制御するアクセス管理手段と、複数の情報処理装置の行動履歴記憶手段に記憶された行動履歴データの間の類似度を演算する行動類似度演算手段と、検索条件が入力された場合に、前記行動類似度演算手段により演算された類似度に基づいて前記第1の情報処理装置群のうちの他の情報処理装置に対して検索要求を送信する問い合わせ手段と、少なくとも前記第1の情報処理装置群の情報処理装置から検索要求を受信した場合に、前記検索条件に基づいて前記検索データ記憶手段に記憶された前記検索データを検索する回答手段と、を備え、前記第2の情報処理装置群の各情報処理装置は、アクセスしたデータの履歴を示す行動履歴データを記憶する行動履歴記憶手段と、他の情報処理装置に保持されているデータにアクセスした場合に、前記行動履歴記憶手段に記憶された行動履歴データを更新するアクセス履歴管理手段と、検索条件が入力された場合に、前記第1の情報処理装置群のうちの情報処理装置に対して検索要求を送信する問い合わせ手段と、を備えるものである。
【0073】
なお、クライアント・ノード71から検索要求を受信したノード91は、行動類似度演算部29によりクライアント・ノード71の行動履歴との類似度を演算し、類似している場合には回答部33により検索処理を行い、他のノード93や97の検索結果と併せて自身の検索結果も送信するようにしてもよい。
【0074】
また、クライアント・ノード71は、ノードに検索処理を要求する場合に、例えば所在管理サーバ11に問い合わせて自身の行動履歴と類似するノードに対して検索要求を送信するようにしてもよい。自身の行動履歴と類似するノードであれば、隣人ノードとなりうるノードを多く知っている可能性が高まり、検索処理の精度が高くなることが期待される。
【0075】
また、クライアント・ノードは、検索サーバ9に対して検索要求を送信してもよく、また、ノード91なども必要に応じて検索サーバ9に対して検索要求を送信してもよい。この場合、検索サーバ9は、検索条件だけでなく、クライアント・ノード71の行動履歴に基づいて検索結果を生成するようにしてもよい。
【0076】
さらに、検索要求を受信したノード93や97は、その隣人ノードなどに検索要求の転送処理を行って、検索処理の精度を高めるようにしてもよい。
【0077】
さらに、クライアント・ノード71は、質問部を備え、入力された質問情報をノードに送信してその解答を得るものであってもよい。また、クライアント・ノード71は他のノードなどから推薦を受けるようにしてもよい。
【0078】
図9(c)は、クライアント・ノード81が、問い合わせ部85と検索結果表示部86を備える場合を示す図である。クライアント・ノード81の利用者により、問い合わせ部85には特定のノードへのアクセス方法が設定されているとする。クライアント・ノード81に検索条件が入力された場合、問い合わせ部85は、設定されたノードへ検索要求を送信する。検索要求を受信したノードは、実施例1と同様に自身に記憶された行動履歴を利用して検索処理を行い、その検索結果をクライアント・ノード81に送信する。検索結果表示部86は、受信した検索結果を集計して表示する。
【0079】
なお、検索システム51は、ノード5及び7並びにクライアント・ノード13及び15の行動履歴に基づいて、商品の広告等の情報を送信する広報サーバを備え、広報サーバから情報を受信したノードやクライアント・ノードは、受信した情報を表示するものであってもよい。
【実施例3】
【0080】
続いて、行動履歴の比較処理について、図1を参照して、他の実施例を説明する。
【0081】
本実施例3において、各ノード5、7は、所在管理サーバ11に対して、行動履歴を定期的に送信する。そして、各ノード5、7は、検索処理にあたり、所在管理サーバ11に対して隣人ノードを問い合わせる。所在管理サーバ11は、図2の行動類似度演算部29と同様の処理により管理する各ノードの行動履歴の比較処理を行い、問い合わせたノードに対して、隣人ノードを回答する。各ノードは、隣人ノードに対して検索条件(検索クエリ)を送信し、隣人ノードは、検索結果を回答する。
【0082】
このように、行動履歴の比較処理を所在管理サーバ11で一元的に行うことにより、各ノードは、自身の行動履歴を、所在管理サーバ11以外のノードに送信する必要がなくなる。各ノードの行動履歴は個人的な情報である。サーバへの送信に対しては暗号化を用いることにより行動履歴という個人情報の秘匿が可能である。また、各ノードは個人的に使用されるものであり、そのようなノードへ行動履歴を送信しないことにより、個人情報の漏えいを防止することが可能となる。また、所在管理サーバ11により隣人ノードを求めるノードは、図2の行動類似度演算部29を備える必要がなくなる。なお、各ノードは、記憶する行動履歴のうち、所在管理サーバ11に対して送信するものを選択可能としてもよい。さらに、各ノードは、行動履歴のうち、所在管理サーバ11及び他のノードに対して送信するものを個別に選択可能としてもよい。
【実施例4】
【0083】
続いて、図1のノード5及び7の一例について、図11を参照して具体的に説明する。図11は、本願発明の実施例4に係るノード101を構成するプロセスを示す図である。ノード101は、browserプロセス103、uiプロセス105、p2pプロセス107及びsentimaniプロセス109の4つのプロセスからなる。
【0084】
browserプロセス103は、プラグインが組み込まれているブラウザのプロセスである。利用者がウェブページを閲覧したときに行動履歴を通知する。uiプロセス105は、ユーザインタフェースを表示するプロセスである。p2pプロセス107は、P2P処理をカプセル化するプロセスである。隣人ノードの管理も受け持つ。sentimaniプロセス109は、他の3プロセスと通信をしながら利用者の行動履歴を管理し、検索用の索引を作成し、検索要求への応答をするプロセスである。複数のモジュールから成り立ち、スレッドも複数持つ。sentimaniプロセス109は、図2のアクセス管理部27による処理、行動類似度演算部29による他のノードの行動履歴と自身の行動履歴との類似度(本実施例4では「sentimani距離」という。)を演算する処理、問い合わせ部31及び回答部33による処理、検索結果表示部35による隣人ノードからの検索結果を集計する処理などを行う。
【0085】
本実施例4において、索引は索引検索方式を用いて管理する。この方式はドキュメント単位での追加や削除が行えない。ドキュメントが追加されたときに、全ドキュメントの分の索引を再構築する処理は重いので現実的でない。そこで、全ドキュメントを複数の索引に分けて管理する。このときの各索引をindex_tと呼ぶ。新しい行動履歴が追加されたときは索引の再構築はせずに蓄積だけしておく。一定時間おきにsentimani距離の更新の通知が届くので、そのときに蓄積していた行動履歴の分の索引を構築する。
【0086】
キーワード検索をするときは、index_t全てに対して検索をする。検索の結果得られるのは、ドキュメントを管理している構造体のリストである。その構造体をuserpage_tと呼ぶ。
【0087】
index_tから1つのドキュメントの索引を削除するのは難しい。そこで、userpage_tに、有効・無効を表すstatusフラグを用意する。古くなった行動履歴を削除するときはstatusフラグを無効にする。index_tには索引は残っている状態である。検索の結果見つかったuserpage_tのリストからstatusフラグが有効でないものを除外すれば適切な検索結果が得られる。あるindex_tが管理しているドキュメントが全て無効になったとき、そのindex_tを破棄する。
【0088】
続いて、行動履歴の管理について説明する。userpage_tはモジュールuser_histにより管理される。user_histは新しい行動履歴を保持するために、新しく追加されたがまだ索引の構築が行なわれていない行動履歴を保持するnew_pages、索引が構築されてる有効な行動履歴を保持するvalid_pages、及び、索引は構築されているが古くなったため無効となった行動履歴を保持するinvalid_pagesという3つのリストを持つ。
【0089】
新しい行動履歴がvalid_pages又はinvalid_pagesに含まれていた場合、そのuserpage_tを有効にしてvalid_pagesの先頭に移す。また、新しい行動履歴がnew_pagesに含まれていた場合、new_pagesの先頭に移す。このため、既存のuserpage_tと新規のuserpage_tを比較する必要があり、これを管理するために辞書構造を用いる。URIの文字列をキーとする。
【0090】
全てのuserpage_tは、プログラムの再起動時に読み込まれ直す必要がある。また、プログラムが強制終了されても、再起動時には適切な状態で復元されることが望ましい。そこでuserpage_tを書き出しておくファイルuserpages.dbを用意する。
【0091】
userpages.db内のそれぞれのuserpage_tに、固定長の領域を割り当てる。また、先頭のものから順にドキュメントIDを振っていく。また、最初のuserpage_tの前にuserpage_tと同じサイズだけの領域を確保し、そこにuserpages.dbのヘッダ情報を書き込む。
【0092】
続いて、indexでの検索処理について説明する。indexは複数のindex_tを管理している。キーワード検索をするとき、これら全てに対して検索処理を行い、その結果をリストにまとめる。以下に、ひとつのindex_tでの検索時の処理について説明する。
【0093】
index_tはドキュメントID逆算配列を持っている。ドキュメントID逆算配列のひとつの要素は、ドキュメントIDと合成テキスト内での位置からなる。
【0094】
また、検索を始めるときにhitinfoという配列を確保する。hitinfo配列の要素数はそのindex_tが管理しているドキュメント数と同じである。ひとつの配列要素は、termfreqと最小ヒット位置を格納する領域の2つからなる。
【0095】
まず索引検索の結果、合成テキスト内でのヒット位置が求まる。このヒット位置がどのドキュメントのものであるかを調べるために、ドキュメントID逆算配列を探索する。ドキュメントID逆算配列は、合成テキストに格納されているドキュメントの順になっており、各ドキュメントの先頭位置がheadpos[]に格納されている。
【0096】
headpos[]を探索した結果、添字iが得られたとする。docids[i]に格納されているドキュメントIDが、検索結果のドキュメントということになる。termfreq[i]は、そのドキュメントでヒットした回数なので、これをインクリメントする。minpos[i]には、そのドキュメント内での最小ヒット位置が格納されており、既に格納されている物よりも今回のヒット位置が小さければ上書きする。
【0097】
続いて、キーワード検索kw_searchについて説明する。kw_searchではキーワード検索と結果の集計・ランキングに関する処理を行う。kw_searchは、大きく分けると2つの処理を行なう。1つ目は、利用者からの検索要求を他のノードに投げ、返ってきた結果を集計する処理である。2つ目は、隣人ノードからの検索結果に応じる処理である。
【0098】
sentimani_distは、タイマを用いて定期的にセルフノードの行動履歴リストを再構築する処理、隣人ノードからの要求に応じてセルフノードの行動履歴リストを返す処理、並びに、隣人の行動履歴リストとセルフノードの行動履歴リストを比較してsentimani距離を計算する処理を行う。
【0099】
sentimani_ctrlは、プログラム全体の起動・終了などを管理する。起動時に各モジュールの初期化処理などを呼び出す。終了時に各モジュールを解放する。sentimani_ctrlは、main関数から始まるスレッドを持っている。このスレッドは、OSからのシグナル、イベント、プログラム終了通知などに応答する。このため、sentimaniのアルゴリズムの処理などは行わず、基本的にはアイドル状態にしておく。異常が発生した場合は、他のプロセスにstopメッセージを送付し、自プロセスも終了する。
【0100】
プロセス間通信用のチャネルchannelはプロセス間通信の処理を行う。channelはオブジェクト指向で言うところのクラスに相当し、インスタンスに相当するのがui_channel、browser_channel、p2p_channelである。channelごとに、送信用と受信用のソケットを1つずつ持つ。また、channelはXMLで記述されるメッセージのエンコード・デコードも行う。
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図6】
5
【図7】
6
【図8】
7
【図9】
8
【図10】
9
【図11】
10