(58)【調査した分野】(Int.Cl.,DB名)
アソシエーティブメモリ(402、1528)は、前記入力デバイス(414)が前記第1のクエリ(102)または比較リクエスト(416)を受け取ることに応じて、前記第2のクエリ(102)または前記比較リクエストを開始する、請求項1に記載のシステム(400)。
前記第1の結果のリスト(424)は、前記第1のクエリ(102)および前記比較リクエスト(416)のパースペクティブ(436)に等しい結果のカテゴリ(434)を有する、請求項1に記載のシステム(400)。
前記アソシエーティブメモリ(402、1528)は、前記第1のリストをユーザー(438)に対して提示することを回避するようにさらに構成されている、請求項1に記載のシステム(400)。
前記アソシエーティブメモリ(402、1528)が、前記表示デバイス(442)に、第1のクエリ(102)または比較リクエスト(416)のターム(422)に一致する属性値(420)をさらに表示させ、さらに前記ソースデータ(430)からのテキストの一部分(444)を表示させるようにさらに構成されている、請求項7に記載のシステム(400)。
前記第1の結果のリスト(424)は、前記クエリ(102)および前記比較リクエスト(416)の少なくとも1つのパースペクティブ(436)に等しい結果のカテゴリ(434)を有する、請求項10に記載の方法。
【発明を実施するための形態】
【0010】
例示的な実施形態により幾つかの有用な機能が提供される。例えば、例示的な実施形態により、アソシエーティブメモリは、類似のエンティティの属性値を一致させることにより、クエリまたは比較リクエストに対して結果を定式化しうることが認識され、かつ考慮される。集計のために、結果は、クエリまたは比較リクエスト内に含まれる一または複数のタームと直接一致する属性値を含む。
【0011】
それにも関わらず、例示的な実施形態により、結果は、ユーザーの元の意図に関して、依然として文脈から外れうることがさらに認識され、かつ考慮される。例えば、“高い階級の補佐官”のクエリの結果が“補佐官”に一致したと仮定する。ユーザーは、一致が生じた元のソースを実際に調査しなければ、この一致の周辺の文脈を知ることはない。例えば、一致する属性値である“補佐官”は、“彼は高い階級の補佐官ではなかった”などのソースデータ内のフレーズの中にあった可能性がある。クエリの後に返された結果は、このソースデータを含むが、この結果は、ユーザーの元の意図に沿わない。例示的な実施形態により、ユーザーが、返された結果が文脈に沿っていてユーザーの意図を反映していることを確実にする補助となる機構が提供される。
【0012】
例示的な実施形態により、インターネットの検索エンジンまたは場合によっては従来のリレーショナルデータベースのクエリを使用した従来の検索とは異なり、アソシエーティブメモリにより返された結果の間で暗黙の関連性が存在することがさらに認識され、かつ考慮される。したがって、各々の結果のエンティティに関連して一致するクエリタームの文脈を理解することは、重要とみなされうる。例えば、複数の結果が同一のエンティティを形成することができる。
【0013】
換言すれば、アソシエーティブメモリのクエリの結果は、一または複数のエンティティとしてユーザーに返されうる。従来の検索結果と異なり、エンティティ自体があいまいでありうる。例えば、ある一つのエンティティは、ワシントン州シアトル市からテキサス州ダラス市へのフライトでありうる。このエンティティの属性は、距離または乗客の数などのように構造化されることが可能であり、または有形であることが可能である。また、このエンティティの属性は、騒々しいまたは悪気流があるなどのように構造化されないことが可能であり、または無形であることが可能である。属性値は、一致とみなされるために、クエリタームと等しくならなければならないタームである。これらのように結果の正しい文脈を取得することには、多くの課題が提示される。
【0014】
例示的な実施形態により、この動的構造のために、クエリタームは、結果に対して不明瞭な関係性を有しうることがさらに認識され、かつ考慮される。例えば、エンティティの結果が“アルファ、ベータ、ガンマ”という検索タームを有すると仮定する。各々のタームは、別々のリソース内にあることができ、その全てが同一のエンティティを指し示す。したがって、これらのタームを含む同一のエンティティに対して複数のエンティティ結果がありうる。一方で、この例では、単一のリソース自体がこれら3つの検索タームすべてを含む可能性は非常に低い。別々の文脈で見たとき、これらのターム一つ一つの周辺でいくらかの混乱が生じうる。例えば、“アルファ”と“ベータ”はよくある名前だが、“ガンマ”は珍しいと見られる場合を考えてみる。“アルファ”と“ベータ”に関する結果に混乱が生じうる。
【0015】
さらに、単一のリソースが複数の関連したエンティティを含むことができる。例えば、“会社A,会社B、および会社Cは高い技術をもった会社である”というリソースは、3つのエンティティ、すなわち、会社A、B、およびCに対する関連付けを含む。従来の認識でリソースの文脈を考えると、リソース自体にのみ関心をもつことがありうる。しかしながら、アソシエーティブメモリを使用するとき、各々のエンティティ結果がリソースの文脈に関連するため、通常、各々のエンティティ結果は考慮される。この場合、文脈には、3つのエンティティすべてが高い技術をもった会社であるという観測が込められている。
【0016】
例示的な実施形態により、文脈の観点から、正しいリソースとともにその対応する結果を特定することは、ユーザーにとって重要でありうることがさらに認識され、かつ考慮される。データが、従来の検索のように必ずしもカテゴリによってではなく、関連付けによって編成されている可能性があるため、アソシエーティブメモリのクエリの結果は、あるユーザーにとって、見た目よりも複雑でありうる。例示的な実施形態により、ユーザーに対してクエリの結果の文脈を提供することによって、および/またはユーザーに対して文脈に沿った結果のみを返すことによって、この複雑な問題に対処する解決が提供される。
【0017】
本明細書において使用される用語“アソシエーティブメモリ”は、複数のデータおよび複数のデータ間の複数の関連付けを指す。複数のデータおよび複数の関連付けは、コンピュータで読込可能な非一時的記憶媒体に格納されうる。複数のデータは、関連グループにまとめられうる。アソシエーティブメモリは、複数のデータ間の直接的な相関に加えて、複数のデータ間の少なくとも間接的関係に基づいてクエリされるように構成されうる。したがって、アソシエーティブメモリは、直接的関係のみに基づいて、間接的関係のみに基づいて、ならびに直接的関係および間接的関係の組み合わせに基づいてクエリされるように構成されうる。
【0018】
上述のように、アソシエーティブメモリは、複数のデータおよび複数のデータ間の複数の関連付けと特徴づけることができる。複数のデータは、関連グループにまとめられうる。さらに、アソシエーティブメモリは、直接的関係と間接的関係とを含むグループから、または複数のデータ間の直接的な相関に加えて複数のデータ間から、選択された、少なくとも一つの関係性に基づいてクエリされるように構成されうる。アソシエーティブメモリは、ソフトウェアの形態をさらにとりうる。したがって、アソシエーティブメモリは、直接的な相関ではなく、関係性に基づいて新たな知見を得るために、関連グループに情報がまとめられるプロセスと考えることができる。アソシエーティブメモリは、専門プロセッサまたはフィールドプログラマブルゲートアレイなどのハードウェアの形態をさらにとりうる。
【0019】
本明細書において使用される用語“エンティティ”は、はっきり区別される別々の存在であるオブジェクトを指し、このような存在は物質的なものである必要はない。したがって、抽象概念および法的構成概念もエンティティとみなされうる。本明細書で使用される場合、エンティティは生物である必要はない。
【0020】
本明細書において使用される用語“エンティティ比較”または“比較リクエスト”は、別途特定されない限り、アソシエーティブメモリの一態様のみを指す。“エンティティ比較”または“比較リクエスト”は、アソシエーティブメモリに格納された一または複数の第1のエンティティの属性と、アソシエーティブメモリに格納された一または複数の第2のエンティティの属性との間の類似性を特定するために使用される。
【0021】
図1は、例示的一実施形態による、アソシエーティブメモリの検索またはクエリの結果が、ユーザーによって元々意図されたものと同一の文脈にあるかどうかを判定するプロセスを示す図である。
図1に示したプロセス100は、
図4のアソシエーティブメモリ402または
図15のアソシエーティブメモリ1528などのアソシエーティブメモリを使用して実装されうる。
【0022】
既に示したように、例示的な実施形態により、ユーザーに対して、アソシエーティブメモリへのクエリの結果がユーザーの元々の意図と同一の文脈にあるかどうかを判定する能力が提供される。
図1に示した概要例では、クエリ102は、エンティティ106を含むドメイン104内のアソシエーティブメモリにより成り立っている。
【0023】
アソシエーティブメモリは、結果108を返しうる。例示的な実施形態では、アソシエーティブメモリは、ユーザーに対して、文脈に沿った結果110と、文脈から外れた結果112および文脈から外れた結果114との両方を表示されるようにすることができる。別の例示的な実施形態では、アソシエーティブメモリは、ユーザーに対して、文脈に沿った結果110のみが表示されるようにすることができる。さらに別の例示的な実施形態では、いずれかのタイプの結果の幾つかが任意の組み合わせで表示されうる。また別の例示的な実施形態では、文脈から外れた結果のみが表示されうる。
【0024】
図2は、例示的な一実施形態による、任意の文脈が欠如するアソシエーティブメモリの検索またはクエリの結果を示す図である。プロセス200は、
図1のクエリ102の一例でありうる。結果202は、
図1の結果108の一例でありうる。結果202の幾つかは、文脈から外れた結果112および文脈から外れた結果114などのように、文脈から外れうる。
【0025】
上述のように、アソシエーティブメモリは、類似のエンティティの属性値を一致させることにより、その結果を定式化しうる。集計のために、結果は、クエリ内に含まれる一または複数のタームと直接一致する属性値を含む。
【0026】
それにも関わらず、結果は、ユーザーの元の意図に関して、依然として文脈から外れることがある。例えば、“高い階級の補佐官”のクエリ200の結果が“補佐官”と一致したと仮定する。一致が生じた元のソースを実際に調査しなければ、この一致の周辺の文脈を知る方法は存在しない。したがって、元のソースの調査という時間のかかる活動がなければ、リソースとその対応するエンティティの結果との間の関連性を確認することは困難であるため、一致の周辺の文脈を知ることは困難である。例えば、一致する属性値である“補佐官”は、“彼は高い階級の補佐官ではなかった”などのフレーズの中にあったかもしれない。この場合、返された結果は、ユーザーの元々の意図に沿わない。さらに、アソシエーティブメモリ内の元のソースを調査することは、アソシエーティブメモリと結果のエンティティとの関連性のため、困難な場合がある。
【0027】
さらに、ユーザーは、何らかの区別が提供されなければ、どの結果が文脈に沿っており、どの結果が文脈から外れているかを知ることはない。例えば、結果204は文脈204に沿っていて、結果206は文脈から外れている可能性があるが、ユーザーが所与の結果に対応する元のソースデータを調査するまでは、ユーザーには違いがわからない。この状況は、ある時においては、ユーザーにとって望ましくないと考えられうる。
【0028】
問題の一つは、検索の結果が互いに暗黙の関連性をもたない従来の検索とは異なり、アソシエーティブメモリを使用する検索では、実際に互いに関連する結果を生成することが可能であり、かつ通常生成する。別の問題は、複数の結果が同一のエンティティのものでありうることである。この問題は、
図3に関連して説明される。
【0029】
図3は、例示的な一実施形態による、結果が複数のリソースからのものであり、複数のエンティティが同一の結果を共有する、アソシエーティブメモリの検索またはクエリの結果を示す図である。結果300は、
図2の結果200でありうる。したがって、
図3は、
図2の付加的詳細を示している。
【0030】
図2および
図3の両方に関連して、結果がエンティティとして返されるため、結果は、元のクエリタームに対してあいまいなつながりを有する傾向がある。この関連性をさらに複雑にするのは、結果内のエンティティの動的構造である。
【0031】
エンティティの構造は、従来の検索では通常見つからない追加のレイヤーを提供するリソースに由来する。結果として、複数のリソース間の、複数の場所で一致が生じることができ、その全てが一つのエンティティの結果に対応する。この第1の特徴はボックス“1”302に示され、ボックス“1”302は、単一のエンティティ、すなわちエンティティ308について、リソース#1 304およびリソース#2 306が検索タームに対する一致を含むことを示す。
【0032】
加えて、複数のエンティティの結果は、同一の所望の一または複数のクエリタームを含む単一のリソースを共有することができる。この第2の特徴はボックス“2”310に示され、ボックス“2”310は、用語“補佐官”が、返されたエンティティの結果の各々の内にあり、および用語“補佐官”がリソース#3 312からくるものであることを示す。
【0033】
上述の第1の特徴および第2の特徴のいずれかまたは両方の存在は、特に個別の結果の特定の文脈に関して、ユーザーに混乱をもらしうる。したがって、本明細書に記載されている例示的な実施形態の前に、クエリに関係なく、結果がユーザーの意図に常に関連することを保証する方法はなかった。この問題は、データが、従来のデータベースのように必ずしもカテゴリによってではなく、関連付けによって編成されているため、アソシエーティブメモリにおいて特に問題となる。
【0034】
現在のところ、この問題に対処するためにアソシエーティブメモリは、ある文脈を別の文脈と区別する方法としてパースペクティブを使用しうる。パースペクティブは、ユーザーのドメインの特定の一面に対する“視点”または文脈を提供する。典型的には、アソシエーティブメモリは、複数のパースペクティブに論理的に分割される。例えば、“パーツ”は、民間航空機のドメイン内のパースペクティブでありうる。アソシエーティブメモリの分割にパースペクティブを使用することは、互いに独立した対応するクエリを生成しうる。
【0035】
しかしながら、このアプローチは、アソシエーティブメモリのクエリに文脈を提供しようと試みるときに限界がある。例えば、このアプローチは、単一のパースペクティブ自体の内に何も助けを提供しない。加えて、
図2および
図3に関連して記載された問題は、パースペクティブがクエリの一部として使用されたときに、依然として起こりうる。したがって、クエリが行われる間にパースペクティブを使用することは、上述の文脈上の問題を軽減しうる一方で、場合によって、パースペクティブの使用は、まったく助けとならないか、または限られた助けとしかならない可能性がある。
【0036】
図4は、例示的一実施形態による、アソシエーティブメモリの検索またはクエリの結果が、ユーザーによって元々意図されたものと同一の文脈にあるかどうかを判定するためのシステムを示すブロック図である。システム400は、上述の問題に対処するために使用されうる。具体的には、システム400は、クエリからアソシエーティブメモリに返された結果が文脈に沿っているかどうかをユーザーが評価することを可能にする情報を特定し、ユーザーに対して潜在的に提示するために使用されうる。
【0037】
換言すれば、例示的な実施形態は、ユーザーが、アソシエーティブメモリのクエリの結果を区別し、およびどの結果がユーザーの元々の意図に最も関連するかを判定することを可能にする。したがって、例示的な実施形態は、ユーザーが、最良の知見を提供するクエリの結果を取得し、さらにユーザーが文脈から外れているとみなす結果を無視することを可能にする。
【0038】
例示的な実施形態は、ユーザーが文脈上の結果に集中することを可能にする。例示的な実施形態は、ユーザーが情報に基づいてより迅速に意思決定できるようにより多くの情報を提供しうる。例示的な実施形態は、ソースデータがユーザーによって入力された基準に関連するため、元のソースデータを表示させうる。例示的な実施形態は、最も重要な情報が最初に表示されるように、関連性によって順序付けされた結果を返しうる。例示的な実施形態は、クエリが行なわれているときに元のソースコンテンツを明らかにすることにより、データベースの操作を区別しうる。例示的な実施形態は、主題から独立し、普遍的に展開可能でありうる。
【0039】
具体的には、例示的な実施形態により、システム400が提供される。システム400は、アソシエーティブメモリ402を含みうる。アソシエーティブメモリ402は、複数のデータ404および複数のデータ間の複数の関連付け406を含みうる。複数のデータ404は、関連グループ408にまとめられうる。
【0040】
アソシエーティブメモリ402は、複数のデータ間の少なくとも間接的関係410に基づいてクエリされるように構成されうる。アソシエーティブメモリ402は、直接的な相関412に基づいてクエリされるようにさらに構成されうる。
【0041】
システム400は、入力デバイス414をさらに含むことができ、この入力デバイスはアソシエーティブメモリ402と通信することができる。入力デバイス414は、第1のクエリまたは比較リクエスト416を受け取るように構成されうる。アソシエーティブメモリ402は、第1のクエリまたは比較リクエスト416を受け取ることに応じて、第1のクエリまたは比較リクエスト416のターム422と一致する属性値420を有するエンティティ値418を位置づけするように構成されうる。アソシエーティブメモリ402は、エンティティ値418を位置づけすることに応じて、エンティティ値418を含む第1の結果のリスト424を返すようにさらに構成されうる。
【0042】
アソシエーティブメモリ402は、第2のクエリまたは比較リクエスト426に、第1の結果のリスト424から第1の結果の少なくとも1つを、必須の検索タームとして、付加するようにさらに構成されうる。第2のクエリまたは比較リクエスト426は、ターム422などの、第1のクエリまたは比較リクエスト416の全てのタームをさらに含みうる。アソシエーティブメモリは、第2のクエリまたは比較リクエスト426を実行し、その結果として、第2のリソースリファレンスのリスト428を返すようにさらに構成されうる。
【0043】
アソシエーティブメモリ402は、ソースデータ430を読み出すために第2のリソースリファレンスのリスト428を使用するようにさらに構成されうる。アソシエーティブメモリ402は、コンビネーション432を形成するためにエンティティ値418をソースデータ430と組み合わせるようにさらに構成されうる。アソシエーティブメモリ402は、コンビネーション432を返すようにさらに構成されうる。
【0044】
例示的な実施形態では、アソシエーティブメモリ402は、入力デバイス414が第1のクエリまたは比較リクエスト416を受け取ることに応じて、第2のクエリまたは比較リクエスト426を開始しうる。別の例示的な実施形態では、第1の結果のリスト424は、第1のクエリおよび比較リクエスト416のパースペクティブ436に等しい結果のカテゴリ434を有しうる。
【0045】
別の例示的な実施形態では、アソシエーティブメモリ402は、第1の結果のリスト424をユーザー438に対して提示することを回避するようにさらに構成されうる。また別の例示的な実施形態では、アソシエーティブメモリ402は、エンティティ値418との一致を必要とするようにさらに構成されうる。
【0046】
さらに別の例示的な実施形態では、アソシエーティブメモリ402は、結果のカテゴリ434としてエンティティ種類440またはパースペクティブ436を返す代わりに、第2のリソースリファレンスのリスト428を返すように構成されうる。例示的な実施形態では、ソースデータ430は、元のデータソースからのものでありうる。この場合、アソシエーティブメモリ402は、ソースデータ430をユーザー438に対して提示することを回避するようにさらに構成されうる。
【0047】
別の例示的な実施形態では、システム400は、アソシエーティブメモリ402と通信する表示デバイス442をさらに含みうる。この場合、アソシエーティブメモリ402は、表示デバイス442にコンビネーション432を表示させるようにさらに構成されうる。
【0048】
別の例示的な実施形態では、アソシエーティブメモリ402は、表示デバイス442に、第1のクエリまたは比較リクエスト416のターム422に一致する属性値420をさらに表示させるようにさらに構成されうる。この場合、アソシエーティブメモリ402は、ソースデータ430からのテキストの一部分444を表示するようにさらに構成されうる。しかしながら、例示的な実施形態では、アソシエーティブメモリ402は、エンティティ値418をディスプレイから除外させるようにさらに構成されうる。
【0049】
図4に示した例示的な実施形態は、種々の例示的な実施形態が実装されうる方法に対する物理的または構造的な制限を示唆することを意図していない。図示された構成要素に加えておよび/または代えて、他の構成要素を使用することができる。一部の例示的な実施形態では、幾つかの構成要素はなくてもよい。また、ブロックは、幾つかの機能的な構成要素を示すために提示される。種々の例示的な実施形態において実装されるとき、これらのブロックの一または複数は、組み合わせることができ、および/または異なるブロックに分割することができる。
【0050】
図5は、例示的一実施形態による、アソシエーティブメモリの検索またはクエリの結果が、ユーザーによって元々意図されたものと同一の文脈にあるかどうかを判定するプロセスを示すフロー図である。プロセス500は、
図4のシステム400、または
図15のデータ処理システム1500により実装されうる。
図5に関しては、“プロセス”はアクションの実行を意味している。ここで使用される“プロセス”とは、記載されるアクションを実行するように構成された非一時的なプロセッサまたは他の物理的デバイスと考えられるか、あるいは、実行されると、記載されるアクションを実行するように構成されたコンピュータで使用可能なプログラムコードを格納するコンピュータで読込可能な非一時的記憶媒体と考えられうる。
【0051】
プロセス500は、関連グループにまとめられた複数のデータおよび複数のデータ間の複数の関連付けを含み、複数のデータ間の少なくとも間接的関係に基づいてクエリされるように構成されたアソシエーティブメモリを使用して実装されうる。方法は、プロセスが第1のクエリまたは比較リクエストを受け取ることにより開始しうる(作業502)。第1のクエリまたは比較リクエストを受け取ることに応じて、プロセスは、第1のクエリまたは比較リクエストのタームと一致する属性値を有するエンティティ値を位置づけることができる(作業504)。
【0052】
エンティティ値を位置づけすることに応じて、プロセスは、エンティティ値を含む第1の結果のリストを返しうる(作業506)。プロセスは、第1のクエリまたは比較リクエストの全てのタームをさらに含む、第2のクエリまたは比較リクエストに、第1のリストから第1の結果の少なくとも1つを、必須の検索タームとして、付加しうる(作業508)。
【0053】
プロセスは、第2のクエリまたは比較リクエストを実行し、その結果として、第2のリソースリファレンスのリストを返しうる(作業510)。プロセスは、ソースデータを読み出すために第2のリストを使用しうる(作業512)。プロセスは、コンビネーションを形成するためにエンティティ値をソースデータと組み合わせうる(作業514)。プロセスは、コンビネーションを返しうる(作業516)。その後、プロセスは終了しうる。
【0054】
このプロセスは変更されてもよい。例えば、第1の結果のリストは、クエリおよび比較リクエストの少なくとも一つのパースペクティブに等しい結果のカテゴリを有しうる。別の例では、プロセスは、第1のリストをユーザーに対して提示することを回避しながら、コンビネーションをディスプレイにさらに表示しうる。別の例では、プロセスは、結果のカテゴリとしてエンティティ種類またはパースペクティブを返す代わりに、第2のリストを返しうる。さらに別の例では、プロセスは、コンビネーション、第1のクエリまたは比較リクエストのタームに一致する属性値、およびソースデータからのテキストの一部分をディスプレイに表示しうる。
【0055】
図6は、例示的一実施形態による、アソシエーティブメモリ内部のパースペクティブ、エンティティ、および属性を示している。
図6は、
図1のドメイン104に関連するパースペクティブおよびエンティティをより詳細に示している。例示的な実施形態は、アソシエーティブメモリから収集された情報を使用する。アソシエーティブメモリ601は、
図4のアソシエーティブメモリ402または
図15のアソシエーティブメモリ1528でありうる。アソシエーティブメモリ601は、
図6に示される情報のクラウド600(サークル1)を含みうる。
【0056】
典型的には、ユーザーは、アソシエーティブメモリ601をパースペクティブ602(サークル2)などの複数のパースペクティブに論理的に分割しうる。パースペクティブは、ユーザーのドメインの特定の一面に対する視点または初期文脈を提供する。例えば、パーツ604(サークル3)は、民間航空機のドメイン内のパースペクティブでありうる。
【0057】
アソシエーティブメモリ601は、データをエンティティに編成しうる。エンティティは、エンティティ種類606(サークル4)などのエンティティ種類をインスタンス化したものである。例えば、エンティティ種類は、“パーツ番号”608(サークル5)などのパーツ番号でありうる。同様に、実際のエンティティは、実際のパーツ番号610など、そのエンティティ種類をインスタンス化したものになる。
【0058】
さらに、パースペクティブは、一または複数のエンティティ種類を通常表す。この特徴により、ユーザーが、ユーザーおよびメモリ双方にとって有益であるパースペクティブからドメインデータを閲覧することを可能にする。
【0059】
各エンティティは、一組の属性612(サークル6)などの一組の属性を含みうる。一組の属性612は、対応するエンティティを説明するのに使用されうる。この場合、対応するエンティティはパーツ番号610である。アソシエーティブメモリ601は、各属性を、カテゴリ614(サークル7)などのカテゴリおよび対応する値616などのその対応する値に分離しうる。属性値は、属性値618(サークル8)などの数値、または属性値620(サークル9)などの非数値のいずれかでありうる。アソシエーティブメモリは、エンティティ比較およびクエリを実行するときに、これらの属性のカテゴリおよび値を使用しうる。
【0060】
図7は、例示的一実施形態による、アソシエーティブメモリのクエリを示している。クエリ700は、
図4のアソシエーティブメモリ402または
図15のアソシエーティブメモリ1528などのアソシエーティブメモリにより成り立っている。
図7は、具体的には、
図6のアソシエーティブメモリ601を指すことができる。
【0061】
アソシエーティブメモリのクエリの結果701(サークル1)は、エンティティ702(サークル2)から構成されている。エンティティ702と関連付いている属性値704(サークル3)は、ユーザーによって提供されたクエリターム706(サークル4)と一致する。エンティティ比較の場合、アソシエーティブメモリ自体がクエリタームを提供しうる。各クエリは、パースペクティブ708(サークル5)などのパースペクティブ内で行なわれる。パースペクティブ708は、探索されたエンティティ種類、この場合はエンティティ種類710(サークル6)と一致する。この場合のエンティティ種類710は、“関連付けられたパーツ”の値を有しうる。
【0062】
クエリターム706は、“必須”712、“任意”714、または“除外”716でありうる。ここに示されている例示的な実施形態では、この例が例示的な実施形態を必ずしも限定するわけではないが、全てのクエリタームは任意のものである。“必須”712の中の入力は、論理積(AND)を形成する。“任意”714の中の入力は、論理和(OR)を形成する。“除外”の中の入力は、論理否定(NOT)を形成する。加えて、各入力においてさらに論理式を使用することができる。初期設定の論理式は、“OR”である。例えば、ここに示されている例示的な実施形態では、4つのタームが論理“OR”によって分離されているとみなされる。ユーザーは、示されるタームの間の結合子を“AND”、“NOT”、または“AND”、“NOT”、あるいは“OR”の任意の組み合わせとして明確に指定することができた。アソシエーティブメモリは、アソシエーティブメモリ内のエンティティ比較およびアソシエーティブメモリの検索を完了するために、最後のクエリを使用する。
【0063】
図8は、例示的一実施形態による、アソシエーティブメモリ内のリソースを示している。リソース800は、
図4のアソシエーティブメモリ402、
図15のアソシエーティブメモリ1528、または
図6のアソシエーティブメモリ601などのアソシエーティブメモリ内のリソースでありうる。リソース800は、共通の識別子によって集約されたデータ群でありうる。
【0064】
例示的な実施形態では、アソシエーティブメモリを形成するソースデータは、従来のデータベースまたは異なるファイル内に存在しうる。ソースデータは、ソースデータの整合性を確実なものとし、ソースデータの文脈を保持するために、アソシエーティブメモリから分離されうる。結果として、アソシエーティブメモリは、場合によっては、個々のデータの記録にリファレンスポインターを維持するだけということがありうる。このポインターは、リソースリファレンスと呼ばれることができる。リソースは、このデータの仮想的な集積でありうる。
【0065】
アソシエーティブメモリが参照するソースデータは、二つの形態、すなわち構造化された形態または構造化されていない形態を提供しうる。構造化データ802などの構造化データに関しては、構造がデータを定義する。カラム名および拡張マークアップ言語(XML)タグは、構造化データの好例である。
【0066】
非構造化データ804などの非構造化データは、事前定義された構造のないフリーテキストである。アソシエーティブメモリは、非構造化データのために構造を定義するのに役立つ外部パーサおよびエクストラクタを利用しうる。
【0067】
リソース内の非構造化データは、通常、最良の文脈を提供する。非構造化データは、主題の専門家または他のユーザーが容易に解釈できる専門語で文を表示しうる。しかしながら、従来のソフトウェアは、非構造化テキストで使われている用語の背後にある意味を解釈する方法がない。したがって、多くの文脈が失われることがある。
【0068】
図9は、例示的一実施形態による、アソシエーティブメモリのクエリ内のクエリタームを使用することを示している。アソシエーティブメモリは、
図4のアソシエーティブメモリ402、
図15のアソシエーティブメモリ1528、または他のアソシエーティブメモリでありうる。クエリエントリーフォーム900は、例示的な実施形態のためのプロセスの一部として使用されうる。
図9は、例示的な実施形態の方法に対する第1および第2のステップを示しうる。この方法は、アソシエーティブメモリによって実装されることができ、またはコンピュータで読込可能な非一時的記憶媒体に格納されたコンピュータ命令として具現化されることができる。
【0069】
アソシエーティブメモリのクエリの結果が膨大な量の情報を包含するため、どの情報が実際に関連するかを見分けることは困難でありうる。アソシエーティブメモリのクエリの結果が正しい文脈にあるかどうかを判断するためには、ユーザーは、アソシエーティブメモリによって収集された一致する属性値がユーザーの意図に実際に関連するかを見るために個々の結果を調査しなければならない。これらの値は、元のソースデータ内の無数のリソース間に分散されうる。したがって、クエリの結果が正しい文脈に沿っているかどうかを判断するタスクは、困難であって時間がかかり、場合によっては、非現実的でありうる。例示的な実施形態は、この問題に対処する。
【0070】
第一に、例示的な実施形態は、ユーザーまたはアソシエーティブメモリ、あるいはその両方が、クエリタームフォーム900で示されるように、クエリタームを入力することを可能にする。クエリタームフォーム900は、
図7のパースペクティブ708に使用されたフォームと同じでありうる。アソシエーティブメモリによって自動的に提供されるクエリタームは、エンティティ比較を実行するときに最も頻繁に受け取られる。
図1および
図2の例に引き続き、検索ターム902は、“任意”エントリー904に入力された“高い階級の補佐官”である。したがって、例示的な実施形態に対する第1のステップは、アソシエーティブメモリ内のクエリを受け取る機構を提供することでありうる。このような機構は、
図9に示される。
【0071】
第2に、ユーザーはクエリを開始することができ、それにより、アソシエーティブメモリが、入力されたタームと一致する属性値をもつエンティティを位置づけするようになる。比較の場合、アソシエーティブメモリがクエリを自動的に開始しうる。したがって、例示的な実施形態に対する第2のステップは、アソシエーティブメモリ内のクエリを受け取ることでありうる。
【0072】
図10は、例示的一実施形態による、アソシエーティブメモリのクエリより結果として生じるエンティティを示している。
図10は、例示的な実施形態の方法における第3のステップを示しうる。したがって、
図10は、
図1、
図2、および
図9に始まる一連の例の続きである。
【0073】
具体的には、例示的な実施形態の第3のステップは、パースペクティブ904(サークル“3”)に等しい検索ターム902(サークル“2”)とともにクエリタームフォーム900(サークル“1”)などの、初期の結果のリストを返すことでありうる。検索ターム902は、さらにエンティティ種類に等しくありうる。例えば、“人”に対するクエリがされると、人のリストが返される。例示的な実施形態は、返されたエンティティ値のリスト906(サークル“4”)のみを使用するため、ユーザーはこれらの結果を見る必要はない。アソシエーティブメモリは、
図11に示される以下のステップの次のクエリのために、これらの値を内部に収集しうる。
【0074】
図11は、例示的一実施形態による、第2のクエリを実行するために元のクエリからの結果を再入力し、アソシエーティブメモリ内のリソースリファレンスを読み出すことを示している。
図11は、例示的な実施形態の方法における第4のステップを示しうる。したがって、
図11は、
図1、
図2、
図9、および
図10に始まる一連の例の続きである。
【0075】
この第4のステップでは、
図10に示される最後のステップからの結果を使用して、例示的な実施形態は、
図9の検索ターム902または
図11の検索ターム1100に示された
図9の第2のステップにあるのと同じクエリを実行するようにアソシエーティブメモリに指示を与えるが、それに対して追加もある。具体的には、アソシエーティブメモリは、
図9のエンティティ値のリスト906などの、ステップ3の結果からのエンティティ値のリストを、クエリエントリーフォーム1104の必須フィールド1102(サークル“2”)に追加する。アソシエーティブメモリは、これらのエンティティ値の一または複数に対する一致が必須であると指定しうる。例示的な実施形態では、アソシエーティブメモリは、エンティティの一または複数に対する一致が必須であることを示すために、エンティティ値を括弧で囲みうる。
【0076】
検索ターム1100および必須フィールド1102の両方で示される検索タームの組み合わせである、これらの新しい一組の検索タームは、新しいクエリとしてアソシエーティブメモリに入力される。アソシエーティブメモリは、次いで、新しい結果カテゴリとしてエンティティ種類またはパースペクティブを返す代わりに、結果カテゴリとしてリソースリファレンス1106(サークル“3”)を返しうる。
図12に示されるように、これらのリソースリファレンスは、次のステップで使用される。しかしながら、例示的な実施形態では、このステップはユーザーに対して表示される必要はない。
【0077】
図12は、例示的一実施形態による、
図11に記載した第2のクエリの結果として取得したリソースリファレンスを使用して、元のソースから実データを読み出すことを示している。
図12は、例示的な実施形態の方法における第5のステップを示しうる。したがって、
図12は、
図1、
図2、
図9、
図10および
図11に始まる一連の例の続きである。
図11に示されるステップ4のように、
図12に示されるステップ5はユーザーに対して表示される必要はない。
【0078】
次に、この第5のステップでは、例示的な実施形態は、元のソースから実データを読み出すために、
図11のリソースリファレンス1106などの、ステップ4で取得したリソースリファレンスを使用しうる。これらの実データは、例えば、
図12に示されるデータ1200でありうる。しかしながら、データは、リソースリスト1202に示される各リソースについて読み出されうる。この実データは、
図13に示される第6のステップおよび最終ステップで使用される。
【0079】
図13は、例示的一実施形態による、
図11に記載した第2のクエリを実行した結果として、結果の実際の文脈を明示する、必須のエンティティを除く、一致する属性値を示している。
図13は、例示的な実施形態の方法における第6のステップを示しうる。したがって、
図13は、
図1、
図2、
図9、
図10、
図11、および
図12に始まる一連の例の続きである。
【0080】
第6のステップでは、アソシエーティブメモリは、
図10に示されるステップ3からのエンティティ情報を
図12に示されるステップ5で取得された実データと組み合わせる。アソシエーティブメモリは、
図13に示されるように、ユーザーに対して結果1300を表示しうる。
【0081】
一般的には、各結果に対して、アソシエーティブメモリは、属性値とみなされうる、一致するターム1302(サークル“1”)を表示しうる。一致する属性値が見つかった場合には、アソシエーティブメモリは、
図11の必須フィールド1102によって示される必須のエンティティを除外しうる。同様に、一致する属性値が見つかった場合には、アソシエーティブメモリは、
図12に示されるデータ1200に関連するデータ1304(サークル“2”)において示される、元のソースデータからのテキストの一部分をさらに除外しうる。
【0082】
これらの値は、ハイライトテキスト1306(サークル“3”)で示されるように、その文脈に注意を引くためにハイライトされうる。この特徴により、ユーザーが、結果がユーザーの意図と同じ文脈にあるか、または文脈から外れているかを迅速に判定することが可能になる。例示的な実施形態では、ユーザーは、文脈から外れたエンティティ1308(サークル“4”)に示される、ソースデータの一部分を参照することにより、特定のエンティティが文脈から外れていると特定することができる。さらに、各々の返されたエンティティについて、例えばリンク1310(サークル“5”)などのリンクが実際のリソースに対して提供されうる。これらのリンクは、ユーザーが、特定の関心のあるエンティティに関連するソースデータをさらに調査することを可能にすることができる。
【0083】
見て分かるように、
図13に示される例示的な実施形態は、ユーザーが、どのエンティティがユーザーの元の意図に関連して文脈に沿っており、どのエンティティがユーザーの意図に関連して文脈から外れているかを迅速に判定することを可能にする。文脈から外れている結果の数は、文脈に沿っている結果をより多く提供するために、ユーザーが元の検索パラメーターを修正するべきかどうかをユーザーに示すことができる。
【0084】
図14は、例示的一実施形態による、アソシエーティブメモリの検索またはクエリの結果が、ユーザーによって元々意図されたものと同一の文脈にあるかどうかを判定するプロセスを示す概観図である。
図14は、
図9から
図13に関連して記載された6つのステップすべてを示し、それにより、例示的な実施形態の概要を提供する。
図14に示される例示的な実施形態は、特許請求される発明を必ずしも制限するものではない。
【0085】
図14において丸で囲まれた各数字は、それぞれ6つのステップの中の一つを示す。ステップ1400(サークル“1”)で示されたステップ1は、
図9でも示されるように、ユーザーに対して、アソシエーティブメモリにクエリタームを入力する機構を提供することでありうる。ステップ1402(サークル“2”)で示されたステップ2は、
図9でも示されるように、クエリを開始し、それにより、アソシエーティブメモリが、入力されたタームと一致する属性値をもつエンティティを位置づけするようになること、でありうる。
【0086】
ステップ1404(サークル“3”)で示されたステップ3は、
図10でも示されるように、パースペクティブまたはエンティティ種類に等しい結果のカテゴリとともに初期の結果のリストを返すことでありうる。ステップ1406(サークル“4”)で示されたステップ4では、アソシエーティブメモリがステップ1402の同じクエリを実行するためにステップ1404からの結果を使用することでありうるが、この場合、この第2のクエリに関しては、ステップ1404の結果からの一または複数のエンティティ値のリストが検索タームに追加されることが除かれる。このエンティティ値のリストは、返されたエンティティの少なくとも一つに一致することを要しうる。結果として、リソースリファレンスのリストが返されうる。
【0087】
ステップ1408(サークル“5”)で示されたステップ5では、アソシエーティブメモリは、元のソースから実データを読み出すために、ステップ1406で取得されたリソースリファレンスを使用しうる。このようなデータの例が示される。ステップ1410(サークル“6”)で示されたステップ6では、アソシエーティブメモリは、ステップ1404で示されたステップ3からのエンティティ情報をステップ1408で取得された実際のソースデータと組み合わせ、結果をユーザーに対して表示しうる。結果とエンティティがこのように表示されることにより、文脈から外れたエンティティ例1412で示されるように、ユーザーが、ユーザーの元の意図に関連して文脈から外れたエンティティを特定することが可能になる。
【0088】
図14に示されるステップは、例示的な実施形態を必ずしも制限するものではない。これらのステップは変更することができ、幾つかのステップは省略することができ、またはその他のステップを追加することができる。例えば、ステップ1400で示されたステップ1は既に提供されているかもしれなく、したがって、上述のプロセスから省略されてもよい。上述のように、幾つかのステップは、ユーザーに対して示されなくてもよい。
【0089】
例示的な実施形態は、幾つかの適用例を有する。例えば、例示的な実施形態は、文脈から外れたアソシエーティブメモリをクエリした結果を検索するのに要する時間を減少しうる。例示的な実施形態は、ユーザーの基礎的な意図に対して理解を深める専門用語になっているアソシエーティブメモリのクエリのタームをハイライトしうる。例示的な実施形態は、人事担当の従業員が、特定のポジションに抜擢されるように、履歴書に職務要件すべてをコピーする求職者を峻別することを可能にする。例示的な実施形態は、従業員が、入札するために許可されていない方法を使用するサプライヤーを峻別することを可能にする。例示的な実施形態は、アナリストが、他の方法では見つけることが困難な、敵の脅威の背後にある文脈を特定することを可能にする。例示的な実施形態は、他にも多くの適用例を有する。
【0090】
図15は、例示的一実施形態による、データ処理システムを示している。
図15のデータ処理システム1500は、例示的な実施形態(例えば、
図4のシステム400)、あるいは本明細書に開示されるその他の任意のモジュール、システム、またはプロセスを実装するために使用することができるデータ処理システムの一例である。この例示的な例では、データ処理システム1500は通信ファブリック1502を含み、この通信ファブリックは、プロセッサユニット1504、メモリ1506、固定記憶域1508、通信ユニット1510、入力/出力(I/O)ユニット1512、およびディスプレイ1514の間の通信を提供する。
【0091】
プロセッサユニット1504は、メモリ1506に読み込まれうるソフトウェアに対する指示を実行するように働く。プロセッサユニット1504は、特定の実装に応じて、任意の数のプロセッサ、マルチプロセッサコア、または他のタイプのプロセッサであってもよい。本明細書でアイテムに言及して“任意の数の”というとき、一また複数のアイテムを意味する。さらに、プロセッサユニット1504は、単一チップ上でメインプロセッサが二次プロセッサと共存する異種プロセッサシステムを任意の個数だけ使用して実装することができる。別の例示的な例として、プロセッサユニット1504は同じタイプのプロセッサを複数個含む対称型マルチプロセッサシステムとすることができる。
【0092】
メモリ1506および固定記憶域1508は、記憶デバイス1516の例である。記憶デバイスは、例えば、限定しないが、データ、機能的な形態のプログラムコード、および/またはその他の適切な情報などの情報を一時的におよび/または永続的に格納できる、任意の数のハードウェアである。これらの例では、記憶デバイス1516は、コンピュータで読込可能な記憶デバイスとされることもある。これらの例では、メモリ1506は、例えば、ランダムアクセスメモリまたは任意の他の適切な揮発性または不揮発性の記憶デバイスであってもよい。固定記憶域1508は、具体的な実装に応じて、様々な形態をとりうる。
【0093】
例えば、固定記憶域1508は、一または複数の構成要素またはデバイスを含みうる。例えば、固定記憶域1508は、ハードドライブ、フラッシュメモリ、書換え型光ディスク、書換え可能磁気テープ、またはそれらの何らかの組み合わせでありうる。固定記憶域1508によって使用される媒体もリムーバブルでありうる。例えば、リムーバブルハードドライブは、固定記憶域1508に使用することができる。
【0094】
通信ユニット1510は、これらの例では、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット1510はネットワークインターフェースカードである。通信ユニット1510は、物理的および無線の通信リンクのいずれか一方または両方を使用することを通して、通信を提供することができる。
【0095】
入出力(I/O)ユニット1512により、データ処理システム1500に接続可能な他のデバイスとのデータの入力および出力が可能になる。例えば、入出力(I/O)ユニット1512は、キーボード、マウス、および/または他の何らかの適切な入力デバイスを通してユーザー入力のための接続を提供しうる。さらに、入出力(I/O)ユニット1512は、プリンタに出力を送信することができる。ディスプレイ1514は、ユーザーに対して情報を表示する機構を提供する。
【0096】
オペレーティングシステム、アプリケーション、および/またはプログラムに対する指示は、記憶デバイス1516上に配置可能で、この記憶デバイスは通信ファブリック1502を介してプロセッサユニット1504と通信を行う。これらの例示的な実施例では、指示は固定記憶域1508上で機能的な形態をとる。これらの指示は、プロセッサユニット1504で実行するためメモリ1506に読み込むことができる。種々の実施形態のプロセスは、メモリ1506などのメモリに配置されうるコンピュータによって実装された指示を使用して、プロセッサユニット1504によって実行することができる。
【0097】
これらの指示は、プログラムコード、コンピュータで使用可能なプログラムコード、またはコンピュータで読取可能なプログラムコードと呼ばれ、プロセッサユニット1504内のプロセッサによって読込および実行されうる。種々の実施形態のプログラムコードは、メモリ1506または固定記憶域1508など、種々の物理的なまたはコンピュータで読取可能な記憶媒体上に具現化しうる。
【0098】
プログラムコード1518は、選択的にリムーバブルでありコンピュータで読取可能な媒体1520上に機能的な形態で配置され、プロセッサユニット1504による実行のためにデータ処理システム1500に読込みまたは転送することができる。これらの実施例では、プログラムコード1518およびコンピュータで読取可能な媒体1520は、コンピュータプログラム製品1522を形成する。1つの実施例では、コンピュータで読取可能な媒体1520は、コンピュータで読取可能な記憶媒体1524またはコンピュータで読取可能な信号媒体1526であってもよい。コンピュータで読取可能な記憶媒体1524は、例えば、固定記憶域1508の一部であるハードディスクなどの、記憶デバイス上に転送するための固定記憶域1508の一部であるドライブまたは他のデバイスに挿入または配置される光ディスクまたは磁気ディスクなどを含みうる。コンピュータで読込可能な記憶媒体1524は、データ処理システム1500に接続された固定記憶域(例えば、ハードドライブ、サムドライブ、またはフラッシュメモリ)の形態をとることもできる。場合によっては、コンピュータで読込可能な記憶媒体1524は、データ処理システム1500からリムーバブルでなくてもよい。
【0099】
代替的には、プログラムコード1518は、コンピュータで読取可能な信号媒体1526を使用してデータ処理システム1500に転送することができる。コンピュータで読み取り可能な信号媒体1526は、例えば、プログラムコード1518を含む伝播されたデータ信号でありうる。例えば、コンピュータで読取可能な信号媒体1526は、電磁信号、光信号、および/または他の任意の適切なタイプの信号でありうる。これらの信号は、無線通信リンク、光ファイバケーブル、同軸ケーブル、有線、および/または他の任意の適切なタイプの通信リンクなどの通信リンクによって伝送されうる。すなわち、実施例では、通信リンクおよび/または接続は、物理的なものまたは無線によるものでありうる。
【0100】
幾つかの例示的な実施形態では、プログラムコード1518は、データ処理システム1500内で使用されるために、コンピュータで読取可能な信号媒体1526を通して、ネットワークを介して別のデバイスまたはデータ処理システムから固定記憶域1508にダウンロードすることができる。例えば、サーバーデータ処理システム内のコンピュータで読込可能な記憶デバイスに格納されているプログラムコードは、ネットワークを介してサーバーからデータ処理システム1500にダウンロードすることができる。プログラムコード1518を提供するデータ処理システムは、サーバーコンピュータ、クライアントコンピュータ、またはプログラムコード1518を格納および転送することが可能な他のデバイスであってもよい。
【0101】
データ処理システム1500に対して例示されている種々の構成要素は、異なる実施形態が実装されうる方法に構造上の制限を設けることを意図していない。種々の例示的実施形態は、データ処理システム1500に対して図解されている構成要素に対して追加的または代替的な構成要素を含むデータ処理システム内に実装されうる。
図15に示した他の構成要素は、示された例示的な実施例と異なることがある。種々の実施形態は、プログラムコードを実行できる任意のハードウェアデバイスまたはシステムを用いて実施することができる。一実施例として、データ処理システムは、無機構成要素と一体化した有機構成要素を含むことができ、および/または人間を除く有機構成要素で全体を構成することができる。例えば、記憶デバイスは、有機半導体で構成されうる。
【0102】
別の例示的な実施例では、プロセッサユニット1504は、特定の用途のために製造または構成された回路を有するハードウェアユニットの形態をとってもよい。このタイプのハードウェアは、作業を実行するように構成されるために記憶デバイスからメモリにプログラムコードを読み込ませる必要なく、作業を実行することができる。
【0103】
例えば、プロセッサユニット1504がハードウェアユニットの形態をとる場合、プロセッサユニット1504は、回路システム、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス、または任意の数の操作を実行するために構成された他の好適なタイプのハードウェアであってもよい。プログラマブル論理デバイスにより、デバイスは任意の数の作業を実行するように構成されている。このデバイスは、その後再構成されることができ、または任意の数の作業を実行するために永続的に構成されることができる。プログラマブル論理デバイスの実施例は、例えば、プログラマブル論理アレイ、プログラマブルアレイ論理、フィールドプログラマブル論理アレイ、フィールドプログラマブルゲートアレイ、および他の好適なハードウェアデバイスを含む。このタイプの実装により、種々の実施形態のプロセスは、ハードウェアユニットに実装されるため、プログラムコード1518は除外されうる。
【0104】
さらに別の例示的な実施例では、プロセッサユニット1504は、コンピュータおよびハードウェアユニットの中に見られるプロセッサの組み合わせを使用して実装されうる。プロセッサユニット1504は、任意の数のハードウェアユニットおよびプログラムコード1518を実行するように構成されている任意の数のプロセッサを有していてもよい。図示された実施例の場合、プロセスの幾つかは任意の数のハードウェアユニットに実装されうる一方で、他のプロセスは任意の数のプロセッサに実装されうる。
【0105】
別の実施例として、データ処理システム1500の記憶デバイスは、データを格納しうる任意のハードウェア装置である。メモリ1506、固定記憶域1508、およびコンピュータで読取可能な媒体1520は、有形の形態の記憶デバイスの例である。
【0106】
別の実施例では、バスシステムは、通信ファブリック1502を実装するために使用することができ、システムバスまたは入出力バスなどの一または複数のバスから構成されうる。言うまでもなく、バスシステムは、バスシステムに取り付けられた種々の構成要素またはデバイスの間でのデータ伝送を提供する任意の好適なタイプのアーキテクチャを使用して実装されうる。加えて、通信ユニットは、モデムまたはネットワークアダプタといったデータの送受信に使用される一または複数のデバイスを含むことができる。さらに、メモリは、例えば、メモリ1506、またはインターフェースに見られるようなキャッシュ、および通信ファブリック1502中に存在しうるメモリコントローラハブとすることができる。
【0107】
データ処理システム1500は、アソシエーティブメモリ1528をさらに含みうる。アソシエーティブメモリ1528は、
図4のアソシエーティブメモリ402とすることができ、本明細書に別途記載される特性を有することができる。アソシエーティブメモリ1528は、通信ファブリック1502と通信することができる。また、アソシエーティブメモリ1528は、記憶デバイス1516と通信するか、または幾つかの例示的な実施形態では、記憶デバイス1516の一部とみなされうる。図に示されているアソシエーティブメモリ1528は一つであるが、追加のアソシエーティブメモリが存在してもよい。
【0108】
種々の例示的な実施形態は、全体がハードウェアからなる実施形態、全体がソフトウェアからなる実施形態、またはハードウェア要素とソフトウェア要素との両方を含む実施形態をとることができる。幾つかの実施形態は、例えば、ファームウェア、常駐ソフトウェア、およびマイクロコードなどの形態を含むがこれらに限定されないソフトウェアに実装される。
【0109】
さらに、種々の実施形態は、コンピュータあるいは指示を実行する任意のデバイスまたはシステムにより使用される、またはそれに接続されて使用されるプログラムコードを提供するコンピュータで使用可能あるいは読み取り可能な媒体からアクセス可能なコンピュータプログラム製品の形態をとることができる。本明細書の目的のために、コンピュータで使用可能あるいは読み取り可能な媒体は、一般に、指示実行システム、装置、またはデバイスによって使用される、あるいはそれに接続されて使用されるプログラムの収容、格納、通信、伝播、または運搬を行うことができる任意の有形装置とすることができる。
【0110】
コンピュータで使用可能あるいは読み取り可能な媒体は、例えば、限定しないが、電子システム、磁気システム、光学システム、電磁システム、赤外システム、あるいは半導体システム、または伝播媒体とすることができる。コンピュータで読み取り可能な媒体の非限定的な例には、半導体または固体状態のメモリ、磁気テープ、リムーバブルコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、剛性磁気ディスク、および光ディスクが含まれる。光ディスクには、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)、およびDVDが含まれうる。
【0111】
さらに、コンピュータで使用可能なまたはコンピュータで読み取り可能な媒体は、コンピュータで読み取り可能または使用可能なプログラムコードを収容または格納することができ、コンピュータで読み取り可能または使用可能なこのプログラムコードがコンピュータ上で実行されるとき、このコンピュータで読み取り可能または使用可能なプログラムコードの実行によって、コンピュータに、コンピュータで読み取り可能または使用可能な別のプログラムコードを通信リンクを介して伝送させることができる。この通信リンクは、例えば、限定しないが、物理的なまたは無線の媒体を使用することができる。
【0112】
コンピュータで読み取り可能なまたはコンピュータで使用可能なプログラムコードを格納および/または実行するのに適したデータ処理システムは、システムバスのような通信ファブリックによりメモリ要素に直接的にまたは間接的に連結された一または複数のプロセッサを含む。メモリ要素は、プログラムコードの実際の実行中に使用されるローカルメモリ、大容量記憶装置、およびキャッシュメモリを含むことが可能で、これにより少なくとも幾つかのコンピュータで読み取り可能またはコンピュータで使用可能なプログラムコードの一時的な保存域を提供し、コードの実行中に大容量記憶装置からコードが読み出されうる回数を低減する。
【0113】
入出力またはI/Oデバイスは、直接的に、またはI/Oコントローラを介して、システムに連結することができる。このようなデバイスには、例えば、限定されないが、キーボード、タッチスクリーンディスプレイ、およびポインティングデバイスが含まれる。種々の通信アダプタをシステムに連結することにより、データ処理システムを、構内ネットワークまたは公衆ネットワークを介して、他のデータ処理システム、遠隔プリンタ、または記憶デバイスに連結させることができる。モデムおよびネットワークアダプタの非限定的な例は、現在利用可能なタイプの通信アダプタのうちのごく一部に過ぎない。
【0114】
前述の実施形態は、バスまたは通信ファブリック(1502)と通信するプロセッサ(1504)と、メモリ(1506)とを含むデータ処理システム(1500)としてさらに構成されうる。アソシエーティブメモリ(402、1528)は、メモリ(1506)内に格納され、アソシエーティブメモリ(402、1528)は、複数のデータ(404)と、複数のデータ間の複数の関連付け(406)とを含む。好ましくは、複数のデータは、関連グループ(408)にまとめられ、アソシエーティブメモリ(402、1528)は、複数のデータ(404)間の少なくとも間接的関係(410)に基づいてクエリされるように構成されている。
【0115】
メモリ(1506)は、アソシエーティブメモリ(402、1528)のために第1のクエリ(102)または比較リクエスト(416)を受け取るためのコンピュータで使用可能なプログラムコード(1518)を含むコンピュータで使用可能なプログラムコード(1518)をさらに格納する。コンピュータで使用可能なプログラムコード(1518)は、アソシエーティブメモリ(402、1528)内のエンティティ値(418)を位置づけするために第1のクエリ(102)または比較リクエスト(416)を受け取ることに応答する。エンティティ値(418)は、第1のクエリ(102)または比較リクエスト(416)のターム(422)と一致する属性値(420)を有する。
【0116】
コンピュータで使用可能なプログラムコード(1518)は、エンティティ値(418)を位置づけし、アソシエーティブメモリ(402、1528)に、エンティティ値(418)を含む第1の結果のリスト(424)を返させることにさらに応答する。コンピュータで使用可能なプログラムコード(1518)は、第2のクエリ(102)または比較リクエストに、第1の結果のリスト(424)から第1の結果の少なくとも1つを、必須の検索ターム(422)として、さらに付加する。第2のクエリ(102)または比較リクエストは、第1のクエリ(102)または比較リクエスト(416)の全てのタームをさらに含む。
【0117】
別の変形において、コンピュータで使用可能なプログラムコード(1518)は、アソシエーティブメモリ(402、1528)内の第2のクエリ(102)または比較リクエストを実行する。結果として、第2のリソースリファレンスのリスト(428)が返される。コンピュータで使用可能なプログラムコード(1518)は、さらに、ソースデータ(430)を読み出すために第2のリストを使用し、コンビネーション(432)を形成するためにエンティティ値(418)をソースデータ(430)と組み合わせることができ、コンビネーションを返すことができる。
【0118】
このデータ処理システム(1500)は、メモリ(1506)が、第1のリストをユーザー(438)に対して提示することを回避しながら、ディスプレイにコンビネーションを表示するために、コンピュータで使用可能なプログラムコード(1518)をさらに格納するようにさらに構成されている。メモリ(1506)は、結果のカテゴリ(434)としてエンティティ種類(440)またはパースペクティブ(436)を返す代わりに、第2のリストを返すためのコンピュータで使用可能なプログラムコード(1518)をさらに格納する。
【0119】
データ処理システム(1500)は、メモリ(1506)が、
ディスプレイ(1514)にコンビネーションを表示するためのコンピュータで使用可能なプログラムコード(1518)と、ディスプレイ(1514)に第1のクエリ(102)または比較リクエスト(416)のターム(422)に一致する属性値(420)を表示するためのコンピュータで使用可能なプログラムコード(1518)と、ディスプレイ(1514)にソースデータ(430)からのテキストの一部分(444)を表示するためのコンピュータで使用可能なプログラムコード(1518)をさらに格納するようにさらに構成されている。
【0120】
上述した種々の例示的な実施形態の説明は、例示および説明を目的とするものであり、完全な説明であること、またはこれらの実施形態の開示された形態に限定することを意図していない。当業者には、多くの修正例および変形例が自明である。さらに、種々の例示的な実施形態は、他の例示的な実施形態とは異なる特徴を提供することができる。選択された一または複数の実施形態は、実施形態の原理、実際の用途を最もよく説明するため、および他の当業者が、考慮される特定の用途に適した様々な修正とともに様々な実施形態の開示内容を理解することを可能にするために選択および記述されている。