(57)【特許請求の範囲】
【請求項１】
アプリケーション間通信によってタスク完了を容易にするシステムであって、
タスク実行コンポーネントを含み、
前記タスク実行コンポーネントが、
第一のアプリケーションのコンテンツ内部に含まれるエンティティを識別するステップと、
前記エンティティに対して実行することができるアクションを提示するステップと、
前記アクションの選択を受け付けるステップと、
データー契約レポジトリーから、選択されたアクションを前記エンティティに対して実行することができる少なくとも一つのターゲット・アプリケーションを識別するステップであって、前記データー契約レポジトリーは複数のアプリケーションについての契約を含み、前記アプリケーションについての契約は、前記アプリケーションが対応するエンティティと、前記アプリケーションが対応するエンティティに関連するアクションを含むステップと、
前記識別された少なくとも一つのターゲット・アプリケーションを提示するステップと、
前記識別された少なくとも一つのターゲット・アプリケーションの選択を受け付けるステップと、
前記識別された少なくとも一つのターゲット・アプリケーションの選択を受け付けたことに応答して、前記第一のアプリケーションから選択された前記ターゲット・アプリケーションに、前記エンティティに関連するエンティティ・コンテキストについての情報と、選択された前記アクションに関連するアクション・コンテキストについての情報を送るステップと、
メトリックスについてのログを維持するステップであって、前記メトリックスについてのログは、アクションが選択された回数、アクションを実行するためにアプリケーションが起動された回数の少なくともいずれか一方についての分析データーを含むステップと、
前記メトリックスについてのログを第三者アプリケーションに提示するステップと、
を実行するように構成される、システム。
【請求項２】
請求項１に記載のシステムにおいて、前記タスク実行コンポーネントがオペレーティング・システムのユーザー・インターフェースを含み、前記オペレーティング・システムのユーザー・インターフェースがシェア・チャームを含むシステム。
【請求項３】
請求項１又は２に記載のシステムにおいて、前記タスク実行コンポーネントが、更に、前記エンティティに関連するエンティティ・コンテキストについての情報と、選択された前記アクションに関連するアクション・コンテキストについての情報に基づいて、タスクを遂行するユーザーの意図を判定するステップを、実行するように構成される、システム。
【請求項４】
請求項１〜３のいずれか一項に記載のシステムにおいて、前記アクションが前記第一のアプリケーションに埋め込まれているシステム。
【請求項５】
請求項１〜４のいずれか一項に記載のシステムにおいて、前記タスク実行コンポーネントが、更に、
前記エンティティに基づいて前記アクションを動的に識別するステップと、
前記アクションを提示するステップと、
を実行するように構成される、システム。
【請求項６】
請求項１〜５のいずれか一項に記載のシステムにおいて、前記第一のアプリケーションと選択された前記ターゲット・アプリケーションの少なくともいずれか一方が、ウェブ・ブラウザ、ダウンロード可能なマーケットプレース・アプリケーション、クラウド・アプリケーション、ローカルにインストールされたアプリケーションの少なくともいずれか一つを含む、システム。
【請求項７】
請求項１〜６のいずれか一項に記載のシステムにおいて、前記識別された少なくとも一つのターゲット・アプリケーションを提示するステップは、
選択された前記ターゲット・アプリケーションが前記エンティティに対して前記アクションを実行できることを明記する、前記タスク実行コンポーネントと選択された前記ターゲット・アプリケーションとの間のデーター契約に基づいて、選択された前記ターゲット・アプリケーションが前記エンティティに対して選択された前記アクションを実行できるか判断するステップを、
含むシステム。
【請求項８】
請求項１〜７のいずれか一項に記載のシステムにおいて、前記タスク実行コンポーネントが、更に、実行中のアプリケーションと並べて表示することができるオーバーレイ・インターフェース内で、選択された前記ターゲット・アプリケーションを起動するように構成される、システム。
【請求項９】
請求項１〜８のいずれか一項に記載のシステムにおいて、前記タスク実行コンポーネントが、更に、オペレーティング・システムの通信モデルを利用し、選択された前記ターゲット・アプリケーションに、前記エンティティに関連するエンティティ・コンテキストについての情報と、選択された前記アクションに関連するアクション・コンテキストについての情報を送るように構成される、システム。
【請求項１０】
請求項１〜９のいずれか一項に記載のシステムにおいて、分析コンポーネントを更に含み、前記分析コンポーネントは、
エンティティ・アクション・ログ内にエントリーを生成するステップであって、前記エントリーが、前記アクションが前記ターゲット・アプリケーションによって前記エンティティに対して実行されたことを明記する、ステップと、
前記エンティティ・アクション・ログを第三者アプリケーションに提示するステップと、
を実行するように構成される、システム。
【請求項１１】
請求項１〜１０のいずれか一項に記載のシステムにおいて、契約コンポーネントを更に含み、前記契約コンポーネントは、第三者アプリケーションが前記エンティティに対して前記アクションを実行できることを明記する、前記タスク実行コンポーネントと第三者アプリケーションとの間のデーター契約を生成するステップを、実行するように構成される、システム。
【請求項１２】
請求項１〜１１のいずれか一項に記載のシステムにおいて、前記タスク実行コンポーネントが、更に、
選択された前記ターゲット・アプリケーションについてのバック・コマンドを受け取るステップと、
選択された前記ターゲット・アプリケーションから、前記第一のアプリケーションと１つ以上のターゲット・アプリケーションを識別できるタスク・インターフェースの少なくともいずれか一方に移行するステップと、
を実行するように構成される、システム。
【請求項１３】
請求項１〜１２のいずれか一項に記載のシステムにおいて、前記識別された少なくとも一つのターゲット・アプリケーションを提示するステップは、前記エンティティと前記エンティティに関連するアクションに対応する前記識別された少なくとも一つのターゲット・アプリケーションの中から提示する、システム。
【請求項１４】
請求項１〜１３のいずれか一項に記載のシステムにおいて、定義コンポーネントを更に含み、前記定義コンポーネントは、
前記エンティティに関連するエンティティ・コンテキストについての情報を生成するために用いられる前記エンティティに対するエンティティ定義を生成し、前記エンティティ定義はエンティティを定義するための１つ以上のエンティティ・パラメータを含み、前記エンティティ・パラメータは前記エンティティに対して前記アクションを実行できることを明記するステップと、
選択された前記アクションに関連するアクション・コンテキストについての情報を生成するために用いられる前記アクションに対するアクション定義を生成し、前記アクション定義はアクションを定義するための１つ以上のアクション・パラメータを含み、前記アクション・パラメータは前記アクションを実行するために用いられる情報を明記するステップと、
を実行するように構成される、システム。
【請求項１５】
アプリケーション間通信によってタスク完了を容易にする方法であって、
第一のアプリケーションのコンテンツ内部に含まれるエンティティを識別するステップと、
前記エンティティに対して実行することができるアクションを提示するステップと、
前記アクションの選択を受け付けるステップと、
データー契約レポジトリーから、選択されたアクションを前記エンティティに対して実行することができる少なくとも一つのターゲット・アプリケーションを識別するステップであって、前記データー契約レポジトリーは複数のアプリケーションについての契約を含み、前記アプリケーションについての契約は、前記アプリケーションが対応するエンティティと、前記アプリケーションが対応するエンティティに関連するアクションを含むステップと、
前記識別された少なくとも一つのターゲット・アプリケーションを提示するステップと、
前記識別された少なくとも一つのターゲット・アプリケーションの選択を受け付けるステップと、
前記識別された少なくとも一つのターゲット・アプリケーションの選択を受け付けたことに応答して、前記第一のアプリケーションから選択された前記ターゲット・アプリケーションに、前記エンティティに関連するエンティティ・コンテキストについての情報と、選択された前記アクションに関連するアクション・コンテキストについての情報を送るステップと、
メトリックスについてのログを維持するステップであって、前記メトリックスについてのログは、アクションが選択された回数、アクションを実行するためにアプリケーションが起動された回数の少なくともいずれか一方についての分析データーを含むステップと、
前記メトリックスについてのログを第三者アプリケーションに提示するステップと、
含む方法。
【請求項１６】
請求項１５に記載の方法において、前記識別された少なくとも一つのターゲット・アプリケーションを提示するステップは、
選択された前記ターゲット・アプリケーションが前記エンティティに対して前記アクションを実行できることを明記する、選択された前記ターゲット・アプリケーションとの間のデーター契約に基づいて、選択された前記ターゲット・アプリケーションが前記エンティティに対して選択された前記アクションを実行できるか判断するステップを、
含む方法。
【請求項１７】
請求項１５又は１６に記載の方法を実行するためのプログラム。
【請求項１８】
請求項１５又は１６に記載の方法を実行するためのプログラムを記録した記録媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  多くのユーザーは、移動体電話機、タブレット・デバイス、および／またはパーソナル・コンピューターというような計算デバイスを利用して、種々のタイプのアクションを実行する。一例では、ユーザーが「今日のニュースは何か」という音声コマンドを移動体電話機に入力することがあり得る。移動体電話機は、ユーザーに、ニュース・ウェブサイト検索結果のリストをウェブ・ブラウザーを通じて供給することができる。他の例では、ユーザーが「映画のチケットを手配する」という検索クエリーを、タブレット・デバイスを介してアクセスされる検索エンジンを通じて入力することもあり得る。検索エンジンは、映画のチケットに関係があるとしてタグ付けできるウェブサイトのリストを供給することができる。ユーザーは、手作業で、映画の評判(review)、映画の上映時刻(show time)、および／または映画チケット手配サービスというような、映画の情報を提供することができる映画ウェブサイトを調査することができる。チケット手配サービスを発見した後、ユーザーは、映画チケット手配アクションを完了するために、チケット手配サービスによって要求される情報を提供すればよい。生憎、映画チケット手配アクションを完了するためには、特定の映画チケット発券アプリまたはウェブサイトを突き止めること、広範な手作業の入力、検索、試行錯誤、および／または冗長な情報の入力が必要となる場合がある。
【発明の概要】
【課題を解決するための手段】
【０００２】
[0002]  この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な要素や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を限定するために使用されることを意図するのでもない。
【０００３】
[0003]  本明細書では、とりわけ、アプリケーション間通信を通じてタスク完了を容易にするための１つ以上のシステムおよび／または技法、および／またはコンテキスト・アウェア・タスク(contextually aware task)実行のためにターゲット・アプリケーションを登録するための１つ以上のシステムおよび／または技法を提供する。タスク完了を容易にする実施形態では、実行中のアプリケーション(current application)のコンテンツ内に含まれるエンティティを識別することができる。このエンティティは、人間のエンティティ、業務エンティティ、消費者製品エンティティ、時間エンティティ、場所エンティティ、物体エンティティ、および／または任意の他のタイプのエンティティを含むことができる。例えば、ソーシャル・ネットワーク・アプリケーションが、車エンティティを識別するために使用することができる、２０１３年型スポーツ・カー・モデル（Ｘ）について記述するコンテンツを含むソーシャル・ネットワーク・ポストを表示するのでもよい（例えば、ソーシャル・ネットワーク・ポストのコンテンツは、車エンティティを定めるために使用される１つ以上のエンティティ・パラメーターを含む車エンティティ定義と照合する、および／またはこの車エンティティに対して実行され得るアクションを記述するのでもよい）。このエンティティに対して実行することができる１つ以上のアクションを露出することができる。一例では、ソーシャル・ネットワーク・アプリケーションは、このソーシャル・ネットワーク・アプリケーションに埋め込まれた車評判確認アクション(view car reviews action)を有するのでもよい。他の例では、車エンティティに基づいて、車見積もり(quote)アクションを動的に識別することもできる（例えば、車エンティティ定義が、車エンティティに対して車積もりアクションを実行するために使用される情報に対応する１つ以上のアクション・パラメーターを含む車積もりアクション定義を参照することができる）。
【０００４】
[0004]  アクションの選択に応答して、このエンティティに関連するエンティティ・コンテキストおよび／またはこのアクションに関連するアクション・コンテキストに基づいて、タスクを遂行するユーザーの意図を決定することができる。例えば、車見積もりアクションを実行するユーザーの意図は、車エンティティ（例えば、車エンティティ定義、および／またはモデル名および／またはモデル年式のような、ソーシャル・ネットワーク・アプリケーションによって提供される車エンティティについてのコンテキスト情報）、および／または車見積もりアクション（例えば、車見積もり定義、および／またはディーラーの場所、車組立オプション、車下取り情報等のような、ソーシャル・ネットワーク・アプリケーションによって提供される車見積もりアクションについてのコンテキスト情報）に基づいて決定することができる。このアクションをエンティティに対して実行することができる１つ以上のターゲット・アプリケーション（例えば、車取引アプリケーション）を提示することができる（例えば、シェア・チャーム(share charm)のような、オペレーティング・システムのユーザー・インターフェースを通じて）。
【０００５】
[0005]  ターゲット・アプリケーションの選択に応答して、エンティティ・コンテキスト（例えば、モデル名および／またはモデル年式）および／またはアクション・コンテキスト（例えば、ディーラーの場所、車組立オプション、車下取り情報等）をターゲット・アプリケーションに渡して、タスクの完了を容易にするように、エンティティ・コンテキストおよび／またはアクション・コンテキストにしたがって、ターゲット・アプリケーションを起動する。一例では、車取引アプリケーションは、コンテキスト・アウェア状態で（例えば、車見積もり書式）で開かれてもよい。この状態は、エンティティ・コンテキストおよび／またはアクション・コンテキストから抽出された少なくとも何らかの情報を含むことができる（例えば、単に通常のホーム・スクリーンに開くのではなく）。このように、ユーザーは、例えば、比較的少ないユーザー入力、検索、試行錯誤、および／または冗長な情報の入力で、車取引アプリケーションによって、車見積もりアクションを効率的に実行することができる。
【０００６】
[0006]  コンテキスト・アウェアなタスク実行のためにターゲット・アプリケーションを登録する実施形態では、ターゲット・アプリケーションとのデーター契約(data contract)を締結するための登録要求を受けることができる。この登録要求は、ターゲット・アプリケーションによってサポートされるエンティティおよび／またはアクションを含むことができる。たとえば、車マニア・アプリケーション(car enthusiast application)が、車エンティティ、車見積もりアクション、および／または他のエンティティおよび／またはアクアションをサポートすることに基づいて、この車マニア・アプリケーションと、オペレーティング・システムのユーザー・インターフェース（例えば、シェア・チャーム）のようなタスク実行コンポーネントとの間でデーター契約を締結することを、車マニア・アプリケーションが要求することもできる。このように、ターゲット・アプリケーションとのデーター契約を作成することができる。データー契約は、ターゲット・アプリケーションがエンティティに対してアクションを実行できることを明記することができる。
【０００７】
[0007]  エンティティに対するエンティティ定義は、維持することができる。エンティティ定義は、そのエンティティを定める１つ以上のエンティティ・パラメーターを含むことができる。１つのエンティティ・パラメーターが、アクションをエンティティに対して実行できることを明記することができる。例えば、車エンティティ定義は、車モデル情報に対する第１エンティティ・パラメーター、モデル年式情報に対する第２エンティティ・パラメーター、車見積もりアクションをこの車エンティティに対して実行できることを明記する第３エンティティ・パラメーター、および／または他のエンティティ・パラメーターを含むことができる。アクションに対してアクション定義を維持することができる。アクション定義は、アクションを定める１つ以上のアクション・パラメーターを含むことができる。１つのアクション・パラメーターが、アクションを実行するために使用される情報を指定することができる。例えば、車見積もりアクション定義は、ディーラー場所情報に対する第１アクション・パラメーター、車組立オプション情報に対する第２アクション・パラメーター、および／または他のアクション・パラメーターを含むことができる。このように、車エンティティ定義および／または車見積もりアクション定義は、実行中のアプリケーションから抽出されたコンテキスト情報に基づいて、ターゲット・アプリケーションによるタスクの実行を容易にするために使用することができる。
【０００８】
[0008]  以上のおよび関係する目的の遂行のために、以下の説明および添付図面は、ある種の例示的な態様(aspect)および実施態様(implementation)を明示する。これらは、１つ以上の態様を採用することができる種々の方法の内僅かなものを示すに過ぎない。本開示の他の態様、利点、および新規な特徴は、以下の詳細な説明を添付図面と併せて検討することによって、明白になるであろう。
【図面の簡単な説明】
【０００９】
【図１】図１は、アプリケーション間通信によってタスク完了を容易にする方法例を示す流れ図である。
【図２】図２は、エンティティに対するエンティティ定義、アクションに対するアクション定義、および／またはターゲット・アプリケーションに関連するデーター契約を維持するシステム例を示すコンポーネント・ブロック図である。
【図３Ａ】図３Ａは、アプリケーション間通信によってタスク完了を容易にするシステム例を示すコンポーネント・ブロック図である。
【図３Ｂ】図３Ｂは、アプリケーション間通信によってタスク完了を容易にするシステム例を示すコンポーネント・ブロック図である。
【図４Ａ】図４Ａは、アプリケーション間通信によってタスク完了を容易にするシステム例を示すコンポーネント・ブロック図である。
【図４Ｂ】図４Ｂは、アプリケーション間通信によってタスク完了を容易にするシステム例を示すコンポーネント・ブロック図である。
【図５】図５は、コンテキスト・アウェア・タスク実行のためにターゲット・アプリケーションを登録する方法例を示す流れ図である。
【図６】図６は、本明細書において明示した発明(provision)の１つ以上を具体化するように構成されたコンピューター実行可能命令を構成することができる計算デバイス読み取り可能媒体例の図である。
【図７】図７は、本明細書において明示した発明の１つ以上を実現することができる計算環境例を示す。
【発明を実施するための形態】
【００１０】
[0018]  これより、図面を参照しながら、特許請求する主題について説明する。図面では、同様の参照番号は全体的に同様のエレメントを一貫して指すために使用される。以下の説明では、説明の目的に限って、特許請求する主題の理解を得るために多数の具体的な詳細を明示する。しかしながら、特許請求する主題は、これらの具体的な詳細がなくても実施できることは明白なはずである。他方では、特許請求する主題を説明しやすくするために、構造およびデバイスをブロック図形態で示すこととする。
【００１１】
[0019]  アプリケーション間通信によってタスク完了を容易にする一実施形態を、図１における方法例１００によって例示する。１０２において、この方法が開始する。一例では、ユーザーが実行中のアプリケーションと対話処理していてもよい（例えば、ソーシャル・ネットワーク・アプリケーション、電子メール・アプリケーション、ウェブサイトを表示するウェブ・ブラウザー、地図表示アプリケーション(mapping application)、ビデオ・ゲーム、ローカルにインストールされたアプリケーション、クラウド・アプリケーション等）。実行中のアプリケーションは、１つ以上のエンティティを含むコンテンツを表示することができる。例えば、ソーシャル・ネットワーク・アプリケーションが、ユーザーが楽しんだMexican Cantinaのような特定のレストランをユーザーが参照することによって、ソーシャル・ネットワーク・ポストを表示するのでもよい。一例では、レストラン・エンティティは、コンテンツから動的に識別することができる（例えば、コンテンツを解析してエンティティ候補を識別してもよく、このエンティティ候補を、レストラン名、場所、価格範囲、ならびにテーブル予約アクション、メニュー確認アクション等のような、レストラン・エンティティに対して実行することができる１つ以上のアクションというような、エンティティを定める１つ以上のエンティティ・パラメーターを含むエンティティ定義と照合することができる）。他の例では、ソーシャル・ネットワーク・アプリケーションによってレストラン・エンティティが予め定められていてもよい。このように、１０４において、実行中のアプリケーションのコンテンツ内部に含まれるエンティティを識別することができる。
【００１２】
[0020]  １０６において、エンティティに対して実行することができる１つ以上のアクションを露出することができる。一例では、レストラン・エンティティ定義が、テーブル予約アクションというような、そのレストラン・エンティティに対して実行することができる１つ以上のアクションを指定することができる。テーブル予約アクション定義は、席の数、時間、レストラン名等というような、テーブル予約アクションを実行するために使用される情報を指定する１つ以上のアクション・パラメーターを含むことができる。このように、エンティティに基づいてアクションを動的に識別することができ、そして提示することができる。他の例では、アクションを実行中のアプリケーション内に埋め込むこともできる（例えば、実行中のアプリケーションの開発者が、ユーザーがエンティティを選択したことに応答してアクションを提示することができる機能を、実行中のアプリケーション内に埋め込むことができる）。
【００１３】
[0021]  １０８において、アクション（例えば、テーブル予約アクション）の選択に応答して、エンティティに関連するエンティティ・コンテキストおよび／またはアクションに関連するアクション・コンテキストに基づいて、タスク（例えば、Mexican Cantinaにおいてテーブルを予約する）を遂行するユーザーの意図を判定することができる。例えば、エンティティ・コンテキストは、レストラン名としてのMexican Cantinaおよび場所としての都心というような、レストラン・エンティティ定義内において指定された１つ以上のエンティティ・パラメーターの値を含むことができる。エンティティ・パラメーターの値は、実行中のアプリケーションのコンテンツから抽出することができ、および／またはエンティティ定義から抽出することもできる。アクション・コンテキストは、レストラン名としてのMexican Cantinaおよび時刻としての８：００というような、テーブル予約アクション定義内において指定された１つ以上のアクション・パラメーターの値を含むことができる。
【００１４】
[0022]  エンティティに対してアクションを実行することができる１つ以上のターゲット・アプリケーションを識別することができる。例えば、食品専門アプリケーション(food expert application)が、タスク実行コンポーネントとのデーター契約を有することができる。データー契約は、食品専門アプリケーションがレストラン・エンティティおよび／またはテーブル予約アクションをサポートすることを指定することができる。このように、１１０において、エンティティに対してアクションを実行することができる１つ以上のターゲット・アプリケーションを提示することができる。一例では、ターゲット・アプリケーションが実行中のアプリケーションを通じて提示されてもよい。他の例では、ターゲット・アプリケーションが、オペレーティング・システムのユーザー・インターフェース（例えば、シェア・チャーム）を通じて提示されてもよく、実行中のアプリケーションに関係付けて（例えば、並べて、重ねて等）表示することもできる。
【００１５】
[0023]  ターゲット・アプリケーション（例えば、食品専門アプリケーション）の選択に応答して、１１２において、タスクの完了を容易にするために、エンティティ・コンテキストおよび／またはアクション・コンテキストにしたがって、ターゲット・アプリケーションを起動することができるように、エンティティ・コンテキストおよび／またはアクション・コンテキストをターゲット・アプリケーションに渡すことができる。ターゲット・アプリケーションは、ウェブサイトを表示するウェブ・ブラウザー、ローカルにインストールされたアプリケーション、クラウド・アプリケーションまたはサービス、および／またはダウンロードおよび／またはインストールのために利用可能なマーケットプレース・アプリケーションを含むことができる（例えば、アプリケーション・マーケットプレースからマーケットプレース・アプリケーションを入手するようにユーザーを促してもよい）。例えば、食品専門アプリケーションは、ローカルにインストールすることができ、エンティティ・コンテキストおよび／またはアクション・コンテキストに関連する少なくとも何らかの情報を含み得る、コンテキスト的に関連のある状態に開くことができる（例えば、食品専門アプリケーションを、１つ以上のエンティティ・パラメーターおよび／または１つ以上のアクション・パラメーターからの値が埋められたテーブル予約書式に開くこともできる）。コンテキスト情報をターゲット・アプリケーションに渡す一例では、オペレーティング・システムの通信モデルを使用して、エンティティ・コンテキストおよび／またはアクション・コンテキストをターゲット・アプリケーションに渡すこともできる。一例では、ターゲット・アプリケーションは、没入表示状態(immersive view state)（例えば、実質的に最大画面状態）で起動することもできる。他の例では、ターゲット・アプリケーションは、実行中のアプリケーションと並べて起動することもできる。他の例では、実行中のアプリケーションと並べて表示することができるオーバーレイ・インターフェース（例えば、アプリケーションを表示するために使用される、チャームのような、オペレーティング・システムのユーザー・インターフェース）内で、ターゲット・アプリケーションを起動することもできる。このように、ユーザーは、適した機能を求めるための過度な検索、および／または冗長な情報の手作業による入力を行うことなく、効率的にタスクを完了することができる。一旦起動されたなら、バック・コマンドのような種々のコマンドを実行することができる。バック・コマンドは、ターゲット・アプリケーションの表示を実行中のアプリケーションに、および／またはタスク完了のために選択され得る１つ以上のターゲット・アプリケーションを含むタスク・インターフェースに移行する(transition)ことができる。
【００１６】
[0024]  一例では、エンティティ・アクション・ログを維持することができる（例えば、データーベース、ログ・ファイル、対話型ユーザー・インターフェース等）。エンティティ・アクション・ログは、アクションの使用パターン、アクションの関与パターン、アクションが起動された回数、アプリケーションが起動された回数等というような、タスク完了に関する情報を含む１つ以上のエントリーを含むことができる。このような情報、アクティビティ、アクション等を記録させるために、ユーザー・オプトインまたはオプトアウトに対する選択肢を設けることもできる。エントリーは、例えば、アクションがターゲット・アプリケーションによってエンティティに対して実行されたことを明記することができる。エンティティ・アクション・ログは、第三者アプリケーション（例えば旅行アプリケーションの開発者）に露出されてもよい。タスク完了コンポーネントと第三者アプリケーションとの間で、データー契約を作成することができる（例えば、開発者が、データー契約を作成する希望を示す登録要求を送ることができる）。データー契約は、第三者アプリケーションがエンティティに対するアクションの実行をサポートすることを指定することができる。このように、第三者アプリケーションは、コンテキスト・アウェアなタスク実行のためのターゲット・アプリケーションとして登録することができる。１１４において、本方法は終了する。
【００１７】
[0025]  図２は、エンティティに対するエンティティ定義、アクションに対するアクション定義、および／またはターゲット・アプリケーションに関連するデーター契約を維持するように構成されたシステム２００の一例を示す。システム２００は、定義コンポーネント２０２および／または契約コンポーネント２０８を含むことができる。定義コンポーネント２０２は、エンティティに対してエンティティ定義を生成するように構成することができる。例えば、定義コンポーネント２０２は、レストラン・エンティティに対するレストラン・エンティティ定義２０４を維持することができる。レストラン・エンティティ定義２０４は、エンティティを定義する、および／またはエンティティに対して実行することができるアクションを指定する１つ以上のエンティティ・パラメーターを含むことができる。例えば、レストラン名パラメーター、レストラン場所パラメーター、レストラン・タイプ・パラメーター、および／または他のエンティティ・パラメーターを、レストラン・エンティティ定義２０４内において指定することができる。一例では、レストラン・エンティティ定義にエンティティ・パラメーターの１つ以上の値（例えば、レストラン名としてのMexican Cantina、レストランの場所としての都心等）を入力することに基づいて、Mexican Cantinaエンティティのような、レストラン・エンティティのインスタンスを定めることもできる。テーブル予約アクション、評判検討アクション、メニュー確認アクション、および／またはレストラン・エンティティに対して実行することができる他のアクションというような、１つ以上のサポートされるアクションを、レストラン・エンティティ定義２０４内において明記することができる。レストラン・エンティティ定義２０４は、タスク完了を容易にするためにレストラン・エンティティに対してエンティティ・コンテキストを生成するために使用することもできる（例えば、エンティティ・コンテキストは、レストラン・エンティティ定義２０４内で指定された少なくとも何らかの情報を含むことができ、タスク完了のためにターゲット・アプリケーションをコンテキスト関連状態に起動することができるように、ターゲット・アプリケーションに渡すことができる）。
【００１８】
[0026]  定義コンポーネント２０２は、アクションに対してアクション定義を生成するように構成することができる。例えば、定義コンポーネント２０２は、テーブル予約アクションに対してテーブル予約アクション定義２０６を維持することができる。テーブル予約アクション定義２０６は、アクションを定義する、および／またはアクションを実行するために使用される情報を指定する１つ以上のアクション・パラメーターを含むことができる。例えば、テーブル予約アクション定義２０６は、レストラン名パラメーター、レストラン場所パラメーター、電話番号パラメーター、予約時刻パラメーター、パーティ規模パラメーター、および／またはテーブル予約アクションを実行するために使用される他のアクション・パラメーターを含むことができる。テーブル予約アクション定義２０６は、タスク完了を容易にするために、テーブル予約アクションに対してアクション・コンテキストを生成するために使用することもできる（例えば、アクション・コンテキストは、テーブル予約アクション定義２０６内において指定された少なくとも何らかの情報を含むことができ、タスク完了のためにターゲット・アプリケーションをコンテキスト関連状態に起動することができるように、アクション・コンテキストをターゲット・アプリケーションに渡すことができる）。
【００１９】
[0027]  契約コンポーネント２０８は、タスコ実行コンポーネント（例えば、アプリケーション間通信によってタスクの完了を容易にするように構成される）と１つ以上の第三者アプリケーションとの間において１つ以上のデーター契約を維持するように構成することができる。例えば、契約コンポーネント２０８は、旅行アプリケーションに対してデーター契約２１０を作成することができる。データー契約２１０は、旅行アプリケーションが１つ以上のエンティティ（例えば、レストラン・エンティティ、カー・レンタル・エンティティ、ホテル・エンティティ等）および／または１つ以上のアクション（例えば、テーブル予約アクション、車予約アクション、ホテル比較アクション等）をサポートすることを明記することができる。このように、タスク完了を容易にするために、エンティティに対してアクションを実行することができるターゲット・アプリケーションとして、旅行アプリケーション２１０を識別することができる。
【００２０】
[0028]  図３Ａは、アプリケーション間通信によってタスク完了を容易にするように構成されたシステム３００の一例を示す。システム３００は、タスク実行コンポーネント３０８（例えば、プログラミング・モジュール、ウェブ・サービス、アプリケーション機能、および／または、例えば、シェア・チャームのような、オペレーティング・システムのユーザー・インターフェース）を含むことができる。タスク実行コンポーネント３０８は、地図表示アプリケーション３０２のような、実行中のアプリケーションに関連付けることができる。地図表示アプリケーション３０２は、コンテンツをユーザーに供給することができる（例えば、Mexican Cantina３０４を示す地域の地図、および都心にある書籍店）。タスク実行コンポーネント３０８は、地図表示アプリケーション３０２のコンテンツ内に含まれる、Mexican Cantinaエンティティのようなエンティティを識別するように構成することができる。例えば、タスク実行コンポーネント３０８は、Mexican Cantinaエンティティを定めるために使用することができるエンティティ定義レポジトリー３１２内においてレストラン・エンティティ定義を識別するために、地図表示アプリケーション３０２のコンテンツに関連するコンテキスト情報３０６を使用することができる。タスク実行コンポーネント３０８は、Mexican Cantinaエンティティに対して実行することができる１つ以上のアクションを露出することができる。例えば、タスク実行コンポーネント３０８は、メニュー確認アクション３２２および／またはテーブル予約アクション３２８をタスク・インターフェース３２０を通じて提示する（３１８）ことができる。一例では、地図表示アプリケーション３０２内にアクションを埋め込むこともできる（例えば、開発者によって予め定められる）。他の例では、アクション定義レポジトリー３１４内にあるアクション定義（例えば、メニュー確認アクション定義、テーブル予約アクション定義等）に基づいて、アクションを動的に識別することもできる。
【００２１】
[0029]  タスク実行コンポーネント３０８は、アクションの選択を識別するように構成することができる。一例では、ユーザーがメニュー確認アクション３２２を選択するのでもよい。タスク実行コンポーネント３０８は、エンティティに関連するエンティティ・コンテキストおよび／またはアクションに関連するアクション・コンテキストに基づいて、タスクを遂行するユーザーの意図３１０を判定するように構成することができる。例えば、エンティティ・コンテキスト（例えば、Mexican Cantinaエンティティに関連するコンテキスト情報。これは、地図表示アプリケーション３０２のコンテンツに関連するコンテキスト情報３０６から得られたもの、および／またはエンティティ定義レポジトリー３１２からのレストラン・エンティティ定義から得られたものでもよい）および／またはアクション・コンテキスト（例えば、メニュー確認アクションに関連するコンテキスト情報。これは、地図表示アプリケーション３０２のコンテンツに関連するコンテキスト情報３０６から得られたもの、および／またはアクション定義レポジトリー３１４からのメニュー確認アクション定義から得られたものでもよい）に基づいて、ユーザーの意図３１０は、ユーザーがMexican Cantina３０４のメニューを確認したいということを示すことができる。メニューｒ  ｕｓアプリケーション３２４および／または食品専門アプリケーション３２６というような、エンティティに対してアクションを実行することができる１つ以上のターゲット・アプリケーションを提示することができる（例えば、地図表示アプリケーション３０２内部のユーザー・インターフェースのようなタスク・インターフェース３２０、またはオペレーティング・システムのユーザー・インターフェースのような外部ユーザー・インターフェースを介して提示する３１８）。例えば、メニューｒ  ｕｓアプリケーション３２４および／または食品専門アプリケーション３２６は、データー契約レポジトリー３１６内にデーター契約を有することができ、このようなアプリケーションがMexican Cantinaエンティティおよび／またはメニュー確認アクション３２４をサポートすることを指定することができる。テーブル予約アクション３２８が選択された他の例では、Mexican Cantinaエンティティおよびテーブル予約アクション３２８が旅行アプリケーション３３０によってサポートされることを示す、旅行アプリケーション３３０とタスク実行コンポーネント３０８との間におけるデーター契約に基づいて、タスク・インターフェース３２０を介して旅行アプリケーション３３０を提示することができる。このように、ユーザーはターゲット・アプリケーションを選択することができ、タスク完了のために、コンテキスト関連状態において起動することができる（例えば、図３Ｂに示す通り）。
【００２２】
[0030]  図３Ｂは、アプリケーション間通信によってタスク完了を容易にするように構成されたシステム３４０の一例を示す。尚、一例では、システム３４０は図３Ａのシステム３００に対応することが認められよう。例えば、システム３４０は、タスク実行コンポーネント３７０を含むことができる。タスク実行コンポーネント３７０を、地図表示アプリケーション（例えば、図３Ａの３０２）のような、実行中のアプリケーションに関連付けることができる。地図表示アプリケーションのコンテンツ内に現れるMexican Cantinaエンティティのようなエンティティに基づいて、Mexican Cantinaエンティティに対して実行することができる１つ以上のアクションおよび／またはMexican Cantinaエンティティに対してアクションを実行することができる１つ以上のアプリケーションを含むタスク・インターフェース（例えば、図３Ａの３２０）を提示することができる。
【００２３】
[0031]  タスク実行コンポーネント３７０は、Mexican Cantinaエンティティに対するテーブル予約アクション（例えば、図３Ａの３２８）に関連する旅行アプリケーション３３０のようなアプリケーションの選択３４２を受けるように構成することができる（例えば、ユーザーが、図３Ａのタスク・インターフェース３２０内で旅行アプリケーション３３０を選択したとしてもよい）。タスク実行コンポーネント３７０は、地図表示アプリケーション（例えば、図３Ａの３０２）からおよび／またはテーブル予約アクション（例えば、図３Ａの３２８）を実行するために使用される情報に対応する１つ以上のアクション・パラメーターを含むテーブル予約アクション定義からのコンテキスト情報（例えば、図３Ａの３０６）に基づいて、テーブル予約アクション・コンテキスト３４４を識別することができる。テーブル予約アクション・コンテンツ３４４は、レストラン名、レストランの場所、パーティの規模等のような、テーブル予約アクションを実行するために使用される情報を含むことができる。タスク実行コンポーネント３７０は、地図表示アプリケーション（例えば、図３Ａの３０２）からおよび／またはMexican Cantinaエンティティを記述する情報に対応する１つ以上のエンティティ・パラメーターを含むレストラン・エンティティ定義からのコンテキスト情報（例えば、図３Ａの３０６）に基づいて、Mexican Cantinaエンティティを定めるレストラン・エンティティ・コンテキスト３４６を識別することができる。
【００２４】
[0032]  タスク実行コンポーネント３７０は、テーブル予約アクション・コンテキスト３４４および／またはレストラン・エンティティ・コンテキスト３４６にしたがって旅行アプリケーション３３０を起動することができるように、テーブル予約アクション・コンテキスト３４４および／またはレストラン・エンティティ・コンテキスト３４６を旅行アプリケーション３３０に受け渡す（３４８）ことができる（例えば、オペレーティング・システムの通信モデルを利用する）。例えば、旅行アプリケーション３３０をテーブル予約書式内に開くことができる。テーブル予約書式には、レストラン名３５２としてのMexican Cantina、レストランの場所３５４としての都心、および／または電話番号３５６としての５５５−５５５−５５５５のような、テーブル予約アクション・コンテキスト３４４および／またはレストラン・エンティティ・コンテキスト３４６からの少なくとも一部の情報が埋められてもよい。一例では、旅行アプリケーション３３０を没入表示状態（例えば、最大画面等）で起動することもできる。他の例では、旅行アプリケーション３３０は、実行中のアプリケーションと並んで表示されるオーバーレイ・インターフェース（例えば、シェア・チャームのような、オペレーティング・システムのユーザー・インターフェース）内で起動することもできる。このように、ユーザーは、例えば、適した機能を求めるための過度な検索および／または冗長な情報の手作業による入力を行うことなく、Mexican Cantinaにおいて効率的にテーブルを予約することができる。
【００２５】
[0033]  一例では、システム３４０は分析コンポーネント３５８を含むこともできる。分析コンポーネント３５８は、エンティティ・アクション・ログ３６０を維持するように構成することができる。分析コンポーネント３５８は、旅行アプリケーション３３０の起動に基づいて、エンティティ・アクション・ログ３６０内にエントリーを生成することができる。例えば、エントリーは、タスクを完了するために、ターゲット・アプリケーションによってエンティティに対してアクションが実行されたことを明記することができる（例えば、旅行アプリケーション３３０がテーブル予約アクションをMexican Cantinaエンティティに対して実行した）。エンティティ・アクション・ログ３６０は、アクションが選択された回数、アクションを実行するためにアプリケーションが起動された回数等といような、種々の情報および／またはメトリックを含むことができる。エンティティ・アクション・ログ３６０は、第三者アプリケーション（例えば、第三者アプリケーションの開発者）に露出されてもよく、第三者アプリケーションがコンテキスト・アウェアなタスク完了のためにターゲット・アプリケーションとして使用されることを許可することができるデーター契約を作成するために、第三者アプリケーションをタスク実行コンポーネント３７０に(register with)登録することができる。
【００２６】
[0034]  図４Ａは、アプリケーション間通信によってタスク完了を容易にするように構成されたシステム４００の一例を示す。システム４００は、タスク実行コンポーネント４０８（例えば、プログラミング・モジュール、ウェブ・サービス、アプリケーション機能、および／またはシェア・チャームのようなオペレーティング・システムのユーザー・インターフェース）を含むことができる。タスク実行コンポーネント４０８は、ソーシャル・ネットワーク・アプリケーション４０２のような実行中のアプリケーションと関連付けることができる。ソーシャル・ネットワーク・アプリケーション４０２は、コンテンツをユーザーに提示することができる（例えば、２０１３年型スポーツ・カー・モデル（Ｘ）についてのユーザーによるソーシャル・ネットワーク・ポスト）。タスク実行コンポーネント４０８は、ソーシャル・ネットワーク・アプリケーション４０２のコンテンツ内に含まれる、スポーツ・カー・モデル（Ｘ）エンティティのようなエンティティを識別するように構成することができる。例えば、タスク実行コンポーネント４０８は、エンティティ定義レポジトリー４１２内において、スポーツ・カー・モデル（Ｘ）エンティティを定めるために使用することができる車エンティティ定義を識別するために、ソーシャル・ネットワーク・アプリケーション４０２のコンテンツに関連するコンテキスト情報４０６を使用することができる。タスク実行コンポーネント４０８は、スポーツ・カー・モデル（Ｘ）エンティティに対して実行することができる１つ以上のアクションを露出することができる。例えば、タスク実行コンポーネント４０８は、車見積もりアクション４２２および／または車組立アクション４２８をタスク・インターフェース４２０を通じて提示する（４１８）ことができる。一例では、ソーシャル・ネットワーク・アプリケーション４０２内にアクションを埋め込むこともできる（例えば、開発者によって予め定められる）。他の例では、アクション定義レポジトリー４１４内におけるアクション定義に基づいて、アクションを動的に識別することもできる（例えば、車見積もりアクション定義、車組立アクション定義等）。
【００２７】
[0035]  タスク実行コンポーネント４０８は、アクションの選択を識別するように構成することができる。一例では、ユーザーが車見積もりアクション４２２を選択することができる。タスク実行コンポーネント４０８は、エンティティに関連するエンティティ・コンテキストおよび／またはアクションに関連するアクション・コンテキストに基づいて、タスクを遂行するユーザーの意図４１０を判定するように構成することができる。例えば、エンティティ・コンテキスト（例えば、スポーツ・カー・モデル（Ｘ）エンティティに関連するコンテキスト情報。これはソーシャル・ネットワーク・アプリケーション４０２のコンテンツに関連するコンテキスト情報４０６から、および／またはエンティティ定義レポジトリー４１２からの車エンティティ定義から引き出されたのでもよい）および／またはアクション・コンテキスト（例えば、車見積もりアクション４２２に関連するコンテキスト情報。これは、ソーシャル・ネットワーク・アプリケーション４０２のコンテンツに関連するコンテキスト情報４０６から引き出されたのでもよく、および／またはアクション定義レポジトリー４１４からの車見積もりアクション定義から引き出されたのでもよい）に基づいて、ユーザーの意図４１０は、ユーザーがスポーツ・カー・モデル（Ｘ）エンティティに対する車の見積もりを得たいということを示すことができる。車トレーダ・アプリケーション４２４および／またはオート・ディーラー・アプリケーション４２６のような、エンティティに対してアクションを実行することができる１つ以上のターゲット・アプリケーションを提示することができる（例えば、ソーシャル・ネットワーク・アプリケーション４０２内にあるユーザー・インターフェースまたは、オペレーティング・システムのユーザー・インターフェースのような外部ユーザー・インターフェースというような、タスク・インターフェース４２０を通じて提示される（４１８））。例えば、車トレーダ・アプリケーション４２４および／またはオート・ディーラー・アプリケーション４２６は、データー契約レポジトリー４１６内にデーター契約を有することができ、このようなアプリケーションがスポーツ・カー・モデル（Ｘ）エンティティおよび／または車見積もりアクション４２２をサポートすることを指定することができる。車組立アクション４２８が選択された他の例では、スポーツ・カー・モデル（Ｘ）エンティティおよび車組立アクション４２８が車製造アプリケーション４３０によってサポートされることを示す、車製造アプリケーション４３０とタスク実行コンポーネント４０８との間におけるデーター契約に基づいて、タスク・インターフェース４２０を通じて車製造アプリケーション４３０を提示することができる。このように、ユーザーは、ターゲット・アプリケーションを選択することができ、タスク完了のためにコンテキスト関連状態において起動することができる（例えば、図４Ｂに示す通り）。
【００２８】
[0036]  図４Ｂは、アプリケーション間通信によってタスク完了を容易にするように構成されたシステム４４０の一例を示す。尚、一例では、システム４４０は図４Ａのシステム４００に対応することは、認められよう。例えば、システム４４０は、タスク実行コンポーネント４７０を含むことができる。タスク実行コンポーネント４７０は、ソーシャル・ネットワーク・アプリケーション（例えば、図４Ａの４０２）のような、実行中のアプリケーションと関連付けることができる。ソーシャル・ネットワーク・アプリケーション（例えば、図４Ａの４０２）のコンテンツ内に現れる、スポーツ・カー・モデル（Ｘ）エンティティのようなエンティティに基づいて、スポーツ・カー・モデル（Ｘ）エンティティに対して実行することができる１つ以上のアクション、および／またはスポーツ・カー・モデル（Ｘ）エンティティに対してアクションを実行することができる１つ以上のアプリケーションを含むタスク・インターフェース（例えば、図４Ａの４２０）を提示することができる。
【００２９】
[0037]  タスク実行コンポーネント４７０は、スポーツ・カー・モデル（Ｘ）エンティティに対する車見積もりアクション（例えば、図４Ａの４２２）に関連するオート・ディーラー・アプリケーション４２６のようなアプリケーションの選択４４２を受けるように構成することができる（例えば、ユーザーが図４Ａのタスク・インターフェース４２０内においてオート・ディーラー・アプリケーション４２６を選択しているのでもよい）。タスク実行コンポーネント４７０は、ソーシャル・ネットワーク・アプリケーション（例えば、図４Ａの４０２）から、および／または車見積もりアクション（例えば、図４Ａの４２２）を実行するために使用される情報に対応する１つ以上のアクション・パラメーターを含む車見積もりアクション定義からのコンテキスト情報（例えば、図４Ａの４０６）に基づいて、車見積もりアクション・コンテキスト４４４を識別することができる。車見積もりアクション・コンテキスト４４４は、車のモデル、モデルの年式、場所、下取り情報、車のオプション等というような、車見積もりアクションを実行するために使用される情報を含むことができる。タスク実行コンポーネント４７０は、ソーシャル・ネットワーク・アプリケーション（例えば、図４Ａの４０２）から、および／またはスポーツ・カー・モデル（Ｘ）エンティティを記述する情報に対応する１つ以上のエンティティ・パラメーターを含む車エンティティ定義からのコンテキスト情報（例えば、図４Ａの４０６）に基づいて、スポーツ・カー・モデル（Ｘ）エンティティを定める車エンティティ・コンテキスト４４６を識別することができる。
【００３０】
[0038]  タスク実行コンポーネント４７０は、車見積もりアクション・コンテキスト４４４および／または車エンティティ・コンテキスト４４６にしたがってオート・ディーラー・アプリケーション４２６を起動できるように、車見積もりアクション・コンテキスト４４４および／または車エンティティ・コンテキスト４４６をオート・ディーラー・アプリケーション４２６に渡す（４４８）ことができる（例えば、オペレーティング・システムの通信モデルを利用する）。例えば、オート・ディーラー・アプリケーション４２６を車見積もり書式内に開くことができる。車見積もり書式には、車モデル４５２としてのスポーツ・カー・モデル（Ｘ）、モデル年式４５４としての２０１３、および／または場所４５６としての現在のユーザーの場所というような、車見積もりアクション・コンテキスト４４４および／または車エンティティ・コンテキスト４４６からの少なくとも一部の情報が埋められてもよい（例えば、ユーザー・デバイスの現在の（例えば、ＧＰＳ）位置のような、オート・ディーラー・アプリケーションをホストするユーザー・デバイスに関連する補足データーを、車見積もり書式に埋める値として使用してもよい）。一例では、オート・ディーラー・アプリケーション４２６を没入表示状態（例えば、最大画面等）で起動することもできる。他の例では、オート・ディーラー・アプリケーション４２６を、実行中のアプリケーションと並んで表示されるオーバーレイ・インターフェース（例えば、シェア・チャームのようなオペレーティング・システムのユーザー・インターフェース）内部において起動することもできる。このように、ユーザーは、例えば、適した機能を求めるための過度な検索および／または冗長な情報の手作業による入力を行うことなく、スポーツ・カー・モデル（Ｘ）に対する車の見積もりを効率的に入手することができる。
【００３１】
[0039]  一例では、システム４４０は分析コンポーネント４５８を含むこともできる。分析コンポーネント４５８は、エンティティ・アクション・ログ４６０を維持するように構成することができる。分析コンポーネント４５８は、オート・ディーラー・アプリケーション４２６の起動に基づいて、エンティティ・アクション・ログ４６０内にエントリーを生成することができる。例えば、エントリーは、タスクを完了するためにターゲット・アプリケーションによってエンティティに対して実行されたアクションを明記することができる（例えば、オート・ディーラー・アプリケーション４２６がスポーツ・カー・モデル（Ｘ）エンティティに対して車見積もりアクションを実行した）。エンティティ・アクション・ログ４６０は、アクションが選択された回数、アクションを実行するためにアプリエーションが起動された回数等のような、種々の情報および／またはメトリックを含むことができる。エンティティ・アクション・ログ４６０は第三者アプリケーション（例えば、第三者アプリケーションの開発者）に露出されてもよく、第三者アプリケーションがコンテキスト・アウェアなタスク完了のためにターゲット・アプリケーションとして使用されることを許可することができるデーター契約を作成するために、第三者アプリケーションをタスク実行コンポーネント４７０に登録することができる。
【００３２】
[0040]  コンテキスト・アウェアなタスク実行のためにターゲット・アプリケーションを登録する実施形態を、図５における方法例５００によって示す。５０２において、この方法が開始する。５０４において、ターゲット・アプリケーションとのデーター契約を締結するための登録要求を受けることができる（例えば、ターゲット・アプリケーションと、タスク完了を容易にするためにコンテキスト関連状態にターゲット・アプリケーションを起動するように構成されたタスク実行コンポーネントとの間におけるデーター契約）。登録要求は、ターゲット・アプリケーションによってサポートされるエンティティおよび／またはアクション（例えば、ダイニング・アプリケーション(dining application)によってエンティティに対して実行することができるアクション）を含むことができる。５０６において、ターゲット・アプリケーションとのデーター契約を作成する。このデーター契約は、ターゲット・アプリケーションがアクションをエンティティに対して実行できることを明記することができる。
【００３３】
[0041]  ５０８において、エンティティに対するエンティティ定義を維持することができる。エンティティ定義は、エンティティを定める１つ以上のエンティティ・パラメーターを含むことができる（例えば、レストラン・エンティティ定義は、レストラン名パラメーター、場所パラメーター、価格格付け(price rating)パラメーター等を含むことができる）。例えば、１つのエンティティ・パラメーターが、あるアクションをエンティティに対して実行できることを明記することができる（例えば、テーブル予約アクションをレストラン・エンティティに対して実行することができる）。５１０において、アクションに対するアクション定義を維持することができる。アクション定義は、アクションを定める１つ以上のアクション・パラメーターを含むことができる。例えば、１つのアクション・パラメーターが、アクションを実行するために使用される情報（例えば、テーブル予約アクションに対してレストランの場所）を指定することができる。このように、データー契約、エンティティ定義、および／またはアクション定義は、エンティティ、そのエンティティに対して実行できるアクション、および／またはそのエンティティに対してそのアクションを実行できるターゲット・アプリケーションを識別するために使用することができる。
【００３４】
[0042]  一例では、レストラン・エンティティのようなエンティティを、地図表示アプリケーションのような実行中のアプリケーションのコンテンツ内において識別することができる。エンティティ定義内における少なくとも１つのエンティティ・パラメーターの値は、エンティティ・コンテキストを生成するために実行中のアプリケーションから引き出されたエンティティのコンテキスト情報に基づいて指定することができる。例えば、レストラン・エンティティ定義内におけるレストラン名エンティティ・パラメーターの値として、Mexican Cantina（例えば、地図表示アプリケーションのコンテンツから抽出された）を指定することができる。テーブル予約アクションのような、このエンティティに対して実行できるアクションを露出することができる。アクションの選択に応答して、アクション定義内における少なくとも１つのアクション・パラメーターの値を、アクション・コンテキストを生成するために実行中のアプリケーションから引き出されたコンテキスト情報に基づいて指定することができる。例えば、テーブル予約アクション定義内における場所アクション・パラメーターの値として、都心（例えば、地図表示アプリケーション内に表示された現在地から引き出される）を指定することができる。ダイニング・アプリケーションのような、アクションをエンティティに対して実行できるターゲット・アプリケーションを提示することができる。ターゲット・アプリケーションの選択に応答して、タスクを完了するためにエンティティ・コンテキストおよび／またはアクション・コンテキストにしたがってターゲット・アプリケーションを起動できるように、エンティティ・コンテキストおよび／またはアクション・コンテキストをターゲット・アプリケーションに渡すことができる（例えば、コンテキスト関連予約書式内に、ダイニング・アプリケーションを起動することができる）。５１２において、本方法は終了する。尚、開示した主題に対する変形も考えられることは認められよう。例えば、５０８および／または５１０あるいは図５は、実施形態によっては任意選択肢であってもよい。
【００３５】
[0043]  更に他の実施形態は、本明細書において紹介した技法の内１つ以上を実現するように構成されたプロセッサー実行可能命令を含むコンピューター読み取り可能媒体を伴う。これらの方法で考案することができるコンピューター読み取り可能媒体例を図６に示す。ここで、実施態様６００はコンピューター読み取り可能媒体６１６（例えば、ＣＤ−Ｒ、ＤＶＤ−Ｒ、またはハード・ディスク・ドライブのプラッター）を含み、その上にコンピューター読み取り可能データー６１４がエンコードされる。一方、このコンピューター読み取り可能データー６１４は、本明細書において明示した原理の１つ以上にしたがって動作するように構成された１組のコンピューター命令６１２を含む。このような一実施形態６００では、プロセッサー実行可能コンピューター命令６１２は、例えば、図１の方法例１００の少なくとも一部、および／または図５の方法例５００の少なくとも一部というような、方法６１０を実行するように構成することができる。このような他の実施形態では、プロセッサー実行可能命令６１２は、例えば、図２のシステム例２００の少なくとも一部、図３Ａのシステム例３００の少なくとも一部、図３Ｂのシステム例３４０の少なくとも一部、図４Ａのシステム例４００の少なくとも一部、および／または図４Ｂのシステム例４４０の少なくとも一部というような、システムを実現するように構成することができる。 本明細書において紹介した技法にしたがって動作するように構成されるこのようなコンピューター読み取り可能媒体の多くは、当業者によって考案することができる。
【００３６】
[0044]  構造的特徴および／または方法論的アクト(methodological act)に特定的な文言で主題について説明したが、添付する特許請求の範囲において定められる主題は、必ずしも以上で説明した特定的な特徴やアクトに限定されないことは理解されてしかるべきである。逆に、以上で説明した特定的な特徴やアクトは、特許請求の範囲を実現する形態例として開示されたまでである。
【００３７】
[0045]   本願において使用する場合、「コンポーネント」、「モジュール」、「システム」、「インターフェース」等という用語は、一般に、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピューター関連エンティティを指すことを意図している。例えば、コンポーネントは、プロセッサー上で実行するプロセス、プロセッサー、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および／またはコンピューターであってもよいが、これらに限定されるのではない。一例として、コントローラー上で実行するアプリケーションおよびこのコントローラーの双方がコンポーネントであることができる。１つ以上のコンポーネントが１つのプロセスおよび／または実行のスレッド内に存在してもよく、更に１つのコンポーネントが１つのコンピューター上に局在されること、および／または２つ以上のコンピューター間で分散されることも可能である。
【００３８】
[0046]  更に、特許請求する主題は、コンピューターを制御して開示した主題を実現するためのソフトウェア、ファームウェア、ハードウェア、またはその任意の組み合わせを生成するための標準的なプログラミングおよび／または設計技法を使用して、方法、装置、または製品として実現することもできる。「製品」という用語は、本明細書において使用する場合、任意のコンピューター読み取り可能デバイス、担体、または媒体からアクセス可能なコンピューター・プログラムを包含することを意図している。勿論、特許請求する主題の範囲や主旨から逸脱することなく、この構成には多くの変更が行われてもよいことを当業者は認めよう。
【００３９】
[0047]  図７および以下の説明(discussion)は、本明細書において明示した発明(provision)の１つ以上の実施形態を実現するのに適した計算環境の端的で総合的な説明に供する。図７の動作環境は、適した動作環境の一例に過ぎず、動作環境の使用範囲や機能に関して限定を示唆する意図は全くない。計算デバイスの例には、パーソナル・コンピューター、サーバ・コンピューター、ハンドヘルドまたはラップトップ・デバイス、移動体デバイス（移動体電話機、パーソナル・ディジタル・アシスタント（ＰＤＡ）、メディア・プレーヤー等）、マルチプロセッサー・システム、消費者用電子機器、ミニ・コンピューター、メインフレーム・コンピューター、以上のシステムまたはデバイスの内任意のものを含む分散型計算環境等が含まれるが、これらに限定されるのではない。
【００４０】
[0048]  必須ではないが、実施形態は、１つ以上の計算デバイスによって実行される「コンピューター読み取り可能命令」という一般的なコンテキストで説明される。コンピューター読み取り可能命令は、コンピューター読み取り可能媒体（以下で論ずる）によって流通させることができる。コンピューター読み取り可能命令は、関数、オブジェクト、アプリケーション・プログラミング・インターフェース（ＡＰＩ）、データー構造等というような、プログラム・モジュールとして実現することができ、特定のタスクを実行するか、または特定の抽象データー型を実装する。通例、コンピューター読み取り可能命令の機能は、種々の環境において所望される通りに、組み合わせることまたは分散させることができる。
【００４１】
[0049]  図７は、本明細書において提供した１つ以上の実施形態を実現するように構成された計算デバイス７１２を含むシステム７１０の一例を示す。一構成では、計算デバイス７１２は少なくとも１つの処理ユニット７１６とメモリー７１８とを含む。計算デバイスの正確な構成およびタイプに依存して、メモリー７１８は、揮発性（例えば、ＲＡＭのような）、不揮発性（例えば、ＲＯＭ、フラッシュ・メモリー等のような）、またはこれら２つの何らかの組み合わせであってもよい。この構成は、図７では破線７１４によって示される。
【００４２】
[0050]  他の実施形態では、デバイス７１２は追加の機構（feature)および／または機能を含むこともできる。例えば、デバイス７１２は、磁気ストレージ、光ストレージ等を含むがこれらに限定されない追加のストレージ（例えば、リムーバブルおよび／または非リムーバブル）も含むことができる。このような追加のストレージは、図７ではストレージ７２０によって示される。一実施形態では、本明細書において提供した１つ以上の実施形態を実現するコンピューター読み取り可能命令は、ストレージ７２０内にあってもよい。また、ストレージ７２０は、オペレーティング・システム、アプリケーション・プログラム等を実現するための他のコンピューター読み取り可能命令も格納することができる。コンピューター読み取り可能命令は、例えば、処理ユニット７１６による実行のために、メモリー７１８にロードすることができる。
【００４３】
[0051]  「コンピューター読み取り可能媒体」という用語は、本明細書において使用する場合、コンピューター記憶媒体を含む。コンピューター記憶媒体は、揮発性および不揮発性の、リムーバブルおよび非リムーバブル媒体を含み、コンピューター読み取り可能命令または他のデーターのような情報の格納のための任意の方法または技術で実現される。メモリー７１８およびストレージ７２０は、コンピューター記憶媒体の例である。コンピューター記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリーまたは他のメモリー技術、ＣＤ−ＲＯＭ、ディジタル・バーサタイル・ディスク（ＤＶＤ）または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク記憶デバイスまたは他の磁気記憶デバイス、あるいは所望の情報を格納するために使用することができデバイス７１２によってアクセスすることができる任意の他の媒体を含むが、これらに限定されるのではない。このようなコンピューター記憶媒体はいずれも、デバイス７１２の一部であることができる。
【００４４】
[0052]  また、デバイス７１２は、デバイス７１２が他のデバイスと通信することを可能にする通信接続（１つまたは複数）７２６も含むことができる。通信接続（１つまたは複数）７２６は、モデム、ネットワーク・インターフェース・カード（ＮＩＣ）、統合ネットワーク・インターフェース、無線周波数送信機／受信機、赤外線ポート、ＵＳＢ接続、または計算デバイス７１２を他の計算デバイスに接続するための他のインターフェースを含むことができるが、これらに限定されるのではない。通信接続（１つまたは複数）７２６は、有線接続またはワイヤレス接続を含むことができる。通信接続（１つまたは複数）７２６は、通信媒体を送信および／または受信することができる。
【００４５】
[0053]  「コンピューター読み取り可能媒体」という用語は、通信媒体を含むことができる。通信媒体は、通例、搬送波のような「変調データー信号」または他の移送メカニズムにコンピューター読み取り可能命令または他のデーターを具体化し、あらゆる情報配信媒体を含む。「変調データー信号」という用語は、この信号に情報をエンコードするような仕方でその特性の１つ以上が設定または変化させられた信号を含むことができる。
【００４６】
[0054]  デバイス７１２は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、赤外線カメラ、ビデオ入力デバイス、および／またはあらゆる他の入力デバイスというような、入力デバイス（１つまたは複数）７２４を含むことができる。また、１つ以上のディスプレイ、スピーカー、プリンター、および／またはあらゆる他の出力デバイスというような出力デバイス（１つまたは複数）７２２も、デバイ７１２に含むことができる。入力デバイス（１つまたは複数）７２４および出力デバイス（１つまたは複数）７２２は、有線接続、ワイヤレス接続、またはそのいずれかの組み合わせによって、デバイス７１２に接続することができる。一実施形態では、他の計算デバイスからの入力デバイスまたは出力デバイスを計算デバイス７１２の入力デバイス（１つまたは複数）７２４または出力デバイス（１つまたは複数）７２２として使用することもできる。
【００４７】
[0055]  計算デバイス７１２のコンポーネントは、バスのような種々の相互接続によって接続されてもよい。このような相互接続は、ＰＣＩ Expressのような周辺コンポーネント相互接続（ＰＣＩ）、ユニバーサル・シリアル・バス（ＵＳＢ）、firewire（IEEE 1394)、光バス構造等を含むことができる。他の実施形態では、計算デバイス７１２のコンポーネントは、ネットワークによって相互接続されてもよい。例えば、メモリー７１８は、ネットワークによって相互接続された異なる物理位置に配置された多数の物理メモリー・ユニットで構成されてもよい。
【００４８】
[0056]  当業者は、コンピューター読み取り可能命令を格納するために利用される記憶デバイスをネットワークにわたって分散させてもよいことを認めるであろう。例えば、ネットワーク７２８を介してアクセス可能な計算デバイス７３０が、本明細書において提要した１つ以上の実施形態を実現するためのコンピューター読み取り可能命令を格納することもできる。計算デバイス７１２は、計算デバイス７３０にアクセスし、実行のために、コンピューター読み取り可能命令の一部または全部をダウンロードすることができる。あるいは、計算デバイス７１２は、必要に応じて、コンピューター読み取り可能命令の複数の部分(pieces)をダウンロードすることもでき、即ち、一部の命令を計算デバイス７１２において実行し、一部を計算デバイス７３０において実行することもできる。
【００４９】
[0057]  実施形態の種々の動作が、本明細書において示された。一実施形態では、説明した動作の１つ以上が、１つ以上のコンピューター読み取り可能媒体上に格納されたコンピューター読み取り可能命令を構成することができ、計算デバイスによって実行されると、この計算デバイスに、説明した動作を実行させる。これらの動作の一部または全部を説明した順序は、これらの動作が必然的に順序に依存することを暗示するように解釈してはならない。この説明の恩恵を得た当業者には、代わりの順序付けも認められよう。更に、本明細書において示した各実施形態において、必ずしも全ての動作があるとは限らないことは理解されよう。
【００５０】
[0058]  更に、「一例の」という単語は、本明細書では例、実例、または例示として供することを意味するために使用されている。本明細書において「一例」として説明した態様または構造(design)はいずれも、他の態様または設計に対して必ずしも有利であるとは解釈されない。むしろ、一例のという単語の使用は、具体的に概念を紹介することを意図している。本願において使用する場合、「または」という用語は、排他的な「または」ではなく、包含的な「または」を意味することを意図している。即ち、別段明示されない限り、または文脈から明らかでない限り、「ＸはＡまたはＢを採用する」とは、自然な包含的置換のいずれをも意味することを意図している。即ち、ＸがＡを採用する、ＸがＢを採用する、またはＸがＡおよびＢの双方を採用する場合、以上の場合のいずれにおいても、「ＸはＡまたはＢを採用する」が満たされる。加えて、本願および添付する特許請求の範囲において使用する場合、単数形を対象にすることが別段明示されていない限り、または文脈から明らかでない限り、冠詞「ａ」および「ａｎ」は、一般に、「１つ以上」を意味すると解釈することができる。また、ＡおよびＢ等(and/or the like)の少なくとも１つは、通常、ＡまたはＢあるいはＡおよびＢ双方を意味する。
【００５１】
[0059]  また、本開示は、１つ以上の実施態様に関して示し説明したが、本明細書および添付図面の読解(reading and understanding)に基づいて、同等の変形(alteration)および変更(modification)が当業者には想起されよう。本開示は、このような変更および変形を全て含み、以下の請求項の範囲によってのみ限定されるものとする。特に、以上で説明したコンポーネント（例えば、エレメント、リソース等）によって実行される種々の機能に関して、このようなコンポーネントを説明するために使用された用語は、別段指示されていなければ、説明されたコンポーネントの指定された機能を実行するあらゆるコンポーネント（例えば、機能的に同等なコンポーネント）に対応することを意図しており、本明細書において例示された本開示の実施態様例において当該機能を実行する、開示された構造と構造的に同等でなくてもよい。加えて、本開示の特定的な特徴について、様々な実施態様の内１つだけに関して開示したが、このような特徴は、あらゆる所与のまたは特定の用途に望まれるようにまたは有利になるように、他の実施態様の１つ以上の他の特徴と組み合わせることもできる。更に、「含む」(includes)、「有する」(having, has)、「と」(with)という用語またはこれらの変形が詳細な説明または特許請求の範囲において使用される限りにおいて、このような用語は、「備える」(comprising)という用語と同様に、包含的であることを意図している。
【図１】
0006263199.tif 000002
【図２】
0006263199.tif 000003
【図３Ａ】
0006263199.tif 000004
【図３Ｂ】
0006263199.tif 000005
【図４Ａ】
0006263199.tif 000006
【図４Ｂ】
0006263199.tif 000007
【図５】
0006263199.tif 000008
【図６】
0006263199.tif 000009
【図７】
0006263199.tif 000010