特許第6263199号(P6263199)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ マイクロソフト テクノロジー ライセンシング,エルエルシーの特許一覧

特許6263199アプリケーション間通信によるタスク完了
<>
  • 特許6263199-アプリケーション間通信によるタスク完了 図000002
  • 特許6263199-アプリケーション間通信によるタスク完了 図000003
  • 特許6263199-アプリケーション間通信によるタスク完了 図000004
  • 特許6263199-アプリケーション間通信によるタスク完了 図000005
  • 特許6263199-アプリケーション間通信によるタスク完了 図000006
  • 特許6263199-アプリケーション間通信によるタスク完了 図000007
  • 特許6263199-アプリケーション間通信によるタスク完了 図000008
  • 特許6263199-アプリケーション間通信によるタスク完了 図000009
  • 特許6263199-アプリケーション間通信によるタスク完了 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6263199
(24)【登録日】2017年12月22日
(45)【発行日】2018年1月17日
(54)【発明の名称】アプリケーション間通信によるタスク完了
(51)【国際特許分類】
   G06F 9/445 20180101AFI20180104BHJP
   G06F 9/48 20060101ALI20180104BHJP
【FI】
   G06F9/06 650A
   G06F9/46 457
【請求項の数】18
【全頁数】23
(21)【出願番号】特願2015-548021(P2015-548021)
(86)(22)【出願日】2013年12月13日
(65)【公表番号】特表2016-506568(P2016-506568A)
(43)【公表日】2016年3月3日
(86)【国際出願番号】US2013075182
(87)【国際公開番号】WO2014093929
(87)【国際公開日】20140619
【審査請求日】2016年12月7日
(31)【優先権主張番号】13/713,375
(32)【優先日】2012年12月13日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100101373
【弁理士】
【氏名又は名称】竹内 茂雄
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(72)【発明者】
【氏名】クマール,アミト
(72)【発明者】
【氏名】サドゥーカ,シャジブ
(72)【発明者】
【氏名】ジアーン,ジャオウエイ
【審査官】 多賀 実
(56)【参考文献】
【文献】 米国特許出願公開第2012/0144281(US,A1)
【文献】 国際公開第2010/010967(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/44
G06F 9/445
G06F 9/48
(57)【特許請求の範囲】
【請求項1】
アプリケーション間通信によってタスク完了を容易にするシステムであって、
タスク実行コンポーネントを含み、
前記タスク実行コンポーネントが、
第一のアプリケーションのコンテンツ内部に含まれるエンティティを識別するステップと、
前記エンティティに対して実行することができるアクションを提示するステップと、
前記アクションの選択を受け付けるステップと、
データー契約レポジトリーから、選択されたアクションを前記エンティティに対して実行することができる少なくとも一つのターゲット・アプリケーションを識別するステップであって、前記データー契約レポジトリーは複数のアプリケーションについての契約を含み、前記アプリケーションについての契約は、前記アプリケーションが対応するエンティティと、前記アプリケーションが対応するエンティティに関連するアクションを含むステップと、
前記識別された少なくとも一つのターゲット・アプリケーションを提示するステップと、
前記識別された少なくとも一つのターゲット・アプリケーションの選択を受け付けるステップと、
前記識別された少なくとも一つのターゲット・アプリケーションの選択を受け付けたことに応答して、前記第一のアプリケーションから選択された前記ターゲット・アプリケーションに、前記エンティティに関連するエンティティ・コンテキストについての情報と、選択された前記アクションに関連するアクション・コンテキストについての情報を送るステップと、
メトリックスについてのログを維持するステップであって、前記メトリックスについてのログは、アクションが選択された回数、アクションを実行するためにアプリケーションが起動された回数の少なくともいずれか一方についての分析データーを含むステップと、
前記メトリックスについてのログを第三者アプリケーションに提示するステップと、
を実行するように構成される、システム。
【請求項2】
請求項1に記載のシステムにおいて、前記タスク実行コンポーネントがオペレーティング・システムのユーザー・インターフェースを含み、前記オペレーティング・システムのユーザー・インターフェースがシェア・チャームを含むシステム。
【請求項3】
請求項1又は2に記載のシステムにおいて、前記タスク実行コンポーネントが、更に、前記エンティティに関連するエンティティ・コンテキストについての情報と、選択された前記アクションに関連するアクション・コンテキストについての情報に基づいて、タスクを遂行するユーザーの意図を判定するステップを、実行するように構成される、システム。
【請求項4】
請求項1〜3のいずれか一項に記載のシステムにおいて、前記アクションが前記第一のアプリケーションに埋め込まれているシステム。
【請求項5】
請求項1〜4のいずれか一項に記載のシステムにおいて、前記タスク実行コンポーネントが、更に、
前記エンティティに基づいて前記アクションを動的に識別するステップと、
前記アクションを提示するステップと、
を実行するように構成される、システム。
【請求項6】
請求項1〜5のいずれか一項に記載のシステムにおいて、前記第一のアプリケーションと選択された前記ターゲット・アプリケーションの少なくともいずれか一方が、ウェブ・ブラウザ、ダウンロード可能なマーケットプレース・アプリケーション、クラウド・アプリケーション、ローカルにインストールされたアプリケーションの少なくともいずれか一つを含む、システム。
【請求項7】
請求項1〜6のいずれか一項に記載のシステムにおいて、前記識別された少なくとも一つのターゲット・アプリケーションを提示するステップは、
選択された前記ターゲット・アプリケーションが前記エンティティに対して前記アクションを実行できることを明記する、前記タスク実行コンポーネントと選択された前記ターゲット・アプリケーションとの間のデーター契約に基づいて、選択された前記ターゲット・アプリケーションが前記エンティティに対して選択された前記アクションを実行できるか判断するステップを、
含むシステム。
【請求項8】
請求項1〜7のいずれか一項に記載のシステムにおいて、前記タスク実行コンポーネントが、更に、実行中のアプリケーションと並べて表示することができるオーバーレイ・インターフェース内で、選択された前記ターゲット・アプリケーションを起動するように構成される、システム。
【請求項9】
請求項1〜8のいずれか一項に記載のシステムにおいて、前記タスク実行コンポーネントが、更に、オペレーティング・システムの通信モデルを利用し、選択された前記ターゲット・アプリケーションに、前記エンティティに関連するエンティティ・コンテキストについての情報と、選択された前記アクションに関連するアクション・コンテキストについての情報を送るように構成される、システム。
【請求項10】
請求項1〜9のいずれか一項に記載のシステムにおいて、分析コンポーネントを更に含み、前記分析コンポーネントは、
エンティティ・アクション・ログ内にエントリーを生成するステップであって、前記エントリーが、前記アクションが前記ターゲット・アプリケーションによって前記エンティティに対して実行されたことを明記する、ステップと、
前記エンティティ・アクション・ログを第三者アプリケーションに提示するステップと、
を実行するように構成される、システム。
【請求項11】
請求項1〜10のいずれか一項に記載のシステムにおいて、契約コンポーネントを更に含み、前記契約コンポーネントは、第三者アプリケーションが前記エンティティに対して前記アクションを実行できることを明記する、前記タスク実行コンポーネントと第三者アプリケーションとの間のデーター契約を生成するステップを、実行するように構成される、システム。
【請求項12】
請求項1〜11のいずれか一項に記載のシステムにおいて、前記タスク実行コンポーネントが、更に、
選択された前記ターゲット・アプリケーションについてのバック・コマンドを受け取るステップと、
選択された前記ターゲット・アプリケーションから、前記第一のアプリケーションと1つ以上のターゲット・アプリケーションを識別できるタスク・インターフェースの少なくともいずれか一方に移行するステップと、
を実行するように構成される、システム。
【請求項13】
請求項1〜12のいずれか一項に記載のシステムにおいて、前記識別された少なくとも一つのターゲット・アプリケーションを提示するステップは、前記エンティティと前記エンティティに関連するアクションに対応する前記識別された少なくとも一つのターゲット・アプリケーションの中から提示する、システム。
【請求項14】
請求項1〜13のいずれか一項に記載のシステムにおいて、定義コンポーネントを更に含み、前記定義コンポーネントは、
前記エンティティに関連するエンティティ・コンテキストについての情報を生成するために用いられる前記エンティティに対するエンティティ定義を生成し、前記エンティティ定義はエンティティを定義するための1つ以上のエンティティ・パラメータを含み、前記エンティティ・パラメータは前記エンティティに対して前記アクションを実行できることを明記するステップと、
選択された前記アクションに関連するアクション・コンテキストについての情報を生成するために用いられる前記アクションに対するアクション定義を生成し、前記アクション定義はアクションを定義するための1つ以上のアクション・パラメータを含み、前記アクション・パラメータは前記アクションを実行するために用いられる情報を明記するステップと、
を実行するように構成される、システム。
【請求項15】
アプリケーション間通信によってタスク完了を容易にする方法であって、
第一のアプリケーションのコンテンツ内部に含まれるエンティティを識別するステップと、
前記エンティティに対して実行することができるアクションを提示するステップと、
前記アクションの選択を受け付けるステップと、
データー契約レポジトリーから、選択されたアクションを前記エンティティに対して実行することができる少なくとも一つのターゲット・アプリケーションを識別するステップであって、前記データー契約レポジトリーは複数のアプリケーションについての契約を含み、前記アプリケーションについての契約は、前記アプリケーションが対応するエンティティと、前記アプリケーションが対応するエンティティに関連するアクションを含むステップと、
前記識別された少なくとも一つのターゲット・アプリケーションを提示するステップと、
前記識別された少なくとも一つのターゲット・アプリケーションの選択を受け付けるステップと、
前記識別された少なくとも一つのターゲット・アプリケーションの選択を受け付けたことに応答して、前記第一のアプリケーションから選択された前記ターゲット・アプリケーションに、前記エンティティに関連するエンティティ・コンテキストについての情報と、選択された前記アクションに関連するアクション・コンテキストについての情報を送るステップと、
メトリックスについてのログを維持するステップであって、前記メトリックスについてのログは、アクションが選択された回数、アクションを実行するためにアプリケーションが起動された回数の少なくともいずれか一方についての分析データーを含むステップと、
前記メトリックスについてのログを第三者アプリケーションに提示するステップと、
含む方法。
【請求項16】
請求項15に記載の方法において、前記識別された少なくとも一つのターゲット・アプリケーションを提示するステップは、
選択された前記ターゲット・アプリケーションが前記エンティティに対して前記アクションを実行できることを明記する、選択された前記ターゲット・アプリケーションとの間のデーター契約に基づいて、選択された前記ターゲット・アプリケーションが前記エンティティに対して選択された前記アクションを実行できるか判断するステップを、
含む方法。
【請求項17】
請求項15又は16に記載の方法を実行するためのプログラム。
【請求項18】
請求項15又は16に記載の方法を実行するためのプログラムを記録した記録媒体。
【発明の詳細な説明】
【背景技術】
【0001】
[0001] 多くのユーザーは、移動体電話機、タブレット・デバイス、および/またはパーソナル・コンピューターというような計算デバイスを利用して、種々のタイプのアクションを実行する。一例では、ユーザーが「今日のニュースは何か」という音声コマンドを移動体電話機に入力することがあり得る。移動体電話機は、ユーザーに、ニュース・ウェブサイト検索結果のリストをウェブ・ブラウザーを通じて供給することができる。他の例では、ユーザーが「映画のチケットを手配する」という検索クエリーを、タブレット・デバイスを介してアクセスされる検索エンジンを通じて入力することもあり得る。検索エンジンは、映画のチケットに関係があるとしてタグ付けできるウェブサイトのリストを供給することができる。ユーザーは、手作業で、映画の評判(review)、映画の上映時刻(show time)、および/または映画チケット手配サービスというような、映画の情報を提供することができる映画ウェブサイトを調査することができる。チケット手配サービスを発見した後、ユーザーは、映画チケット手配アクションを完了するために、チケット手配サービスによって要求される情報を提供すればよい。生憎、映画チケット手配アクションを完了するためには、特定の映画チケット発券アプリまたはウェブサイトを突き止めること、広範な手作業の入力、検索、試行錯誤、および/または冗長な情報の入力が必要となる場合がある。
【発明の概要】
【課題を解決するための手段】
【0002】
[0002] この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な要素や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を限定するために使用されることを意図するのでもない。
【0003】
[0003] 本明細書では、とりわけ、アプリケーション間通信を通じてタスク完了を容易にするための1つ以上のシステムおよび/または技法、および/またはコンテキスト・アウェア・タスク(contextually aware task)実行のためにターゲット・アプリケーションを登録するための1つ以上のシステムおよび/または技法を提供する。タスク完了を容易にする実施形態では、実行中のアプリケーション(current application)のコンテンツ内に含まれるエンティティを識別することができる。このエンティティは、人間のエンティティ、業務エンティティ、消費者製品エンティティ、時間エンティティ、場所エンティティ、物体エンティティ、および/または任意の他のタイプのエンティティを含むことができる。例えば、ソーシャル・ネットワーク・アプリケーションが、車エンティティを識別するために使用することができる、2013年型スポーツ・カー・モデル(X)について記述するコンテンツを含むソーシャル・ネットワーク・ポストを表示するのでもよい(例えば、ソーシャル・ネットワーク・ポストのコンテンツは、車エンティティを定めるために使用される1つ以上のエンティティ・パラメーターを含む車エンティティ定義と照合する、および/またはこの車エンティティに対して実行され得るアクションを記述するのでもよい)。このエンティティに対して実行することができる1つ以上のアクションを露出することができる。一例では、ソーシャル・ネットワーク・アプリケーションは、このソーシャル・ネットワーク・アプリケーションに埋め込まれた車評判確認アクション(view car reviews action)を有するのでもよい。他の例では、車エンティティに基づいて、車見積もり(quote)アクションを動的に識別することもできる(例えば、車エンティティ定義が、車エンティティに対して車積もりアクションを実行するために使用される情報に対応する1つ以上のアクション・パラメーターを含む車積もりアクション定義を参照することができる)。
【0004】
[0004] アクションの選択に応答して、このエンティティに関連するエンティティ・コンテキストおよび/またはこのアクションに関連するアクション・コンテキストに基づいて、タスクを遂行するユーザーの意図を決定することができる。例えば、車見積もりアクションを実行するユーザーの意図は、車エンティティ(例えば、車エンティティ定義、および/またはモデル名および/またはモデル年式のような、ソーシャル・ネットワーク・アプリケーションによって提供される車エンティティについてのコンテキスト情報)、および/または車見積もりアクション(例えば、車見積もり定義、および/またはディーラーの場所、車組立オプション、車下取り情報等のような、ソーシャル・ネットワーク・アプリケーションによって提供される車見積もりアクションについてのコンテキスト情報)に基づいて決定することができる。このアクションをエンティティに対して実行することができる1つ以上のターゲット・アプリケーション(例えば、車取引アプリケーション)を提示することができる(例えば、シェア・チャーム(share charm)のような、オペレーティング・システムのユーザー・インターフェースを通じて)。
【0005】
[0005] ターゲット・アプリケーションの選択に応答して、エンティティ・コンテキスト(例えば、モデル名および/またはモデル年式)および/またはアクション・コンテキスト(例えば、ディーラーの場所、車組立オプション、車下取り情報等)をターゲット・アプリケーションに渡して、タスクの完了を容易にするように、エンティティ・コンテキストおよび/またはアクション・コンテキストにしたがって、ターゲット・アプリケーションを起動する。一例では、車取引アプリケーションは、コンテキスト・アウェア状態で(例えば、車見積もり書式)で開かれてもよい。この状態は、エンティティ・コンテキストおよび/またはアクション・コンテキストから抽出された少なくとも何らかの情報を含むことができる(例えば、単に通常のホーム・スクリーンに開くのではなく)。このように、ユーザーは、例えば、比較的少ないユーザー入力、検索、試行錯誤、および/または冗長な情報の入力で、車取引アプリケーションによって、車見積もりアクションを効率的に実行することができる。
【0006】
[0006] コンテキスト・アウェアなタスク実行のためにターゲット・アプリケーションを登録する実施形態では、ターゲット・アプリケーションとのデーター契約(data contract)を締結するための登録要求を受けることができる。この登録要求は、ターゲット・アプリケーションによってサポートされるエンティティおよび/またはアクションを含むことができる。たとえば、車マニア・アプリケーション(car enthusiast application)が、車エンティティ、車見積もりアクション、および/または他のエンティティおよび/またはアクアションをサポートすることに基づいて、この車マニア・アプリケーションと、オペレーティング・システムのユーザー・インターフェース(例えば、シェア・チャーム)のようなタスク実行コンポーネントとの間でデーター契約を締結することを、車マニア・アプリケーションが要求することもできる。このように、ターゲット・アプリケーションとのデーター契約を作成することができる。データー契約は、ターゲット・アプリケーションがエンティティに対してアクションを実行できることを明記することができる。
【0007】
[0007] エンティティに対するエンティティ定義は、維持することができる。エンティティ定義は、そのエンティティを定める1つ以上のエンティティ・パラメーターを含むことができる。1つのエンティティ・パラメーターが、アクションをエンティティに対して実行できることを明記することができる。例えば、車エンティティ定義は、車モデル情報に対する第1エンティティ・パラメーター、モデル年式情報に対する第2エンティティ・パラメーター、車見積もりアクションをこの車エンティティに対して実行できることを明記する第3エンティティ・パラメーター、および/または他のエンティティ・パラメーターを含むことができる。アクションに対してアクション定義を維持することができる。アクション定義は、アクションを定める1つ以上のアクション・パラメーターを含むことができる。1つのアクション・パラメーターが、アクションを実行するために使用される情報を指定することができる。例えば、車見積もりアクション定義は、ディーラー場所情報に対する第1アクション・パラメーター、車組立オプション情報に対する第2アクション・パラメーター、および/または他のアクション・パラメーターを含むことができる。このように、車エンティティ定義および/または車見積もりアクション定義は、実行中のアプリケーションから抽出されたコンテキスト情報に基づいて、ターゲット・アプリケーションによるタスクの実行を容易にするために使用することができる。
【0008】
[0008] 以上のおよび関係する目的の遂行のために、以下の説明および添付図面は、ある種の例示的な態様(aspect)および実施態様(implementation)を明示する。これらは、1つ以上の態様を採用することができる種々の方法の内僅かなものを示すに過ぎない。本開示の他の態様、利点、および新規な特徴は、以下の詳細な説明を添付図面と併せて検討することによって、明白になるであろう。
【図面の簡単な説明】
【0009】
図1図1は、アプリケーション間通信によってタスク完了を容易にする方法例を示す流れ図である。
図2図2は、エンティティに対するエンティティ定義、アクションに対するアクション定義、および/またはターゲット・アプリケーションに関連するデーター契約を維持するシステム例を示すコンポーネント・ブロック図である。
図3A図3Aは、アプリケーション間通信によってタスク完了を容易にするシステム例を示すコンポーネント・ブロック図である。
図3B図3Bは、アプリケーション間通信によってタスク完了を容易にするシステム例を示すコンポーネント・ブロック図である。
図4A図4Aは、アプリケーション間通信によってタスク完了を容易にするシステム例を示すコンポーネント・ブロック図である。
図4B図4Bは、アプリケーション間通信によってタスク完了を容易にするシステム例を示すコンポーネント・ブロック図である。
図5図5は、コンテキスト・アウェア・タスク実行のためにターゲット・アプリケーションを登録する方法例を示す流れ図である。
図6図6は、本明細書において明示した発明(provision)の1つ以上を具体化するように構成されたコンピューター実行可能命令を構成することができる計算デバイス読み取り可能媒体例の図である。
図7図7は、本明細書において明示した発明の1つ以上を実現することができる計算環境例を示す。
【発明を実施するための形態】
【0010】
[0018] これより、図面を参照しながら、特許請求する主題について説明する。図面では、同様の参照番号は全体的に同様のエレメントを一貫して指すために使用される。以下の説明では、説明の目的に限って、特許請求する主題の理解を得るために多数の具体的な詳細を明示する。しかしながら、特許請求する主題は、これらの具体的な詳細がなくても実施できることは明白なはずである。他方では、特許請求する主題を説明しやすくするために、構造およびデバイスをブロック図形態で示すこととする。
【0011】
[0019] アプリケーション間通信によってタスク完了を容易にする一実施形態を、図1における方法例100によって例示する。102において、この方法が開始する。一例では、ユーザーが実行中のアプリケーションと対話処理していてもよい(例えば、ソーシャル・ネットワーク・アプリケーション、電子メール・アプリケーション、ウェブサイトを表示するウェブ・ブラウザー、地図表示アプリケーション(mapping application)、ビデオ・ゲーム、ローカルにインストールされたアプリケーション、クラウド・アプリケーション等)。実行中のアプリケーションは、1つ以上のエンティティを含むコンテンツを表示することができる。例えば、ソーシャル・ネットワーク・アプリケーションが、ユーザーが楽しんだMexican Cantinaのような特定のレストランをユーザーが参照することによって、ソーシャル・ネットワーク・ポストを表示するのでもよい。一例では、レストラン・エンティティは、コンテンツから動的に識別することができる(例えば、コンテンツを解析してエンティティ候補を識別してもよく、このエンティティ候補を、レストラン名、場所、価格範囲、ならびにテーブル予約アクション、メニュー確認アクション等のような、レストラン・エンティティに対して実行することができる1つ以上のアクションというような、エンティティを定める1つ以上のエンティティ・パラメーターを含むエンティティ定義と照合することができる)。他の例では、ソーシャル・ネットワーク・アプリケーションによってレストラン・エンティティが予め定められていてもよい。このように、104において、実行中のアプリケーションのコンテンツ内部に含まれるエンティティを識別することができる。
【0012】
[0020] 106において、エンティティに対して実行することができる1つ以上のアクションを露出することができる。一例では、レストラン・エンティティ定義が、テーブル予約アクションというような、そのレストラン・エンティティに対して実行することができる1つ以上のアクションを指定することができる。テーブル予約アクション定義は、席の数、時間、レストラン名等というような、テーブル予約アクションを実行するために使用される情報を指定する1つ以上のアクション・パラメーターを含むことができる。このように、エンティティに基づいてアクションを動的に識別することができ、そして提示することができる。他の例では、アクションを実行中のアプリケーション内に埋め込むこともできる(例えば、実行中のアプリケーションの開発者が、ユーザーがエンティティを選択したことに応答してアクションを提示することができる機能を、実行中のアプリケーション内に埋め込むことができる)。
【0013】
[0021] 108において、アクション(例えば、テーブル予約アクション)の選択に応答して、エンティティに関連するエンティティ・コンテキストおよび/またはアクションに関連するアクション・コンテキストに基づいて、タスク(例えば、Mexican Cantinaにおいてテーブルを予約する)を遂行するユーザーの意図を判定することができる。例えば、エンティティ・コンテキストは、レストラン名としてのMexican Cantinaおよび場所としての都心というような、レストラン・エンティティ定義内において指定された1つ以上のエンティティ・パラメーターの値を含むことができる。エンティティ・パラメーターの値は、実行中のアプリケーションのコンテンツから抽出することができ、および/またはエンティティ定義から抽出することもできる。アクション・コンテキストは、レストラン名としてのMexican Cantinaおよび時刻としての8:00というような、テーブル予約アクション定義内において指定された1つ以上のアクション・パラメーターの値を含むことができる。
【0014】
[0022] エンティティに対してアクションを実行することができる1つ以上のターゲット・アプリケーションを識別することができる。例えば、食品専門アプリケーション(food expert application)が、タスク実行コンポーネントとのデーター契約を有することができる。データー契約は、食品専門アプリケーションがレストラン・エンティティおよび/またはテーブル予約アクションをサポートすることを指定することができる。このように、110において、エンティティに対してアクションを実行することができる1つ以上のターゲット・アプリケーションを提示することができる。一例では、ターゲット・アプリケーションが実行中のアプリケーションを通じて提示されてもよい。他の例では、ターゲット・アプリケーションが、オペレーティング・システムのユーザー・インターフェース(例えば、シェア・チャーム)を通じて提示されてもよく、実行中のアプリケーションに関係付けて(例えば、並べて、重ねて等)表示することもできる。
【0015】
[0023] ターゲット・アプリケーション(例えば、食品専門アプリケーション)の選択に応答して、112において、タスクの完了を容易にするために、エンティティ・コンテキストおよび/またはアクション・コンテキストにしたがって、ターゲット・アプリケーションを起動することができるように、エンティティ・コンテキストおよび/またはアクション・コンテキストをターゲット・アプリケーションに渡すことができる。ターゲット・アプリケーションは、ウェブサイトを表示するウェブ・ブラウザー、ローカルにインストールされたアプリケーション、クラウド・アプリケーションまたはサービス、および/またはダウンロードおよび/またはインストールのために利用可能なマーケットプレース・アプリケーションを含むことができる(例えば、アプリケーション・マーケットプレースからマーケットプレース・アプリケーションを入手するようにユーザーを促してもよい)。例えば、食品専門アプリケーションは、ローカルにインストールすることができ、エンティティ・コンテキストおよび/またはアクション・コンテキストに関連する少なくとも何らかの情報を含み得る、コンテキスト的に関連のある状態に開くことができる(例えば、食品専門アプリケーションを、1つ以上のエンティティ・パラメーターおよび/または1つ以上のアクション・パラメーターからの値が埋められたテーブル予約書式に開くこともできる)。コンテキスト情報をターゲット・アプリケーションに渡す一例では、オペレーティング・システムの通信モデルを使用して、エンティティ・コンテキストおよび/またはアクション・コンテキストをターゲット・アプリケーションに渡すこともできる。一例では、ターゲット・アプリケーションは、没入表示状態(immersive view state)(例えば、実質的に最大画面状態)で起動することもできる。他の例では、ターゲット・アプリケーションは、実行中のアプリケーションと並べて起動することもできる。他の例では、実行中のアプリケーションと並べて表示することができるオーバーレイ・インターフェース(例えば、アプリケーションを表示するために使用される、チャームのような、オペレーティング・システムのユーザー・インターフェース)内で、ターゲット・アプリケーションを起動することもできる。このように、ユーザーは、適した機能を求めるための過度な検索、および/または冗長な情報の手作業による入力を行うことなく、効率的にタスクを完了することができる。一旦起動されたなら、バック・コマンドのような種々のコマンドを実行することができる。バック・コマンドは、ターゲット・アプリケーションの表示を実行中のアプリケーションに、および/またはタスク完了のために選択され得る1つ以上のターゲット・アプリケーションを含むタスク・インターフェースに移行する(transition)ことができる。
【0016】
[0024] 一例では、エンティティ・アクション・ログを維持することができる(例えば、データーベース、ログ・ファイル、対話型ユーザー・インターフェース等)。エンティティ・アクション・ログは、アクションの使用パターン、アクションの関与パターン、アクションが起動された回数、アプリケーションが起動された回数等というような、タスク完了に関する情報を含む1つ以上のエントリーを含むことができる。このような情報、アクティビティ、アクション等を記録させるために、ユーザー・オプトインまたはオプトアウトに対する選択肢を設けることもできる。エントリーは、例えば、アクションがターゲット・アプリケーションによってエンティティに対して実行されたことを明記することができる。エンティティ・アクション・ログは、第三者アプリケーション(例えば旅行アプリケーションの開発者)に露出されてもよい。タスク完了コンポーネントと第三者アプリケーションとの間で、データー契約を作成することができる(例えば、開発者が、データー契約を作成する希望を示す登録要求を送ることができる)。データー契約は、第三者アプリケーションがエンティティに対するアクションの実行をサポートすることを指定することができる。このように、第三者アプリケーションは、コンテキスト・アウェアなタスク実行のためのターゲット・アプリケーションとして登録することができる。114において、本方法は終了する。
【0017】
[0025] 図2は、エンティティに対するエンティティ定義、アクションに対するアクション定義、および/またはターゲット・アプリケーションに関連するデーター契約を維持するように構成されたシステム200の一例を示す。システム200は、定義コンポーネント202および/または契約コンポーネント208を含むことができる。定義コンポーネント202は、エンティティに対してエンティティ定義を生成するように構成することができる。例えば、定義コンポーネント202は、レストラン・エンティティに対するレストラン・エンティティ定義204を維持することができる。レストラン・エンティティ定義204は、エンティティを定義する、および/またはエンティティに対して実行することができるアクションを指定する1つ以上のエンティティ・パラメーターを含むことができる。例えば、レストラン名パラメーター、レストラン場所パラメーター、レストラン・タイプ・パラメーター、および/または他のエンティティ・パラメーターを、レストラン・エンティティ定義204内において指定することができる。一例では、レストラン・エンティティ定義にエンティティ・パラメーターの1つ以上の値(例えば、レストラン名としてのMexican Cantina、レストランの場所としての都心等)を入力することに基づいて、Mexican Cantinaエンティティのような、レストラン・エンティティのインスタンスを定めることもできる。テーブル予約アクション、評判検討アクション、メニュー確認アクション、および/またはレストラン・エンティティに対して実行することができる他のアクションというような、1つ以上のサポートされるアクションを、レストラン・エンティティ定義204内において明記することができる。レストラン・エンティティ定義204は、タスク完了を容易にするためにレストラン・エンティティに対してエンティティ・コンテキストを生成するために使用することもできる(例えば、エンティティ・コンテキストは、レストラン・エンティティ定義204内で指定された少なくとも何らかの情報を含むことができ、タスク完了のためにターゲット・アプリケーションをコンテキスト関連状態に起動することができるように、ターゲット・アプリケーションに渡すことができる)。
【0018】
[0026] 定義コンポーネント202は、アクションに対してアクション定義を生成するように構成することができる。例えば、定義コンポーネント202は、テーブル予約アクションに対してテーブル予約アクション定義206を維持することができる。テーブル予約アクション定義206は、アクションを定義する、および/またはアクションを実行するために使用される情報を指定する1つ以上のアクション・パラメーターを含むことができる。例えば、テーブル予約アクション定義206は、レストラン名パラメーター、レストラン場所パラメーター、電話番号パラメーター、予約時刻パラメーター、パーティ規模パラメーター、および/またはテーブル予約アクションを実行するために使用される他のアクション・パラメーターを含むことができる。テーブル予約アクション定義206は、タスク完了を容易にするために、テーブル予約アクションに対してアクション・コンテキストを生成するために使用することもできる(例えば、アクション・コンテキストは、テーブル予約アクション定義206内において指定された少なくとも何らかの情報を含むことができ、タスク完了のためにターゲット・アプリケーションをコンテキスト関連状態に起動することができるように、アクション・コンテキストをターゲット・アプリケーションに渡すことができる)。
【0019】
[0027] 契約コンポーネント208は、タスコ実行コンポーネント(例えば、アプリケーション間通信によってタスクの完了を容易にするように構成される)と1つ以上の第三者アプリケーションとの間において1つ以上のデーター契約を維持するように構成することができる。例えば、契約コンポーネント208は、旅行アプリケーションに対してデーター契約210を作成することができる。データー契約210は、旅行アプリケーションが1つ以上のエンティティ(例えば、レストラン・エンティティ、カー・レンタル・エンティティ、ホテル・エンティティ等)および/または1つ以上のアクション(例えば、テーブル予約アクション、車予約アクション、ホテル比較アクション等)をサポートすることを明記することができる。このように、タスク完了を容易にするために、エンティティに対してアクションを実行することができるターゲット・アプリケーションとして、旅行アプリケーション210を識別することができる。
【0020】
[0028] 図3Aは、アプリケーション間通信によってタスク完了を容易にするように構成されたシステム300の一例を示す。システム300は、タスク実行コンポーネント308(例えば、プログラミング・モジュール、ウェブ・サービス、アプリケーション機能、および/または、例えば、シェア・チャームのような、オペレーティング・システムのユーザー・インターフェース)を含むことができる。タスク実行コンポーネント308は、地図表示アプリケーション302のような、実行中のアプリケーションに関連付けることができる。地図表示アプリケーション302は、コンテンツをユーザーに供給することができる(例えば、Mexican Cantina304を示す地域の地図、および都心にある書籍店)。タスク実行コンポーネント308は、地図表示アプリケーション302のコンテンツ内に含まれる、Mexican Cantinaエンティティのようなエンティティを識別するように構成することができる。例えば、タスク実行コンポーネント308は、Mexican Cantinaエンティティを定めるために使用することができるエンティティ定義レポジトリー312内においてレストラン・エンティティ定義を識別するために、地図表示アプリケーション302のコンテンツに関連するコンテキスト情報306を使用することができる。タスク実行コンポーネント308は、Mexican Cantinaエンティティに対して実行することができる1つ以上のアクションを露出することができる。例えば、タスク実行コンポーネント308は、メニュー確認アクション322および/またはテーブル予約アクション328をタスク・インターフェース320を通じて提示する(318)ことができる。一例では、地図表示アプリケーション302内にアクションを埋め込むこともできる(例えば、開発者によって予め定められる)。他の例では、アクション定義レポジトリー314内にあるアクション定義(例えば、メニュー確認アクション定義、テーブル予約アクション定義等)に基づいて、アクションを動的に識別することもできる。
【0021】
[0029] タスク実行コンポーネント308は、アクションの選択を識別するように構成することができる。一例では、ユーザーがメニュー確認アクション322を選択するのでもよい。タスク実行コンポーネント308は、エンティティに関連するエンティティ・コンテキストおよび/またはアクションに関連するアクション・コンテキストに基づいて、タスクを遂行するユーザーの意図310を判定するように構成することができる。例えば、エンティティ・コンテキスト(例えば、Mexican Cantinaエンティティに関連するコンテキスト情報。これは、地図表示アプリケーション302のコンテンツに関連するコンテキスト情報306から得られたもの、および/またはエンティティ定義レポジトリー312からのレストラン・エンティティ定義から得られたものでもよい)および/またはアクション・コンテキスト(例えば、メニュー確認アクションに関連するコンテキスト情報。これは、地図表示アプリケーション302のコンテンツに関連するコンテキスト情報306から得られたもの、および/またはアクション定義レポジトリー314からのメニュー確認アクション定義から得られたものでもよい)に基づいて、ユーザーの意図310は、ユーザーがMexican Cantina304のメニューを確認したいということを示すことができる。メニューr usアプリケーション324および/または食品専門アプリケーション326というような、エンティティに対してアクションを実行することができる1つ以上のターゲット・アプリケーションを提示することができる(例えば、地図表示アプリケーション302内部のユーザー・インターフェースのようなタスク・インターフェース320、またはオペレーティング・システムのユーザー・インターフェースのような外部ユーザー・インターフェースを介して提示する318)。例えば、メニューr usアプリケーション324および/または食品専門アプリケーション326は、データー契約レポジトリー316内にデーター契約を有することができ、このようなアプリケーションがMexican Cantinaエンティティおよび/またはメニュー確認アクション324をサポートすることを指定することができる。テーブル予約アクション328が選択された他の例では、Mexican Cantinaエンティティおよびテーブル予約アクション328が旅行アプリケーション330によってサポートされることを示す、旅行アプリケーション330とタスク実行コンポーネント308との間におけるデーター契約に基づいて、タスク・インターフェース320を介して旅行アプリケーション330を提示することができる。このように、ユーザーはターゲット・アプリケーションを選択することができ、タスク完了のために、コンテキスト関連状態において起動することができる(例えば、図3Bに示す通り)。
【0022】
[0030] 図3Bは、アプリケーション間通信によってタスク完了を容易にするように構成されたシステム340の一例を示す。尚、一例では、システム340は図3Aのシステム300に対応することが認められよう。例えば、システム340は、タスク実行コンポーネント370を含むことができる。タスク実行コンポーネント370を、地図表示アプリケーション(例えば、図3Aの302)のような、実行中のアプリケーションに関連付けることができる。地図表示アプリケーションのコンテンツ内に現れるMexican Cantinaエンティティのようなエンティティに基づいて、Mexican Cantinaエンティティに対して実行することができる1つ以上のアクションおよび/またはMexican Cantinaエンティティに対してアクションを実行することができる1つ以上のアプリケーションを含むタスク・インターフェース(例えば、図3Aの320)を提示することができる。
【0023】
[0031] タスク実行コンポーネント370は、Mexican Cantinaエンティティに対するテーブル予約アクション(例えば、図3Aの328)に関連する旅行アプリケーション330のようなアプリケーションの選択342を受けるように構成することができる(例えば、ユーザーが、図3Aのタスク・インターフェース320内で旅行アプリケーション330を選択したとしてもよい)。タスク実行コンポーネント370は、地図表示アプリケーション(例えば、図3Aの302)からおよび/またはテーブル予約アクション(例えば、図3Aの328)を実行するために使用される情報に対応する1つ以上のアクション・パラメーターを含むテーブル予約アクション定義からのコンテキスト情報(例えば、図3Aの306)に基づいて、テーブル予約アクション・コンテキスト344を識別することができる。テーブル予約アクション・コンテンツ344は、レストラン名、レストランの場所、パーティの規模等のような、テーブル予約アクションを実行するために使用される情報を含むことができる。タスク実行コンポーネント370は、地図表示アプリケーション(例えば、図3Aの302)からおよび/またはMexican Cantinaエンティティを記述する情報に対応する1つ以上のエンティティ・パラメーターを含むレストラン・エンティティ定義からのコンテキスト情報(例えば、図3Aの306)に基づいて、Mexican Cantinaエンティティを定めるレストラン・エンティティ・コンテキスト346を識別することができる。
【0024】
[0032] タスク実行コンポーネント370は、テーブル予約アクション・コンテキスト344および/またはレストラン・エンティティ・コンテキスト346にしたがって旅行アプリケーション330を起動することができるように、テーブル予約アクション・コンテキスト344および/またはレストラン・エンティティ・コンテキスト346を旅行アプリケーション330に受け渡す(348)ことができる(例えば、オペレーティング・システムの通信モデルを利用する)。例えば、旅行アプリケーション330をテーブル予約書式内に開くことができる。テーブル予約書式には、レストラン名352としてのMexican Cantina、レストランの場所354としての都心、および/または電話番号356としての555−555−5555のような、テーブル予約アクション・コンテキスト344および/またはレストラン・エンティティ・コンテキスト346からの少なくとも一部の情報が埋められてもよい。一例では、旅行アプリケーション330を没入表示状態(例えば、最大画面等)で起動することもできる。他の例では、旅行アプリケーション330は、実行中のアプリケーションと並んで表示されるオーバーレイ・インターフェース(例えば、シェア・チャームのような、オペレーティング・システムのユーザー・インターフェース)内で起動することもできる。このように、ユーザーは、例えば、適した機能を求めるための過度な検索および/または冗長な情報の手作業による入力を行うことなく、Mexican Cantinaにおいて効率的にテーブルを予約することができる。
【0025】
[0033] 一例では、システム340は分析コンポーネント358を含むこともできる。分析コンポーネント358は、エンティティ・アクション・ログ360を維持するように構成することができる。分析コンポーネント358は、旅行アプリケーション330の起動に基づいて、エンティティ・アクション・ログ360内にエントリーを生成することができる。例えば、エントリーは、タスクを完了するために、ターゲット・アプリケーションによってエンティティに対してアクションが実行されたことを明記することができる(例えば、旅行アプリケーション330がテーブル予約アクションをMexican Cantinaエンティティに対して実行した)。エンティティ・アクション・ログ360は、アクションが選択された回数、アクションを実行するためにアプリケーションが起動された回数等といような、種々の情報および/またはメトリックを含むことができる。エンティティ・アクション・ログ360は、第三者アプリケーション(例えば、第三者アプリケーションの開発者)に露出されてもよく、第三者アプリケーションがコンテキスト・アウェアなタスク完了のためにターゲット・アプリケーションとして使用されることを許可することができるデーター契約を作成するために、第三者アプリケーションをタスク実行コンポーネント370に(register with)登録することができる。
【0026】
[0034] 図4Aは、アプリケーション間通信によってタスク完了を容易にするように構成されたシステム400の一例を示す。システム400は、タスク実行コンポーネント408(例えば、プログラミング・モジュール、ウェブ・サービス、アプリケーション機能、および/またはシェア・チャームのようなオペレーティング・システムのユーザー・インターフェース)を含むことができる。タスク実行コンポーネント408は、ソーシャル・ネットワーク・アプリケーション402のような実行中のアプリケーションと関連付けることができる。ソーシャル・ネットワーク・アプリケーション402は、コンテンツをユーザーに提示することができる(例えば、2013年型スポーツ・カー・モデル(X)についてのユーザーによるソーシャル・ネットワーク・ポスト)。タスク実行コンポーネント408は、ソーシャル・ネットワーク・アプリケーション402のコンテンツ内に含まれる、スポーツ・カー・モデル(X)エンティティのようなエンティティを識別するように構成することができる。例えば、タスク実行コンポーネント408は、エンティティ定義レポジトリー412内において、スポーツ・カー・モデル(X)エンティティを定めるために使用することができる車エンティティ定義を識別するために、ソーシャル・ネットワーク・アプリケーション402のコンテンツに関連するコンテキスト情報406を使用することができる。タスク実行コンポーネント408は、スポーツ・カー・モデル(X)エンティティに対して実行することができる1つ以上のアクションを露出することができる。例えば、タスク実行コンポーネント408は、車見積もりアクション422および/または車組立アクション428をタスク・インターフェース420を通じて提示する(418)ことができる。一例では、ソーシャル・ネットワーク・アプリケーション402内にアクションを埋め込むこともできる(例えば、開発者によって予め定められる)。他の例では、アクション定義レポジトリー414内におけるアクション定義に基づいて、アクションを動的に識別することもできる(例えば、車見積もりアクション定義、車組立アクション定義等)。
【0027】
[0035] タスク実行コンポーネント408は、アクションの選択を識別するように構成することができる。一例では、ユーザーが車見積もりアクション422を選択することができる。タスク実行コンポーネント408は、エンティティに関連するエンティティ・コンテキストおよび/またはアクションに関連するアクション・コンテキストに基づいて、タスクを遂行するユーザーの意図410を判定するように構成することができる。例えば、エンティティ・コンテキスト(例えば、スポーツ・カー・モデル(X)エンティティに関連するコンテキスト情報。これはソーシャル・ネットワーク・アプリケーション402のコンテンツに関連するコンテキスト情報406から、および/またはエンティティ定義レポジトリー412からの車エンティティ定義から引き出されたのでもよい)および/またはアクション・コンテキスト(例えば、車見積もりアクション422に関連するコンテキスト情報。これは、ソーシャル・ネットワーク・アプリケーション402のコンテンツに関連するコンテキスト情報406から引き出されたのでもよく、および/またはアクション定義レポジトリー414からの車見積もりアクション定義から引き出されたのでもよい)に基づいて、ユーザーの意図410は、ユーザーがスポーツ・カー・モデル(X)エンティティに対する車の見積もりを得たいということを示すことができる。車トレーダ・アプリケーション424および/またはオート・ディーラー・アプリケーション426のような、エンティティに対してアクションを実行することができる1つ以上のターゲット・アプリケーションを提示することができる(例えば、ソーシャル・ネットワーク・アプリケーション402内にあるユーザー・インターフェースまたは、オペレーティング・システムのユーザー・インターフェースのような外部ユーザー・インターフェースというような、タスク・インターフェース420を通じて提示される(418))。例えば、車トレーダ・アプリケーション424および/またはオート・ディーラー・アプリケーション426は、データー契約レポジトリー416内にデーター契約を有することができ、このようなアプリケーションがスポーツ・カー・モデル(X)エンティティおよび/または車見積もりアクション422をサポートすることを指定することができる。車組立アクション428が選択された他の例では、スポーツ・カー・モデル(X)エンティティおよび車組立アクション428が車製造アプリケーション430によってサポートされることを示す、車製造アプリケーション430とタスク実行コンポーネント408との間におけるデーター契約に基づいて、タスク・インターフェース420を通じて車製造アプリケーション430を提示することができる。このように、ユーザーは、ターゲット・アプリケーションを選択することができ、タスク完了のためにコンテキスト関連状態において起動することができる(例えば、図4Bに示す通り)。
【0028】
[0036] 図4Bは、アプリケーション間通信によってタスク完了を容易にするように構成されたシステム440の一例を示す。尚、一例では、システム440は図4Aのシステム400に対応することは、認められよう。例えば、システム440は、タスク実行コンポーネント470を含むことができる。タスク実行コンポーネント470は、ソーシャル・ネットワーク・アプリケーション(例えば、図4Aの402)のような、実行中のアプリケーションと関連付けることができる。ソーシャル・ネットワーク・アプリケーション(例えば、図4Aの402)のコンテンツ内に現れる、スポーツ・カー・モデル(X)エンティティのようなエンティティに基づいて、スポーツ・カー・モデル(X)エンティティに対して実行することができる1つ以上のアクション、および/またはスポーツ・カー・モデル(X)エンティティに対してアクションを実行することができる1つ以上のアプリケーションを含むタスク・インターフェース(例えば、図4Aの420)を提示することができる。
【0029】
[0037] タスク実行コンポーネント470は、スポーツ・カー・モデル(X)エンティティに対する車見積もりアクション(例えば、図4Aの422)に関連するオート・ディーラー・アプリケーション426のようなアプリケーションの選択442を受けるように構成することができる(例えば、ユーザーが図4Aのタスク・インターフェース420内においてオート・ディーラー・アプリケーション426を選択しているのでもよい)。タスク実行コンポーネント470は、ソーシャル・ネットワーク・アプリケーション(例えば、図4Aの402)から、および/または車見積もりアクション(例えば、図4Aの422)を実行するために使用される情報に対応する1つ以上のアクション・パラメーターを含む車見積もりアクション定義からのコンテキスト情報(例えば、図4Aの406)に基づいて、車見積もりアクション・コンテキスト444を識別することができる。車見積もりアクション・コンテキスト444は、車のモデル、モデルの年式、場所、下取り情報、車のオプション等というような、車見積もりアクションを実行するために使用される情報を含むことができる。タスク実行コンポーネント470は、ソーシャル・ネットワーク・アプリケーション(例えば、図4Aの402)から、および/またはスポーツ・カー・モデル(X)エンティティを記述する情報に対応する1つ以上のエンティティ・パラメーターを含む車エンティティ定義からのコンテキスト情報(例えば、図4Aの406)に基づいて、スポーツ・カー・モデル(X)エンティティを定める車エンティティ・コンテキスト446を識別することができる。
【0030】
[0038] タスク実行コンポーネント470は、車見積もりアクション・コンテキスト444および/または車エンティティ・コンテキスト446にしたがってオート・ディーラー・アプリケーション426を起動できるように、車見積もりアクション・コンテキスト444および/または車エンティティ・コンテキスト446をオート・ディーラー・アプリケーション426に渡す(448)ことができる(例えば、オペレーティング・システムの通信モデルを利用する)。例えば、オート・ディーラー・アプリケーション426を車見積もり書式内に開くことができる。車見積もり書式には、車モデル452としてのスポーツ・カー・モデル(X)、モデル年式454としての2013、および/または場所456としての現在のユーザーの場所というような、車見積もりアクション・コンテキスト444および/または車エンティティ・コンテキスト446からの少なくとも一部の情報が埋められてもよい(例えば、ユーザー・デバイスの現在の(例えば、GPS)位置のような、オート・ディーラー・アプリケーションをホストするユーザー・デバイスに関連する補足データーを、車見積もり書式に埋める値として使用してもよい)。一例では、オート・ディーラー・アプリケーション426を没入表示状態(例えば、最大画面等)で起動することもできる。他の例では、オート・ディーラー・アプリケーション426を、実行中のアプリケーションと並んで表示されるオーバーレイ・インターフェース(例えば、シェア・チャームのようなオペレーティング・システムのユーザー・インターフェース)内部において起動することもできる。このように、ユーザーは、例えば、適した機能を求めるための過度な検索および/または冗長な情報の手作業による入力を行うことなく、スポーツ・カー・モデル(X)に対する車の見積もりを効率的に入手することができる。
【0031】
[0039] 一例では、システム440は分析コンポーネント458を含むこともできる。分析コンポーネント458は、エンティティ・アクション・ログ460を維持するように構成することができる。分析コンポーネント458は、オート・ディーラー・アプリケーション426の起動に基づいて、エンティティ・アクション・ログ460内にエントリーを生成することができる。例えば、エントリーは、タスクを完了するためにターゲット・アプリケーションによってエンティティに対して実行されたアクションを明記することができる(例えば、オート・ディーラー・アプリケーション426がスポーツ・カー・モデル(X)エンティティに対して車見積もりアクションを実行した)。エンティティ・アクション・ログ460は、アクションが選択された回数、アクションを実行するためにアプリエーションが起動された回数等のような、種々の情報および/またはメトリックを含むことができる。エンティティ・アクション・ログ460は第三者アプリケーション(例えば、第三者アプリケーションの開発者)に露出されてもよく、第三者アプリケーションがコンテキスト・アウェアなタスク完了のためにターゲット・アプリケーションとして使用されることを許可することができるデーター契約を作成するために、第三者アプリケーションをタスク実行コンポーネント470に登録することができる。
【0032】
[0040] コンテキスト・アウェアなタスク実行のためにターゲット・アプリケーションを登録する実施形態を、図5における方法例500によって示す。502において、この方法が開始する。504において、ターゲット・アプリケーションとのデーター契約を締結するための登録要求を受けることができる(例えば、ターゲット・アプリケーションと、タスク完了を容易にするためにコンテキスト関連状態にターゲット・アプリケーションを起動するように構成されたタスク実行コンポーネントとの間におけるデーター契約)。登録要求は、ターゲット・アプリケーションによってサポートされるエンティティおよび/またはアクション(例えば、ダイニング・アプリケーション(dining application)によってエンティティに対して実行することができるアクション)を含むことができる。506において、ターゲット・アプリケーションとのデーター契約を作成する。このデーター契約は、ターゲット・アプリケーションがアクションをエンティティに対して実行できることを明記することができる。
【0033】
[0041] 508において、エンティティに対するエンティティ定義を維持することができる。エンティティ定義は、エンティティを定める1つ以上のエンティティ・パラメーターを含むことができる(例えば、レストラン・エンティティ定義は、レストラン名パラメーター、場所パラメーター、価格格付け(price rating)パラメーター等を含むことができる)。例えば、1つのエンティティ・パラメーターが、あるアクションをエンティティに対して実行できることを明記することができる(例えば、テーブル予約アクションをレストラン・エンティティに対して実行することができる)。510において、アクションに対するアクション定義を維持することができる。アクション定義は、アクションを定める1つ以上のアクション・パラメーターを含むことができる。例えば、1つのアクション・パラメーターが、アクションを実行するために使用される情報(例えば、テーブル予約アクションに対してレストランの場所)を指定することができる。このように、データー契約、エンティティ定義、および/またはアクション定義は、エンティティ、そのエンティティに対して実行できるアクション、および/またはそのエンティティに対してそのアクションを実行できるターゲット・アプリケーションを識別するために使用することができる。
【0034】
[0042] 一例では、レストラン・エンティティのようなエンティティを、地図表示アプリケーションのような実行中のアプリケーションのコンテンツ内において識別することができる。エンティティ定義内における少なくとも1つのエンティティ・パラメーターの値は、エンティティ・コンテキストを生成するために実行中のアプリケーションから引き出されたエンティティのコンテキスト情報に基づいて指定することができる。例えば、レストラン・エンティティ定義内におけるレストラン名エンティティ・パラメーターの値として、Mexican Cantina(例えば、地図表示アプリケーションのコンテンツから抽出された)を指定することができる。テーブル予約アクションのような、このエンティティに対して実行できるアクションを露出することができる。アクションの選択に応答して、アクション定義内における少なくとも1つのアクション・パラメーターの値を、アクション・コンテキストを生成するために実行中のアプリケーションから引き出されたコンテキスト情報に基づいて指定することができる。例えば、テーブル予約アクション定義内における場所アクション・パラメーターの値として、都心(例えば、地図表示アプリケーション内に表示された現在地から引き出される)を指定することができる。ダイニング・アプリケーションのような、アクションをエンティティに対して実行できるターゲット・アプリケーションを提示することができる。ターゲット・アプリケーションの選択に応答して、タスクを完了するためにエンティティ・コンテキストおよび/またはアクション・コンテキストにしたがってターゲット・アプリケーションを起動できるように、エンティティ・コンテキストおよび/またはアクション・コンテキストをターゲット・アプリケーションに渡すことができる(例えば、コンテキスト関連予約書式内に、ダイニング・アプリケーションを起動することができる)。512において、本方法は終了する。尚、開示した主題に対する変形も考えられることは認められよう。例えば、508および/または510あるいは図5は、実施形態によっては任意選択肢であってもよい。
【0035】
[0043] 更に他の実施形態は、本明細書において紹介した技法の内1つ以上を実現するように構成されたプロセッサー実行可能命令を含むコンピューター読み取り可能媒体を伴う。これらの方法で考案することができるコンピューター読み取り可能媒体例を図6に示す。ここで、実施態様600はコンピューター読み取り可能媒体616(例えば、CD−R、DVD−R、またはハード・ディスク・ドライブのプラッター)を含み、その上にコンピューター読み取り可能データー614がエンコードされる。一方、このコンピューター読み取り可能データー614は、本明細書において明示した原理の1つ以上にしたがって動作するように構成された1組のコンピューター命令612を含む。このような一実施形態600では、プロセッサー実行可能コンピューター命令612は、例えば、図1の方法例100の少なくとも一部、および/または図5の方法例500の少なくとも一部というような、方法610を実行するように構成することができる。このような他の実施形態では、プロセッサー実行可能命令612は、例えば、図2のシステム例200の少なくとも一部、図3Aのシステム例300の少なくとも一部、図3Bのシステム例340の少なくとも一部、図4Aのシステム例400の少なくとも一部、および/または図4Bのシステム例440の少なくとも一部というような、システムを実現するように構成することができる。 本明細書において紹介した技法にしたがって動作するように構成されるこのようなコンピューター読み取り可能媒体の多くは、当業者によって考案することができる。
【0036】
[0044] 構造的特徴および/または方法論的アクト(methodological act)に特定的な文言で主題について説明したが、添付する特許請求の範囲において定められる主題は、必ずしも以上で説明した特定的な特徴やアクトに限定されないことは理解されてしかるべきである。逆に、以上で説明した特定的な特徴やアクトは、特許請求の範囲を実現する形態例として開示されたまでである。
【0037】
[0045] 本願において使用する場合、「コンポーネント」、「モジュール」、「システム」、「インターフェース」等という用語は、一般に、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピューター関連エンティティを指すことを意図している。例えば、コンポーネントは、プロセッサー上で実行するプロセス、プロセッサー、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピューターであってもよいが、これらに限定されるのではない。一例として、コントローラー上で実行するアプリケーションおよびこのコントローラーの双方がコンポーネントであることができる。1つ以上のコンポーネントが1つのプロセスおよび/または実行のスレッド内に存在してもよく、更に1つのコンポーネントが1つのコンピューター上に局在されること、および/または2つ以上のコンピューター間で分散されることも可能である。
【0038】
[0046] 更に、特許請求する主題は、コンピューターを制御して開示した主題を実現するためのソフトウェア、ファームウェア、ハードウェア、またはその任意の組み合わせを生成するための標準的なプログラミングおよび/または設計技法を使用して、方法、装置、または製品として実現することもできる。「製品」という用語は、本明細書において使用する場合、任意のコンピューター読み取り可能デバイス、担体、または媒体からアクセス可能なコンピューター・プログラムを包含することを意図している。勿論、特許請求する主題の範囲や主旨から逸脱することなく、この構成には多くの変更が行われてもよいことを当業者は認めよう。
【0039】
[0047] 図7および以下の説明(discussion)は、本明細書において明示した発明(provision)の1つ以上の実施形態を実現するのに適した計算環境の端的で総合的な説明に供する。図7の動作環境は、適した動作環境の一例に過ぎず、動作環境の使用範囲や機能に関して限定を示唆する意図は全くない。計算デバイスの例には、パーソナル・コンピューター、サーバ・コンピューター、ハンドヘルドまたはラップトップ・デバイス、移動体デバイス(移動体電話機、パーソナル・ディジタル・アシスタント(PDA)、メディア・プレーヤー等)、マルチプロセッサー・システム、消費者用電子機器、ミニ・コンピューター、メインフレーム・コンピューター、以上のシステムまたはデバイスの内任意のものを含む分散型計算環境等が含まれるが、これらに限定されるのではない。
【0040】
[0048] 必須ではないが、実施形態は、1つ以上の計算デバイスによって実行される「コンピューター読み取り可能命令」という一般的なコンテキストで説明される。コンピューター読み取り可能命令は、コンピューター読み取り可能媒体(以下で論ずる)によって流通させることができる。コンピューター読み取り可能命令は、関数、オブジェクト、アプリケーション・プログラミング・インターフェース(API)、データー構造等というような、プログラム・モジュールとして実現することができ、特定のタスクを実行するか、または特定の抽象データー型を実装する。通例、コンピューター読み取り可能命令の機能は、種々の環境において所望される通りに、組み合わせることまたは分散させることができる。
【0041】
[0049] 図7は、本明細書において提供した1つ以上の実施形態を実現するように構成された計算デバイス712を含むシステム710の一例を示す。一構成では、計算デバイス712は少なくとも1つの処理ユニット716とメモリー718とを含む。計算デバイスの正確な構成およびタイプに依存して、メモリー718は、揮発性(例えば、RAMのような)、不揮発性(例えば、ROM、フラッシュ・メモリー等のような)、またはこれら2つの何らかの組み合わせであってもよい。この構成は、図7では破線714によって示される。
【0042】
[0050] 他の実施形態では、デバイス712は追加の機構(feature)および/または機能を含むこともできる。例えば、デバイス712は、磁気ストレージ、光ストレージ等を含むがこれらに限定されない追加のストレージ(例えば、リムーバブルおよび/または非リムーバブル)も含むことができる。このような追加のストレージは、図7ではストレージ720によって示される。一実施形態では、本明細書において提供した1つ以上の実施形態を実現するコンピューター読み取り可能命令は、ストレージ720内にあってもよい。また、ストレージ720は、オペレーティング・システム、アプリケーション・プログラム等を実現するための他のコンピューター読み取り可能命令も格納することができる。コンピューター読み取り可能命令は、例えば、処理ユニット716による実行のために、メモリー718にロードすることができる。
【0043】
[0051] 「コンピューター読み取り可能媒体」という用語は、本明細書において使用する場合、コンピューター記憶媒体を含む。コンピューター記憶媒体は、揮発性および不揮発性の、リムーバブルおよび非リムーバブル媒体を含み、コンピューター読み取り可能命令または他のデーターのような情報の格納のための任意の方法または技術で実現される。メモリー718およびストレージ720は、コンピューター記憶媒体の例である。コンピューター記憶媒体は、RAM、ROM、EEPROM、フラッシュ・メモリーまたは他のメモリー技術、CD−ROM、ディジタル・バーサタイル・ディスク(DVD)または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク記憶デバイスまたは他の磁気記憶デバイス、あるいは所望の情報を格納するために使用することができデバイス712によってアクセスすることができる任意の他の媒体を含むが、これらに限定されるのではない。このようなコンピューター記憶媒体はいずれも、デバイス712の一部であることができる。
【0044】
[0052] また、デバイス712は、デバイス712が他のデバイスと通信することを可能にする通信接続(1つまたは複数)726も含むことができる。通信接続(1つまたは複数)726は、モデム、ネットワーク・インターフェース・カード(NIC)、統合ネットワーク・インターフェース、無線周波数送信機/受信機、赤外線ポート、USB接続、または計算デバイス712を他の計算デバイスに接続するための他のインターフェースを含むことができるが、これらに限定されるのではない。通信接続(1つまたは複数)726は、有線接続またはワイヤレス接続を含むことができる。通信接続(1つまたは複数)726は、通信媒体を送信および/または受信することができる。
【0045】
[0053] 「コンピューター読み取り可能媒体」という用語は、通信媒体を含むことができる。通信媒体は、通例、搬送波のような「変調データー信号」または他の移送メカニズムにコンピューター読み取り可能命令または他のデーターを具体化し、あらゆる情報配信媒体を含む。「変調データー信号」という用語は、この信号に情報をエンコードするような仕方でその特性の1つ以上が設定または変化させられた信号を含むことができる。
【0046】
[0054] デバイス712は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、赤外線カメラ、ビデオ入力デバイス、および/またはあらゆる他の入力デバイスというような、入力デバイス(1つまたは複数)724を含むことができる。また、1つ以上のディスプレイ、スピーカー、プリンター、および/またはあらゆる他の出力デバイスというような出力デバイス(1つまたは複数)722も、デバイ712に含むことができる。入力デバイス(1つまたは複数)724および出力デバイス(1つまたは複数)722は、有線接続、ワイヤレス接続、またはそのいずれかの組み合わせによって、デバイス712に接続することができる。一実施形態では、他の計算デバイスからの入力デバイスまたは出力デバイスを計算デバイス712の入力デバイス(1つまたは複数)724または出力デバイス(1つまたは複数)722として使用することもできる。
【0047】
[0055] 計算デバイス712のコンポーネントは、バスのような種々の相互接続によって接続されてもよい。このような相互接続は、PCI Expressのような周辺コンポーネント相互接続(PCI)、ユニバーサル・シリアル・バス(USB)、firewire(IEEE 1394)、光バス構造等を含むことができる。他の実施形態では、計算デバイス712のコンポーネントは、ネットワークによって相互接続されてもよい。例えば、メモリー718は、ネットワークによって相互接続された異なる物理位置に配置された多数の物理メモリー・ユニットで構成されてもよい。
【0048】
[0056] 当業者は、コンピューター読み取り可能命令を格納するために利用される記憶デバイスをネットワークにわたって分散させてもよいことを認めるであろう。例えば、ネットワーク728を介してアクセス可能な計算デバイス730が、本明細書において提要した1つ以上の実施形態を実現するためのコンピューター読み取り可能命令を格納することもできる。計算デバイス712は、計算デバイス730にアクセスし、実行のために、コンピューター読み取り可能命令の一部または全部をダウンロードすることができる。あるいは、計算デバイス712は、必要に応じて、コンピューター読み取り可能命令の複数の部分(pieces)をダウンロードすることもでき、即ち、一部の命令を計算デバイス712において実行し、一部を計算デバイス730において実行することもできる。
【0049】
[0057] 実施形態の種々の動作が、本明細書において示された。一実施形態では、説明した動作の1つ以上が、1つ以上のコンピューター読み取り可能媒体上に格納されたコンピューター読み取り可能命令を構成することができ、計算デバイスによって実行されると、この計算デバイスに、説明した動作を実行させる。これらの動作の一部または全部を説明した順序は、これらの動作が必然的に順序に依存することを暗示するように解釈してはならない。この説明の恩恵を得た当業者には、代わりの順序付けも認められよう。更に、本明細書において示した各実施形態において、必ずしも全ての動作があるとは限らないことは理解されよう。
【0050】
[0058] 更に、「一例の」という単語は、本明細書では例、実例、または例示として供することを意味するために使用されている。本明細書において「一例」として説明した態様または構造(design)はいずれも、他の態様または設計に対して必ずしも有利であるとは解釈されない。むしろ、一例のという単語の使用は、具体的に概念を紹介することを意図している。本願において使用する場合、「または」という用語は、排他的な「または」ではなく、包含的な「または」を意味することを意図している。即ち、別段明示されない限り、または文脈から明らかでない限り、「XはAまたはBを採用する」とは、自然な包含的置換のいずれをも意味することを意図している。即ち、XがAを採用する、XがBを採用する、またはXがAおよびBの双方を採用する場合、以上の場合のいずれにおいても、「XはAまたはBを採用する」が満たされる。加えて、本願および添付する特許請求の範囲において使用する場合、単数形を対象にすることが別段明示されていない限り、または文脈から明らかでない限り、冠詞「a」および「an」は、一般に、「1つ以上」を意味すると解釈することができる。また、AおよびB等(and/or the like)の少なくとも1つは、通常、AまたはBあるいはAおよびB双方を意味する。
【0051】
[0059] また、本開示は、1つ以上の実施態様に関して示し説明したが、本明細書および添付図面の読解(reading and understanding)に基づいて、同等の変形(alteration)および変更(modification)が当業者には想起されよう。本開示は、このような変更および変形を全て含み、以下の請求項の範囲によってのみ限定されるものとする。特に、以上で説明したコンポーネント(例えば、エレメント、リソース等)によって実行される種々の機能に関して、このようなコンポーネントを説明するために使用された用語は、別段指示されていなければ、説明されたコンポーネントの指定された機能を実行するあらゆるコンポーネント(例えば、機能的に同等なコンポーネント)に対応することを意図しており、本明細書において例示された本開示の実施態様例において当該機能を実行する、開示された構造と構造的に同等でなくてもよい。加えて、本開示の特定的な特徴について、様々な実施態様の内1つだけに関して開示したが、このような特徴は、あらゆる所与のまたは特定の用途に望まれるようにまたは有利になるように、他の実施態様の1つ以上の他の特徴と組み合わせることもできる。更に、「含む」(includes)、「有する」(having, has)、「と」(with)という用語またはこれらの変形が詳細な説明または特許請求の範囲において使用される限りにおいて、このような用語は、「備える」(comprising)という用語と同様に、包含的であることを意図している。
図1
図2
図3A
図3B
図4A
図4B
図5
図6
図7