JP6776411B2 - パケットベースのデータ通信のデバイス識別子依存オペレーション処理 - Google Patents

パケットベースのデータ通信のデバイス識別子依存オペレーション処理 Download PDF

Info

Publication number
JP6776411B2
JP6776411B2 JP2019131863A JP2019131863A JP6776411B2 JP 6776411 B2 JP6776411 B2 JP 6776411B2 JP 2019131863 A JP2019131863 A JP 2019131863A JP 2019131863 A JP2019131863 A JP 2019131863A JP 6776411 B2 JP6776411 B2 JP 6776411B2
Authority
JP
Japan
Prior art keywords
client computing
computing device
service provider
identifier
data processing
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.)
Active
Application number
JP2019131863A
Other languages
English (en)
Other versions
JP2019197582A (ja
Inventor
ガウラフ・バハヤ
ロバート・ステッツ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2019197582A publication Critical patent/JP2019197582A/ja
Application granted granted Critical
Publication of JP6776411B2 publication Critical patent/JP6776411B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L17/00Speaker identification or verification techniques
    • G10L17/22Interactive procedures; Man-machine interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/02Feature extraction for speech recognition; Selection of recognition unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Bioethics (AREA)
  • Multimedia (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Power Engineering (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)

Description

本出願は、すべての目的に関して参照により全体が本明細書に組み込まれている、2016年12月30日に出願した米国特許出願第15/395,674号、名称「DEVICE IDENTIFIER DEPENDENT OPERATION PROCESSING OF PACKET BASED DATA COMMUNICATION」の利益を主張するものである。
コンピューティングデバイス間のネットワークトラフィックデータの、パケットベースのまたは他の形式の、過剰なネットワーク伝送は、コンピューティングデバイスがネットワークトラフィックデータを適切に処理する、ネットワークトラフィックデータに関係する動作を完了する、またはネットワークトラフィックデータにタイミングよく応答するのを妨げ得る。ネットワークトラフィックデータの過剰なネットワーク伝送は、また、応答するコンピューティングデバイスがその処理能力以上で動作している場合にデータルーティングを込み入ったものにするか、または応答の質を低下させる可能性があり、その結果、帯域幅利用が不効率になり得る。コンテンツアイテムオブジェクトに対応するネットワーク伝送の制御は、コンピューティングデバイス間のネットワークトラフィックデータのネットワーク伝送を開始することができるそれらの多数のコンテンツアイテムオブジェクトによって込み入ったものになり得る。
少なくとも1つの態様は、パケットベースのデータ通信の識別子依存オペレーション処理を行うためのシステムを対象とする。システムは、データ処理システムのインターフェースを介して、デバイス識別子を有するクライアントコンピューティングデバイスのセンサーによって検出された入力オーディオ信号を含むデータパケットを受信するためにデータ処理システムによって実行される自然言語プロセッサコンポーネントを備える。自然言語プロセッサコンポーネントは、入力オーディオ信号を解析して、要求および要求に対応するトリガーキーワードを識別する。システムは、自然言語プロセッサによって識別されたトリガーキーワードを受信し、トリガーキーワードに基づき、リアルタイムコンテンツ選択プロセスを介してコンテンツアイテムを選択するためにデータ処理システムによって実行されるコンテンツセレクタコンポーネントをさらに備える。システムは、コンテンツアイテムに対応するサービスプロバイダデバイスについて確立されているアカウント識別子を記憶するデータベース内のクライアントコンピューティングデバイスのデバイス識別子の探索を実行するためのリンク生成コンポーネントも備える。システムは、探索に応答して受信されるヌルコマンドに基づきデータベース内にクライアントコンピューティングデバイスのデバイス識別子が存在しないことを決定するためのリンク生成コンポーネントをさらに備える。システムは、クライアントデバイスに対する仮想識別子を生成し、仮想識別子をデバイス識別子にリンクし、ペイロードセクションで、仮想識別子をサービスプロバイダデバイスに搬送するデータパケットをルーティングして、サービスプロバイダデバイスに、仮想識別子に基づきクライアントコンピューティングデバイスに対するアカウントを確立させるためのリンク生成コンポーネントをさらに備える。システムは、サービスプロバイダデバイスから、サービスプロバイダデバイスが仮想識別子を使用してアカウントを確立し、クライアントコンピューティングデバイスによりオペレーションを実行したという指示を受信するためのデータ処理システムも備える。
少なくとも1つの態様は、データ処理システムを使用してクライアントコンピューティングデバイスとサービスプロバイダデバイスとの間のパケットデータ通信の識別子依存オペレーション処理に対するアクションを呼び出すための方法を対象とする。この方法は、データ処理システムによって実行される自然言語プロセッサコンポーネントによって、クライアントコンピューティングデバイスから、音声コマンドに対応するオーディオ信号を受信するステップを含む。この方法は、自然言語プロセッサコンポーネントにより、オーディオ信号を処理して、サービスに対する要求および要求に対応するトリガーキーワードを識別するステップをさらに含む。この方法は、データ処理システムによって実行されるコンテンツセレクタコンポーネントによって、キーワードに基づき、データ処理システムに通信可能に結合されているサービスプロバイダデバイスに対応するコンテンツアイテムを選択するステップも含む。この方法は、それに加えて、データ処理システムによって実行されるリンク生成コンポーネントによって、サービスプロバイダデバイスに関連付けられているデータベース内にクライアントコンピューティングデバイスに関連付けられているクライアントコンピューティングデバイス識別子に対応するデータベースレコードが存在していないことを決定するステップを含む。この方法は、さらに、存在していないことを決定することに応答するリンク生成コンポーネントによって、クライアントコンピューティングデバイスに関連付けられている仮想識別子を生成するステップであって、仮想識別子はクライアントコンピューティングデバイス識別子と別個である、ステップをさらに含む。この方法は、リンク生成コンポーネントによって、仮想識別子をサービスプロバイダデバイスに送信するステップも含む。この方法は、それに加えて、リンク生成コンポーネントによって、仮想識別子に対応するデータベースレコードの確立を指示するサービスプロバイダデバイスから第1のメッセージを受信するステップを含む。
少なくとも1つの態様は、1つまたは複数のデータプロセッサによって実行されたときに、1つまたは複数のデータプロセッサにクライアントコンピューティングデバイスとサービスプロバイダデバイスとの間のパケットベースのデータ通信の識別子依存オペレーション処理のためのオペレーションを実行させる命令を記憶するコンピュータ可読記憶媒体を対象とする。これらのオペレーションは、データ処理システムによって実行される自然言語プロセッサコンポーネントによって、クライアントコンピューティングデバイスから、音声コマンドに対応するオーディオ信号を受信することができる。これらのオペレーションは、自然言語プロセッサコンポーネントにより、オーディオ信号を処理して、サービスに対する要求および要求に対応するトリガーキーワードを識別することができる。これらのオペレーションは、データ処理システムによって実行されるコンテンツセレクタコンポーネントによって、キーワードに基づき、データ処理システムに通信可能に結合されているサービスプロバイダデバイスに対応するコンテンツアイテムを選択することができる。これらのオペレーションは、データ処理システムによって実行されるリンク生成コンポーネントによって、サービスプロバイダデバイスに関連付けられているデータベース内にクライアントコンピューティングデバイスに関連付けられているクライアントコンピューティングデバイス識別子に対応するデータベースレコードが存在していないことを決定することができる。これらのオペレーションは、存在していないことを決定することに応答するリンク生成コンポーネントによって、クライアントコンピューティングデバイスに関連付けられている仮想識別子を生成することができ、仮想識別子はクライアントコンピューティングデバイス識別子と別個である。これらのオペレーションは、リンク生成コンポーネントによって、仮想識別子をサービスプロバイダデバイスに送信することができる。これらのオペレーションは、リンク生成コンポーネントによって、仮想識別子に対応するデータベースレコードの確立を指示するサービスプロバイダデバイスから第1のメッセージを受信することができる。
これらおよび他の態様ならびに実装は、以下で詳述される。前述の情報および次の詳細な説明は、様々な態様および実装の説明に役立つ実例を含み、請求項に記載されている態様および実装の性質および特徴を理解するための概要またはフレームワークを提供する。図面は例示し、様々な態様および実装のさらなる理解をもたらすものであり、本明細書に組み込まれ、本明細書の一部をなす。
添付図面は、縮尺通りであることを意図していない。様々な図面中の同様の参照番号および名称は同様の要素を示す。わかりやすくするために、すべての図面においてすべてのコンポーネントにラベルを付けてはいない。図面の説明を以下に示す。
音声作動のコンピュータネットワーク環境におけるシーケンス依存オペレーションの処理を最適化するためのシステムを示す図である。 情報をサービスプロバイダデバイスに送信するためにデータ処理システムによって使用されるデータ構造体の表現を示す図である。 情報をサービスプロバイダデバイスに送信するためにデータ処理システムによって使用されるデータ構造体の表現を示す図である。 情報をサービスプロバイダデバイスに送信するためにデータ処理システムによって使用されるデータ構造体の表現を示す図である。 シーケンス依存アクションを含むスレッドの機能図である。 音声作動のデータパケットベースのコンピュータネットワーク環境内のクライアントコンピューティングデバイスとサービスプロバイダデバイスとの間の通信を確立するためのアクションを呼び出すための方法を示す図である。 本明細書において説明され図示されているシステムおよび方法の要素を実装するために採用され得るコンピュータシステムの一般アーキテクチャを示すブロック図である。
次に以下に、音声作動のコンピュータネットワーク環境内のシーケンス依存オペレーションの処理を最適化するための方法、装置、およびシステムに関係する様々な概念ならびに方法、装置、およびシステムの実装のより詳細な説明を示す。上で導入され、以下でより詳しく説明される様々な概念は、多数の方法のうちのどれかで実装され得る。
本開示のシステムおよび方法は、一般的に、音声作動のコンピュータネットワーク環境内のクライアントコンピューティングデバイスとサービスプロバイダデバイスとの間はデータパケット伝送の効率、信頼性、および操作性を改善するデータ処理システムに関係する。たとえば、データ処理システムは、サービスプロバイダデバイスがクライアントコンピューティングデバイスと通信し、要求されたサービスをクライアントコンピューティングデバイスに提供することができるようにサービスプロバイダデバイスのデータベース内にクライアントコンピューティングデバイスに関連付けられているレコードまたはアカウントを作成することを円滑にすることができる。また、クライアントコンピューティングデバイスの代わりにレコードまたはアカウントを作成することで、サービスプロバイダデバイスとクライアントコンピューティングデバイスとの間で通信する必要性をなくして要求されたサービスを提供する前にレコードまたはアカウントを確立することによって効率を改善し、リソース使用を低減する。選択されたオペレーションに対応するデータパケットまた他のプロトコルベースの信号は、複数のコンピューティングデバイス間でコンピュータネットワークを通じてルーティングされ得る。データ処理システムは、ユーザコマンドまたは要求を表すオーディオ信号を受信し、特定の要求およびキーワードを識別することができる。要求またはキーワードに基づき、データ処理システムは、クライアントコンピューティングデバイスに代替サービスオプションを表すコンテンツアイテムを提示することができる。処理システムは、コンピューティングデバイスが代替サービスオプションを選択しているかどうかを決定し、代替サービスオプションに関連付けられているサービスプロバイダデバイスがクライアントコンピューティングデバイスに関連付けられているレコードまたはアカウントを含むかどうかをさらに決定することができる。レコードまたはアカウントが存在しないことで、サービスプロバイダデバイスがクライアントコンピューティングデバイスと通信し、要求されたサービスをクライアントコンピューティングデバイスに提供することを防ぐことができる。
音声作動のコンピュータネットワーク環境内のクライアントコンピューティングデバイスとサービスプロバイダデバイスとの間のデータパケット伝送の効率、信頼性、および操作性を改善するために、本明細書で説明されているシステムおよび方法は、サービスプロバイダデバイスによりクライアントコンピューティングデバイスに関連付けられているレコードまたはアカウントが存在しないことを検出した後、クライアントコンピューティングデバイスの代わりにデータパケットベースの通信セッションを確立し、クライアントコンピューティングデバイスからの介入なしでアカウントを作成することをサービスプロバイダデバイスに指令することができるデータ処理システムを含み得る。データ処理システムは、レコードまたはアカウントを生成するためにサービスプロバイダデバイスに送信され得る、クライアントコンピューティングデバイスを表す仮想識別子(または仮想トークン)を生成することができる。クライアントコンピューティングデバイスに対するレコードまたはアカウントが作成された後、サービスプロバイダは、クライアントコンピューティングデバイスとの安全な通信を確立し、要求されたサービスを提供することができる。
図1は、音声作動のデータパケット(または他のプロトコル)ベースのコンピュータネットワーク環境におけるシーケンス依存オペレーションの処理を最適化するための例示的なシステム100を示す。システム100は、少なくとも1つのデータ処理システム105を備え得る。データ処理システム105は、少なくとも1つのプロセッサを有する少なくとも1つのサーバを備え得る。たとえば、データ処理システム105は、少なくとも1つのデータセンターまたはサーバファーム内に配置されている複数のサーバを備え得る。データ処理システム105は、オーディオ入力信号から、要求および要求に関連付けられているトリガーキーワードを決定することができる。要求およびトリガーキーワードに基づき、データ処理システム105は、複数のシーケンス依存オペレーションを含むスレッドを決定するか、または選択することができ、コンテンツアイテムを選択する(および本明細書で説明されているような他のアクションを開始する)ことができる。コンテンツアイテムは、レンダリングされたときにオーディオ出力または音波をもたらす1つまたは複数のオーディオファイルを含み得る。コンテンツアイテムは、オーディオコンテンツに加えて他のコンテンツ(たとえば、テキスト、ビデオ、または画像コンテンツ)を含むことができる。
データ処理システム105は、複数の論理的にグループ化されたサーバを含むものとしてよく、分散コンピューティング技術を利用しやすくすることができる。サーバの論理グループは、データセンター、サーバファーム、またはマシンファームと称され得る。サーバは、地理的に分散されていてもよい。データセンターまたはマシンファームは、単一のエンティティとして管理され得るか、またはマシンファームは、複数のマシンファームを含むことができる。各マシンファーム内のサーバは、異機種であってもよい―サーバまたはマシンのうちの1つまたは複数が1つまたは複数の種類のオペレーティングシステムプラットフォームに従って動作することができる。データ処理システム105は、たとえばエンタープライズデータセンター内に配置されている、関連するストレージシステムと一緒に、1つまたは複数の高密度ラックシステム内に格納されているデータセンター内のサーバを含むことができる。このようにして統合されたサーバを備えるデータ処理システム105は、サーバおよび高性能ストレージシステムをローカライズされた高性能ネットワーク上に配置することによってシステム管理性、データセキュリティ、システムの物理的セキュリティ、およびシステム性能を改善することができる。サーバおよびストレージシステムを含む、データ処理システム105のコンポーネントの全部または一部を中央集中化し、それらを高度なシステム管理ツールで結合することにより、サーバリソースをより効率的に使用することができ、それにより、必要な電力および処理の低減化をはかり、帯域幅使用を減らす。
データ処理システム105は、少なくとも1つの自然言語プロセッサ(NLP)コンポーネント110、少なくとも1つのインターフェース115、少なくとも1つのリンク生成コンポーネント120、少なくとも1つのコンテンツセレクタコンポーネント125、少なくとも1つのオーディオ信号生成器コンポーネント130、少なくとも1つのダイレクトアクション・アプリケーション・プログラミング・インターフェース(API)135、少なくとも1つのセッションハンドラコンポーネント140、および少なくとも1つのデータリポジトリ145を備えることができる。NLPコンポーネント110、インターフェース115、リンク生成コンポーネント120、コンテンツセレクタコンポーネント125、オーディオ信号生成器コンポーネント130、ダイレクトアクションAPI135、およびセッションハンドラコンポーネント140は、各々、少なくとも1つの処理ユニット、サーバ、仮想サーバ、回路、エンジン、エージェント、器具、またはデータリポジトリ145および少なくとも1つのコンピュータネットワーク165を介して他のコンピューティングデバイス(たとえば、クライアントコンピューティングデバイス150、コンテンツプロバイダコンピューティングデバイス155、またはサービスプロバイダデバイス160)と通信するように構成されているプログラマブルロジックアレイなどの他の論理デバイスを含むことができる。ダイレクトアクションAPI135は、データ処理システム105によって決定されるような、クライアントコンピューティングデバイス150でユーザの意図を満足させるために指定されたアクションを実行することができる。その入力で指定されているアクションに応じて、ダイレクトアクションAPI135は、ユーザ要求を履行するために必要なパラメータを識別するコードまたはダイアログスクリプトを実行することができる。そのようなコードは、ホームオートメーションサービスの名称などの、たとえば、データリポジトリ145内にある追加情報を探索し得るか、または要求されたタクシーの意図された目的地などのエンドユーザに質問を尋ねるようにクライアントコンピューティングデバイス150においてレンダリングするためのオーディオ出力を行うことができる。ダイレクトアクションAPI135は、必要なパラメータを
決定することができ、情報をアクションデータ構造体にパッケージ化することができ、次いで、これは、コンテンツセレクタコンポーネント125などの別のコンポーネントに、または履行されるべきサービスプロバイダコンピューティングデバイス160に送信され得る
ネットワーク165は、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、メトロエリアネットワーク、他のエリアネットワーク、イントラネット、衛星ネットワーク、音声もしくはデータ携帯電話通信ネットワークなどの他のコンピュータネットワーク、およびこれらの組合せなどのコンピュータネットワークを含み得る。ネットワーク165は、ディスプレイネットワーク、たとえば、コンテンツ配置または検索エンジン結果システムに関連付けられているか、またはコンテンツアイテム配置キャンペーンの一部としてサードパーティ製コンテンツアイテムを含む資格のあるインターネット上で利用可能な情報リソースのサブセットを含むか、またはそれらの構成要素となり得る。ネットワーク165は、クライアントコンピューティングデバイス150によって提示されるか、出力されるか、レンダリングされるか、または表示され得るウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスするためにデータ処理システム105によって使用され得る。たとえば、ネットワーク165を介して、クライアントコンピューティングデバイス150のユーザは、コンテンツプロバイダコンピューティングデバイス155またはサービスプロバイダデバイス160によって提供される情報またはデータにアクセスすることができる。
ネットワーク165は、たとえば、2地点間ネットワーク、放送網、ワイドエリアネットワーク、ローカルエリアネットワーク、電気通信網、データ通信ネットワーク、コンピュータネットワーク、ATM(非同期転送モード)ネットワーク、SONET(同期光ネットワーク)ネットワーク、SDH(同期デジタルハイアラーキ)ネットワーク、ワイヤレスネットワークもしくは有線ネットワーク、およびこれらの組合せを含み得る。ネットワーク165は、赤外線チャネルまたは衛星帯域などのワイヤレスリンクを含み得る。ネットワーク165のトポロジーは、バス型、スター型、またはリング型ネットワークトポロジーを含み得る。ネットワーク165は、高度携帯電話プロトコル(「AMPS」)、時分割多元接続(「TDMA」)、符号分割多元接続(「CDMA」)、グローバルシステムフォーモバイルコミュニケーションズ(「GSM(登録商標)」)、汎用パケット無線サービス(「GPRS」)、またはユニバーサルモバイル通信システム(「UMTS」)を含む、モバイルデバイス間の通信に使用される1つまたは複数の任意のプロトコルを使用する携帯電話ネットワークを含み得る。異なる種類のデータは、異なるプロトコルを介して伝送され得るか、または同じ種類のデータは、異なるプロトコルを介して伝送され得る。
クライアントコンピューティングデバイス150、コンテンツプロバイダコンピューティングデバイス155、およびサービスプロバイダデバイス160は、各々、互いに通信するために、またはネットワーク165を介してデータ処理システム105と通信するためにプロセッサを有するコンピューティングデバイスなどの少なくとも1つの論理デバイスを備えることができる。クライアントコンピューティングデバイス150、コンテンツプロバイダコンピューティングデバイス155、およびサービスプロバイダデバイス160は、各々、少なくとも1つのサーバ、プロセッサ、もしくはメモリ、または少なくとも1つのデータセンター内に配置されている複数の計算リソースもしくはサーバを備えることができる。クライアントコンピューティングデバイス150、コンテンツプロバイダコンピューティングデバイス155、およびサービスプロバイダデバイス160は、各々、デスクトップコンピュータ、ラップトップ、タブレット、携帯情報端末、スマートフォン、ポータブルコンピュータ、シンクライアントコンピュータ、仮想サーバ、または他のコンピューティングデバイスなどの少なくとも1つのコンピューティングデバイスを備えることができる。
クライアントコンピューティングデバイス150は、少なくとも1つのセンサー151、少なくとも1つのトランスデューサ152、少なくとも1つのオーディオドライバ153、および少なくとも1つのスピーカー154を備えることができる。センサー151は、マイクロフォンまたはオーディオ入力センサーを備えることができる。トランスデューサ152は、オーディオ入力を電子信号に変換することができる。オーディオドライバ153は、他にもあるがとりわけ、オーディオ入力を処理するか、またはオーディオ出力を行うためのクライアントコンピューティングデバイス150の他のコンポーネントのうちで、センサー151、トランスデューサ152、またはオーディオドライバ153を制御するためにクライアントコンピューティングデバイス150の1つまたは複数のプロセッサによって実行されるスクリプトまたはプログラムを備えることができる。スピーカー154は、オーディオ出力信号を伝送することができる。コンピューティングデバイス150は、ディスプレイを備えていても備えていなくてもよく、たとえば、コンピューティングデバイスは、マイクロフォンおよびスピーカーなどの、限られた種類のユーザインターフェースを備え得る。いくつかの場合において、コンピューティングデバイス150の主たるユーザインターフェースは、マイクロフォンおよびスピーカーであるものとしてよい。
クライアントコンピューティングデバイス150は、音声問い合わせをクライアントコンピューティングデバイス150へのオーディオ入力として(センサー151を介して)入力し、データ処理システム105(またはコンテンツプロバイダコンピューティングデバイス155もしくはサービスプロバイダデバイス160)からクライアントコンピューティングデバイス150に送られ、スピーカー154から出力され得るコンピュータ生成音声の形態のオーディオ出力を受け取るエンドユーザに関連付けられ得る。コンピュータ生成音声は、実際の人またはコンピュータによって生成される言語からの読み取りを含むことができる。
コンテンツプロバイダコンピューティングデバイス155は、オーディオ出力コンテンツアイテムとしてクライアントコンピューティングデバイス150による表示のためにオーディオベースのコンテンツアイテムを提供することができる。コンテンツアイテムは、「Would you like me to order you a taxi?」と述べる音声ベースのメッセージなどの商品もしくはサービスのオファーを含むことができる。たとえば、コンテンツプロバイダコンピューティングデバイス155は、音声ベースの問い合わせに応答して提供され得る一連のオーディオコンテンツアイテムを記憶するためのメモリを備えることができる。コンテンツプロバイダコンピューティングデバイス155は、オーディオベースのコンテンツアイテム(または他のコンテンツアイテム)を、それらがデータリポジトリ145に記憶されているデータ処理システム105に送ることもできる。データ処理システム105は、オーディオコンテンツアイテムを選択し、オーディオコンテンツアイテムをクライアントコンピューティングデバイス150に提供する(かまたは提供するようにコンテンツプロバイダコンピューティングデバイス155に指令する)ことができる。オーディオベースのコンテンツアイテムはもっぱらオーディオであるか、またはテキスト、画像、またはビデオデータと組み合わせたものとすることができる。
サービスプロバイダデバイス160は、少なくとも1つのサービスプロバイダ自然言語プロセッサ(NLP)コンポーネント161および少なくとも1つのサービスプロバイダインターフェース162を備えることができる。サービスプロバイダNLPコンポーネント161(またはサービスプロバイダデバイス160のダイレクトアクションAPIなどの他のコンポーネント)はクライアントコンピューティングデバイス150と(データ処理システム105を介して、またはデータ処理システム105をバイパスして)関わり、クライアントコンピューティングデバイス150とサービスプロバイダデバイス160との間の行ったり来たりのリアルタイムの音声またはオーディオベースの会話(たとえば、セッション)を作成することができる。たとえば、サービスプロバイダインターフェース162は、データメッセージを受信するか、またはデータ処理システム105のダイレクトアクションAPI135に送ることができる。サービスプロバイダデバイス160およびコンテンツプロバイダコンピューティングデバイス155は、同じエンティティに関連付けられ得る。たとえば、コンテンツプロバイダコンピューティングデバイス155は、カーシェアリングサービスに対するコンテンツアイテムを作成するか、記憶するか、または利用可能にすることができ、サービスプロバイダデバイス160は、クライアントコンピューティングデバイス150のエンドユーザをピックアップするようにカーシェアサービスのタクシーまたは自動車の配車を手配するためにクライアントコンピューティングデバイス150とのセッションを確立することができる。データ処理システム105は、たとえば、カーシェアサービスのタクシーまたは自動車の配車を手配するために、ダイレクトアクションAPI135、NLPコンポーネント110、または他のコンポーネントを介して、サービスプロバイダデバイス160を含めるか、またはバイパスする、クライアントコンピューティングデバイス150とのセッションを確立することもできる。
データリポジトリ145は、1つまたは複数のローカルデータベースまたは分散型データベースを含むことができ、データベース管理システムを含み得る。データリポジトリ145は、コンピュータデータストレージまたはメモリを備えるものとしてよく、他にもデータはあるがとりわけ、1つまたは複数のパラメータ146、1つまたは複数の識別子147、コンテンツデータ148、またはテンプレート149を記憶することができる。パラメータ146、識別子147、およびテンプレート149は、クライアントコンピューティングデバイス150とデータ処理システム105(またはサービスプロバイダデバイス160)との間の音声ベースのセッションに関する規則などの情報を含むことができる。特に、識別子147は、クライアントコンピューティングデバイス150の識別情報に関連付けられているデータまたはクライアントコンピューティングデバイス150のユーザの識別情報を含み得る。識別子147は、データ処理システム105によって生成され、クライアントコンピューティングデバイス150またはクライアントコンピューティングデバイス150のユーザに関連付けられている1つまたは複数の一意的な識別子(本明細書では仮想識別子または仮想トークンとも称される)も含むことができる。コンテンツデータ148は、オーディオ出力または関連付けられているメタデータ、さらにはクライアントコンピューティングデバイス150との1つまたは複数の通信セッションの一部であってよい入力オーディオメッセージに対するコンテンツアイテムを含み得る。
データ処理システム105は、入力オーディオ信号をデータ処理システム105のインターフェース115に伝達し、クライアントコンピューティングデバイス150のコンポーネントを、出力オーディオ信号をレンダリングするように駆動するためのアプリなどのクライアントコンピューティングデバイス150にインストールされているアプリケーション、スクリプト、またはプログラムを含むことができる。データ処理システム105は、データパケットまたはオーディオ入力信号を含むかもしくは識別する他の信号を受信することができる。たとえば、データ処理システム105は、NLPコンポーネント110を実行するか、作動させることでオーディオ入力信号を受信することができる。NLPコンポーネント110は、オーディオ入力信号を記憶されている、代表的な一組のオーディオ波形と比較し、最もよく一致するものを選択することによって受信されたオーディオ入力信号を認識されたテキストに変換することができる。代表的な波形は、大きいユーザ群について生成されており、ユーザの話し声サンプルで強化され得る。受信されたオーディオ入力信号が認識されたテキストに変換された後、NLPコンポーネント110は、テキストと、たとえば、ユーザにまたがる学習を介して、または手動による指定を通じて、データ処理システム105が利用し得るアクションまたはコマンドと関連付けられている単語とのマッチングを行う。オーディオ入力信号は、クライアントコンピューティングデバイス150のセンサー151(たとえば、マイクロフォン)によって検出され得る。トランスデューサ152、オーディオドライバ153、または他のコンポーネントを介して、クライアントコンピューティングデバイス150は、オーディオ入力信号をデータ処理システム105に(たとえば、ネットワーク165を介して)送ることができ、これは(たとえば、インターフェース115によって)受信され、NLPコンポーネント110に送られるか、またはデータリポジトリ145内にコンテンツデータ148として記憶され得る。
NLPコンポーネント110は、入力オーディオ信号を取得することができる。NLPコンポーネント110は、入力オーディオ信号から、少なくとも1つの要求または要求に対応する少なくとも1つのトリガーキーワードを識別することができる。要求は、入力オーディオ信号の意図または主題を指示することができる。トリガーキーワードは、行われる可能性の高いアクションの種類を指示することができる。たとえば、NLPコンポーネント110は、入力オーディオ信号を解析して、ディナーおよび映画に出席するため夕方に家を出る少なくとも1つの要求を識別することができる。トリガーキーワードは、少なくとも1つの単語、フレーズ、語幹もしくは部分単語、または行われるべきアクションを指示する派生語を含み得る。たとえば、入力オーディオ信号から識別される「ride」、「cab」または「taxi」などのトリガーキーワードのうちの1つまたは複数は、輸送の必要性を指示するものとしてよい。別の例では、入力オーディオ信号から識別される「go」、または「to go to」などのキーワードは、輸送の必要性も指示し得る。この例では、入力オーディオ信号(または識別された要求)は、輸送の意図を直接表すことはないが、トリガーキーワードは、輸送は要求によって指示される少なくとも1つの他のアクションの補助アクションであることを指示する。
データ処理システム105は、要求またはトリガーキーワードに基づき、入力オーディオ信号に関連付けられている少なくとも1つのスレッドを決定することができる。スレッドは、一連のアクションなどの、一組のシーケンス依存オペレーションを指示し得る。スレッドは、第1のアクション、第2のアクション、および第3のアクションなどの任意の2つまたはそれ以上のアクションを含むことができる。たとえば、入力オーディオ信号「OK, I would like to go to go dinner and then a movie tonight」は、食事および映画に出席することに関心があることを指示する少なくとも1つの要求、および少なくとも1つのトリガーキーワード、たとえば、輸送の必要があることを指示する「go」を含むことができる。データ処理システム105は、ディナーアクション(第1のアクション)、映画アクション(第2のアクション)、および帰宅輸送アクション(第3のアクション)などの少なくとも3つのアクションを持つスレッドを識別することができる。この例では、要求またはトリガーキーワードから、データ処理システム105が3つのアクションを予測し、推定し、そうでなければ決定を行う。スレッドは、ディナーアクションへの初期輸送などの、他のアクションを含むことができる。
コンテンツセレクタコンポーネント125は、スレッドのアクションのうちのどれかの指示を取得することができる。たとえば、コンテンツセレクタコンポーネント125は、データ処理システムによって識別される第3の(または他の)アクションの指示を受信することができる。コンテンツセレクタコンポーネント125は、データリポジトリ145からこの情報を取得することができ、これはコンテンツデータ148の一部として記憶され得る。第3のアクションの指示は、車で最終目的地に向かうなど、映画館の場所からクライアントコンピューティングデバイス150によって決定または指示されるような場所への輸送の必要性をコンテンツセレクタコンポーネント125に知らせることができる。
コンテンツセレクタコンポーネント125によって受信された情報から、コンテンツセレクタコンポーネント125は、少なくとも1つのコンテンツアイテムを識別することができる。コンテンツアイテムは、第3のアクションに応答するか、または関係するものとしてよい。たとえば、コンテンツアイテムは、輸送の必要性を指示する第3のアクションに応答する、カーシェア会社のオーディオメッセージオファーサービスを含むことができる。コンテンツセレクタコンポーネント125は、データリポジトリ145に問い合わせを実行して、たとえば、コンテンツデータ148からコンテンツアイテムを選択するか、そうでなければ識別することができる。コンテンツセレクタコンポーネント125は、コンテンツプロバイダコンピューティングデバイス155からコンテンツアイテムを選択することもできる。たとえば、データ処理システム105から受信された問い合わせに応答して、コンテンツプロバイダコンピューティングデバイス155は、コンテンツアイテムをデータ処理システム105(またはそのコンポーネント)に送り、最終的に、クライアントコンピューティングデバイス150によって出力するようにできる。コンテンツアイテムは、ユーザがすでにサブスクライブしている乗車サービスに関連付けられていてよい。たとえば、コンテンツアイテムは、ユーザの好ましい乗車サービスに関連付けられ得る。
コンテンツセレクタコンポーネント125は、第3のアクションに関係する追加のコンテンツアイテムを選択することができる。たとえば、コンテンツアイテムは、好ましい乗車サービス、またはクライアントコンピューティングデバイス150に対して以前選択された乗車サービスの代替として提供され得る乗車サービスのオーディオメッセージオファーサービスを含むことができる。代替乗車サービスは、ユーザによって選択された乗車サービスの1つまたは複数の態様との比較結果に基づきユーザにオファーされ得る。たとえば、代替乗車サービスによってオファーされる料金がユーザによって選択された乗車サービスよりも低い場合、コンテンツセレクタコンポーネント125は、ユーザに対してより安い代替乗車サービスを選択するオプションを提示することができる。移動時間、車両の種類、および運転者格付けなどの他の乗車サービスの態様も、考慮され得る。いくつかの場合において、コンテンツセレクタコンポーネント125は、代替乗車サービスに関連付けられているコンテンツアイテムを選択し、コンテンツアイテムを、2つの乗車サービスの態様を比較することなくクライアントコンピューティングデバイス150のユーザに提示することができる。
上で述べられているように、コンテンツセレクタコンポーネント125は、データリポジトリ145に問い合わせを実行することに加えて、コンテンツプロバイダデバイス155と通信して、1つまたは複数のコンテンツアイテムを識別することもできる。たとえば、コンテンツセレクタコンポーネント125は、輸送に関連付けられている第3のアクションの指示を受け取った後に、コンテンツプロバイダデバイス155と通信して、任意の代替乗車サービスが利用可能かどうかを決定することができる。それに応答して、コンテンツセレクタコンポーネント125は、利用可能な代替乗車サービスに関連付けられている1つまたは複数のコンテンツアイテムを受信することができる。コンテンツプロバイダデバイス155と通信する際に、コンテンツセレクタコンポーネント125は、コンテンツプロバイダデバイス155がユーザに提示される乗車サービスの代替として使用され得る適切なコンテンツアイテムを提供することを可能にするようにユーザによって要求された輸送の態様に関する情報も含み得る。たとえば、コンテンツセレクタコンポーネント125は、乗車出発住所、乗車目的地住所、要求時間、乗客数、および乗車の種類(たとえば、エコノミーまたはプレミアム)などの情報をコンテンツプロバイダデバイス155に送信することができる。コンテンツプロバイダデバイス155は、この情報を使用して、1つまたは複数の代替乗車サービスが利用可能かどうかを決定し、もし利用可能であれば、1つまたは複数の関連するコンテンツアイテムをコンテンツセレクタコンポーネント125に送信することができる。
オーディオ信号生成器コンポーネント130は、第3のアクションに応答してコンテンツアイテムを含む出力信号を生成するか、そうでなければ取得することができる。たとえば、データ処理システム105は、オーディオ信号生成器コンポーネントを実行して、2つまたはそれ以上のコンテンツアイテムに対応する出力信号を生成するか、または作成することができ、これらのコンテンツアイテムのうちの1つは、たとえば、代替乗車サービスに関連付けられているコンテンツアイテムを含むことができる。データ処理システム105のインターフェース115は、出力オーディオ信号を含む1つまたは複数のデータパケットをコンピュータネットワーク165を介してクライアントコンピューティングデバイス150に伝送することができる。たとえば、データ処理システム105は、出力オーディオ信号をデータリポジトリ145から、またはオーディオ信号生成器コンポーネント130からクライアントコンピューティングデバイス150に送ることができる。データ処理システム105は、また、出力オーディオ信号をクライアントコンピューティングデバイス150に送るよう、データパケット伝送を介して、コンテンツプロバイダコンピューティングデバイス155またはサービスプロバイダデバイス160に指令することもできる。出力オーディオ信号は、データ処理システム105(または他のコンピューティングデバイス)からクライアントコンピューティングデバイス150に1つまたは複数のデータパケット(または他の通信プロトコル)として取得されるか、生成されるか、変換されるか、または伝送され得る。
コンテンツセレクタコンポーネント125は、第3のアクションに対するコンテンツアイテムをリアルタイムコンテンツ選択プロセスの一部として選択することができる。たとえば、コンテンツアイテムは、入力オーディオ信号への直接応答として会話方式によりオーディオ出力として伝送するためにクライアントコンピューティングデバイスに送られるものとしてよい。コンテンツアイテムを識別し、コンテンツアイテムをクライアントコンピューティングデバイス150に送るリアルタイムコンテンツ選択プロセスは、入力オーディオ信号の時間から1分以内に行われ、リアルタイムとみなされ得る。
たとえば、インターフェース115およびコンピュータネットワーク165を介してクライアントコンピューティングデバイス150に伝送されるオーディオ信号生成器コンポーネント130によって取得されるか、または生成されるコンテンツアイテムに対応する出力オーディオ信号は、クライアントコンピューティングデバイス150に、オーディオドライバ153を実行してスピーカー154を駆動し出力オーディオ信号に対応する音波を発生させることができる。音波は、第3のアクションに対するコンテンツアイテムの単語、または第3のアクションに対するコンテンツアイテムに対応する単語を含むことができる。
音波は、クライアントコンピューティングデバイス150から出力され得る。たとえば、音波は、「Would you like to select XYZ ride service?」のオーディオ出力を含むことができ、「XYZ」は好ましい乗車サービスに対する名称または呼称を表すものとしてよい。任意の追加のコンテンツアイテムに関連付けられている音波も、クライアントコンピューティングデバイス150から出力され得る。たとえば、代替乗車サービスに対するコンテンツアイテムに関連付けられている音波は、「Would you like to consider an alternative ride service PQR which is $5 cheaper than the XYZ ride service?」のオーディオ出力を含むことができ、「PQR」は、代替乗車サービスの名称もしくは呼称を表すものとしてよい。
データ処理システム105は、クライアントコンピューティングデバイス150から入力オーディオ信号を含む応答を受信することができる。たとえば、「OK, I would like to use PQR」の入力オーディオ信号である。この情報から、NLPコンポーネント110は、少なくとも1つの要求または少なくとも1つのトリガーキーワードを識別する。たとえば、NLPコンポーネント110は、輸送に対する要求、および代替乗車サービスPQRが要求されていることを指示するキーワード「PQR」を識別することができる。
データ処理システム105は、ユーザによって選択された代替サービスを提供するサービスプロバイダとクライアントコンピューティングデバイス150との間のリンクを確立するようにリンク生成コンポーネント120に通知することができる。リンク生成コンポーネント120は、クライアントコンピューティングデバイス150とユーザによって選択されたサービスに関連付けられているサービスプロバイダ(サービスプロバイダデバイス160など)との間の通信の確立を管理することができる。上で説明されている例を参照すると、リンク生成コンポーネント120は、クライアントコンピューティングデバイス150とクライアントコンピューティングデバイス150から受信されたオーディオ信号においてNLPコンポーネント110によって識別される乗車サービス「PQR」に関連付けられているサービスプロバイダデバイスとの間の通信リンクの確立を管理することができる。
サービスプロバイダデバイス160などの、1つまたは複数のサービスプロバイダデバイスは、クライアントコンピューティングデバイスに関連付けられている識別情報に基づき、クライアントコンピューティングデバイス150などのクライアントコンピューティングデバイスにサービスを提供する。これらの識別情報は、ユーザ名、ID、アカウント番号、またはクライアントコンピューティングデバイス150を一意的に識別することができる他のパラメータの形態をとり得る。サービスプロバイダデバイス160は、たとえば、変換情報、現住所、ユーザ名、パスワード、またはデバイスアドレスなどの追加の情報とともにクライアントデータベース164に様々なクライアントコンピューティングデバイスに関連付けられている識別情報を記憶することができる。サービスプロバイダデバイスは、これらの識別情報および追加情報を、クライアントコンピューティングデバイスとの通信を確立し、維持するために、さらには会計または管理目的に使用することができる。
リンク生成コンポーネント120は、サービスプロバイダデバイス160とクライアントコンピューティングデバイス150との間の通信を円滑にすることができる。一例では、リンク生成コンポーネント120は、サービスプロバイダデバイス160へのクライアントコンピューティングデバイス150に関連付けられている識別情報の伝送を管理することができ、それにより、サービスプロバイダデバイス160は、クライアントコンピューティングデバイス150の識別情報を検証し、検証された場合に、クライアントコンピューティングデバイス150との通信を確立することができる。リンク生成コンポーネント120は、選択されたサービスへクライアントコンピューティングデバイス150を識別する任意の識別子が存在しているかどうかを決定するためにデータリポジトリ145を探索するか、または問い合わせを実行することができる。たとえば、リンク生成コンポーネント120は、選択されたサービスに対してクライアントコンピューティングデバイス150に任意のアカウント情報が存在しているかどうかを決定するための識別子147を検索することができる。識別子147は、たとえばクライアントコンピューティングデバイス150および対応するサービスに関連付けられている1つまたは複数のユーザ名もしくはデバイスIDを含むことができる。サービスプロバイダデバイス160によって提供される選択されたサービスに対してクライアントコンピューティングデバイス150を識別する識別子が存在する場合、リンク生成コンポーネント120は、サービスプロバイダデバイス160に識別子を送信することができる。
いくつかの場合において、リンク生成コンポーネント120は、データベース内で探索を実行する。いくつかの場合において、リンク生成コンポーネント120は、確立されたまたはアクティブなアカウントの識別子をキャッシュし、存在していないことを識別するために比較を実行することができる。確立されているアカウント識別子をキャッシュすることによって、データ処理システムは、サービスプロバイダのデータベースにおいて探索を実行しなければならないということにはなり得ない。アカウント識別子は、データ処理システム上にプリロードされるものとしてよく、データ処理システムは、デバイスがアクティブアカウントに関連付けられているかどうかを決定するために単一のコールを実行することができる。データ処理システムは、クライアントデバイスの位置に基づきアカウント識別子(またはデバイス識別子)をロードすることができる。アカウント識別子がデータ処理システム上にすでにロードされている状態で、データ処理システムは、クライアントデバイスをプリロードされたアクティブアカウント識別子と比較することによってクライアントデバイスがアカウントを有しているかどうかを決定することができる。データ処理システムは、クライアントデバイスが、プリロードされた一組のアクティブアカウント識別子内にマッチする識別子が見つからないことによって、またはエンドユーザのクライアントデバイスに対応するクライアントデバイス識別子に関連付けられているアカウント識別子が見つからないことによってアカウントを有していないと決定することができる。
識別子147は、サービスプロバイダデバイス160によって提供されるサービスに対するクライアントコンピューティングデバイス150に関連付けられている識別子を含み得ない。たとえば、クライアントコンピューティングデバイス150に提示される代替サービスが、ユーザが以前に試みたことのない新規サービスである場合に、そのサービスに対するクライアントコンピューティングデバイス150に関連付けられている識別子は、データリポジトリ145内に存在し得ない。いくつかの例では、サービスプロバイダデバイス160は、クライアントコンピューティングデバイス150に関連付けられている識別子を有し得るが、そのような識別子は、データリポジトリ145内にまだ記憶されていないこともあり得る。そのような場合、リンク生成コンポーネント120は、サービスプロバイダデバイス160と通信して、クライアントコンピューティングデバイス150に関連付けられている識別子のクライアントデータベース164内の存在を決定することができる。サービスプロバイダデバイス160は、クライアント情報を記憶する、クライアントデータベース164と通信して、クライアントコンピューティングデバイス150に関連付けられている識別子または他のデータの存在を決定することができる。代替的に、リンク生成コンポーネント120は、それ自体、探索またはデータベース問い合わせオペレーションによって、クライアントデータベース164と通信し、クライアントコンピューティングデバイス150に関連付けられている任意の識別子の存在を決定することができる。
クライアントコンピューティングデバイス150に関連付けられている識別子が配置された後、リンク生成コンポーネント120は、クライアントコンピューティングデバイス150に代わって識別子をサービスプロバイダデバイス160に送信することができる。リンク生成コンポーネント120は、また、クライアントコンピューティングデバイス150との通信を確立するために識別子を使用するよう、サービスプロバイダデバイス160に命令を送信することもできる。
たとえば、識別子がデータリポジトリ145およびクライアントデータベース164の両方に存在していない場合、サービスプロバイダデバイス160は、クライアントコンピューティングデバイスとの通信を確立することができないことがある。サービスプロバイダデバイス160が、クライアントコンピューティングデバイス150と通信できる場合、データリポジトリおよびクライアントデータベース164の両方に識別子が存在していないと、サービスプロバイダデバイス160とクライアントコンピューティングデバイス150との間で、問い合わせおよび応答などの追加の通信が必要になることがあり得る。たとえば、サービスプロバイダデバイス160は、サービスが提供できる前にアカウントを確立するようにクライアントコンピューティングデバイス150に要求することができる。アカウントの確立は、ユーザ名、パスワード、変換情報、認証、および他の情報をやり取りするためにクライアントコンピューティングデバイス150とサービスプロバイダデバイス160との間の追加の通信を必要とすることがあり、そのため、帯域幅などの追加の時間およびリソースを使用することになり得る。そのような場合、リンク生成コンポーネント120は、クライアントコンピューティングデバイス150に代わってアカウントを生成することによってこの通信の確立を円滑にすることができる。たとえば、リンク生成コンポーネントは、クライアントコンピューティングデバイス150に関連付けられている一意的な仮想識別子を生成することができる。リンク生成コンポーネント120は、インターフェース115を介して、仮想識別子をサービスプロバイダデバイス160に送信することができる。仮想識別子は、インターフェース115を介して、ネットワーク165上で、(たとえば、データパケットのペイロードセクション内の)データパケットを使用してサービスプロバイダデバイス160に伝達され得る。仮想識別子は、クライアントコンピューティングデバイス150に関連付けられているアカウントまたはレコードを作成し、クライアントコンピューティングデバイス150との通信を確立するためにサービスプロバイダデバイス160によって使用され得る。このようにして、リンク生成コンポーネント120は、サービスプロバイダデバイス160とクライアントコンピューテ
ィングデバイス150との間の通信の確立を円滑にすることによってシステムの信頼性を改善するだけでなく、クライアントコンピューティングデバイス150に代わってアカウントを作成することによってシステムの効率も改善し、それにより、他の方法では要求されたサービスを提供する前にアカウントを確立するためにサービスプロバイダデバイス160とクライアントコンピューティングデバイス150との間の通信で利用される時間とリソースを節減することができる。
仮想識別子は、クライアントコンピューティングデバイス150に関連付けられているデータの組合せであってよい。たとえば、仮想識別子は、デバイスID(クライアントコンピューティングデバイス150のMAC IDなど)、クライアントコンピューティングデバイス150のインターネットプロトコル(IP)アドレス、クライアントコンピューティングデバイス150に関連付けられているユーザの名前、ユーザの電話番号、およびクライアントコンピューティングデバイス150を使用する任意のユーザに関連付けられているデータを含むクライアントコンピューティングデバイス150に関連付けられている任意の他のデータのうちの1つまたは複数を含むことができる。仮想識別子は、上述のデータのうちの1つまたは複数を処理することによって決定され得る。たとえば、リンク生成コンポーネント120は、ハッシュ関数を使用して仮想識別子を生成することができ、ハッシュ関数への入力は、クライアントコンピューティングデバイス150に関連付けられている上述のデータのうちの1つまたは複数を与えられ得る。リンク生成コンポーネント120は、また、暗号関数(AES、DES、RSA、およびECCなど)を使用して仮想識別子を生成することができ、暗号関数への入力は、クライアントコンピューティングデバイス150に関連付けられている上述のデータのうちの1つまたは複数を含むことができる。
リンク生成コンポーネント120は、仮想識別子としてクライアントコンピューティングデバイス150に関連付けられているデジタル証明書または公開鍵を使用することができる。この場合、仮想識別子は、クライアントコンピューティングデバイス150を認証するだけでなく、公開鍵基盤(PKI)を使用してクライアントコンピューティングデバイス150と安全に通信するためにサービスプロバイダデバイスによって使用され得る。
リンク生成コンポーネント120は、仮想識別子をサービスプロバイダデバイス160に送信することができる。仮想識別子は、インターフェース115を介して、ネットワーク165上で、(たとえば、データパケットのペイロードセクション内の)データパケットを使用してサービスプロバイダデバイス160に伝達され得る。サービスプロバイダデバイス160は、仮想識別子を使用して、仮想識別子に関連付けられているデータベースエントリを作成することができる。このデータベースエントリは、サービスプロバイダデバイス160がクライアントコンピューティングデバイス150に関連付けられている少なくとも1つのレコードを作成することを可能にし、サービスプロバイダデバイス160がクライアントコンピューティングデバイス150を識別し、それによってクライアントコンピューティングデバイス150と通信することを可能にする。リンク生成コンポーネント120は、仮想識別子をデータリポジトリ145内に識別子147の1つとして記憶することもできる。リンク生成コンポーネント120は、仮想識別子と関連してコンテンツアイテム、またはサービスプロバイダデバイス160の識別情報を記憶することもできる。たとえば、リンク生成コンポーネント120は、仮想識別子、またはサービスプロバイダデバイス160の一意的識別子と関連して、ユーザによって選択された代替乗車サービスの識別情報「PQR」を記憶することができる。これは、将来クライアントコンピューティングデバイス150が再び同じ乗車サービスを選択する場合に、リンク生成コンポーネント120が「PQR」乗車サービスについてクライアントコンピューティングデバイス150に対する識別子の存在を決定することを可能にする。
いくつかの例において、リンク生成コンポーネント120は、仮想識別子をサービスプロバイダデバイス160に送信するときに、クライアントコンピューティングデバイス150に関連付けられている追加のデータを送信することができる。たとえば、リンク生成コンポーネント120は、サービスプロバイダデバイス160とクライアントコンピューティングデバイス150との間の通信の確立を円滑にすることができる追加情報を送信することができる。たとえば、リンク生成コンポーネント120は、自宅住所、ユーザの名前、クライアントコンピューティングデバイス150に関連付けられている変換情報などの情報を送信することができる。追加情報は、また、インターフェース115を介して、ネットワーク165上で、(たとえば、データパケットのペイロードセクション内の)データパケットを使用してサービスプロバイダデバイス160に伝達され得る。この情報は、サービスプロバイダデバイス160が現在要求されているサービスを少なくとも提供するのに十分であり得る情報を含むデータベースエントリを作成することを可能にし得る。もちろん、要求されたサービスを提供するために必要なクライアントコンピューティングデバイス150に関連付けられている情報の最小量は、要求されているサービスの種類に基づき変化し得る。そのような場合、リンク生成コンポーネント120は、1つまたは複数のサービスを提供するためにサービスプロバイダデバイス160によって必要とされる最小のデータをデータリポジトリ145に記憶することができる。
リンク生成コンポーネント120は、クライアントコンピューティングデバイス150のネットワークアドレスまたはクライアントコンピューティングデバイスのMACアドレスなどの情報も送信することができ、それにより、サービスプロバイダデバイス160はクライアントコンピューティングデバイス150との接続を確立することができる。リンク生成コンポーネント120は、通信またはサービス要求を開始するためにサービスプロバイダデバイス160の指定に従って仮想識別子および追加情報をデータ構造体内にフォーマットすることができる。
たとえば、図2Aは、データをサービスプロバイダデバイス160に送信するためにリンク生成コンポーネント120によって使用され得る第1のデータ構造体200を示している。特に、第1のデータ構造体200は、サービスプロバイダデバイス160が仮想識別子に関連付けられているアカウントを確立するために使用する、クライアントコンピューティングデバイス150のプロファイル情報などの、追加情報とともにサービスプロバイダデバイス160に仮想識別子を送信するためにリンク生成コンポーネント120によって使用され得る。データ構造体200は、データ処理システム105とサービスプロバイダデバイス160との間のデータ伝送の信頼性および効率を改善することができる。第1のデータ構造体200は、識別子、クライアントコンピューティングデバイス識別子、クライアントコンピューティングデバイスアドレス、変換情報、および新規アカウントなどのフィールドを含む。識別子フィールドは、上で説明されているリンク生成コンポーネント120によって生成される仮想識別子を含むことができる。クライアントコンピューティングデバイス識別子およびクライアントコンピューティングデバイスアドレスは、サービスプロバイダデバイス160がクライアントコンピューティングデバイス150と通信することを可能にすることができるデータを含むものとしてよく、クライアントコンピューティングデバイス150のMACアドレス、ネットワークアドレス、または他の識別子を含み得る。変換情報は、サービスプロバイダデバイス160がレンダリングされるサービスに対してクライアントコンピューティングデバイス150に課金することを可能にすることができる情報を含むものとしてよく、クレジットカード情報、コード、またはオンライン転送サービスへのリンクなどのデータを含み得る。新規アカウントフィールドは、サービスプロバイダデバイス160に対する、識別子フィールドに含まれる仮想識別子に関連付けられているクライアントデータベース164内に新規レコードを作成する命令を含むことができる。いくつかの例では、新規アカウントフィールドは、サービスプロバイダデバイス160が識別子フィールド内の情報に関連付けられている新規レコードを作成するかしないかを意味するように解釈できる2値メッセージ(たとえば、Y/N、また
は0/1)を含むことができる。
リンク生成コンポーネント120は、サービスプロバイダデバイス160が接続を確立するか、または要求されたサービスをクライアントコンピューティングデバイス150に提供することを可能にすることができる追加情報をサービスプロバイダデバイス160に送信することができる。図2Bは、サービス特有の情報などの追加情報をサービスプロバイダデバイス160に送信するためにリンク生成コンポーネント120によって使用され得る第2のデータ構造体202を示している。第2のデータ構造体202は、識別子、コンテンツアイテムまたはサービス、出発住所、目的地住所、要求時刻、および変換情報などのフィールドを含む。識別子フィールドに含まれる情報は、サービスプロバイダデバイス160に知られているクライアントコンピューティングデバイス150の識別子または上で説明されているようなリンク生成コンポーネント120によって生成される仮想識別子を含むことができる。コンテンツアイテムまたはサービスフィールドは、クライアントコンピューティングデバイス150によって要求された特定のサービスを含むことができる。すなわち、コンテンツアイテムまたはサービスフィールドは、クライアントコンピューティングデバイス150がサービスを要求したことに関係しているコンテンツアイテムへの参照を含み得るか、またはサービスそれ自体の名前を含み得る。たとえば、上で説明されているPQR乗車サービスに関連付けられているコンテンツアイテムが含まれるものとしてよく、これは要求されたサービスがクライアントコンピューティングデバイスに提示される代替コンテンツアイテムに関連付けられていることをサービスプロバイダに指示するものとしてよい。出発住所および目的地住所は、自宅住所および要求された乗車サービスの要求された目的地を含むことができる。要求時刻フィールドは、クライアントコンピューティングデバイス150によって要求されたピックアップ時刻を含むことができ、変換情報は、クレジットカード情報、コード、またはオンライン転送サービスへのリンクなどのデータを含み得る。
追加情報は、クライアントコンピューティングデバイス150に関連付けられている個人情報以外の情報を含むことができる。たとえば、リンク生成コンポーネント120は、クライアントコンピューティングデバイス150のGPS座標などのデータをクライアントコンピューティングデバイス150に要求することができる。クライアントコンピューティングデバイス150が、スマートフォンなどのモバイルデバイスである場合、クライアントコンピューティングデバイス150の瞬間的なGPS座標は、サービスプロバイダデバイス160がクライアントコンピューティングデバイス150の現在位置に基づき乗車サービスを送ることができるようにサービスプロバイダデバイス160に送信され得る。リンク生成コンポーネント120は、クライアントコンピューティングデバイス150が現在通信しているセルの温度、ノイズレベル、信号強度などの他のデータも要求することができ、またこのデータをサービスプロバイダデバイス160に送信することもできる。図2Cは、上記の情報をサービスプロバイダデバイス160に送信するために使用され得る第3のデータ構造体204を示している。
第1、第2、および第3のデータ構造体200、202、および204は、図2A〜図2Cに示されているものよりも少ない、または多いフィールドを含むことができる。データ処理システム105は、情報をサービスプロバイダデバイス160に送信するためのデータ構造体を拡張マークアップ言語(XML)で定義することができる。第1、第2、および第3のデータ構造体200、202、および204に関連付けられているデータは、ネットワーク165上で、たとえばデータパケットのペイロードセクション内のデータパケットを使用して伝達され得る。
サービスプロバイダデバイス160は、リンク生成コンポーネント120によって提供される仮想識別子および追加情報(第1のデータ構造体200で提供されるような)を使用することができ、この情報を使用してクライアントコンピューティングデバイス150と通信し、要求されたサービスを適切に提供するために必要になり得る追加情報を取得することができる。たとえば、サービスプロバイダデバイス160は、サービスプロバイダNLPコンポーネント161を使用して、追加情報についてユーザに問い合わせるオーディオ信号を生成することができる。問い合わされた情報は、目的地住所、ピックアップ住所、要求時刻、および変換情報を含むことができる。クライアントコンピューティングデバイス150におけるユーザによる応答を表すオーディオ信号は、サービスプロバイダデバイス160によって受信され、所望の情報を抽出するためにサービスプロバイダNLPコンポーネント161によって処理され得る。サービスプロバイダデバイス160は、クライアントコンピューティングデバイス150の識別子に関連してクライアントデータベース164内に抽出された情報を記憶することができる。
サービスプロバイダデバイス160は、データ処理システム105をオーディオ信号を取得するための中間段階として使用することができる。たとえば、サービスプロバイダデバイス160は、テキストベースの問い合わせをオーディオ信号に変換し、オーディオ信号をクライアントコンピューティングデバイス150に伝送する、データ処理システム105に対する要求に加えてテキストベースの問い合わせを含むデータパケットを送信することができる。データ処理システム105のNLPコンポーネント110は、テキストベースの問い合わせをオーディオ信号に変換することができ、これはクライアントコンピューティングデバイス150に伝送され得る。データ処理システム105は、また、問い合わせへの応答を含むオーディオ信号をクライアントコンピューティングデバイス150から受信することもできる。NLPコンポーネント110は、オーディオ信号をテキストに変換し、変換されたテキストをサービスプロバイダデバイス160に伝送することができる。
リンク生成コンポーネント120は、仮想識別子に関連付けられている一時的データベースレコードまたはカウントを作成するようサービスプロバイダデバイス160に指令することができる。たとえば、仮想識別子に関連付けられているデータベースレコードは、クライアントコンピューティングデバイス150によって要求されたサービスが完了した後に削除され得る。リンク生成コンポーネント120は、タイムスタンプ、または持続時間に仮想識別子を与えることができる。タイムスタンプまたは持続時間は、タイムスタンプまたは持続時間から導出された時刻の後に仮想識別子が無効であることを指示することができる。サービスプロバイダデバイス160は、仮想識別子が無効である場合に仮想識別子に関連付けられているデータベースレコードを削除することができる。
リンク生成コンポーネント120は、クライアントコンピューティングデバイス150、またはプライバシーもしくはセキュリティを損ない得るクライアントコンピューティングデバイス150に関連付けられているユーザに関する情報を送信することを差し控えることができる。たとえば、リンク生成コンポーネント120は、仮想識別子をサービスプロバイダデバイス160に送信することができるが、任意の変換情報を送信することを差し控えることができる。変換情報は、データ処理システム105に記憶されてよく、クライアントコンピューティングデバイス150に代わってサービスプロバイダデバイス160との変換トランザクションを行うためにデータ処理システム105によって使用され得る。
リンク生成コンポーネント120は、サービスプロバイダデバイス160またはクライアントデータベース164と通信して、データリポジトリ145に記憶されている情報をクライアントデータベース164に記憶されているデータに同期させることができる。たとえば、クライアントコンピューティングデバイス150に関連付けられているアカウントまたはレコードに関係するデータは、データリポジトリ145またはクライアントデータベース164が最新情報を有するようにやり取りされ得る。
図3は、図1に示されているシステム100の様々なエンティティの間のメッセージフロー300の表現を示している。特に、図3は、データ処理システム105、クライアントコンピューティングデバイス150、およびサービスプロバイダデバイス160の間の、図1に関して上で説明されているメッセージフロー300を表している。図3に示されているメッセージフロー300は、データ処理システム105(および特にリンク生成コンポーネント120)が、クライアントコンピューティングデバイス150とサービスプロバイダデバイス160との間の通信の確立を、クライアントコンピューティングデバイス150に関連付けられている識別子が欠損していてそのような通信の確立ができない場合に円滑にすることができるように実行される。さらに、メッセージフロー300は、仮想識別子を受け渡し、サービスプロバイダデバイス160とクライアントコンピューティングデバイス150との間の複数の問い合わせおよび通信を回避することによってリソース消費(たとえば、帯域幅)も低減しながら、データ処理システム105とサービスプロバイダデバイス160との間のデータ伝送の信頼性および効率を改善するために実行され、それによりサービスプロバイダデバイス160が要求されたサービスを提供することを可能にする。
上で説明されているように、データ処理システム105は、クライアントコンピューティングデバイス150から通信C1を受信することができ、通信C1は、クライアントコンピューティングデバイス150に関連付けられているユーザからの音声コマンドを含むオーディオ信号を含み得る。データ処理システム105、および特にNLPコンポーネント110は、オーディオ信号を処理し、要求およびキーワードを識別することができる。たとえば、上で説明されているように、オーディオ信号は、「OK, I would like to go to go dinner and then a movie tonight」などのメッセージを含むことができる。データ処理システムは、オーディオ信号を処理し、ディナーおよび映画に出席することに関心があることを指示する少なくとも1つの要求、ならびに少なくとも1つのトリガーキーワード、たとえば、輸送の必要があることを指示する「go」を検出することができる。キーワードが輸送に関連付けられていることを決定したことに応答して、コンテンツセレクタコンポーネント125は、クライアントコンピューティングデバイス150に関連付けられている既定のまたは好ましい乗車サービスの代替としてオファーされ得る乗車サービスを選択することができる。データ処理システム105は、ユーザにコンテンツアイテムを提示するメッセージを含むオーディオ信号を生成することができる。たとえば、オーディオファイルは、「Would you like to consider an alternative ride service PQR which is $5 cheaper than the XYZ ride service?」などのメッセージを含むことができ、「PQR」は、代替乗車サービスの名称もしくは呼称を表すものとしてよい。データ処理システム105は、図3に示されているように、コンテンツアイテムに関連付けられているオーディオファイルを含む通信C2を送信する。
クライアントコンピューティングデバイス150は、通信C2に応答して通信C3を送信することができ、C3はユーザからの応答を表すオーディオ信号を含む。たとえば、オーディオ信号は、「OK, I would like to use PQR」などの応答を含み得る。この情報から、NLPコンポーネント110(図1)は、少なくとも1つの要求または少なくとも1つのトリガーキーワードを識別する。たとえば、NLPコンポーネント110は、輸送に対する要求、および代替乗車サービスPQRが要求されていることを指示するキーワード「PQR」を識別することができる。
データ処理システム105が、クライアントコンピューティングデバイス150が代替コンテンツアイテムを要求していると識別した後、リンク生成コンポーネント120(図1)は、要求されたコンテンツアイテムに関連付けられているサービスプロバイダデバイス160を決定する。リンク生成コンポーネントは、データリポジトリ145(図1)が要求されたコンテンツアイテムおよびクライアントコンピューティングデバイス150に関連付けられている任意の識別子を含むかどうかを決定する。識別子が見つからない場合、リンク生成コンポーネント120は、通信C4をサービスプロバイダデバイス160に送信して、クライアントコンピューティングデバイス150に関連付けられているデータベースレコードの存在を決定する。通信C4は、クライアントコンピューティングデバイス150の識別情報またはクライアントコンピューティングデバイス150に関連付けられているユーザの識別情報を含み得る。リンク生成コンポーネント120は、データリポジトリ145(図1)に問い合わせを行うことなく通信C4をサービスプロバイダデバイス160に送信することができる。
サービスプロバイダデバイス160は、通信C4におけるクライアント識別情報に関連付けられているデータベースレコードに対する問い合わせを受信したことに応答して、通信C5をクライアントデータベース164に送信して、クライアント識別情報に関連付けられているデータベースレコードがクライアントデータベース164内に存在しているかどうかを決定することができる。クライアントデータベース164が通信C5で受信されたクライアント識別情報に関連付けられた任意のレコードを含まない場合、クライアントデータベース164は、そのようなレコードが存在しないことを指示する通信C6を返すことができる。サービスプロバイダデバイス160は、クライアントデータベース164内に通信C4に含まれているクライアント識別情報に関連付けられているデータベースレコードが存在していないことを指示する通信C7をデータ処理システム105に送信することができる。データ処理システム105は、通信C4'(クライアント識別情報)(図3に点線で示されている)でクライアントデータベース164に直接問い合わせて、クライアント識別情報に関連付けられている任意のレコードがクライアントデータベース164内に存在しているかどうかを決定することができる。レコードが見つからない場合、クライアントデータベース164は、問い合わされたレコードが存在していないことを指示するNull応答とともに通信C6'を返すことができる。いくつかの場合において、データ処理システムは、存在しないことを指示するNull応答または他の指示、応答、文字、シンボル、文字列、英数字、または値に基づき存在していないことを決定することができる。
サービスプロバイダデバイス160は、要求されたサービスをクライアントコンピューティングデバイス150に提供することができない場合があるが、それは、クライアントデータベース164内に、クライアントコンピューティングデバイス150に関連付けられているレコードが存在しないからである。しかしながら、データ処理システム105は、データベースレコードがないことによる通信が欠如するリスクを緩和することができる。特に、データ処理システム105は、クライアントコンピューティングデバイス150に関連付けられている仮想識別子を生成し、通信C8をサービスプロバイダデバイス160に送信してクライアントデータベース164内に仮想識別子に関連付けられているデータベースデコードを作成する。上で説明されているように、仮想識別子は、クライアントコンピューティングデバイス150に関連付けられている様々なデータの組合せを含むことができる。たとえば、仮想識別子は、デバイスID(クライアントコンピューティングデバイス150のMAC IDなど)、クライアントコンピューティングデバイス150のインターネットプロトコル(IP)アドレス、クライアントコンピューティングデバイス150に関連付けられているユーザの名前、ユーザの電話番号、およびクライアントコンピューティングデバイス150に関連付けられている任意の他のデータのうちの1つまたは複数のハッシュ関数を含むことができる。仮想識別子は、クライアントコンピューティングデバイス150のデジタル証明書または公開鍵を含むことができる。通信C8は、サービスプロバイダデバイス160とクライアントコンピューティングデバイス150との間の通信の確立を円滑にするか、またはサービスプロバイダデバイス160による要求されたサービスの提供を円滑にすることができるクライアントコンピューティングデバイス150に関連付けられている追加情報も含み得る。データ処理システム105は、仮想識別子、および図2A〜図2Cに示されている第1、第2、または第3のデータ構造体200、202、または204などのデータ構造体にフォーマットされている追加情報を送信することができる。仮想識別子および追加情報は、インターフェース115(図1)を介して、ネットワーク165(図1)上で、(たとえば、データパケットのペイロードセ
クション内の)データパケットを使用してサービスプロバイダデバイス160(図1)に伝達され得る。
サービスプロバイダデバイス160は、通信C8を受信した後に、通信C9をクライアントデータベース164に送信することによって少なくとも仮想識別子に基づきデータベースレコードを作成することができる。通信C9は、また、通信C8で受信された追加情報を含むこともできる。仮想識別子に関連付けられているデータベースレコードを作成した後に、クライアントデータベース164は、通信C10をサービスプロバイダデバイス160に送信し、データベースレコードが作成されたことを指示することができる。サービスプロバイダデバイス160は、通信C11をデータ処理システム105に送信して、データベースレコードが正常に作成されたことを指示することができる。
クライアントコンピューティングデバイス150に関連付けられているレコードがクライアントデータベース164内に作成された後、サービスプロバイダデバイス160は、クライアントコンピューティングデバイス150と通信して、通信C3で要求されたサービスを提供することができる。たとえば、サービスプロバイダデバイス160は、通信C12をクライアントコンピューティングデバイス150に送信して、代替乗車の要求が成功していることを確認するか、または要求されたサービスに関してクライアントコンピューティングデバイス150から追加情報を取得することができる。
上で説明されているように、データ処理システム105は、クライアントコンピューティングデバイス150に関連付けられているデータベースレコードがない場合にサービスプロバイダデバイス160とクライアントコンピューティングデバイス150との間の通信を確立するのを円滑にする。これは、クライアントコンピューティングデバイスによって行われる要求がそうしないと行き詰まってしまう状況を回避する。
図4は、システム100などの音声作動のデータパケットベースのコンピュータネットワーク環境内のクライアントコンピューティングデバイスとサービスプロバイダデバイスとの間の通信の行き詰まりを緩和するためのアクションを呼び出すための方法400を示している。図4に示されている方法400は、データ処理システム105が(たとえば、リンク生成コンポーネント120を介して)クライアントコンピューティングデバイス150とサービスプロバイダデバイス160との間の通信の確立を、クライアントコンピューティングデバイス150に関連付けられている識別子が欠損していてそのような通信の確立ができない場合に円滑にすることを可能にする。さらに、方法400は、仮想識別子を受け渡し、サービスプロバイダデバイス160とクライアントコンピューティングデバイス150との間の複数の問い合わせおよび通信を回避することによってリソース消費(たとえば、帯域幅)も低減しながら、データ処理システム105とサービスプロバイダデバイス160との間のデータ伝送の信頼性および効率を改善し、それによりサービスプロバイダデバイス160が要求されたサービスを提供することを可能にする。
方法400は、クライアントコンピューティングデバイスからデータパケットを受信することができる(ACT405)。たとえば、データ処理システム105は、NLPコンポーネント110を実行するか、起動するか、または呼び出して、クライアントコンピューティングデバイス150からネットワーク165を介してパケットまたは他のプロトコルベースの伝送を受信することができる。データパケットは、エンドユーザがスマートフォンに「OK, I would like to go to go dinner and then a movie tonight」としゃべるなど、センサー151によって検出される入力オーディオ信号を含むか、または対応することができる。この方法ステップの別の例は、図3に関して上ですでに説明されており、クライアントコンピューティングデバイス150に関連付けられているユーザからの音声コマンドを含む通信C1は、データ処理システム105によって受信される。
方法400は、入力オーディオ信号から少なくとも1つの要求または少なくとも1つのトリガーキーワードを識別することができる(ACT410)。たとえば、NLPコンポーネント110は、入力オーディオ信号を解析して、要求(「dinner」または「movie」)さらには要求に対応するか、または要求に関係するトリガーキーワード「go」「go to」または「to go to」を識別することができる。データ処理システム105は、輸送をユーザに提供することに関係するアクションなどの、キーワードに関連付けられているアクションを決定することができる。
方法400は、データ処理システムによって識別されたキーワードに基づきコンテンツアイテムを選択することができる(ACT415)。たとえば、コンテンツセレクタコンポーネント125は、識別された要求およびキーワードに基づき、少なくとも1つのコンテンツアイテムを選択することができる。データ処理システム105は、選択されたコンテンツアイテムに関連付けられている少なくとも1つの出力オーディオ信号を選択することができる。たとえば、コンテンツセレクタコンポーネント125は、代替乗車シェアリングサービスに対応する出力オーディオ信号を選択することができる。コンテンツアイテムを選択する別の例は、図3に関して上ですでに説明されており、データ処理システム105は、「Would you like to consider an alternative ride service PQR which is $5 cheaper than the XYZ ride service?」という出力オーディオ信号を選択し、「PQR」は、代替乗車サービスの名称もしくは呼称を表すものとしてよい。データ処理システム105は、図3に示されているように、コンテンツアイテムに関連付けられているこのオーディオファイルを含む通信C2を送信する。
方法400は、クライアントコンピューティングデバイス150に関連付けられているデータベースレコードが存在していないことを決定するステップを含む(ACT420)。たとえば、リンク生成コンポーネント120は、サービスプロバイダデバイス160に問い合わせを行って(通信C4、図3)、クライアントコンピューティングデバイス150に関連付けられているデータベースレコードがサービスプロバイダデバイス160のクライアントデータベース164内に存在しているかどうかを決定することができる。代替的に、図3に示されているように、データ処理システム105は、クライアントデータベース164に直接問い合わせを行って(通信C4'、図3)、クライアントコンピューティングデバイス150に関連付けられているレコードの存在を決定することができる。データ処理システム105は、また、データリポジトリ145に問い合わせを行って、識別子147のどれかがクライアントコンピューティングデバイス150および要求されたコンテンツアイテムに関連付けられている識別子を含むかどうかを決定することもできる。クライアントコンピューティングデバイス150に関連付けられている識別子に対するレコードが存在していない場合、クライアントデータベース164は、Null応答(通信C6およびC6'、図3)を返すことができ、ちょうどそれだけを示す。
方法400は、仮想識別子を生成するステップを含む(ACT425)。上で説明されているように、リンク生成コンポーネント120は、クライアントコンピューティングデバイス150に関連付けられている仮想識別子を生成することができる。仮想識別子は、クライアントコンピューティングデバイス150を識別する一意的識別子であってよい。仮想識別子は、ランダムに生成された数であってよい。仮想識別子は、また、クライアントコンピューティングデバイス150に関連付けられているデータ上でハッシュ関数または暗号関数を使用して決定され得る。さらに、仮想識別子は、PKIを使用して安全な通信に使用され得るデジタル証明書または公開鍵を含むことができる。
方法400は、仮想識別子をサービスプロバイダデバイスに送信するステップも含む(ACT430)。図1〜図3に関して上で説明されているように、リンク生成コンポーネント120は、クライアントコンピューティングデバイスに関連付けられている仮想識別子をサービスプロバイダデバイス160に送信することができる(通信C8、図3)。仮想識別子は、インターフェース115を介して、ネットワーク165上で、(たとえば、データパケットのペイロードセクション内の)データパケットを使用してサービスプロバイダデバイス160に伝達され得る。サービスプロバイダデバイス160は、クライアントデータベース164内に仮想識別子に関連付けられているデータベースレコードを作成する。クライアントデータベース164内にレコードを作成するステップは、クライアントコンピューティングデバイス150に対するアカウントを作成してサービスプロバイダデバイス160が要求されたサービスをクライアントコンピューティングデバイス150に提供することを可能にするステップを含み得る。リンク生成コンポーネント120は、仮想識別子をデータリポジトリ145内に識別子147の1つとして記憶することもできる。一例では、リンク生成コンポーネント120は、追加情報をサービスプロバイダデバイス160に送信することができる。たとえば、リンク生成コンポーネント120は、クライアントコンピューティングデバイス150に関連付けられている情報を送信することができる。また、リンク生成コンポーネント120は、クライアントコンピューティングデバイス150上の1つまたは複数のセンサーからデータをポーリングし、仮想識別子とともにデータを送信することができる。
方法400は、レコードの作成の通信を受信するステップを含む(ACT435)。たとえば、図3に示されているように、データ処理システム105は、クライアントデータベース164内にレコードが作成されていることを指示する通信C11を受信する。レコード作成通信を受信した後に、データ処理システム105は、クライアントコンピューティングデバイス150からの追加の要求、またはサービスプロバイダデバイス160からの追加データの要求を受信するのを待つことができる。
図5は、例示的なコンピュータシステム500のブロック図である。コンピュータシステムまたはコンピューティングデバイス500は、システム100、または処理システム105などのそのコンポーネントを含むか、または実装するために使用され得る。データ処理システム105は、インテリジェントパーソナルアシスタントまたは音声ベースのデジタルアシスタントを含むことができる。コンピューティングシステム500は、情報を伝達するためのバス505または他の通信コンポーネントと、情報を処理するためにバス505に結合されているプロセッサ510または処理回路とを備える。コンピューティングシステム500は、情報を処理するためにバスに結合されている1つまたは複数のプロセッサ510もしくは処理回路も備え得る。コンピューティングシステム500は、情報、およびプロセッサ510によって実行されるべき命令を記憶するためにバス505に結合されるランダムアクセスメモリ(RAM)または他のダイナミックストレージデバイスなどのメインメモリ515も備える。メインメモリ515は、データリポジトリ145であり得るか、または含み得る。メインメモリ515は、プロセッサ510による命令の実行時に位置情報、一時変数、または他の中間情報を記憶するためにも使用できる。コンピューティングシステム500は、静的情報とプロセッサ510に対する命令とを記憶するためにバス505に結合されているリードオンリーメモリ(ROM)520または他のスタティックストレージデバイスをさらに備え得る。ソリッドステートデバイス、磁気ディスク、または光ディスクなどのストレージデバイス525はバス505に結合され、情報および命令を永続的に記憶することができる。ストレージデバイス525は、データリポジトリ145を含み得るか、またはその一部であってよい。
コンピューティングシステム500は、情報をユーザに対し表示するために、バス505を介して液晶ディスプレイ、またはアクティブマトリックスディスプレイなどのディスプレイ535に結合され得る。英数字および他のキーを備えるキーボードなどの入力デバイス530はバス505に結合され、情報およびコマンド選択をプロセッサ510に伝達することができる。入力デバイス530は、タッチスクリーンディスプレイ535を含み得る。入力デバイス530は、マウス、トラックボール、またはカーソル方向キーなどのカーソルコントロールも備え、それにより、方向情報およびコマンド選択をプロセッサ510に伝達し、ディスプレイ535上のカーソル移動を制御することができる。ディスプレイ535は、たとえば、データ処理システム105、クライアントコンピューティングデバイス150、または図1の他のコンポーネントの一部であってもよい。
本明細書で説明されているプロセス、システム、および方法は、メインメモリ515に収められている命令の配置構成をプロセッサ510が実行することに応答してコンピューティングシステム500によって実装され得る。このような命令は、ストレージデバイス525などの別のコンピュータ可読媒体からメインメモリ515内に読み込まれ得る。メインメモリ515に収められている命令の配置構成が実行されると、コンピューティングシステム500は本明細書で説明されている例示的なプロセスを実行する。多重処理配置構成の1つまたは複数のプロセッサも、メインメモリ515に収められている命令を実行するために採用され得る。ハード配線された回路は、本明細書で説明されているシステムおよび方法と一緒にソフトウェア命令の代わりに、またはそれと組み合わせて使用され得る。本明細書で説明されているシステムおよび方法は、ハードウェア回路とソフトウェアとの特定の組合せに限定されない。
例示的なコンピューティングシステムが図5において説明されているが、本明細書で説明されているオペレーションを含む発明対象は、他の種類のデジタル電子回路で、または本明細書およびその構造的等価物において開示されている構造を含む、コンピュータソフトウェア、ファームウェア、またはハードウェアで、またはそれらのうちの1つまたは複数の組合せで実装され得る。
本明細書で説明されているシステムがユーザに関する個人情報を収集するか、または個人情報を利用し得る状況に関して、ユーザは、プログラムまたは機能により個人情報(たとえば、ユーザのソーシャルネットワーク、社会的行為もしくは活動、ユーザの選好、またはユーザの場所に関する情報)を収集するかどうかを制御する、またはユーザに対してより高い関連性を有する思われるコンテンツをコンテンツサーバまたは他のデータ処理システムから受信するかどうか、またはどのように受信するかを制御する機会を与えられ得る。それに加えて、パラメータを生成するときに、特定データが、それが記憶されるか、または使用される前に1つまたは複数の方法で匿名化されるものとしてよく、したがって個人的に識別可能な情報は取り除かれる。たとえば、ユーザの身元は、ユーザに対して個人的に識別可能な情報が決定され得ないように匿名化され得るか、または位置情報(市名、郵便番号、国家レベルなど)が得られる場合にユーザの地理的位置が一般化されるものとしてよく、したがって、ユーザの詳細な位置が決定され得ない。したがって、ユーザは、コンテンツサーバによってユーザに関する情報がどのように収集され、どのように使用されるかを制御し得る。
本明細書で説明されている発明対象およびオペレーションは、デジタル電子回路で、または本明細書およびその構造的等価物において開示されている構造を含む、コンピュータソフトウェア、ファームウェア、またはハードウェアで、またはそれらのうちの1つまたは複数の組合せで実装され得る。本明細書において説明されている発明対象は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置によって実行できるようにまたはデータ処理装置の動作を制御するために1つまたは複数のコンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数の回路として実装されてよい。代替的に、またはそれに加えて、プログラム命令は、データ処理装置による実行のため好適な受信機装置に送信する情報を符号化するように生成される、人工的に生成された伝搬信号、たとえば、機械で生成された電気、光、または電磁信号上で符号化され得る。コンピュータ記憶媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであり得るか、または含まれ得る。コンピュータ記憶媒体は、伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成される伝搬信号内に符号化されているコンピュータプログラム命令のソースまたはデスティネーションとすることができる。コンピュータ記憶媒体は、また、1つまたは複数の独立したコンポーネントまたは媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)であり得るか、または含まれ得る。本明細書において説明されているオペレーションは、1つまたは複数のコンピュータ可読ストレージデバイス上に記憶されるか、または他のソースから受信されたデータに対するデータ処理装置によって実行されるオペレーションとして実装され得る。
「データ処理システム」、「コンピューティングデバイス」、「コンポーネント」、または「データ処理装置」という用語は、たとえばプログラム可能プロセス、コンピュータ、1つまたは複数のチップ上のシステム、または前述のものの組合せを含む、データを処理するための様々な装置、デバイス、およびマシンを包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)を含んでいてもよい。装置は、また、ハードウェアに加えて、注目しているコンピュータプログラム用の実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時環境、仮想マシン、またはこれらのうちの1つまたは複数のものの組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービス、分散型コンピューティング、およびグリッドコンピューティング基盤などの様々な異なるコンピューティングモデル基盤を実現することができる。ダイレクトアクションAPI135、コンテンツセレクタコンポーネント125、リンク生成コンポーネント120、またはNLPコンポーネント110、および他のデータ処理システム105コンポーネントは、1つまたは複数のデータ処理装置、システム、コンピューティングデバイス、またはプロセッサを含むか、または共有することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、スクリプト、またはコードとも称される)は、コンパイル言語またはインタプリタ言語、宣言型もしくは手続き型言語を含む、任意の形態のプログラミング言語で書かれ、スタンドアロンプログラム、またはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境において使用するのに適している他のユニットを含む、任意の形態で配備され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応するものとしてよい。コンピュータプログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語ドキュメントに記憶される1つまたは複数のスクリプト)を収容するファイルの一部に、注目しているプログラム専用の単一ファイルに、または複数の協調ファイル(たとえば、1つまたは複数のモジュール、副プログラム、またはコードの一部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに配置されるか、または複数のサイトにまたがって分散され、通信ネットワークによって相互接続されている複数のコンピュータ上で実行されるように配備され得る。
本明細書で説明されているプロセスおよび論理の流れは、入力データを操作し、出力を生成することによってアクションを実行するように1つまたは複数のコンピュータプログラム(たとえば、データ処理システム105のコンポーネント)を実行する1つまたは複数のプログラム可能なプロセッサによって実行され得る。これらのプロセスまたは論理の流れは、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)によっても実行され、また装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)としても実装され得る。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、たとえば、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補助されるか、または専用論理回路に組み込まれ得る。
本明細書で説明されている発明対象は、バックエンドコンポーネントを、たとえば、データサーバとして備えるか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを備えるか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書で説明されている発明対象の実装をインタラクティブに操作するために使用することができるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータを備えるコンピューティングシステムで、または1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの組合せで実装され得る。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体、たとえば、通信ネットワーク、によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、およびピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
システム100またはシステム500などのコンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に、互いに隔てられており、典型的には、通信ネットワーク(たとえば、ネットワーク165)を通じてインタラクティブな操作を行う。クライアントとサーバとの関係は、コンピュータプログラムが各コンピュータ上で実行され、互いとの間にクライアント-サーバ関係を有することによって発生する。いくつかの実装において、サーバはデータ(たとえば、コンテンツアイテムを表すデータパケット)をクライアントデバイスに(たとえば、クライアントデバイスをインタラクティブに操作するユーザにデータを表示し、ユーザ入力を受け取ることを目的として)伝送する。クライアントデバイスで(たとえば、ユーザインタラクションの結果として)生成されたデータは、サーバにおいてクライアントデバイスから受信され(たとえば、クライアントコンピューティングデバイス150またはコンテンツプロバイダコンピューティングデバイス155またはサービスプロバイダデバイス160からデータ処理システム105によって受信され)得る。
オペレーションは特定の順序で図面に示されているが、そのようなオペレーションは、示される特定の順序でもしくは順番に実行される必要がなく、例示されているすべてのオペレーションが実行される必要があるとは限らない。本明細書で説明されているアクションは、異なる順序で実行できる。
様々なシステムコンポーネントを分離するといってもすべての実装で分離する必要はなく、説明されているプログラムコンポーネントは単一のハードウェアまたはソフトウェア製品に含まれ得る。たとえば、NLPコンポーネント110、コンテンツセレクタコンポーネント125、またはリンク生成コンポーネント120は、単一のコンポーネント、アプリ、もしくはプログラム、または1つまたは複数の処理回路を有する論理デバイス、またはデータ処理システム105の1つまたは複数のサーバの一部であり得る。
いくつかの例示的な実装が説明されているが、前述の内容は例示的であり、制限する意図はなく、例として提示されていることは明らかである。特に、本明細書に提示されている例の多くは、方法動作またはシステム要素の特定の組合せを伴い、それらの動作およびそれらの要素は、同じ目的を遂行するために他の方法で組み合わされてもよい。一実装に関連して説明されている動作、要素、および特徴は、他の実装における類似の役割または実装から除外されることを意図されていない。
本明細書で使用されている語法および術語は、説明を目的とするものであり、制限するものとしてみなされるべきでない。「含む、備える(including)」、「からなる、備える、含む(comprising)」、「有する(having)」、「収容する、含む(containing)」、「伴う(involving)」、「特徴とする(characterized by、characterized in that)」、および本明細書におけるそれらの変形は、それ以降に記載される項目、同等の項目、および追加項目、さらにはこれ以降排他的に記載されている項目からなる代替的実装を包含することを意図されている。一実装において、本明細書で説明されているシステムおよび方法は、説明されている要素、動作、またはコンポーネントのうちの1つ、複数の各組合せ、またはすべてからなる。
本明細書で単数形で参照されているシステムおよび方法の実装または要素または動作への参照は、また、これらの複数の要素を含む実装も包含するものとしてよく、本明細書における実装または要素または動作への複数の参照は、また、単一の要素のみを含む実装も包含し得る。単数形または複数形による参照は、本開示のシステムまたは方法、そのコンポーネント、動作、または要素を単一または複数の構成に制限することを意図していない。情報、動作、または要素に基づいている動作または要素への参照は、動作または要素が少なくとも一部の情報、動作、または要素に基づく実装を含み得る。
本明細書で開示されている実装は、他の実装または実施形態と組み合わされるものとしてよく、「実装」、「いくつかの実装」、「一実装」、または同様の言い回しへの参照は、必ずしも相互排他的でなく、実装に関連して説明されている特定の特徴、構造、または特性が少なくとも1つの実装または実施形態に含まれ得ることを指示することを意図されている。本明細書で使用されているそのような用語は、必ずしもすべて同じ実装を指しているわけではない。任意の実装は、本明細書で開示されている態様および実装に一致する任意の方式で、包含的にまたは排他的に他の実装と組み合わされてもよい。
「または」への参照は、「または」を使用して説明されている用語が、説明されている用語の1つ、複数、およびすべてのどれかを指示し得るように包含的に解釈され得る。たとえば、「AおよびBのうちの少なくとも一方」の参照は、Aのみ、Bのみ、さらにはAとBの両方を含み得る。「含む」または他のオープンターミノロジーと併せて使用されるそのような参照は、追加項目を含むことができる。
図面、詳細な説明、または請求項における技術的特徴の後に引用符号が続く場合、引用符号は、図面、詳細な説明、および請求項の明瞭さを高めるために含まれている。したがって、引用符号があることもないことも、請求要素の範囲に対する制限的効果を有しない。
前述の実装は、説明されているシステムおよび方法を制限するものではなく、例示するものである。したがって、本明細書で説明されているシステムおよび方法の範囲は、前述の説明ではなく、付属の請求項によって指示され、請求項の等価性の意味および範囲に入る変更は、そこに包含される。
100 システム
105 データ処理システム
110 自然言語プロセッサ(NLP)コンポーネント
115 インターフェース
120 リンク生成コンポーネント
125 コンテンツセレクタコンポーネント
130 オーディオ信号生成器コンポーネント
135 ダイレクトアクション・アプリケーション・プログラミング・インターフェース(API)
140 セッションハンドラコンポーネント
145 データリポジトリ
146 パラメータ
147 識別子
148 コンテンツデータ
149 テンプレート
150 クライアントコンピューティングデバイス
151 センサー
152 トランスデューサ
153 オーディオドライバ
154 スピーカー
155 コンテンツプロバイダコンピューティングデバイス
160 サービスプロバイダデバイス
161 サービスプロバイダ自然言語プロセッサ(NLP)コンポーネント
162 サービスプロバイダインターフェース
164 クライアントデータベース
165 コンピュータネットワーク
200 第1のデータ構造体
202 第2のデータ構造体
204 第3のデータ構造体
300 メッセージフロー
500 コンピュータシステム
505 バス
510 プロセッサ
515 メインメモリ
520 リードオンリーメモリ(ROM)
525 ストレージデバイス
530 入力デバイス
535 ディスプレイ
535 タッチスクリーンディスプレイ

Claims (20)

  1. クライアントコンピューティングデバイスおよびサービスプロバイダデバイス間のパケットベースデータ通信の識別子依存オペレーション処理を提供するためのシステムであって、
    データ処理システムを備え、前記データ処理システムは、
    デバイス識別子を有するクライアントコンピューティングデバイスのセンサーによって検出される入力オーディオ信号を含むデータパケットを、前記データ処理システムのインターフェースを介して受信することと、
    前記入力オーディオ信号を解析して要求を識別することと、
    前記要求に応答して、前記要求を実行するために前記サービスプロバイダデバイスを選択することと、
    前記クライアントコンピューティングデバイスに対する仮想識別子を生成し、前記仮想識別子を前記クライアントコンピューティングデバイスの前記デバイス識別子にリンクすることと、
    ペイロードセクションで前記仮想識別子を搬送するデータパケットを前記サービスプロバイダデバイスにルーティングして、前記サービスプロバイダデバイスに、前記仮想識別子に基づいて前記クライアントコンピューティングデバイスに対する前記要求を実行するためのアカウントを確立させることと
    を行うために1つまたは複数のプロセッサを備える、システム。
  2. 前記仮想識別子の生成の前に、前記デバイス識別子が前記サービスプロバイダデバイスに対するいかなるアカウントにも関連付けられていないと決定し、
    前記デバイス識別子がいかなるアカウントにも関連付けられていないとの前記決定に応答して前記仮想識別子を生成する
    ための前記データ処理システムを備える、請求項1に記載のシステム。
  3. 前記仮想識別子の生成の前に、前記デバイス識別子が前記サービスプロバイダデバイスに対して確立されたいかなるアカウントにも関連付けられていないと決定し、
    前記アカウントが確立されていないとの前記決定に応答して前記仮想識別子を生成する
    ための前記データ処理システムを備える、請求項1に記載のシステム。
  4. 前記サービスプロバイダデバイスに対して確立されたアカウント識別子を記録するデータベースにおいて、前記クライアントコンピューティングデバイスの前記デバイス識別子の探索を実行し、
    前記探索に基づき、前記デバイス識別子が存在しないと決定し、
    存在しないとの前記決定に応答して前記仮想識別子を生成する
    ための前記データ処理システムを備える、請求項1に記載のシステム。
  5. 一時的な仮想識別子として前記仮想識別子を確立するための前記データ処理システムを備える、請求項1に記載のシステム。
  6. 前記サービスプロバイダデバイスに命令を提供し、前記サービスプロバイダデバイスに、ある期間の満了に応答して前記クライアントコンピューティングデバイスに対する前記アカウントを削除させる
    ための前記データ処理システムを備える、請求項1に記載のシステム。
  7. ハッシュ関数および暗号関数のうちの少なくとも1つを用いて前記仮想識別子を生成する
    ための前記データ処理システムを備える、請求項1に記載のシステム。
  8. リアルタイムコンテンツ選択を介して、前記要求に基づいてコンテンツアイテムを選択し、
    前記コンテンツアイテムにより示されるサービスを提供する前記サービスプロバイダデバイスを識別する
    ための前記データ処理システムを備える、請求項1に記載のシステム。
  9. 前記要求に基づいてコンテンツアイテムを選択し、
    前記クライアントコンピューティングデバイスを介した提示のための前記コンテンツアイテムを提供し、
    前記クライアントコンピューティングデバイスから指示を受信して、前記コンテンツアイテムに関連付けられるサービスを開始し、
    前記コンテンツアイテムに関連付けられた前記サービスを開始するための、前記クライアントコンピューティングデバイスからの指示に応答して、前記サービスを実行するように構成された前記サービスプロバイダデバイスを識別する
    ための前記データ処理システムを備える、請求項1に記載のシステム。
  10. 前記サービスプロバイダデバイスが前記仮想識別子を用いて前記アカウントを確立し、前記クライアントコンピューティングデバイスによりオペレーションを実行したとの指示を、前記サービスプロバイダデバイスから受信する
    ための前記データ処理システムを備える、請求項1に記載のシステム。
  11. クライアントコンピューティングデバイスおよびサービスプロバイダデバイス間のパケットベースデータ通信の識別子依存オペレーション処理を提供するための方法であって、
    1つまたは複数のプロセッサによって、デバイス識別子を有するクライアントコンピューティングデバイスのセンサーによって検出される入力オーディオ信号を含むデータパケットを、インターフェースを介して受信するステップと、
    前記1つまたは複数のプロセッサによって、前記入力オーディオ信号を解析して要求を識別するステップと、
    前記1つまたは複数のプロセッサによって、前記要求に応答して、前記要求を実行するために前記サービスプロバイダデバイスを選択するステップと、
    前記1つまたは複数のプロセッサによって、前記クライアントコンピューティングデバイスに対する仮想識別子を生成し、前記仮想識別子を前記クライアントコンピューティングデバイスの前記デバイス識別子にリンクするステップと、
    前記1つまたは複数のプロセッサによって、ペイロードセクションで前記仮想識別子を搬送するデータパケットを前記サービスプロバイダデバイスにルーティングして、前記サービスプロバイダデバイスに、前記仮想識別子に基づいて前記クライアントコンピューティングデバイスに対する前記要求を実行するためのアカウントを確立させるステップと
    を含む方法。
  12. 前記仮想識別子の生成の前に、前記デバイス識別子が前記サービスプロバイダデバイスに対するいかなるアカウントにも関連付けられていないと決定するステップと、
    前記デバイス識別子がいかなるアカウントにも関連付けられていないとの前記決定に応答して前記仮想識別子を生成するステップと
    を含む、請求項11に記載の方法。
  13. 前記仮想識別子の生成の前に、前記デバイス識別子が前記サービスプロバイダデバイスに対して確立されたいかなるアカウントにも関連付けられていないと決定するステップと、
    前記アカウントが確立されていないとの前記決定に応答して前記仮想識別子を生成する
    ステップと
    を含む、請求項11に記載の方法。
  14. 前記サービスプロバイダデバイスに対して確立されたアカウント識別子を記録するデータベースにおいて、前記クライアントコンピューティングデバイスの前記デバイス識別子の探索を実行するステップと、
    前記探索に基づき、前記デバイス識別子が存在しないと決定するステップと、
    存在しないとの前記決定に応答して前記仮想識別子を生成するステップと
    を含む、請求項11に記載の方法。
  15. 一時的な仮想識別子として前記仮想識別子を確立するステップをさらに含む、請求項11に記載の方法。
  16. 前記サービスプロバイダデバイスに命令を提供し、前記サービスプロバイダデバイスに、ある期間の満了に応答して前記クライアントコンピューティングデバイスに対する前記アカウントを削除させるステップ
    含む、請求項11に記載の方法。
  17. ハッシュ関数および暗号関数のうちの少なくとも1つを用いて前記仮想識別子を生成するステップ
    を含む、請求項11に記載の方法。
  18. リアルタイムコンテンツ選択を介して、前記要求に基づいてコンテンツアイテムを選択するステップと、
    前記コンテンツアイテムにより示されるサービスを提供する前記サービスプロバイダデバイスを識別するステップと
    を含む、請求項11に記載の方法。
  19. 前記要求に基づいてコンテンツアイテムを選択するステップと、
    前記クライアントコンピューティングデバイスを介した提示のための前記コンテンツアイテムを提供するステップと、
    前記クライアントコンピューティングデバイスから指示を受信して、前記コンテンツアイテムに関連付けられるサービスを開始するステップと、
    前記コンテンツアイテムに関連付けられた前記サービスを開始するための、前記クライアントコンピューティングデバイスからの指示に応答して、前記サービスを実行するように構成された前記サービスプロバイダデバイスを識別するステップと
    を含む、請求項11に記載の方法。
  20. 前記サービスプロバイダデバイスが前記仮想識別子を用いて前記アカウントを確立し、前記クライアントコンピューティングデバイスによりオペレーションを実行したとの指示を、前記サービスプロバイダデバイスから受信するステップ
    を含む、請求項11に記載の方法。
JP2019131863A 2016-12-30 2019-07-17 パケットベースのデータ通信のデバイス識別子依存オペレーション処理 Active JP6776411B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/395,674 2016-12-30
US15/395,674 US10437928B2 (en) 2016-12-30 2016-12-30 Device identifier dependent operation processing of packet based data communication

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017556889A Division JP6559802B2 (ja) 2016-12-30 2017-08-31 パケットベースのデータ通信のデバイス識別子依存オペレーション処理

Publications (2)

Publication Number Publication Date
JP2019197582A JP2019197582A (ja) 2019-11-14
JP6776411B2 true JP6776411B2 (ja) 2020-10-28

Family

ID=59923553

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017556889A Active JP6559802B2 (ja) 2016-12-30 2017-08-31 パケットベースのデータ通信のデバイス識別子依存オペレーション処理
JP2019131863A Active JP6776411B2 (ja) 2016-12-30 2019-07-17 パケットベースのデータ通信のデバイス識別子依存オペレーション処理

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2017556889A Active JP6559802B2 (ja) 2016-12-30 2017-08-31 パケットベースのデータ通信のデバイス識別子依存オペレーション処理

Country Status (8)

Country Link
US (3) US10437928B2 (ja)
EP (3) EP4090052B1 (ja)
JP (2) JP6559802B2 (ja)
KR (2) KR102029277B1 (ja)
CN (2) CN112883412B (ja)
DE (2) DE212017000055U1 (ja)
GB (2) GB2602598B (ja)
WO (1) WO2018125301A1 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
DE112014000709B4 (de) 2013-02-07 2021-12-30 Apple Inc. Verfahren und vorrichtung zum betrieb eines sprachtriggers für einen digitalen assistenten
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US11587559B2 (en) 2015-09-30 2023-02-21 Apple Inc. Intelligent device identification
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
JP6442642B2 (ja) * 2016-03-07 2018-12-19 株式会社日立製作所 計算機システムを管理する管理システム及び管理方法
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK201770428A1 (en) 2017-05-12 2019-02-18 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770411A1 (en) 2017-05-15 2018-12-20 Apple Inc. MULTI-MODAL INTERFACES
DK179560B1 (en) * 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
EP3636038B1 (en) 2017-06-06 2021-08-25 Telefonaktiebolaget LM Ericsson (publ) Methods for establishing a connection between a neutral host network and one or more virtual radio access networks and corresponding devices
KR102421669B1 (ko) * 2017-06-13 2022-07-15 구글 엘엘씨 미등록 리소스를 사용한 오디오-기반의 네트워크 세션 수립
US11153244B1 (en) * 2017-08-03 2021-10-19 United Services Automobile Association (Usaa) Digital conversations
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
EP3669283B1 (en) 2018-10-22 2021-04-07 Google LLC Network source identification via audio signals
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11538482B2 (en) 2019-04-25 2022-12-27 Lg Electronics Inc. Intelligent voice enable device searching method and apparatus thereof
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
CN111865558B (zh) * 2019-05-19 2024-10-15 北京骑胜科技有限公司 服务数据处理方法、装置、电子设备及存储介质
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
CN112995333B (zh) * 2021-04-02 2023-05-23 深圳市大富网络技术有限公司 一种远程文件激活方法、系统及相关装置
US12021806B1 (en) 2021-09-21 2024-06-25 Apple Inc. Intelligent message delivery
CN115022342B (zh) * 2022-05-31 2023-12-05 Oppo广东移动通信有限公司 数据处理方法、装置、电子设备和计算机可读存储介质
CN115086046B (zh) * 2022-06-20 2024-01-12 支付宝(杭州)信息技术有限公司 智能交互的安全部署方法和系统

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2317709A (en) * 1941-12-10 1943-04-27 Westinghouse Electric & Mfg Co Refrigeration apparatus
FI2405U1 (fi) * 1995-12-20 1996-04-23 Finland Telecom Oy Järjestelmä erityishinnoiteltujen puheluiden muodostamiseksi televerkossa
US6513069B1 (en) * 1996-03-08 2003-01-28 Actv, Inc. Enhanced video programming system and method for providing a distributed community network
CN1294812A (zh) * 1996-11-18 2001-05-09 Mci全球通迅公司 一种通信系统体系结构
CN1114306C (zh) * 1997-10-16 2003-07-09 汤姆森特许公司 在视频解码器系统中处理分组化数据的方法
EP0981246A4 (en) 1998-03-16 2001-05-30 Seiko Epson Corp MACHINE AND SYSTEM FOR PRINTING PHOTOGRAPHIC IMAGES, COMPUTER READABLE MEMORY MEDIUM WITH STORED PRINTING PROGRAM FOR PHOTOGRAPHIC IMAGES
US7346689B1 (en) * 1998-04-20 2008-03-18 Sun Microsystems, Inc. Computer architecture having a stateless human interface device and methods of use
US6275806B1 (en) 1999-08-31 2001-08-14 Andersen Consulting, Llp System method and article of manufacture for detecting emotion in voice signals by utilizing statistics for voice signal parameters
US6684249B1 (en) 2000-05-26 2004-01-27 Sonicbox, Inc. Method and system for adding advertisements over streaming audio based upon a user profile over a world wide area network of computers
US6857007B1 (en) 2000-08-30 2005-02-15 Bloomfield Enterprises, Llc Personal digital assistant facilitated communication system
KR100464755B1 (ko) * 2002-05-25 2005-01-06 주식회사 파수닷컴 이메일 주소와 하드웨어 정보를 이용한 사용자 인증방법
US7853255B2 (en) 2004-04-16 2010-12-14 Broadcom Corporation Digital personal assistance via a broadband access gateway
US8195133B2 (en) 2005-09-14 2012-06-05 Jumptap, Inc. Mobile dynamic advertisement creation and placement
KR101370889B1 (ko) * 2005-12-28 2014-03-10 엘지전자 주식회사 디지털 방송 시스템 및 처리 방법
CN1956459A (zh) * 2005-10-27 2007-05-02 日电(中国)有限公司 虚拟用户标识符系统和方法
US7904505B2 (en) 2005-11-02 2011-03-08 At&T Intellectual Property I, L.P. Service to push author-spoken audio content with targeted audio advertising to users
US8903053B2 (en) 2006-02-10 2014-12-02 Nuance Communications, Inc. Mass-scale, user-independent, device-independent voice messaging system
US8102812B2 (en) * 2006-03-21 2012-01-24 Motorola Mobility, Inc. Methods and apparatus for data packet transmission on a network
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US20080096507A1 (en) * 2006-10-24 2008-04-24 Esa Erola System, apparatus and method for creating service accounts and configuring devices for use therewith
JP2008226148A (ja) 2007-03-15 2008-09-25 Ricoh Co Ltd 認証システム、中継サーバ、認証方法、およびプログラム
JP2009048446A (ja) * 2007-08-21 2009-03-05 Nippon Telegr & Teleph Corp <Ntt> 要求サービス提案装置、システム、方法、及びプログラム
US8397168B2 (en) * 2008-04-05 2013-03-12 Social Communications Company Interfacing with a spatial virtual communication environment
US8145561B1 (en) 2009-01-05 2012-03-27 Sprint Communications Company L.P. Phone usage pattern as credit card fraud detection trigger
FR2942091A1 (fr) * 2009-02-10 2010-08-13 Alcatel Lucent Communication multimedia dans un environnement virtuel
US9858925B2 (en) 2009-06-05 2018-01-02 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
ATE547876T1 (de) 2009-10-28 2012-03-15 Research In Motion Ltd Automatische benutzerauthentifizierung und - identifizierung für mobile sofortnachrichtenanwendung
US8200752B2 (en) * 2009-12-23 2012-06-12 Citrix Systems, Inc. Systems and methods for policy based transparent client IP insertion
US20110166992A1 (en) * 2010-01-06 2011-07-07 Firethorn Holdings, Llc System and method for creating and managing a stored value account associated with a client unique identifier
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8375208B2 (en) * 2010-05-20 2013-02-12 Verizon Patent And Licensing Inc. Method and apparatus for providing content aggregation in support of virtual channels
US20120036075A1 (en) * 2010-08-09 2012-02-09 Microsoft Corporation Determining mobile account to apply marketplace charges
US8607054B2 (en) * 2010-10-15 2013-12-10 Microsoft Corporation Remote access to hosted virtual machines by enterprise users
US10142687B2 (en) * 2010-11-07 2018-11-27 Symphony Advanced Media, Inc. Audience content exposure monitoring apparatuses, methods and systems
US20120210276A1 (en) * 2011-02-11 2012-08-16 Sony Network Entertainment International Llc System and method to store a service or content list for easy access on a second display
WO2013001573A1 (ja) * 2011-06-29 2013-01-03 パイオニア株式会社 アカウント管理システム、アカウント管理システムの制御方法およびプログラム
US8745266B2 (en) * 2011-06-30 2014-06-03 Citrix Systems, Inc. Transparent layer 2 redirection of request to single sign in service based on applying policy to content of request
US9569439B2 (en) * 2011-10-31 2017-02-14 Elwha Llc Context-sensitive query enrichment
US9280610B2 (en) 2012-05-14 2016-03-08 Apple Inc. Crowd sourcing information to fulfill user requests
US9280973B1 (en) * 2012-06-25 2016-03-08 Amazon Technologies, Inc. Navigating content utilizing speech-based user-selectable elements
US9170834B2 (en) * 2012-10-31 2015-10-27 Google Inc. Metadata-based virtual machine configuration
CN103021403A (zh) * 2012-12-31 2013-04-03 威盛电子股份有限公司 基于语音识别的选择方法及其移动终端装置及信息系统
DE112014000709B4 (de) 2013-02-07 2021-12-30 Apple Inc. Verfahren und vorrichtung zum betrieb eines sprachtriggers für einen digitalen assistenten
EP2824891A1 (en) * 2013-07-12 2015-01-14 Twinlife SAS Distributed programmable connection method to establish peer-to-peer multimedia interactions
US9838536B2 (en) * 2013-09-30 2017-12-05 Elwha, Llc Mobile device sharing facilitation methods and systems
JP6071847B2 (ja) 2013-11-06 2017-02-01 株式会社東芝 認証システム、方法及びプログラム
JP6111186B2 (ja) 2013-12-03 2017-04-05 日本電信電話株式会社 分散情報連携システムとそのデータ操作方法及びプログラム
US20170092278A1 (en) 2015-09-30 2017-03-30 Apple Inc. Speaker recognition
US9747926B2 (en) 2015-10-16 2017-08-29 Google Inc. Hotword recognition
US9928840B2 (en) 2015-10-16 2018-03-27 Google Llc Hotword recognition
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech

Also Published As

Publication number Publication date
GB2602598B (en) 2022-12-21
DE212017000055U1 (de) 2018-10-01
EP3739850B1 (en) 2022-11-02
GB2564506B (en) 2022-05-11
US11334713B2 (en) 2022-05-17
US10437928B2 (en) 2019-10-08
US20220335214A1 (en) 2022-10-20
EP3360311B1 (en) 2020-06-17
CN108521858B (zh) 2021-02-05
JP2019197582A (ja) 2019-11-14
CN108521858A (zh) 2018-09-11
US20180189258A1 (en) 2018-07-05
CN112883412A (zh) 2021-06-01
JP6559802B2 (ja) 2019-08-14
KR102029277B1 (ko) 2019-10-07
EP4090052A1 (en) 2022-11-16
GB2602598A (en) 2022-07-06
KR20180091708A (ko) 2018-08-16
EP3739850A1 (en) 2020-11-18
DE112017000169T5 (de) 2018-08-23
CN112883412B (zh) 2024-09-06
WO2018125301A1 (en) 2018-07-05
EP3360311A1 (en) 2018-08-15
KR20190114023A (ko) 2019-10-08
JP2019506642A (ja) 2019-03-07
KR102161681B1 (ko) 2020-10-05
EP4090052B1 (en) 2024-08-28
US20190392033A1 (en) 2019-12-26
GB2564506A (en) 2019-01-16
GB202204190D0 (en) 2022-05-11
GB201803235D0 (en) 2018-04-11

Similar Documents

Publication Publication Date Title
JP6776411B2 (ja) パケットベースのデータ通信のデバイス識別子依存オペレーション処理
US10957326B2 (en) Device identifier dependent operation processing of packet based data communication
JP7471333B2 (ja) 音声起動されたデータ・パケットのデータ構造プーリング
US10917404B2 (en) Authentication of packetized audio signals

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190815

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200827

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200907

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201007

R150 Certificate of patent or registration of utility model

Ref document number: 6776411

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250