(57)【要約】【課題】後の検索のためにインターネット検索結果をキャッシュに格納することを可能にする方法等を提供する。【解決手段】複数のワードの異なる１つを夫々表す複数の第１の二分決定ダイアグラム（ＢＤＤ）が構成される。複数の検索クエリの異なる１つを夫々表す複数の第２のＢＤＤが構成される。各検索クエリには、１又はそれ以上のワードが含まれる。複数のウェブページの異なる１つを夫々表す複数の第３のＢＤＤが構成される。複数の検索結果の異なる１つを夫々表す複数の第４のＢＤＤが構成される。各検索結果には、１又はそれ以上のウェブページが含まれる。複数の検索タプルの異なる１つを夫々表す複数の第５のＢＤＤが構成される。各検索タプルには、検索クエリの異なる１つと、検索結果のことなる１つとが含まれる。検索クエリ及び検索結果を表す第６のＢＤＤが構成される。【選択図】図７Ａ
2010055608.tif 000002
【特許請求の範囲】
【請求項１】
１又はそれ以上のコンピュータシステムによって複数の第１の二分決定ダイアグラムを構成し、該第１の二分決定ダイアグラムの夫々は複数のワードの異なる１つを表し、該ワードの夫々は一意のワード識別子を有し、各第１の二分決定ダイアグラムは当該第１の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成されるステップと、
前記１又はそれ以上のコンピュータシステムによって複数の第２の二分決定ダイアグラムを構成し、該第２の二分決定ダイアグラムの夫々は複数の検索クエリの異なる１つを表し、該検索クエリの夫々は前記ワードの１又はそれ以上を有し、各第２の二分決定ダイアグラムは当該第２の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第１の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記１又はそれ以上のコンピュータシステムによって複数の第３の二分決定ダイアグラムを構成し、該第３の二分決定ダイアグラムの夫々は複数のウェブページの異なる１つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第３の二分決定ダイアグラムの夫々は当該第３の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成されるステップと、
前記１又はそれ以上のコンピュータシステムによって複数の第４の二分決定ダイアグラムを構成し、該第４の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる１つを表し、該検索結果の夫々は前記ウェブページの１又はそれ以上を有し、各第４の二分決定ダイアグラムは当該第４の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第３の二分決定ダイアグラムに論理和演算を実行することによって構成されるステップと、
前記１又はそれ以上のコンピュータシステムによって複数の第５の二分決定ダイアグラムを構成し、該第５の二分決定ダイアグラムの夫々は複数の検索タプルの異なる１つを表し、該検索タプルの夫々は前記検索クエリの異なる１つと、当該検索クエリに対応する検索結果の異なる１つとを有し、各第５の二分決定ダイアグラムは、当該第５の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第２の二分決定ダイアグラム及び第４の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記１又はそれ以上のコンピュータシステムによって、前記第５の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第６の二分決定ダイアグラムを構成するステップと
を有する方法。
【請求項２】
前記第６の二分決定ダイアグラムは、
２進０終端ノードと、
２進１終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記０終端ノード又は前記１終端ノードのいずれかに至り、
前記１終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第１の１又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第２の１又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、請求項１記載の方法。
【請求項３】
前記１又はそれ以上のコンピュータシステムによって前記ワードの１又はそれ以上を有する新たな検索クエリを受け取るステップと、
前記１又はそれ以上のコンピュータシステムによって前記第６の二分決定ダイアグラムを検索するステップと、
前記１終端ノードに至る前記経路の夫々について、当該経路における検索クエリが前記新たな検索クエリに等しい場合は、前記１又はそれ以上のコンピュータシステムによって、当該経路における全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
前記１又はそれ以上のコンピュータシステムによって前記新たな検索クエリに応答して前記検索結果を返すステップと
を更に有する請求項２記載の方法。
【請求項４】
前記第１の二分決定ダイアグラムの１つを構成するステップには、
２進フォーマットで当該１つの第１の二分決定ダイアグラムによって表されるワードのワード識別子を表すステップと、
複数の変数により前記ワード識別子において複数の２進値を表し、各変数は前記２進値の異なる１つを表すステップと、
複数の決定ノードとして前記変数により当該１つの第１の二分決定ダイアグラムを構成するステップと
が含まれる、請求項１記載の方法。
【請求項５】
前記第２の二分決定ダイアグラムの１つを構成するステップには、当該１つの第２の二分決定ダイアグラムによって表される検索クエリに現れるワードの順序で、該検索クエリに含まれる該ワードを表す前記第１の二分決定ダイアグラムに論理積演算を実行するステップが含まれる、請求項１記載の方法。
【請求項６】
前記第３の二分決定ダイアグラムの１つを構成するステップには、
２進フォーマットで当該１つの第３の二分決定ダイアグラムによって表されるウェブページのページ識別子を表すステップと、
複数の変数により前記ページ識別子において複数の２進値を表し、各変数は前記２進値の異なる１つを表すステップと、
複数の決定ノードとして前記変数により当該１つの第３の二分決定ダイアグラムを構成するステップと
が含まれる、請求項１記載の方法。
【請求項７】
前記１又はそれ以上のコンピュータシステムによって、新たな検索タプルを表す新たな第５の二分決定ダイアグラム及び前記第６の二分決定ダイアグラムに論理和演算を実行することで、前記新たな第５の二分決定ダイアグラムを前記第６の二分決定ダイアグラムに加えるステップを更に有する、請求項１記載の方法。
【請求項８】
前記１又はそれ以上のコンピュータシステムによって、前記検索タプルの１つを表す前記第５の二分決定ダイアグラムの１つを前記第６の二分決定ダイアグラムから削除するステップを更に有し、
前記削除するステップは、
当該１つの第５の二分決定ダイアグラムを無効にするステップと、
前記第６の二分決定ダイアグラム及び前記無効にされた第５の二分決定ダイアグラムに論理積演算を実行するステップと
を有する、請求項１記載の方法。
【請求項９】
前記１又はそれ以上のコンピュータシステムによって、１又はそれ以上の二分決定ダイアグラム簡約規則により前記第６の二分決定ダイアグラムを最大限に簡約化するステップを更に有する、請求項１記載の方法。
【請求項１０】
前記１又はそれ以上のコンピュータシステムによって、前記第６の二分決定ダイアグラムを複数の第７の二分決定ダイアグラムに区分化するステップを更に有し、
前記第７の二分決定ダイアグラムのサイズの和は、前記第６の二分決定ダイアグラムのサイズより小さい、請求項１記載の方法。
【請求項１１】
１又はそれ以上のコンピュータシステムによって複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる１つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも１度現れ、該検索クエリの夫々は前記ワードの１又はそれ以上を有するステップと、
前記１又はそれ以上のコンピュータシステムによって複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる１つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも１つ含まれ、該検索結果の夫々は前記ウェブページの１又はそれ以上を有するステップと、
前記１又はそれ以上のコンピュータシステムによって複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる１つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られるステップと、
前記１又はそれ以上のコンピュータシステムによって前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成するステップと
を有し、
前記二分決定ダイアグラムは、
２進０終端ノードと、
２進１終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記０終端ノード又は前記１終端ノードのいずれかに至り、
各決定ノードは、２進フォーマットで前記クエリ識別子の１つ及び前記ページ識別子の１つでの２進値を表し、
前記１終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第１の１又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第２の１又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、方法。
【請求項１２】
前記１又はそれ以上のコンピュータシステムによって前記ワードの１又はそれ以上を有する新たな検索クエリを受け取るステップと、
前記１又はそれ以上のコンピュータシステムによって、前記新たな検索クエリに含まれるワードを識別するワード識別子を結合することで前記新たな検索クエリについて新たなクエリ識別子を得るステップと、
前記１又はそれ以上のコンピュータシステムによって前記二分決定ダイアグラムを検索するステップと、
前記１終端ノードに至る前記経路の夫々について、当該経路での検索クエリが前記新たな検索クエリに等しい場合は、前記１又はそれ以上のコンピュータシステムによって、当該経路での全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
前記１又はそれ以上のコンピュータシステムによって前記新たな検索クエリに応答して前記検索結果を返すステップと
を更に有する請求項１１記載の方法。
【請求項１３】
前記１又はそれ以上のコンピュータシステムによって、第２の検索クエリと、該第２の検索クエリに応答して生成される第２の検索結果とを表す第２の二分決定ダイアグラムを構成し、前記第２の検索クエリは前記ワードの１又はそれ以上を有し、前記第２の検索結果は前記ウェブページの１又はそれ以上を有するステップと、
前記１又はそれ以上のコンピュータシステムによって、前記二分決定ダイアグラム及び前記第２の二分決定ダイアグラムに論理和演算を実行することで前記第２の二分決定ダイアグラムを前記二分決定ダイアグラムに加えるステップと
を更に有する請求項１１記載の方法。
【請求項１４】
前記１又はそれ以上のコンピュータシステムによって、前記検索クエリの１つと、該１つの検索クエリに応答して生成される前記検索結果の１つとを表す第３の二分決定ダイアグラムを無効にするステップと、
前記１又はそれ以上のコンピュータシステムによって、前記二分決定ダイアグラム及び前記無効にされた第３の二分決定ダイアグラムに論理積演算を実行することで前記第３の二分決定ダイアグラムを前記二分決定ダイアグラムから削除するステップと
を更に有する請求項１１記載の方法。
【請求項１５】
１又はそれ以上のコンピュータシステムによる実行のためであって且つ実行される場合に
複数の第１の二分決定ダイアグラムを構成し、該第１の二分決定ダイアグラムの夫々は複数のワードの異なる１つを表し、該ワードの夫々は一意のワード識別子を有し、各第１の二分決定ダイアグラムは当該第１の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成されるステップと、
複数の第２の二分決定ダイアグラムを構成し、該第２の二分決定ダイアグラムの夫々は複数の検索クエリの異なる１つを表し、該検索クエリの夫々は前記ワードの１又はそれ以上を有し、各第２の二分決定ダイアグラムは当該第２の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第１の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
複数の第３の二分決定ダイアグラムを構成し、該第３の二分決定ダイアグラムの夫々は複数のウェブページの異なる１つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第３の二分決定ダイアグラムの夫々は当該第３の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成されるステップと、
複数の第４の二分決定ダイアグラムを構成し、該第４の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる１つを表し、該検索結果の夫々は前記ウェブページの１又はそれ以上を有し、各第４の二分決定ダイアグラムは当該第４の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第３の二分決定ダイアグラムに論理和演算を実行することによって構成されるステップと、
複数の第５の二分決定ダイアグラムを構成し、該第５の二分決定ダイアグラムの夫々は複数の検索タプルの異なる１つを表し、該検索タプルの夫々は前記検索クエリの異なる１つと、当該検索クエリに対応する検索結果の異なる１つとを有し、各第５の二分決定ダイアグラムは、当該第５の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第２の二分決定ダイアグラム及び第４の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記第５の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第６の二分決定ダイアグラムを構成するステップと
を実行するよう動作するソフトウェアを具現する１又はそれ以上のコンピュータ読出可能な記憶媒体。
【請求項１６】
１又はそれ以上のコンピュータシステムによって実行される場合に、
複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる１つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも１度現れ、該検索クエリの夫々は前記ワードの１又はそれ以上を有するステップと、
複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる１つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも１つ含まれ、該検索結果の夫々は前記ウェブページの１又はそれ以上を有するステップと、
複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる１つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られるステップと、
前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成するステップと
を実行するよう動作し、
前記二分決定ダイアグラムは、
２進０終端ノードと、
２進１終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記０終端ノード又は前記１終端ノードのいずれかに至り、
各決定ノードは、２進フォーマットで前記クエリ識別子の１つ及び前記ページ識別子の１つでの２進値を表し、
前記１終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第１の１又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第２の１又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、ソフトウェアを具現する１又はそれ以上のコンピュータ読出可能な記憶媒体。
【請求項１７】
１又はそれ以上のプロセッサによって実行可能な命令を有するメモリと、
前記メモリへ結合され、前記命令を実行するよう動作する前記１又はそれ以上のプロセッサと
を有し、
前記１又はそれ以上のプロセッサは、前記命令を実行する場合に、
複数の第１の二分決定ダイアグラムを構成し、該第１の二分決定ダイアグラムの夫々は複数のワードの異なる１つを表し、該ワードの夫々は一意のワード識別子を有し、各第１の二分決定ダイアグラムは当該第１の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成されるステップと、
複数の第２の二分決定ダイアグラムを構成し、該第２の二分決定ダイアグラムの夫々は複数の検索クエリの異なる１つを表し、該検索クエリの夫々は前記ワードの１又はそれ以上を有し、各第２の二分決定ダイアグラムは当該第２の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第１の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
複数の第３の二分決定ダイアグラムを構成し、該第３の二分決定ダイアグラムの夫々は複数のウェブページの異なる１つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第３の二分決定ダイアグラムの夫々は当該第３の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成されるステップと、
複数の第４の二分決定ダイアグラムを構成し、該第４の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる１つを表し、該検索結果の夫々は前記ウェブページの１又はそれ以上を有し、各第４の二分決定ダイアグラムは当該第４の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第３の二分決定ダイアグラムに論理和演算を実行することによって構成されるステップと、
複数の第５の二分決定ダイアグラムを構成し、該第５の二分決定ダイアグラムの夫々は複数の検索タプルの異なる１つを表し、該検索タプルの夫々は前記検索クエリの異なる１つと、当該検索クエリに対応する検索結果の異なる１つとを有し、各第５の二分決定ダイアグラムは、当該第５の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第２の二分決定ダイアグラム及び第４の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記第５の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第６の二分決定ダイアグラムを構成するステップと
を実行するよう動作する、システム。
【請求項１８】
１又はそれ以上のプロセッサによって実行可能な命令を有するメモリと、
前記メモリへ結合され、前記命令を実行するよう動作する前記１又はそれ以上のプロセッサと
を有し、
前記１又はそれ以上のプロセッサは、前記命令を実行する場合に、
複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる１つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも１度現れ、該検索クエリの夫々は前記ワードの１又はそれ以上を有するステップと、
複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる１つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも１つ含まれ、該検索結果の夫々は前記ウェブページの１又はそれ以上を有するステップと、
複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる１つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られるステップと、
前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成するステップと
を実行するよう動作し、
前記二分決定ダイアグラムは、
２進０終端ノードと、
２進１終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記０終端ノード又は前記１終端ノードのいずれかに至り、
各決定ノードは、２進フォーマットで前記クエリ識別子の１つ及び前記ページ識別子の１つでの２進値を表し、
前記１終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第１の１又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第２の１又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、システム。
【請求項１９】
複数の第１の二分決定ダイアグラムを構成し、該第１の二分決定ダイアグラムの夫々は複数のワードの異なる１つを表し、該ワードの夫々は一意のワード識別子を有し、各第１の二分決定ダイアグラムは当該第１の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成される手段と、
複数の第２の二分決定ダイアグラムを構成し、該第２の二分決定ダイアグラムの夫々は複数の検索クエリの異なる１つを表し、該検索クエリの夫々は前記ワードの１又はそれ以上を有し、各第２の二分決定ダイアグラムは当該第２の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第１の二分決定ダイアグラムに論理積演算を実行することによって構成される手段と、
複数の第３の二分決定ダイアグラムを構成し、該第３の二分決定ダイアグラムの夫々は複数のウェブページの異なる１つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第３の二分決定ダイアグラムの夫々は当該第３の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成される手段と、
複数の第４の二分決定ダイアグラムを構成し、該第４の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる１つを表し、該検索結果の夫々は前記ウェブページの１又はそれ以上を有し、各第４の二分決定ダイアグラムは当該第４の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第３の二分決定ダイアグラムに論理和演算を実行することによって構成される手段と、
前記１又はそれ以上のコンピュータシステムによって複数の第５の二分決定ダイアグラムを構成し、該第５の二分決定ダイアグラムの夫々は複数の検索タプルの異なる１つを表し、該検索タプルの夫々は前記検索クエリの異なる１つと、当該検索クエリに対応する検索結果の異なる１つとを有し、各第５の二分決定ダイアグラムは、当該第５の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第２の二分決定ダイアグラム及び第４の二分決定ダイアグラムに論理積演算を実行することによって構成される手段と、
前記１又はそれ以上のコンピュータシステムによって、前記第５の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第６の二分決定ダイアグラムを構成する手段と
を有するシステム。
【請求項２０】
複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる１つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも１度現れ、該検索クエリの夫々は前記ワードの１又はそれ以上を有する手段と、
複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる１つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも１つ含まれ、該検索結果の夫々は前記ウェブページの１又はそれ以上を有する手段と、
複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる１つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られる手段と、
前記１又はそれ以上のコンピュータシステムによって前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成する手段と
を有し、
前記二分決定ダイアグラムは、
２進０終端ノードと、
２進１終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記０終端ノード又は前記１終端ノードのいずれかに至り、
各決定ノードは、２進フォーマットで前記クエリ識別子の１つ及び前記ページ識別子の１つでの２進値を表し、
前記１終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第１の１又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第２の１又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、インターネット検索結果のキャッシングに関する。
【背景技術】
【０００２】
インターネントは膨大な量の情報を包含する。様々なウェブサイトにある様々なウェブページが、斯かる情報の大半を包含する。通常は、特定の情報を見つけ出すべく、ヒトは検索エンジンにより情報を検索する。ヒトは、捜し求められている情報を表す検索クエリを供給する。検索クエリを用いると、検索エンジンは、１又はそれ以上の検索アルゴリズムに基づいてインターネット上で検索を行い、捜し求められている情報を包含しそうなウェブページのリストを返す。ウェブページのリストは、検索クエリの検索結果である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ヒトは、様々なときに同じような情報を見つけることを望む。インターネット上の全てのウェブページ（又はそのサブセット）の中から特定の情報を検索することは、利用可能なウェブページの数が多いために、しばしば多大な時間を要する。斯かる検索をより効率的にする１つの方法は、インターネット検索結果をキャッシュに格納して、後にそれらを用いて同じような検索のために検索結果を提供することである。
【０００４】
本発明は、後の検索のためにインターネット検索結果をキャッシュに格納することを可能にする方法、コンピュータ読出可能な記憶媒体、及びシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の一実施形態に従う方法は、
１又はそれ以上のコンピュータシステムによって複数の第１の二分決定ダイアグラムを構成し、該第１の二分決定ダイアグラムの夫々は複数のワードの異なる１つを表し、該ワードの夫々は一意のワード識別子を有し、各第１の二分決定ダイアグラムは当該第１の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成されるステップと、
前記１又はそれ以上のコンピュータシステムによって複数の第２の二分決定ダイアグラムを構成し、該第２の二分決定ダイアグラムの夫々は複数の検索クエリの異なる１つを表し、該検索クエリの夫々は前記ワードの１又はそれ以上を有し、各第２の二分決定ダイアグラムは当該第２の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第１の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記１又はそれ以上のコンピュータシステムによって複数の第３の二分決定ダイアグラムを構成し、該第３の二分決定ダイアグラムの夫々は複数のウェブページの異なる１つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第３の二分決定ダイアグラムの夫々は当該第３の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成されるステップと、
前記１又はそれ以上のコンピュータシステムによって複数の第４の二分決定ダイアグラムを構成し、該第４の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる１つを表し、該検索結果の夫々は前記ウェブページの１又はそれ以上を有し、各第４の二分決定ダイアグラムは当該第４の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第３の二分決定ダイアグラムに論理和演算を実行することによって構成されるステップと、
前記１又はそれ以上のコンピュータシステムによって複数の第５の二分決定ダイアグラムを構成し、該第５の二分決定ダイアグラムの夫々は複数の検索タプルの異なる１つを表し、該検索タプルの夫々は前記検索クエリの異なる１つと、当該検索クエリに対応する検索結果の異なる１つとを有し、各第５の二分決定ダイアグラムは、当該第５の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第２の二分決定ダイアグラム及び第４の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記１又はそれ以上のコンピュータシステムによって、前記第５の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第６の二分決定ダイアグラムを構成するステップと
を有する。
【発明の効果】
【０００６】
本開示の実施形態によれば、後の検索のためにインターネット検索結果をキャッシュに格納することが可能となる。
【図面の簡単な説明】
【０００７】
【図１】実施例に従って二分決定ダイアグラム（ＢＤＤ）によりインターネット検索結果をキャッシュに格納する方法の例を表す。
【図２Ａ】１つのワードを表すワードＢＤＤの第１の例を表す
【図２Ｂ】１つのワードを表すワードＢＤＤの第２の例を表す。
【図２Ｃ】１つのワードを表すワードＢＤＤの第３の例を表す。
【図２Ｄ】１つのワードを表すワードＢＤＤの第４の例を表す。
【図３Ａ】１つの検索クエリを表すクエリＢＤＤの第１の例を表す。
【図３Ｂ】１つの検索クエリを表すクエリＢＤＤの第２の例を表す。
【図４Ａ】１つのウェブページを表すページＢＤＤの第１の例を表す。
【図４Ｂ】１つのウェブページを表すページＢＤＤの第２の例を表す。
【図４Ｃ】１つのウェブページを表すページＢＤＤの第３の例を表す。
【図４Ｄ】１つのウェブページを表すページＢＤＤの第４の例を表す。
【図４Ｅ】１つのウェブページを表すページＢＤＤの第５の例を表す。
【図５Ａ】１つの検索結果を表す結果ＢＤＤの第１の例を表す。
【図５Ｂ】１つの検索結果を表す結果ＢＤＤの第２の例を表す。
【図６Ａ】１つの検索タプルを表すタプルＢＤＤの第１の例を表す。
【図６Ｂ】１つの検索タプルを表すタプルＢＤＤの第２の例を表す。
【図６Ｃ】１つの検索タプルを表すタプルＢＤＤの第３の例を表す。
【図７Ａ】検索クエリの組及び検索結果の対応する組を表すＢＤＤを表す。
【図７Ｂ】図７Ａに表されるＢＤＤに簡約規則を適用した結果を表すＢＤＤを表す。
【図８Ａ】実施例に従って検索クエリの組及び対応する検索結果の組を表すＢＤＤへ新しい対の対応する検索クエリ及び検索結果を付加する方法の例を表す。
【図８Ｂ】実施例に従って検索クエリの組及び対応する検索結果の組を表すＢＤＤから既存の対の対応する検索クエリ及び検索結果を削除する方法の例を表す。
【図９】実施例に従ってインターネット上で情報が検索されるネットワーク環境の例を表す。
【図１０】実施例に従ってＢＤＤにより検索クエリに対して検索結果を発生させる方法の例を表す。
【図１０Ａ】図１０の方法を表す第１の図である。
【図１０Ｂ】図１０の方法を表す第２の図である。
【図１１】実施例に従うコンピュータシステムの例を表す。
【発明を実施するための形態】
【０００８】
実施例で、検索クエリの組及び検索結果の対応する組は二分決定ダイアグラム（ＢＤＤ（Binary  Decision  Diagram））を用いてキャッシュに格納される。各検索クエリは１又はそれ以上のワードを有する。各検索結果は、その対応する検索クエリを用いてインターネット検索を行うことで得られる１又はそれ以上のウェブページを有する。
【０００９】
ＢＤＤは、ブール関数を表すために使用されうるデータ構造である。ＢＤＤは、１又はそれ以上の決定ノード及び２つの終端ノードを有する、根のある、方向をもった、非環式のグラフとして図形的に表され得る。各決定ノードは、ブール関数における異なる変数を表し、通常は、グラフ中で円として表される。２つの終端ノード（０終端ノード及び１終端ノード）は、通常はグラフ中で夫々正方形として表される。各決定ノードは２つのエッジを有し、１つは、通常はグラフ中で波線又は点線として表される０エッジであり、もう１つは、通常はグラフ中で実線として表される１エッジである。
【００１０】
グラフ中の各経路は、１又はそれ以上の決定ノードを有してよく、最終的に０終端ノード又は１終端ノードのいずれかに至る。０終端ノードに至る経路は、ブール関数が、その経路での決定ノードによって表される変数に割り当てられている値をＦＡＬＳＥ（偽）であると評価することを示し、一方、１終端ノードに至る経路は、ブール関数が、その経路での決定ノードによって表される変数に割り当てられている値をＴＲＵＥ（真）であると評価することを示す。
【００１１】
実施例で、検索クエリの組及び検索結果の組を表すＢＤＤで、対応する対の検索クエリ及び検索結果は、１又はそれ以上の経路によって表される。各経路で、１又はそれ以上の決定ノードは検索クエリを表し、１又はそれ以上の異なる決定ノードは、検索結果に含まれるウェブページの夫々を表す。１終端ノードに至る経路は、その経路での幾つかの決定ノードによって表されるウェブページが、同じ経路での他の決定ノードによって表される検索クエリに対応する検索結果に含まれることを示す。
【００１２】
図１は、ＢＤＤを用いて検索クエリの組及び検索結果の対応する組をキャッシュに格納する方法の例を表す。図１の様々な具体的な詳細は、表１に表される以下の例を用いて記載される。
【表１】
2010055608.tif 000003
【００１３】
表１に表される例で、検索クエリの組は３つの異なる検索クエリ（“キャットフード”、“ドッグフード”、及び“車”）を有する。対応する検索結果の組は３つの異なる検索結果を有しており、各検索結果は異なる検索クエリに対応している。各検索結果は、対応する検索クエリによりインターネット上で検索を行うことで得られる１又はそれ以上のウェブページを有する。このようにして、検索クエリ“キャットフード”については、対応する検索結果は２つのウェブページ（ウェブページＡ及びウェブページＢ）を有し、検索クエリ“ドッグフード”については、対応する検索結果は３つのウェブページ（ウェブページＡ、ウェブページＣ、及びウェブページＤ）を有し、検索クエリ“車”については、対応する検索結果は１つのウェブページ（ウェブページＥ）を有する。
【００１４】
検索クエリの組及び検索結果の対応する組について、検索クエリの幾つかで現れるワードは、同じワードが複数の検索クエリで現れうるように、部分的に重なることがある。表１に表される例では、ワード“フード”は、検索クエリ“キャットフード”及び“ドッグフード”の両方に現れている。
【００１５】
更に、幾つかの検索クエリについて、それらの対応する検索結果は、同じウェブページが複数の検索結果に含まれうるように、部分的に重なることがある。表１に表される例では、ウェブページＡは、このウェブページＡがキャットフード及びドッグフードの両方を含む多様なペットフードに関する情報を有しうる場合に、検索クエリ“キャットフード”及び“ドッグフード”の両方に対応する検索結果に含まれる。
【００１６】
実施例で、検索クエリの組に含まれる全ての個別ワードを含むワードの組が得られる（ステップ１１０）。このようにして、複数の検索クエリに現れるワードは、１度だけワードの組に含まれる。一意の数で表されるワード識別子（ＩＤ）が個別ワードの夫々に割り当てられる（ステップ１１１）。実施例で、ワードＩＤはそのワードの組の範囲内で一意であり、これより、ワードの組には同じワードＩＤを有する２つの個別ワードが存在することはない。
【００１７】
表１に表される例では、３つのクエリの組に４つの個別ワード（“キャット”、“ドッグ”、“フード”、“車”）が存在する。このように、ワードの組はこれら４つのワードを有する。ワード“キャット”に割り当てられるワードＩＤは１０であり、ワード“ドッグ”に割り当てられるワードＩＤは１１であり、ワード“フード”に割り当てられるワードＩＤは１２であり、ワード“車”に割り当てられるワードＩＤは１３であるとする。下記の表２は、１０進数及び２進数の両方でワードの組及びそれらの夫々のワードＩＤを有する。
【表２】
2010055608.tif 000004
【００１８】
個別ワードの夫々は、異なるＢＤＤを用いて表される（ステップ１１２）。説明のために、単一ワードを表すＢＤＤは“ワードＢＤＤ”と称される。整数は２進数で記述される。例えば、１０進数での数１０は２進数では１０１０であり、１０進数での数１１は２進数では１０１１であり、１０進数での数１２は１１００であり、１０進数での数１３は２進数では１１０１である。
【００１９】
実施例で、ワードは、自身のワードＩＤに基づいてＢＤＤにより表され得る。ワードＩＤでの各２進値は、ＢＤＤで決定ノードになる異なる変数によって表される。２進数の実効値は、ＢＤＤでどの経路が０終端ノードに至るべきであり且つどの経路が１終端ノードに至るべきであるのかを示す。
【００２０】
一例として、ワードＩＤが１０１０であるワード“キャット”について考える。２進数１０１０には４つの２進値が含まれている。それら４つの２進値は、左から右へ夫々、４つの変数ｘ１１、ｘ１２、ｘ１３及びｘ１４によって表される。図２Ａは、ワードＩＤ１０１０を有するワード“キャット”を表すＢＤＤ２１０を表す。ワードＢＤＤ２１０は、夫々変数ｘ１１、ｘ１２、ｘ１３及びｘ１４を表す４つの個別決定ノードを有する。それらの変数は、ワードＩＤ１０１０に含まれる４つの２進値に対応する。実線エッジは値１を表し、点線エッジは値０を表す。ワードＢＤＤ２１０には、１終端ノードに至る、１−０−１−０を表す経路が１つしかない。他の全ての経路は０終端ノードに至る。よって、ワードＢＤＤはワードＩＤ１０１０を表し、言い換えると、それはワード“キャット”を表す。
【００２１】
同様に、図２Ｂは、ワードＩＤが１０１１であるワード“ドッグ”を表すＢＤＤ２２０を表す。左から右へ、ワードＩＤ１０１１に含まれる４つの２進値は、夫々、４つの変数ｘ２１、ｘ２２、ｘ２３及びｘ２４によって表される。ワードＢＤＤ２２０には、１終端ノードに至る、１−０−１−１を表す経路が１つしかない。他の全ての経路は０終端ノードに至る。
【００２２】
図２Ｃは、ワードＩＤが１１００であるワード“フード”を表すＢＤＤ２３０を表す。左から右へ、ワードＩＤ１１００に含まれる４つの２進値は、夫々、４つの変数ｘ３１、ｘ３２、ｘ３３及びｘ３４によって表される。ワードＢＤＤ２３０には、１終端ノードに至る、１−１−０−０を表す経路が１つしかない。他の全ての経路は０終端ノードに至る。
【００２３】
図２Ｄは、ワードＩＤが１１０１であるワード“車”を表すＢＤＤ２４０を表す。左から右へ、ワードＩＤ１１０１に含まれる４つの２進値は、夫々、４つの変数ｘ４１、ｘ４２、ｘ４３及びｘ４４によって表される。ワードＢＤＤ２４０には、１終端ノードに至る、１−１−０−１を表す経路が１つしかない。他の全ての経路は０終端ノードに至る。
【００２４】
留意すべきは、図２Ａ乃至２Ｄでは、一意の変数（例えば、ｘ１１〜ｘ１４、ｘ２１〜ｘ２４、ｘ３１〜ｘ３４、及びｘ４１〜ｘ４４）が表１に表される異なる４つのワードＩＤを表すために用いられるが、それは必ずしも必要とされるわけではない点である。実際には、図７で後述されるように、同じ変数が複数のワードＩＤで特定の２進値を表すために使用されてよい。例えば、同じ４つの変数（例えば、ｘ１〜ｘ４）は、“キャット”及び“ドッグ”の両ワードＩＤの４つの２進値を表すために使用されてよい。
【００２５】
ワードＢＤＤに必要とされる異なる変数の数は、ワードＢＤＤによって表されるワードＩＤに含まれる２進値の数に依存する。変数が大きくなれば２進値の数も多くなるので、一般的に、ワードＩＤの数が大きくなればなるほど、ワードＩＤを表すワードＢＤＤに必要とされる変数も多くなる。また、その逆も同様である。実施例で、ワードＢＤＤに含まれる変数の数を一定にするよう、数字０がより小さいワードＩＤの左側に付加されてよく、これにより、全てのワードＩＤは同数の２進値を有し、従って、同数の異なる変数を必要とする。
【００２６】
個々のワードＢＤＤが個別ワードの組について構成されると、検索クエリの夫々は、適切なワードＢＤＤを結合することによって、異なるＢＤＤにより表される（ステップ１１３）。説明のために、単一の検索クエリを表すＢＤＤは“クエリＢＤＤ”と称される。更に、検索クエリを識別する２進値の列は“クエリＩＤ”と称される。実質上、検索クエリを識別するクエリＩＤは、検索クエリに含まれるワードを識別するワードＩＤの結合である。実施例で、検索クエリを表すクエリＢＤＤは、検索クエリにおけるワードを表す個々のワードＢＤＤに対して論理積（ＡＮＤ）演算を行うことで構成される。実施例で、論理積演算は、対応するワードが検索クエリに現れるのと同じ順序でワードＢＤＤに対して行われる。実施例で、第１のＢＤＤ及び第２のＢＤＤに対して論理積演算を行うよう、第１のＢＤＤでの１終端ノードは、結果ＢＤＤを得るよう第２のＢＤＤによって置換される。
【００２７】
２つのワード（“キャット”及び“フード”）を含む検索クエリ“キャットフード”について考える。検索クエリ“キャットフード”を表すクエリＢＤＤは、ワード“キャット”を表すワードＢＤＤ２１０及びワード“フード”を表すワードＢＤＤ２３０に対して論理積演算を行うことで得られる。図３Ａは、ワードＢＤＤ２１０及びワードＢＤＤ２３０に対して論理積演算を行った結果である、検索クエリ“キャットフード”を表すクエリＢＤＤ３１０を表す。
【００２８】
同様に、図３Ｂは、ワード“ドッグ”を表すワードＢＤＤ２２０及びワード“フード”を表すワードＢＤＤ２３０に対して論理積演算を行った結果である、検索クエリ“ドッグフード”を表すクエリＢＤＤ３２０を表す。
【００２９】
実施例で、検索クエリが１つのワードしか有さない場合は、その検索クエリを表すクエリＢＤＤは、ワードを表すワードＢＤＤと同じである。例えば、検索クエリ“車”を表すクエリＢＤＤは、ワード“車”を表すワードＢＤＤ２４０と同じである。
【００３０】
ステップ１１０、１１１、１１２及び１１３を実行すると、異なるクエリＢＤＤが、検索クエリの組に含まれている検索クエリの夫々について構成される。他方で、ステップ１２０、１２１、１２２及び１２３によれば、検索クエリの組に対応する検索結果の組に含まれている個別ウェブページの組を表すＢＤＤが構成される。
【００３１】
実施例で、検索結果の組に含まれる全ての個別ウェブページを含むウェブページの組が得られる（ステップ１２０）。複数の検索結果に含まれるウェブページは、ウェブページの組では１つしか含まれない。一意の数字であるページＩＤが、個別ウェブページの夫々に割り当てられる（ステップ１２１）。実施例で、ページＩＤはウェブページの組の範囲内で一意であり、これにより、ウェブページの組には２つとして同じページＩＤを有する個別ウェブページが存在しない。
【００３２】
実施例で、ワードＩＤはワードの組の範囲内でのみ一意であり（ステップ１１１）、ページＩＤはウェブページの組の範囲内でのみ一意である（ステップ１２１）から、ワード及びウェブページは、同じＩＤ番号を有してもよい。それ故に、特定の数字がワードＩＤとして１度且つページＩＤとして１度使用されてよいが、それは必須ではない。
【００３３】
表１に表される例では、３つの検索結果の組に５つの個別ウェブページ（Ａ、Ｂ、Ｃ、Ｄ及びＥ）がある。このようにして、ウェブページの組はこれら５つの個別ウェブページを有する。ウェブページＡに割り当てられるページＩＤは１であり、ウェブページＢに割り当てられるページＩＤは２であり、ウェブページＣに割り当てられるページＩＤは３であり、ウェブページＤに割り当てられるページＩＤは４であり、ウェブページＥに割り当てられるページＩＤは５であるとする。下記の表３は、１０進数及び２進数の両方でウェブページの組及びそれらの夫々のページＩＤを有する。
【表３】
2010055608.tif 000005
【００３４】
上述されるように、ＩＤ値を表すために必要とされる２進値の数は、実際のＩＤ値自体に依存する。一般に、ＩＤ値が大きい方が、ＩＤ値が小さい場合に比べ、より多くの２進値を要する。表３で、ページＩＤ１は１つの２進値しか必要としない。ページＩＤ２及び３は、夫々、２つの２進値を必要とする。ページＩＤ４及び５は、夫々、３つの２進値を必要とする。実施例で、全てのページＩＤで２進値の数を一定とするよう、１又はそれ以上の０値が幾つかの２進ＩＤの左側に加えられ、これにより、全てのページＩＤは同数の２進値を有する。このようにして、表３では、２つの０値がページＩＤ１の左側に付加され、１つの０値がページＩＤ２及び３の夫々の左側に付加される。実施例で、各ページＩＤが有する２進値の総数は最大のページＩＤにより決まる。
【００３５】
個別ウェブページの夫々は、異なるＢＤＤを用いて表される（ステップ１２２）。説明のために、単一のウェブページを表すＢＤＤは“ページＢＤＤ”と称される。実施例で、ウェブページは、そのページＩＤに基づくＢＤＤにより表され得る。ページＢＤＤは、上述されるように、そのワードＩＤに基づくワードについてワードＢＤＤを構成するのと同様のプロセスを用いて、そのページＩＤに基づくウェブページについて構成され得る。図４Ａ乃至４Ｅは、ページＩＤが００１であるウェブページＡ、ページＩＤが０１０であるウェブページＢ、ページＩＤが０１１であるウェブページＣ、ページＩＤが１００であるウェブページＤ、及びページＩＤが１０１であるウェブページＥを夫々表している５つのページＢＤＤ４１０、４２０、４３０、４４０及び４５０を表す。
【００３６】
実施例で、ページＢＤＤ４１０、４２０、４３０、４４０及び４５０の夫々で、同じ３つの変数ｙ１、ｙ２及びｙ３は、左から右へ夫々、対応するページＩＤ００１、０１０、０１１、１００及び１０１の夫々に含まれる３つの２進値を表している。このようにして、ページＢＤＤを構成するプロセスは、この態様において、ワードＢＤＤを構成するプロセスと相違する。特に、対応するページＢＤＤにおいてページＩＤの２進値を表すために用いられる変数は、ウェブページの組の範囲内ではなく、各ページＩＤの範囲内で一意である。実際には、実施例で、同じ組の変数は、例えば、変数ｙ１、ｙ２及びｙ３がページＢＤＤ４１０、４２０、４３０、４４０及び４５０で使用されるように、ページＢＤＤの全てで再利用される。ページＩＤの全ては、例えば、必要に応じて０値を付加することによって、同数の２進値を有するようにされるので、同数の変数がページＩＤの夫々で２進値を表すために使用されてよい。
【００３７】
実施例で、変数がワードＢＤＤで使用される場合は、その変数は如何なるページＢＤＤでも使用されない。反対に、変数がページＢＤＤで使用される場合は、その変数は如何なるワードＢＤＤでも使用されない。
【００３８】
個々のページＢＤＤが個別ウェブページの組について構成されると、検索結果の夫々は、適切なページＢＤＤを結合することによって異なるＢＤＤを用いて表される（ステップ１２３）。説明のために、検索結果を表すＢＤＤは“結果ＢＤＤ”と称される。実施例で、結果ＢＤＤは、検索結果に含まれるウェブページを表す個々のページＢＤＤに対して論理和演算を行うことによって構成される。
【００３９】
２つのウェブページＡ及びＢを含む、検索クエリ“キャットフード”についての検索結果を考える。この検索結果を表す結果ＢＤＤは、ウェブページＡを表すページＢＤＤ４１０及びウェブページＢを表すページＢＤＤ４２０に対して論理和演算を行うことで得られる。図５Ａは、２つのウェブページＡ及びＢを含む、検索クエリ“キャットフード”についての検索結果を表す結果ＢＤＤ５１０を表す。結果ＢＤＤ５１０には、決定ノードｙ１から１終端ノードに至る２つの経路５１１及び５１２が存在し、経路５１１はページＩＤ００１に対応し、経路５１２はページＩＤ０１０に対応する。同時に、ウェブページＡ及びＢを識別するこれら２つのページＩＤしか結果ＢＤＤ５１０には含まれず、他の全ての経路は０終端ノードに至り、結果ＢＤＤによって表されるブール関数が３つの変数ｙ１、ｙ２及びｙ３に割り当てられている他の全ての値について偽（ＦＡＬＳＥ）であると評価することを示す。
【００４０】
図５Ｂは、３つのウェブページＡ、Ｃ及びＤを含む、検索クエリ“ドッグフード”についての検索結果を表す結果ＢＤＤ５２０を表す。結果ＢＤＤ５２０には、決定ノードｙ１から１終端ノードに至る３つの経路５２１、５２２及び５２３が存在し、経路５２１はページＩＤ００１に対応し、経路５２２はページＩＤ０１１に対応し、経路５２３はページＩＤ１００に対応する。同時に、ウェブページＡ、Ｃ及びＤを識別するこれら３つのページＩＤしか結果ＢＤＤ５２０には含まれず、他の全ての経路は０終端ノードに至る。
【００４１】
実施例で、検索結果が１つのウェブページしか有さない場合に、検索結果を表す結果ＢＤＤは、ウェブページを表すページＢＤＤと同じである。例えば、検索クエリ“車”についての検索結果は１つのウェブページＥしか有さない。このようにして、検索クエリ“車”についての検索結果を表す結果ＢＤＤは、ウェブページＥを表すページＢＤＤ４５０と同じである。
【００４２】
上述されるように、検索結果は、検索クエリについてインターネット上で検索を行うことで、その検索クエリについて得られる。検索クエリは１又はそれ以上のワードを有してよく、検索結果は１又はそれ以上のウェブページを有してよい。結果として、検索クエリの組は複数の検索クエリを有し、対応する組の検索結果は、それらの検索クエリについて得られる検索結果を有する。
【００４３】
実施例で、対応する検索クエリ及び検索結果の別個の対の夫々は、検索タプルとして表される（ステップ１３０）。前もって、ステップ１１１で、検索クエリに現れる各ワードはワードＩＤを割り当てられており、また、ステップ１２１で、検索結果に含まれる各ウェブページはページＩＤを割り当てられている。このようにして、実施例で、一対の対応する検索クエリ及び検索結果を表す検索タプルは、検索クエリに現れるワードのワードＩＤと、それに続く、検索結果に含まれるウェブページのページＩＤとを有してよい。実施例で、ワードＩＤは、それらの対応するワードが検索クエリに現れるのと同じ順序で検索タプルに現れる。下記の表４は、表１に表される対応する検索クエリ及び検索結果の３つの対と、それらの検索タプルとを有する。
【表４】
2010055608.tif 000006
【００４４】
実施例で、検索タプルの夫々は、別個の対の対応する検索クエリ及び検索結果に対応し、対応するクエリＢＤＤ及び結果ＢＤＤを結合することで異なるＢＤＤを用いて表される（ステップ１３１）。説明のために、検索タプルを表すＢＤＤは“タプルＢＤＤ”と称される。前もってステップ１１３で、異なるクエリＢＤＤが、検索クエリの組に含まれる検索クエリの夫々について構成されており、また、ステップ１２３で、異なる結果ＢＤＤが、対応する検索結果の組に含まれる検索結果の夫々について構成されている。実施例で、検索タプルを表すタプルＢＤＤは、対応する対の検索クエリ及び検索結果を有し、検索クエリを表すクエリＢＤＤ、及び検索結果を表す結果ＢＤＤに対して論理積演算を行うことで構成される。
【００４５】
表１に表される例では、図６Ａに表される、検索タプル＜１０，１２；１，２＞を表すタプルＢＤＤ６１０は、検索クエリ“キャットフード”を表すクエリＢＤＤ３１０、及びウェブページＡ及びＢを含む検索結果を表す結果ＢＤＤ５１０に対して論理積演算を行うことで得られる。上述されるように、クエリＢＤＤ３１０及び結果ＢＤＤ５１０に対して論理積演算を行うよう、クエリＢＤＤ３１０における１終端ノードは、タプル６１０を得るよう結果ＢＤＤ５１０と置換される。タプルＢＤＤ６１０には、決定ノードｘ１１から１終端ノードに至る２つの経路６１１及び６１２がある。
【００４６】
一例として経路６１１を考える。経路６１１での１１個の決定ノードｘ１１、ｘ１２、ｘ１３、ｘ１４、ｘ３１、ｘ３２，ｘ３３、ｘ３４、ｙ１、ｙ２及びｙ３について、経路６１１についてのそれらの２進値は１−０−１−０−１−１−０−０−０−０−１である。最初の４つの２進値１−０−１−０はワード“キャット”のワードＩＤであり、真ん中の４つの２進値１−１−０−０はワード“フード”のワードＩＤである。このようにして、最初の８つの２進値１−０−１−０−１−１−０−０は全体で検索クエリ“キャットフード”を表す。最後の３つの２進値０−０−１はウェブページＡのページＩＤである。経路６１１が１終端ノードに至るという事実は、経路６１１において幾つかの決定ノード（例えば、決定ノードｙ１、ｙ２及びｙ３）の値によって識別されるウェブページＡは、経路６１１において幾つかの他の決定ノード（例えば、ｘ１１、ｘ１２、ｘ１３、ｘ１４、ｘ３１、ｘ３２、ｘ３３及びｘ３４）の値によって識別される検索クエリ“キャットフード”について得られる検索結果に含まれる。
【００４７】
経路６１２については、経路６１２での１１個の決定ノードの２進値は１−０−１−０−１−１−０−０−０−１−０である。最初の８つの２進値１−０−１−０−１−１−０−０は全体で検索クエリ“キャットフード”を表す。これは経路６１１と同じであり、タプルＢＤＤ６１０が、検索クエリ“キャットフード”を有する検索タプルを表すためである。最後の３つの２進値０−１−０はウェブページＢのページＩＤである。経路６１２は、ウェブページＢが検索クエリ“キャットフード”について得られる検索結果に含まれるように、１終端ノードに至る。
【００４８】
実施例で、タプルＢＤＤにおいて、１終端ノードに至る経路は、その経路での決定ノードの幾つかの値によって識別されるウェブページが、同じ経路での幾つかの他の経路の値によって識別される検索クエリに対応する検索結果に含まれることを示す。
【００４９】
同様に、図６Ｂに表される検索タプル＜１１，１２；１，３，４＞を表すタプルＢＤＤ６２０は、検索クエリ“ドッグフード”を表すクエリＢＤＤ３２０、及びウェブページＡ、Ｃ及びＤを含む検索結果を表す結果ＢＤＤ５２０に対して論理積演算を行うことで得られる。タプルＢＤＤ６２０には、検索クエリ“ドッグフード”についての検索結果に含まれる３つのウェブページＡ、Ｃ及びＤが存在する場合に、決定ノードｘ２１から１終端ノードに至る３つの経路６２１、６２２及び６２３が存在する。
【００５０】
図６Ｃに表される検索タプル＜１３；５＞を表すタプルＢＤＤ６３０は、ワード“車”を表し且つ検索クエリ“車”についての検索ＢＤＤと同じであるワード２４０、及びウェブページＥを表し且つ検索クエリ“車”について得られる検索結果を表す結果ＢＤＤと同じであるページＢＤＤ４５０に対して論理積演算を行うことで得られる。タプルＢＤＤ６３０には、決定ノードｘ４１から１終端ノードに至る１つの経路６３１が存在する。経路６３１は、検索クエリ“車”が１つのワードしか含んでいないことから、７つの決定ノードしか有さない。
【００５１】
実施例で、個々のタプルＢＤＤが構成されると、検索クエリの組全体及び対応する検索結果の組全体は、個々のタプルＢＤＤの全てを結合することによって、単一のＢＤＤを用いて表される（ステップ１４０）。実施例で、ＢＤＤは、個々のタプルＢＤＤの全てに論理和演算を行うことで構成される。ＢＤＤでは、１終端ノードに至るあらゆる経路が、その経路での決定ノードの幾つかの値によって識別されるウェブページが、同じ経路での幾つかの他の決定ノードの値によって識別される検索クエリに対応する検索結果に含まれることを示す。
【００５２】
表１に表される例は、４つの個別ワード及び５つの個別ウェブページしか有さないが、様々なタイプのＢＤＤが急速に拡大する。実際には、数百、あるいは数千の種々のワード及びウェブページを含む検索クエリ及び検索結果の対応する組をキャッシュに格納する場合に、最終的なＢＤＤは極めて大規模なものとなりうる。ＢＤＤは、共有が最小限である場合に、スペースのブローアップを欠点とする傾向がある。
【００５３】
実施例で、様々なＢＤＤ簡約規則（reduction  rule）が、ＢＤＤのサイズを低減すべくＢＤＤに適用されてよい（ステップ１５０）。既存のＢＤＤ簡約規則には、あらゆる同型のサブグラフをマージすること、同型である２つの子を有するあらゆる決定ノードを削除すること等がある。実施例で、様々なＢＤＤ簡約規則が、また、例えば、クエリＢＤＤ、結果ＢＤＤ、又はタプルＢＤＤ等の様々な中間ＢＤＤに適用されてよい。実施例で、適切なＢＤＤ簡約規則は、ＢＤＤのサイズを最大限に小さくするよう必要な場合にはいつでも様々なＢＤＤに適用される。
【００５４】
その場合に、ＢＳＳは、検索クエリの組及び対応する検索結果の組をキャッシュに格納する一手段として保存されてよい（ステップ１５１）。
【００５５】
幾つかの場合で、ＢＤＤは、サブＢＤＤのサイズの合計が元のＢＤＤのサイズより小さいように、既存のＢＤＤ簡約規則に従って区分化されてよい。実施例で、ＢＤＤは２又はそれ以上のサブＢＤＤに区分化されてよく（ステップ１６０）、サブＢＤＤが単一のＢＤＤに代えて保存される（ステップ１６１）。実施例で、ＢＤＤの区分は、検索クエリのカテゴリに基づいてよい。表１に表される例では、２つの検索クエリ“キャットフード”及び“ドッグフード”はペットフードに関連し、１つの検索クエリ“車”は自動車に関連する。このようにして、これら３つの検索クエリを表すＢＤＤを区分化する１つの方法は、ペットフード関連の検索クエリ及び自動車関連の検索クエリの夫々についての２つのサブＢＤＤを有することである。
【００５６】
実際に、ＢＤＤによって表される検索クエリは、何らかの適切な規準に基づいて、任意の数のカテゴリに分類されてよい。検索クエリ・カテゴリの例には、“スポーツ”、“政治”、“旅行”、“健康”、“天候”、“経済”等があるが、これらに限られない。より小さいサブＢＤＤは、情報が各ＢＤＤからアクセスされて取り出される場合に、より効率的なルックアップ時間をもたらしうる。
【００５７】
図１は、検索クエリの組と、検索クエリの夫々についてインターネット検索を行うことで得られる検索結果の対応する組とを表し、ひいては、これらをキャッシュに格納するために使用されるＢＤＤの構成をステップごとに表す。実際には、検索クエリの組及び対応する検索結果の組と、構成されるＢＤＤとに依存して、具体的なステップの一部は飛び越されることがある。最終的なＢＤＤで、１終端ノードに至る経路は、その経路での決定ノードの幾つかの値によって識別されるウェブページが、同じ経路での幾つかの他の決定ノードの値によって識別される検索クエリに対応する検索結果に含まれることを示す。
【００５８】
ＢＤＤは、特定のフォーマットを有するデータ構造である。それは、１又はそれ以上の変数のブール関数ｆを表し、各変数は０の値又は１の値を有しうる。グラフで表される場合に、関数ｆの各変数は決定ノードとして表され得、各決定ノードは２つのエッジ（０エッジ及び１エッジ）を有する。ＢＤＤの経路を進む場合に、決定ノードから０エッジを辿ることは、その決定ノードによって表される変数が０の値を有することを示し、一方、決定ノードから１エッジを辿ることは、その決定ノードによって表される変数が１の値を有することを示す。０終端ノードに至る経路は、その経路での決定ノードによって表される変数に割り当てられている値についてブール関数ｆが０であると評価することを示す。１終端ノードに至る経路は、その経路での決定ノードによって表される変数に割り当てられている値についてブール関数ｆが１であると評価することを示す。
【００５９】
実施例で、ＢＤＤによって表される検索クエリの組及び対応する検索結果の組でのデータは、それらがＢＤＤデータ構造のフォーマットに適するように変更される必要がある場合がある。実施例で、検索結果の組に含まれる各検索クエリは、同数のワードを有するべきである。特定の検索クエリが必要とされるより少ない数のワードを有する場合は、０値が、１又はそれ以上の欠けているワードを表すために付加される。仮に、各検索クエリにおけるワードの数をｋとする。なお、ｋ＝１，２，・・・ｎである。実施例で、ｋの値は、最大数のワードを有する検索クエリの組からの検索クエリに含まれるワードの数に等しい。
【００６０】
表１に表される例で、ｋは２である。検索クエリ“キャットフード”及び“ドッグフード”は両方とも２つのワードを有する。しかし、検索クエリ“車”は１つのワードしか有さない。このようにして、０は、２つ目のワードを補うべく検索クエリ“車”に付加されてよい。表２に表されるように、２進数での各ワードＩＤは４つの２進値を有する。このようにして、２進数で表１での各検索クエリを表すには８つの２進値を要する。説明のために、検索クエリを識別する結合されたワードＩＤは“クエリＩＤ”と称される。更に、表３に表されるように、２進数での各ページＩＤは３つの２進値を有する。よって、２進数で対応する対の検索クエリ及びウェブページを表すには１１個の２進値を要する。下記の表５は、対応する対の検索クエリ及びウェブページと、それらの２進表現とを表す。
【表５】
2010055608.tif 000007
【００６１】
各２進値は、ＢＤＤで決定ノードとなる変数によって表される。変数ｘ１、ｘ２、ｘ３、ｘ４、ｘ５、ｘ６、ｘ７及びｘ８は検索クエリに対応する最初の８つの２進値を表し、変数ｙ１、ｙ２及びｙ３は、ウェブページに対応する最後の３つの２進値を表すとする。図７Ａは、表１に表される検索クエリの組及び対応する検索結果の組を表すＢＤＤ７００を表す。ＢＤＤ７００には、１終端ノードに至る６つの経路７０１、７０２、７０３、７０４、７０５及び７０６が存在する。各経路は、表５に表される、異なる対応する対の検索クエリ及びウェブページを表す。他の全ての経路は０終端ノードに至る。結果として、経路７０１は、ウェブページＡが検索クエリ“キャットフード”についての検索結果に含まれることを示し、経路７０２は、ウェブページＢが検索クエリ“キャットフード”についての検索結果に含まれることを示し、経路７０３は、ウェブページＡが検索クエリ“ドッグフード”についての検索結果に含まれることを示し、経路７０４は、ウェブページＣが検索クエリ“ドッグフード”についての検索結果に含まれることを示し、経路７０５は、ウェブページＤが検索クエリ“ドッグフード”についての検索結果に含まれることを示し、経路７０６は、ウェブページＥが検索クエリ“車”についての検索結果に含まれることを示す。
【００６２】
図１のステップ１５０に関連して上述されたように、様々なＢＤＤ簡約規則が、ＢＤＤのサイズを小さくするようＢＤＤに適用されてよい。図７Ｂは、簡約規則をＢＤＤ７００に適用した結果を表すＢＤＤ７５０を表す。
【００６３】
ＢＤＤが検索クエリの組及び対応する検索結果の組について構成されると、ＢＤＤは、例えば、そのＢＤＤに新しい対の対応する検索クエリ及び検索結果を加えること、又はそのＢＤＤから既存の対の対応する検索クエリ及び検索結果を削除すること等の変更を行われてよい。
【００６４】
図８Ａは、実施例に従って、対応する検索クエリ及び検索結果の新しい対を、検索クエリの組及び対応する検索結果の組を表すＢＤＤに付加する方法の例を表す。
【００６５】
対応する検索クエリ及び検索結果の新しい対は、検索クエリ及び検索結果を有する新しい検索タプルを用いて表され得る（ステップ８１０）。上述されるように、検索クエリは１又はそれ以上のワードを有してよく、各ワードはワードＩＤを割り当てられる。検索結果は１又はそれ以上のウェブページを有してよく、各ウェブページはページＩＤを割り当てられる。新しい検索タプルは、図１のステップ１３０で記載されるプロセスを用いて構成されてよい。
【００６６】
新しい検索タプルは、新しいタプルＢＤＤにより表され得る（ステップ８１２）。新しいタプルＢＤＤは、図１のステップ１３１で記載されるプロセスを用いて構成されてよい。
【００６７】
新しいタプルＢＤＤをＢＤＤに加えるよう、論理和演算が新しいタプルＢＤＤ及びＢＤＤに対して行われる（ステップ８１４）。このステップは、図１のステップ１４０で記載されるプロセスと同じである。
【００６８】
実施例で、様々なＢＤＤ簡約規則が、可能な限りＢＤＤのサイズを小さくするようＢＤＤに適用されてよい。
【００６９】
図８Ｂは、実施例に従って、対応する検索クエリ及び検索結果の既存の対を、検索クエリの組及び対応する検索結果の組を表すＢＤＤから削除する方法の例を表す。
【００７０】
ＢＤＤにおける対応する検索クエリ及び検索結果の既存の対は、構成されているタプルＢＤＤを予め有する。実施例で、対応する検索クエリ及び検索結果の既存の対を表すタプルＢＤＤは無効にされる（ステップ８２０）。実施例で、ＢＤＤは、０終端ノードへの全ての参照を１終端ノードへの参照と交換することで、またその逆であっても同様に、無効にされ得る。
【００７１】
対応する検索クエリ及び検索結果の既存の対をＢＤＤから削除するよう、論理積演算が、無効にされるタプルＢＤＤ及びＢＤＤに対して行われる（ステップ８２２）。このようにして、無効にされるタプルＢＤＤは、ＢＤＤにおいて対応する検索クエリ及び検索結果の対を表すタプルＢＤＤを無効にする。
【００７２】
ＢＤＤは、特にコンピュータサイエンスの多くの分野で、幅広い潜在的な用途を有する。実施例で、ＢＤＤは、図１を参照して記載されるように、検索クエリの組及び対応する検索結果の組をキャッシュに格納するために使用されてよい。ＢＤＤは、図８Ａ及び８Ｂを参照して記載される方法により、新しい検索結果をＢＤＤに付加すること又は古い検索結果をＢＤＤから削除すること等の更新を行われてよい。
【００７３】
検索は、人々がインターネット上で行う最も一般的な行動の１つである。図９は、ヒトがインターネット上で情報を検索することができるネットワーク環境９１０の例を表す。
【００７４】
システム９１０は、１又はそれ以上のクライアント９１４、１又はそれ以上のウェブサーバ９１６、及びアプリケーションサーバ９１８を相互に結合するネットワーク９１２を有する。実施例で、ネットワーク９１２は、インターネット、エクストラネット、バーチャル・プライベート・ネットワーク（ＶＰＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、インターネットの一部、若しくは他のネットワーク９１２、又は２若しくはそれ以上の斯かるネットワーク９１２の組み合わせである。本開示は、あらゆる適切なネットワーク９１２を考慮する。１又はそれ以上のリンク９２０は、クライアント９１４、ウェブサーバ９１６、又はアプリケーションサーバ９１８をネットワーク９１２に結合する。実施例で、１又はそれ以上のリンク９２０は夫々、１又はそれ以上の有線、無線、又は光のリンク９２０を有する。実施例で、１又はそれ以上のリンク９２０は夫々、インターネット、エクトラネット、バーチャル・プライベート・ネットワーク（ＶＰＮ）、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＭＡＮ、インターネットの一部、若しくは他のリンク９２０、又は２又はそれ以上の斯かるリンク９２０の組み合わせを有する。本開示は、クライアント９１４、ウェブサーバ９１６、及びアプリケーションサーバ９１８をネットワーク９１２に結合するあらゆる適切なリンク９２０を考慮する。
【００７５】
実施例で、クライアント９１４は、クライアント９１４でのユーザがウェブサーバ９１６にあるウェブページにアクセスすることを可能にする。一例として、しかし限定としてではなく、クライアント９１４は、ウェブブラウザを有する、例えば、適切なデスクトップコンピュータシステム、ノートブックコンピュータシステム、又は携帯電話機等のコンピュータシステムであってよい。クライアント９１４でのユーザは、ウェブブラウザをウェブサーバ９１６に導くユニフォーム・リソース・ロケータ（ＵＲＬ）又は他のアドレスを入力する。ウェブブラウザは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求を生成し、そのＨＴＴＰ要求をウェブブラウザ９１６に送る。ウェブサーバ９１６は、ＨＴＴＰ要求にアクセスし、このＨＴＴＰ要求に応答してハイパーテキスト・マークアップ言語（ＨＴＭＬ）文書を生成し、クライアント９１４へ送る。ウェブブラウザ９１６からのＨＴＭＬ文書は、クライアント９１４でのウェブブラウザがユーザに提示するウェブページであってよい。本開示は、あらゆる適切なウェブページを考慮する。一例として、しかし限定としてではなく、ウェブページは、拡張マークアップ言語（ＸＭＬ）文書又は拡張ハイパーテキスト・マークアップ言語（ＸＨＴＭＬ）文書であってよい。更に、本開示は、あらゆる適切なオブジェクトを考慮し、ウェブサーバ９１６にあるウェブページに限られない。一例として、しかし限定としてではなく、必要に応じて、本開示は、例えば、マイクロソフト（登録商標）ワード文書及びポータブル・ドキュメント・フォーマット（ＰＤＦ）文書、又はデータベースサーバ、ファイルサーバ、ピア・ツー・ピアネットワーク、若しくは他の場所にある他のオブジェクト等の実行可能なファイルを考慮する。
【００７６】
実施例で、ウェブサーバ９１６は１又はそれ以上のサーバを有する。本開示は、あらゆる適切なウェブサーバ９１６を考慮する。更に、本開示は、あらゆる適切なクライアント９１４を考慮する。一例として、しかし限定としてではなく、ウェブサーバ９１６にあるウェブページにアクセスするためにウェブブラウザを有することに加えて又はその代替として、クライアント９１４は、１又はそれ以上のデータベースサーバ、ファイルサーバ、ピア・ツー・ピアネットワーク、又は他の場所にあるオブジェクトにアクセスするための１又はそれ以上のアプリケーションを有してよい。
【００７７】
クライアント９１４でのユーザからの入力に応答して、クライアント９１４は、１又はそれ以上の特定のキーを有するウェブページに対するクエリを生成し、そのクエリをアプリケーションサーバ９１８へ送る。１又はそれ以上のワードを有するクエリは“検索クエリ”と考えられてよい。
【００７８】
実施例で、アプリケーションサーバ９１８は、クライアント９１４からクエリを受け取って応答するためのハードウェア、ソフトウェア、埋め込みロジックコンポーネント、又は斯かるコンポーネントの２若しくはそれ以上の組み合わせを有する。一例として、しかし限定としてではなく、アプリケーションサーバ９１８は、１又はそれ以上の特定のキーワードを有するウェブページに対する検索クエリをクライアント９１４から受信し、そのクエリを承認し、ウェブ検索エンジン９２２にアクセスしてクエリを実行し、クエリに応答する検索結果を生成することができる。検索結果は、１又はそれ以上の適切なウェブページを有してよい。アプリケーションサーバ９１８は、ユーザへの提示のためにクライアント９１４へ検索結果を送る。実施例で、アプリケーションサーバ９１８は１又はそれ以上のサーバを有する。本開示は、あらゆる適切なアプリケーションサーバ９１８を考慮する。一例として、しかし限定としてではなく、アプリケーションサーバ９１８は、クライアント９１４でのユーザが、インターネット及びエクストラネット等の分散型ネットワークにわたってオブジェクトを一元的に検索することを可能にするアクセス点を提供するカタログサーバを有してよい。
【００７９】
実施例で、ウェブ検索エンジン９２２は、クライアント９１４からの検索クエリに応答してウェブページを識別する検索結果を生成して返すためのハードウェア、ソフトウェア、若しくは埋め込みロジックコンポーネント、又は斯かるコンポーネントの２若しくはそれ以上の組み合わせを有する。本開示は、あらゆる適切なウェブ検索エンジン９２２を考慮する。一例として、しかし限定としてではなく、ウェブ検索エンジン９２２は、Ｂａｉｄｕ（登録商標）、Ｇｏｏｇｌｅ（登録商標）、Ｌｉｖｅ−Ｓｅａｒｃｈ（登録商標）、又はＹａｈｏｏ！（登録商標）検索であってよい。
【００８０】
実施例で、クエリを実行し、クエリに応答して検索結果を生成するよう、ウェブ検索エンジン９２２はウェブ検索データ９２８にアクセスする。一例として、しかし限定としてではなく、ウェブ検索データ９２８は、ウェブサーバ９１６にあるウェブページの逆索引を有してよい。各逆索引は、後述されるように、夫々一意のキーワードに対応するリストの組を有してよい。索引エンジン９２４は、逆索引の１又はそれ以上を生成することができ、決定ダイアグラムエンジン９２６は、後述されるように、逆索引のリストを表す例えばコンパクト決定ダイアグラムのような決定ダイアグラムを生成することができる。決定ダイアグラムは、保存及び処理を容易にするようリストを圧縮してよい。索引エンジン９２４、決定ダイアグラムエンジン９２６、又はその両方は、ウェブ検索エンジン９２２によって実行されるクエリと、検索結果の生成とを促すよう、逆索引又はそれらのリストを操作してよい。実施例で、索引エンジン９２４は、逆索引を生成し操作するためのハードウェア、ソフトウェア、若しくは埋め込みロジックコンポーネント、又は斯かるコンポーネントの２若しくはそれ以上の組み合わせを有する。実施例で、決定ダイアグラムエンジン９２６は、逆索引のリストを表す決定ダイアグラムを生成して、表されるリストを操作するためのハードウェア、ソフトウェア、若しくは埋め込みロジックコンポーネント、又は斯かるコンポーネントの２若しくはそれ以上の組み合わせを有する。実施例で、ウェブ検索エンジン９２２、索引エンジン９２４、及び決定ダイアグラムエンジン９２６は全て論理的又は物理的に互いから分離している。実施例で、ウェブ検索エンジン９２２及び索引エンジン９２４は、機能上、論理上、又は物理上互いと結合される。一例として、しかし限定としてではなく、索引エンジン９２４は、機能上、論理上、又は物理上ウェブ検索エンジン９２２を有してよい。実施例で、索引エンジン９２４及び決定ダイアグラムエンジン９２６は、機能上、論理上、又は物理上互いに結合される。一例として、しかし限定としてではなく、索引エンジン９２４は、機能上、論理上、又は物理上決定ダイアグラムエンジン９２６を有してよい。本開示は、ウェブ検索エンジン９２２、索引エンジン９２４、及び決定ダイアグラムエンジン９２６の間のあらゆる適切な機能的、論理的、又は物理的な配置を考慮する。
【００８１】
実施例で、決定ダイアグラムエンジン９２６は、検索クエリの組及びウェブ検索エンジン９２２によって得られる対応する検索結果の組を表すＢＤＤを保持する。ＢＤＤは、ウェブ検索データ９２８に保存されてよい。ウェブ検索エンジン９２２が新しい検索クエリに応答して新しい検索結果を得るたびに、決定ダイアグラムエンジン９２６はウェブ検索データ９２８に保存されているＢＤＤを然るべく更新する。次いで、保存されているＢＤＤは、検索結果を後の検索クエリに提供するために使用されてよい。
【００８２】
例えば、表１に表される検索クエリ“キャットフード”を考える。ペットとして猫を飼っている多くの人々が存在するので、人々がインターネット上でキャットフードに関する情報を検索する多くの場合が存在する可能性は大いにある。一方で、アプリケーションサーバ９１８が“キャットフード”に対するクエリを行うよういずれかのクライアント９１４から要求を受信すると、ウェブ検索エンジン９２２は、検索クエリ“キャットフード”について検索結果を生成するよう検索処理を実行する。しかし、これは、特に、キャットフードに関する情報を有しうる全てのウェブページを見つけ出すためにネットワーク９１２において完全な検索を実行するには或る程度時間がかかるために、極めて効率的とはいえない。
【００８３】
他方で、アプリケーションサーバ９１８が“キャットフード”に対するクエリを行うよういずれかのクライアント９１４から要求を受信すると、ウェブ検索エンジン９２２が検索処理を行うことに代えて、ウェブ検索データ９２８に保存されているＢＤＤが最初に処理される。図１０は、記憶されているＢＤＤを用いて新しい検索クエリについて新しい検索結果を生成する方法の例を表す。先と同じく、ＢＤＤは検索クエリの組及び対応する検索結果の組を表す。
【００８４】
新しい検索クエリを受信する（ステップ１０１０）と、図１のステップ１１０で記載されるように、その新しい検索クエリに含まれるワードの全てが、ＢＤＤによって表される検索クエリの組から得られる個別ワードの組で見つけられるかどうかが判断される（ステップ１０２０）。新しい検索クエリは、他の検索クエリと同様に、１又はそれ以上のワードを有する。
【００８５】
新しい検索クエリに含まれるワードの全てが個別ワードの組で見つけられない場合（ステップ１０２０、“ＮＯ”）は、新しい検索クエリは、その新しい検索クエリがＢＤＤによって表される検索クエリの組のいずれかで以前に見つけられていない新しいワードを少なくとも１つは有するので、ＢＤＤによって表される検索クエリの組にはない。この場合に、検索結果は、ＢＤＤで新しい検索クエリについてキャッシュに格納されない。新しい検索クエリで見つけられた新しいワードは、夫々、新しいワードＩＤを割り当てられ（ステップ１０２２）、新しいワードは、個別ワードの組へ付加される（ステップ１０２３）。ここから、処理は、後述されるステップ１０６０に進む。
【００８６】
他方で、新しい検索クエリに含まれるワードの全てが個別ワードの組で見つけられる場合（ステップ１０２０、“ＹＥＳ”）は、新しい検索クエリに含まれるワードの夫々は既にワードＩＤを割り当てられている。新しい検索クエリに含まれるワードは、その新しい検索クエリについてクエリＩＤを得るよう、それらの既存のワードＩＤと相互に関連付けられる（ステップ１０２１）。
【００８７】
例えば、表１に表される例を表すＢＤＤについて考える。新しい検索クエリが“車”である場合に、ワード“車”は、表１中の３つの検索クエリに現れたワードの組で見つけられる。検索クエリ“車”についての検索結果は、ＢＤＤでキャッシュに格納されてよい。他方で、新しい検索クエリが“トラック”である場合は、ワード“トラック”は、表１中の３つの検索クエリに現れたワードの組で見つけられない。検索クエリ“トラック”についての検索結果は、ＢＤＤでキャッシュに格納されない。
【００８８】
保存されているＢＤＤはトラバースされる（ステップ１０３０）。ＢＤＤは、一部は０終端ノードに至り、一部は１終端ノードに至る多数の経路を有しうる。各経路では、１又はそれ以上の決定ノードが存在する。１終端ノードに至るＢＤＤでの各経路について、その経路でのノードの幾つかの値が新しい検索クエリを表す場合は、幾つかの経路での他の決定ノードの値によって表されるウェブページをその新しい検索クエリについての新しい検索結果に含める（ステップ１０４０）。
【００８９】
新しい検索クエリに含まれるワードのワードＩＤの２進値は、１終端ノードに至るＢＤＤにおける各経路での決定ノードの２進値に対して適合する。例えば、１終端ノードに至る、図７に表される経路７０６を考える。
【００９０】
新しい検索クエリは“車”であるとする。“車”についての２進数でのワードＩＤは、図２に表されるように、１１０１である。ＢＤＤ７００は、全ての検索クエリが２つのワードを有し且つ検索クエリ“車”は１つのワードしか有さないように構成されるので、０値が２番目のワードを補うように付加される。このようにして、検索クエリ“車”についての２進表現は０−０−０−０−１−１−０−１となる。経路７０６を下りていくと、新しい検索クエリを表す２進値は、経路７０６での決定ノードの値に対して適合する。具体的に、決定ノードｘ１の値は０であり、決定ノードｘ２の値は０であり、決定ノードｘ３の値は０であり、決定ノードｘ４の値は０であり、決定ノードｘ５の値は１であり、決定ノードｘ６の値は１であり、決定ノードｘ７の値は０であり、決定ノードｘ８の値は１である。この点で、整合は、２進表現が０−０−０−０−１−１−０−１である検索クエリ“車”について見出される。経路７０６での最後の３つの決定ノードｙ１、ｙ２及びｙ３の値は１−０−１であり、これは、表３で表されるように、ウェブページＥのページＩＤである。このようにして、ウェブページＥは、検索クエリ“車”についての検索結果に含まれる。
【００９１】
代替的に、新しい検索クエリは“フード  車”であるとする。成句としては全く実際上の意味を有さないが、それは照合プロセスを更に説明するために使用される。新しい検索クエリ“フード”及び“車”に含まれる両ワードは個別ワードの組で見つけられ、従って、ステップ１０２０は真（ＴＲＵＥ）であると評価する（ステップ１０２０、“ＹＥＳ”）。表２に表されるように、ワード“フード”のワードＩＤは１１００であり、ワード“車”のワードＩＤは１１０１である。このようにして、検索クエリ“フード  車”を表す２進値は、２つのワードＩＤを結合した１−１−０−０−１−１−０−１である。
【００９２】
１終端ノードに至るＢＤＤ７００中の全ての経路を通る検索は、検索クエリ“フード  車”がＢＤＤ７００でキャッシュに格納されないので、２進列１−１−０−０−１−１−０−１を適合させる如何なる経路での変数の値の如何なる組み合わせも与えない。この場合に、検索クエリ“フード  車”に対応するウェブページは見つけられない。
【００９３】
全体のＢＤＤがトラバースされると、検索結果が新しい検索クエリについて見つけられるかどうかが判断される（ステップ１０５０）。実施例で、ウェブページが照合プロセスに基づいて新しい検索クエリについてＢＤＤで見つけられない場合は、新しい検索結果はその新しい検索クエリについて見つけられない。反対に、１又はそれ以上のウェブページが照合プロセスに基づいて新しい検索クエリについてＢＤＤで見つけられる場合は、検索結果は新しい検索クエリについて見つけられる。
【００９４】
検索結果が新しい検索クエリについて見つけられる場合（ステップ１０５０、“ＹＥＳ”）は、検索結果は検索を要求するユーザへ送られる（ステップ１０７０）。他方で、検索結果が新しい検索クエリについて見つけられない場合（ステップ１０５０、“ＮＯ”）は、処理はステップ１０６０に進む。
【００９５】
インターネット上での検索は、何らかの適切な検索エンジンを用いて新しい検索クエリについて行われる（ステップ１０６０）。これに応じて新しい検索結果が生成される。新しい検索結果は１又はそれ以上のウェブページを有しうる。新しい検索結果に含まれる全てのウェブページが、図１のステップ１２０で得られるような、ＢＤＤによって表される検索結果に含まれる個別ウェブページの組で見つけられるかどうかが判断される（ステップ１０６１）。新しい検索結果に含まれるウェブページのいずれかが個別ウェブページの組で見つけられない場合（ステップ１０６１、“ＮＯ”）は、新しいページＩＤを新しいウェブページに割り当て（ステップ１０６２）、その新しいウェブページを個別ウェブページの組に加える（ステップ１０６３）。他方で、新しい検索結果に含まれるウェブページの全てが個別ウェブページの組で見つけられる場合（ステップ１０６１、“ＹＥＳ”）は、処理は、ステップ１０６２及び１０６３を通り越して直接にステップ１０６４に進む。個別ウェブページの組で見つけられるウェブページの夫々について、既存のページＩＤがそのウェブページと相互に関連付けられる（ステップ１０６４）。
【００９６】
図１のステップ１３０及び１３１で記載される処理により新しいタプルＢＤＤを用いて新しい検索クエリ及び新しい検索結果の対が表される（ステップ１０６５）。図８Ａで記載される処理により、新しいタプルＢＤＤはＢＤＤに加えられる。このとき、新しい検索クエリ及び新しい検索結果の対は、また、ＢＤＤでキャッシュに格納される。これにより、その後に、ＢＤＤは、同様にこの検索クエリについての検索結果を提供するために使用され得る。新しい検索結果は、検索を要求するユーザに送られる（ステップ１０７０）。
【００９７】
具体例は、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせとして実施されてよい。一例として、しかし限定としてではなく、１又はそれ以上のコンピュータシステムは、ここに記載又は図示される１又はそれ以上の処理の１又はそれ以上のステップを実行するよう特定のロジック又はソフトウェアを実行してよい。１又はそれ以上のコンピュータシステムは、必要に応じて、統一された又は分散した、全域の複数のコンピュータシステム又は複数のデータセンタであってよい。本開示は、あらゆる適切なコンピュータシステムを考慮する。実施例で、ここに記載又は図示される１又はそれ以上処理の１又はそれ以上のステップの実行は、必ずしも、１又はそれ以上の特定の地理的な位置に限定される必要はなく、必ずしも時間的な制限を有する必要はない。一例として、しかし限定としてではなく、１又はそれ以上のコンピュータシステムは、必要に応じて、“実時間”で、“オフライン”で、“バッチモード”で、さもなければ、又はそれらの適切な組み合わせで、自身の機能を実行してよい。コンピュータシステムの１又はそれ以上は、必要に応じて、異なる処理を用いて、異なる時間に、異なる場所で、自身の機能の１又はそれ以上を実行してよい。ここで、必要に応じて、ロジックへの言及はソフトウェアを包含し、またその逆も同様である。必要に応じて、ソフトウェアへの言及は１又はそれ以上のコンピュータプログラムを包含し、またその逆も同様である。必要に応じて、ソフトウェアへの言及はデータ、命令又はそれら両方を包含し、またその逆も同様である。同様に、必要に応じて、データへの言及は命令を包含し、またその逆も同様である。
【００９８】
１又はそれ以上のコンピュータ読出可能な記憶媒体は、特定の実施形態を実施するソフトウェアを記憶し、又は別なふうに具現してよい。コンピュータ読出可能な媒体は、必要に応じて、ソフトウェアを実行し、通信し、収容し、保持し、保存し、伝播し、留保し、記憶し、送信し、転送し、又は別なふうに具現することができる如何なる媒体であってもよい。コンピュータ読出可能な媒体は、必要に応じて、生物学的、化学的、電子的、電磁気的、赤外線、磁気的、又は光学的、量子的、若しくは他の適切な媒体又は２若しくはそれ以上の斯かる媒体の組み合わせであってよい。コンピュータ読出可能な媒体は、１若しくはそれ以上のナノメートルスケールのコンポーネントを有し、又は別なふうにナノメートルスケールの設計若しくは製造を具現してよい。コンピュータ読出可能な媒体の例には、コンパクトディスク（ＣＤ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、フロッピー（登録商標）ディスク、フロプティカルディスク、ハードディスク、ホログラフィック・ストレージ・デバイス、集積回路（ＩＣ）（例えば、特定用途向け集積回路（ＡＳＩＣ）等）、磁気テープ、キャッシュ、プログラマブル・ロジック・デバイス（ＰＬＤ）、ランダム・アクセス・メモリ（ＲＡＭ）デバイス、読出専用メモリ（ＲＯＭ）デバイス、半導体メモリデバイス、及び他の適切なコンピュータ読出可能な媒体があるが、これらに限定されない。
【００９９】
特定の実施形態を実施するソフトウェアは、必要に応じて、（プロシージャ又はオブジェクト指向である）いずれかの適切なプログラミング言語、又はプログラミング言語の組み合わせで記述されてよい。あらゆる適切なタイプのコンピュータシステム（例えば、単一又は複数プロセッサコンピュータシステム）も、必要に応じて、特定の実施形態を実施するソフトウェアを実行してよい。汎用のコンピュータシステムは、必要に応じて、特定の実施形態を実施するソフトウェアを実行してよい。
【０１００】
例えば、図１１は、実施例の１又はそれ以上の部分を実施するのに適したコンピュータシステム１１００の例を表す。本開示は、特定の構成で特定のコンポーネントを有する特定のコンピュータシステム１１００を記載及び図示するが、あらゆる適切な構成であらゆる適切なコンポーネントを有するあらゆる適切なコンピュータシステムも考慮する。更に、コンピュータシステム１１００は、例えば、１又はそれ以上の集積回路（ＩＣ）、１又はそれ以上の印刷回路基板（ＰＣＢ）、１又はそれ以上の携帯型又は他の装置（例えば、携帯電話機又はＰＤＡ等）、１又はそれ以上のパーソナルコンピュータ、あるいは１又はそれ以上のスーパーコンピュータ等のあらゆる適切な物理的形態をとってよい。
【０１０１】
コンピュータシステム１１００は、１又はそれ以上の入力装置１１０２（キーパッド、キーボード、マウス、スタイラス等を有する。）、１又はそれ以上の出力装置１１０４（１又はそれ以上のディスプレイ、１又はそれ以上のスピーカ、１又はそれ以上のプリンタ等を有する。）、１又はそれ以上の記憶装置１１０６、及び１又はそれ以上の記憶媒体１１０８を有してよい。入力装置１１０２は、コンピュータシステム１１００の外部又は内部にあってよい。出力装置１１０４は、コンピュータシステム１１００の外部又は内部にあってよい。記憶装置１１０６は、コンピュータシステム１１００の外部又は内部にあってよい。記憶媒体１１０８は、コンピュータシステム１１００の外部又は内部にあってよい。
【０１０２】
システムバス１１１０は、コンピュータシステム１１００のサブシステムを互いに結合する。ここで、バスへの言及は、共通の機能を果たす１又はそれ以上のデジタル信号線を包含する。本開示は、あらゆる適切なバスアーキテクチャを有するあらゆる適切なバス構造（例えば、１又はそれ以上のメモリバス、１又はそれ以上のペリフェラルバス、１又はそれ以上のローカルバス、あるいはそれらの組み合わせ等）を有するあらゆる適切なシステムバス１１１０を考慮する。バスアーキテクチャの例には、業界標準アーキテクチャ（ＩＳＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ミクロチャネルアーキテクチャ（ＭＣＡ）バス、ビデオエレクトロニクス標準アソシエーション（ＶＥＳＡ）ローカルバス（ＶＬＢ）、ペリフェラルコンポーネント相互接続（ＰＣＩ）バス、ＰＣＩエクスプレスバス（ＰＣＩ−Ｘ）、及びアクセルレイテッド・グラフィックス・ポート（ＡＧＰ）バスがあるが、これらに限定されない。
【０１０３】
コンピュータシステム１１００は、１又はそれ以上のプロセッサ１１１２（又は中央処理ユニット（ＣＰＵ））を有する。プロセッサ１１１２は、命令、データ、又はコンピュータアドレスの一時的な局所記憶のためのキャッシュ１１１４を有してよい。プロセッサ１１１２は、メモリ１１１６を含む１又はそれ以上の記憶装置へ結合されている。メモリ１１１６は、ランダム・アクセス・メモリ（ＲＡＭ）１１１８及び読出専用メモリ（ＲＯＭ）１１２０を有してよい。データ及び命令は、プロセッサ１１１２とＲＡＭ１１１８との間で双方向に転送してよい。データ及び命令は、ＲＯＭ１１２０からプロセッサ１１１２へ一方向で転送してよい。ＲＡＭ１１１８及びＲＯＭ１１２０は、あらゆる適切なコンピュータ読出可能な記憶媒体を有してよい。
【０１０４】
コンピュータシステム１１００は、プロセッサ１１１２へ双方向に結合されている固定記憶装置１１２２を有する。固定記憶装置１１２２は、記憶制御ユニット１１０７を介してプロセッサ１１１２へ結合されてよい。固定記憶装置１１２２は、付加的なデータ記憶容量を提供することができ、あらゆる適切なコンピュータ読出可能な記憶媒体を有してよい。固定記憶装置１１２２は、オペレーティングシステム（ＯＳ）１１２４、１又はそれ以上の実行ファイル（ＥＸＥＣ）１１２６、１又はそれ以上のアプリケーション若しくはプログラム１１２８、データ１１３０等を記憶してよい。固定記憶装置１１２２は、通常は、主記憶装置よりも低速である二次記憶媒体（例えば、ハードディスク等）である。適切な場合に、固定記憶装置１１２２によって記憶される情報は、仮想メモリとしてメモリ１１１６に組み込まれてよい。
【０１０５】
プロセッサ１１１２は、例えば、グラフィックス制御１１３２、ビデオインターフェース１１３４、入力インターフェース１１３６、出力インターフェース１１３７、及び記憶インターフェース１１３８のような様々なインターフェースへ結合されてよい。また、プロセッサ１１１２に結合される装置は、夫々、適切な装置へ結合されてよい。入力及び出力装置の例には、映像ディスプレイ、トラックボール、マウス、キーボード、マイクロホン、タッチセンス式ディスプレイ、トランスデューサー・カード読取器、磁気若しくは紙テープ読取器、タブレット、スタイラス、音声若しくは手書き認識装置、生体読取器、又はコンピュータシステムがあるが、これらに限定されない。ネットワークインターフェース１１４０はプロセッサ１１１２を他のコンピュータシステムへ又はネットワーク１１４２へ結合することができる。ネットワークインターフェース１１４０により、プロセッサ１１１２は、特定の実施形態のステップを実行する過程で、ネットワーク１１４２から情報を受信し又はネットワーク１１４２へ情報を送信することができる。実施例は、もっぱらプロセッサ１１１２で実行してよい。実施例は、プロセッサ１１１２で及び共に動作する１又はそれ以上の遠隔のプロセッサで実行してよい。
【０１０６】
コンピュータシステム１１００がネットワーク１１４２へ接続されているネットワーク環境で、コンピュータシステム１１００は、ネットワーク１１４２へ接続されている他の装置と通信することができる。コンピュータシステム１１００は、ネットワークインターフェース１１４０を介してネットワーク１１４２と通信することができる。例えば、コンピュータシステム１１００は、ネットワークインターフェース１１４０で１又はそれ以上の着信パケットの形でネットワーク１１４２から情報（例えば、他の装置からの要求又は応答）を受信することができ、メモリ１１１６は、その後の処理のために、それらの着信パケットを記憶することができる。コンピュータシステム１１００は、ネットワークインターフェース１１４０から１又はそれ以上の発信パケットの形でネットワーク１１４２へ情報（例えば、他の装置への要求又は応答）を送信することができる。発信パケットは、送信される前はメモリ１１１６に記憶されている。プロセッサ１１１２は、特定のニーズに従って、メモリ１１１６内の着信又は発信パケットにアクセスして、それを処理することができる。
【０１０７】
実施例には、ここに記載又は図示される１又はそれ以上の処理の１又はそれ以上のステップを実行するためのソフトウェアを具現する１又はそれ以上のコンピュータ読出可能な記憶媒体を有する１又はそれ以上のコンピュータ記憶プロダクトが含まれる。実施例で、媒体、ソフトウェア、又はその両方の１又はそれ以上の部分は、ここに記載又は図示される１又はそれ以上の処理の１又はそれ以上のステップを実行するよう具体的に設計され製造されてよい。更に、又は代替として、実施例で、媒体、ソフトウェア、又はその両方の１又はそれ以上の部分は、一般に、ここに記載又は図示される処理に特有の設計又は製造を用いずに利用可能でありうる。コンピュータ読出可能な記憶媒体の例には、ＣＤ（例えば、ＣＤ−ＲＯＭ）、ＦＰＧＡ、フロッピー（登録商標）ディスク、フロプティカルディスク、ハードディスク、ホログラフィック・ストレージ・デバイス、ＩＣ（例えば、ＡＳＩＣ）、磁気テープ、キャッシュ、ＰＬＤ、ＲＡＭデバイス、ＲＯＭデバイス、半導体メモリデバイス、及び他の適切なコンピュータ読出可能な媒体があるが、これらに限定されない。実施例で、ソフトウェアは、コンプライアが生成することができるマシンコード、又はコンピュータがインタープリタを用いて実行することができる高度なコードを有する１又はそれ以上のファイルであってよい。
【０１０８】
一例として、しかし限定としてではなく、メモリ１１１６は、ソフトウェアを具現する１又はそれ以上のコンピュータ読出可能な記憶媒体を有してよく、コンピュータシステム１１００は、プロセッサ１１１２がソフトウェアを実行した結果として、ここに記載及び図示される特定の機能性を提供することができる。ソフトウェアをメモリ１１１６は記憶し、プロセッサ１１１２は実行してよい。メモリ１１１６は、ソフトウェアを具現する大容量記憶装置１１１６にあるコンピュータ読出可能な記憶媒体から、又はネットワークインターフェース１１４０を介して１又はそれ以上の他のソースからソフトウェアを読み出してよい。ソフトウェアを実行する場合に、プロセッサ１１１２は、ここに記載又は図示される１又はそれ以上の処理の１又はそれ以上のステップを実行してよい。これらのステップは、特定のニーズに従って、メモリ１１１６での記憶のために１又はそれ以上のデータ構造を定義すること、及びソフトウェアの１又はそれ以上の部分によって導かれるようにデータ構造の１又はそれ以上を変更することを有してよい。更に、又は代替として、コンピュータシステム１１００は、ハードワイヤードの又は別なふうに回路で具現されるロジックの結果として、ここに記載又は図示される特定の機能性を提供してよい。ロジックは、ここに記載又は図示される１又はそれ以上の処理の１又はそれ以上のステップを実行するよう、ソフトウェアの代わりに、又はソフトウェアとともに、動作してよい。本開示は、特定のニーズに従って、ハードウェア及びソフトウェアのあらゆる適切な組み合わせを包含する。
【０１０９】
本開示は、特定の順序で発生する特定の動作について記載及び図示するが、本開示は、あらゆる適切な順序で発生するあらゆる適切な動作も考慮する。更に、本開示は、あらゆる適切な順序で１又はそれ以上の回数繰り返されるあらゆる適切な動作も考慮する。本開示は、次々と発生する特定の動作について記載及び図示するが、本開示は、必要に応じて、略同時に発生するあらゆる適切な動作も考慮する。ここに記載又は図示されるあらゆる適切な動作又は動作の連続は、必要に応じて、例えば、オペレーティングシステム又はカーネル等の他の処理によって中断され、サスペンドされ、又は別なふうに制御されてよい。アクトは、システム処理の全て又は本質的部分を占めるスタンドアローンのルーチンとして又はオペレーティングシステム環境で動作することができる。
【０１１０】
本開示は、当業者が理解しうる本開示中の実施例に対する全ての変更、置換、変形、代替、及び改良を包含する。同様に、必要に応じて、添付の特許請求の範囲は、当業者が理解しうる本開示中の実施例に対する全ての変更、置換、変形、代替、及び改良を包含する。
【０１１１】
［関連出願］
本願は、合衆国法典第３５巻第１１９条（ｅ）に基づき、２００８年８月６日に出願された“CACHING  QUERY  RESULTS  WITH  BINARY  DECISION  DIAGRAMS（BDDs）”と題された米国仮特許出願第６１／０８６６７２号に基づいて優先権を主張するものである。この出願は、参照により本願に援用される。
【０１１２】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
１又はそれ以上のコンピュータシステムによって複数の第１の二分決定ダイアグラムを構成し、該第１の二分決定ダイアグラムの夫々は複数のワードの異なる１つを表し、該ワードの夫々は一意のワード識別子を有し、各第１の二分決定ダイアグラムは当該第１の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成されるステップと、
前記１又はそれ以上のコンピュータシステムによって複数の第２の二分決定ダイアグラムを構成し、該第２の二分決定ダイアグラムの夫々は複数の検索クエリの異なる１つを表し、該検索クエリの夫々は前記ワードの１又はそれ以上を有し、各第２の二分決定ダイアグラムは当該第２の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第１の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記１又はそれ以上のコンピュータシステムによって複数の第３の二分決定ダイアグラムを構成し、該第３の二分決定ダイアグラムの夫々は複数のウェブページの異なる１つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第３の二分決定ダイアグラムの夫々は当該第３の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成されるステップと、
前記１又はそれ以上のコンピュータシステムによって複数の第４の二分決定ダイアグラムを構成し、該第４の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる１つを表し、該検索結果の夫々は前記ウェブページの１又はそれ以上を有し、各第４の二分決定ダイアグラムは当該第４の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第３の二分決定ダイアグラムに論理和演算を実行することによって構成されるステップと、
前記１又はそれ以上のコンピュータシステムによって複数の第５の二分決定ダイアグラムを構成し、該第５の二分決定ダイアグラムの夫々は複数の検索タプルの異なる１つを表し、該検索タプルの夫々は前記検索クエリの異なる１つと、当該検索クエリに対応する検索結果の異なる１つとを有し、各第５の二分決定ダイアグラムは、当該第５の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第２の二分決定ダイアグラム及び第４の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記１又はそれ以上のコンピュータシステムによって、前記第５の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第６の二分決定ダイアグラムを構成するステップと
を有する方法。
（付記２）
前記第６の二分決定ダイアグラムは、
２進０終端ノードと、
２進１終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記０終端ノード又は前記１終端ノードのいずれかに至り、
前記１終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第１の１又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第２の１又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、付記１記載の方法。
（付記３）
前記１又はそれ以上のコンピュータシステムによって前記ワードの１又はそれ以上を有する新たな検索クエリを受け取るステップと、
前記１又はそれ以上のコンピュータシステムによって前記第６の二分決定ダイアグラムを検索するステップと、
前記１終端ノードに至る前記経路の夫々について、当該経路における検索クエリが前記新たな検索クエリに等しい場合は、前記１又はそれ以上のコンピュータシステムによって、当該経路における全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
前記１又はそれ以上のコンピュータシステムによって前記新たな検索クエリに応答して前記検索結果を返すステップと
を更に有する付記２記載の方法。
（付記４）
前記第１の二分決定ダイアグラムの１つを構成するステップには、
２進フォーマットで当該１つの第１の二分決定ダイアグラムによって表されるワードのワード識別子を表すステップと、
複数の変数により前記ワード識別子において複数の２進値を表し、各変数は前記２進値の異なる１つを表すステップと、
複数の決定ノードとして前記変数により当該１つの第１の二分決定ダイアグラムを構成するステップと
が含まれる、付記１記載の方法。
（付記５）
前記第２の二分決定ダイアグラムの１つを構成するステップには、当該１つの第２の二分決定ダイアグラムによって表される検索クエリに現れるワードの順序で、該検索クエリに含まれる該ワードを表す前記第１の二分決定ダイアグラムに論理積演算を実行するステップが含まれる、付記１記載の方法。
（付記６）
前記第３の二分決定ダイアグラムの１つを構成するステップには、
２進フォーマットで当該１つの第３の二分決定ダイアグラムによって表されるウェブページのページ識別子を表すステップと、
複数の変数により前記ページ識別子において複数の２進値を表し、各変数は前記２進値の異なる１つを表すステップと、
複数の決定ノードとして前記変数により当該１つの第３の二分決定ダイアグラムを構成するステップと
が含まれる、付記１記載の方法。
（付記７）
前記１又はそれ以上のコンピュータシステムによって、新たな検索タプルを表す新たな第５の二分決定ダイアグラム及び前記第６の二分決定ダイアグラムに論理和演算を実行することで、前記新たな第５の二分決定ダイアグラムを前記第６の二分決定ダイアグラムに加えるステップを更に有する、付記１記載の方法。
（付記８）
前記１又はそれ以上のコンピュータシステムによって、前記検索タプルの１つを表す前記第５の二分決定ダイアグラムの１つを前記第６の二分決定ダイアグラムから削除するステップを更に有し、
前記削除するステップは、
当該１つの第５の二分決定ダイアグラムを無効にするステップと、
前記第６の二分決定ダイアグラム及び前記無効にされた第５の二分決定ダイアグラムに論理積演算を実行するステップと
を有する、付記１記載の方法。
（付記９）
前記１又はそれ以上のコンピュータシステムによって、１又はそれ以上の二分決定ダイアグラム簡約規則により前記第６の二分決定ダイアグラムを最大限に簡約化するステップを更に有する、付記１記載の方法。
（付記１０）
前記１又はそれ以上のコンピュータシステムによって、１又はそれ以上の二分決定ダイアグラム簡約規則により前記第４の二分決定ダイアグラムと、前記第５の二分決定ダイアグラムの夫々とを最大限に簡約化するステップを更に有する、付記１記載の方法。
（付記１１）
前記１又はそれ以上のコンピュータシステムによって、前記第６の二分決定ダイアグラムを複数の第７の二分決定ダイアグラムに区分化するステップを更に有し、
前記第７の二分決定ダイアグラムのサイズの和は、前記第６の二分決定ダイアグラムのサイズより小さい、付記１記載の方法。
（付記１２）
前記１又はそれ以上のコンピュータシステムによって前記複数の第７の二分決定ダイアグラムを保存するステップを更に有する、付記１１記載の方法。
（付記１３）
前記１又はそれ以上のコンピュータシステムによって前記第６の二分決定ダイアグラムを保存するステップを更に有する、付記１記載の方法。
（付記１４）
１又はそれ以上のコンピュータシステムによって複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる１つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも１度現れ、該検索クエリの夫々は前記ワードの１又はそれ以上を有するステップと、
前記１又はそれ以上のコンピュータシステムによって複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる１つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも１つ含まれ、該検索結果の夫々は前記ウェブページの１又はそれ以上を有するステップと、
前記１又はそれ以上のコンピュータシステムによって複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる１つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られるステップと、
前記１又はそれ以上のコンピュータシステムによって前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成するステップと
を有し、
前記二分決定ダイアグラムは、
２進０終端ノードと、
２進１終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記０終端ノード又は前記１終端ノードのいずれかに至り、
各決定ノードは、２進フォーマットで前記クエリ識別子の１つ及び前記ページ識別子の１つでの２進値を表し、
前記１終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第１の１又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第２の１又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、方法。
（付記１５）
前記１又はそれ以上のコンピュータシステムによって前記ワードの１又はそれ以上を有する新たな検索クエリを受け取るステップと、
前記１又はそれ以上のコンピュータシステムによって、前記新たな検索クエリに含まれるワードを識別するワード識別子を結合することで前記新たな検索クエリについて新たなクエリ識別子を得るステップと、
前記１又はそれ以上のコンピュータシステムによって前記二分決定ダイアグラムを検索するステップと、
前記１終端ノードに至る前記経路の夫々について、当該経路での検索クエリが前記新たな検索クエリに等しい場合は、前記１又はそれ以上のコンピュータシステムによって、当該経路での全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
前記１又はそれ以上のコンピュータシステムによって前記新たな検索クエリに応答して前記検索結果を返すステップと
を更に有する付記１４記載の方法。
（付記１６）
前記１又はそれ以上のコンピュータシステムによって、第２の検索クエリと、該第２の検索クエリに応答して生成される第２の検索結果とを表す第２の二分決定ダイアグラムを構成し、前記第２の検索クエリは前記ワードの１又はそれ以上を有し、前記第２の検索結果は前記ウェブページの１又はそれ以上を有するステップと、
前記１又はそれ以上のコンピュータシステムによって、前記二分決定ダイアグラム及び前記第２の二分決定ダイアグラムに論理和演算を実行することで前記第２の二分決定ダイアグラムを前記二分決定ダイアグラムに加えるステップと
を更に有する付記１４記載の方法。
（付記１７）
前記１又はそれ以上のコンピュータシステムによって、前記検索クエリの１つと、該１つの検索クエリに応答して生成される前記検索結果の１つとを表す第３の二分決定ダイアグラムを無効にするステップと、
前記１又はそれ以上のコンピュータシステムによって、前記二分決定ダイアグラム及び前記無効にされた第３の二分決定ダイアグラムに論理積演算を実行することで前記第３の二分決定ダイアグラムを前記二分決定ダイアグラムから削除するステップと
を更に有する付記１４記載の方法。
（付記１８）
前記１又はそれ以上のコンピュータシステムによって１又はそれ以上の二分決定ダイアグラム簡約規則により前記二分決定ダイアグラムを最大限に簡約化するステップを更に有する付記１４記載の方法。
（付記１９）
前記１又はそれ以上のコンピュータシステムによって前記二分決定ダイアグラムを複数の第４の二分決定ダイアグラムに区分化するステップを更に有し、
前記第４の二分決定ダイアグラムのサイズの和は、前記二分決定ダイアグラムのサイズより小さい、付記１４記載の方法。
（付記２０）
前記１又はそれ以上のコンピュータシステムによって前記複数の第４の二分決定ダイアグラムを保存するステップを更に有する付記１９記載の方法。
（付記２１）
前記１又はそれ以上のコンピュータシステムによって前記二分決定ダイアグラムを保存するステップを更に有する付記１４記載の方法。
（付記２２）
１又はそれ以上のコンピュータシステムによる実行のためであって且つ実行される場合に
複数の第１の二分決定ダイアグラムを構成し、該第１の二分決定ダイアグラムの夫々は複数のワードの異なる１つを表し、該ワードの夫々は一意のワード識別子を有し、各第１の二分決定ダイアグラムは当該第１の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成されるステップと、
複数の第２の二分決定ダイアグラムを構成し、該第２の二分決定ダイアグラムの夫々は複数の検索クエリの異なる１つを表し、該検索クエリの夫々は前記ワードの１又はそれ以上を有し、各第２の二分決定ダイアグラムは当該第２の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第１の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
複数の第３の二分決定ダイアグラムを構成し、該第３の二分決定ダイアグラムの夫々は複数のウェブページの異なる１つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第３の二分決定ダイアグラムの夫々は当該第３の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成されるステップと、
複数の第４の二分決定ダイアグラムを構成し、該第４の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる１つを表し、該検索結果の夫々は前記ウェブページの１又はそれ以上を有し、各第４の二分決定ダイアグラムは当該第４の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第３の二分決定ダイアグラムに論理和演算を実行することによって構成されるステップと、
複数の第５の二分決定ダイアグラムを構成し、該第５の二分決定ダイアグラムの夫々は複数の検索タプルの異なる１つを表し、該検索タプルの夫々は前記検索クエリの異なる１つと、当該検索クエリに対応する検索結果の異なる１つとを有し、各第５の二分決定ダイアグラムは、当該第５の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第２の二分決定ダイアグラム及び第４の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記第５の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第６の二分決定ダイアグラムを構成するステップと
を実行するよう動作するソフトウェアを具現する１又はそれ以上のコンピュータ読出可能な記憶媒体。
（付記２３）
前記第６の二分決定ダイアグラムは、
２進０終端ノードと、
２進１終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記０終端ノード又は前記１終端ノードのいずれかに至り、
前記１終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第１の１又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第２の１又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、付記２２記載の記憶媒体。
（付記２４）
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記１又はそれ以上のコンピュータシステムに、
前記ワードの１又はそれ以上を有する新たな検索クエリを受け取るステップと、
前記第６の二分決定ダイアグラムを検索するステップと、
前記１終端ノードに至る前記経路の夫々について、当該経路における検索クエリが前記新たな検索クエリに等しい場合は、当該経路における全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
前記新たな検索クエリに応答して前記検索結果を返すステップと
を実行させるよう動作する、付記２３記載の記憶媒体。
（付記２５）
前記第１の二分決定ダイアグラムの１つを構成するステップには、
２進フォーマットで当該１つの第１の二分決定ダイアグラムによって表されるワードのワード識別子を表すステップと、
複数の変数により前記ワード識別子において複数の２進値を表し、各変数は前記２進値の異なる１つを表すステップと、
複数の決定ノードとして前記変数により当該１つの第１の二分決定ダイアグラムを構成するステップと
が含まれる、付記２２記載の記憶媒体。
（付記２６）
前記第２の二分決定ダイアグラムの１つを構成するステップには、当該１つの第２の二分決定ダイアグラムによって表される検索クエリに現れるワードの順序で、該検索クエリに含まれる該ワードを表す前記第１の二分決定ダイアグラムに論理積演算を実行するステップが含まれる、付記２２記載の記憶媒体。
（付記２７）
前記第３の二分決定ダイアグラムの１つを構成するステップには、
２進フォーマットで当該１つの第３の二分決定ダイアグラムによって表されるウェブページのページ識別子を表すステップと、
複数の変数により前記ページ識別子において複数の２進値を表し、各変数は前記２進値の異なる１つを表すステップと、
複数の決定ノードとして前記変数により当該１つの第３の二分決定ダイアグラムを構成するステップと
が含まれる、付記２２記載の記憶媒体。
（付記２８）
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記１又はそれ以上のコンピュータシステムに、
新たな検索タプルを表す新たな第５の二分決定ダイアグラム及び前記第６の二分決定ダイアグラムに論理和演算を実行することで、前記新たな第５の二分決定ダイアグラムを前記第６の二分決定ダイアグラムに加えるステップを実行させるよう動作する、付記２２記載の記憶媒体。
（付記２９）
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記１又はそれ以上のコンピュータシステムに、
前記検索タプルの１つを表す前記第５の二分決定ダイアグラムの１つを前記第６の二分決定ダイアグラムから削除するステップを実行させるよう動作し、
前記削除するステップは、
当該１つの第５の二分決定ダイアグラムを無効にするステップと、
前記第６の二分決定ダイアグラム及び前記無効にされた第５の二分決定ダイアグラムに論理積演算を実行するステップと
を有する、付記２２記載の記憶媒体。
（付記３０）
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記１又はそれ以上のコンピュータシステムに、
１又はそれ以上の二分決定ダイアグラム簡約規則により前記第６の二分決定ダイアグラムを最大限に簡約化するステップを実行させるよう動作する、付記２２記載の記憶媒体。
（付記３１）
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記１又はそれ以上のコンピュータシステムに、
１又はそれ以上の二分決定ダイアグラム簡約規則により前記第４の二分決定ダイアグラムと、前記第５の二分決定ダイアグラムの夫々とを最大限に簡約化するステップを実行させるよう動作する、付記２２記載の記憶媒体。
（付記３２）
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記１又はそれ以上のコンピュータシステムに、
前記第６の二分決定ダイアグラムを複数の第７の二分決定ダイアグラムに区分化するステップを実行させるよう動作し、
前記第７の二分決定ダイアグラムのサイズの和は、前記第６の二分決定ダイアグラムのサイズより小さい、付記２２記載の記憶媒体。
（付記３３）
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記１又はそれ以上のコンピュータシステムに、
前記複数の第７の二分決定ダイアグラムを保存するステップを実行させるよう動作する、付記３２記載の記憶媒体。
（付記３４）
複数のコンピュータ読出可能な命令は、実行される場合、更に、前記１又はそれ以上のコンピュータシステムに、
前記第６の二分決定ダイアグラムを保存するステップを実行させるよう動作する、付記２２記載の記憶媒体。
（付記３５）
１又はそれ以上のコンピュータシステムによって実行される場合に、
複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる１つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも１度現れ、該検索クエリの夫々は前記ワードの１又はそれ以上を有するステップと、
複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる１つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも１つ含まれ、該検索結果の夫々は前記ウェブページの１又はそれ以上を有するステップと、
複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる１つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られるステップと、
前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成するステップと
を実行するよう動作し、
前記二分決定ダイアグラムは、
２進０終端ノードと、
２進１終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記０終端ノード又は前記１終端ノードのいずれかに至り、
各決定ノードは、２進フォーマットで前記クエリ識別子の１つ及び前記ページ識別子の１つでの２進値を表し、
前記１終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第１の１又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第２の１又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、ソフトウェアを具現する１又はそれ以上のコンピュータ読出可能な記憶媒体。
（付記３６）
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記１又はそれ以上のコンピュータシステムに、
前記ワードの１又はそれ以上を有する新たな検索クエリを受け取るステップと、
前記新たな検索クエリに含まれるワードを識別するワード識別子を結合することで前記新たな検索クエリについて新たなクエリ識別子を得るステップと、
前記二分決定ダイアグラムを検索するステップと、
前記１終端ノードに至る前記経路の夫々について、当該経路での検索クエリが前記新たな検索クエリに等しい場合は、当該経路での全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
前記新たな検索クエリに応答して前記検索結果を返すステップと
を実行させるよう動作する、付記３５記載の記憶媒体。
（付記３７）
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記１又はそれ以上のコンピュータシステムに、
第２の検索クエリと、該第２の検索クエリに応答して生成される第２の検索結果とを表す第２の二分決定ダイアグラムを構成し、前記第２の検索クエリは前記ワードの１又はそれ以上を有し、前記第２の検索結果は前記ウェブページの１又はそれ以上を有するステップと、
前記二分決定ダイアグラム及び前記第２の二分決定ダイアグラムに論理和演算を実行することで前記第２の二分決定ダイアグラムを前記二分決定ダイアグラムに加えるステップと
を実行させるよう動作する、付記３５記載の記憶媒体。
（付記３８）
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記１又はそれ以上のコンピュータシステムに、
前記検索クエリの１つと、該１つの検索クエリに応答して生成される前記検索結果の１つとを表す第３の二分決定ダイアグラムを無効にするステップと、
前記二分決定ダイアグラム及び前記無効にされた第３の二分決定ダイアグラムに論理積演算を実行することで前記第３の二分決定ダイアグラムを前記二分決定ダイアグラムから削除するステップと
を実行させるよう動作する、付記３５記載の記憶媒体。
（付記３９）
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記１又はそれ以上のコンピュータシステムに、
１又はそれ以上の二分決定ダイアグラム簡約規則により前記二分決定ダイアグラムを最大限に簡約化するステップを実行させるよう動作する、付記３５記載の記憶媒体。
（付記４０）
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記１又はそれ以上のコンピュータシステム、
前記二分決定ダイアグラムを複数の第４の二分決定ダイアグラムに区分化するステップを実行させるよう動作し、
前記第４の二分決定ダイアグラムのサイズの和は、前記二分決定ダイアグラムのサイズより小さい、付記３５記載の記憶媒体。
（付記４１）
複数のコンピュータ読出可能な命令は、実行される場合に、更に、前記１又はそれ以上のコンピュータシステムに、
前記複数の第４の二分決定ダイアグラムを保存するステップを実行させるよう動作する、付記４０記載の記憶媒体。
（付記４２）
複数のコンピュータ読出可能な命令は、実行される場合、更に、前記１又はそれ以上のコンピュータシステムに、
前記二分決定ダイアグラムを保存するステップを実行させるよう動作する、付記３５記載の記憶媒体。
（付記４３）
１又はそれ以上のプロセッサによって実行可能な命令を有するメモリと、
前記メモリへ結合され、前記命令を実行するよう動作する前記１又はそれ以上のプロセッサと
を有し、
前記１又はそれ以上のプロセッサは、前記命令を実行する場合に、
複数の第１の二分決定ダイアグラムを構成し、該第１の二分決定ダイアグラムの夫々は複数のワードの異なる１つを表し、該ワードの夫々は一意のワード識別子を有し、各第１の二分決定ダイアグラムは当該第１の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成されるステップと、
複数の第２の二分決定ダイアグラムを構成し、該第２の二分決定ダイアグラムの夫々は複数の検索クエリの異なる１つを表し、該検索クエリの夫々は前記ワードの１又はそれ以上を有し、各第２の二分決定ダイアグラムは当該第２の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第１の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
複数の第３の二分決定ダイアグラムを構成し、該第３の二分決定ダイアグラムの夫々は複数のウェブページの異なる１つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第３の二分決定ダイアグラムの夫々は当該第３の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成されるステップと、
複数の第４の二分決定ダイアグラムを構成し、該第４の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる１つを表し、該検索結果の夫々は前記ウェブページの１又はそれ以上を有し、各第４の二分決定ダイアグラムは当該第４の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第３の二分決定ダイアグラムに論理和演算を実行することによって構成されるステップと、
複数の第５の二分決定ダイアグラムを構成し、該第５の二分決定ダイアグラムの夫々は複数の検索タプルの異なる１つを表し、該検索タプルの夫々は前記検索クエリの異なる１つと、当該検索クエリに対応する検索結果の異なる１つとを有し、各第５の二分決定ダイアグラムは、当該第５の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第２の二分決定ダイアグラム及び第４の二分決定ダイアグラムに論理積演算を実行することによって構成されるステップと、
前記第５の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第６の二分決定ダイアグラムを構成するステップと
を実行するよう動作する、システム。
（付記４４）
前記第６の二分決定ダイアグラムは、
２進０終端ノードと、
２進１終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記０終端ノード又は前記１終端ノードのいずれかに至り、
前記１終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第１の１又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第２の１又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、付記４３記載のシステム。
（付記４５）
前記１又はそれ以上のプロセッサは、更に、前記命令を実行する場合、
前記ワードの１又はそれ以上を有する新たな検索クエリを受け取るステップと、
前記第６の二分決定ダイアグラムを検索するステップと、
前記１終端ノードに至る前記経路の夫々について、当該経路における検索クエリが前記新たな検索クエリに等しい場合は、当該経路における全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
前記新たな検索クエリに応答して前記検索結果を返すステップと
を実行するよう動作する、付記４４記載のシステム。
（付記４６）
前記第１の二分決定ダイアグラムの１つを構成するステップには、
２進フォーマットで当該１つの第１の二分決定ダイアグラムによって表されるワードのワード識別子を表すステップと、
複数の変数により前記ワード識別子において複数の２進値を表し、各変数は前記２進値の異なる１つを表すステップと、
複数の決定ノードとして前記変数により当該１つの第１の二分決定ダイアグラムを構成するステップと
が含まれる、付記４３記載のシステム。
（付記４７）
前記第２の二分決定ダイアグラムの１つを構成するステップには、当該１つの第２の二分決定ダイアグラムによって表される検索クエリに現れるワードの順序で、該検索クエリに含まれる該ワードを表す前記第１の二分決定ダイアグラムに論理積演算を実行するステップが含まれる、付記４３記載のシステム。
（付記４８）
前記第３の二分決定ダイアグラムの１つを構成するステップには、
２進フォーマットで当該１つの第３の二分決定ダイアグラムによって表されるウェブページのページ識別子を表すステップと、
複数の変数により前記ページ識別子において複数の２進値を表し、各変数は前記２進値の異なる１つを表すステップと、
複数の決定ノードとして前記変数により当該１つの第３の二分決定ダイアグラムを構成するステップと
が含まれる、付記４３記載のシステム。
（付記４９）
前記１又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、新たな検索タプルを表す新たな第５の二分決定ダイアグラム及び前記第６の二分決定ダイアグラムに論理和演算を実行することで、前記新たな第５の二分決定ダイアグラムを前記第６の二分決定ダイアグラムに加えるよう動作する、付記４３記載のシステム。
（付記５０）
前記１又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、
前記検索タプルの１つを表す前記第５の二分決定ダイアグラムの１つを前記第６の二分決定ダイアグラムから削除するステップを実行するよう動作し、
前記削除するステップは、
当該１つの第５の二分決定ダイアグラムを無効にするステップと、
前記第６の二分決定ダイアグラム及び前記無効にされた第５の二分決定ダイアグラムに論理積演算を実行するステップと
を有する、付記４３記載のシステム。
（付記５１）
前記１又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、１又はそれ以上の二分決定ダイアグラム簡約規則により前記第６の二分決定ダイアグラムを最大限に簡約化するよう動作する、付記４３記載のシステム。
（付記５２）
前記１又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、１又はそれ以上の二分決定ダイアグラム簡約規則により前記第４の二分決定ダイアグラムと、前記第５の二分決定ダイアグラムの夫々とを最大限に簡約化するよう動作する、付記４３記載のシステム。
（付記５３）
前記１又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、前記第６の二分決定ダイアグラムを複数の第７の二分決定ダイアグラムに区分化するよう動作し、
前記第７の二分決定ダイアグラムのサイズの和は、前記第６の二分決定ダイアグラムのサイズより小さい、付記４３記載のシステム。
（付記５４）
前記１又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、前記複数の第７の二分決定ダイアグラムを保存するよう動作する、付記５３記載のシステム。
（付記５５）
前記１又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、前記第６の二分決定ダイアグラムを保存するよう動作する、付記４３記載のシステム。
（付記５６）
１又はそれ以上のプロセッサによって実行可能な命令を有するメモリと、
前記メモリへ結合され、前記命令を実行するよう動作する前記１又はそれ以上のプロセッサと
を有し、
前記１又はそれ以上のプロセッサは、前記命令を実行する場合に、
複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる１つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも１度現れ、該検索クエリの夫々は前記ワードの１又はそれ以上を有するステップと、
複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる１つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも１つ含まれ、該検索結果の夫々は前記ウェブページの１又はそれ以上を有するステップと、
複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる１つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られるステップと、
前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成するステップと
を実行するよう動作し、
前記二分決定ダイアグラムは、
２進０終端ノードと、
２進１終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記０終端ノード又は前記１終端ノードのいずれかに至り、
各決定ノードは、２進フォーマットで前記クエリ識別子の１つ及び前記ページ識別子の１つでの２進値を表し、
前記１終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第１の１又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第２の１又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、システム。
（付記５７）
前記１又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、
前記ワードの１又はそれ以上を有する新たな検索クエリを受け取るステップと、
前記新たな検索クエリに含まれるワードを識別するワード識別子を結合することで前記新たな検索クエリについて新たなクエリ識別子を得るステップと、
前記二分決定ダイアグラムを検索するステップと、
前記１終端ノードに至る前記経路の夫々について、当該経路での検索クエリが前記新たな検索クエリに等しい場合は、当該経路での全てのウェブページを前記新たな検索クエリに係る検索結果に含めるステップと、
前記新たな検索クエリに応答して前記検索結果を返すステップと
を実行するよう動作する、付記５６記載のシステム。
（付記５８）
前記１又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、
第２の検索クエリと、該第２の検索クエリに応答して生成される第２の検索結果とを表す第２の二分決定ダイアグラムを構成し、前記第２の検索クエリは前記ワードの１又はそれ以上を有し、前記第２の検索結果は前記ウェブページの１又はそれ以上を有するステップと、
前記二分決定ダイアグラム及び前記第２の二分決定ダイアグラムに論理和演算を実行することで前記第２の二分決定ダイアグラムを前記二分決定ダイアグラムに加えるステップと
を実行するよう動作する、付記５６記載のシステム。
（付記５９）
前記１又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、
前記検索クエリの１つと、該１つの検索クエリに応答して生成される前記検索結果の１つとを表す第３の二分決定ダイアグラムを無効にするステップと、
前記二分決定ダイアグラム及び前記無効にされた第３の二分決定ダイアグラムに論理積演算を実行することで前記第３の二分決定ダイアグラムを前記二分決定ダイアグラムから削除するステップと
を実行するよう動作する、付記５６記載のシステム。
（付記６０）
前記１又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、１又はそれ以上の二分決定ダイアグラム簡約規則により前記二分決定ダイアグラムを最大限に簡約化するよう動作する、付記５６記載のシステム。
（付記６１）
前記１又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、前記二分決定ダイアグラムを複数の第４の二分決定ダイアグラムに区分化するよう動作し、
前記第４の二分決定ダイアグラムのサイズの和は、前記二分決定ダイアグラムのサイズより小さい、付記５６記載のシステム。
（付記６２）
前記１又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、前記複数の第４の二分決定ダイアグラムを保存するよう動作する、付記６１記載のシステム。
（付記６３）
前記１又はそれ以上のプロセッサは、更に、前記命令を実行する場合に、前記二分決定ダイアグラムを保存するよう動作する、付記５６記載のシステム。
（付記６４）
複数の第１の二分決定ダイアグラムを構成し、該第１の二分決定ダイアグラムの夫々は複数のワードの異なる１つを表し、該ワードの夫々は一意のワード識別子を有し、各第１の二分決定ダイアグラムは当該第１の二分決定ダイアグラムによって表されるワードのワード識別子に基づき構成される手段と、
複数の第２の二分決定ダイアグラムを構成し、該第２の二分決定ダイアグラムの夫々は複数の検索クエリの異なる１つを表し、該検索クエリの夫々は前記ワードの１又はそれ以上を有し、各第２の二分決定ダイアグラムは当該第２の二分決定ダイアグラムによって表される検索クエリに含まれるワードを表す第１の二分決定ダイアグラムに論理積演算を実行することによって構成される手段と、
複数の第３の二分決定ダイアグラムを構成し、該第３の二分決定ダイアグラムの夫々は複数のウェブページの異なる１つを表し、前記ウェブページの夫々は一意のページ識別子を有し、前記第３の二分決定ダイアグラムの夫々は当該第３の二分決定ダイアグラムによって表されるウェブページのページ識別子に基づき構成される手段と、
複数の第４の二分決定ダイアグラムを構成し、該第４の二分決定ダイアグラムの夫々は前記検索クエリに応答して生成される複数の検索結果の異なる１つを表し、該検索結果の夫々は前記ウェブページの１又はそれ以上を有し、各第４の二分決定ダイアグラムは当該第４の二分決定ダイアグラムによって表される検索結果に含まれるウェブページを表す第３の二分決定ダイアグラムに論理和演算を実行することによって構成される手段と、
前記１又はそれ以上のコンピュータシステムによって複数の第５の二分決定ダイアグラムを構成し、該第５の二分決定ダイアグラムの夫々は複数の検索タプルの異なる１つを表し、該検索タプルの夫々は前記検索クエリの異なる１つと、当該検索クエリに対応する検索結果の異なる１つとを有し、各第５の二分決定ダイアグラムは、当該第５の二分決定ダイアグラムによって表される検索タプルが有する検索クエリ及び検索結果を夫々表す第２の二分決定ダイアグラム及び第４の二分決定ダイアグラムに論理積演算を実行することによって構成される手段と、
前記１又はそれ以上のコンピュータシステムによって、前記第５の二分決定ダイアグラムに論理和演算を実行することで、前記検索クエリ及び前記検索結果を表す第６の二分決定ダイアグラムを構成する手段と
を有するシステム。
（付記６５）
複数のワード識別子を割り当て、該ワード識別子の夫々は複数のワードの異なる１つに割り当てられ、該ワードの夫々は複数の検索クエリに少なくとも１度現れ、該検索クエリの夫々は前記ワードの１又はそれ以上を有する手段と、
複数のページ識別子を割り当て、該ページ識別子の夫々は複数のウェブページの異なる１つに割り当てられ、該ウェブページの夫々は前記検索クエリに応答して生成される複数の検索結果に少なくとも１つ含まれ、該検索結果の夫々は前記ウェブページの１又はそれ以上を有する手段と、
複数のクエリ識別子を得、該クエリ識別子の夫々は前記検索クエリの異なる１つを識別し、前記クエリ識別子の夫々は、当該クエリ識別子によって識別される検索クエリに含まれるワードを識別するワード識別子を結合することによって得られる手段と、
前記１又はそれ以上のコンピュータシステムによって前記検索クエリ及び前記検索結果を表す二分決定ダイアグラムを構成する手段と
を有し、
前記二分決定ダイアグラムは、
２進０終端ノードと、
２進１終端ノードと、
複数の経路と
を有し、
各経路は、複数の決定ノードを有し、前記０終端ノード又は前記１終端ノードのいずれかに至り、
各決定ノードは、２進フォーマットで前記クエリ識別子の１つ及び前記ページ識別子の１つでの２進値を表し、
前記１終端ノードに至る前記経路の夫々について、当該経路における決定ノードの第１の１又はそれ以上のノードによって表されるウェブページは、当該経路における前記決定ノードの第２の１又はそれ以上のノードによって表される検索クエリに係る検索結果に含まれる、システム。
【符号の説明】
【０１１３】
２１０，２２０，２３０，２４０，３１０，３２０，４１０，４２０，４３０，４４０，４５０，４６０，５１０，５２０，６１０，６２０，６３０，７００，７５０  ＢＤＤ
９１０  ネットワーク環境
９１２  ネットワーク
９１４  クライアント
９１６  ウェブサーバ
９１８  アプリケーションサーバ
９２０  リンク
９２２  ウェブ検索エンジン
９２４  索引エンジン
９２６  決定ダイアグラムエンジン
９２８  ウェブ検索データ
１１００  コンピュータシステム
１１１２  プロセッサ
１１１４  キャッシュ
１１１６  メモリ
【図１】
2010055608.tif 000008
【図２Ａ】
2010055608.tif 000009
【図２Ｂ】
2010055608.tif 000010
【図２Ｃ】
2010055608.tif 000011
【図２Ｄ】
2010055608.tif 000012
【図３Ａ】
2010055608.tif 000013
【図３Ｂ】
2010055608.tif 000014
【図４Ａ】
2010055608.tif 000015
【図４Ｂ】
2010055608.tif 000016
【図４Ｃ】
2010055608.tif 000017
【図４Ｄ】
2010055608.tif 000018
【図４Ｅ】
2010055608.tif 000019
【図５Ａ】
2010055608.tif 000020
【図５Ｂ】
2010055608.tif 000021
【図６Ａ】
2010055608.tif 000022
【図６Ｂ】
2010055608.tif 000023
【図６Ｃ】
2010055608.tif 000024
【図７Ａ】
2010055608.tif 000025
【図７Ｂ】
2010055608.tif 000026
【図８Ａ】
2010055608.tif 000027
【図８Ｂ】
2010055608.tif 000028
【図９】
2010055608.tif 000029
【図１０】
2010055608.tif 000030
【図１０Ａ】
2010055608.tif 000031
【図１０Ｂ】
2010055608.tif 000032
【図１１】
2010055608.tif 000033
【外国語明細書】
2010055608000001.pdf