(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-29
(45)【発行日】2023-10-10
(54)【発明の名称】複数のクエリ解釈に基づくファセットベースのクエリ絞り込み
(51)【国際特許分類】
G06F 16/38 20190101AFI20231002BHJP
G06F 16/332 20190101ALI20231002BHJP
【FI】
G06F16/38
G06F16/332
(21)【出願番号】P 2020566987
(86)(22)【出願日】2019-06-25
(86)【国際出願番号】 IB2019055328
(87)【国際公開番号】W WO2020003109
(87)【国際公開日】2020-01-02
【審査請求日】2021-10-28
(32)【優先日】2018-06-26
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】菊地 弘晶
(72)【発明者】
【氏名】守屋 豊
【審査官】和田 財太
(56)【参考文献】
【文献】特開2009-271671(JP,A)
【文献】特表2013-504122(JP,A)
【文献】国際公開第2013/180121(WO,A1)
【文献】特開2010-003015(JP,A)
【文献】特開2008-003721(JP,A)
【文献】米国特許出願公開第2012/0278321(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00
(57)【特許請求の範囲】
【請求項1】
方法であって、
コンピュータが、複数の文書を含む文書セット全体に問い合わせるためのクエリを受信することであって、前記文書セット全体に含まれる前記複数の文書が、
該複数の文書のそれぞれに関連付けられ、または該複数の文書のそれぞれに含まれる、該複数の文書のそれぞれの特性を
表現する1つまたは複数のファセット値で違っている、前記受信することと、
前記コンピュータが、前記クエリのクエリ・テキスト
にクエリ変換規則のセットのそれぞれのクエリ変換規則を適用することにより、該クエリの語の削除、追加または変更を参照してクエリ拡張、修正または変形あるいはその組合せを
実行して、
該クエリをそれぞれ解釈した複数の異なるクエリ解釈を生成することと、
前記コンピュータが、前記複数の異なるクエリ解釈のうちのそれぞれの異なるクエリ解釈に基づいて、前記それぞれの異なるクエリ解釈に対応する結果文書セットを、前記文書セット全体から取得して、前記対応する結果文書セットにおいて表現されるファセット値を特定することと、
前記コンピュータが、クエリ絞り込みインターフェースを構築してユーザに提示することと
を含み、前記クエリ絞り込みインターフェースは、前記複数の異なるクエリ解釈および前記対応する結果文書セットのプロパティを提示するように構成され、加えて、前記1つまたは複数のファセット値のうちのそれぞれについて、かつ、互いに対して、前記対応する結果文書セットにおける前記ファセット値のファセット値表現を提示するように構成される、方法。
【請求項2】
前記対応する結果文書セットの前記プロパティが、前記対応する結果文書セット内の文書の数を含む、請求項1に記載の方法。
【請求項3】
前記クエリ絞り込みインターフェースが、前記複数の異なるクエリ解釈のうちのそれぞれを個別に選択して、前記ユーザに伝達されるべき結果を表現している現在の文書セットを、選択されたクエリ解釈に対応する結果文書セットを含む絞り込まれた文書セットに狭めるための、個々の対話インターフェース要素をさらに提示するように構成される、請求項1または2に記載の方法。
【請求項4】
前記クエリ絞り込みインターフェースが、前記1つまたは複数のファセット値のうちのそれぞれを個別に選択して、前記現在の文書セットを、選択されたファセット値が表現される文書を含む絞り込まれた文書セットへと狭めるための、個々の対話インターフェース要素をさらに提示するように構成される、請求項3に記載の方法。
【請求項5】
前記クエリが初期のクエリであり、前記方法が、前記コンピュータが、(i)前記複数の異なるクエリ解釈のうちのひとつのクエリ解釈、および(ii)前記1つまたは複数のファセット値のうちのひとつのファセット値から成る群から選択される少なくとも1つを前記ユーザが選択することに基づいて、前記生成すること、前記特定すること、および前記構築して提示すること、を繰り返して、前記文書セット全体を絞り込まれた文書セットへと絞り込むことをさらに含み、前記繰り返すことにおいて前記絞り込まれた文書セットが前記文書セット全体として使用され、前記繰り返すことにおいて使用される前記クエリが新しいクエリであり、生成された前記複数の異なるクエリ解釈が、前記新しいクエリのクエリ・テキストに基づいて生成された異なるクエリ解釈である、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記新しいクエリが(i)前記ユーザによって入力された別のクエリ、および(ii)前記初期のクエリの修正版から成る群から選択される少なくとも1つを含み、前記修正版は、前記ユーザが選択することにおいて選択されたクエリ解釈または選択されたファセット値
を追加し、前記文書セット全体を、前記選択されたクエリ解釈に対応する結果文書セットを含む絞り込まれた文書セットまたは前記選択されたファセット値が表現される文書を含む絞り込まれた文書セットへと狭めるように生成される、請求項5に記載の方法。
【請求項7】
前記コンピュータが、
前記それぞれの異なるクエリ解釈に対応する結果文書セットにおいて表現されるファセット値を特定した結果を用いて、前記ファセット値の前記ファセット値表現を提示する順序のための少なくとも1つのファセット値ランク付け方法にしたがって互いに対して前記1つまたは複数のファセット値をランク付けすることをさらに含み、前記クエリ絞り込みインターフェースが、前記1つまたは複数のファセット値のランク付けされた順で、前記1つまたは複数のファセット値のそれぞれ他のファセット値に対して、前記結果文書セットのそれぞれにおける、前記ファセット値の前記ファセット値表現を提示するように構成される、請求項1~6のいずれか1項に記載の方法。
【請求項8】
前記クエリが自然言語クエリである、請求項1~7のいずれか1項に記載の方法。
【請求項9】
前記コンピュータが、クエリ変換規則のセットを取得すること
を含む、請求項1~8のいずれか1項に記載の方法。
【請求項10】
前記特定することが、前記複数の異なるクエリ解釈のうちのそれぞれの異なるクエリ解釈に対応する結果文書セットについて、該対応する結果文書セットに含まれる文書の数をカウントすること、および、前記1つまたは複数のファセット値のうちのそれぞれのファセット値について、前記対応する結果文書セットに含まれ、かつ、前記ファセット値が表現される、文書の数をカウントすることをさらに含む、請求項1~9のいずれか1項に記載の方法。
【請求項11】
前記特定することが、前記1つまたは複数のファセット値のうちのそれぞれのファセット値、および、前記複数の異なるクエリ解釈のうちのそれぞれの異なるクエリ解釈に対応する結果文書セットについて、前記文書セット全体における前記ファセット値の出現に対する、前記対応する結果文書セットにおける前記ファセット値の出現の
密度を表現する相関スコアを決定することをさらに含み、前記クエリ絞り込みインターフェースが、他の決定される相関スコアに対して、それぞれそのように決定される相関スコアの表現を提示するように構成される、請求項1~10のいずれか1項に記載の方法。
【請求項12】
コンピュータ・システムであって、
メモリと、
前記メモリと通信するプロセッサと
を備え、前記プロセッサが、
複数の文書を含む文書セット全体に問い合わせるためのクエリを受信することであって、前記文書セット全体に含まれる前記複数の文書が、
該複数の文書のそれぞれに関連付けられ、または該複数の文書のそれぞれに含まれる、該複数の文書のそれぞれの特性を
表現する1つまたは複数のファセット値で違っている、前記受信することと、
前記クエリのクエリ・テキスト
にクエリ変換規則のセットのそれぞれのクエリ変換規則を適用することにより、該クエリの語の削除、追加または変更を参照してクエリ拡張、修正または変形あるいはその組合せを
実行して、
該クエリをそれぞれ解釈した複数の異なるクエリ解釈を生成することと、
前記複数の異なるクエリ解釈のうちのそれぞれの異なるクエリ解釈に基づいて、前記それぞれの異なるクエリ解釈に対応する結果文書セットを、前記文書セット全体から取得して、前記対応する結果文書セットにおいて表現されるファセット値を特定することと、
クエリ絞り込みインターフェースを構築してユーザに提示することと
を実行するよう構成され、前記クエリ絞り込みインターフェースは、前記複数の異なるクエリ解釈および前記対応する結果文書セットのプロパティを提示するように構成され、加えて、前記1つまたは複数のファセット値のうちのそれぞれについて、かつ、互いに対して、前記対応する結果文書セットにおける前記ファセット値のファセット値表現を提示するよう構成される、コンピュータ・システム。
【請求項13】
前記クエリ絞り込みインターフェースが、前記複数の異なるクエリ解釈のうちのそれぞれを個別に選択して、前記ユーザに伝達されるべき結果を表現している現在の文書セットを、選択されたクエリ解釈に対応する結果文書セットを含む絞り込まれた文書セットに狭めるための、個々の対話インターフェース要素をさらに提示するように構成される、請求項12に記載のコンピュータ・システム。
【請求項14】
前記クエリ絞り込みインターフェースが、前記1つまたは複数のファセット値のうちのそれぞれを個別に選択して、前記現在の文書セットを、選択されたファセット値が表現される文書を含む絞り込まれた文書セットへと狭めるための、個々の対話インターフェース要素をさらに提示するように構成される、請求項13に記載のコンピュータ・システム。
【請求項15】
前記プロセッサが、
前記それぞれの異なるクエリ解釈に対応する結果文書セットにおいて表現されるファセット値を特定した結果を用いて、前記ファセット値の前記ファセット値表現を提示する順序のための少なくとも1つのファセット値ランク付け方法にしたがって互いに対して前記1つまたは複数のファセット値をランク付けするように構成され、前記クエリ絞り込みインターフェースが、前記1つまたは複数のファセット値のランク付けされた順で、前記1つまたは複数のファセット値のそれぞれ他のファセット値に対して、前記結果文書セットのそれぞれにおける、前記ファセット値の前記ファセット値表現を提示するように構成される、請求項12~14のいずれか1項に記載のコンピュータ・システム。
【請求項16】
前記特定することが、前記1つまたは複数のファセット値のうちのそれぞれのファセット値、および、前記複数の異なるクエリ解釈のうちのそれぞれの異なるクエリ解釈に対応する結果文書セットについて、前記文書セット全体における前記ファセット値の出現に対する、前記結果文書セットにおける前記ファセット値の出現の
密度を表現する相関スコアを決定することをさらに含み、前記クエリ絞り込みインターフェースが、他の決定される相関スコアに対して、それぞれそのように決定される相関スコアの表現を提示するように構成される、請求項12~15のいずれか1項に記載のコンピュータ・システム。
【請求項17】
記憶媒体であって、コンピュータに、
複数の文書を含む文書セット全体に問い合わせるためのクエリを受信することであって、前記文書セット全体に含まれる前記複数の文書が、
該複数の文書のそれぞれに関連付けられ、または該複数の文書のそれぞれに含まれる、該複数の文書のそれぞれの特性を
表現する1つまたは複数のファセット値で違っている、前記受信することと、
前記クエリのクエリ・テキスト
にクエリ変換規則のセットのそれぞれのクエリ変換規則を適用することにより、該クエリの語の削除、追加または変更を参照してクエリ拡張、修正または変形あるいはその組合せを
実行して、
該クエリをそれぞれ解釈した複数の異なるクエリ解釈を生成することと、
前記複数の異なるクエリ解釈のうちのそれぞれの異なるクエリ解釈に基づいて、前記それぞれの異なるクエリ解釈に対応する結果文書セットを、前記文書セット全体から取得して、前記対応する結果文書セットにおいて表現されるファセット値を特定することと、
クエリ絞り込みインターフェースを構築してユーザに提示することと
を実行させるプログラムを記録し、前記クエリ絞り込みインターフェースは、前記複数の異なるクエリ解釈および前記対応する結果文書セットのプロパティを提示するように構成され、加えて、前記1つまたは複数のファセット値のうちのそれぞれについて、かつ、互いに対して、前記対応する結果文書セットにおける前記ファセット値のファセット値表現を提示するように構成される、記録媒体。
【請求項18】
前記クエリ絞り込みインターフェースが、(i)前記複数の異なるクエリ解釈のうちのそれぞれを個別に選択して、前記ユーザに伝達されるべき結果を表現している現在の文書セットを、選択されたクエリ解釈に対応する結果文書セットを含む絞り込まれた文書セットに狭めるための、個々の対話インターフェース要素、および(ii)前記1つまたは複数のファセット値のうちのそれぞれを個別に選択して、前記現在の文書セットを、選択されたファセット値が表現される文書を含む絞り込まれた文書セットへと狭めるための、個々の対話インターフェース要素をさらに提示するように構成される、請求項17に記載の記録媒体。
【請求項19】
前記プログラムは、前記コンピュータに、
前記それぞれの異なるクエリ解釈に対応する結果文書セットにおいて表現されるファセット値を特定した結果を用いて、前記ファセット値の前記ファセット値表現を提示する順序のための少なくとも1つのファセット値ランク付け方法にしたがって互いに対して前記1つまたは複数のファセット値をランク付けすることをさらに実行させ、前記クエリ絞り込みインターフェースが、前記1つまたは複数のファセット値のランク付けされた順で、前記1つまたは複数のファセット値のそれぞれ他のファセット値に対して、前記結果文書セットのそれぞれにおける、前記ファセット値の前記ファセット値表現を提示するように構成される、請求項17または18に記載の記録媒体。
【請求項20】
前記特定することが、前記1つまたは複数のファセット値のうちのそれぞれのファセット値、および、前記複数の異なるクエリ解釈のうちのそれぞれの異なるクエリ解釈に対応する結果文書セットについて、前記文書セット全体における前記ファセット値の出現に対する、前記対応する結果文書セットにおける前記ファセット値の出現の
密度を表現する相関スコアを決定することをさらに含み、前記クエリ絞り込みインターフェースが、他の決定される相関スコアに対して、それぞれそのように決定される相関スコアの表現を提示するように構成される、請求項17~19のいずれか1項に記載の記録媒体。
【請求項21】
コンピュータ・プログラムであって、前記コンピュータ・プログラムがコンピュータで実行されると請求項1ないし11のいずれかに記載の方法を実行するように構成されるプログラム・コード手段を含む、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に文書クエリの分野に関し、より詳細にはファセットベースのクエリ絞り込みに関する。
【背景技術】
【0002】
ファセットベースのテキスト・マイニングは、大規模で構造化されていないデータをテキスト・マイニングするための一解決策である。「ファセット」は、時に「文書」と称される情報要素に関連付けられる情報エンティティである。ファセットおよびファセット値は、アノーテータ・ソフトウェアが条件を検出してファセットを追加する、自然言語処理(NLP)パイプラインの結果として生成される場合がある。文書に関して、NLPは、文書を処理し、それに対してこれらのファセット値または特徴について調べる。例えば、ファセットは、e-コマース空間において、製品を分類するためのカテゴリであり得る。自然言語処理は、例として、文書に含まれる特定の語または句、それらが表現する文書もしくは項目についての作成日もしくは時間フレーム、またはそれらが表現する文書もしくは項目のセンチメント(sentiment)、トーン、もしくは言い方に対するカテゴリを特定することなど、様々な粒度のカテゴリを文書に割り振る場合がある。ファセットは、(例えば、検索時に)コーパス特性を理解するために集約される場合がある。ファセットを集約するとは、条件、例えば文書セットを検索する際のクエリ制約を追加することを称する。システム、またはユーザは、おそらくはクエリを介して文書セットを特定することができ、次いでその文書セットの中で、ソフトウェアが、カテゴリに対するソート、ランク付け、および他の処理を実施することができる。いくつかの例においては、それぞれのカテゴリの重要度を決定するためにフォーミュラが適用される。
【発明の概要】
【0003】
コンピュータ実装方法の提供を通じて、先行技術の欠点は克服され、さらなる利点が提供される。方法は、文書セット全体の文書を問い合わせるためのクエリを受信する。文書セット全体の文書は、1つまたは複数のファセット値で違っている。方法は、クエリのクエリ・テキストから複数の異なるクエリ解釈を生成する。方法、は複数の異なるクエリ解釈を実行して結果文書セットを取得する。複数の異なる実行可能なクエリ解釈のそれぞれの異なるクエリ解釈について、実行することは、クエリ解釈を実行して、そのクエリ解釈に対応する結果文書セットを、文書セット全体から取得して、結果文書セットに表現されるファセット値を特定する。方法は、さらに、クエリ絞り込みインターフェースを構築し、ユーザに提示する。クエリ絞り込みインターフェースは、複数の異なるクエリ解釈および結果文書セットのプロパティを提示する。加えて、クエリ絞り込みインターフェースは、1つまたは複数のファセット値のそれぞれについて、かつ、互いに対して、結果文書セットのそれぞれにおけるファセット値のファセット値表現を提示する。
【0004】
さらには、メモリと、メモリと通信するプロセッサを含むコンピュータ・システムが提供され、コンピュータ・システムは方法を実施するように構成される。方法は、文書セット全体の文書を問い合わせるためのクエリを受信する。文書セット全体の文書は、1つまたは複数のファセット値だけ違っている。方法は、クエリのクエリ・テキストから複数の異なるクエリ解釈を生成する。方法は、複数の異なるクエリ解釈を実行して結果文書セットを取得する。複数の異なる実行可能なクエリ解釈のそれぞれの異なるクエリ解釈について、実行することは、クエリ解釈を実行して、そのクエリ解釈に対応する結果文書セットを、文書セット全体から取得して、結果文書セットに表現されるファセット値を特定する。方法はさらに、クエリ絞り込みインターフェースを構築し、ユーザに提示する。クエリ絞り込みインターフェースは、複数の異なるクエリ解釈および結果文書セットのプロパティを提示する。加えて、クエリ絞り込みインターフェースは、1つまたは複数のファセット値のそれぞれについて、かつ、互いに対して、結果文書セットのそれぞれにおけるファセット値のファセット値表現を提示する。
【0005】
なお、さらに、処理回路によって読み取り可能であり、処理回路によって実行するための命令を記憶するコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品が、方法を実施するために提供される。方法は、文書セット全体の文書を問い合わせるためのクエリを受信する。文書セット全体の文書は、1つまたは複数のファセット値で違っている。方法は、クエリのクエリ・テキストから複数の異なるクエリ解釈を生成する。方法は、複数の異なるクエリ解釈を実行して結果文書セットを取得する。複数の異なる実行可能なクエリ解釈のそれぞれの異なるクエリ解釈について、実行することは、クエリ解釈を実行して、そのクエリ解釈に対応する結果文書セットを、文書セット全体から取得して、結果文書セットに表現されるファセット値を特定する。方法は、さらに、クエリ絞り込みインターフェースを構築し、ユーザに提示する。クエリ絞り込みインターフェースは、複数の異なるクエリ解釈および結果文書セットのプロパティを提示する。加えて、クエリ絞り込みインターフェースは、1つまたは複数のファセット値のそれぞれについて、かつ、互いに対して、結果文書セットのそれぞれにおけるファセット値のファセット値表現を提示する。
【0006】
さらなる特徴および利点が、本明細書において説明される概念を通じて実現される。
【0007】
次に、単なる例として、以下の図面を参照して、本発明の好ましい実施形態を説明する。
【図面の簡単な説明】
【0008】
【
図1】ファセットベースのテキスト・マイニングの例の図である。
【
図2A】本明細書において説明される実施形態による、例示の規則ベースのクエリ拡張ファセット・ナビゲーションの図である。
【
図2B】本明細書において説明される実施形態による、例示の規則ベースのクエリ拡張ファセット・ナビゲーションの図である。
【
図2C】本明細書において説明される実施形態による、ファセット・ナビゲーションのための概念ベースのクエリ修正の例の図である。
【
図2D】本明細書において説明される実施形態による、ファセット・ナビゲーションのための概念ベースのクエリ修正の例の図である。
【
図3】本明細書において説明される実施形態による、複数のクエリ解釈に対するファセット・ナビゲーションのための例示のプロセスの図である。
【
図4】本明細書において説明される実施形態による、例示のクエリ絞り込みインターフェースの図である。
【
図5】本明細書において説明される実施形態による、複数のクエリ解釈に基づくファセットベースのクエリ絞り込みのための例示のプロセスの図である。
【
図6】本明細書において説明される実施形態を組み込むため、または使用するため、あるいはその両方のためのコンピュータ・システムおよび関連デバイスの一例の図である。
【
図7】本発明の実施形態による、クラウド・コンピューティング環境の図である。
【
図8】本発明の実施形態による、抽象化モデル・レイヤの図である。
【発明を実施するための形態】
【0009】
複数のクエリ解釈に基づくファセットベースのクエリ絞り込みを、本明細書において説明する。初期のクエリから、異なるクエリ解釈が生成される。異なるクエリ解釈が実行され、ファセット/ファセット値についての情報が確認され、ファセットベースのナビゲーションに役立つよう絞り込みが適用される。
【0010】
述べたように、ファセットは、文書(情報要素)に関連付けられる、または文書に含まれる情報エンティティであり、文書の特性を投影または表現する。文書は、ファセットされた検索、ナビゲーション、およびブラウジングを可能にする分類システムにしたがって、複数のファセットに渡って分類される。用語「文書」は、情報エンティティ、またはマイニングの単位を称するために使用されるが、それぞれの「文書」はあらゆるタイプのデータから生み出すことができることが理解されよう。語「文書」は、厳密に、例えば文書処理ソフトウェアのデジタル文書として解釈されるべきではない(本明細書において使用される場合「文書」の例として、そのようなファイルである場合があるが)。情報要素の意味において、文書は、例えば画像を称することができる。e-コマースおよび製品の空間において、あるデータベースのレコードは、本明細書において使用される「文書」であり得る。文書データベースは、機能性の複数の異なるキー・エリアを提供する(ほぼ)無限に柔軟な構造を有しており、例えば、それらはスキーマレスであり得る-文書データベースがデータベースに記憶しなければならないデータの構造を事前定義する必要がない。文書データベースは、あらゆる情報を記憶することができる。広く使用される構造形式は、JavaScript(登録商標)言語によるオブジェクト表記法の形式であるJSONであり、文字列、数値、配列、レコード(ハッシュ)データ、およびこれらのコアタイプの組合せを記憶できるようにしている。
【0011】
ファセットのための値は、文書の、または文書に関連付けられるメタデータ内に記憶され得る。そのようなメタデータの例としては、場所(州、県)、名詞、形容詞もしくは文書に関連付けられるキーワードなどの文書の単純な特性、または例えば文書によって伝達される肯定的もしくは否定的な印象など、より複雑な特性があり得る。ファセットベースのテキスト・マイニングの手順は、ファセット集約を繰り返すこと、ファセットを閲覧すること、そして、特定のファセット値を表現する文書の集合である初期の「文書セット」を、絞り込まれた文書セットに絞り込むことである。ファセット集約とは、クエリに合致する結果文書のすべてを文書セットにグループ化すること、文書セットに関連付けられるファセット値をカウントすること、および文書セットについて、頻度、相関、同時発生性または(例として)文書セットについてのタイムライン分析あるいはその組合せを算出すること、を称することができる。文書セットの絞り込みでは、ファセット集約の考慮は、例えば、制約としてのさらなるキーワードもしくはファセット条件を追加すること、または本明細書において説明されるようなクエリ解釈を選択することに基づいて絞り込まれた文書セットの抽出につながる。繰り返される集約および絞り込みの結果、知識が得られ、新しい知見が見出される。
【0012】
図1は、ファセットベースのテキスト・マイニングの例を図示している。
図1において、それぞれ点描円は、特定の事実または概念を含む、-つまり、特定のファセット値が表現されている、文書セット(文書のセット)を表している。文書のユニバースがセットD(「全体的な」文書セット)で表現されており、点描円で表現される注目の文書セットを含んでいる。
図1では、D内の文書セットが相互に排他的であるとして示されているが、実用上のことを言うと、Dにおける少なくとも一部の文書セット間には一部の重なりが存在する場合があり、例えばサイズ「中型」かつ色「緑」の製品を表現する文書は、サイズ「中型」の製品についての文書セット、および色「緑」の製品についての文書セットに現れるであろう。
【0013】
図面は2つの絞り込みを示している。一番目は、3つの文書セットを文書セットDから文書セットD’へと分離するいくつかの制約または条件に基づいた、文書セットDから文書セットD’への絞り込みである。二番目の絞り込みは、D’を、この例では知識または知見の結果を表現する単一の文書セットへ絞り込む。
【0014】
具体的な例として、Dが車両事故記録のユニバースであり、第1のクエリが緑色の車両が関与するこれらの事故についてのものであると想定する。「車両の色」がファセットであり、「緑」は、初期の文書セットが検索されるそのファセットのファセット値である。これにより、3つの文書セットD’へ絞り込まれる。緑色の車両が関与するすべての事故のうち、年齢ベースのファセットがこれらの事故(D’の3つの互いに素な文書セットとして表現される)-年齢20歳未満の運転者が関与する事故、年齢20~70歳の間の運転者が関与する事故、および年齢70歳以上の運転者が関与する事故、を区別するものと想定する。第2の絞り込み-年齢20歳未満の運転者が関与するこれらの事故についてのD’に対するクエリとする-は、D’を、結果の知識を表現する単一の文書セット-緑色の車両かつ年齢20歳未満の運転者が関与する事故に絞り込む。
【0015】
本明細書において説明される実施形態によると、プロセスは、文書セット全体の文書を問い合わせるためのクエリ文字列を受け入れ、ここで、文書セット全体の文書は、1つまたは複数のファセット値で違っている。プロセスは、クエリを様々な方法で解釈し、そのクエリのクエリ・テキストから様々なクエリ解釈を生み出し、それらのクエリ解釈を実行して結果文書セットを取得する。「結果文書セット」は、クエリ解釈のうちの1つを実行することから結果として返される文書のセットである。したがって、それぞれの異なるクエリ解釈について、実行することは、クエリ解釈を実行して、そのクエリ解釈に対応する結果文書セットを、文書セット全体から(つまり、全体の部分集合として)取得する。プロセスは、結果文書セットに表現されるファセット値を特定する。例えば、それぞれの解釈について、結果文書セットが決定され、その結果文書セットの文書において表現されるファセット値が特定される。プロセスは、例えば異なるクエリ解釈の結果文書セットから抽出したファセット値に適用されたランク付け方法にしたがって、表現されるファセット値を配置または並べるインターフェースを、ユーザに表示することができる。
【0016】
したがって、ランク付けは、ファセット値を、少なくとも1つのファセット値ランク付け方法にしたがって互いに対してランク付けすることができ、インターフェースは、それらのファセット値のランク付けされた順序における他のファセット値のそれぞれに対して、結果文書セットのそれぞれにおける任意の所与のファセット値の表現を提示する。クエリ解釈を実行することにおいて、それぞれの結果文書セットについて、結果文書セット内の文書の数をカウントすることができ、それぞれのファセット値について、その結果文書セット内にあり、かつ、ファセット値が表現される文書の数を決定することができる。以下はいくつかの例示のランク付け方法である。
【0017】
一例のランク付け方法は、解釈の優先順位付けであり、例えば検索結果文書の数に基づいている。本明細書において説明されるように、クエリは、様々な方法で解釈することができる。対応する異なる結果文書セットが互いに対してランク付けされる。第1の解釈が1000結果文書を結果文書セットに提供する場合があり、第2の解釈が300結果文書を結果文書セットに提供する場合があり、第3の解釈が12結果文書を結果文書セットに提供する場合がある。これらの解釈は、例えば結果数の昇順などで、互いに対してランク付けされ得る。
【0018】
他の例示のランク付け方法は、ファセット値スコアを考慮する。例示のそのようなスコアは、文書頻度-特定のファセット値が結果文書セットに出現する頻度である。あるファセット値(例えば、語「Cognitive(コグニティブ)」)が、他のファセット値(例えば語「Quiz(クイズ)」および「Game(ゲーム)」)よりもずっと高い頻度で出現する場合がある。このスコアは、直観的である可能性があるが、小規模な検索結果文書セットには有用でないことがある。相関は、ランク付けに使用する別のファセット値スコアである。相関とは、ファセット値にわたる、文書セット全体に対する検索結果文書セット中のファセット値の相対的な密度を称し、文書セット全体に対して結果文書セットにこれらのファセット値が出現する頻度は変化する。このことを、
図2Dを参照して以下でさらに詳細に説明する。
【0019】
ファセット値ランク付けの一例は、異なるクエリ解釈に渡るファセット値についての最大スコアに基づいている。所与のファセット値について、それぞれのクエリ解釈は、ファセット値がその結果文書セットの文書によって表現される回数を有する結果文書セットを提供する。結果文書セットのそれぞれについての、この回数を、互いに比較してランク付けすることができる。このことを、
図2Bを参照して以下でさらに説明する。
【0020】
ファセットのランク付けの表現は、あらゆる所望のやり方で実行することができる。一例において(例えば、
図2Bに見られるように)、異なる解釈からの検索結果文書セットが包括的に関連している場合にファセット値を表示するために例えば累積棒グラフが使用される。追加的に、または代替的に、それぞれの解釈が独立的な検索結果文書セットを生ずる場合、ヒストグラムを使用することもできる。
【0021】
クエリを解釈する際、いくつかの例において、クエリ変換(query translation)規則のセットが使用される。異なるクエリ解釈が、クエリ変換規則のセットの、それぞれのクエリ変換規則を、クエリ・テキストに適用することによって生成され、ここで、適用することは、クエリを拡張すること、修正すること、または変形すること、あるいはその組合せを含む。規則ベースのクエリ拡張の実装例を次に示す。
【0022】
自然言語クエリ・テキストが”Company Machine Learning Idea”(”会社 機械 学習 アイデア”)であると想定する。この例では、単純なOR連結したキーワードに基づいて条件を徐々に厳しくすることにより、4つのクエリ解釈が生じる。
【0023】
クエリ解釈A:そのままの句:”Company Machine Learning Idea”(”会社 機械 学習 アイデア”)。
【0024】
クエリ解釈B:部分的な名詞句:(Company AND ”machine learning” AND idea)((会社 AND ”機械学習” AND アイデア))。
【0025】
クエリ解釈C:論理積されたキーワード:(Company AND idea AND machine AND learning)((会社 AND アイデア AND 機械 AND 学習))。
【0026】
クエリ解釈D:論理和されたキーワード:(Company OR idea OR machine OR learning)((会社 OR アイデア OR 機械 OR 学習))。
【0027】
クエリ解釈Aは、結果を返さない可能性があるか、または有用なマイニングとしては少なすぎる結果を返す可能性がある(例えば、適用した場合に結果同士にさらに有用な絞り込みを与えるファセット値がない)。クエリBは、適当な量の検索結果文書セットを返し、「Cognitive(コグニティブ)」、「Quiz(クイズ)」および「Game(ゲーム)」などの優れたファセット値を含む可能性がある(そして後続のステップとして、ユーザは例えばこれらのファセット値の1つまたは複数によって、文書セットをドリルダウンする場合がある)。クエリCは、多数の検索結果文書を返す可能性があるが、フラットなファセット分布である(「Cognitive(コグニティブ)」、「Quiz(クイズ)」および「Game(ゲーム)」について、比較的同一の頻度であることを意味する)。クエリ解釈Dは、最も広範であり、この例はさらなる価値を提供するには多すぎる文書セットを提供する可能性がある。
【0028】
これらの結果は、ユーザがクエリを絞り込むためのクエリ絞り込みインターフェースにおいて提示することができる。例えば、ボタンまたは他の対話的なインターフェース要素が、初期の文書セットを絞り込むための解釈のうちの1つ(または複数)を選択する選択用にユーザに提示され得る。解釈のそれぞれは、ユーザに伝達されるべき結果を表現している現在の文書セットを、選択されたクエリ解釈を実行することから取得された結果文書セットを含む絞り込まれた文書セットへと狭めるために、個別に選択することができる。
【0029】
同様に、ファセット値のうちの1つまたは複数を個別に選択して、現在の文書セットを、選択されたファセット値が表現される文書を含む絞り込まれた文書セットへと狭めるための個々の対話インターフェース要素を、インターフェースが追加的にまたは代替的に提示することができる。
【0030】
クエリ絞り込みインターフェースのさらなる詳細を、以下の
図4を参照して、図示して説明する。そのような絞り込みインターフェースのいくつかの要素を、
図2A~
図2Bを参照しながら、本明細書において説明される実施形態による、例示の規則ベースのクエリ拡張ファセット・ナビゲーションに関連して提示する。
【0031】
初めに
図2Aを参照し、また上の例示のクエリ(”Company Machine Learning Idea”(”会社 機械 学習 アイデア”))を使用すると、Wは、データベースの文書セット全体、つまり検索されるユニバースにおけるすべての文書の集合を表現している。Dは、上のクエリ解釈D((Company OR idea OR machine OR learning)(会社 OR アイデア OR 機械 OR 学習))を実行することから得られる結果文書セットを表現している。それぞれが特定の事実/ファセットを含むいくつかの文書セットが、点描円によって識別される。Cは、上のクエリ解釈C((Company AND idea AND machine AND learning)(会社 AND アイデア AND 機械 AND 学習))を実行することから得られる結果文書セットを表現している。その結果文書セットC内で、いくつかの異なるファセット値がそのセットの文書内で表現される-この例では、少なくともセットCによって部分的に包含される5つの点描円によって示される5つの異なるファセット値のうちすべての/いくつかの文書。
【0032】
Bは、上のクエリ解釈B((Company AND ”machine learning” AND idea)(会社 AND ”機械学習” AND アイデア))を実行することから得られる結果文書セットを表現している。文書セットBは、クエリBがクエリCの特殊なケースであることから、文書セットCの真の部分集合である。Aは、上のクエリ解釈A(”Company Machine Learning Idea”(”会社 機械 学習 アイデア”))を実行することから得られる結果文書セットを表現している。
【0033】
図2Bは、結果文書セットに存在するファセット値を表示するために使用される例示的な累積棒グラフを提示している。y軸は、ファセット「名詞」について、3つのファセット値-「Cognitive(コグニティブ)」、「Quiz(クイズ)」、および「Game(ゲーム)」を列挙している。文書頻度(x軸)とは、ファセット値が表現される文書の数を称している。それぞれのバー202、204、および206は、上の例の4つの異なるクエリ解釈と相関する構成要素セグメント-空白、点描、単線ハッチ、およびクロスハッチ-を有しており、異なるクエリ解釈のそれぞれからの文書の累積を表現している。それぞれのバーのクロスハッチ部分は、クエリDを実行することにより取得された結果文書セット内に、対応するファセット値が表現される頻度を表している。それぞれのバーの単線(斜線)ハッチ部分は、クエリCを実行することにより取得された結果文書セット内に、対応するファセット値が表現される頻度を表している。それぞれのバーの点描部分は、クエリBを実行することにより取得された結果文書セット内に、対応するファセット値が表現される頻度を表している。それぞれのバーの空白(白色)部分は、クエリAを実行することにより取得された結果文書セット内に、対応するファセット値が表現される頻度を表している。
【0034】
したがって、例えば、バー202から分かるように、ファセット値「Cognitive(コグニティブ)」キーワードは、クエリC、B、およびAを実行することから提供される文書セットの文書の数よりも、クエリDを実行することから提供される文書セットの多数の文書に出現する。クエリBおよびCを実行することから提供される文書セットの文書の数は、クエリBおよびCを実行することにより取得される文書セットにおける「Cognitive(コグニティブ)」の頻度についてとおおまかに等しい。ファセット値「Quiz(クイズ)」について、バー204の単線ハッチ部分は、バー204の他のセグメントよりもはるかに大きいことから、クエリCからの文書頻度(単線ハッチ部分)は、クエリA、B、およびDによる文書頻度よりもずっと多い。この特定の例では、累積的な文書頻度の全体によって、ファセット値がソートされ(y軸で上から下に並べられる)、ファセット値「Cognitive(コグニティブ)」についての文書頻度-クエリA~Dの実行において「Cognitive(コグニティブ)」が出現する合計回数が、クエリA~Dの実行においてファセット値「Quiz(クイズ)」が出現する合計回数よりも多いことを意味している。この点について、ファセット値(「Cognitive(コグニティブ)」、「Quiz(クイズ)」、「Game(ゲーム)」)は、少なくとも1つのファセット値ランク付け方法(例えばこの例では文書頻度)にしたがって互いに対してランク付けされる。クエリ絞り込みインターフェースは、ファセット値のランク付けされた順におけるファセット値のそれぞれ他のファセット値に対して、結果文書セットのそれぞれにおける(つまり、解釈にわたって)、それぞれのファセット値のファセット値表現(つまりファセット値の表現の尺度-この例では文書における頻度)を提示することができる。
【0035】
ファセット・ナビゲーション用の概念ベースのクエリ修正の例示の実装を次に示す。この手法では、単純なOR連結クエリから初めて、インテリジェントにカテゴリを抽出することにより、またはキーワードを拡張することにより、異なる解釈が生成される。
【0036】
自然言語クエリ・テキストが”What is the most outstanding company invention related to natural language processing?”(「自然言語処理に関する最も優れた会社の発明は何か?」)であると想定する。この例では、3つのクエリ解釈が生ずる:
【0037】
クエリ解釈A:カテゴリ付きの句、語:(”natural language processing” OR ”NLP”) AND category:AI AND company:Company((”自然言語処理” OR ”NLP”) AND カテゴリ:AI AND 会社:会社)。
【0038】
クエリ解釈B:抽出されたカテゴリ:company:Company AND category:AI(会社:会社 AND カテゴリ:AI)。
【0039】
クエリ解釈C:論理和された本質的なキーワード:outstand* OR Company OR invention OR language OR processing(最も優れた* OR 会社 OR 発明 OR 言語 OR 処理)。
【0040】
先のように、これらの解釈を実行した結果は、ユーザがクエリを絞り込むためにクエリ絞り込みインターフェース内で提供することができる。本明細書において説明される実施形態による、ファセット・ナビゲーション用の例示の概念ベースのクエリ修正に関連して、
図2C~
図2Dを参照して、例示のインターフェース要素を提示する。
【0041】
初めに
図2Cを参照すると、Wは、データベースの文書セット全体、つまり検索されるユニバースにおけるすべての文書のセットを表現している。Cは、上のクエリ解釈C(outstand* OR Company OR invention OR language OR processing(最も優れた
* OR 会社 OR 発明 OR 言語 OR 処理))を実行することから得られる結果文書セットを表している。Bは、上のクエリ解釈B(company:Company AND category:AI(会社:会社 AND カテゴリ:AI))を実行することから得られる結果文書セットを表しており、会社属性についてのファセット値が会社の名称(”Company”(”会社”))であり、カテゴリ属性についてのファセット値が人工知能、すなわちAIである文書を検索することを意味している。Aは、上のクエリ解釈A((”natural language processing” OR ”NLP”) AND category:AI AND company:Company((”自然言語処理” OR ”NLP”) AND カテゴリ:AI AND 会社:会社))を実行することから得られる結果文書セットを表現している。先のように、点描円は、特定のファセット値が表現される文書セットを表現している。
【0042】
図2Dは、ファセット値および結果文書セットに存在する相関を表示するための、例示の棒グラフを提示している。y軸はファセット「名詞」の2つのファセット値-”Cognitive(コグニティブ)”、および”Game(ゲーム)”を列挙している。この例では、それぞれのファセット値は、3つのクエリ解釈に対応する3つの関連付けられるバーを有する。クロスハッチのバーはクエリCを表現し、単線ハッチのバーはクエリBを表現し、点描されたバーはクエリAを表現している。ファセット値”Cognitive(コグニティブ)”は、バー210、212、214に関連付けられ、ファセット値”Game(ゲーム)”はバー216、218および220に関連付けられる。
【0043】
それぞれのバーの大きさは、相関の尺度(x軸)であり、文書セット全体内で表現されるファセット値に対する、結果文書セット内のファセット値の相対密度を称する。
図2Dを見ると、クエリ解釈B(バー212)は、ファセット値”Cognitive(コグニティブ)”に対する最高の相関を示しており、”Cognitive(コグニティブ)”を含むWのすべての文書のうち、クエリ解釈Bを実行することにより得られる文書セットが、クエリ解釈AまたはCを実行することにより得られる文書セットと比較してこれらの文書の最大数を捉えることを意味している。クエリ解釈A(点描のバー210)は、ファセット値”Cognitive(コグニティブ)”に対して二番目に高い相関スコアを有している。ファセット値”Game(ゲーム)”に関して、クエリ解釈Aは、最高の相関スコアを有しており、クエリBまたはCから得られる文書セットと比較して、解釈Aが、文書によって/において表現されるファセット値として”Game(ゲーム)”を有する最大の割合の文書を含む文書セットをもたらすことを意味している。インターフェースが、他の決定される相関スコアに対するそれぞれそのように決定される相関スコアの表現を提示することが分かる。
【0044】
いくつかの解釈は包括的に関連していないため、コーパス全体に対する相関が有用である場合がある。この例では、語”Game(ゲーム)”は、クエリAについてその相関が最も高いため、有用である場合がある。同時に、クエリ実行の試行錯誤を繰り返すことなく、ユーザは、クエリBと語”Cognitive(コグニティブ)”との組合せがその相関値によるマイニングに有用であることに気付くことができる。
【0045】
図2Dでは、ファセット値”Cognitive(コグニティブ)”および”Game(ゲーム)”が最大の相関によってy軸に沿ってソートされる。ファセット値”Cognitive(コグニティブ)”に見られる最大相関スコア(バー212)は、ファセット値”Game(ゲーム)”に見られる最大相関スコア(バー216)よりも高い。
【0046】
したがって、実行することの一部として、ならびにファセット値のそれぞれのファセット値、およびそれぞれの結果文書セットについて、相関スコアを決定することができ、スコアは、文書セット全体において表現されるファセット値(つまり、文書セット全体の文書におけるファセット値の出現)に対する、結果文書セットに表現されるファセット値(つまり、結果文書セットの文書におけるファセット値の出現)の密度を表現している。
【0047】
図3は、本明細書において説明される実施形態による、複数のクエリ解釈に対するファセット・ナビゲーションのための例示のプロセスを図示している。プロセスは、例えばデータベース・システムもしくはそのコンポーネントまたはデータベースと通信している1以上の他のコンピュータ・システム、あるいはその両方などの1以上のコンピュータ・システムによって実施される。
【0048】
プロセスは、最初に「現在の文書セット」を文書セット全体、または初期のクエリが実行される対象となる文書のユニバースに設定する(302)。現在の文書セットは、ファセットベースのクエリ絞り込みについて本明細書において説明される実施形態にしたがって絞り込まれるものである。プロセスは、ユーザによって入力されたテキストであり得るか、またはユーザ・クエリ、例えば、テキストに書き起こされた発話の自然言語クエリに基づいて生成されたテキストであり得る、ユーザのクエリ・テキストを受け入れる(304)。プロセスは、クエリ拡張、修正または変形あるいはその組合せを介してその初期のクエリの解釈を生成する(306)。これは、例として、クエリの語の削除、追加、または変更、例えばシンタックス変更、カテゴリ制約による概念変形、または初期のクエリにおいて表現される概念の導入もしくは変更を参照する。概念情報を介するクエリ修正を説明する上の例では、カテゴリ「人工知能(Artificial Intelligence;AI)」が解釈AおよびBに投入された。別の例は、語”コンピュータ(computer)”を”システム(system)”に変更することである。クエリ解釈はクエリ・テキストに適用されるクエリ変換規則により生成される場合がある。
【0049】
続いて
図3では、プロセスは、クエリ解釈ごとに、結果文書セットおよび(それらのセットにおいて表現される)ファセット値を、例えばクエリを実行して結果を精査することにより、算出する(308)。プロセスは、異なる解釈のそれぞれの結果文書セットについてのファセット値のスコアを算出する(310)。これらのスコアは、クエリ絞り込みインターフェースにおいてユーザに結果を提示する際、有用である場合がある。例えば、インターフェースを構築する際、プロセスは、ランク付け方法によりファセット値を並べ(312)、ユーザにクエリ絞り込みインターフェースの形態で解釈およびランク付けしたファセット値を返す(314)。
図5を参照して説明されるように、ユーザは、インターフェースを使用して解釈またはファセット値あるいはその両方を絞り込みのために選択することができる。プロセスは、ユーザが解釈またはファセット値あるいはその両方を絞り込みのために選択するかどうかを判断する。選択しない場合(316、いいえ)、プロセスは終了する。そうではない場合(316、はい)、ユーザは、例えばクエリを生成され実行された解釈のうちの1つに絞り込むことによって、または1つもしくは複数の選択されたファセット値に絞り込むことによって、あるいはその両方によって、初期のクエリを絞り込むことを選択する。この場合のプロセスは、現在の文書セットを、指定された条件(解釈またはファセット値あるいはその両方)で更新し(318)、304に戻る。304に戻る際、一例では、ユーザは新しい、または修正されたクエリを、入力または与えることができ、これは(今絞り込まれた)現在の文書セットに対して実行され、その新しい/修正されたクエリについて、
図3の解釈の生成などを繰り返す。
【0050】
したがって、プロセスは、初期のクエリについて304~316を進み、新しいクエリについて、ユーザが(i)クエリ解釈、または(ii)文書セット全体を絞り込まれた文書セットへと絞り込むファセット値あるいはその両方を選択することに基づいて、生成すること(306)、算出すること/並べること(308~312)、および提示すること(314)を反復することができる。反復する際、絞り込まれた文書セットは、繰り返すことにおいて文書セット全体として使用され、繰り返すことに使用されるクエリは新しいクエリであり、生成された異なるクエリ解釈は、その新しいクエリのクエリ・テキストの異なるクエリ解釈である。新しいクエリは、(i)ユーザによって入力された別のクエリ、または(ii)初期のクエリの修正版、あるいはその両方を含むことができ、修正版は、選択されたクエリ解釈またはファセット値に基づいて生成される。
【0051】
図4は、本明細書において説明される実施形態による、例示のクエリ絞り込みインターフェースを図示している。インターフェース400は、ユーザが、自然言語クエリを入力するための、オリジナルのNLQテキスト・ボックス402、および対応する検索ボタン404を提示している。代替として、ユーザは、テキストベースの入力クエリに置き換えられるクエリを指示(dictate)する。クエリのユーザ入力は、本明細書において説明されるアクション、例えば
図3または
図6あるいはその両方の処理をトリガすることができる。この例では、NLQは、”Company Machine Learning Idea”(”会社 機械 学習 アイデア”)である(上で説明した例)。
【0052】
生成された解釈406a(解釈A)、406b(解釈B)、406c(解釈C)、406d(解釈D)が、インターフェース400に提示されている。解釈406a、406bおよび406cの隣にあるのは、結果文書セットのそれぞれにおける文書の数の指標-解釈ごとに1文書セットである。ユーザは、「検索に追加」インターフェース要素408a、408b、408c(この例では、ボタン)を使用して、クエリをそれぞれ解釈A、B、またはCにそれぞれ絞り込むこと、換言すれば、クエリ結果をユーザに伝達することにおいて、システムにその解釈を使用することを指示することができる。これらのボタンのうちの1つをクリックすることは、現在の文書セットを絞り込む/狭める(
図3の316、はい)ためのユーザによる例示の選択であり、マイニング・エクスペリエンスを実装する。これは、
図1を参照して説明したような、DからD’への絞り込みに似ている。
【0053】
インターフェース400は、さらに、この例では
図2Bのものである、累積棒グラフを提示している。ファセット値”Cognitive(コグニティブ)”、”Quiz(クイズ)”および”Game(ゲーム)”は、文書頻度の降順に上から下にソートされ、それぞれのバーはそれぞれの文書セットの、4つのクエリ解釈のすべての結果文書セットに渡ってファセット値が出現する合計回数に対する寄与を示している。
【0054】
インターフェース400は、これらのファセット値のそれぞれについて、ファセット値のそれぞれを個別に選択してそれを検索に追加するための、個々の対話インターフェース要素(ボタン410a、410b、410c)を提示している。ファセット値のうちの1つの検索に追加ボタンを選択することは、現在の文書セットを、選択されたファセット値が表現される文書を含む絞り込まれた文書セットに狭める。
【0055】
インターフェース400が構築され、ユーザに提示され得る。インターフェースは、異なるクエリ解釈および結果文書セットのプロパティ(例えば、解釈ごとのそれぞれの結果文書セットにおける、ヒット数/文書)を提示することができる。それは、追加的に、ファセット値のそれぞれについて、かつ、互いに対して、結果文書セットのそれぞれにおけるファセット値のファセット値表現を提示する。
【0056】
図5は、本明細書において説明される実施形態による、複数のクエリ解釈に基づくファセットベースのクエリ絞り込みのための例示のプロセスを図示している。いくつかの例では、プロセスは本明細書において説明されるコンピュータ・システムのような1つまたは複数のコンピュータ・システムによって実施され、1つもしくは複数のデータベース・システム、データベース、クエリ・ハンドラ、または1つもしくは複数の他のコンピュータ・システムあるいはその組合せを含む場合がある。
【0057】
プロセスは、文書セット全体の文書を問い合わせるためのクエリを受信することによって開始する(502)。文書セット全体の文書は、1つまたは複数のファセット値で違っており、これは、文書のうち少なくとも一部が、それらがどのファセット値を含む、表す、示すかなどに関して異なっていることを意味している。一例として、クエリは、ユーザによってサブミットされる自然言語クエリである。プロセスは、クエリのクエリ・テキストから複数の異なるクエリ解釈を生成する(504)。いくつかの例では、プロセスは、クエリ変換規則のセットを取得し、クエリ変換規則のセットのそれぞれのクエリ変換規則をクエリ・テキストに適用することによって、複数の異なるクエリ解釈を生成する。クエリ変換規則のセットのクエリ変換規則を適用することは、本コンテキストでは、クエリを、拡張すること、修正すること、または変形すること、あるいはその組合せを含む。
【0058】
プロセスは、複数の異なるクエリ解釈を実行することによって続行して、結果文書セットを取得する(506)。複数の異なる実行可能なクエリ解釈のそれぞれの異なるクエリ解釈について、実行することは、クエリ解釈を実行して、そのクエリ解釈に対応する結果文書セットを、文書セット全体から取得して、結果文書セットに表現されるファセット値を特定する。実行することは、複数の結果文書セットのそれぞれの結果文書セットについて、結果文書セット内の文書の数、および、1つまたは複数のファセット値のそれぞれのファセット値について、条件(i)文書が文書セット内に出現すること、および(ii)ファセット値が文書に表現されること、を満足する文書の数、をカウントすることができる。追加的に、または代替的に、実行することは、1つまたは複数のファセット値のそれぞれのファセット値、および複数の結果文書セットのそれぞれの結果文書セットについて、文書セット全体において表現されるファセット値に対する、結果文書セットに表現されるファセット値の密度を表現する相関スコアを決定することをさらに含むことができる。互いに対して決定された相関スコアの表現は、クエリ絞り込みインターフェースに提示することができる(例えばステップ510において)。実行の結果を使用して、プロセスは、少なくとも1つのファセット値ランク付け方法にしたがって互いに対して1つまたは複数のファセット値をランク付けする(508)。
【0059】
プロセスは、クエリ絞り込みインターフェースを構築し、ユーザに提示する(510)。クエリ絞り込みインターフェースは、複数の異なるクエリ解釈および結果文書セットのプロパティを提示し、加えて、1つまたは複数のファセット値のそれぞれについて、互いに対して、結果文書セットのそれぞれにおけるファセット値のファセット値表現を提示する。クエリ絞り込みインターフェースは、1つまたは複数のファセット値のランク付けされた順で、1つまたは複数のファセット値のそれぞれ他のファセット値に対して、結果文書セットのそれぞれにおける、ファセット値のファセット値表現を提示することができる。結果文書セットの例示のプロパティは、複数の結果文書セットのそれぞれの結果文書セット内の文書の数である。
【0060】
クエリ絞り込みインターフェースは、ユーザが異なるクエリ解釈のいずれかを個別に選択して、ユーザに伝達されるべき結果を表現している現在の文書セットを、選択されたクエリ解釈に対応する結果文書セットを含む絞り込まれた文書セットに狭めるためのボタンなどの個々の対話インターフェース要素をさらに提示することができる。クエリ絞り込みインターフェースは、1つまたは複数のファセット値のそれぞれを個別に選択して、現在の文書セットを、選択されたファセット値が表現される文書を含む絞り込まれた文書セットへと狭めるための個々の対話インターフェース要素をさらに提示することができる。
【0061】
所望であれば、ユーザは、絞り込みを選択することができる。
図5のプロセスは、絞り込みが選択されるかどうかを判断する(512)。選択されない場合(512、いいえ)、プロセスは終了する。そうではない場合(512、はい)、ユーザは絞り込みを選択している。これらの例では、クエリは初期のクエリであり、プロセスは502に戻って、生成すること、実行すること、ランク付けすること、ならびに構築して提示することを繰り返し、これはユーザが(i)複数の異なるクエリ解釈のうちのひとつのクエリ解釈、または(ii)1つまたは複数のファセット値のうちのひとつのファセット値、あるいはその両方を選択することに基づくことができる。そのような選択することは、文書セット全体を、絞り込まれた文書セットへと絞り込み、ここで、絞り込まれた文書セットは、繰り返すことにおいて文書セット全体として使用され、繰り返すことに使用されるクエリは、新しいクエリであり、生成された複数の異なるクエリ解釈は、その新しいクエリのクエリ・テキストの異なるクエリ解釈である。新しいクエリは、例えば、(i)ユーザによって入力された別のクエリ、または(ii)初期のクエリの修正版を含むことができ、修正版は選択されたクエリ解釈またはファセット値に基づいて生成される。
【0062】
様々な例が与えられるが、特許請求される態様の思想から逸脱することなく変形が可能である。
【0063】
本明細書において説明されるプロセスは、1つもしくは複数のデータベース・コンピュータ・システム、または1つもしくは複数のデータベースと通信するコンピュータ・システムあるいはその組合せ、などの1つまたは複数のコンピュータ・システムによって、単独でまたは協同的に実施することができる。
図6は、本明細書において説明される態様を組み込むため、または使用するため、あるいはその両方のための、そのようなコンピュータ・システムおよび関連デバイスの一例を図示している。コンピュータ・システムは、本明細書においてはデータ処理デバイス/システム、コンピューティング・デバイス/システム/ノード、または単にコンピュータとも称される場合がある。コンピュータ・システムは、様々なシステム・アーキテクチャまたは命令セット・アーキテクチャあるいはその両方のうちの1つまたは複数に基づくことができ、例えば、インターナショナル・ビジネス・マシーンズ・コーポレーション社(アメリカ合衆国、ニューヨーク州、アーモンク)、インテル社(アメリカ合衆国、カリフォルニア州、サンタクララ)またはARMホールディングス社(イギリス、イングランド、ケンブリッジ)によって提供されるようなものである。
【0064】
図6は、外部デバイス612と通信するコンピュータ・システム600を示している。コンピュータ・システム600は、1つまたは複数のプロセッサ602、例えば中央処理装置(CPU)を含む。プロセッサは、キャッシュまたは主メモリなどの場所からプログラム命令をフェッチすること、プログラム命令をデコードすること、およびプログラム命令を実行すること、命令実行のためのメモリにアクセスすること、および実行された命令の結果を書き込むこと、のための機能的なコンポーネントなど、命令の実行に使用するための機能的なコンポーネントを含むことができる。プロセッサ602は、さらに機能的なコンポーネントのうちの1つまたは複数によって使用されるレジスタを含むことができる。コンピュータ・システム600は、メモリ604、入力/出力(I/O)デバイス608、およびI/Oインターフェース610をさらに含み、1つもしくは複数のバスまたは他の接続あるいはその組合せを介して、プロセッサ602および互いに結合することができる。バス接続は、バス構造のいくつかのタイプのうちの任意の1つまたは複数を表現しており、様々なバス・アーキテクチャの任意のものを使用する、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサまたはローカル・バスを含む。限定ではなく例として、そのようなアーキテクチャはインダストリ・スタンダード・アーキテクチャ(ISA)、マイクロ・チャネル・アーキテクチャ(MCA)、エンハンストISA(EISA)、Video Electronics Standards Association(VESA)ローカル・バス、およびPeripheral Component Interconnect(PCI)を含む。
【0065】
メモリ604は、プログラム命令の実行に使用される主メモリもしくはシステム・メモリ(例えば、ランダム・アクセス・メモリ)、例としてハード・ドライブ、フラッシュ・メディア、もしくは光学メディアなどのストレージ・デバイス、またはキャッシュメモリあるいはその組合せ、であり得るか、または含むことができる。メモリ604は、プロセッサ602のローカル・キャッシュ(例ではL1キャッシュ、L2キャッシュなどを含んでいる)に結合することができる、例えば共有キャッシュなどのキャッシュを含むことができる。追加的に、メモリ604は、1つまたは複数のプロセッサによって実行されると本明細書において説明される実施形態の機能を実行するように構成される、プログラム・モジュール、命令、コードなどの(例えば少なくとも1つの)セットを有する少なくとも1つのコンピュータ・プログラム製品であり得るか、含むことができる。
【0066】
メモリ604は、オペレーティング・システム605、および本明細書において説明される態様を実施するよう実行する1つまたは複数のコンピュータ・プログラム/アプリケーションなどの他のコンピュータ・プログラム606を記憶することができる。具体的に、プログラム/アプリケーションは、明細書において説明される態様の実施形態の機能を実行するように構成することができるコンピュータ可読プログラム命令を含むことができる。
【0067】
I/Oデバイス608の例としては、マイクロフォン、スピーカ、全地球測位システム(GPS)デバイス、カメラ、照明、加速器、ジャイロスコープ、磁気計、光、近接性、心拍数、体温もしくは周囲温度またはその両方、血圧、または皮膚抵抗あるいはその組合せを感知するように構成されるセンサ・デバイス、および活動計が挙げられるが、それに限定されない。I/Oデバイスは、示されるようなコンピュータ・システムに組み込むことができるが、いくつかの実施形態では、I/Oデバイスは、1つまたは複数のI/Oインターフェース610を通じてコンピュータ・システムに結合される外部デバイス(612)と見なすことができる。
【0068】
コンピュータ・システム600は、1つまたは複数のI/Oインターフェース610を介して1つまたは複数の外部デバイス612と通信することができる。外部デバイスの例としては、キーボード、ポインティング・デバイス、ディスプレイ、またはユーザがコンピュータ・システム600と対話できるようにするあらゆる他のデバイス、あるいはその組合せが挙げられる。他の例示の外部デバイスとしては、コンピュータ・システム600が1つまたは複数の、他のコンピューティング・システムまたはプリンタなどの周辺機器と通信できるようにするあらゆるデバイスが挙げられる。ネットワーク・インターフェース/アダプタは、コンピュータ・システム600が、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(例えば、インターネット)あるいはその組合せなどの、1つまたは複数のネットワークと通信できるようにする例示のI/Oインターフェースであり、他のコンピューティング・デバイスまたはシステム、ストレージ・デバイスなどとの通信を可能にしている。(Wi-Fi(登録商標)などの)イーサネット(登録商標)ベースのインターフェースおよびBluetooth(登録商標)アダプタは、コンピュータ・システムで使用される現在利用可能なタイプのネットワーク・アダプタの例に過ぎない(BLUETOOTHは、アメリカ合衆国、ワシントン州、カークランド、Bluetooth SIG, Inc.の登録商標である)。
【0069】
I/Oインターフェース610と外部デバイス612との間の通信は、イーサネット(登録商標)ベースのワイヤードまたはワイヤレス接続など、ワイヤードまたはワイヤレスあるいはその両方の通信リンク611で生じ得る。例示のワイヤレス接続としては、セルラ、Wi-Fi(登録商標)、Bluetooth(登録商標)、近接ベース、近接場、または他のタイプのワイヤレス接続が挙げられる。より一般的には、通信リンク611は、データを通信するための、あらゆる適当なワイヤレスまたはワイヤードあるいはその両方の通信リンクであり得る。
【0070】
特定の外部デバイス612は、1つもしくは複数のプログラム、1つもしくは複数のコンピュータ可読プログラム命令、またはデータあるいはその組合せを記憶することができる、1つまたは複数のデータ・ストレージ・デバイスを含むことができる。コンピュータ・システム600は、リムーバブル/非リムーバブルの、揮発性/非揮発性のコンピュータ・システム記憶媒体を含むことができるか、またはそれらに結合することができるか、あるいはその両方であり、また、(例えばコンピュータ・システムの外部デバイスとして)それらと通信している。例えば、非リムーバブルの、非揮発性の磁気媒体(典型的には「ハード・ドライブ」と呼ばれる)、リムーバブル、非揮発性の磁気ディスク(例えば、「フロッピー(登録商標)・ディスク」)からの読み取りおよびそれへの書き込みのための磁気ディスク・ドライブ、またはCD-ROM、DVD-ROMもしくは他の光学媒体などのリムーバブル、非揮発性の光学ディスクからの読み取りまたはそれへの書き込みのための光学ディスク・ドライブ、あるいはその組合せを含むことができるか、またはそれに結合することができるか、あるいはその組合せである。
【0071】
コンピュータ・システム600は、多くの他の汎用または特殊目的の、コンピューティング・システム環境または構成で動作可能であり得る。コンピュータ・システム600は、様々な形態のいずれかをとることができ、その周知の例としては、パーソナル・コンピュータ(PC)システム、メッセージング・サーバなどのサーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ワークステーション、ラップトップ、ハンドヘルド・デバイス、スマートフォンなどのモバイル・デバイス/コンピュータ、タブレット、およびウェアラブル・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、電話デバイス、ネットワーク家電(エッジ家電など)、仮想化デバイス、ストレージ・コントローラ、セット・トップ・ボックス、プログラム可能家電、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記システムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などが挙げられるが、それに限定されない。
【0072】
本明細書において説明される態様は、クラウド・コンピューティング環境に組み込まれる場合があるか、またはクラウド・コンピューティング環境を使用する場合があるか、あるいはその両方である。本開示はクラウド・コンピューティングについての詳細な説明を含むが、本明細書で具陳される教示の実装形態はクラウド・コンピューティング環境に限定されないことを理解されたい。むしろ本発明の実施形態は、現在既知の、または後に開発されるあらゆる他のタイプのコンピューティング環境と併せて実装することができる。
【0073】
クラウド・コンピューティングは、最小限の管理努力またはサービスのプロバイダとの対話で迅速にプロビジョニングおよびリリースされ得る、便利でオン・デマンドの構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有されるプールへのネットワーク・アクセスを可能とするためのサービス提供のモデルである。このクラウド・モデルは、少なくとも5つの特徴、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含むことができる。
【0074】
特徴は以下のとおりである:
オン・デマンド・セルフサービス:クラウド消費者は、サービスのプロバイダとの人的な対話を要求することなく必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
幅広いネットワーク・アクセス:機能はネットワーク上で利用可能であり、異質なシンまたはシックなクライアントのプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを通じてアクセスされる。
リソース・プール:プロバイダのコンピューティング・リソースは、マルチテナントのモデルを使用する複数の消費者にサービス提供するためにプールされ、異なる物理的および仮想的なリソースが要求にしたがって動的に割り当ておよび再割り当てされる。消費者が提供されるリソースの正確な場所についての制御または情報を一般的に持たない点で、場所の独立性の意味があるが、より高レベルの抽象化(例えば、国、州、またはデータセンタ)において場所を特定できることもある。
迅速な拡張性:機能は迅速かつ拡張可能にプロビジョニングすることができ、いくつかの場合において、自動的に、素早くスケール・アウトされ、迅速にリリースされて素早くスケール・インされる。消費者にとって、プロビジョニングのために利用可能な機能は、しばしば無制限に見え、いつでもいくらでも購入することができる。
計測されるサービス:クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適当な抽象化のいくつかのレベルにおいて計測機能を活用することによりリソースの使用を自動的に制御し、最適化する。リソースの使用量は監視され、制御され、かつ報告され得、利用されるサービスのプロバイダおよび消費者の両方にとって透明性を与えている。
【0075】
サービス・モデルは以下のとおりである:
ソフトウェアを提供するサービス(Software as a Service(SaaS)):消費者に提供される機能は、クラウド・インフラストラクチャで実行するプロバイダのアプリケーションを使用する。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インターフェース(例えば、ウェブ・ベースの電子メール)を通じて様々なクライアント・デバイスからアクセス可能である。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、またはさらには個々のアプリケーション機能を含む基礎となるクラウド・インフラストラクチャを管理または制御することはなく、例外として限定されたユーザ固有アプリケーションの構成設定が可能である。
プラットフォームを提供するサービス(Platform as a Service(PaaS)):消費者に提供される機能は、消費者作成のクラウド・インフラストラクチャ、またはプロバイダによってサポートされるプログラミング言語およびツールを使用して作成された取得されたアプリケーションに展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラストラクチャの管理または制御をしないが、展開されたアプリケーション、および場合によっては環境構成をホストするアプリケーションについての制御を有する。
インフラストラクチャを提供するサービス(Infrastructure as a Service(IaaS)):消費者に提供される機能は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを消費者が展開および実行することができる処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることである。消費者は、基礎となるクラウド・インフラストラクチャの管理または制御をしないが、オペレーティング・システム、ストレージ、展開されたアプリケーション、および場合によっては選択ネットワーキング・コンポーネント(例えば、ホスト・ファイヤウォール)の限定された制御についての制御を有する。
【0076】
展開モデルは以下のとおりである:
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織のためだけに運用される。その組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有される事案(例えば、ミッション、セキュリティ要件、ポリシ、およびコンプライアンス懸案事項)を有する特定のコミュニティをサポートする。その組織またはサード・パーティによって管理され得、オンプレミスまたはオフプレミスで存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆または大規模な業界団体に対して利用可能とされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、一意なエンティティのままである2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)を組合せたものであるが、データおよびアプリケーションのポータビリティを可能にする標準化された、またはプロプライエタリな技術(例えば、クラウド間でロード・バランシングを行うためのクラウド・バースト)によって結合される。
クラウド・コンピューティング環境は、ステートレスであること、低い結合性、モジュール性、および意味論的な相互運用性に集中するサービス指向である。クラウド・コンピューティングの中心は、相互接続されたノードのネットワークを含むインフラストラクチャである。そのようなノードが、
図7に図示されているノード10である。
【0077】
コンピューティング・ノード10は、適切なクラウド・コンピューティング・ノードのただの一例であり、本明細書で説明される本発明の実施形態の使用または機能性の範囲に関していかなる制限を提示するように意図されていない。とにかく、クラウド・コンピューティング・ノード10は、本明細書で上述の機能性のあらゆるものを実装または実施あるいはその両方を行うことができる。
【0078】
次に
図7を参照すると、例示的なクラウド・コンピューティング環境50が図示されている。示されるように、クラウド・コンピューティング環境50は、例えば、スマートフォンまたは他のモバイル・デバイス54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54Nあるいはその組合せなどのクラウドの消費者によって使用されるローカルのコンピューティング・デバイスと通信することができる1つまたは複数のコンピューティング・ノード10を含む。ノード10は互いに通信することができる。本明細書において上述のようなプライベート、コミュニティ、パブリック、もしくはハイブリッドのクラウドまたはその組合せなどの1つまたは複数のネットワークにおいて、これらは物理的または仮想的にグループ化することができる(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウドの消費者がローカルのコンピューティング・デバイスでリソースを維持する必要のない、インフラストラクチャ、プラットフォーム、またはソフトウェアあるいはその組合せをサービスとして与えることができる。
図7に示されるコンピューティング・デバイス54A~54Nのタイプは、図示のみを意図されており、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、あらゆるタイプのネットワーク上またはネットワーク・アドレス可能な接続で(例えば、ウェブ・ブラウザを使用して)あるいはその両方であらゆるタイプのコンピュータ化されたデバイスと通信することができることが理解されよう。
【0079】
図8を参照すると、クラウド・コンピューティング環境50(
図7)によって提供される機能的な抽象化レイヤのセットが示されている。
図8に示されるコンポーネント、レイヤ、および機能は、図示のみを意図されており、本発明の実施形態はそれに限定されないことがまず理解されるべきである。描写されるように、以下のレイヤおよび対応する機能が提供される。
【0080】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例としては、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66が挙げられる。いくつかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67、およびデータベース・ソフトウェア68を含む。
【0081】
仮想化レイヤ70は、仮想エンティティの以下の例を提供することができる抽象化レイヤを与える:仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、および仮想クライアント75。
【0082】
一例において、管理レイヤ80は以下で説明される機能を提供することができる。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実施するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計測および課金82は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費についての課金または請求書発行を提供する。一例において、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクについての識別情報の検証、ならびにデータおよび他のリソースについての保護を提供する。ユーザ・ポータル83はクラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス水準管理84は、要求されるサービス水準が満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス水準合意(SLA)計画および遂行85は、将来的な要求がSLAにしたがって予期されるクラウド・コンピューティング・リソースについての事前申し合わせ、およびクラウド・コンピューティング・リソースの調達を提供する。
【0083】
ワークロード・レイヤ90はクラウド・コンピューティング環境が利用され得る機能性の例を提供する。このレイヤからもたらされ得るワークロードおよび機能の例として以下が挙げられる:マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想授業教育配信93、データ分析処理94、トランザクション処理95、およびクエリ絞り込み96。
【0084】
本発明は、統合のあらゆる可能な技術的詳細レベルにおける、システム、方法、またはコンピュータ・プログラム製品あるいはその組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体を含むことができる。
【0085】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および記憶することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは前述のあらゆる適切な組合せであってもよいが、それに限定はしない。コンピュータ可読記憶媒体のより具体的な例の非網羅的な列挙としては、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(登録商標)・ディスク、命令を記録されて有するパンチカードまたは溝に刻まれた構造などの機械的にエンコードされたデバイス、および前述のあらゆる適切な組合せ、を含む。本明細書において使用される場合、コンピュータ可読記憶媒体は、電波または他の自由に伝搬する電磁波、導波路もしくは他の送信媒体(例えば、光ファイバ・ケーブルを通過する光パルス)を介して伝搬する電磁波、または電線を介して送信される電気的信号など、一過性の信号そのものであると解釈されてはならない。
【0086】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、個別のコンピューティング/処理デバイスに、あるいは、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組合せなどのネットワークを介して、外部のコンピュータもしくは外部のストレージ・デバイスに、ダウンロードすることができる。ネットワークは、銅の送信ケーブル、光学送信ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバあるいはその組合せを含むことができる。それぞれのコンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、個別のコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するためにコンピュータ可読プログラム命令を転送する。
【0087】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいはSmaltalk(登録商標)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語などの手続き型プログラミング言語もしくは類似するプログラミング言語、を含む1つまたは複数のプログラミング言語のあらゆる組合せで記述された、ソース・コードまたはオブジェクト・コードのいずれかであってもよい。コンピュータ可読プログラム命令は、すべてユーザのコンピュータ上で、一部はユーザのコンピュータ上でスタンドアロンのソフトウェア・パッケージとして、一部はユーザのコンピュータ上かつ一部は遠隔のコンピュータ上で、またはすべて遠隔のコンピュータ上もしくはサーバ上で、実行することができる。後者のシナリオにおいて、遠隔のコンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含むあらゆるタイプのネットワークを介してユーザのコンピュータに接続することができ、または接続は外部のコンピュータ(例えば、インターネット・サービス・プロバイダを使用するインターネットを介して)に対してなされてもよい。一部の実施形態において、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行して電子回路を個別化することができる。
【0088】
本発明の態様は本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフロー・チャート図またはブロック図あるいはその両方を参照しながら本明細書において説明される。フロー・チャート図またはブロック図あるいはその両方のそれぞれのブロック、およびフロー・チャート図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
【0089】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が、フロー・チャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用を実装する手段を作成すべく、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を作るものであってよい。これらのコンピュータ可読プログラム命令はまた、命令を記憶して有するコンピュータ可読記憶媒体が、フロー・チャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用の態様を実装するための命令を含む製造物品を備えるべく、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに特定のやり方で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
【0090】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行する命令が、フロー・チャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/作用を実装するべく、コンピュータ実装処理を作るために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作可能なステップを実施させるものであってもよい。
【0091】
図面中のフロー・チャートおよびブロック図は、本発明の様々な実施形態にしたがって、システム、方法、およびコンピュータ・プログラム製品の可能な実装形態の、アーキテクチャ、機能性、および動作を図示している。この点において、フロー・チャートまたはブロック図のそれぞれのブロックは、指定される論理機能を実装するための1つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表現することができる。一部の代替的な実装形態において、ブロックにおいて示した機能は図面で示した順とは異なって生じてもよい。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行されてもよく、またはブロックは関与する機能性によっては、時に逆の順で実行されてもよい。ブロック図またはフロー・チャート図あるいはその両方のそれぞれのブロック、およびブロック図またはフロー・チャート図あるいはその両方のブロックの組合せは、指定される機能もしくは動作を実施する、または特殊目的ハードウェアおよびコンピュータ命令の組合せを実行する、特殊目的ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
【0092】
上記に加え、1つまたは複数の態様が、顧客環境の管理を提供するサービス・プロバイダによって提供、提案、展開、管理、サービスなどがなされ得る。例えば、サービス・プロバイダは、1つまたは複数の顧客に1つまたは複数の態様を実施するコンピュータ・コードまたはコンピュータ・インフラストラクチャあるいはその両方を、作成すること、維持すること、サポートすることなどができる。その見返りに、サービス・プロバイダは、例として購読または料金契約あるいはその両方の下で顧客から支払いを受け取ることができる。追加的に、または代替的に、サービス・プロバイダは、1つまたは複数のサード・パーティへの広告コンテンツの販売から支払いを受け取ることができる。
【0093】
一態様において、アプリケーションは1つまたは複数の実施形態を実施するために展開することができる。一例として、アプリケーションを展開することは、1つまたは複数の実施形態を実施するよう動作可能なコンピュータ・インフラストラクチャを提供することを含む。
【0094】
さらなる態様として、コンピューティング・インフラストラクチャを、コンピュータ可読コードをコンピューティング・システムに統合することを含んで展開することができ、その場合コードは、コンピューティング・システムと組合せて1つまたは複数の実施形態を実施することができる。
【0095】
なおさらなる態様として、コンピュータ可読コードをコンピュータ・システムに統合することを含むコンピューティング・インフラストラクチャを統合するためのプロセスが提供され得る。コンピュータ・システムは、コンピュータ可読媒体を含み、その場合コンピュータ媒体は1つまたは複数の実施形態を含む。コードは、コンピュータ・システムと組合せて1つまたは複数の実施形態を実施することができる。
【0096】
様々な実施形態を上で説明したが、これらはただの例である。例えば、他のアーキテクチャのコンピューティング環境を使用して、1つまたは複数の実施形態を組み込んで使用することができる。
【0097】
本明細書で使用される用語は、特定の実施形態を説明することだけを目的としており、限定的であることを意図されていない。本明細書で使用される場合、コンテキストが明確にそうではないと指示しない限り、単数形「1つの(a)」、「1つの(an)」および「その(the)」は複数形を同様に含むように意図されている。用語「を含む(comprise)」または「を含む(comprising)」あるいはその両方は、本明細書で使用される場合、述べられた特徴、整数、ステップ、動作、要素、またはコンポーネントあるいはその組合せの存在を特定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネントまたはそのグループあるいはその組合せの、存在または追加を排除しないことが、さらに理解されよう。
【0098】
以下の特許請求の範囲における、すべての機能付き手段または機能付き工程の要素の対応する構造、材料、作用、および等価物は、もしあれば、具体的に特許請求されるような他の特許請求される要素と組合せて機能を実施するために、あらゆる構造、材料、または作用を含むことを意図されている。例示および説明を目的として、1つまたは複数の実施形態の説明を提示してきたが、網羅的であること、または開示された形態に限定することは意図されていない。多くの修正形態および変形形態が当業者にとって明らかとなろう。実施形態は、様々な態様および実践的な用途を最良に説明するために選ばれ説明されたものであり、企図される特定の使用に適した様々な修正形態を伴う様々な実施形態を、当業者の他の者に理解させることができる。