(57)【要約】      （修正有）【課題】コンテキスト上のコマンドに基づいて動作を実施するためのシステムおよび方法を提供する。【解決手段】方法は、情報を対話型で検索することを含み、コンテキスト内の入力を受け取り、入力値に関して、削減、緩和および場所の取り扱いのうちの少なくとも１つによって、受け取ったコンテキストに結果を戻し、入力判定基準のコンテキストに基づいて動作を実施する。削減は、そのコンテキスト上の関連性によって結果の総数を絞り込むことを含み、その絞り込みは、動的に生成した実時間相互関係に含まれる。緩和はさらに、正確な結果がみつからない場合、入力した検索判定基準を自動的に拡大し、適切な場合、結果を獲得する。場所の取り扱いは、入力履歴に基づいてコンフリクトが存在する住所及び場所の曖昧性除去を行うことと、入力履歴に基づいて住所内での関係を成立させることとを含む。【選択図】図１
2018077858.tif 000002
【特許請求の範囲】
【請求項１】
コマンドを文脈上で解釈するように自動化されたコンピュータシステムであって、処理装置とエンコードされた指令をメモリに持ち、その指令によって前記システムが、
コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取り、
前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行い、
前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して結果の組を生成し、
前記結果の組において結果数を決定し、
前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、
前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数を、前記受け入れ可能な範囲内に納まるようにされ、
ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示し、
前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻し、
前記指令によって前記システムがさらに、
結果が得られない場合、自動的にユーザ入力されたクライテリアを拡大し、拡大により決定されたクライテリアに基づいて１つ以上の代わりの結果を前記システムが戻すようにし、
１つ以上の結果が得られた場合、前記コンテキスト内の前記１つ以上の結果を戻すようにし、
前記１つ以上の結果が、前記曖昧性除去がなされた入力コンテキストまたは更新されたコンテキストにそれぞれ基づいて動的に生成されたリアルタイムインタラクションに含まれることを特徴とする、自動化されたコンピュータシステム。
【請求項２】
コマンドを文脈上で解釈するように自動化されたコンピュータシステムであって、処理装置とエンコードされた指令をメモリに持ち、その指令によって前記システムが、
コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取り、
前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行い、
前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して結果の組を生成し、
前記結果の組において結果数を決定し、
前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、
前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数を、前記受け入れ可能な範囲内に納まるようにされ、
ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示し、
前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻し、
前記システムに前記入力コマンドの曖昧性除去を行わせる指令がさらに、前記システムにユーザ入力の意図およびユーザ入力の意味のうちの少なくとも１つの曖昧性除去を行わせるようにし、前記ユーザ入力の意図が前記コンテキストに含まれることを特徴とする、自動化されたコンピュータシステム。
【請求項３】
コマンドを文脈上で解釈するように自動化されたコンピュータシステムであって、処理装置とエンコードされた指令をメモリに持ち、その指令によって前記システムが、
コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取り、
前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行い、
前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して結果の組を生成し、
前記結果の組において結果数を決定し、
前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、
前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数を、前記受け入れ可能な範囲内に納まるようにされ、
ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示し、
前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻し、
得られた２つ以上の結果が、所定数以上である場合、前記システムが、曖昧性除去に含まれる削減をユーザ入力に対して行うようにされ、複数の得られた結果において、前記システムがその文脈上の関連性によって結果の総数を絞り込むようにされ、
前記絞り込みは、動的に生成されたリアルタイムインタラクションに含まれ、前記結果の組を所定数までに削減するための、入力コマンドに対して自動的に計算された応答またはプロンプトをさらに含み、
対話ステップの数が最小限になるように、前記応答またはプロンプトが前記文脈上で関連性のある結果に基づいて計算されることを特徴とする、自動化されたコンピュータシステム。
【請求項４】
ユーザ入力の意味の曖昧性除去を行う際に、前記エンコードされた指令によって前記システムがさらに、
ユーザ入力に応答して、曖昧な入力をユーザに示すための１つまたは複数のシステム解釈を戻すことを特徴とする、請求項２に記載のシステム。
【請求項５】
コマンドを文脈上で解釈するように自動化されたコンピュータシステムであって、処理装置とエンコードされた指令をメモリに持ち、その指令によって前記システムが、
コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取り、
前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行い、
前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して結果の組を生成し、
前記結果の組において結果数を決定し、
前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、
前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数を、前記受け入れ可能な範囲内に納まるようにされ、
ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示し、
前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻し、
コンテキストが、コンテンツドメイン、前記クライテリア、データフィールド、グラフィカルユーザインタフェース（ＧＵＩ）状態、システム状態、ユーザのロケール、ユーザのプロファイル、ならびにユーザ入力および戻されたシステム応答を含むユーザアプリケーションとシステムとの間のインタラクションのうちの少なくとも前記クライテリアを含み、
前記クライテリアが、自由入力および前記システムとのインタラクションから決定されたユーザが意図したクライテリアのための正規化値を含み、
前記システム状態が、ユーザ入力に対して戻された応答の文脈上の関連性を含み、
変換コンテキストが、前記システムとのリアルタイムインタラクションの間で置換されたコンテンツを含むことを特徴とする、自動化されたコンピュータシステム。
【請求項６】
和集合および共通部分のうちの少なくとも１つとして特定のクライテリアに対して多数の値を検索する動作を前記システムに行わせるための指令をさらに含むことを特徴とする、請求項５に記載のシステム。
【請求項７】
前記入力に応答して、前記入力内で除外したクライテリアに基づいて前記検索を前記システムに実施させるための指令をさらに含み、
前記除外されたクライテリアが、前記検索内で除外するべきクライテリアの入力を含むことを特徴とする、請求項５に記載のシステム。
【請求項８】
前記システムが、
曖昧性除去がなされたコンテキストに関して、前記結果の分布に基づいた収集を行うために最も関連性のあるクライテリアを決定し、
前記結果の分布に基づいて、前記決定した最も関連性のあるクライテリアを収集し、
前記ユーザに促すための１つ以上の決定したクライテリアを戻し、
前記戻された結果を文脈上の関連性によって絞り込み、当該絞り込みが、前記リアルタイムインタラクションにおいて得られた結果を分析し、前記入力クライテリアの前記現在のコンテキストを与えるアクティブな項目を含む１つ以上の結果を戻すようにするための指令をさらに含むことを特徴とする、請求項５に記載のシステム。
【請求項９】
コマンドを文脈上で解釈するように自動化されたコンピュータシステムであって、処理装置とエンコードされた指令をメモリに持ち、その指令によって前記システムが、
コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取り、
前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行い、
前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して結果の組を生成し、
前記結果の組において結果数を決定し、
前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、
前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数を、前記受け入れ可能な範囲内に納まるようにされ、
ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示し、
前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻し、
前記システムが、
最初のコンテキストにあるユーザ入力から戻された結果に応答して、関連性のないコンテキストにある入力を受け取り、
前記関連性のないコンテキストに関して他の結果を戻し、
前記最初のコンテキストへ戻るようにするための指令をさらに含み、
前記コンテキストは、前記システムの前記現在の状態を含むことを特徴とする、自動化されたコンピュータシステム。
【請求項１０】
コマンドを文脈上で解釈するように自動化されたコンピュータシステムであって、処理装置とエンコードされた指令をメモリに持ち、その指令によって前記システムが、
コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取り、
前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行い、
前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して結果の組を生成し、
前記結果の組において結果数を決定し、
前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、
前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数を、前記受け入れ可能な範囲内に納まるようにされ、
ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示し、
前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻し、
前記指令により、前記システムは、文脈上で関連性のある結果をさらに取得し、
結果が得られない場合、入力クライテリアを自動的に拡大し、
拡大された入力クライテリアに基づいて得られた前記結果を分析することにより、収集するべき最も関連性のある結果を決定し、この決定がアクティブな拡大された入力クライテリアにおける前記結果の分布に基づくものであり、
１つ以上の決定した関連性のある結果を戻すことを特徴とする、自動化されたコンピュータシステム。
【請求項１１】
前記分析が、前記入力コマンドのワードおよびフレーズを、前記コンテンツと比較するための正規化された意味のある形式にマッチングすることを含む、ユーザ入力の意味へのマッピングを行うこと、
前記入力コマンドの、一般的な親の値および子の値のうちの少なくとも１つへのマッチングを受け入れるための階層構造を作成すること、
自然言語における文字列を、意味論的に意味を決定するための構造化されたフォーマットに変換すること
をさらに含むことを特徴とする、請求項１０に記載のシステム。
【請求項１２】
コマンドを文脈上で解釈するように自動化されたコンピュータシステムであって、処理装置とエンコードされた指令をメモリに持ち、その指令によって前記システムが、
コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取り、
前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行い、
前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して結果の組を生成し、
前記結果の組において結果数を決定し、
前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、
前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数を、前記受け入れ可能な範囲内に納まるようにされ、
ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示し、
前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻し、
前記入力コンテンツが属するジャンルに対する正規表現を作成する指令をさらに含み、前記正規表現の作成が、
前記入力コマンドをマッチングするためのマッチング文法を定義すること、
その入力内の情報を取り込むこと、
前記取り込んだ情報を特定の変換ルーチンに渡して、前記取り込んだデータから前記正規表現を作成することを含み、
前記変換ルーチンがコンテンツ定義されることを特徴とする、自動化されたコンピュータシステム。
【請求項１３】
ジャンルマッピングルールに対してユーザ入力をマッチングすることを含むジャンルマッピングの実行を前記システムに行わせるための指令をさらに含み、前記ルールが適用されると、いずれかのタグ付けされた入力が使用されることを特徴とする、請求項１２に記載のシステム。
【請求項１４】
コマンドを文脈上で解釈するように自動化されたコンピュータシステムであって、処理装置とエンコードされた指令をメモリに持ち、その指令によって前記システムが、
コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取り、
前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行い、
前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して結果の組を生成し、
前記結果の組において結果数を決定し、
前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、
前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数を、前記受け入れ可能な範囲内に納まるようにされ、
ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示し、
前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻し、
前記入力コマンドに応答して、クエリを行い、文脈把握によるインタラクティブ検索に対して、最適化されたコンテンツプロバイダから結果を得ることを前記システムに行わせるための指令をさらに含むことを特徴とする、自動化されたコンピュータシステム。
【請求項１５】
コマンドを文脈上で解釈するように自動化されたコンピュータシステムであって、処理装置とエンコードされた指令をメモリに持ち、その指令によって前記システムが、
コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取り、
前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行い、
前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して結果の組を生成し、
前記結果の組において結果数を決定し、
前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、
前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数を、前記受け入れ可能な範囲内に納まるようにされ、
ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示し、
前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻し、
前記入力コマンドに応答して、文脈把握によるインタラクションから得られるクライテリアに基づいて動作を行うように外部システムに要求することを前記システムに行わせるための指令をさらに含むことを特徴とする、自動化されたコンピュータシステム。
【請求項１６】
処理装置とエンコードされた指令をメモリに持ち、コマンドを文脈上で解釈するように自動化されたコンピュータシステムにおいて、この方法が、
前記コンピュータシステムのコンピュータが、コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取るステップと、
前記コンピュータが、前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行うステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して、結果の組を生成し、前記結果の組において結果数を決定し、前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数が、前記受け入れ可能な範囲内に納まるようにし、ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示するステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻すステップとを含み、
前記コンピュータが、結果が得られない場合、ユーザ入力クライテリアを自動的に拡大して、拡大により決定されたクライテリアに基づいて１つ以上の代わりの結果を戻すステップと、
前記コンピュータが、１つ以上の結果が得られた場合、前記コンテキスト内の前記１つ以上の結果を戻すステップとをさらに含み、
前記１つ以上の結果が、前記曖昧性除去がなされたコンテキストまたは更新されたコンテキストにそれぞれ基づいて、動的に生成されたリアルタイムなインタラクションに含まれることを特徴とする方法。
【請求項１７】
処理装置とエンコードされた指令をメモリに持ち、コマンドを文脈上で解釈するように自動化されたコンピュータシステムにおいて、この方法が、
前記コンピュータシステムのコンピュータが、コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取るステップと、
前記コンピュータが、前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行うステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して、結果の組を生成し、前記結果の組において結果数を決定し、前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数が、前記受け入れ可能な範囲内に納まるようにし、ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示するステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻すステップとを含み、
前記入力コマンドの曖昧性除去が、ユーザ入力の意図およびユーザ入力の意味のうちの少なくとも１つの曖昧性除去を前記コンピュータに行わせることを含み、前記ユーザ入力の意図が前記識別したユーザの前記特性に含まれることを特徴とする方法。
【請求項１８】
処理装置とエンコードされた指令をメモリに持ち、コマンドを文脈上で解釈するように自動化されたコンピュータシステムにおいて、この方法が、
前記コンピュータシステムのコンピュータが、コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取るステップと、
前記コンピュータが、前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行うステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して、結果の組を生成し、前記結果の組において結果数を決定し、前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数が、前記受け入れ可能な範囲内に納まるようにし、ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示するステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻すステップとを含み、
得られた２つ以上の結果が所定数以上である場合、ユーザ入力の意図の曖昧性除去は、
複数の得られた結果において、その文脈上の関連性によって結果総数を絞り込む、削減をさらに含み、
前記絞り込みは、動的に生成されたリアルタイムなインタラクションに含まれ、結果の組および前記ステップの数を削減するための入力コマンドに対する自動的に計算された応答をさらに含むことを特徴とする方法。
【請求項１９】
ユーザ入力の意味の曖昧性除去は、ユーザ入力に応答して、曖昧な入力をユーザに示す１つ以上のシステム解釈を戻すことを特徴とする、請求項１７に記載の方法。
【請求項２０】
処理装置とエンコードされた指令をメモリに持ち、コマンドを文脈上で解釈するように自動化されたコンピュータシステムにおいて、この方法が、
前記コンピュータシステムのコンピュータが、コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取るステップと、
前記コンピュータが、前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行うステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して、結果の組を生成し、前記結果の組において結果数を決定し、前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数が、前記受け入れ可能な範囲内に納まるようにし、ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示するステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻すステップとを含み、
前記コンピュータが、リアルタイムなユーザ入力から値が決定される入力クライテリアに対して正規化値を含むコンテキストを決定するステップと、
前記コンピュータが、ユーザ入力に応答して戻される結果に基づいてシステム状態を決定するステップと、
前記コンピュータが、リアルタイムなユーザインタラクションの間で置換されるコンテンツに基づいて会話コンテキストを決定するステップとをさらに含み、
前記コンテキストが、コンテンツドメイン、前記クライテリア、データフィールド、グラフィカルユーザインタフェース（ＧＵＩ）状態、システム状態、ユーザのロケール、ユーザのプロファイル、ならびにユーザ入力および戻されたシステム応答を含むユーザアプリケーションとシステムとの間のインタラクションのうちの少なくとも前記クライテリアを含むことを特徴とする方法。
【請求項２１】
前記コンピュータが、和集合および共通部分のうちの少なくとも１つとして特定のクライテリアに対する多値を検索することを実施するステップをさらに含むことを特徴とする、請求項２０に記載の方法。
【請求項２２】
前記入力に応答して、前記コンピュータが、入力除外したクライテリアに基づいて動作を実施することを許容するステップをさらに含むことを特徴とする、請求項２０に記載の方法。
【請求項２３】
前記コンピュータが、曖昧性除去されたコンテキストに応答して、前記結果の分布に基づいて収集するべき最も関連性のあるクライテリアを決定するステップと、
前記コンピュータが、ユーザ選択のために、１つ以上の収集した決定済みクライテリアを戻すステップと、
前記コンピュータが、文脈上の関連性によって戻された結果を絞り込むステップとをさらに含み、
前記絞り込みが、リアルタイムなユーザインタラクションにおいて得られた結果の分析と、前記入力クライテリアの現在のコンテキストを与えるアクティブな項目を含む１つ以上の結果を戻すこととを含むことを特徴とする、請求項２０に記載の方法。
【請求項２４】
処理装置とエンコードされた指令をメモリに持ち、コマンドを文脈上で解釈するように自動化されたコンピュータシステムにおいて、この方法が、
前記コンピュータシステムのコンピュータが、コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取るステップと、
前記コンピュータが、前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行うステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して、結果の組を生成し、前記結果の組において結果数を決定し、前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数が、前記受け入れ可能な範囲内に納まるようにし、ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示するステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻すステップとを含み、
前記コンピュータが、ユーザ入力のコンテキストおよびコンテンツを分析するステップをさらに含み、前記分析が、
前記コンテンツと比較するために、前記入力コマンドのワードおよびフレーズを、正規化された意味のある形式にマッチングすることを含む、ユーザの入力の意味へのマッピングを行うことと、
１以上の一般的な親の値および１以上の子の値のうちの少なくとも１つに前記入力コマンドをマッチングさせることを受け入れるための階層構造を作成することと、
自然言語における文字列を、意味を決定するための構造化されたフォーマットに変換することと
を含むことを特徴とする方法。
【請求項２５】
処理装置とエンコードされた指令をメモリに持ち、コマンドを文脈上で解釈するように自動化されたコンピュータシステムにおいて、この方法が、
前記コンピュータシステムのコンピュータが、コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取るステップと、
前記コンピュータが、前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行うステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して、結果の組を生成し、前記結果の組において結果数を決定し、前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数が、前記受け入れ可能な範囲内に納まるようにし、ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示するステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻すステップとを含み、
前記コンピュータが、前記入力コンテンツが属するジャンルに対する正規表現を作成するステップをさらに含み、前記正規表現の作成が、
前記入力コマンドをマッチングするマッチング文法を定義することと、
その入力内の情報を取り込むことと、
前記取り込んだ情報を特定の変換ルーチンに渡して前記取り込んだデータから前記正規表現を作成することとをさらに含み、
前記変換ルーチンがコンテンツ定義されることを特徴とする方法。
【請求項２６】
ジャンルマッピングルールに対してユーザ入力をマッチングすることを含むジャンルマッピングを前記システムが行うようにするための指令をさらに含み、前記ルールが適用されると、いずれかのタグ付けされた入力が使用されることを特徴とする、請求項２２に記載の方法。
【請求項２７】
処理装置とエンコードされた指令をメモリに持ち、コマンドを文脈上で解釈するように自動化されたコンピュータシステムにおいて、この方法が、
前記コンピュータシステムのコンピュータが、コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取るステップと、
前記コンピュータが、前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行うステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して、結果の組を生成し、前記結果の組において結果数を決定し、前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数が、前記受け入れ可能な範囲内に納まるようにし、ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示するステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻すステップとを含み、
前記コンピュータが、前記入力に応答して、コンテンツプロバイダから得られたコンテンツを最適化するステップをさらに含み、その最適化がユーザコンテキストおよびコンテンツ関連性に基づくものであることを特徴とする方法。
【請求項２８】
前記コンピュータが、前記入力コンテンツのコンテキスト、ユーザの場所、性別および入力言語のうちの少なくとも１つに基づく前記入力の意味の曖昧性除去を行うステップをさらに含むことを特徴とする、請求項１９に記載の方法。
【請求項２９】
処理装置とエンコードされた指令をメモリに持ち、コマンドを文脈上で解釈するように自動化されたコンピュータシステムにおいて、この方法が、
前記コンピュータシステムのコンピュータが、コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取るステップと、
前記コンピュータが、前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行うステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して、結果の組を生成し、前記結果の組において結果数を決定し、前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数が、前記受け入れ可能な範囲内に納まるようにし、ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示するステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻すステップとを含み、
前記コンピュータが、最初のコンテキストにあるユーザ入力から戻された結果に応答して、関連性のないテキストにある入力を受け取るステップと、
前記コンピュータが、前記関連性のないコンテキストに関して他の結果を戻すステップと、
前記コンピュータが、前記最初のコンテキストへ戻るステップとをさらに含み、
コンテキストは、前記システムの前記現在の状態を含むことを特徴とする方法。
【請求項３０】
処理装置とエンコードされた指令をメモリに持ち、コマンドを文脈上で解釈するように自動化されたコンピュータシステムにおいて、この方法が、
前記コンピュータシステムのコンピュータが、コンテキスト内にある、１つまたは複数のデータベースを検索するための命令に対応するユーザ入力コマンドを受け取るステップと、
前記コンピュータが、前記コンテキストに関して決定されたクライテリアに基づいて、前記コンテキストに含まれている前記入力コマンドの曖昧性除去を行うステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに基づいて前記１つまたは複数のデータベースを検索して、結果の組を生成し、前記結果の組において結果数を決定し、前記結果数が受け入れ可能な範囲から外れているかどうかを判断し、もしそうである場合には、前記結果の組および前記コンテキストに関して決定された新たなクライテリアに基づいて１つまたはそれ以上の候補判定基準を決定し、それによって前記結果数が、前記受け入れ可能な範囲内に納まるようにし、ユーザが前記候補判定基準から選択して１つまたはそれ以上のさらなる入力コマンドを提供するように指示するステップと、
前記コンピュータが、前記曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻すステップとを含み、
前記コンピュータが、結果を戻さない入力に応答して、文脈上で関連する結果を得るために前記入力からのクライテリアを自動的に緩和するステップと、
前記コンピュータが、前記入力クライテリアの前記現在のコンテキストを与えるアクティブな項目を戻す入力値に基づいて、前記入力を分析するステップと
をさらに含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１２年３月１４日に出願した米国特許出願第６１／６１０，６０６号に対する優先権を主張するものであり、これを参照することにより本明細書に組み込む。
【０００２】
以下は、一般に、コンピュータ化された検索に関し、特にコンテキスト検索に関する。
【背景技術】
【０００３】
今日では、情報を検索するための２つの共通の形態、すなわちキーワードドリブン型検索およびコールフロードリブン型検索が存在する。
【０００４】
キーワードドリブン型検索の場合、ユーザは、キーワードのリストとして、またはある場合には、自然言語文として検索語句を入力し、可能性の高い関連情報のリストを得ることによって大量のデータを検索出来る。多くの場合、ユーザは、自分が欲している情報を取得するために必要な、より完璧な検索語句を選ばなければならない。通常は、検索結果として非常にたくさんの情報リストが戻ってくるので、ユーザは、自分が興味ある結果に絞り込むために、検索方法をどのように調整したらいいかを自分で決めなければならない。通常は、このリストを必要な情報に絞り込むためのアシストはほとんどなく、あったとしても、例えば、「もしかしてジャガー？」のような、よくある、そのようなものしかない。
【０００５】
コールフロードリブン型検索の場合、ユーザは、あらかじめ定義されたオプションリストを介して情報を検索することが出来る。この例として自動音声ガイドが挙げられる。この場合、ユーザに、選択肢のオプションのリストが提示され、ユーザは、その中から適切なオプションを選択しないと先へ進めない。他の例としては、ユーザがあらかじめ定義された特定のカテゴリを選択することによって、検索結果を絞り込むようになっているウェブサイト、などが挙げられる。この方法は、情報を見つけるための対話型の方法であり、使い易いが、通常は、一度に一部の情報しか提供されず、ユーザのニーズに関係なくあらかじめ定義された特定の質問フローに従うように制限がかけられる。ユーザにとって使い易く、検索するのに十分なデータを網羅する有効なコールフローを開発して維持するには、多大な時間が必要となるであろう。
【０００６】
データ自体は、ユーザの場所やニーズ、検索されるデータベースによって変化するので、あらかじめ定義されたコールフローは通常、ユーザが望んでいる結果にたどり着くための効率的な方法（最小限のステップによる）を提供しない。さらに、コールフロードリブン型検索は、ユーザが関連情報を得るためには、フローの指示に従わなければならないため、ユーザの視点からみると、受動的である。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述のようなことに取り組むために、ある対話型インテリジェントチャットシステムが開発されているが、これらは通常、それぞれのコンテンツのタイプ（またはドメイン）やコンテキストに合わせた質問やシナリオを書くことによって、“作成”されている。これは一般に、かなりの開発時間、努力および経費を必要とした。
【０００８】
以下の目的は、上記のような、不便な事象のうちの少なくとも１つを排除するか、または軽減することである。
【課題を解決するための手段】
【０００９】
一の態様では、コマンドを文脈上で解釈するように自動化されたコンピュータシステムが提供され、このシステムは、処理装置とエンコードされた指令をメモリに持つ。これにより、このシステムは、コンテキスト内にある、動作を実施するための命令に対応するユーザ入力コマンドを受け取って、入力コマンドの曖昧性を除去する。そして、曖昧性除去がなされた入力コマンドに基づいて動作を実施し、この入力コマンドに応答して、ゼロまたはそれ以上の結果を戻す。
【００１０】
他の態様では、コマンドを文脈上で解釈するように自動化されたコンピュータシステムにおいて、処理装置とエンコードされた指令をメモリに持ち、それによって提供される方法は、コンテキスト内にある、動作を実施するための命令に対応するユーザ入力コマンドを受け取るステップと、入力コマンドの曖昧性除去するステップと、曖昧性除去がなされた入力コマンドに基づいて動作を実施するステップと、曖昧性除去がなされた入力コマンドに応答して、ゼロまたはそれ以上の結果を戻すステップと、を含む。
【００１１】
さらに他の態様では、システムが提供され、このシステムは、処理装置とエンコードされた指令をメモリに持ち、その指令によってこのシステムは、コンテキスト内の入力を受け取とって、その入力値に関して、絞り込み、拡大、および場所に関する処理のうちの少なくとも１つを行うことにより、受け取ったコンテキストに関して結果を戻す。動作は、入力されたクライテリア（条件）のコンテキストに基づいて実施される。絞り込みは、入力に応答して戻された一つ以上の関連項目と、絞り込みに可能性のあるクライテリア（条件）を戻す。拡大は、正確な結果が見つからない場合に入力されたクライテリアを自動的に拡大し、そして、適切な結果を取得する。場所に関する処理は、入力履歴に基づくコンフリクトが存在する住所および場所の曖昧性除去を行い、入力履歴に基づいて住所同士の関係を確立する。
【００１２】
さらに他の態様では、動的自己進化型の自動化されたコンピュータシステムが提供され、このシステムは、処理装置とエンコードされた指令をメモリに持ち、その指令によって、各々のユーザインタラクションのためのシナリオの、人間によるオーサリングを必要とすることなく、インタラクティブ能力を徐々に進化させてゆく。この進化は、コンテキストおよびコンテンツに基づいてユーザインタラクションを決定することをさらに含む。また、自動化された機能性を向上させるルールを自動的に定義する。また、この進化は、自然言語処理を実現することをさらに含み、当該自然言語処理は、ユーザ入力を意味的にマッピングすることを含み、このマッピングはジャンルタグ付けすることを含む。また、この進化は、グループ化を含む組と、変更を加える動作を含む組とを区別することを含む。また、この進化は、入力を最上層の親の値または子の値の少なくとも１つにマッチさせるための階層構造を作成する。
【００１３】
さらに他の態様では、処理装置とエンコードされた指令をメモリに持つ自動化されたコンピュータシステムにおいて、前記コンピュータシステムの動的自己進化のための方法が提供され、前記方法は、各々のユーザインタラクションのためのシナリオの人間によるオーサリングを必要とすることなく、インタラクティブ能力を徐々に進化させてゆくステップを含む。この進化は、前記コンテキストおよびコンテンツに基づいてユーザインタラクションを決定することをさらに含む。また、前記方法は、自動化された機能性を向上させるためのルールを自動的に定義するステップと、自然言語処理を実現するステップとを含む。この自然言語処理はユーザ入力を意味的にマッピングすることをさらに含む。このマッピングはジャンルタグ付けすることをさらに含む。また、前記方法は、グループ化を含む組と、変更を加える動作を含む組とを区別するステップを含む。また、前記方法は、入力を最上層の親の値または子の値の少なくとも１つにマッチさせるための階層構造を作成するステップを含む。
【図面の簡単な説明】
【００１４】
本発明の特徴は、添付図面を参照する以下の詳細な説明により、より明らかなものになる。
【図１】会話型のやり取りを介して、コンテンツや情報を検索することができるシステムの、一実施形態におけるプロセスフローを示す。
【図２】削減方法の一実施形態におけるプロセスフローを示す。
【図３】緩和方法の一実施形態におけるプロセスフローを示す。
【図４】一実施形態におけるシステムの構成要素を示す。
【発明を実施するための形態】
【００１５】
図面を参照して以下で実施形態について説明する。適切であると考えられる例示を簡単にしかも明瞭にするために、図面内で対応または類似する要素を示すために参照符号が繰り返されるであろう。さらに、ここに記載された実施形態の理解を深めるために、多くの具体的詳細について説明する。しかし、ここで述べる実施形態がこれらの具体的詳細を含まなくとも実施可能であることを当業者であれば理解するであろう。他の例では、ここに記載する実施形態が不明瞭とならないように、周知の方法、手順および構成要素についての詳細は述べない。また、ここでの記載は、ここで述べる実施形態の範囲を制限するものであると考えるべきではない。
【００１６】
本明細書における“一実施形態”または“実施形態”は、その実施形態に関連して述べる特定の特徴、構造または特性が本発明の少なくとも１つの実施形態に含まれることを意味する。本明細書の様々な箇所に出現する語句“一実施形態において”は、すべてが同一の実施形態を参照しなければならないというものではなく、他の実施形態に対する相互排他的な別の実施形態を意味するものでもない。さらに、いくつかの実施形態でのみ示され得る様々な特徴について述べる。同様に、いくつかの実施形態でのみ必要とされ得る様々な要件について述べる。
【００１７】
ここで例示した命令を実行するいかなるモジュール、ユニット、構成要素、サーバ、コンピュータ、端子または装置は、コンピュータ可読媒体、例えば記憶媒体、コンピュータ記憶媒体、またはデータ記憶装置（取り外し可能且つ取り外し不可能、またはそのいずれか）、例えば磁気ディスク、光ディスクまたはテープを含むことも可能であり、またそうでない場合は、それらにアクセスすることも可能である。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータ等の情報の記憶方法または技術において実現される揮発性および不揮発性、取り外し可能および取り外し不可能な媒体を含み得る。コンピュータ記憶媒体の例は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、もしくは他の磁気記憶装置、または望ましい情報を記憶するために使用可能であり、アプリケーション、モジュールまたはその両方がアクセス可能である他の媒体を含む。このようなコンピュータ記憶媒体は、装置の一部であるか、それにアクセス可能または接続可能であってもよい。ここで述べるいずれかのアプリケーションまたはモジュールは、このようなコンピュータ可読媒体に記憶可能であるか、またそうでない場合には保持可能であるコンピュータ可読/実行可能命令を用いて実現することも可能である。
【００１８】
本明細書は、以下の用語を参照して理解するのが最良であり、これらは以下の非限定的な例を用いて説明される。
【００１９】
自然言語−人間の言語、コンピュータプログラミング言語等の形式（すなわち、具体的に設計された）的な言語とは対照的である。現代のオンラインの世界では、自然言語は、綴り、文法、口語表現、スラング、略語、エモーティコン、ののしり、専門用語、頭字語等の問題によって影響を受ける。
【００２０】
自然言語処理（ＮＬＰ）−自然言語の文字列をデータ構造または形式的な言語に変換し、それによって文字列についての情報を提供する。これは、トークン化作業、形態素解析（例えば音声の一部）、対話作用（文の型式）、入力された一般的な会話を計算操作にとってより好適な形式へ変換すること、を含む。
【００２１】
自然言語理解（ＮＬＵ）−自然言語による入力を、その入力に意味をもたらすためのシステム状態変化の組にマッピングするために使用されるアルゴリズムの組。
【００２２】
エージェント−有益な目的のためにインテリジェントな方法で自然言語を用いたインタラクションが可能なシステム。
【００２３】
会話型のインタラクション−ユーザとエージェントとの間の入力と出力のセット。
【００２４】
スモールトーク−経験をより楽しいものにし、エージェントに個性を提供するためのユーザ入力に対する簡単な返答。
【００２５】
クエリ−現在の検索条件を変更しない、現在の検索候補の組に関する情報要求（例えば“このお店はどのくらい離れてますか？”）。
【００２６】
ドメイン−対話のために用意されているエージェントの１つ以上の主題。
【００２７】
ロケール−ユーザの現在の場所に関する属性の組。これは、位置/場所、デフォルト言語、測定ユニット、日時フォーマット等を含み得る。
【００２８】
同義語−動作のドメインにおいて共通の意味を有するワードまたはフレーズ。
【００２９】
正規表現−同義語の組を表す正規名。
【００３０】
ファミリ−関連性のある正規表現の形式的な収集体。
【００３１】
ジャンル−関連性のあるワードの階層ファミリを表すプレースホルダ。一実施形態では、ファミリと正規表現の組み合わせから成る。
【００３２】
ジャンルタグ付けまたは入力ジャンル−付属ワードまたはサブセンテンスを伴うジャンルによる入力のワードまたはサブセンテンスの表現。
【００３３】
ジャンル化−文字列のジャンルタグ付けを行うプロセス。
【００３４】
ジャンル化されたまたはジャンルタグ付けされた−ジャンル化が適用されたこと。
【００３５】
ジャンル条件−いずれかの順でマッチング可能なワードおよびジャンルのリスト。
【００３６】
ジャンル文法条件−ワード、ジャンルおよび特殊な意味の文法トークンから成り、さらにＮＬＵの性能に対するジャンル化入力に反してマッチングするセンテンスまたはサブセンテンス。
【００３７】
マッチングジャンル−ジャンル条件またはジャンル文法条件におけるいずれかの特定のジャンル。
【００３８】
ジャンル条件マッチング−ジャンル条件またはジャンル文法条件を有するユーザ入力のジャンル化された形式へのマッチング。
【００３９】
キージャンル−ＮＬＵのターゲットから値を抽出するためにシステムによって使用されるジャンル条件のそれらのジャンル。
【００４０】
関連のジャンル−もし存在すれば、ジャンル条件マッチングの一部でもあると考えられ得るジャンル。
【００４１】
クライテリア−名前によって表現されている、形式的に定義された条件。そのサブセットは、プロセスフローの検索および／または制御の目的のために１つ以上の値が適用され得る。書き込み易くするために、クライテリアは単数または複数に及ぶ。
【００４２】
クライテリア値−特定のクライテリアに対する１つの値であり、形式化（値の正規組）かまたは“自由入力”され得る。ここでは、ユーザ入力されるか、または検索されたコンテンツ（例えば店名）から値が得られる。
【００４３】
入れ子構造であるドリルダウンのクライテリア−クライテリア値がツリー構造で定義されたクライテリア。ツリー構造における値の深度が深いほど、その値がより特定的なものとなる。入れ子構造であるドリルダウンのクライテリアは、ツリーの深さによりフラットなリストとして表現することができ、さらに値を絞り込むための子の値を持つことができる。
【００４４】
領域クライテリア−場所（１つのＧＰＳ点、例えばランドマーク）または制限された領域（近隣、都市等）に特に関連する意味を有する値を保持するクライテリア。
【００４５】
親の値−入れ子構造であるドリルダウンのクライテリアにおいて、親の値はその値のひとつ上の階層の値である（すなわち親、祖父母等）。
【００４６】
子の値−入れ子構造であるドリルダウンのクライテリアにおいて、子の値はその値のひとつ下の階層の値である（すなわち子、孫等）。
【００４７】
クライテリア条件−現在のクライテリアの状態におけるブール式。ここでは、値あり、値なし、特定の値あり、祖先および子孫の値ありが表現され得る。
【００４８】
コンテキスト−識別可能なシステムの状態。検索のドメイン、クライテリア、データフィールド、ＧＵＩ状態、エージェントモード、ユーザのロケール、ユーザのプロファイル、およびユーザの発話とエージェントの返答とを含むユーザ/クライアントアプリケーションとシステム/エージェントとの間のインタラクション（会話コンテキスト）を含む。
【００４９】
アクティブコンテキスト−現在のシステムコンテキスト。実施形態では、直近のアクティブコンテキストと、今なおアクティブだと考えられる１つ以上の事前のアクティブコンテキストとを備える複数のアクティブコンテキストが存在し得る。
【００５０】
コンテキストリスト−直近およびそれ以前のアクティブコンテキストを表す。直近のアクティブコンテキストが、最優先のアクティブコンテキストとなる。このリストは、コンテキスト履歴を構成するものである。このリストにおいて、事前のコンテキストは、古くなってゆく（関連性が小さくなってゆく）可能性があり、消滅する（このリストから削除されて関連性がなくなる）可能性もある。
【００５１】
会話コンテキスト−ユーザまたはエージェントの発言に関する状態について言及する特定の型式のコンテキスト。会話コンテキストのための暗黙的な履歴がある（過去のものが今後影響を及ぼすこととなる）。
【００５２】
関連のコンテキスト−現在のアクティブコンテキストに適する（関連する）という条件にマッチするコンテキスト。
【００５３】
結果的コンテキスト−システムを変更するコンテキスト、いくつかの入力を処理するために残すコンテキスト。
【００５４】
削減−アクティブな検索候補の数を削減するプロセス。これは、検索箇所を限定する新たな条件、または現在の条件のより限定的な値を取得することを含み得る。
【００５５】
緩和−より多くのアクティブな検索候補を得るために、現在の条件を緩和するプロセス。これは、１つ以上の条件を削除すること、または１つ以上のあまり限定的ではない値を置換することを含み得る。
【００５６】
システムプロセスコマンド−現在のシステムの状態を変える公式な動作の組。
【００５７】
ジャンルマッピング−ジャンルタグ付けがなされたユーザ入力（またはシミュレートしたユーザ入力）をシステムプロセスコマンドにマッピングするＮＬＵ技術。
【００５８】
曖昧性除去−例えばシステムがいくつかの曖昧な選択肢の中から適当なものを決定することが出来ない（例えば“リッチモンド”がどの都市を意図しているのか）か、またはシステムがコンテキスト等のさらなる情報を用いて最良の解釈を自動的に選択する場合に、ユーザに特定の解釈を選択するように要求する等、ユーザ入力における２つまたはそれ以上の解釈における曖昧さを解決する行為。曖昧性除去の意図は、上記した削減の行為にも及ぶ（アクティブな検索候補は、曖昧であると考えられるため）。
【００５９】
以下に提供するシステムおよび方法は、ユーザ入力型式に基づいて自動的に行われる、インテリジェントな文脈把握と、決定されたコンテキストアウェアネスに基づく動作の実行とを提供するものである。さらに、システムおよび方法は、関連情報の有効で正確な検索を行うための、ユーザ入力の文脈上での理解のために提供される。さらに、システムおよび方法は、自動的且つ積極的な文脈把握のために提供される。ここでは、文脈の中でのユーザ入力が、返答もしくは逆にユーザに対しての質問を開始する。この質問は、包括的なクエリを特定的なもの（関連のある結果を得るためのもの）にインテリジェントに絞り込むためになされるものである。
【００６０】
開示する実施形態はコンテキストコマンドに基づいて１つ以上の動作を実施するためのシステムおよび方法について述べており、この動作は、情報に対するインタラクティブな検索をさらに含み、システムは、出来るだけ少ないステップで望ましい結果をユーザにもたらすように重要な質問を問い合わせる。このシステムは、第１の計算装置を備えている（パーソナルコンピュータ、サーバ、携帯無線装置、携帯電話、スマートフォン、ＰＤＡ、ビデオゲームシステム、タブレット、スマートテレビ、インターネットテレビ、および計算能力を備えた他のいずれかの特殊化装置を含むが、これらに限定されない）。これによって引き続きの質問および回答を通じてユーザが尋ねていることを絞り込む。ここでは、検索クエリは、選択肢の対話式リストに変換され、その結果、適切な結果の短いリストを生成する。実施形態は、音声認識を備え、また、人間の会話のシミュレートし、音声コマンドを受け取り、コンテキストを用いてインタラクションし、ユーザの元の要求の曖昧性を除去するために適切な質問を積極的におこない、ユーザ特定の要求を明らかにして適切な結果を見つける。他の実施形態は、テキスト入力を受け取ってテキスト的に応答すること、テキスト入力を受け取って音声ベース出力で応答すること、さらに音声入力を受け取ってテキスト的に応答することが可能なシステムを含む。他のバリエーションが可能なことは、当業者にとって明らかである。
【００６１】
実施形態は、情報を対話型で検索するために自動化されたコンピュータシステムを備え、このシステムは、処理装置とエンコードされた指令をメモリに持ち、その指令によって、システムが、コンテキスト内で実施可能な検索に対応する音声入力コマンドを受け取り、コンテキスト内の音声入力コマンドに応答して、検索結果と関連する選択肢のインタラクティブなリストとのうちの少なくとも１つを戻す。関連する選択肢のインタラクティブなリストが戻される場合、戻された選択肢のうちの少なくとも１つの音声入力選択を受け取る。ここでは、関連する選択肢が、入力音声コマンドに基づいて動的に生成されたリアルタイムユーザインタラクションに含まれる。
【００６２】
実施形態は、情報を対話型で検索するための方法を備え、この方法は、コンテキスト内で実施可能な検索に対応する音声入力コマンドを受け取るステップと、コンテキスト内の音声入力コマンドに応答して、検索結果と関連する選択肢のインタラクティブなリストとのうちの少なくとも１つを戻すステップと、関連する選択肢のインタラクティブなリストが戻される場合、戻された選択肢のうちの少なくとも１つの音声入力選択を受け取るステップと、を含む。ここでは、関連する選択肢が、入力音声コマンドに基づいて動的に生成されたリアルタイムユーザインタラクションに含まれる。
【００６３】
実施形態は、会話入力をテキスト上で、音声で、またはその両方の組み合わせで可能にするための様々なシステムおよび方法の設計および処理を可能にする技術を含む。実施形態は、文脈把握によるインタラクティブな検索および向上したユーザ経験を含み、ユーザ入力に応答して積極的な提示を行うことにより、ユーザが好ましい結果を得られるようにしてユーザビリティを向上し、ユーザ入力クエリからあまりに多くの結果／応答が戻された場合、文脈上の関連性のある質問がなされる。文脈上で関連性のある質問は、それらに対してより適切なコンテンツを見つける（すなわち結果リストを削減する）ために、どの種類の情報を提供可能であるかを知るためにユーザをガイドする。実施形態は、結果の組を削減するためにユーザに問い合わせる最良の質問を決定し、最終的に、絞り込まれた短い結果リストに到達するための、質問―回答のステップ数を削減するプログラムを含む。実施形態では、システムおよび方法が、ユーザ入力のコンテキストに基づいて、ユーザに問い合わせる質問を含んだ、ユーザに提供する情報のためのプロンプトを決定するように設計されるので、開発時間を短縮出来る。事前に作成されるというよりもむしろ、問い合わせる質問を含んだ、ユーザへの指示を行うための適切な情報が、現在のコンテンツドメイン、コンテキストおよび利用可能な検索結果に基づいて、動的に、しかもプログラムによって計算される／決定される。
【００６４】
はじめに、実施形態のシステムが示されている図４を参照する。クライアント４０５はアプリケーション（アプリ、ｗｅｂアプリ、インストールされたアプリケーション等）を備えており、このアプリケーションは、ユーザが入力してシステムからの出力を得ることが可能なインタフェースを提供する。クライアントは、（キーボード、音声認識、ボタン、選択ボックス、ジェスチャ等から得られた）テキスト、音声または表示入力をサーバ４１０に送信し、出力（テキスト、テキストリスト、ＨＴＭＬ等）を受信して、（例えば、モニタまたは他の表示装置により）ユーザに表示するように動作可能である。エンコードされた指令をメモリに持つ処理装置を備えるサーバ４１０は、自然言語理解（ＮＬＵ）ユニット４１５と、会話処理ユニット４３５と、コマンド処理ユニット４４０と、クライテリアマネージャ４２０と、検索エンジン４２５と、削減ユニット４３０と、緩和ユニット４５０と、応答生成器４４５とを備える複数の処理装置をさらに含む。コンテキスト記憶装置４８０は、コンテキストおよび他の情報の共有が可能であるサーバのすべての装置に利用できる記憶装置としてさらに設けられ得る。これらの装置は、互いに通信および協働して以下を実現する。
【００６５】
ＮＬＵユニット４１５は、ユーザ入力を獲得して、ＮＬＰ技術によってそれを処理し、セグメント化、音声のステミング部品およびジャンル化によって、入力の意味のある形式を生成する。これによって意味のある形式をシステムの現在のコンテキストに基づく意図にマッピングし、コマンド処理装置（システムコマンド）、会話プロセッサ（情報を取得するための単一および多重ステップ対話）を介して要求を処理するか、クライテリアマネージャによりクライテリアを直接更新するかを判断する。ＮＬＵユニット４１５は、人が入力した自然言語テキストまたは（ＧＵＩからの）コマンドのエンコードされた表現を受け取り、ＮＬＰ技術を用いて入力を処理し、入力がシステムプロセスコマンド（例えば、やり直し、戻る）、会話、または単一/複合要求であるかどうかを判断して、現在のクライテリア（検索状態）を変更するように動作可能である。会話処理ユニット４３５は、１つ（スモールトーク）またはそれ以上の（会話）入力/プロンプトシーケンスを管理するように動作可能であり、これによって、システムが、簡単な回答または複雑な会話型インタラクションを提供して、質問に答えるか、または複雑な条件に基づいてクライテリアの変更を決定することが可能になる。コマンド処理ユニット４４０は、検索状態（履歴を振り返る、やり直し）を変更可能なプロセスコマンド（戻る、やり直し）に対する要求を受け取り、現在の結果（詳細、マップ）の解釈を生成するか、またはクライアントの要求（異なるドメインへ行け、より多くの結果が欲しい）に情報提供するように動作可能である。クライテリアマネージャ４２０は、変更履歴だけでなくシステムの現在の検索状態を維持するように動作可能である。クライテリアマネージャ４２０は、検索エンジン４２５に対して要求を発行し、現在のクライテリアを用いてシステムをその設定した目標へ導く。
【００６６】
検索エンジン４２５は、システムの現在の状態に基づいて、外部検索ＣＧＩ上で要求を生成するように動作可能である。これは、現在のクライテリアから構文を生成して外部検索ＣＧＩに送り、応答生成器４４５を介して、クライアント２０５に、発生する検索の性質を知らせ、検索ＣＧＩへの要求を実行し、応答生成装置に検索結果を出力するように求める。削減ユニット４３０は、検索エンジン４２５からの結果総数が設定した目標を超える場合に動作して、コンテンツ定義された自動的な仕組みを適用して、ユーザが検索を絞り込むための特定的なクライテリアを入力するように促すことで、インテリジェントで関連性のある結果を生成することができる。緩和ユニット４５０は、検索エンジン４２５によって結果が全く（ほとんど）見出せない場合に動作し、コンテンツ定義された自動的な仕組みが結果を見出そうとして検索クライテリアを調節することを可能にする（例えば検索範囲を拡大する）。応答生成器４４５は、検索結果を組み合わせる。それによって、他の装置から情報を獲得し、その情報をクライアント４０５への出力形式に変換する。出力フォーマッタ４７５を適用して、クライアント非依存情報をクライアント依存および言語依存リクエストに変換することが可能である。出力は、結果、入力に対するプロンプト、可能なさらなる入力リスト、検索ステータス情報、前記のいずれかの音声合成形式およびクライアントに必要なＧＵＩ状態への更新を含み得る。
【００６７】
検索ＣＧＩ４５５は、一貫性のある標準的な方法による１つ以上の外部検索ＡＰＩ４６０の仮想化をサーバに提供する。単一の外部データソースは、特定のアプリケーションプログラムインタフェース（ＡＰＩ）を用いて問い合わせされ得る。出力フォーマッタは、結果、リスト等の標準化された形式を取得して、特定のドメイン、言語およびクライアントのための出力を生成する。
【００６８】
より具体的な実施形態では、システムは、エンコードされた指令をメモリに持つ処理装置を備えており、その指令は、最小限の言語依存性により書かれている。自己内蔵型モジュール（ＤＬＬ）内では、言語依存性が殆ど存在し得ない。ここで使用される、経験的な知識によって最適な選択肢を選択する方法は、入力もしくは出力言語、またはロケールにかかわらず機能するようにすべて設計されてある。例えば、当業者に明らかであるように、新たな言語および地域をサポートするように拡張することは、比較的簡単である。
【００６９】
さらに他の実施形態では、ＮＬＵユニット４１５は、スモールトーク（簡単なクエリ／応答）、会話応答（会話コンテキストに基づく）、制御コマンド（ユーザは、特にアプリまたはシステムの状態を変更するよう要求する）、コンテンツコマンド（例えば、検索ドメインを変更する、マップを示す、関連のＥメール/ツイートを送る、等を要求する）、リスト選択（リスト項目を識別するテキスト/言葉入力）間のユーザ入力を区別するように動作可能である。さらに、実施形態においては、ＮＬＵは、検索状態を変更するための複合リクエストを受け取ることが可能であり、ここでは、コンテンツは、後に複合命令文として入力され得る簡単な変更リクエストを管理するように設計可能である。例えば、ユーザが入力した“私は空港近くで安いイタリアンを食べたい”は“安い”（費用）、“イタリアン”（料理）および“空港”（検索領域）に基づく個別の要求として、システムによって扱われる。
【００７０】
このシステムは、ユーザ入力のコンテキストを決定して、次のプロンプトを決定するように動作可能である。本例では、コンテキストは、システムの現在の状態（例えばモード）、何が分かっているか（例えばクライテリア）および何を言ったか（会話コンテキスト）について及び得る。一実施形態では、このシステムは、スモールトークまたは会話によって一時的に離れ、さらにメインフローを継続するために戻るように動作可能である。例えば、削減ユニット４３０は出力を通知可能であり、および／または、応答生成器４４５が出力を生成可能である。例えば、ユーザのスモールトークが最も新しいアクティブコンテキストとマッチングしない場合、応答生成器４４５は、応答がスモールトークにマッチングする次の直近のアクティブコンテキストに基づいて、応答を生成することが可能である。スモールトークの間中、マッチングしているアクティブコンテキストが最も新しいアクティブコンテキストになり得るが、その直前のアクティブコンテキストは今なおアクティブであるが、直近のものではない。ユーザがメインフローに戻ると、今なおアクティブであるが直近のものではないアクティブコンテキストは、直前のアクティブコンテキストに戻ることも可能である。一例では：
i．エージェント：どんな料理を食べたいですか？
ii．ユーザ：何時ですか？
iii．エージェント：現在午後２時３０分です。
iv．（オプション）エージェント：どんな料理を食べたいですか？
v．ユーザ：どんな料理を選べますか？
vi．エージェント：このリストが現在選択可能であるものです。リストから選ぶか、この中の一つを言ってください。
vii．ユーザ：了解です。イタリアンにします。
【００７１】
他の実施形態では、クライテリアマネージャ４２０は、和集合または共通部分として特定のクライテリアのための多数の値を検索するように動作可能である。例えば、ユーザがピザを提供するレストランを検索しているが、（例えば）バッファローウィングを思い付いた場合、ユーザは“ピザまたはチキンウィング”等の要求を入力することが可能であり、戻って来た結果はユーザにとっては有用なものとなる（ピザとチキンウィングに対する結果の和集合）。あるいは、またさらに、たとえばユーザがハンバーガーとステーキを提供するレストランを探している場合、“ハンバーガーとステーキ”等の要求が、ハンバーガーとステーキの両方を提供するレストランのみの結果を戻す（ハンバーガーとステーキに対する結果の共通部分）。これらの例にあるように、検索に用いられるクライテリアは、複数の値が和集合（例えば“ｏｒ”条件の存在または推論によって）または共通部分（例えば“ａｎｄ”条件の存在または推論によって）を表すかについてタグ付けされ得る。
【００７２】
他の実施形態では、このシステムは、ユーザ入力を認識して、排除されたクライテリアに基づいて検索するように動作可能である。このような認識は、例えばＮＬＵユニット４１５と、会話処理ユニット４２５と、クライテリアマネージャ４２０のオペレーションによって実装され得る。また、検索は、例えば、検索ＣＧＩ４５５と協働して動作する検索エンジン４２５によって実装可能である。例えば、ユーザが日本食を提供するレストランを探しているが、特に寿司には興味がないとしよう。“寿司ではない日本食”等の要求によって、寿司を提供しない日本レストランのみの結果を出す。このような要求に対して、検索に用いられているクライテリアは用語“ｎｏｔ”を含み、クライテリアマネージャは、これを“ＮＯＴ”演算子であるとして認識することが可能である。
【００７３】
さらに、大きい結果の組が得られると、削減ユニット４３０は、代替の検索クライテリアを選択するためにユーザに“スマートなプロンプト”を与えることによって、削減処理を提供することが可能である。一実施形態において、コンテンツによってガイドするアプローチがあり、これはドメインコンテンツデベロッパーが現在のクライテリア及び他のコンテキストに基づいてシステムをガイドすることを含むことが可能である。自動化されたシステムにおいて、削減ユニット４３０は、残りのすべてのクライテリアにおける結果の分布に基づいて、その後に収集するべき最良のクライテリアを決定することが可能である。例えば、あるリストがユーザに表示され得る。このリストは、現在のコンテキスト（クライテリア等）によって与えられたアクティブなアイテムを含んでいるものであり、例えば、ウォーターフロントにあり、評価の高い、値段が予算内であるイタリアンレストランのリストである。このような場合、削減ユニット４３０は、クライテリア値を置き換えて絞り込んだ状態を適用させたり、現時点でクライテリアに値設定されていない候補を集めたりする。いくつかのクライテリアは、結果に対していくらかの制限を加える自然な命令を有する（例えば、検索範囲、最低限の格付けおよび価格水準）。削減ユニット４３０は、これらのクライテリアのうちの１つを有効にするために、システムへ信号を送信することにより、検索候補が削減される結果をもたらすように、提示すべきリストの制限を自動的に行うことができる。
【００７４】
さらに、緩和ユニット４５０は、削減処理の正反対のものとして理解され得る緩和処理を提供することが可能である。これは、これは、ユーザがコンテキストを提供し、それによる検索結果がなかった場合に、特に有益となる。このような例では、緩和ユニット４５０は、重要な検索クライテリアを排除することなく、検索結果を拡大するために、クライテリアを緩和することが可能である。一実施形態では、緩和は自動的に発生し、緩和ユニット４５０はどのクライテリアを緩和し、文脈上で関連性のある結果を今まで通り取得するか判断する。代わりに、緩和は、コンテンツガイド、自動的またはユーザ支援のいずれかであってもよく、ユーザは関連の結果を得るためにその要求のコンテンツを変更するよう求められる。コンテンツからガイドする方法によって、ドメインコンテンツデベロッパが、直近のクライテリアおよび他のコンテキストに基づいてシステムをガイドすることが可能であり；自動化された方法では、このシステムが残りのすべてのクライテリアにおける結果の分布に基づいて、収集するべき、その後の最良のクライテリアを決定するように動作可能であり；ユーザを支援する方法は、ユーザクエリを分析し、クエリされた値に基づいて、現在のコンテキスト（クライテリア等）から得られたアクティブな項目のみを含むリストをユーザに戻す。
【００７５】
実施形態では、検索スキーマ（クライテリアおよびその値）が、言語や背後の検索エンジンから独立した各ドメインのために定義され、標準化されたスキーマを提供する。外部検索ＣＧＩは、１つ以上の（マッシュアップ）外部検索エンジンへのアクセスを支援し、結果スキーマ（結果フィールドとその値）をシステムに戻す。
【００７６】
実施形態では、応答生成器４４５がテンプレートおよび外部出力フォーマッタを提供し、ここでは外部に定義されたＣＧＩは、特定のクライアントに対して、例えば候補リストのような適当なレイアウトを生成するように動作可能である。これらのフォーマッタの出力だけでなく、クライテリアや結果フィールドやその値を自然で人間的なテキスト形式にしたものも、複数のゾーンのクライアントＧＵＩをターゲットにすることができる、定義された１組の標準出力テンプレートで使用することが可能である。例えば、
i．エージェントの発言−何が提示されているか、または要求されているかのプロンプトおよび記述
ii．ステータス−現在の検索状態
iii．情報−候補、詳細、マップ等のリスト
【００７７】
さらに他の実施形態では、応答生成器４４５は、コンテキストアウェア検索を行ってユーザ入力に応答し、削減、緩和および場所に関する処理によって結果を戻すように動作可能である。好ましくは、実施形態は、コンテキストアウェアネスが可能であり、特定の文脈やユーザの選択において動作する。理想的な実施形態では、自動コンテキストアウェアネスを可能にし、そのコンテキストアウェアネスに基づいて動作を行う。さらに、実施形態は、関連する情報の有効かつ正確な検索を行うため、文脈上当てはまらない目的ならびにユーザ入力の文脈上および複数の文脈上の理解を特徴とし得る。好ましい実施形態は、最良のクライテリアを動的にしかも自動的に選択して、可能な応答（クライテリア値）のリストを提示してユーザ応答を支援する際に、現在の検索結果に基づいてユーザに問い合わせを行う削減方法を含む。好ましくは、実施形態は、的確な応答/結果が見つからない場合、おおよその結果を得るために、クライテリアを自動的に緩和することが可能である。好ましくは、実施形態は、住所内にコンフリクトやインテリジェントな理解関係が存在する住所および場所の曖昧性の除去を行うことを含むことである。
【００７８】
サーバ４１０は、文脈把握によるインタラクティブな検索（ＣＡＩＳ）を提供するように動作可能であり：ユーザから最初のコンテキストを受け取り、データアイテムをＮＬＵユニット４１５に渡すクライアント４０５と、会話処理装置４３５、コマンド処理装置４４０およびクライテリアマネージャ４２０と協働して、受け取ったコンテキストについて動作するＮＬＵ装置４１５と、削減ユニット４３０と協働して結果セットの削減を行い、応答生成器４４５によってコンテキスト関連の質問を戻すか、または会話処理ユニット４３５および応答生成器４４５と協働するＮＬＵユニット４１５によって、ユーザ入力（ユーザ発言）の曖昧性除去を行い、特定のユーザ入力（要求）に対する最も適切な短い結果リストを見つける検索エンジン４２５とを備える。一実施形態では、コンテキストは、ａ．クライテリア、ｂ．エージェントまたはシステム状態、およびｃ．会話コンテキストを含む。クライテリアは、自由入力およびユーザとシステムとの対話を通して、ユーザからシステムによって決定された検索クライテリアに対する正規化した値をさらに含む。これは、コマンド処理ユニット４４０およびクライテリアマネージャ４２０と協働して会話処理ユニット４３５によって提供可能である。エージェント（システム）状態は、ユーザ入力に応答して、システムによって戻された結果のコンテキストの関連性を含む（リスト、詳細、マップ、ルート等）。会話コンテキストは、ユーザとエージェント（システム）との間で既に生じている対話に関するコンテキストを含む。このシステムは、エンコードされた指令をメモリに持つ処理装置を備え、ここでは、指令によってさらに、システムが、その関連性によってコンテキストを認識し、直近の使用によって関連性をさらに計算することが可能になる。一実施形態では、システムによって、直近で使用した順番でアクティブコンテキストがリスト化され、命令によって、システムが第１のリスト化コンテキストを最も関連するものとして考慮する。このような実施形態では、会話コンテキストの関連性がしばしば変化し、経時的に、より関連性が低くなる可能性がある（すなわち古くなって消滅する）。
【００７９】
実施形態は、その関連性によって一般的なコンテキストを認識する。例えば、１組の曖昧なマッチングを戻すユーザ入力に関して、最も関連性の高いコンテキストは、直近で使用されたコンテキストである。このように、直近で使用したコンテキストは、結果を戻す際に適用される。そのため、１組の曖昧なマッチングに対して、直近のコンテキストに関連するものがうまくいく。コンテキストには、ユーザの好み、ユーザの場所、およびユーザの言語等の設定も含める。さらに、会話による文脈もまた、ユーザ対話で認識され、会話が進むにつれて認識も発展する。一実施形態では、文脈に関する決定は、コンテキストへのアクセスの抽象的な時間による、会話コンテキスト（会話コンテキストリストまたはＣＣリスト）のプライオリティリスト（優先度の降順）の管理、および、前面に出す方式を適用することを含む。例えば、抽象的な時間は、実時間または対話数でもある。会話コンテキストは、Ｃｎ（ｔ）として定義され、ｎはコンテキスト番号を表し、ｔはその時間属性を表す。例えば、３つの会話コンテキストＣ１、Ｃ２およびＣ３が存在する。会話コンテキストＣ１、Ｃ２およびＣ３は、次々と順にアクセスされ、会話数は“時間属性”である。従って以下のようになる。
CCList1：C1(1)
CCList2：C2(2)、C1(1)
CCList3：C3(3)、C2(2)、C1(1)
【００８０】
上記のように、Ｃ３はＣ２よりも関連性があり、Ｃ２は、Ｃ１よりも関連性がある。しかし、時間ｔ＝４でコンテキストＣ１が再度アクセスされる場合、Ｃ１は最も高い関連性を取り戻し、フロントにポップバックする。それにより、CCList4：C1(4)、C3(3)、C2(2)を有することとなる。
【００８１】
文脈に関する決定は、コンテキスト終了をさらに含み得る。コンテキスト終了は、キューの最後に到達した場合のコンテキストの終了として定義することが可能である。サーバ４１０は、固定した（事前設定した）長さのキューを実現することが可能であるか、または例えばコンテンツデベロッパによって定義するように使用および他の変数に基づいてキューを動的に定義するように構成することも可能である。固定したキューの長さ、および／または、明示的エージングおよびコンテキスト生存期間を用いて、例えば固定長さが３である場合にＣ４がアクセスされたとする。それにより、CCList5：C4(5)、C1(4)、C3(3)を有することとなり、これによってＣ２は、キューの終端から脱落して消滅する。本質的には、この例においては、システムが、予めプログラムされ、３つの対話に対してのみコンテキストをアライブに維持することも可能である。そのため、Ｃ１、次にＣ４が再度アクセスされると、キューは以下を備えることとなる。
CCList6：C1(6)、C4(5)、C3(3)
CCList7：C4(7)、C1(6)
【００８２】
例示する目的のみの上記例においては、現在の時間７からＣ３の時間３を引くと３よりも大きいので、Ｃ３は消滅する。実際に、リストの長さは３よりもずっと長いように思われ、コンテキストの生存期間はコンテキストの性質によって変化可能である。当業者に明らかであるように、さらなる変更が可能である。
【００８３】
さらなる実施形態では、このシステムは、インタラクティブ能力を動的に、しかも連続して発展させるように構成するように動作可能である。このシステムは、エンコードされた指令をメモリに持つ処理装置を含んだハイブリッド自動化ルールベースエージェントを備え、この指令により、システムは、各々のユーザインタラクションのためのシナリオを作成する必要なく、インタラクティブなエージェント(システム)能力を徐々に進化させてゆく（すなわち、デベロッパがコンテキストおよびコンテンツに基づいて対話を決定する自動化された対話システムをインテリジェントに作成することが可能である）。命令によって、さらに、システムはＮＬＵユニット４１５に適用されるルールを定義し、ＮＬＵユニット４１５は自動化の機能性を向上させ、ＮＬＰを実現化し、ＮＬＰはユーザ入力の意味へのマッピングを含む。ＮＬＰは、ジャンルタグ付けをさらに含むことも可能であり、このジャンルタグ付けはユーザ入力のワードおよびフレーズをコンテンツと比較するための正規化された意味のある形式へのマッピングを含む。ジャンルマッピングは、曖昧なジャンルタグ付けをアドレス指定するために、形態素解析装置からの音声の適用（解析）部をさらに備えることも可能である。例えば、システムは名詞の“ｓｅｔ”と動詞の“ｓｅｔ”とを区別するように動作可能であってもよい。さらに、エンコードされた指令によってシステムが、ますます一般的な親の値へのマッチングを許容するための階層構造を作成することが可能である。さらに、または代わりに、ＮＬＰは、意味（意味論）を決定するための基盤を提供する構造化された形式へ、自然言語での文字列の自動変換を行うことも可能である。代表的技術は、以下を含むことも可能である：例えばワードのスペースによる分離のない中国語および日本語等の言語に対して実現されるワードトークン化；音声の決定部、すなわち動詞、名詞、副詞等を必要とする形態素解析；全体的な文の性質を示すダイアログアクト（場所についての質問、要望のための命令文等）。一実施形態では、ＮＬＰは、コンテキストに基づく処理およびジャンルタグ付けを行うことができるように、これらの技術を拡大する。
【００８４】
このシステムはさらに、コンテンツへのマッチングを容易にするための簡単な文字列表現を生成するように動作可能である。ジャンルは、３つの部分から成る意味論的概念の表現である。（ａ）正規表現：これは（恐らくは多言語において）潜在的に大きい組の同義語/フレーズ/文の断片のカノニカル（正規化）表現である。（ｂ）ファミリ：これは関連する正規表現のグループである。（ｃ）ＲＡＷ：これは、ジャンルに関連するユーザ入力からの未加工のワードまたはフレーズである。ジャンルは、データ構造または文字列によって表現可能である。シンプル化のために、正規表現＿ファミリ＿ＲＡＷといった形式による文字列として、ジャンルを表現することも可能である。コンテンツは、特定の正規表現＿ファミリの意味論的概念を表すべきワードおよびフレーズの組を定義することが可能である。例えば：
イタリア＿料理＝イタリア料理、イタリアンフード、イタリアからの食品、イタリアン
５つ星＿格付け＝５つ星、５つ星、最高
除去＿動作＝削除、除去、排除、控除
【００８５】
その後、システムはユーザ入力をジャンルを含む形式に置換することが可能であり、これは“ジャンルタグ付け”または単に“タグ付け”とも呼ばれる。例えば以下のようになる。
ユーザ入力：ザ  ベスト  イタリアン  フード
タグ付け：５つ星＿格付け＿ザ%20ベスト
イタリア＿料理＿イタリアン%20フード
【００８６】
未加工のユーザ入力は、このように関連するジャンルでタグ付けされる。より読みやすくするために、未加工のユーザ入力部分は、以下のように省かれ得る。
タグ付け：イタリア＿料理  ５つ星＿格付け
【００８７】
極めて有用なファミリが、例えば数、時間、日付等のように、コンテンツ内での定義を実現可能とするにはあまりにも大きすぎる１組の可能な正規表現を有する例では、システムは動的な正規化を適用することが可能である。例えば、以下の方法で時間を処理するのが有用になり得る：ユーザが時間を入力する場合、その時間は開始時刻と題するクライテリアに配置することが出来る。これは、動的に正規化されたジャンルのファミリを使用するジャンルマッピングルールを定義することにより達成することが可能となる：＿時刻→正規表現に関連する値に開始時刻クライテリアを設定する。動的正規化は、ジャンルに対する正規表現を動的に（ランタイムに）作成する能力を参照する。
例えば、
ユーザ入力：１：３２ｐｍ
タグ付け形式：Ｔ１３３２＿時刻
【００８８】
Ｔ１３３２は、動的に作成された正規表現である。これは、ユーザ入力をマッチングし、その入力における情報を取り込み、その後、特定の変換ルーチン（潜在的には定義されたコンテンツ）にその情報を渡して、取り込んだデータから正規表現を作成することによって達成され得る。その後、コンテンツデベロッパがいつでもかわらない入力に対応するためのジャンルマッピングルールを定義することが可能である：
マッチング条件：＿時刻
動作：＿時刻の正規表現に関連する値に開始時刻クライテリアを設定。例えば、Ｔ１３３２→開始時刻＝１３:３２
【００８９】
ジャンルマッピングは、ユーザ入力(意味論)を扱うためのルールへのその入力(構文)のジャンルタグ付け形式をマッピングするＮＬＵ方法である。システムは、ジャンルマッチングルールに対してユーザ入力をマッチングし、ルールが適用される際にタグ付け入力の関連部分を使用する。１つのジャンルマッピングルール定義は以下を含むことも可能である：
・マッチング条件：動作を適用するためのキーマッチングジャンルの任意のリストがこれに関連する、マッチングジャンルのブール式、またはキーマッチングジャンルが情報を抽出するために使用するマッチングジャンル式のジャンル、具体的には正規表現であるマッチング文法のいずれかであってもよい；
・任意の関連するコンテキスト：例えば、現在定義されているクライテリア、エージェント/システム状態（例えばマップを示す、詳細を示す等）、会話コンテキスト、ユーザの好み、ロケール、言語等のブール式；
・実施するべき１つ以上の動作：例えば、クライテリアの設定、クライテリアの追加、値の削除、クライテリアの値のリストの提示、Ｅメールの送信、マップの表示、メッセージの出力等；
・関連するジャンル：これは存在するならば、同じ意味論を表し、ジャンルマッピングの処理で使用されるべき他のジャンルである。
【００９０】
マッチングジャンル形式は、入力のジャンルタグ付け表現へのマッチングの目的のためのジャンルの表現である。これらは、（ａ）任意の正規表現、（ｂ）ファミリ、または（ｃ）未加工（ＲＡＷ）のキーワード表現を含むことも可能である。例えば、これらは、正規表現＿ファミリまたは＿ファミリ（ファミリのいずれかの正規表現）およびＲＡＷ（特定のキーワードマッチング）として表現可能である。
正規表現＿ファミリ＿ＲＡＷは、正規表現＿ファミリにマッチングする
正規表現＿ファミリ＿ＲＡＷは、＿ファミリにマッチングする
正規表現＿ファミリ＿ＲＡＷは、ＲＡＷにマッチングする
【００９１】
これは、マッチングジャンルのブール式であり、ユーザ入力に反して複雑なマッチングを許容する。マッチングジャンルＡ，ＢおよびＣを仮定した場合、以下のようなブール式が定義づけられる：
・A：残りのユーザ入力内のどこかでＡが生じる場合、マッチングする
・A and (B or C)：残りのユーザ入力がＡならびにＢまたは/およびＣにマッチングする場合、またその場合のみ、マッチングする
・A and not B：残りのユーザ入力がＡにマッチングするが、Ｂにマッチングしない場合、またその場合のみ、マッチングする
【００９２】
ユーザ入力とマッチング条件定義の対比においてジャンルが出現する順番は、他のジャンルまたはキーワードを介在して存在するものとして、無視することも可能である。従って、これらのユーザ入力の両方を扱うために、１つのルールに書くことができる。例えば、
入力：“除去  イタリアン”
タグ付け：除去＿動作  イタリア＿料理
入力：“イタリアン，除去  プリーズ”
タグ付け：イタリア＿料理  除去＿動作(“プリーズ”は重要ではないワードとして除去される)
【００９３】
順番が重要な場合、マッチング文法をマッチング条件の代わりに使用することが可能である。
【００９４】
代わりに、現在定義されているクライテリアのブール式が適用され得る。これは、現在定義されているクライテリアにおけるブール式である、関連するコンテキスト表現である。これによって、ある一定のクライテリアが定義されている場合または定義されていない場合にのみマッチするジャンルマッピングをコンテンツが定義することが可能になる。例えば、クライテリアＸ，ＹおよびＺに対して：
・Ｘは値を有し（Ｙは値を有するかまたはＺは値を有する）
・Ｘは特定の値を有し、Ｙは特定の値を有さない。
【００９５】
エージェント/システムは、エージェントの特定のドメインにおいてユーザ入力を扱うための多くのジャンルマッピングルールを定義することも可能である。コンテンツを使用してジャンルマッピングルールを定義することも可能であり、その場合、(例えば)特定の料理を提供するレストランのためのユーザ入力に応答して、要求される/検索されるユーザ入力された料理に対して食物の種類の検索クライテリアを設定するルールを実行することも可能である。または（例えば）ユーザが特定の種類の地元企業を探している場合、それに応じて検索クライテリアが設定され得る。例えば、ユーザによってイタリア＿料理が入力されると、検索クライテリアの食物の種類にイタリアンを設定するルールを実行することも可能である。以下は、ユーザ入力の例に対する例示のシステム応答を示す：
マッチング条件：イタリア＿料理
動作：食物の種類クライテリアに食物の種類値  イタリアンを設定する。
【００９６】
ジャンルマッピングが「ファミリ  料理」のマッチングを要求し得るという点で、よりいっそう有力な抽象化が可能となり、その後、正規表現に関連する食物の種類値を割り当てる。その場合、以下のようになる：
マッチング条件：＿料理
動作：ユーザ入力の＿料理タグ付けの正規表現に関連する食物の種類値を食物の種類クライテリアに設定する。
【００９７】
さらに、ジャンルマッピングがルールにマッチングしてそれらを処理する際、マッチングされたタグ付けを除去し、他のルールが適用されたかどうかを確認し続ける。
初期のタグ付け：イタリア＿料理  ５つ星＿格付け
マッチング条件：＿料理
動作：ユーザ入力の＿料理タグ付けの正規表現に関連する食物の種類値を食物の種類クライテリアに設定する
結果：料理＝イタリアン
残りのタグ付け：５つ星＿格付け
マッチング条件：＿格付け
動作：ジャンルマッチング＿格付けの正規表現に関連する格付けレベル値を格付けレベルクライテリアに設定する
結果：格付けレベル＝５
残りのタグ付け：無し
【００９８】
また、ユーザが同じジャンルの多数のインスタンスを入力する場合、これらもまた以下のように自動的に処理することが可能である。
入力：“イタリアンまたはピザ”
初期のタグ付け：イタリア＿料理  または＿関連  ピザ＿料理
マッチング条件：＿料理
動作：ユーザ入力の＿料理タグ付けの正規表現に関連する食物の種類値を食物の種類クライテリアに設定する
結果：食物の種類＝イタリアンまたはピザ
【００９９】
マッチング条件の他の可能な形式は文法であり、これは、現在残っているユーザ入力に対してマッチングされるマッチングジャンル形式を用いる文または文断片であり、順番に完全にマッチングしなければならない。例えば以下の通りである：
タグ付け：除去＿動作  イタリア＿料理  追加＿動作  フランス＿料理
【０１００】
簡単なマッチング条件は、誤った行動に至ることに注目されたい。
初期のタグ付け：除去＿動作  イタリア＿料理  追加＿動作  フランス＿料理
マッチング条件：追加＿動作＿料理
動作：ユーザ入力の＿料理タグ付けの正規表現に関連する食物の種類値を食物の種類クライテリアに設定する
結果：食物の種類＝イタリアンまたはフレンチ
【０１０１】
しかし、システムは以下のように文法を定義することが可能である。
初期のコンテキスト：食物の種類＝イタリアン
マッチング文法：“除去＿動作＿料理”
動作：食物から＿料理の正規表現に関連する食物の種類値を除去する
結果：食物の種類＝＜無し＞
マッチング文法：“追加＿動作＿料理”
動作：ユーザ入力の＿料理タグ付けの正規表現に関連する食物の種類値を食物の種類クライテリアに設定する
結果：食物の種類＝フレンチ
【０１０２】
上記の自動化ルールベースエージェント／システムの一実施形態は、ＮＰＣＱＬ（ネットピープルコンテンツクエリ言語（NetPeople Content Query Language））とも呼ばれるプロトコルを備え、これは、クエリを行って、文脈把握によるインタラクティブな検索に対して最適化されたコンテンツプロバイダから結果を獲得する方法を定義する。これによって、マッシュアップへのコンテンツアクセスを簡素化する固定データスキーマへのアクセスが可能となる。好ましくは、ＮＰＣＱＬは、開示した実施形態で述べるように、いずれかのＡＰＩまたはコンテンツプロバイダへの依存性がないように設けられ、特定の要求および戻って来た結果から特定のコンテンツプロバイダＡＰＩのコールを分離する手段を備える。ＮＰＣＱＬによって、エージェント／システムがコンテンツプロバイダ自体に依存することなくサードパーティコンテンツにアクセスすることが可能である。このように、コンテンツプロバイダはエージェント／システムに要求される変更を行うことなく変化および追加（“マッシュアップ”）が可能である。あるいは、サードパーティは、ＮＰＣＱＬプロトコルを単に支援するだけでシステムと一体化可能である。さらに、ＮＰＣＱＬは、各コンテンツドメインに対して定義されたデータスキーマを備える。例えば、レストラン検索は、例えば食物の種類（Food Type）、サービスの種類（Service Types）、予算（Budget）等のレストラン検索に対するクライテリアおよび結果データ正規表現に対するスキーマを有する。このスキーマは、既存の実現に影響を与えることなく、容易に追加可能である。特定のドメインで使用するスキーマは、時間や予算等の一般的なデータを食物の種類（Food Type）等の特定のデータと合体させる。
【０１０３】
サーバ４１０は、学習によって自動曖昧性除去を提供することが可能である。一実施形態では、ＮＬＵユニット４３５は、曖昧性除去が必要であることを決定し、曖昧性除去を実施するか、または会話処理ユニット４２５にユーザ支援を得るように指示する。これによって、応答生成ユニット４４５を介してユーザにプロンプトを出力する。好ましい実施形態は、エンコードされた指令を含み、それによって、システムが自動化された方法で学習出来ることである。例えば、曖昧な事柄であっても、ユーザ選択により、実際には曖昧ではないものとして学習することが出来る。例えば、ユーザ入力が“トロント”であるとしよう。システムは、ユーザがオンタリオ州のトロントかオハイオ州のトロントのいずれを意味しているかを判断しなければならない。例えば、９９．９％の人々がオンタリオ州のトロントを選択する場合、システムは、“トロント”がオンタリオ州のトロントの適切な意味論を考慮するようにプログラミングが可能である。また、ユーザがオハイオ州のトロントの入力を意図している場合、その後、自分達が特定しなければならないことを当然のことながら知ることになるであろう（すなわち、単にトロントと入力するだけでオンタリオ州のトロントを意味すると大半の人々が解釈していることを学習によって熟知しているために、オハイオ州トロントと入力する必要がある）。あるいは、システムは、識別されたユーザによる入力に基づいてユーザパターンを認識することが可能であり、これにより、“トロント”の入力がオハイオ州トロントを意味するものであると理解することができる。加えてまたは代わりに、システムは、ドメイン（対話の主題）、ロケール／場所（ユーザのいる場所）、性別、言語等に基づいて自動曖昧性除去を実施することが可能である。自己曖昧性除去は、当業者に明らかであるように、他の多くのパラメータや上記パラメータの変化を基準にすることも可能である。
【０１０４】
好ましい実施形態は、互いに相互接続された複数のサブシステムを備えており、その各々は特定のドメインを専門に扱う。このように、専門のドメインを有する多くのエージェント／システムは、１つのユーザ入力によってクエリを行い、個々のエージェントの入力を扱う能力に対する信頼水準を戻すことが可能である。その後、処理全体を最良のハンドラに渡すことも可能である。
【０１０５】
システムの好ましい実施形態は、データトランスフォーマー（例えば出力フォーマッタ４７５）を備え、ユーザのための情報をターゲットクライアント４０５にとって最良のディスプレイ（またはオーディオ）フォーマットに変換する。データトランスフォーマーは、異なるクライアント（例えばスマートフォン、タブレット、ＴＶ等）、異なるドメイン（レストラン、地元企業、食料品店等）、異なる国等に対して、データトランスフォーマーを使用することが可能である。データトランスフォーマーの存在によって、エージェントが処理中の装置やコンテンツに対して一般的なものになることが認められ、さらに、ユーザに受け入れられる最良な表示を提供することができる。特定の実施例では、データトランスフォーマーは、NetPeopleからの要求を受け取って、対話の特定されたコンテキストにおける特定の装置に対してフォーマットされていないコンテンツデータをフォーマット化することも可能である。要求は、許可された言語、領域、文字数等、フォーマット化を支援する情報を含むことも可能である。例えば、レストランのリストが要求されている場合、未加工のＮＰＣＱＬデータが（他の関連性のある情報において）装置の形式とコンテキストと共にトランスフォーマーに送られ、そのトランスフォーマーは、直接送信可能なレストラン項目のフォーマット化されたリストを表示の対象にされたクライアントに戻す。
【０１０６】
様々な例示の方法を提供する。
【０１０７】
図１を参照すると、会話型インタラクションを通じてコンテンツおよび情報を検索可能なシステムの一実施形態におけるプロセスフローが示されている。実施形態は、音声ベースおよびテキスト会話型インタラクションを容易に行うことが出来るが、NetPeopleの好ましい実施形態では、音声ベースの会話型インタラクションが許容される。ステップ１１０では、ユーザが、クライアント４０５を用いて、テキストまたは音声でコマンドを入力する。ステップ１１５は、ＮＬＵユニット４１５によって入力コマンドの自然言語解析を実施することを含む。ステップ１２０は、クライテリアマネージャ４２０によってクライテリアを決定する。ステップ１２５は、検索エンジン４２５による、決定されたクライテリアに基づくコンテンツの検索を必要とする。その後、ステップ１３０において、システムは、結果数をチェックし、それによって、削減ユニット４３０による削減または緩和ユニット４５０による緩和が望ましいかまたは必要であるかを判断する。削減ステップ１３５は、あまりに多くの結果が戻って来て、ユーザがより特定的なクライテリアを入力するように求められた場合に実現される。緩和ステップ１４０は、結果が戻らず、その後に、ユーザの入力よりも広範囲に亘る、より一般的なクライテリアに基づいて検索を行う場合に実施される。このように、削減もしくは緩和またはその両方に基づいて、自動検索が行われ、最も正確な結果がステップ１４５にてユーザに提示される。
【０１０８】
削減ユニット４３０は、検索の特定ドメインに対して設定可能な値を提供可能であり、あまりに多くの検索結果（設定可能な値よりも多い）が存在する場合、サーバ４１０は、ユーザに、より多くの情報をインテリジェントに求めて、彼らが実際に何を欲しているかを決定する。それによって、絞り込みを行って、その結果を短いリストに削減することが可能である。削減ユニット４３０は、最良のクライテリアを動的に、しかも自動的に選択して、現在の検索結果に基づいてユーザに尋ね、応答生成器４４５に、可能な回答（クライテリア値）のリストを提示させてユーザの回答を支援することが可能である。例えば、ユーザが特定の領域でレストランを探しているとする。サーバ４１０は、(例えば)“どんな料理をお探しですか？  イタリア料理、中華料理、ベトナム料理、日本料理...”等と問い合わせることによって応答することが出来る。システムは、結果が出ない選択をユーザが行わないように、どんな選択肢（クライテリア値）が存在するか判断する。システムは、もし結果の中にイタリアンレストランがない場合には、自動的にはイタリア料理を尋ねない方が好ましい。
【０１０９】
さらに、削減ユニット４３０は、階層的クライテリア値をサポートし、選択肢のリストが常に合理的であることを確実にすることが可能である。あまりに多くの選択肢が存在する場合、削減ユニット４３０は、親の値を探して、絞り込まれた合理的なサイズの選択肢リストを作成することも可能である。一実施形態では、ユーザが仕事を探しているとする。ユーザは、システムに“私の所在地で仕事を探している”と問い合わせる音声コマンドを入力する。削減ユニット４３０は、削減を実施し、応答生成器４４５に“どのビジネスカテゴリがご希望ですか？ 銀行、官庁...”等を問い合わせることによって応答させる。ユーザは、“銀行”と答える。削減ユニット４３０は、削減を再度行って、特定のクライテリアで作業し、応答生成器４４５に“地方銀行、信託銀行...”等と尋ねさせる。このように、サーバ４１０は、絞り込みによって削減する、関連するターゲットの検索を実施し、それによって、ある場合には、不必要な関連性のない項目の検索を排除する。しかし、コンテンツデベロッパがクライテリアの質問を制御したい場合もある。サーバ４１０によって、コンテンツルールが定義され、自動化システムルールよりもそれを優先することが可能である。このように、ログ解析に基づいて、コンテンツルールおよびクライテリアは、最も自然なユーザ経験を提供するように調整される。当業者に明らかであるように、上記変化および修正が可能である。
【０１１０】
図２を参照すると、削減の例が示されている。ユーザが検索クライテリアを入力した後、先頭の結果がステップ２０５で提示可能となる。ステップ２１０では、提示されたすべての結果のクライテリアが決定される。ステップ２１５では、最良の（最も関連性のある）クライテリアが計算され、決定され、選択される。この場合、好ましい実施形態における最良のクライテリアの計算によって最も多くの結果を排除することになる。残りの（選択された）クライテリア値の選択肢のうち、ユーザがステップ２２０において最良のクライテリアを選ぶように求められる。その後、ステップ２２５において、システムは削減した選択に基づいて、先頭の結果が戻される。
【０１１１】
一方で、全く（またはほとんど）検索結果が見出されない場合、緩和ユニット４５０が、適切な場合は自動的にクライテリアを緩和するかまたは拡大することも可能である。クライテリアを緩和した後、検索を行うことが可能であり、またサーバ４１０は新たな検索結果をクライアント４０５に戻すことも可能である。例えば、ユーザが現在の場所から半径１キロメートルの範囲内にお店を探しており、検索では見つからないとする。緩和装置４５０は、クライテリアを緩和（拡大）することも可能であり、サーバ４１０が半径２キロメートル以内(例えば)で検索を実施して、以下の結果を戻すことも可能である：“私は１ｋｍの範囲内でお店を見つけられなかったので、２ｋｍまでに拡大したら５店舗見つかりました。ほら、見て！”。緩和ルールは、適当な場合に、コンテンツ内で定義することも可能である。以下は緩和ルールの例を示す。
レストラン
ユーザが“サービス”クライテリアを設定する場合、システムがそれを除外して、再検索を行おうとする。
近隣が使用される場合、システムはその近隣を拡大しようとする。
地元企業
ユーザが特別な店舗／場所の名称および商売の形式を定義する場合、システムはその商売の形式を除外して再検索を行おうとする。
【０１１２】
図３を参照すると、緩和の例が示されている。ユーザ入力されたクライテリアに基づく検索が結果を生まない時、緩和ユニット４５０は、ステップ３５０において、どのユーザ入力されたクライテリアを拡大する（緩める）かを決定する。この検索は、その後、ステップ３１０において、拡大する(緩める)ための、決定した最良のクライテリア値を用いて再度実施される。その後、ステップ３１５において、拡大された（緩められた）クライテリア値を用いて実施された検索の結果は、ユーザに戻され提示される。
【０１１３】
ＮＬＵユニット４１５は、住所情報、場所、ランドマークおよび駅名を認識させる命令をさらに含み得る。サーバ４１０が、コンフリクトが存在する場合、住所および場所の曖昧性を除去するための手段をさらに備えることが好ましい。例えば、ユーザが検索のために“オークランド”を入力した場合、サーバ４１０は“カリフォルニアのオークランドですか？それともミシガンのオークランド郡ですか？”と応答可能である。好ましい実施形態では、サーバ４１０は、住所内の親子関係（都市、州、郡の近隣）を理解することが可能であり、曖昧性除去に役立つ共通祖先（親、祖父母等）エンティティを使用し、その結果、例えばユーザが“オークランド”と言い、ユーザが（そのＧＰＳ座標の逆ジオコードから決定されるように）サンフランシスコにいる場合、サーバ４１０は、特定のオークランドとカリフォルニアとの関係およびカリフォルニアにいるユーザのコンテキストによって、米国カリフォルニア州オークランドであると理解する。そのため、ユーザの最も明らかな意図は、“オークランド”の局所的意味となる。他の例は、様々な場所に多くのインカーネーションを有する近隣の“チャイナタウン”であるが、（例えば同じ都市の）ユーザに共通の住所によって曖昧性除去され得る。このように、上記の通り、好ましい実施形態のサーバ４１０は、住所内の関係を“理解”することが可能であり、その結果、ユーザが“サンフランシスコ”と言えば、システムは、ＧＰＳ座標の逆ジオコードや他のいずれかの関連するクライテリアから決定されるように米国カリフォルニア州サンフランシスコとして理解する。さらに、ルールは、ユーザログ解析に基づいて調整し、追加されてユーザ経験を向上させてゆく。
【０１１４】
好ましくは、サーバ４１０は、絶対的と言うよりも仮に１つ以上のクライテリアを設定／追加し、その後、検索が結果を戻さない場合に設定を自動的に外すことが可能な命令を含む。例えば：
絶対的クライテリア設定：
値を設定  環境＝楽しい
検索
結果を示す（可能なものがない）
仮のクライテリア設定：
仮に値を設定  環境＝楽しい
検索
ケース１：ゼロ検索結果−環境から楽しいを除去および再度検索
ケース２：１つ以上の検索結果−仮の設定は絶対的設定になる
両方のケースに対して結果を示す。
【０１１５】
他のコンテキストが仮の設定と共に変化した可能性もあるため、これは、最後の組の変化を取り消すことと必ずしも同じではないことに注目されたい。むしろ、仮のものであるとマーキングした組のみを取り消す。
【０１１６】
ある例示の実施形態を述べ、添付図面で示したが、このような実施形態が単に例示のものであり、広範囲に亘る発明について制限的ではなく、本発明が図示され記載された特定の構造および配置に制限されないことが理解されるべきである。なぜなら、本開示を研究することによって、当業者が様々な他の変更を行うことも可能だからである。このような技術の領域では、成長が速く、さらなる進歩が容易には予見されない場合、開示した実施形態は、本開示の主要部または添付の請求の範囲を逸脱することなく技術的進歩を可能にすることにより促進されるように、配置および詳細が容易に変更可能であってもよい。 
【図１】
2018077858.tif 000003
【図２】
2018077858.tif 000004
【図３】
2018077858.tif 000005
【図４】
2018077858.tif 000006