JP2010055608A - インターネット検索結果のキャッシングのための方法、記憶媒体及びシステム - Google Patents

インターネット検索結果のキャッシングのための方法、記憶媒体及びシステム Download PDF

Info

Publication number
JP2010055608A
JP2010055608A JP2009183190A JP2009183190A JP2010055608A JP 2010055608 A JP2010055608 A JP 2010055608A JP 2009183190 A JP2009183190 A JP 2009183190A JP 2009183190 A JP2009183190 A JP 2009183190A JP 2010055608 A JP2010055608 A JP 2010055608A
Authority
JP
Japan
Prior art keywords
binary decision
search
binary
decision diagram
query
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009183190A
Other languages
English (en)
Other versions
JP5402370B2 (ja
Inventor
Jawahar Jain
ジャイン ジャワハー
Stergios Stergiou
ステルギオウ ステリオス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2010055608A publication Critical patent/JP2010055608A/ja
Application granted granted Critical
Publication of JP5402370B2 publication Critical patent/JP5402370B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】後の検索のためにインターネット検索結果をキャッシュに格納することを可能にする方法等を提供する。
【解決手段】複数のワードの異なる1つを夫々表す複数の第1の二分決定ダイアグラム(BDD)が構成される。複数の検索クエリの異なる1つを夫々表す複数の第2のBDDが構成される。各検索クエリには、1又はそれ以上のワードが含まれる。複数のウェブページの異なる1つを夫々表す複数の第3のBDDが構成される。複数の検索結果の異なる1つを夫々表す複数の第4のBDDが構成される。各検索結果には、1又はそれ以上のウェブページが含まれる。複数の検索タプルの異なる1つを夫々表す複数の第5のBDDが構成される。各検索タプルには、検索クエリの異なる1つと、検索結果のことなる1つとが含まれる。検索クエリ及び検索結果を表す第6のBDDが構成される。
【選択図】図7A

Description

本開示は、概して、インターネット検索結果のキャッシングに関する。
インターネントは膨大な量の情報を包含する。様々なウェブサイトにある様々なウェブページが、斯かる情報の大半を包含する。通常は、特定の情報を見つけ出すべく、ヒトは検索エンジンにより情報を検索する。ヒトは、捜し求められている情報を表す検索クエリを供給する。検索クエリを用いると、検索エンジンは、1又はそれ以上の検索アルゴリズムに基づいてインターネット上で検索を行い、捜し求められている情報を包含しそうなウェブページのリストを返す。ウェブページのリストは、検索クエリの検索結果である。
ヒトは、様々なときに同じような情報を見つけることを望む。インターネット上の全てのウェブページ(又はそのサブセット)の中から特定の情報を検索することは、利用可能なウェブページの数が多いために、しばしば多大な時間を要する。斯かる検索をより効率的にする1つの方法は、インターネット検索結果をキャッシュに格納して、後にそれらを用いて同じような検索のために検索結果を提供することである。
本発明は、後の検索のためにインターネット検索結果をキャッシュに格納することを可能にする方法、コンピュータ読出可能な記憶媒体、及びシステムを提供することを目的とする。
本発明の一実施形態に従う方法は、
1又はそれ以上のコンピュータシステムによって複数の第1の二分決定ダイアグラムを構成し、該第1の二分決定ダイアグラムの夫々は複数のワードの異なる1つを表し、該ワードの夫々は一意のワード識別子を有し、各第1の二分決定ダイアグラムは当該第1の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成されるステップと、
前記1又はそれ以上のコンピュータシステムによって複数の第2の二分決定ダイアグラムを構成し、該第2の二分決定ダイアグラムの夫々は複数の検索クエリの異なる1つを表し、該検索クエリの夫々は前記ワードの1又はそれ以上を有し、各第2の二分決定ダイアグラムは当該第2の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第1の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記1又はそれ以上のコンピュータシステムによって複数の第3の二分決定ダイアグラムを構成し、該第3の二分決定ダイアグラムの夫々は複数のウェブページの異なる1つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第3の二分決定ダイアグラムの夫々は当該第3の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成されるステップと、
前記1又はそれ以上のコンピュータシステムによって複数の第4の二分決定ダイアグラムを構成し、該第4の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる1つを表し、該検索結果の夫々は前記ウェブページの1又はそれ以上を有し、各第4の二分決定ダイアグラムは当該第4の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第3の二分決定ダイアグラムに論理和演算を実行することによって構成されるステップと、
前記1又はそれ以上のコンピュータシステムによって複数の第5の二分決定ダイアグラムを構成し、該第5の二分決定ダイアグラムの夫々は複数の検索タプルの異なる1つを表し、該検索タプルの夫々は前記検索クエリの異なる1つと、当該検索クエリに対応する検索結果の異なる1つとを有し、各第5の二分決定ダイアグラムは、当該第5の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第2の二分決定ダイアグラム及び第4の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記1又はそれ以上のコンピュータシステムによって、前記第5の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第6の二分決定ダイアグラムを構成するステップと
を有する。
本開示の実施形態によれば、後の検索のためにインターネット検索結果をキャッシュに格納することが可能となる。
実施例に従って二分決定ダイアグラム(BDD)によりインターネット検索結果をキャッシュに格納する方法の例を表す。 1つのワードを表すワードBDDの第1の例を表す 1つのワードを表すワードBDDの第2の例を表す。 1つのワードを表すワードBDDの第3の例を表す。 1つのワードを表すワードBDDの第4の例を表す。 1つの検索クエリを表すクエリBDDの第1の例を表す。 1つの検索クエリを表すクエリBDDの第2の例を表す。 1つのウェブページを表すページBDDの第1の例を表す。 1つのウェブページを表すページBDDの第2の例を表す。 1つのウェブページを表すページBDDの第3の例を表す。 1つのウェブページを表すページBDDの第4の例を表す。 1つのウェブページを表すページBDDの第5の例を表す。 1つの検索結果を表す結果BDDの第1の例を表す。 1つの検索結果を表す結果BDDの第2の例を表す。 1つの検索タプルを表すタプルBDDの第1の例を表す。 1つの検索タプルを表すタプルBDDの第2の例を表す。 1つの検索タプルを表すタプルBDDの第3の例を表す。 検索クエリの組及び検索結果の対応する組を表すBDDを表す。 図7Aに表されるBDDに簡約規則を適用した結果を表すBDDを表す。 実施例に従って検索クエリの組及び対応する検索結果の組を表すBDDへ新しい対の対応する検索クエリ及び検索結果を付加する方法の例を表す。 実施例に従って検索クエリの組及び対応する検索結果の組を表すBDDから既存の対の対応する検索クエリ及び検索結果を削除する方法の例を表す。 実施例に従ってインターネット上で情報が検索されるネットワーク環境の例を表す。 実施例に従ってBDDにより検索クエリに対して検索結果を発生させる方法の例を表す。 図10の方法を表す第1の図である。 図10の方法を表す第2の図である。 実施例に従うコンピュータシステムの例を表す。
実施例で、検索クエリの組及び検索結果の対応する組は二分決定ダイアグラム(BDD(Binary Decision Diagram))を用いてキャッシュに格納される。各検索クエリは1又はそれ以上のワードを有する。各検索結果は、その対応する検索クエリを用いてインターネット検索を行うことで得られる1又はそれ以上のウェブページを有する。
BDDは、ブール関数を表すために使用されうるデータ構造である。BDDは、1又はそれ以上の決定ノード及び2つの終端ノードを有する、根のある、方向をもった、非環式のグラフとして図形的に表され得る。各決定ノードは、ブール関数における異なる変数を表し、通常は、グラフ中で円として表される。2つの終端ノード(0終端ノード及び1終端ノード)は、通常はグラフ中で夫々正方形として表される。各決定ノードは2つのエッジを有し、1つは、通常はグラフ中で波線又は点線として表される0エッジであり、もう1つは、通常はグラフ中で実線として表される1エッジである。
グラフ中の各経路は、1又はそれ以上の決定ノードを有してよく、最終的に0終端ノード又は1終端ノードのいずれかに至る。0終端ノードに至る経路は、ブール関数が、その経路での決定ノードによって表される変数に割り当てられている値をFALSE(偽)であると評価することを示し、一方、1終端ノードに至る経路は、ブール関数が、その経路での決定ノードによって表される変数に割り当てられている値をTRUE(真)であると評価することを示す。
実施例で、検索クエリの組及び検索結果の組を表すBDDで、対応する対の検索クエリ及び検索結果は、1又はそれ以上の経路によって表される。各経路で、1又はそれ以上の決定ノードは検索クエリを表し、1又はそれ以上の異なる決定ノードは、検索結果に含まれるウェブページの夫々を表す。1終端ノードに至る経路は、その経路での幾つかの決定ノードによって表されるウェブページが、同じ経路での他の決定ノードによって表される検索クエリに対応する検索結果に含まれることを示す。
図1は、BDDを用いて検索クエリの組及び検索結果の対応する組をキャッシュに格納する方法の例を表す。図1の様々な具体的な詳細は、表1に表される以下の例を用いて記載される。
Figure 2010055608
表1に表される例で、検索クエリの組は3つの異なる検索クエリ(“キャットフード”、“ドッグフード”、及び“車”)を有する。対応する検索結果の組は3つの異なる検索結果を有しており、各検索結果は異なる検索クエリに対応している。各検索結果は、対応する検索クエリによりインターネット上で検索を行うことで得られる1又はそれ以上のウェブページを有する。このようにして、検索クエリ“キャットフード”については、対応する検索結果は2つのウェブページ(ウェブページA及びウェブページB)を有し、検索クエリ“ドッグフード”については、対応する検索結果は3つのウェブページ(ウェブページA、ウェブページC、及びウェブページD)を有し、検索クエリ“車”については、対応する検索結果は1つのウェブページ(ウェブページE)を有する。
検索クエリの組及び検索結果の対応する組について、検索クエリの幾つかで現れるワードは、同じワードが複数の検索クエリで現れうるように、部分的に重なることがある。表1に表される例では、ワード“フード”は、検索クエリ“キャットフード”及び“ドッグフード”の両方に現れている。
更に、幾つかの検索クエリについて、それらの対応する検索結果は、同じウェブページが複数の検索結果に含まれうるように、部分的に重なることがある。表1に表される例では、ウェブページAは、このウェブページAがキャットフード及びドッグフードの両方を含む多様なペットフードに関する情報を有しうる場合に、検索クエリ“キャットフード”及び“ドッグフード”の両方に対応する検索結果に含まれる。
実施例で、検索クエリの組に含まれる全ての個別ワードを含むワードの組が得られる(ステップ110)。このようにして、複数の検索クエリに現れるワードは、1度だけワードの組に含まれる。一意の数で表されるワード識別子(ID)が個別ワードの夫々に割り当てられる(ステップ111)。実施例で、ワードIDはそのワードの組の範囲内で一意であり、これより、ワードの組には同じワードIDを有する2つの個別ワードが存在することはない。
表1に表される例では、3つのクエリの組に4つの個別ワード(“キャット”、“ドッグ”、“フード”、“車”)が存在する。このように、ワードの組はこれら4つのワードを有する。ワード“キャット”に割り当てられるワードIDは10であり、ワード“ドッグ”に割り当てられるワードIDは11であり、ワード“フード”に割り当てられるワードIDは12であり、ワード“車”に割り当てられるワードIDは13であるとする。下記の表2は、10進数及び2進数の両方でワードの組及びそれらの夫々のワードIDを有する。
Figure 2010055608
個別ワードの夫々は、異なるBDDを用いて表される(ステップ112)。説明のために、単一ワードを表すBDDは“ワードBDD”と称される。整数は2進数で記述される。例えば、10進数での数10は2進数では1010であり、10進数での数11は2進数では1011であり、10進数での数12は1100であり、10進数での数13は2進数では1101である。
実施例で、ワードは、自身のワードIDに基づいてBDDにより表され得る。ワードIDでの各2進値は、BDDで決定ノードになる異なる変数によって表される。2進数の実効値は、BDDでどの経路が0終端ノードに至るべきであり且つどの経路が1終端ノードに至るべきであるのかを示す。
一例として、ワードIDが1010であるワード“キャット”について考える。2進数1010には4つの2進値が含まれている。それら4つの2進値は、左から右へ夫々、4つの変数x11、x12、x13及びx14によって表される。図2Aは、ワードID1010を有するワード“キャット”を表すBDD210を表す。ワードBDD210は、夫々変数x11、x12、x13及びx14を表す4つの個別決定ノードを有する。それらの変数は、ワードID1010に含まれる4つの2進値に対応する。実線エッジは値1を表し、点線エッジは値0を表す。ワードBDD210には、1終端ノードに至る、1−0−1−0を表す経路が1つしかない。他の全ての経路は0終端ノードに至る。よって、ワードBDDはワードID1010を表し、言い換えると、それはワード“キャット”を表す。
同様に、図2Bは、ワードIDが1011であるワード“ドッグ”を表すBDD220を表す。左から右へ、ワードID1011に含まれる4つの2進値は、夫々、4つの変数x21、x22、x23及びx24によって表される。ワードBDD220には、1終端ノードに至る、1−0−1−1を表す経路が1つしかない。他の全ての経路は0終端ノードに至る。
図2Cは、ワードIDが1100であるワード“フード”を表すBDD230を表す。左から右へ、ワードID1100に含まれる4つの2進値は、夫々、4つの変数x31、x32、x33及びx34によって表される。ワードBDD230には、1終端ノードに至る、1−1−0−0を表す経路が1つしかない。他の全ての経路は0終端ノードに至る。
図2Dは、ワードIDが1101であるワード“車”を表すBDD240を表す。左から右へ、ワードID1101に含まれる4つの2進値は、夫々、4つの変数x41、x42、x43及びx44によって表される。ワードBDD240には、1終端ノードに至る、1−1−0−1を表す経路が1つしかない。他の全ての経路は0終端ノードに至る。
留意すべきは、図2A乃至2Dでは、一意の変数(例えば、x11〜x14、x21〜x24、x31〜x34、及びx41〜x44)が表1に表される異なる4つのワードIDを表すために用いられるが、それは必ずしも必要とされるわけではない点である。実際には、図7で後述されるように、同じ変数が複数のワードIDで特定の2進値を表すために使用されてよい。例えば、同じ4つの変数(例えば、x1〜x4)は、“キャット”及び“ドッグ”の両ワードIDの4つの2進値を表すために使用されてよい。
ワードBDDに必要とされる異なる変数の数は、ワードBDDによって表されるワードIDに含まれる2進値の数に依存する。変数が大きくなれば2進値の数も多くなるので、一般的に、ワードIDの数が大きくなればなるほど、ワードIDを表すワードBDDに必要とされる変数も多くなる。また、その逆も同様である。実施例で、ワードBDDに含まれる変数の数を一定にするよう、数字0がより小さいワードIDの左側に付加されてよく、これにより、全てのワードIDは同数の2進値を有し、従って、同数の異なる変数を必要とする。
個々のワードBDDが個別ワードの組について構成されると、検索クエリの夫々は、適切なワードBDDを結合することによって、異なるBDDにより表される(ステップ113)。説明のために、単一の検索クエリを表すBDDは“クエリBDD”と称される。更に、検索クエリを識別する2進値の列は“クエリID”と称される。実質上、検索クエリを識別するクエリIDは、検索クエリに含まれるワードを識別するワードIDの結合である。実施例で、検索クエリを表すクエリBDDは、検索クエリにおけるワードを表す個々のワードBDDに対して論理積(AND)演算を行うことで構成される。実施例で、論理積演算は、対応するワードが検索クエリに現れるのと同じ順序でワードBDDに対して行われる。実施例で、第1のBDD及び第2のBDDに対して論理積演算を行うよう、第1のBDDでの1終端ノードは、結果BDDを得るよう第2のBDDによって置換される。
2つのワード(“キャット”及び“フード”)を含む検索クエリ“キャットフード”について考える。検索クエリ“キャットフード”を表すクエリBDDは、ワード“キャット”を表すワードBDD210及びワード“フード”を表すワードBDD230に対して論理積演算を行うことで得られる。図3Aは、ワードBDD210及びワードBDD230に対して論理積演算を行った結果である、検索クエリ“キャットフード”を表すクエリBDD310を表す。
同様に、図3Bは、ワード“ドッグ”を表すワードBDD220及びワード“フード”を表すワードBDD230に対して論理積演算を行った結果である、検索クエリ“ドッグフード”を表すクエリBDD320を表す。
実施例で、検索クエリが1つのワードしか有さない場合は、その検索クエリを表すクエリBDDは、ワードを表すワードBDDと同じである。例えば、検索クエリ“車”を表すクエリBDDは、ワード“車”を表すワードBDD240と同じである。
ステップ110、111、112及び113を実行すると、異なるクエリBDDが、検索クエリの組に含まれている検索クエリの夫々について構成される。他方で、ステップ120、121、122及び123によれば、検索クエリの組に対応する検索結果の組に含まれている個別ウェブページの組を表すBDDが構成される。
実施例で、検索結果の組に含まれる全ての個別ウェブページを含むウェブページの組が得られる(ステップ120)。複数の検索結果に含まれるウェブページは、ウェブページの組では1つしか含まれない。一意の数字であるページIDが、個別ウェブページの夫々に割り当てられる(ステップ121)。実施例で、ページIDはウェブページの組の範囲内で一意であり、これにより、ウェブページの組には2つとして同じページIDを有する個別ウェブページが存在しない。
実施例で、ワードIDはワードの組の範囲内でのみ一意であり(ステップ111)、ページIDはウェブページの組の範囲内でのみ一意である(ステップ121)から、ワード及びウェブページは、同じID番号を有してもよい。それ故に、特定の数字がワードIDとして1度且つページIDとして1度使用されてよいが、それは必須ではない。
表1に表される例では、3つの検索結果の組に5つの個別ウェブページ(A、B、C、D及びE)がある。このようにして、ウェブページの組はこれら5つの個別ウェブページを有する。ウェブページAに割り当てられるページIDは1であり、ウェブページBに割り当てられるページIDは2であり、ウェブページCに割り当てられるページIDは3であり、ウェブページDに割り当てられるページIDは4であり、ウェブページEに割り当てられるページIDは5であるとする。下記の表3は、10進数及び2進数の両方でウェブページの組及びそれらの夫々のページIDを有する。
Figure 2010055608
上述されるように、ID値を表すために必要とされる2進値の数は、実際のID値自体に依存する。一般に、ID値が大きい方が、ID値が小さい場合に比べ、より多くの2進値を要する。表3で、ページID1は1つの2進値しか必要としない。ページID2及び3は、夫々、2つの2進値を必要とする。ページID4及び5は、夫々、3つの2進値を必要とする。実施例で、全てのページIDで2進値の数を一定とするよう、1又はそれ以上の0値が幾つかの2進IDの左側に加えられ、これにより、全てのページIDは同数の2進値を有する。このようにして、表3では、2つの0値がページID1の左側に付加され、1つの0値がページID2及び3の夫々の左側に付加される。実施例で、各ページIDが有する2進値の総数は最大のページIDにより決まる。
個別ウェブページの夫々は、異なるBDDを用いて表される(ステップ122)。説明のために、単一のウェブページを表すBDDは“ページBDD”と称される。実施例で、ウェブページは、そのページIDに基づくBDDにより表され得る。ページBDDは、上述されるように、そのワードIDに基づくワードについてワードBDDを構成するのと同様のプロセスを用いて、そのページIDに基づくウェブページについて構成され得る。図4A乃至4Eは、ページIDが001であるウェブページA、ページIDが010であるウェブページB、ページIDが011であるウェブページC、ページIDが100であるウェブページD、及びページIDが101であるウェブページEを夫々表している5つのページBDD410、420、430、440及び450を表す。
実施例で、ページBDD410、420、430、440及び450の夫々で、同じ3つの変数y1、y2及びy3は、左から右へ夫々、対応するページID001、010、011、100及び101の夫々に含まれる3つの2進値を表している。このようにして、ページBDDを構成するプロセスは、この態様において、ワードBDDを構成するプロセスと相違する。特に、対応するページBDDにおいてページIDの2進値を表すために用いられる変数は、ウェブページの組の範囲内ではなく、各ページIDの範囲内で一意である。実際には、実施例で、同じ組の変数は、例えば、変数y1、y2及びy3がページBDD410、420、430、440及び450で使用されるように、ページBDDの全てで再利用される。ページIDの全ては、例えば、必要に応じて0値を付加することによって、同数の2進値を有するようにされるので、同数の変数がページIDの夫々で2進値を表すために使用されてよい。
実施例で、変数がワードBDDで使用される場合は、その変数は如何なるページBDDでも使用されない。反対に、変数がページBDDで使用される場合は、その変数は如何なるワードBDDでも使用されない。
個々のページBDDが個別ウェブページの組について構成されると、検索結果の夫々は、適切なページBDDを結合することによって異なるBDDを用いて表される(ステップ123)。説明のために、検索結果を表すBDDは“結果BDD”と称される。実施例で、結果BDDは、検索結果に含まれるウェブページを表す個々のページBDDに対して論理和演算を行うことによって構成される。
2つのウェブページA及びBを含む、検索クエリ“キャットフード”についての検索結果を考える。この検索結果を表す結果BDDは、ウェブページAを表すページBDD410及びウェブページBを表すページBDD420に対して論理和演算を行うことで得られる。図5Aは、2つのウェブページA及びBを含む、検索クエリ“キャットフード”についての検索結果を表す結果BDD510を表す。結果BDD510には、決定ノードy1から1終端ノードに至る2つの経路511及び512が存在し、経路511はページID001に対応し、経路512はページID010に対応する。同時に、ウェブページA及びBを識別するこれら2つのページIDしか結果BDD510には含まれず、他の全ての経路は0終端ノードに至り、結果BDDによって表されるブール関数が3つの変数y1、y2及びy3に割り当てられている他の全ての値について偽(FALSE)であると評価することを示す。
図5Bは、3つのウェブページA、C及びDを含む、検索クエリ“ドッグフード”についての検索結果を表す結果BDD520を表す。結果BDD520には、決定ノードy1から1終端ノードに至る3つの経路521、522及び523が存在し、経路521はページID001に対応し、経路522はページID011に対応し、経路523はページID100に対応する。同時に、ウェブページA、C及びDを識別するこれら3つのページIDしか結果BDD520には含まれず、他の全ての経路は0終端ノードに至る。
実施例で、検索結果が1つのウェブページしか有さない場合に、検索結果を表す結果BDDは、ウェブページを表すページBDDと同じである。例えば、検索クエリ“車”についての検索結果は1つのウェブページEしか有さない。このようにして、検索クエリ“車”についての検索結果を表す結果BDDは、ウェブページEを表すページBDD450と同じである。
上述されるように、検索結果は、検索クエリについてインターネット上で検索を行うことで、その検索クエリについて得られる。検索クエリは1又はそれ以上のワードを有してよく、検索結果は1又はそれ以上のウェブページを有してよい。結果として、検索クエリの組は複数の検索クエリを有し、対応する組の検索結果は、それらの検索クエリについて得られる検索結果を有する。
実施例で、対応する検索クエリ及び検索結果の別個の対の夫々は、検索タプルとして表される(ステップ130)。前もって、ステップ111で、検索クエリに現れる各ワードはワードIDを割り当てられており、また、ステップ121で、検索結果に含まれる各ウェブページはページIDを割り当てられている。このようにして、実施例で、一対の対応する検索クエリ及び検索結果を表す検索タプルは、検索クエリに現れるワードのワードIDと、それに続く、検索結果に含まれるウェブページのページIDとを有してよい。実施例で、ワードIDは、それらの対応するワードが検索クエリに現れるのと同じ順序で検索タプルに現れる。下記の表4は、表1に表される対応する検索クエリ及び検索結果の3つの対と、それらの検索タプルとを有する。
Figure 2010055608
実施例で、検索タプルの夫々は、別個の対の対応する検索クエリ及び検索結果に対応し、対応するクエリBDD及び結果BDDを結合することで異なるBDDを用いて表される(ステップ131)。説明のために、検索タプルを表すBDDは“タプルBDD”と称される。前もってステップ113で、異なるクエリBDDが、検索クエリの組に含まれる検索クエリの夫々について構成されており、また、ステップ123で、異なる結果BDDが、対応する検索結果の組に含まれる検索結果の夫々について構成されている。実施例で、検索タプルを表すタプルBDDは、対応する対の検索クエリ及び検索結果を有し、検索クエリを表すクエリBDD、及び検索結果を表す結果BDDに対して論理積演算を行うことで構成される。
表1に表される例では、図6Aに表される、検索タプル<10,12;1,2>を表すタプルBDD610は、検索クエリ“キャットフード”を表すクエリBDD310、及びウェブページA及びBを含む検索結果を表す結果BDD510に対して論理積演算を行うことで得られる。上述されるように、クエリBDD310及び結果BDD510に対して論理積演算を行うよう、クエリBDD310における1終端ノードは、タプル610を得るよう結果BDD510と置換される。タプルBDD610には、決定ノードx11から1終端ノードに至る2つの経路611及び612がある。
一例として経路611を考える。経路611での11個の決定ノードx11、x12、x13、x14、x31、x32,x33、x34、y1、y2及びy3について、経路611についてのそれらの2進値は1−0−1−0−1−1−0−0−0−0−1である。最初の4つの2進値1−0−1−0はワード“キャット”のワードIDであり、真ん中の4つの2進値1−1−0−0はワード“フード”のワードIDである。このようにして、最初の8つの2進値1−0−1−0−1−1−0−0は全体で検索クエリ“キャットフード”を表す。最後の3つの2進値0−0−1はウェブページAのページIDである。経路611が1終端ノードに至るという事実は、経路611において幾つかの決定ノード(例えば、決定ノードy1、y2及びy3)の値によって識別されるウェブページAは、経路611において幾つかの他の決定ノード(例えば、x11、x12、x13、x14、x31、x32、x33及びx34)の値によって識別される検索クエリ“キャットフード”について得られる検索結果に含まれる。
経路612については、経路612での11個の決定ノードの2進値は1−0−1−0−1−1−0−0−0−1−0である。最初の8つの2進値1−0−1−0−1−1−0−0は全体で検索クエリ“キャットフード”を表す。これは経路611と同じであり、タプルBDD610が、検索クエリ“キャットフード”を有する検索タプルを表すためである。最後の3つの2進値0−1−0はウェブページBのページIDである。経路612は、ウェブページBが検索クエリ“キャットフード”について得られる検索結果に含まれるように、1終端ノードに至る。
実施例で、タプルBDDにおいて、1終端ノードに至る経路は、その経路での決定ノードの幾つかの値によって識別されるウェブページが、同じ経路での幾つかの他の経路の値によって識別される検索クエリに対応する検索結果に含まれることを示す。
同様に、図6Bに表される検索タプル<11,12;1,3,4>を表すタプルBDD620は、検索クエリ“ドッグフード”を表すクエリBDD320、及びウェブページA、C及びDを含む検索結果を表す結果BDD520に対して論理積演算を行うことで得られる。タプルBDD620には、検索クエリ“ドッグフード”についての検索結果に含まれる3つのウェブページA、C及びDが存在する場合に、決定ノードx21から1終端ノードに至る3つの経路621、622及び623が存在する。
図6Cに表される検索タプル<13;5>を表すタプルBDD630は、ワード“車”を表し且つ検索クエリ“車”についての検索BDDと同じであるワード240、及びウェブページEを表し且つ検索クエリ“車”について得られる検索結果を表す結果BDDと同じであるページBDD450に対して論理積演算を行うことで得られる。タプルBDD630には、決定ノードx41から1終端ノードに至る1つの経路631が存在する。経路631は、検索クエリ“車”が1つのワードしか含んでいないことから、7つの決定ノードしか有さない。
実施例で、個々のタプルBDDが構成されると、検索クエリの組全体及び対応する検索結果の組全体は、個々のタプルBDDの全てを結合することによって、単一のBDDを用いて表される(ステップ140)。実施例で、BDDは、個々のタプルBDDの全てに論理和演算を行うことで構成される。BDDでは、1終端ノードに至るあらゆる経路が、その経路での決定ノードの幾つかの値によって識別されるウェブページが、同じ経路での幾つかの他の決定ノードの値によって識別される検索クエリに対応する検索結果に含まれることを示す。
表1に表される例は、4つの個別ワード及び5つの個別ウェブページしか有さないが、様々なタイプのBDDが急速に拡大する。実際には、数百、あるいは数千の種々のワード及びウェブページを含む検索クエリ及び検索結果の対応する組をキャッシュに格納する場合に、最終的なBDDは極めて大規模なものとなりうる。BDDは、共有が最小限である場合に、スペースのブローアップを欠点とする傾向がある。
実施例で、様々なBDD簡約規則(reduction rule)が、BDDのサイズを低減すべくBDDに適用されてよい(ステップ150)。既存のBDD簡約規則には、あらゆる同型のサブグラフをマージすること、同型である2つの子を有するあらゆる決定ノードを削除すること等がある。実施例で、様々なBDD簡約規則が、また、例えば、クエリBDD、結果BDD、又はタプルBDD等の様々な中間BDDに適用されてよい。実施例で、適切なBDD簡約規則は、BDDのサイズを最大限に小さくするよう必要な場合にはいつでも様々なBDDに適用される。
その場合に、BSSは、検索クエリの組及び対応する検索結果の組をキャッシュに格納する一手段として保存されてよい(ステップ151)。
幾つかの場合で、BDDは、サブBDDのサイズの合計が元のBDDのサイズより小さいように、既存のBDD簡約規則に従って区分化されてよい。実施例で、BDDは2又はそれ以上のサブBDDに区分化されてよく(ステップ160)、サブBDDが単一のBDDに代えて保存される(ステップ161)。実施例で、BDDの区分は、検索クエリのカテゴリに基づいてよい。表1に表される例では、2つの検索クエリ“キャットフード”及び“ドッグフード”はペットフードに関連し、1つの検索クエリ“車”は自動車に関連する。このようにして、これら3つの検索クエリを表すBDDを区分化する1つの方法は、ペットフード関連の検索クエリ及び自動車関連の検索クエリの夫々についての2つのサブBDDを有することである。
実際に、BDDによって表される検索クエリは、何らかの適切な規準に基づいて、任意の数のカテゴリに分類されてよい。検索クエリ・カテゴリの例には、“スポーツ”、“政治”、“旅行”、“健康”、“天候”、“経済”等があるが、これらに限られない。より小さいサブBDDは、情報が各BDDからアクセスされて取り出される場合に、より効率的なルックアップ時間をもたらしうる。
図1は、検索クエリの組と、検索クエリの夫々についてインターネット検索を行うことで得られる検索結果の対応する組とを表し、ひいては、これらをキャッシュに格納するために使用されるBDDの構成をステップごとに表す。実際には、検索クエリの組及び対応する検索結果の組と、構成されるBDDとに依存して、具体的なステップの一部は飛び越されることがある。最終的なBDDで、1終端ノードに至る経路は、その経路での決定ノードの幾つかの値によって識別されるウェブページが、同じ経路での幾つかの他の決定ノードの値によって識別される検索クエリに対応する検索結果に含まれることを示す。
BDDは、特定のフォーマットを有するデータ構造である。それは、1又はそれ以上の変数のブール関数fを表し、各変数は0の値又は1の値を有しうる。グラフで表される場合に、関数fの各変数は決定ノードとして表され得、各決定ノードは2つのエッジ(0エッジ及び1エッジ)を有する。BDDの経路を進む場合に、決定ノードから0エッジを辿ることは、その決定ノードによって表される変数が0の値を有することを示し、一方、決定ノードから1エッジを辿ることは、その決定ノードによって表される変数が1の値を有することを示す。0終端ノードに至る経路は、その経路での決定ノードによって表される変数に割り当てられている値についてブール関数fが0であると評価することを示す。1終端ノードに至る経路は、その経路での決定ノードによって表される変数に割り当てられている値についてブール関数fが1であると評価することを示す。
実施例で、BDDによって表される検索クエリの組及び対応する検索結果の組でのデータは、それらがBDDデータ構造のフォーマットに適するように変更される必要がある場合がある。実施例で、検索結果の組に含まれる各検索クエリは、同数のワードを有するべきである。特定の検索クエリが必要とされるより少ない数のワードを有する場合は、0値が、1又はそれ以上の欠けているワードを表すために付加される。仮に、各検索クエリにおけるワードの数をkとする。なお、k=1,2,・・・nである。実施例で、kの値は、最大数のワードを有する検索クエリの組からの検索クエリに含まれるワードの数に等しい。
表1に表される例で、kは2である。検索クエリ“キャットフード”及び“ドッグフード”は両方とも2つのワードを有する。しかし、検索クエリ“車”は1つのワードしか有さない。このようにして、0は、2つ目のワードを補うべく検索クエリ“車”に付加されてよい。表2に表されるように、2進数での各ワードIDは4つの2進値を有する。このようにして、2進数で表1での各検索クエリを表すには8つの2進値を要する。説明のために、検索クエリを識別する結合されたワードIDは“クエリID”と称される。更に、表3に表されるように、2進数での各ページIDは3つの2進値を有する。よって、2進数で対応する対の検索クエリ及びウェブページを表すには11個の2進値を要する。下記の表5は、対応する対の検索クエリ及びウェブページと、それらの2進表現とを表す。
Figure 2010055608
各2進値は、BDDで決定ノードとなる変数によって表される。変数x1、x2、x3、x4、x5、x6、x7及びx8は検索クエリに対応する最初の8つの2進値を表し、変数y1、y2及びy3は、ウェブページに対応する最後の3つの2進値を表すとする。図7Aは、表1に表される検索クエリの組及び対応する検索結果の組を表すBDD700を表す。BDD700には、1終端ノードに至る6つの経路701、702、703、704、705及び706が存在する。各経路は、表5に表される、異なる対応する対の検索クエリ及びウェブページを表す。他の全ての経路は0終端ノードに至る。結果として、経路701は、ウェブページAが検索クエリ“キャットフード”についての検索結果に含まれることを示し、経路702は、ウェブページBが検索クエリ“キャットフード”についての検索結果に含まれることを示し、経路703は、ウェブページAが検索クエリ“ドッグフード”についての検索結果に含まれることを示し、経路704は、ウェブページCが検索クエリ“ドッグフード”についての検索結果に含まれることを示し、経路705は、ウェブページDが検索クエリ“ドッグフード”についての検索結果に含まれることを示し、経路706は、ウェブページEが検索クエリ“車”についての検索結果に含まれることを示す。
図1のステップ150に関連して上述されたように、様々なBDD簡約規則が、BDDのサイズを小さくするようBDDに適用されてよい。図7Bは、簡約規則をBDD700に適用した結果を表すBDD750を表す。
BDDが検索クエリの組及び対応する検索結果の組について構成されると、BDDは、例えば、そのBDDに新しい対の対応する検索クエリ及び検索結果を加えること、又はそのBDDから既存の対の対応する検索クエリ及び検索結果を削除すること等の変更を行われてよい。
図8Aは、実施例に従って、対応する検索クエリ及び検索結果の新しい対を、検索クエリの組及び対応する検索結果の組を表すBDDに付加する方法の例を表す。
対応する検索クエリ及び検索結果の新しい対は、検索クエリ及び検索結果を有する新しい検索タプルを用いて表され得る(ステップ810)。上述されるように、検索クエリは1又はそれ以上のワードを有してよく、各ワードはワードIDを割り当てられる。検索結果は1又はそれ以上のウェブページを有してよく、各ウェブページはページIDを割り当てられる。新しい検索タプルは、図1のステップ130で記載されるプロセスを用いて構成されてよい。
新しい検索タプルは、新しいタプルBDDにより表され得る(ステップ812)。新しいタプルBDDは、図1のステップ131で記載されるプロセスを用いて構成されてよい。
新しいタプルBDDをBDDに加えるよう、論理和演算が新しいタプルBDD及びBDDに対して行われる(ステップ814)。このステップは、図1のステップ140で記載されるプロセスと同じである。
実施例で、様々なBDD簡約規則が、可能な限りBDDのサイズを小さくするようBDDに適用されてよい。
図8Bは、実施例に従って、対応する検索クエリ及び検索結果の既存の対を、検索クエリの組及び対応する検索結果の組を表すBDDから削除する方法の例を表す。
BDDにおける対応する検索クエリ及び検索結果の既存の対は、構成されているタプルBDDを予め有する。実施例で、対応する検索クエリ及び検索結果の既存の対を表すタプルBDDは無効にされる(ステップ820)。実施例で、BDDは、0終端ノードへの全ての参照を1終端ノードへの参照と交換することで、またその逆であっても同様に、無効にされ得る。
対応する検索クエリ及び検索結果の既存の対をBDDから削除するよう、論理積演算が、無効にされるタプルBDD及びBDDに対して行われる(ステップ822)。このようにして、無効にされるタプルBDDは、BDDにおいて対応する検索クエリ及び検索結果の対を表すタプルBDDを無効にする。
BDDは、特にコンピュータサイエンスの多くの分野で、幅広い潜在的な用途を有する。実施例で、BDDは、図1を参照して記載されるように、検索クエリの組及び対応する検索結果の組をキャッシュに格納するために使用されてよい。BDDは、図8A及び8Bを参照して記載される方法により、新しい検索結果をBDDに付加すること又は古い検索結果をBDDから削除すること等の更新を行われてよい。
検索は、人々がインターネット上で行う最も一般的な行動の1つである。図9は、ヒトがインターネット上で情報を検索することができるネットワーク環境910の例を表す。
システム910は、1又はそれ以上のクライアント914、1又はそれ以上のウェブサーバ916、及びアプリケーションサーバ918を相互に結合するネットワーク912を有する。実施例で、ネットワーク912は、インターネット、エクストラネット、バーチャル・プライベート・ネットワーク(VPN)、ローカル・エリア・ネットワーク(LAN)、無線LAN(WLAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの一部、若しくは他のネットワーク912、又は2若しくはそれ以上の斯かるネットワーク912の組み合わせである。本開示は、あらゆる適切なネットワーク912を考慮する。1又はそれ以上のリンク920は、クライアント914、ウェブサーバ916、又はアプリケーションサーバ918をネットワーク912に結合する。実施例で、1又はそれ以上のリンク920は夫々、1又はそれ以上の有線、無線、又は光のリンク920を有する。実施例で、1又はそれ以上のリンク920は夫々、インターネット、エクトラネット、バーチャル・プライベート・ネットワーク(VPN)、LAN、WLAN、WAN、MAN、インターネットの一部、若しくは他のリンク920、又は2又はそれ以上の斯かるリンク920の組み合わせを有する。本開示は、クライアント914、ウェブサーバ916、及びアプリケーションサーバ918をネットワーク912に結合するあらゆる適切なリンク920を考慮する。
実施例で、クライアント914は、クライアント914でのユーザがウェブサーバ916にあるウェブページにアクセスすることを可能にする。一例として、しかし限定としてではなく、クライアント914は、ウェブブラウザを有する、例えば、適切なデスクトップコンピュータシステム、ノートブックコンピュータシステム、又は携帯電話機等のコンピュータシステムであってよい。クライアント914でのユーザは、ウェブブラウザをウェブサーバ916に導くユニフォーム・リソース・ロケータ(URL)又は他のアドレスを入力する。ウェブブラウザは、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、そのHTTP要求をウェブブラウザ916に送る。ウェブサーバ916は、HTTP要求にアクセスし、このHTTP要求に応答してハイパーテキスト・マークアップ言語(HTML)文書を生成し、クライアント914へ送る。ウェブブラウザ916からのHTML文書は、クライアント914でのウェブブラウザがユーザに提示するウェブページであってよい。本開示は、あらゆる適切なウェブページを考慮する。一例として、しかし限定としてではなく、ウェブページは、拡張マークアップ言語(XML)文書又は拡張ハイパーテキスト・マークアップ言語(XHTML)文書であってよい。更に、本開示は、あらゆる適切なオブジェクトを考慮し、ウェブサーバ916にあるウェブページに限られない。一例として、しかし限定としてではなく、必要に応じて、本開示は、例えば、マイクロソフト(登録商標)ワード文書及びポータブル・ドキュメント・フォーマット(PDF)文書、又はデータベースサーバ、ファイルサーバ、ピア・ツー・ピアネットワーク、若しくは他の場所にある他のオブジェクト等の実行可能なファイルを考慮する。
実施例で、ウェブサーバ916は1又はそれ以上のサーバを有する。本開示は、あらゆる適切なウェブサーバ916を考慮する。更に、本開示は、あらゆる適切なクライアント914を考慮する。一例として、しかし限定としてではなく、ウェブサーバ916にあるウェブページにアクセスするためにウェブブラウザを有することに加えて又はその代替として、クライアント914は、1又はそれ以上のデータベースサーバ、ファイルサーバ、ピア・ツー・ピアネットワーク、又は他の場所にあるオブジェクトにアクセスするための1又はそれ以上のアプリケーションを有してよい。
クライアント914でのユーザからの入力に応答して、クライアント914は、1又はそれ以上の特定のキーを有するウェブページに対するクエリを生成し、そのクエリをアプリケーションサーバ918へ送る。1又はそれ以上のワードを有するクエリは“検索クエリ”と考えられてよい。
実施例で、アプリケーションサーバ918は、クライアント914からクエリを受け取って応答するためのハードウェア、ソフトウェア、埋め込みロジックコンポーネント、又は斯かるコンポーネントの2若しくはそれ以上の組み合わせを有する。一例として、しかし限定としてではなく、アプリケーションサーバ918は、1又はそれ以上の特定のキーワードを有するウェブページに対する検索クエリをクライアント914から受信し、そのクエリを承認し、ウェブ検索エンジン922にアクセスしてクエリを実行し、クエリに応答する検索結果を生成することができる。検索結果は、1又はそれ以上の適切なウェブページを有してよい。アプリケーションサーバ918は、ユーザへの提示のためにクライアント914へ検索結果を送る。実施例で、アプリケーションサーバ918は1又はそれ以上のサーバを有する。本開示は、あらゆる適切なアプリケーションサーバ918を考慮する。一例として、しかし限定としてではなく、アプリケーションサーバ918は、クライアント914でのユーザが、インターネット及びエクストラネット等の分散型ネットワークにわたってオブジェクトを一元的に検索することを可能にするアクセス点を提供するカタログサーバを有してよい。
実施例で、ウェブ検索エンジン922は、クライアント914からの検索クエリに応答してウェブページを識別する検索結果を生成して返すためのハードウェア、ソフトウェア、若しくは埋め込みロジックコンポーネント、又は斯かるコンポーネントの2若しくはそれ以上の組み合わせを有する。本開示は、あらゆる適切なウェブ検索エンジン922を考慮する。一例として、しかし限定としてではなく、ウェブ検索エンジン922は、Baidu(登録商標)、Google(登録商標)、Live−Search(登録商標)、又はYahoo!(登録商標)検索であってよい。
実施例で、クエリを実行し、クエリに応答して検索結果を生成するよう、ウェブ検索エンジン922はウェブ検索データ928にアクセスする。一例として、しかし限定としてではなく、ウェブ検索データ928は、ウェブサーバ916にあるウェブページの逆索引を有してよい。各逆索引は、後述されるように、夫々一意のキーワードに対応するリストの組を有してよい。索引エンジン924は、逆索引の1又はそれ以上を生成することができ、決定ダイアグラムエンジン926は、後述されるように、逆索引のリストを表す例えばコンパクト決定ダイアグラムのような決定ダイアグラムを生成することができる。決定ダイアグラムは、保存及び処理を容易にするようリストを圧縮してよい。索引エンジン924、決定ダイアグラムエンジン926、又はその両方は、ウェブ検索エンジン922によって実行されるクエリと、検索結果の生成とを促すよう、逆索引又はそれらのリストを操作してよい。実施例で、索引エンジン924は、逆索引を生成し操作するためのハードウェア、ソフトウェア、若しくは埋め込みロジックコンポーネント、又は斯かるコンポーネントの2若しくはそれ以上の組み合わせを有する。実施例で、決定ダイアグラムエンジン926は、逆索引のリストを表す決定ダイアグラムを生成して、表されるリストを操作するためのハードウェア、ソフトウェア、若しくは埋め込みロジックコンポーネント、又は斯かるコンポーネントの2若しくはそれ以上の組み合わせを有する。実施例で、ウェブ検索エンジン922、索引エンジン924、及び決定ダイアグラムエンジン926は全て論理的又は物理的に互いから分離している。実施例で、ウェブ検索エンジン922及び索引エンジン924は、機能上、論理上、又は物理上互いと結合される。一例として、しかし限定としてではなく、索引エンジン924は、機能上、論理上、又は物理上ウェブ検索エンジン922を有してよい。実施例で、索引エンジン924及び決定ダイアグラムエンジン926は、機能上、論理上、又は物理上互いに結合される。一例として、しかし限定としてではなく、索引エンジン924は、機能上、論理上、又は物理上決定ダイアグラムエンジン926を有してよい。本開示は、ウェブ検索エンジン922、索引エンジン924、及び決定ダイアグラムエンジン926の間のあらゆる適切な機能的、論理的、又は物理的な配置を考慮する。
実施例で、決定ダイアグラムエンジン926は、検索クエリの組及びウェブ検索エンジン922によって得られる対応する検索結果の組を表すBDDを保持する。BDDは、ウェブ検索データ928に保存されてよい。ウェブ検索エンジン922が新しい検索クエリに応答して新しい検索結果を得るたびに、決定ダイアグラムエンジン926はウェブ検索データ928に保存されているBDDを然るべく更新する。次いで、保存されているBDDは、検索結果を後の検索クエリに提供するために使用されてよい。
例えば、表1に表される検索クエリ“キャットフード”を考える。ペットとして猫を飼っている多くの人々が存在するので、人々がインターネット上でキャットフードに関する情報を検索する多くの場合が存在する可能性は大いにある。一方で、アプリケーションサーバ918が“キャットフード”に対するクエリを行うよういずれかのクライアント914から要求を受信すると、ウェブ検索エンジン922は、検索クエリ“キャットフード”について検索結果を生成するよう検索処理を実行する。しかし、これは、特に、キャットフードに関する情報を有しうる全てのウェブページを見つけ出すためにネットワーク912において完全な検索を実行するには或る程度時間がかかるために、極めて効率的とはいえない。
他方で、アプリケーションサーバ918が“キャットフード”に対するクエリを行うよういずれかのクライアント914から要求を受信すると、ウェブ検索エンジン922が検索処理を行うことに代えて、ウェブ検索データ928に保存されているBDDが最初に処理される。図10は、記憶されているBDDを用いて新しい検索クエリについて新しい検索結果を生成する方法の例を表す。先と同じく、BDDは検索クエリの組及び対応する検索結果の組を表す。
新しい検索クエリを受信する(ステップ1010)と、図1のステップ110で記載されるように、その新しい検索クエリに含まれるワードの全てが、BDDによって表される検索クエリの組から得られる個別ワードの組で見つけられるかどうかが判断される(ステップ1020)。新しい検索クエリは、他の検索クエリと同様に、1又はそれ以上のワードを有する。
新しい検索クエリに含まれるワードの全てが個別ワードの組で見つけられない場合(ステップ1020、“NO”)は、新しい検索クエリは、その新しい検索クエリがBDDによって表される検索クエリの組のいずれかで以前に見つけられていない新しいワードを少なくとも1つは有するので、BDDによって表される検索クエリの組にはない。この場合に、検索結果は、BDDで新しい検索クエリについてキャッシュに格納されない。新しい検索クエリで見つけられた新しいワードは、夫々、新しいワードIDを割り当てられ(ステップ1022)、新しいワードは、個別ワードの組へ付加される(ステップ1023)。ここから、処理は、後述されるステップ1060に進む。
他方で、新しい検索クエリに含まれるワードの全てが個別ワードの組で見つけられる場合(ステップ1020、“YES”)は、新しい検索クエリに含まれるワードの夫々は既にワードIDを割り当てられている。新しい検索クエリに含まれるワードは、その新しい検索クエリについてクエリIDを得るよう、それらの既存のワードIDと相互に関連付けられる(ステップ1021)。
例えば、表1に表される例を表すBDDについて考える。新しい検索クエリが“車”である場合に、ワード“車”は、表1中の3つの検索クエリに現れたワードの組で見つけられる。検索クエリ“車”についての検索結果は、BDDでキャッシュに格納されてよい。他方で、新しい検索クエリが“トラック”である場合は、ワード“トラック”は、表1中の3つの検索クエリに現れたワードの組で見つけられない。検索クエリ“トラック”についての検索結果は、BDDでキャッシュに格納されない。
保存されているBDDはトラバースされる(ステップ1030)。BDDは、一部は0終端ノードに至り、一部は1終端ノードに至る多数の経路を有しうる。各経路では、1又はそれ以上の決定ノードが存在する。1終端ノードに至るBDDでの各経路について、その経路でのノードの幾つかの値が新しい検索クエリを表す場合は、幾つかの経路での他の決定ノードの値によって表されるウェブページをその新しい検索クエリについての新しい検索結果に含める(ステップ1040)。
新しい検索クエリに含まれるワードのワードIDの2進値は、1終端ノードに至るBDDにおける各経路での決定ノードの2進値に対して適合する。例えば、1終端ノードに至る、図7に表される経路706を考える。
新しい検索クエリは“車”であるとする。“車”についての2進数でのワードIDは、図2に表されるように、1101である。BDD700は、全ての検索クエリが2つのワードを有し且つ検索クエリ“車”は1つのワードしか有さないように構成されるので、0値が2番目のワードを補うように付加される。このようにして、検索クエリ“車”についての2進表現は0−0−0−0−1−1−0−1となる。経路706を下りていくと、新しい検索クエリを表す2進値は、経路706での決定ノードの値に対して適合する。具体的に、決定ノードx1の値は0であり、決定ノードx2の値は0であり、決定ノードx3の値は0であり、決定ノードx4の値は0であり、決定ノードx5の値は1であり、決定ノードx6の値は1であり、決定ノードx7の値は0であり、決定ノードx8の値は1である。この点で、整合は、2進表現が0−0−0−0−1−1−0−1である検索クエリ“車”について見出される。経路706での最後の3つの決定ノードy1、y2及びy3の値は1−0−1であり、これは、表3で表されるように、ウェブページEのページIDである。このようにして、ウェブページEは、検索クエリ“車”についての検索結果に含まれる。
代替的に、新しい検索クエリは“フード 車”であるとする。成句としては全く実際上の意味を有さないが、それは照合プロセスを更に説明するために使用される。新しい検索クエリ“フード”及び“車”に含まれる両ワードは個別ワードの組で見つけられ、従って、ステップ1020は真(TRUE)であると評価する(ステップ1020、“YES”)。表2に表されるように、ワード“フード”のワードIDは1100であり、ワード“車”のワードIDは1101である。このようにして、検索クエリ“フード 車”を表す2進値は、2つのワードIDを結合した1−1−0−0−1−1−0−1である。
1終端ノードに至るBDD700中の全ての経路を通る検索は、検索クエリ“フード 車”がBDD700でキャッシュに格納されないので、2進列1−1−0−0−1−1−0−1を適合させる如何なる経路での変数の値の如何なる組み合わせも与えない。この場合に、検索クエリ“フード 車”に対応するウェブページは見つけられない。
全体のBDDがトラバースされると、検索結果が新しい検索クエリについて見つけられるかどうかが判断される(ステップ1050)。実施例で、ウェブページが照合プロセスに基づいて新しい検索クエリについてBDDで見つけられない場合は、新しい検索結果はその新しい検索クエリについて見つけられない。反対に、1又はそれ以上のウェブページが照合プロセスに基づいて新しい検索クエリについてBDDで見つけられる場合は、検索結果は新しい検索クエリについて見つけられる。
検索結果が新しい検索クエリについて見つけられる場合(ステップ1050、“YES”)は、検索結果は検索を要求するユーザへ送られる(ステップ1070)。他方で、検索結果が新しい検索クエリについて見つけられない場合(ステップ1050、“NO”)は、処理はステップ1060に進む。
インターネット上での検索は、何らかの適切な検索エンジンを用いて新しい検索クエリについて行われる(ステップ1060)。これに応じて新しい検索結果が生成される。新しい検索結果は1又はそれ以上のウェブページを有しうる。新しい検索結果に含まれる全てのウェブページが、図1のステップ120で得られるような、BDDによって表される検索結果に含まれる個別ウェブページの組で見つけられるかどうかが判断される(ステップ1061)。新しい検索結果に含まれるウェブページのいずれかが個別ウェブページの組で見つけられない場合(ステップ1061、“NO”)は、新しいページIDを新しいウェブページに割り当て(ステップ1062)、その新しいウェブページを個別ウェブページの組に加える(ステップ1063)。他方で、新しい検索結果に含まれるウェブページの全てが個別ウェブページの組で見つけられる場合(ステップ1061、“YES”)は、処理は、ステップ1062及び1063を通り越して直接にステップ1064に進む。個別ウェブページの組で見つけられるウェブページの夫々について、既存のページIDがそのウェブページと相互に関連付けられる(ステップ1064)。
図1のステップ130及び131で記載される処理により新しいタプルBDDを用いて新しい検索クエリ及び新しい検索結果の対が表される(ステップ1065)。図8Aで記載される処理により、新しいタプルBDDはBDDに加えられる。このとき、新しい検索クエリ及び新しい検索結果の対は、また、BDDでキャッシュに格納される。これにより、その後に、BDDは、同様にこの検索クエリについての検索結果を提供するために使用され得る。新しい検索結果は、検索を要求するユーザに送られる(ステップ1070)。
具体例は、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせとして実施されてよい。一例として、しかし限定としてではなく、1又はそれ以上のコンピュータシステムは、ここに記載又は図示される1又はそれ以上の処理の1又はそれ以上のステップを実行するよう特定のロジック又はソフトウェアを実行してよい。1又はそれ以上のコンピュータシステムは、必要に応じて、統一された又は分散した、全域の複数のコンピュータシステム又は複数のデータセンタであってよい。本開示は、あらゆる適切なコンピュータシステムを考慮する。実施例で、ここに記載又は図示される1又はそれ以上処理の1又はそれ以上のステップの実行は、必ずしも、1又はそれ以上の特定の地理的な位置に限定される必要はなく、必ずしも時間的な制限を有する必要はない。一例として、しかし限定としてではなく、1又はそれ以上のコンピュータシステムは、必要に応じて、“実時間”で、“オフライン”で、“バッチモード”で、さもなければ、又はそれらの適切な組み合わせで、自身の機能を実行してよい。コンピュータシステムの1又はそれ以上は、必要に応じて、異なる処理を用いて、異なる時間に、異なる場所で、自身の機能の1又はそれ以上を実行してよい。ここで、必要に応じて、ロジックへの言及はソフトウェアを包含し、またその逆も同様である。必要に応じて、ソフトウェアへの言及は1又はそれ以上のコンピュータプログラムを包含し、またその逆も同様である。必要に応じて、ソフトウェアへの言及はデータ、命令又はそれら両方を包含し、またその逆も同様である。同様に、必要に応じて、データへの言及は命令を包含し、またその逆も同様である。
1又はそれ以上のコンピュータ読出可能な記憶媒体は、特定の実施形態を実施するソフトウェアを記憶し、又は別なふうに具現してよい。コンピュータ読出可能な媒体は、必要に応じて、ソフトウェアを実行し、通信し、収容し、保持し、保存し、伝播し、留保し、記憶し、送信し、転送し、又は別なふうに具現することができる如何なる媒体であってもよい。コンピュータ読出可能な媒体は、必要に応じて、生物学的、化学的、電子的、電磁気的、赤外線、磁気的、又は光学的、量子的、若しくは他の適切な媒体又は2若しくはそれ以上の斯かる媒体の組み合わせであってよい。コンピュータ読出可能な媒体は、1若しくはそれ以上のナノメートルスケールのコンポーネントを有し、又は別なふうにナノメートルスケールの設計若しくは製造を具現してよい。コンピュータ読出可能な媒体の例には、コンパクトディスク(CD)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、フロッピー(登録商標)ディスク、フロプティカルディスク、ハードディスク、ホログラフィック・ストレージ・デバイス、集積回路(IC)(例えば、特定用途向け集積回路(ASIC)等)、磁気テープ、キャッシュ、プログラマブル・ロジック・デバイス(PLD)、ランダム・アクセス・メモリ(RAM)デバイス、読出専用メモリ(ROM)デバイス、半導体メモリデバイス、及び他の適切なコンピュータ読出可能な媒体があるが、これらに限定されない。
特定の実施形態を実施するソフトウェアは、必要に応じて、(プロシージャ又はオブジェクト指向である)いずれかの適切なプログラミング言語、又はプログラミング言語の組み合わせで記述されてよい。あらゆる適切なタイプのコンピュータシステム(例えば、単一又は複数プロセッサコンピュータシステム)も、必要に応じて、特定の実施形態を実施するソフトウェアを実行してよい。汎用のコンピュータシステムは、必要に応じて、特定の実施形態を実施するソフトウェアを実行してよい。
例えば、図11は、実施例の1又はそれ以上の部分を実施するのに適したコンピュータシステム1100の例を表す。本開示は、特定の構成で特定のコンポーネントを有する特定のコンピュータシステム1100を記載及び図示するが、あらゆる適切な構成であらゆる適切なコンポーネントを有するあらゆる適切なコンピュータシステムも考慮する。更に、コンピュータシステム1100は、例えば、1又はそれ以上の集積回路(IC)、1又はそれ以上の印刷回路基板(PCB)、1又はそれ以上の携帯型又は他の装置(例えば、携帯電話機又はPDA等)、1又はそれ以上のパーソナルコンピュータ、あるいは1又はそれ以上のスーパーコンピュータ等のあらゆる適切な物理的形態をとってよい。
コンピュータシステム1100は、1又はそれ以上の入力装置1102(キーパッド、キーボード、マウス、スタイラス等を有する。)、1又はそれ以上の出力装置1104(1又はそれ以上のディスプレイ、1又はそれ以上のスピーカ、1又はそれ以上のプリンタ等を有する。)、1又はそれ以上の記憶装置1106、及び1又はそれ以上の記憶媒体1108を有してよい。入力装置1102は、コンピュータシステム1100の外部又は内部にあってよい。出力装置1104は、コンピュータシステム1100の外部又は内部にあってよい。記憶装置1106は、コンピュータシステム1100の外部又は内部にあってよい。記憶媒体1108は、コンピュータシステム1100の外部又は内部にあってよい。
システムバス1110は、コンピュータシステム1100のサブシステムを互いに結合する。ここで、バスへの言及は、共通の機能を果たす1又はそれ以上のデジタル信号線を包含する。本開示は、あらゆる適切なバスアーキテクチャを有するあらゆる適切なバス構造(例えば、1又はそれ以上のメモリバス、1又はそれ以上のペリフェラルバス、1又はそれ以上のローカルバス、あるいはそれらの組み合わせ等)を有するあらゆる適切なシステムバス1110を考慮する。バスアーキテクチャの例には、業界標準アーキテクチャ(ISA)バス、拡張ISA(EISA)バス、ミクロチャネルアーキテクチャ(MCA)バス、ビデオエレクトロニクス標準アソシエーション(VESA)ローカルバス(VLB)、ペリフェラルコンポーネント相互接続(PCI)バス、PCIエクスプレスバス(PCI−X)、及びアクセルレイテッド・グラフィックス・ポート(AGP)バスがあるが、これらに限定されない。
コンピュータシステム1100は、1又はそれ以上のプロセッサ1112(又は中央処理ユニット(CPU))を有する。プロセッサ1112は、命令、データ、又はコンピュータアドレスの一時的な局所記憶のためのキャッシュ1114を有してよい。プロセッサ1112は、メモリ1116を含む1又はそれ以上の記憶装置へ結合されている。メモリ1116は、ランダム・アクセス・メモリ(RAM)1118及び読出専用メモリ(ROM)1120を有してよい。データ及び命令は、プロセッサ1112とRAM1118との間で双方向に転送してよい。データ及び命令は、ROM1120からプロセッサ1112へ一方向で転送してよい。RAM1118及びROM1120は、あらゆる適切なコンピュータ読出可能な記憶媒体を有してよい。
コンピュータシステム1100は、プロセッサ1112へ双方向に結合されている固定記憶装置1122を有する。固定記憶装置1122は、記憶制御ユニット1107を介してプロセッサ1112へ結合されてよい。固定記憶装置1122は、付加的なデータ記憶容量を提供することができ、あらゆる適切なコンピュータ読出可能な記憶媒体を有してよい。固定記憶装置1122は、オペレーティングシステム(OS)1124、1又はそれ以上の実行ファイル(EXEC)1126、1又はそれ以上のアプリケーション若しくはプログラム1128、データ1130等を記憶してよい。固定記憶装置1122は、通常は、主記憶装置よりも低速である二次記憶媒体(例えば、ハードディスク等)である。適切な場合に、固定記憶装置1122によって記憶される情報は、仮想メモリとしてメモリ1116に組み込まれてよい。
プロセッサ1112は、例えば、グラフィックス制御1132、ビデオインターフェース1134、入力インターフェース1136、出力インターフェース1137、及び記憶インターフェース1138のような様々なインターフェースへ結合されてよい。また、プロセッサ1112に結合される装置は、夫々、適切な装置へ結合されてよい。入力及び出力装置の例には、映像ディスプレイ、トラックボール、マウス、キーボード、マイクロホン、タッチセンス式ディスプレイ、トランスデューサー・カード読取器、磁気若しくは紙テープ読取器、タブレット、スタイラス、音声若しくは手書き認識装置、生体読取器、又はコンピュータシステムがあるが、これらに限定されない。ネットワークインターフェース1140はプロセッサ1112を他のコンピュータシステムへ又はネットワーク1142へ結合することができる。ネットワークインターフェース1140により、プロセッサ1112は、特定の実施形態のステップを実行する過程で、ネットワーク1142から情報を受信し又はネットワーク1142へ情報を送信することができる。実施例は、もっぱらプロセッサ1112で実行してよい。実施例は、プロセッサ1112で及び共に動作する1又はそれ以上の遠隔のプロセッサで実行してよい。
コンピュータシステム1100がネットワーク1142へ接続されているネットワーク環境で、コンピュータシステム1100は、ネットワーク1142へ接続されている他の装置と通信することができる。コンピュータシステム1100は、ネットワークインターフェース1140を介してネットワーク1142と通信することができる。例えば、コンピュータシステム1100は、ネットワークインターフェース1140で1又はそれ以上の着信パケットの形でネットワーク1142から情報(例えば、他の装置からの要求又は応答)を受信することができ、メモリ1116は、その後の処理のために、それらの着信パケットを記憶することができる。コンピュータシステム1100は、ネットワークインターフェース1140から1又はそれ以上の発信パケットの形でネットワーク1142へ情報(例えば、他の装置への要求又は応答)を送信することができる。発信パケットは、送信される前はメモリ1116に記憶されている。プロセッサ1112は、特定のニーズに従って、メモリ1116内の着信又は発信パケットにアクセスして、それを処理することができる。
実施例には、ここに記載又は図示される1又はそれ以上の処理の1又はそれ以上のステップを実行するためのソフトウェアを具現する1又はそれ以上のコンピュータ読出可能な記憶媒体を有する1又はそれ以上のコンピュータ記憶プロダクトが含まれる。実施例で、媒体、ソフトウェア、又はその両方の1又はそれ以上の部分は、ここに記載又は図示される1又はそれ以上の処理の1又はそれ以上のステップを実行するよう具体的に設計され製造されてよい。更に、又は代替として、実施例で、媒体、ソフトウェア、又はその両方の1又はそれ以上の部分は、一般に、ここに記載又は図示される処理に特有の設計又は製造を用いずに利用可能でありうる。コンピュータ読出可能な記憶媒体の例には、CD(例えば、CD−ROM)、FPGA、フロッピー(登録商標)ディスク、フロプティカルディスク、ハードディスク、ホログラフィック・ストレージ・デバイス、IC(例えば、ASIC)、磁気テープ、キャッシュ、PLD、RAMデバイス、ROMデバイス、半導体メモリデバイス、及び他の適切なコンピュータ読出可能な媒体があるが、これらに限定されない。実施例で、ソフトウェアは、コンプライアが生成することができるマシンコード、又はコンピュータがインタープリタを用いて実行することができる高度なコードを有する1又はそれ以上のファイルであってよい。
一例として、しかし限定としてではなく、メモリ1116は、ソフトウェアを具現する1又はそれ以上のコンピュータ読出可能な記憶媒体を有してよく、コンピュータシステム1100は、プロセッサ1112がソフトウェアを実行した結果として、ここに記載及び図示される特定の機能性を提供することができる。ソフトウェアをメモリ1116は記憶し、プロセッサ1112は実行してよい。メモリ1116は、ソフトウェアを具現する大容量記憶装置1116にあるコンピュータ読出可能な記憶媒体から、又はネットワークインターフェース1140を介して1又はそれ以上の他のソースからソフトウェアを読み出してよい。ソフトウェアを実行する場合に、プロセッサ1112は、ここに記載又は図示される1又はそれ以上の処理の1又はそれ以上のステップを実行してよい。これらのステップは、特定のニーズに従って、メモリ1116での記憶のために1又はそれ以上のデータ構造を定義すること、及びソフトウェアの1又はそれ以上の部分によって導かれるようにデータ構造の1又はそれ以上を変更することを有してよい。更に、又は代替として、コンピュータシステム1100は、ハードワイヤードの又は別なふうに回路で具現されるロジックの結果として、ここに記載又は図示される特定の機能性を提供してよい。ロジックは、ここに記載又は図示される1又はそれ以上の処理の1又はそれ以上のステップを実行するよう、ソフトウェアの代わりに、又はソフトウェアとともに、動作してよい。本開示は、特定のニーズに従って、ハードウェア及びソフトウェアのあらゆる適切な組み合わせを包含する。
本開示は、特定の順序で発生する特定の動作について記載及び図示するが、本開示は、あらゆる適切な順序で発生するあらゆる適切な動作も考慮する。更に、本開示は、あらゆる適切な順序で1又はそれ以上の回数繰り返されるあらゆる適切な動作も考慮する。本開示は、次々と発生する特定の動作について記載及び図示するが、本開示は、必要に応じて、略同時に発生するあらゆる適切な動作も考慮する。ここに記載又は図示されるあらゆる適切な動作又は動作の連続は、必要に応じて、例えば、オペレーティングシステム又はカーネル等の他の処理によって中断され、サスペンドされ、又は別なふうに制御されてよい。アクトは、システム処理の全て又は本質的部分を占めるスタンドアローンのルーチンとして又はオペレーティングシステム環境で動作することができる。
本開示は、当業者が理解しうる本開示中の実施例に対する全ての変更、置換、変形、代替、及び改良を包含する。同様に、必要に応じて、添付の特許請求の範囲は、当業者が理解しうる本開示中の実施例に対する全ての変更、置換、変形、代替、及び改良を包含する。
[関連出願]
本願は、合衆国法典第35巻第119条(e)に基づき、2008年8月6日に出願された“CACHING QUERY RESULTS WITH BINARY DECISION DIAGRAMS(BDDs)”と題された米国仮特許出願第61/086672号に基づいて優先権を主張するものである。この出願は、参照により本願に援用される。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
1又はそれ以上のコンピュータシステムによって複数の第1の二分決定ダイアグラムを構成し、該第1の二分決定ダイアグラムの夫々は複数のワードの異なる1つを表し、該ワードの夫々は一意のワード識別子を有し、各第1の二分決定ダイアグラムは当該第1の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成されるステップと、
前記1又はそれ以上のコンピュータシステムによって複数の第2の二分決定ダイアグラムを構成し、該第2の二分決定ダイアグラムの夫々は複数の検索クエリの異なる1つを表し、該検索クエリの夫々は前記ワードの1又はそれ以上を有し、各第2の二分決定ダイアグラムは当該第2の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第1の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記1又はそれ以上のコンピュータシステムによって複数の第3の二分決定ダイアグラムを構成し、該第3の二分決定ダイアグラムの夫々は複数のウェブページの異なる1つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第3の二分決定ダイアグラムの夫々は当該第3の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成されるステップと、
前記1又はそれ以上のコンピュータシステムによって複数の第4の二分決定ダイアグラムを構成し、該第4の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる1つを表し、該検索結果の夫々は前記ウェブページの1又はそれ以上を有し、各第4の二分決定ダイアグラムは当該第4の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第3の二分決定ダイアグラムに論理和演算を実行することによって構成されるステップと、
前記1又はそれ以上のコンピュータシステムによって複数の第5の二分決定ダイアグラムを構成し、該第5の二分決定ダイアグラムの夫々は複数の検索タプルの異なる1つを表し、該検索タプルの夫々は前記検索クエリの異なる1つと、当該検索クエリに対応する検索結果の異なる1つとを有し、各第5の二分決定ダイアグラムは、当該第5の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第2の二分決定ダイアグラム及び第4の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記1又はそれ以上のコンピュータシステムによって、前記第5の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第6の二分決定ダイアグラムを構成するステップと
を有する方法。
(付記2)
前記第6の二分決定ダイアグラムは、
2進0終端ノードと、
2進1終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記0終端ノード又は前記1終端ノードのいずれかに至り、
前記1終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第1の1又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第2の1又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、付記1記載の方法。
(付記3)
前記1又はそれ以上のコンピュータシステムによって前記ワードの1又はそれ以上を有する新たな検索クエリを受け取るステップと、
前記1又はそれ以上のコンピュータシステムによって前記第6の二分決定ダイアグラムを検索するステップと、
前記1終端ノードに至る前記経路の夫々について、当該経路における検索クエリが前記新たな検索クエリに等しい場合は、前記1又はそれ以上のコンピュータシステムによって、当該経路における全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
前記1又はそれ以上のコンピュータシステムによって前記新たな検索クエリに応答して前記検索結果を返すステップと
を更に有する付記2記載の方法。
(付記4)
前記第1の二分決定ダイアグラムの1つを構成するステップには、
2進フォーマットで当該1つの第1の二分決定ダイアグラムによって表されるワードのワード識別子を表すステップと、
複数の変数により前記ワード識別子において複数の2進値を表し、各変数は前記2進値の異なる1つを表すステップと、
複数の決定ノードとして前記変数により当該1つの第1の二分決定ダイアグラムを構成するステップと
が含まれる、付記1記載の方法。
(付記5)
前記第2の二分決定ダイアグラムの1つを構成するステップには、当該1つの第2の二分決定ダイアグラムによって表される検索クエリに現れるワードの順序で、該検索クエリに含まれる該ワードを表す前記第1の二分決定ダイアグラムに論理積演算を実行するステップが含まれる、付記1記載の方法。
(付記6)
前記第3の二分決定ダイアグラムの1つを構成するステップには、
2進フォーマットで当該1つの第3の二分決定ダイアグラムによって表されるウェブページのページ識別子を表すステップと、
複数の変数により前記ページ識別子において複数の2進値を表し、各変数は前記2進値の異なる1つを表すステップと、
複数の決定ノードとして前記変数により当該1つの第3の二分決定ダイアグラムを構成するステップと
が含まれる、付記1記載の方法。
(付記7)
前記1又はそれ以上のコンピュータシステムによって、新たな検索タプルを表す新たな第5の二分決定ダイアグラム及び前記第6の二分決定ダイアグラムに論理和演算を実行することで、前記新たな第5の二分決定ダイアグラムを前記第6の二分決定ダイアグラムに加えるステップを更に有する、付記1記載の方法。
(付記8)
前記1又はそれ以上のコンピュータシステムによって、前記検索タプルの1つを表す前記第5の二分決定ダイアグラムの1つを前記第6の二分決定ダイアグラムから削除するステップを更に有し、
前記削除するステップは、
当該1つの第5の二分決定ダイアグラムを無効にするステップと、
前記第6の二分決定ダイアグラム及び前記無効にされた第5の二分決定ダイアグラムに論理積演算を実行するステップと
を有する、付記1記載の方法。
(付記9)
前記1又はそれ以上のコンピュータシステムによって、1又はそれ以上の二分決定ダイアグラム簡約規則により前記第6の二分決定ダイアグラムを最大限に簡約化するステップを更に有する、付記1記載の方法。
(付記10)
前記1又はそれ以上のコンピュータシステムによって、1又はそれ以上の二分決定ダイアグラム簡約規則により前記第4の二分決定ダイアグラムと、前記第5の二分決定ダイアグラムの夫々とを最大限に簡約化するステップを更に有する、付記1記載の方法。
(付記11)
前記1又はそれ以上のコンピュータシステムによって、前記第6の二分決定ダイアグラムを複数の第7の二分決定ダイアグラムに区分化するステップを更に有し、
前記第7の二分決定ダイアグラムのサイズの和は、前記第6の二分決定ダイアグラムのサイズより小さい、付記1記載の方法。
(付記12)
前記1又はそれ以上のコンピュータシステムによって前記複数の第7の二分決定ダイアグラムを保存するステップを更に有する、付記11記載の方法。
(付記13)
前記1又はそれ以上のコンピュータシステムによって前記第6の二分決定ダイアグラムを保存するステップを更に有する、付記1記載の方法。
(付記14)
1又はそれ以上のコンピュータシステムによって複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる1つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも1度現れ、該検索クエリの夫々は前記ワードの1又はそれ以上を有するステップと、
前記1又はそれ以上のコンピュータシステムによって複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる1つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも1つ含まれ、該検索結果の夫々は前記ウェブページの1又はそれ以上を有するステップと、
前記1又はそれ以上のコンピュータシステムによって複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる1つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られるステップと、
前記1又はそれ以上のコンピュータシステムによって前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成するステップと
を有し、
前記二分決定ダイアグラムは、
2進0終端ノードと、
2進1終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記0終端ノード又は前記1終端ノードのいずれかに至り、
各決定ノードは、2進フォーマットで前記クエリ識別子の1つ及び前記ページ識別子の1つでの2進値を表し、
前記1終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第1の1又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第2の1又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、方法。
(付記15)
前記1又はそれ以上のコンピュータシステムによって前記ワードの1又はそれ以上を有する新たな検索クエリを受け取るステップと、
前記1又はそれ以上のコンピュータシステムによって、前記新たな検索クエリに含まれるワードを識別するワード識別子を結合することで前記新たな検索クエリについて新たなクエリ識別子を得るステップと、
前記1又はそれ以上のコンピュータシステムによって前記二分決定ダイアグラムを検索するステップと、
前記1終端ノードに至る前記経路の夫々について、当該経路での検索クエリが前記新たな検索クエリに等しい場合は、前記1又はそれ以上のコンピュータシステムによって、当該経路での全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
前記1又はそれ以上のコンピュータシステムによって前記新たな検索クエリに応答して前記検索結果を返すステップと
を更に有する付記14記載の方法。
(付記16)
前記1又はそれ以上のコンピュータシステムによって、第2の検索クエリと、該第2の検索クエリに応答して生成される第2の検索結果とを表す第2の二分決定ダイアグラムを構成し、前記第2の検索クエリは前記ワードの1又はそれ以上を有し、前記第2の検索結果は前記ウェブページの1又はそれ以上を有するステップと、
前記1又はそれ以上のコンピュータシステムによって、前記二分決定ダイアグラム及び前記第2の二分決定ダイアグラムに論理和演算を実行することで前記第2の二分決定ダイアグラムを前記二分決定ダイアグラムに加えるステップと
を更に有する付記14記載の方法。
(付記17)
前記1又はそれ以上のコンピュータシステムによって、前記検索クエリの1つと、該1つの検索クエリに応答して生成される前記検索結果の1つとを表す第3の二分決定ダイアグラムを無効にするステップと、
前記1又はそれ以上のコンピュータシステムによって、前記二分決定ダイアグラム及び前記無効にされた第3の二分決定ダイアグラムに論理積演算を実行することで前記第3の二分決定ダイアグラムを前記二分決定ダイアグラムから削除するステップと
を更に有する付記14記載の方法。
(付記18)
前記1又はそれ以上のコンピュータシステムによって1又はそれ以上の二分決定ダイアグラム簡約規則により前記二分決定ダイアグラムを最大限に簡約化するステップを更に有する付記14記載の方法。
(付記19)
前記1又はそれ以上のコンピュータシステムによって前記二分決定ダイアグラムを複数の第4の二分決定ダイアグラムに区分化するステップを更に有し、
前記第4の二分決定ダイアグラムのサイズの和は、前記二分決定ダイアグラムのサイズより小さい、付記14記載の方法。
(付記20)
前記1又はそれ以上のコンピュータシステムによって前記複数の第4の二分決定ダイアグラムを保存するステップを更に有する付記19記載の方法。
(付記21)
前記1又はそれ以上のコンピュータシステムによって前記二分決定ダイアグラムを保存するステップを更に有する付記14記載の方法。
(付記22)
1又はそれ以上のコンピュータシステムによる実行のためであって且つ実行される場合に
複数の第1の二分決定ダイアグラムを構成し、該第1の二分決定ダイアグラムの夫々は複数のワードの異なる1つを表し、該ワードの夫々は一意のワード識別子を有し、各第1の二分決定ダイアグラムは当該第1の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成されるステップと、
複数の第2の二分決定ダイアグラムを構成し、該第2の二分決定ダイアグラムの夫々は複数の検索クエリの異なる1つを表し、該検索クエリの夫々は前記ワードの1又はそれ以上を有し、各第2の二分決定ダイアグラムは当該第2の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第1の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
複数の第3の二分決定ダイアグラムを構成し、該第3の二分決定ダイアグラムの夫々は複数のウェブページの異なる1つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第3の二分決定ダイアグラムの夫々は当該第3の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成されるステップと、
複数の第4の二分決定ダイアグラムを構成し、該第4の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる1つを表し、該検索結果の夫々は前記ウェブページの1又はそれ以上を有し、各第4の二分決定ダイアグラムは当該第4の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第3の二分決定ダイアグラムに論理和演算を実行することによって構成されるステップと、
複数の第5の二分決定ダイアグラムを構成し、該第5の二分決定ダイアグラムの夫々は複数の検索タプルの異なる1つを表し、該検索タプルの夫々は前記検索クエリの異なる1つと、当該検索クエリに対応する検索結果の異なる1つとを有し、各第5の二分決定ダイアグラムは、当該第5の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第2の二分決定ダイアグラム及び第4の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記第5の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第6の二分決定ダイアグラムを構成するステップと
を実行するよう動作するソフトウェアを具現する1又はそれ以上のコンピュータ読出可能な記憶媒体。
(付記23)
前記第6の二分決定ダイアグラムは、
2進0終端ノードと、
2進1終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記0終端ノード又は前記1終端ノードのいずれかに至り、
前記1終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第1の1又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第2の1又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、付記22記載の記憶媒体。
(付記24)
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記1又はそれ以上のコンピュータシステムに、
前記ワードの1又はそれ以上を有する新たな検索クエリを受け取るステップと、
前記第6の二分決定ダイアグラムを検索するステップと、
前記1終端ノードに至る前記経路の夫々について、当該経路における検索クエリが前記新たな検索クエリに等しい場合は、当該経路における全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
前記新たな検索クエリに応答して前記検索結果を返すステップと
を実行させるよう動作する、付記23記載の記憶媒体。
(付記25)
前記第1の二分決定ダイアグラムの1つを構成するステップには、
2進フォーマットで当該1つの第1の二分決定ダイアグラムによって表されるワードのワード識別子を表すステップと、
複数の変数により前記ワード識別子において複数の2進値を表し、各変数は前記2進値の異なる1つを表すステップと、
複数の決定ノードとして前記変数により当該1つの第1の二分決定ダイアグラムを構成するステップと
が含まれる、付記22記載の記憶媒体。
(付記26)
前記第2の二分決定ダイアグラムの1つを構成するステップには、当該1つの第2の二分決定ダイアグラムによって表される検索クエリに現れるワードの順序で、該検索クエリに含まれる該ワードを表す前記第1の二分決定ダイアグラムに論理積演算を実行するステップが含まれる、付記22記載の記憶媒体。
(付記27)
前記第3の二分決定ダイアグラムの1つを構成するステップには、
2進フォーマットで当該1つの第3の二分決定ダイアグラムによって表されるウェブページのページ識別子を表すステップと、
複数の変数により前記ページ識別子において複数の2進値を表し、各変数は前記2進値の異なる1つを表すステップと、
複数の決定ノードとして前記変数により当該1つの第3の二分決定ダイアグラムを構成するステップと
が含まれる、付記22記載の記憶媒体。
(付記28)
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記1又はそれ以上のコンピュータシステムに、
新たな検索タプルを表す新たな第5の二分決定ダイアグラム及び前記第6の二分決定ダイアグラムに論理和演算を実行することで、前記新たな第5の二分決定ダイアグラムを前記第6の二分決定ダイアグラムに加えるステップを実行させるよう動作する、付記22記載の記憶媒体。
(付記29)
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記1又はそれ以上のコンピュータシステムに、
前記検索タプルの1つを表す前記第5の二分決定ダイアグラムの1つを前記第6の二分決定ダイアグラムから削除するステップを実行させるよう動作し、
前記削除するステップは、
当該1つの第5の二分決定ダイアグラムを無効にするステップと、
前記第6の二分決定ダイアグラム及び前記無効にされた第5の二分決定ダイアグラムに論理積演算を実行するステップと
を有する、付記22記載の記憶媒体。
(付記30)
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記1又はそれ以上のコンピュータシステムに、
1又はそれ以上の二分決定ダイアグラム簡約規則により前記第6の二分決定ダイアグラムを最大限に簡約化するステップを実行させるよう動作する、付記22記載の記憶媒体。
(付記31)
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記1又はそれ以上のコンピュータシステムに、
1又はそれ以上の二分決定ダイアグラム簡約規則により前記第4の二分決定ダイアグラムと、前記第5の二分決定ダイアグラムの夫々とを最大限に簡約化するステップを実行させるよう動作する、付記22記載の記憶媒体。
(付記32)
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記1又はそれ以上のコンピュータシステムに、
前記第6の二分決定ダイアグラムを複数の第7の二分決定ダイアグラムに区分化するステップを実行させるよう動作し、
前記第7の二分決定ダイアグラムのサイズの和は、前記第6の二分決定ダイアグラムのサイズより小さい、付記22記載の記憶媒体。
(付記33)
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記1又はそれ以上のコンピュータシステムに、
前記複数の第7の二分決定ダイアグラムを保存するステップを実行させるよう動作する、付記32記載の記憶媒体。
(付記34)
複数のコンピュータ読出可能な命令は、実行される場合、更に、前記1又はそれ以上のコンピュータシステムに、
前記第6の二分決定ダイアグラムを保存するステップを実行させるよう動作する、付記22記載の記憶媒体。
(付記35)
1又はそれ以上のコンピュータシステムによって実行される場合に、
複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる1つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも1度現れ、該検索クエリの夫々は前記ワードの1又はそれ以上を有するステップと、
複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる1つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも1つ含まれ、該検索結果の夫々は前記ウェブページの1又はそれ以上を有するステップと、
複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる1つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られるステップと、
前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成するステップと
を実行するよう動作し、
前記二分決定ダイアグラムは、
2進0終端ノードと、
2進1終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記0終端ノード又は前記1終端ノードのいずれかに至り、
各決定ノードは、2進フォーマットで前記クエリ識別子の1つ及び前記ページ識別子の1つでの2進値を表し、
前記1終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第1の1又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第2の1又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、ソフトウェアを具現する1又はそれ以上のコンピュータ読出可能な記憶媒体。
(付記36)
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記1又はそれ以上のコンピュータシステムに、
前記ワードの1又はそれ以上を有する新たな検索クエリを受け取るステップと、
前記新たな検索クエリに含まれるワードを識別するワード識別子を結合することで前記新たな検索クエリについて新たなクエリ識別子を得るステップと、
前記二分決定ダイアグラムを検索するステップと、
前記1終端ノードに至る前記経路の夫々について、当該経路での検索クエリが前記新たな検索クエリに等しい場合は、当該経路での全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
前記新たな検索クエリに応答して前記検索結果を返すステップと
を実行させるよう動作する、付記35記載の記憶媒体。
(付記37)
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記1又はそれ以上のコンピュータシステムに、
第2の検索クエリと、該第2の検索クエリに応答して生成される第2の検索結果とを表す第2の二分決定ダイアグラムを構成し、前記第2の検索クエリは前記ワードの1又はそれ以上を有し、前記第2の検索結果は前記ウェブページの1又はそれ以上を有するステップと、
前記二分決定ダイアグラム及び前記第2の二分決定ダイアグラムに論理和演算を実行することで前記第2の二分決定ダイアグラムを前記二分決定ダイアグラムに加えるステップと
を実行させるよう動作する、付記35記載の記憶媒体。
(付記38)
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記1又はそれ以上のコンピュータシステムに、
前記検索クエリの1つと、該1つの検索クエリに応答して生成される前記検索結果の1つとを表す第3の二分決定ダイアグラムを無効にするステップと、
前記二分決定ダイアグラム及び前記無効にされた第3の二分決定ダイアグラムに論理積演算を実行することで前記第3の二分決定ダイアグラムを前記二分決定ダイアグラムから削除するステップと
を実行させるよう動作する、付記35記載の記憶媒体。
(付記39)
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記1又はそれ以上のコンピュータシステムに、
1又はそれ以上の二分決定ダイアグラム簡約規則により前記二分決定ダイアグラムを最大限に簡約化するステップを実行させるよう動作する、付記35記載の記憶媒体。
(付記40)
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記1又はそれ以上のコンピュータシステム、
前記二分決定ダイアグラムを複数の第4の二分決定ダイアグラムに区分化するステップを実行させるよう動作し、
前記第4の二分決定ダイアグラムのサイズの和は、前記二分決定ダイアグラムのサイズより小さい、付記35記載の記憶媒体。
(付記41)
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記1又はそれ以上のコンピュータシステムに、
前記複数の第4の二分決定ダイアグラムを保存するステップを実行させるよう動作する、付記40記載の記憶媒体。
(付記42)
複数のコンピュータ読出可能な命令は、実行される場合、更に、前記1又はそれ以上のコンピュータシステムに、
前記二分決定ダイアグラムを保存するステップを実行させるよう動作する、付記35記載の記憶媒体。
(付記43)
1又はそれ以上のプロセッサによって実行可能な命令を有するメモリと、
前記メモリへ結合され、前記命令を実行するよう動作する前記1又はそれ以上のプロセッサと
を有し、
前記1又はそれ以上のプロセッサは、前記命令を実行する場合に、
複数の第1の二分決定ダイアグラムを構成し、該第1の二分決定ダイアグラムの夫々は複数のワードの異なる1つを表し、該ワードの夫々は一意のワード識別子を有し、各第1の二分決定ダイアグラムは当該第1の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成されるステップと、
複数の第2の二分決定ダイアグラムを構成し、該第2の二分決定ダイアグラムの夫々は複数の検索クエリの異なる1つを表し、該検索クエリの夫々は前記ワードの1又はそれ以上を有し、各第2の二分決定ダイアグラムは当該第2の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第1の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
複数の第3の二分決定ダイアグラムを構成し、該第3の二分決定ダイアグラムの夫々は複数のウェブページの異なる1つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第3の二分決定ダイアグラムの夫々は当該第3の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成されるステップと、
複数の第4の二分決定ダイアグラムを構成し、該第4の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる1つを表し、該検索結果の夫々は前記ウェブページの1又はそれ以上を有し、各第4の二分決定ダイアグラムは当該第4の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第3の二分決定ダイアグラムに論理和演算を実行することによって構成されるステップと、
複数の第5の二分決定ダイアグラムを構成し、該第5の二分決定ダイアグラムの夫々は複数の検索タプルの異なる1つを表し、該検索タプルの夫々は前記検索クエリの異なる1つと、当該検索クエリに対応する検索結果の異なる1つとを有し、各第5の二分決定ダイアグラムは、当該第5の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第2の二分決定ダイアグラム及び第4の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記第5の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第6の二分決定ダイアグラムを構成するステップと
を実行するよう動作する、システム。
(付記44)
前記第6の二分決定ダイアグラムは、
2進0終端ノードと、
2進1終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記0終端ノード又は前記1終端ノードのいずれかに至り、
前記1終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第1の1又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第2の1又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、付記43記載のシステム。
(付記45)
前記1又はそれ以上のプロセッサは、更に、前記命令を実行する場合、
前記ワードの1又はそれ以上を有する新たな検索クエリを受け取るステップと、
前記第6の二分決定ダイアグラムを検索するステップと、
前記1終端ノードに至る前記経路の夫々について、当該経路における検索クエリが前記新たな検索クエリに等しい場合は、当該経路における全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
前記新たな検索クエリに応答して前記検索結果を返すステップと
を実行するよう動作する、付記44記載のシステム。
(付記46)
前記第1の二分決定ダイアグラムの1つを構成するステップには、
2進フォーマットで当該1つの第1の二分決定ダイアグラムによって表されるワードのワード識別子を表すステップと、
複数の変数により前記ワード識別子において複数の2進値を表し、各変数は前記2進値の異なる1つを表すステップと、
複数の決定ノードとして前記変数により当該1つの第1の二分決定ダイアグラムを構成するステップと
が含まれる、付記43記載のシステム。
(付記47)
前記第2の二分決定ダイアグラムの1つを構成するステップには、当該1つの第2の二分決定ダイアグラムによって表される検索クエリに現れるワードの順序で、該検索クエリに含まれる該ワードを表す前記第1の二分決定ダイアグラムに論理積演算を実行するステップが含まれる、付記43記載のシステム。
(付記48)
前記第3の二分決定ダイアグラムの1つを構成するステップには、
2進フォーマットで当該1つの第3の二分決定ダイアグラムによって表されるウェブページのページ識別子を表すステップと、
複数の変数により前記ページ識別子において複数の2進値を表し、各変数は前記2進値の異なる1つを表すステップと、
複数の決定ノードとして前記変数により当該1つの第3の二分決定ダイアグラムを構成するステップと
が含まれる、付記43記載のシステム。
(付記49)
前記1又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、新たな検索タプルを表す新たな第5の二分決定ダイアグラム及び前記第6の二分決定ダイアグラムに論理和演算を実行することで、前記新たな第5の二分決定ダイアグラムを前記第6の二分決定ダイアグラムに加えるよう動作する、付記43記載のシステム。
(付記50)
前記1又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、
前記検索タプルの1つを表す前記第5の二分決定ダイアグラムの1つを前記第6の二分決定ダイアグラムから削除するステップを実行するよう動作し、
前記削除するステップは、
当該1つの第5の二分決定ダイアグラムを無効にするステップと、
前記第6の二分決定ダイアグラム及び前記無効にされた第5の二分決定ダイアグラムに論理積演算を実行するステップと
を有する、付記43記載のシステム。
(付記51)
前記1又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、1又はそれ以上の二分決定ダイアグラム簡約規則により前記第6の二分決定ダイアグラムを最大限に簡約化するよう動作する、付記43記載のシステム。
(付記52)
前記1又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、1又はそれ以上の二分決定ダイアグラム簡約規則により前記第4の二分決定ダイアグラムと、前記第5の二分決定ダイアグラムの夫々とを最大限に簡約化するよう動作する、付記43記載のシステム。
(付記53)
前記1又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、前記第6の二分決定ダイアグラムを複数の第7の二分決定ダイアグラムに区分化するよう動作し、
前記第7の二分決定ダイアグラムのサイズの和は、前記第6の二分決定ダイアグラムのサイズより小さい、付記43記載のシステム。
(付記54)
前記1又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、前記複数の第7の二分決定ダイアグラムを保存するよう動作する、付記53記載のシステム。
(付記55)
前記1又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、前記第6の二分決定ダイアグラムを保存するよう動作する、付記43記載のシステム。
(付記56)
1又はそれ以上のプロセッサによって実行可能な命令を有するメモリと、
前記メモリへ結合され、前記命令を実行するよう動作する前記1又はそれ以上のプロセッサと
を有し、
前記1又はそれ以上のプロセッサは、前記命令を実行する場合に、
複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる1つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも1度現れ、該検索クエリの夫々は前記ワードの1又はそれ以上を有するステップと、
複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる1つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも1つ含まれ、該検索結果の夫々は前記ウェブページの1又はそれ以上を有するステップと、
複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる1つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られるステップと、
前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成するステップと
を実行するよう動作し、
前記二分決定ダイアグラムは、
2進0終端ノードと、
2進1終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記0終端ノード又は前記1終端ノードのいずれかに至り、
各決定ノードは、2進フォーマットで前記クエリ識別子の1つ及び前記ページ識別子の1つでの2進値を表し、
前記1終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第1の1又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第2の1又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、システム。
(付記57)
前記1又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、
前記ワードの1又はそれ以上を有する新たな検索クエリを受け取るステップと、
前記新たな検索クエリに含まれるワードを識別するワード識別子を結合することで前記新たな検索クエリについて新たなクエリ識別子を得るステップと、
前記二分決定ダイアグラムを検索するステップと、
前記1終端ノードに至る前記経路の夫々について、当該経路での検索クエリが前記新たな検索クエリに等しい場合は、当該経路での全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
前記新たな検索クエリに応答して前記検索結果を返すステップと
を実行するよう動作する、付記56記載のシステム。
(付記58)
前記1又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、
第2の検索クエリと、該第2の検索クエリに応答して生成される第2の検索結果とを表す第2の二分決定ダイアグラムを構成し、前記第2の検索クエリは前記ワードの1又はそれ以上を有し、前記第2の検索結果は前記ウェブページの1又はそれ以上を有するステップと、
前記二分決定ダイアグラム及び前記第2の二分決定ダイアグラムに論理和演算を実行することで前記第2の二分決定ダイアグラムを前記二分決定ダイアグラムに加えるステップと
を実行するよう動作する、付記56記載のシステム。
(付記59)
前記1又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、
前記検索クエリの1つと、該1つの検索クエリに応答して生成される前記検索結果の1つとを表す第3の二分決定ダイアグラムを無効にするステップと、
前記二分決定ダイアグラム及び前記無効にされた第3の二分決定ダイアグラムに論理積演算を実行することで前記第3の二分決定ダイアグラムを前記二分決定ダイアグラムから削除するステップと
を実行するよう動作する、付記56記載のシステム。
(付記60)
前記1又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、1又はそれ以上の二分決定ダイアグラム簡約規則により前記二分決定ダイアグラムを最大限に簡約化するよう動作する、付記56記載のシステム。
(付記61)
前記1又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、前記二分決定ダイアグラムを複数の第4の二分決定ダイアグラムに区分化するよう動作し、
前記第4の二分決定ダイアグラムのサイズの和は、前記二分決定ダイアグラムのサイズより小さい、付記56記載のシステム。
(付記62)
前記1又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、前記複数の第4の二分決定ダイアグラムを保存するよう動作する、付記61記載のシステム。
(付記63)
前記1又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、前記二分決定ダイアグラムを保存するよう動作する、付記56記載のシステム。
(付記64)
複数の第1の二分決定ダイアグラムを構成し、該第1の二分決定ダイアグラムの夫々は複数のワードの異なる1つを表し、該ワードの夫々は一意のワード識別子を有し、各第1の二分決定ダイアグラムは当該第1の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成される手段と、
複数の第2の二分決定ダイアグラムを構成し、該第2の二分決定ダイアグラムの夫々は複数の検索クエリの異なる1つを表し、該検索クエリの夫々は前記ワードの1又はそれ以上を有し、各第2の二分決定ダイアグラムは当該第2の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第1の二分決定ダイアグラムに論理積演算を実行することによって構成される手段と、
複数の第3の二分決定ダイアグラムを構成し、該第3の二分決定ダイアグラムの夫々は複数のウェブページの異なる1つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第3の二分決定ダイアグラムの夫々は当該第3の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成される手段と、
複数の第4の二分決定ダイアグラムを構成し、該第4の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる1つを表し、該検索結果の夫々は前記ウェブページの1又はそれ以上を有し、各第4の二分決定ダイアグラムは当該第4の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第3の二分決定ダイアグラムに論理和演算を実行することによって構成される手段と、
前記1又はそれ以上のコンピュータシステムによって複数の第5の二分決定ダイアグラムを構成し、該第5の二分決定ダイアグラムの夫々は複数の検索タプルの異なる1つを表し、該検索タプルの夫々は前記検索クエリの異なる1つと、当該検索クエリに対応する検索結果の異なる1つとを有し、各第5の二分決定ダイアグラムは、当該第5の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第2の二分決定ダイアグラム及び第4の二分決定ダイアグラムに論理積演算を実行することによって構成される手段と、
前記1又はそれ以上のコンピュータシステムによって、前記第5の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第6の二分決定ダイアグラムを構成する手段と
を有するシステム。
(付記65)
複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる1つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも1度現れ、該検索クエリの夫々は前記ワードの1又はそれ以上を有する手段と、
複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる1つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも1つ含まれ、該検索結果の夫々は前記ウェブページの1又はそれ以上を有する手段と、
複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる1つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られる手段と、
前記1又はそれ以上のコンピュータシステムによって前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成する手段と
を有し、
前記二分決定ダイアグラムは、
2進0終端ノードと、
2進1終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記0終端ノード又は前記1終端ノードのいずれかに至り、
各決定ノードは、2進フォーマットで前記クエリ識別子の1つ及び前記ページ識別子の1つでの2進値を表し、
前記1終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第1の1又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第2の1又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、システム。
210,220,230,240,310,320,410,420,430,440,450,460,510,520,610,620,630,700,750 BDD
910 ネットワーク環境
912 ネットワーク
914 クライアント
916 ウェブサーバ
918 アプリケーションサーバ
920 リンク
922 ウェブ検索エンジン
924 索引エンジン
926 決定ダイアグラムエンジン
928 ウェブ検索データ
1100 コンピュータシステム
1112 プロセッサ
1114 キャッシュ
1116 メモリ

Claims (20)

  1. 1又はそれ以上のコンピュータシステムによって複数の第1の二分決定ダイアグラムを構成し、該第1の二分決定ダイアグラムの夫々は複数のワードの異なる1つを表し、該ワードの夫々は一意のワード識別子を有し、各第1の二分決定ダイアグラムは当該第1の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成されるステップと、
    前記1又はそれ以上のコンピュータシステムによって複数の第2の二分決定ダイアグラムを構成し、該第2の二分決定ダイアグラムの夫々は複数の検索クエリの異なる1つを表し、該検索クエリの夫々は前記ワードの1又はそれ以上を有し、各第2の二分決定ダイアグラムは当該第2の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第1の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
    前記1又はそれ以上のコンピュータシステムによって複数の第3の二分決定ダイアグラムを構成し、該第3の二分決定ダイアグラムの夫々は複数のウェブページの異なる1つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第3の二分決定ダイアグラムの夫々は当該第3の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成されるステップと、
    前記1又はそれ以上のコンピュータシステムによって複数の第4の二分決定ダイアグラムを構成し、該第4の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる1つを表し、該検索結果の夫々は前記ウェブページの1又はそれ以上を有し、各第4の二分決定ダイアグラムは当該第4の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第3の二分決定ダイアグラムに論理和演算を実行することによって構成されるステップと、
    前記1又はそれ以上のコンピュータシステムによって複数の第5の二分決定ダイアグラムを構成し、該第5の二分決定ダイアグラムの夫々は複数の検索タプルの異なる1つを表し、該検索タプルの夫々は前記検索クエリの異なる1つと、当該検索クエリに対応する検索結果の異なる1つとを有し、各第5の二分決定ダイアグラムは、当該第5の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第2の二分決定ダイアグラム及び第4の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
    前記1又はそれ以上のコンピュータシステムによって、前記第5の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第6の二分決定ダイアグラムを構成するステップと
    を有する方法。
  2. 前記第6の二分決定ダイアグラムは、
    2進0終端ノードと、
    2進1終端ノードと、
    複数の経路と
    を有し、
    各経路は、複数の決定ノードを有し、前記0終端ノード又は前記1終端ノードのいずれかに至り、
    前記1終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第1の1又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第2の1又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、請求項1記載の方法。
  3. 前記1又はそれ以上のコンピュータシステムによって前記ワードの1又はそれ以上を有する新たな検索クエリを受け取るステップと、
    前記1又はそれ以上のコンピュータシステムによって前記第6の二分決定ダイアグラムを検索するステップと、
    前記1終端ノードに至る前記経路の夫々について、当該経路における検索クエリが前記新たな検索クエリに等しい場合は、前記1又はそれ以上のコンピュータシステムによって、当該経路における全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
    前記1又はそれ以上のコンピュータシステムによって前記新たな検索クエリに応答して前記検索結果を返すステップと
    を更に有する請求項2記載の方法。
  4. 前記第1の二分決定ダイアグラムの1つを構成するステップには、
    2進フォーマットで当該1つの第1の二分決定ダイアグラムによって表されるワードのワード識別子を表すステップと、
    複数の変数により前記ワード識別子において複数の2進値を表し、各変数は前記2進値の異なる1つを表すステップと、
    複数の決定ノードとして前記変数により当該1つの第1の二分決定ダイアグラムを構成するステップと
    が含まれる、請求項1記載の方法。
  5. 前記第2の二分決定ダイアグラムの1つを構成するステップには、当該1つの第2の二分決定ダイアグラムによって表される検索クエリに現れるワードの順序で、該検索クエリに含まれる該ワードを表す前記第1の二分決定ダイアグラムに論理積演算を実行するステップが含まれる、請求項1記載の方法。
  6. 前記第3の二分決定ダイアグラムの1つを構成するステップには、
    2進フォーマットで当該1つの第3の二分決定ダイアグラムによって表されるウェブページのページ識別子を表すステップと、
    複数の変数により前記ページ識別子において複数の2進値を表し、各変数は前記2進値の異なる1つを表すステップと、
    複数の決定ノードとして前記変数により当該1つの第3の二分決定ダイアグラムを構成するステップと
    が含まれる、請求項1記載の方法。
  7. 前記1又はそれ以上のコンピュータシステムによって、新たな検索タプルを表す新たな第5の二分決定ダイアグラム及び前記第6の二分決定ダイアグラムに論理和演算を実行することで、前記新たな第5の二分決定ダイアグラムを前記第6の二分決定ダイアグラムに加えるステップを更に有する、請求項1記載の方法。
  8. 前記1又はそれ以上のコンピュータシステムによって、前記検索タプルの1つを表す前記第5の二分決定ダイアグラムの1つを前記第6の二分決定ダイアグラムから削除するステップを更に有し、
    前記削除するステップは、
    当該1つの第5の二分決定ダイアグラムを無効にするステップと、
    前記第6の二分決定ダイアグラム及び前記無効にされた第5の二分決定ダイアグラムに論理積演算を実行するステップと
    を有する、請求項1記載の方法。
  9. 前記1又はそれ以上のコンピュータシステムによって、1又はそれ以上の二分決定ダイアグラム簡約規則により前記第6の二分決定ダイアグラムを最大限に簡約化するステップを更に有する、請求項1記載の方法。
  10. 前記1又はそれ以上のコンピュータシステムによって、前記第6の二分決定ダイアグラムを複数の第7の二分決定ダイアグラムに区分化するステップを更に有し、
    前記第7の二分決定ダイアグラムのサイズの和は、前記第6の二分決定ダイアグラムのサイズより小さい、請求項1記載の方法。
  11. 1又はそれ以上のコンピュータシステムによって複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる1つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも1度現れ、該検索クエリの夫々は前記ワードの1又はそれ以上を有するステップと、
    前記1又はそれ以上のコンピュータシステムによって複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる1つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも1つ含まれ、該検索結果の夫々は前記ウェブページの1又はそれ以上を有するステップと、
    前記1又はそれ以上のコンピュータシステムによって複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる1つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られるステップと、
    前記1又はそれ以上のコンピュータシステムによって前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成するステップと
    を有し、
    前記二分決定ダイアグラムは、
    2進0終端ノードと、
    2進1終端ノードと、
    複数の経路と
    を有し、
    各経路は、複数の決定ノードを有し、前記0終端ノード又は前記1終端ノードのいずれかに至り、
    各決定ノードは、2進フォーマットで前記クエリ識別子の1つ及び前記ページ識別子の1つでの2進値を表し、
    前記1終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第1の1又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第2の1又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、方法。
  12. 前記1又はそれ以上のコンピュータシステムによって前記ワードの1又はそれ以上を有する新たな検索クエリを受け取るステップと、
    前記1又はそれ以上のコンピュータシステムによって、前記新たな検索クエリに含まれるワードを識別するワード識別子を結合することで前記新たな検索クエリについて新たなクエリ識別子を得るステップと、
    前記1又はそれ以上のコンピュータシステムによって前記二分決定ダイアグラムを検索するステップと、
    前記1終端ノードに至る前記経路の夫々について、当該経路での検索クエリが前記新たな検索クエリに等しい場合は、前記1又はそれ以上のコンピュータシステムによって、当該経路での全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
    前記1又はそれ以上のコンピュータシステムによって前記新たな検索クエリに応答して前記検索結果を返すステップと
    を更に有する請求項11記載の方法。
  13. 前記1又はそれ以上のコンピュータシステムによって、第2の検索クエリと、該第2の検索クエリに応答して生成される第2の検索結果とを表す第2の二分決定ダイアグラムを構成し、前記第2の検索クエリは前記ワードの1又はそれ以上を有し、前記第2の検索結果は前記ウェブページの1又はそれ以上を有するステップと、
    前記1又はそれ以上のコンピュータシステムによって、前記二分決定ダイアグラム及び前記第2の二分決定ダイアグラムに論理和演算を実行することで前記第2の二分決定ダイアグラムを前記二分決定ダイアグラムに加えるステップと
    を更に有する請求項11記載の方法。
  14. 前記1又はそれ以上のコンピュータシステムによって、前記検索クエリの1つと、該1つの検索クエリに応答して生成される前記検索結果の1つとを表す第3の二分決定ダイアグラムを無効にするステップと、
    前記1又はそれ以上のコンピュータシステムによって、前記二分決定ダイアグラム及び前記無効にされた第3の二分決定ダイアグラムに論理積演算を実行することで前記第3の二分決定ダイアグラムを前記二分決定ダイアグラムから削除するステップと
    を更に有する請求項11記載の方法。
  15. 1又はそれ以上のコンピュータシステムによる実行のためであって且つ実行される場合に
    複数の第1の二分決定ダイアグラムを構成し、該第1の二分決定ダイアグラムの夫々は複数のワードの異なる1つを表し、該ワードの夫々は一意のワード識別子を有し、各第1の二分決定ダイアグラムは当該第1の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成されるステップと、
    複数の第2の二分決定ダイアグラムを構成し、該第2の二分決定ダイアグラムの夫々は複数の検索クエリの異なる1つを表し、該検索クエリの夫々は前記ワードの1又はそれ以上を有し、各第2の二分決定ダイアグラムは当該第2の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第1の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
    複数の第3の二分決定ダイアグラムを構成し、該第3の二分決定ダイアグラムの夫々は複数のウェブページの異なる1つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第3の二分決定ダイアグラムの夫々は当該第3の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成されるステップと、
    複数の第4の二分決定ダイアグラムを構成し、該第4の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる1つを表し、該検索結果の夫々は前記ウェブページの1又はそれ以上を有し、各第4の二分決定ダイアグラムは当該第4の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第3の二分決定ダイアグラムに論理和演算を実行することによって構成されるステップと、
    複数の第5の二分決定ダイアグラムを構成し、該第5の二分決定ダイアグラムの夫々は複数の検索タプルの異なる1つを表し、該検索タプルの夫々は前記検索クエリの異なる1つと、当該検索クエリに対応する検索結果の異なる1つとを有し、各第5の二分決定ダイアグラムは、当該第5の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第2の二分決定ダイアグラム及び第4の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
    前記第5の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第6の二分決定ダイアグラムを構成するステップと
    を実行するよう動作するソフトウェアを具現する1又はそれ以上のコンピュータ読出可能な記憶媒体。
  16. 1又はそれ以上のコンピュータシステムによって実行される場合に、
    複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる1つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも1度現れ、該検索クエリの夫々は前記ワードの1又はそれ以上を有するステップと、
    複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる1つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも1つ含まれ、該検索結果の夫々は前記ウェブページの1又はそれ以上を有するステップと、
    複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる1つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られるステップと、
    前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成するステップと
    を実行するよう動作し、
    前記二分決定ダイアグラムは、
    2進0終端ノードと、
    2進1終端ノードと、
    複数の経路と
    を有し、
    各経路は、複数の決定ノードを有し、前記0終端ノード又は前記1終端ノードのいずれかに至り、
    各決定ノードは、2進フォーマットで前記クエリ識別子の1つ及び前記ページ識別子の1つでの2進値を表し、
    前記1終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第1の1又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第2の1又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、ソフトウェアを具現する1又はそれ以上のコンピュータ読出可能な記憶媒体。
  17. 1又はそれ以上のプロセッサによって実行可能な命令を有するメモリと、
    前記メモリへ結合され、前記命令を実行するよう動作する前記1又はそれ以上のプロセッサと
    を有し、
    前記1又はそれ以上のプロセッサは、前記命令を実行する場合に、
    複数の第1の二分決定ダイアグラムを構成し、該第1の二分決定ダイアグラムの夫々は複数のワードの異なる1つを表し、該ワードの夫々は一意のワード識別子を有し、各第1の二分決定ダイアグラムは当該第1の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成されるステップと、
    複数の第2の二分決定ダイアグラムを構成し、該第2の二分決定ダイアグラムの夫々は複数の検索クエリの異なる1つを表し、該検索クエリの夫々は前記ワードの1又はそれ以上を有し、各第2の二分決定ダイアグラムは当該第2の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第1の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
    複数の第3の二分決定ダイアグラムを構成し、該第3の二分決定ダイアグラムの夫々は複数のウェブページの異なる1つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第3の二分決定ダイアグラムの夫々は当該第3の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成されるステップと、
    複数の第4の二分決定ダイアグラムを構成し、該第4の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる1つを表し、該検索結果の夫々は前記ウェブページの1又はそれ以上を有し、各第4の二分決定ダイアグラムは当該第4の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第3の二分決定ダイアグラムに論理和演算を実行することによって構成されるステップと、
    複数の第5の二分決定ダイアグラムを構成し、該第5の二分決定ダイアグラムの夫々は複数の検索タプルの異なる1つを表し、該検索タプルの夫々は前記検索クエリの異なる1つと、当該検索クエリに対応する検索結果の異なる1つとを有し、各第5の二分決定ダイアグラムは、当該第5の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第2の二分決定ダイアグラム及び第4の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
    前記第5の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第6の二分決定ダイアグラムを構成するステップと
    を実行するよう動作する、システム。
  18. 1又はそれ以上のプロセッサによって実行可能な命令を有するメモリと、
    前記メモリへ結合され、前記命令を実行するよう動作する前記1又はそれ以上のプロセッサと
    を有し、
    前記1又はそれ以上のプロセッサは、前記命令を実行する場合に、
    複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる1つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも1度現れ、該検索クエリの夫々は前記ワードの1又はそれ以上を有するステップと、
    複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる1つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも1つ含まれ、該検索結果の夫々は前記ウェブページの1又はそれ以上を有するステップと、
    複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる1つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られるステップと、
    前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成するステップと
    を実行するよう動作し、
    前記二分決定ダイアグラムは、
    2進0終端ノードと、
    2進1終端ノードと、
    複数の経路と
    を有し、
    各経路は、複数の決定ノードを有し、前記0終端ノード又は前記1終端ノードのいずれかに至り、
    各決定ノードは、2進フォーマットで前記クエリ識別子の1つ及び前記ページ識別子の1つでの2進値を表し、
    前記1終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第1の1又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第2の1又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、システム。
  19. 複数の第1の二分決定ダイアグラムを構成し、該第1の二分決定ダイアグラムの夫々は複数のワードの異なる1つを表し、該ワードの夫々は一意のワード識別子を有し、各第1の二分決定ダイアグラムは当該第1の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成される手段と、
    複数の第2の二分決定ダイアグラムを構成し、該第2の二分決定ダイアグラムの夫々は複数の検索クエリの異なる1つを表し、該検索クエリの夫々は前記ワードの1又はそれ以上を有し、各第2の二分決定ダイアグラムは当該第2の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第1の二分決定ダイアグラムに論理積演算を実行することによって構成される手段と、
    複数の第3の二分決定ダイアグラムを構成し、該第3の二分決定ダイアグラムの夫々は複数のウェブページの異なる1つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第3の二分決定ダイアグラムの夫々は当該第3の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成される手段と、
    複数の第4の二分決定ダイアグラムを構成し、該第4の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる1つを表し、該検索結果の夫々は前記ウェブページの1又はそれ以上を有し、各第4の二分決定ダイアグラムは当該第4の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第3の二分決定ダイアグラムに論理和演算を実行することによって構成される手段と、
    前記1又はそれ以上のコンピュータシステムによって複数の第5の二分決定ダイアグラムを構成し、該第5の二分決定ダイアグラムの夫々は複数の検索タプルの異なる1つを表し、該検索タプルの夫々は前記検索クエリの異なる1つと、当該検索クエリに対応する検索結果の異なる1つとを有し、各第5の二分決定ダイアグラムは、当該第5の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第2の二分決定ダイアグラム及び第4の二分決定ダイアグラムに論理積演算を実行することによって構成される手段と、
    前記1又はそれ以上のコンピュータシステムによって、前記第5の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第6の二分決定ダイアグラムを構成する手段と
    を有するシステム。
  20. 複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる1つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも1度現れ、該検索クエリの夫々は前記ワードの1又はそれ以上を有する手段と、
    複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる1つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも1つ含まれ、該検索結果の夫々は前記ウェブページの1又はそれ以上を有する手段と、
    複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる1つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られる手段と、
    前記1又はそれ以上のコンピュータシステムによって前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成する手段と
    を有し、
    前記二分決定ダイアグラムは、
    2進0終端ノードと、
    2進1終端ノードと、
    複数の経路と
    を有し、
    各経路は、複数の決定ノードを有し、前記0終端ノード又は前記1終端ノードのいずれかに至り、
    各決定ノードは、2進フォーマットで前記クエリ識別子の1つ及び前記ページ識別子の1つでの2進値を表し、
    前記1終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第1の1又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第2の1又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、システム。
JP2009183190A 2008-08-06 2009-08-06 インターネット検索結果のキャッシングのための方法、記憶媒体及びシステム Expired - Fee Related JP5402370B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US8667208P 2008-08-06 2008-08-06
US61/086,672 2008-08-06
US12/535,461 2009-08-04
US12/535,461 US8468142B2 (en) 2008-08-06 2009-08-04 Caching query results with binary decision diagrams (BDDs)

Publications (2)

Publication Number Publication Date
JP2010055608A true JP2010055608A (ja) 2010-03-11
JP5402370B2 JP5402370B2 (ja) 2014-01-29

Family

ID=41653847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009183190A Expired - Fee Related JP5402370B2 (ja) 2008-08-06 2009-08-06 インターネット検索結果のキャッシングのための方法、記憶媒体及びシステム

Country Status (4)

Country Link
US (1) US8468142B2 (ja)
EP (1) EP2166462B1 (ja)
JP (1) JP5402370B2 (ja)
CN (1) CN101706798B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012084152A (ja) * 2010-10-11 2012-04-26 Fujitsu Ltd ペア単位変数グループ化を利用してbddの最適な変数順序を決定する方法及びシステム
JP2013069294A (ja) * 2011-09-23 2013-04-18 Fujitsu Ltd 二分決定図における範囲の問合せ
JP2013069290A (ja) * 2011-09-23 2013-04-18 Fujitsu Ltd サイズの最適化のための医療向け二分決定図の結合

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8583718B2 (en) 2010-08-17 2013-11-12 Fujitsu Limited Comparing boolean functions representing sensor data
US8572146B2 (en) 2010-08-17 2013-10-29 Fujitsu Limited Comparing data samples represented by characteristic functions
US8645108B2 (en) 2010-08-17 2014-02-04 Fujitsu Limited Annotating binary decision diagrams representing sensor data
US9002781B2 (en) 2010-08-17 2015-04-07 Fujitsu Limited Annotating environmental data represented by characteristic functions
US8930394B2 (en) 2010-08-17 2015-01-06 Fujitsu Limited Querying sensor data stored as binary decision diagrams
US8874607B2 (en) 2010-08-17 2014-10-28 Fujitsu Limited Representing sensor data as binary decision diagrams
US9138143B2 (en) 2010-08-17 2015-09-22 Fujitsu Limited Annotating medical data represented by characteristic functions
US9338220B1 (en) 2011-03-08 2016-05-10 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9432342B1 (en) 2011-03-08 2016-08-30 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US8726398B1 (en) 2011-12-13 2014-05-13 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9356993B1 (en) 2011-03-08 2016-05-31 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9413526B1 (en) 2011-03-08 2016-08-09 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9852311B1 (en) 2011-03-08 2017-12-26 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9300637B1 (en) * 2011-03-08 2016-03-29 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US11228566B1 (en) 2011-03-08 2022-01-18 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9292696B1 (en) 2011-03-08 2016-03-22 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US9667741B1 (en) 2011-03-08 2017-05-30 Ciphercloud, Inc. System and method to anonymize data transmitted to a destination computing device
US8443004B2 (en) * 2011-03-30 2013-05-14 Kevin Houzhi Xu System and method for storing and computing business data and logic
US9020969B2 (en) * 2011-07-13 2015-04-28 Sap Se Tracking queries and retrieved results
US8620854B2 (en) * 2011-09-23 2013-12-31 Fujitsu Limited Annotating medical binary decision diagrams with health state information
US8838523B2 (en) 2011-09-23 2014-09-16 Fujitsu Limited Compression threshold analysis of binary decision diagrams
US9177247B2 (en) 2011-09-23 2015-11-03 Fujitsu Limited Partitioning medical binary decision diagrams for analysis optimization
US8812943B2 (en) 2011-09-23 2014-08-19 Fujitsu Limited Detecting data corruption in medical binary decision diagrams using hashing techniques
US9176819B2 (en) 2011-09-23 2015-11-03 Fujitsu Limited Detecting sensor malfunctions using compression analysis of binary decision diagrams
US8719214B2 (en) * 2011-09-23 2014-05-06 Fujitsu Limited Combining medical binary decision diagrams for analysis optimization
US9075908B2 (en) 2011-09-23 2015-07-07 Fujitsu Limited Partitioning medical binary decision diagrams for size optimization
US10467229B2 (en) 2016-09-30 2019-11-05 Microsoft Technology Licensing, Llc. Query-time analytics on graph queries spanning subgraphs
US10545945B2 (en) 2016-10-28 2020-01-28 Microsoft Technology Licensing, Llc Change monitoring spanning graph queries
US10402403B2 (en) 2016-12-15 2019-09-03 Microsoft Technology Licensing, Llc Utilization of probabilistic characteristics for reduction of graph database traversals
US10445361B2 (en) 2016-12-15 2019-10-15 Microsoft Technology Licensing, Llc Caching of subgraphs and integration of cached subgraphs into graph query results
CN106790228B (zh) * 2017-01-16 2019-10-25 国网江苏省电力公司信息通信分公司 一种基于二元决策图的防火墙差异性计算方法
US10242223B2 (en) 2017-02-27 2019-03-26 Microsoft Technology Licensing, Llc Access controlled graph query spanning

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06215065A (ja) * 1992-10-28 1994-08-05 Nippon Telegr & Teleph Corp <Ntt> 論理関数データ処理装置
JPH08180066A (ja) * 1994-12-26 1996-07-12 Toshiba Corp インデックス作成方法、文書検索方法及び文書検索装置
JPH0934906A (ja) * 1995-07-19 1997-02-07 Toshiba Corp 図書管理装置
JP2004172917A (ja) * 2002-11-20 2004-06-17 Nec Corp パケット検索装置及びそれに用いるパケット処理検索方法並びにそのプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2697652B1 (fr) 1992-10-30 1994-12-16 Bull Sa Procédé de détermination automatique des probabilités associées à une fonction booléenne.
US5915249A (en) * 1996-06-14 1999-06-22 Excite, Inc. System and method for accelerated query evaluation of very large full-text databases
US5920854A (en) * 1996-08-14 1999-07-06 Infoseek Corporation Real-time document collection search engine with phrase indexing
US6363377B1 (en) * 1998-07-30 2002-03-26 Sarnoff Corporation Search data processor
US6658458B1 (en) 2000-06-22 2003-12-02 Cisco Technology, Inc. Cascading associative memory arrangement
US7136899B1 (en) * 2000-12-11 2006-11-14 Microsoft Corporation Inverse query decisions using binary decision diagrams and sub-expression implications
US7266790B2 (en) * 2003-03-07 2007-09-04 Cadence Design Systems, Inc. Method and system for logic equivalence checking
JP4381012B2 (ja) * 2003-03-14 2009-12-09 ヒューレット・パッカード・カンパニー 万物識別子を用いたデータ検索システムおよびデータ検索方法
CN100498790C (zh) * 2007-02-06 2009-06-10 腾讯科技(深圳)有限公司 一种搜索方法和系统
US8332385B2 (en) * 2008-03-11 2012-12-11 Semmle Limited Approximating query results by relations over types for error detection and optimization
US20090287676A1 (en) * 2008-05-16 2009-11-19 Yahoo! Inc. Search results with word or phrase index
TWI446349B (zh) 2010-03-04 2014-07-21 Phison Electronics Corp 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06215065A (ja) * 1992-10-28 1994-08-05 Nippon Telegr & Teleph Corp <Ntt> 論理関数データ処理装置
JPH08180066A (ja) * 1994-12-26 1996-07-12 Toshiba Corp インデックス作成方法、文書検索方法及び文書検索装置
JPH0934906A (ja) * 1995-07-19 1997-02-07 Toshiba Corp 図書管理装置
JP2004172917A (ja) * 2002-11-20 2004-06-17 Nec Corp パケット検索装置及びそれに用いるパケット処理検索方法並びにそのプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012084152A (ja) * 2010-10-11 2012-04-26 Fujitsu Ltd ペア単位変数グループ化を利用してbddの最適な変数順序を決定する方法及びシステム
JP2013069294A (ja) * 2011-09-23 2013-04-18 Fujitsu Ltd 二分決定図における範囲の問合せ
JP2013069290A (ja) * 2011-09-23 2013-04-18 Fujitsu Ltd サイズの最適化のための医療向け二分決定図の結合

Also Published As

Publication number Publication date
EP2166462A1 (en) 2010-03-24
CN101706798A (zh) 2010-05-12
JP5402370B2 (ja) 2014-01-29
US20100036835A1 (en) 2010-02-11
CN101706798B (zh) 2012-12-19
US8468142B2 (en) 2013-06-18
EP2166462B1 (en) 2017-08-30

Similar Documents

Publication Publication Date Title
JP5402370B2 (ja) インターネット検索結果のキャッシングのための方法、記憶媒体及びシステム
US9245049B2 (en) Performing queries using semantically restricted relations
CN107346326B (zh) 用于信息检索的方法和系统
JP6167493B2 (ja) 情報を管理するための方法、コンピュータプログラム、記憶媒体及びシステム
JP2017157192A (ja) キーワードに基づいて画像とコンテンツアイテムをマッチングする方法
JP6407968B2 (ja) 可変検索クエリ・バーティカル・アクセス
US20110029952A1 (en) Method and system for constructing a document redundancy graph
US20080086465A1 (en) Establishing document relevance by semantic network density
US20150039473A1 (en) Near-duplicate filtering in search engine result page of an online shopping system
CN110476151A (zh) 使用并行处理的k选择
US20180253439A1 (en) Characterizing files for similarity searching
JP6363682B2 (ja) 画像とコンテンツのメタデータに基づいてコンテンツとマッチングする画像を選択する方法
CN107273392A (zh) 用于搜索图像的计算机实现方法、装置及数据处理系统
WO2008118673A1 (en) Method for fast large scale data mining using logistic regression
US10275472B2 (en) Method for categorizing images to be associated with content items based on keywords of search queries
CN111259220B (zh) 一种基于大数据的数据采集方法和系统
CN110798332B (zh) 用于搜索目录访问组的方法和系统
CA3158107A1 (en) Method and system for generating synthethic data using a regression model while preserving statistical properties of underlying data
US10191921B1 (en) System for expanding image search using attributes and associations
KR20070061353A (ko) 온톨로지간 유사개념 매핑 방법 및 그 장치
Chen et al. A framework for annotating OpenStreetMap objects using geo-tagged tweets
Tomaszuk et al. Reducing vertices in property graphs
US20080077553A1 (en) Dynamic reprioritization of search engine results
JP7323484B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US20240202179A1 (en) Data structure for efficient graph database storage

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120405

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130816

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131014

R150 Certificate of patent or registration of utility model

Ref document number: 5402370

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees