JP2023524009A - 人工知能要求および提案カード - Google Patents
人工知能要求および提案カード Download PDFInfo
- Publication number
- JP2023524009A JP2023524009A JP2022565918A JP2022565918A JP2023524009A JP 2023524009 A JP2023524009 A JP 2023524009A JP 2022565918 A JP2022565918 A JP 2022565918A JP 2022565918 A JP2022565918 A JP 2022565918A JP 2023524009 A JP2023524009 A JP 2023524009A
- Authority
- JP
- Japan
- Prior art keywords
- user
- smart card
- display elements
- bundle
- smartcard
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 50
- 230000006870 function Effects 0.000 claims abstract description 14
- 238000004458 analytical method Methods 0.000 claims abstract description 9
- 230000015654 memory Effects 0.000 claims description 44
- 238000009877 rendering Methods 0.000 claims description 44
- 238000004891 communication Methods 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 19
- 230000009471 action Effects 0.000 claims description 10
- 230000002452 interceptive effect Effects 0.000 claims description 9
- 230000002730 additional effect Effects 0.000 claims description 2
- 238000002347 injection Methods 0.000 description 31
- 239000007924 injection Substances 0.000 description 31
- 230000003068 static effect Effects 0.000 description 25
- 230000003993 interaction Effects 0.000 description 22
- 238000005457 optimization Methods 0.000 description 22
- 230000004044 response Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 11
- 230000009466 transformation Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 238000012384 transportation and delivery Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 230000006872 improvement Effects 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 235000012054 meals Nutrition 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 102000004169 proteins and genes Human genes 0.000 description 4
- 108090000623 proteins and genes Proteins 0.000 description 4
- 239000010409 thin film Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 235000005911 diet Nutrition 0.000 description 2
- 230000037213 diet Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 210000003205 muscle Anatomy 0.000 description 2
- 235000016709 nutrition Nutrition 0.000 description 2
- 230000035764 nutrition Effects 0.000 description 2
- 235000015927 pasta Nutrition 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 235000021259 spicy food Nutrition 0.000 description 2
- IRLPACMLTUPBCL-KQYNXXCUSA-N 5'-adenylyl sulfate Chemical compound C1=NC=2C(N)=NC=NC=2N1[C@@H]1O[C@H](COP(O)(=O)OS(O)(=O)=O)[C@@H](O)[C@H]1O IRLPACMLTUPBCL-KQYNXXCUSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 235000013361 beverage Nutrition 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000010411 cooking Methods 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 235000013372 meat Nutrition 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/453—Help systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72448—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
- H04M1/72454—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Environmental & Geological Engineering (AREA)
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
人工知能駆動ユーザインターフェースカードを生成するための方法およびシステム。本システムは、ユーザデバイスと互換性があるようにスマートカードバンドルを修正するように構成される非一時的機械実行可能コードを備える。スマートカードバンドルは、表示要素の第1のセットおよびコンテキストデータの第1のセットを含む。表示要素の第1のセットは、ユーザアプリケーションによって提供される1つ以上の機能を使用し、コンテキストデータの第1のセットは、ユーザによる第1の要求に応答する。機械実行可能コードは、さらに、ユーザ情報の分析に基づいてユーザ嗜好を予測し、予測に基づいてスマートカードバンドルを構成するように構成される。表示要素の第2のセットおよびコンテキストデータの第2のセットも、スマートカードバンドルに対するものであってもよく、表示要素の第2のセットは、ユーザアプリケーションによって提供されない機能を使用する。
Description
1.関連出願の相互参照
本出願は、2020年4月27日に出願された米国仮出願第63/016,244号の優先権を主張し、参照によりこれを組み込む。
本出願は、2020年4月27日に出願された米国仮出願第63/016,244号の優先権を主張し、参照によりこれを組み込む。
2.発明の分野
本発明は、人工知能(「AI」)仮想アシスタントとペアリングするための改善されたユーザインターフェース、特にユーザとの双方向対話のための視覚ディスプレイカードシステムおよび方法を提供することに関する。
本発明は、人工知能(「AI」)仮想アシスタントとペアリングするための改善されたユーザインターフェース、特にユーザとの双方向対話のための視覚ディスプレイカードシステムおよび方法を提供することに関する。
3.発明の背景
図1は、静的カードを生成するためのバックエンドサーバとの従来技術のユーザアプリケーション対話を示す。ユーザ104は、(用語集で定義されているような)ユーザデバイス108、またはユーザデバイス上の(用語集で定義されているような)任意のユーザアプリケーションと対話し、次いでバックエンドサーバ112と対話する。能動的入力(音声コマンドを入力するなど)、または受動的動作(ユーザアプリケーションまたはユーザアプリケーション内の機能ページを開くなど)であり得るユーザ要求は、カード要求に処理され(116)、次いでバックエンドサーバ112に送信される。バックエンドサーバ112は静的カードを返すことによってカード要求に応答し、これは静的カードプリミティブ120に変換される。静的カードプリミティブは、整数、文字列、ブール値などの単純なデータ型に分解することができない基本的なデータ型である。次いで、静的カードプリミティブは、静的カード内の仕様に基づいてレンダリングするために所定のテンプレートおよびスタイルのセットから所定のテンプレートを選択するテンプレーティングエンジン120によって処理される。従来技術はまた、カードバージョンが不一致である場合のフォールバックモードを有することができる。例えば、テンプレートエンジン124が、提供された静的カードに対応するネイティブ表示実装を含んでいなかった場合、フォールバックエンジン128はエラーを出力するようにトリガされ、これにより、ユーザ104に未定義の挙動(エラーメッセージまたはいかなる静的カードにも対応しないデフォルトテンプレートなど)を体験させる可能性がある。
図1は、静的カードを生成するためのバックエンドサーバとの従来技術のユーザアプリケーション対話を示す。ユーザ104は、(用語集で定義されているような)ユーザデバイス108、またはユーザデバイス上の(用語集で定義されているような)任意のユーザアプリケーションと対話し、次いでバックエンドサーバ112と対話する。能動的入力(音声コマンドを入力するなど)、または受動的動作(ユーザアプリケーションまたはユーザアプリケーション内の機能ページを開くなど)であり得るユーザ要求は、カード要求に処理され(116)、次いでバックエンドサーバ112に送信される。バックエンドサーバ112は静的カードを返すことによってカード要求に応答し、これは静的カードプリミティブ120に変換される。静的カードプリミティブは、整数、文字列、ブール値などの単純なデータ型に分解することができない基本的なデータ型である。次いで、静的カードプリミティブは、静的カード内の仕様に基づいてレンダリングするために所定のテンプレートおよびスタイルのセットから所定のテンプレートを選択するテンプレーティングエンジン120によって処理される。従来技術はまた、カードバージョンが不一致である場合のフォールバックモードを有することができる。例えば、テンプレートエンジン124が、提供された静的カードに対応するネイティブ表示実装を含んでいなかった場合、フォールバックエンジン128はエラーを出力するようにトリガされ、これにより、ユーザ104に未定義の挙動(エラーメッセージまたはいかなる静的カードにも対応しないデフォルトテンプレートなど)を体験させる可能性がある。
現在のカードは、レンダリングとバックエンドサーバが特定のバージョングループにまとめられるように構成されている。この方法では、ユーザアプリケーションはバージョンXで動作しており、バックエンドサーバに接続してバージョンXに電力を供給することしかできない。ユーザアプリケーションは、ユーザが対話するためにすべての結果をデバイス上にレンダリングすることが可能であると仮定して、バックエンドサーバに要求を行う。これは、ユーザアプリケーションが固定量の対話を有するシナリオで良好に機能する。しかしながら、(用語集で定義されているような)AIサービスを提供する任意のソフトウェアでは、潜在的に無限の可能性がある。このような状況では、ユーザアプリケーションは、バックエンドサーバが予期しない要求の一部として結果をユーザデバイスに返す場合に、ユーザアプリケーションがクラッシュしないようにフォールバックモードを実装することを強いられる。これを回避するために、バックエンドサーバは、対応するアプリケーション更新なしでは新しい機能を含めることができない。さらに、外部開発者が完全にカスタムのユーザインターフェースを有するカスタムスキルを作成することは不可能であり、代わりに、それらは非常に一般的なシナリオでレンダリングできる範囲内に限定される。
最後に、インターフェースは、純粋に表示ベースの論理に制約される。結果として、これは、動的でカスタマイズ可能なカードを有することができないことを意味する。同様に、従来技術は深い論理機能を欠いているため、ユーザが行うことができるさらなる動作を提案したり、ユーザの希望に合うように適応的なレイアウトをしたりするなど、カード自体に別のレベルのAIを構築することは不可能または効率的ではない。従来技術では、2人のユーザが同じベース結果を受信した場合に、同じベース表示を目にするように、静的にレンダリングされたカードを表示することしかできない。静的にレンダリングされたカードとは、同じクエリを尋ねた2人のユーザが全く同じ情報および結果を受け取ることを意味する。これにより、限定はされないが、関与を高めるためにデータ表示順序または画像選択を再構築するなどのタスクを行うことが不可能になる。さらに、フォローアップタスクの提案は、現在のコンテキストの外側ではるかに一般的な形式で行われなければならない。
概要
従来技術の欠点を克服し、追加の利点を提供するために、人工知能駆動ユーザインターフェースカードを生成するためのシステムが開示される。一実施形態では、このシステムは、画面と、非一時的な機械実行可能コードを記憶するメモリと、機械実行可能コードを実行するように構成されたプロセッサとを有する第1のユーザデバイスを備える。この実施形態では、機械実行可能コードは、第1のユーザデバイスと互換性があるようにスマートカードバンドルを修正するように構成される。スマートカードバンドルは、表示要素の第1のセットおよびコンテキストデータの第1のセットを含む。表示要素の第1のセットは、ユーザアプリケーションによって提供される1つ以上の機能を使用し、コンテキストデータの第1のセットは、ユーザによる第1の要求に応答する。機械実行可能コードは、さらに、ユーザ情報の分析に基づいてユーザ嗜好を予測し、予測に基づいてスマートカードバンドルを構成するように構成される。表示要素の第2のセットおよびコンテキストデータの第2のセットも、スマートカードバンドルに対するものであってもよく、表示要素の第2のセットは、ユーザアプリケーションによって提供されない機能を使用する。
従来技術の欠点を克服し、追加の利点を提供するために、人工知能駆動ユーザインターフェースカードを生成するためのシステムが開示される。一実施形態では、このシステムは、画面と、非一時的な機械実行可能コードを記憶するメモリと、機械実行可能コードを実行するように構成されたプロセッサとを有する第1のユーザデバイスを備える。この実施形態では、機械実行可能コードは、第1のユーザデバイスと互換性があるようにスマートカードバンドルを修正するように構成される。スマートカードバンドルは、表示要素の第1のセットおよびコンテキストデータの第1のセットを含む。表示要素の第1のセットは、ユーザアプリケーションによって提供される1つ以上の機能を使用し、コンテキストデータの第1のセットは、ユーザによる第1の要求に応答する。機械実行可能コードは、さらに、ユーザ情報の分析に基づいてユーザ嗜好を予測し、予測に基づいてスマートカードバンドルを構成するように構成される。表示要素の第2のセットおよびコンテキストデータの第2のセットも、スマートカードバンドルに対するものであってもよく、表示要素の第2のセットは、ユーザアプリケーションによって提供されない機能を使用する。
別の実施形態では、ユーザ情報は、ユーザアカウント情報、ユーザ嗜好、以前のユーザ選択、ユーザ入力、ユーザウェブブラウザ履歴、ユーザ通信、または補助メタデータのうちの1つ以上から選択される。表示要素の第1のセットは、追加のユーザ動作を提案する、ユーザへの対話型プロンプトを含むことができると考えられる。一実施形態では、システムはバックエンドサーバをさらに含み、表示要素の第1のセットは、バックエンドサーバからのデータで定期的に更新される表示要素を含む。データは、バックエンドサーバからスマートカードバンドルにストリーミングされ得る。表示要素の第2のセットも、第2のユーザデバイスと通信するように構成され得る。表示要素の第3のセットおよびコンテキストデータの第3のセットは、コンテキストデータの第3のセットが第1および第2のユーザ要求の両方に応答するように、ユーザによる第2の要求に基づいてスマートカードバンドルに追加され得ることも考えられる。
人工知能駆動ユーザインターフェースカードを生成するための方法も開示され、方法は、ユーザデバイス上で実行されているユーザアプリケーションから第1のユーザ要求を受信するステップと、表示要素の第1のセットおよび表示要素の第2のセットを備えるスマートカードバンドルをコンパイルするステップとを含み、表示要素の第1のセットは、ユーザアプリケーションによって提供される1つ以上の機能を使用し、表示要素の第2のセットは、ユーザアプリケーションによって提供されない機能を使用し、方法は、さらに、ユーザ情報の分析に基づいてユーザ嗜好を予測するステップと、予測に基づいてスマートカードバンドルを構成するステップと、表示要素の第1のセットおよび表示要素の第2のセットをユーザデバイスの画面上に表示するステップとを含む。
ユーザ情報は、ユーザアカウント情報、ユーザ嗜好、以前のユーザ選択、ユーザ入力、ユーザウェブブラウザ履歴、ユーザ通信、または補助メタデータのうちの1つ以上から選択することができる。一実施形態では、スマートカードバンドルは、第1のユーザ要求に応答するコンテキストデータの第1のセットを含むことができる。本方法は、ユーザアプリケーションから第2のユーザ要求を受信するステップと、第1のユーザ要求および第2のユーザ要求に応答するコンテキストデータの第2のセットでスマートカードバンドルを更新するステップと、予測および第2のユーザ要求に基づいてスマートカードバンドルを構成するステップと、の追加のステップを含むことができる。別の実施形態では、本方法は、バックエンドサーバからストリーミングされた新しい情報でコンテキストデータの第1のセットを更新する追加のステップを含むことができる。
スマートカードバンドルは、追加の動作を提案する、ユーザへの対話型プロンプトを含むことも考えられる。対話型プロンプトは、予測されたユーザ嗜好に基づいて構成され得る。一実施形態では、スマートカードバンドルは、表示要素の追加、表示要素の削除、表示要素のサイズ変更、または2つ以上の表示要素の並べ替えのうちの1つ以上を実行することによって構成され得る。
画面と、非一時的機械実行可能コードを記憶するメモリと、機械実行可能コードを実行するように構成されたプロセッサとを有する第1のユーザデバイスを備える、人工知能駆動ユーザインターフェースカードを生成するための別のシステムが開示される。機械実行可能コードは、第1の画面に表示するためにスマートカードバンドルを第1のスマートカードに処理するように構成され、スマートカードバンドルは、表示要素のセットおよびコンテキストデータのセットを備える。機械実行可能コードはまた、第1のユーザデバイスによって提供されない機能を使用して第1のスマートカード上に表示要素のセットをレンダリングし、第2のユーザデバイスからのデータでコンテキストデータを更新するように構成されている。
一実施形態では、このシステムはまた、第2のユーザデバイスによってスマートカードバンドルから処理された第2のスマートカードと、第3のユーザデバイスによってスマートカードバンドルから処理された第3のスマートカードとを備えることができる。この実施形態では、第1のユーザデバイス上のコンテキストデータは、第2のスマートカードおよび第3のスマートカードからのデータで更新することができる。
第1のスマートカード、第2のスマートカード、および第3のスマートカードは、ピアツーピア方式で互いにデータを送信することができ、第1のスマートカードはホストとして選出されると考えられる。別の実施形態では、第2のユーザデバイスからのデータは、第2のユーザデバイスからバックエンドサーバにルーティングされ、次いでバックエンドサーバから第1のユーザデバイスにルーティングされる。
用語集:
AIサービス:AIサービスは、人工知能の目標を達成するためのプログラムへの手順および方法として提供されるサービスである。例としては、画像モデリング、テキストモデリング、予測、計画、推奨、検索、音声処理、音声処理、音声生成、テキスト生成、画像生成などを挙げることができる。
AIサービス:AIサービスは、人工知能の目標を達成するためのプログラムへの手順および方法として提供されるサービスである。例としては、画像モデリング、テキストモデリング、予測、計画、推奨、検索、音声処理、音声処理、音声生成、テキスト生成、画像生成などを挙げることができる。
デバイス:デバイスは、最小限のネットワークインターフェースおよびCPUで動作する任意の要素である。任意選択で、アクセラレータは、GPUまたは他の専用ハードウェアアクセラレータの形態で取り付けることができる。このアクセラレータは、AIサービスの計算を高速化することができる。
オペレーティングシステム(「OS」):オペレーティングシステムは、タスクのスケジューリング、アプリケーションの実行、およびハードウェアの制御などのコンピュータの基本機能をサポートするソフトウェアである。オペレーティングシステムは、これらの機能へのアクセスを他のソフトウェアに提供する。
ユーザアプリケーション:ユーザアプリケーションは、モバイルデバイス、スマートウォッチ、タブレット、ホームスピーカ、スマートリングを含むウェアラブルデバイス、眼鏡、補聴器、CarPlay(登録商標)デバイス、セキュリティカメラ、ウェブカメラ、テレビ、投影画面モニタ、サウンドバー、パーソナルコンピュータ、ヘッドホン、イヤホン、およびラップトップデバイスなどの任意のユーザ対応デバイス上で実行される任意のソフトウェアであり、ユーザはタッチ、音声、視覚で、または受動的に対話することができる。
AI仮想アシスタント:AI仮想アシスタントは、AIサービスを使用してデバイス上のユーザと対話、情報の提供、またはインターフェースを行うユーザアプリケーションである。
ユーザ情報:ユーザデータ(例えば、アカウント情報、位置データ、ユーザ嗜好)およびユーザ履歴(例えば、デバイスまたはユーザアプリケーションとのユーザの以前の対話に関するデータ、ユーザの興味、以前の活動、以前のウェブ検索、以前に訪問したウェブサイト、位置履歴、健康情報)など、ユーザによって生成された、またはユーザから収集されたユーザ情報データ。
補助メタデータ:補助メタデータは、現在の日付、ニュース、室温、気象状況など、ユーザに関連しない任意のデータである。
カード(すなわち、スマートカード):カードは、ユーザによって要求された情報によって入力される表示機構である。このカードは、テキスト情報、提案情報、ビデオ、および/または画像の組み合わせとすることができる。図8は、例示的なカードがどのような外見であるかの視覚的表現を示す。スマートカードは、ユーザごとに固有の情報を表示することができる。
この技術革新は、ユーザアプリケーションの更新を必要とせずに仮想アシスタントを新しい機能で拡張できるシステムを作成することによって従来技術を改善する。新しい機能が追加されると、ユーザアプリケーションは、それらの新しい機能応答でクエリに応答し始めるためにアップグレードされる必要はない。本発明は、結果の一部として固定マークアップ言語を使用するための要件を除去することによって、従来技術に精通した外部の開発者による拡張性の制限を改善する。これにより、レンダリングされたアイテム自体への深いドメイン固有の論理の統合が可能になる。さらに、本発明は、バックエンドサーバがユーザアプリケーションレンダリングから直接通信されるように動的結果を可能にすることによって従来技術を改善する。この改善により、異なるユーザアプリケーション内のフロントエンドが、そのような統合をユーザアプリケーションに処理させることなく、互いに直接対話することができるマルチユーザ状況の展開が可能になる。最後に、本発明は、スマートカードの範囲内に論理AIエンジンを含めることによって従来技術を改善する。このエンジンは、ユーザの関与を高めるためにスマートカードを動的に調整することができると共に、スマートカード自体に関連するドメイン内または潜在的に関連するドメイン内の両方でユーザが実行するための提案を提供することができる。より具体的には、サーバ制御AIがスマートカード上の要素をレンダリングすることができる手段を提供する。さらに、このレンダリングは、カード自体の一部としてAI主導の提案を行うことを可能にする。
本発明の他のシステム、方法、特徴および利点は、以下の図面および詳細な説明を検討することにより、当業者に明らかになるであろう。すべてのそのような追加のシステム、方法、特徴、および利点は、この説明内に含まれ、本発明の範囲内にあり、添付の特許請求の範囲によって保護されることが意図されている。
詳細な説明
スマートカードを生成する方法およびシステムは、4つの重要な要素を含む。第1の要素は、スマートカードの表示を担うレンダリングフレームワークである。第2の要素は、スマートカード上でAIサービスを実装する役割を担うスマートカード論理エンジンである。第3の要素は、外部で開発されたスマートカードにユーザアプリケーションとの互換性を持たせる最適化システムである。第4の要素は、複数のスマートカードがユーザデバイスを介して互いに通信することを可能にし、スマートカードがバックエンドサーバと直接さらに通信することを可能にするスマートカード通信フレームワークである。
スマートカードを生成する方法およびシステムは、4つの重要な要素を含む。第1の要素は、スマートカードの表示を担うレンダリングフレームワークである。第2の要素は、スマートカード上でAIサービスを実装する役割を担うスマートカード論理エンジンである。第3の要素は、外部で開発されたスマートカードにユーザアプリケーションとの互換性を持たせる最適化システムである。第4の要素は、複数のスマートカードがユーザデバイスを介して互いに通信することを可能にし、スマートカードがバックエンドサーバと直接さらに通信することを可能にするスマートカード通信フレームワークである。
より具体的には、レンダリングフレームワークは、ユーザアプリケーション側およびバックエンドサーバ実装の両方から構成される。バックエンドサーバの実装では、レンダリングフレームワークは、スマートカードに関する、およびスマートカードのためのデータおよび関連メタデータをレンダリング要求のコンテキストに注入する役割を担う。さらに、バックエンドサーバレンダリングは、スマートカードがユーザへのサービ中にインテリジェントタスクを実行し続けることができるように、結果駆動型AI用のフックを提供しなければならない。フックは、既存のプログラムまたはシステムの変更または拡張を可能にするために、ベースシステムが拡張コードを呼び出すことを可能にする関数のタイプである。ユーザアプリケーション実装は、サーバからのレンダリングを、デバイス上に表示することができるネイティブ要素に変換する役割を担う。異なるオペレーティングシステムおよびプラットフォームでは、表示に利用可能なプリミティブカードの異なるセットが存在し得る。最適な場合には、使用されるプリミティブカードの多く、テーブル、グラフ、グリッド、画像などのネイティブマッピングがあり得る。しかしながら、最も単純なケースでは、最も最小限のユーザアプリケーションは、事前レンダリングされた項目を表示するためのキャンバスを提供するだけでよい。このようにして、画面を有する任意のデバイスは、利用可能な最小限のユーザアプリケーションレンダリングを有することができる。
第2の重要な要素は、スマートカード論理エンジンである。スマートカード論理エンジンは、より強力な表示を目的としてAIタスクを実行するフレームワークである。これらのタスクは、任意の数のフィールドに関連することができる。いくつかの例示的なアプリケーションは、ユーザが、多数のタイプのユーザデータに基づいてAI選択エンジンを利用してその特定のユーザに合わせて調整されたスマートカード上で見るのに最適な画像を選択するためのものである。エンジンは、AIモデルを実行して、ユーザの過去の嗜好または画像の対話レベル、ならびにユーザに関する他の情報を考慮して最適な画像を決定することによってこれを達成する。この適応型カードインテリジェンス機能は、ユーザ履歴および活動に基づいて、インテリジェントエンジンを使用してディスプレイの任意の構成要素をカスタマイズすることができる。AIエンジンが、この特定のユーザがそれらを読む可能性がないと判断した場合は詳細セクションを削除することができ、またはそれらの詳細が含まれる場合にユーザがスマートカードと対話する可能性がより高いと予測される場合は、それらを導入することもできる。これは、AIエンジンによって自動的に行われ、ユーザが自分の嗜好をシステムに手動で入力することによって制御されてもよいが、その任意の手動によるオーバーライドが可能であってもよい。さらに、カードを作成して電力供給するエンジンは、フォローアップ提案およびユーザとの対話を含むことができる。仮想アシスタントの範囲内で、これらの提案は、一般的な方法でドメイン自体内のフォローアップタスクのためのものであり得る(すなわち、ユーザが天気情報を見ている場合、明日の天気を尋ねることを提案することができる)。これらの提案はまた、ドメイン内のよりパーソナライズされた項目の形態であってもよく、および/またはドメイン内のよりパーソナライズされた項目に関連してもよい(すなわち、ユーザが映画を見ていた場合、論理エンジンを介してユーザがそうする可能性が高いと判断されたかどうか、または過去の映画視聴習慣が、ユーザが特定の監督または特定の俳優の複数の映画を見るようなものであるかどうかなど、ユーザにとって有用であると判断された場合、特定の監督の映画について尋ねることを提案することができる)。さらに、これらの提案は、他のドメインのコンテキストでのフォローアップのためのものであってもよい(すなわち、例えば、ユーザが本を見ている場合、この同じ主題に関連する映画について尋ねることを提案することができる)。これらの提案はすべて、本発明の第1の重要な要素からバックエンドサーバレンダリングエンジンによって注入されたスマートカードのコンテキストを利用することによって、論理エンジンによって直接計算することができる。
第3の重要な要素は、最適化システムである。この要素は、ユーザアプリケーションの更新なしに新しいタイプのスマートカードを含めること、および/またはユーザアプリケーションに固有の機能を利用しないスマートカード上に新しい表示要素を含めることを可能にするものである。この機能については、以下の図11~図14でより詳細に説明する。このシステムは、そのプロトコルの実装を単純化するために提供されるプロトコルおよびソフトウェア開発キットから構成される。
プロトコルは、登録段階、コンテキスト注入段階、および論理段階から構成される。登録段階において、新しいスマートカードタイプは、バックエンドサーバレンダリングフレームワークにそれ自体を知られなければならない。これが完了すると、バックエンドサーバユーザアプリケーションは、そのスマートカードをレンダリングすることができることを知る。ユーザアプリケーションのバックエンドサーバレンダリング態様またはサブモジュールは、リソースを準備するために、または特定のタイプのスマートカードが最初にレンダリングされる必要があるときに必要に応じて、事前にこの情報をユーザアプリケーションにプッシュすることができる。
コンテキスト注入段階において、スマートカードは、そのレンダリング要件を満たすために必要なデータの種類を定義する。これは、スマートカードの要求に関する、またはスマートカード自体の一部としてレンダリングされている結果に関連するコンテキストを注入することを意味し得る。
最終段階は論理注入段階であり、論理注入段階では、開発者は、提案または論理エンジンが動作すべき他の動的機能を決定するためのプログラミング言語命令の形態でプログラム論理を符号化することができる。これらは、任意のプログラミング言語で実行することができ、前の段階によって注入されたコンテキストのいずれかで動作することができる。更新システムは、同じ種類のスマートカードの複数のバージョンを管理することができる。ユーザアプリケーションデバイスの仕様に応じて、ユーザに送信されるスマートカードの最適なバージョンを選択する。これらは、画面サイズ、解像度、計算能力、またはネットワーク接続などのデバイスの様々な制約によって決定することができる。
本発明の残りの要素(第4の要素)は、スマートカード通信フレームワークである。スマートカード通信フレームワークでは、外部リソースとの通信を可能にするフックがスマートカード論理エンジンに提供される。最も単純なケースでは、これは、ユーザがカードを見ている間にカードが動的に更新できるように、バックエンドサーバユーザアプリケーションとの通信であり得る。これは、ビデオがライブストリーミングされている場合、データがストリーミングされている場合(株価など)、または任意の他のリアルタイム機能の場合であり得る。より複雑なケースは、異なるデバイス上の複数のスマートカードが互いに対話している場合である。これは、内蔵ビデオ通話の場合、または任意の1対1通信の場合に、リモートデバイス上のカード間で直接起こり得る。接続する必要があるスマートカードが3つ以上ある場合、通信フレームワークは、サーバとして機能するマスターカードを選出することができ、残りのカードは接続してメッシュを作成する。この選出が不安定であるかまたは失敗した場合、バックエンドサーバを起動してリモートマスタとして機能させることができ、それをプロキシとして介して通信を行うことができる。
本発明の様々な実施形態を説明したが、本発明の範囲内にあるより多くの実施形態および実装形態が可能であることは当業者には明らかであろう。さらに、本明細書に記載の様々な特徴、要素、および実施形態は、任意の組み合わせまたは配置で特許請求され、または組み合わされてもよい。
図2は、ユーザデバイス上で実行されているユーザアプリケーション用のスマートカードを生成するシステムの例示的な実施形態を示す。図2において、ユーザデバイス204は、表示画面などのユーザインターフェース208および1つ以上のメモリデバイスに記憶することができるユーザデータ212を提供する。スマートカード機能216を有するユーザアプリケーションは、ユーザデバイス204上で実行することができる。ユーザデバイス204は、ユーザアプリケーション216がアクセスして使用することができるユーザデバイストランシーバ220Aなどのリモート通信のための手段を提供することができる。ユーザアプリケーション216は、上述した4つの重要な要素、すなわち、第1のレンダリングフレームワーク224A、スマートカード論理エンジン228、スマートカード最適化システム232、および第1のスマートカード通信フレームワーク236Aを含むことができる。追加のサポートソフトウェアおよびハードウェアは、当業者によって理解されるので、本明細書では詳細に説明しない。
ユーザデバイストランシーバ220Aは、ローカルエリアネットワーク、ワイドエリアネットワーク、パーソナルエリアネットワーク、インターネットなどの任意の電子通信ネットワーク240にアクセスすることができる。ネットワーク240を介して、ユーザアプリケーション216は、そのバックエンドサーバ244にアクセスすることができる。バックエンドサーバ244は、第2のレンダリングフレームワーク224B、第2のスマートカード通信フレームワーク236B、およびコンテキスト注入エンジン252をさらに含むスマートカードバンドルジェネレータ248を含むことができる。バックエンドサーバ244はまた、ネットワーク240を介した通信を容易にするために使用されるバックエンドトランシーバ160を含むことができる。
バックエンドサーバ244は、ネットワーク240を介して、スマートカードレジストリ264、1つ以上の情報サーバ168、および本明細書に記載されたまたは構成され得る他のデバイスまたは位置にアクセスすることができる。スマートカードレジストリ264は、カード要求のドメインに基づいて利用可能なカードの1つ以上のデータベースである。ドメインは、カードが基づくトピックである。ドメインの例は、株式、レシピ、レストラン、および他の活動またはユーザの関心である。
スマートカードは、ユーザアプリケーション216がバックエンドサーバ244にカード要求を送信するときに生成することができる。次いで、バックエンドサーバ244は、スマートカードレジストリ264で実行可能なスマートカードを検索し、トップカードを取得することができる。トップカードは、バックエンドサーバ244に記憶されたドメインおよびユーザ情報に基づいて決定される。このステップについては、以下の図5でより詳細に説明する。
最適なスマートカードを取得すると、レンダリングフレームワーク224およびスマートカード通信フレームワーク236は協働して、ユーザアプリケーション216およびユーザデバイス204に適合するスマートカードフォーマットを生成する。コンテキスト注入エンジン252は、情報サーバ268からコンテキストデータ(補助メタデータなど)を取得して、最適なスマートカードをユーザ要求に合わせてカスタマイズすることができる。上記の例示的なドメインに基づいて、コンテキストは、株価、レシピ内の材料、レストランのリストなどであり得る。スマートカード論理エンジン228を使用してさらにカスタマイズするために、スマートカードバンドルを生成し、ユーザアプリケーション216に返すことができる。スマートカードバンドルは、1つ以上の情報サーバ268からのコンテキストを有するトップカードである。例えば、カード要求が株式ドメインに対するものである場合、トップカードは、このユーザが一度に3つの株式を閲覧したいとするサーバに記憶されたユーザ情報に基づいて3つ以上の株式を表示するカードであり得る。コンテキストは、ユーザアプリケーション216上でユーザが最後に閲覧した最後の3つの株式であってもよい。
そのようなカスタマイズは、ユーザデータ212またはAIエンジンを使用して処理される情報サーバ268からのユーザ情報などのユーザ情報に基づくことができ、カード内のユーザが期待する最適な情報およびそのような情報の表示を提供するようにユーザのためにカードを自動的にカスタマイズする。
例えば、ユーザアプリケーション216は映画プレーヤであってもよく、ユーザ要求はユーザアプリケーション216を開く受動的な要求であり、カード要求は、ユーザに映画を表示するユーザインターフェースに対する要求であってもよい。最適なスマートカードは、特定のユーザの過去の履歴およびユーザによる以前のカードとの過去の対話に基づいて、特定のユーザに最適なフォーマットで特定のユーザに最適な情報を提供する映画情報を表示するためのテンプレートであり得る。各ユーザ経験は、AIエンジンによって異なるものにすることができる。コンテキストは、ユーザが選択するための映画結果の一般的なリストであってもよい。スマートカードバンドルを受信すると、カード論理エンジン228は、ユーザデータ212から、ユーザが最後に視聴した映画が半分だけ完了したと判定し、その最後に視聴した映画タイトルを表示リストの先頭に移動させることができる。カード論理エンジン228はさらに、情報サーバ268から、このユーザがアクション映画を頻繁に検索していることをユーザ履歴が示していると判断し、アクション映画のタイトルを表示リストの先頭に移動することができる。加えて、ウェブブラウザ検索履歴は、ユーザが車に興味があり、古いクラシックのマッスルカーを所有しており、女性の武術に興味があることを示すことができ、したがって、カード論理エンジンは、武術試合を行う主要な役の女性を含むクラシックのマッスルカーを含むアクション映画を表示する。
一実施形態では、ユーザアプリケーション216はまた、さらなるスマートカードカスタマイズのために、ネットワーク240または別個のネットワークを介して情報サーバ268にアクセスすることができる。同様に、バックエンドサーバ244は、直接または別個のネットワークを介してスマートカードレジストリ264および/または情報サーバ268にアクセスすることができる。
図3は、同じユーザクエリに基づいて4人の異なるユーザに表示される例示的なスマートカードを示す。この例では、ユーザアプリケーションはレシピファインダアプリケーションであってもよく、4人の異なるユーザが同じ音声コマンド要求「イタリア料理のレシピを探して」を入力していてもよい。図2で説明したように、一般的なイタリア料理のレシピセットでユーザアプリケーションにスマートカードバンドルを返すと、4人のユーザのためのレシピファインダアプリケーション内のそれぞれのカード論理エンジンは、ユーザデバイス上のユーザデータ(ユーザの使用履歴、関心、過去の活動、将来の活動、またはユーザの好みなど)および/または情報サーバ上のユーザデータ(ユーザの検索履歴または閲覧結果など)の分析に基づいて、以下の判定を行うことができる。a)ユーザ1はベジタリアンであり、通常は第2のフォローアップ要求を要求しない。b)ユーザ2はダイエット中であり、パスタを食べず、通常は決定を下すために複数の結果を必要とする。c)ユーザ3は親であり、簡単で手早く食事を作ることを好み、子供に見せるために一度に複数の結果を見ることも好む。d)ユーザnは、辛い料理を楽しみ、通常は辛いレシピを求める。
結果として、ユーザアプリケーション上の同じスマートカードバンドルは、4人のユーザ用の非常に異なるスマートカードにカスタマイズされ得る。a)ユーザ1は、追加のレシピ推奨なしで1つのベジタリアンのレシピを有するカードを受け取ることができる。b)ユーザ2は、赤身のタンパク質を含む2つのトップレシピと、赤身のタンパク質を含むレシピに関する3つの追加の推奨を受け取ることができる。c)ユーザ3は、調理時間が15分未満のレシピを1つ受け取り、調理時間が15分未満のレシピについての3つの追加の推奨を受け取ることができ、レシピは子供が見るためのものと判定されているので、栄養事実ラベルは取り除かれている。d)ユーザ4は、1つの辛い料理のレシピと、3つの追加の辛い料理のレシピの推奨を受け取ることができる。各カードは、特定のユーザに最適な関心情報を提供するように、そのユーザに合わせてカスタマイズされる。
図4は、スマートカードを生成するための例示的なプロセスを示す動作フロー図である。ステップ404において、ユーザアプリケーションまたはユーザデバイスは、ユーザ要求を受信する。上述したように、ユーザ要求は、能動的入力(音声コマンドを入力するなど)または受動的動作(ユーザアプリケーションまたはユーザアプリケーション内の機能ページを開くなど)であり得る。ユーザ要求(例えば、検索のためのユーザ入力に応答した検索結果のリスト、またはユーザアプリケーションを開くユーザの受動的動作に応答したユーザアプリケーションのメインページなど)に応答してカードを生成するために、ステップ408において、ユーザアプリケーションは、バックエンドサーバに対してカード要求を行うことができる。カード要求を受信すると、ステップ412において、バックエンドサーバは、スマートカードバンドルをユーザアプリケーションに返すことができる。このステップについては、図5でより詳細に説明する。
ステップ416において、スマートカードバンドルは、ユーザのデバイスの能力(電話タイプ、画面サイズ、バッテリ寿命など)およびユーザ設定(ダーク/ライトモード、明るさ、位置オン/オフなど)に基づいて、ユーザアプリケーションが動作するユーザデバイス用にカスタマイズすることができる。ステップ420において、スマートカードバンドルは、(用語集で定義され、図2および図3で説明され、図6~図9でより詳細に説明されているような)ユーザ情報に基づいてさらにカスタマイズされる。
ステップ424において、ステップ416および420に基づいてスマートカードバンドルがレンダリングされ、ユーザに表示される。表示時に、スマートカードは動的カスタマイズの能力を維持する。ステップ428において、ユーザアプリケーション内の最適化システムは、追加のコンテキストが必要であり得るかどうかを判定することができる。この判定は、ユーザがスマートカードの表示を終了するまで継続的に行われてもよく、またはリソースを節約するために設定された間隔で行われてもよい。ユーザアプリケーションがレシピファインダアプリケーションである上記の例を使用すると、スマートカードはユーザに対して選択されたトップレシピを既に表示している可能性があるが、最適化システムは、ユーザが追加の推奨を必要とすると判定している。したがって、ステップ432において、最適化システムは、さらなるカスタマイズに必要な追加のコンテキストを取得することができる。追加のコンテキストを取得するプロセスについては、図10でより詳細に説明する。ステップ436において、既に表示されているスマートカードは、取得した追加のコンテキストを使用して更新され得る。
ステップ440において、ユーザアプリケーション内の最適化システムは、サブスクリプションを決定することができ、データの継続的なストリームが必要とされ得る。この判定は、ユーザがスマートカードの表示を終了するまで継続的に行われてもよく、またはリソースを節約するために設定された間隔で行われてもよい。例えば、ユーザアプリケーションがオンライン株式取引アプリケーションである場合、最適化システムは、ユーザが株価のリアルタイム更新を必要とすると判定することができる。したがって、ステップ444において、最適化システムは、さらなるカスタマイズのために必要なサブスクリプションデータを取得することができる。サブスクリプションデータを取得するプロセスについては、図17でより詳細に説明する。ステップ436において、既に表示されているスマートカードは、追加のサブスクリプションデータを使用して更新され得る。
スマートカードが追加のコンテキスト(ステップ428~432)とサブスクリプション(ステップ440~444)の両方に基づいて更新され得る場合、これらの更新は、同時にまたはいずれかの順序(コンテキストファースト、またはサブスクリプションファースト)で行われ得る。
図5は、バックエンドレンダリングフレームワークの構造を示す。図4では、ユーザアプリケーション504は、図2に記載の方法を使用してそのバックエンドサーバ508と通信する。バックエンドサーバ508は、次に、スマートカードレジストリ512および1つ以上の情報サーバ516と通信する。
ユーザ要求に応答して、ユーザアプリケーション504は、バックエンドサーバ508にカード要求を送信することができる。カード要求は、ドメインおよび様々なユーザ指定情報を含むことができる。例えば、ユーザアプリケーション504が株式取引プラットフォームであり、ユーザが過去24時間にわたる3つの指定株式を閲覧することを要求した場合、カード要求は、ドメイン(株式)および過去24時間の3つの株式のユーザ指定を含むことができる。
カード要求に応答して、バックエンドサーバは、利用可能なスマートカードパッケージについてスマートカードレジストリ512を検索することができる。スマートカードパッケージは、ユーザデータを処理し、ユーザに最適なテンプレートを自動的に選択し、テンプレート内のデータをカスタマイズしてカスタマイズされたユーザ固有のカードを作成するAIエンジンに基づいて動的に変更され得る動的要素を有するスマートカードテンプレートである。上記の例では、カード要求が過去24時間にわたる3つの株式の表示に対するものである場合、利用可能なスマートカードパッケージは、株価の少なくとも3つの表示要素を有するテンプレートを含むことができる。
バックエンドサーバ508は、利用可能なユーザ情報を使用してトップカードを選択することができる。例えば、バックエンドサーバ508は、ユーザがダークモードでのみユーザアプリケーション504を使用し、大きなフォントを使用することを示すために、ユーザ嗜好を記憶しておくことができる。したがって、バックエンドサーバ508は、暗いテンプレートおよび大きなフォントを有するトップカードを選択することができる。ユーザ嗜好およびドメインに基づいてトップカードを選択するこのプロセスは、動的修正の第1の層であり、これは、一般にすべてのユーザに同じテンプレートを提供する従来技術の静的カードを改善し、固有のユーザ嗜好に基づく変更はほとんどまたは全くない。
バックエンドサーバ508は、情報サーバ516からのデータを使用して、スマートカードパッケージにコンテキストを注入することができる。情報サーバ516からのコンテキストは、ユーザ要求に応答してスマートカードを生成するためにトップカードに入力するのに必要な任意のデータまたは情報を含む。例えば、トップカードを選択すると、バックエンドサーバ508は、選択された3つの株式の直近24時間の株価を取得し、取得したデータの視覚的表示を3つの株式表示要素に入力することができる。AIエンジンは、カードをユーザに合わせてカスタマイズすることができる。例えば、ユーザがS&P500の実績と共にプロットする株式の実績と1年間という期間を過去に選択している場合、ユーザに提示されるカードは、過去の閲覧履歴を使用してそのように構成され得る。多数の他のカードのカスタマイズは、ユーザの履歴、活動、検索、位置データ、取引履歴、または任意の他のユーザデータにアクセスするAIエンジンの使用によって行うことができる。
次いで、バックエンドサーバ508は、スマートカードバンドルをユーザアプリケーション504に返すことができる。スマートカードバンドルは、トップカードと注入されたコンテキストの両方を含み得る。上記の例では、スマートカードバンドルは、大きなフォントのダークカードテンプレートに表示された過去24時間の3つの株価を含み得る。
図6は、ユーザアプリケーションレンダリングフレームワークの構造を示す。図5に続いて、スマートカードバンドルは、バックエンドサーバ604からユーザアプリケーション608に配信され、スマートカードバンドルは、ユーザへの出力628のためにスマートカードが生成されるまで、ローカルコンテキスト注入エンジン612、プリミティブ変換エンジン616、論理注入エンジン620、および表示デバイス624を使用してさらに処理される。
ローカルコンテキスト注入エンジン612は、電話タイプ(Android対iOS)、電話ディスプレイ(ダーク対ライトモード)、画面サイズ、電池寿命(フル表示対省電力表示)などのローカルユーザアプリケーションコンテキストデータに基づいてスマートカードバンドルを修正するように構成されたユーザアプリケーションの一部であるソフトウェアモジュールである。
プリミティブ変換エンジン616は、より高い表示性能および品質を達成するために、デバイス上で利用可能なあらゆる実装を使用してスマートカードバンドルを最適化する。例えば、プリミティブ変換エンジン616は、「マップ」項目を対話型マップのシステム固有の実装形態に変換することができる。
論理注入エンジン620は、スマートカードの動的修正の次の層を実行する。ユーザデバイスに関するユーザ情報、ユーザアプリケーション608、および任意の補助メタデータを分析すると、論理注入エンジン620は、ユーザのニーズに最適に沿うようにスマートカードバンドル上の表示要素を並べ替え、および/またはユーザの過去のユーザ嗜好、ユーザ履歴、およびユーザの行動/活動の分析に基づいてカードに含める情報を決定する。例えば、スマートカードバンドルが、過去24時間にわたる株式A、B、Cの3つの株式の株価チャートである場合、論理注入エンジン620は、ユーザが株式BおよびCを見ながら、現在株式Aを売買している(またはリサーチしているか、作業しているか、または熱中している)と判定することができる。したがって、株式Aは、株式BおよびCよりも大きな表示ウィンドウに表示され、株価変化の視覚的指標またはアラートを含むことができる。論理注入エンジン620はまた、株式Bが安定したままである一方で、株式Cが過去24時間に多くの変動を示したと判定することができる。したがって、論理注入エンジンは、株式BおよびCを並べ替えて、株式Bのチャートの前に株式Cのチャートを表示することができる。論理注入エンジン620は、カードが生成されると、静的カードにはAIが検出したユーザ嗜好およびユーザ履歴に基づくさらなるカスタマイズの余地が残らなかった従来技術の別の改善点である。さらに、上記の例に示すように、スマートカードは、表示される要素の順序だけでなくカスタマイズ可能である。むしろ、ウィンドウサイズおよびデータ自体の性質などの表示パラメータは、ユーザのニーズに基づいてカスタマイズ可能であり得る。さらに、重要な改善点は、そのようなカスタマイズのAI特性である。ユーザがカスタマイズのための特定の要求を入力することができると考えられるが、論理注入エンジン620も、そのようなカスタマイズを自動的かつ動的に実行することができる。表示デバイス624は、カスタマイズされたスマートカードバンドルを表示用のスマートカードにレンダリングし、スマートカードをユーザに出力628する。
図7は、プリミティブ変換エンジンを示す。図7において、ユーザデバイス704は、ユーザアプリケーション708およびローカルプリミティブ記憶装置712を含む。ローカルプリミティブ記憶装置712は、ユーザデバイス704上のすべてのユーザアプリケーションが使用することができるユーザインターフェース要素を含む。例えば、すべてのiOSスマートフォンは、すべてのApple(商標)アプリケーションが均一に見えるようにするために使用することができるユーザインターフェース要素、例えば表示ウィンドウの角丸、または特定のフォントもしくはカラースキームを含むことができる。ユーザアプリケーション708は、とりわけ、以下の要素、すなわち、ローカルコンテキスト注入エンジン716、プリミティブ変換エンジン720、カスタムプリミティブ記憶装置724、フォールバックキャンバスプリミティブ728、および論理注入エンジン732を含む。
図6で説明するように、スマートカードバンドルは、最初にローカルコンテキスト注入エンジン716によって処理され得る。次いで、ローカルコンテキスト注入エンジン716は、プリミティブ仕様を有するスマートカードバンドルをプリミティブ変換エンジン720に送信する。プリミティブ仕様は、ローカルコンテキストを有するスマートカードの全体的に予想される要素の定義のセットである(図6で説明)。例えば、スマートカードバンドルは、過去24時間にわたる3つの株価と大きなフォントを示すための3つの表示要素を有する暗いテンプレートであってもよい。ローカルコンテキストは、iPhone(登録商標)12の画面サイズに合うカードであってもよい。プリミティブ仕様は、上記のすべての説明をレンダリングするために必要な<div>要素、<span>タグなどの仕様であってもよい。
プリミティブ変換エンジンは、プリミティブ仕様をネイティブ事前実装プリミティブと組み合わせて、特定のネイティブユーザアプリケーションにおいて拡張されるカスタムプリミティブのセットを形成する。プリミティブ仕様を受信すると、プリミティブ変換エンジン720は、仕様を満たすために利用可能なユーザインターフェース要素についてローカルプリミティブ記憶装置712をまず検索することができる。ローカルプリミティブ記憶装置712がプリミティブ仕様を満たすのに必要なすべての要素を含む場合、プリミティブ変換エンジン720は処理を完了し、レンダリング仕様を論理注入エンジン732に配信することができる。レンダリング仕様は、指定されたプリミティブを使用してローカルコンテキストでスマートカードバンドルをレンダリングするために必要な仕様のセットである。例えば、地図アプリケーションは、地図のスマートカードをレンダリングするために、ネイティブに実装された地図のバージョンおよび同様の構成要素を最初に使用することができる。好ましい実施形態では、ローカルプリミティブ記憶装置712内の要素は、性能を最適化するために最初に使用される(処理速度を向上させ、メモリおよび電池寿命などのリソースを節約することを含むが、これに限定されない)。
ローカルプリミティブ記憶装置712がすべての必要な要素を含んでいない場合、プリミティブ変換エンジン720は、次に、追加の要素についてカスタムプリミティブ記憶装置724を検索することができる。カスタムプリミティブ記憶装置724は、ユーザアプリケーション708によって、およびユーザアプリケーションのために特別に提供されるユーザインターフェース要素を含む。例えば、株式アプリケーションは、株価チャートおよび表の表示に必要な要素を含むことができる。カスタムプリミティブ記憶装置724がプリミティブ仕様を満たすのに必要なすべての要素を含んでいる場合、プリミティブ変換エンジン720は処理を完了し、レンダリング仕様を論理注入エンジン732に配信することができる。
一方、ローカルプリミティブ記憶装置712もカスタムプリミティブ記憶装置724もすべての必要な要素を含んでいない場合、プリミティブ変換エンジン720は、フォールバックキャンバスプリミティブ728を利用してギャップを埋め、スマートカードが依然として任意のユーザアプリケーション上でレンダリングされ得ることを保証することができる。図8は、フォールバックキャンバスプリミティブがどのように使用されるかについての詳細な説明を含む。
別の実施形態では、プリミティブ変換エンジン720は、ローカルプリミティブ記憶装置712、カスタムプリミティブ記憶装置724、およびフォールバックキャンバスプリミティブ728の任意の組み合わせを使用して、任意の順序でプリミティブ仕様を処理することができる。
図8は、フォールバックキャンバスプリミティブを示す。図8において、ユーザデバイス804は、ユーザアプリケーション808およびデバイス情報記憶装置812を含む。ユーザアプリケーション808は、プリミティブエンジン816およびフォールバックキャンバスエンジン820を含む。フォールバックキャンバスエンジンは、クラウドまたはリモートクラウドベースサーバ824に記憶することができるレンダリングデータベースに接続される。レンダリングデータベースは、カード仕様の静的レンダリングを提供することができる。
図7で説明したように、プリミティブエンジン816は、フォールバックキャンバスプリミティブ820を使用して、ローカルプリミティブ記憶装置またはカスタムプリミティブ記憶装置からの適切なプリミティブが利用できないプリミティブ仕様をレンダリングすることができる。その場合、プリミティブエンジン816は、フォールバックキャンバスプリミティブ820にスマートカード仕様のセットを送信することができる。スマートカード仕様は、静的カードまたはスマートカード上の静的(非対話型)要素のレンダリングに使用されるパラメータである。フォールバックキャンバスプリミティブ820は、静的レンダリングを提供することができるリモートデータベース824へのリモート要求をトリガすることができる。リモートデータベース824は、リモートレンダリング結果を返すことができる。フォールバックキャンバスプリミティブ820は、リモートレンダリング結果をユーザデバイス表示データと組み合わせて、静的カードまたはスマートカード上の静的要素を生成することができる。ユーザデバイス表示データは、デバイス情報記憶装置812から取得することができる、サポートされる画素数、画素強度、黒/白またはカラー表示などのユーザデバイス804の表示能力を定義するデータである。次いで、静的レンダリングは、図6に記載されるように、ユーザアプリケーション内の表示デバイスに渡されてもよい。
図6で説明したように、スマートカードバンドルがプリミティブ変換エンジンによって処理された後、論理注入エンジンは、スマートカードバンドルを処理して、ユーザのためにスマートカードをさらにカスタマイズすることができる。このステップは、最小限のカスタマイズを含み、かつAIエンジンおよびユーザデータを使用して、ユーザの固有のニーズに合うようにカード上の要素を並べ替えることができない従来のカードの改善である。図3は、「イタリア料理のレシピを探して」という音声コマンドを入力した4人の異なるユーザが4つの異なるスマートカード表示をどのように受け取ることができるかの例を示す。図9は、論理注入エンジン904を使用して図3の4つの異なるスマートカードを実現する方法を示す。ステップ908において、論理注入エンジン904は、最初に、ユーザ要求を行っているユーザアカウントを識別することができる。ステップ912において、識別されたユーザアカウントの固有のユーザプロファイルを収集することができる。固有のユーザプロファイルは、ユーザデバイス、ユーザアプリケーション、または任意の他の接続されたデバイス、データベース、またはサーバ上で利用可能な任意のユーザ情報(ユーザアカウント情報、ユーザ履歴、ユーザ嗜好など)を含むことができる。
ステップ916において、固有のユーザプロファイルの分析を実行して、スマートカードをカスタマイズするために必要な主要なユーザ特性を決定することができる。図3の例で説明したように、論理注入エンジン904は、ステップ916Aにおいて、ユーザ1がベジタリアンであり、通常は第2のフォローアップ要求を求めないと判定することができる。論理注入エンジン904は、ステップ916Bにおいて、ユーザ2がダイエット中であり、パスタを食べず、通常は決定を下すために複数の結果を必要とすると判定することができる。論理注入エンジン904は、ステップ916Cにおいて、ユーザ3が親であり、簡単で手早く食事を作ることを好み、子供に見せるために一度に複数の結果を見ることも好むと判定することができる。また、論理注入エンジン904は、ステップ916Dにおいて、ユーザnが辛い料理を楽しみ、通常は辛いレシピを求めると判定することができる。決定するステップは、カードを生成するためにカスタマイズされた固有の体験を作成するためにユーザに関するすべてのデータを処理するAIエンジンによる任意の数の要因に基づくことができる。
ステップ920において、ステップ916の判定に基づいてスマートカードバンドルをカスタマイズすることができる。例えば、ステップ920Aにおいて、ユーザ1のスマートカードは、追加のレシピ推奨なしで1つのベジタリアンのレシピを示すようにカスタマイズされてもよい。ステップ920Bにおいて、ユーザ2用のスマートカードは、赤身のタンパク質を含む2つのトップレシピと、赤身のタンパク質を含むレシピについての3つの追加の推奨とを示すようにカスタマイズされてもよい。ステップ920Cにおいて、ユーザ3のスマートカードは、15分未満の調理時間の1つのレシピと、15分未満の調理時間のレシピについての3つの追加の推奨とを示すようにカスタマイズされてもよく、レシピは子供が見るためのものであると判定されているので、栄養事実ラベルは除去される。そして、ステップ920Dにおいて、ユーザ4のスマートカードは、1つの辛い料理のレシピと、3つの追加の辛い料理のレシピの推奨を示すようにカスタマイズされてもよい。
このレベルのカスタマイズ、特にユーザアプリケーションにおける使用履歴を超えるユーザ情報の包括的な収集分析、および個々のユーザのニーズに適合するために使用される様々なカスタマイズされたユーザ固有のカード要素は、静的カードをレンダリングする従来の方法では達成され得ない。
図10は、図3の4つの異なるスマートカードをユーザ固有のプロンプトでさらにカスタマイズする方法を示す。図9のステップを続け、固有のユーザプロファイルの同じ決定に基づいて、各ユーザは、代替レシピタイプ(例えば、ベジタリアン対肉のレシピ)、食事オプション(配達など)、飲料の推奨、またはユーザの関心のさらなる発展のためのプロンプト(ユーザ2のトレーニングプランをセットアップするためのプロンプトなど)を受け取ることができる。図10に示すように、ユーザ固有のプロンプトの内容は、ユーザアプリケーションの機能および能力を超えて拡張することができ、これは、ユーザアプリケーション固有の内容に限定され得る静的カードをレンダリングする従来の方法のさらなる改善である。対照的に、スマートカード内のユーザ固有のプロンプトは、各ユーザに固有のユーザ体験を提供して、その特定のユーザに固有のより良い情報を要求および受信するようにユーザを案内およびナビゲートするのを助ける。ユーザが要求を有するたびに、完全に新しい固有のプロンプトがスマートカードに表示されてもよい。これは、過去および現在のコンテキストを分析してユーザの嗜好、好み、および嫌悪を判定できるAIサービスを介してのみ可能である。
ユーザがこれらの固有のプロンプトに応答した場合、スマートカードはレンダリング後の最適化を必要とする場合がある。例えば、図10に示すように、ユーザ1へのベジタリアン料理の配達の提案2に応答して、ユーザ1は提案された配達を要求することができる。その後、スマートカードは、ユーザ1のフォローアップ要求に応答して表示で更新されてもよい。これは、さらに更新またはカスタマイズされない可能性がある従来の静的カードからの別の改善である。
ユーザアプリケーションによるカード要求に応答して生成されたスマートカードは、最初にユーザアプリケーションの機能を利用する要素でコンパイルされてもよいことは明らかである。例えば、レシピファインダ用に生成されたスマートカードはレシピを表示する要素を含み、映画ストリーミングアプリケーション用に生成されたスマートカードは映画タイトルまたは映画を表示する要素を含み、株式取引プラットフォーム用に生成されたスマートカードは株式を表示する要素を含む、などである。図11は、レンダリング後の最適化を達成することができるスマートカード最適化システムを示す。例えば、前述したように、最適化システムは、ユーザアプリケーションの機能を超えてスマートカードの動的なカスタマイズに寄与する4つの重要な要素のうちの1つである。最適化システムは、データ記憶装置からデータをフェッチすることができるサーバ上で動作するコンテキスト注入エンジンを含むことができ、データ記憶装置は、補助メタデータ要求を解決することができるリモートデータベースまたはサーバであってもよい。
図11では、レンダリングされたスマートカード1104は、ユーザアプリケーション上またはユーザアプリケーションが実行されているユーザデバイス上に表示され得る。ユーザアプリケーションは、最適化システム1108を含むことができる。最適化システム1108は、図2で説明した様々な方法を介して1つ以上の情報サーバ1112と通信することができる。図10で説明した例を使用すると、ユーザアプリケーションは、配送オプションの固有のプロンプトをユーザに提示するレシピファインダアプリケーションであってもよい。配信オプション自体は、ユーザアプリケーションが元々提供する機能ではない場合がある。
ユーザ要求(これは、上述したように、受動的動作、または能動的入力であってもよい)に応答して、スマートカード1104は、表示するために、既存の要素を更新するか、または新しい要素を提供するための追加のコンテキストを要求することができる。コンテキスト要求は、要求を処理して必要な追加データを識別して取得する最適化システム1108にルーティングすることができる。例えば、ユーザがベジタリアン料理の配達を要求したことに応答したコンテキスト要求は、配達サービスを提供する半径5マイル以内の利用可能なベジタリアンレストランのリストを取得することであってもよい。
コンテキスト要求を受信すると、最適化システム1108は、1つ以上の情報サーバ1112にデータを要求することができる。この例では、最適化システム1108は、GoogleマップまたはYelpなどのサードパーティサーバを使用して、近くのベジタリアンレストラン、ならびに営業時間、配達料金、およびメニューやオンライン注文フォームへのリンクなどの追加情報を識別する。
データを受信すると、最適化システム1108は、スマートカードが表示することができるレンダリング可能な仕様にコンテキストをパッケージ化することができる。上述したように、ユーザアプリケーションは、元々配達オプションをサポートしていない場合がある(これは、レストランのリスト化、メニューの取得、および注文フォームの表示など、上述した多くの特徴を含むことができる)。従来の静的カードは、ユーザアプリケーションによってサポートされていない要素を表示する能力を有していない場合がある。対照的に、スマートカードは、これらの特徴を表示する要素を生成することができる。
従来の静的カードからの別の改善は、バックエンドサーバとの対話に基づいてライブデータでその表示を更新するスマートカードの能力である。図12は、ライブデータ更新を有する例示的な株式市場スマートカードを示す。これらの例では、株価に関するスマートカードのデータはリアルタイムで更新され、これにより、業者はスマートカードを介して売買することができる。
図13は、図12の例示的なスマートカードを実現できる方法を示すための、スマートカードとバックエンドサーバとの間の通信フレームワークを示す。図13では、スマートカード1304は、図2で説明した方法のうちの1つを使用してバックエンドサーバ1308と通信することができる。バックエンドサーバ1308は、1つ以上の情報サーバ1312と通信することができる。スマートカード1304上の表示が、図12の例示的なスマートカードにおける株価の変化などのリアルタイム更新を必要とする場合、スマートカードは、バックエンドサーバにサブスクライブして、バックエンドサーバから更新を受信し、カードを更新状態に維持することができる。サブスクリプションは、結果のストリームに対する要求である。ストリームは、データが継続的に提供される通信のモードである。株式市場カードの例では、サブスクリプションは株価についてである。
次に、バックエンドサーバ1308は、更新のために1つ以上の情報サーバ1312を監視し始めることができる。株式市場カードの例では、情報サーバ1312は、株価を表示するサードパーティのウェブサイトであってもよい。バックエンドサーバ1308は、これらのウェブサイトを監視し、株価の変化を検出すると、そのような変化をスマートカード1304にストリーミングし、いかなる変化にもかかわらず価格を定期的に更新することができる。
別の実施形態では、個々のスマートカードは、情報サーバを監視し、サードパーティデータを直接取得することができる。しかしながら、サードパーティデータはサブスクリプション料金を必要とする可能性があるため、バックエンドサーバを使用する実施形態が好ましい。バックエンドサーバは、1つのサブスクリプション料金で、任意の数のスマートカードのサブスクリプションニーズにサービスを提供することができる。加えて、個々のスマートカードが一時的にオフラインになる可能性がある場合(ユーザデバイスでの信号受信不良など)、バックエンドサーバは、サードパーティデータをリアルタイムで引き続き受信し、スマートカードがオンラインに戻ったときに結果をスマートカードに遡及的にストリーミングすることができる。
スマートカードがバックエンドサーバからのライブデータでその表示を更新する能力は、単純な結果ストリームを超えて拡張される。スマートカードはまた、ターンベース方式でユーザと対話し、数ターンにわたって状態を維持することができる。状態は、任意の時点における先行するイベントまたはユーザ対話の集合である。従来、ユーザ間アプリケーションは、第1のユーザ要求が第1の応答を生成し、第2のユーザ要求が第2の応答を生成するという意味でのみターンベースであり、第2の応答は第2の要求に応答するだけであり、第1の要求の状態は維持されないため、第1の要求には応答しない。スマートカードおよび/またはバックエンドサーバにAIサービスを統合することにより、既にレンダリングされたスマートカードに対する各新しいユーザ要求が以前のユーザ要求のコンテキストで分析および処理され得るように状態を維持することができる。
図14は、ユーザがAIバックエンドサーバでリアルタイムのチェスゲームをプレイすることができる例示的なチェススマートカードを示す。図14のチェスゲームと従来のチェスゲームユーザアプリケーションでプレイされるチェスゲームとの違いは、図14のチェスゲームスマートカードが任意のユーザアプリケーションにおいてユーザに表示され得ることである。例えば、ユーザは、レシピファインダアプリケーションでレシピを見ている可能性があるが、湯が沸くのを待っている間に、チェスゲームをプレイしたいと要求することができる。次いで、レシピを表示する既にレンダリングされたスマートカードは、同じカード内にチェスゲームの要素を組み込むことができる。さらに、ゲームプレイは、カード自体の中で行われてもよく、チェスプレイ専用の別個のプログラムまたはソフトウェアアプリケーションを必要としない。
図15は、スマートカードテンプレートがスマートカードレジストリにアップロードされ、トップカードとして識別される方法を示す。図2および図5で説明したように、カード要求に応答して、スマートカードレジストリおよびバックエンドサーバは協働して、カード要求に応答するトップカードを識別する。
図15では、スマートカードテンプレートは、スマートカード仕様1504を提供することによって生成される。スマートカード仕様1504は、論理、コンテキスト、およびスマートカードバンドルがレンダリング中に要求するレンダリングメタデータを定義する。
論理要求は、コードの一部としてすべての論理およびプログラムルーチンのプログラム仕様を含む。これは、カードが、ユーザがどの俳優を他の俳優よりも好むか、または特定のジャンルにどのランキングを割り当てるかを判断する能力を必要とすることであり得る。
必要とされるコンテキストは、ユーザアプリケーション上でレンダリングを実行する一部として外部データ記憶装置からフェッチされる必要がある関連メタデータである。一例は、カード仕様が特定の映画の俳優のリストを必要とすることであり得る。
レンダリングメタデータは、レンダリングプロセスを達成するためにどのようなユーザアプリケーション情報が必要とされるかの定義である。これは、画面サイズまたは解像度および品質に関する情報、ならびに一般的なハードウェアデバイス情報であり得る。
スマートカード仕様1504は、スマートカードパッケージ1508に変換され、登録要求を介してスマートカードレジストリ1512に送信される。
バックエンドサーバは、スマートカード仕様1504のどのセットがユーザアプリケーションおよびユーザデバイスと最も互換性があるかを識別することによって、利用可能なスマートカードパッケージを検索する。トップカードを発見すると、スマートカードレジストリは、スマートカードパッケージ1508をバックエンドサーバに配信し、次いでスマートカードパッケージ1508は、情報サーバから注入されたコンテキストと共にスマートカードバンドルになる。
スマートカードの別の固有の特徴は、カード間対話を介したデバイス間通信である。従来の静的カードは、他の静的カードと通信することができない。デバイス間通信は、通常、ユーザアプリケーションなどの外部手段を介して実現される。カード間対話は、ユーザが別のデバイスまたはユーザと通信するためにサードパーティアプリケーションをダウンロードする必要性を排除する。例えば、ユーザは、従来、ビデオ会議に参加するためにサードパーティアプリケーションをダウンロードすることを強いられる(ズームまたはMicrosoftチームのダウンロードなど)。一方、スマートカードは、ビデオおよび音声フィードの表示をレンダリングするだけでビデオ会議を容易にすることができ、したがって、サードパーティアプリケーションの必要性を排除する。さらに、サードパーティアプリケーションは、携帯電話、コンピュータ、タブレット、ラップトップ、またはテレビなどのすべてのビデオ画面デバイスと普遍的に互換性があるわけではない。一方、スマートカードは、表示形式およびパラメータを、異なる種類の物理的表示画面および関連するシステムごとに動的にカスタマイズすることができる。
図16Aは、スマートカードがカード間対話でレンダリングされるユーザデバイスの表示画面に合うように各スマートカードをカスタマイズする方法を示す。図16Aでは、ユーザA1604Aのスマートカードは、ビデオ会議を表示することなどによって、ユーザB1608Aのスマートカードと対話することができる。各スマートカード1604A、1608Aは、それ自体のスマートカード論理エンジン1612を有する。上述したように、スマートカード論理エンジン1612は、スマートカード上でAIサービスを実装する役割を担う。ユーザAおよびBのスマートカード1604A、1608A上のそれぞれのスマートカード論理エンジン1612は、スマートカードを表示するために使用されるビデオ画面デバイスを各々識別することができる。ユーザAの場合、スマートカード論理エンジン1612は、ビデオ画面デバイスを携帯電話1620として識別し、スマートカード1604Aを電話画面に合うようにカスタマイズすることができる。ユーザBの場合、スマートカード論理エンジン1612は、ビデオ画面デバイスをコンピュータ1624として識別し、スマートカード1608Aをコンピュータ画面に合うようにカスタマイズすることができる。
図16Bは、ユーザAおよびBのための例示的なスマートカードを示す。ユーザAのスマートカード1604Bは電話画面用にカスタマイズされており、ユーザBのスマートカード1608Bはコンピュータ画面用にカスタマイズされている。カスタマイズは、異なる画面サイズに適合するように画面をトリミングすることを超える。2つのスマートカード1604B、1608Bの比較は、ビデオ表示ウィンドウが全く異なっていてもよいことを示す(ポートレート対ランドスケープ)。テキストベースのチャットウィンドウなどの追加の表示要素も含まれ得る。
図16Aおよび図16Bは、ビデオ表示を使用した1つの例示的なカード間対話を示す。スマートカードを使用して、任意のタイプのカード間対話を実現することができると考えられる。例えば、ユーザAおよびBは、自分のスマートカード上にチェスゲーム表示要素を要求することによってターンベースのチェスゲームに関与することができ、または選択された株価を並べてレビューして自分の取引を比較することができ、またはスマートカードを介して自分たちの料理レシピを交換することができる。
スマートカード体験は、固有のユーザごとにさらにカスタマイズされ得ることも考えられる。例えば、ユーザA1604のスマートカード上のビデオ会議はフル画面であってもよく、これは、ビデオ会議およびテキスト追跡型チャットがスマートカード上の唯一の要素であり得ることを意味する。一方、ユーザB1608のスマートカード上のビデオ会議およびチャットボックスは、単一のスマートカード上の多くの他の要素のうちの2つであってもよい。
図17は、3つ以上のスマートカードにわたるカード間対話を示す。図16Aで説明した同じ方法論を使用して、スマートカード論理エンジンは、携帯電話、コンピュータ、およびタブレットを含むがこれらに限定されない任意のユーザデバイスに対する同じカードの表示をカスタマイズすることができ、これらのデバイス上のスマートカードは互いに対話する。
マルチカード対話では、1つのスマートカードをホストとして選出して、すべてのカードの安定性および同期を確保することができる。図18は、ホストとして機能するスマートカードを決定するための選出フレームワークを示す。図18では、第1のスマートカード1804、第2のスマートカード1808、および第3のスマートカード1812は、ヒューリスティック投票プロセスを通じてどのカードが最も安定してホストとして機能するかを決定するためにラウンドロビン方式で互いに通信する。ホストは、ユーザデバイスの安定性(利用可能な能力、複雑なAIサービス要求を処理する能力など)およびそれらのそれぞれのネットワーク接続の安定性(信号強度、帯域幅など)、またはデバイスをホストとして適切にすることができる任意の他の要因に基づいて選択される。この選出フレームワークは、任意の数のデバイス上の2つより多い任意の数のスマートカードからスケーリングすることができる。安定性は、Raft合意アルゴリズムを実行することによって決定される。
別の実施形態では、バックエンドサーバがホストとして使用されてもよい。図19は、この代替的なマルチカード通信フレームワークを示す。図19では、第1のスマートカード1904、第2のスマートカード1908、および第3のスマートカード1912は、バックエンドサーバ1916を介して互いに通信している。バックエンドサーバ1916は、様々なリモートスマートカード、ユーザアプリケーション、またはサーバ間でメッセージをルーティングすることができるリモートサーバ動作ソフトウェアとすることができる。したがって、バックエンドサーバ1916は、ホストとしてサーバすることができる。
図20は、モバイルであってもなくてもよいユーザデバイスとも呼ばれるモバイルデバイス2000の例示的な実施形態を示す。これは1つの可能なモバイルデバイス構成にすぎず、したがって、当業者はモバイルデバイスを異なるように構成することができると考えられる。モバイルデバイス2000は、以下に記載するように実行することが可能な任意のタイプのモバイル通信デバイスを備えることができる。モバイルデバイスは、PDA、携帯電話、スマートフォン、タブレットPC、ワイヤレス電子パッド、IoTデバイス、「ウェアラブル」電子デバイス、または任意の他のコンピューティングデバイスを備えることができる。
この例示的な実施形態では、モバイルデバイス2000は、以下に説明する構成要素を保護し収容するように構成された外側ハウジング2004で構成されている。ハウジング2004内には、プロセッサ2008ならびに第1および第2のバス2012A、2012B(集合的に2012)がある。プロセッサ2008は、バス2012を介してモバイルデバイス2000の他の構成要素と通信する。プロセッサ2008は、本明細書で説明されるように実行することができる任意のタイプのプロセッサまたはコントローラを備えることができる。プロセッサ2008は、汎用プロセッサ、ASIC、ARM、DSP、コントローラ、または任意の他のタイプの処理デバイスを備えることができる。プロセッサ2008およびモバイルデバイス2000の他の要素は、バッテリ2020または他の電源から電力を受け取る。電気インターフェース2024は、第2の電子デバイス、コンピュータ、医療デバイス、または電源/充電デバイスなどのモバイルデバイスと電気的にインターフェースするための1つ以上の電気ポートを提供する。インターフェース2024は、任意のタイプの電気インターフェースまたはコネクタフォーマットを備えることができる。
1つ以上のメモリ2010は、プロセッサ2008上で実行するための機械可読コードの記憶、および画像データ、音声データ、ユーザデータ、位置データ、加速度計データ、または任意の他の種類のデータなどのデータの記憶のためのモバイルデバイス2000の一部である。メモリ2010は、RAM、ROM、フラッシュメモリ、光メモリ、またはマイクロドライブメモリを備えることができる。本明細書に記載の機械可読コード(ソフトウェアモジュールおよび/またはルーチン)は非一時的である。
この実施形態の一部として、プロセッサ2008は、ユーザインターフェース2016に接続する。ユーザインターフェース2016は、モバイルデバイスを制御するためにユーザ入力を受け入れるように構成された任意のシステムまたはデバイスを備えることができる。ユーザインターフェース2016は、マイクロフォン、キーボード、ローラーボール、ボタン、ホイール、ポインタキー、タッチパッド、およびタッチ画面のうちの1つ以上を備えることができる。バス2012を介してインターフェースし、ディスプレイ2028に接続するタッチ画面コントローラ2030も設けられる。
ディスプレイは、視覚情報をユーザに表示するように構成された任意のタイプの表示画面を備える。画面は、LED、LCD、薄膜トランジスタ画面、OEL CSTN(カラースーパーツイストネマティック)、TFT(薄膜トランジスタ)、TFD(薄膜ダイオード)、OLED(有機発光ダイオード)、AMOLEDディスプレイ(アクティブマトリクス有機発光ダイオード)、静電容量式タッチ画面、抵抗式タッチ画面、またはこれらの技術の任意の組み合わせを備えることができる。ディスプレイ2028は、プロセッサ2008から信号を受信し、これらの信号は、当技術分野で理解されているように、ディスプレイによってテキストおよび画像に変換される。ディスプレイ2028は、プロセッサ2008とインターフェースするディスプレイプロセッサ(図示せず)またはコントローラをさらに備えることができる。タッチ画面コントローラ2030は、ディスプレイ2028上に重ねられたタッチ画面から信号を受信するように構成されたモジュールを備えることができる。
また、この例示的なモバイルデバイスの一部は、スピーカ2034およびマイクロフォン2038である。スピーカ2034およびマイクロフォン2038は、プロセッサ2008によって制御されてもよい。マイクロフォン2038は、プロセッサ2008の制御に基づいて音声信号を受信して電気信号に変換するように構成されている。同様に、プロセッサ2008は、スピーカ2034を作動させて音声信号を生成することができる。これらのデバイスは、当技術分野で理解されているように動作するので、本明細書では詳細に説明しない。
バス2012のうちの1つ以上には、各々がそれぞれのアンテナ2048、2052に接続される第1の無線トランシーバ2040および第2の無線トランシーバ2044も接続される。第1および第2のトランシーバ2040、2044は、リモート送信機から入力信号を受信し、信号に対してアナログフロントエンド処理を実行してアナログベースバンド信号を生成するように構成されている。入力信号は、プロセッサ2008による後続の処理のために、アナログデジタル変換器などによるデジタル形式への変換によってさらに処理することができる。同様に、第1および第2のトランシーバ2040、2044は、プロセッサ2008またはモバイルデバイス2008の別の構成要素からの発信信号を受信し、それぞれのアンテナ2048、2052を介した送信のためにこれらの信号をベースバンドからRF周波数にアップコンバートするように構成されている。第1の無線トランシーバ2040および第2の無線トランシーバ2044と共に示されているが、モバイルデバイス2000は、ただ1つのそのようなシステムまたは2つ以上のトランシーバを有してもよいと考えられる。例えば、いくつかのデバイスは、3帯域または4帯域対応であるか、またはBluetooth(登録商標)、NFC、または他の通信機能を有する。
モバイルデバイス、したがって第1の無線トランシーバ2040および第2の無線トランシーバ2044は、Bluetooth、IEEE802.11a、b、g、nなどのWI-FI、無線LAN、WMAN、ブロードバンド固定アクセス、WiMAX、CDMA、GSM(登録商標)、EDGE、3G、4G、5G、TDMA、AMPS、FRS、GMRS、市民帯域無線、VHF、AM、FM、およびワイヤレスUSBを含むセル方式技術を含むがこれらに限定されない任意の現在存在する、または将来開発される無線規格に従って動作するように構成されてもよいと考えられる。
また、モバイルデバイスの一部は、プロセッサ2008ともインターフェースする第2のバス2012Bに接続された1つ以上のシステムである。これらのデバイスは、関連するアンテナ2062を有する全地球測位システム(GPS)モジュール2060を含む。GPSモジュール2060は、衛星または他のトランスポンダからの信号を受信および処理して、GPSモジュール2060の位置、進行方向、および速度に関する位置データを生成することができる。GPSは、当該技術分野において一般的に理解されており、したがって本明細書では詳細に説明しない。ジャイロスコープ2064は、モバイルデバイス2004の向きに関する向きデータを生成して提供するためにバス2012Bに接続する。磁力計2068は、モバイルデバイス2004に方向情報を提供するために設けられる。加速度計2072は、モバイルデバイスが受ける衝撃または力に関する情報またはデータを提供するためにバス2012Bに接続する。一構成では、加速度計2072およびジャイロスコープ2064は、モバイルデバイスの移動経路および向きを示すためにデータを生成してプロセッサ2008に提供する。
メモリ2010に記憶するために、および/または無線もしくは有線リンクを介して可能な伝送のために、または後で見るために画像データを取り込むために、1つ以上のカメラ(静止画、動画、またはその両方)2076が設けられる。1つ以上のカメラ2076は、可視光および/または近赤外光を用いて画像を検出するように構成されてもよい。カメラ2076はまた、暗い環境で画像を取得するために、画像増強、能動照明、または熱視覚を利用するように構成されてもよい。プロセッサ2008は、本明細書に記載の機能を実行するためにメモリに記憶された機械可読コードを処理することができる。
LEDライトなどのフラッシャおよび/またはフラッシュライト2080が提供され、プロセッサ制御可能である。フラッシャまたはフラッシュライト2080は、ストロボまたは従来のフラッシュライトとして機能することができる。フラッシャまたはフラッシュライト2080はまた、近赤外光を放射するように構成されてもよい。電力管理モジュール2084は、電力消費を管理し、バッテリ充電を制御し、異なる電力要件を必要とする可能性がある様々なデバイスに供給電圧を供給するために、バッテリ2020とインターフェースするか、またはバッテリを監視する。
図21は、例示的な一実施形態による、上述のデバイスのうちの1つなどのコンピューティングまたはモバイルデバイス、またはサーバの概略図である。コンピューティングデバイス2100は、スマートフォン、タブレット、キオスク、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すように意図されている。コンピューティングデバイス2150は、携帯情報端末、携帯電話、スマートフォン、および他の同様のコンピューティングデバイスなどの様々な形態のモバイルデバイスを表すように意図されている。ここに示されている構成要素、それらの接続および関係、ならびにそれらの機能は、例示的なものにすぎず、本明細書に記載および/または特許請求される実施態様を限定するものではない。
コンピューティングデバイス2100は、プロセッサ2102と、メモリ2104と、記憶装置2106と、メモリ2104および高速拡張ポート2110に接続する高速インターフェースまたはコントローラ2108と、低速バス2114および記憶装置2106に接続する低速インターフェースまたはコントローラ2112とを含む。構成要素2102、2104、2106、2108、2110、および2112の各々は、様々なバスを使用して相互接続され、共通のマザーボード上に、または必要に応じて他の方法で取り付けられてもよい。プロセッサ2102は、高速コントローラ2108に結合されたディスプレイ2116などの外部入出力装置にGUI用のグラフィック情報を表示するためにメモリ2104または記憶装置2106に記憶された命令を含む、コンピューティングデバイス2100内で実行するための命令を処理することができる。他の実施態様では、複数のプロセッサおよび/または複数のバスが、必要に応じて、複数のメモリおよびメモリの種類と共に使用されてもよい。また、複数のコンピューティングデバイス2100が接続されてもよく、各デバイスは必要な動作の一部を提供する(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)。
メモリ2104は、コンピューティングデバイス2100内に情報を記憶する。一実施態様では、メモリ2104は、揮発性メモリユニットである。別の実施態様では、メモリ2104は、不揮発性メモリユニットである。メモリ2104はまた、磁気または光ディスクなどのコンピュータ可読媒体の別の形態であってもよい。
記憶装置2106は、コンピューティングデバイス2100に大容量ストレージを提供することができる。一実施態様では、記憶装置2106は、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイス、フラッシュメモリ、もしくは他の同様のソリッドステートメモリデバイス、または記憶エリアネットワークもしくは他の構成のデバイスを含むデバイスのアレイなどのコンピュータ可読媒体であり得るか、またはそれを含み得る。コンピュータプログラム製品は、情報キャリアに有形に具現化することができる。コンピュータプログラム製品はまた、実行されると、上記のような1つ以上の方法を実行する命令を含むことができる。情報キャリアは、メモリ2104、記憶装置2106、またはプロセッサ2102上のメモリなどのコンピュータまたは機械可読媒体である。
高速コントローラ2108は、コンピューティングデバイス2100の帯域集約的な動作を管理し、低速コントローラ2112は、より低い帯域集約的な動作を管理する。このような機能の割り当ては、単なる例示である。一実施態様では、高速コントローラ2108は、メモリ2104、ディスプレイ2116(例えば、グラフィックスプロセッサまたはアクセラレータを介して)、および様々な拡張カード(図示せず)を受け入れることができる高速拡張ポート2110に結合される。本実装形態では、低速コントローラ2112は、記憶装置2106および低速バス2114に結合される。様々な通信ポート(例えば、USB、Bluetooth、イーサネット(登録商標)、ワイヤレスイーサネット)を含むことができる低速バス2114は、キーボード、ポインティングデバイス、スキャナ、または(例えば、ネットワークアダプタを介して)スイッチもしくはルータなどのネットワーキングデバイスなどの1つ以上の入出力デバイスに結合することができる。
コンピューティングデバイス2100は、図に示すように、いくつかの異なる形態で実装することができる。例えば、これは、標準サーバ2120として、またはそのようなサーバのグループにおいて複数回実装されてもよい。これは、ラックサーバシステム2124の一部として実装されてもよい。また、ラップトップコンピュータ2122などのパーソナルコンピュータに実装されてもよい。あるいは、コンピューティングデバイス2100の構成要素は、デバイス2150などのモバイルデバイス(図示せず)内の他の構成要素と組み合わせることができる。そのようなデバイスの各々は、コンピューティングデバイス2100、2150のうちの1つ以上を含むことができ、システム全体は、互いに通信する複数のコンピューティングデバイス2100、2150から構成することができる。
コンピューティングデバイス2150は、他の構成要素の中でも、プロセッサ2152と、メモリ2164と、ディスプレイ2154などの入出力装置と、通信インターフェース2166と、トランシーバ2168とを含む。デバイス2150はまた、追加のストレージを提供するために、マイクロドライブまたは他のデバイスなどの記憶装置を備えてもよい。構成要素2150、2152、2164、2154、2166、および2168の各々は、様々なバスを使用して相互接続され、構成要素のいくつかは、共通のマザーボード上に、または必要に応じて他の方法で取り付けられてもよい。
プロセッサ2152は、メモリ2164に記憶された命令を含む、コンピューティングデバイス2150内の命令を実行することができる。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実装されてもよい。プロセッサは、例えば、ユーザインターフェースの制御、デバイス2150によって実行されるアプリケーション、およびデバイス2150による無線通信など、デバイス2150の他の構成要素の調整を提供することができる。
プロセッサ2152は、ディスプレイ2154に結合された制御インターフェース2158およびディスプレイインターフェース2156を介してユーザと通信することができる。ディスプレイ2154は、例えば、TFT LCD(薄膜トランジスタ液晶ディスプレイ)またはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であってもよい。ディスプレイインターフェース2156は、ディスプレイ2154を駆動してグラフィックおよび他の情報をユーザに提示するための適切な回路を備えることができる。制御インターフェース2158は、ユーザからコマンドを受信し、それらをプロセッサ2152に提出するために変換することができる。加えて、デバイス2150の他のデバイスとの近距離通信を可能にするために、プロセッサ2152と通信する外部インターフェース2162が設けられてもよい。外部インターフェース2162は、例えば、いくつかの実装形態では有線通信を提供してもよく、複数のインターフェースを含む他の実装形態では無線通信を提供してもよい。
メモリ2164は、コンピューティングデバイス2150内に情報を記憶する。メモリ2164は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットのうちの1つ以上として実装することができる。拡張メモリ2174も、例えば、SIMM(シングルインラインメモリモジュール)カードインターフェースを含むことができる拡張インターフェース2172を介してデバイス2150に設けるおよび接続することができる。そのような拡張メモリ2174は、デバイス2150のための追加のストレージ空間を提供してもよく、またはデバイス2150のためのアプリケーションまたは他の情報を記憶してもよい。具体的には、拡張メモリ2174は、上述したプロセスを実行または補足するための命令を含むことができ、セキュア情報も含むことができる。したがって、例えば、拡張メモリ2174は、デバイス2150のセキュリティモジュールとして設けられてもよく、デバイス2150の安全な使用を可能にする命令でプログラムされてもよい。加えて、セキュアアプリケーションが、SIMMカード上に識別情報をハッキング不可能な方法で配置するなどの追加情報と共に、SIMMカードを介して提供されてもよい。
メモリは、例えば、後述するように、フラッシュメモリおよび/またはNVRAMメモリを含むことができる。一実施態様では、コンピュータプログラム製品は、情報キャリアに有形に具現化される。コンピュータプログラム製品は、実行されると、上述のような1つ以上の方法を実行する命令を含む。情報キャリアは、例えばトランシーバ2168または外部インターフェース2162を介して受信することができる、メモリ2164、拡張メモリ2174、またはプロセッサ2152上のメモリなどのコンピュータまたは機械可読媒体である。
デバイス2150は、必要に応じてデジタル信号処理回路を含むことができる通信インターフェース2166を介して無線通信することができる。通信インターフェース2166は、とりわけ、GSM音声通話、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSなどの様々なモードまたはプロトコルの下での通信を提供することができる。そのような通信は、例えば、無線周波数トランシーバ2168を介して行われ得る。さらに、Bluetooth、Wi-Fi、または他のそのようなトランシーバ(図示せず)を使用するなどして、短距離通信が行われてもよい。さらに、GPS(全地球測位システム)受信機モジュール2170は、デバイス2150上で実行されているアプリケーションによって適切に使用され得る追加のナビゲーションおよび位置関連無線データをデバイス2150に提供することができる。
デバイス2150はまた、ユーザから音声情報を受信し、それを使用可能なデジタル情報に変換することができる音声コーデック2160を使用して音声通信することができる。音声コーデック2160は、同様に、スピーカ(例えば、デバイス2150のハンドセット内)などを介して、ユーザのための可聴音を生成することができる。そのような音は、音声通話からの音を含むことができ、記録された音(例えば、音声メッセージ、音楽ファイルなど)を含むことができ、デバイス2150上で動作するアプリケーションによって生成された音も含むことができる。
コンピューティングデバイス2150は、図に示すように、いくつかの異なる形態で実装することができる。例えば、携帯電話2160として実装されてもよい。また、スマートフォン2182、携帯情報端末、コンピュータタブレット、または他の同様のモバイルデバイスの一部として実装されてもよい。
したがって、本明細書に記載のシステムおよび技術の様々な実施態様は、デジタル電子回路、集積回路、特に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせで実現することができる。これらの様々な実施態様は、記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、それらにデータおよび命令を送信するように結合された、特殊または汎用であり得る少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムでの実施態様を含むことができる。
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとも呼ばれる)は、プログラマブルプロセッサ用の機械命令を含み、高水準手続き型および/またはオブジェクト指向プログラミング言語で、および/またはアセンブリ/機械言語で実装することができる。本明細書で使用される場合、「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブル論理デバイス(PLD))を指し、機械命令を機械可読信号として受信する機械可読媒体を含む。「機械可読信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
ユーザとの対話を提供するために、ここで説明するシステムおよび技術は、ユーザに情報を表示するための表示デバイス(例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)と、ユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス(例えば、マウス、ジョイスティック、トラックボール、または同様のデバイス)とを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックは、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなどの任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受け取ることができる。
本明細書で説明するシステムおよび技術は、(例えば、データサーバ、スロット会計システム、プレーヤ追跡システム、または同様のものとして)バックエンド構成要素を含む、またはミドルウェア構成要素(例えば、アプリケーションサーバ)を含む、またはフロントエンド構成要素(例えば、ユーザが本明細書に記載のシステムおよび技術の実装と対話することができるグラフィカルユーザインターフェースまたはウェブブラウザを有するユーザアプリケーションコンピュータ)を含む、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組み合わせを含むコンピューティングシステム(例えば、コンピューティングデバイス2100および/または2150)で実施することができる。システムの構成要素は、任意の形態または媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットが含まれる。
コンピューティングシステムは、ユーザアプリケーションおよびサーバを含むことができる。ユーザアプリケーションおよびサーバは、一般に、互いに遠隔にあり、通常、通信ネットワークを介して対話する。ユーザアプリケーションとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにユーザアプリケーション-サーバ関係を有するコンピュータプログラムによって生じる。
本発明の様々な実施形態を説明したが、本発明の範囲内にあるより多くの実施形態および実装形態が可能であることは当業者には明らかであろう。さらに、本明細書に記載の様々な特徴、要素、および実施形態は、任意の組み合わせまたは配置で特許請求され、または組み合わされてもよい。
Claims (17)
- 人工知能駆動ユーザインターフェースカードを生成するためのシステムであって、
画面と、非一時的な機械実行可能コードを記憶するメモリと、前記機械実行可能コードを実行するように構成されたプロセッサとを有する第1のユーザデバイスを備え、前記機械実行可能コードは、
前記第1のユーザデバイスと互換性があるようにスマートカードバンドルを修正するように構成され、前記スマートカードバンドルは、表示要素の第1のセットおよびコンテキストデータの第1のセットを備え、前記表示要素の第1のセットは、前記ユーザアプリケーションによって提供される1つ以上の機能を使用し、前記コンテキストデータの第1のセットは、ユーザによる第1の要求に応答し、前記機械実行可能コードは、さらに、
ユーザ情報の分析に基づいてユーザ嗜好を予測し、前記予測に基づいて前記スマートカードバンドルを構成し、
表示要素の第2のセットおよびコンテキストデータの第2のセットを前記スマートカードバンドルに追加するように構成され、前記表示要素の第2のセットは前記ユーザアプリケーションによって提供されない機能を使用する、システム。 - 前記ユーザ情報は、ユーザアカウント情報、ユーザ嗜好、以前のユーザ選択、ユーザ入力、ユーザウェブブラウザ履歴、ユーザ通信、または補助メタデータのうちの1つ以上から選択される、請求項1に記載のシステム。
- 前記表示要素の第1のセットは、追加のユーザ動作を提案する、前記ユーザへの対話型プロンプトを含む、請求項1に記載のシステム。
- バックエンドサーバをさらに備え、前記表示要素の第1のセットは、前記バックエンドサーバからのデータで定期的に更新される表示要素を含み、前記データは前記バックエンドサーバから前記スマートカードバンドルにストリーミングされる、請求項1に記載のシステム。
- 前記表示要素の第2のセットは、第2のユーザデバイスと通信するように構成される、請求項1に記載のシステム。
- 前記機械実行可能コードは、前記ユーザによる第2の要求に基づいて、表示要素の第3のセットおよびコンテキストデータの第3のセットを前記スマートカードバンドルに追加するようにさらに構成され、前記コンテキストデータの第3のセットは、前記第1の要求および前記第2の要求に応答する、請求項1に記載のシステム。
- 人工知能駆動ユーザインターフェースカードを生成するための方法であって、
ユーザデバイス上で実行されているユーザアプリケーションから第1のユーザ要求を受信するステップと、
表示要素の第1のセットおよび表示要素の第2のセットを備えるスマートカードバンドルをコンパイルするステップとを含み、前記表示要素の第1のセットは、前記ユーザアプリケーションによって提供される1つ以上の機能を使用し、前記表示要素の第2のセットは、前記ユーザアプリケーションによって提供されない機能を使用し、前記方法は、さらに、
ユーザ情報の分析に基づいてユーザ嗜好を予測するステップと、
前記予測に基づいて前記スマートカードバンドルを構成するステップと、
前記表示要素の第1のセットおよび前記表示要素の第2のセットを前記ユーザデバイスの画面上に表示するステップと、を含む、方法。 - 前記ユーザ情報は、ユーザアカウント情報、ユーザ嗜好、以前のユーザ選択、ユーザ入力、ユーザウェブブラウザ履歴、ユーザ通信、または補助メタデータのうちの1つ以上から選択される、請求項7に記載の方法。
- 前記スマートカードバンドルは、コンテキストデータの第1のセットをさらに備え、前記コンテキストデータの第1のセットは、前記第1のユーザ要求に応答する、請求項7に記載の方法。
- 前記ユーザアプリケーションから第2のユーザ要求を受信するステップと、前記第1のユーザ要求および前記第2のユーザ要求に応答するコンテキストデータの第2のセットで前記スマートカードバンドルを更新するステップと、前記予測および前記第2のユーザ要求に基づいて前記スマートカードバンドルを構成するステップと、をさらに含む、請求項9に記載の方法。
- バックエンドサーバからストリーミングされた新しい情報で前記コンテキストデータの第1のセットを更新するステップをさらに含む、請求項9に記載の方法。
- 前記スマートカードバンドルは、追加の動作を提案する、ユーザへの対話型プロンプトをさらに備え、前記対話型プロンプトは前記予測に基づいて構成される、請求項7に記載の方法。
- 前記スマートカードバンドルを構成することは、表示要素の追加、表示要素の削除、表示要素のサイズ変更、または2つ以上の表示要素の並べ替えのうちの1つ以上を実行することを含む、請求項7に記載の方法。
- 人工知能駆動ユーザインターフェースカードを生成するためのシステムであって、
画面と、非一時的な機械実行可能コードを記憶するメモリと、前記機械実行可能コードを実行するように構成されたプロセッサとを有する第1のユーザデバイスを備え、前記機械実行可能コードは、
前記第1の画面に表示するためにスマートカードバンドルを第1のスマートカードに処理するように構成され、前記スマートカードバンドルは、表示要素のセットおよびコンテキストデータのセットを備え、前記機械実行可能コードは、さらに、
前記第1のユーザデバイスによって提供されない機能を使用して前記第1のスマートカード上に前記表示要素のセットをレンダリングし、
第2のユーザデバイスからのデータで前記コンテキストデータを更新するように構成されている、システム。 - 前記第2のユーザデバイスによって前記スマートカードバンドルから処理された第2のスマートカードと、
第3のユーザデバイスによって前記スマートカードバンドルから処理された第3のスマートカードと、をさらに備え、
前記第1のユーザデバイス上の前記コンテキストデータは、前記第2のスマートカードおよび前記第3のスマートカードからのデータで更新される、請求項14に記載のシステム。 - 前記第1のスマートカード、前記第2のスマートカード、および前記第3のスマートカードは、ピアツーピア方式で互いにデータを送信し、前記第1のスマートカードはホストとして選出される、請求項15に記載のシステム。
- 前記第2のユーザデバイスからのデータは、前記第2のユーザデバイスからバックエンドサーバにルーティングされ、次いで前記バックエンドサーバから前記第1のユーザデバイスにルーティングされる、請求項14に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063016244P | 2020-04-27 | 2020-04-27 | |
US63/016,244 | 2020-04-27 | ||
PCT/US2021/029472 WO2021222307A1 (en) | 2020-04-27 | 2021-04-27 | An artificially intelligent request and suggestion card |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023524009A true JP2023524009A (ja) | 2023-06-08 |
JPWO2021222307A5 JPWO2021222307A5 (ja) | 2024-05-07 |
Family
ID=78222326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022565918A Pending JP2023524009A (ja) | 2020-04-27 | 2021-04-27 | 人工知能要求および提案カード |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210334116A1 (ja) |
JP (1) | JP2023524009A (ja) |
KR (1) | KR20230022844A (ja) |
CN (1) | CN115917512A (ja) |
WO (1) | WO2021222307A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110248338B (zh) * | 2013-05-10 | 2021-12-14 | 华为技术有限公司 | 用于控制网络外设备到设备通信的***和方法 |
US11423234B2 (en) * | 2018-03-01 | 2022-08-23 | Ink Content, Inc. | Content generation using target content derived modeling and unsupervised language modeling |
GB201804626D0 (en) * | 2018-03-22 | 2018-05-09 | Nordic Semiconductor Asa | Devices with removable smart cards |
KR20220108967A (ko) * | 2021-01-28 | 2022-08-04 | 삼성전자주식회사 | 외부 전자 장치를 제어하기 위한 어플리케이션을 생성하는 방법 및 이를 지원하는 전자 장치 |
US11734671B2 (en) * | 2021-02-22 | 2023-08-22 | Capital One Services, Llc | Dynamically displaying contextual information on a smart card |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015057586A1 (en) * | 2013-10-14 | 2015-04-23 | Yahoo! Inc. | Systems and methods for providing context-based user interface |
US10073589B1 (en) * | 2014-09-08 | 2018-09-11 | Amazon Technologies, Inc. | Contextual card generation and delivery |
US10582011B2 (en) * | 2015-08-06 | 2020-03-03 | Samsung Electronics Co., Ltd. | Application cards based on contextual data |
CN106899750A (zh) * | 2016-08-03 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 基于卡片的信息展示方法、信息展示业务的处理方法及装置 |
US9654598B1 (en) * | 2016-08-08 | 2017-05-16 | Le Technology, Inc. | User customization of cards |
US20180232920A1 (en) * | 2017-02-10 | 2018-08-16 | Microsoft Technology Licensing, Llc | Contextually aware location selections for teleconference monitor views |
-
2021
- 2021-04-27 JP JP2022565918A patent/JP2023524009A/ja active Pending
- 2021-04-27 CN CN202180038787.9A patent/CN115917512A/zh active Pending
- 2021-04-27 US US17/242,094 patent/US20210334116A1/en active Pending
- 2021-04-27 KR KR1020227040718A patent/KR20230022844A/ko active Search and Examination
- 2021-04-27 WO PCT/US2021/029472 patent/WO2021222307A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
KR20230022844A (ko) | 2023-02-16 |
WO2021222307A1 (en) | 2021-11-04 |
US20210334116A1 (en) | 2021-10-28 |
CN115917512A (zh) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2022271460B2 (en) | Matching content to a spatial 3D environment | |
US20210272537A1 (en) | Matching content to a spatial 3d environment | |
JP2023524009A (ja) | 人工知能要求および提案カード | |
US20190087205A1 (en) | Varying modality of user experiences with a mobile device based on context | |
US11335088B2 (en) | Augmented reality item collections | |
KR20210084658A (ko) | 가상 비전 시스템 | |
US12026529B2 (en) | Interactive informational interface | |
US11720640B2 (en) | Searching social media content | |
US10992605B2 (en) | Systems and methods for operating a mobile application using a conversation interface | |
CN113254779B (zh) | 内容搜索方法、装置、设备及介质 | |
CN102292707B (zh) | 实现增强现实应用的方法及*** | |
US11170781B2 (en) | Enhancing group decisions within social messaging applications | |
US20110257960A1 (en) | Method and apparatus for context-indexed network resource sections | |
CN108881353B (zh) | 一种内容推送方法、装置及计算机可读存储介质 | |
US20090288019A1 (en) | Dynamic image map and graphics for rendering mobile web application interfaces | |
US11875231B2 (en) | System and method for complex task machine learning | |
US11481558B2 (en) | System and method for a scene builder | |
US11544921B1 (en) | Augmented reality items based on scan | |
EP3258398B1 (en) | Engaged micro-interactions on digital devices | |
US20240104611A1 (en) | Intelligent content recommendations based on selections of curated review responses |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240423 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240423 |