JP5194856B2 - コンパクトな決定図を用いた効率的インデックス付け - Google Patents

コンパクトな決定図を用いた効率的インデックス付け Download PDF

Info

Publication number
JP5194856B2
JP5194856B2 JP2008028072A JP2008028072A JP5194856B2 JP 5194856 B2 JP5194856 B2 JP 5194856B2 JP 2008028072 A JP2008028072 A JP 2008028072A JP 2008028072 A JP2008028072 A JP 2008028072A JP 5194856 B2 JP5194856 B2 JP 5194856B2
Authority
JP
Japan
Prior art keywords
bdd
list
node
keyword
computer
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.)
Expired - Fee Related
Application number
JP2008028072A
Other languages
English (en)
Other versions
JP2008192157A (ja
Inventor
ステルギオウ ステリオス
ジャイン ジャワハー
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
Priority claimed from US12/026,897 external-priority patent/US9405819B2/en
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2008192157A publication Critical patent/JP2008192157A/ja
Application granted granted Critical
Publication of JP5194856B2 publication Critical patent/JP5194856B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ワールドワイドウェブ中のウェブページ等のオブジェクトを検索するためのデータ構造に関する。
[関連出願]
この出願は、米国仮出願第60/899874号(2007年2月7日出願)の米国特許法第119条(e)の利益を主張するものである。
二分決定図(BDD)は、コンピュータサイエンスの多くの分野で有用であり、潜在的に様々なアプリケーションに使用できる。しかし、BDDはスペース爆発(space blowup)を起こすことが多い。スペース爆発を起こさなくても、BDDは多くのアプリケーションで大きくなりすぎるリスクが大きい。
図1は、コンパクトな決定図〔デシジョンダイアグラムを用いる効率的なインデクシング(indexing)システム10の一例を示す図である。システム10は、ネットワーク12を含み、このネットワーク12により、クライアント14と、ウェブサーバ16と、アプリケーションサーバ18とが相互に結合されている。一部の実施形態では、ネットワーク12は、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部、その他のネットワーク12、またはこれらの2つ以上の組合せである。本発明では、ネットワーク12は任意の適切なものでよい。リンク20により、クライアント14、ウェブサーバ16、アプリケーションサーバ18はネットワーク12に結合されている。一部の実施形態では、各リンク20は有線リンク、無線リンク、または光リンクを含む。一部の実施形態では、各リンク20は、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、LAN、WLAN、WAN、MAN、インターネットの一部、その他のリンク20、またはこれらの2つ以上の組合せである。本開示は、クライアント14、ウェブサーバ16、及びアプリケーションサーバ18をネットワーク12結合するリンク20は、適切なものであればいかなるものでもよい。
一部の実施形態では、クライアント14により、クライアント14のユーザはウェブサーバ16にあるウェブページにアクセスできる。限定としてではなく例として、クライアント14は、ウェブブラウザを有するコンピュータシステム(デスクトップコンピュータシステム、ノートブックコンピュータシステム、携帯電話等)であってもよい。クライアント14のユーザは、ウェブブラウザをウェブ16に向けるURL(Uniform Resource Locator)その他のアドレスを入力し、ウェブブラウザは、HTTP(Hyper Text Transfer Protocol)リクエストを生成し、そのHTTPリクエストをウェブサーバ16に送信する。ウェブサーバ16は、そのHTTPリクエストを受信し、そのHTTPリクエストに応じたHTML(Hyper Text Markup Language)文書を生成してクライアント14に送信する。ウェブサーバ16からのHTML文書はウェブページであり、クライアント14のウェブブラウザはそれをユーザに表示する。本開示では、ウェブページは適切なものであればいかなるものでもよい。限定ではなく例として、ウェブページはXML(Extensible Markup Language)文書またはXHTML(Extensible HyperText Markup Language)文書である。さらに、本開示では、オブジェクトは任意の適切なものでよく、ウェブサーバ16にあるウェブページには限定されない。限定ではなく例として、必要に応じて、本開示は、データベースサーバ、ファイルサーバ、ピアツーピアネットワーク、その他にある実行ファイル、ファイル(例えば、マイクロソフトワード文書やPDF文書)、その他のオブジェクトを想定している。一部の実施形態では、ウェブサーバ16には1つ以上のサーバが含まれる。本発明では、サーバ16は適切なものであればいかなるものでもよい。本発明では、クライアント14は適切なものであればいかなるものでもよい。限定ではなく例として、ウェブブラウザにウェブサーバ16にあるウェブページにアクセスさせるのに加えて、またはそれに替えて、クライアント14は、アプリケーションにデータベースサーバ、ファイルサーバ、ピアツーピアネットワークその他にあるオブジェクトにアクセスさせる。
クライアント14のユーザからの入力に応じて、クライアント14は、特定のキーワードを含むウェブページのクエリを生成して、そのクエリを適切なサーバ18に送信する。実施形態では、アプリケーションサーバ18は、クライアント14からのクエリを受信して応答するハードウェア、ソフトウェア、組み込みロジックコンポーネント、またはこれらの構成要素の組み合わせを含む。限定ではなく一例として、アプリケーションサーバ18は、具体的なキーワードを含むウェブページに対するクエリをクライアント14から受信し、そのクエリを受け付け、ウェブサーチエンジン22にアクセスしてそのクエリを実行し、そのクエリに応じてサーチ結果を生成する。次に、ウェブサーチエンジン22はクエリを実行し、サーチ結果を生成して返す。アプリケーションサーバ18はそのサーチ結果をクライアント14に送信し、ユーザに表示する。一部の実施形態では、アプリケーションサーバ18には1つ以上のサーバが含まれる。本発明のアプリケーションサーバ18は、適切なものであればいかなるものでもよい。限定ではなく一例として、アプリケーションサーバ18は、クライアント14のユーザがイントラネットやエクストラネット等の分散ネットワークにわたってオブジェクトを集中的にサーチできるアクセスポイントを提供するカタログサーバを含む。
実施形態では、ウェブサーチエンジン22は、クライアント14からのクエリに応じて、ウェブページを特定するサーチ結果を生成して返すハードウェア、ソフトウェア、組み込みロジックコンポーネント、またはこれらの構成要素の組み合わせを含む。本発明のウェブ検索エンジン22は適切なものであればいかなるものでもよい。限定ではなく一例として、ウェブサーチエンジン22は、BAIDU、GOOGLE、LIVE SEARCH、またはYAHOO! SEARCHである。実施形態では、クエリに応じてクエリを実行してサーチ結果を生成するため、ウェブサーチエンジン22はウェブサーチデータ28にアクセスする。限定ではなく一例として、ウェブサーチデータ28は、ウェブサーバ16にあるウェブページの転置インデックス〔逆索引(inverted indexes)を含む。各転置インデックスは、以下に説明するように、一意的なキーワードに対応するリストの集合を含む。以下に説明するように、インデックスエンジン24は転置インデックスを生成し、決定図エンジン26は転置インデックスのリストを表す決定図(コンパクトな決定図等)を生成する。決定図は、そのリストを圧縮して記憶や処理を容易にする。インデックスエンジン24、決定図エンジン26、またはその両方は共同で、(以下に説明するように)転置インデックスまたはそのリストを操作して、ウェブサーチエンジン22によるクエリの実行とサーチ結果の生成を容易にする。実施形態では、インデックスエンジン24は、転置インデックスを生成して処理するハードウェア、ソフトウェア、組み込みロジックコンポーネント、またはこれらの構成要素の組み合わせを含む。実施形態では、決定図エンジン26は、転置インデックスのリストを表しそのリストを処理するための決定図を生成するためのハードウェア、ソフトウェア、組み込みロジックコンポーネント、またはこれらの構成要素の組み合わせを含む。実施形態では、ウェブサーチエンジン22、インデックスエンジン24、決定図エンジン26はすべて論理的または物理的に互いに別々である。一部の実施形態では、ウェブサーチエンジン22とインデックスエンジン24は、機能的、論理的、または物理的に一体である。限定ではなく一例として、インデックスエンジン24は機能的、論理的、または物理的にウェブサーチエンジン22を含む。一部の実施形態では、インデックスエンジン24と決定図エンジン26は、機能的、論理的、または物理的に一体である。限定ではなく一例として、インデックスエンジン24は機能的、論理的、または物理的に決定図エンジン26を含む。本発明では、ウェブサーチエンジン22とインデックスエンジン24と決定図エンジン26間の機能的、論理的、または物理的な構成は、適切なものであればいかなるものでもよい。
一部の実施形態では、BDDはブール関数を表すルートを有する有向非巡回グラフ(rooted directed acyclic graph)(DAG)である。DAGは複数の決定ノード(ルートノードも決定ノードである)と2つの終点ノード、0−ターミナルと1−ターミナルを含む。終点ノードはブール関数の1と0を表す。各決定ノードは、サブ関数fを表し、ブーリアン変数vをラベルとして有し、子ノードに向けて1エッジと0エッジとが出ている。1エッジは関数v・fを表すサブBDDを指し、0エッジは関数
Figure 0005194856
を表すサブBDDを指す。言い換えると、1エッジはvに1を付与することを表し、0エッジはvに0を付与することを表す。2つのエッジは別のノードを指す。BDDのルートノードから1終点までの経路は、ブーリアン関数を1に設定する変数付与のセットを表す。BDDのルートノードから0終点までの経路は、ブーリアン関数を0に設定する変数付与のセットを表す。図2は、関数
Figure 0005194856
を表すBDDの一例を示す図である。一部の実施形態では、BDDは同型のサブグラフを含まず、BDDのルートノードから終点ノードまでの変数の順序はすべての経路で同じである。かかるBDDは縮小順序BDD(reduced ordered BDD)(ROBDD)である。ここで、場合に応じて、BDDと言ったときにはROBDDを含み、その逆の場合もある。さらに、場合に応じて、BDDと言ったときには区分順序二分決定図(partitioned ordered binary decision diagram)(POBDD)を含み、その逆の場合もある。一部の実施形態では、簡単のため、ノードの両方のエッジが同じノードを指す場合、そのノードはBDDに含めない。一部の実施形態では、ノードが負の直定値(negative literal)であるとき、そのノードはBDDに含めない。負の直定値を含まないBDDは、ゼロ抑制決定図(zero-suppressed decision diagram)(ZDD)である。ここで、場合に応じて、BDDと言ったときにはZDDを含み、その逆の場合もある。本発明の決定図は好適なものであればいかなるものでもよい。一部の実施形態では、決定図を用いたリスト(転置インデックスのリスト等)の表現には、そのリストの要素のブーリアン関数へのマッピングとその結果の決定図のディスクへの効率的な記憶が含まれる。
実施形態によりより効率的なBDDの記憶が容易になる。一部の実施形態では、より効率的なBDDの記憶により、中央処理装置(central processing unit)(CPU)のキャッシュはBDDのより多くのノードを記憶でき、CPUによるBDDの処理が容易になる。一部の実施形態により、BDDを表すグラフの各ノードが必要とするバイト数を削減でき、BDDのサイズを縮小できる。一部の実施形態により、BDDのノード数を削減することなく、そのBDDのサイズを削減することが容易になる。一部の実施形態により、BDDのサイズの低減が容易になるが、BDDを機能的な処理はしやすい。一部の実施形態により、モバイルタイプの消費者向けアプリケーション(かかるアプリケーションでは、データ圧縮が必要になる場合が多い)におけるBDDの使用が容易になる。
上記の通り、決定図エンジン26がBDDを生成する。一部の実施形態では、BDD(コンパクト決定図またはナノ決定図(ナノDD)でもよい)をコンパクトにするため、決定図エンジン26は、可変順序(variable ordering)を破棄し、ポインタにより指定された位置をポインタ値と親ノードの位置との両方に相関させる。一部の実施形態では、かかる条件下、32ノードを有するBDDの各子ノードに必要な最小限度の情報は、次の通りである:
変数ID:5ビット
0エッジネゲートフラグ:1ビット
THEN/ELSEポインタ:
Figure 0005194856
SはBDDのノード数を表す。可変IDはノードをラベル付けし、32個のノードのラベルには、25=32だから、少なくとも5ビットが必要である。THEN/ELSEポインタは子ノードを指す。一部の実施形態では、THENポインタは1エッジポインタであり、ELSEポインタは0エッジポインタである。一部の実施形態では、0エッジネゲートフラグ(0 edge negated flag)は、ゼロ抑制がノードをネゲートするかどうかを示す。決定図がZDDであるとき、ノード構造は0エッジネゲートフラグを含む必要はない。決定図エンジン26は、BDDの各ノードが必要とするバイト数を求める。一部の実施形態では、そのバイト数は
Figure 0005194856
である。一部の実施形態では、BDDのカスタマイズされたノード構造を仮定して、そのBDDを記憶する。一部の実施形態では、決定図エンジン26が生成するナノDDは、ゼロ抑制ナノ二分決定図(ナノZDD)(zero-suppressed nano binary decision diagrams)である。
一部の実施形態では、BDDをさらにコンパクトにするために、決定図エンジン26は、THEN/ELSEポインタのlog(S)ビットをドロップし、各ポインタの値とそれの親ノードの値(または位置)を、そのポインタが指す位置に相関させる。かかる条件の下、各ポインタに1乃至2バイトのみを割り当てることにより、ノードごとのメモリ必要量を削減する。一部の実施形態では、任意の適切な決定図はコンパクト化でき、決定図を記憶するために、その決定図が大きくなると、決定図エンジン26はテーブルの大きさを適当に変更する(そしてノードごとにより多くのビットを割り当てる)。しかし、決定図エンジン26は、コンパクト決定図として決定図の構成を開始する。一部の実施形態では、決定図エンジン26は、大きさを変えるのではなく、グラフ構成に直接的に分割・合成を行って、コンパクトな決定図を縮小してないダイアグラムに直接的に変換する。一部の実施形態では、コンパクトな決定図により並列プラットフォーム間の通信が容易になる。限定ではなく一例として、第1のプラットフォームは、決定図を生成し、第1のプラットフォームと並列に動作している第2のプラットフォームに送信するためにその決定図をコンパクト化して、そのコンパクト化した決定図を第2のプラットフォームに送信する。第2のプラットフォームは、そのコンパクト化した決定図から、第2のプラットフォームで処理する決定図を再構成してもよい。一部の実施形態では、ナノDDは、例えば、集積回路(IC)の合成やICの形式ベリフィケーション等の任意の適切なBDDのアプリケーションにおいて有用である。一部の実施形態では、ナノDDは任意の適切なBDD演算をサポートする。
一部の実施形態では、BDDを用いて、サーチエンジン(ウェブサーチエンジン22等)や同様のアプリケーションの転置インデックスを実施する。一部の実施形態では、BDDを用いて転置インデックスを実施することにより、転置インデックスをより効率的に記憶できる。一部の実施形態では、転置インデックスの望ましい操作性に悪い影響を与えずに、転置インデックスをより効率的に記憶できる。一部の実施形態では、BDDを用いて転置インデックスを実施することにより、転置インデックスの操作が容易になる。
上記のように、インデックスエンジン24は転置インデックスを生成する。一部の実施形態では、転置インデックスは、文書その他のオブジェクト(例えば、ワールドワイドウェブのウェブページなど)の集合に作用してキーワードを含むその文書の一部を特定するデータ構造である。限定ではなく一例として、キーワードは、ユーザがウェブサーチエンジンに送信したクエリを表す。一部の実施形態では、転置インデックスをリストの集合として記憶し、各リストは一意的なキーワードwに対応し、wを含む文書の数字識別子を含む。転置インデックスは、構成さえるにつれて非常に大きくなりがちであり、それは直ちに記憶容量とアクセス時間がかかることを意味する。一部の実施形態では、インデックスエンジン24、決定図エンジン26、またはその両方は、記憶のために転置インデックスのリストを圧縮し、必要に応じて、そのリストを素早く、増分を逆圧縮させる。
一部の実施形態では、素早く解凍できるようにリストを圧縮する効率的な方法は、γ符号に基づく。γ符号では、整数x>0は因数分解され、2+mとなる。ここで、
Figure 0005194856
xのコードは、単項式の(e+1)に2進数mを連続したものである。一例として、x=13の符号を計算する場合、e=3、m=5であり、x=2+5である。(e+1)の単項表示は1110であり、それゆえ、xのγ符号は1110101である。γ符号の利点は、xを表すのに正確に
Figure 0005194856
ビットを必要とし、xが平均的に比較的小さい時に、固定長2進数表現するよりも大幅な節約になる。
一部の実施形態では、リストに関してγ符号を次のように使用する。リストの要素を記憶し、隣接するエントリ間の対差異(pairwise differences)をγ符号化する。限定ではなく一例として、リスト[23,125,37,54,86,33]を圧縮すると、ソートされたリストと対差異のリストは次のようになる:
ソートされたリスト:[23,33,37,54,86,125]
対差異のリスト:[23,10,4,17,32,39]
それゆえ、γ符号化されるリストは、次のようになる:
[111100111,1110010,11000,111100001,11111000000,11111000111]
限定ではなく一例として、リスト[23,33,37,54]を考える。2進数では、リストの要素は[010111,100001,100101,110110]である。2進数に変換する場合、最小数の変数でリストを表すブーリアン関数を求めるため、各変数を各有効ビットウェイトに割り当てる。上記のリストに対応する関数は次の通りである:
Figure 0005194856
線形符号化する場合、別の表現を求めるため、各文書IDに別の変数を割り当てる。しかし、かかる表現は実際的ではないかも知れない。非常に多数の文書が関係してくるからである。さらに、単一のブーリアン関数で複数のリストを表せなければ、ノードの共有は不可能かも知れない。
進符号化の場合、リスト要素を2進数で表し、線形符号化と2進符号化を結合する。2個の変数を使用して、2進数の各桁をワン・ホットなやり方(in a one-hot manner)で表す。限定ではなく一例として、数54(4進法では312である)を符号化するには、各桁をワン・ホット符号化して、1000:0010:0100を得る。それゆえ、要素54は
Figure 0005194856
と符号化できる。変数の数が増えるので効率的ではないと思われるかも知れないが、これにより共有がより容易になりよりコンパクトな表現になる。特にZDDではそうである。ZDDでは、上記の通り負の直定値がより効率的に記憶されるからである。
各リストについて、対応するブーリアン関数を構成し、適切なBDDパッケージを用いてそのブーリアン関数のBDD(好ましくはZDDである。負の直定値をより効率的に記憶できるからである。)を構成する。nを変数の数とし、dをBDD中のノードの数とする。BDDの各ノードについて、ノードをラベリングする変数のインデックスとしては
Figure 0005194856
ビットあれば十分であり、その位置を特定するためには
Figure 0005194856
ビットあれば十分である。したがって、ナノDD中の各ノードは次のように構成できる:
Figure 0005194856
1つのナノDDノードには、ちょうど2s+sビットが必要である。ノードは、縦に並んだ順で(the order depth-first traversal would visit them)、かつ0エッジから1エッジの順でメモリまたはディスクに連続に記憶される。従って、ディスク上のナノDDから情報を追加的に抽出できる。終了ノードは明示的には記憶する必要はない。終了ノードには一定の「仮想的な」位置が割り当てられるからである。
ウェブページのインデックス(順次または逆向き)をコンパクト化する1つの方法は、ページIDとインデックス中のキーワードIDとを2進数に符号化し、各{page_ID,key_word_ID}を最小項としてそのインデックスを表す決定図に追加することを含む。かかる方法は、ウェブページを解析してインデックスするのが非常に遅い。ウェブページのインデックスをコンパクト化する他の1つの方法は、インデックス中のページIDを2進数に符号化して、インデックス中の各キーワードに対して別々の決定図を構成することを含む。かかる方法は、前の方法よりもインデックスのコンパクト化の程度が低いが、ずっと早い。ウェブページのインデックスをコンパクト化するさらに他の1つの方法は、インデックス中の各キーワードに対して決定図(そのキーワードを含むウェブページの集合を表す決定図)を構成して、すべての決定図間で共有するという考えを捨てることを含む。各決定図は、およそ数10から数1000のノードを含む。決定図のサイズは、構成するまで分からない。各ノードについて最小限必要な情報は次の通りである:
変数ID:5ビット
0エッジネゲートフラグ:1ビット
THEN/ELSEポインタ:
Figure 0005194856
Sは決定図のノード数を表す。各決定図について、決定図エンジン26は、その決定図の各ノードが必要とするバイト数を特定する。そのバイト数は
Figure 0005194856
である。あるいは、決定図がZDDであるとき、ノード構造は0エッジネゲートフラグを含む必要はない。決定図エンジン26は、各決定図を、その決定図のノード構成をカスタム化したものと仮定して、記憶する。かかる方法は、前出の2つの方法よりも大幅にインデックスをコンパクト化する。一部の実施形態では、決定図中の各キーワードについて、決定図エンジン26は、その決定図の(必要メモリに関する)サイズを、その決定図が表すリストの(必要メモリに関する)サイズとを比較して、2つのうち小さい方を記憶する。一部の実施形態では、転置インデックスのスペース効率を向上する。一部の実施形態では、サーチ結果の転置インデックスに対する複雑なブーリアン演算が容易になる。一部の実施形態では、圧縮が特に有用であることが多いモバイルアプリケーションにおいて、転置インデックスの実施が容易になる。
共役は、K個の有向リスト間での共通の演算である。結合はKウェイマージ(K-way merge)として実施してもよい。要素を同時に読み出し、リストの最初から開始して、すべての共通要素を検出するまでリストを進む。限定ではなく一例として、次の2つのリスト間で共通の要素を検出する:
Figure 0005194856
ポインタpはリスト1の要素を指し、ポインタpはリスト2の要素を指す。最初にpはリスト1の10を指し、pはリスト2の16を指す。pが指す要素はpが指す要素よりも小さいので、pはリスト1の次の要素20に進む。ここで、pが指す要素はpが指す要素よりも小さいので、pはリスト2の次の要素18に進む。18は20より小さいので、pはリスト2の23に進む。pはリスト1の23に進む。ポインタpとpはここで最初の共通要素を指しており、その最初の共通要素すなわち23が出力される。次にpはリスト1の36に進み、pはリスト2の47に進む。ここで、ポインタpが指す要素はポインタpが指す要素より小さいので、pはリスト1の47に進む。ポインタpとpは第2の共通要素を指しており、その第2の共通要素すなわち47が出力される。ポインタpはリスト2の終わりについたので、これ以上共通要素はないので、終了する。
リストを横断する基本的な操作はget_next_element(L)である。ナノDDの場合、一部の実施形態では、操作get_next_element_greq(L,element)を効率的に実施し、リストLの次の要素であってelement以上のものを検出する。get_next_element_greq(L,element)を実施するために、一部の実施形態では、ナノDDの変数割り当て配列Aを維持し、そのナノDDを横断している間、その配列を更新する。ナノDDに記憶されている第1の要素を求めるために、そのナノDDのルートから始めて縦断する。この操作は、まず0エッジを進み、ナノDDの1終点に到達するまで進む。各ノードについて、ノードの変数IDと、そのノードに行くエッジのIDとを監視する。この操作により、最初に、ナノDDのルートから1終点に至る経路中に現れない変数に、値0を割り当てる。
一部の実施形態では、インデックスエンジン24または決定図エンジン26がget_next_element_greq(L,element)をコールする時、elementの2進表現を配列Aと比較して、ルートからの共通変数割り当ての数を検出する。最初から(または、共通の割り当てがない場合、ルートから)第1の共通でない変数に到達するまで引き返し、elementによる残りの割り当てに従ってナノDDを横断する。限定ではなく一例として、図2に示した決定図に対するget_next_element_greq(L,element)の操作を考える。上記の通り、図2に示した決定図は関数
Figure 0005194856
を表す。それゆえ、決定図はリスト[8,11,12,15]を符号化する。図3は、符号化されたリストの第1の要素を求める決定図の横断例を示している。この横断(traversal)による変数割り当ては(x,x,x,x)=(1,0,0,0)であり、リストの最初の要素8となる。リストの次の要素にアクセスするため、get_next_element_greq(L,9)により8より大きい次の要素をサーチする。次に、((1,0,0,0)と(1,0,0,1)間の最初の3つの変数割り当てが同じなので)変数x3に引き返し、図4に示した経路に沿って続ける。横断からの変数割り当ては(1,0,1,1)であり、11になる。同様に、このリスト中の残りの要素を求める。
一部の実施形態では、上記のようにサーチに決定図を使用することにより、スキップする要素がなくてもよいとき、リスト中の要素をスキップできる。限定ではなく一例として、リスト[8,11,12,15]と[7,13,15]の結合を考える。両方のリストの最初の要素を求める。8は7より大きいので、第2のリストをサーチして次の要素で8以上のものを探し、13を得る。次に、第1のリストにget_next_element_greq(L,13)を実行する。(1,1,0,1)(2進法で13)のみが第1の変数が(1,0,0,0)(2進法で8)と共通であることを検出する。次に、変数x1に直接引き返し、要求された割り当て(1,1,0,1)と一致するナノDDを横断し、結局(1,1,1,1)で終わる。
本発明は、ここに説明した実施形態に対する、当業者が想到するだろうすべての変更、置換、変形、代替、修正を含むものである。同様に、適切な場合には、特許請求の範囲は、ここに説明した実施形態に対する、当業者が想到するだろうすべての変更、置換、変形、代替、修正を含むものである。
コンパクトな決定図を用いる効率的なインデクシングシステムの一例を示す図である。 BDDの一例を示す図である。 BDDの横断例を示す図である。 BDDの横断の他の例を示す図である。

Claims (12)

  1. コンピュータを用いて、キーワードを含む検索可能オブジェクトの集合転置インデックスを保存する方法であって、
    前記コンピュータが有するプロセッサが、前記コンピュータが有するメモリに格納された、キーワードを含む検索可能なオブジェクトの集合の転置インデックスにアクセスし、前記転置インデックスは複数のリストを有し、各リストは特定のキーワードと対応し、前記特定のキーワードを含むオブジェクトの部分集合を示し
    前記プロセッサが、前記リストの二分決定図(BDD)であって、前記リストの前記特定のキーワードに対応し、前記リストの前記特定のキーワードを含む前記検索可能なオブジェクトの集合を表すBDDを生成
    前記プロセッサが、前記BDDをリストとする転置インデックスを前記メモリに保存し、
    前記複数のリストについて生成された複数のBDDのうち少なくとも一つは別個に記憶され、他のBDDと異なることができるカスタム化されたノード構成を有する、
    方法。
  2. BDDの記憶は、その各ノードについて、変数ID、0エッジネゲートフラグ、及びTHEN/ELSEポインタのみを、前記BDDのサイズに対して最小ビット数を用いて記憶することを含む、
    請求項1に記載の方法。
  3. コンピュータが二分決定図(BDD)として保存されたリストの要素を決定する方法であって、
    前記コンピュータが有するプロセッサが、前記コンピュータが有するメモリに格納された、キーワードを含む検索可能なオブジェクトの集合転置インデックスのリストであって、特定のキーワードに対応し、前記特定のキーワードを含むオブジェクトの部分集合を特定するリストを表す二分決定図(BDD)にアクセスし前記BDDの各決定ノードが前記リストの前記特定のキーワードを含む前記検索可能なオブジェクトの集合に属するオブジェクトを表
    前記プロセッサが、前記リストの要素を
    前記BDDの決定ノードの0エッジを先にたどりつつ、前記BDDの終了ノード1まで、1つ以上の経路に沿って前記BDDを深さ優先で縦断
    縦断した各経路に応じて前記リストの要素の変数配列に値のセットを割り当てることにより、決定手段によって決定し、
    前記転置インデックスは複数のリストを有し、各リストを表すBDDのうち少なくとも一つは別個に記憶され、他のBDDと異なることができるカスタム化されたノード構成を有する、
    方法。
  4. 前記リストの第1の要素の決定は、
    前記BDDの決定ノードの0エッジを先にたどりつつ、前記BDDのルートノードから前記BDDの終了ノード1まで、第1の経路に沿って前記BDDを深さ優先で縦断する段階と、
    前記第1の経路に1エッジを有する前記BDDの決定ノードに対応する前記配列中の各変数に1を割り当て、前記第1の経路に0エッジを有する前記BDDの決定ノードに対応するか、前記BDDから除外された決定ノードに対応する前記配列中の各変数に0を割り当てる段階とを含む
    請求項に記載の方法。
  5. 前記プロセッサがさらに、前記リストの決定された要素を用いて、前記リストと前記転置インデックスの他のリストとの間の結合を計算手段によって計算する段階を実行する、
    請求項に記載の方法。
  6. コンピュータが有するプロセッサに
    前記コンピュータが有するメモリに格納された、キーワードを含む検索可能オブジェクトの集合転置インデックスにアクセスする段階であって、前記転置インデックスは複数のリストを有し、各リストは特定のキーワードに対し、前記特定のキーワードを含むオブジェクトの部分集合を示す段階と、
    前記リストの二分決定図(BDD)であって、前記リストの前記特定のキーワードに対応し、前記BDDの各決定ノードが前記リストの前記特定のキーワードを含む前記検索可能なオブジェクトの集合に属するオブジェクトを表すBDDを、生成手段によって生成する段階と、
    前記BDDをリストとして前記メモリに保存する段階とを実行させるためのプログラムを記録したコンピュータ読み取り可能媒体であって、
    前記複数のリストについて生成された複数のBDDのうち少なくとも一つは別個に記憶され、他のBDDと異なることができるカスタム化されたノード構成を有する、
    コンピュータ読み取り可能媒体
  7. BDDの記憶は、その各ノードについて、変数ID、0エッジネゲートフラグ、及びTHEN/ELSEポインタのみを、前記BDDのサイズに対して最小ビット数を用いて記憶することを含む、
    請求項に記載のコンピュータ読み取り可能媒体。
  8. コンピュータが有するプロセッサに
    前記コンピュータが有するメモリに格納された、キーワードを含む検索可能なオブジェクトの集合転置インデックスのリストであって、特定のキーワードに対応し、前記特定のキーワードを含むオブジェクトの部分集合を特定するリストを表す二分決定図(BDD)にアクセスする段階であって、前記BDDの各決定ノードが前記リストの前記特定のキーワードを含む前記検索可能なオブジェクトの集合に属するオブジェクトを表す段階と、
    前記リストの要素を、
    前記BDDの決定ノードの0エッジを先にたどりつつ、前記BDDの終了ノード1まで、1つ以上の経路に沿って前記BDDを深さ優先で縦断
    縦断した各経路に応じて前記リストの要素の変数配列に値のセットを割り当てることにより、決定手段によって決定する段階とを実行させるためのプログラムを記録したコンピュータ読み取り可能媒体であって、
    前記転置インデックスは複数のリストを有し、各リストを表すBDDのうち少なくとも一つは別個に記憶され、他のBDDと異なることができるカスタム化されたノード構成を有する、
    コンピュータ読み取り可能媒体。
  9. 前記リストの第1の要素の決定は、
    前記BDDの決定ノードの0エッジを先にたどりつつ、前記BDDのルートノードから前記BDDの終了ノード1まで、第1の経路に沿って前記BDDを深さ優先で縦断する段階と、
    前記第1の経路に1エッジを有する前記BDDの決定ノードに対応する前記配列中の各変数に1を割り当て、前記第1の経路に0エッジを有する前記BDDの決定ノードに対応するか、前記BDDから除外された決定ノードに対応する前記配列中の各変数に0を割り当てる段階とを含む
    請求項に記載のコンピュータ読み取り可能媒体。
  10. 前記プログラムはさらに、前記プロセッサに前記リストの決定された要素を用いて、前記リストと前記転置インデックスの他のリストとの間の結合を計算する段階を実行させるものである
    請求項に記載のコンピュータ読み取り可能媒体。
  11. キーワードを含む検索可能なオブジェクトの集合の転置インデックスを保存するシステムであって、
    キーワードを含む検索可能オブジェクトの集合転置インデックスにアクセスする手段であって、前記転置インデックスは複数のリストを有し、各リストは特定のキーワードに対し、前記特定のキーワードを含むオブジェクトの特定の部分集合を示す手段と、
    前記リストの二分決定図(BDD)であって、前記リストの前記特定のキーワードに対応し、前記BDDの各決定ノードが前記リストの前記特定のキーワードを含む前記検索可能なオブジェクトの集合に属するオブジェクトを表すBDDを、生成手段によって生成する手段と、
    前記BDDをリストとしてメモリに保存手段とを有しており、
    前記複数のリストについて生成された複数のBDDのうち少なくとも一つは別個に記憶され、他のBDDと異なることができるカスタム化されたノード構成を有する、
    システム。
  12. 二分決定図(BDD)として保存されたリストの要素を決定するシステムであって、
    キーワードを含む検索可能なオブジェクトの集合転置インデックスのリストであって、特定のキーワードに対応し、前記特定のキーワードを含むオブジェクトの部分集合を特定するリストを表す二分決定図(BDD)にアクセスする手段であって、前記BDDの各決定ノードが前記リストの前記特定のキーワードを含む前記検索可能なオブジェクトの集合に属するオブジェクトを表す手段と、
    前記リストの要素を、
    前記BDDの決定ノードの0エッジを先にたどりつつ、前記BDDの終了ノード1まで、1つ以上の経路に沿って前記BDDを縦断
    縦断した各経路に応じて前記リストの要素の変数配列に値のセットを割り当てることにより、決定手段によって決定する手段とを有しており、
    前記転置インデックスは複数のリストを有し、各リストを表すBDDのうち少なくとも一つは別個に記憶され、他のBDDと異なることができるカスタム化されたノード構成を有する、
    システム。
JP2008028072A 2007-02-07 2008-02-07 コンパクトな決定図を用いた効率的インデックス付け Expired - Fee Related JP5194856B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US89987407P 2007-02-07 2007-02-07
US60/899,874 2007-02-07
US12/026,897 2008-02-06
US12/026,897 US9405819B2 (en) 2007-02-07 2008-02-06 Efficient indexing using compact decision diagrams

Publications (2)

Publication Number Publication Date
JP2008192157A JP2008192157A (ja) 2008-08-21
JP5194856B2 true JP5194856B2 (ja) 2013-05-08

Family

ID=39752146

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008028072A Expired - Fee Related JP5194856B2 (ja) 2007-02-07 2008-02-07 コンパクトな決定図を用いた効率的インデックス付け

Country Status (1)

Country Link
JP (1) JP5194856B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8190594B2 (en) * 2008-06-09 2012-05-29 Brightedge Technologies, Inc. Collecting and scoring online references
US8554696B2 (en) * 2009-02-13 2013-10-08 Fujitsu Limited Efficient computation of ontology affinity matrices
CN101572607B (zh) 2009-06-12 2011-11-09 阿里巴巴集团控股有限公司 一种社会化网络中处理认证请求消息的方法及装置
CN101572614B (zh) 2009-06-12 2013-12-04 阿里巴巴集团控股有限公司 一种社会化网络中处理认证请求消息的方法及装置
US8495038B2 (en) * 2010-08-17 2013-07-23 Fujitsu Limited Validating sensor data represented by characteristic functions

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2985922B2 (ja) * 1992-10-28 1999-12-06 日本電信電話株式会社 論理関数データ処理装置
JPH07262174A (ja) * 1994-03-22 1995-10-13 Nippon Telegr & Teleph Corp <Ntt> 算術式データ処理装置
JPH0844542A (ja) * 1994-07-28 1996-02-16 Hitachi Ltd 論理演算処理方法
JPH08329129A (ja) * 1995-06-02 1996-12-13 Internatl Business Mach Corp <Ibm> 集積システムの増分機能的検証方法
JP4230710B2 (ja) * 2002-03-19 2009-02-25 株式会社ジャストシステム 検索装置、検索方法、ならびに、プログラム
JP2005004560A (ja) * 2003-06-13 2005-01-06 Fujitsu Ltd インバーテッドファイル作成方法
US7451375B2 (en) * 2003-11-20 2008-11-11 Fujitsu Limited Directed falsification of a circuit

Also Published As

Publication number Publication date
JP2008192157A (ja) 2008-08-21

Similar Documents

Publication Publication Date Title
US9405819B2 (en) Efficient indexing using compact decision diagrams
JP6006267B2 (ja) 索引キーを使用して検索を絞込むシステムおよび方法
US6701317B1 (en) Web page connectivity server construction
US8171029B2 (en) Automatic generation of ontologies using word affinities
US20160055191A1 (en) Executing constant time relational queries against structured and semi-structured data
US20090299978A1 (en) Systems and methods for keyword and dynamic url search engine optimization
JP2006107446A (ja) ネットワーク・ドキュメントのバッチ索引付けのためのシステムおよび方法
WO2005036403A1 (en) Database management system, data structure generating method for database management system, and storage medium therefor
JP2013196435A (ja) 検索装置、検索方法およびプログラム
JP5194856B2 (ja) コンパクトな決定図を用いた効率的インデックス付け
TW202147787A (zh) 利用主要資料的局部性來有效率檢索已使用主要資料篩而被無損地縮減的資料
TW201415254A (zh) 語意標註建議方法及其系統
US8140546B2 (en) Computer system for performing aggregation of tree-structured data, and method and computer program product therefor
JP6726690B2 (ja) 基本データシーブを用いて無損失削減されたデータに対する多次元検索、コンテンツ連想的な取出し、ならびにキーワードベースの検索および取出しの実行
JP5224537B2 (ja) 局所性検知可能ハッシュの構築装置、類似近傍検索処理装置及びプログラム
Ottaviano et al. Semi-indexing semi-structured data in tiny space
Jekovec et al. Parallel query in the suffix tree
KR100660028B1 (ko) 데이터베이스 개념 구조에 기반한 xml 트리의 색인 및질의 방법
JP6291435B2 (ja) プログラムおよびクラスタシステム
Ávila et al. W-tree: A compact external memory representation for webgraphs
CN111241241B (zh) 基于知识图谱的案件检索方法、装置、设备及存储介质
CN113536040B (zh) 信息查询方法、装置以及存储介质
JP2988304B2 (ja) 文字列管理装置
Junxiu The demonstration of cloud retrieval system mode
KR100396915B1 (ko) 인터넷에서 시그너처 파일 기법을 이용한 분산 정보 검색시스템의 구축 방법 및 이를 이용한 검색 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100917

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121009

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121210

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: 20130108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130121

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees