(57)【特許請求の範囲】
【請求項１】
方法であって、
１つまたは複数のサーバがメッセージング・アプリケーションのユーザからパーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信する工程と、
該１つまたは複数のサーバが該要求を満たすためにエージェントに該要求を振り当てる工程と、
自然言語プロセッサを使用して、該要求の意図を判定する工程と、
該要求の判定された意図に対応する複数の特性を判定する工程と、
該要求において、前記複数の特性に対応する１つまたは複数の要求詳細を識別する工程と、
エージェント・ユーザ・インタフェース内の１つまたは複数の詳細の要素に関連する１つまたは複数の詳細フィールドに、識別された前記１つまたは複数の要求詳細を追加する工程と、
前記１つまたは複数のサーバが、エージェント・クライアント・デバイスで表示するために、エージェント・ユーザ・インタフェースが、前記エージェント・ユーザ・インタフェースのメッセージング・インタフェースの上部のオーバーレイ内に、前記要求の判定された意図に関連する前記１つまたは複数の詳細の要素を含むように構成する工程と、ここで、前記詳細の要素は前記エージェントによって変更可能なものであり、
前記１つまたは複数のサーバが、前記判定された意図に関する情報を入手するために１つまたは複数のサードパーティ・サービスとの間で自動的にデータの授受を行う工程とを含む、方法。
【請求項２】
前記要求の意図を判定する工程は、前記要求から、意図を示す１つまたは複数の単語または句を識別することを含み、
前記エージェント・ユーザ・インタフェースが前記要求の判定された意図に関連する１つまたは複数の詳細の要素を含むように構成する工程は、前記ユーザ・インタフェースにおいて前記１つまたは複数の単語または句に関連する１つまたは複数の可能なオプションを提供することを含む、請求項１に記載の方法。
【請求項３】
前記要求に基づいて、前記判定された意図に関連する未追加の詳細フィールドを識別する工程と、
該未追加の詳細フィールドに関連する前記要求に対する自動化された応答を生成する工程と、
前記メッセージング・アプリケーションの前記ユーザに送るために前記エージェント・ユーザ・インタフェースのメッセージング・エリア内で前記エージェントに生成された前記応答を提供する工程と
をさらに含む、請求項１または２に記載の方法。
【請求項４】
前記要求の意図を変更するために前記エージェント・ユーザ・インタフェースを介してユーザ入力を受け取る工程と、
前記要求の変更された意図に従う１つまたは複数の詳細の要素を含むように前記エージェント・ユーザ・インタフェースを再構成する工程と
をさらに含む、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記要求を含む前記電子メッセージに関連する電子メッセージのメッセージング履歴を維持する工程と、
前記要求に関連する前記エージェントによる１つまたは複数のアクションを識別する工程と、
前記メッセージング履歴および識別された前記１つまたは複数のアクションに基づいて機械学習モデルをトレーニングする工程と
をさらに含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記要求の判定された意図に基づいて、サードパーティ・サービスからオプションのリストを入手する工程と、
前記エージェント・ユーザ・インタフェース内で該サードパーティ・サービスからのオプションの該リストを提供する工程とをさらに含み、
好ましくは、前記エージェント・ユーザ・インタフェース内でオプションの前記リストに対応する複数の選択可能な要素を提供する工程をさらに含む、請求項１から５のいずれか一項に記載の方法。
【請求項７】
システムであって、
少なくとも１つのプロセッサと、
命令を記憶している少なくとも１つの非一時的コンピュータ可読記憶媒体とを備え、前記命令は、該少なくとも１つのプロセッサによって実行されたとき、該システムが、
メッセージング・アプリケーションのユーザからパーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信し、
該要求を満たすためにエージェントに該要求を振り当て、
自然言語プロセッサを使用して、該要求の意図を判定し、
該要求の判定された意図に対応する複数の特性を判定し、
該要求において、前記複数の特性に対応する１つまたは複数の要求詳細を識別し、
エージェント・ユーザ・インタフェース内の１つまたは複数の詳細の要素に関連する１つまたは複数の詳細フィールドに、識別された前記１つまたは複数の要求詳細を追加し、
エージェント・クライアント・デバイスで表示するために、エージェント・ユーザ・インタフェースが、前記エージェント・ユーザ・インタフェースのメッセージング・インタフェースの上部のオーバーレイ内に、前記要求の判定された意図に関連する前記１つまたは複数の詳細の要素を含むように構成し、ここで、前記詳細の要素は前記エージェントによって変更可能なものであり、
前記判定された意図に関する情報を入手するために１つまたは複数のサードパーティ・サービスとの間で自動的にデータの授受を行うようにする、システム。
【請求項８】
前記要求の意図を判定することは、前記要求から、意図を示す１つまたは複数の単語または句を識別することを含み、
前記エージェント・ユーザ・インタフェースが前記要求の判定された意図に関連する１つまたは複数の詳細の要素を含むように構成することは、前記ユーザ・インタフェースにおいて前記１つまたは複数の単語または句に関連する１つまたは複数の可能なオプションを提供することを含む、請求項７に記載のシステム。
【請求項９】
前記少なくとも１つのプロセッサによって実行されたとき、前記システムが、
前記要求に基づいて、前記１つまたは複数の詳細フィールドから未追加の詳細フィールドを識別し、
該未追加の詳細フィールドに関連する前記要求に対する自動化された応答を生成し、
前記メッセージング・アプリケーションの前記ユーザに送るために前記エージェント・ユーザ・インタフェースのメッセージング・エリア内で前記エージェントに生成された前記応答を提供するようにする命令をさらに含む、請求項７または８に記載のシステム。
【請求項１０】
前記少なくとも１つのプロセッサによって実行されたとき、前記システムが、
前記要求の意図を変更するために前記エージェント・ユーザ・インタフェースを介してユーザ入力を受け取り、
前記要求の変更された意図に関連する１つまたは複数の詳細の要素を含むように前記エージェント・ユーザ・インタフェースを再構成するようにする命令をさらに含む、請求項７から９のいずれか一項に記載のシステム。
【請求項１１】
前記少なくとも１つのプロセッサによって実行されたとき、前記システムが、
前記要求を含む前記電子メッセージに関連する電子メッセージのメッセージング履歴を維持し、
前記要求に関連する前記エージェントによる１つまたは複数のアクションを識別し、
前記メッセージング履歴および識別された前記１つまたは複数のアクションに基づいて機械学習モデルをトレーニングするようにする命令をさらに含む、請求項７から１０のいずれか一項に記載のシステム。
【請求項１２】
前記少なくとも１つのプロセッサによって実行されたとき、前記システムが、
前記要求の判定された意図に基づいて、サードパーティ・サービスからオプションのリストを入手し、
前記エージェント・ユーザ・インタフェース内で該サードパーティ・サービスからのオプションの該リストを提供するようにする命令をさらに含む、請求項７から１１のいずれか一項に記載のシステム。
【請求項１３】
命令を記憶している非一時的コンピュータ可読媒体であって、該命令は、少なくとも１つのプロセッサによって実行されたとき、コンピュータ・システムが、
メッセージング・アプリケーションのユーザから、パーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信し、
該要求を満たすためにエージェントに該要求を振り当て、
自然言語プロセッサを使用して、該要求の意図を判定し、
該要求の判定された意図に対応する複数の特性を判定し、
該要求において、前記複数の特性に対応する１つまたは複数の要求詳細を識別し、
エージェント・ユーザ・インタフェース内の１つまたは複数の詳細の要素に関連する１つまたは複数の詳細フィールドに、識別された前記１つまたは複数の要求詳細を追加し、
エージェント・クライアント・デバイスで表示するために、エージェント・ユーザ・インタフェースが、前記エージェント・ユーザ・インタフェースのメッセージング・インタフェースの上部のオーバーレイ内に、前記要求の判定された意図に関連する前記１つまたは複数の詳細の要素を含むように構成し、ここで、前記詳細の要素は前記エージェントによって変更可能なものであり、
前記判定された意図に関する情報を入手するために１つまたは複数のサードパーティ・サービスとの間で自動的にデータの授受を行うようにする、非一時的コンピュータ可読媒体。
【請求項１４】
前記要求の意図を判定することは、前記要求から、意図を示す１つまたは複数の単語または句を識別することを含み、
前記エージェント・ユーザ・インタフェースが前記要求の判定された意図に関連する１つまたは複数の詳細の要素を含むように構成することは、前記ユーザ・インタフェースにおいて前記１つまたは複数の単語または句に関連する１つまたは複数の可能なオプションを提供することを含む、請求項１３に記載の非一時的コンピュータ可読媒体。
【請求項１５】
前記少なくとも１つのプロセッサによって実行されたとき、前記コンピュータ・システムが、
前記要求に基づいて、前記１つまたは複数の詳細フィールドから未追加の詳細フィールドを識別し、
該未追加の詳細フィールドに関連する前記要求に対する自動化された応答を生成し、
前記メッセージング・アプリケーションの前記ユーザに送るために前記エージェント・ユーザ・インタフェースのメッセージング・エリア内で前記エージェントに生成された前記応答を提供するようにする命令をさらに含み、および／または
前記少なくとも１つのプロセッサによって実行されたとき、前記コンピュータ・システムが、
前記要求の判定された意図に基づいて、サードパーティ・サービスからオプションのリストを入手し、
前記エージェント・ユーザ・インタフェース内で該サードパーティ・サービスからのオプションの該リストを提供するようにする命令をさらに含む、請求項１３または１４に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で説明される１つまたは複数の実施形態は、一般にデジタル・パーソナル・アシスタント・サービス（ｄｉｇｉｔａｌ  ｐｅｒｓｏｎａｌ  ａｓｓｉｓｔａｎｔ  ｓｅｒｖｉｃｅ）を提供するシステムおよび方法に関する。より詳細には、１つまたは複数の実施形態は、メッセージング・アプリケーションによりパーソナル・アシスタント・サービスを提供するシステムおよび方法に関する。
【背景技術】
【０００２】
電子デバイスの高められた可用性および使用は、増加する数の商品およびサービスへのオンライン・アクセスの可用性をもたらした。電子デバイスのユーザは、検索エンジン、専門サービス、またはビジネスエンティティもしくは他のエンティティに関連するウェブサイトを介してオンラインで商品およびサービスに関する情報にアクセスすることができる。具体的には、モバイル・デバイスは、ユーザが、旅行中および情報がユーザに最も関連する時など、ほぼいつでも商品またはサービスに関する情報を検索し、見つけることを可能にする。
【０００３】
一部の従来の情報サービス・システムは、ユーザが、商品またはサービスに関連する情報を手作業で検索することを要求する。しかし、使用可能な商品およびサービスの膨大な量に起因して、特定のクエリに関連する情報の発見は、時として困難になる可能性がある。たとえば、従来のサービス情報システムは、しばしば、ユーザが、特定のクエリにわずかに関連するのみであり得る情報のページを介して検索することを要求する。
【０００４】
さらに、他の従来の情報サービス・システムは、ユーザが、商品およびサービスに関連する情報を入手するために人工知能システムと対話することを可能にする。具体的には、従来の情報サービス・システムは、ユーザのクエリに対して関連する情報で応答するように人工知能システムをトレーニングすることができる。人工知能システムは、ユーザが実行しなければならない工程の量を減らすために、クエリに関連してユーザのために動作を実行することもできる。人工知能システムは、しばしば、非常に関連し、かつタイムリーな情報をユーザに提供することができるが、多数の制限を有し、しばしば、ユーザの要求に対して関連しないか、または役に立たない応答を提供する。
【０００５】
したがって、従来の情報サービス・システムおよび情報サービス方法に関する複数の不利益がある。
【発明の概要】
【０００６】
本明細書で説明される１つまたは複数の実施形態は、メッセージング・アプリケーションによりパーソナル・アシスタント・サービスを提供するシステムおよび方法を用いて、利益を提供し、かつ／または当技術分野の前述の問題または他の問題のうちの１つまたは複数を解決する。具体的には、１つまたは複数の実施形態は、エージェントがユーザにサービスを提供できる効率を改善する。たとえば、本システムおよび方法は、ユーザから受け取られた要求の判定された意図に基づいてエージェントの効率を改善することができる。具体的には、１つまたは複数の実施形態は、自然言語処理を使用して電子メッセージ内の要求の意図を判定する。したがって、本システムおよび方法は、エージェントが要求を満たすために要求される時間および労力の量を減らす形で要求の意図を識別してエージェントに情報を提供することができる。
【０００７】
さらに、エージェントが要求を満たすのを支援するために、本システムおよび方法は、エージェント・ユーザ・インタフェース内でエージェントに情報を提供することができる。たとえば、１つまたは複数の実施形態は、要求の判定された意図に従う１つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを構成する。判定された意図に従うオプションを含むようにエージェント・ユーザ・インタフェースを構成することによって、本システムおよび方法は、要求を正確に素早く満たすためにユーザから十分な情報を入手するためにエージェントが実行しなければならない工程の数を排除することができる。
【０００８】
実施形態の追加の特徴および利益は、以下の説明で示され、部分的には説明から明白になり、あるいは、そのような例示的実施形態の実践によって習得され得る。そのような実施形態の特徴および利益は、添付の特許請求の範囲で具体的に指定される手段および組合せによって実現され、入手され得る。上記および他の特徴は、以下の説明および添付の特許請求の範囲からより十分に明白になり、あるいは、以下に示されるそのような例示的実施形態の実践によって習得され得る。
【０００９】
本発明による実施形態は、具体的には、方法、記憶媒体、システム、およびコンピュータ・プログラム製品を対象とする添付の特許請求の範囲で開示され、１つの請求項カテゴリ、たとえば方法で言及される任意の特徴は、別の請求項カテゴリ、たとえばシステムにおいても請求され得る。添付の特許請求の範囲での依存性または戻る参照は、形式的な理由のみのために選択される。しかし、前の請求項に戻る故意の参照から生じるすべての主題（具体的には複数依存性）も請求され得、その結果、請求項およびその特徴のすべての組合せが、開示されるようになり、添付の特許請求の範囲で選択される依存性にかかわりなく請求され得るようになる。請求され得る主題は、添付の特許請求の範囲で示される特徴の組合せだけではなく、特許請求の範囲内の特徴のすべての他の組合せからもなり、特許請求の範囲で言及される各特徴は、特許請求の範囲内の任意の他の特徴または特徴の組合せと組み合わされ得る。さらに、本明細書で説明されまたは図示される実施形態および特徴のいずれもが、別々の請求項でおよび／または本明細書で説明されまたは図示される任意の実施形態もしくは特徴または添付の特許請求の範囲の特徴のいずれかとの組合せで請求され得る。
【００１０】
本発明による一実施形態では、方法は、
１つまたは複数のサーバによって、メッセージング・アプリケーションのユーザから、パーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信する工程と、
１つまたは複数のサーバによって、要求を満たすためにエージェントに要求を振り当てる工程と、
自然言語プロセッサを使用して、要求の意図を判定する工程と、
１つまたは複数のサーバによって、要求の判定された意図に従う１つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを構成する工程とを含んでもよい。
【００１１】
本発明による一実施形態では、要求の意図を判定する工程は、要求から、意図を示す１つまたは複数の単語または句を識別することを含み、
要求の判定された意図に従う１つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを構成する工程は、ユーザ・インタフェース内で識別された単語または句に関連する１つまたは複数の可能なオプションを提供することを含んでもよい。
【００１２】
本発明による一実施形態では、方法は、
要求の判定された意図に対応する複数の特性を判定する工程と、
要求において、複数の特性に対応する１つまたは複数の要求詳細を識別する工程と、
エージェント・ユーザ・インタフェース内の１つまたは複数のオプションに関連する１つまたは複数の詳細フィールドに識別された１つまたは複数の要求詳細を追加する工程とを含んでもよい。
【００１３】
本発明による一実施形態では、方法は、
要求に基づいて、判定された意図に関連する未追加の詳細フィールドを識別する工程と、
未追加の詳細フィールドに関連する要求に対する自動化された応答を生成する工程と、
メッセージング・アプリケーションのユーザに送るためにエージェント・ユーザ・インタフェースのメッセージング・エリア内でエージェントに生成された応答を提供する工程とを含んでもよい。
【００１４】
本発明による一実施形態では、方法は、
要求の意図を変更するためにエージェント・ユーザ・インタフェースを介してユーザ入力を受け取る工程と、
要求の変更された意図に従う１つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを再構成する工程とを含んでもよい。
【００１５】
本発明による一実施形態では、方法は、
要求を含む電子メッセージに関連する電子メッセージのメッセージング履歴を維持する工程と、
要求に関連するエージェントによる１つまたは複数のアクションを識別する工程と、
メッセージ履歴および識別された１つまたは複数のアクションに基づいて機械学習モデルをトレーニングする工程とを含んでもよい。
【００１６】
本発明による一実施形態では、方法は、
要求の判定された意図に基づいて、サードパーティ・サービスからオプションのリストを入手する工程と、
エージェント・ユーザ・インタフェース内でサードパーティ・サービスからのオプションのリストを提供する工程とを含んでもよい。
【００１７】
本発明による一実施形態では、方法は、エージェント・ユーザ・インタフェース内でオプションのリストに対応する複数の選択可能な要素を提供する工程を含んでもよい。
本発明による一実施形態では、システムは、
少なくとも１つのプロセッサと、
命令を記憶している少なくとも１つの非一時的コンピュータ可読記憶媒体と
を備えてもよく、命令は、少なくとも１つのプロセッサによって実行されたとき、システムが、
メッセージング・アプリケーションのユーザから、パーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信し、
要求を満たすためにエージェントに要求を振り当て、
自然言語プロセッサを使用して、要求の意図を判定し、
要求の判定された意図に従う１つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを構成するようする。
【００１８】
本発明による一実施形態では、システムは、少なくとも１つのプロセッサによって実行されたとき、システムに行わせる命令を含んでもよく、
要求の意図を判定することは、要求から、意図を示す１つまたは複数の単語または句を識別することを含み、
要求の判定された意図に従う１つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを構成することは、ユーザ・インタフェース内で識別された単語または句に関連する１つまたは複数の可能なオプションを提供することを含んでもよい。
【００１９】
本発明による一実施形態では、システムは、少なくとも１つのプロセッサによって実行されたとき、システムが、
要求の判定された意図に対応する複数の特性を判定し、
要求において、複数の特性に対応する１つまたは複数の要求詳細を識別し、
エージェント・ユーザ・インタフェース内の１つまたは複数のオプションに関連する１つまたは複数の詳細フィールドに識別された１つまたは複数の要求詳細を追加するようにする命令を含んでもよい。
【００２０】
本発明による一実施形態では、システムは、少なくとも１つのプロセッサによって実行されたとき、システムが、
要求に基づいて、１つまたは複数の詳細フィールドから未追加の詳細フィールドを識別し、
未追加の詳細フィールドに関連する要求に対する自動化された応答を生成し、
メッセージング・アプリケーションのユーザに送るためにエージェント・ユーザ・インタフェースのメッセージング・エリア内でエージェントに生成された応答を提供するようにする命令を含んでもよい。
【００２１】
本発明による一実施形態では、システムは、少なくとも１つのプロセッサによって実行されたとき、システムが、
要求の意図を変更するためにエージェント・ユーザ・インタフェースを介してユーザ入力を受け取り、
要求の変更された意図に従う１つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを再構成するようにする命令を含んでもよい。
【００２２】
本発明による一実施形態では、システムは、少なくとも１つのプロセッサによって実行されたとき、システムが、
要求を含む電子メッセージに関連する電子メッセージのメッセージング履歴を維持し、
要求に関連するエージェントによる１つまたは複数のアクションを識別し、
メッセージ履歴および識別された１つまたは複数のアクションに基づいて機械学習モデルをトレーニングするようにする命令を含んでもよい。
【００２３】
本発明による一実施形態では、システムは、少なくとも１つのプロセッサによって実行されたとき、システムが、
要求の判定された意図に基づいて、サードパーティ・サービスからオプションのリストを入手し、
エージェント・ユーザ・インタフェース内でサードパーティ・サービスからのオプションのリストを提供するようにする命令を含んでもよい。
【００２４】
本発明による一実施形態では、非一時的コンピュータ可読媒体は命令を記憶しており、命令は、少なくとも１つのプロセッサによって実行されたとき、コンピュータ・システムが、
メッセージング・アプリケーションのユーザから、パーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信し、
要求を満たすためにエージェントに要求を振り当て、
自然言語プロセッサを使用して、要求の意図を判定し、
要求の判定された意図に従う１つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを構成するようにしてもよい。
【００２５】
本発明による一実施形態では、非一時的コンピュータ可読媒体は、少なくとも１つのプロセッサによって実行されたとき、コンピュータ・システムに行わせる命令を含んでもよく、要求の意図を判定することは、要求から、意図を示す１つまたは複数の単語または句を識別することを含み、
要求の判定された意図に従う１つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを構成することは、ユーザ・インタフェース内で識別された単語または句に関連する１つまたは複数の可能なオプションを提供することを含んでもよい。
【００２６】
本発明による一実施形態では、非一時的コンピュータ可読媒体は、少なくとも１つのプロセッサによって実行されたとき、コンピュータ・システムが、
要求の判定された意図に対応する複数の特性を判定し、
要求において、複数の特性に対応する１つまたは複数の要求詳細を識別し、
エージェント・ユーザ・インタフェース内の１つまたは複数のオプションに関連する１つまたは複数の詳細フィールドに識別された１つまたは複数の要求詳細を追加するようにする命令を含んでもよい。
【００２７】
本発明による一実施形態では、非一時的コンピュータ可読媒体は、少なくとも１つのプロセッサによって実行されたとき、コンピュータ・システムが、
要求に基づいて、１つまたは複数の詳細フィールドから未追加の詳細フィールドを識別し、
未追加の詳細フィールドに関連する要求に対する自動化された応答を生成し、
メッセージング・アプリケーションのユーザに送るためにエージェント・ユーザ・インタフェースのメッセージング・エリア内でエージェントに生成された応答を提供するようにする命令を含んでもよい。
【００２８】
本発明による一実施形態では、非一時的コンピュータ可読媒体は、少なくとも１つのプロセッサによって実行されたとき、コンピュータ・システムが、
要求の判定された意図に基づいて、サードパーティ・サービスからオプションのリストを入手し、
エージェント・ユーザ・インタフェース内でサードパーティ・サービスからのオプションのリストを提供するようにする命令を含んでもよい。
【００２９】
本発明によるさらなる実施形態では、１つまたは複数のコンピュータ可読非一時的記憶媒体は、実行された時に本発明または以前に言及された実施形態のいずれかによる方法を実行するように動作可能なソフトウェアを実施する。
【００３０】
本発明によるさらなる実施形態では、システムは、１つまたは複数のプロセッサと、プロセッサに結合され、プロセッサによって実行される命令を含む少なくとも１つのメモリとを含み、プロセッサは、命令を実行する時に本発明または以前に言及された実施形態のいずれかによる方法を実行するように動作可能である。
【００３１】
本発明によるさらなる実施形態では、好ましくはコンピュータ可読非一時的記憶媒体を含むコンピュータ・プログラム製品は、データ処理システム上で実行されたとき本発明または以前に言及された実施形態のいずれかによる方法を実行するように動作可能である。
【００３２】
本開示の以前に列挙されたおよび他の利点および特徴が入手され得る形を説明するために、以前に短く説明された本開示のより具体的な説明が、添付図面に示されたその特定の実施形態を参照して提供される。図面が原寸通りに描かれていないことと、同様の構造または機能の要素が、図面全体を通じて例示のために同様の参照符号によって全般的に表されることとに留意されたい。以下の図面では、括弧で括られたテキストおよび破線（たとえば、長い破線、短い破線、一点鎖線、点線）の境界を有するブロックは、本明細書では、本開示の実施形態に追加の特徴を追加するオプションの特徴または動作を示すのに使用される。しかし、そのような表記が、オプションまたはオプションの動作のみがあること、および／または実線の境界を有するブロックが本開示のある種の実施形態においてオプションではないことを意味すると解釈してはならない。これらの図面が、本開示の通常の実施形態のみを示し、したがって、その範囲について限定的であると考えられるべきではないこととを理解して、本開示は、添付図面の使用を介して追加の特異性および詳細を伴って記述され、説明される。
【図面の簡単な説明】
【００３３】
【図１】１つまたは複数の実施形態による、パーソナル・アシスタント・サービス・システムを示す詳細な概略図。
【図２】１つまたは複数の実施形態による、図１のパーソナル・アシスタント・サービス・システムがその中で動作するメッセージング・システムを示す概略図。
【図３Ａ】１つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
【図３Ｂ】１つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
【図３Ｃ】１つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
【図３Ｄ】１つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
【図３Ｅ】１つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
【図３Ｆ】１つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
【図３Ｇ】１つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
【図３Ｈ】１つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
【図３Ｉ】１つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
【図４Ａ】１つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
【図４Ｂ】１つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
【図４Ｃ】１つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
【図５】１つまたは複数の実施形態による、メッセージングを介してパーソナル・アシスタント・サービスを提供する方法内の一連の動作の実施形態を示すフローチャート。
【図６】１つまたは複数の実施形態による、例のコンピューティング・デバイスを示すブロック図。
【図７】１つまたは複数の実施形態による、ソーシャル・ネットワーキング・システムの例のネットワーク環境を示す図。
【図８】１つまたは複数の実施形態による、ソーシャル・ネットワーキング・システムの例のソーシャル・グラフを示す図。
【発明を実施するための形態】
【００３４】
本開示の実施形態は、エージェントの能力を改善してユーザ要求を満たすパーソナル・アシスタント・サービス・システムを提供する。具体的には、１つまたは複数の実施形態は、要求の意図を判定し、要求を満たす際にエージェントを支援する情報を提供するパーソナル・アシスタント・サービス・システムを提供する。たとえば、本システムは、自然言語プロセッサを使用して要求の意図を判定することができる。その後、本システムは、判定された意図と一貫する情報を含むように、振り当てられたエージェントのエージェント・ユーザ・インタフェースを構成することができる。エージェント・ユーザ・インタフェースの構成は、エージェントが、関連する情報またはサービスを素早く選択し、メッセージング・アプリケーションにおいて要求するユーザに提供することを可能にするためにエージェント・ユーザ・インタフェースにおいて１つまたは複数のオプションを提供することを含んでもよい。
【００３５】
以下により詳細に説明されるように、本システムは、ある形でユーザを支援するために要求と共に電子メッセージをメッセージング・アプリケーションのユーザから受信する。具体的には、本システムは、ユーザのために１つまたは複数のアクションを実行する要求またはある種の情報をユーザに提供する要求を満たすことができる。たとえば、本システムは、要求に関連して必要な情報をユーザから入手するためにユーザと対話することによって要求を満たすためにエージェントを振り当てることができる。
【００３６】
ユーザ要求を満たすためにエージェントを振り当てることに関連して、本システムは、自然言語処理を使用して要求の意図を判定することもできる。具体的には、本システムは、ユーザが好む支援のタイプを判定するのに自然言語プロセッサを使用することができる。たとえば、自然言語プロセッサは、ユーザが特定の商品またはサービスを好むかどうかを示す、電子メッセージ内の単語および／または句を識別することができる。自然言語プロセッサは、システムが要求を正確に満たすことを可能にする、要求に関連する他の情報を識別することもできる。本システムの１つまたは複数の実施形態は、エージェントが、要求の判定された意図に対する手作業の調整を行うことを可能にする。
【００３７】
要求の意図を識別した後に、本システムは、エージェントが要求を満たすことができる時間を加速するためにエージェント・ユーザ・インタフェース内で情報を提供することができる。たとえば、本システムは、エージェントが見つけなければならない情報の量を減らすために、要求の判定された意図に関連するオプションを識別することができる。具体的には、本システムは、ユーザとのメッセージの交換での使用のために識別されたオプションを含むようにエージェント・ユーザ・インタフェースを構成することができる。
【００３８】
さらに、本システムは、エージェント・ユーザ・インタフェースに情報を提供するためにサードパーティ・サービスと相互作用することができる。具体的には、本システムは、エージェントがユーザの要求を満たすのを支援することができる情報を入手するために、要求の判定された意図に基づいてサードパーティ・サービスと通信することができる。たとえば、本システムは、ユーザの要求の判定された意図に基づいてオプションのリストを見るためにサードパーティ・サービスに要求を送ることができる。サードパーティ・サービスからオプションのリストを入手した後に、本システムは、ユーザが適当なオプションを選択するのをエージェントが支援できるように、エージェント・ユーザ・インタフェース内でオプションのリストを提供することができる。
【００３９】
さらに、本システムは、将来の要求と共に使用するために機械学習モデルをトレーニングするのに、ユーザ要求に関連する情報を使用することができる。具体的には、本システムは、要求が成功であったかどうかを判定し、本システムがエージェントに提供した情報の正確さを判定するために、エージェントによるアクションを識別することができる。たとえば、本システムは、自然言語プロセッサが意図をどの程度成功裏に判定したのか、およびエージェントに提供された情報が正確かつ／または役立つものであったかどうかを判定することができる。ユーザ要求に関連する情報を使用して機械学習モデルをトレーニングすることによって、本システムは、意図を判定する際の自然言語プロセッサの正確さを改善すると同時に、エージェント・ユーザ・インタフェース内でより役立つ情報をエージェントに提供することができる。さらに、機械学習モデルのトレーニングは、本システムが将来のユーザ要求に関連する追加のタスクを自動化することを可能にすることができる。
【００４０】
本明細書で使用される時に、用語「電子メッセージ」は、２つ以上のコンピューティング・デバイスの間のすべての形の電子通信を指す。メッセージは、テキスト・メッセージ、写真、ステッカまたは他のアイコン、ビデオ、録音、音楽、音声メールなどを含んでもよい。１つまたは複数の実施形態では、メッセージは、リアルタイムまたはほぼリアルタイムで通信されるインスタント・メッセージである。しかし、代替実施形態では、メッセージは、ＳＭＳメッセージ、電子メール、またはソーシャル・ネットワークの投稿もしくはコメントなど、任意の形の電子通信を指すことができる。
【００４１】
本明細書で使用される時に、用語「要求」は、情報を提供し、かつ／または１つもしくは複数のアクションを実行するためのクエリに関連するメッセージ内のコンテンツを指す。様々な例では、要求は、ユーザに情報を提供し、かつ／または、予約を行うこと、旅行プランを予約すること、品目を購入すること、別のユーザとの通信セッションを開始すること、与えられた主題に関する質問に答えること、メディア・コンテンツ・アイテムを再生すること、またはユーザがインターネットを介して実行できる可能性があるタスクを含むがこれに限定されないアクションを実行することの指示を含む電子メッセージ内のコンテンツを含んでもよい。
【００４２】
本明細書で使用される時に、メッセージ内の要求に関する用語「意図」は、要求の目的を指す。たとえば、要求の意図は、要求されるアクションおよび関連する主題を含むことができる。また、本明細書で使用される時に、用語「パーソナル・アシスタント・サービス」は、本システムによって振り当てられるエージェントまたは人が要求の判定された意図に従ってユーザ要求を満たすサービスを指す。たとえば、パーソナル・アシスタント・サービスは、エージェントがエージェント・ユーザ・インタフェースの支援を得、かつ、メッセージング・アプリケーション内でインスタント・メッセージをユーザと交換することによって、ユーザ要求を満たすことができるサービスを含むことができる。
【００４３】
図１は、パーソナル・アシスタント・サービス・システム１００（または単に「システム」）の詳細な概略図である。システム１００は、パーソナル・アシスタント・サービスを実施する複数のコンポーネントを含むことができる。具体的には、図１に示されているように、システム１００は、通信マネージャ１０２、タスク・マネージャ１０４、言語プロセッサ１０６、ユーザ・インタフェース・マネージャ１０８、メッセージ・ジェネレータ１１０、人工知能エンジン１１２、およびデータ・マネージャ１１４を含むことができる。コンポーネントが、図１では別々であるものとして示されているが、コンポーネントのいずれもが、単一のファシリティまたはモジュールなど、より少数のコンポーネントに組み合わされてもよく、あるいは、特定の実施形態のために機能することができるようにより多数のコンポーネントに分割されてもよいことを了解されたい。さらに、コンポーネントは、単一のアプリケーション（たとえば、メッセージング・アプリケーション）または複数のアプリケーションのためにパーソナル・アシスタント・サービスを実施することができる。
【００４４】
コンポーネントは、ソフトウェア、ハードウェア、またはその両方を含むことができる。たとえば、コンポーネントは、非一時的コンピュータ可読記憶媒体上に記憶された、コンピューティング・デバイスの少なくとも１つのプロセッサによって実行可能なコンピュータ命令を含むことができる。少なくとも１つのプロセッサによって実行されたとき、コンピュータ実行可能命令は、コンピューティング・デバイスに、本明細書で説明される方法および工程を実行させることができる。代替案では、コンポーネントは、ある種の機能または機能のグループを実行するための特殊目的処理デバイスなどのハードウェアを含むことができる。それに加えてまたはその代わりに、コンポーネントは、コンピュータ実行可能命令およびハードウェアの組合せを含むことができる。
【００４５】
１つまたは複数の実施形態では、通信マネージャ１０２は、メッセージング・アプリケーションを介してユーザから受信されたメッセージを処理することができる。たとえば、通信マネージャ１０２は、メッセージング・アプリケーションのメッセージング・スレッド内でユーザから送られたメッセージのディレクタとして動作し、各メッセージの送信者および受信者を識別し、エージェントへの振り当てのためにメッセージをタスク・マネージャ１０４に送ることができる。同様に、通信マネージャ１０２は、メッセージがユーザ宛であることを識別することによって、振り当てられたエージェントからのメッセージをメッセージング・スレッド内でユーザに向けることもできる。通信マネージャ１０２は、エージェントからのメッセージをユーザに関連する複数のコンピューティング・デバイス（すなわち、ユーザがメッセージング・アプリケーションのバージョンをインストールした各デバイス）に向けることができる。
【００４６】
前に述べたように、タスク・マネージャ１０４は、ユーザにパーソナル・アシスタント・サービスを提供するためにシステム１００のエージェントにタスクを振り当てることができる。具体的には、タスク・マネージャ１０４は、通信マネージャ１０２からメッセージを受け取り、メッセージ内の要求を完了するためにメッセージをエージェントに振り当てることができる。たとえば、タスク・マネージャ１０４は、複数のエージェントの作業負荷を管理し、エージェントの作業負荷に基づいてエージェントにタスクを振り当てることができる。それに加えてまたはその代わりに、タスク・マネージャ１０４は、エージェントの位置、エージェントによって話される言語、またはエージェントもしくは支援を要求するユーザの他の特性に基づいてエージェントにタスクを振り当てることができる。
【００４７】
１つまたは複数の実施形態では、言語プロセッサ１０６は、要求の意図を判定することができる。具体的には、言語プロセッサ１０６は、ユーザからの１つまたは複数のメッセージ内のテキストに基づいて要求の意図を判定するためにメッセージを分析することができる。たとえば、言語プロセッサ１０６は、要求のタイプおよび要求の目的を示す単語および句を識別するためにテキストを解析するのに自然言語処理技法を使用することができる。たとえば、言語プロセッサ１０６は、１つまたは複数のメッセージ内の識別された単語および句に基づいて、要求の広いカテゴリ、要求の狭いカテゴリ、要求に関連する特定の詳細、または要求に関連する他の情報を判定することができる。
【００４８】
１つまたは複数の実施形態によれば、ユーザ・インタフェース・マネージャ１０８は、システム１００に関連する複数のエージェントのエージェント・ユーザ・インタフェースを管理することができる。たとえば、ユーザ・インタフェース・マネージャ１０８は、エージェントがパーソナル・アシスタント・サービスに関連するタスクを実行するのを支援するためにエージェント・ユーザ・インタフェース内でコンテンツを提供することができる。例示のために、ユーザ・インタフェース・マネージャ１０８は、ユーザ要求の判定された意図と一貫する情報および視覚的要素を提供するためにシステム１００内の他のコンポーネントと通信することができる。さらに、ユーザ・インタフェース・マネージャ１０８は、メッセージング・アプリケーションのエージェント固有バージョン内にエージェント・ユーザ・インタフェースを表示することができる。
【００４９】
システム１００は、ユーザ要求に関連してエージェントに提供するためのメッセージの自動生成を可能にするためにメッセージ・ジェネレータ１１０をも含むことができる。具体的には、メッセージ・ジェネレータ１１０は、ユーザ要求の判定された意図の特性を使用して、対応するエージェントがメッセージをタイプするか、または他の形で入力することを要求せずに、ユーザに送るためのメッセージを生成することができる。たとえば、判定された意図および要求に関連する他の情報に基づいて、メッセージ・ジェネレータ１１０は、エージェントが要求を正確に満たすためにユーザからの１つまたは複数の追加の詳細を必要とすると判定し、１つまたは複数の追加の詳細に関してユーザに送るべきメッセージを自動的に生成することができる。
【００５０】
さらに、システム１００は、パーソナル・アシスタント・サービスに従って機械学習モデルをトレーニングし、実施するために人工知能エンジン１１２（または「ＡＩエンジン」）を含むことができる。たとえば、ＡＩエンジン１１２は、要求に関連する情報を識別するためにシステム１００内の他のコンポーネントと通信することができる。具体的には、ＡＩエンジン１１２は、ユーザによる要求、要求の判定された意図、エージェントによるアクション、エージェントとユーザとの間の追加の通信、および要求の結果を含むメッセージからテキストを入手することができる。ＡＩエンジン１１２は、機械学習モデルをトレーニングするのに識別された情報を使用することができ、このトレーニングは、意図のさらなる判定を改善すると同時に、ユーザ要求を満たすシステム１００の能力を高め、エージェントの作業負荷を減らすことができる。
【００５１】
１つまたは複数の実施形態では、データ・マネージャ１１４は、システム１００のコンポーネントによる使用のためのデータの管理および記憶を可能にすることができる。具体的には、データ・マネージャ１１４は、ユーザ情報、言語辞書、可能な要求意図情報、アクション情報、およびエージェントがユーザ要求を満たすのをシステム１００が支援することを可能にする他の情報を記憶することができる。データ・マネージャ１１４は、サーバ、エージェント・クライアント・デバイス、およびユーザ・クライアント・デバイスの間の通信を可能にすることに関連するデータを維持することもできる。さらに、データ・マネージャ１１４は、任意の個数のデバイスにまたがってシステム１００に関連する情報を維持することができる。たとえば、データ・マネージャ１１４は、単一のストレージデバイスまたは複数の分散されたデバイス（たとえば、クラウド・ストレージ・システムまたはサーバのネットワーク）上に情報を記憶することができる。
【００５２】
図２は、メッセージング・システム２００の概略図であり、図１のパーソナル・アシスタント・サービス・システム１００がメッセージング・システム２００内で動作する。図２に示されているように、メッセージング・システム２００は、メッセージング・アプリケーションに従って互いに通信する複数のデバイスまたはコンポーネントを含むことができる。具体的には、メッセージング・システム２００は、クライアント・デバイス２０４を操作するユーザ２０２、パーソナル・アシスタント・サービス・システム１００を含むサーバ２０６（単数または複数）、エージェント・クライアント・デバイス２１０を操作するエージェント２０８、およびサードパーティ・サービス２１２を含むことができる。図示されてはいないが、メッセージング・システム２００は、任意の数のユーザおよび対応するクライアント・デバイスを含むことができる。さらに、メッセージング・システム２００内のデバイスまたはコンポーネントのそれぞれは、ネットワーク２１４を介して互いに通信することができる。
【００５３】
図２は、クライアント・デバイス２０４、サーバ２０６（単数または複数）、エージェント・クライアント・デバイス２１０、サードパーティ・システム、およびネットワーク２１４の特定の配置を示すが、様々な代替配置が可能である。たとえば、図２は、サーバ２０６（単数または複数）と直接に通信しているエージェント・クライアント・デバイス２１０を示す。代替実施形態では、エージェント・クライアント・デバイス２１０は、ネットワーク２１４によってサーバ２０６（単数または複数）と通信することができる。同様に、図２は、ネットワーク２１４を介してサーバ２０６（単数または複数）と通信するサードパーティ・サービスおよびクライアント・デバイス２０４を示すが、サードパーティ・サービスおよび／またはクライアント・デバイス２０４は、サーバ２０６（単数または複数）と直接に通信することができる。
【００５４】
前に述べたように、ユーザ２０２は、エージェント・クライアント・デバイス２１０を使用するエージェント２０８と通信するのにクライアント・デバイス２０４を使用することができる。具体的には、ユーザ２０２は、サーバ２０６（単数または複数）によってエージェント２０８と通信することができる。たとえば、ユーザ２０２は、１つまたは複数のメッセージング・フォーマットに従って（たとえば、クライアント・デバイス２０４上で動作するメッセージング・アプリケーションを使用するインスタント・メッセージで）エージェント２０８への要求を含む電子メッセージを構成することができる。例示のために、クライアント・デバイス２０４は、要求を含む電子メッセージをネットワーク２１４を介してサーバ２０６（単数または複数）に送ることができる。サーバ２０６（単数または複数）は、電子メッセージがパーソナル・アシスタント・サービス・システム１００に向けられると判定し、電子メッセージを、エージェント・クライアント・デバイス２１０の振り当てられたエージェント２０８に送ることができる。
【００５５】
図２に関連する説明は、サーバ２０６（単数または複数）を介してクライアント・デバイス２０４からエージェント・クライアント・デバイス２１０にインスタント・メッセージを送ることに関するが、ユーザ２０２は、エージェント２０８に他のタイプの電子メッセージを送り、エージェント２０８から電子メッセージを受信することができる。たとえば、ユーザ２０２は、テキスト・メッセージでパーソナル・アシスタント・サービス・システム１００に要求を送り、テキスト・メッセージを介してエージェント２０８と通信することができる。同様に、エージェント２０８は、エージェント・クライアント・デバイス２１０上のメッセージング・アプリケーションを使用して、ユーザ２０２にメッセージを送り、ユーザ２０２からメッセージを受信することができる。
【００５６】
さらに、図２は、人としてユーザ２０２およびエージェント２０８を示すが、ユーザ２０２および／またはエージェント２０８は、他のエンティティを含んでもよい。たとえば、ユーザ２０２は、メッセージング・システム２００またはソーシャル・ネットワーキング・システムに関するアカウントを有する会社とすることができる。別の例では、エージェント２０８は、パーソナル・アシスタント・サービス・システム１００が、人のエージェントを使用せずに単純な要求を満たし、かつより困難な要求に人のエージェントを振り当てることができるように、サーバ２０６（単数または複数）にある人工知能を含むこともできる。さらに、人工知能は、図１で説明したように、要求に関連する詳細に加えて、要求の意図を自動的に判定することによって、人のエージェントが要求を満たすのを支援することができる。
【００５７】
１つまたは複数の実施形態では、パーソナル・アシスタント・サービス・システム１００は、ユーザ要求を満たすための情報を入手するために、サードパーティ・サービスと通信することもできる。具体的には、システム１００は、電子メッセージ内の要求が、サードパーティ・サービスが提供する特定のサービスに関すると判定することができる。サーバ２０６（単数または複数）は、エージェント２０８がユーザ要求を満たすのを支援することができる情報を入手するためにサードパーティ・サービスに連絡することができる。
【００５８】
図２に示されているように、ユーザ２０２およびエージェント２０８は、それぞれクライアント・デバイス２０４およびエージェント・クライアント・デバイス２１０と対話することができる。クライアント・デバイスの例は、モバイル・デバイス（たとえば、スマートフォン、タブレット）、ラップトップ、デスクトップ、または任意の他のタイプのコンピューティング・デバイスなどのコンピューティング・デバイスを含む。図６および対応する説明は、コンピューティング・デバイスに関する追加の情報を提供する。さらに、以前に述べたように、クライアント・デバイスは、ネットワーク２１４を介して互いに、およびサーバ２０６（単数または複数）と通信することができる。１つまたは複数の実施形態では、ネットワーク２１４は、インターネットまたはワールド・ワイド・ウェブを含む。しかし、ネットワーク２１４は、以下に図６を参照してさらに説明するように、様々な通信技術およびプロトコルを使用する１つまたは複数のプライベート・ネットワークおよび／またはパブリック・ネットワークを含むことができる。
【００５９】
前に説明したように、図１〜２を参照して以前に説明したシステムおよびコンポーネントは、メッセージング・システム２００およびパーソナル・アシスタント・サービス・システム１００が、メッセージング・システム２００に関連するユーザによる要求を満たすことを可能にすることができる。具体的には、メッセージング・システム２００は、ユーザがパーソナル・アシスタント・サービス・システム１００と通信することを可能にし、パーソナル・アシスタント・サービス・システム１００は、エージェントが要求を正確に効率的に満たすことを可能にする、要求に関連する情報を識別することができる。以下により詳細に説明するように、パーソナル・アシスタント・サービス・システム１００のコンポーネントは、単独でおよび／またはメッセージング・システム２００の他のコンポーネントと組み合わされて、１つまたは複数のエージェント・ユーザ・インタフェースを提供することができる。コンポーネントは、エージェントが、様々な目的のためにディスプレイ要素の集合と対話することを可能にすることができる。具体的には、図３Ａ〜３Ｉおよび以下の説明は、エージェント・ユーザ・インタフェースの様々な例示的の実施形態およびパーソナル・アシスタント・サービスを実施するための特徴を示す。
【００６０】
たとえば、図３Ａ〜３Ｉは、電子メッセージングおよびユーザ要求を満たすことを可能にするためにメッセージング・アプリケーションに関連して提供されるエージェント・ユーザ・インタフェースの様々なビューを示す。いくつかの例では、エージェント・クライアント・デバイスは、図１を参照して説明したメッセージング・システム２００およびパーソナル・アシスタント・サービス・システムのコンポーネントのうちの少なくともいくつかを実施することができる。たとえば、図３Ａは、メッセージング・システム２００のユーザにパーソナル・アシスタント・サービスを提供するためのエージェント・ユーザ・インタフェース３０２を有するエージェント・クライアント・デバイス３００を示す。例示のために、いくつかの実施形態では、エージェント・クライアント・デバイス３００は、言語プロセッサ１０６、ユーザ・インタフェース・マネージャ１０８、メッセージ・ジェネレータ１１０、またはデータ・マネージャ１１４に関連する工程のうちの少なくともいくつかを実施することができる。
【００６１】
さらに、エージェント・クライアント・デバイス３００は、エージェント・ユーザ・インタフェース３０２の表示を可能にする任意のクライアント・デバイスとすることができる。図３Ａ〜３Ｉは、デスクトップ・モニタを有するデスクトップ・コンピューティング・デバイスを含むエージェント・クライアント・デバイス３００を示す。しかし、エージェント・クライアント・デバイス３００は、タブレット・デバイス、ハンドヘルド・デバイス（たとえば、スマートフォン）、より大きい無線デバイス、ラップトップまたはデスクトップ・コンピュータ、携帯情報端末デバイス、または本明細書で説明される工程および／もしくは動作のうちの１つもしくは複数を実行することができる他の適切なコンピューティング・デバイスなどであるが、これに限定されない任意の適切なコンピューティング・デバイスを含むことができる。
【００６２】
図３Ａに示されているように、エージェント・クライアント・デバイス３００は、エージェント・ユーザ・インタフェース３０２を表示するか、または提供するためのスクリーン３０４を含む。具体的には、エージェント・クライアント・デバイス３００は、エージェントがユーザと通信し、ユーザ要求を満たすのを支援するように設計されたソフトウェアを動作させることができる。たとえば、エージェント・クライアント・デバイス３００は、エージェント使用のためにカスタマイズされ、エージェントがメッセージング・アプリケーションの異なるユーザ・バージョンを有するユーザと通信することをも可能にする、あるバージョンのメッセージング・アプリケーションを動作させることができる。エージェント・クライアント・デバイス３００上で動作するメッセージング・アプリケーションは、エージェントがインスタント・メッセージを介してユーザと対話することを可能にすると同時に、ユーザの要求を満たす際に使用するための情報をエージェントに提供することも行う、エージェント・ユーザ・インタフェース３０２を提供することができる。
【００６３】
１つまたは複数の実施形態では、エージェント・ユーザ・インタフェース３０２は、メッセージをユーザと交換し、ユーザによる要求に関する情報を取り出すための別々のエリアを含むことができる。具体的には、エージェント・ユーザ・インタフェース３０２は、メッセージング・インタフェース３０６およびブラウザ・インタフェース３０８を含むことができる。たとえば、エージェント・ユーザ・インタフェース３０２は、図３Ａに示されているように、メッセージング・アプリケーション内の隣り合った位置にメッセージング・インタフェース３０６およびブラウザ・インタフェース３０８を含むことができる。代替案では、エージェント・ユーザ・インタフェース３０２は、別々のウィンドウ、タブ、または他の方法など、メッセージング・アプリケーション内の他の位置においてメッセージング・インタフェース３０６およびブラウザ・インタフェース３０８を含むことができる。それに加えてまたはその代わりに、エージェント・ユーザ・インタフェース３０２は、特定の実施形態のために動作するように、他のエリアまたはインタフェースを含むことができる。
【００６４】
図示されているように、メッセージング・インタフェース３０６は、ユーザおよびエージェントを含むメッセージを含むことができる。たとえば、メッセージング・インタフェース３０６は、ユーザとエージェントとの間で交換された電子メッセージの履歴を含む、ユーザとエージェントとの間のメッセージング・スレッド３１０を含むことができる。例示のために、ユーザおよびエージェントがインスタント・メッセージを交換する時に、メッセージング・スレッド３１０は、ユーザ／エージェントがメッセージを送った時の時系列順でインスタント・メッセージを追加することができる。メッセージング・インタフェース３０６は、メッセージング・スレッド３１０がメッセージング・インタフェース３０６内にすべてが収まらない場合に、エージェントがメッセージング・スレッド３１０中をスクロールすることを可能にすることもできる。
【００６５】
メッセージング・システム２００は、ユーザがメッセージング・スレッド３１０内の電子通信の間で区別するのを支援するために、様々な電子通信特性を提供することができる。たとえば、図３Ａに示されているように、メッセージング・インタフェース３０６は、ユーザのアカウントから受信された電子メッセージ（たとえば、メッセージ３１２ａ）を、メッセージング・インタフェース３０６の片側（たとえば、左側）に向かって表示する。その一方で、メッセージング・インタフェース３０６は、エージェントから送られた電子メッセージ（たとえば、図３Ｄのメッセージ３３４ａ）を、メッセージング・インタフェース３０６の反対側（すなわち、右側）に向かって表示することができる。１つまたは複数の実施形態では、電子メッセージの位置決めおよび方位は、メッセージング・インタフェース３０６内に表示される様々な電子通信源の明瞭なインジケータをエージェントに提供する。
【００６６】
エージェントが電子通信を区別するのを支援するメッセージング・インタフェース３０６の別の特性は、電子通信の色であってもよい。たとえば、メッセージング・インタフェース３０６は、送られた電子メッセージを第１の色で、受信された電子メッセージを第２の色で表示する。１つまたは複数の実施形態では、第１および第２の色は、反転された字体色を有する、黒および白であってもよい。代替実施形態では、メッセージング・インタフェース３０６は、白の背景および異なる色の輪郭を用いて電子メッセージを表示してもよい。追加のまたは代替の実施形態では、メッセージング・インタフェース３０６は、異なるパターンの背景、異なるフォント、異なるサイズ、または送られた電子メッセージを受信された電子メッセージと区別できる任意の他の形を用いて電子メッセージを表示することができる。
【００６７】
メッセージング・インタフェース３０６は、電子メッセージへのコンテンツの入力を可能にするためにツールバー３１４を含むこともできる。具体的には、ツールバー３１４は、ユーザに様々な入力オプションまたは他のオプションを提供する１つまたは複数の選択可能な入力コントロールを含むことができる。たとえば、ツールバー３１４は、テキスト入力フィールド３１６ａ、マルチメディア入力コントロール３１６ｂ、シンボル・コントロール３１６ｃ、および「いいね」インジケータ・コントロール３１６ｄを含むことができる。１つまたは複数の代替実施形態では、ツールバー３１４は、異なる順序でコントロールを提供することができ、表示されていない他のコントロールを提供してもよく、あるいは、図３Ａのコントロールのうちの１つまたは複数を省略してもよい。
【００６８】
エージェントは、電子通信を構成し、かつ送るために、コントロールのいずれかと対話することができる。たとえば、エージェントが、テキスト入力フィールド３１６ａと対話する（たとえば、マウス・カーソルを用いてテキスト入力フィールド３１６ａを選択することによって）場合に、メッセージング・インタフェース３０６は、エージェントがフィールドにテキストをタイプできることを示すカーソルを提供し、エージェントがテキストを入力することを可能にすることができる。エージェントが、マルチメディア入力コントロール３１６ｂと対話する場合に、メッセージング・インタフェース３０６は、ユーザが電子メッセージ内に様々なマルチメディア・コンテンツ・アイテム（たとえば、デジタル写真、デジタル・ビデオ）を入力することを可能にすることができる。同様に、エージェントがシンボル・コントロール３１６ｃと対話する場合に、メッセージング・インタフェース３０６は、エージェントが電子メッセージに投入するために選択できるシンボルのセレクションを提示することができる。同様に、「いいね」インジケータ・コントロール３１６ｄの選択は、電子メッセージ内に「いいね」アイコンを入力することができる。
【００６９】
１つまたは複数の実施形態では、ユーザが、メッセージング・インタフェース３０６のテキスト入力フィールド３１６ａ内でタイピングを開始する時に、メッセージング・インタフェース３０６は、テキスト入力フィールド３１６ａ内に対応する文字を表示することができる。図３Ａに示されているように、エージェントは、メッセージング・スレッド３１０内の会話に参加するユーザ（「ボブ・ポッター」）とメッセージを交換する。たとえば、以下により詳細に示されるように、エージェントがユーザからメッセージを受信した後に、エージェントは、テキスト入力フィールド３１６ａを選択することと、キーボードを使用してテキストを入力することとによってメッセージで応答することができる。
【００７０】
前に述べたように、パーソナル・アシスタント・サービス・システム１００は、ユーザからの要求と共に、システム１００に向けられたメッセージを受信することができる。メッセージを受信した後に、システム１００は、エージェントの作業負荷または他の判断基準に基づいて、エージェントに要求を振り当てることができる。一例では、エージェントは、有効な要求のキューを見て、キューから要求を選択することができる。エージェントへの要求の振り当ては、エージェント・ユーザ・インタフェース３０２に、メッセージング・インタフェース３０６内にユーザからのメッセージを表示させることができる。例示のために、メッセージング・インタフェース３０６は、ユーザおよびエージェントを含む新しいメッセージング・スレッド３１０を表示し、メッセージング・スレッド３１０の最上部にユーザからの第１のメッセージを提供することができる。
【００７１】
前に述べたように、ユーザからメッセージを受信した後に、システム１００は、メッセージ内の要求の意図を判定することができる。具体的には、システム１００は、キーワード、句、数、または、要求に関する特定の詳細を含む、要求の意図を示す他の情報を識別するために、メッセージのテキストを分析することができる。たとえば、図３Ｂは、システム１００が、ユーザからの電子メッセージ３１２ｂを分析し終え、メッセージ内の要求の意図を判定し終えているエージェント・ユーザ・インタフェース３０２を示す。エージェント・ユーザ・インタフェース３０２は、意図要素３１８内に判定された意図を表示することができる。例示のために、システム１００は、ユーザがレストラン予約を行うことを求めると判定することができる。
【００７２】
メッセージの意図を判定した後に、システム１００は、要求に基づいて１つまたは複数の関連する詳細をエージェントに提供することができる。具体的には、エージェント・ユーザ・インタフェース３０２は、複数の詳細要素３２０を表示し、あるいは、エージェントが必要とするか、または要求を正確に満たすのに有用であり得る詳細に関連する複数の詳細フィールドを追加することができる。たとえば、ユーザがレストラン予約を要求している場合に、エージェント・ユーザ・インタフェース３０２は、通常のレストラン予約に関連する詳細を含む複数の詳細要素３２０を表示することができる。例示のために、エージェント・ユーザ・インタフェース３０２は、人数、日付、時刻、位置、料理（すなわち、レストランのタイプ）、および予算に関連する詳細要素３２０を表示することができる。
【００７３】
１つまたは複数の実施形態では、エージェント・ユーザ・インタフェース３０２は、図３Ｂに示されたものより多数または少数の詳細要素３２０を表示することができる。たとえば、エージェント・ユーザ・インタフェース３０２は、判定された意図に具体的に関連する複数の詳細要素３２０を表示することができる。各判定された意図は、エージェントが対応する要求を正確に満たすための異なる個数／タイプの詳細に関連付けられ得る。例示のために、要求が、飛行機旅行を予約する判定された意図を有する場合に、エージェント・ユーザ・インタフェース３０２は、人数、出発日、帰還日、おおよその時間、出発位置、到着位置、座席情報、手荷物情報などに関する詳細要素３２０を提供することができる。
【００７４】
詳細要素３２０の提示に加えて、エージェント・ユーザ・インタフェース３０２は、詳細要素３２０のうちの１つまたは複数に対応する詳細を事前に追加することができる。たとえば、メッセージが、判定された意図に関連する詳細を含む場合に、システム１００は、詳細を識別するためにメッセージのテキストを分析することができ、エージェント・ユーザ・インタフェース３０２は、対応する詳細要素３２０内に識別された詳細を含めることができる。例示のために、レストラン予約に関して、システム１００は、メッセージが、人数、位置、日付、および料理に関する情報を含むと判定することができ、エージェント・ユーザ・インタフェース３０２は、対応する詳細要素３２０に識別された詳細を事前に追加することができる。システム１００が、要求される詳細または関係する詳細の一部を判定することができない場合に、エージェント・ユーザ・インタフェース３０２は、対応する詳細要素３２０ａ、３２０ｂのうちの１つまたは複数を未追加のままにすることができる。さらに、エージェントは、未追加の詳細要素３２０ａ、３２０ｂのうちの１つまたは複数に関する情報を手作業で入力することができる。
【００７５】
エージェント・ユーザ・インタフェース３０２は、エージェントが簡単に識別するために、メッセージ内の情報を強調表示することもできる。たとえば、メッセージを分析する際に、システム１００は、メッセージ内の判定された意図に対応する詳細を識別し、識別された詳細の句の単語を強調表示することができる。さらに、システム１００は、メッセージ内の識別された詳細をカラー・コーディングし、対応する詳細要素３２０の隣のカラー・コーディング・ボックス３２２によって示される対応する詳細要素３２０に同一のカラー・コードを適用することができ、その結果、エージェントは、システム１００がどの詳細を自動的に識別し、事前に追加したのかを簡単に識別できるようになる。代替案では、システム１００は、特定の実施形態のために動作することのできる、エージェントが要求の詳細を素早く識別することを可能にする、他のタイプのメッセージの強調表示またはメッセージに対するメモを適用することができる。たとえば、エージェント・ユーザ・インタフェース３０２は、エージェントに知らせるために、下線を付けること、太字にすること、フォント変更、メッセージの隣のメモ、他の視覚的指示、可聴指示、または他の指示を使用することができる。
【００７６】
１つまたは複数の実施形態によれば、エージェント・ユーザ・インタフェース３０２は、メッセージング・インタフェース３０６の上部のオーバーレイ３２４内に意図要素３１８および詳細要素３２０を表示することができる。ユーザおよびエージェントが対話する時に、オーバーレイ３２４は、ユーザとエージェントとの間のメッセージのいずれかを覆わないように、メッセージング・インタフェース３０６内で移動することができる。たとえば、ユーザおよび／またはエージェントがメッセージを送る場合に、オーバーレイ３２４は、メッセージング・インタフェース３０６内でより下に位置を変更することができ、その結果、オーバーレイ３２４は、メッセージング・スレッド３１０内の最も最近のメッセージの真下になる。代替案では、エージェント・ユーザ・インタフェース３０２は、ブラウザ・インタフェース３０８、別のインタフェース、または別のウィンドウもしくはタブ内など、エージェント・ユーザ・インタフェース３０２の別々のエリア内に意図要素３１８および詳細要素３２０を表示することができる。
【００７７】
１つまたは複数の実施形態では、エージェント・ユーザ・インタフェース３０２は、エージェントが判定された意図を変更することを可能にすることができる。たとえば、エージェントが、要求を有するメッセージを読み、自動的に判定された意図が不正確であると判定する場合がある。エージェントは、その後、意図要素３１８を選択することと、複数のオプション（たとえば、ドロップダウン・メニュー内）から新しい意図を選択することとによって、要求の新しい意図を選択することができる。エージェント・ユーザ・インタフェース３０２は、たとえば、判定された意図に関する複数の事前定義の意図オプションを表示することができる。１つまたは複数の実施態様では、エージェント・ユーザ・インタフェース３０２は、エージェントが判定された意図の別々の部分を洗練させる（たとえば、「宝石類を購入する」を「ネックレスを購入する」に変更する）ことを可能にするために、判定された意図に関する複数の選択可能な要素を提供することができる。
【００７８】
代替案では、エージェントは、新しい意図を手作業で入力することができ、システム１００は、手作業で入力された意図が、システム１００が認識する特定の意図に対応すると判定することができる。システム１００が意図を認識しない場合には、エージェントは、支援なしで要求を実行することができ、システム１００は、将来の要求の意図を認識するために人工知能エンジン１１２をトレーニングするために、エージェントのアクションを監視することができる。したがって、システム１００は、将来の要求意図をよりよく識別できるようになるためにエージェントから学習することができる。
【００７９】
エージェントが、要求の意図を変更する場合に、システム１００は、それに応じて詳細要素３２０を調整することができる。具体的には、意図の変更は、要求を正確に満たすのに要求されるか、または役立つ異なる詳細をもたらすこともできる。たとえば、エージェントが、「日本食品雑貨店を見つける」に意図を変更する場合に、システム１００は、特定の食品雑貨店を見つけることに対応する詳細要素３２０を提示することができる。システム１００は、メッセージが対応する詳細のいずれかを含むかどうかを判定するために、メッセージをもう一度分析することもできる。
【００８０】
さらに、システム１００は、エージェントがエージェント・ユーザ・インタフェース３０２内に表示された詳細要素３２０のいずれかを変更することを可能にすることができる。たとえば、エージェントは、システム１００がメッセージを分析する時に自動的に識別した詳細のうちの１つまたは複数が誤っていると判定することができる。したがって、エージェントは、対応する詳細要素（たとえば、人数）を選択し、ドロップダウン・メニューまたは他の入力方法から要求の新しい詳細を選択することができる。１つまたは複数の詳細要素３２０の変更は、システム１００に、以下に説明するように、サードパーティ・サービスからブラウザ・インタフェース３０８内に提供される情報など、エージェントに提供される情報を更新させることができる。
【００８１】
エージェント・ユーザ・インタフェース３０２は、エージェントが要求に関する情報を検索するために１つまたは複数のサードパーティを選択することを可能にする複数のサードパーティ要素３２６を表示することもできる。具体的には、サードパーティ要素３２６は、パーソナル・アシスタント・サービス・システム１００に関連するサードパーティ・サービスに関連付けられ得る。たとえば、システム１００は、エージェントがユーザ要求を満たすのを支援するための情報をシステム１００が入手することを可能にするサードパーティ・サービスと契約し、または他の形でこれに関連するようにすることができる。例示のために、図３Ｂは、レストラン・ファインダ、検索エンジン、およびレビュー・サイトに対応するサードパーティ要素３２６を示す。
【００８２】
１つまたは複数の実施形態では、システム１００は、判定された意図に関する情報を入手するためにサードパーティ・サービスのうちの１つまたは複数に自動的に連絡をとることができる。たとえば、図３Ｂのユーザ要求が、和食のレストラン予約という判定された意図を有すると仮定すると、システム１００は、要求された時間に予約時間を有する、ユーザの要求した位置の近くの和食レストランの情報を入手することができる。図示されているように、エージェント・ユーザ・インタフェース３０２は、ブラウザ・インタフェース３０８内に、サードパーティ・レストラン・ファインダ・サービスから入手された情報を表示することができる。たとえば、エージェント・ユーザ・インタフェース３０２は、レストランのそれぞれに関する追加の詳細を含むリスト３３０と一緒に、エリア内の和食レストランの位置を有する地図３２８を表示することができる。
【００８３】
それに加えてまたはその代わりに、エージェント・ユーザ・インタフェース３０２は、エージェントが、ブラウザ・インタフェース３０８内で異なるサードパーティ・サービスの間で切り替えることを可能にすることができる。たとえば、エージェントが、要求に関連する情報を見つけるために異なるサードパーティ・サービスを使用することを求める場合に、エージェントは、ブラウザ・インタフェース３０８内で見るために、サードパーティ・サービスのうちの１つを選択することができる。例示のために、ブラウザ・インタフェース３０８は、サードパーティ・サービスに関連するタブ３３２を含むことができる。さらに、ブラウザ・インタフェース３０８は、ユーザが、特定のレストランに関する追加の詳細など、サードパーティ・サービスからの情報に関する追加の詳細を見ることを可能にすることができる。
【００８４】
１つまたは複数の実施形態では、エージェント・ユーザ・インタフェース３０２は、ブラウザ・インタフェース３０８内に直接にサードパーティ・サービスに関連するウェブページを表示することによって、サードパーティ・サービスからの情報を表示することができる。たとえば、システム１００は、ウェブページのＵＲＬからの情報を要求することができる。代替案では、システム１００は、サードパーティ・サービスから情報を入手するためにサードパーティ・サービスのアプリケーション・プログラム・インタフェース（ＡＰＩ）への１つまたは複数の呼出しを行い、その後、入手された情報をブラウザ・インタフェース３０８内に所定のフォーマットで表示することができる。さらに、エージェントは、サードパーティ・サービスからの情報を選択し、かつ／または変更するために、ブラウザ・インタフェース３０８内の情報と対話することができる。したがって、システム１００は、サードパーティ・サービスからの情報の表示を提供して、エージェントがメッセージング・アプリケーションを終了することを要求せずに、エージェントが要求を満たすための対応する詳細を入手することを可能にすることができる。
【００８５】
前に述べたように、システム１００は、判定された意図に対応する１つまたは複数の詳細が、要求を有するメッセージから欠けている可能性があると判定する。欠けている詳細の識別に応答して、エージェント・ユーザ・インタフェース３０２は、欠けている詳細に関する質問をするためにエージェントにプロンプトを提供することができる。たとえば、エージェント・ユーザ・インタフェース３０２は、対応する詳細に関する「質問をする」ようにユーザに促すテキストと共に、対応する詳細要素３２０ａ、３２０ｂを強調表示することができる。要求が、未追加の詳細要素を有しない場合に、エージェントは、要求を満たすことを進行することができる。
【００８６】
ユーザが未追加の詳細要素３２０ａ、３２０ｂのうちの１つまたは複数を選択することに応答して、図３Ｃに示されているように、システム１００は、ユーザに送るためにメッセージ３３４ａを生成することができる。具体的には、システム１００は、エージェントが特定の詳細要素を選択したと判定し、対応する詳細に関するさらなる情報についてユーザに尋ねる包括的なメッセージを生成することができる。たとえば、エージェントが、時間要素３２０ａおよび予算要素３２０ｂを選択する場合に、システム１００は、ユーザが時間枠および予算を念頭においているかどうかをユーザに尋ねるメッセージ３３４ａを生成することができる。詳細要素３２０ａ、３２０ｂの選択は、対詳細要素３２０ａ、３２０ｂが選択されたことを示すために対応する詳細要素３２０ａ、３２０ｂが視覚的に更新されるようにすることもできる。
【００８７】
さらに、エージェントが選択する詳細要素ごとに、システム１００は、以前に生成されたメッセージ３３４ａに対応する詳細を追加することができる。たとえば、システム１００は、文法的に正しい形で詳細を含むように、生成されたメッセージ３３４ａを動的に変更することができる。代替案では、新しい詳細要素３２０の選択は、システム１００に、以前に生成されたメッセージ３３４ａとは異なるテキストを有する可能性がある新しいメッセージ３３４ａを生成させることができる。
【００８８】
１つまたは複数の実施形態では、エージェント・ユーザ・インタフェース３０２は、自動的に生成されたメッセージ３３４ａをテキスト入力フィールド３１６ａ内に表示することができる。具体的には、エージェント・ユーザ・インタフェース３０２は、エージェントが生成されたメッセージ３３４ａに対する変更を行うことを可能にするために、自動的に生成されたメッセージ３３４ａをエージェントに提供することができる。たとえば、エージェント・ユーザ・インタフェース３０２は、メッセージ３３４ａを削除し、メッセージ３３４ａ内に追加の詳細を入力し、メッセージ３３４ａの言葉遣いを変更し、または他の形でメッセージ３３４ａを変更することができる。例示のために、エージェントは、例を入力するか、または生成されたメッセージ３３４ａ内の要求された詳細のいずれかを明確にすることができる。要求に関する１つまたは複数の詳細を尋ねる自動的に生成されたメッセージ３３４ａを提供することは、エージェントの効率を改善することができる。
【００８９】
生成されたメッセージ３３４ａを検証した後に、エージェントは、生成されたメッセージ３３４ａをユーザに送ることができる。生成されたメッセージ３３４ａのユーザへの送出により、メッセージング・スレッド３１０が、ユーザとエージェントとの間のメッセージの時系列順に従って更新される。図３Ｄは、ユーザとエージェントとの間のメッセージング・スレッド３１０内の生成されたメッセージ３３４ａを含むエージェント・ユーザ・インタフェース３０２を示す。前に述べたように、エージェントからユーザへのメッセージは、異なる場所にあり、かつ／またはユーザからエージェントへのメッセージとは異なる外観を有し、ユーザおよびエージェントがそれぞれのメッセージング・アプリケーション内でメッセージを簡単に区別することを可能にし得る。
【００９０】
生成されたメッセージ３３４ａに応答して、ユーザは、要求された詳細を示す１つまたは複数のメッセージで応答することができる。たとえば、図３Ｅは、ユーザが、時間枠および好ましい予算を示す第２のメッセージ３１２ｂで応答したことを示す。システム１００は、要求される詳細を自動的に識別するために、第２のメッセージ３１２ｂを分析することができる。さらに、エージェント・ユーザ・インタフェース３０２は、ユーザからの第２のメッセージ３１２ｂに基づいて、対応する詳細要素３２０に要求される詳細を追加することができる。
【００９１】
１つまたは複数の実施形態では、エージェント・ユーザ・インタフェース３０２は、ユーザからの第２のメッセージ３１２ｂ内の情報に基づく推定を用いて、詳細要素３２０のうちの１つまたは複数を表示することができる。たとえば、ユーザが、時間範囲を提供する場合に、システム１００は、対応する時刻が時間範囲の中央にあると判定することができ、エージェント・ユーザ・インタフェース３０２は、時間要素内に推定された時刻を表示することができる。代替案では、システム１００は、異なる時刻を選択し、または要求された時刻として時間範囲を提供することができる。
【００９２】
同様に、システム１００は、第２のメッセージ３１２ｂに基づき、サードパーティ・サービスに関連する価格体系に従って、推定される予算を判定することができる。例示のために、サードパーティ・サービスは、所与のレストランがどれほどの高価であるのかを示す複数の「＄」アイコン（たとえば、「＄＄」は２０〜３０ドル範囲内の料理の適度な価格を示す）を用いて価格を識別する料金システムを使用することができる。システム１００は、識別された詳細をサードパーティ・サービスに対応する価格体系に自動的に変換し、変換された値を予算要素に追加することができる。
【００９３】
受信された詳細に従って、システム１００は、サードパーティ・サービスから新しい情報を入手することができる。具体的には、システム１００は、利用可能なオプションの個数を絞り込むのを支援し得る追加の詳細を含めるために、サードパーティ・サービスへの要求を更新することができる。たとえば、システム１００は、予算および時刻の詳細を含めるためにレストランの予約に関する要求を更新し、おそらくは、要求に関連する位置内のより少数の使用可能なレストランに絞られるようにすることができる。システム１００は、サードパーティ・サービスからの新しい情報を用いてブラウザ・インタフェース３０８を更新することができる（たとえば、地図３２８から位置マーカーを除去することおよび／またはリスト３３０からオプションを除去することによって）。したがって、システム１００は、エージェントに表示される情報を自動的に更新することによって、エージェントが新しい情報を手作業で要求することを要求せずに、エージェントの効率を改善することができる。
【００９４】
エージェントが、ユーザの要求を満たすのに必要なまたはこれに役立つ詳細を識別した後に、エージェントは、追加情報をユーザに提供することができる。具体的には、エージェントは、選択するためにユーザに１つまたは複数のオプションを提供することができる。たとえば、エージェントは、ユーザが使用可能な１つまたは複数のオプションを示す第２のメッセージ３３４ｂをメッセージング・スレッド３１０内でユーザに送ることができる。例示のために、メッセージ３３４ｂは、ユーザの判断基準を満たす１つまたは複数のレストランに関連する１つまたは複数の予約時刻を示すことができる。図３Ｆは、メッセージング・スレッド３１０内で表示される、ユーザが利用可能な１つまたは複数のオプションを含む自動的に生成されたメッセージ３３４ｂを示す。
【００９５】
１つまたは複数の実施形態では、エージェントは、利用可能なオプションを示すメッセージ３３４ｂを手作業で生成することができる。代替案では、システム１００は、ブラウザ・インタフェース３０８内で視認可能な情報に基づくか、またはサードパーティ・サービスによって提供された他の情報に基づいて、利用可能なオプションを示すメッセージ３３４ｂを自動的に生成することができる。たとえば、システム１００は、最高のレビューを有するオプション、ユーザの判断基準に対するオプションの一致の正確さ、またはメッセージ３３４ｂを生成するためにエージェントがマークしたオプションに基づいて（これに限定はされない）、メッセージ３３４ｂを自動的に生成することができる。追加の詳細を尋ねる生成されたメッセージに関して、エージェントは、ユーザに送る前に、利用可能なオプションを含む自動的に生成されたメッセージ３３４ｂを変更しまたは再検討することができる。
【００９６】
オプションを有する生成されたメッセージ３３４ｂをユーザに送った後に、ユーザは、図３Ｇに示されているように、要求を満たすための選択されたオプションを示すメッセージ３１２ｃで応答することができる。１つまたは複数の実施形態では、システム１００は、サードパーティ・サービスと通信することと、要求された詳細を送ることとによって、選択されたオプションを示すメッセージ３１２ｃに基づいて要求を自動的に満たすことができる。代替実施形態では、エージェントは、ブラウザ・インタフェース３０８内でユーザによって選択されたオプションを選択することと、すべての要求された詳細をサードパーティ・サービスに提供することとによって、要求を手作業で満たすことができる。たとえば、エージェントは、システム１００がサードパーティ・サービスに正しい詳細を提供したことを検証し、ブラウザ・インタフェース３０８内で選択されたオプションを選択することができる。
【００９７】
いくつかの代替実施形態では、ユーザからのある要求は、ユーザがオプションを選択することを要求しない場合があり、エージェントは、ユーザからのさらなる通信なしでユーザの要求を満たすことができる。たとえば、情報（たとえば、天気、映画の時間、メディア・レビュー、または他の全般的情報）の要求は、選択されたオプションをサードパーティ・サービスに提供することを含まない場合がある。したがって、エージェントは、ユーザからのメッセージ内の詳細に基づいて（パーソナル・アシスタント・サービス・システム１００の支援を得て）要求された情報を単純に入手し、要求された情報をユーザに提供することができる。
【００９８】
１つまたは複数の実施形態では、エージェントまたはシステム１００がユーザとエージェントとの間で交換されたメッセージに基づいてオプションを選択した後に、サードパーティ・サービスは、選択の確認を提供することができる。たとえば、サードパーティ・サービスは、エージェントがオプションを成功裡に選択したことを示す確認ページ３３６をブラウザ・インタフェース３０８内でエージェントに提供することができる。例示のために、図３Ｈに示されているように、サードパーティ・サービスは、エージェントがレストランの予約を成功裡にスケジューリングしたことを示す確認ページ３３６を提供することができる。確認ページ３３６は、レストラン、人数、日付、および時刻など、予約の詳細を含むことができる。エージェントは、詳細のいずれかが不正確である場合に予約を変更することができる。
【００９９】
少なくともいくつかの実施形態によれば、サードパーティ・サービスは、エージェントがユーザの名前で要求を満たすことを可能にすることができる。たとえば、システム１００は、ユーザが要求に関連してサードパーティ・サービスに提供するためのアカウント情報にアクセスすることができる。例示のために、エージェントがユーザのためにレストラン予約をスケジューリングする場合に、システム１００は、予約がユーザの名前の下になるように、ユーザのアカウント情報をサードパーティ・サービスに提供することができる。代替案では、エージェントは、ユーザのアカウント情報にアクセスすることと、ユーザのアカウント情報を使用して予約をスケジューリングすることとによって、ユーザの情報をサードパーティ・サービスに手作業で提供することができる。システム１００は、システム１００がユーザからの将来の要求に応答する能力を改善するために、ユーザ・アカウントと共に記憶するための情報（たとえば、頻繁な要求、プリファレンス、ライティング・スタイル）を提供することもできる。
【０１００】
１つまたは複数の実施形態では、システム１００は、意図を判定する際および／または要求を満たす際にユーザ・アカウント情報を使用することができる。たとえば、システム１００は、ユーザのメッセージ内にリストされた名前がユーザに関係することを、ユーザ・アカウント情報に基づいて識別することができる。その後、システム１００は、その情報を活用して、判定された意図を洗練し、かつ／または要求に関連する１つまたは複数の詳細を識別することができる。一例では、システム１００は、ユーザ・アカウント情報に基づいて要求内の代名詞を識別し（たとえば、「私の母に花を送る」）、ユーザの関係に基づいてその人のアイデンティティを外挿することができる。１つまたは複数の実施形態では、システム１００は、以下により詳細に説明するように、ユーザの要求において人を識別するために、ソーシャル・ネットワーキング・システムのソーシャル・グラフを使用することができる。
【０１０１】
エージェントが、ユーザの情報へのアクセスを有し、ユーザの情報を使用して要求を満たす場合に、エージェントは、ユーザのために追加のアクションを実行し得る。たとえば、エージェントは、ユーザがカレンダ内の予約を見ることができるように、ユーザのアカウントに関連するカレンダに予約を追加できる場合がある。さらに、ユーザが、エージェントの支援なしで、変更を行うか追加情報を見るために予約にアクセスすることができる場合もある。
【０１０２】
代替実施形態では、サードパーティ・サービスは、エージェントがパーソナル・アシスタント・サービスの名前で要求を満たすことを可能にすることができる。具体的には、ユーザのアカウント情報を入手し、ユーザのアカウント情報をサードパーティ・システムに提供するのではなく、システム１００は、パーソナル・アシスタント・サービスの情報をサードパーティ・サービスに提供することができる。その後、エージェントは、満たされた要求（たとえば、予約）が、パーソナル・アシスタント・サービスの名前で行われたことをユーザに示すことができる。したがって、エージェントが、ユーザが個人情報をサードパーティ・サービスに提供することを要求せずに要求を満たすことができる場合がある。
【０１０３】
少なくともいくつかの要求に関して、サードパーティ・サービスは、エージェントがユーザの代わりに支払い取引に入ることを要求してもよい。たとえば、ユーザが、システム１００がユーザのためにある品目を購入することを要求する場合に、その品目を提供するサードパーティ・サービスは、システム１００がサードパーティ・サービスに支払いを提供することを要求してもよい。１つまたは複数の実施態様によれば、システム１００は、まずユーザがシステム１００に支払うことを要求することができ、その後、システム１００は、サードパーティ・サービスに支払うことができる。そのような実施形態では、サードパーティ・サービスは、ユーザの金融情報へのアクセスを絶対に有しない。代替案では、システム１００は、ユーザがサードパーティ・サービスとの直接支払い取引に入ることを可能にするために、ユーザの金融情報をサードパーティ・サービスに提供することができる。さらに他の実施形態では、システム１００は、ユーザの名前で要求を満たすことができるが、パーソナル・アシスタント・サービスの支払い情報をサードパーティ・サービスに提供することができる（すなわち、ユーザがシステム１００に支払い、システム１００がサードパーティ・サービスに支払うが、システム１００は、ユーザの名前をサードパーティ・サービスに提供する）。
【０１０４】
１つまたは複数の実施形態では、システム１００は、サードパーティ・サービスから報酬を受け取ることができる。たとえば、１つまたは複数のサードパーティ・サービスは、サードパーティ・サービスをユーザに推奨することに関する報酬を提供する契約をシステム１００と結ぶ場合がある。さらに、１つまたは複数のサードパーティ・サービスは、要求がサードパーティ・サービスとの支払い取引をもたらす場合に手数料を提供してもよい。さらに、サードパーティ・サービスは、パーソナル・アシスタント・サービスに関連する広告を提供するためにシステム１００に支払うことができる。
【０１０５】
１つまたは複数の実施形態では、システム１００は、確認ページ３３６に関連してユーザに送るべき確認メッセージ３３８を提供することができる。具体的には、システム１００は、満たされた要求に関する詳細を含む確認メッセージ３３８を生成することができる。たとえば、システム１００は、満たされた要求に関連する情報をサードパーティ・サービスから入手し（たとえば、サードパーティ・サービスのウェブページのスクラップを作ることによって、またはサードパーティ・サービスのＡＰＩへの呼出しを行うことによって）、入手された情報を含むように確認メッセージ３３８を自動的に生成することができる。例示のために、システム１００は、成立した予約に関連する関係する詳細（たとえば、レストラン、日付、時刻、住所、および人数）を示す確認メッセージ３３８をユーザとエージェントとの間のメッセージング・スレッド３１０内で提供することができる。図３Ｉは、成立した予約に関する確認メッセージ３３８を含むメッセージング・スレッド３１０を示す。
【０１０６】
代替案では、システム１００は、エージェントがなんらかの理由で要求を満たすことができない場合にユーザに示すことができる。たとえば、システム１００は、失敗の理由を含めて、エージェントが要求を満たすことができなかったことを示すメッセージを生成することができる。例示のために、エージェントがサードパーティ・サービスに連絡できない場合に、システム１００は、サードパーティ・サービスが利用できないことを示す、ユーザに送るべきメッセージを生成することができる。同様に、支払い取引を含む要求に関して、システム１００は、サードパーティ・サービスがユーザの支払い証明書（ｐａｙｍｅｎｔ  ｃｒｅｄｅｎｔｉａｌ）を拒絶した場合に、要求が満たされ得なかったことをユーザに示すことができる。
【０１０７】
前に述べたように、システム１００は、ユーザとエージェントとの間のメッセージング・スレッド３１０内でユーザに提供すべきメッセージを自動的に生成することができる。図３Ａ〜３Ｉは、テキストを含む自動的に生成されたメッセージを示すが、システム１００は、メッセージング・スレッド３１０に関して生成されるメッセージ内に他のコンテンツを含めることができる。図４Ａ〜４Ｃは、メッセージング・スレッド４０４内の自動的に生成されたメッセージの代替実施形態を含む、エージェント・ユーザ・インタフェース４０２を有するエージェント・クライアント・デバイス４００の実施形態を示す。
【０１０８】
１つまたは複数の実施形態では、システム１００は、メッセージング・スレッド４０４内で対話メッセージを提供することができる。具体的には、図４Ａ〜４Ｃのエージェント・ユーザ・インタフェース４０２は、メッセージング・スレッド４０４内の対話メッセージを含む。たとえば、システム１００は、エージェントからの入力を用いてまたは用いずに、対話メッセージを生成し、対話メッセージをメッセージング・スレッド４０４に挿入することができる。例示のために、ユーザからの要求を有するメッセージを分析した後に、システム１００は、判定された意図に関連する１つまたは複数の詳細を識別し、ユーザが選択できる複数の異なるオプションを有する対話メッセージを生成することができる。たとえば、図４Ａは、複数の時間枠オプションおよび複数の予算オプションを有する第１の対話メッセージ４０６を示す。
【０１０９】
対話メッセージは、ユーザがエージェントに送るための応答をタイプすることを要求せずに、ユーザがシステム１００に情報を提供することを可能にする。具体的には、ユーザは、対応する詳細の所望のオプションをタップするか、または他の形で選択することによって、クライアント・デバイスのメッセージング・アプリケーション内で第１の対話メッセージ４０６と対話することができる。たとえば、ユーザは、対応する時間枠オプション４０８ａをタップすることによって「午後７〜８時」時間枠を、対応する予算オプション４０８ｂをタップすることによって「＄＄」予算を選択することができる。オプションの選択によって、クライアント・デバイスが選択をシステム１００に送ることができ、システム１００は、図４Ｂに示されているように、その選択に応じてエージェント・ユーザ・インタフェース４０２を更新する（たとえば、選択されたオプションを強調表示することによって）。さらに、オプションの選択によって、システム１００が更新された詳細をサードパーティ・サービスに送らせることができる。
【０１１０】
ユーザが第１の対話メッセージ４０６内の１つまたは複数のオプションを選択することに応答して、システム１００は、１つまたは複数の追加メッセージを提供することができる。たとえば、システム１００は、ユーザの指定した判断基準を満たす利用可能なオプションを含む対話メッセージを提供することができる。例示のために、図４Ｃの第２の対話メッセージ４１０は、レストラン予約に関する複数のオプションを含む。具体的には、第２の対話メッセージ４１０は、複数の使用可能な予約時刻を有する第１のレストランと、複数の使用可能な予約時刻を有する第２のレストランとを含む。ユーザは、予約を確定し、かつ要求を満たすようにシステム１００に指示するために、利用可能なオプションから選択することができる。
【０１１１】
１つまたは複数の実施形態によれば、ユーザは、追加のオプションを求めることができる。たとえば、ユーザが、提供されたオプションに満足しない場合に、ユーザは、ユーザが１つまたは複数の追加のオプションを確認したいと思うことを示すメッセージをシステム１００に送ることができる。システム１００は、メッセージを分析してユーザがより多くのオプションを好むことを判定することができる。そして、システム１００（またはエージェント）は、サードパーティ・サービスに追加のオプションを要求し、メッセージング・スレッド４０４内のユーザへのメッセージ内で追加オプションを提供することができる。
【０１１２】
少なくともいくつかの実施形態では、ユーザは、要求を有する元のメッセージを送った後のどの時にも、要求を取り消すことができる。たとえば、ユーザは、システム１００が要求を満たすことをユーザがもはや望まないことを示すメッセージ（たとえば、「必要ない」または「取り消す」などの句を有する）を送り、メッセージング・アプリケーション内の取消要素を選択し、またはメッセージング・スレッド４０４を閉じることができる。ユーザが要求を取り消すことを求めるとの判定に応答して、システム１００は、エージェントのタスクを打ち切り、かつ／または要求が取り消されたことを示すメッセージをユーザに送ることができる。
【０１１３】
１つまたは複数の実施形態では、対話メッセージの提供は、システム１００が、エージェントが要求を満たす際に実行する作業の量を減らすことを可能にすることができる。具体的には、対話メッセージは、ライブ・エージェントの代わりに人工知能を使用して要求を満たすためのパーソナル・アシスタント・サービスのさらなる自動化の一部とされ得る。たとえば、前に述べたように、システム１００は、エージェント効率を改善し、ユーザ待ち時間を減らすために、以前の要求およびユーザとエージェントとの間の対話を使用して機械学習モデルをトレーニングすることができる。より多くのユーザが要求を提供し、エージェントと対話するにつれて、システム１００は、機械学習モデルをトレーニングすべきデータセットを増やす。さらに、データセットの増加は、機械学習モデルの正確さを改善し、システム１００がエージェントなしで実行できるアクションのタイプを増やすことができる。よくトレーニングされた機械学習モデルは、ユーザ要求を満たすことに関連する様々な異なるアクション（単純から複雑まで）を実行することができる。
【０１１４】
少なくともいくつかの実施形態によれば、機械学習モデルは、システム１００に関連するすべてのエージェントのメッセージング履歴およびアクションに対してトレーニングすることができる。具体的には、機械学習モデルは、将来の同様の要求にどのように応答すべきかを知るために、ユーザ要求に関連してエージェントによって行われたアクションから学習することができる。たとえば、システム１００は、ある句または用語をどのように解釈すべきか、およびその句および用語にどのように応答すべきかを判定するために、エージェントからの入力およびアクション（たとえば、エージェントが実行する動作およびエージェントが入力するテキスト）を記憶することができる。
【０１１５】
さらに、システム１００は、熟語、口語表現、単語の代替の意味、冗談、および他の書き方の特性を含む、エージェントおよびユーザのライティング・スタイルから学習することができる。ライティング・スタイルの多様性の改善は、ユーザおよびエージェントの経験をより楽しいものにすることを支援することができる。システム１００は、機械学習モデルと共に使用するために認識されたライティング・スタイルおよび癖を記憶するために、エージェント・プロファイルを維持することもできる。たとえば、システム１００は、要求に関連してユーザに送るための自動的に生成されるメッセージにエージェントのライティング・スタイルを適用することができる。
【０１１６】
１つまたは複数の実施形態では、システム１００は、エージェント固有のメッセージング・アプリケーション内で追加の情報および／またはインタフェースを提供することができる。たとえば、システム１００は、エージェントがユーザに現在振り当てられているタスクのリストを見ることを可能にするタスク・リストを提供することができる。各タスクは、エージェントが選択し、かつ見ることのできるメッセージング・スレッド４０４に関連付けられ得る。
【０１１７】
さらに、各タスクは、要求の開始日付によって決定された関連する時刻情報を有してもよい。たとえば、タスク・リストは、ユーザが対応する要求をサブミットした時系列順に基づいてタスクを編成することができる。例示のために、システム１００は、タスク・リストの最上部に最も古いタスクをリストすることができる。タスク・リストは、任意のタスクが緊急であり、かつ即座に対処される必要があるかどうかを表示することもできる。たとえば、同一の日の予約の要求は、緊急である可能性があるが、２週間先の日の予約の要求は、緊急ではない可能性がある。
【０１１８】
システム１００は、要求のタイプに基づいて、引き続いてタスクを行うようにエージェントに促すことができる。具体的には、一部のユーザ要求は、ユーザへの配送のために製品またはサービスを購入しまたは注文すること、あるいはユーザのために将来のアクションを実行すること（たとえば、ユーザに製品を出荷すること、予約をとること、飛行機旅行を予約すること）を含む場合がある。要求が、サードパーティ・サービスに関連する配送または将来のアクションを含む場合に、システム１００は、サードパーティ・サービスが適切に要求を満たしたことを検証するために、ユーザをフォローするためのメッセージを送るようにエージェントに促すことができる。システム１００は、緊急タスクに関してより頻繁にフォロー・アップし、かつ／または緊急タスクをタスク・リストの最上部に移動することができる。
【０１１９】
エージェントが要求を満たした後に、エージェントは、タスクを完了することができる。具体的には、エージェントは、対応するタスクを完了されたタスクのリストに移動することができる。タスクの完了によって、ユーザとのメッセージング・スレッド４０４を終了することができ、その結果、エージェントは、もはやメッセージング・スレッド４０４内でユーザにメッセージを送らなくてもよくなる。１つまたは複数の実施形態によれば、システム１００は、完了されたタスクを含む、エージェントのタスクの履歴を維持することができる。
【０１２０】
図１〜図４Ｃ、対応するテキスト、および例は、メッセージングを介してパーソナル・アシスタント・サービスを提供する複数の異なるシステムおよびデバイスを提供する。前述に加えて、実施形態が、特定の結果を達成する方法における動作およびステップを含むフローチャートに関して説明され得る。たとえば、図４は、１つまたは複数の実施形態による例示的な方法のフローチャートを示す。
【０１２１】
図５は、メッセージングによりパーソナル・アシスタント・サービスを提供する方法５００のフローチャートを示す。方法５００は、パーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信する動作５０２を含む。たとえば、動作５０２は、メッセージング・アプリケーションのユーザから、パーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信することを含む。例示のために、動作５０２は、パーソナル・アシスタント・サービスがユーザのために１つまたは複数のアクションを実行することの要求を示すテキスト・コンテンツを含むインスタント・メッセージを受信することを含むことができる。
【０１２２】
方法５００は、エージェントに要求を振り当てる動作５０４をも含む。たとえば、動作５０４は、要求を満たすためにエージェントに要求を振り当てることを含む。例示のために、動作５０４は、エージェントの作業負荷に基づいてエージェントに要求を振り当てることを含むことができる。代替案では、動作５０４は、エージェントに関連する位置および言語に基づいてエージェントに要求を振り当てることを含むことができる。代替案では、動作５０４は、要求をエージェントに振り当てることのエージェントによる要求を受信することと、受信された要求に応答して要求をエージェントに振り当てることとを含むことができる。
【０１２３】
方法５００は、要求の意図を判定する動作５０６をさらに含む。たとえば、動作５０６は、自然言語プロセッサを使用して、要求の意図を判定することを含むことができる。例示のために、動作５０６は、要求の意図を判定することは、意図を示す１つまたは複数の単語または句を要求から識別することを含むことができる。さらに、動作５０６は、複数のユーザからの複数の以前の要求の判定された意図に基づいて要求の意図を判定することを含むことができる。
【０１２４】
さらに、方法５００は、エージェント・ユーザ・インタフェース３０２、４０２を構成する動作５０８を含む。たとえば、動作５０８は、要求の判定された意図に従う１つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェース３０２、４０２を構成することを含む。例示のために、動作５０８は、ユーザ・インタフェース内の識別された単語または句に関連する１つまたは複数の可能なオプションを提供することによって、要求の判定された意図に従う１つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェース３０２、４０２を構成することを含むことができる。
【０１２５】
動作５０８は、判定された意図に対応する、電子メッセージ内の１つまたは複数の単語または句と、判定された意図に関連する１つまたは複数の詳細とを強調表示することを含むこともできる。さらに、動作５０８は、エージェント・ユーザ・インタフェース内での表示のために１つまたは複数の詳細にカラー・コードを適用することを含むことができる。
【０１２６】
方法５００は、動作５０８の一部としてまたは追加の動作として、要求の判定された意図に基づいて、サードパーティ・サービスからオプションのリストを入手することと、エージェント・ユーザ・インタフェース３０２、４０２内でサードパーティ・サービスからのオプションのリストを提供することとを含むことができる。さらに、方法５００は、エージェント・ユーザ・インタフェース３０２、４０２内でオプションのリストに対応する複数の選択可能な要素を提供する動作を含むことができる。
【０１２７】
動作５０８の一部としてまたは追加の動作として、方法５００は、要求の意図を変更するためにエージェント・ユーザ・インタフェース３０２、４０２を介してユーザ入力を受け取ることをも含むことができる。方法５００は、要求の変更された意図に従う１つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェース３０２、４０２を再構成する動作を追加的に含むことができる。
【０１２８】
動作５０８の一部としてまたは追加の動作として、方法５００は、要求の判定された意図に対応する複数の特性を判定する動作を含むことができる。さらに、方法５００は、要求内で、複数の特性に対応する１つまたは複数の要求詳細を識別する動作と、識別された１つまたは複数の要求詳細を、エージェント・ユーザ・インタフェース３０２、４０２内の１つまたは複数のオプションに関連する１つまたは複数の詳細フィールドに追加する動作とを含むことができる。
【０１２９】
方法５００は、要求に基づいて、１つまたは複数の詳細フィールドから未追加の詳細フィールドを識別する動作を含むこともできる。方法５００は、未追加の詳細フィールドに関連する要求に対する自動化された応答を生成する動作と、エージェント・ユーザ・インタフェース３０２、４０２のメッセージング・エリア内でメッセージング・アプリケーションのユーザに送るために、生成された応答をエージェントに提供する動作とをさらに含むことができる。たとえば、方法５００は、未追加の詳細フィールドに関連する要求に対する対話応答を生成する動作を含むことができる。対話応答は、メッセージング・アプリケーションのメッセージング・スレッド３１０、４０４内での表示のための未追加の詳細フィールドに関連する複数の選択可能な要素を含むことができる。方法５００は、それに加えてまたはその代わりに、パーソナル・アシスタント・サービスに関する要求を満たすことに関連する複数の選択可能なオプションを含む対話メッセージを生成し、生成された対話メッセージをメッセージング・アプリケーションのメッセージング・スレッド３１０、４０４内でユーザに送る動作を含むことができる。
【０１３０】
方法５００は、要求を含む電子メッセージに関連する電子メッセージのメッセージング履歴を維持する動作をさらに含むことができる。方法５００は、要求に関連するエージェントによる１つまたは複数のアクションを識別する動作を含むこともできる。方法５００は、メッセージ履歴および識別された１つまたは複数のアクションに基づいて機械学習モデルをトレーニングする動作を含むことができる。
【０１３１】
本開示の実施形態では、以下に詳述する通り、たとえば１つまたは複数のプロセッサおよびシステムメモリ等のコンピュータハードウェアを備えた専用または汎用コンピュータを備えるか、または利用するようにしてもよい。また、本開示の発明の範囲内の実施形態には、コンピュータ実行可能な命令および／またはデータ構造を搬送または記憶する物理的なコンピュータ可読媒体および他のコンピュータ可読媒体を含む。とりわけ、本明細書に記載のプロセスのうちの１つまたは複数は、非一時的コンピュータ可読媒体にて具現化され、１つまたは複数のコンピューティング・デバイス（たとえば、本明細書に記載のメディアコンテンツアクセスデバイスのいずれか）により実行可能な命令として、その少なくとも一部が実装されていてもよい。一般的には、プロセッサ（たとえば、マイクロプロセッサ）が非一時的コンピュータ可読媒体（たとえば、メモリ等）から命令を受け取り、これらの命令を実行することによって、本明細書に記載のプロセスのうちの１つまたは複数等、１つまたは複数のプロセスを実行する。
【０１３２】
コンピュータ可読媒体としては、汎用または専用コンピュータ・システムによりアクセス可能な任意の利用可能な媒体が可能である。コンピュータ実行可能な命令を記憶するコンピュータ可読媒体は、非一時的コンピュータ可読記憶媒体（デバイス）である。コンピュータ実行可能な命令を搬送するコンピュータ可読媒体は、伝送媒体である。このように、非限定的な一例として、本開示の実施形態には、非一時的コンピュータ可読記憶媒体（デバイス）および伝送媒体という少なくとも２つの明確に異なる種類のコンピュータ可読媒体を含み得る。
【０１３３】
非一時的コンピュータ可読記憶媒体（デバイス）としては、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、固体ドライブ（「ＳＳＤ」）（たとえば、ＲＡＭベース）、フラッシュメモリ、相変化メモリ（「ＰＣＭ」）、他の種類のメモリ、他の光ディスクストレージ、磁気ディスクストレージ等の磁気ストレージデバイス、またはコンピュータ実行可能な命令もしくはデータ構造の形態の所望のプログラムコード手段の記憶に使用可能であるとともに、汎用もしくは専用コンピュータによりアクセス可能なその他任意の媒体が挙げられる。
【０１３４】
「ネットワーク」は、コンピュータ・システムおよび／またはモジュールおよび／または他の電子機器間で電子データを伝送可能な１つまたは複数のデータリンクとして定義されている。情報がネットワークまたは別の通信接続（有線、無線、または有線もしくは無線の組み合わせ）上でコンピュータに転送または提供される場合、上記コンピュータは、その接続を厳密に伝送媒体と見なす。伝送媒体としては、コンピュータ実行可能な命令またはデータ構造の形態の所望のプログラムコード手段の搬送に使用可能であるとともに、汎用または専用コンピュータによりアクセス可能なネットワークおよび／またはデータリンクが挙げられる。また、上記の組み合わせについても、コンピュータ可読媒体の範囲に含まれるものとする。
【０１３５】
さらに、コンピュータ・システムのさまざまな構成要素に到達した際に、コンピュータ実行可能な命令またはデータ構造の形態のプログラムコード手段は、伝送媒体から非一時的コンピュータ可読記憶媒体（デバイス）へと自動的に転送可能である（その逆も可能である）。たとえば、ネットワークまたはデータリンク上で受信されたコンピュータ実行可能な命令またはデータ構造は、ネットワークインタフェースモジュール（たとえば、「ＮＩＣ」）内のＲＡＭにバッファリングした後、最終的には、コンピュータ・システムＲＡＭおよび／またはコンピュータ・システムにおける低揮発性コンピュータ記憶媒体（デバイス）に転送可能である。したがって、非一時的コンピュータ可読記憶媒体（デバイス）は、伝送媒体も（または、主として）利用するコンピュータ・システムの構成要素に含み得ることが了解されるものとする。
【０１３６】
コンピュータ実行可能な命令としては、たとえばプロセッサで実行された場合に、特定の機能または機能群を汎用コンピュータ、専用コンピュータ、または専用処理デバイスに実行させる命令およびデータが挙げられる。１つまたは複数の実施形態においては、コンピュータ実行可能な命令が汎用コンピュータ上で実行されることにより、上記汎用コンピュータは、本開示の実施形態の要素を実装した専用コンピュータへと変化する。コンピュータ実行可能な命令は、たとえばバイナリ、アセンブリ言語等の中間フォーマット命令、あるいはソースコードであってもよい。以上、構造的特徴および／または方法論的動作に固有の表現で主題を説明したが、添付の特許請求の範囲に規定の主題は、必ずしも上述の特徴または動作に限定されないことが了解されるものとする。むしろ、上記特徴および動作は、特許請求の範囲を実施する例示的な形態として開示している。
【０１３７】
当業者であれば、パーソナル・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、メッセージプロセッサ、携帯機器、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラム可能な家庭用電化製品、ネットワークＰＣ、マイクロコンピュータ、メインフレームコンピュータ、携帯電話、ＰＤＡ，タブレット、ポケベル、ルータ、スイッチ等、さまざまな種類のコンピュータ・システム構成のネットワークコンピュータ環境において本開示が実現されるようになっていてもよいことが認識されよう。また、本開示は、ネットワークを通じて（有線データリンク、無線データリンク、または有線および無線データリンクの組み合わせにより）リンクしたローカルメモリストレージデバイスおよび遠隔コンピュータ・システムがともにタスクを実行する分散システム環境において実現されるようになっていてもよい。分散システム環境においては、ローカルメモリストレージデバイスおよび遠隔メモリストレージデバイスの両者にプログラムモジュールが配置されていてもよい。
【０１３８】
また、本開示の実施形態は、クラウドコンピュータ環境において実装可能である。本記載において、「クラウドコンピューティング」は、設定可能なコンピュータリソースの共有プールに対するオンデマンドネットワークアクセスを可能とするモデルとして定義されている。たとえば、クラウドコンピューティングは、設定可能なコンピュータリソースの共有プールに対するユビキタスかつ便利なオンデマンドアクセスを提供する市場で採用可能である。設定可能なコンピュータリソースの共有プールは、仮想化によって迅速に開設可能であるとともに、わずかな管理労力またはサービス・プロバイダ対話で解放可能であるため、これに応じてスケーリング可能である。
【０１３９】
クラウドコンピューティングモデルは、たとえばオンデマンドセルフサービス、ブロードネットワークアクセス、リソースプーリング、ラピッドエラスティシティ、メジャードサービス等のさまざまな特性で構成可能である。また、クラウドコンピューティングモデルは、たとえばサービス型ソフトウェア（「ＳａａＳ」）、サービス型プラットフォーム（「ＰａａＳ」）、およびサービス型インフラ（「ＩａａＳ」）等のさまざまなサービスモデルを提供可能である。また、クラウドコンピューティングモデルは、プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウド等のさまざまな展開モデルを用いて展開可能である。本明細書および特許請求の範囲において、「クラウドコンピュータ環境」は、クラウドコンピューティングを採用する環境である。
【０１４０】
図６は、上述のプロセスのうちの１つまたは複数を実行するように構成できる例示的なコンピューティング・デバイス６００のブロック図を示している。データコンピューティング・デバイス６００などの１つまたは複数のコンピューティング・デバイスがパーソナルアシスタントサービスシステム１００ａを実装することが理解される。図６に示すように、コンピューティング・デバイス６００は、通信インフラ６１２によって通信されるように結合されている、プロセッサ６０２、メモリ６０４、ストレージデバイス６０６、Ｉ／Ｏインタフェース６０８、および通信インタフェース６１０を備える。図６には、例示的なコンピューティング・デバイス６００を示しているが、図６に示す構成要素は、何ら限定を意図したものではない。他の実施形態においては、付加的または代替的な構成要素を使用するようにしてもよい。さらに、特定の実施形態において、コンピューティング・デバイス６００は、図６よりも少ない構成要素を備える。以下、図６に示すコンピューティング・デバイス６００の構成要素について、さらに詳しく説明する。
【０１４１】
１つまたは複数の実施形態において、プロセッサ６０２は、コンピュータ・プログラムを構成する命令等を実行するハードウェアを備えてもよい。非限定的な一例として、プロセッサ６０２は、命令を実行するため、内部レジスタ、内部キャッシュ、メモリ６０４、またはストレージデバイス６０６から命令を取り出す（または、フェッチする）とともに、上記命令を復号化して実行するようにしてもよい。１つまたは複数の実施形態において、プロセッサ６０２は、データ、命令、またはアドレス用の１つまたは複数の内部キャッシュを備えてもよい。非限定的な一例として、プロセッサ６０２は、１つまたは複数の命令キャッシュ、１つまたは複数のデータキャッシュ、および１つまたは複数のトランスレーション・ルックアサイド・バッファ（ＴＬＢ）を備えてもよい。命令キャッシュ中の命令は、メモリ６０４またはストレージ８０６中の命令のコピーであってもよい。
【０１４２】
メモリ６０４は、データ、メタデータ、およびプロセッサが実行するプログラムの記憶に使用してもよい。メモリ６０４は、ランダムアクセスメモリ（「ＲＡＭ」）、リードオンリーメモリ（「ＲＯＭ」）、固体ディスク（「ＳＳＤ」）、フラッシュ、相変化メモリ（「ＰＣＭ」）、または他の種類のデータ・ストレージ等、揮発性および不揮発性メモリのうちの１つまたは複数を備えていてもよい。また、メモリ６０４は、内部メモリであってもよいし、分散メモリであってもよい。
【０１４３】
ストレージデバイス６０６は、データまたは命令を記憶するストレージを備える。非限定的な一例として、ストレージデバイス６０６は、上述の非一時的記憶媒体を備える。ストレージデバイス６０６としては、ハードディスクドライブ（ＨＤＤ）、フロッピー（登録商標）ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、ユニバーサルシリアルバス（ＵＳＢ）ドライブ、またはこれらのうちの２つ以上の組み合わせが挙げられる。ストレージデバイス６０６は、必要に応じて、取り外し可能媒体を備えていてもよいし、取り外し可能でない（すなわち、固定）媒体を備えていてもよい。ストレージデバイス６０６は、コンピューティング・デバイス６００の内部であってもよいし、外部であってもよい。１つまたは複数の実施形態において、ストレージデバイス６０６は、不揮発性の固体メモリである。他の実施形態において、ストレージデバイス６０６は、リードオンリーメモリ（ＲＯＭ）を含む。必要に応じて、このＲＯＭは、マスクプログラムＲＯＭ、プログラム可能ＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的書き換え可能ＲＯＭ（ＥＡＲＯＭ）、フラッシュメモリ、またはこれらのうちの２つ以上の組み合わせであってもよい。
【０１４４】
Ｉ／Ｏインタフェース６０８によって、ユーザが、入力を提供し、出力を受け取り、あるいはコンピューティング・デバイス６００に対してデータを転送しデータを受け取ることを可能にする。これらのＩ／Ｏインタフェース６０８は、マウス、キーパッドもしくはキーボード、タッチスクリーン、カメラ、光学スキャナ、ネットワーク・インタフェース、モデル、その他既知のＩ／Ｏデバイス、またはこのようなＩ／Ｏデバイス／インタフェースの組み合わせを含む。Ｉ／Ｏインタフェース６０８は、出力をユーザに提示する１つまたは複数の機器を備えていてもよく、グラフィックスエンジン、ディスプレイ（たとえば、表示画面）、１つまたは複数の出力ドライバ（たとえば、ディスプレイドライバ）、１つまたは複数の音声スピーカ、および１つまたは複数の音声ドライバが挙げられるが、これらに限定されない。特定の実施形態において、Ｉ／Ｏインタフェース６０８は、グラフィックデータをディスプレイに提供して、ユーザに提示するように構成されている。グラフィックデータは、特定の実施態様に役立ち得る１つもしくは複数のグラフィカル・ユーザ・インタフェースおよび／またはその他任意のグラフィックコンテンツを代表するものであってもよい。
【０１４５】
通信インタフェース６１０は、ハードウェア、ソフトウェア、または両者を含み得る。いかなる場合でも、通信インタフェース６１０は、コンピューティング・デバイスと１つもしくは複数の他のコンピューティング・デバイス６００またはネットワークとの間の通信（たとえば、パケットベースの通信等）のための１つまたは複数のインタフェースを提供可能である。非限定的な一例として、通信インタフェース６１０としては、イーサネット（登録商標）等の有線ネットワークと連通するネットワークインタフェースコントローラ（ＮＩＣ）もしくはネットワークアダプタまたはＷｉ−Ｆｉ等の無線ネットワークと連通する無線ＮＩＣ（ＷＮＩＣ）もしくは無線アダプタが挙げられる。
【０１４６】
加えて、または、代替として、通信インタフェース６１０は、アドホック・ネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、インターネットの１つもしくは複数の部分、またはこれらのうちの２つ以上の組み合わせと通信を行わせる。これらネットワークのうちの１つまたは複数の１つまたは複数の部分は、有線であってもよいし、無線であってもよい。一例として、通信インタフェース６１０は、無線ＰＡＮ（ＷＰＡＮ）（たとえば、Ｂｌｕｅｔｏｏｔｈ（登録商標）ＷＰＡＮ等）、Ｗｉ−Ｆｉネットワーク、Ｗｉ−ＭＡＸネットワーク、携帯電話ネットワーク（たとえば、汎欧州デジタル移動電話通信（ＧＳＭ（登録商標））ネットワーク等）、他の適当な無線ネットワーク、またはこれらの組み合わせと通信を行わせる。
【０１４７】
加えて、通信インタフェース６１０は、通信さまざまな通信プロトコルを促進し得る。使用され得る通信プロトコルの例としては、限定されるものではないが、データ伝送媒体、通信デバイス、伝送制御プロトコル（「ＴＣＰ」）、インターネット・プロトコル（「ＩＰ」）、ファイル転送プロトコル（「ＦＴＰ」）、Ｔｅｌｎｅｔ、Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（「ＨＴＴＰ」）、Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  Ｓｅｃｕｒｅ（「ＨＴＴＰＳ」）、セッション開始プロトコル（「ＳＩＰ」）、Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（「ＳＯＡＰ」）、拡張マークアップ言語（「ＸＭＬ」）およびその変種、簡易メール転送プロトコル（「ＳＭＴＰ」）、リアルタイム転送プロトコル（「ＲＴＰ」）、ユーザ・データグラム・プロトコル（「ＵＤＰ」）、Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ（「ＧＳＭ」）技術、符号分割多元接続（「ＣＤＭＡ」）技術、時分割多元接続（「ＴＤＭＡ」）技術、ショート・メッセージ・サービス（「ＳＭＳ」）、マルチメディア・メッセージ・サービス（「ＭＭＳ」）、無線周波数（「ＲＦ」）シグナリング技術、Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ（「ＬＴＥ」）技術、無線通信技術、帯域内シグナリング技術および帯域外シグナリング技術、ならびに他の適切な通信ネットワークおよび技術がある。
【０１４８】
通信インフラ６１２は、コンピューティング・デバイス６００の構成要素を互いに結合するハードウェア、ソフトウェア、または両者を備える。非限定的な一例として、通信インフラ６１２は、アクセラレイテッドグラフィックスポート（ＡＧＰ）等のグラフィックスバス、拡張業界標準アーキテクチャ（ＥＩＳＡ）バス、フロントサイドバス（ＦＳＢ）、ハイパートランスポート（ＨＴ）相互接続、業界標準アーキテクチャ（ＩＳＡ）バス、インフィニバンド相互接続、ロウピンカウント（ＬＰＣ）バス、メモリバス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、周辺機器相互接続（ＰＣＩ）バス、ＰＣＩエクスプレス（ＰＣＩｅ）バス、シリアルアドバンストテクノロジーアタッチメント（ＳＡＴＡ）バス、ビデオエレクトロニクス標準協会ローカル（ＶＬＢ）バス、その他適当なバス、またはこれらの組み合わせを含んでいてもよい。
【０１４９】
上述のように、システム１００は、ソーシャル・ネットワーキング・システムを備える。ソーシャル・ネットワーキング・システムは、そのユーザ（人や組織等）がシステムと、および互いに対話が可能である。上述したように、システム１００はソーシャル・ネットワーキング・システムを含むことができる。ソーシャル・ネットワーキング・システムによれば、そのユーザ（人または組織等）は、システムと、および互いに対話が可能である。ソーシャル・ネットワーキング・システムは、ユーザからの入力により、ユーザに関連付けられているユーザプロフィールを作成して上記ソーシャル・ネットワーキング・システムに記憶するようにしてもよい。ユーザプロフィールには、人口統計学的情報、通信チャンネル情報、およびユーザの個人的関心に関する情報を含んでいてもよい。また、ソーシャル・ネットワーキング・システムは、ユーザからの入力により、上記ユーザのソーシャル・ネットワーキング・システムの他ユーザとの関係のレコードを作成して記憶するとともに、ユーザ間の社会的対話を行わせるサービス（たとえば、壁のポスト、写真共有、オンラインカレンダーおよびイベント統合、メッセージング、ゲーム、または広告）を提供するようにしてもよい。
【０１５０】
また、ソーシャル・ネットワーキング・システムは、ユーザが写真および他のマルチメディア・コンテンツ・アイテム（その両方がユーザが設定したプライバシー設定に依存してソーシャル・ネットワーキング・システムの他のユーザがアクセスし得る）をユーザのプロフィールページ（典型的には「壁のポスト」または「タイムラインのポスト」として知られている）またはフォト・アルバムにポストすることを可能にする。
【０１５１】
図７は、ソーシャル・ネットワーキング・システムの例となるネットワーク環境７００を例示する。ネットワーク環境７００は、ネットワーク７０４によって互いに接続された、クライアント・システム７０６と、ソーシャル・ネットワーキング・システム７０２と、サードパーティ・システム７０８とを含む。図７は、クライアント・システム７０６、ソーシャル・ネットワーキング・システム７０２、サードパーティ・システム７０８、およびネットワーク７０４の特定の構成を例示しているが、この開示は、クライアント・システム７０６、ソーシャル・ネットワーキング・システム７０２、サードパーティ・システム７０８、およびネットワーク７０４の任意の適切な構成を企図したものである。限定としてではなく、一例として、クライアント・システム７０６、ソーシャル・ネットワーキング・システム７０２、およびサードパーティ・システム７０８のうちの２つ以上が、ネットワーク７０４をバイパスして、直接的に互いに接続されてもよい。別の例として、クライアント・システム７０６、ソーシャル・ネットワーキング・システム７０２、およびサードパーティ・システム７０８のうちの２つ以上が、全体的にまたは部分的に互いと物理的または論理的に共同設置されてもよい。さらに、図７は、特定の数のクライアント・システム７０６、ソーシャル・ネットワーキング・システム７０２、サードパーティ・システム７０８、およびネットワーク７０４を例示しているが、この開示は、任意の適切な数のクライアント・システム７０６、ソーシャル・ネットワーキング・システム７０２、サードパーティ・システム７０８、およびネットワーク７０４を企図したものである。限定としてではなく、一例として、ネットワーク環境７００は、複数のクライアント・システム７０６と、ソーシャル・ネットワーキング・システム７０２と、サードパーティ・システム７０８と、ネットワーク７０４とを含んでよい。
【０１５２】
本開示は、任意の適切なネットワーク７０４を企図したものである。限定としてではなく、一例として、ネットワーク７０４の１つまたは複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク（ＶＰＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、無線ＷＡＮ（ＷＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、インターネットの一部分、公衆交換電話網（ＰＳＴＮ）の一部分、セルラー電話ネットワーク、またはこれらのうちの２つ以上の組み合わせを含んでよい。ネットワーク７０４は、１つまたは複数のネットワーク７０４を含み得る。
【０１５３】
リンクは、クライアント・システム７０６、ソーシャル・ネットワーキング・システム７０２、およびサードパーティ・システム７０８を通信ネットワーク７０４に対して、または互いに対して接続し得る。本開示は、任意の適切なリンクを企図したものである。特定の実施形態では、１つまたは複数のリンクとしては、１つまたは複数のワイヤライン・リンク（たとえば、デジタル加入者線（ＤＳＬ）またはＤａｔａ  Ｏｖｅｒ  Ｃａｂｌｅ  Ｓｅｒｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ（ＤＯＣＳＩＳ）など）、無線リンク（たとえば、Ｗｉ−ＦｉまたはＷｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ（ＷｉＭＡＸ）など）、または光リンク（たとえば、同期型光ネットワーク（ＳＯＮＥＴ）または同期デジタル・ハイアラーキ（ＳＤＨ）など）がある。特定の実施形態では、１つまたは複数のリンクは各々、アドホック・ネットワーク、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＷＷＡＮ、ＭＡＮ、インターネットの一部分、ＰＳＴＮの一部分、セルラー技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク、または２つ以上のそのようなリンクの組み合わせを含む。リンクは、必ずしもネットワーク環境７００全体を通じて同じである必要はない。１つまたは複数の第１のリンクは、１つまたは複数の点において、１つまたは複数の第２のリンクと異なってよい。
【０１５４】
特定の実施形態では、クライアント・システム７０６は、ハードウェア、ソフトウェア、または埋め込まれた論理構成要素、または２つ以上のそのような構成要素の組み合わせを含み、クライアント・システム７０６によって実施またはサポートされる適切な機能を実行することが可能な電子デバイスであってよい。限定としてではなく、一例として、クライアント・システム７０６は、図６に関して上記したコンピューティング・デバイスのいずれかを含む。クライアント・システム７０６は、クライアント・システム７０６におけるネットワーク・ユーザがネットワーク７０４にアクセスすることを可能にし得る。クライアント・システム７０６は、そのユーザが他のクライアント・システム７０６における他のユーザと通信することを可能にし得る。
【０１５５】
特定の実施形態では、クライアント・システム７０６は、ＭＩＣＲＯＳＯＦＴ  ＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ、ＧＯＯＧＬＥ  ＣＨＲＯＭＥ、またはＭＯＺＩＬＬＡ  ＦＩＲＥＦＯＸなどのウェブ・ブラウザ９３２を含んでよく、１つまたは複数のアドオン、プラグイン、またはツールバーもしくはＹＡＨＯＯツールバーなどの他の拡張機能を有してもよい。クライアント・システム７０６におけるユーザは、ユニフォーム・リソース・ロケータ（ＵＲＬ）またはウェブ・ブラウザを特定のサーバ（サーバ、またはサードパーティ・システム７０８に関連付けられているサーバなど）に対して宛てる他のアドレスを入力してよく、ウェブ・ブラウザは、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求を生成し、ＨＴＴＰ要求をサーバに対して通信し得る。サーバは、ＨＴＴＰ要求を受け入れ、ＨＴＴＰ要求に応答して１つまたは複数のハイパーテキスト・マークアップ言語（ＨＴＭＬ）ファイルをクライアント・システム７０６に対して通信し得る。クライアント・システム７０６は、ユーザに対する提示のために、サーバからのＨＴＭＬファイルに基づいてウェブページをレンダリングし得る。本開示は、任意の適切なウェブページ・ファイルを企図したものである。限定としてではなく、一例として、ウェブページは、特定のニーズに従って、ＨＴＭＬファイル、拡張可能ハイパーテキスト・マークアップ言語（ＸＨＴＭＬ）ファイル、または拡張可能マークアップ言語（ＸＭＬ）ファイルからレンダリングし得る。そのようなページはまた、たとえば、限定されるものではないが、ＪＡＶＡＳＣＲＩＰＴ（登録商標）、ＪＡＶＡ（登録商標）、ＭＩＣＲＯＳＯＦＴ  ＳＩＬＶＥＲＬＩＧＨＴで記述されたスクリプトなどのスクリプト、ＡＪＡＸ（非同期ＪＡＶＡＳＣＲＩＰＴおよびＸＭＬ）などのマークアップ言語とスクリプトの組み合わせなどを実行し得る。本明細書では、ウェブページに対する参照は、適切な場合、１つまたは複数の対応するウェブページ・ファイル（ブラウザがウェブページをレンダリングするために使用し得る）を包含し、逆も同様である。
【０１５６】
特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、オンライン・ソーシャル・ネットワークをホストする、ネットワークアドレス指定可能なコンピューティング・システムであってよい。ソーシャル・ネットワーキング・システム７０２は、たとえばユーザプロファイル・データ、コンセプトプロファイル・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関係する他の適切なデータなどのソーシャルネットワーキング・データを生成、記憶、受信、および送信し得る。ソーシャル・ネットワーキング・システム７０２は、直接的に、またはネットワーク７０４を介して、のどちらかで、ネットワーク環境７００の他の構成要素によってアクセスされ得る。特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、１つまたは複数のサーバを含み得る。各サーバは、単体サーバであってもよいし、複数のコンピュータまたは複数のデータセンタにまたがる分散サーバであってもよい。サーバは、たとえば限定されるものではないが、ウェブ・サーバ、ニュース・サーバ、メール・サーバ、メッセージ・サーバ、広告サーバ、ファイル・サーバ、アプリケーション・サーバ、交換サーバ、データベース・サーバ、プロキシ・サーバ、本明細書で説明される機能もしくはプロセスを実行するのに適した別のサーバ、またはそれらの任意の組み合わせなどの、さまざまなタイプであってよい。特定の実施形態では、各サーバは、ハードウェア、ソフトウェア、または埋め込まれた論理構成要素、またはサーバによって実施もしくはサポートされる適切な機能を実行するための２つ以上そのような構成要素の組み合わせを含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、１つまたは複数のデータ・ストアを含み得る。データ・ストアは、さまざまなタイプの情報を記憶するために使用され得る。特定の実施形態では、データ・ストア内に記憶される情報は、具体的なデータ構造に従って編成され得る。特定の実施形態では、各データ・ストアは、リレーショナル・データベース、カラムナ・データベース、相関データベース、または他の適切なデータベースであってよい。本開示は特定のタイプのデータベースを説明または例示しているが、本開示は、任意の適切なタイプのデータベースを企図するものである。特定の実施形態は、クライアント・システム７０６、ソーシャル・ネットワーキング・システム７０２、またはサードパーティ・システム７０８がデータ・ストア内に記憶された情報を管理する、取り出す、修正する、追加するか、または削除することを可能にするインタフェースを提供し得る。
【０１５７】
特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、１つまたは複数のデータ・ストア内に１つまたは複数のソーシャル・グラフを記憶し得る。特定の実施形態では、ソーシャル・グラフは、複数のユーザ・ノード（各々が特定のユーザに対応する）または複数のコンセプトノード（各々が特定のコンセプトに対応する）を含み得る複数のノードと、ノードを接続する複数のエッジを含み得る。ソーシャル・ネットワーキング・システム７０２は、オンライン・ソーシャル・ネットワークのユーザに、他のユーザと通信および対話できることを提供し得る。特定の実施形態では、ユーザは、ソーシャル・ネットワーキング・システム７０２を介してオンライン・ソーシャル・ネットワークに加わり、次いで、ユーザが接続されたいソーシャル・ネットワーキング・システム７０２の何人かの他のユーザに対して接続（たとえば、関係）を追加し得る。本明細書では、「友人」という用語は、ユーザがソーシャル・ネットワーキング・システム７０２を介して接続、関連付け、または関係を形成した、ソーシャル・ネットワーキング・システム７０２の他の任意のユーザを指し得る。
【０１５８】
特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、ソーシャル・ネットワーキング・システム７０２によってサポートされるさまざまなタイプのアイテムまたはオブジェクトに対してアクションをとることをユーザに提供し得る。限定としてではなく、一例として、アイテムおよびオブジェクトは、ソーシャル・ネットワーキング・システム７０２のユーザが属し得るグループもしくはソーシャル・ネットワーク、ユーザが興味を抱き得るイベントもしくはカレンダ記載事項、ユーザが使用し得るコンピュータベースのアプリケーション、ユーザがサービスを介してアイテムを購入もしくは販売し得る取引、ユーザが実行し得る広告との対話、または他の適切なアイテムもしくはオブジェクトを含み得る。ユーザは、ソーシャル・ネットワーキング・システム７０２内で、またはサードパーティ・システム７０８の外部システムによって表されることが可能なものと対話し得、サードパーティ・システム７０８は、ソーシャル・ネットワーキング・システム７０２とは別個であり、ネットワーク７０４を介してソーシャル・ネットワーキング・システム７０２に結合される。
【０１５９】
特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、さまざまなエンティティをリンクすることが可能であり得る。限定としてではなく、一例として、ソーシャル・ネットワーキング・システム７０２は、ユーザが、互いと対話し、ならびにサードパーティ・システム７０８もしくは他のエンティティからコンテンツを受信するか、またはユーザが、アプリケーション・プログラミング・インタフェース（ＡＰＩ）もしくは他の通信チャネルを通して、これらのエンティティと対話できることを可能にし得る。
【０１６０】
特定の実施形態では、サードパーティ・システム７０８は、１つもしくは複数のタイプのサーバ、１つもしくは複数のデータ・ストア、限定されるものではないがＡＰＩを含む１つもしくは複数のインタフェース、１つもしくは複数のウェブ・サービス、１つもしくは複数のコンテンツ・ソース、１つもしくは複数のネットワーク、または、たとえばサーバが通信し得る他の任意の適切な構成要素であり得る。サードパーティ・システム７０８は、ソーシャル・ネットワーキング・システム７０２を運用するエンティティからの異なるエンティティによって運用され得る。しかしながら、特定の実施形態では、ソーシャル・ネットワーキング・システム７０２およびサードパーティ・システム７０８は、ソーシャル・ネットワーキング・システム７０２またはサードパーティ・システム７０８のユーザにソーシャルネットワーキング・サービスを提供するために互いに運用し得る。この意味で、ソーシャル・ネットワーキング・システム７０２は、サードパーティ・システム７０８などの他のシステムがインターネット全体にわたってソーシャルネットワーキング・サービスおよび機能をユーザに対して提供するために使用し得るプラットフォームすなわちバックボーンを提供し得る。
【０１６１】
特定の実施形態では、サードパーティ・システム７０８は、サードパーティ・コンテンツ・オブジェクト・プロバイダを含み得る。サードパーティ・コンテンツ・オブジェクト・プロバイダは、クライアント・システム７０６に対して通信され得るコンテンツ・オブジェクトの１つまたは複数のソースを含み得る。限定としてではなく、一例として、コンテンツ・オブジェクトは、たとえば、映画の上映時間、映画のレビュー、レストランのレビュー、レストランのメニュー、製品情報およびレビュー、または他の適切な情報などの、ユーザの興味を引く物事またはアクティビティに関する情報を含み得る。限定としてではなく、別の例として、コンテンツ・オブジェクトは、クーポン、割引チケット、商品券、または他の適切な報償となるオブジェクトなどの、報償となるコンテンツ・オブジェクトを含み得る。
【０１６２】
特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、ソーシャル・ネットワーキング・システム７０２とのユーザの対話を向上させ得る、ユーザにより生成されたコンテンツ・オブジェクトも含む。ユーザにより生成されたコンテンツは、ユーザがソーシャル・ネットワーキング・システム７０２に対して追加、アップロード、送信、または「ポストする」ものを含み得る。限定としてではなく、一例として、ユーザが、クライアント・システム７０６からソーシャル・ネットワーキング・システム７０２に対してポストを通信する。ポストとしては、ステータス更新もしくは他のテキスト・データ、ロケーション情報、フォト、映像、リンク、音楽、または他の類似のデータもしくはメディアなどのデータがあり得る。コンテンツはまた、ニュースフィードまたはストリームなどの「通信チャネル」を介して、サードパーティによってソーシャル・ネットワーキング・システム７０２に対して追加され得る。
【０１６３】
特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、さまざまなサーバと、サブシステムと、プログラムと、モジュールと、ログと、データ・ストアとを含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、ウェブ・サーバ、アクション・ロガー、ＡＰＩ要求サーバ、関連性およびランキング・エンジン、コンテンツ・オブジェクト分類器、通知コントローラ、アクション・ログ、サードパーティコンテンツ・オブジェクト公開（ｅｘｐｏｓｕｒｅ）ログ、推測モジュール、許可／プライバシー・サーバ、検索モジュール、広告ターゲティング・モジュール、ユーザインタフェース・モジュール、ユーザプロファイル・ストア、接続ストア、サードパーティ・コンテンツ・ストア、またはロケーション・ストアのうちの１つまたは複数を含んでよい。ソーシャル・ネットワーキング・システム７０２は、ネットワーク・インタフェース、セキュリティ機構、ロード・バランサ、フェイルオーバ・サーバ、管理およびネットワーク運用コンソール、他の適切な構成要素、またはそれらの任意の適切な組み合わせなどの、適切な構成要素も含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、ユーザ・プロファイルを記憶するための１つまたは複数のユーザプロファイル・ストアを含んでよい。ユーザ・プロファイルは、たとえば、経歴情報、人口統計学的情報、行動情報、社会情報、または職歴、学歴、趣味もしくは好み、興味、親密度、もしくはロケーションなどの他のタイプの記述情報を含み得る。興味情報は、１つまたは複数のカテゴリに関係する興味を含み得る。カテゴリは、汎用的であってもよいし、具体的であってもよい。限定としてではなく、一例として、ユーザが、靴のブランドについての記事に対して「いいね」を表明した場合、そのカテゴリはブランドであってもよいし、「靴」または「衣類」という汎用的なカテゴリであってもよい。接続ストアは、ユーザについての接続情報を記憶するために使用され得る。接続情報は、類似もしくは共通の職歴、グループ会員資格、趣味、学歴を有するか、または、いかなる形であれ関係する、もしくは共通属性を共有するユーザを示してもよい。接続情報は、異なるユーザとコンテンツ（内部と外部の両方）との間の、ユーザにより定義された接続も含み得る。ウェブ・サーバは、ネットワーク７０４を介して１つもしくは複数のクライアント・システム７０６または１つもしくは複数のサードパーティ・システム７０８に対してソーシャル・ネットワーキング・システム７０２をリンクするために使用され得る。ウェブ・サーバは、ソーシャル・ネットワーキング・システム７０２と１つまたは複数のクライアント・システム７０６との間でメッセージを受信およびルーティングするためのメール・サーバまたは他のメッセージング機能を含んでよい。ＡＰＩ要求サーバは、サードパーティ・システム７０８が、１つまたは複数のＡＰＩを呼び出すことによって、ソーシャル・ネットワーキング・システム７０２からの情報にアクセスすることを可能にし得る。アクション・ロガーは、ソーシャル・ネットワーキング・システム７０２上またはそれ以外の場所でのユーザのアクションについてウェブ・サーバから通信を受信するために使用され得る。アクション・ログとともに、サードパーティコンテンツ・オブジェクトに対するユーザ公開のサードパーティコンテンツオブジェクト・ログが維持され得る。通知コントローラは、コンテンツ・オブジェクトに関する情報をクライアント・システム７０６に対して提供し得る。情報は、通知としてクライアント・システム７０６に対してプッシュされてもよいし、情報は、クライアント・システム７０６から受信された要求に応答してクライアント・システム７０６からプルされてもよい。許可サーバは、ソーシャル・ネットワーキング・システム７０２のユーザの１つまたは複数のプライバシー設定を強制するために使用され得る。ユーザのプライバシー設定は、ユーザに関連付けられている特定の情報がどのように共有可能であるかを決定する。許可サーバは、ユーザが、たとえば、適切なプライバシー設定を設定することなどによって、アクションをソーシャル・ネットワーキング・システム７０２によってログさせること、または他のシステム（たとえば、サードパーティ・システム７０８）とともに共有させることに加わる、または加わらない（ｏｐｔ  ｉｎ  ｔｏ  ｏｒ  ｏｐｔ  ｏｕｔ  ｏｆ）ことを可能にする。サードパーティコンテンツオブジェクト・ストアは、サードパーティ・システム７０８などのサードパーティから受信されたコンテンツ・オブジェクトを記憶するために使用され得る。ロケーション・ストアは、ユーザに関連付けられているクライアント・システム７０６から受信されたロケーション情報を記憶するために使用され得る。広告価格設定モジュールは、社会情報、現在の時間、ロケーション情報、または他の適切な情報を組み合わせて、通知の形で関係のある広告をユーザに対して提供し得る。
【０１６４】
図８は、例となるソーシャル・グラフ８００を例示する。特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、１つまたは複数のデータ・ストア内に１つまたは複数のソーシャル・グラフ８００を記憶し得る。特定の実施形態では、ソーシャル・グラフ８００は、複数のユーザ・ノード８０２または複数のコンセプトノード８０４を含み得る複数のノードと、ノードを接続する複数のエッジ８０６とを含み得る。図８に例示される例となるソーシャル・グラフ８００は、教説的な目的で、２次元の視覚的なマップ表現で示されている。特定の実施形態では、ソーシャル・ネットワーキング・システム７０２、クライアント・システム７０６、またはサードパーティ・システム７０８は、適切なアプリケーションのためのソーシャル・グラフ８００および関係するソーシャル・グラフ情報にアクセスし得る。ソーシャル・グラフ８００のノードおよびエッジは、たとえば、データ・ストア（ソーシャル・グラフ・データベースなど）内に、データ・オブジェクトとして記憶され得る。そのようなデータ・ストアは、ソーシャル・グラフ８００のノードまたはエッジの１つまたは複数の検索可能またはクエリ可能なインデックスを含み得る。
【０１６５】
特定の実施形態では、ユーザ・ノード８０２は、ソーシャル・ネットワーキング・システム７０２のユーザに対応し得る。限定としてではなく、一例として、ユーザは、ソーシャル・ネットワーキング・システム７０２と、またはその上で対話または通信する、個人（人間ユーザ）、エンティティ（たとえば、企業、会社、もしくはサードパーティ・アプリケーション）、または（たとえば、個人もしくはエンティティの）グループであってよい。特定の実施形態では、ユーザがソーシャル・ネットワーキング・システム７０２に口座を登録するとき、ソーシャル・ネットワーキング・システム７０２は、ユーザに対応するユーザ・ノード８０２を作成し、１つまたは複数のデータ・ストア内にユーザ・ノード８０２を記憶し得る。本明細書で説明されるユーザおよびユーザ・ノード８０２は、適切な場合には、登録されたユーザと、登録されたユーザに関連付けられているユーザ・ノード８０２を指し得る。加えて、または代替として、本明細書で説明されるユーザおよびユーザ・ノード８０２は、適切な場合には、ソーシャル・ネットワーキング・システム７０２に登録されていないユーザを指し得る。特定の実施形態では、ユーザ・ノード８０２は、ユーザによって提供される情報、またはソーシャル・ネットワーキング・システム７０２を含むさまざまなシステムによって収集された情報に関連付けられ得る。限定としてではなく、一例として、ユーザは、自分の名前、プロファイル・ピクチャ、連絡先情報、誕生日、性別、配偶者の有無、家族構成、職業、学歴、好み、興味、または他の人口統計学的情報を提供し得る。ソーシャル・グラフの各ユーザ・ノードは、対応するウェブページ（典型的にはプロファイル・ページとして知られている）を有してもよい。ソーシャル・ネットワーキング・システムは、ユーザ名を含むリクエストに応答して、ユーザ名に対応するユーザ・ノードにアクセスし、名前、プロフィール画像、およびユーザに関連する他の情報を含むプロファイル・ページを構築することができる。第１のユーザのプロフィールページは、第１のユーザによる１つまたは複数のプライバシー設定および第１のユーザと第２のユーザとの間の関係に基づいて、第１のユーザの情報のすべてまたは一部を第２のユーザに表示することができる。
【０１６６】
特定の実施形態では、コンセプトノード８０４はコンセプトに対応し得る。限定としてではなく、一例として、コンセプトは、場所（たとえば、映画館、レストラン、ランドマーク、もしくは都市など）、ウェブサイト（たとえば、ソーシャル・ネットワーク・システム８０２に関連付けられているウェブサイト、もしくはウェブアプリケーション・サーバに関連付けられているサード・パーティ・ウェブサイトなど）、エンティティ（たとえば、人物、会社、グループ、スポーツ・チーム、もしくは有名人など）、ソーシャル・ネットワーキング・システム７０２の中もしくはウェブアプリケーション・サーバなどの外部サーバ上に配置され得るリソース（たとえば、オーディオ・ファイル、映像ファイル、デジタル・フォト、テキスト・ファイル、構造化文書、もしくはアプリケーションなど）、物的財産もしくは知的財産（たとえば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、または著書など）、ゲーム、アクティビティ、アイデア、もしくは理論、別の適切なコンセプト、または２つ以上のそのようなコンセプトに対応し得る。コンセプトノード８０４は、ユーザによって提供されるコンセプトの情報、またはソーシャル・ネットワーキング・システム７０２を含むさまざまなシステムによって収集された情報に関連付けられ得る。限定としてではなく、一例として、コンセプトの情報としては、名前もしくはタイトル、１つもしくは複数の画像（たとえば、本のカバー・ページの画像）、ロケーション（たとえば、住所もしくは地理的ロケーション）、ウェブサイト（ＵＲＬに関連付けられ得る）、連絡先情報（たとえば、電話番号もしくは電子メール・アドレス）、他の適切なコンセプト情報、またはそのような情報の任意の適切な組み合わせがあり得る。特定の実施形態では、コンセプトノード８０４は、コンセプトノード８０４に関連付けられている情報に対応する１つまたは複数のデータ・オブジェクトに関連付けられ得る。特定の実施形態では、コンセプトノード８０４は、１つまたは複数のウェブページに対応し得る。
【０１６７】
特定の実施形態では、ソーシャル・グラフ８００内のノードは、ウェブページ（「プロファイル・ページ」と呼ばれることがある）を表してもよいし、これによって表されてもよい。プロファイル・ページは、ソーシャル・ネットワーキング・システム７０２によってホストされてもよいし、これに対してアクセス可能であってもよい。プロファイル・ページはまた、サードパーティ・サーバ７０８に関連付けられているサード・パーティ・ウェブサイト上にホストされ得る。限定としてではなく、一例として、特定の外部のウェブページに対応するプロファイル・ページは特定の外部ウェブページであってよく、プロファイル・ページは特定のコンセプトノード８０４に対応し得る。プロファイル・ページは、他のユーザのすべてまたは選択されたサブセットによって閲覧することができてよい。限定としてではなく、一例として、ユーザ・ノード８０２は、対応するユーザがコンテンツを追加し、発表をし、または別のやり方で自分を表現し得る対応するユーザプロファイル・ページを有し得る。限定としてではなく、別の例として、コンセプトノード８０４は、特にコンセプトノード８０４に対応するコンセプトに関係して１つまたは複数のユーザがコンテンツを追加し、発表をし、または別のやり方で自分を表現し得る対応するコンセプトプロファイル・ページを有し得る。
【０１６８】
特定の実施形態では、コンセプトノード８０４は、サードパーティ・システム７０８によってホストされるサードパーティ・ウェブページまたはリソースを表し得る。サードパーティ・ウェブページまたはリソースは、要素の中でもとりわけ、アクションまたはアクティビティを表すコンテンツ、選択可能なアイコンもしくは他のアイコン、または他の対話可能なオブジェクト（たとえば、ＪａｖａＳｃｒｉｐｔコード、ＡＪＡＸコード、またはＰＨＰコードで実装され得る）を含んでよい。限定としてではなく、一例として、サードパーティ・ウェブページは、「いいね」、「チェックイン」、「食べる」、「推奨」、または別の適切なアクションもしくはアクティビティなどの選択可能なアイコンを含み得る。サードパーティ・ウェブページを閲覧するユーザは、アイコンのうちの１つ（たとえば、「食べる」）を選択し、クライアント・システム７０６に、ユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム７０２に対して送信させることによって、アクションを実行し得る。メッセージに応答して、ソーシャル・ネットワーキング・システム７０２は、ユーザに対応するユーザ・ノード８０２とサードパーティ・ウェブページまたはリソースに対応するコンセプトノード８０４との間にエッジ（たとえば、「食べる」エッジ）を作成し、１つまたは複数のデータ・ストア内にエッジ８０６を記憶し得る。
【０１６９】
特定の実施形態では、ソーシャル・グラフ８００内のノードのペアは、１つまたは複数のエッジ８０６によって互いに接続され得る。ノードのペアを接続するエッジ８０６は、ノードのペアの間の関係を表し得る。特定の実施形態では、エッジ８０６は、ノードのペアの間の関係に対応する１つまたは複数のデータ・オブジェクトまたは属性を含み得るか、またはこれを表し得る。限定としてではなく、一例として、第１のユーザは、第２のユーザが第１のユーザの「友人」であることを示し得る。このインディケーションに応答して、ソーシャル・ネットワーキング・システム７０２は、第２のユーザに対して「友人要求」を送信し得る。第２のユーザが「友人要求」を確認する場合、ソーシャル・ネットワーキング・システム７０２は、ソーシャル・グラフ８００内の第１のユーザのユーザ・ノード８０２を第２のユーザのユーザ・ノード８０２に対して接続するエッジ８０６を作成し、エッジ８０６をソーシャル・グラフ情報としてデータ・ストアのうちの１つまたは複数に記憶し得る。図８の例では、ソーシャル・グラフ８００は、ユーザ「Ａ」とユーザ「Ｂ」のユーザ・ノード８０２間の友人関係を示すエッジ８０６と、ユーザ「Ｃ」とユーザ「Ｂ」のユーザ・ノード８０２間の友人関係を示すエッジとを含む。本開示は、特定のユーザ・ノード８０２を接続する、特定の属性を有する特定のエッジ８０６を説明または例示しているが、本開示は、ユーザ・ノード８０２を接続する、任意の適切な属性を有する任意の適切なエッジ８０６を企図するものである。限定としてではなく、一例として、エッジ８０６は、友人関係、家族関係、ビジネスすなわち雇用関係、ファン関係、フォロワー関係、ビジター関係、購読者関係、上下関係、相互関係、非相互関係、別の適切なタイプの関係、または２つ以上のそのような関係を表し得る。さらに、本開示は一般に、ノードを、接続されていると説明しているが、本開示は、ユーザまたはコンセプトも、接続されていると説明する。本明細書では、接続されているユーザまたはコンセプトへの参照は、適切な場合には、ソーシャル・グラフ８００内で１つまたは複数のエッジ８０６によって接続されているそれらのユーザまたはコンセプトに対応するノードに及ぶ。
【０１７０】
特定の実施形態では、ユーザ・ノード８０２とコンセプトノード８０４との間のエッジ８０６は、コンセプトノード８０４に関連付けられているコンセプトのためにユーザ・ノード８０２に関連付けられているユーザによって実行される特定のアクションまたはアクティビティを表し得る。限定としてではなく、一例として、図８に例示されるように、ユーザは、コンセプトに対して「いいね」を表明し、「通学した」、「プレイした」、「聞いた」、「料理した」、「働いた」、またはコンセプトを「見た」とする。その各々は、エッジ・タイプまたはサブタイプに対応し得る。コンセプトノード８０４に対応するコンセプトプロファイル・ページは、たとえば、選択可能な「チェックイン」アイコン（たとえば、クリック可能な「チェックイン」アイコンなど）または選択可能な「お気に入りに追加」アイコンを含んでよい。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャル・ネットワーキング・システム７０２は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジまたは「チェックイン」エッジを作成してもよい。限定としてではなく、別の例として、ユーザ（ユーザ「Ｃ」）は、特定のアプリケーション（オンライン音楽アプリケーションであるＳＰＯＴＩＦＹ）を使用して特定の歌（「ランブル・オン」）を聞くことがある。この場合、ソーシャル・ネットワーキング・システム７０２は、ユーザがその歌を聞き、そのアプリケーションを使用したことを示すため、にユーザに対応するユーザ・ノード８０２と歌およびアプリケーションに対応するコンセプトノード８０４との間に「聞いた」エッジ８０６および「使用した」エッジ（図８に例示される）を作成し得る。さらに、ソーシャル・ネットワーキング・システム７０２は、特定の歌が特定のアプリケーションによってプレイ（再生）されたことを示すために、歌およびアプリケーションに対応するコンセプトノード８０４間に「プレイした」エッジ８０６（図８に例示される）を作成し得る。この場合、「プレイした」エッジ８０６は、外部オーディオ・ファイル（歌「イマジン」）に対して外部アプリケーション（ＳＰＯＴＩＦＹ）によって実行されるアクションに対応する。本開示は、ユーザ・ノード８０２およびコンセプトノード８０４を接続する、特定の属性を有する特定のエッジ８０６を説明しているが、本開示は、ユーザ・ノード８０２およびコンセプトノード８０４を接続する、任意の適切な属性を有する任意の適切なエッジ８０６を企図するものである。そのうえ、本開示は、単一の関係を表す、ユーザ・ノード８０２とコンセプトノード８０４との間のエッジを説明しているが、本開示は、１つまたは複数の関係を表す、ユーザ・ノード８０２とコンセプトノード８０４との間のエッジを企図する。限定としてではなく、一例として、エッジ８０６は、ユーザが特定のコンセプトに対して「いいね」を表明したことと、特定のコンセプトにおいて使用したことの両方を表し得る。代替的に、別のエッジ８０６は、ユーザ・ノード８０２とコンセプトノード８０４との間の各タイプの関係（または単一の関係の倍数）を表し得る（図８では、ユーザ「Ｅ」のユーザ・ノード８０２と「ＳＰＯＴＩＦＹ」のコンセプトノード８０４との間に例示される）。
【０１７１】
特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、ソーシャル・グラフ８００内のユーザ・ノード８０２とコンセプトノード８０４との間にエッジ８０６を作成し得る。限定としてではなく、一例として、（たとえば、ユーザのクライアント・システム７０６によってホストされるウェブ・ブラウザまたは特殊目的アプリケーションを使用することなどによって）コンセプトプロファイル・ページを閲覧するユーザは、自分はコンセプトノード８０４によって表されるコンセプトに対して「いいね」を表明したことを、「いいね」アイコンをクリックまたは選択することによって示し得、それは、ユーザはコンセプトプロファイル・ページに関連付けられているコンセプトに対して「いいね」を表明したことを示すメッセージをソーシャル・ネットワーキング・システム７０２に対して送信することをユーザのクライアント・システム７０６に行わせ得る。メッセージに応答して、ソーシャル・ネットワーキング・システム７０２は、ユーザとコンセプトノード８０４との間の「いいね」エッジ８０６によって例示されるように、ユーザに関連付けられているユーザ・ノード８０２とコンセプトノード８０４との間にエッジ８０６を作成し得る。特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、１つまたは複数のデータ・ストアにエッジ８０６を記憶し得る。特定の実施形態では、エッジ８０６は、特定のユーザ・アクションに応答して、ソーシャル・ネットワーキング・システム７０２によって自動的に形成され得る。限定としてではなく、一例として、第１のユーザがピクチャをアップロードする、映画を見る、または歌を聞く場合、エッジ８０６は、第１のユーザに対応するユーザ・ノード８０２とそれらのコンセプトに対応するコンセプトノード８０４との間に形成され得る。本開示は、特定の様式で特定のエッジ８０６を形成することを説明しているが、本開示は、任意の適切な様式で任意の適切なエッジ８０６を形成することを企図するものである。
【０１７２】
特定の実施形態では、広告は、テキスト（ＨＴＭＬリンクであってよい）、１つもしくは複数の画像（ＨＴＭＬリンクであってよい）、１つもしくは複数の映像、オーディオ、１つもしくは複数のＡＤＯＢＥ  ＦＬＡＳＨファイル、これらの適切な組み合わせ、または１つもしくは複数のウェブページ上で、１つもしくは複数の電子メール内で、もしくはユーザによって要求された検索結果に関係して、提示される任意の適切なデジタル・フォーマットの他の任意の適切な広告であってよい。加えて、または代替として、広告は、１つまたは複数のスポンサー付きストーリー（たとえば、ソーシャル・ネットワーキング・システム７０２上のニュースフィードまたはティッカー・アイテム）である。スポンサー付きストーリーは、たとえば、ソーシャル・アクションを、ユーザのプロファイル・ページまたは他のページの所定のエリア内に提示させる、広告主に関連付けられている追加の情報とともに提示させる、他のユーザのニュースフィードもしくはティッカー内で衝突させるもしくは別のやり方で目立たせる、または別のやり方でプロモーションさせることによって広告主がプロモーションする、ユーザによるソーシャル・アクション（ページに対して「いいね」を表明する、ページ上のポストに対して「いいね」を表明するもしくはコメントする、ページに関連付けられているイベントの出欠を返事する、ページ上でポストされた質問に関してポストする、ある場所にチェックインする、アプリケーションを使用するもしくはゲームをするか、またはウェブサイトを「リンク」もしくは共有するなど）であってよい。広告主は、ソーシャル・アクションをプロモーションさせるために支払うことがある。限定としてではなく、一例として、広告は検索結果ページの検索結果の間に含まれてよく、そこでは、スポンサー付きコンテンツは、スポンサー付きでないコンテンツよりもプロモーションされる。
【０１７３】
特定の実施形態では、広告は、ソーシャル・ネットワーキング・システム・ウェブページ、サードパーティ・ウェブページ、または他のページ内での表示のために要求され得る。広告は、ページの上部のバナー・エリア内、ページの側部のカラム内、ページのＧＵＩ内、ポップアップ・ウィンドウ内、ドロップダウン・メニュー内、ページの入力フィールド内、ページのコンテンツの上部の上、またはページに関する他の場所などの、ページの専用部分内に表示され得る。加えて、または代替として、広告はアプリケーション内に表示され得る。広告は、専用ページ内に表示され、ユーザに、ユーザがページにアクセスするか、またはアプリケーションを利用する前に広告と対話するか、またはこれを見ることを要求し得る。ユーザは、たとえば、ウェブ・ブラウザを通して広告を閲覧してもよい。
【０１７４】
ユーザは、任意の適切な様式で広告と対話してもよい。ユーザは、広告をクリックしてもよいし、または別のやり方で広告を選択してもよい。広告を選択することによって、ユーザは、広告に関連付けられているページ（または、ユーザによって使用されているブラウザもしくは他のアプリケーション）に対して向けられ得る。広告に関連付けられているページでは、ユーザは、広告に関連付けられている製品もしくはサービスを購入する、広告に関連付けられている情報を受信するか、または広告に関連付けられているニュースレターを購読するなどの、追加のアクションをとり得る。オーディオまたは映像を有する広告は、（「プレイ・ボタン」などの）広告の構成要素を選択することによってプレイされ得る。代替的に、広告を選択することによって、ソーシャル・ネットワーキング・システム７０２は、ユーザの特定のアクションを実行または修正し得る。
【０１７５】
広告は、ユーザが対話し得るソーシャル・ネットワーキング・システム機能も含み得る。限定としてではなく、一例として、広告は、ユーザが、支持に関連付けられているアイコンまたはリンクを選択することによって広告に対して「いいね」を表明するか、または別のやり方で広告を支持することを可能にし得る。限定としてではなく、別の例として、広告は、ユーザが、広告主に関連するコンテンツを（たとえば、クエリを実行することによって）検索することを可能にし得る。同様に、ユーザは、別のユーザと（たとえば、ソーシャル・ネットワーキング・システム７０２を通して）広告を共有し得、または広告に関連付けられているイベントの出欠を（たとえば、ソーシャル・ネットワーキング・システム７０２を通して）返事し得る。加えて、または代替として、広告は、ユーザに対して向けられたソーシャル・ネットワーキング・システム・コンテキストを含み得る。限定としてではなく、一例として、広告は、広告の主題に関連付けられているアクションをとった、ソーシャル・ネットワーキング・システム７０２内のユーザの友人についての情報を表示し得る。
【０１７６】
特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、互いに対するさまざまなソーシャル・グラフ・エンティティのソーシャル・グラフ親密度（本明細書では、「親密度」と呼ばれることがある）を決定し得る。親密度は、ユーザ、コンセプト、コンテンツ、アクション、広告、オンライン・ソーシャル・ネットワークに関連付けられている他のオブジェクト、またはそれらの任意の適切な組み合わせなどの、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強さまたは興味のレベルを表し得る。親密度は、サードパーティ・システム７０８または他の適切なシステムに関連付けられているオブジェクトに対しても決定され得る。各ユーザ、主題、またはコンテンツのタイプのためのソーシャル・グラフ・エンティティの全体的な親密度が確立され得る。全体的な親密度は、ソーシャル・グラフ・エンティティに関連付けられているアクションまたは関係の継続モニタリングに基づいて変化し得る。本開示は、特定の様式で特定の親密度を決定することを説明しているが、本開示は、任意の適切な様式で任意の適切な親密度を決定することを企図している。
【０１７７】
特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、親密度係数（本明細書では、「係数」と呼ばれることがある）を使用してソーシャル・グラフ親密度を測定または定量化し得る。係数は、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強さを表すまたは定量化し得る。係数は、アクションにおけるユーザの興味に基づいてユーザが特定のアクションを実行する予測確率を測定する確率または機能も表し得る。このようにして、ユーザの将来のアクションは、ユーザの前のアクションに基づいて予測され得、係数は、少なくとも部分的にユーザのアクションの履歴が計算され得る。係数は、任意の数のアクションを予測するために使用され得、アクションは、オンライン・ソーシャル・ネットワーク内であってもよいし、オンライン・ソーシャル・ネットワークの外部であってもよい。限定としてではなく、一例として、これらのアクションは、メッセージを送信すること、コンテンツをポストすること、もしくはコンテンツに対してコメントすることなどのさまざまなタイプの通信、プロファイル・ページ、メディア、もしくは他の適切なコンテンツにアクセスもしくは閲覧するなどのさまざまなタイプの観察アクション、同じグループ内にある、同じ写真でタグ付けされている、同じロケーションにチェックインした、もしくは同じイベントに出席したなどの２つ以上のソーシャル・グラフ・エンティティについてのさまざまなタイプの一致情報、または他の適切なアクションを含み得る。本開示は、特定の様式で親密度を測定することを説明しているが、本開示は、任意の適切な様式で親密度を測定することを企図している。
【０１７８】
特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、さまざまな因子を使用して係数を計算し得る。これらの因子としては、たとえば、ユーザ・アクション、オブジェクト間の関係のタイプ、ロケーション情報、他の適切な因子、またはそれらの任意の組み合わせがあり得る。特定の実施形態では、異なる因子は、係数を計算するとき、異なるように重み付けされ得る。各因子の重みは静的であってもよいし、重みは、たとえば、ユーザ、関係のタイプ、アクションのタイプ、ユーザのロケーションなどに応じて変化してもよい。因子のレーティングは、ユーザの全体的係数を決定するための重みに応じて組み合わされ得る。限定としてではなく、一例として、特定のユーザ・アクションは、レーティングと重みの両方に対して割り当てられてよく、特定のユーザ・アクションに関連付けられている関係は、レーティングおよび相関重みが割り当てられる（たとえば、そのため、重みは合計１００％になる）。特定のオブジェクトに対するユーザの係数を計算するために、ユーザのアクションに対して割り当てられたレーティングは、たとえば、全体的係数の６０％を備えることがあり、ユーザとオブジェクトとの間の関係は全体的係数の４０％を備えることがある。特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、たとえば、情報がアクセスされてからの時間、減衰因子、アクセスの頻度、情報との関係もしくは情報がアクセスされたオブジェクトとの関係、オブジェクトに対して接続されたソーシャル・グラフ・エンティティとの関係、ユーザ・アクションの短期もしくは長期の平均、ユーザ・フィードバック、他の適切な変数、またはそれらの任意の組み合わせなどの、係数を計算するために使用されるさまざまな因子に対する重みを決定するとき、さまざまな変数を考慮し得る。限定としてではなく、一例として、係数は、係数を計算するとき、アクションが最近であればあるほど関連度が大きくなるように、特定のアクションによって提供される信号の強さを時間とともに減衰させる減衰因子を含み得る。レーティングおよび重みは、係数が基づくアクションの継続追跡に基づいて連続的に更新され得る。任意のタイプのプロセスまたはアルゴリズムが、各因子および因子に対して割り当てられた重みに対するレーティングを割り当てる、組み合わせる、平均化するなどを行うために用いられてよい。特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、履歴アクションおよび過去のユーザ応答、またはさまざまなオプションに対してさらし、応答を測定することによってユーザから得られた（ｆａｒｍｅｄ）データに関して訓練された機械学習アルゴリズムを使用して係数を決定し得る。本開示は、特定の様式で係数を計算することを説明しているが、本開示は、任意の適切な様式で係数を計算することを企図している。
【０１７９】
特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、ユーザのアクションに基づいて係数を計算し得る。ソーシャル・ネットワーキング・システム７０２は、オンライン・ソーシャル・ネットワーク上で、サードパーティ・システム７０８上で、他の適切なシステム上で、またはそれらの任意の組み合わせで、そのようなアクションを監視してもよい。任意の適切なタイプのユーザ・アクションが追跡または監視されてもよい。典型的なユーザ・アクションとしては、プロファイル・ページを閲覧すること、コンテンツを作成またはポストすること、コンテンツと対話すること、グループに加わること、イベントにおける出席をリストし確認すること、ロケーションにチェックインすること、特定のページに対して「いいね」を表明すること、ページを作成すること、およびソーシャル・アクションを促進する他のタスクを実行することがある。特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、特定のタイプのコンテンツとのユーザのアクションに基づいて係数を計算し得る。コンテンツは、オンライン・ソーシャル・ネットワーク、サードパーティ・システム７０８、または別の適切なシステムに関連付けられ得る。コンテンツとしては、ユーザ、プロファイル・ページ、ポスト、ニュース・ストーリー、ヘッドライン、インスタント・メッセージ、チャット・ルームの会話、電子メール、広告、ピクチャ、映像、音楽、他の適切なオブジェクト、またはそれらの任意の組み合わせがある。ソーシャル・ネットワーキング・システム７０２は、ユーザのアクションを分析して、アクションのうちの１つまたは複数が主題、コンテンツ、他のユーザなどに対して親密度を示すか否かを決定し得る。限定としてではなく、一例として、ユーザが、「コーヒー」またはその変種に関係したコンテンツのポストを頻繁に行う場合、ソーシャル・ネットワーキング・システム７０２は、ユーザが「コーヒー」というコンセプトに関して高い係数を有することを決定し得る。特定のアクションまたは特定のタイプのアクションは、計算された全体的係数に影響し得る、他のアクションよりも高い重みおよび／またはレーティングが割り当てられ得る。限定としてではなく、一例として、第１のユーザが第２のユーザに電子メールを出す場合、アクションに対する重みまたはレーティングは、第１のユーザが第２のユーザのためのユーザプロファイル・ページを閲覧するだけの場合よりも高くなり得る。
【０１８０】
特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、特定のオブジェクト間の関係のタイプに基づいて係数を計算し得る。ソーシャル・グラフ８００を参照すると、ソーシャル・ネットワーキング・システム７０２は、係数を計算するとき、特定のユーザ・ノード８０２とコンセプトノード８０４を接続するエッジ８０６の数および／またはタイプを分析し得る。限定としてではなく、一例として、配偶者タイプのエッジ（２人のユーザが結婚していることを表す）によって接続されるユーザ・ノード８０２は、友人タイプのエッジによって接続されるユーザ・ノード８０２よりも高い係数が割り当てられ得る。言い換えれば、特定のユーザのためのアクションおよび関係に対して割り当てられた重みに応じて、全体的親密度は、ユーザの友人についてのコンテンツに対するよりもユーザの配偶者についてのコンテンツに対して高くなるように決定され得る。特定の実施形態では、ユーザが別のオブジェクトと有する関係は、そのオブジェクトに関する係数を計算することに関するユーザのアクションの重みおよび／またはレーティングに影響し得る。限定としてではなく、一例として、コンテンツとタグ付けタイプの関係を有することは、コンテンツと「いいね」タイプの関係を有するよりも高い重みおよび／またはレーティングを割り当てられ得るので、ユーザが第１のフォトでタグ付けされるが、第２のフォトに対しては「いいね」を表明するにすぎない場合、ソーシャル・ネットワーキング・システム７０２は、ユーザが、第２のフォトよりも第１のフォトに関して高い係数を有することを決定し得る。特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、１つまたは複数の第２のユーザが特定のオブジェクトと有する関係に基づいて、第１のユーザに関する係数を計算し得る。言い換えれば、他のユーザがオブジェクトと有する接続および係数は、第１のユーザのオブジェクトに関する係数に影響し得る。限定としてではなく、一例として、第１のユーザが、１つもしくは複数の第２のユーザに対して接続される、またはそれらに関して高い係数を有し、それらの第２のユーザが特定のオブジェクトに接続されるか、またはそれに関して高い係数を有する場合、ソーシャル・ネットワーキング・システム７０２は、第１のユーザも、特定のオブジェクトに関する比較的高い係数も有するべきであることを決定し得る。特定の実施形態では、係数は、特定のオブジェクト間の分離度に基づいてもよい。任意の２つのノード間の分離度は、あるノードから別のノードへソーシャル・グラフを横断するために必要なホップの最小数として定義される。２つのノード間の分離度は、ソーシャル・グラフ内の２つのノードによって表されるユーザまたはコンセプト間の関連性の尺度とみなすことができる。例えば、エッジによって直接接続されているユーザ・ノード（すなわち、１次ノードである）を有する２人のユーザは、「つながりのあるユーザ」または「友人」として記述されてもよい。同様に、別のユーザ・ノードを介してのみ接続されているユーザ・ノード（すなわち、２次ノードである）を有する２人のユーザは、「友人の友人」と記述することができる。より低い係数は、第１のユーザが、ソーシャル・グラフ８００内で第１のユーザに対して間接的に接続されたユーザのコンテンツ・オブジェクトにおいて興味を共有する可能性の減少を表し得る。限定としてではなく、一例として、ソーシャル・グラフ８００内でより近い（すなわち、隔たり次数のより低い）ソーシャル・グラフ・エンティティは、ソーシャル・グラフ８００内でさらに離れたエンティティよりも高い係数を有し得る。
【０１８１】
特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、ロケーション情報に基づいて係数を計算し得る。互いに対して地理的により近いオブジェクトは、より遠いオブジェクトよりも互いに対してより関係がある、またはより興味があると考えられ得る。特定の実施形態では、特定のオブジェクトのためのユーザの係数は、ユーザに関連付けられている現在のロケーション（またはユーザのクライアント・システム７０６のロケーション）に対するオブジェクトのロケーションの近接性に基づき得る。第１のユーザは、第１のユーザに対してより近い他のユーザまたはコンセプトに、より興味があり得る。限定としてではなく、一例として、ユーザが空港から１．６０９ｋｍ（１マイル）、ガソリン・スタンドから３．２１９ｋｍ（２マイル）のところに位置している場合、ソーシャル・ネットワーキング・システム７０２は、ユーザに対する空港の近接性に基づいて、ユーザがガソリン・スタンドよりも空港に関して高い係数を有することを決定し得る。
【０１８２】
特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、係数情報に基づいて、ユーザに関する特定のアクションを実行し得る。係数は、ユーザのアクションへの興味に基づいて、ユーザが特定のアクションを実行するか否かを予測するために使用され得る。係数は、広告、検索結果、ニュース・ストーリー、メディア、メッセージ、通知、または他の適切なオブジェクトなどの任意のタイプのオブジェクトをユーザに対して生成または提示するとき、使用され得る。係数はまた、必要に応じて、そのようなオブジェクトをランキングし、順序付けるために利用され得る。このようにして、ソーシャル・ネットワーキング・システム７０２は、ユーザの興味および現在の環境に関連のある情報を提供し、興味のあるそのような情報を見つける可能性を増加させ得る。特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、係数情報に基づいてコンテンツを生成し得る。コンテンツ・オブジェクトは、ユーザに固有の係数に基づいて提供または選択され得る。限定としてではなく、一例として、ユーザが、ユーザがメディア・オブジェクトに関して高い全体的係数を有するメディアが提示される場合、係数は、ユーザのためのメディアを生成するために使用され得る。限定としてではなく、別の例として、ユーザが、ユーザが広告付きオブジェクトに関して高い全体的係数を有する広告が提示される場合、係数は、ユーザのための広告を生成するために使用され得る。特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、係数情報に基づいて検索結果を生成し得る。特定のユーザのための検索結果は、クエリを発行したユーザに対する検索結果に関連付けられている係数に基づいてスコア付けまたはランキングされ得る。限定としてではなく、一例として、より高い係数を有するオブジェクトに対応する検索結果は、検索結果ページ上で、より低い係数を有するオブジェクトに対応する結果よりも高くランキングされ得る。
【０１８３】
特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、特定のシステムまたはプロセスからの係数の要求に応答して係数を計算し得る。ユーザが所与の状況でとり得る（または、その対象であり得る）可能性があるアクションを予測するために、任意のプロセスは、ユーザに関する計算された係数を要求し得る。要求は、係数を計算するために使用されるさまざまな因子に使用する重みのセットも含み得る。この要求は、オンライン・ソーシャル・ネットワーク上で実行されているプロセスから来ることもあるし、サードパーティ・システム７０８から（たとえば、ＡＰＩまたは他の通信チャネルを介して）来ることもあるし、別の適切なシステムから来ることもある。要求に応答して、ソーシャル・ネットワーキング・システム７０２は、係数を計算し得る（または、係数情報が以前に計算され、記憶されている場合、その係数情報にアクセスし得る）。特定の実施形態では、ソーシャル・ネットワーキング・システム７０２は、特定のプロセスに関して親密度を測定し得る。さまざまなプロセス（オンライン・ソーシャル・ネットワークに対して内部と外部の両方にある）は、特定のオブジェクトまたはオブジェクトのセットに関する係数を要求し得る。ソーシャル・ネットワーキング・システム７０２は、親密度の尺度を要求した特定のプロセスに対して関連のある親密度の尺度を提供し得る。このようにして、各プロセスは、プロセスが親密度の尺度を使用する異なるコンテキストに合わせられた親密度の尺度を受信する。
【０１８４】
ソーシャル・グラフ親密度および親密度係数に関して、特定の実施形態は、その各々が本願明細書に援用される、２００６年８月１１日に出願された米国特許出願第１１／５０３０９３号、２０１０年１２月２２日に出願された米国特許出願第１２／９７７０２７号、２０１０年１２月２３日に出願された米国特許出願第１２／９７８２６５号、および２０１２年１０月０１日に出願された米国特許出願第１３／６４２８６９号に開示されている１つまたは複数のシステム、構成要素、要素、機能、方法、動作、またはステップを利用し得る。
【０１８５】
特定の実施形態では、オンライン・ソーシャル・ネットワークのコンテンツ・オブジェクトのうちの１つまたは複数がプライバシー設定に関連付けられ得る。オブジェクトのためのプライバシー設定（または「アクセス設定」）は、たとえば、オブジェクトに関連して、許可サーバ上のインデックス内に、別の適切な様式で、または、それらの任意の組み合わせなどの任意の適切な様式で記憶されてもよい。オブジェクトのプライバシー設定は、オブジェクト（またはオブジェクトに関連付けられている特定の情報）が、オンライン・ソーシャル・ネットワークを使用してどのようにアクセス（たとえば、閲覧または共有）され得るかを規定し得る。オブジェクトのためのプライバシー設定は、特定のユーザがそのオブジェクトにアクセスすることを可能にし、オブジェクトは、そのユーザに対して「閲覧可能」と説明され得る。限定としてではなく、一例として、オンライン・ソーシャル・ネットワークのユーザは、ユーザプロファイル・ページのためのプライバシー設定が、ユーザプロファイル・ページ上の職歴情報にアクセスし得るユーザのセットを識別し、したがって、他のユーザを情報にアクセスさせないことを規定し得る。特定の実施形態では、プライバシー設定は、オブジェクトに関連付けられている一定の情報にアクセスすることが可能にされるべきではないユーザの「遮断リスト」を規定し得る。言い換えれば、遮断リストは、オブジェクトが見えない１つまたは複数のユーザまたはエンティティを規定し得る。限定としてではなく、一例として、ユーザは、ユーザに関連付けられているフォト・アルバムにアクセスし得ないユーザのセットを規定し、したがって、それらのユーザをフォト・アルバムにアクセスさせ得ない（がまた、おそらく、ユーザのセットに含まれない一定のユーザはフォト・アルバムにアクセスすることを可能にする）。特定の実施形態では、プライバシー設定は、特定のソーシャル・グラフ要素に関連付けられ得る。ノードまたはエッジなどのソーシャル・グラフ要素のプライバシー設定は、ソーシャル・グラフ要素、ソーシャル・グラフ要素に関連付けられている情報、またはソーシャル・グラフ要素に関連付けられているコンテンツ・オブジェクトがどのようにしてオンライン・ソーシャル・ネットワークを使用してアクセス可能であるかを規定し得る。限定としてではなく、一例として、特定のフォトに対応する特定のコンセプトノード８０４は、そのフォトは、フォトでタグ付けされたユーザおよびユーザの友人によってのみアクセスされ得ることを規定するプライバシー設定を有し得る。特定の実施形態では、プライバシー設定は、ユーザが、アクションをソーシャル・ネットワーキング・システム７０２によってログさせること、または他のシステム（たとえば、サードパーティ・システム７０８）と共有させることに加わる、または加わらないことを可能にする。特定の実施形態では、オブジェクトに関連付けられているプライバシー設定は、任意の適切な粒度の許容されたアクセスまたはアクセスの否定を規定し得る。限定としてではなく、一例として、アクセスまたはアクセスの否定は、特定のユーザ（たとえば、自分のみ、ルームメイト、および上司）、特定の次数以内の隔たりに含まれるユーザ（たとえば、友人、または友人の友人）、ユーザ・グループ（たとえば、ゲーム・クラブ、家族）、ユーザ・ネットワーク（たとえば、特定の雇用者の従業員、学生、または特定の大学の卒業生）、すべてのユーザ（「パブリック」）、ユーザなし（「プライベート」）、サードパーティ・システム７０８のユーザ、特定のアプリケーション（たとえば、サードパーティ・アプリケーション、外部ウェブサイト）、他の適切なユーザもしくはエンティティ、またはそれらの任意の組み合わせに対して規定され得る。本開示は、特定の様式で特定のプライバシー設定を使用することを説明しているが、本開示は、任意の適切な様式で任意の適切なプライバシー設定を使用することを企図している。
【０１８６】
特定の実施形態では、１つまたは複数のサーバは、プライバシー設定を強制するための許可／プライバシー・サーバであってよい。データ・ストア内に記憶された特定のオブジェクトに関するユーザ（または他のエンティティ）からの要求に応答して、ソーシャル・ネットワーキング・システム７０２は、オブジェクトのためのデータ・ストアに対して要求を送信し得る。要求は、要求に関連付けられているユーザを識別し得、許可サーバが、オブジェクトに関連付けられているプライバシー設定に基づいて、ユーザがオブジェクトにアクセスすることを許可されていることを決定した場合、ユーザ（またはユーザのクライアント・システム７０６）のみに対して送信され得る。要求元ユーザが、オブジェクトにアクセスすることが許可されていない場合、許可サーバは、要求されたオブジェクトがデータ・ストアから取り出されるのを防止し得る、または、要求されたオブジェクトがユーザに対して送信されるのを防止し得る。検索クエリ・コンテキストでは、クエリ元ユーザが、オブジェクトにアクセスすることが許可されている場合、そのオブジェクトは、検索結果としてのみ生成され得る。言い換えれば、オブジェクトは、クエリ元ユーザに見える可視性を有さなければならない。オブジェクトが、ユーザに見えない可視性を有する場合、オブジェクトは検索結果から除外され得る。本開示は、特定の様式でプライバシー設定を強制することを説明しているが、本開示は、任意の適切な様式でプライバシー設定を強制することを企図したものである。
【０１８７】
上記明細は、特定の例示的な実施形態を参照して記載されている。種々実施形態および本開示の様相は、本明細書に記載の詳細を参照して記述され、添付の図面は、これら種々の実施形態を示している。上記説明および図面は、本発明の一例に過ぎず、本発明を制限するものと解釈されるべきではない。多くの具体的詳細の記述によって、本発明の種々の実施形態の十分な理解が得られる。
【０１８８】
追加または代替の実施形態は、その主旨または本質的特性から逸脱することなく、他の特定の形態で具現化されるようになっていてもよい。上記実施形態は、あらゆる点において一例に過ぎず、何ら限定的なものではないと解釈されるべきである。したがって、本開示の範囲は、上記説明ではなく、添付の特許請求の範囲によって指定される。特許請求の範囲と同等の意味および範囲に含まれるすべての変更は、上記請求の範囲に包含されるものとする。
【図１】
0006705841.tif 000002
【図２】
0006705841.tif 000003
【図３Ａ】
0006705841.tif 000004
【図３Ｂ】
0006705841.tif 000005
【図３Ｃ】
0006705841.tif 000006
【図３Ｄ】
0006705841.tif 000007
【図３Ｅ】
0006705841.tif 000008
【図３Ｆ】
0006705841.tif 000009
【図３Ｇ】
0006705841.tif 000010
【図３Ｈ】
0006705841.tif 000011
【図３Ｉ】
0006705841.tif 000012
【図４Ａ】
0006705841.tif 000013
【図４Ｂ】
0006705841.tif 000014
【図４Ｃ】
0006705841.tif 000015
【図５】
0006705841.tif 000016
【図６】
0006705841.tif 000017
【図７】
0006705841.tif 000018
【図８】
0006705841.tif 000019