(57)【要約】  情報を受信するエンドポイントデバイスの機能に少なくとも部分的に応じて、最適表示のために情報をフォーマットすることができる対話型エージェント、すなわちボットが開示される。このボットは、ユーザエンドポイントデバイスとボットとの間のネットワーク通信のプロトコルを提供するＩＭアプリケーションインターフェースの一部として動作することができる。【選択図】  図１
2009505284.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク接続上のデバイスへの提示用にコンテンツをフォーマットする方法であって、
（ａ）前記デバイスの機能を少なくとも部分的に判断するステップと、
（ｂ）ボットを介して前記デバイスへコンテンツを送信するステップであって、該コンテンツは、前記デバイスの機能を少なくとも部分的に判断するステップ（ａ）に少なくとも部分的に基づいてフォーマットされる、ステップと
を含む、方法。
【請求項２】
請求項１に記載の方法であって、前記デバイスの機能を少なくとも部分的に判断するステップ（ａ）は、該デバイスについてのメタデータを受信するステップを含む、方法。
【請求項３】
請求項１に記載の方法であって、前記デバイスの機能を少なくとも部分的に判断するステップ（ａ）は、該デバイス、及び、該デバイス上で実行されているクライアントアプリケーションプログラムの少なくとも一方についてのメタデータを受信するステップを含む、方法。
【請求項４】
請求項１に記載の方法であって、前記デバイスの機能を少なくとも部分的に判断するステップ（ａ）は、該デバイス上で実行されているクライアントのクライアントプロトコル、該クライアントの能力、前記デバイスのタイプ、該デバイスのロケーション、該デバイスのブランド、及び該デバイスのバージョンの少なくとも１つに基づいて前記機能を求めるステップを含む、方法。
【請求項５】
請求項１に記載の方法であって、前記デバイスへ送信されるコンテンツの前記フォーマット用のユーザ嗜好の有無（existence）を判断するステップをさらに含み、前記ステップ（ｂ）で送信される前記コンテンツは、該コンテンツの前記フォーマット用のユーザ嗜好の有無に少なくとも部分的に基づいてさらにフォーマットされる、方法。
【請求項６】
請求項１に記載の方法であって、前記デバイスが自然言語のフレーズを表示できるコンピュータであり、キーボードを介して返答することができると前記ステップ（ａ）が判断した場合に、前記ステップ（ｂ）は、前記ユーザとの自然言語会話で前記コンテンツを前記デバイスに提示するステップを含む、方法。
【請求項７】
請求項６に記載の方法であって、前記デバイスがグラフィカル画像を表示することができると前記ステップ（ａ）が判断した場合に、前記ステップ（ｂ）は、グラフィカル画像と共に前記コンテンツを前記デバイスに提示するステップを含む、方法。
【請求項８】
請求項６に記載の方法であって、前記デバイスがグラフィカルビデオを表示することができると前記ステップ（ａ）が判断した場合に、前記ステップ（ｂ）は、ビデオと共に前記コンテンツを前記デバイスに提示するステップを含む、方法。
【請求項９】
請求項１に記載の方法であって、前記デバイスがハンドヘルド移動デバイスであると前記ステップ（ａ）が判断した場合に、前記ステップ（ｂ）は、メニュー駆動型フォーマットで前記コンテンツを前記デバイスに提示するステップを含む、方法。
【請求項１０】
請求項１に記載の方法であって、前記デバイスがハンドヘルド移動デバイスであると前記ステップ（ａ）が判断した場合に、前記ステップ（ｂ）は、ハイパーリンク駆動型フォーマットで前記コンテンツを前記デバイスに提示するステップを含む、方法。
【請求項１１】
請求項１に記載の方法であって、前記デバイスがテキストをサポートしていないと前記ステップ（ａ）が判断した場合に、前記ステップ（ｂ）は、オーディオフォーマットで前記コンテンツを前記デバイスに提示するステップを含む、方法。
【請求項１２】
インスタントメッセージングネットワーク接続上及びＶｏＩＰネットワーク接続上の少なくとも一方のデバイスへの提示用にコンテンツをフォーマットする方法であって、
（ａ）前記デバイス、該デバイス上で実行されているクライアントアプリケーションプログラム、及び該デバイスのユーザの個人的嗜好の少なくとも１つに関する情報を受信するステップと、
（ｂ）前記インスタントメッセージングネットワーク接続上及び前記ＶｏＩＰネットワーク接続上の少なくとも一方の前記デバイスに提示される前記コンテンツのフォーマットを、ボットを介して決定するステップであって、該フォーマットは、前記デバイス、該デバイス上で実行されているクライアントアプリケーションプログラム、及び該デバイスのユーザの個人的嗜好の少なくとも１つに関する情報を受信する前記ステップ（ａ）に少なくとも部分的に基づいている、ステップと
を含む、方法。
【請求項１３】
請求項１２に記載の方法であって、前記ステップ（ａ）及び前記ステップ（ｂ）は、前記ボットの少なくとも一部として含まれるエンドポイントフォーマットエンジン（endpoint formatting engine）によって実行される、方法。
【請求項１４】
請求項１２に記載の方法であって、前記デバイス、該デバイス上で実行されているクライアントアプリケーションプログラム、及び該デバイスのユーザの個人的嗜好の少なくとも１つに関する情報を受信するステップ（ａ）は、前記デバイス上で実行されているクライアントのクライアントプロトコル、該クライアントの能力、前記デバイスのタイプ、該デバイスのロケーション、該デバイスのブランド、及び該デバイスのバージョンの少なくとも１つに関するメタデータを受信するステップを含む、方法。
【請求項１５】
ネットワーク接続上のデバイスへ送信されるコンテンツをフォーマットすることができるボットであって、
前記デバイスの機能に関するメタデータを受信することができ、且つ、該デバイスの前記機能に少なくとも部分的に基づいて、該デバイスへ送信される前記コンテンツをフォーマットすることができる、フォーマットエンジン
を備える、ボット。
【請求項１６】
請求項１５に記載のボットであって、前記ボットは、該ボットと前記デバイスのユーザとの間のインスタントメッセージングをサポートするメッセンジャアプリケーションインターフェースの一部を形成する、ボット。
【請求項１７】
請求項１５に記載のボットであって、前記フォーマットエンジンは、前記デバイスが、自然言語のフレーズを表示することができるコンピュータであり、且つ、キーボードを介して返答することができると判断した場合に、自然言語会話フォーマットで前記コンテンツを前記デバイスに提示することがさらにできる、ボット。
【請求項１８】
請求項１５に記載のボットであって、前記フォーマットエンジンは、前記デバイスが、ハンドヘルド移動デバイスであると判断した場合に、メニュー駆動型フォーマット又はハイパーリンク駆動型フォーマットの一方で前記コンテンツを前記デバイスに提示することがさらにできる、ボット。
【請求項１９】
請求項１５に記載のボットであって、前記フォーマットエンジンは、前記デバイスが、テキストをサポートしていないと判断した場合に、オーディオフォーマットで前記コンテンツを該デバイスに提示することがさらにできる、ボット。
【請求項２０】
請求項１５に記載のボットであって、前記フォーマットエンジンは、前記コンテンツが前記デバイス上でどのように提示されるかに関して、該デバイスの前記ユーザによる個人的嗜好の有無に関する情報を受信することがさらにできる、ボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本システム（本発明）は、エンドポイントデバイス上での情報の提示を最適化するために、仮想ロボットにより提示される情報を、エンドポイントデバイスプロパティに基づいてフォーマットするための方法を対象とする。
【背景技術】
【０００２】
インスタントメッセージング（「ＩＭ」）は、ユーザがプレゼンスベースネットワーク（presence based network）上でリアルタイムに互いに通信するための、最も普及するとともに未だ発展途上にあるシステムの１つである。プレゼンス技術によって、コンピューティングデバイスがどこに存在していても、ネットワークに接続されてリアルタイムに通信を受け答えするのに利用可能であると、そのコンピューティングデバイスを突き止めて識別することが可能になる。通常、ＩＭ通信は、各ユーザのコンピューティングデバイス上にインストールされたＩＭクライアントアプリケーションを使用することによって行われる。各ユーザのコンピューティングデバイスは、コンピュータ、携帯電話、携帯情報端末（「ＰＤＡ」）、又は他のネットワークデバイスとすることができる。一般に、各ユーザは、識別名を作成し、その名前をインスタントメッセージングシステムにサブミットする。インスタントメッセージングシステムは、データベースに名前を記憶し、ユーザのプレゼンスをそのＩＤに関連付ける。特定の個人とのチャットに興味のあるユーザは、その個人に関連付けられた識別名を自身のプライベートリストに追加することができる。このプライベートリストは、通常、「仲間リスト」(“buddy list”)と呼ばれる。
【０００３】
ユーザの仲間リストにリストされた個人のいずれかがＩＭに接続されると、インスタントメッセージングシステムは、その個人がオンラインであり、チャットできる状態にあることを示すアラート、又は、ユーザがコンタクトリストに自身の仲間のプレゼンスを見ることができることを示すアラートを送信する。ＩＭ会話を開始するために、開始ユーザは、ＩＭクライアントアプリケーションによって提供される仲間リストから、コンタクトされるユーザの識別名を単に選択することができる。次に、ＩＭクライアントアプリケーションは、選択されたユーザＩＤを有するユーザのコンピューティングデバイス上でリモートに実行されているＩＭクライアントアプリケーションへ、ＩＭセッションを開始する要求を送信する。次に、リモートで実行されているＩＭクライアントアプリケーションは、開始ユーザがＩＭ会話に関与したいという何らかの表示をコンタクトされたユーザに提供する。コンタクトされたユーザは、関心がある場合に、そこで同じようにして応答することができる。
【０００４】
２人のライブユーザ間における通信とは対照的に、ＩＭのもう１つの一般的な使用形態は、仮想ロボット、略してボットと呼ばれる対話型エージェントソフトウェアアプリケーションプログラムを使用して探索及び他の機能を実行することである。この対話型エージェントのフロントエンドは、あたかもボットがユーザの仲間リストの別のライブユーザであるかのようにボットと対話することをユーザに可能にするように構成されている。ボットは、仲間リストに識別名を有することができ、ユーザは、他のユーザと会話を開始するのと同じ方法で自身のボットとのＩＭセッションを開始することができる。ボットは、一般に、自然言語を使用して受け答えし、したがって、ユーザが別のライブユーザと通信しているような錯覚を生み出して促進する。ボットの精巧さの程度は大きく変化し得るが、ボットは、ユーザのように見える視覚アイコン、すなわち人物の化身(avatar)、を有するように構成することができ、人間的な性質及び性格特性を有するように構成することもできる。
【０００５】
一般にチャットボットと呼ばれるいくつかのボットは、人間の会話をシミュレーションしようと試みる。初期の頃の既知のチャットボットアプリケーションプログラムには、「Ｅｌｉｚａ」及び「Ｐａｒｒｙ」が含まれる。これらの双方は、受け取った入力を処理して、人間の応答を感情的に且つ文脈的に模倣しようと試みる応答を組み立てていた。ＩＭチャットボットは、ユーザとの自然言語のＩＭセッションへの応答又はそのＩＭセッションの開始を行い、且つ、プログラミングされた性格特性を身につけて、純粋に社交的な機能を受け持つことができる。
【０００６】
他のボットは、社交的機能に代えて又はこれに加えて、ユーザの情報源としても機能する。このようなボットのバックエンドは、１つ又は２つ以上のデータストアと統合するか又は別の方法でそれらデータストアと通信して、ライブユーザによる要求に応答してそれらデータストアの情報にアクセスすることができる。ＭＳＮ（登録商標）、Ｙａｈｏｏ（登録商標）、ＡＯＬ（登録商標）、又は他のオンラインサービスプロバイダ等のエンタープライズサービスプロバイダは、ＩＭボットを組み込んで、ユーザが、あらゆるさまざまな質問に対する回答を得たり、ニュース、天気予報、道路案内、映画時刻、株価に関する情報、又はワールドワイドウェブ等のネットワーク上で利用可能な場合がある他の任意の情報を探索したりするのに便利な方法を提供している。或るＩＭボットは、単一の専用データベースから情報を提供するように専用化することができる一方、他のＩＭボットは、さまざまな外部データベースに接続して、ユーザにさまざまな情報を提供することができる。
【０００７】
電子デバイスの精巧さ及び機動性は、発展し続けているので、増加の一途をたどる数々のこのようなデバイスは、ＩＭ等のネットワーク通信をサポートすることができる。現在、コンピュータ、ゲームデバイス、移動電話、ＰＤＡ、及び他のハンドヘルドデバイスは、すべて、インターネット又は他のネットワーク接続上でＩＭをサポートしている。ネットワーク接続デバイス数の増大に遅れを取らないように取り組んでいる技術の１つの領域は、多種多様なコンピューティングデバイスのそれぞれについて情報の効果的なフォーマット及び提供である。たとえば、コンピュータは、通常、テキスト、画像、リンク等の豊富な配列を表示できるモニタ及びブラウザを有するが、多くのポータブルデバイス及び他のネットワーク接続デバイスは有しない。
【発明の開示】
【０００８】
本システムの実施の形態は、包括的には、情報を受信するエンドポイントデバイスの機能に少なくとも部分的に応じて情報をフォーマットすることができる対話型エージェント、すなわちボットに関する。このボットは、ユーザエンドポイントデバイスとボットとの間のネットワーク通信のプロトコルを提供するＩＭアプリケーションインターフェースの一部として動作することができる。エンドポイントデバイスは、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、ゲームデバイス、移動電話、及び携帯情報端末を含めて、さまざまなネットワーク対応デバイスとすることができる。
【０００９】
ボットは、ユーザの記憶されたコンタクト内の他の任意のコンタクトとして見せることができ、ユーザは、自身の記憶されたコンタクトからボットを選択することによってボットとのコンタクトを開始することができる。コンタクトが一旦確立されると、ボットは、デバイス上で実行されているソフトウェアクライアントからコンテンツ及びメタデータを受信することができる。ボットとの通信を（ＩＭクライアント内又はＶｏＩＰクライアント内で）テキストの自然言語を使用して又はオーディオ交換によって実行できるように、ボットは、自然言語能力並びに音声変換能力及び認識能力を伴って構成されることができる。ボットは、ユーザからコンテンツ通信を受信すると、そのコンテンツ通信が何を意味するのか、及び、そのユーザの通信にどのように返答するのが最も良いかを判断する。この返答は、純粋に社交的な返答の性質を有する場合もあるし、ワールドワイドウェブ上で入手可能な情報を得るためにサードパーティデータベースの探索を必要とする場合もある。
【００１０】
ボットがユーザに対する応答のコンテンツを有すると、その応答コンテンツは、ボットのエンドポイントフォーマットエンジンによってフォーマットされる。ユーザがボットとのコンタクトを確立すると、メタデータが、ユーザデバイスからエンドポイントフォーマットエンジンに渡される。このメタデータは、ユーザのデバイスの機能及び特徴、そのデバイス上で実行されているクライアントを記述し、実施の形態では、ユーザについての個人的な嗜好及び情報も記述することができる。このメタデータは、ユーザデバイスへ返信されるコンテンツをユーザのデバイスに最適化されたフォーマットで提示するために、エンドポイントフォーマットエンジンにより使用される。
【００１１】
したがって、たとえば、ユーザのデバイスが、最新のブラウザ及びキーボードを有するデスクトップコンピュータである場合、ボットは、場合によってはグラフィックス及びビデオ画像を含めて、完全な自然言語会話でユーザと会話することができる。一方、ユーザのデバイスが、移動電話又はＰＤＡ等のハンドヘルド移動デバイスである場合、ボットは、ユーザデバイスへ送信されるコンテンツをメニュー駆動型フォーマット又はハイパーリンク駆動型フォーマットでフォーマットすることができる。ユーザデバイスへ送信されるコンテンツを多種多様な他のフォーマットでフォーマットするのに、多種多様な他の基準がボットによって使用可能である。
【発明を実施するための最良の形態】
【００１２】
次に、本システムの実施形態を図１〜図８を参照して説明することにする。本システムの実施形態は、包括的には、コンテンツを受信するエンドポイントデバイスに基づいてコンテンツ提示を最適化するためにそのコンテンツをフォーマットすることができる対話型エージェント、すなわちボットに関係する。一般に、ボットは、エンドポイントに基づいてユーザに適応して対話する。まず、ボットは、ユーザが使用しているデバイスのタイプを、そのデバイスの他の属性と共に判断する。次に、ボットは、対話のコンテンツを作成する。次に、ボットは、通信スタイル及びコンテンツのフォーマットを変更して、そのデバイスのユーザエクスペリエンスを最適化することができる。たとえば、或るアプリケーションでは、ユーザがパーソナルコンピュータに向かっていて、長い文をタイプ入力することができる場合に、ボットは、自然言語解析を使用してユーザと対話することができる。別の例では、ボットは、ユーザが移動電話を使用している場合にオプションのメニューを表示するように調整されるであろう。
【００１３】
次に図１を参照すると、ボット１０が示されている。ボット１０は、背景技術の節で説明したように、人間と対話している印象を作り出すことができる対話型エージェントとすることができる。ボット１０は、ソフトウェア、ハードウェア、又はソフトウェア及びハードウェアの組み合わせで実施することができる。ボット１０の複数の部分がソフトウェアで実施されるとき、ボット１０は、Ｊａｖａ又は他のオブジェクト指向型プログラミング言語を含む、任意の個数のコンピュータ言語で具現することができる。以下で説明するように、実施形態では、ボット１０は、ユーザと対話するためのアプリケーションインターフェースとしてＩＭを使用する。しかしながら、本システムは、アプリケーションインターフェースとしてのＩＭに限定されるものではなく、ボット１０は、代替的な実施形態では、さまざまな他のアプリケーションインターフェースを介してユーザと対話できることが理解されるべきである。さらに別の例として、ボット１０は、ＩＰ上の音声（「ＶｏＩＰ」）クライアントを使用することができる。また、ボット１０は、ＭＳＮ  ＩＭクライアントを介してオーディオを受信することもできる。
【００１４】
ボット１０は、ＭＳＮ（登録商標）、Ｙａｈｏｏ（登録商標）、ＡＯＬ（登録商標）又は他のオンラインサービスプロバイダ等のエンタープライズサービスプロバイダで実施することができる。実施形態では、ボット１０は、より具体的に、ＩＭサーバ上で実行されているＩＭエージェントアプリケーションプログラムの一部とすることができる。ＩＭエージェントアプリケーションプログラムは、ボット１０を除いては既知の構成とすることができる。ボット１０の１つ又は２つ以上の部分は、代わりに、ユーザのコンピューティングデバイス１２上で実行されているクライアントアプリケーションプログラム１４で実施できることが理解される。さらに代替的な実施形態では、ボット１０は、代わりに、クライアントにアクセス可能なサードパーティサーバ上で全体的又は部分的に実施することができる。
【００１５】
一般に、コンピューティングデバイス１２は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ社によるＸｂｏｘ（登録商標）ゲームデバイス等のゲームデバイス、移動電話、及び携帯情報端末とすることができるが、これらに限定されるものではない。図示するように、デバイス１２は、インターネット等の分散コンピューティングネットワークを介してボット１０に接続することができる。
【００１６】
クライアント１４は、ＩＭクライアントとすることができるが、デバイス１２が、フルブラウザ能力をサポートするコンピュータ、ゲームデバイス、又は他のデバイスである場合に、代替的にウェブブラウザとすることができる。クライアント１４は、さらに、ショートメッセージサービス（ＳＭＳ）クライアント、又は、フルブラウザ能力よりも少ない能力を有する移動デバイスをサポートする他のクライアントとすることもできる。以下で説明するように、さらに別の実施形態では、クライアント１４は、代替的に且つ／又はこれに加えて、ＶｏＩＰ及び他のオーディオプロトコルをサポートすることもできる。
【００１７】
ＩＭがアプリケーションインターフェースであるとき、ユーザによるボット１０との接続は、ユーザが自身の仲間リストにおいて作成されて保存されたボット１０の識別情報を選択することによって確立することができる。ボット１０は、代替的な実施形態では、他のさまざまな既知の接続方式によってアクセスすることができる。ボット１０は、代替的に又はこれに加えて、ユーザとのコンタクトを開始するように構成してもよい。
【００１８】
対話がユーザによって開始されようと、ボットによって開始されようと、ボット１０は、ユーザのＩＭクライアントからコンテンツ及びメタデータを受信することができる。具体的には、コンテンツは、ユーザからのテキスト入力又は音声入力とすることができる。メタデータは、以下でさらに詳細に説明するように、ユーザのデバイスについての情報であり、ボットがユーザに提示するコンテンツのフォーマットをカスタマイズするためにボットによって使用される。
【００１９】
ボット１０は、ユーザから受信されたコンテンツをハンドリングするための、従来のボットで知られているさまざまなソフトウェアコンポーネント又はハードウェアコンポーネントを含むことができる。実施形態では、ボット１０は、自然言語コンテンツを使用して受け答えするように構成することができる。ボットに自然言語能力を提供するためのさまざまな方法が知られている。このような方法の例は、「Method And Apparatus For Hierarchically Decomposed Bot Scripts」という発明の名称のTackettの米国特許第６，７５４，６４７号、「Internet Based Personal Information Manager」という発明の名称のLeber他の公開米国特許出願第２００３／０１８２３９１号、及び「Method And Apparatus For Natural Language Dialog Interface」という発明の名称のSchoneburg他の公開米国特許出願第２００２／０１３３３４７号に開示されている。これらの参照文献のそれぞれは、参照によりその全体が本明細書に援用される。ユーザと対話するために、ボット１０は、他のさまざまな既知の自然言語方式を利用することができることが理解される。
【００２０】
一般に、ユーザのテキストフレーズを解析して適切な応答を選択する自然言語プロセスは、パーサ１６、自然言語エンジン１８、及び推論エンジン２０によってハンドリングされる。これらのモジュールの１つ又は２つ以上は、代替的な実施形態では共に結合できることが理解される。
【００２１】
ユーザから受信したコンテンツは、たとえば、図８について以下で説明するＲＡＭ１３２等のデバイスメモリ内に収容することができる。このコンテンツは、キーボード、キーパッド上での入力、又は、以下で説明するように音声認識による入力を含めて、さまざまな方法で受信することができる。コンテンツは、ユーザの意図した文又は応答を反映する自然言語のフレーズ、ワード、コマンド、又は、ワード若しくはシンボルの任意のシーケンスとすることができる。
【００２２】
パーサ１６は、たとえば、型にはまらないケース並びに特別な分割不能のフレーズ及び接頭辞等、無関係な情報を除去することによってシステムの他のモジュールにより処理されるコンテンツを準備する。タイトル及びＵＲＬアドレス等のアイテムが処理されて、自然言語エンジン１８及び／又は推論エンジン２０が理解できる形式に変換される。
【００２３】
自然言語エンジン１８及び推論エンジン２０は、当該技術分野で知られているように、データストア２４内の知識ベース２２（及び／又はボット１０と通信する他のデータベース）に記憶されたテンプレート、パターン、及び他のデータを利用して、ユーザにより入力されたコンテンツの意味を判断する。図示するように、ソフトウェアエンジン１８及び２０は、このシステムの実施形態では、単一のエンジンに結合することができる。本システムは、ユーザとボット１０との間の自然言語通信なしで動作できることが理解される。たとえば、すべての通信は、メニュー駆動型とすることもできるし、ボット１０とユーザとの間でコンテンツを交換するための他の構造化された方式に従うこともできる。
【００２４】
ユーザは、テキストコンテンツの代わりに、音声又は他のオーディオコンテンツをデバイス１２を介してボット１０へ伝達することもできる。このような場合、オーディオコンテンツを音声変換エンジン又は音声認識エンジン２６に渡して、そのオーディオコンテンツを、推論エンジン２０が処理できる形式に変換することができる。使用可能なデータフォーマットにオーディオデータを変換するためのさまざまな方法が知られている。そのようなシステムの一例は、「Efficient Instant Messaging Using A Telephony Interface」という発明の名称のKredo他に対する米国特許第６，８１６，５７８号に開示されている。この米国特許は、参照によりその全体が本明細書に援用される。音声又はオーディオコンテンツを提供するユーザと対話するために、他のさまざまな既知の音声認識方式がボット１０によって利用可能であることが理解される。図１は、音声変換エンジンの出力が推論エンジン２０へ直接通信されることを示しているが、音声変換エンジンの出力は、代替的な実施形態では、代替的に、パーサ１６又は自然言語エンジン１８に供給できることが理解される。
【００２５】
推論エンジン２０は、ユーザクライアントへ送信されるコンテンツの内容を判断する。推論エンジン２０によって伝えられるコンテンツは、ユーザから受信したコンテンツに対する応答の場合もあるし、ユーザコンテンツに対する応答とは関係がない場合もある（たとえば、ボット１０がユーザとのコンタクトを開始しようとしている場合等）。ユーザコンテンツに対する応答である場合、推論エンジンは、ストア２２内の知識ベースから適切な応答を直接得ることもできるし、サーチエンジン２８を介してリモートデータベースから受け取った情報の探索を開始することもできる。
【００２６】
具体的には、推論エンジン２０が、データストア２４内の知識ベース２２から適切な応答が見つかると判断する場合があり得る。このような場合は、ユーザが自身に関する記憶された個人情報、ユーザの記憶されたコンタクト、又は頻繁に要求される情報を求める場合に起こり得る。代替的に、ユーザが会話のために又は単に社交目的のためにボット１０を作動させている場合には、適切な応答は、推論エンジン２０によって、知識ベース２２内に記憶されたデータのみから生成可能である。
【００２７】
一方、推論エンジン２０は、代替的に、知識ベース２２で見つからないが、その代わり、ワールドワイドウェブ上の外部データベースの探索で見つかる可能性のある情報をユーザが要求していると判断することもできる。たとえば、ユーザは、現在の出来事及びニュース、天気予報、道路案内、映画時刻、株価、又はユーザがワールドワイドウェブ上で調査できると信じているあらゆる考え得る話題についてボットに問い合わせることができる。このような場合、推論エンジン２０は、要求された情報の探索を行うようにサーチエンジン２８に問い合わせることができる。
【００２８】
サーチエンジンのオペレーションは既知である。一方、一般に、サーチエンジン２８は、探索処理環境２９の一部とすることができる。探索処理環境２９は、３つの主要なエレメントを有するクローラベースシステムとすることができる。第１のエレメントは、クローラ３０とも呼ばれるスパイダである。スパイダは、インターネット４０へのネットワーク接続を介してページ３６ａ、３６ｂ、３６ｃ等の複数のウェブページを訪問し、それらのページを読み出し、その後、特定のウェブサイト内の他のページへのリンクに従う。スパイダは、定期的にサイトに戻って、変化を探す。ウェブクローラによって実行される基本アルゴリズムは、その入力としてシードＵＲＬのリストを取り込み、ＵＲＬリストからＵＲＬを除去するステップ、そのホスト名のＩＰアドレスを決定するステップ、対応するドキュメントをダウンロードするステップ、及びそのドキュメントに含まれる任意のリンクを抽出するステップを繰り返し実行する。抽出されたリンクのそれぞれについて、クローラ３０は、そのリンクを絶対ＵＲＬに変換し（必要ならば）、その絶対ＵＲＬに以前遭遇していなかった場合には、その絶対ＵＲＬをＵＲＬのリストに加えてダウンロードする。所望ならば、クローラ３０は、ダウンロードされたドキュメントを他の方法で処理することもできる（たとえば、その内容をインデックスする）。
【００２９】
スパイダが見つけるあらゆるものは、サーチエンジンの第２の部分であるインデックス３２に進む。インデックス３２は、時にカタログと呼ばれ、スパイダが見つけるあらゆるウェブページのコピーを含むレポジトリである。ウェブページが変化した場合、インデックスは、新しい情報で更新される。インデックス３２は、データストア３４に記憶することができる。実施形態では、データストア３４は、上述したデータストア２４とは別個のものとすることができる。実施形態では、ストア３４及びストア２４は、知識ベース２２及びインデックス３２の双方を含む単一のデータストアに結合することができる。
【００３０】
探索処理環境２９の第３の部分は、サーチエンジン２８である。これは、インデックスに記録された数百万ページをふるいにかけて探索語と一致するものを見つけ、それら一致するものを、最も関連があると判断されるものの順序でランク付けるアプリケーションプログラムである。推論エンジンによって生成された問い合わせは、ユーザから受信された実際のコンテンツの場合もあるし、推論エンジンによって必要であると判断さると、変更される場合もある。サーチエンジン２８は、以下で説明するようにユーザへの提示用に、推論エンジンに単一の結果を返すこともできるし、優先順位付けられた結果のリストを返すこともできる。
【００３１】
実施形態では、探索処理環境２９は、省略することができる。このような実施形態では、ボット１０は、チャットボットとして、又は、ユーザとの単に社交的で且つ会話形式のインターフェースとして機能することができる。加えて、上述した１つ又は２つ以上のエンジン及びモジュールは、互いに分離することができ、ＩＭクライアント、ＩＭサーバ、又はサードパーティサーバのうちのいずれか１つで実施することができる。
【００３２】
推論エンジンが適切なコンテンツを決定すると、そのコンテンツはユーザへ転送される。一方、背景技術の節で示したように、異なるデバイスは、異なる表示機能を有する。したがって、本システムの実施形態は、エンドポイントフォーマットエンジン４２をさらに用いる。上記で説明したように、ユーザがボット１０とのコンタクトを確立すると、メタデータがユーザデバイスからボット１０に渡され、具体的には、エンドポイントフォーマットエンジン４２に渡される。このメタデータは、ユーザのデバイスの機能及び特徴、そのデバイス上で実行されているクライアントを記述し、実施形態では、ユーザについての個人的な嗜好及び情報も記述することができる。メタデータという用語は、ユーザのデバイスの機能及び特徴に関するすべてのデータをカバーするように広く解釈することができる。
【００３３】
デバイスの機能及び特徴に関して送信されるメタデータは、以下のものを含む。ただし、これらに限定されるものではない。
・クライアントプロトコル−デバイスがネットワーク上で通信する時に使用するルールセット。多くの例のうちの１つとして、ＩＭは、ＭＳＮインスタントメッセージングプロトコル８〜１３又はＭＳＮＰ８〜１３と呼ばれる独自のプロトコルを使用する（８は、プロトコルの古いバージョンであり、１３は、プロトコルの最新のバージョンである）。
【００３４】
・デバイスタイプ及び識別情報−デバイスがコンピュータであるのか、移動電話であるのか、テレビであるのか、ＰＤＡであるのか等。
・デバイスロケーション−デバイスの地理的ロケーション
・クライアント能力−デバイス上で使用されているソフトウェアクライアントはどれだけ高機能であるか。
【００３５】
・デバイスブランド−デバイスの製造業者及び／又はモデル
・デバイスバージョン−デバイスは、当該デバイスの古いモデルであるのか、それとも新しいモデルであるのか。
【００３６】
この情報は、ユーザデバイスへの接続時にボット１０に利用可能であり、且つ、ボット１０によってアクセス可能である。たとえば、ボットへの接続時に、クライアントは、クライアントプロトコル、クライアントバージョン、及びクライアント能力を含むダウンレベル（及び／又は他のタイプの）メッセージで応答する。また、デバイスに関する情報（タイプ、識別情報、ブランド、及び／又はバージョン）は、クライアントプロトコルメッセージに含まれることも考えられる。ボットは、ＩＰルックアップを行って、デバイスロケーションを決定することができる。ボットは、さらに、情報がサーバに到達するのに要する経路によってデバイスのタイプを決定することができる。たとえば、情報が、移動ネットワーク接続を介して受信される場合、ボットは、デバイスが移動デバイスであると決定することができる。ボット１０によってユーザデバイスに提供されるコンテンツをカスタマイズするためにエンドポイントフォーマットエンジンが使用するために、デバイスの特徴に関する他のメタデータも、ボット１０に利用可能で且つボット１０によってアクセス可能とすることができることが理解される。また、実施形態では、上述したメタデータよりも少ないメタデータを送信できることも理解される。たとえば、エンドポイントフォーマットエンジンは、デバイスメタデータのみ、クライアントメタデータのみ、ユーザ嗜好メタデータのみ、又は、デバイスメタデータの一部のみ、クライアントメタデータの一部、及び／若しくはユーザ嗜好メタデータの一部のみを受信することもできる。
【００３７】
上述したメタデータの受信を部分的又は全体的に使用して、推論エンジンからのコンテンツが、エンドポイントフォーマットエンジンによってユーザデバイスへの提示用にどのようにフォーマットされるかを決定することができる。実施形態では、ユーザ定義の嗜好も使用して、コンテンツフォーマットを決定することができる。たとえば、ユーザは、所与のデバイスのすべてのコンテンツを特定のフォーマットでフォーマットするようボット１０に指示するようにそのボットを構成することができる。この嗜好情報は、ボットが記憶することもできるし、ユーザデバイスへの接続時にボットへダウンロードすることもできる。
【００３８】
ボット１０は、上述したものに加えて又はそれらに代えて、追加される既知のソフトウェアエンジン、ソフトウェアモジュール、ソフトウェアルーチン、及び／又はソフトウェアコンポーネントを含むことができることが理解される。
【００３９】
次に図２を参照すると、システムの実施形態においてボット１０によって実行されるステップのフローチャートが示されている。ステップ２００において、ＩＭサーバは、ユーザからのコンタクトをコンピューティングデバイス１２により受信する。ステップ２０２において、ＩＭサーバは、ユーザが新しいユーザであるのか、又は既存のユーザであるのかを判断する。新しい場合、そのユーザは登録され、ステップ２０４において、そのユーザ用の新しいエントリーがＩＭサーバデータベースに記憶される。ユーザ識別情報が確認されると、ステップ２０６において、ＩＭサーバは、ボット１０がアクセス可能であるか否か、及び、そのユーザ用に構成されているか否かを判断する。そうでない場合、ステップ２０８において、ＩＭサーバは、ボットのアクセス、作成、及び／又は構成についてユーザを案内することができる。
【００４０】
ユーザとボット１０とが接続されると、ステップ２１０において、デバイス、クライアント、及び／又はユーザに関するメタデータがボットへ送信される。次に、ユーザによって送信されたコンテンツは、上述したように解析されて処理され（ステップ２１２）、推論エンジン２０は、ユーザへ送信される所望の応答又はコンテンツを決定する（ステップ２１４）。ステップ２１６において、エンドポイントフォーマットエンジン４２は、ステップ２１０で受信されたメタデータに基づいて、デバイス１２のインターフェース上でのコンテンツの提示を最適化するためにコンテンツをフォーマットする。ユーザへ送信されるコンテンツがフォーマットされると、そのコンテンツは、ステップ２１８において、デバイス１２へ送信される。
【００４１】
これによって、ユーザとボット１０との間の通信のサイクルが完了する。通信は、ＩＭセッションが終了するまで、ステップ２１６において決定されたフォーマットを使用して続けることができる。メタデータは、そのユーザとの今後の通信セッションで使用するために、ボットによって、ボットにアクセス可能なメモリに記憶することができる。また、メタデータは、データベースに保持されたユーザプロファイルにキャッシュすることもできる。このデータベースは、ネットワーク上のＩＭ／ＶｏＩＰユーザごとに同様のユーザプロファイルを保持する。代替的に、メタデータは、各セッションにおいて再び取得することもできる。
【００４２】
コンテンツをフォーマットするステップ２１６は、図３のソフトウェアフローチャート及び図４〜図７のユーザインターフェース説明図についてより詳細に説明される。ステップ３０２において、エンドポイントフォーマットエンジン４２は、まず、ユーザが、コンテンツの提示について、表示されるコンテンツに適用可能な嗜好を表明しているか否かチェックする。表明している場合、ボット１０によって送信されるコンテンツは、ユーザの表明した嗜好に従ってフォーマットされる。実施形態では、コンテンツのフォーマット及び表示のユーザの嗜好は、デバイス１２のデバイスメタデータ及びクライアントメタデータによって示されるフォーマットのあらゆるものよりも優先順位を高くすることができる（ただし、代替的な実施形態では、必ずしもそうする必要はない）。
【００４３】
ユーザ嗜好が表明されていない場合又はユーザの嗜好がボット１０によって送信されるコンテンツのフォーマットのすべてをカバーしていない場合、ステップ３０６において、エンドポイントフォーマットエンジン４２は、デバイス１２がフル表示能力及びフル返答能力を有するか否かをさらにチェックすることができる。フル表示能力は、たとえば、ブラウザの最新のバージョン又は最近のバージョンを実行しているデスクトップコンピュータ又はラップトップコンピュータに存在し得る。他の例もある。この場合、エンドポイントフォーマットエンジン４２は、デバイス１２へ送信されるコンテンツを自然言語応答としてフォーマットすることができる（ステップ３０８）。この一例は、図４に示されている。図示するように、ユーザ及びボット１０は、デバイス１２のモニタ１９１に表示された自然言語会話に参加している。デバイスがフル表示能力を有する場合であっても、デバイスがフル応答能力を有しない、すなわち、デバイスがフルキーボードを有しないともエンジン４２が判断した場合には、エンドポイントフォーマットエンジン４２は、メニューフォーマット又はハイパーリンクフォーマット（後述）がより良いと判断することができる。
【００４４】
また、エンドポイントフォーマットエンジン４２は、ステップ３１０において、デバイス１２がグラフィックス表示能力を有するか否かもチェックすることができる。この場合も、ブラウザの最新のバージョン又は最近のバージョンを実行しているほとんどのデスクトップコンピュータ又はラップトップコンピュータは、このような能力を有する。この場合、エンドポイントフォーマットエンジン４２は、グラフィックスを含むように、デバイス１２へ送信されるコンテンツをフォーマットすることができる（ステップ３１２）。このようなグラフィックスは、ボット１０によって送信されるコンテンツに関連があるものとして、推論エンジン２０が選択することができる。また、グラフィックスは、ユーザのプロファイル及び／又はユーザによってボットへ送信されたコンテンツに基づいてユーザに役立つものとして選択することもできる。たとえば、図５は、或るロケーションの天気についてのユーザによる問い合わせに応答して、ボットが、ユーザの問い合わせに関連のあるウェブサイトからのグラフィックス６０と共に、要求された情報の自然言語テキスト表示をモニタ１９１へ返した場合を示している。この問い合わせ及び他の問い合わせに応答した多種多様な他のグラフィックスが考えられる。実施形態では、エンドポイントフォーマットエンジン４２が、グラフィックス能力を検出したが、グラフィックスがボット１０からの応答と共に送信されない場合もあり得る。
【００４５】
さらに別の実施形態では、グラフィックス能力が検出される場合、図４に示すように、ボット１０をグラフィカル表現６２としてディスプレイ１９１に表示することができる。グラフィカル表現６０は、写真、アバタ、又は他の任意の画像とすることができる。
【００４６】
エンドポイントフォーマットエンジン４２は、ステップ３１４において、デバイス１２がビデオ画像をサポートするか否かもチェックすることができる。ブラウザの最新のバージョン又は最近のバージョンを実行している多くのデスクトップコンピュータ又はラップトップコンピュータは、このような能力を有する。この場合、エンドポイントフォーマットエンジン４２は、ビデオ画像を含むように、デバイス１２へ送信されるコンテンツをフォーマットすることができる（ステップ３１６）。このようなビデオクリップは、ボット１０によって送信されるコンテンツに関連があるように、推論エンジン２０が選択することができる。また、ビデオは、ユーザのプロファイル及び／又はユーザによってボットへ送信されたコンテンツに基づいてユーザに役立つように選択することもできる。したがって、たとえば、ユーザがテレビ番組について問い合わせる場合、その番組からのビデオクリップをボットの応答の一部としてユーザにダウンロードすることができる。同様に、ビデオ能力が検出される場合、モニタ１９１に表示されるボットのアバタをアニメーションにすることもできる。エンドポイントフォーマットエンジン４２がビデオ能力を検出したが、ビデオ画像がボット１０からの応答と共に送信されない場合があり得る。
【００４７】
エンドポイントフォーマットエンジン４２が、ステップ３１８において、デバイス１２が、限られたテキスト能力しか有しないが、ハイパーリンクを表示して選択する能力を有すると判断した場合、エンドポイントフォーマットエンジン４２は、簡易なナビゲーション用に、ユーザが選択できるメニューとしてテキストを表示するか又はハイパーリンクを含むテキストを表示することができる（ステップ３２０）。このような実施形態は、図７に示されている。図７では、ボット１０は、ユーザの携帯情報端末上での或る株についての追加情報につながるハイパーリンク６４のリストを表示している。さまざまな他の情報のいずれもフォーマットして表示できることが理解される。
【００４８】
図７に示す例では、ユーザは、特定の株を指定する必要なく自身の株についての情報を求めている（すなわち、「show me information about my stock portfolio（私の株式ポートフォリオについての情報を見せて）」）。この例では、ユーザは、自身のポートフォリオを知識ベース２２上の自身の個人情報の一部として記憶させることができる。代替的に、ユーザは、自身の株式ポートフォリオへのアクセス情報を自身の個人情報内に記憶している場合もある。このアクセス情報によって、ボットは、探索処理環境２９を介してアクセス可能なサードパーティサーバ上に記憶されたポートフォリオにアクセスすることが可能になる。いずれにしても、推論エンジン２０は、ユーザが要求したものが何の情報であるかを判断することができており、知識ベース２２の記憶データから、単独で又は探索処理環境２９と共にその情報を得ることができている。この情報は、次に、エンドポイントフォーマットエンジン４２が、ユーザのデバイス１２上での情報の提示を最適化するためにフォーマットすることができる。
【００４９】
デバイス１２がハイパーリンクを表示する能力又は選択する能力を有しない（ステップ３２２）実施形態、又は、ハイパーリンクを使用した選択が望ましくない場合がある実施形態では、ボット１０によって表示されるコンテンツは、代わりに、メニューとして表示することができる（ステップ３２４）。このような実施形態は、図６に示されている。図６では、ボット１０は、ユーザの移動電話上のメニュー６６にコンテンツを表示している。
【００５０】
ステップ３２６において、デバイス１２がテキスト能力を有しないとエンドポイントフォーマットエンジン４２が判断した場合、エンドポイントフォーマットエンジン４２は、デバイス１２へのオーディオダウンロードとしてコンテンツをフォーマットすることができる（ステップ３２８）。このような実施形態では、コンテンツは、エンドポイントフォーマットエンジン４２から音声変換エンジンへ送信することができる。この音声変換エンジンは、上述した音声変換エンジン２６とすることもできるし、データをオーディオフォーマットへ変換するための類似のソフトウェアアプリケーションプログラムとすることもできる。フォーマットの結果、ＶｏＩＰ又はアナログ信号を得ることができる（この場合、たとえば、ＶｏＩＰ／オーディオコールは、ＰＳＴＮネットワーク上へブリッジされる）。
【００５１】
上述したステップは、図３に示すものとは異なる順序で実行することができることが理解される。その上、上述したステップは、ボット１０によってユーザへ送信されるコンテンツをフォーマットするためのエンドポイントフォーマットエンジン４２により使用される基準を余すところなく列挙することを意図したものではない。たとえば、エンドポイントフォーマットエンジンは、デバイス１２のプロセッサ速度、メモリサイズ及びメモリ可用性、ビデオカード能力、並びに他のプロパティに関する追加情報を受信することができる。これらのプロパティも、デバイスへ送信されるコンテンツのフォーマットの因子として考慮することができる。
【００５２】
同様に、上述したステップは、エンドポイントフォーマットエンジン４２がコンテンツをフォーマットできる方法を余すところなく列挙することを意図したものではない。任意のメタデータ、個人的ユーザ嗜好、又は個人的ユーザ情報を、コンテンツをフォーマットするためのエンドポイントフォーマットエンジン４２による基準として使用できること、及び、多種多様な他のフォーマットがフォーマットエンジン４２によって達成できることが理解されよう。
【００５３】
これまでに説明した実施形態では、ボットによってユーザへ送信されるコンテンツは、ボットのエンドポイントフォーマットエンジン４２によって特定のユーザのデバイス用に最適化される。本システムのさらに別の実施形態では、エンドポイントフォーマットエンジン４２は、２人以上のライブユーザ間の通信に利用することができる。すなわち、２人以上のユーザ間の接続が確立されると、それらユーザの各デバイスに関するメタデータをメッセンジャサーバへ送信することができ、その後、ユーザの各デバイスへ送信されるコンテンツを、メッセンジャサーバ（又は、ユーザの各デバイス上のクライアントソフトウェア）に含まれるエンドポイントフォーマットエンジン４２が最適化することができる。
【００５４】
さらに別の代替的な一実施形態では、メッセンジャサーバ上のエンドポイントフォーマットエンジン４２が、各デバイスパラメータを検出してそれらデバイス用にコンテンツフォーマットを最適化できるように、２人以上のライブユーザ間の初期接続は、メッセンジャサーバを通じて行うことができる。このフォーマット情報は、記憶することができ、その後、それらユーザ間の今後の接続は、メッセンジャサーバとは独立してピアツーピアで直接行うことができる。
【００５５】
上記に示したように、本システムは、ＩＭ、並びに場合によってはウェブ及び他のＩＭクライアント等のアプリケーションインターフェースにおいて有利に使用されるが、他のアプリケーションインターフェースも考慮される。このような追加のアプリケーションインターフェースには、クライアントのウェブブラウザを介したウェブ探索、電子メールサーバを介した電子メール交換、及び現金自動預け払い機を介した銀行取引が含まれる。
【００５６】
図８は、適した一般的なコンピューティングシステム環境１００の一例を示している。このコンピューティングシステム環境１００は、ＩＭサーバ、デバイス１２、及び本発明のシステムを実施できる本明細書で示される任意の処理デバイスを備えることができる。コンピューティングシステム環境１００は、適したコンピューティング環境の単なる一例にすぎず、本発明のシステムの使用又は機能の範囲について何ら限定を示唆することを意図するものではない。また、コンピューティングシステム環境１００は、この例示的なコンピューティングシステム環境１００に示すコンポーネントのどの１つ又は組み合わせに関して何らかの依存関係又は要件を有するものとして解釈されるべきではない。
【００５７】
本発明のシステムは、他の多数の汎用又は専用のコンピューティングシステム、コンピューティング環境、又はコンピューティングシステム構成で動作することができる。本発明のシステムとの使用に適し得る既知のコンピューティングシステム、コンピューティング環境、及び／又はコンピューティング構成の例には、パーソナルコンピュータ、サーバコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、一般消費者向けのプログラマブル電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ及びパームコンピュータ、ハンドヘルドデバイス、上記システム又はデバイスのいずれかを含む分散コンピューティング環境等が含まれるが、これらに限定されるものではない。
【００５８】
図８を参照すると、本発明のシステムを実施するための１つの例示的なシステムは、コンピュータ１１０の形態の汎用コンピューティングデバイスを含む。コンピュータ１１０のコンポーネントには、処理ユニット１２０、システムメモリ１３０、及びシステムバス１２１が含まれ得るが、これらに限定されるものではない。システムバス１２１は、システムメモリを含むさまざまなシステムコンポーネントを処理ユニット１２０に結合する。システムバス１２１は、いくつかのタイプのバス構造のいずれかとすることができる。これらのバス構造には、メモリバス又はメモリコントローラ、周辺バス、及びさまざまなバスアーキテクチャのいずれかを使用するローカルバスが含まれる。限定ではなく例として、このようなアーキテクチャには、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、エンハンストＩＳＡ（ＥＩＳＡ）バス、ビデオエレクトロニクス規格協会（ＶＥＳＡ）ローカルバス、及びメザニンバス（Mezzanine bus）としても知られている周辺コンポーネント相互接続（ＰＣＩ）バスが含まれる。
【００５９】
コンピュータ１１０は、さまざまなコンピュータ可読媒体を含むことができる。コンピュータ可読媒体は、コンピュータ１１０がアクセスすることができる任意の入手可能な媒体とすることができ、揮発性媒体及び不揮発性媒体の双方と、着脱可能媒体及び着脱不能媒体の双方とを含む。限定ではなく例として、コンピュータ可読媒体には、コンピュータストレージ媒体及び通信媒体が含まれ得る。コンピュータストレージ媒体には、コンピュータ可読命令、データ構造、プログラムモジュール又は他のデータ等の情報を記憶するための任意の方法又は技術で実施された揮発性及び不揮発性の着脱可能及び着脱不能な媒体が含まれる。コンピュータストレージ媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、若しくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、若しくは他の磁気ストレージデバイス、又は、所望の情報を記憶するのに使用でき、且つ、コンピュータ１１０がアクセスできる他の任意の媒体が含まれるが、これらに限定されるものではない。通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータを、搬送波若しくは他のトランスポートメカニズム等の変調されたデータ信号で具現し、任意の情報配信媒体が含まれる。「変調されたデータ信号」という用語は、その特性の１つ又は２つ以上が、信号の情報を符号化するように設定又は変更されている信号を意味する。限定ではなく例として、通信媒体には、有線ネットワーク又は直接有線接続等の有線媒体と、音響、ＲＦ、赤外線及び他の無線媒体等の無線媒体とが含まれる。上記のもののうちの任意のものの組み合わせも、コンピュータ可読媒体の範囲内に含まれる。
【００６０】
システムメモリ１３０は、読み出し専用メモリ（ＲＯＭ）１３１及びランダムアクセスメモリ（ＲＡＭ）１３２等の揮発性メモリ及び／又は不揮発性メモリの形態のコンピュータストレージ媒体を含む。起動中等にコンピュータ１１０内のエレメント間の情報の転送を助ける基本ルーチンを含む基本入出力システム（ＢＩＯＳ）１３３は、通常、ＲＯＭ１３１に記憶されている。ＲＡＭ１３２は、通常、処理ユニット１２０に即座にアクセス可能であり且つ／又は処理ユニット１２０によって現在処理されているデータ及び／又はプログラムモジュールを含む。限定ではなく例として、図８は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７を示している。
【００６１】
また、コンピュータ１１０は、他の着脱可能／着脱不能な揮発性／不揮発性コンピュータストレージ媒体も含むことができる。単なる例として、図８は、着脱不能な不揮発性磁気媒体からの読み出し又はこの媒体への書き込みを行うハードディスクドライブ１４１、及び、着脱可能な不揮発性磁気ディスク１５２からの読み出し又はこのディスク１５２への書き込みを行う磁気ディスクドライブ１５１を示している。コンピュータ１１０は、光媒体１００からの読み出し及び／又はこの光媒体１００への書き込みを行う光媒体読み出しドライブ１５５をさらに含むことができる。
【００６２】
この例示的な動作環境で使用できる他の着脱可能／着脱不能な揮発性／不揮発性コンピュータストレージ媒体には、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭ等が含まれるが、これらに限定されるものではない。ハードディスクドライブ１４１は、通常、インターフェース１４０等の着脱不能メモリインターフェースを通じてシステムバス１２１に接続され、磁気ディスクドライブ１５１及び光媒体読み出しデバイス１５５は、通常、インターフェース１５０等の着脱可能メモリインターフェースによってシステムバス１２１に接続される。
【００６３】
上述し且つ図８に示したドライブ及びそれらに関連付けられたコンピュータストレージ媒体は、コンピュータ１１０のために、コンピュータ可読命令、データ構造、プログラムモジュール、及び他のデータのストレージを提供する。図８では、たとえば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７を記憶するものとして示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、及びプログラムデータ１３７と同じものとすることもできるし、異なるものとすることもできる。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、及びプログラムデータ１４７は、最低でもこれらが異なるコピーであることを示すために、ここでは異なる番号が与えられている。ユーザは、キーボード１６２及びポインティングデバイス１６１等の入力デバイスを通じてコンピュータ１１０内にコマンド及び情報を入力することができる。ポインティングデバイス１６１は、一般に、マウス、トラックボール、又はタッチパッドと呼ばれる。他の入力デバイス（図示せず）には、マイク、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ等が含まれ得る。これらの入力デバイス及び他の入力デバイスは、多くの場合、システムバス１２１に結合されたユーザ入力インターフェース１６０を通じて処理ユニット１２０に接続されているが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）等の他のインターフェース及びバス構造によって接続することもできる。モニタ１９１又は他のタイプの表示デバイスも、ビデオインターフェース１９０等のインターフェースを介してシステムバス１２１に接続されている。モニタに加えて、コンピュータは、スピーカ１９７及びプリンタ１９６等の他の周辺出力デバイスも含むことができる。これら他の周辺出力デバイスは、出力周辺インターフェース１９５を通じて接続することができる。
【００６４】
コンピュータ１１０は、リモートコンピュータ１８０等の１つ又は２つ以上のリモートコンピュータへの論理接続を使用してネットワーク接続環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、又は他の一般的なネットワークノードとすることができ、図８では、メモリストレージデバイス１８１しか示されていないが、通常は、コンピュータ１１０に関して上述したエレメントの多く又はすべてを含む。図８に示す論理接続には、ローカルエリアネットワーク（ＬＡＮ）１７１及びワイドエリアネットワーク（ＷＡＮ）１７３が含まれるが、他のネットワークも含まれ得る。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、及びインターネットでは一般的である。
【００６５】
コンピュータ１１０は、ＬＡＮネットワーキング環境で使用されるとき、ネットワークインターフェース又はアダプタ１７０を通じてＬＡＮ１７１に接続される。コンピュータ１１０は、ＷＡＮネットワーキング環境で使用されるとき、通常、インターネット等のＷＡＮ１７３上で通信を確立するためのモデム１７２又は他の手段を備える。モデム１７２は、内蔵又は外付けとすることができ、ユーザ入力インターフェース１６０又は他の適切なメカニズムを介してシステムバス１２１に接続することができる。ネットワーク接続環境では、コンピュータ１１０に関して示したプログラムモジュール又はその一部は、リモートメモリストレージデバイスに記憶することができる。限定ではなく例として、図８は、リモートアプリケーションプログラム１８５を、メモリデバイス１８１上に存在するものとして示している。図示したネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段も使用できることが十分理解されよう。
【００６６】
本発明のシステムの上記詳細な説明は、例示及び説明の目的で提示されたものである。上記詳細な説明は、網羅的であることを意図したものでもなければ、開示した厳密な形態に本発明のシステムを限定することを意図したものでもない。上記教示を考慮して、多くの変更及び変形が可能である。説明した実施形態は、本発明のシステムの原理及びその実用的なアプリケーションを最も良く説明し、それによって、他の当業者が、本発明のシステムを、検討した特定の使用に適するようにさまざまな実施形態で及びさまざまな変更を伴って、最も良く利用することを可能にするために選ばれたものである。本発明のシステムの範囲は、本明細書に添付した特許請求の範囲によって画定されることが意図されている。
【図面の簡単な説明】
【００６７】
【図１】本システムの一実施形態によるボットのソフトウェアブロック図である。
【図２】本システムの一実施形態によるステップのオペレーションを示すフローチャートである。
【図３】本システムの一実施形態によるユーザデバイスへ伝達されるコンテンツをフォーマットするエンドポイントフォーマットエンジンのオペレーションを示すフローチャートである。
【図４】コンピュータのディスプレイ上における本システムに従ったボットによるコンテンツ提示の説明図である。
【図５】コンピュータのディスプレイ上における本システムの代替的な一実施形態に従ったボットによるコンテンツ提示の説明図である。
【図６】移動電話のディスプレイ上における本システムに従ったボットによるコンテンツ提示の説明図である。
【図７】携帯情報端末のディスプレイ上における本システムに従ったボットによるコンテンツ提示の説明図である。
【図８】本システムの実施形態を実施するのに適したコンピュータハードウェアのブロック図である。
【図１】
2009505284.tif 000003
【図２】
2009505284.tif 000004
【図３】
2009505284.tif 000005
【図４】
2009505284.tif 000006
【図５】
2009505284.tif 000007
【図６】
2009505284.tif 000008
【図７】
2009505284.tif 000009
【図８】
2009505284.tif 000010
【国際調査報告】
2009505284.tif 000011
2009505284.tif 000012