様々な実施形態は、ユーザを代表して自然言語要求を実行するためにソーシャルメディア対話から推論される自然言語に関する知識を使用する技術を対象とする。ソーシャルネットワーキングシステムは、個人、ビジネスエンティティ、商取引項目(例えば、製品、サービス)、および他のものの表現を含むことができる。ソーシャルネットワーキングシステムのユーザは、自然言語を使用してこれらの表現と対話し、これらの表現を参照することができる。これらの対話および参照は、自然言語トークンが表現の指示対象と共通してどのように関連付けられるかを推測するために使用され得る。ソーシャルネットワーキングシステム内のものの表現による自然言語トークンと物事との関係の理解は、自然言語で表現されたユーザ要求を解釈し、それによって自然言語要求の実行に使用される。自然言語学習は、ソーシャルネットワーキングシステムとの通常の対話の一環として、ソーシャルネットワーキングシステムのユーザによって生成されたデータセット上で実行され得るので、自然言語の使用に関する膨大な量のデータが自動的に生成され得る。結果として、実施形態は、自然言語学習の手頃な価格、自然言語処理(NLP)の性能、および自然言語を使用して行われる対話から利益を得ることができるソフトウェアの使い易さを改善することができる。
以下では図面を参照し、図面では、類似の要素は、全体を通して同様の参照符号を用いて示している。以下の説明では、その完全な理解を与えるため、説明を目的として、様々な具体的詳細について記載している。しかしながら、これら特定の詳細を省いても、新規な実施形態を実施できることは明らかであろう。一方で、周知の構造およびデバイスについては、その説明を容易とするために、ブロック図の形式で示している。その意図は、請求項に係る主題に矛盾しないあらゆる変更、均等物、および代替案を包括することである。
なお、本明細書で使用される場合の「a」および「b」および「c」および同様の記号は、任意の正の整数を表す変数であるということに留意すべきである。従って、例えば、あるインプリメンテーションで、値をa=5と設定している場合は、コンポーネント122−1〜122−aとして示されたコンポーネント122の完全なセットは、コンポーネント122−1、122−2、122−3、122−4、および122−5を含むことができる。実施形態は、これに限定されない。
図1は、自然言語要求システム100に関するブロック図を示す。一実施形態において、自然言語要求システム100は、1つまたは複数のコンポーネントを含むソフトウェアアプリケーションを有するコンピュータ実装システムを備える。図1に示す自然言語要求システム100は、あるトポロジにおいて制限された数の要素を有しているが、自然言語要求システム100は、所与の実装形態に関して所望されるように、代替トポロジにおいてより多くのまたはより少ない要素を含み得ることが理解されよう。
モバイルデバイス120は、コンピュータシステムを用いたNLPインタフェースに対する好ましいインタフェースと、NLPインタフェースが特に好ましいとするデバイスとの両方であり得る。モバイルデバイス120は、パーソナルコンピュータ(PC)のような固定デバイスには利用できないか、または典型的には関連付けられていないユーザに関する重要な情報(例えば、現在のロケーション、ロケーション履歴、コンタクト)にアクセスすることができる。モバイルデバイス120は、プログラムの能力を表す直感的かつよく機能する視覚的ユーザインタフェースの作成を制限する、(フルキーボードの欠如など)限られた画面スペースと制限された入力方法を有する。したがって、モバイルデバイス120は、自然言語で表現され得るテキストコマンドまたは音声コマンドに基づく全般的なインタフェースを使用することによって改善され得る。
自然言語コマンドは、ビジネスとの軽い対話に関連するタスクの入力に特に適している。例えば、長い文書の編集は、複雑なテキスト編集インタフェースの使用を正当な理由とするのには十分に複雑であり得る。対照的に、単純なビジネス対話の要求は、短い自然言語要求で表現するのに十分な程度に単純であり、ユーザを代表して自動的に実行され得る。映画のチケットを購入したり、レストランでテーブルを予約したり、タクシーを手配したりするのは、たとえば、人数、おおよその時間、およびロケーションの少数の入力のみに依存する。特に、これらの要求を処理する最も複雑な部分は、どのタイプのプロバイダと、そのタイプの特定のプロバイダが要求に対して適しているかを判断することから成る。「ゴッドファーザーを午後7時ごろに見るための2枚のチケット」の要求は、NLPシステムが「ゴッドファーザー」が映画であり、かつ映画を見るためにどのような種類のビジネスがチケットを提供するかを決定すると、映画チケットを購入するための既存の電子インタフェースに従って提供される。ソーシャルメディアは、日常の企業取引およびメディアの消費(レストランでの食事をすること、映画を見ることなど)での会話で頻繁に使用されるため、ソーシャルネットワーキングシステムが提供する言語の例は、これらの要求を処理するのに適している。
モバイルデバイス120は、ネットワークトラフィックを交換するために無線送信を使用してサーバーデバイスと通信することができる。ユーザ要求190の実行に含ませることができるような、ネットワークトラフィックを交換することは、ネットワークインタフェースコントローラ(NIC:Network Interface Controller)を介してネットワークトラフィックを送受信することを含む。NICは、モバイルデバイス120などのコンピュータデバイスをコンピュータネットワークに接続するハードウェアコンポーネントを備える。NICは、ソフトウェアアプリケーションがNICにアクセスしてNICを使用することを可能にするソフトウェアネットワークインタフェースと関連付けられてもよい。ネットワークトラフィックは、データリンクを介して送信される信号としてコンピュータネットワークを介して受信されてもよい。これらの信号をキャプチャし、それらを解釈することによってネットワークトラフィックを受信することができる。NICは、コンピュータネットワークを介してネットワークトラフィックを受信し、ネットワークインタフェースのアプリケーションプログラミングインタフェース(API:Application Programming Interface)を使用してソフトウェアアプリケーションがアクセス可能なメモリストレージにネットワークトラフィックを転送する。
モバイルデバイス120は、セルラーシステム130にアクセスするためのセルラーインタフェースと、Wi−Fiアクセスポイント140にアクセスするためのWi−Fiインタフェースとを含む。モバイルデバイス120は、セルラー信号135を使用してセルラーシステム130にアクセスする。セルラーシステム130は、データアクセスを含むセルラーネットワークであってもよい。モバイルデバイス120は、Wi−Fi信号145を使用して1つまたは複数のWi−Fiアクセスポイント140にアクセスする。Wi−Fiアクセスポイント140は、複数の異なるオペレータによって提供されてもよい。いくつかのWi−Fiアクセスポイント140は、国内のインターネット接続に基づいてモバイルデバイス120のユーザによって操作されるホームWi−Fiネットワークなどの個人的なものであってもよい。いくつかのWi−Fiアクセスポイント140は、公共圏内で無料、無償、または有料のWi−Fiアクセスを提供するビジネスエンティティによって提供されてもよい。
モバイルデバイス120は、自然言語ユーザ要求190を受信し、ユーザ要求190に対する解決策を決定し、ビジネスコマースフロントエンドサーバー170とのローカル主導型対話(local−driven interaction)125を使用してユーザ要求190を実行する解決策を実行する。ビジネスコマースフロントエンドサーバー170は、ユーザとの商取引を行うためのユーザデバイスへの自動アクセスを提供するサーバーであり得る。例えば、映画館チェーンまたは映画チケットサービスのためのビジネスコマースフロントエンドサーバー170は、映画チケットを購入するためのAPIを提供することができる。レストランまたはレストランテーブル予約サービスのためのビジネスコマースフロントエンドサーバー170は、テーブルを予約するためのAPIを提供することができる。タクシー会社のビジネスコマースフロントエンドサーバー170は、乗車をスケジューリングするためのAPIを提供することができる。
いくつかの事例では、モバイルデバイス120は、モバイルデバイス120にローカルに格納されたデータのみに基づいてユーザ要求190を解釈することができる。このデータは、デバイス上で生成された情報(例えば、モバイルデバイスのロケーション)を含み得るとともに、データは、自然言語トークンと、モバイルデバイス120上にキャッシュされ得る、ビジネス、製品、サービス、および他のエンティティを表すオブジェクトとの間の関係を表すソーシャル言語サーバー150から受け取った知識も含み得る。これらの事例において、モバイルデバイス120がビジネスコマースフロントエンドサーバー170とローカル主導型対話125を実行することにより、ユーザ要求190は、デバイスに対してローカルのままとなる。
他の事例において、モバイルデバイス120は、ソーシャル言語サーバー150に格納されるか、またはソーシャル言語サーバー150にアクセス可能な自然言語データおよびエンティティデータを使用することによってよりよく機能し得る。ソーシャル言語サーバー150は、ビジネス、製品、およびサービス、およびそれらのビジネス、製品、およびサービスが自然言語においてどのように参照されているかに関連するかなり多量のデータを格納するか、またはアクセスする。このため、ユーザ要求190は、解釈および解決策の作成のために、ソーシャル言語サーバー150に転送される。いくつかの実施形態では、決定された解決策をモバイルデバイス120に戻して、モバイルデバイス120が、決定された解決策によりユーザ要求190を実行するローカル主導型対話125を実行できるようにすることができる。他の実施形態では、決定された解決策は、ユーザ要求190を実行するサーバー主導型対話(server−driven interaction)165を実行することによって、ソーシャル言語サーバー150によって実行されてもよい。
いずれの実施形態においても、様々な状況において、モバイルデバイス120は、セルラーシステム130およびWi−Fiアクセスポイント140のいずれかまたは両方を用いて、ソーシャル言語サーバー150と通信する。同様に、セルラーシステム130およびWi−Fiアクセスポイント140のいずれかまたは両方は、モバイルデバイス120とビジネスコマースフロントエンドサーバー170との間の対話のために使用することができる。
モバイルデバイス120および/またはソーシャル言語サーバー150は、ソーシャルネットワーキングシステムにおける対話から生成された知識を使用することができる。このため、自然言語要求システム100は、ユーザが例えば適切なプライバシー設定を行うことによりアクションが自然言語要求システム100によって記録されるか、または他のシステム(サードパーティシステム)と共有されることをオプトインまたはオプトアウトすることを可能にする認可サーバー(または他の適切なコンポーネント)を含む。ユーザのプライバシー設定は、ユーザに関連するどのような情報が記録されるか、ユーザに関連する情報がどのようにして記録されるか、ユーザに関連する情報がいつ記録されるか、ユーザに関連する情報を誰が記録するか、ユーザに関連する情報が誰と共有されるか、およびどのような目的でユーザに関連する情報が記録されまたは共有されるかを決定することができる。認可サーバーまたは他の認可コンポーネントは、ブロッキング、データハッシング、匿名化、または他の適切な技術を適切に用いて自然言語要求システム100のユーザおよびソーシャルネットワーキングシステムの他の要素の1つまたは複数のプライバシー設定を可能にするように用いることができる。例えば、ソーシャルネットワーキングシステムのユーザとソーシャルネットワーキングシステムとの間の対話は、自然言語の関係を学習するために使用されるが、これらの対話は、学習プロセスの前またはその一部として匿名化されてもよい。
図2は、例示的なオブジェクトグラフ200を示している。特定の実施形態においては、ソーシャルネットワーキングサービスは、1つまたは複数のオブジェクトグラフを1つまたは複数のデータストア内に格納することができる。特定の実施形態においては、オブジェクトグラフ200は、複数のエンティティノード210を含む。オブジェクトグラフ200は、ノード同士をつなげる複数のエッジ220を含み、各エッジは、関係性を示し、かつその関係性に対する記述子と関連付けられる。オブジェクトグラフ200は、エンティティに関連付けされたトークンを示す複数の言語トークンタグ230を含む。特定の実施形態においては、ソーシャルネットワーキングサービス、クライアントシステム、サードパーティシステム、または他のシステムまたはデバイスは、適切なアプリケーションに関してオブジェクトグラフ200および関連したソーシャルグラフ情報にアクセスすることができる。オブジェクトグラフ200のノードおよびエッジは、データオブジェクトとして、たとえば(ソーシャルグラフデータベースなどの)データストア内に格納されることが可能である。そのようなデータストアは、オブジェクトグラフ200のノードまたはエッジの1つまたは複数の検索可能なまたはクエリ可能なインデックスを含むことができる。
特定の実施形態においては、エンティティノード210は、ソーシャルネットワーキングサービスのユーザに対応することができる。限定ではなく、例として、ユーザは、ソーシャルネットワーキングサービスと、またはソーシャルネットワーキングサービスを介して対話または通信する個人(人間のユーザ)、エンティティ(たとえば、企業、ビジネス、もしくはサードパーティアプリケーション)、または(たとえば、個人もしくはエンティティの)グループであることが可能である。特定の実施形態においては、あるユーザがソーシャルネットワーキングサービスとのアカウントに登録した場合には、ソーシャルネットワーキングサービスは、そのユーザに対応するエンティティノード210を作成し、そのエンティティノード210を1つまたは複数のデータストア内に格納することができる。本明細書において記述されているユーザおよびエンティティノード210は、適切な場合には、登録されているユーザ、および登録されているユーザに関連付けられているエンティティノード210を指すことができる。追加として、または代替として、本明細書において記述されているユーザおよびエンティティノード210は、適切な場合には、ソーシャルネットワーキングサービスに登録されていないユーザを指すことができる。特定の実施形態においては、エンティティノード210は、ユーザによって提供された情報、またはソーシャルネットワーキングサービスを含むさまざまなシステムによって収集された情報に関連付けられることが可能である。限定ではなく、例として、ユーザは、自分の名前、プロフィール画像、連絡先情報、生年月日、性別、婚姻状況、家族状況、勤務先、学歴、好み、関心、またはその他の人口統計学的情報を提供することができる。特定の実施形態においては、エンティティノード210は、ユーザに関連付けられている情報に対応する1つまたは複数のデータオブジェクトに関連付けられることが可能である。特定の実施形態においては、エンティティノード210は、1つまたは複数のウェブページに対応することができる。
特定の実施形態においては、コンセプトノード215は、コンセプトに対応することができる。限定ではなく、例として、コンセプトは、場所(たとえば、映画館、レストラン、ランドマーク、もしくは都市など)、ウェブサイト(たとえば、ソーシャルネットワーキングサービスに関連付けられているウェブサイト、もしくはウェブアプリケーションサーバーに関連付けられているサードパーティウェブサイトなど)、エンティティ(たとえば、人、企業、グループ、スポーツチーム、もしくは有名人など)、ソーシャルネットワーキングサービス内に、もしくはウェブアプリケーションサーバーなどの外部サーバー上に配置されることが可能であるリソース(たとえば、オーディオファイル、ビデオファイル、デジタル写真、テキストファイル、構造化されたドキュメント、もしくはアプリケーションなど)、物的もしくは知的財産(たとえば、彫塑、絵画、映画、ゲーム、曲、アイディア、写真、もしくは執筆作品など)、ゲーム、アクティビティ、アイディアもしくは理論、別の適切なコンセプト、または複数のそのようなコンセプトに対応することができる。コンセプトノード215は、ユーザによって提供されたコンセプトの情報、またはソーシャルネットワーキングサービスを含むさまざまなシステムによって収集された情報に関連付けられることが可能である。限定ではなく、例として、コンセプトの情報は、名前もしくはタイトル、1つもしくは複数のイメージ(たとえば、本の表紙のイメージ)、ロケーション(たとえば、住所もしくは地理的ロケーション)、(URLに関連付けられることが可能である)ウェブサイト、連絡先情報(たとえば、電話番号もしくはEメールアドレス)、その他の適切なコンセプト情報、またはそのような情報の任意の適切な組合せを含むことができる。特定の実施形態においては、コンセプトノード215は、コンセプトノード215に関連付けられている情報に対応する1つまたは複数のデータオブジェクトに関連付けられることが可能である。特定の実施形態においては、コンセプトノード215は、1つまたは複数のウェブページに対応することができる。
特定の実施形態においては、オブジェクトグラフ200内のノードは、ウェブページ(「プロフィールページ」と呼ばれる場合もある)を表すこと、またはウェブページによって表されることが可能である。プロフィールページは、ソーシャルネットワーキングサービスによってホストされること、またはソーシャルネットワーキングサービスにとってアクセス可能であることが可能である。プロフィールページは、サードパーティサーバーに関連付けられているサードパーティウェブサイト上にホストされることも可能である。限定ではなく、例として、特定の外部ウェブページに対応するプロフィールページは、その特定の外部ウェブページであることが可能であり、そのプロフィールページは、特定のコンセプトノード215に対応することができる。プロフィールページは、その他のユーザのうちのすべてまたは選択されたサブセットによって閲覧できることが可能である。限定ではなく、例として、エンティティノード210は、対応するユーザプロフィールページを有することができ、そのユーザプロフィールページにおいては、対応するユーザが、コンテンツを付加すること、言明を行うこと、またはその他の形で自分自身を表現することが可能である。限定ではなく、別の例として、コンセプトノード215は、対応するコンセプトプロフィールページを有することができ、そのコンセプトプロフィールページにおいては、1人または複数のユーザが、特にコンセプトノード215に対応するコンセプトに関連して、コンテンツを付加すること、言明を行うこと、または自分自身を表現することが可能である。
特定の実施形態においては、コンセプトノード215は、サードパーティシステムによってホストされているサードパーティウェブページまたはリソースを表すことができる。サードパーティウェブページまたはリソースは、数ある要素の中でも、コンテンツ、選択可能なもしくはその他のアイコン、または、アクションもしくはアクティビティを表す(たとえば、JAVASCRIPT(登録商標)、AJAX、もしくはPHPコードで実装されることが可能である)その他の対話可能なオブジェクトを含むことができる。限定ではなく、例として、サードパーティウェブページは、「いいね!」、「チェックイン」、「食べる」、「推奨する」、または別の適切なアクションもしくはアクティビティなどの選択可能なアイコンを含むことができる。サードパーティウェブページを閲覧しているユーザは、それらのアイコンのうちの1つ(たとえば、「食べる」)を選択することによってアクションを実行して、クライアントシステムに、そのユーザのアクションを示すメッセージをソーシャルネットワーキングサービスに送らせることができる。そのメッセージに応答して、ソーシャルネットワーキングサービスは、ユーザに対応するエンティティノード210と、サードパーティウェブページまたはリソースに対応するコンセプトノード215との間においてエッジ(たとえば、「食べる」エッジ)を作成して、エッジ220を1つまたは複数のデータストア内に格納することができる。
特定の実施形態においては、オブジェクトグラフ200内の1対のノードが、1つまたは複数のエッジ220によって互いにつながることが可能である。1対のノードをつなげるエッジ220は、それらの1対のノードの間における関係を表すことができる。特定の実施形態においては、エッジ220は、1対のノードの間における関係に対応する1つまたは複数のデータオブジェクトまたは属性を含むことまたは表すことが可能である。限定ではなく、例として、第1のユーザは、第2のユーザが第1のユーザの「友達」であるということを示すことができる。この表示に応答して、ソーシャルネットワーキングサービスは、「友達要求」を第2のユーザに送ることができる。第2のユーザがその「友達要求」を承認した場合には、ソーシャルネットワーキングサービスは、オブジェクトグラフ200内で第1のユーザのエンティティノード210を第2のユーザのエンティティノード210につなげるエッジ220を作成して、エッジ220をソーシャルグラフ情報としてデータストアのうちの1つまたは複数の中に格納することができる。図2の例においては、オブジェクトグラフ200は、ユーザ「アマンダ」のエンティティノード210と、ユーザ「エドウィン」のエンティティノード210との間における友達関係を示すエッジ220と、ユーザ「フレッド」のエンティティノード210と、ユーザ「ミルドレッド」のエンティティノード210との間における友達関係を示すエッジとを含む。本開示は、特定のエンティティノード210同士をつなげる特定の属性を伴う特定のエッジ220を記述している、または示しているが、本開示は、エンティティノード210同士をつなげる任意の適切な属性を伴う任意の適切なエッジ220を想定している。限定ではなく、例として、エッジ220は、友達関係、家族関係、ビジネス関係もしくは雇用関係、顧客関係、ユーザ関係、ファン関係、フォロワー関係、ビジター関係、サブスクライバ関係、上下関係、互恵的関係、非互恵的関係、別の適切なタイプの関係、または複数のそのような関係を表すことができる。その上、本開示は一般に、ノード同士をつながっているものとして記述しているが、本開示はまた、ユーザ同士またはコンセプト同士をつながっているものとして記述している。本明細書においては、つながっているユーザ同士またはコンセプト同士への言及は、適切な場合には、1つまたは複数のエッジ220によってオブジェクトグラフ200内でつながっているそれらのユーザ同士またはコンセプト同士に対応するノード同士を指すことができる。
特定の実施形態においては、エンティティノード210とコンセプトノード215との間におけるエッジ220は、エンティティノード210に関連付けられているユーザによって、コンセプトノード215に関連付けられているコンセプトに対して実行された特定のアクションまたはアクティビティを表すことができる。限定ではなく、例として、図2において示されているように、ユーザは、コンセプトに対して「いいね!を表明すること」、「通うこと」、「プレイすること」、「聴くこと」、「料理すること」、「勤務すること」、「観ること」、または「使用すること」を行った可能性があり、それらのそれぞれは、エッジタイプまたはサブタイプに対応することができる。コンセプトノード215に対応するコンセプトプロフィールページは、たとえば、選択可能な「チェックイン」アイコン(たとえば、クリック可能な「チェックイン」アイコンなど)、または選択可能な「お気に入りに追加」アイコンを含むことができる。同様に、ユーザがこれらのアイコンをクリックした後に、ソーシャルネットワーキングサービスは、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジまたは「チェックイン」エッジを作成することができる。限定ではなく、別の例として、あるユーザ(ユーザ「アマンダ」)が、特定のアプリケーション(SuperCar、タクシー会社のSuperCar用の例示的なモバイルアプリケーション)を使用して乗車を予約する場合がある。このケースにおいては、ソーシャルネットワーキングサービスは、そのユーザに対応するエンティティノード210と、ユーザが使用したアプリケーションを示すアプリケーションに対応するコンセプトノード215との間において、(図2に示されているような)「使用した」エッジ220を作成する。本開示は、エンティティノード210とコンセプトノード215とをつなげる特定の属性を伴う特定のエッジ220について記述しているが、本開示は、エンティティノード210とコンセプトノード215とをつなげる任意の適切な属性を伴う任意の適切なエッジ220を想定している。さらに、本開示は、単一の関係を表すエンティティノード210とコンセプトノード215との間におけるエッジについて記述しているが、本開示は、1つまたは複数の関係を表すエンティティノード210とコンセプトノード215との間におけるエッジを想定している。限定ではなく、例として、エッジ220は、ユーザが特定のコンセプトに対して「いいね!」を表明しているということ、およびその特定のコンセプトを使用したということの両方を表すことができる。あるいは、別のエッジ220は、エンティティノード210とコンセプトノード215との間におけるそれぞれのタイプの関係(または、単一の関係が複数集まったもの)を表すことができる。
特定の実施形態においては、ソーシャルネットワーキングサービスは、オブジェクトグラフ200内でエンティティノード210とコンセプトノード215との間においてエッジ220を作成することができる。限定ではなく、例として、(たとえば、ユーザのクライアントシステムによってホストされているウェブブラウザまたは専用のアプリケーションを使用することなどによって)コンセプトプロフィールページを閲覧しているユーザは、「いいね!」アイコンをクリックまたは選択することにより、コンセプトノード215によって表されているコンセプトを自分が気に入っているということを示すことができ、その「いいね!」アイコンをクリックまたは選択することは、ユーザのクライアントシステムに、そのコンセプトプロフィールページに関連付けられているそのコンセプトをそのユーザが気に入っているということを示すメッセージをソーシャルネットワーキングサービスに送ることができる。そのメッセージに応答して、ソーシャルネットワーキングサービスは、そのユーザとコンセプトノード215との間における「いいね!」エッジ220によって示されているように、そのユーザに関連付けられているエンティティノード210とコンセプトノード215との間においてエッジ220を作成することができる。特定の実施形態においては、ソーシャルネットワーキングサービスは、エッジ220を1つまたは複数のデータストア内に格納することができる。特定の実施形態においては、エッジ220は、特定のユーザアクションに応答してソーシャルネットワーキングサービスによって自動的に形成されることが可能である。限定ではなく、例として、第1のユーザが、画像をアップロードすること、映画を観ること、または曲を聴くことを行った場合には、エッジ220は、第1のユーザに対応するエンティティノード210と、それらのコンセプトに対応するコンセプトノード215との間において形成されることが可能である。本開示は、特定の様式で特定のエッジ220を形成することについて記述しているが、本開示は、任意の適切な様式で任意の適切なエッジ220を形成することを想定している。
特定の実施形態では、関連付けられたトークン230は、ノードに関連付けられてもよい。エンティティノード210またはコンセプトノード215に関連付けられたトークンは、トークンがノードを記述していることを示すことができる。ノードは、提供可能な製品、提供可能なサービス、またはノードによって表されるエンティティが提供するものを示すその他の単語について記述する。ノードは、ノードを参照して使用される任意の1つまたは複数の単語を含むトークンに関連付けられる。例えば、タクシーサービスを提供する会社「GoCo」に関するエンティティノード210は、トークン「タクシー」、「キャブ」または「乗車」で記述されてもよい。トークンのエンティティノード210との関連付けは、管理者によってエンティティノード210を記述するように割り当てられる。例えば、管理者は、GoCoタクシー会社用のページを作成または管理し、かつエンティティノード210にトークン「タクシー」を割り当てる。代替的または追加的に、トークンのエンティティノード210との関連付けは、ソーシャルネットワーキングサービスとのユーザ対話に基づく機械学習によって割り当てられてもよい。たとえば、ユーザは、「GoCoの乗車は素晴らしかった」、「GoCoの最初の乗車はスムーズだった」などの文章で、会話メッセージングまたは会社用のページなどにおいてGoCo社にコメントすることができ、「乗車」という単語の他のインスタンスを「GoCo」と共に使用して、GoCo社がトークン「乗車」によって表されるように「乗車」の概念に関連付けられていることを自然言語要求システム100が学習するのを促進する。その後、単語「乗車」を含む要求の実行は、GoCo社に関するエンティティオブジェクト210からの情報に基づくものとすることができる。
図3は、一実施形態の自然言語要求のためのモバイルデバイス120を示す。モバイルデバイス120は、複数のコンポーネントを含む。モバイルデバイス120は、自然言語ユーザ要求を受信し、ソーシャルネットワーキング対話から生成されたオブジェクトデータを使用して自然言語ユーザ要求を実行するように全体的に動作する。モバイルデバイス120は、ユーザサービスコンポーネント330、ローカルオブジェクトリレーションコンポーネント340、およびリモートオブジェクトリレーションコンポーネント350を含む。
ユーザサービスコンポーネント330は、モバイルデバイス120上の自然言語ユーザ要求190を受信するように動作する。自然言語ユーザ要求190は、テキストストリング、オーディオレコーディング、ビデオレコーディングとして受信されるか、またはユーザからの入力を受け取るための他の技術に従って受信される。自然言語ユーザ要求は、モバイルデバイス120用のハードウェアまたはソフトウェアキーボードデバイスで入力されてもよい。自然言語ユーザ要求は、モバイルデバイス120用のマイクロフォンデバイスによって取り込まれてもよい。自然言語ユーザ要求は、モバイルデバイス120用のカメラデバイスによって取り込まれてもよい。ユーザサービスコンポーネント330は、ユーザ要求190をローカルオブジェクトリレーションコンポーネント340およびリモートオブジェクトリレーションコンポーネント350のうちの一方または両方に渡すことができる。
自然言語ユーザ要求190は、モバイルデバイス120上で実行されるメッセージングプログラムによって受信され得る。メッセージングプログラムは、ソーシャルネットワーキングサービス用のメッセージングプログラム等の一般的なメッセージングプログラムとすることができる。メッセージングプログラムは、2人以上のユーザが1対1の会話に参加するユーザ対ユーザのメッセージング機能を含むことができる。メッセージングプログラムは、ユーザがビジネスのための自動のまたは人間の代表者にメッセージを送ることができる消費者対ビジネスのメッセージング機能を含むことができる。自然言語ユーザ要求190は、ユーザ対ユーザのメッセージングまたは消費者対ビジネスのメッセージングのいずれかで検出されてもよい。
ユーザ対ユーザのメッセージングは、ユーザ要求190に対する暗黙のプロンプトを含むことができる。例えば、第1のユーザは、レストラン予約を行い、映画チケットを注文し、あるいは商業取引を開始することができることを第2のユーザにコメントすることができる。ユーザサービスコンポーネント330は、暗黙のプロンプトを検出し、ユーザの一方または両方に暗黙のユーザ要求190を実行するように提案することができる。ユーザサービスコンポーネント330は、暗黙のユーザ要求190が検出されたユーザ対ユーザのメッセージング会話の参加者に基づいて、サービスの参加者の少なくとも一部を決定することができる。メッセージング会話の参加者について既知の情報は、ユーザ要求190を満たす構成において使用することができる。例えば、参加者のいずれかによって推論された、または明示的に表明されたユーザ選好を、サービスプロバイダの選択に使用することができる。あるタイプのサービス、サービスプロバイダ(例えば、ビジネス)、または要求を満たす他の要素の選択に対する信用は、要求側ユーザとの関連性だけでなく、メッセージング会話における他の参加者との関連性に基づいて決定されてもよい。
いくつかの実施形態では、消費者対ビジネスのメッセージング機能は、コンタクトしているビジネスが自然言語要求システム100によって要求を満たす一部として自動的に決定される全般的な要求入力インタフェースを介して実行されてもよい。全般的な要求入力インタフェースは、ユーザ要求190を満たす一部として関与する消費者対ビジネスのメッセージングに切り替えることができる。例えば、ユーザは医師の予約を要求することができ、予約を要求する初期段階は、自然言語要求システム100によって自動的に実行され、続いて、ユーザは、予定を行うための追加の要素を実行するために、選択された医師のオフィスの代表者とメッセージング会話を行うことができる。
いくつかの事例では、消費者は、ビジネスに関する自動のまたは人間の代表者とのメッセージング会話に関与することによってビジネスを選択することができる。ユーザは、特に好きなビジネス、好みのビジネス、ビジネスに関する検索、ビジネスのリストの閲覧を選択するか、またはそうでなければ他の方法でのビジネスを決定することができる。ユーザはビジネスにメッセージを送ることを選択することができる。自然言語ユーザ要求190は、ビジネスとのメッセージングにおいて検出されてもよい。自然言語ユーザ要求190は、ビジネスと共に開始され実行され、ユーザがメッセージングのために選択したビジネスは、ユーザの消費者対ビジネスメッセージングの開始に基づいてユーザ要求190を満たすように自動的に選択される。
ローカルオブジェクトリレーションコンポーネント340は、自然言語ユーザ要求190を、モバイルデバイス120に格納された1つまたは複数のローカルオブジェクト380に関連付けることができる。ローカルオブジェクト380は、モバイルデバイスに対してローカルなローカルオブジェクトストア360に記憶され得る。ローカルオブジェクト380は、ユーザ要求190の受信に先立ってモバイルデバイス120に記憶され、ユーザ要求190に応答して検索されて記憶されない。ローカルオブジェクトストア360は、ソーシャルネットワーキングシステムのオブジェクトグラフ200からのオブジェクトのキャッシュを少なくとも部分的に含む。1つまたは複数のローカルオブジェクト380は、オブジェクトグラフ200からキャッシュされたオブジェクトを含むことができる。ローカルオブジェクトストア360は、オブジェクトグラフ200に表されていないオブジェクトも記憶することができ、1つまたは複数のローカルオブジェクト380は、オブジェクトグラフ200に表されていないオブジェクトストア360からのオブジェクトを含むことができる。ローカルオブジェクトストア360以外のモバイルデバイス120上の他のソースから1つまたは複数のローカルオブジェクト380を取得することができる。例えば、モバイルデバイス120の現在のロケーションを示すオブジェクト(これにより、モバイルデバイス120のユーザのロケーションを推測する)は、モバイルデバイス120のジオロケーションコンポーネントから取得することができ、ジオロケーションコンポーネントは、グローバルポジショニングシステム(GPS)検出、Wi−Fi検出、セルサイト検出、ブルートゥース検出、またはデバイスのロケーションを検出するための任意の他の技術を用いる。
ローカルオブジェクト380は、モバイルデバイス120に格納されたローカルデータに基づいて取得または生成することができる。ローカルデータは、モバイルデバイス120上の名前の他のリポジトリのコンタクトリストを含むことができる。例えば、適切な名詞または名前として認識することができる1つの単語または複数の単語は、モバイルデバイス120上のコンタクトリストまたは名前の他のリポジトリと照合されてもよい。同様に、コンタクトリスト内の他の情報は、電話番号がユーザ要求190とコンタクトリストの両方において特定されているように、エンティティを特定する際に使用することができる。さらに、コンタクトリストのエントリとオブジェクトグラフ200内のオブジェクトとの間の関連付けは、共通の電話番号が両方に割り当てられていることに基づいて確認または強化することができる。適切な名詞は、地理的に位置するエンティティおよび地名、特にモバイルデバイス120の現在のロケーションに地理的に近接して地理的に位置するエンティティおよび地番と照合することができる。ローカルデータは、モバイルデバイス120で実行される最近の検索を含むことができる。
ローカルオブジェクトリレーションコンポーネント340は、1つまたは複数のローカルオブジェクト380のそれぞれの信頼度レベルを決定することができる。オブジェクトに対する信頼度レベルは、オブジェクトがユーザ要求の自然言語の意味に対応し、かつオブジェクトがユーザ要求に対するユーザの意図に対応しているという確信度を表し得る。信頼度レベルは、整数または実数として表すことができる。信頼度レベルは確率として表され、確率は予測精度を示す。
例えば、「ここからモールへのタクシーを必要とする」というテキスト入力に基づくユーザ要求は、「ここ」に基づいてユーザの現在のロケーションを表すオブジェクトをトークンに割り当て、かつ、「モール」に基づいて複数のモールのうちの1つのモールを表すオブジェクトをトークンに割り当てる。特定のモールは、ユーザのロケーション、ユーザが訪問した1つまたは複数のモールを示すユーザに関するロケーション履歴、オブジェクトグラフ内のモールおよび/または店舗とのユーザの関連付け、およびユーザがどのモールを「モール」とみなすかに関連する他の情報の1つまたは複数(組み合わせを含む)に従って選択され得る。単語「ここ」は、ユーザの現在のロケーションと強く相関し、したがって高い信頼度を有する。ローカルオブジェクトリレーションコンポーネント340は、単語「モール」が、「モール」のサービストークンに相当すると決定するが、特定のモールが参照されている情報または対立情報がほとんどないため、特定のモールに対応する特定のオブジェクトの連結は、信頼度が低い。
自然言語要求システム100は、モバイルデバイス120にローカルな情報に基づいて決定されたオブジェクト関係に依存することに十分に信頼性のあるオブジェクト割り当てと、そのようなオブジェクト関係に依存することが不十分に信頼性のあるオブジェクト割り当てとを区別する定義された信頼閾値を有する。ローカルオブジェクトリレーションコンポーネント340は、1つまたは複数のローカルオブジェクト380の低信頼度ローカルオブジェクトを決定する。低信頼度ローカルオブジェクトに関する信頼度レベルは、定義された信頼閾値よりも小さい。信頼閾値未満の信頼度レベルを有する低信頼度ローカルオブジェクトは、自然言語要求システム100が、モバイルデバイス120から遠隔に格納されたリソース、例えば、ソーシャルネットワーキングサービスに関するオブジェクトグラフへのアクセスを有するソーシャル言語サーバー150上に格納されたリソースを含むようにユーザ要求190に関連するオブジェクトの検索を拡張することを示す。
リモートオブジェクトリレーションコンポーネント350は、ネットワークシステムにネットワーククエリを送信してもよく、ネットワーククエリは、ネットワークシステムが自然言語ユーザ要求190をオブジェクトグラフ200と照合することを要求する。ネットワーククエリは、ユーザ要求190を含み得る。リモートオブジェクトリレーションコンポーネント350は、ネットワーククエリに応答してリモートオブジェクト390を受信して、ネットワークシステムからの低信頼度ローカルオブジェクトを置き換えることができる。リモートオブジェクト390は、ソーシャルネットワーキングサービス用のオブジェクトグラフ200内で選択されてもよい。ネットワークシステムは、ソーシャルネットワーキングサービスを実行するソーシャルネットワーキングシステムを含み、オブジェクトグラフ200は、相互リンクされたソーシャルネットワーキングオブジェクトを少なくとも部分的に含む。
オブジェクトグラフ200は、オブジェクトグラフ内のオブジェクトに対するトークンマッピングを含み、トークンマッピングは、自然言語単語と、それらの単語の意味理解と、自然言語単語とそれらの単語の意味理解との一方または両方と相関するオブジェクトとの関係を定義する。トークンマッピングは、ネットワークシステムのユーザの複数の対話から抽出されたデータに基づいてもよく、リモートオブジェクト390は、トークンマッピングに基づいて自然言語ユーザ要求190と照合される。トークンマッピングは、複数の対話において複数のユーザがトークンをオブジェクトに関連付ける頻度に基づいて生成することができる。複数の対話は、複数のユーザからネットワークシステムへの複数の自然言語ユーザ要求を含み得る。
トークンマッピングは、複数の自然言語ユーザ要求の実行に関する成功率に基づいて生成することができる。成功率は、要求の実行に対する満足度に関するネットワークシステムのユーザによる明示的な報告に基づくことができる。成功率は、ユーザサービスコンポーネント330が実行前にユーザに提案する実行方針を表示し、ユーザが受諾した場合に提案した実行方針のみを実行するなど、ユーザ要求の提案した実行を受諾または拒否するユーザの明示的な行動に基づくものであってもよい。成功率は、ユーザの自然言語要求の繰り返し使用、ユーザの同様の要求に対する自然言語要求システム100の繰り返し使用、およびユーザ要求190の実行に対する肯定的または否定的な反応の他の含意表示に(これに限定されることなく)基づく要求の実行に対するユーザの満足度の暗黙の評価に基づいてもよい。成功率は、同様に、ユーザ要求190の実行に関して使用した企業の満足度についての企業からの明示的または暗黙的な信号に基づいてもよい。
トークンマッピングは、トークンとそのビジネスとの間の関連付けに関するビジネスエンティティによる値付けに基づいてもよい。例えば、レストラン予約サービスは、「テーブル」、「予約」、「夕食」、「食べる」、および食料の購入および消費に関連する他のトークンなどのトークンと関連付けされるように値付けすることができる。自然言語要求システム100は、ビジネスエンティティに対するオブジェクトと、その関連付けに対するビジネスエンティティによる値付け額に少なくとも部分的に基づくトークンとの間の関連付けにおける信頼度を決定するように動作する。企業が、自然言語要求システム100との経験に基づいて、どのトークンがユーザを自社のビジネスに最良のガイドをするのかを学習すると、企業はそのトークンについてより高い値付けをし、それによって自然言語要求システム100の精度が向上する。
ユーザサービスコンポーネント330は、次に、リモートオブジェクト390に基づいて自然言語ユーザ要求190を実行する。1つまたは複数のローカルオブジェクト380を、ユーザ要求190の実行に使用することもできる。ソーシャル言語サーバー150から受信した1つまたは複数の追加のリモートオブジェクトも、ユーザ要求190の実行に使用することができる。
ユーザ要求190を実行することは、ビジネスエンティティと対話することを含む。ソーシャル言語サーバー150から受信したリモートオブジェクト390は、オブジェクトグラフ200において表されるビジネスエンティティに対応し得る。ビジネスエンティティに対するリモートオブジェクト390は、ビジネスエンティティに関する自動対話指示(automated interaction instructions)を含むことができる。自動対話指示は、手順、API、ネットワークアドレス、フォーマット、およびビジネスエンティティに関するビジネスコマースフロントエンドサーバー170との自動化されたコンピュータの要求実行のための他の情報を含むことができる。
ユーザサービスコンポーネント330は、自動対話指示を受信し、受信した自動対話指示に基づいてビジネスエンティティに関するネットワークサーバーとの購入および予約のうちの少なくとも1つを実行することによって、自然言語ユーザ要求190を実行する。ユーザサービスコンポーネント330は、ビジネスコマースフロントエンドサーバー170とローカル主導型対話125を行い、ローカル主導型対話125は、ビジネスエンティティに関するモバイルデバイス120とビジネスコマースフロントエンドサーバー170との間の直接通信を含む。
いくつかの事例では、自然言語要求システム100は、外部ビジネスエンティティを使用せずにユーザ要求190を実行することができる。自然言語要求システム100がメッセージング機能および/またはソーシャルネットワーキング機能を含む場合、ユーザ要求190は、メッセージングサービスおよび/またはソーシャルネットワーキングサービスの機能によって実行されてもよい。例えば、メッセージング会話に含まれる画像、ビデオ、ステッカー、または他の要素を有することにおけるユーザの関心は、自然言語ユーザ要求190に基づいて検出されてもよく、ユーザ要求190の実行は、この要素を含むことができる。いくつかの事例において、テキストの意向を示すステッカーを提示するなど、ユーザの会話のテキストと要素との間の対応に基づいて、画像、ステッカー、または他の要素が選択されて提示される。したがって、会話のテキストは、自然言語ユーザ要求190を含み得る。
同様に、実行されるソーシャルネットワーキングタスクを有することにおけるユーザの関心は、自然言語ユーザ要求190に基づいて検出されてもよく、ユーザ要求190の実行は、ソーシャルネットワーキングタスクの実行を含み得る。ソーシャルネットワーキングタスクには、ソーシャルネットワーキングサービスへの投稿を作成すること、ソーシャルネットワーキングサービスへの投稿への好みの意志を表示すること、ソーシャルネットワーキングサービスにメディアをアップロードすること、イベント、ロケーション、またはビジネス、または他のソーシャルネットワーキングアクティビティにユーザが存在するとしてトリガリングすることが含まれ得る。
1つまたは複数のローカルオブジェクト380および/または1つまたは複数の追加のリモートオブジェクトを含む、ユーザ要求190に関連付けられた追加のオブジェクトをユーザ要求190の実行に使用することができる。追加のオブジェクトは、自動対話指示を構成する際に使用される情報を定義するとともに、自動対話指示を使用して実行される自動対話手順で許容されるオプションを選択する際に使用される情報を定義することができる。例えば、タクシー会社に関する自動対話手順は、所望のピックアップ時間、ピックアップロケーション、およびドロップオフロケーションの指定を可能にすることができる。タクシー会社のオブジェクトは、ビジネスコマースフロントエンドサーバー170に連絡するための自動対話指示を定義することができる。これらの自動対話指示は、所望のピックアップ時間、ピックアップロケーション、およびドロップオフロケーションが指定されていることを示し、いくつかの事例では、ドロップオフロケーションなどの1つまたは複数の構成オプションが、ピックアップ時にドライバに個人に対して任意選択であり、かつ指定され得る。したがって、ピックアップの時間、ピックアップロケーション、およびドロップオフロケーションに関連するように決定されたユーザ要求190から生成されたオブジェクトは、これらのオプションを指定するために使用することができる。いくつかの事例では、ユーザ要求における明示的なステートメントの欠如に基づいて暗黙的にオブジェクトを決定することができる。例えば、ピックアップ時間を明示的に指定せずに乗車が要求された場合、「今」または「できるだけ早く」のピックアップ時間が推定され得る。
ユーザ要求190の実行と、ユーザ要求190の言語とオブジェクトとの間のマッピングの両方は、モバイルデバイス120のロケーションに基づくものとし得る。ユーザサービスコンポーネント330は、モバイルデバイスの現在のロケーションを決定する。ユーザサービスコンポーネント330は、ローカル主導型対話125の1つまたは複数のオプションがモバイルデバイス120の現在のロケーションを含むか、またはモバイルデバイス120の現在のロケーションから導出される、ビジネスコマースフロントエンドサーバー170とのローカル主導型対話125の構成を介するなど、リモートオブジェクト390およびモバイルデバイス120の現在のロケーションに基づいて自然言語ユーザ要求190を実行する。ユーザサービスコンポーネント330は、代替的に、オブジェクトグラフ200の複数のオブジェクトから選択された受信リモートオブジェクト390が、決定された現在のロケーションに近接していることに基づいていた場合、モバイルデバイス120の現在のロケーションをネットワークシステム(例えば、ソーシャル言語サーバー150)に送信する。例えば、サービスは、様々な異なるサービスプロバイダによって実行されてもよく、特定のサービスプロバイダは、それらがモバイルデバイス120の現在のロケーションに地理的に近いところあることに少なくとも部分的に基づいて選択される。
図4は、モバイルデバイス120に関してソーシャルオブジェクト480を取得するソーシャル言語サーバー150の一実施形態を示す。ソーシャル言語サーバー150は、ソーシャルネットワーキングサービス内の対話から導出された情報を用いてソーシャルネットワーキングサービスのメンバを代表して自然言語ユーザ要求を分析するように動作する。ソーシャル言語サーバー150は、クライアントサービスコンポーネント430およびソーシャルオブジェクトリレーションコンポーネント440を含むことができる。
クライアントサービスコンポーネント430は、モバイルデバイス120から自然言語ユーザ要求190を受信する。クライアントサービスコンポーネント430は、モバイルデバイス120のユーザサービスコンポーネント330によって受信されたのと同じ形式でユーザ要求190を受信するか、または変換されたフォーマットでユーザ要求190を受信してもよい。例えば、オーディオとして受信されたユーザ要求190は、クライアントサービスコンポーネント430への送信に先立ってテキストに書き換えられてもよい。自然言語ユーザ要求190は、モバイルデバイス120がモバイルデバイス120上でローカルデータとのオブジェクトの照合を実行し、オブジェクト照合によって信頼閾値を下回る信頼度レベルを有する少なくとも1つのクライアント一致オブジェクトが生成されたという決定に応答してモバイルデバイス120から受信することができる。
ソーシャルオブジェクトリレーションコンポーネント440は、自然言語ユーザ要求190をオブジェクトグラフ200内の1つまたは複数のソーシャルオブジェクト480と照合させ、オブジェクトグラフ200は、オブジェクトグラフ200内のオブジェクトに関するトークンマッピングを含み、トークンマッピングは、ネットワークシステムの複数のユーザによって複数の対話から抽出されたデータに基づき、1つまたは複数のオブジェクトは、トークンマッピングに基づいて自然言語ユーザ要求190と対応付けされる。概して、ソーシャルオブジェクトリレーションコンポーネント440による自然言語ユーザ要求190の照合は、モバイルデバイス120のローカルオブジェクトリレーションコンポーネント340によって実行されるユーザ要求190の照合の手順に対応するが、ローカルオブジェクトストア360のより限定されたリソースではなく、より大きなソーシャルオブジェクトストア460の追加データへのアクセスを伴ってもよい。
その後、クライアントサービスコンポーネント330は、ソーシャルオブジェクト480をモバイルデバイス120に送信する。ユーザ要求190の実行は、マッチングした1つまたは複数のソーシャルオブジェクト480をモバイルデバイス120によるユーザ要求190の実行のためにモバイルデバイス120に送信することを含む。したがって、ソーシャルオブジェクト480は、モバイルデバイス120のユーザサービスコンポーネント330によって受信されたリモートオブジェクト390に対応する。ソーシャル言語サーバー150は、ソーシャルネットワーキングサービスの要素であってもよい。自然言語ユーザ要求190は、ソーシャルネットワーキングサービスのソーシャルネットワーキングシステムで受信されてもよい。したがって、オブジェクトグラフ200は、相互リンクされたソーシャルネットワーキングオブジェクトを少なくとも部分的に含むグラフを備えることができる。ソーシャルネットワーキングシステムは、ネットワークシステムを含むことができる。トークンマッピングは、複数のユーザが複数の対話においてトークンをソーシャルオブジェクト480に関連づけた頻度に基づいて生成することができる。この複数の対話は、複数のユーザからネットワークシステムへの複数の自然言語ユーザ要求を含み、トークンマッピングは、複数の自然言語ユーザ要求190の実行に関する成功率に基づいて生成される。
ソーシャル言語サーバー150は、ソーシャルオブジェクト480の決定において、モバイルデバイス120の現在のロケーションを使用することができる。クライアントサービスコンポーネント430は、モバイルデバイス120からモバイルデバイス120の現在のロケーションを受信し、モバイルデバイス120の現在のロケーションへの近接度に基づいてマッチングする1つまたは複数のソーシャルオブジェクト480を選択する。例えば、ソーシャルオブジェクト480は、受信した現在のロケーションと、ビジネスエンティティに関してソーシャルオブジェクトに記録されたビジネスエンティティのアドレスとの間の近接度に基づいて選択することができる。
図5は、モバイルデバイス120に関して商取引を実行するソーシャル言語サーバー150の一実施形態を示す。ソーシャル言語サーバー150は、ユーザ要求の分析に加えて、ソーシャルネットワーキングサービスのメンバを代表して自然言語ユーザ要求を実行するように動作する。
ローカル主導型対話125の実行に関してソーシャルオブジェクト480をモバイルデバイス120に戻す代わりに、クライアントサービスコンポーネント330は、サーバー主導型対話165においてマッチングした1つまたは複数のソーシャルオブジェクト480に基づいて自然言語ユーザ要求190を実行することができる。ソーシャル言語サーバー150は、モバイルデバイス120を代表してビジネスコマースフロントエンドサーバー170とのサーバー主導型対話165を実行して、モバイルデバイス120の処理、帯域幅、およびエネルギーリソースを節約することができる。ユーザ要求190がサーバー主導型対話165を介して実行される場合、クライアントサービスコンポーネント430は、モバイルデバイス120から1つまたは複数のローカルオブジェクト380を受信し、ユーザ要求190の実行においてローカルオブジェクト380を使用する。
ソーシャル言語サーバー150は、ユーザ要求190の実行においてモバイルデバイス120の現在のロケーションを使用することができる。現在のロケーションは、モバイルデバイス120から受信したローカルオブジェクト380のうちの1つを含み得る。クライアントサービスコンポーネント430は、モバイルデバイス120からモバイルデバイス120の現在のロケーションを受信し、マッチングした1つまたは複数のソーシャルオブジェクト480およびモバイルデバイス120の現在のロケーションに基づいて、自然言語ユーザ要求190を実行する。
マッチングした1つまたは複数のソーシャルオブジェクト480は、ビジネスエンティティに対応するビジネスオブジェクトを含み、ビジネスオブジェクトは、オブジェクトグラフ200において表される。クライアントサービスコンポーネント430は、ビジネスに基づいてビジネスエンティティに関する自動対話指示を取得する。いくつかの事例において、自動対話指示をビジネスオブジェクト内に格納することができる。クライアントサービスコンポーネント430は、取得した自動対話指示に基づいてビジネスエンティティに関するビジネスコマースフロントエンドサーバー170とともに購入および予約の少なくとも1つを実行することによって自然言語ユーザ要求190を実行し、購入および/または予約の実行は、サーバー主導型対話165を含む。
開示されたアーキテクチャの新規な態様を実行するための例示的な方法を表す一組のフローチャートが本明細書に含まれる。説明の簡略化のために、例えばフローチャートまたはフロー図の形式で本明細書に示された1つまたは複数の方法が一連の動作として示され説明されているが、いくつかの動作は、それに従って、ここに示され説明された動作とは異なる順序で、および/または他の動作と同時に起こり得るので、動作の順序によって制限されない。例えば、当業者であれば、方法は、状態図のような一連の相互に関係する状態または事象として代替的に表すことができることを理解および認識するであろう。さらに、方法に示されたすべての動作が新規の実施に必要とされることはない。
図6は、一実施形態の第1の論理フロー600を示す。論理フロー600は、本明細書に記載された1つまたは複数の実施形態によって実行される動作の一部または全部を表す。
図6に示される例示的な実施形態において、論理フロー600は、ブロック602において、モバイルデバイス120上の自然言語ユーザ要求190を受信する。
論理フロー600は、ブロック604において、自然言語ユーザ要求190を1つまたはモバイルデバイス120に記憶された複数のローカルオブジェクト380に関連付ける。
論理フロー600は、ブロック606において、1つまたは複数のローカルオブジェクト380のそれぞれに関する信頼度レベルを決定する。
論理フロー600は、ブロック608において、信頼度レベルが信頼閾値未満である低信頼度ローカルオブジェクトを決定する。
論理フロー600は、ブロック610において、ネットワークシステムが自然言語ユーザ要求190をオブジェクトグラフ200に対して照合することを要求するネットワーククエリをネットワークシステムに送信する。
論理フロー600は、ブロック612において、ネットワーククエリに応答してネットワークシステムからの低信頼度ローカルオブジェクトを置き換えるためにオブジェクトグラフ200内で表されるリモートオブジェクト390を受信する。
論理フロー600は、ブロック614において、リモートオブジェクト390に基づいて自然言語ユーザ要求190を実行する。
実施形態は、この例に限定されない。
図7は、一実施形態の第2の論理フロー700を示す。論理フロー700は、本明細書に記載された1つまたは複数の実施形態によって実行される動作の一部または全部を表す。
図7に示される例示的な実施形態において、論理フロー700は、ブロック702において、モバイルデバイス120から自然言語ユーザ要求190を受信する。
論理フロー700は、ブロック704において、自然言語ユーザ要求190をオブジェクトグラフ200内の1つまたは複数のソーシャルオブジェクト480と照合させる。オブジェクトグラフ200は、オブジェクトグラフ200内のソーシャルオブジェクト480に対するトークンマッピングを含み、トークンマッピングは、ネットワークシステムの複数のユーザによって複数の対話から抽出されたデータに基づくものであり、1つまたは複数のソーシャルオブジェクト480がトークンマッピングに基づいて自然言語ユーザ要求190と照合される。
論理フロー700は、ブロック706において、マッチングした1つまたは複数のソーシャルオブジェクト480に基づいて自然言語ユーザ要求190を実行する。
実施形態はこの例に限定されない。
図8は、集中型システム800のブロック図を示す。集中型システム800は、単一デバイス820内のエンティティ等の、単一の計算エンティティ内の自然言語要求システム100のための構造および/または動作のうちのいくつかまたは全てを実施することができる。
デバイス820は、自然言語要求システム100のための情報を受信、処理および送信することが可能な任意の電子デバイスを含むことができる。電子デバイスの例は、限定ではないが、ウルトラモバイルデバイス、モバイルデバイス、携帯情報端末(PDA)、モバイルコンピューティングデバイス、スマートフォン、電話、デジタル電話、携帯電話、電子書籍リーダ、ハンドセット、ワンウエイページャ(one−way pager)、ツーウエイページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、サーバー、サーバーアレイもしくはサーバーファーム、ウェブサーバー、ネットワークサーバー、インターネットサーバー、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワーク機器、ウェブ機器、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム、家庭用電子機器、プログラム可能な家庭用電子機器、ゲームデバイス、テレビ、デジタルテレビ、セットトップボックス、無線アクセスポイント、基地局、加入者局、モバイル加入者センター、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、マシン、またはそれらの組合せを含むことができる。実施形態はこれに限定されない。
デバイス820は、処理コンポーネント830を用いて自然言語要求システム100のための処理動作またはロジックを実行することができる。処理コンポーネント830は、様々なハードウェア要素、ソフトウェア要素、または双方の組合せを含むことができる。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ回路、回路素子(例えば、トランジスタ、レジスタ、キャパシタ、インダクタ等)、集積回路、特定用途向け集積回路(ASIC:application specific integrated circuits)、プログラマブルロジックデバイス(PLD:programmable logic devices)、デジタルシグナルプロセッサ(DSP:digital signal processors)、フィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含むことができる。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、プロシージャ、ソフトウェアインタフェース、アプリケーションプログラミングインタフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、単語、値、シンボル、またはそれらの任意の組合せを含むことができる。実施形態がハードウェア要素を用いて実施されるか、かつ/またはソフトウェア要素を用いて実施されるかを判断することは、所望の計算速度、パワーレベル、耐熱性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバス速度および他の設計または性能の制約等の任意の数の要因に従って、所与の実施態様にとって望ましいとおりに変動することができる。
デバイス820は、通信コンポーネント840を用いて自然言語要求システム100の通信動作またはロジックを実行することができる。通信コンポーネント840は、パケット交換ネットワーク(例えば、インターネット等の公衆ネットワーク、社内イントラネット等のプライベートネットワーク等)、回路交換網(例えば、公衆交換電話網)、またはパケット交換ネットワークおよび回路交換網の(適切なゲートウェイおよびトランスレータを用いた)組合せ等と共に用いるのに適した技法等の、任意のよく知られた通信技法およびプロトコルを実施することができる。通信コンポーネント840は、1つまたは複数の通信インタフェース、ネットワークインタフェース、ネットワークインタフェースカード(NIC:network interface cards)、無線通信装置、ワイヤレストランスミッタ/ワイヤレスレシーバ(トランシーバ)、有線および/または無線通信媒体、物理的コネクタ等の様々なタイプの標準的な通信要素を含むことができる。限定ではないが、例として、通信媒体812は、有線通信媒体および無線通信媒体を含む。有線通信媒体の例は、有線、ケーブル、金属導線、プリント回路基盤(PCB:printed circuit boards)、バックプレーン、スイッチファブリック、半導体材料、ツイストペア線、同軸ケーブル、光ファイバ、伝搬信号等を含むことができる。無線通信媒体の例は、音響、無線周波数(RF)スペクトル、赤外線および他の無線媒体を含むことができる。
デバイス820は、通信コンポーネント840により通信信号814を使用して通信媒体812を介してモバイルデバイス810と通信することができる。複数のモバイルデバイス810は、自然言語要求システム100のユーザおよび/またはソーシャルネットワーキングサービスによって使用されるデバイスを含むことができる。媒体812を介して送信される信号814は、クライアントサービスコンポーネント430へのユーザ要求の送信およびモバイルデバイス810へのソーシャルオブジェクトの送信に対応することができる。
図9は、分散型システム900のブロック図を示している。分散型システム900は、自然言語要求システム100について、その構造および/またはオペレーションのいくつかの部分を複数のコンピューティングエンティティに分散させることができる。分散型システム900の例として、限定するものではないが、クライアントサーバーアーキテクチャ、3層アーキテクチャ、N層アーキテクチャ、密結合またはクラスタアーキテクチャ、ピアツーピアアーキテクチャ、マスタスレーブアーキテクチャ、共有データベースアーキテクチャ、および他のタイプの分散型システムを含むことができる。実施形態は、これに限定されない。
分散型システム900は、クライアントサービスサーバーデバイス910およびグラフ検索サーバーデバイス950を備え得る。概して、クライアントサービスサーバーデバイス910およびグラフ検索サーバーデバイス950は、図8を参照して説明したようなサーバーデバイス820と同じまたは類似したものであり得る。例えば、サーバーデバイス910,950は、それぞれ、処理コンポーネント930および通信コンポーネント940を有することができ、それらは、図8を参照して説明したような処理コンポーネント830および通信コンポーネント840とそれぞれ同じまたは類似したものである。他の例では、サーバーデバイス910,950は、通信コンポーネント940を介して、通信信号914を用いて通信媒体912を通して通信することができる。
クライアントサービスサーバーデバイス910は、記載の実施形態による様々な方法を実施するように機能する1つまたは複数のクライアントプログラムを具備または採用することができる。一実施形態では、例えば、クライアントサービスサーバーデバイス910は、複数のクライアントサービスコンポーネント430を実装し得る。
グラフ検索サーバーデバイス950は、記載された実施形態に従って様々な方法を実行するように動作する1つまたは複数のサーバープログラムを備えるか、または採用することができる。一実施形態では、例えば、グラフ検索サーバーデバイス950は、複数のソーシャルオブジェクトリレーションコンポーネント440を実装することができる。
サーバーデバイス910,950は、媒体912を介して送信される信号914を使用してモバイルデバイス810と通信することができる。オブジェクトグラフ200は、複数のソーシャルオブジェクトストア960に格納され、ソーシャルオブジェクトストア960は、オブジェクトグラフ200を記憶する分散型データベースを含むことができる。サーバーデバイス910,950は、媒体912を介して送信される信号914を用いてソーシャルオブジェクトストア960と通信することができる。
図10は、上記に記載の様々な実施形態を実施するのに適した例示的なコンピューティングアーキテクチャ1000の1実施形態を示す。1つの実施形態では、コンピューティングアーキテクチャ1000は、電子デバイスを備えるか、電子デバイスの一部として実施されることが可能である。電子デバイスの例は、中でも、図8を参照して説明したものを含むことができる。実施形態はこれに限定されない。
本出願において用いられるとき、「システム」および「コンポーネント」という語は、ハードウェア、ハードウェアおよびソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかである、コンピュータに関係したエンティティを指すことを意図され、それらの例が、例示的なコンピューティングアーキテクチャ1000によって提供される。例えば、コンポーネントは、限定ではないが、プロセッサにおいて実行されるプロセス、プロセッサ、ハードディスクドライブ、(光学および/または磁気記録媒体の)マルチ記録ドライブ、オブジェクト、実行ファイル、実行スレッド、プログラムおよび/またはコンピュータであり得る。例示のために、サーバー上で実行されるアプリケーションおよびサーバーの双方がコンポーネントであり得る。1つまたは複数のコンポーネントがプロセスおよび/または実行スレッド内に常駐することができ、コンポーネントは、1つのコンピュータ上に局在することができ、および/または2つ以上のコンピュータ間で分散され得る。更に、コンポーネントは、動作を協調させるように、様々なタイプの通信媒体によって互いに通信可能に結合され得る。協調は、情報の一方向または双方向の交換を含むことができる。例えば、コンポーネントは、通信媒体により通信される信号の形態で情報を通信することができる。情報は、様々な信号線に割り当てられる信号として実施され得る。そのような割り当てにおいて、各メッセージは信号である。一方、更なる実施形態は、代替的にデータメッセージを用いることができる。そのようなデータメッセージは、様々な接続にわたって送信され得る。例示的な接続は、パラレルインタフェース、シリアルインタフェースおよびバスインタフェースを含む。
コンピューティングアーキテクチャ1000は、1つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インタフェース、オシレータ、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入出力(I/O)コンポーネント、電源等の様々な一般的なコンピューティング要素を含む。しかしながら、実施形態は、コンピューティングアーキテクチャ1000による実施に限定されない。
図10に示すように、コンピューティングアーキテクチャ1000は、処理ユニット1004、システムメモリ1006およびシステムバス1008を備える。処理ユニット1004、限定ではないが、AMD(登録商標)プロセッサ、Athlon(登録商標)プロセッサ、Duron(登録商標)プロセッサおよびOpteron(登録商標)プロセッサ;ARM(登録商標)のアプリケーションプロセッサ、組込み型プロセッサおよびセキュアプロセッサ;IBM(登録商標)およびMotorola(登録商標)のDragonBall(登録商標)プロセッサおよびPowerPC(登録商標)プロセッサ;IBMおよびSony(登録商標)のセルプロセッサ;Intel(登録商標)のCeleron(登録商標)プロセッサ、Core(2)Duo(登録商標)プロセッサ、Itanium(登録商標)プロセッサ、Pentium(登録商標)プロセッサ、Xeon(登録商標)プロセッサおよびXScale(登録商標)プロセッサ;ならびに同様なプロセッサを含む様々な市販のプロセッサのうちの任意のものであり得る。デュアルマイクロプロセッサ、マルチコアプロセッサおよび他のマルチプロセッサアーキテクチャも処理ユニット1004として用いられることが可能である。
システムバス1008は、限定ではないがシステムメモリ1006を含むシステムコンポーネントのためのインタフェースを処理ユニット1004に提供する。システムバス1008は、多岐にわたる市販のバスアーキテクチャのうちの任意のものを用いてメモリバス(メモリコントローラを有するかまたは有しない)、周辺バスおよびローカルバスに更に相互接続することができるいくつかのタイプのバス構造のうちの任意のものとすることができる。インタフェースアダプタは、スロットアーキテクチャを介してシステムバス1008に接続することができる。例示的なスロットアーキテクチャは、限定ではないが、アクセラレーテッドグラフィックスポート(AGP:Accelerated Graphics Port)、カードバス、(拡張)業界標準アーキテクチャ((E)ISA:(Extended)Industry Standard Architecture)、マイクロチャネルアーキテクチャ(MCA:Micro Channel Architecture)、NuBus、周辺コンポーネント相互接続(拡張)(PCI(X):Peripheral Component Interconnect(Extended))、PCIエクスプレス、パーソナルコンピュータメモリカード国際組織(PCMCIA:Personal Computer Memory Card International Association)等を含むことができる。
コンピューティングアーキテクチャ1000は、様々な製造品を含むかまたは実装することができる。製造品は、ロジックを記憶するためのコンピュータ可読記録媒体を含むことができる。コンピュータ可読記録媒体の例は、揮発性メモリまたは不揮発性メモリ、取外し可能または非取外し可能メモリ、消去可能または非消去可能メモリ、書き込み可能または書き換え可能メモリ等を含む、電子データを記憶することが可能な任意の有形媒体を含むことができる。ロジックの例は、ソースコード、コンパイルされたコード、解釈実行されたコード、実行可能コード、スタティックコード、ダイナミックコード、オブジェクト指向コード、視覚コード等の任意の適切なタイプのコードを用いて実施される実行可能なコンピュータプログラム命令を含むことができる。実施形態はまた、1つまたは複数のプロセッサによって読出しおよび実行されて、本明細書に記載の動作の実行を可能にすることができる、非一時的コンピュータ可読媒体に含まれるかまたは非一時的コンピュータ可読媒体上にある命令として少なくとも部分的に実施されることが可能である。
システムメモリ1006は、読出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDRAM:Double−Data−Rate DRAM)、同期DRAM(SDRAM:synchronous DRAM)、スタティックRAM(SRAM:static RAM)、プログラマブルROM(PROM:programmable ROM)、消去可能なプログラマブルROM(EPROM:erasable programmable ROM)、電気的に消去可能なプログラマブルROM(EEPROM:electrically erasable programmable ROM)、フラッシュメモリ、強誘電性ポリマーメモリ等のポリマーメモリ、オーボニックメモリ(ovonic memory)、相変化または強誘電性メモリ、シリコン−酸化物−窒化物−酸化物−シリコン(SONOS:silicon−oxide−nitride−oxide−silicon)メモリ、磁気カードまたは光カード、独立ディスクの冗長アレイ(RAID:Redundant Array of Independent Disks)ドライブ等のデバイスのアレイ、ソリッドステートメモリデバイス(例えば、USBメモリ、ソリッドステートドライブ(SSD:solid state drive)および情報を記憶するのに適した任意の他のタイプの記憶媒体等の1つまたは複数の高速メモリユニットの形態の様々なタイプのコンピュータ可読記録媒体を含むことができる。図10に示す例示される実施形態では、システムメモリ1006は、不揮発性メモリ1010および/または揮発性メモリ1012を含むことができる。基本入出力システム(BIOS:basic input/output system)を不揮発性メモリ1010に記憶することができる。
コンピュータ1002は、内部(または外部)ハードディスクドライブ(HDD)1014、取外し可能な磁気ディスク1018に対し読出しまたは書き込みを行うための磁気フロッピーディスクドライブ(FDD)1016、および取外し可能な光ディスク1022(例えば、CD−ROMまたはDVD)に対し読出しまたは書き込みを行うための光ディスクドライブ1020を含む1つまたは複数の低速メモリユニットの形態で様々なタイプのコンピュータ可読記録媒体を備えることができる。HDD1014、FDD1016および光ディスクドライブ1020は、それぞれHDDインタフェース1024、FDDインタフェース1026、および光ドライブインタフェース1028によってシステムバス1008に接続されることが可能である。外部ドライブ実装のためのHDDインタフェース1024は、ユニバーサルシリアルバス(USB)およびIEEE1394インタフェース技術の少なくとも一方または双方を含むことができる。
ドライブおよび関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令等の揮発性記録および/または不揮発性記録を提供する。例えば、オペレーティングシステム1030、1つまたは複数のアプリケーションプログラム1032、他のプログラムモジュール1034およびプログラムデータ1036を含む複数のプログラムモジュールがドライブおよびメモリユニット1010、1012に記憶され得る。1つの実施形態では、1つまたは複数のアプリケーションプログラム1032、他のプログラムモジュール1034およびプログラムデータ1036は、例えば、自然言語要求システム100の様々なアプリケーションおよび/またはコンポーネントを含むことができる。
ユーザは、1つまたは複数の有線/無線入力デバイス、例えば、キーボード1038、およびマウス1040等のポインティングデバイスを通じてコンピュータ1002にコマンドおよび情報を入力することができる。他の入力デバイスは、マイクロフォン、赤外線(IR)リモートコントロール、無線周波数(RF)リモートコントロール、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、グローブ、グラフィックタブレット、ジョイスティック、キーボード、網膜リーダ、タッチスクリーン(例えば、容量型、抵抗型等)、トラックボール、トラックパッド、センサ、スタイラス等を含むことができる。これらのおよび他の入力デバイスは、多くの場合に、システムバス1008に結合された入力デバイスインタフェース1042を通じて処理ユニット1004に接続されるが、パラレルポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインタフェース等の他のインタフェースによって接続されてもよい。
モニタ1044または他のタイプの表示デバイスも、ビデオアダプタ1046等のインタフェースを介してシステムバス1008に接続される。モニタ1044は、コンピュータ1002に対し内部または外部にあり得る。モニタ1044に加えて、コンピュータは通常、スピーカ、プリンタ等の他の周辺出力デバイスを備える。
コンピュータ1002は、リモートコンピュータ1048等の1つまたは複数のリモートコンピュータへの有線および/または無線通信を介して論理接続を用いてネットワーク化された環境において動作することができる。リモートコンピュータ1048は、ワークステーション、サーバーコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサに基づく娯楽機器、ピアデバイス、または他の共通ネットワークノードであり得、通常、コンピュータ1002について記載した要素のうちの多くまたは全てを備えるが、簡潔にするために、メモリ/記録デバイス1050のみが示されている。描かれる論理接続は、ローカルエリアネットワーク(LAN)1052および/またはより大きなネットワーク、例えば広域ネットワーク(WAN)1054への有線/無線接続を含む。そのようなLANおよびWANネットワーキング環境は、事務所および会社において一般的であり、イントラネット等の、企業規模のコンピュータネットワークを容易にする。これらは全て、グローバル通信ネットワーク、例えばインターネットに接続することができる。
LANネットワーキング環境において用いられるとき、コンピュータ1002は、有線および/または無線通信ネットワークインタフェースまたはアダプタ1056を通じてLAN1052に接続される。アダプタ1056は、LAN1052への有線および/または無線通信を容易にすることができる。LAN1052も、アダプタ1056の無線機能と通信するために配置された無線アクセスポイントを含むことができる。
WANネットワーキング環境において用いられるとき、コンピュータ1002は、モデム1058を含むことができるか、またはWAN1054の通信サーバーに接続されるか、またはインターネット等によってWAN1054を介して、通信を確立する他の手段を有する。内部または外部の、有線および/または無線デバイスであり得るモデム1058は、入力デバイスインタフェース1042を介してシステムバス1008に接続する。ネットワーク化された環境では、コンピュータ1002について述べられたプログラムモジュールまたはその一部分をリモートメモリ/記録デバイス1050に記憶することができる。示されるネットワーク接続は例示であり、コンピュータ間で通信リンクを確立する他の手段が用いられてもよいことが理解されよう。
コンピュータ1002は、IEEE802系規格を用いて、無線通信(例えば、IEEE802.10オーバーザエアー変調技法)において動作可能に配置される無線デバイス等の、有線および無線デバイスまたはエンティティと通信するように動作可能である。これは、少なくとも、中でも、Wi−Fi(または無線フィデリティ)、WiMaxおよびBluetooth(商標)の無線通信技術を含む。このため、この通信は従来のネットワークと同じように予め定義された通信構造であり得るか、または、単に少なくとも2つの装置の間におけるアドホック通信であり得る。Wi−Fiネットワークは、安全で信頼性が高く高速なワイヤレス接続を提供するIEEE802.10x(a、b、g、n等)と称される無線技術を用いる。Wi−Fiネットワークはコンピュータを互いに、インターネットに、および有線ネットワーク(IEEE802.3関連の媒体および機能を用いる)に接続するのに用いられ得る。
図11は上記の様々な実施形態を実施するのに適した例示的な通信アーキテクチャ1100のブロック図を示す。この通信アーキテクチャ1100は、トランスミッタ、レシーバ、トランシーバ、無線通信装置、ネットワークインタフェース、ベースバンドプロセッサ、アンテナ、増幅器、フィルタ、電源等の様々な一般的な通信要素を含む。しかしながら、本発明の実施形態は通信アーキテクチャ1100による実施に限定されない。
図11に示されるように、通信アーキテクチャ1100は1つまたは複数のクライアント1102およびサーバー1104を含む。クライアント1102はクライアントデバイス910を実装することができる。サーバー1104はサーバーデバイス910,950を実装することができる。クライアント1102およびサーバー1104は、1つまたは複数のそれぞれのクライアントデータストア1108およびサーバーデータストア1110に動作可能に接続されている。これらは、クッキーおよび/または関連付けられたコンテキスト情報等のそれぞれのクライアント1102およびサーバー1104にローカルな情報を記憶するために利用されることが可能である。クライアント1102は、モバイルデバイス120を含むモバイルデバイス810を実装することができる。
クライアント1102およびサーバー1104は通信フレームワーク1106を用いて互いの間で情報を通信することができる。通信フレームワーク1106は任意の既知の通信技法およびプロトコルを実装することができる。通信フレームワーク1106は、パケット交換網(例えば、インターネット等の公衆ネットワーク、社内イントラネット等のプライベートネットワーク等)、回線交換網(例えば、公衆交換電話網)、またはパケット交換網と回線交換網との組合せ(適切なゲートウェイおよびトランスレータを備える)として実装されることが可能である。
通信フレームワーク1106は、通信ネットワークを受け入れ、通信ネットワークと通信し、通信ネットワークに接続するように構成される様々なネットワークインタフェースを実施することができる。ネットワークインタフェースは、特殊な形態の入出力インタフェースと見なされ得る。ネットワークインタフェースは、限定ではないが、直接接続、イーサネット(例えば、シック、シン、ツイストペア10/100/1000BaseT等)、トークンリング、無線ネットワークインタフェース、セルラーネットワークインタフェース、IEEE802.11a−xネットワークインタフェース、IEEE802.16ネットワークインタフェース、IEEE802.20ネットワークインタフェース等を含む接続プロトコルを用いることができる。更に、様々な通信ネットワークタイプと関わるために複数のネットワークインタフェースが用いられ得る。例えば、ブロードキャスト、マルチキャストおよびユニキャストネットワークによる通信を可能にするために、複数のネットワークインタフェースが用いられることが可能である。処理要件がより高い速度およびより多くの容量を指示する場合、クライアント1102およびサーバー1104によって必要とされる通信帯域幅をプールし、負荷分散し、他の形で増大させるために、分散ネットワークコントローラアーキテクチャが同様に利用されることが可能である。通信ネットワークは、限定ではないが、直接相互接続、セキュア化されたカスタム接続、プライベートネットワーク(例えば、社内イントラネット)、公衆ネットワーク(例えば、インターネット)、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、インターネット上のノードとして動作しているミッション(OMNI:Operating Missions as Nodes on the Internet)、広域ネットワーク(WAN)、無線ネットワーク、セルラーネットワークおよび他の通信ネットワークを含む有線および/または無線ネットワークのうちの任意の1つまたはそれらの組合せであり得る。
図12は、自然言語要求システム100のようなマルチキャリアOFDMシステムで使用するためのデバイス1200の実施形態を示している。デバイス1200は、例えば、自然言語要求システム100を参照して説明したようなソフトウェアコンポーネント1260、および/または論理回路1230を実装することができる。デバイス1200は、モバイルデバイス120および/または1つまたは複数のモバイルデバイス810に対応することができる。論理回路1230は、自然言語要求システム100について説明したオペレーションを実行するための物理回路を含み得る。図12に示すように、デバイス1200は、無線インタフェース1210と、ベースバンド回路1220と、コンピューティングプラットフォーム1230とを備え得るが、ただし実施形態は、この構成に限定されない。
デバイス1200は、完全に単一のデバイス内にあるなどの単一のコンピューティングエンティティにおいて、自然言語要求システム100および/または論理回路1230について、その構造および/またはオペレーションの一部またはすべてを具体化することができる。あるいは、デバイス1200は、クライアントサーバーアーキテクチャ、3層アーキテクチャ、N層アーキテクチャ、密結合またはクラスタアーキテクチャ、ピアツーピアアーキテクチャ、マスタスレーブアーキテクチャ、共有データベースアーキテクチャ、および他のタイプの分散型システムのような分散システムアーキテクチャを用いて、自然言語要求システム100および/または論理回路1230について、その構造および/またはオペレーションのいくつかの部分を複数のコンピューティングエンティティに分散させることができる。実施形態は、これに限定されない。
一実施形態では、無線インタフェース1210は、(例えば、相補型符号変調(CCK)および/または直交周波数分割多重(OFDM)シンボルを含む)シングルキャリアまたはマルチキャリア変調信号を送信および/または受信するように構成されたコンポーネントもしくはコンポーネントの組み合わせを有し得るが、ただし実施形態は、いずれかの特定の空中(over−the−air)インタフェースまたは変調方式に限定されない。無線インタフェース1210は、例えば、受信機1212、送信機1216、および/または周波数シンセサイザ1214を有し得る。無線インタフェース1210は、バイアスコントロール、水晶発振器、および/または1つまたは複数のアンテナ1218を有し得る。他の実施形態では、無線インタフェース1210は、必要に応じて、外部の電圧制御発振器(VCO)、弾性表面波フィルタ、中間周波数(IF)フィルタ、および/またはRFフィルタを使用することができる。可能なRFインタフェース構成は多様であるため、その広範な説明は省略する。
ベースバンド回路1220は、受信信号および/または送信信号を処理するために無線インタフェース1210と通信することができ、例えば、受信信号をダウンコンバートするためのアナログデジタル変換器1222、信号を送信用にアップコンバートするためのデジタルアナログ変換器1224を有し得る。さらに、ベースバンド回路1220は、個々の受信/送信信号のPHYリンク層処理のためのベースバンドまたは物理層(PHY)処理回路1226を有し得る。ベースバンド回路1220は、例えば、メディアアクセス制御(MAC)/データリンク層処理のための処理回路1228を有し得る。ベースバンド回路1220は、例えば、1つまたは複数のインタフェース1234を介した処理回路1228および/またはコンピューティングプラットフォーム1230による通信のためのメモリコントローラ1232を有し得る。
いくつかの実施形態では、PHY処理回路1226は、無線フレームのような通信フレームを構築および/または分解するために、バッファメモリのような追加回路と組み合わせて、フレーム構築および/または検出モジュールを含み得る。代替的または追加的に、MAC処理回路1228は、これらの機能のうちのいくつかの処理を共有するか、またはこれらのプロセスをPHY処理回路1226とは独立に実行することができる。
コンピューティングプラットフォーム1230は、デバイス1200にコンピューティング機能を提供し得る。図示のように、コンピューティングプラットフォーム1230は、処理コンポーネント1240を有し得る。デバイス1200は、ベースバンド回路1220に対して追加的または代替的に、処理コンポーネント1240を用いて、自然言語要求システム100および/または論理回路1230について、その処理オペレーションまたはロジックを実行することができる。処理コンポーネント1240(および/またはPHY 1226および/またはMAC 1228)は、各種ハードウェア要素、ソフトウェア要素、またはその両方の組み合わせを含み得る。ハードウェア要素の例として、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ回路、回路素子(例えば、トランジスタ、抵抗器、キャパシタ、インダクタなど)、集積回路、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセットなどを含むことができる。ソフトウェア要素の例として、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインタフェース、アプリケーションプログラムインタフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル、またはその任意の組み合わせを含むことができる。ハードウェア要素および/またはソフトウェア要素を用いて実施形態を実現するかどうかの判断は、所望の計算速度、電力レベル、熱耐性、処理サイクルバジェット、入力データレート、出力データレート、メモリ資源、データバス速度、および他の設計制約または性能制約など、所与のインプリメンテーションで要求される任意の数のファクタに応じて異なる判断となり得る。
コンピューティングプラットフォーム1230は、さらに、他のプラットフォームコンポーネント1250を有し得る。他のプラットフォームコンポーネント1250は、1つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インタフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力/出力(I/O)コンポーネント(例えば、デジタルディスプレイ)、パワーサプライなどのような、一般的な計算要素を含む。メモリユニットの例として、限定するものではないが、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDRAM)、同期DRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ、強誘電性ポリマーメモリのようなポリマーメモリ、オーボニックメモリ、相変化または強誘電体メモリ、シリコン/酸化膜/窒化膜/酸化膜/シリコン(SONOS)メモリ、磁気または光カード、独立ディスクの冗長アレイ(RAID)ドライブのようなデバイスアレイ、ソリッドステートメモリデバイス(例えば、USBメモリ、ソリッドステートドライブ(SSD))、および情報を保存するのに適した他の任意のタイプの記憶媒体のような、1つまたは複数のより高速のメモリユニットの形態の各種タイプのコンピュータ可読およびマシン可読記憶媒体を含むことができる。
デバイス1200は、例えば、ウルトラモバイルデバイス、モバイルデバイス、固定デバイス、マシンツーマシン(M2M)デバイス、パーソナルデジタルアシスタント(PDA)、モバイルコンピューティングデバイス、スマートフォン、電話機、デジタル電話機、セルラー電話機、ユーザデバイス、電子書籍リーダ、ハンドセット、一方向ページャ、双方向ページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ(PC)、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、サーバー、サーバーアレイまたはサーバーファーム、ウェブサーバー、ネットワークサーバー、インターネットサーバー、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワークアプライアンス、ウェブアプライアンス、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサベースのシステム、家電機器、プログラマブル家電機器、ゲーム機、テレビ、デジタルテレビ、セットトップボックス、ワイヤレスアクセスポイント、基地局、ノードB、発展型ノードB(eNB)、加入者局、モバイル加入者センター、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、マシン、またはその組み合わせであり得る。従って、本明細書に記載のデバイス1200の機能および/または具体的な構成は、要求に応じて適宜、デバイス1200の種々の実施形態に含むことも、または省くこともできる。いくつかの実施形態では、デバイス1200は、3GPP LTE仕様および/またはWMAN用のIEEE1202.16規格および/または本明細書で引用される他の広帯域ワイヤレスネットワークの1つまたは複数に関連したプロトコルおよび周波数に準拠するように構成することができるが、実施形態は、この点に関して限定されない。
デバイス1200の実施形態は、単入力単出力(SISO)アーキテクチャを用いて実現することができる。一方、いくつかの実現形態では、ビームフォーミングまたは空間分割多重アクセス(SDMA)のための適応アンテナ技術、および/またはMIMO通信技術を用いた送信および/または受信用のマルチアンテナ(例えば、アンテナ1218)を備えることができる。
デバイス1200のコンポーネントおよび機能は、ディスクリート回路、特定用途向け集積回路(ASIC)、論理ゲート、および/またはシングルチップアーキテクチャの任意の組み合わせを用いて実装することができる。さらに、デバイス1200の機能は、必要に応じて適宜、マイクロコントローラ、プログラマブルロジックアレイ、および/またはマイクロプロセッサ、またはその任意の組み合わせを用いて実装することができる。なお、本明細書において、ハードウェア、ファームウェア、および/またはソフトウェア要素を、「ロジック」または「回路」と総称または個称する場合があるということに留意すべきである。
図12のブロック図に示す例示的なデバイス1200は、多くの可能性のある実現形態の1つの機能的説明例を表し得るということは理解されるべきである。従って、添付の図面に示す機能ブロックの分割、欠落、または組み込みは、必ずしも、実施形態における、それらの機能を実装するためのハードウェアコンポーネント、回路、ソフトウェア、および/または要素の分割、欠落、または組み込みを推測させるものではない。
いくつかの実施形態は、「1つの実施形態」または「実施形態」という表現と、それらの派生語とを用いて説明され得る。これらの用語は、実施形態に関して説明される特定の特徴、構造または特性が少なくとも1つの実施形態に含まれることを意味している。本明細書の様々な箇所に現れる「1つの実施形態において」というフレーズは、必ずしも全てが同じ実施形態を指しているわけではない。更に、いくつかの実施形態は、「結合された」および「接続された」という表現と、それらの派生語とを用いて説明され得る。これらの表現は必ずしも互いの同義語として意図されているわけではない。例えば、いくつかの実施形態は、「接続された」および/または「結合された」という表現を用いることにより、2つ以上の要素が直接物理的にまたは電気的に相互接触していることを示すように説明され得る。一方、「結合された」という用語は、2つ以上の要素が互いに直接接触していないが、それでも互いに協働またはインタラクトしていることを意味する場合もある。
本明細書において用いられる表記および専門用語を全体的に参照すると、本明細書における詳細な説明は、コンピュータまたはコンピュータのネットワーク上で実行されるプログラムプロシージャの観点で表され得る。これらの手続き的(procedural)記載および表現は、当業者によって、当該技術分野における他の当業者に自身の研究の本質を最も効果的に伝えるために用いられている。
プロシージャとは、ここでは、また一般的に、所望の結果をもたらすオペレーションの首尾一貫したシーケンスであると考えられる。これらのオペレーションは、物理的量の物理的操作を必要とするものである。必須ではないが通例、これらの量は、記憶、転送、組合せ、比較および他の形で操作されることが可能な電気信号、磁気信号または光信号の形態をとる。場合によっては、主に一般的用法の理由から、これらの信号を、ビット、値、要素、シンボル、文字、語、数等と呼ぶことが好都合であることがわかっている。しかしながら、これらの用語および同様の用語は全て適切な物理的量に関連付けられ、これらの量に適用される好都合なラベルにすぎないことに留意されたい。
更に、実行される操作は、多くの場合、人間のオペレータによって実行される知的オペレーションに一般的に関連付けられる、追加または比較等の用語で参照される。1つまたは複数の実施形態の一部を形成する、本明細書に説明されるオペレーションのいずれにおいても、人間のオペレータのそのような能力は必要でないか、ほとんどの場合に望ましくない。むしろ、オペレーションは機械オペレーションである。様々な実施形態のオペレーションを実行するための有用な機械は、汎用デジタルコンピュータまたは同様のデバイスを含む。
様々な実施形態は、これらのオペレーションを実行するための装置またはシステムにも関する。この装置は、必要とされる目的のために特に構築されることが可能であるか、またはコンピュータに記憶されるコンピュータプログラムによって選択的にアクティベートまたは再構成される汎用コンピュータを含むことができる。本明細書において提示されるプロシージャは、特定のコンピュータまたは他の装置に本質的に関係しない。様々な汎用機械は、本明細書における教示に関連して書かれたプログラムと共に用いられ得るか、または、必要とされる方法ステップを実行する、より特殊な装置を構築することが好都合であるとわかる場合がある。様々なこれらの機械のために必要とされる構造は、与えられる説明から明らかとなるであろう。
本開示の要約書は、読み手が技術的開示の本質を迅速に理解できるようにするために提供されていることを強調しておく。要約書は、特許請求の範囲の範囲または意味を解釈または限定することに用いられないという理解のもとに提出されている。更に、上記した「発明を実施するための形態」においては、開示を効率化するために様々な特徴がまとめて単一の実施形態にされていることを見てとることができる。このような開示方法は、特許請求される実施形態が各請求項に明示的に記された特徴以外のものを必要とする意図を表していると解釈されるべきではない。むしろ、以下の特許請求の範囲が表しているように、本発明の主題は、開示されている単一の実施形態の全特徴よりも少ない特徴にある。このため、以下の特許請求の範囲は本明細書において「発明を実施するための形態」に組み込まれ、各請求項は独立した1つの実施形態に基づく。「第1の」、「第2の」、「第3の」等の用語は単にラベルとして用いられており、それらの対象物に数的限定を課すことを意図したものではない。
上記で説明したものは、開示されているアーキテクチャの例を含む。当然ながら、コンポーネントおよび/または方法の全ての考え得る組合せを記載することは不可能であるが、当業者であれば、多くの更なる組合せおよび置き換えが可能であることを認識することができる。したがって、新規のアーキテクチャは、添付の特許請求の範囲の趣旨および範囲内にある全ての変化、変更および変形を包含することが意図される。