(57)【要約】【課題】バーチャルアシスタントに与えられるコマンドの解釈及び処理を改善するためのメカニズムを提供する。【解決手段】バーチャルアシスタントは、コンテクスト情報を使用して、ユーザからの自然言語又はジェスチャー入力を補足する。コンテクストは、ユーザの意図を明確にし、ユーザ入力の解釈の候補数を減少し、そしてユーザが非常に明瞭な入力を与える必要性を緩和する上で助けとなる。コンテクストは、明確なユーザ入力を補足して情報処理問題を制限し及び／又は結果を個人化するためにアシスタントにより使用できる利用可能な情報を含む。コンテクストは、例えば、スピーチ認識、自然言語処理、タスクフロー処理及びダイアログ発生を含めて、種々の処理段階中に解答を制限するのに使用できる。【選択図】図２
2015122104.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサを有するコンピューティング装置でタスクを遂行するためにユーザ入力を解釈するコンピュータプログラム製品において、
非一時的なコンピュータ読み取り可能な記憶媒体と、
前記媒体にエンコードされたコンピュータプログラムコードであって、少なくとも１つのプロセッサが、
コンテクストソースからコンテクスト情報を受け取り、
出力装置がユーザに入力を促すようにさせ、
入力装置を経てユーザ入力を受け取り、
前記受け取ったユーザ入力を解釈して、ユーザの意図の表現を導出し、
少なくとも１つのタスク及び該タスクに対する少なくとも１つのパラメータを、前記ユーザの意図の導出された表現に少なくとも一部分基づいて識別し、
前記少なくとも１つのパラメータを使用して前記少なくとも１つのタスクを実行して、結果を導出し、
前記導出された結果に基づいてダイアログ応答を発生し、
前記出力装置が前記発生されたダイアログ応答を出力するようにさせる、
という方法を遂行するようにさせるよう構成されたコンピュータプログラムコードと、
を備え、前記コンピュータプログラムコードは、前記出力装置がユーザに入力を促すようにさせ、前記受け取ったユーザ入力を解釈し、少なくとも１つのタスク及び該タスクに対する少なくとも１つのパラメータを識別し、及び前記受け取ったコンテクスト情報を使用してダイアログ応答を発生させる、のうちの少なくとも１つを少なくとも１つのプロセッサが遂行するようにさせるよう構成された、コンピュータプログラム製品。
【請求項２】
タスクを遂行するためにユーザ入力を解釈するシステムにおいて、
ユーザに入力を促すように構成された出力装置と、
ユーザ入力を受け取るように構成された入力装置と、
前記出力装置及び入力装置に通信結合された少なくとも１つのプロセッサであって、
コンテクストソースからコンテクスト情報を受け取り、
前記受け取ったユーザ入力を解釈して、ユーザの意図の表現を導出し、
少なくとも１つのタスク及び該タスクに対する少なくとも１つのパラメータを、前記ユーザの意図の導出された表現に少なくとも一部分基づいて識別し、
前記少なくとも１つのパラメータを使用して前記少なくとも１つのタスクを実行して、結果を導出し、
前記導出された結果に基づいてダイアログ応答を発生する、
というステップを遂行するように構成された少なくとも１つのプロセッサと、
を備え、
前記出力装置は、更に、前記発生されたダイアログ応答を出力するように構成され、
ユーザに入力を促し、受け取ったユーザ入力を解釈し、少なくとも１つのタスク及び該タスクに対する少なくとも１つのパラメータを識別し、及びダイアログ応答を発生する、のうちの少なくとも１つは、前記受け取ったコンテクスト情報を使用して遂行される、システム。
【請求項３】
前記受け取ったコンテクスト情報は、
アプリケーションコンテクスト、
ユーザに関連したパーソナルデータ、
ユーザに関連したデータベースからのデータ、
ダイアログ履歴から得たデータ、
少なくとも１つのセンサから受け取られたデータ、
アプリケーションの好み、
アプリケーション使用履歴、
イベントを記述するデータ、
口頭入力が受け取られる音響環境を記述するデータ、
現在ダイアログ状態、
ユーザにより以前に与えられた入力、
位置、
位置の時間、及び
環境条件、
より成るグループから選択された少なくとも１つを含む、請求項２に記載のシステム。
【請求項４】
前記出力装置は、会話インターフェイスを経てユーザを促すように構成され、
前記入力装置は、口頭入力を受け取ることによって会話インターフェイスを経てユーザ入力を受け取るように構成され、
前記少なくとも１つのプロセッサは、口頭入力をテキスト表現へ変換するように構成される、請求項２に記載のシステム。
【請求項５】
前記少なくとも１つのプロセッサは、
口頭入力の複数の候補テキスト解釈を発生し、
前記発生された候補テキスト解釈の少なくともサブセットをランク付けする、
ことにより、口頭入力をテキスト表現へ変換するように構成され、
前記発生及びランク付けステップの少なくとも１つは、受け取ったコンテクスト情報を使用して遂行される、請求項４に記載のシステム。
【請求項６】
前記発生及びランク付けの少なくとも１つに使用される前記受け取られたコンテクスト情報は、
口頭入力が受け取られる音響環境を記述するデータ、
少なくとも１つのセンサから受け取られるデータ、
ユーザに関連したデータベースから得られる語彙、
アプリケーションの好みに関連した語彙、
使用履歴から得られる語彙、及び
現在ダイアログ状態、
より成るグループから選択された少なくとも１つを含む、請求項５に記載のシステム。
【請求項７】
前記出力装置は、前記受け取ったコンテクスト情報に少なくとも一部分基づいて少なくとも１つのプロンプトを発生することによりユーザを促すように構成される、請求項２に記載のシステム。
【請求項８】
前記少なくとも１つのプロセッサは、前記受け取ったコンテクスト情報に少なくとも一部分基づいて前記受け取ったユーザ入力に対して自然言語処理を遂行することによりユーザ意図の表現を導出するように前記受け取ったユーザ入力を解釈するように構成される、請求項２に記載のシステム。
【請求項９】
前記受け取ったユーザ入力を解釈するのに使用される前記受け取ったコンテクスト情報は、
イベントを記述するデータ、
アプリケーションコンテクスト、
ユーザにより以前に与えられた入力、
ユーザに関する既知の情報、
位置、
日付、
環境条件、及び
履歴、
より成るグループから選択された少なくとも１つを含む、請求項８に記載のシステム。
【請求項１０】
前記少なくとも１つのプロセッサは、少なくとも１つのタスク及び該タスクに対する少なくとも１つのパラメータを、前記受け取ったコンテクスト情報に少なくとも一部分基づいて識別することにより、少なくとも１つのタスク及び該タスクに対する少なくとも１つのパラメータ識別するように構成される、請求項２に記載のシステム。
【請求項１１】
少なくとも１つのタスク及び該タスクに対する少なくとも１つのパラメータを識別するのに使用される前記受け取ったコンテクスト情報は、
イベントを記述するデータ、
ユーザに関連したデータベースからのデータ、
少なくとも１つのセンサから受け取ったデータ、
アプリケーションコンテクスト、
ユーザにより以前に与えられた入力、
ユーザに関する既知の情報、
位置、
日付、
環境条件、及び
履歴、
より成るグループから選択された少なくとも１つを含む、請求項１０に記載のシステム。
【請求項１２】
前記少なくとも１つのプロセッサは、前記受け取ったコンテクスト情報に少なくとも一部分基づいてダイアログ応答を発生することにより、ダイアログ応答を発生するように構成される、請求項２に記載のシステム。
【請求項１３】
ダイアログ応答を発生するのに使用される前記受け取ったコンテクスト情報は、
ユーザに関連したデータベースからのデータ、
アプリケーションコンテクスト、
ユーザにより以前に与えられた入力、
ユーザに関する既知の情報、
位置、
日付、
環境条件、及び
履歴、
より成るグループから選択された少なくとも１つを含む、請求項１２に記載のシステム。
【請求項１４】
前記受け取ったコンテクスト情報は、
サーバーに記憶されたコンテクスト情報、及び
クライアントに記憶されたコンテクスト情報、
より成るグループから選択された少なくとも１つを含む、請求項２に記載のシステム。
【請求項１５】
前記少なくとも１つのプロセッサは、
コンテクストソースからコンテクスト情報を要求し、及び
前記要求に応答してコンテクスト情報を受け取る、
ことによりコンテクストソースからコンテクスト情報を受け取るように構成される、請求項２に記載のシステム。
【請求項１６】
前記少なくとも１つのプロセッサは、
ユーザ入力を受け取る前にコンテクスト情報の少なくとも一部分を受け取る、
ことによりコンテクストソースからコンテクスト情報を受け取るように構成される、請求項２に記載のシステム。
【請求項１７】
前記少なくとも１つのプロセッサは、
ユーザ入力を受け取った後にコンテクスト情報の少なくとも一部分を受け取る、
ことによりコンテクストソースからコンテクスト情報を受け取るように構成される、請求項２に記載のシステム。
【請求項１８】
前記少なくとも１つのプロセッサは、
初期化ステップの一部分としてスタティックなコンテクスト情報を受け取り、
ユーザ入力を受け取った後に付加的なコンテクスト情報を受け取る、
ことによりコンテクストソースからコンテクスト情報を受け取るように構成される、請求項２に記載のシステム。
【請求項１９】
前記少なくとも１つのプロセッサは、
コンテクスト情報の変化のプッシュ通知を受け取り、
そのプッシュ通知に応答して、ローカル記憶されたコンテクスト情報を更新する、
ことによりコンテクストソースからコンテクスト情報を受け取るように構成される、請求項２に記載のシステム。
【請求項２０】
前記出力装置、入力装置、及び少なくとも１つのプロセッサは、
電話、
スマートホン、
タブレットコンピュータ、
ラップトップコンピュータ、
パーソナルデジタルアシスタント、
デスクトップコンピュータ、
キオスク、
消費者向け電子装置、
消費者向け娯楽装置、
音楽プレーヤ、
カメラ、
テレビジョン、
電子ゲーム機、及び
セットトップボックス、
より成るグループから選択された少なくとも１つのコンポーネントとして具現化される、請求項２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、バーチャルアシスタントに関し、より特定すれば、そのようなアシスタントに与えられるコマンドの解釈及び処理を改善するためのメカニズムに関する。
【０００２】
（関連出願の相互参照）
本出願は、２００９年６月５日に出願された“Contextual Voice Commands”と題する米国実用特許出願第１２／４７９，４７７号、代理人整理番号Ｐ７３９３ＵＳ１、の一部継続出願として優先権を主張するものであり、その全ての開示が参考としてここに援用される。
【０００３】
本出願は、更に、２０１１年１月１０日に出願された“Intelligent Automated Assistant”と題する米国実用特許出願第１２／９８７，９８２号、代理人整理番号Ｐ１０５７５ＵＳ１、の一部継続出願として優先権を主張するものであり、その全ての開示が参考としてここに援用される。
【０００４】
米国実用特許出願第１２／９８７，９８２号は、２０１０年１月１８日に出願された“Intelligent Automated Assistant”と題する米国仮特許出願第６１／２９５，７７４号、代理人整理番号ＳＩＲＩＰ００３Ｐ、から優先権を主張するものであり、その全ての開示が参考としてここに援用される。
【０００５】
本出願は、更に、２０１１年６月３日に出願された“Generating and Processing Data Items That Represent Tasks to Perform”と題する米国仮特許出願第６１／４９３，２０１号、代理人整理番号Ｐ１１３３７Ｐ１、から優先権を主張するものであり、その全ての開示が参考としてここに援用される。
【０００６】
本出願は、本出願と同日に出願された“Generating and Processing Data Items That Represent Tasks to Perform”と題する米国実用特許出願、代理人整理番号Ｐ１１３３７ＵＳ１、に関するものであり、その全ての開示が参考としてここに援用される。
【０００７】
本出願は、本出願と同日に出願された“Automatically Adapting User Interfaces for Hands-Free Interaction”と題する米国実用特許出願、代理人整理番号Ｐ１１３５７ＵＳ１、に関するものであり、その全ての開示が参考としてここに援用される。
【背景技術】
【０００８】
今日の電子装置は、大きな、成長するそして様々な量のファンクション、サービス及び情報に、インターネットを経て及び他のソースから、アクセスすることができる。そのような装置のファンクションは、急速に増加している。というのは、多くの消費者用装置、スマートホン、タブレットコンピュータ、等がソフトウェアアプリケーションを実行して、種々のタスクを遂行し、そして異なる形式の情報を提供することができるからである。多くの場合、各アプリケーション、ファンクション、ウェブサイト又は特徴は、それ自身のユーザインターフェイス及びそれ自身の動作パラダイムを有し、その多くは、ユーザにとって学習し又は圧倒することが難儀である。加えて、多くのユーザは、自分の電子装置又は種々のウェブサイトにおいて、どんなファンクション及び／又は情報を利用できるか発見することも困難であり、従って、そのようなユーザは、挫折し又は圧倒されるか、或いは利用可能なリソースを単に有効に使用できないかである。
【０００９】
特に、初心者ユーザ、障害者又は何かができない者、及び／又は年配者、多忙者、気が散った者、及び／又は乗物の運転者は、自分の電子装置に効果的にインターフェイスしたり、及び／又はオンラインサービスに効果的に関与したりすることが困難である。特に、そのようなユーザは、おそらく、利用可能な非常に多数の様々な、一貫性のないファンクション、アプリケーション及びウェブサイトでの問題を抱えることになろう。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従って、既存のシステムは、多くの場合に、使用及び操縦が困難であると共に、多くの場合に、一貫性のない、どうしようもないインターフェイスをユーザにもたらし、多くの場合に、ユーザが技術を有効利用するのを妨げる。
【００１１】
ここでバーチャルアシスタントとも称されるインテリジェントな自動アシスタントは、人間とコンピュータとの間の改良されたインターフェイスを提供することができる。全ての開示を参考としてここに援用する２０１１年１月１０日に出願された“Intelligent Automated Assistant”と題する米国実用特許出願第１２／９８７，９８２号、代理人整理番号Ｐ１０５７５ＵＳ１、に説明されたように具現化できるそのようなアシスタントは、口頭及び／又はテキスト形態での自然言語を使用してユーザが装置又はシステムと対話できるようにする。そのようなアシスタントは、ユーザの入力を解釈し、ユーザの意図を、タスク及びタスクに対するパラメータへと運用し、それらのタスクをサポートするためのサービスを実行し、そしてユーザに理解できる出力を発生する。
【００１２】
バーチャルアシスタントは、例えば、知識ベース、モデル及び／又はデータを含めて、ユーザ入力を処理するための多数の情報ソースのいずれかを引き出すことができる。多くのケースでは、ユーザの入力だけでは、ユーザの意図及び遂行すべきタスクを明確に定義することが充分でない。これは、入力ストリームにおけるノイズ、ユーザ間の個人差、及び／又は自然言語の固有の曖昧さによるものである。例えば、電話に対するテキストメッセージングアプリケーションのユーザは、バーチャルアシスタントを呼び出して、コマンド「彼女にコールする(call her)」と言う。このようなコマンドは、完全に正当な英語であるが、その要求に対する解釈及び考えられる解答が多数あるので、正確な実行可能なステートメントではない。従って、更に情報がないと、バーチャルアシスタントは、そのような入力を正しく解釈して処理することができない。この種の曖昧さがエラーを招き、誤ったアクションが遂行され、及び／又は入力を明瞭化するための要求でユーザに著しい負担を掛ける。
【課題を解決するための手段】
【００１３】
本発明の種々の実施形態によれば、バーチャルアシスタントは、コンテクスト情報（ここでは「コンテクスト」とも称される）を使用して、ユーザからの自然言語又はジェスチャー入力を補足する。これは、ユーザの意図を明確にし、ユーザ入力の解釈の候補数を減少し、そしてユーザが非常に明瞭な入力を与える必要性を緩和する上で助けとなる。コンテクストは、明確なユーザ入力を補足して情報処理問題を制限し及び／又は結果を個人化するためにアシスタントにより使用できる利用可能な情報を含む。例えば、ユーザからの入力が代名詞（コマンド“call her”(彼女にコールする)の“her”(彼女)のような）を含む場合には、バーチャルアシスタントは、コンテクストを使用して、代名詞の参照先を推測し、例えば、電話を受ける個人のアイデンティティ及び／又は使用する電話番号を確認する。コンテクストの他の使用については、以下に述べる。
【００１４】
本発明の種々の実施形態によれば、電子装置で実施されるバーチャルアシスタントにおいて計算を遂行するためにコンテクスト情報を取得して適用する多数のメカニズムを実施することができる。種々の実施形態において、バーチャルアシスタントは、全ての開示を参考としてここに援用する２０１１年１月１０日に出願された“Intelligent Automated Assistant”と題する米国実用特許出願第１２／９８７，９８２号、代理人整理番号Ｐ１０５７５ＵＳ１、に説明されたインテリジェント自動アシスタントである。このようなアシスタントは、自然言語ダイアログを使用する一体的な会話形態でユーザに関わり、適時に外部サービスを呼び出して、情報を得るか又は種々のアクションを遂行する。ここに述べる技術によれば、コンテクスト情報は、そのようなアシスタントにおいて、例えば、スピーチ認識、自然言語処理、タスクフロー処理、及びダイアログ発生のような情報処理ファンクションを遂行するときに曖昧さを減少するように使用される。
【００１５】
本発明の種々の実施形態によれば、バーチャルアシスタントは、コンテクストを使用して、種々の異なる形式のオペレーション、ファンクション、及び／又は特徴を遂行し、及び／又はそれがインストールされた電子装置の複数の特徴、オペレーション及びアプリケーションを結合するように構成され、設計され、及び／又は動作することができる。ある実施形態では、本発明のバーチャルアシスタントは、ユーザから入力を能動的に引き出し、ユーザの意図を解釈し、競合する解釈の中を明瞭化し、必要に応じて明瞭化情報を要求し及び受け取り、及び／又は見分けられた意図に基づきアクションを遂行（又は開始）する、ことのいずれか又は全部を遂行するときに、コンテクストを使用することができる。
【００１６】
アクションは、例えば、電子装置で利用できるアプリケーション又はサービス、並びにインターネットのような電子的ネットワークを経て利用できるサービス、をアクチベートし、及び／又はそれとインターフェイスすることにより、遂行される。種々の実施形態において、外部サービスのそのようなアクチベーションは、アプリケーションプログラミングインターフェイス（ＡＰＩ）を経て又は他の適当なメカニズムにより遂行される。このように、本発明の種々の実施形態により実施されるバーチャルアシスタントは、電子装置の多数の異なるアプリケーション及びファンクションに関して、並びにインターネットを経て利用できるサービスに関してユーザの経験を統合し、簡単化し、そして改善することができる。従って、ユーザは、装置及びウェブ接続サービスにおいてどんな機能を利用できるか、自分の希望を達成するためにそのようなサービスとどのようにインターフェイスするか、及びそのようなサービスから受け取った出力をどのように解釈するかについて、学習する負担が軽減され、むしろ、本発明のアシスタントは、ユーザとそのような種々のサービスとの間の媒介者として働くことができる。
【００１７】
加えて、種々の実施形態において、本発明のバーチャルアシスタントは、従来のグラフィックユーザインターフェイスより直感的に且つ負担なくユーザが見出せる会話インターフェイスを提供する。ユーザは、例えば、スピーチ、グラフィックユーザインターフェイス（ボタン及びリンク）、テキストエントリ、等の多数の入手可能な入力及び出力メカニズムのいずれかを使用してアシスタントと会話ダイアログの形態で関与することができる。システムは、装置ＡＰＩ、ウェブ、ｅ−メール、等、又はその組み合わせのような多数の異なるプラットホームのいずれかを使用して実施される。追加入力の要求がそのような会話のコンテクストでユーザに与えられる。以前のイベント、及び所与のセッション内の通信、並びにユーザに関する履歴的及びプロフィール情報が与えられると、ユーザ入力を適切なコンテクストで解釈できるように短期及び長期メモリが関与される。
【００１８】
更に、種々の実施形態において、装置の特徴、オペレーション又はアプリケーションとのユーザ対話から導出されたコンテクスト情報を使用して、装置又は他の装置の他の特徴、オペレーション又はアプリケーションを合理化することができる。例えば、バーチャルアシスタントは、（コールされた個人のような）電話コールのコンテクストを使用して、テキストメッセージの開始を合理化する（例えば、ユーザがテキストメッセージの受信者を明確に特定する必要なく、テキストメッセージを同じ個人に送信すべきであると決定する）ことができる。従って、本発明のバーチャルアシスタントは、“send him a text message”(彼にテキストメッセージを送信する)というインストラクションを解釈することができ、ここで、“him”(彼)は、現在電話コール、及び／又は装置の特徴、オペレーション又はアプリケーションから導出されるコンテクスト情報に基づいて解釈される。種々の実施形態において、バーチャルアシスタントは、種々の形式の利用可能なコンテクスト情報を考慮に入れて、どのアドレス帳の連絡先を使用すべきか、どの連絡先データを使用すべきか、どの電話番号を連絡先として使用すべきか、等を決定し、ユーザが、そのような情報を手で再指定する必要がないようにする。
【００１９】
コンテクスト情報ソースは、例えば、これに限定されないが、アシスタントへのインターフェイスとして使用される装置の現在状態、例えば、現在時間、位置、アプリケーション、又はデータオブジェクト；パーソナルデータ、例えば、ユーザのアドレス帳、カレンダー、及びアプリケーション使用履歴；並びにユーザとバーチャルアシスタントとの間のダイアログの状態、例えば、最近言及された人々及び／又は場所、を含む。
【００２０】
コンテクストは、バーチャルアシスタントの動作において種々の計算及び推測に適用される。例えば、コンテクストは、ユーザ入力が処理されるときに、曖昧さを減少するか、さもなければ、解答の数を制限するのに使用される。従って、コンテクストは、例えば、これに限定されないが、次のものを含めて、種々の処理段階中の解答を制限するのに使用される。
●スピーチ認識：ボイス入力を受け取り、そしてその解釈の候補を、例えば、「彼女にコールする(call her)」、「カラー(collar)」及び「ハーブにコールする(call Herb)」というテキストで発生する。コンテクストを使用して、スピーチ認識モジュールによりどのワード及びフレーズが考慮されるか、それらがどのようにランクされるか、そしてどれが考慮のためのスレッシュホールドより高いとして受け容れられるかについて、制限することができる。例えば、ユーザのアドレス帳は、アザーワイズ・ランゲッジ・ジェネラル・モデル・オブ・スピーチ(otherwise language-general model of speech)に個人名を追加して、それらの名前を認識できるようにし、プライオリティを与えることができる。
●自然言語処理：テキストをパーズし、そしてワードをシンタクティック及びセマンティックロールに関連付け、例えば、ユーザ入力が代名詞「彼女(her)」で指された個人へ電話コールをしようとしていると決定し、そしてその個人のための特定のデータ表現を見出す。例えば、テキストメッセージングアプリケーションのコンテクストは、「彼女(her)」の解釈を「私がテキストで会話している個人(the person with whom I am conversing in text」を意味するように制限する上で助けとなる。
●タスクフロー処理：ユーザタスク、タスクステップ、及びタスクでアシストするのに使用されるタスクパラメータ、例えば、「彼女(her)」と称される個人に対してどの電話番号を使用するか、識別する。この場合も、テキストメッセージングアプリケーションのコンテクストは、電話番号の解釈を、テキストメッセージング会話に対して現在又は最近使用された番号をシステムが使用しなければならないことを指示するように制限することができる。
●ダイアログ発生：例えば、ユーザの意図を「ＯＫ、私は、レベッカに彼女の電話でコールする・・・(OK, I’ll call Rebecca on her mobile…)」という応答で言い換えるために、タスクに関するユーザとの会話の一部分としてアシスタント応答を発生する。冗舌及び非公式トーンのレベルは、コンテクスト情報により案内できる選択である。
【００２１】
種々の実施形態において、本発明のバーチャルアシスタントは、電子装置の種々の特徴及びオペレーションをコントロールすることができる。例えば、バーチャルアシスタントは、ＡＰＩを経て又は他の手段により装置のファンクション及びアプリケーションとインターフェイスするサービスをコールし、もしそうでなければ装置の従来のユーザインターフェイスを使用して開始されるファンクション及びオペレーションを遂行することができる。そのようなファンクション及びオペレーションは、例えば、アラームをセットし、電話コールを実行し、テキストメッセージ又はｅ−メールメッセージを送信し、カレンダーイベントを追加し、等々を含む。そのようなファンクション及びオペレーションは、ユーザとアシスタントとの間の会話ダイアログのコンテクストにおいてアドオンファンクションとして遂行される。そのようなファンクション及びオペレーションは、ダイアログのようなコンテクストにおいてユーザにより指定されるか、又はダイアログのコンテクストに基づいて自動的に遂行される。従って、当業者であれば、アシスタントは、電子装置における種々のオペレーションを開始し及びコントロールするためのコントロールメカニズムとして使用され、このメカニズムは、ボタン又はグラフィックユーザインターフェイスのような従来のメカニズムに代わるものとして使用されることが明らかであろう。ここに述べるように、コンテクスト情報は、コントロールメカニズムとしてのバーチャルアシスタントのそのような使用を通知し及び改良するために使用することができる。
【００２２】
添付図面は、本発明の多数の実施形態を示すもので、以下の説明と共に、それら実施形態に基づく本発明の原理を説明するのに役立つ。当業者であれば、添付図面に示す特定の実施形態は、単なる例示に過ぎず、本発明の範囲を限定するものではないことが認識されよう。
【図面の簡単な説明】
【００２３】
【図１】一実施形態によるバーチャルアシスタント及びそのオペレーションに影響を及ぼすコンテクストのソースの幾つかの例を示すブロック図である。
【図２】一実施形態によりバーチャルアシスタントにおける種々の処理段階にコンテクストを使用する方法を示すフローチャートである。
【図３】一実施形態によりスピーチ引き出しおよび解釈にコンテクストを使用する方法を示すフローチャートである。
【図４】一実施形態により自然言語処理にコンテクストを使用する方法を示すフローチャートである。
【図５】一実施形態によりタスクフロー処理にコンテクストを使用する方法を示すフローチャートである。
【図６】一実施形態によりクライアントとサーバーとの間に分布されたコンテクストのソースの一例を示すブロック図である。
【図７】図７ａ、図７ｂ、図７ｃ、図７ｄは一実施形態によりコンテクスト情報を得て整合するためのメカニズムの一例を示すイベント図である。
【図８ａ】本発明の実施形態に関連して使用できるコンテクスト情報の表現例を示す。
【図８ｂ】本発明の実施形態に関連して使用できるコンテクスト情報の表現例を示す。
【図８ｃ】本発明の実施形態に関連して使用できるコンテクスト情報の表現例を示す。
【図８ｄ】本発明の実施形態に関連して使用できるコンテクスト情報の表現例を示す。
【図９】一実施形態により種々のコンテクスト情報ソースのための通信及びキャッシュポリシーを指定するコンフィギュレーションテーブルの一例を示す。
【図１０】一実施形態により対話シーケンスの処理中に図９に構成されたコンテクスト情報ソースにアクセスする一例を示すイベント図である。
【図１１】一実施形態により代名詞の参照先を導出するためにテキストメッセージングドメインにおけるアプリケーションコンテクストの使用例を示すスクリーンショットである。
【図１２】一実施形態により代名詞の参照先を導出するためにテキストメッセージングドメインにおけるアプリケーションコンテクストの使用例を示すスクリーンショットである。
【図１３】一実施形態により代名詞の参照先を導出するためにテキストメッセージングドメインにおけるアプリケーションコンテクストの使用例を示すスクリーンショットである。
【図１４】一実施形態によりバーチャルアシスタントが名前の明瞭化を促しているところを示すスクリーンショットである。
【図１５】一実施形態によりバーチャルアシスタントがダイアログコンテクストを使用してコマンドに対する位置を推測するところを示すスクリーンショットである。
【図１６】一実施形態によりコンテクストのソースとしての電話のお気に入りリストの使用例を示すスクリーンショットである。
【図１７】一実施形態によりコマンドを解釈しそして運用できるようにするための現在アプリケーションコンテクストの使用例を示すスクリーンショットである。
【図１８】一実施形態によりコマンドを解釈しそして運用できるようにするための現在アプリケーションコンテクストの使用例を示すスクリーンショットである。
【図１９】一実施形態によりコマンドを解釈しそして運用できるようにするための現在アプリケーションコンテクストの使用例を示すスクリーンショットである。
【図２０】一実施形態によりコマンドを解釈しそして運用できるようにするための現在アプリケーションコンテクストの使用例を示すスクリーンショットである。
【図２１】異なるアプリケーションを呼び出すコマンドを解釈するための現在アプリケーションコンテクストの使用例を示すスクリーンショットである。
【図２２】一実施形態により到来テキストメッセージの形態のイベントコンテクストの使用例を示すスクリーンショットである。
【図２３】一実施形態により到来テキストメッセージの形態のイベントコンテクストの使用例を示すスクリーンショットである。
【図２４】一実施形態により到来テキストメッセージの形態のイベントコンテクストの使用例を示すスクリーンショットである。
【図２５Ａ】一実施形態により以前のダイアログコンテクストの使用例を示すスクリーンショットである。
【図２５Ｂ】一実施形態により以前のダイアログコンテクストの使用例を示すスクリーンショットである。
【図２６Ａ】一実施形態により候補解釈間で選択を行うためのユーザインターフェイスの例を示すスクリーンショットである。
【図２６Ｂ】一実施形態により候補解釈間で選択を行うためのユーザインターフェイスの例を示すスクリーンショットである。
【図２７】バーチャルアシスタントシステムの一実施形態を例示するブロック図である。
【図２８】少なくとも１つの実施形態によりバーチャルアシスタントの少なくとも一部分を具現化するのに適したコンピューティング装置を示すブロック図である。
【図２９】少なくとも１つの実施形態によりスタンドアローンコンピューティングシステムにおいてバーチャルアシスタントの少なくとも一部分を具現化するためのアーキテクチャーを示すブロック図である。
【図３０】少なくとも１つの実施形態により分散型コンピューティングネットワークにおいてバーチャルアシスタントの少なくとも一部分を具現化するためのアーキテクチャーを示すブロック図である。
【図３１】多数の異なる形式のクライアント及び動作モードを示すシステムアーキテクチャーを描いたブロック図である。
【図３２】一実施形態により本発明を実施するために互いに通信するクライアント及びサーバーを描いたブロック図である。
【発明を実施するための形態】
【００２４】
本発明の種々の実施形態によれば、種々のコンテクスト情報が取得され、そしてバーチャルアシスタントのオペレーションをサポートする上で情報処理ファンクションを遂行するように適用される。説明上、「バーチャルアシスタント」という語は、「インテリジェントな自動アシスタント」という語と同等であり、両方とも、次のファンクションの１つ以上を遂行する情報処理システムを指す。
●口頭及び／又はテキスト形態の人間の言語入力を解釈する；
●ユーザの意図の表現を、ステップ及び／又はパラメータを伴うタスクの表現のような実行可能な形態へ運用できるようにする；
●プログラム、方法、サービス、ＡＰＩ、等を呼び出すことにより、タスク表現を実行する；及び
●出力応答を言語及び／又はグラフィック形態でユーザへ発生する。
【００２５】
このようなバーチャルアシスタントの一例が、全ての開示を参考としてここに援用する２０１１年１月１０日に出願された“Intelligent Automated Assistant”と題する関連米国実用特許出願第１２／９８７，９８２号、代理人整理番号Ｐ１０５７５ＵＳ１、に説明されている。
【００２６】
添付図面に示された実施形態を参照して、種々の技術を以下に詳細に説明する。以下の説明において、ここに述べる１つ以上の態様及び／又は特徴を完全に理解するために多数の特定の細部について述べる。しかしながら、当業者であれば、ここに述べる１つ以上の態様及び／又は特徴は、これら特定の細部が幾つか又は全くなくても実施できることが明らかであろう。他の点については、良く知られたプロセス段階及び／又は構造は、ここに述べる幾つかの態様及び／又は特徴を不明瞭にしないために、詳細に説明しない。
【００２７】
本出願には、１つ以上の異なる発明が述べられている。更に、ここに述べる発明の１つ以上について、多数の実施形態が単に例示の目的で説明されている。ここに述べる実施形態は、限定を意図したものではない。発明の１つ以上は、本開示から容易に明らかなように、多数の実施形態に広く適用される。これらの実施形態は、当業者が発明の１つ以上を実施できるに充分なほど詳細に説明され、他の実施形態も利用できると共に、発明の１つ以上の範囲から逸脱せずに、構造、論理、ソフトウェア、電気的及び他の変更がなされることを理解されたい。従って、当業者であれば、発明の１つ以上は、種々の変更及び修正と共に実施できることが認識されよう。１つ以上の発明の特定の特徴は、１つ以上の特定の実施形態と、本開示の一部分をなし且つ１つ以上の発明の特定の実施形態が例示された添付図面とを参照して説明される。しかしながら、そのような特徴は、１つ以上の特定の実施形態、又はそれを説明するときに参照する添付図面への使用に限定されない。本開示は、１つ以上の発明の全ての実施形態を逐語的に説明するものでもないし、全ての実施形態に存在すべき１つ以上の発明の特徴をリストするものでもない。
【００２８】
本特許出願に設けられる章の見出し及び本特許出願の名称は、便宜的なものに過ぎず、本開示を何ら限定するものではない。
【００２９】
互いに通信する装置は、特に指示のない限り、互いに常時通信する必要はない。更に、互いに通信する装置は、直接通信してもよいし、又は１つ以上の媒介手段を介して間接的に通信してもよい。
【００３０】
多数のコンポーネントが互いに通信する実施形態の説明は、そのような全てのコンポーネントが要求されることを意味していない。逆に、１つ以上の発明の種々様々な考えられる実施形態を例示するために種々の光学的コンポーネントについて説明する。
【００３１】
更に、プロセス段階、方法段階、アルゴリズム、等は、逐次の順序で説明するが、そのようなプロセス、方法及びアルゴリズムは、適当な順序で作用するように構成されてもよい。換言すれば、本特許出願に述べるステップのシーケンス又は順序は、それ自体、ステップをその順序で遂行する要求を示すものではない。更に、あるステップは、（例えば、あるステップを述べた後に他のステップを述べるので）同時に行われるものではないとして説明され又は暗示されるが、同時に遂行されてもよい。更に、図面に描くことによるプロセスの例示は、その例示されたプロセスがそれに対する他の変更や修正を除外することを意味するものでもないし、その例示されたプロセス又はそのいずれかのステップが１つ以上の発明に必要なものであることを意味するものでもないし、又、その例示されたプロセスが好ましいものであることを意味するものでもない。
【００３２】
単一の装置又は物品について述べるときには、単一の装置／物品に代わって２つ以上の装置／物品（それらが協働するかどうかに関わらず）が使用されてもよいことが容易に明らかであろう。同様に、２つ以上の装置又は物品について述べるときには（それらが協働するかどうかに関わらず）、２つ以上の装置又は物品に代わって単一の装置／物品が使用されてもよいことが容易に明らかであろう。
【００３３】
或いは又、装置のファンクション及び／又は特徴は、そのようなファンクション／特徴を有すると明確に述べられない１つ以上の他の装置によって実施されてもよい。従って、１つ以上の発明の他の実施形態は、装置それ自体を含む必要がない。
【００３４】
ここに述べる技術及びメカニズムは、時々、明瞭化のために単数形態で説明する。しかしながら、特定の実施形態は、特に指示のない限り、技術の何回もの繰り返し又はメカニズムの何回ものインスタンス化を含むことに注意されたい。
【００３５】
バーチャルアシスタントとしても知られたインテリジェント自動アシスタントを実施するための技術のコンテクスト内で述べるが、ここに述べる種々の態様及び技術は、ソフトウェアとの人間及び／又はコンピュータ化対話を含む技術の他の分野において展開及び／又は適用されてもよいことを理解されたい。
【００３６】
バーチャルアシスタント技術（例えば、ここに述べる１つ以上のバーチャルアシスタントシステム実施形態により利用され、それにより提供され及び／又はそこで実施される）に関する他の態様は、全開示を参考としてここに援用する次の文献の１つ以上に開示されている。
●２０１１年１月１０日に出願された“Intelligent Automated Assistant”と題する米国実用特許出願第１２／９８７，９８２号、代理人整理番号Ｐ１０５７５ＵＳ１；
●２０１０年１月１８日に出願された“Intelligent Automated Assistant”と題する米国仮特許出願第６１／２９５，７７４号、代理人整理番号ＳＩＲＩＰ００３Ｐ；
●２００６年９月８日に出願された“Method And Apparatus for Building an Intelligent Automated Assistant”と題する米国特許出願第１１／５１８，２９２号；及び
●２００９年６月１２日に出願された“System and Method for Semantic Auto-Completion”と題する米国仮特許出願第６１／１８６，４１４号。
【００３７】
ハードウェアアーキテクチャー
一般的に、ここに開示するバーチャルアシスタント技術は、ハードウェア、又はソフトウェアとハードウェアの組み合わせで実施される。例えば、それらは、オペレーティングシステムカーネル、個別のユーザプロセス、ネットワークアプリケーションへと結合されたライブラリパッケージ、特別に構成されたマシン、及び／又はネットワークインターフェイスカードにおいて実施される。特定の実施形態では、ここに開示する技術は、オペレーティングシステムのようなソフトウェア、又はオペレーティングシステムで実行されるアプリケーションで実施される。
【００３８】
ここに開示するバーチャルアシスタント実施形態の少なくとも幾つかのソフトウェア／ハードウェア混成具現化は、メモリに記憶されたコンピュータプログラムにより選択的にアクチベートされ又は再構成されるプログラム可能なマシンにおいて行われる。そのようなネットワーク装置は、異なる形式のネットワーク通信プロトコルを使用するように構成又は設計された複数のネットワークインターフェイスを有する。幾つかのこれらマシンのための一般的アーキテクチャーは、ここに開示する説明から明らかとなろう。特定の実施形態によれば、ここに開示する種々のバーチャルアシスタント実施形態の特徴及び／又はファンクションの少なくとも幾つかは、１つ以上の汎用ネットワークホストマシン、例えば、エンドユーザコンピュータシステム、コンピュータ、ネットワークサーバー又はサーバーシステム、移動コンピューティング装置（例えば、パーソナルデジタルアシスタント、移動電話、スマートホン、ラップトップ、タブレットコンピュータ、等）、消費者向け電子装置、音楽プレーヤ、又は他の適当な電子装置、ルーター、スイッチ、等、或いはその組み合わせにおいて具現化される。少なくとも幾つかの実施形態において、ここに開示する種々のバーチャルアシスタント実施形態の特徴及び／又はファンクションの少なくとも幾つかは、１つ以上のバーチャル化コンピューティング環境（例えば、ネットワークコンピューティングクラウド、等）において具現化される。
【００３９】
図２８を参照すれば、ここに開示するバーチャルアシスタント特徴及び／又はファンクションの少なくとも一部分を具現化するのに適したコンピューティング装置６０を描いたブロック図が示されている。このコンピューティング装置６０は、例えば、エンドユーザコンピュータシステム、ネットワークサーバー又はサーバーシステム、移動コンピューティング装置（例えば、パーソナルデジタルアシスタント、移動電話、スマートホン、ラップトップ、タブレットコンピュータ、等）、消費者向け電子装置、音楽プレーヤ、又は他の適当な電子装置、或いはその組み合わせ又は一部分である。コンピューティング装置６０は、ワイヤレスであるかワイヤードであるかに関わらず通信のための既知のプロトコルを使用して、インターネットのような通信ネットワークを経て、クライアント及び／又はサーバーのような他のコンピューティング装置と通信するようにされる。
【００４０】
一実施形態において、コンピューティング装置６０は、中央処理ユニット（ＣＰＵ）６２、インターフェイス６８、及びバス６７（周辺コンポーネント相互接続（ＰＣＩ）バスのような）を備えている。適当なソフトウェア又はファームウェアのコントロールの下で動作するときに、ＣＰＵ６２は、特別に構成されたコンピューティング装置又はマシンのファンクションに関連した特定のファンクションを具現化する役割を果たす。例えば、少なくとも１つの実施形態において、ユーザのパーソナルデジタルアシスタント（ＰＤＡ）又はスマートホンは、ＣＰＵ６２、メモリ６１、６５及びインターフェイス６８を使用するバーチャルアシスタントシステムとして機能するように構成又は設計される。少なくとも１つの実施形態では、ＣＰＵ６２は、例えば、オペレーティングシステム、並びに適当なアプリケーションソフトウェア、ドライバ、等を含むソフトウェアモジュール／コンポーンのコントロールの下で異なる形式のバーチャルアシスタントファンクション及び／又はオペレーションの１つ以上を遂行するようにされる。
【００４１】
ＣＰＵ６２は、例えば、モトローラ又はインテルファミリーのマイクロプロセッサ或いはＭＩＰＳファミリのマイクロプロセッサからのプロセッサのような１つ以上のプロセッサ６３を含む。ある実施形態では、プロセッサ６３は、コンピューティング装置６０のオペレーションをコントロールするための特別設計のハードウェア（例えば、特定用途向け集積回路（ＡＳＩＣ）、電子的に消去可能なプログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、等）を含む。特定の実施形態では、メモリ６１（不揮発性ランダムアクセスメモリ（ＲＡＭ）及び／又はリードオンリメモリ（ＲＯＭ））も、ＣＰＵ６２の一部分を形成する。しかしながら、システムにメモリを結合する多数の異なる方法がある。メモリブロック６１は、例えば、データのキャッシング及び／又は記憶、インストラクションのプログラミング、等の種々の目的で使用される。
【００４２】
ここで使用する「プロセッサ」という語は、この技術でプロセッサと称される集積回路のみに限定されるのではなく、マイクロコントローラ、マイクロコンピュータ、プログラム可能なロジックコントローラ、特定用途向け集積回路、及び他のプログラマブル回路も広範囲に指すものとする。
【００４３】
一実施形態において、インターフェイス６８は、インターフェイスカード（「ラインカード」とも時々称される）として設けられる。一般的に、それらは、コンピューティングネットワークを経てのデータパケットの送信及び受信をコントロールし、そして時々、コンピューティング装置６０と共に使用される他の周辺装置をサポートする。設けられるインターフェイスの中には、イーサネット（登録商標）インターフェイス、フレームリレーインターフェイス、ケーブルインターフェイス、ＤＳＬインターフェイス、トークインリングインターフェイス、等がある。更に、例えば、ユニバーサルシリアルバス（ＵＳＢ）、シリアル、イーサネット（登録商標）、Ｆｉｒｅｗｉｒｅ、ＰＣＩ、パラレル、高周波（ＲＦ）、ＢｌｕｅｔｏｏｔｈTM、近フィールド通信（例えば、近フィールド磁界を使用する）、８０２．１１（ＷｉＦｉ）、フレームリレー、ＴＣＰ／ＩＰ、ＩＳＤＮ、高速イーサネット（登録商標）インターフェイス、ギガビットイーサネット（登録商標）インターフェイス、非同期転送モード（ＡＴＭ）インターフェイス、高速シリアルインターフェイス（ＨＳＳＩ）インターフェイス、ポイントオブセール（ＰＯＳ）インターフェイス、ファイバデータ分散インターフェイス（ＦＤＤＩ）、等の種々の形式のインターフェイスが設けられる。一般的に、そのようなインターフェイス６８は、適当な媒体と通信するのに適したポートを含む。あるケースでは、それらは、独立したプロセッサ、及びある場合には、揮発性及び／又は不揮発性メモリ（例えば、ＲＡＭ）を含んでもよい。
【００４４】
図２８に示したシステムは、ここに述べる本発明の技術を具現化するためのコンピューティング装置６０の１つの特定のアーキテクチャーを例示するが、これは、ここに述べる特徴及び技術の少なくとも一部分が具現化される唯一の装置アーキテクチャーではない。例えば、１つ又は任意の数のプロセッサ６３を有するアーキテクチャーを使用することができ、そのようなプロセッサ６３は、単一の装置に存在してもよいし又は多数の装置間に分散されてもよい。１つの実施形態において、単一のプロセッサ６３は、通信及びルート計算を取り扱う。種々の実施形態において、異なる形式のバーチャルアシスタント特徴及び／又はファンクションが、クライアント装置（クライアントソフトウェアを実行するパーソナルデジタルアシスタント又はスマートホンのような）及びサーバーシステム（以下に詳細に述べるサーバーシステムのような）を含むバーチャルアシスタントシステムにおいて具現化される。
【００４５】
ネットワーク装置のコンフィギュレーションに関わらず、本発明のシステムは、データ、汎用ネットワークオペレーションのためのプログラムインストラクション、及び／又はここに述べるバーチャルアシスタント技術のファンクションに関する他の情報を記憶するよう構成された１つ以上のメモリ又はメモリモジュール（例えば、メモリブロック６５）を使用する。プログラムインストラクションは、例えば、オペレーティングシステム及び／又は１つ以上のアプリケーションのオペレーションをコントロールする。又、メモリ（１つ又は複数）は、データ構造、キーワード分類学情報、広告情報、ユーザクリック及び印象情報、及び／又はここに述べる他の特定の非プログラム情報を記憶するように構成される。
【００４６】
そのような情報及びプログラムインストラクションは、ここに述べるシステム／方法を具現化するのに使用されるので、少なくとも幾つかのネットワーク装置実施形態は、非一時的マシン読み取り可能な記憶媒体を含み、これは、例えば、ここに述べる種々のオペレーションを遂行するためのプログラムインストラクション、状態情報、等を記憶するように構成され又は設計される。このような非一時的マシン読み取り可能な記憶媒体は、例えば、これに限定されないが、ハードディスク、フロッピー（登録商標）ディスク、及び磁気テープのような磁気媒体；ＣＤ−ＲＯＭディスクのような光学媒体；フロプティカルディスクのような磁気光学媒体；及びプログラムインストラクションを記憶し遂行するように特に構成されたハードウェア装置、例えば、リードオンリメモリ装置（ＲＯＭ）、フラッシュメモリ、メモリスタメモリ、ランダムアクセスメモリ、等を含む。プログラムインストラクションは、例えば、コンパイラーにより発生されるもののようなマシンコードと、インタープリターを使用してコンピュータにより実行される高レベルコードを含むファイルとの両方を含む。
【００４７】
一実施形態では、本発明のシステムは、スタンドアローンコンピューティングシステムにおいて具現化される。図２９を参照すれば、少なくとも１つの実施形態に基づき、スタンドアローンコンピューティングシステムにおいてバーチャルアシスタントの少なくとも一部分を具現化するためのアーキテクチャーを描いたブロック図が示されている。コンピューティング装置６０は、バーチャルアシスタント１００２を具現化するためのソフトウェアを実行するプロセッサ６３を備えている。入力装置１２０６は、ユーザ入力を受け取るのに適した任意の形式のものであり、例えば、キーボード、タッチスクリーン、マイクロホン（例えば、ボイス入力用の）、マウス、タッチパッド、トラックボール、５路スイッチ、ジョイスティック、及び／又はその組み合わせ含む。出力装置１２０７は、スクリーン、スピーカ、プリンタ、及び／又はその組み合せである。メモリ１２１０は、ソフトウェアの実行中にプロセッサ６３により使用するためにこの分野で知られた構造及びアーキテクチャーを有するランダムアクセスメモリである。記憶装置１２０８は、デジタル形態でデータを記憶するための磁気、光学、及び／又は電気的記憶装置であり、例えば、フラッシュメモリ、磁気ハードドライブ、ＣＤ−ＲＯＭ、等を含む。
【００４８】
別の実施形態では、本発明のシステムは、例えば、多数のクライアント及び／又はサーバーを有する分散型コンピューティングネットワークにおいて具現化される。図３０を参照すれば、少なくとも１つの実施形態により分散型コンピューティングネットワークにおいてバーチャルアシスタントの少なくとも一部分を具現化するためのアーキテクチャーを描いたブロック図が示されている。
【００４９】
図３０に示す構成では、多数のクライアント１３０４が設けられ、各クライアント１３０４は、本発明のクライアント側部分を具現化するためのソフトウェアを実行する。加えて、クライアント１３０４から受け取られる要求を取り扱うために多数のサーバー１３０４を設けることができる。クライアント１３０４及びサーバー１３４０は、インターネットのような電子的ネットワーク１３６１を経て互いに通信することができる。ネットワーク１３６１は、例えば、ワイヤード及び／又はワイヤレスプロトコルを含む既知のネットワークプロトコルを使用して具現化される。
【００５０】
更に、一実施形態において、サーバー１３４０は、付加的な情報を得るか、又は特定のユーザとの以前の対話に関する記憶データを参照するために、必要なときに、外部サービス１３６０をコールすることができる。外部サービス１３６０との通信は、例えば、ネットワーク１３６１を経て行うことができる。種々の実施形態において、外部サービス１３６０は、ハードウェア装置それ自体に関連した又はそこにインストールされたウェブイネーブルサービス及び／又は機能を含む。例えば、スマートホン又は他の電子装置においてアシスタント１００２が具現化される実施形態では、アシスタント１００２は、カレンダーアプリケーション（ａｐｐ）、連絡先、及び／又は他のソースに記憶された情報を得ることができる。
【００５１】
種々の実施形態において、アシスタント１００２は、それがインストールされた電子装置の多数の特徴及びオペレーションをコントロールすることができる。例えば、アシスタント１００２は、ＡＰＩを経て又は他の手段により装置のファンクション及びアプリケーションとインターフェイスする外部サービス１３６０をコールし、さもなければ装置の従来のユーザインターフェイスを使用して開始されるファンクション及びオペレーションを遂行することができる。そのようなファンクション及びオペレーションは、例えば、アラームをセットし、電話コールを実行し、テキストメッセージ又はｅ−メールメッセージを送信し、カレンダーイベントを追加し、等々を含む。そのようなファンクション及びオペレーションは、ユーザとアシスタント１００２との間の会話ダイアログのコンテクストにおいてアドオンファンクションとして遂行される。そのようなファンクション及びオペレーションは、ダイアログのようなコンテクストにおいてユーザにより指定されるか、又はダイアログのコンテクストに基づいて自動的に遂行される。従って、当業者であれば、アシスタント１００２は、電子装置における種々のオペレーションを開始し及びコントロールするためのコントロールメカニズムとして使用され、このメカニズムは、ボタン又はグラフィックユーザインターフェイスのような従来のメカニズムに代わるものとして使用されることが明らかであろう。
【００５２】
例えば、ユーザは、「私は明日午前８時に起きねばならない(I need to wake tomorrow at 8am)」という入力をアシスタント１００２に与える。アシスタント１００２がここに述べる技術を使用してユーザの意図を決定すると、アシスタント１００２は、外部サービス１３４０をコールして、装置のアラームクロックファンクション又はアプリケーションとインターフェイスする。アシスタント１００２は、ユーザに代わってアラームをセットする。このように、ユーザは、アラームをセットしたり又は装置の他の機能を遂行したりする従来のメカニズムに取って代わるものとしてアシスタント１００２を使用することができる。ユーザの要求が曖昧であるか又は更なる明瞭化を必要とする場合には、アシスタント１００２は、能動的な聞き出し、言い換え、示唆、等を含めて及びコンテクスト情報の取得を含めて、ここに述べる種々の技術を使用して、正しいサービス１３４０がコールされそして意図されたアクションがとられるようにする。一実施形態では、アシスタント１００２は、ファンクションを遂行するためにサービス１３４０をコールする前に確認を行い及び／又は適当なソースから付加的なコンテクスト情報を要求するようにユーザを促す。一実施形態において、ユーザは、特定のサービス１３４０をコールするためのアシスタント１００２の能力を選択的にディスエイブルし、又は必要に応じてそのような全てのサービスコールをディスエイブルすることができる。
【００５３】
本発明のシステムは、多数の異なる形式のクライアント１３０４及び動作モードのいずれかで具現化することができる。図３１を参照すれば、多数の異なる形式のクライアント１３０４及び動作モードを示すシステムアーキテクチャーを描いたブロック図が示されている。当業者であれば、図３１に示す種々の形式のクライアント１３０４及び動作モードは、単なる例示に過ぎず、本発明のシステムは、ここに描かれた以外のクライアント１３０４及び／又は動作モードを使用しても具現化できることが明らかである。更に、このシステムは、このようなクライアント１３０４及び／又は動作モードのいずれか又は全部を単独で又は任意の組み合わせで含むこともできる。描かれた例は、次のものを含む。
●入力／出力装置及び／又はセンサを伴うコンピュータ装置１４０２。このようなコンピュータ装置１４０２にクライアントコンポーネントが配備される。少なくとも１つの実施形態は、ネットワーク１３６１を経てサービス１３４０との通信を可能にするためにウェブブラウザ１３０４Ａ又は他のソフトウェアアプリケーションを使用して具現化される。入力及び出力チャンネルは、例えば、視覚及び／又は聴覚チャンネルを含めて、いずれの形式でもよい。例えば、一実施形態では、本発明のシステムは、音声ベースの通信方法を使用して具現化され、ウェブブラウザの等効物がスピーチで駆動されそして出力にスピーチを使用する盲人のためのアシスタントの実施形態を許す。
●クライアントが移動装置１３０４Ｂのアプリケーションとして具現化されるＩ／Ｏ及びセンサを伴う移動装置１４０６。これは、移動電話、スマートホン、パーソナルデジタルアシスタント、タブレット装置、ネットワークゲームコンソール、等を含むが、これに限定されない。
●クライアントが機器１３０４Ｃの埋め込まれたアプリケーションとして具現化されるＩ／Ｏ及びセンサを伴う消費者向け機器１４１０。
●クライアントが埋め込まれたシステムアプリケーション１３０４Ｄとして具現化されるダッシュボードインターフェイス及びセンサを伴う自動車及び他の乗物１４１４。これは、カーナビゲーションシステム、音声コントロールシステム、カー内娯楽システム、等を含むが、これに限定されない。
●クライアントが装置常駐アプリケーション１３０４Ｅとして具現化されるルーターのようなネットワークコンピューティング装置１４１８、又はネットワークに常駐し又はネットワークとインターフェイスする他の装置。
●アシスタントの実施形態がｅ−メールモダリティサーバー１４２６を経て接続されるｅ−メールクライアント。ｅ−メールモダリティサーバー１４２６は、例えば、アシスタントへ送られるｅ−メールメッセージとしてユーザから入力を取り出し、そしてアシスタントからの出力を応答としてユーザへ送る通信ブリッジとして働く。
●アシスタントの実施形態がメッセージングモダリティサーバー１４３０を経て接続されるインスタントメッセージングクライアント１４２８。メッセージングモダリティサーバー１４３０は、アシスタントへ送られるメッセージとしてユーザから入力を取り出し、そしてアシスタントからの出力を応答メッセージとしてユーザへ送る通信ブリッジとして働く。
●アシスタントの実施形態がボイスオーバーインターネットプロトコル（ＶｏＩＰ）モダリティサーバー１４３０を経て接続される音声電話１４３２。ＶｏＩＰモダリティサーバー１４３０は、アシスタントへ話された音声としてユーザから入力を取り出し、そしてアシスタントからの出力を、例えば、応答において同期スピーチとしてユーザへ送る通信ブリッジとして働く。
【００５４】
これに限定されないが、ｅ−メール、インスタントメッセージング、討論の場、グループチャットセッション、ライブヘルプ又は顧客サポートセッション、等を含むメッセージングプラットホームに対して、アシスタント１００２は、会話の参加者として働く。アシスタント１００２は、１対１の対話に対してここに述べる１つ以上の技術及び方法を使用して、会話を監視し、そして個人又はグループへ応答する。
【００５５】
種々の実施形態において、本発明の技術を具現化するためのファンクションは、多数のクライアント及び／又はサーバーコンポーンと間に分散させることができる。例えば、本発明に関連した種々のファンクションを遂行するための種々のソフトウェアモジュールを具現化することができ、又、そのようなモジュールは、サーバー及び／又はクライアントコンポーネントにおいて実行されるように色々に具現化することができる。そのような構成の更なる詳細が、２０１１年１月１０日に出願された“Intelligent Automated Assistant”と題する関連米国実用特許出願第１２／９８７，９８２号、代理人整理番号Ｐ１０５７５ＵＳ１、になされており、その全開示が参考としてここに援用される。
【００５６】
図３２の例では、入力引き出しファンクション及び出力処理ファンクションは、クライアント１３０４及びサーバー１３４０の間に分散され、入力引き出しのクライアント部分２７９４ａ及び出力処理のクライアント部分２７９２ａは、クライアント１３０４に位置され、そして入力引き出しのサーバー部分２７９４ｂ及び出力処理のサーバー部分２７９２ｂは、サーバー１３４０に位置される。
【００５７】
次のコンポーネントは、サーバー１３４０に位置される。
●完全な語彙２７５８ｂ；
●言語パターンレコグナイザーの完全なライブラリ２７６０ｂ；
●短期パーソナルメモリのマスターバージョン２７５２ｂ；
●長期パーソナルメモリのマスターバージョン２７５４ｂ。
【００５８】
一実施形態において、クライアント１３０４は、応答性を改善し且つネットワーク通信への依存性を減少するために、これらコンポーネントのサブセット及び／又は部分をローカルに維持する。そのようなサブセット及び／又は部分は、良く知られたキャッシュマネージメント技術に基づいて維持し更新することができる。そのようなサブセット及び／又は部分は、例えば、
●語彙のサブセット２７５８ａ；
●言語パターンレコグナイザーのライブラリのサブセット２７６０ａ；
●短期パーソナルメモリのキャッシュ２７５２ａ；
●長期パーソナルメモリのキャッシュ２７５４ａ。
【００５９】
付加的なコンポーネントは、例えば、次のものを含めて、サーバー１３４０の一部分として具現化される。
●言語インタープリター２７７０；
●ダイアログフロープロセッサ２７８０；
●出力プロセッサ２７９０；
●ドメインエンティティデータベース２７７２；
●タスクフローモデル２７８６；
●サービスオーケストレーション２７８２；
●サービス能力モデル２７８８。
【００６０】
これらコンポーネントの各々について以下に詳細に述べる。サーバー１３４０は、必要なときに外部サービス１３６０とインターフェイスすることにより付加的な情報を得る。
【００６１】
概念アーキテクチャー
図２７を参照すれば、バーチャルアシスタント１００２の特定の実施形態の簡単なブロック図が示されている。上述した関連米国実用特許出願に詳細に述べられたように、バーチャルアシスタント１００２の異なる実施形態は、バーチャルアシスタント技術に一般的に関連した種々の異なる形式のオペレーション、ファンクション及び／又は特徴を提供するように構成され、設計され、及び／又は動作することができる。更に、ここに詳細に述べるように、ここに開示するバーチャルアシスタント１００２の種々のオペレーション、ファンクション及び／又は特徴の多くは、バーチャルアシスタント１００２と対話する異なるエンティティに対して異なる形式の効果及び／又は利益を可能にし又は提供することができる。図２７に示す実施形態は、上述したハードウェアアーキテクチャーのいずれか、又は異なる形式のハードウェアアーキテクチャーを使用して具現化される。
【００６２】
例えば、異なる実施形態によれば、バーチャルアシスタント１００２は、例えば、次の１つ以上（又はその組み合わせ）のような種々の異なる形式のオペレーション、ファンクション及び／又は特徴を提供するように構成され、設計され、及び／又は動作することができる。
●製品及びサービスを発見し、見出し、選択し、購入し、予約し又は注文するために、インターネットを経て利用できるデータ及びサービスのアプリケーションを自動化する。これらのデータ及びサービスを利用するプロセスを自動化するのに加えて、バーチャルアシスタント１００２は、データ及びサービスの多数のソースを一度に組み合わせて使用することもできる。例えば、多数のレビューサイトからの製品に関する情報を結合し、複数の代理店から価格及び入手性をチェックし、彼等の場所及び時間制限をチェックし、そしてユーザが自分の問題に対する個人的解答を見出す上で助けをする。
●行うべきこと（映画、催し物、演奏、展覧会、ショー及びアトラクションを含むが、これに限定されない）、行くべき場所（旅行の行先、ホテル及び他の滞在場所、目印及び関心のある他の場所、等を含むが、これに限定されない）、飲食場所（レストラン、バー、等）、会合時刻及び場所、及びインターネットで見つけることのできる他の娯楽源又は社会的関わりについて発見し、調査し、選択し、予約し、その他、学習するためにインターネットを経て利用できるデータ及びサービスの使用を自動化する。
●（位置ベースのサーチを含めて）サーチを含むグラフィックユーザインターフェイスで専用アプリケーションによって与えられる自然言語ダイアログを経てアプリケーション及びサービスを動作すること；ナビゲーション（マップ及び方向）；データベースルックアップ（名前又は他のプロパティで仕事又は人を見つける、等）；天気の状態及び予報を得ること；市場品目の価格又は金融取引の状態のチェック；交通又はフライト状態の監視；カレンダー及びスケジュールへのアクセス及びその更新；催促、警告、タスク及びプロジェクトの管理；ｅ−メール又は他のメッセージングプラットホームを経ての通信；及びローカル又はリモート位置からの装置の動作（例えば、電話をダイヤルし、照明及び温度をコントロールし、ホームセキュリティ装置をコントロールし、音楽又はビデオを再生する、等）を可能にする。一実施形態において、バーチャルアシスタント１００２は、装置で利用できる多数のファンクション及びアプリケーションを開始し、動作し、コントロールするのに使用される。
●活動、製品、サービス、娯楽源、時間管理、或いは自然言語の双方向ダイアログ並びにデータ及びサービスへの自動アクセスから利益が得られる他の種類の推奨サービスに対して個人的な推薦を与える。
【００６３】
異なる実施形態によれば、バーチャルアシスタント１００２によって与えられる種々の形式のファンクション、オペレーション、アクション、及び／又は他の特徴の少なくとも一部分は、１つ以上のクライアントシステム、１つ以上のサーバーシステム、及び／又はその組み合わせにおいて具現化される。
【００６４】
異なる実施形態によれば、バーチャルアシスタント１００２によって与えられる種々の形式のファンクション、オペレーション、アクション、及び／又は他の特徴の少なくとも一部分は、ここに詳細に述べるように、コンテクスト情報を使用して、ユーザ入力を解釈しそして運用可能にする。
【００６５】
例えば、少なくとも１つの実施形態において、バーチャルアシスタント１００２は、特定のタスク及び／又はオペレーションを遂行するときに種々の異なる形式のデータ及び／又は他の形式の情報を利用し及び／又は発生するよう動作できる。これは、例えば、入力データ／情報及び／又は出力データ／情報を含む。例えば、少なくとも１つの実施形態において、バーチャルアシスタント１００２は、例えば、１つ以上のローカル及び／又はリモートメモリ、装置、及び／又はシステムのような１つ以上の異なる形式のソースからの情報にアクセスし、それを処理し、及び／又はその他それを利用するように動作できる。加えて、少なくとも１つの実施形態において、バーチャルアシスタント１００２は、１つ以上の異なる形式の出力データ／情報を発生するように動作でき、これは、例えば、１つ以上のローカル及び／又はリモート装置及び／又はシステムのメモリに記憶される。
【００６６】
バーチャルアシスタント１００２によりアクセスされ及び／又は利用される異なる形式の入力データ／情報は、例えば、次の１つ以上（又はその組み合わせ）を含むが、それに限定されない。
●移動電話及びタブレットのような移動装置、マイクロホン付きのコンピュータ、Ｂｌｕｅｔｏｏｔｈ（登録商標）ヘッドセット、電話システムを経ての自動車用音声コントロールシステム、応答サービスにおけるレコーディング、一体的メッセージングサービスにおけるオーディオボイスメール、時計付きラジオのような音声入力をもつ消費者向けアプリケーション、電話局、家庭用娯楽コントロールシステム、及びゲームコンソールからの音声入力。
●コンピュータ又は移動装置のキーボード、リモートコントロール又は他の消費者向け電子装置のキーパッド、アシスタントに送られるｅ−メールメッセージ、アシスタントへ送られるインスタントメッセージ又は同様のショートメッセージ、マルチユーザゲーム環境においてプレーヤから受け取られるテキスト、及びメッセージフィードにおいてストリーミングされるテキストからのテキスト入力。
●センサ又は位置ベースのシステムから到来する位置情報。例えば、移動電話におけるグローバルポジショニングシステム（ＧＰＳ）及び支援型ＧＰＳ（Ａ−ＧＰＳ）を含む。一実施形態では、位置情報は、明確なユーザ入力と合成される。一実施形態では、本発明のシステムは、ユーザが家にいるときを、既知の住所情報及び現在位置決定に基づき検出することができる。このように、ユーザが家の外ではなく家にいるときに関心のある情報の形式、並びにユーザが家にいるかどうかに基づきユーザに代わって呼び出さねばならないサービス及びアクションの形式に関して幾つかの推測がなされる。
●クライアント装置の時計からの時間情報。これは、例えば、ローカル時間及び時間ゾーンを指示する電話又は他のクライアント装置からの時間を含む。加えて、時間は、例えば、「１時間で(in an hour)」及び「今夜(tonight)」のようなフレーズを解釈するためのユーザの要求に関して使用される。
●自動車コントロールシステムのような移動又はハンドヘルド装置又は埋め込み型システムからのコンパス、加速度計、ジャイロスコープ、及び／又は進行速度データ、並びに他のセンサデータ。これも、リモートコントロールから機器及びゲームコンソールへの装置ポジショニングデータを含む。
●グラフィックユーザインターフェイス（ＧＵＩ）を有する装置のＧＵＩからのクリック及びメニュー選択及び他のイベント。更なる例は、タッチスクリーンへのタッチを含む。
●アラームクロック、カレンダーアラート、価格変更トリガー、位置トリガー、サーバーから装置へのプッシュ通知、等のセンサ及び他のデータ駆動トリガーからのイベント。
【００６７】
ここに述べる実施形態への入力は、ダイアログ及び要求履歴を含めて、ユーザ対話履歴のコンテクストも含む。
【００６８】
上述した関連米国実用特許出願に述べられたように、多数の異なる形式の出力データ／情報がバーチャルアシスタント１００２により発生される。これらは、次の１つ以上（又はその組み合わせ）を含むが、それに限定されない。
●出力装置及び／又は装置のユーザインターフェイスへ直接送られるテキスト出力；
●ｅ−メールを経てユーザに送られるテキスト及びグラフィック；
●メッセージングサービスを経てユーザへ送られるテキスト及びグラフィック；
●以下の１つ以上（又はその組み合わせ）を含むスピーチ出力；
○同期スピーチ
○サンプルスピーチ
○記録メッセージ
●写真、リッチテキスト、ビデオ、サウンド及びハイパーリンクを伴う情報のグラフィックレイアウト（例えば、ウェブブラウザにおいてレンダリングされたコンテンツ）；
●装置をターンオン又はオフさせ、サウンドを発し、カラーを変化させ、振動させ、ライトをコントロールさせ、等の装置の物理的アクションをコントロールするアクチュエータ出力；
●マッピングアプリケーションをコールし、電話を音声でダイヤルし、ｅ−メール又はインスタントメッセージを送信し、メディアを再生し、カレンダー、タスクマネージャー及びノートアプリケーション、並びに他のアプリケーションにエントリーする、等の、装置の他のアプリケーションの呼び出し；
●リモートカメラを動作し、車椅子をコントロールし、リモートスピーカで音楽を再生し、リモートディスプレイでビデオを再生し、等の、装置により取り付けられ又はコントロールされる装置への物理的アクションをコントロールするアクチュエータ出力。
【００６９】
しかし、図２７のバーチャルアシスタント１００２は、具現化できる広範囲なバーチャルアシスタントシステム実施形態の一例に過ぎないことが明らかであろう。バーチャルアシスタントシステムの他の実施形態（図示せず）は、例えば、図２７の規範的バーチャルアシスタントシステム実施形態に例示されたものより多数の、少数の、及び／又はそれとは異なるコンポーネント／特徴を含んでもよい。
【００７０】
バーチャルアシスタント１００２は、例えば、ハードウェア、及び／又はハードウェアとソフトウェアの組み合わせの使用により具現化され及び／又はインスタンス生成される複数の異なる形式のコンポーネント、装置、モジュール、プロセス、システム、等を含んでもよい。例えば、図２７の規範的実施形態に示すように、アシスタント１００２は、次の形式のシステム、コンポーネント、装置、プロセッサ、等の１つ以上（又はその組み合わせ）を含んでもよい。
●１つ以上のアクティブなオントロジー１０５０；
●アクティブな入力引き出しコンポーネント２７９４（クライアント部分２８９４ａ及びサーバー部分２７９４ｂを含む）；
●短期パーソナルメモリコンポーネント２７５２（マスターバージョン２７５２ｂ及びキャッシュ２７５２ａを含む）；
●長期パーソナルメモリコンポーネント２７５４（マスターバージョン２７５４ｂ及びキャッシュ２７５４ａを含み、例えば、パーソナルデータベース１０５８、アプリケーションの好み及び使用履歴１０７２、等を含む）；
●ドメインモデルコンポーネント２７５６；
●語彙コンポーネント２７５８（完全な語彙２７５８ｂ及びサブセット２７５８ａを含む）；
●言語パターンレコグナイザーコンポーネント２７６０（全ライブラリ２７６０ｂ及びサブセット２７６０ａを含む）；
●言語インタープリターコンポーネント２７７０；
●ドメインエンティティデータベース２７７２；
●ダイアログフロープロセッサコンポーネント２７８０；
●サービスオーケストレーションコンポーネント２７８２；
●サービスコンポーネント２７８４；
●タスクフローモデルコンポーネント２７８６；
●ダイアログフローモデルコンポーネント２７８７；
●サービスモデルコンポーネント２７８８；
●出力プロセッサコンポーネント２７９０。
【００７１】
あるクライアント／サーバーベースの実施形態では、これらのコンポーネントの幾つか又は全部がクライアント１３０４とサーバー１３４０との間に分散される。
【００７２】
一実施形態において、バーチャルアシスタント１００２は、例えば、タッチスクリーン入力、キーボード入力、口頭入力及び／又はその組み合わせを含む適当な入力モダリティを経てユーザ入力２７０４を受け取る。一実施形態において、アシスタント１００２は、イベントコンテクスト２７０６、及び／又はここに詳細に述べる多数の他の形式のコンテクストのいずれかを含むコンテクスト情報１０００も受け取る。
【００７３】
ここに述べる技術に基づいてユーザ入力２７０４及びコンテクスト情報１０００を処理すると、バーチャルアシスタント１００２は、ユーザへ提示するための出力２７０８を発生する。出力２７０８は、コンテクスト１０００及びもし適当なものがあれば他のファクタにより通知される適当な出力モダリティに基づいて発生される。出力モダリティは、例えば、スクリーンに提示される視覚出力、聴覚出力（口頭出力及び／又はビープ並びに他のサウンドを含む）、触覚出力（振動のような）、及び／又はその組み合わせを含む。
【００７４】
図２７に示す種々のコンポーネントの動作に関する付加的な詳細は、全開示を参考としてここに援用する２０１１年１月１０日に出願された“Intelligent Automated Assistant”と題する関連米国実用特許出願第１２／９８７，９８２号、代理人整理番号Ｐ１０５７５ＵＳ１、に述べられている。
【００７５】
コンテクスト
上述したように、一実施形態において、バーチャルアシスタント１００２は、情報処理ファンクションを遂行するために種々のコンテクスト情報を取得して適用する。次の説明で明らかにされるのは：
●バーチャルアシスタント１００２により使用するためのコンテクスト情報のソースの範囲；
●コンテクスト情報を表現し、編成し及びサーチするための技術；
●コンテクスト情報でバーチャルアシスタントの多数のファンクションのオペレーションをサポートできるようにする方法；及び
●分散型システムにおいてコンテクスト情報を効率的に取得し、アクセスしそして適用するための方法。
【００７６】
当業者であれば、コンテクスト情報を使用するためのソース、技術、及び方法の以下の説明は、単なる例示に過ぎず、本発明の本質的な特性から逸脱せずに、他のソース、技術及び方法を使用できることが明らかであろう。
【００７７】
コンテクストのソース
バーチャルアシスタント１００２により遂行される情報処理段階全体にわたり、ユーザ入力の考えられる解釈を減少するために多数の異なる種類のコンテクストを使用することができる。例えば、それらは、アプリケーションコンテクスト、パーソナルデータコンテクスト、及び以前のダイアログ履歴を含む。当業者であれば、コンテクストの他のソースも利用できることが明らかであろう。
【００７８】
図１は、一実施形態によるバーチャルアシスタント１００２及びそのオペレーションに影響を及ぼすコンテクストのソースの幾つかの例を示すブロック図である。バーチャルアシスタント１００２は、口頭又は型付き言語のようなユーザ入力２７０４を取り出し、その入力を処理し、そして出力２７０８をユーザへ発生し、及び／又はユーザに代わってアクションを遂行する２７１０。図１に示すバーチャルアシスタント１００２は、具現化できる広範囲のバーチャルアシスタントシステム実施形態の一例に過ぎないことが明らかである。バーチャルアシスタントシステムの他の実施形態（図示せず）は、例えば、図１に示す規範的バーチャルアシスタント１００２に例示されたものより多数の、少数の、及び／又はそれとは異なるコンポーネント／特徴を含んでもよい。
【００７９】
ここにより詳細に述べるように、バーチャルアシスタント１００２は、辞書、ドメインモデル、及び／又はタスクモデルのような知識及びデータの多数の異なるソースのいずれかを利用することができる。本発明の観点から、バックグランドソースと称されるそのようなソースは、アシスタント１００２の内部にある。ユーザ入力２７０４及びバックグランドソースに加えて、バーチャルアシスタント１００２は、例えば、装置センサデータ１０５６、アプリケーションの好み及び使用履歴１０７２、ダイアログ履歴及びアシスタントメモリ１０５２、パーソナルデータベース１０５８、パーソナル音響コンテクストデータ１０８０、現在アプリケーションコンテクスト１０６０、及びイベントコンテクスト２７０６を含む多数のコンテクストソースからの情報を利用することもできる。これらは、ここで詳細に説明する。
【００８０】
アプリケーションコンテクスト１０６０
アプリケーションコンテクスト１０６０は、ユーザが何かを行うアプリケーション又は同様のソフトウェア状態を指す。例えば、ユーザは、特定の個人とのチャットを行うためにテキストメッセージングアプリケーションを使用することができる。バーチャルアシスタント１００２は、テキストメッセージングアプリケーションのユーザインターフェイスに特有のものであるか又はその一部分である必要はない。むしろ、バーチャルアシスタント１００２は、多数のアプリケーションからコンテクストを受け取ることができ、各アプリケーションは、バーチャルアシスタント１００２に通知するためのそのコンテクストに貢献する。
【００８１】
バーチャルアシスタント１００２が呼び出されたときにユーザが現在アプリケーションを使用する場合には、そのアプリケーションの状態が有用なコンテクスト情報を与えることができる。例えば、バーチャルアシスタント１００２がｅ−メールアプリケーション内から呼び出された場合には、コンテクスト情報は、送信者情報、受信者情報、データ及び／又は送信時間、主題、ｅ−メールコンテンツ、メールボックス又はフォルダ名から抽出されたデータ、等を含む。
【００８２】
図１１ないし１３は、一実施形態により代名詞の参照先を導出するためにテキストメッセージングドメインにおけるアプリケーションコンテクストの使用例を示す１組のスクリーンショットである。図１１は、ユーザがテキストメッセージングアプリケーションにある間に表示されるスクリーン１１５０を示す。図１２は、テキストメッセージングアプリケーションのコンテクストにおいてバーチャルアシスタント１００２がアクチベートされた後のスクリーン１２５０を示す。この例において、バーチャルアシスタント１００２は、プロンプト１２５１をユーザに提示する。一実施形態において、ユーザは、マイクロホンアイコン１２５２をタップすることにより口頭入力を与えることができる。別の実施形態において、アシスタント１００２は、いつでも口頭入力を受け容れることができ、ユーザが入力を与えるまでマイクロホンアイコン１２５２をタップすることを要求せず、従って、アイコン１２５２は、アシスタント１００２が口頭入力を待っているという催促になる。
【００８３】
図１３において、ユーザは、スクリーン１２５３に示したバーチャルアシスタント１００２とのダイアログに関与する。ユーザのスピーチ入力「彼にコールする(call him)」が反響し、バーチャルアシスタント１００２は、それに応答して、特定の電話番号の特定の個人にコールする。ユーザの曖昧な入力を解釈するため、バーチャルアシスタント１００２は、ここに詳細に述べるように、複数のコンテクストソースを組み合わせて使用して、代名詞の参照先を導出する。
【００８４】
図１７ないし２０は、一実施形態によりコマンドを解釈しそして運用できるようにするための現在アプリケーションコンテクストの別の使用例を示す。
【００８５】
図１７において、ユーザには自身のｅ−メールインボックス１７５０が提示され、ユーザは、特定のｅ−メールメッセージ１７５１を選択して見る。図１８は、見るために選択されたｅ−メールメッセージ１７５１を示し、この例では、ｅ−メールメッセージ１７５１は、画像を含む。
【００８６】
図１９において、ユーザは、ｅ−メールアプリケーション内からｅ−メールメッセージ１７５１を見ながらバーチャルアシスタント１００２をアクチベートする。一実施形態において、ｅ−メールメッセージ１７５１の表示はスクリーンを上方に移動し、バーチャルアシスタント１００２からのプロンプト１５０のための余地を作る。この表示は、現在見ているｅ−メールメッセージ１７５１のコンテクストにおいてバーチャルアシスタント１００２が支援を与えるという観念を強化する。従って、バーチャルアシスタント１００２へのユーザ入力は、ｅ−メールメッセージ１７５１が見られているという現在コンテクストにおいて解釈される。
【００８７】
図２０において、ユーザは、コマンド２０５０“Reply let’s get this to marketing right away（"let’s get this to marketing right away”と返事せよ）”を与える。
ｅ−メールメッセージ１７５１及びそれが表示されるｅ−メールアプリケーションに関する情報を含むコンテクスト情報を使用して、コマンド２０５０を解釈する。このコンテクストは、コマンド２０５０におけるワード“reply”及び“this”の意味を決定し、そして特定のメッセージスレッドにおける特定の受信者に対してｅ−メール構成処理をどのように設定するか解明するのに使用できる。この場合に、バーチャルアシスタント１００２は、コンテクスト情報にアクセスして、“marketing”がジョンアプリコア(John Applecore)という名前の受信者を指すことを決定し、そしてその受信者に対して使用するためのｅ−メールアドレスを決定することができる。従って、バーチャルアシスタント１００２は、ユーザが承認して送信するべくｅ−メール２０５２を構成する。このように、バーチャルアシスタント１００２は、現在アプリケーションの状態を記述するコンテクスト情報と一緒にユーザ入力に基づいてタスク（ｅ−メールメッセージを構成する）を運用することができる。
【００８８】
又、アプリケーションコンテクストは、アプリケーションにわたりユーザの意図の意味を識別する上で助けとなることができる。図２１は、ユーザがｅ−メールメッセージ（ｅ−メールメッセージ１７５１のような）を見る状況においてバーチャルアシスタント１００２を呼び出すが、ユーザのコマンド２１５０が“Send him a text…”である例を示している。コマンド２１５０は、ｅ−メールではなく、テキストメッセージを送信すべきであることを指示するものとしてバーチャルアシスタント１００２により解釈される。しかしながら、ワード“him”の使用は、同じ受信者(John Applecore)が意図されることを指示する。従って、バーチャルアシスタント１００２は、この受信者へ異なるチャンネルを経て通信（装置に記憶された連絡先情報から得た個人の電話番号へテキストメッセージ）を行うべきであることを認識する。従って、バーチャルアシスタント１００２は、ユーザが承認し送信するためのテキストメッセージ２１５２を構成する。
【００８９】
アプリケーションから得ることのできるコンテクスト情報は、例えば、次のものを含むが、これに限定されない。
●アプリケーションのアイデンティティ；
●アプリケーションにおいて動作される現在オブジェクト（１つ又は複数）、例えば、現在ｅ−メールメッセージ、再生される現在の曲又はプレイリスト又はチャンネル、現在の本又は映画或いは写真、現在のカレンダー日／週／月、現在の催促リスト、現在電話コール、現在テキストメッセージ会話、現在マップ位置、現在ウェブページ又はサーチ問合せ、位置感知アプリケーションのための現在とし又は他の位置、現在の社会的ネットワークプロフィール、或いは現在オブジェクトの他のアプリケーション特有観念；
●現在オブジェクトから抽出できる名前、場所、日付、及び他の識別可能なエンティティ又は値。
【００９０】
パーソナルデータベース１０５８
コンテクストデータの別のソースは、電話のような装置におけるユーザのパーソナルデータベース１０５８、例えば、名前及び電話番号を含むアドレス帳である。図１４には、一実施形態により名前の明瞭化のためにバーチャルアシスタント１０２２が促すスクリーンショットの一例が示されている。ここで、ユーザは、「ハーブにコールする(Call Herb)」と言い、バーチャルアシスタント１００２は、ユーザがユーザのアドレス帳において一致する連絡先を選択するように促す。従って、アドレス帳は、パーソナルデータコンテクストのソースとして使用される。
【００９１】
一実施形態において、ユーザのパーソナル情報は、ユーザの意図を解釈し及び／又は運用化するためのコンテクストとして又はバーチャルアシスタント１００２の他のファンクションとして使用するためにパーソナルデータベース１０５８から得られる。例えば、ユーザの連絡先データベースにおけるデータは、ユーザがファーストネームだけで誰かを指すときにユーザのコマンドを解釈する上で曖昧さを減少するのに使用できる。パーソナルデータベース１０５８から得ることのできるコンテクスト情報は、例えば、次のものを含むが、これに限定されない。
●ユーザの連絡先データベース（アドレス帳）・・・名前、電話番号、物理的アドレス、ネットワークアドレス、アカウント識別子、重要な日付に関する情報を含む・・・ユーザが参照する人々、会社、組織、場所、ウェブサイト、及び他のエンティティに関する；  ●ユーザ自身の名前、好ましい発音、アドレス、電話番号、等；
●ユーザの親族関係、例えば、母、父、姉妹、家長、等；
●暦上の行事、特別な日の名前、又はユーザが参照する他の名前付きエントリーを含むユーザの暦上のデータ；
●ユーザが参照する行うべきこと、忘れないこと又は獲得することのリストを含むユーザのリマインダー又はタスクリスト；
●ユーザが参照するユーザの音楽ライブラリに関連した曲名、ジャンル、プレイリスト及び他のデータ；
●ユーザのメディアライブラリ内の写真又はビデオ又は他のメディアにおける人々、場所、分類、タグ、ラベル又は他の象徴的名前；
●ユーザのパーソナルライブラリの書籍又は他の文献におけるタイトル、著者、ジャンル又は他の象徴的名前。
【００９２】
ダイアログ履歴１０５２
コンテクストデータの別のソースは、バーチャルアシスタント１００２とのユーザのダイアログ履歴１０５２である。このような履歴は、例えば、ドメイン、人々、場所、等への参照を含む。図１５には、一実施形態によりバーチャルアシスタント１００２がダイアログコンテクストを使用してコマンドに対する位置を推測する一例が示されている。スクリーン１５５１において、ユーザは、先ず、「ニューヨークは何時か(What’s the time in New York)」尋ね、バーチャルアシスタント１００２は、それに応答して１５５２、ニューヨーク市の現在時間を与える。次いで、ユーザは、「どんな天気か(What’s the weather)」尋ねる。バーチャルアシスタント１００２は、以前のダイアログ履歴を使用して、天気の質問に意図された位置がダイアログ履歴に述べられた最後の位置であると推測する。それ故、その応答１５５３は、ニューヨーク市の天気情報を与える。
【００９３】
別の例として、ユーザが「この近くのカメラショップを探せ(find camera shops near  here)」と言い、次いで、結果を検討した後に、「サンフランシスコはどう(how about San Francisco?)」と言うと、アシスタントは、ダイアログコンテクストを使用して、“how about”が“do the same task (find camera stores)(同じタスク(カメラ店を探せ)を行う) ”を意味し、又、“in San Francisco”が“changing the locus of the search from here to San Francisco(探索の場所をここからサンフランシスコへ変える)”を意味すると決定する。又、バーチャルアシスタント１００２は、ダイアログの以前の詳細、例えば、ユーザに与えられた以前の出力をコンテクストとして使用することもできる。例えば、バーチャルアシスタント１００２が、ユーモアとして意図された賢い応答、例えば、「ようし、君がボスだ(Sure thing, you’re the boss)」を使用した場合には、既にこれを言っていることを思い出し、ダイアログセッション内でこのフレーズを繰り返すことを回避することができる。
【００９４】
ダイアログ履歴及びバーチャルアシスタントメモリからのコンテクスト情報は、例えば、次のものを含むが、これに限定されない。
●ダイアログに述べられた人々；
●ダイアログに述べられた場所及び位置；
●焦点である現在時間フレーム；
●ｅ−メール又はカレンダーのような、焦点である現在アプリケーションドメイン；
●ｅ−メールの読み取り又はカレンダーエントリの生成のような、焦点である現在タスク；
●丁度読み取られたｅ−メールメッセージ、又は丁度生成されたカレンダーエントリのような、焦点である現在ドメインオブジェクト；
●質問がなされたかどうか、どんな回答が予想されるかのような、ダイアログ又はトランザクションフローの現在状態；
●「うまいイタリアレストラン(good Italian restaurants)」のような、ユーザ要求の履歴；
●返送されたレストランの組のような、ユーザ要求の結果の履歴；
●ダイアログにアシスタントにより使用されるフレーズの履歴；
●「私の母は、レベッカ・リチャードです(my mother is Rebecca Richards)」及び「そのレストランが好きだった(I liked that restaurant)」のような、ユーザによりアシスタントに語られた事実。
【００９５】
図２５Ａ及び２５Ｂには、一実施形態により以前のダイアログコンテクストの使用例を描いた一連のスクリーンショットが示されている。図２５Ａにおいて、ユーザは、ジョン(John)からの新たなｅ−メールに対して要求２５５０を入力する。バーチャルアシスタント１００２は、それに応答して、ジョンからのｅ−メールメッセージ２５５１を表示する。図２５Ｂにおいて、ユーザは、コマンド２５５２“Reply let’s get this to marketing right away”を入力する。バーチャルアシスタント１００２は、以前のダイアログコンテクストを使用してコマンド２５５２を解釈し、特に、コマンドは、図２５に表示されたｅ−メールメッセージ２５５１を参照するものと解釈される。
【００９６】
装置センサデータ１０５６
一実施形態において、バーチャルアシスタント１００２を実行する物理的装置は、１つ以上のセンサを有する。そのようなセンサは、コンテクスト情報のソースをなす。そのような情報は、例えば、次のものを含むが、これに限定されない。
●ユーザの現在位置；
●ユーザの現在位置のローカル時間；
●装置の位置、方向及び動き；
●現在照明レベル、温度及び他の環境測定；
●使用中のマイクロホン及びカメラの特性；
●使用される現在ネットワーク、並びにイーサネット（登録商標）、Ｗｉ−Ｆｉ及びＢｌｕｅｔｏｏｔｈ（登録商標）を含む接続されるネットワークのシグネチャー。シグネチャーは、ネットワークアクセスポイントのＭＡＣアドレス、指定のＩＰアドレス、Ｂｌｕｅｔｏｏｔｈ（登録商標）名のような装置識別子、周波数チャンネル、及びワイヤレスネットワークの他の特性を含む。
【００９７】
センサは、例えば、加速度計、コンパス、ＧＰＳユニット、高度検出器、照明センサ、温度計、気圧計、クロック、ネットワークインターフェイス、バッテリテスト回路、等を含む任意の形式のものである。
【００９８】
アプリケーションの好み及び使用履歴１０７２
一実施形態において、種々のアプリケーションに対するユーザの好み及び設定、並びに使用履歴を記述する情報１０７２は、ユーザの意図又はバーチャルアシスタント１００２の他のファンクションを解釈し及び／又は運用するためのコンテクストとして使用される。そのような好み及び履歴１０７２は、例えば、次のものを含むが、これに限定されない。
●ショートカット、お気に入り、ブックマーク、友人リスト、或いは人々、会社、アドレス、電話番号、場所、ウェブサイト、ｅ−メールメッセージ又は他の基準に関するユーザデータの他の集合；
●装置でなされた最近のコール；
●会話への当事者を含む最近のテキストメッセージ会話；
●マップ又は方向に対する最近の要求；
●最近のウェブサーチ及びＵＲＬ；
●株アプリケーションにリストされた株；
●最近再生された曲又はビデオ又は他のメディア；
●アラートアプリケーションでセットされたアラームの名前；
●装置におけるアプリケーション又は他のデジタルオブジェクトの名前；
●ユーザの好ましい言語、又はユーザ位置で使用する言語。
【００９９】
図１６には、一実施形態によりコンテクストのソースとして電話のお気に入りリストを使用する一例が示されている。スクリーン１６５０には、お気に入り連絡先のリスト１６５１が示されている。ユーザが「ジョンにコールする(call John)」入力を与える場合には、お気に入りの連絡先のこのリスト１６５１を使用して、“John”がJohn Appleseedの移動番号を指していることを決定する。というのは、この番号がリストに現れるからである。
【０１００】
イベントコンテクスト２７０６
一実施形態において、バーチャルアシスタント１００２は、バーチャルアシスタント１００２とのユーザ対話とは独立して起きる非同期イベントに関連したコンテクストを使用することができる。図２２ないし２４を参照すれば、一実施形態によりイベントコンテクスト又はアラートコンテクストを与えるイベントが生じた後のバーチャルアシスタント１００２のアクチベーションを例示する一例が示されている。この場合、イベントは、図２２に示すように、到来するテキストメッセージ２２５０である。図２３において、バーチャルアシスタント１００２が呼び出され、テキストメッセージ２２５０がプロンプト１２５１に沿って示されている。図２４において、ユーザは、コマンド「彼にコールする(call him)」２４５０を入力する。バーチャルアシスタント１００２は、イベントコンテクストを使用して、到来テキストメッセージ２２５０を送信した個人を意味するように“him”を解釈することによりコマンドを明瞭化する。バーチャルアシスタント１００２は、更に、イベントコンテクストを使用して、出て行くコールに対してどの電話番号を使用すべきか決定する。確認メッセージ２４５１は、コールが発信されることを指示するために表示される。
【０１０１】
アラートコンテクスト情報は、次のものを含むが、これに限定されない。
●到来するテキストメッセージ又はページ；
●到来するｅ−メールメッセージ；
●到来する電話コール；
●リマインダー通知又はタスクアラート；
●カレンダーアラート；
●アラートクロック、タイマー、又は他の時間ベースのアラート；
●ゲームからのスコア又は他のイベントの通知；
●株価アラートのような金融イベントの通知；
●ニュースフラッシュ又は他の放送通知；
●任意のアプリケーションからのプッシュ通知。
【０１０２】
パーソナル音響コンテクストデータ１０８０
スピーチ入力を解釈するとき、バーチャルアシスタント１００２は、スピーチが入力される音響環境も考慮することができる。例えば、静寂なオフィスの騒音プロフィールは、自動車又は公共の場所のものとは異なる。スピーチ認識システムが音響プロフィールデータを識別しそして記憶できる場合には、それらのデータは、コンテクスト情報として与えることもできる。使用中のマイクロホンのプロパティ、現在位置、及び現在ダイアログ状態のような他のコンテクスト情報と合成されるときに、音響コンテクストは、入力を認識しそして解釈する上で助けとなる。
【０１０３】
コンテクストの表現及びアクセス
上述したように、バーチャルアシスタント１００２は、多数の異なるソースのいずれのコンテクスト情報を使用することもできる。バーチャルアシスタント１００２へ使用可能とするようにコンテクストを表現するために多数の異なるメカニズムのいずれを使用することもできる。図８ａないし８ｄには、本発明の種々の実施形態に関連して使用できるようにコンテクスト情報を表現する幾つかの例が示されている。
【０１０４】
人々、場所、時間、ドメイン、タスク及びオブジェクトの表現
図８ａは、ユーザの現在位置の地理座標のような簡単なプロパティを表わすコンテクスト変数の例８０１−８０９を示す。一実施形態において、コンテクスト変数のコアセットに対して現在値を維持することができる。例えば、現在ユーザ、焦点である現在位置、焦点である現在時間フレーム、焦点である現在アプリケーションドメイン、焦点である現在タスク、及び焦点である現在ドメインオブジェクトがある。図８ａに示すようなデータ構造は、そのような表現に使用することができる。
【０１０５】
図８ｂは、連絡先に対するコンテクスト情報を記憶するのに使用できるより複雑な表現の例８５０を示す。連絡先に対するデータを含む表現の例８５１も示されている。一実施形態において、連絡先（又は個人）は、名前、性別、アドレス、電話番号に対するプロパティ、及び連絡先データベースに保持される他のプロパティを伴うオブジェクトとして表現される。場所、時間、アプリケーションドメイン、タスク、ドメインオブジェクト、等についても同様の表現を使用することができる。
【０１０６】
一実施形態において、所与の形式の現在値のセットが表現される。このようなセットは、現在の人々、現在の場所、現在時間、等を指すことができる。
【０１０７】
一実施形態において、コンテクスト値が履歴に配列されて、Ｎ回の繰り返しで現在コンテクスト値のフレームが生じるようにし、又、現在Ｎ−１の繰り返しであるコンテクスト値のフレームが、望ましい履歴の長さに関するある限界に戻るようにする。図８ｃは、コンテクスト値の履歴を含むアレイ８１１の例を示す。特に、図８ｃの各列は、コンテクスト変数を表わし、行は、異なる時間に対応する。
【０１０８】
一実施形態において、タイプされたコンテクスト変数のセットが、図８ｄに示したように履歴に配列される。この例では、個人を参照するコンテクスト変数のセット８６１が、場所を参照するコンテクスト変数の別のセット８７１と共に示されている。従って、履歴の特定時間に対する関連コンテクストデータを検索し適用することができる。
【０１０９】
当業者であれば、図８ａないし８ｄに示された特定の表現は、単なる例示に過ぎず、コンテクストを表現するための多数の他のメカニズム及び／又はデータフォーマットを使用できることが明らかであろう。例えば、次のものが含まれる。
●一実施形態において、システムの現在ユーザは、バーチャルアシスタント１００２がどのようにしてユーザにアドレスし、そしてユーザの家、仕事、移動電話、等を参照するか分かるように、ある特殊な仕方で表される。
●一実施形態において、人々の中の関係は、バーチャルアシスタント１００２が「自分の母」又は「自分の家長の家」のような参照を理解できるように表わされる。
●場所は、名前、街路アドレス、地理座標、等のプロパティを伴うオブジェクトとして表される。
●時間は、普遍的時間、タイムゾーンオフセット、分解能（年、月、日、時間、分又は秒のような）を含むプロパティを伴うオブジェクトとして表される。又、時間オブジェクトは、「今日」、「今週」、「この（今度の）週末」、「次週」、「アニーの誕生日」、等の象徴的時間を表わすこともできる。又、時間オブジェクトは、期間又は時点を表わすこともできる。
●又、コンテクストは、サービス又はアプリケーション又は談話のドメイン、例えば、ｅ−メール、テキストメッセージング、電話、カレンダー、連絡先、写真、ビデオ、マップ、天気、リマインダー、クロック、ウェブブラウザ、フェースブック、パンドラ、等を表わすアプリケーションドメインに関して与えることもできる。現在ドメインは、これらのドメインのどれが焦点であるか指示する。
●又、コンテクストは、ドメイン内で遂行するための１つ以上のタスク又はオペレーションを定義することもできる。例えば、ｅ−メールドメイン内には、ｅ−メールメッセージの読み取り、ｅ−メールのサーチ、新たなｅ−メールの構成、等のタスクがある。
●ドメインオブジェクトは、種々のドメインに関連したデータオブジェクトである。例えば、ｅ−メールドメインは、ｅ−メールメッセージにおいて動作し、カレンダードメインは、カレンダーイベントにおいて動作し、等々である。
【０１１０】
ここでの説明の目的上、コンテクスト情報のこれらの表現は、所与の形式のコンテクスト変数と称される。例えば、現在ユーザの表現は、形式「個人」のコンテクスト変数である。
【０１１１】
コンテクスト導出の表現
一実施形態において、コンテクスト変数の導出は、情報処理に使用できるように明確に表わされる。コンテクスト情報の導出は、情報を完結し又は検索するためになされる推測のソース及び／又はセットを特徴付けるものである。例えば、図８ｂに描かれた「個人」コンテクスト値８５１は、イベントコンテクスト２７０６から取得した「テキストメッセージドメインオブジェクト」から導出される。コンテクスト値８５１のこのソースが表現される。
【０１１２】
ユーザ要求及び／又は意図の履歴の表現
一実施形態において、ユーザの要求の履歴を記憶することができる。一実施形態において、（自然言語処理から導出された）ユーザの意図の深い構造表現の履歴も記憶することができる。これは、バーチャルアシスタント１００２が、以前に解釈された入力のコンテクストにおいて新たな入力の意味をとれるようにする。例えば、ユーザが「ニューヨークの天気は？(what is the weather in New York?)」と尋ねた場合に、言語インタープリター２７７０は、質問を、ニューヨークの位置を参照するものと解釈する。次いで、ユーザが「今週末についてはどうか？(what is it for this weekend?)」と言うと、バーチャルアシスタント１００２は、この以前の解釈を参照して、「どうか(what is it)」が「天気はどうか(what is the weather)」を意味すると解釈すべきであると決定する。
【０１１３】
結果の履歴の表示
一実施形態では、ユーザ要求の結果の履歴をドメインオブジェクトの形態で記憶することができる。例えば、ユーザ要求「うまいイタリアレストランを見つけよ(find me some good Italian restaurants)」は、レストランを表わすドメインオブジェクトのセットを返送する。次いで、ユーザが「アミリオにコールせよ(call Amilio’s)」のようなコマンドを入力すると、バーチャルアシスタント１００２は、サーチ結果内の「アミリオ」という名前のレストランについて結果をサーチし、これは、コールできる全ての考えられる場所よりも小さなセットである。
【０１１４】
コンテクスト変数の遅延バインディング
一実施形態において、コンテクスト変数は、オンデマンドで検索又は導出された情報を表現することができる。例えば、現在位置を表わすコンテクスト変数は、アクセスされたとき、ＡＰＩを呼び出し、ＡＰＩは、装置から現在位置データを検索し、そして他の処理を行って、例えば、街路アドレスを計算することができる。そのコンテクスト変数の値は、キャッシュポリシーに基づいて、ある期間、維持することができる。
【０１１５】
コンテクストのサーチ
バーチャルアシスタント１００２は、多数の異なる解答のいずれかを使用して、情報処理問題を解決するための関連コンテクスト情報をサーチすることができる。異なる形式のサーチは、例えば、次のものを含むが、これに限定されない。
●コンテクスト変数名によるサーチ：要求されたコンテクスト変数の名前が「現在ユーザファーストネーム(current user first name)」のような既知のものである場合には、バーチャルアシスタント１００２は、そのインスタンスをサーチすることができる。履歴が保持されている場合には、バーチャルアシスタント１００２は、先ず、現在値をサーチし、次いで、一致が見つかるまで初期のデータを調べる。
●コンテクスト変数形式によるサーチ：要求されたコンテクスト変数の形式が「個人」のような既知のものである場合には、バーチャルアシスタント１００２は、この形式のコンテクスト変数のインスタンスをサーチすることができる。履歴が保持されている場合には、バーチャルアシスタント１００２は、先ず、現在値をサーチし、次いで、一致が見つかるまで初期のデータを調べる。
【０１１６】
一実施形態において、現在情報処理問題が単一の一致を要求する場合には、一致が見つかると、サーチが終了となる。複数の一致が許される場合には、ある限界に到達するまで一致結果を検索することができる。
【０１１７】
一実施形態において、もし適当であれば、バーチャルアシスタント１００２は、そのサーチを、ある導出を有するデータに制限することができる。例えば、ｅ−メールのタスクフローの中で「人々」オブジェクトを探す場合に、バーチャルアシスタント１００２は、導出がそのドメインに関連したアプリケーションであるようなコンテクスト変数しか考慮しない。
【０１１８】
一実施形態において、バーチャルアシスタント１００２は、コンテクスト変数の使用可能なプロパティを使用し、発見的手法に基づき一致をランク付けするルールを使用する。例えば、「私が遅れることを彼女に告げる(tell her I’ll be late)」コマンドを含むユーザ入力を処理するときには、バーチャルアシスタント１００２は、コンテクストを参照することにより「彼女(her)」を解釈する。これを行う際に、バーチャルアシスタント１００２は、その導出がテキストメッセージング及びｅ−メールのような通信アプリケーションに対するアプリケーション使用履歴であるような「人々」オブジェクトについての好みを指示するためのランキングを適用することができる。別の例として、「彼女にコールする(call her)」コマンドを解釈するために、バーチャルアシスタント１００２は、電話番号が分からないものより電話番号をもつ「人々」オブジェクトを好むためのランキングを適用することができる。一実施形態では、ランキングルールは、ドメインに関連付けされる。例えば、「ｅ−メール」及び「電話」ドメインの「個人」変数をランキングするために異なるランキングルールを使用することができる。当業者であれば、そのようなランキングルールは、必要なコンテクスト情報の特定の表現及びそこへのアクセスに基づいて、生成及び／又は適用できることが明らかであろう。
【０１１９】
バーチャルアシスタント処理を改善するためのコンテクストの使用
上述したように、コンテクストは、バーチャルアシスタント１００２のオペレーションに関連して種々の計算及び推測に適用することができる。図２は、一実施形態によりバーチャルアシスタント１００２における種々の処理段階にコンテクストを使用する方法１０を示すフローチャートである。
【０１２０】
方法１０は、バーチャルアシスタント１００２の１つ以上の実施形態に関連して具現化される。
【０１２１】
少なくとも１つの実施形態において、方法１０は、種々の形式のファンクション、オペレーション、アクション、及び／又は他の特徴、例えば、次の１つ以上（又はその組み合わせ）を遂行し及び／又は具現化するように動作できる。
●ユーザとバーチャルアシスタント１００２との間の会話インターフェイスのインターフェイスコントロールフローループを実行する。方法１０の少なくとも１回の繰り返しは、会話における１つのプライとして働く。会話インターフェイスは、ユーザ及びアシスタント１００２が会話式に前後に発話することにより通信するインターフェイスである。
●バーチャルアシスタント１００２のための管理コントロールフローを与える。即ち、この手順は、入力の収集、入力の処理、出力の発生、及びユーザへの出力の提示をコントロールする。
●バーチャルアシスタント１００２のコンポーネント間で通信を整合する。即ち、どこで１つのコンポーネントの出力が別のコンポーネントへ供給されるか、及びどこで環境からの全体的入力及び環境へのアクションが生じるか指令する。
【０１２２】
少なくともある実施形態では、方法１０の一部分が、コンピュータネットワークの他の装置及び／又はシステムで実施されてもよい。
【０１２３】
特定の実施形態によれば、方法１０の複数のインスタンス又はスレッドは、１つ以上のプロセッサ６３、及び／又はハードウェア及び／又はハードウェア及びソフトウェアの他の組み合わせの使用を経て同時に具現化及び／又は開始されてもよい。少なくとも１つの実施形態では、方法１０の１つ以上の部分又は選択された部分は、１つ以上のクライアント１３０４、１つ以上のサーバー１３４０、及び／又はその組み合わせにおいて具現化されてもよい。
【０１２４】
例えば、少なくとも幾つかの実施形態において、方法１０の種々の態様、特徴、及び／又はファンクションは、ソフトウェアコンポーネント、ネットワークサービス、データベース、等、或いはその組み合わせにより、遂行され、具現化され、及び／又は開始されてもよい。
【０１２５】
異なる実施形態によれば、方法１０の１つ以上の異なるスレッド又はインスタンスは、方法１０の少なくとも１つのインスタンスの開始をトリガーするための１つ以上の異なる形式の基準（例えば、最小スレッシュホールド基準）を満足する１つ以上の条件又はイベントの検出に応答して開始される。この方法の１つ以上の異なるスレッド又はインスタンスの開始及び／又は具現化をトリガーする種々の形式の条件又はイベントは、例えば、次の１つ以上（又はその組み合わせ）を含むが、これに限定されない。
●バーチャルアシスタント１００２のインスタンスとのユーザセッション、例えば、次の１つ以上であるが、これに限定されない。
○移動装置アプリケーションスタートアップ、例えば、バーチャルアシスタント１００２の実施形態を具現化する移動装置アプリケーション；
○コンピュータアプリケーションスタートアップ、例えば、バーチャルアシスタント１００２の実施形態を具現化するアプリケーション；
○押圧される移動装置の専用ボタン、例えば、「スピーチ入力ボタン」；
○ヘッドセット、電話ハンドセット又はベースステーション、ＧＰＳナビゲーションシステム、消費者向け機器、リモートコントロール、又は支援の呼び出しに関連したボタンを伴う他の装置のような、コンピュータ又は移動装置に取り付けられる周辺装置のボタン；
○ウェブブラウザから、バーチャルアシスタント１００２を具現化するウェブサイトへとスタートされるウェブセッション；
○既存のウェブブラウザセッション内から、バーチャルアシスタント１００２を具現化するウェブサイトへとスタートされる対話であって、例えば、バーチャルアシスタント１００２のサービスが要求される対話；
○バーチャルアシスタント１００２の実施形態との通信を仲裁するモダリティサーバー１４２６へ送信されるｅ−メールメッセージ；
○バーチャルアシスタント１００２の実施形態との通信を仲裁するモダリティサーバー１４２６へ送信されるテキストメッセージ；
○バーチャルアシスタント１００２の実施形態との通信を仲裁するモダリティサーバー１４３４へ発信される電話コール；
○バーチャルアシスタント１００２の実施形態を与えるアプリケーションへ送られるアラート又は通知のようなイベント。
●バーチャルアシスタント１００２を与える装置がターンオンされ及び／又はスタートされるとき。
【０１２６】
異なる実施形態によれば、方法１０の１つ以上の異なるスレッド又はインスタンスは、手動で、自動的に、スタティックに、ダイナミックに、同時に、及び／又はその組み合わせで、開始され及び／又は具現化されてもよい。更に、方法１０の異なるインスタンス及び／又は実施形態は、１つ以上の異なる時間インターバルで（例えば、特定の時間インターバル中、規則的な周期的インターバル、不規則な周期的インターバル、オンデマンド、等で）開始されてもよい。
【０１２７】
少なくとも１つの実施形態において、方法１０の所与のインスタンスは、ここに述べるコンテクストデータを含めて、特定のタスク及び／又はオペレーションを遂行するときに種々の異なる形式のデータ及び／又は他の形式の情報を利用し及び／又は発生する。又、データは、他の形式の入力データ／情報及び／又は出力データ／情報を含んでもよい。例えば、少なくとも１つの実施形態において、方法１０の少なくとも１つのインスタンスは、１つ以上の異なる形式のソース、例えば、１つ以上のデータベースからの情報にアクセスし、それを処理し、及び／又はその他、それを利用することができる。少なくとも１つの実施形態において、データベース情報の少なくとも一部分は、１つ以上のローカル及び／又はリモートメモリ装置との通信を経てアクセスされる。更に、方法１０の少なくとも１つのインスタンスは、１つ以上の異なる形式の出力データ／情報を発生し、これは、例えば、ローカルメモリ及び／又はリモートメモリ装置に記憶される。
【０１２８】
少なくとも１つの実施形態において、方法１０の所与のインスタンスの初期コンフィギュレーションは、１つ以上の異なる形式の初期化パラメータを使用して遂行される。少なくとも１つの実施形態において、初期化パラメータの少なくとも一部分は、１つ以上のローカル及び／又はリモートメモリ装置との通信を経てアクセスされる。少なくとも１つの実施形態において、方法１０のインスタンスに与えられる初期化パラメータの少なくとも一部分は、入力データ／情報に対応し、及び／又はそこから導出される。
【０１２９】
図２の特定例では、１人のユーザが、スピーチ入力能力をもつクライアントアプリケーションからネットワークを経てバーチャルアシスタント１００２のインスタンスにアクセスすると仮定する。
【０１３０】
スピーチ入力を引き出して解釈する１００。引き出しは、適当なモードでプロンプトを提示することを含む。種々の実施形態において、クライアントのユーザインターフェイスは、多数の入力モードを与える。それらは、例えば、次のものを含む。
●アクティブなタイプ入力引き出し手順を呼び出すタイプ入力用のインターフェイス；  ●アクティブなスピーチ入力引き出し手順を呼び出すスピーチ入力用のインターフェイス；
●アクティブなＧＵＩベースの入力引き出しを呼び出す、メニューから入力を選択するインターフェイス。
【０１３１】
これら各々を遂行するための技術は、上述した関連特許出願に説明されている。当業者であれば、他の入力モードを設けてもよいことが明らかであろう。ステップ１００の出力は、入力スピーチの候補解釈１９０のセットである。
【０１３２】
候補解釈１９０のセットは、言語インタープリター２７７０（自然言語プロセッサ又はＮＬＰとも称される）によって処理され２００、これは、テキスト入力をパーズしそしてユーザの意図の考えられる解釈のセットを発生する２９０。
【０１３３】
ステップ３００において、ユーザの意図の表現２９０は、図５を参照して説明するダイアログ及びフロー分析手順の実施形態を具現化するダイアログフロープロセッサ２７８０へ送られる。このダイアログフロープロセッサ２７８０は、意図のどの解釈が最もあり得るか決定し、その解釈をドメインモデルのインスタンス及びタスクモデルのパラメータへマップし、そしてタスクフローにおける次のフローステップを決定する。
【０１３４】
ステップ４００において、識別されたフローステップを実行する。一実施形態において、フローステップの呼び出しは、ユーザの要求に代わってサービスのセットを呼び出すサービスオーケストレーションコンポーネント２７８２により遂行される。一実施形態において、これらのサービスは、あるデータを共通の結果に寄与させる。
【０１３５】
ステップ５００において、ダイアログ応答が発生される。ステップ７００において、その応答がクライアント装置へその出力のために送られる。装置のクライアントソフトウェアは、クライアント装置のスクリーン（又は他の出力装置）においてそれをレンダリングする。
【０１３６】
応答を見た後に、ユーザが終了すると７９０、この方法は終了となる。ユーザが終了しないと、ステップ１００へ戻ることにより、ループの別の繰り返しが開始される。
【０１３７】
コンテクスト情報１０００は、方法１０の種々のポイントでシステムの種々のコンポーネントによって使用される。例えば、図２に示すように、コンテクスト１０００は、ステップ１００、２００、３００及び５００において使用される。これらステップにおけるコンテクスト１０００の使用について、以下に更に説明する。しかしながら、当業者であれば、コンテクスト情報の使用は、これら特定のステップに限定されず、そしてこのシステムは、本発明の本質的な特徴から逸脱せずに、他のポイントでもコンテクスト情報を使用できることが明らかであろう。
【０１３８】
更に、当業者であれば、方法１０の異なる実施形態は、図２に示す特定の実施形態に例示されたもの以外の付加的な特徴及び／又はオペレーションを含んでもよく、及び／又は図２の特定の実施形態に例示された方法１０の特徴及び／又はオペレーションの少なくとも一部分を省略してもよいことが明らかであろう。
【０１３９】
スピーチ引き出し及び解釈におけるコンテクストの使用
図３は、一実施形態によりスピーチ認識を改善するためにスピーチ引き出し及び解釈にコンテクストを使用する方法１００を示すフローチャートである。コンテクスト１０００は、例えば、音素をワードに一致させる候補仮説の発生、ランキング及びフィルタリングをガイドするためのスピーチ認識の明瞭化に使用される。異なるサーチ認識システムは、発生、ランク及びフィルタの種々の混合を使用するが、コンテクスト１０００は、一般的に、任意の段階において仮説スペースを減少するように適用することができる。
【０１４０】
この方法は、１００で始まる。アシスタント１００２は、聴覚信号の形態でボイス又はスピーチ入力を受け取る１２１。スピーチ対テキストサービス１２２又はプロセッサは、聴覚信号の候補テキスト解釈１２４のセットを発生する。一実施形態において、スピーチ対テキストサービス１２２は、例えば、マサチューセッツ州バーリントンのニュアンス・コミュニケーションズ・インクから入手できるニュアンスレコグナイザー(Nuance Recognizer)を使用して具現化される。
【０１４１】
一実施形態において、アシスタント１００２は、統計学的言語モデル１０２９を使用して、スピーチ入力１２１の候補テキスト解釈１２４を発生する。一実施形態において、コンテクスト１０００は、スピーチ対テキストサービス１２２により発生される候補解釈１２４の発生、フィルタリング及び／又はランキングをバイアスするために適用される。例えば、
●スピーチ対テキストサービス１２２は、ユーザパーソナルデータベース１０５８からの語彙を使用して、統計学的言語モデル１０２９をバイアスすることができる。
●スピーチ対テキストサービス１２２は、ダイアログ状態コンテクストを使用して、カスタム統計学的言語モデル１０２９を選択することができる。例えば、イエス／ノー質問を行うときに、統計学的言語モデル１０２９は、それらのワードを聴取に向かってバイアスするものが選択される。
●スピーチ対テキストサービス１２２は、現在アプリケーションコンテクストを使用して、関連ワードに向かってバイアスすることができる。例えば、“call her”は、テキストメッセージアプリケーションコンテクストにおいて“collar”より好ましい。というのは、そのようなコンテクストは、コールすることのできる「個人オブジェクト」を与えるからである。
【０１４２】
例えば、所与のスピーチ入力は、解釈“call her”及び“collar”を発生するようにスピーチ対テキストサービス１２２を導く。統計学的言語モデル（ＳＬＭ）１０２９によりガイドされて、スピーチ対テキストサービス１２２は、“call”を聞いた後に名前を聞くように文法上の制約により同調される。又、スピーチ対テキストサービス１２２は、コンテクスト１０００にも基づいて同調される。例えば、“Herb”がユーザのアドレス帳においてファーストネームである場合には、このコンテクストを使用して、“Herb”を第２シラブルの解釈と考えるためのスレッシュホールドを下げることができる。即ち、ユーザのパーソナルデータコンテクストにおける名前の存在は、仮説を発生するのに使用される統計学的言語モデル１０２９の選択及び同調に影響を及ぼす。名前“Herb”は、一般的なＳＬＭ１０２９の一部分であるか、又はコンテクスト１０００により直接追加できるものである。一実施形態において、これは、コンテクスト１０００に基づいて同調される付加的なＳＬＭ１０２９として追加できるものである。一実施形態では、これは、コンテクスト１０００に基づいて同調される既存のＳＬＭ１０２９の同調である。
【０１４３】
一実施形態において、統計学的言語モデル１０２９は、長期パーソナルメモリ２７５４に記憶されるアプリケーション好み及び使用履歴１０７２及び／又はパーソナルデータベース１０５８からワード、名前及びフレーズを探すようにも同調される。例えば、統計学的言語モデル１０２９は、ツードウ(to-do)アイテム、リストアイテム、パーソナルノート、カレンダーエントリ、連絡先／アドレス帳における人の名前、連絡先／アドレス帳に記されたｅ−メールアドレス、街路名又は都市名、等からテキストが与えられる。
【０１４４】
ランキングコンポーネントは、候補解釈を分析し１２４、そしてそれらがバーチャルアシスタント１００２のシンタクティック及び／又はセマンティックモデルにどれほど良好に適合するかに基づいてそれらをランク付けする１２６。ユーザ入力に対する制約ソースを使用してもよい。例えば、一実施形態において、アシスタント１００２は、解釈がシンタクティック及び／又はセマンティックセンス、ドメインモデル、タスクフローモデル、及び／又はダイアログモデル、等においてどれほど良好にパーズするかに基づいて、スピーチ対テキストインタープリターの出力をランク付けし、即ち、候補解釈１２４におけるワードの種々の組み合わせが、上述した関連米国実用特許出願に説明されたように、アクティブなオントロジー及びその関連モデルのコンセプト、関係、エンティティ及びプロパティにどれほど良好に適合するか評価する。
【０１４５】
又、候補解釈のランキング１２６も、コンテクスト１０００により影響される。例えば、バーチャルアシスタント１００２が呼び出されたときにユーザがテキストメッセージングアプリケーションにおいて現在会話を続けている場合には、フレーズ“call her”は、おそらく、ワード“collar”より正しい解釈となる。というのは、このコンテクストでは“her”がコールする潜在性があるからである。このようなバイアスは、現在アプリケーションコンテクストが「コール可能なエンティティ(callable entities)」を与えるアプリケーションを指示するときに仮説１２６のランキングを“call her”又は“call <contact name>”のような好ましいフレーズへ同調させることにより達成することができる。
【０１４６】
種々の実施形態において、図３に示す自然言語処理手順の実施形態を含めて、テキスト入力を解釈するためにアシスタント１００２により使用されるアルゴリズム又は手順は、スピーチ対テキストサービス１２２により発生される候補テキスト解釈１２４をランク付け及びスコア付けするのに使用される。
【０１４７】
又、コンテクスト１０００は、候補解釈の発生を制限するか又はそれらのランク付けに影響を及ぼすのに代わって又はそれに加えて、候補解釈１２４をフィルタリングするのにも使用できる。例えば、フィルタリングルールは、“Herb”のアドレス帳エントリーのコンテクストが、それがフィルタリングスレッシュホールドより低くても、それを含むフレーズが最上位候補とみなされねばならない１３０ことを充分に指示すると規定することができる。使用する特定のスピーチ認識技術に基づき、コンテクストバイアスに基づく制約は、発生、ランク付け及び／又はフィルタ段に適用することができる。
【０１４８】
一実施形態において、ランキングコンポーネント１２６で、解釈１２４からの最高ランキングスピーチ解釈が指定スレッシュホールドより上にランクされると決定された場合には、最高ランキングの解釈が自動的に選択される１３０。指定スレッシュホールドより高い解釈ランクがない場合には、スピーチの考えられる候補解釈１３４がユーザに提示される１３２。次いで、ユーザは、表示された選択肢から選択を行う１３６。
【０１４９】
図２６Ａ及び２６Ｂは、一実施形態により候補解釈間で選択を行うためのユーザインターフェイスの一例を描いたスクリーンショットである。図２６Ａは、曖昧な解釈の下にドットを伴うユーザスピーチ２６５１の提示を示す。ユーザがテキストをタップすると、図２６Ｂに示すように、別の解釈２６５２Ａ、２６５２Ｂを示す。一実施形態において、コンテクスト１０００は、候補解釈２６５２Ａ、２６５２Ｂのどちらが好ましい解釈であるか（図２５Ａのように初期デフォールトとして示す）に影響を及ぼすと共に、図２６Ｂのように提示すべき代替え物の限定セットの選択にも影響を及ぼす。
【０１５０】
種々の実施形態において、表示された選択肢間でのユーザ選択１３６は、例えば、マルチモード入力を含めて、入力のモードにより達成される。このような入力モードは、アクティブに引き出されるタイプ入力、アクティブに引き出されるスピーチ入力、入力に対してアクティブに提示されるＧＵＩ、等を含むが、これに限定されない。一実施形態において、ユーザは、例えば、タップするか又は話すことにより候補解釈１３４に間で選択することができる。話す場合には、新たなスピーチ入力の考えられる解釈は、与えられる選択肢の小さなセットにより著しく制約される１３４。
【０１５１】
入力が自動的に選択されるか１３０又はユーザにより選択される１３６かに関わらず、それにより得られる１つ以上のテキスト解釈１９０は返送される。少なくとも１つの実施形態において、返送された入力は、ステップ１３６においてどの選択を行ったかの情報がテキスト入力と共に保存されるように、注釈付けされる。これは、例えば、ストリングの下にあるセマンティックコンセプト又はエンティティを返送時にストリングに関連付けできるようにし、その後の言語解釈の精度を改善することができる。
【０１５２】
図１を参照して述べたいずれのソースも、図３に示すスピーチ引き出し及び解釈方法にコンテクスト１０００を与えることができる。例えば、
●「パーソナル音響コンテクストデータ」１０８０は、考えられるＳＬＭ１０２９から選択を行うか、さもなければ、認識された音響コンテクストに対して最適化するようにそれらを同調させるのに使用される。
●使用中のマイクロホン及び／又はカメラのプロパティを記述する「装置センサデータ」１０５６は、考えられるＳＬＭ１０２９から選択を行うか、さもなければ、認識された音響コンテクストに対して最適化するようそれらを同調させるのに使用される。
●パーソナルデータベース１０５８、並びにアプリケーション好み及び使用履歴１０７２からの語彙は、コンテクスト１０００として使用される。例えば、メディアのタイトル及びアーチストの名前は、言語モデル１０２９を同調するのに使用される。
●現在ダイアログ状態、ダイアログ履歴の一部分及びアシスタントメモリ１０５２は、候補解釈１２４の発生／フィルタ／ランクをテキスト対スピーチサービス１２２によってバイアスするのに使用される。例えば、一種のダイアログ状態がイエス／ノー質問を行う。そのような状態のとき、手順１００は、それらのワードを聞くことに向かってバイアスするＳＬＭ１０２９を選択するか、又は１２２でのコンテクスト特有同調においてそれらワードのランク付け及びフィルタリングをバイアスすることができる。
【０１５３】
自然言語処理におけるコンテクストの使用
コンテクスト１０００は、自然言語処理（ＮＬＰ）、即ちテキスト入力を、考えられるパーズを表わすセマンティック構造へとパージすること、を容易にするのに使用される。図４は、一実施形態により、言語インタープリター２７７０で遂行される自然言語処理にコンテクストを使用するための方法を示すフローチャートである。
【０１５４】
この方法は、２００で始まる。入力テキストを受け取る２０２。一実施形態において、入力テキスト２０２は、パターンレコグナイザー２７６０、語彙データベース２７５８、オントロジー及び他のモデル１０５０を使用して、ワード及びフレーズに対してマッチングされ２１０、ユーザ入力とコンセプトとの間の関連性を識別する。ステップ２１０は、候補シンタクティックパーズ２１２のセットを生成し、これは、セマンティック関連性についてマッチングされ２２０、候補セマンティックパーズ２２２を発生する。候補パーズは、次いで、２３０において曖昧な代替え物を除去するように処理され、関連性によってフィルタリング及び分類され２３２、そして返送される。
【０１５５】
自然言語処理全体にわたり、コンテクスト情報１０００は、仮説スペースを減少しそして考えられるパーズを制限するために適用することができる。例えば、言語インタープリター２７７０が２つの候補“call her”及び“call Herb”を受け取る場合に、言語インタープリター２７７０は、ワード“call”、“her”及び“Herb”のためのバインディング２１２を見出す。アプリケーションコンテクスト１０６０は、“call”に対して考えられるワードの意味を、“phone call”を意味するように制限するのに使用される。又、コンテクストは、“her”及び“Herb”の参照先を見出すのにも使用される。“her”については、コンテクストソース１０００は、コール可能なエンティティのソースについてサーチされる。この例では、テキストメッセージング会話に対する当事者は、コール可能なエンティティであり、そしてこの情報は、テキストメッセージングアプリケーションから到来するコンテクストの一部分である。“Herb”の場合には、ユーザのアドレス帳は、他のパーソナルデータ、例えば、アプリケーション好み（ドメインエンティティデータベース２７７２からの気に入った番号のような）及びアプリケーション使用履歴（ドメインエンティティデータベース２７７２からの最近の電話コールのような）のような、コンテクストを明瞭化するソースである。現在テキストメッセージング当事者がRebeccaRichardsであり、そしてユーザのアドレス帳にHerbGowenがある例では、言語インタープリター２７７０により生成される２つのパーズが“PhoneCall(RebeccaRichards)”及び“PhoneCall(HerbGowen)”を表わすセマンティック構造となる。
【０１５６】
アプリケーション好み及び使用履歴１０７２、ダイアログ履歴及びアシスタントメモリ１０５２、及び／又はパーソナルデータベース１０５８からのデータも、候補シンタクティックパーズ２１２を発生する際に、言語インタープリター２７７０により使用することができる。そのようなデータは、例えば、短期及び長期メモリ２７５２、２７５４から得ることができる。このように、同じセッションにおいて以前に与えられた入力、及び／又はユーザに関する既知の情報は、性能を改善し、曖昧さを減少し、そして相互作用の会話性を強化するのに使用できる。アクティブなオントロジー１０５０、ドメインモデル２７５６、及びタスクフローモデル２７８６からのデータは、有効な候補シンタクティックパーズ２１２を決定する上で証拠推理を実施するのにも使用される。
【０１５７】
セマンティックマッチング２２０において、言語インタープリター２７７０は、あり得るパーズ結果の組み合わせを、それらがドメインモデル及びデータベースのようなセマンティックモデルにどれほど良好に適合するかに基づいて考慮する。セマンティックマッチング２２０は、例えば、アクティブなオントロジー１０５０、短期パーソナルメモリ２７５２、及び長期パーソナルメモリ２７５４からのデータを使用する。例えば、セマンティックマッチング２２０は、（ダイアログ履歴及びアシスタントメモリ１０５２からの）ダイアログにおける開催地又はローカルイベント、又は（アプリケーション好み及び使用履歴１０７２からの）個人的に好きな開催地への以前の参照からのデータを使用する。又、セマンティックマッチング２２０のステップは、コンテクスト１０００を使用して、フレーズをドメイン意図構造へと解釈する。候補又は潜在的セマンティックパーズ結果のセットが発生される２２２。
【０１５８】
明瞭化ステップ２３０において、言語インタープリター２７７０は、候補セマンティックパーズ結果２２２の証拠強度を重み付けする。明瞭化２３０は、ありそうもない又は冗長な代替え物を排除することにより候補セマンティックパーズ２２２の数を減少することを含む。明瞭化２３０は、例えば、アクティブなオントロジー１０５０の構造からのデータを使用する。少なくとも１つの実施形態では、アクティブなオントロジーにおけるノード間の接続は、候補セマンティックパーズ結果２２２の中で明瞭化を行うための証拠サポートを与える。一実施形態において、コンテクスト１０００は、そのような明瞭化を支援するために使用される。そのような明瞭化は、例えば、同じ名前をもつ多数の人々の１つを決定し、「応答」（ｅ−メール又はテキストメッセージ）のような、コマンドに対する参照先(referent)を決定し、代名詞の参照外し(dereferencing)を行い、等々を含む。
【０１５９】
例えば、“call Herb”のような入力は、潜在的に、“Herb”に一致するエンティティを参照する。このようなエンティティは、ユーザのアドレス帳（パーソナルデータベース１０５８）だけでなく、パーソナルデータベース１０５８及び／又はドメインエンティティデータベース２７７２からの会社名のデータベースにも多数ある。多数のコンテクストソースは、“Herb”に一致するセットを制限し、及び／又はステップ２３２においてそれらをランク付け及びフィルタリングする。例えば、
●他の「アプリケーション好み及び使用履歴」１０７２、例えば、お気に入りの電話番号リストにあるか、又は最近コールされたか、或いはテキストメッセージ会話又はｅ−メールスレッドに対する最近の当事者であるHerb；
●パーソナルデータベース１０５８に言及されたHerb、例えば、父又は兄弟のような親族の名前であるか、又は最近のカレンダー行事にリストされた参加者であるHerb。タスクが電話コールではなくメディアの再生である場合には、メディアタイトル、制作者、等からの名前が制約ソースとなる。
●要求又は結果におけるダイアログの最近のプライ。例えば、図２５Ａないし２５Ｂを参照して上述したように、Johnからのｅ−メールをサーチした後、サーチ結果がダイアログコンテクストにまだある状態で、ユーザは、応答を構成することができる。アシスタント１００２は、ダイアログコンテクストを使用して、特定のアプリケーションドメインオブジェクトコンテクストを識別することができる。
【０１６０】
又、コンテクスト１０００は、適切な名前ではなくワードの曖昧さを減少する上で助けとなることもできる。例えば、ｅ−メールアプリケーションのユーザがアシスタント１００２に「応答」（図２０に示すように）するよう告げる場合には、アプリケーションのコンテクストは、ワードがＴｅｘｔＭｅｓｓａｇｉｎｇＲｅｐｌｙではなくＥｍａｉｌＲｅｐｌｙに関連付けされねばならないことを決定する上で助けとなる。
【０１６１】
ステップ２３２において、言語インタープリター２７７０は、最上位のセマンティックパーズをユーザ意図の表現２９０としてフィルタリングし分類する２３２。コンテクスト１０００は、そのようなフィルタリング及び分類２３２を通知するのに使用される。その結果が、ユーザ意図の表現２９０である。
【０１６２】
タスクフロー処理におけるコンテクストの使用
図５は、一実施形態により、ダイアログフロープロセッサ２７８０で遂行されるタスクフロー処理にコンテクストを使用する方法を示すフローチャートである。このタスクフロー処理において、図４の方法から発生された候補パーズが、実行可能な運営上のタスク説明を発生するようにランク付けされインスタンス生成される。
【０１６３】
この方法は、３００で始まる。ユーザ意図の複数の候補表現２９０が受け取られる。図４を参照して述べたように、一実施形態において、ユーザ意図の表現２９０は、セマンティックパーズのセットを含む。
【０１６４】
ステップ３１２において、ダイアログフロープロセッサ２７８０は、他の情報と共にセマンティックパーズの好ましい解釈を決定し、遂行すべきタスク、及びそのパラメータをユーザ意図の決定に基づいて決定する。情報は、例えば、ドメインモデル２７５６、タスクフローモデル２７８６、及び／又はダイアログフローモデル２７８７、又はその組み合わせから得られる。例えば、タスクは、PhoneCallであり、そしてタスクパラメータは、コールすべきPhoneNumberである。
【０１６５】
一実施形態において、コンテクスト１０００は、ステップ３１２を遂行するのに使用され、デフォールト値を推測しそして曖昧さを解明することでパラメータのバインディングをガイドする３１２。例えば、コンテクスト１０００は、タスク説明のインスタンス生成をガイドし、そしてユーザの意図の最良の解釈があるかどうか決定する。
【０１６６】
例えば、意図入力２９０は、“PhoneCall(RebeccaRichards)”及び“PhoneCall(HerbGowen”である。PhoneCallタスクは、パラメータPhoneNumberを要求する。コンテクスト１００の多数のソースを適用して、Rebecca及びHerbのどの電話番号が機能するか決定することができる。この例では、連絡先データベースにおけるRebeccaのアドレス帳エントリーは、２つの電話番号を有し、そしてHerbのエントリーは、電話番号をもたないが、１つのｅ−メールアドレスを有する。連絡先データベースのようなパーソナルデータベース１０５８からのコンテクスト情報１０００を使用すると、バーチャルアシスタント１００２は、HerbよりRebeccaを好む。というのは、Rebeccaの電話番号はあるが、Herbはないからである。Rebeccaについてどちらの電話番号を使用するか決定するため、アプリケーションコンテクスト１０６０を調査して、Rebeccaとのテキストメッセージング会話を搬送するために使用される番号を選択することができる。従って、バーチャルアシスタント１００２は、Rebecca Richardsとのテキストメッセージング会話のコンテクストにおける“call her”は、テキストメッセージングのためにRebeccaが使用する移動電話へ電話コールを行うことを意味すると決定することができる。この特定の情報は、ステップ３９０において返送される。
【０１６７】
コンテクスト１０００は、電話番号の曖昧さを減少する以外にも使用することができる。タスクパラメータに対して複数の値があり得るときには、そのパラメータの値を有するコンテクスト１０００のソースが利用できる限り、これを使用することができる。コンテクスト１０００が曖昧さを減少できる（そしてユーザに候補の選択を促す必要性を回避できる）他の例は、ｅ−メールアドレス、物理的アドレス、時期及び日付、場所、リスト名、メディアタイトル、アーチスト名、会社名、又は他の値のスペースを含むが、これに限定されない。
【０１６８】
又、タスクフロー処理３００に要求される他の種類の推測もコンテクスト１０００から得られる。例えば、デフォールト値の推測は、現在位置、時間及び他の現在値を使用することができる。デフォールト値の推測は、ユーザの要求に暗示されるタスクパラメータの値を決定するのに有用である。例えば、誰かが“what is the weather like?（天気はどうか）”と言う場合に、この周囲の現在の天気はどうかを暗示的に意味している。
【０１６９】
ステップ３１０において、ダイアログフロープロセッサ２７８０は、ユーザ意図のこの解釈がそれを進めるに充分なほど強力にサポートされるかどうか、及び／又は別の曖昧なパーズより良好にサポートされるかどうか、決定する。競合する曖昧さ又は著しい不確実性がある場合には、ステップ３２２を遂行し、実行段階でダイアログがユーザから更なる情報を促す出力を生じさせるようにダイアログフローステップをセットする。曖昧さを解明するようにユーザを促すスクリーンショットの一例が図１４に示されている。コンテクスト１０００は、ステップ３２２において、ユーザが選択するための候補アイテムの表示メニューを分類し及び注釈付けするのに使用される。
【０１７０】
ステップ３２０において、タスクフローモデルを調査して、適当な次のステップを決定する。情報は、例えば、ドメインモデル２７５６、タスクフローモデル２７８６、及び／又はダイアログフローモデル２７８７、或いはその組み合わせから得られる。
【０１７１】
ステップ３２０又はステップ３２２の結果は、ダイアログフロープロセッサ２７８０及びサービスオーケストレーション２７８２が適当なサービスに対して発送するのに充分なタスクパラメータを含むユーザ要求の表現３９０である。
【０１７２】
ダイアログ発生を改善するためのコンテクストの使用
ダイアログ応答発生５００の間に、アシスタント１００２は、ユーザの意図の理解及びそれがタスクにおいてどのように運営されるか言い換えることができる。そのような出力は、例えば、“OK, I’ll call Rebecca on her mobile…”である。これは、アシスタント１００２がコール発信のような関連タスク自動化を遂行するのをユーザが許可できるようにする。ダイアログ発生ステップ５００において、アシスタント１００２は、ユーザの意図の理解を言い換える上で、どれほどの詳細をユーザに返送するか決定する。
【０１７３】
一実施形態において、コンテクスト１０００は、ダイアログにおける適当な詳細レベルの選択をガイドし、且つ（情報の繰り返しを回避するため）以前の出力に基づきフィルタリングするのにも使用される。例えば、アシスタント１００２は、個人及び電話番号がコンテクスト１０００から推測されたという知識を使用して、名前及び電話番号を言及すべきかどうか及びどんな詳細レベルか決定することができる。適用できるルールは、例えば、次のものを含むが、これに限定されない。
●代名詞がコンテクストにより解明されるとき、名前でコールすべき個人を言及する。
●個人がテキストメッセージのような馴染み易いコンテクストから推測されるときは、ファーストネームだけを使用する。
●電話番号がアプリケーション又はパーソナルデータコンテクストから推測されるときには、ダイヤルすべき実際の番号ではなく「移動電話」のような電話番号の象徴的名前を使用する。
【０１７４】
適当な詳細レベルをガイドするのに加えて、コンテクスト１０００は、例えば、ダイアログ発生ステップ５００において、以前の発生をフィルタリングして繰り返しを回避し、そして会話において以前に述べたエンティティを参照するのにも使用される。
【０１７５】
当業者であれば、コンテクスト１０００を他の仕方でも使用できることが明らかであろう。例えば、ここに述べる技術に関連して、コンテクスト１０００は、全開示を参考としてここに援用する２００９年６月５日に出願された“Contextual Voice Commands”と題する関連米国実用特許出願第１２／４７９，４７７号、代理人整理番号Ｐ７３９３ＵＳ１、に説明されたメカニズムに基づいて使用することができる。
【０１７６】
コンテクスト収集及び通信メカニズム
種々の実施形態において、バーチャルアシスタント１００２においてコンテクスト情報を収集しそして通信するために異なるメカニズムが使用される。例えば、バーチャルアシスタント１００２がクライアント／サーバー環境において具現化されて、そのサービスがクライアントとサーバーとの間に分散されるような１つの実施形態において、コンテクスト１０００のソースも分散される。
【０１７７】
図６を参照すれば、一実施形態により、クライアント１３０４とサーバー１３４０との間にコンテクスト１０００のソースを分布する一例が示されている。移動コンピューティング装置又は他の装置であるクライアント装置１３０４は、装置センサデータ１０５６、現在アプリケーションコンテクスト１０６０、イベントコンテクスト２７０６、等、コンテクスト情報１０００のソースである。コンテクスト１０００の他のソースを、クライアント１３０４又はサーバー１３４０或いはその両方の何らかの組み合わせに対して分散させることができる。例えば、アプリケーション好み及び使用履歴１０７２ｃ、１０７２ｓ；ダイアログ履歴及びアシスタントメモリ１０５２ｃ、１０５２ｓ；パーソナルデータベース１０５８ｃ、１０５８ｓ；及びパーソナル音響コンテクストデータ１０８０ｃ、１０８０ｓが含まれる。これらの各例において、コンテクスト１０００のソースは、サーバー１３４０、クライアント１３０４、又はその両方に存在する。更に、上述したように、図２に示す種々のステップは、クライアント１３０４又はサーバー１３４０或いはその両方の組み合わせによって遂行することができる。
【０１７８】
一実施形態において、コンテクスト１０００は、クライアント１３０４及びサーバー１３４０のような分散されたコンポーネント間で通信することができる。このような通信は、ローカルＡＰＩを経て又は分散型ネットワークを経て或いは他の何らかの手段により行われる。
【０１７９】
図７ａないし７ｄは、種々の実施形態によりコンテクスト情報１０００を得て整合するためのメカニズムの例を示すイベント図である。必要なとき又は有用なときバーチャルアシスタント１００２に利用できるようにコンテクストをロードし又は通信するための種々の技術が存在する。これらのメカニズムの各々を、バーチャルアシスタント１００２のオペレーションに関して配することのできる４つのイベント、即ち装置又はアプリケーション初期化６０１；初期ユーザ入力６０２；初期入力処理６０３；及びコンテクスト依存処理６０４に関して説明する。
【０１８０】
図７ａは、ユーザ入力が開始すると６０２、「プル」メカニズムを使用してコンテクスト情報１０００がロードされる解答を示している。ユーザがバーチャルアシスタント１００２を呼び出しそして少なくとも幾つかの入力を与えると６０２、バーチャルアシスタント１００２は、コンテクスト１０００をロードする６１０。このロード動作６１０は、適当なソースからコンテクスト情報１０００を要求し又は検索することにより行うことができる。入力処理６０３は、コンテクスト１０００がロードされると６１０、スタートする。
【０１８１】
図７ｂは、装置又はアプリケーションが初期化されたときに６０１、あるコンテクスト情報１０００がロードされ６２０、即ちユーザ入力が始まると６０２、プルメカニズムを使用して、付加的なコンテクスト情報１０００がロードされるという解答を示す。一実施形態において、初期化時にロードされた６２０コンテクスト情報１０００は、スタティックコンテクスト（即ち、頻繁に変化しないコンテクスト）を含み、ユーザ入力がスタートするとき６０２ロードされた６２１コンテクスト情報１０００は、ダイナミックコンテクスト（即ち、スタティックコンテクストがロードされて６２０以来変化するコンテクスト）を含む。このような解答は、システムのランタイム性能からスタティックコンテクスト情報１０００をロードするコストを除去することで性能を改善することができる。
【０１８２】
図７ｃは、図７ｂの解答の変形を示す。この例において、ダイナミックコンテクスト情報１０００は、入力処理が開始した６０３後にロード６２１を続けることが許される。従って、ロード６２１は、入力処理と並列に行うことができる。バーチャルアシスタント１００２の手順は、処理が受け取られたコンテクスト情報１０００に依存するときにステップ６０４において阻止されるだけである。
【０１８３】
図７ｄは、５つまでの異なる方法のいずれかでコンテクストを取り扱う完全に構成可能な態様を示している。
●スタティックコンテクスト情報１０００は、コンテクストソースから、バーチャルアシスタント１００２を実行する環境又は装置へと一方向に同期される６４０。コンテクストソースにおいてデータが変化するときに、その変化がバーチャルアシスタント１００２へプッシュされる。例えば、アドレス帳は、それが最初に生成され又はイネーブルされるときにバーチャルアシスタント１００２に同期される。アドレス帳が変更されるときに、その変化が、直ちに又はバッチ式にバーチャルアシスタント１００２にプッシュされる。図７ｄに示したように、そのような同期６４０は、ユーザ入力が開始する６０２前を含めて、いつでも行うことができる。
●一実施形態において、ユーザ入力がスタートすると６０２、スタティックコンテクストソースは、同期状態についてチェックすることができる。必要に応じて、残りのスタティックコンテクスト情報１０００を同期させるプロセスが始まる６４１。
●ユーザ入力がスタートすると６０２、あるダイナミックコンテクスト１０００が、６１０及び６２１と同様に、ロードされる６４２。コンテクスト１０００を消費する手順は、それが必要とするまだ未ロードのコンテクスト情報１０００を待機するためにだけ阻止される。
●他のコンテクスト情報１０００は、プロセスにより、それが必要とするときに、オンデマンドでロードされる６４３。
●イベントコンテクスト２７０６は、イベントが生じるとき、ソースから、バーチャルアシスタント１００２を実行する装置へ送られる６４４。イベントコンテクスト２７０６を消費するプロセスは、イベントのキャッシュが準備できることだけ待機し、その後、いつでも阻止せずに進行することができる。このようにロードされるイベントコンテクスト２７０６は、次のいずれかを含む。
●ユーザ入力がスタートする６０２前にロードされるイベントコンテクスト２７０６、例えば、未読メッセージ通知。そのような情報は、例えば、同期されたキャッシュを使用して維持することができる。
●ユーザ入力がスタートする６０２のと同時に又はその後にロードされるイベントコンテクスト２７０６。例えば、ユーザがバーチャルアシスタント１００２と対話する間に、テキストメッセージが到着し、このイベントをアシスタント１００２に通知するイベントコンテクストは、アシスタント１００２の処理と並列にプッシュすることができる。
【０１８４】
一実施形態において、コンテクスト情報１０００を得て整合する柔軟性は、コンテクスト情報１０００の各ソースに対して、通信ポリシーと、要求ごとに情報を利用できるようにする値に対して通信のコストをバランスするアクセスＡＰＩとを規定することにより、達成される。例えば、各スピーチ対テキスト要求に関連した変数、例えば、パーソナル音響コンテクストデータ１０８０、又はマイクロホンのパラメータを記述する装置センサデータ１０５０は、要求ごとにロードすることができる。そのような通信ポリシーは、例えば、コンフィギュレーションテーブルにおいて指定することができる。
【０１８５】
図９は、一実施形態によりコンテクスト情報１０００の種々のソースに対して通信及びキャッシュポリシーを指定するのに使用できるコンフィギュレーションテーブル９００の一例を示す。ユーザ名、アドレス帳名、アドレス帳番号、ＳＭＳイベントコンテクスト、及びカレンダーデータベースを含む多数の異なるコンテクストソースの各々について、図２の各ステップ、即ちスピーチ入力引き出し及び解釈１００、自然言語解釈２００、タスク識別３００、及びダイアログ応答発生５００に対して、特定形式のコンテクストローディングが指定される。テーブル９００の各エントリーは、次のうちの１つを指示する。
●Ｓｙｎｃ：コンテクスト情報１０００は、装置において同期される；
●オンデマンド：コンテクスト情報１０００は、それに対するバーチャルアシスタント１００２の要求に応答して与えられる；
●プッシュ：コンテクスト情報１０００は、装置へプッシュされる。
【０１８６】
完全に構成可能な方法は、人間とマシンとの間の自然言語対話を合理化するのに潜在的な関連コンテクスト情報１０００の大きなスペースを利用できるようにする。全てのこの情報を常時ロードして非効率性を招くのではなく、ある情報は、コンテクストソース及びバーチャルアシスタント１００２の両方に維持される一方、他の情報は、オンデマンドで問合せされる。例えば、上述したように、スピーチ認識のようなリアルタイムオペレーションに使用される名前のような情報は、ローカルに維持される一方、ユーザのパーソナルカレンダーのような幾つかの考えられる要求のみにより使用される情報は、オンデマンドで問合わされる。到来するＳＭＳイベントのように、ユーザがアシスタントを呼び出すときに予想できないデータは、それらが生じたときにプッシュされる。
【０１８７】
図１０は、一実施形態によりアシスタント１００２がユーザとのダイアログにある対話シーケンスの処理中に図９に構成されたコンテクスト情報ソースにアクセスする一例を示すイベント図９５０である。
【０１８８】
図１０に示すシーケンスは、次の対話シーケンスを表わす。
●Ｔ1：アシスタント1002:“Hello Steve, what I can I do for you?”
●Ｔ2：ユーザ：“When is my next meeting?”
●Ｔ3：アシスタント1002:“Your next meeting is at 1:00pm in the boardroom.”
●Ｔ4：［Sound of incoming SMS message］
●Ｔ5：ユーザ：“Read me that message.”
●Ｔ6：アシスタント1002:“Your message from Johnny says “How about lunch””
●Ｔ7：ユーザ：“Tell Johnny I can’t make it today.”
●Ｔ8：アシスタント1002：“OK, I’ll tell him.”
【０１８９】
時間Ｔ0において、対話が始まる前に、ユーザ名を同期し７７０、そしてアドレス帳名を同期する７７１。これらは、図７ｄの要素６４０に示されたように、初期化時にロードされるスタティックコンテクストの例である。これは、アシスタント１００２が自分のファーストネーム（“Steve”）でユーザを参照できるようにする。
【０１９０】
時間Ｔ1において、同期ステップ７７０及び７７１が完了する。時間Ｔ2において、ユーザは、要求を話し、これは、図２のステップ１００、２００及び３００に基づいて処理される。タスク識別ステップ３００において、バーチャルアシスタント１００２は、コンテクスト１０００のソースとしてユーザのパーソナルデータベース１０５８に問合せし７７４、より詳細には、バーチャルアシスタント１００２は、テーブル９００によりオンデマンドアクセスについて構成されたユーザのカレンダーデータベースから情報を要求する。時間Ｔ3において、ステップ５００が遂行され、ダイアログ応答が発生される。
【０１９１】
時間Ｔ4において、ＳＭＳメッセージを受け取り、これは、イベントコンテクスト２７０６の一例である。イベントの通知は、テーブル９００のコンフィギュレーションに基づいてバーチャルアシスタント１００２へプッシュされる７７３。
【０１９２】
時間Ｔ5において、ユーザは、バーチャルアシスタント１００２に、ＳＭＳメッセージを読むように求める。イベントコンテクスト２７０６の存在は、ステップ２００を遂行する上でＮＬＰコンポーネントをガイドし、“that message”を新たなＳＭＳメッセージとして解釈する。時間Ｔ6において、ステップ３００をタスクコンポーネントにより遂行して、ＡＰＩを呼び出し、ＳＭＳメッセージをユーザに読み取ることができる。時間Ｔ7において、ユーザは、曖昧な動詞（“tell”）及び名前（“Johnny”）で要求を形成する。ＮＬＰコンポーネントは、ステップ７７３で受け取られたイベントコンテクスト２７０６を含むコンテクスト１０００の種々のソースを使用してこれらの曖昧さを解明することで自然言語２００を解釈し、これは、ＮＬＰコンポーネントに、コマンドがJohnnyという名の個人からのＳＭＳメッセージを指していることを告げる。ステップＴ7において、受け取られたイベントコンテクストオブジェクトから使用すべき番号をルックアップすることにより名前をマッチングする７７１ことを含めてフローステップ４００を実行する。従って、アシスタント１００２は、新たなＳＭＳメッセージを構成して、それをJohnnyへ送信することができ、これは、ステップＴ8で確認される。
【０１９３】
本発明は、考えられる実施形態について特に詳細に説明した。当業者であれば、本発明は、他の実施形態でも具現化できることが明らかであろう。第１に、コンポーネントの特定の名前、用語の大文字使用、属性、データ構造、或いは他のプログラミング又は構造観点は、必須なことでも有意義なことでもなく、そして発明又はその特徴を具現化するメカニズムは、異なる名前、フォーマット又はプロトコルを有してもよい。更に、このシステムは、ここに述べたようにハードウェア及びソフトウェアの組み合わせを経て具現化されてもよいし、或いは全体的にハードウェア要素で又は全体的にソフトウェア要素で具現化されてもよい。又、ここに述べる種々のシステムコンポーネント間でのファンクションの特定の分配は、単なる例示に過ぎず、必須なものではなく、又、単一のシステムコンポーネントにより遂行されるファンクションは、複数のコンポーネントによって遂行されてもよく、そして複数のコンポーネントにより遂行されるファンクションは、単一のコンポーネントによって遂行されてもよい。
【０１９４】
種々の実施形態において、本発明は、上述した技術を単独で又は任意の組み合わせで遂行するためのシステム又は方法として具現化することができる。別の実施形態において、本発明は、コンピューティング装置又は他の電子装置のプロセッサに上述した技術を遂行させるために、非一時的コンピュータ読み取り可能な記憶媒体及びその媒体にエンコードされたコンピュータプログラムコードを備えたコンピュータプログラム製品として具現化することができる。
【０１９５】
明細書において「１つの実施形態」又は「一実施形態」と言及するときは、その実施形態に関連して述べた特定の特徴、構造又は特性が本発明の少なくとも１つの実施形態に含まれることを意味している。明細書の種々の場所で「一実施形態において」というフレーズが現れたときは、必ずしも全部が同じ実施形態を指すのではない。
【０１９６】
前記のある部分は、コンピューティング装置のメモリ内のデータビットでのオペレーションのアルゴリズム及び記号表現に関して表わされる。これらのアルゴリズム記述及び表現は、データ処理技術の当業者により、彼らの仕事の実体をその分野の他の当業者に最も効率的に伝えるために使用される手段である。アルゴリズムとは、ここでは、一般的に、望ましい結果を導く自己矛盾のないステップ（インストラクション）シーケンスであると考えられる。ステップは、物理量の物理的操作を要求するものである。通常、必ずしもそうでないが、これらの量は、記憶、転送、合成、比較、及びその他、操作することのできる電気的、磁気的又は光学的信号の形態をとる。時々、主として、共通使用の理由で、これらの信号は、ビット、値、エレメント、記号、キャラクタ、期間、数、等として参照するのが便利である。更に、時々、物理量の物理的操作を要求するステップの構成は、一般性を失うことのないモジュール又はコード装置として参照するのも便利である。
【０１９７】
しかしながら、これら及び同様の用語は、全て、適当な物理量に関連付けられ、そしてそれらの量に適用される便宜的表示に過ぎないことを銘記されたい。特に指示のない限り、以下の説明から明らかなように、この説明全体を通して、「処理」又は「コンピューティング」又は「計算」又は「表示」又は「決定」、等の用語を使用する説明は、コンピュータシステムのメモリ又はレジスタ、或いはそのような他の情報記憶、送信又は表示装置内で物理的（電子的）量として表されたデータを操作及び変換するコンピュータシステム又は同様の電子的コンピューティングモジュール及び／又は装置のアクション及びプロセスを参照するものである。
【０１９８】
本発明の幾つかの態様は、アルゴリズムの形態のここに述べるプロセスステップ及びインストラクションを含む。本発明のプロセスステップ及びインストラクションは、ソフトウェア、ファームウェア及び／又はハードウェアで実施することができ、ソフトウェアに埋め込まれたときには、種々のオペレーティングシステムにより使用される異なるプラットホームに常駐するようにダウンロードしてそこから動作できることに注意されたい。
【０１９９】
又、本発明は、ここに示すオペレーションを遂行するための装置にも関する。この装置は、要求される目的のために特に構成されてもよいし、又は記憶されたコンピュータプログラムにより選択的にアクチベートされ又は再構成される汎用コンピューティング装置を備えてもよい。そのようなコンピュータプログラムは、コンピュータ読み取り可能な記憶媒体、例えば、これに限定されないが、フロッピー（登録商標）ディスク、光学的ディスク、ＣＤ−ＲＯＭ、磁気−光学ディスクを含む任意の形式のディスク、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気又は光学カード、特定用途向け集積回路（ＡＳＩＣ）、或いはコンピュータシステムバスに各々結合されて電子的インストラクションを記憶するのに適した任意の形式の媒体に記憶される。更に、ここで参照されるコンピューティング装置は、単一プロセッサを含むものでもよいし、或いは計算能力を増強するためにマルチプロセッサ設計を使用するアーキテクチャーでもよい。
【０２００】
ここに述べるアルゴリズム及びディスプレイは、特定のコンピューティング装置、バーチャルシステム又は他の装置に固有に関係していない。種々の汎用システムを、ここに述べる技術に基づくプログラムと共に使用してもよいし、又は必要な方法オペレーションを遂行するように更に特殊な装置を構成するのが便利であると分かっている。種々のこれらシステムに要求される構造は、以上の説明から明らかとなろう。更に、本発明は、特定のプログラミング言語を参照して説明していない。上述した本発明の教示を具現化するのに種々のプログラミング言語を使用でき、又、特定の言語への前記言及は、本発明の実現可能な最良の態様を開示するためになされたことが明らかであろう。
【０２０１】
従って、種々の実施形態において、本発明は、コンピュータシステム、コンピューティング装置又は他の電子装置、或いはその複数の組み合わせをコントロールするためにソフトウェア、ハードウェア、及び／又は他の要素として具現化することができる。そのような電子装置は、例えば、プロセッサ、入力装置（例えば、キーボード、マウス、タッチパッド、トラックパッド、ジョイスティック、トラックボール、マイクロホン、及び／又はその組み合わせ）、出力装置（例えば、スクリーン、スピーカ、等）、メモリ、長期記憶装置（例えば、磁気記憶装置、光学的記憶装置、等）、及び／又はこの分野でよく知られた技術によるネットワーク接続性を含む。そのような電子装置は、ポータブルでも、非ポータブルでもよい。本発明を具現化するのに使用できる電子装置は、例えば、移動電話、パーソナルデジタルアシスタント、スマートホン、キオスク、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、消費者向け電子装置、消費者向け娯楽装置、音楽プレーヤ、カメラ、テレビジョン、セットトップボックス、電子ゲーム機、等を含む。本発明を具現化するための電子装置は、例えば、カリフォルニア州クパチーノのアップル社から入手できるｉＯＳ又はＭａｃＯＳのようなオペレーティングシステム、又は装置に使用される他のオペレーティングシステムを使用することができる。
【０２０２】
限定された数の実施形態について本発明を以上に説明したが、前記説明の利益を得る当業者であれば、ここに述べる本発明の範囲から逸脱せずに、他の実施形態も案出できることが明らかであろう。更に、本明細書で使用した言語は、主として、読み易さ及び説明の目的から選択されたもので、発明の要旨の範囲又は境界を定めるために選択されたものではない。従って、本発明の開示は、特許請求の範囲に述べた本発明の範囲を例示するもので、限定するものではない。
【符号の説明】
【０２０３】
６０：コンピューティング装置
６１：メモリ
６２：ＣＰＵ
６３：プロセッサ
６５：メモリ
６８：インターフェイス
１０００：コンテクスト
１００２：バーチャルアシスタント
１０５０：アクティブオントロジー
１０５２：ダイアログ履歴及びアシスタントメモリ
１０５６：装置センサデータ
１０５８：パーソナルデータベース
１０６０：現在アプリケーションコンテクスト
１０７２：アプリケーションの好み及び使用履歴
１０８０：パーソナル音響コンテクストデータ
１２０６：入力装置
１２０７：出力装置
１２０８：記憶装置
１２１０：メモリ
１３０４：クライアント
１３４０：サービス
１３６１：ネットワーク
１３６０：外部サービス
２７０４：ユーザ入力
２７０６：事象コンテクスト
２７０８：ユーザへの出力
２７１０：他のアクション
２７５２：短期パーソナルメモリ
２７５４：長期パーソナルメモリ
２７５６：ドメインモデル
２７５８：語彙
２７６０：言語パターンレコグナイザー
２７７０：言語インタープリター
２７７２：ドメインエンティティデータベース
２７８０：ダイアログフロープロセッサ
２７８２：サービスオーケストレーション
２７８４：サービス
２７８６：タスクフローモデル
２７８７：ダイアログフローモデル
２７８８：サービスモデル
２７９０：出力プロセッサ
２７９４：能動的入力引き出し
【図１】
2015122104.tif 000003
【図２】
2015122104.tif 000004
【図３】
2015122104.tif 000005
【図４】
2015122104.tif 000006
【図５】
2015122104.tif 000007
【図６】
2015122104.tif 000008
【図７】
2015122104.tif 000009
【図８ａ】
2015122104.tif 000010
【図８ｂ】
2015122104.tif 000011
【図８ｃ】
2015122104.tif 000012
【図８ｄ】
2015122104.tif 000013
【図９】
2015122104.tif 000014
【図１０】
2015122104.tif 000015
【図２７】
2015122104.tif 000016
【図２８】
2015122104.tif 000017
【図２９】
2015122104.tif 000018
【図３０】
2015122104.tif 000019
【図３１】
2015122104.tif 000020
【図３２】
2015122104.tif 000021
【図１１】
2015122104.tif 000022
【図１２】
2015122104.tif 000023
【図１３】
2015122104.tif 000024
【図１４】
2015122104.tif 000025
【図１５】
2015122104.tif 000026
【図１６】
2015122104.tif 000027
【図１７】
2015122104.tif 000028
【図１８】
2015122104.tif 000029
【図１９】
2015122104.tif 000030
【図２０】
2015122104.tif 000031
【図２１】
2015122104.tif 000032
【図２２】
2015122104.tif 000033
【図２３】
2015122104.tif 000034
【図２４】
2015122104.tif 000035
【図２５Ａ】
2015122104.tif 000036
【図２５Ｂ】
2015122104.tif 000037
【図２６Ａ】
2015122104.tif 000038
【図２６Ｂ】
2015122104.tif 000039
【手続補正書】
【提出日】平成27年4月21日(2015.4.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサを有するコンピューティング装置でタスクを遂行するためにユーザ入力を解釈するコンピュータプログラムにおいて、前記コンピュータプログラムは、少なくとも１つのプロセッサが、
出力装置がユーザに入力を促すようにさせ、
入力装置を経てユーザ入力を受け取り、
コンテクストソースからコンテクスト情報を受け取り、
前記受け取ったユーザ入力及び前記受け取ったコンテクスト情報を解釈して、ユーザの意図の表現を導出し、
少なくとも１つのタスク及び該タスクに対する少なくとも１つのパラメータを、前記ユーザの意図の導出された表現の少なくとも一部分に基づいて識別し、
前記少なくとも１つのパラメータを使用して前記少なくとも１つのタスクを実行して、結果を導出し、
前記導出された結果に基づいてダイアログ応答を発生し、
前記出力装置が前記発生されたダイアログ応答を出力するようにさせる、
という方法を遂行するようにさせるよう構成された、コンピュータプログラム。
【請求項２】
前記コンテクスト情報は、イベントを記述するデータを含む、請求項１に記載のコンピュータプログラム。
【請求項３】
前記コンテクスト情報は、ユーザに関する既知の情報を含む、請求項１に記載のコンピュータプログラム。
【請求項４】
前記コンテクスト情報は、アプリケーションコンテクストを含む、請求項１に記載のコンピュータプログラム。
【請求項５】
前記コンテクスト情報は、ユーザに関連したパーソナルデータを含む、請求項１に記載のコンピュータプログラム。
【請求項６】
前記コンテクスト情報は、ユーザに関連したデータベースからのデータを含む、請求項１に記載のコンピュータプログラム。
【請求項７】
前記コンテクスト情報は、少なくとも１つのセンサから受け取ったデータを含む、請求項１に記載のコンピュータプログラム。
【請求項８】
前記コンテクスト情報は、アプリケーションの好みを含む、請求項１に記載のコンピュータプログラム。
【請求項９】
前記コンテクスト情報は、イベントを記述するデータを含む、請求項１に記載のコンピュータプログラム。
【請求項１０】
前記コンテクスト情報は、位置を含む、請求項１に記載のコンピュータプログラム。
【請求項１１】
前記コンテクスト情報は、環境条件を含む、請求項１に記載のコンピュータプログラム。
【請求項１２】
タスクを遂行するためにユーザ入力を解釈するシステムにおいて、
ユーザに入力を促すように構成された出力装置と、
ユーザの口頭入力を受け取るように構成された入力装置と、
前記出力装置及び入力装置に通信結合された少なくとも１つのプロセッサであって、
コンテクストソースからコンテクスト情報を受け取り、
前記受け取ったユーザ口頭入力及び前記コンテクスト情報を解釈して、ユーザの意図の表現を導出し、
少なくとも１つのタスク及び該タスクに対する少なくとも１つのパラメータを、前記ユーザの意図の導出された表現の少なくとも一部分に基づいて識別し、
前記少なくとも１つのパラメータを使用して前記少なくとも１つのタスクを実行して、結果を導出し、
前記導出された結果に基づいてダイアログ応答を発生する、
というステップを遂行するように構成された少なくとも１つのプロセッサと、
を備え、
前記出力装置は、更に、前記発生されたダイアログ応答を出力するように構成される、システム。
【請求項１３】
前記コンテクスト情報は、イベントを記述するデータを含む、請求項１２に記載のシステム。
【請求項１４】
前記コンテクスト情報は、ユーザに関する既知の情報を含む、請求項１２に記載のシステム。
【請求項１５】
前記コンテクスト情報は、アプリケーションコンテクストを含む、請求項１２に記載のシステム。
【請求項１６】
前記コンテクスト情報は、ユーザに関連したパーソナルデータを含む、請求項１２に記載のシステム。
【請求項１７】
前記コンテクスト情報は、ユーザに関連したデータベースからのデータを含む、請求項１２に記載のシステム。
【請求項１８】
前記コンテクスト情報は、少なくとも１つのセンサから受け取ったデータを含む、請求項１２に記載のシステム。
【請求項１９】
前記コンテクスト情報は、アプリケーションの好みを含む、請求項１２に記載のシステム。
【請求項２０】
前記コンテクスト情報は、イベントを記述するデータを含む、請求項１２に記載のシステム。
【請求項２１】
前記コンテクスト情報は、位置を記述するデータを含む、請求項１２に記載のシステム。
【請求項２２】
前記出力装置は、会話インターフェイスを経てユーザを促すように構成され、
前記入力装置は、前記会話インターフェイスを経て前記ユーザ口頭入力を受け取るように構成され、
前記少なくとも１つのプロセッサは、前記ユーザ口頭入力をテキスト表現へ変換するように構成される、請求項１２に記載のシステム。
【請求項２３】
前記少なくとも１つのプロセッサは、
前記ユーザ口頭入力の複数の候補テキスト解釈を発生し、
前記発生された候補テキスト解釈の少なくともサブセットをランク付けする、
ことにより、前記ユーザ口頭入力をテキスト表現へ変換するように構成され、
前記発生及びランク付けステップの少なくとも１つは、前記受け取ったコンテクスト情報を使用して遂行される、請求項２２に記載のシステム。
【請求項２４】
前記受け取ったコンテクスト情報は、
サーバーに記憶されたコンテクスト情報、及び
クライアントに記憶されたコンテクスト情報、
より成るグループから選択された少なくとも１つを含む、請求項１２に記載のシステム。
【請求項２５】
前記少なくとも１つのプロセッサは、
初期化ステップの一部分としてスタティックなコンテクスト情報を受け取り、
ユーザ入力を受け取った後に付加的なコンテクスト情報を受け取る、
ことによりコンテクストソースからコンテクスト情報を受け取るように構成される、請求項１２に記載のシステム。
【請求項２６】
前記出力装置、入力装置、及び少なくとも１つのプロセッサは、
電話、
スマートホン、
タブレットコンピュータ、
ラップトップコンピュータ、
パーソナルデジタルアシスタント、
デスクトップコンピュータ、
キオスク、
消費者向け電子装置、
消費者向け娯楽装置、
音楽プレーヤ、
カメラ、
テレビジョン、
電子ゲーム機、及び
セットトップボックス、
より成るグループから選択された少なくとも１つのコンポーネントとして具現化される、請求項１２に記載のシステム。