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

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

▶ フェイスブック,インク.の特許一覧

特許6705841メッセージングによるパーソナル・アシスタント・サービスの提供
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6705841
(24)【登録日】2020年5月18日
(45)【発行日】2020年6月3日
(54)【発明の名称】メッセージングによるパーソナル・アシスタント・サービスの提供
(51)【国際特許分類】
   G06F 16/903 20190101AFI20200525BHJP
   G06F 13/00 20060101ALI20200525BHJP
   G06F 3/0482 20130101ALI20200525BHJP
【FI】
   G06F16/903
   G06F13/00 650B
   G06F3/0482
【請求項の数】15
【全頁数】55
(21)【出願番号】特願2017-567747(P2017-567747)
(86)(22)【出願日】2015年9月4日
(65)【公表番号】特表2018-530026(P2018-530026A)
(43)【公表日】2018年10月11日
(86)【国際出願番号】US2015048653
(87)【国際公開番号】WO2017019110
(87)【国際公開日】20170202
【審査請求日】2018年8月22日
(31)【優先権主張番号】14/809,078
(32)【優先日】2015年7月24日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】フェイスブック,インク.
(74)【代理人】
【識別番号】110002974
【氏名又は名称】特許業務法人World IP
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】ダニエル、ロバート フランクリン
(72)【発明者】
【氏名】タルマー、ヨラム
(72)【発明者】
【氏名】ルブラン、アレクサンドル
(72)【発明者】
【氏名】ランドウスキー、ローラン ニコラ
(72)【発明者】
【氏名】デミール、デニズ
(72)【発明者】
【氏名】ゴールドバーグ、ジェレミー ハリソン
(72)【発明者】
【氏名】ブランダン、ウィリー
【審査官】 原 秀人
(56)【参考文献】
【文献】 特表2013−517566(JP,A)
【文献】 国際公開第2014/113349(WO,A1)
【文献】 米国特許出願公開第2013/0185074(US,A1)
【文献】 米国特許出願公開第2014/0280757(US,A1)
【文献】 特開2015−122104(JP,A)
【文献】 特開平08−274772(JP,A)
【文献】 特開2004−178527(JP,A)
【文献】 守時 理裕,音声対話システムにおけるユーザ適応技術の統合手法の提案,言語処理学会第13回年次大会発表論文集,日本,言語処理学会,2007年 3月19日,pp. 1018-1021
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00
G06F 3/048
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
方法であって、
1つまたは複数のサーバがメッセージング・アプリケーションのユーザからパーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信する工程と、
該1つまたは複数のサーバが該要求を満たすためにエージェントに該要求を振り当てる工程と、
自然言語プロセッサを使用して、該要求の意図を判定する工程と、
該要求の判定された意図に対応する複数の特性を判定する工程と、
該要求において、前記複数の特性に対応する1つまたは複数の要求詳細を識別する工程と、
エージェント・ユーザ・インタフェース内の1つまたは複数の詳細の要素に関連する1つまたは複数の詳細フィールドに、識別された前記1つまたは複数の要求詳細を追加する工程と、
前記1つまたは複数のサーバが、エージェント・クライアント・デバイスで表示するために、エージェント・ユーザ・インタフェースが、前記エージェント・ユーザ・インタフェースのメッセージング・インタフェースの上部のオーバーレイ内に、前記要求の判定された意図に関連する前記1つまたは複数の詳細の要素を含むように構成する工程と、ここで、前記詳細の要素は前記エージェントによって変更可能なものであり、
前記1つまたは複数のサーバが、前記判定された意図に関する情報を入手するために1つまたは複数のサードパーティ・サービスとの間で自動的にデータの授受を行う工程とを含む、方法。
【請求項2】
前記要求の意図を判定する工程は、前記要求から、意図を示す1つまたは複数の単語または句を識別することを含み、
前記エージェント・ユーザ・インタフェースが前記要求の判定された意図に関連する1つまたは複数の詳細の要素を含むように構成する工程は、前記ユーザ・インタフェースにおいて前記1つまたは複数の単語または句に関連する1つまたは複数の可能なオプションを提供することを含む、請求項1に記載の方法。
【請求項3】
前記要求に基づいて、前記判定された意図に関連する未追加の詳細フィールドを識別する工程と、
該未追加の詳細フィールドに関連する前記要求に対する自動化された応答を生成する工程と、
前記メッセージング・アプリケーションの前記ユーザに送るために前記エージェント・ユーザ・インタフェースのメッセージング・エリア内で前記エージェントに生成された前記応答を提供する工程と
をさらに含む、請求項1または2に記載の方法。
【請求項4】
前記要求の意図を変更するために前記エージェント・ユーザ・インタフェースを介してユーザ入力を受け取る工程と、
前記要求の変更された意図に従う1つまたは複数の詳細の要素を含むように前記エージェント・ユーザ・インタフェースを再構成する工程と
をさらに含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記要求を含む前記電子メッセージに関連する電子メッセージのメッセージング履歴を維持する工程と、
前記要求に関連する前記エージェントによる1つまたは複数のアクションを識別する工程と、
前記メッセージング履歴および識別された前記1つまたは複数のアクションに基づいて機械学習モデルをトレーニングする工程と
をさらに含む、請求項1から4のいずれか一項に記載の方法。
【請求項6】
記要求の判定された意図に基づいて、サードパーティ・サービスからオプションのリストを入手する工程と
前記エージェント・ユーザ・インタフェース内で該サードパーティ・サービスからのオプションの該リストを提供する工程とをさらに含み、
好ましくは、前記エージェント・ユーザ・インタフェース内でオプションの前記リストに対応する複数の選択可能な要素を提供する工程をさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
システムであって、
少なくとも1つのプロセッサと、
命令を記憶している少なくとも1つの非一時的コンピュータ可読記憶媒体とを備え、前記命令は、該少なくとも1つのプロセッサによって実行されたとき、該システムが、
メッセージング・アプリケーションのユーザからパーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信し、
該要求を満たすためにエージェントに該要求を振り当て、
自然言語プロセッサを使用して、該要求の意図を判定し、
該要求の判定された意図に対応する複数の特性を判定し、
該要求において、前記複数の特性に対応する1つまたは複数の要求詳細を識別し、
エージェント・ユーザ・インタフェース内の1つまたは複数の詳細の要素に関連する1つまたは複数の詳細フィールドに、識別された前記1つまたは複数の要求詳細を追加し、
エージェント・クライアント・デバイスで表示するために、エージェント・ユーザ・インタフェースが、前記エージェント・ユーザ・インタフェースのメッセージング・インタフェースの上部のオーバーレイ内に、前記要求の判定された意図に関連する前記1つまたは複数の詳細の要素を含むように構成し、ここで、前記詳細の要素は前記エージェントによって変更可能なものであり、
前記判定された意図に関する情報を入手するために1つまたは複数のサードパーティ・サービスとの間で自動的にデータの授受を行うようにする、システム。
【請求項8】
前記要求の意図を判定することは、前記要求から、意図を示す1つまたは複数の単語または句を識別することを含み、
前記エージェント・ユーザ・インタフェースが前記要求の判定された意図に関連する1つまたは複数の詳細の要素を含むように構成することは、前記ユーザ・インタフェースにおいて前記1つまたは複数の単語または句に関連する1つまたは複数の可能なオプションを提供することを含む、請求項に記載のシステム。
【請求項9】
前記少なくとも1つのプロセッサによって実行されたとき、前記システムが、
前記要求に基づいて、前記1つまたは複数の詳細フィールドから未追加の詳細フィールドを識別し、
該未追加の詳細フィールドに関連する前記要求に対する自動化された応答を生成し、
前記メッセージング・アプリケーションの前記ユーザに送るために前記エージェント・ユーザ・インタフェースのメッセージング・エリア内で前記エージェントに生成された前記応答を提供するようにする命令をさらに含む、請求項7または8に記載のシステム。
【請求項10】
前記少なくとも1つのプロセッサによって実行されたとき、前記システムが、
前記要求の意図を変更するために前記エージェント・ユーザ・インタフェースを介してユーザ入力を受け取り、
前記要求の変更された意図に関連する1つまたは複数の詳細の要素を含むように前記エージェント・ユーザ・インタフェースを再構成するようにする命令をさらに含む、請求項7から9のいずれか一項に記載のシステム。
【請求項11】
前記少なくとも1つのプロセッサによって実行されたとき、前記システムが、
前記要求を含む前記電子メッセージに関連する電子メッセージのメッセージング履歴を維持し、
前記要求に関連する前記エージェントによる1つまたは複数のアクションを識別し、
前記メッセージング履歴および識別された前記1つまたは複数のアクションに基づいて機械学習モデルをトレーニングするようにする命令をさらに含む、請求項7から10のいずれか一項に記載のシステム。
【請求項12】
前記少なくとも1つのプロセッサによって実行されたとき、前記システムが、
前記要求の判定された意図に基づいて、サードパーティ・サービスからオプションのリストを入手し、
前記エージェント・ユーザ・インタフェース内で該サードパーティ・サービスからのオプションの該リストを提供するようにする命令をさらに含む、請求項7から11のいずれか一項に記載のシステム。
【請求項13】
命令を記憶している非一時的コンピュータ可読媒体であって、該命令は、少なくとも1つのプロセッサによって実行されたとき、コンピュータ・システムが、
メッセージング・アプリケーションのユーザから、パーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信し、
該要求を満たすためにエージェントに該要求を振り当て、
自然言語プロセッサを使用して、該要求の意図を判定し、
該要求の判定された意図に対応する複数の特性を判定し、
該要求において、前記複数の特性に対応する1つまたは複数の要求詳細を識別し、
エージェント・ユーザ・インタフェース内の1つまたは複数の詳細の要素に関連する1つまたは複数の詳細フィールドに、識別された前記1つまたは複数の要求詳細を追加し、
エージェント・クライアント・デバイスで表示するために、エージェント・ユーザ・インタフェースが、前記エージェント・ユーザ・インタフェースのメッセージング・インタフェースの上部のオーバーレイ内に、前記要求の判定された意図に関連する前記1つまたは複数の詳細の要素を含むように構成し、ここで、前記詳細の要素は前記エージェントによって変更可能なものであり、
前記判定された意図に関する情報を入手するために1つまたは複数のサードパーティ・サービスとの間で自動的にデータの授受を行うようにする、非一時的コンピュータ可読媒体。
【請求項14】
前記要求の意図を判定することは、前記要求から、意図を示す1つまたは複数の単語または句を識別することを含み、
前記エージェント・ユーザ・インタフェースが前記要求の判定された意図に関連する1つまたは複数の詳細の要素を含むように構成することは、前記ユーザ・インタフェースにおいて前記1つまたは複数の単語または句に関連する1つまたは複数の可能なオプションを提供することを含む、請求項13に記載の非一時的コンピュータ可読媒体。
【請求項15】
前記少なくとも1つのプロセッサによって実行されたとき、前記コンピュータ・システムが、
前記要求に基づいて、前記1つまたは複数の詳細フィールドから未追加の詳細フィールドを識別し、
該未追加の詳細フィールドに関連する前記要求に対する自動化された応答を生成し、
前記メッセージング・アプリケーションの前記ユーザに送るために前記エージェント・ユーザ・インタフェースのメッセージング・エリア内で前記エージェントに生成された前記応答を提供するようにする命令をさらに含および/または
前記少なくとも1つのプロセッサによって実行されたとき、前記コンピュータ・システムが、
前記要求の判定された意図に基づいて、サードパーティ・サービスからオプションのリストを入手し、
前記エージェント・ユーザ・インタフェース内で該サードパーティ・サービスからのオプションの該リストを提供するようにする命令をさらに含む、請求項13または14に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書で説明される1つまたは複数の実施形態は、一般にデジタル・パーソナル・アシスタント・サービス(digital personal assistant service)を提供するシステムおよび方法に関する。より詳細には、1つまたは複数の実施形態は、メッセージング・アプリケーションによりパーソナル・アシスタント・サービスを提供するシステムおよび方法に関する。
【背景技術】
【0002】
電子デバイスの高められた可用性および使用は、増加する数の商品およびサービスへのオンライン・アクセスの可用性をもたらした。電子デバイスのユーザは、検索エンジン、専門サービス、またはビジネスエンティティもしくは他のエンティティに関連するウェブサイトを介してオンラインで商品およびサービスに関する情報にアクセスすることができる。具体的には、モバイル・デバイスは、ユーザが、旅行中および情報がユーザに最も関連する時など、ほぼいつでも商品またはサービスに関する情報を検索し、見つけることを可能にする。
【0003】
一部の従来の情報サービス・システムは、ユーザが、商品またはサービスに関連する情報を手作業で検索することを要求する。しかし、使用可能な商品およびサービスの膨大な量に起因して、特定のクエリに関連する情報の発見は、時として困難になる可能性がある。たとえば、従来のサービス情報システムは、しばしば、ユーザが、特定のクエリにわずかに関連するのみであり得る情報のページを介して検索することを要求する。
【0004】
さらに、他の従来の情報サービス・システムは、ユーザが、商品およびサービスに関連する情報を入手するために人工知能システムと対話することを可能にする。具体的には、従来の情報サービス・システムは、ユーザのクエリに対して関連する情報で応答するように人工知能システムをトレーニングすることができる。人工知能システムは、ユーザが実行しなければならない工程の量を減らすために、クエリに関連してユーザのために動作を実行することもできる。人工知能システムは、しばしば、非常に関連し、かつタイムリーな情報をユーザに提供することができるが、多数の制限を有し、しばしば、ユーザの要求に対して関連しないか、または役に立たない応答を提供する。
【0005】
したがって、従来の情報サービス・システムおよび情報サービス方法に関する複数の不利益がある。
【発明の概要】
【0006】
本明細書で説明される1つまたは複数の実施形態は、メッセージング・アプリケーションによりパーソナル・アシスタント・サービスを提供するシステムおよび方法を用いて、利益を提供し、かつ/または当技術分野の前述の問題または他の問題のうちの1つまたは複数を解決する。具体的には、1つまたは複数の実施形態は、エージェントがユーザにサービスを提供できる効率を改善する。たとえば、本システムおよび方法は、ユーザから受け取られた要求の判定された意図に基づいてエージェントの効率を改善することができる。具体的には、1つまたは複数の実施形態は、自然言語処理を使用して電子メッセージ内の要求の意図を判定する。したがって、本システムおよび方法は、エージェントが要求を満たすために要求される時間および労力の量を減らす形で要求の意図を識別してエージェントに情報を提供することができる。
【0007】
さらに、エージェントが要求を満たすのを支援するために、本システムおよび方法は、エージェント・ユーザ・インタフェース内でエージェントに情報を提供することができる。たとえば、1つまたは複数の実施形態は、要求の判定された意図に従う1つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを構成する。判定された意図に従うオプションを含むようにエージェント・ユーザ・インタフェースを構成することによって、本システムおよび方法は、要求を正確に素早く満たすためにユーザから十分な情報を入手するためにエージェントが実行しなければならない工程の数を排除することができる。
【0008】
実施形態の追加の特徴および利益は、以下の説明で示され、部分的には説明から明白になり、あるいは、そのような例示的実施形態の実践によって習得され得る。そのような実施形態の特徴および利益は、添付の特許請求の範囲で具体的に指定される手段および組合せによって実現され、入手され得る。上記および他の特徴は、以下の説明および添付の特許請求の範囲からより十分に明白になり、あるいは、以下に示されるそのような例示的実施形態の実践によって習得され得る。
【0009】
本発明による実施形態は、具体的には、方法、記憶媒体、システム、およびコンピュータ・プログラム製品を対象とする添付の特許請求の範囲で開示され、1つの請求項カテゴリ、たとえば方法で言及される任意の特徴は、別の請求項カテゴリ、たとえばシステムにおいても請求され得る。添付の特許請求の範囲での依存性または戻る参照は、形式的な理由のみのために選択される。しかし、前の請求項に戻る故意の参照から生じるすべての主題(具体的には複数依存性)も請求され得、その結果、請求項およびその特徴のすべての組合せが、開示されるようになり、添付の特許請求の範囲で選択される依存性にかかわりなく請求され得るようになる。請求され得る主題は、添付の特許請求の範囲で示される特徴の組合せだけではなく、特許請求の範囲内の特徴のすべての他の組合せからもなり、特許請求の範囲で言及される各特徴は、特許請求の範囲内の任意の他の特徴または特徴の組合せと組み合わされ得る。さらに、本明細書で説明されまたは図示される実施形態および特徴のいずれもが、別々の請求項でおよび/または本明細書で説明されまたは図示される任意の実施形態もしくは特徴または添付の特許請求の範囲の特徴のいずれかとの組合せで請求され得る。
【0010】
本発明による一実施形態では、方法は、
1つまたは複数のサーバによって、メッセージング・アプリケーションのユーザから、パーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信する工程と、
1つまたは複数のサーバによって、要求を満たすためにエージェントに要求を振り当てる工程と、
自然言語プロセッサを使用して、要求の意図を判定する工程と、
1つまたは複数のサーバによって、要求の判定された意図に従う1つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを構成する工程とを含んでもよい。
【0011】
本発明による一実施形態では、要求の意図を判定する工程は、要求から、意図を示す1つまたは複数の単語または句を識別することを含み、
要求の判定された意図に従う1つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを構成する工程は、ユーザ・インタフェース内で識別された単語または句に関連する1つまたは複数の可能なオプションを提供することを含んでもよい。
【0012】
本発明による一実施形態では、方法は、
要求の判定された意図に対応する複数の特性を判定する工程と、
要求において、複数の特性に対応する1つまたは複数の要求詳細を識別する工程と、
エージェント・ユーザ・インタフェース内の1つまたは複数のオプションに関連する1つまたは複数の詳細フィールドに識別された1つまたは複数の要求詳細を追加する工程とを含んでもよい。
【0013】
本発明による一実施形態では、方法は、
要求に基づいて、判定された意図に関連する未追加の詳細フィールドを識別する工程と、
未追加の詳細フィールドに関連する要求に対する自動化された応答を生成する工程と、
メッセージング・アプリケーションのユーザに送るためにエージェント・ユーザ・インタフェースのメッセージング・エリア内でエージェントに生成された応答を提供する工程とを含んでもよい。
【0014】
本発明による一実施形態では、方法は、
要求の意図を変更するためにエージェント・ユーザ・インタフェースを介してユーザ入力を受け取る工程と、
要求の変更された意図に従う1つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを再構成する工程とを含んでもよい。
【0015】
本発明による一実施形態では、方法は、
要求を含む電子メッセージに関連する電子メッセージのメッセージング履歴を維持する工程と、
要求に関連するエージェントによる1つまたは複数のアクションを識別する工程と、
メッセージ履歴および識別された1つまたは複数のアクションに基づいて機械学習モデルをトレーニングする工程とを含んでもよい。
【0016】
本発明による一実施形態では、方法は、
要求の判定された意図に基づいて、サードパーティ・サービスからオプションのリストを入手する工程と、
エージェント・ユーザ・インタフェース内でサードパーティ・サービスからのオプションのリストを提供する工程とを含んでもよい。
【0017】
本発明による一実施形態では、方法は、エージェント・ユーザ・インタフェース内でオプションのリストに対応する複数の選択可能な要素を提供する工程を含んでもよい。
本発明による一実施形態では、システムは、
少なくとも1つのプロセッサと、
命令を記憶している少なくとも1つの非一時的コンピュータ可読記憶媒体と
を備えてもよく、命令は、少なくとも1つのプロセッサによって実行されたとき、システムが、
メッセージング・アプリケーションのユーザから、パーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信し、
要求を満たすためにエージェントに要求を振り当て、
自然言語プロセッサを使用して、要求の意図を判定し、
要求の判定された意図に従う1つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを構成するようする。
【0018】
本発明による一実施形態では、システムは、少なくとも1つのプロセッサによって実行されたとき、システムに行わせる命令を含んでもよく、
要求の意図を判定することは、要求から、意図を示す1つまたは複数の単語または句を識別することを含み、
要求の判定された意図に従う1つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを構成することは、ユーザ・インタフェース内で識別された単語または句に関連する1つまたは複数の可能なオプションを提供することを含んでもよい。
【0019】
本発明による一実施形態では、システムは、少なくとも1つのプロセッサによって実行されたとき、システムが、
要求の判定された意図に対応する複数の特性を判定し、
要求において、複数の特性に対応する1つまたは複数の要求詳細を識別し、
エージェント・ユーザ・インタフェース内の1つまたは複数のオプションに関連する1つまたは複数の詳細フィールドに識別された1つまたは複数の要求詳細を追加するようにする命令を含んでもよい。
【0020】
本発明による一実施形態では、システムは、少なくとも1つのプロセッサによって実行されたとき、システムが、
要求に基づいて、1つまたは複数の詳細フィールドから未追加の詳細フィールドを識別し、
未追加の詳細フィールドに関連する要求に対する自動化された応答を生成し、
メッセージング・アプリケーションのユーザに送るためにエージェント・ユーザ・インタフェースのメッセージング・エリア内でエージェントに生成された応答を提供するようにする命令を含んでもよい。
【0021】
本発明による一実施形態では、システムは、少なくとも1つのプロセッサによって実行されたとき、システムが、
要求の意図を変更するためにエージェント・ユーザ・インタフェースを介してユーザ入力を受け取り、
要求の変更された意図に従う1つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを再構成するようにする命令を含んでもよい。
【0022】
本発明による一実施形態では、システムは、少なくとも1つのプロセッサによって実行されたとき、システムが、
要求を含む電子メッセージに関連する電子メッセージのメッセージング履歴を維持し、
要求に関連するエージェントによる1つまたは複数のアクションを識別し、
メッセージ履歴および識別された1つまたは複数のアクションに基づいて機械学習モデルをトレーニングするようにする命令を含んでもよい。
【0023】
本発明による一実施形態では、システムは、少なくとも1つのプロセッサによって実行されたとき、システムが、
要求の判定された意図に基づいて、サードパーティ・サービスからオプションのリストを入手し、
エージェント・ユーザ・インタフェース内でサードパーティ・サービスからのオプションのリストを提供するようにする命令を含んでもよい。
【0024】
本発明による一実施形態では、非一時的コンピュータ可読媒体は命令を記憶しており、命令は、少なくとも1つのプロセッサによって実行されたとき、コンピュータ・システムが、
メッセージング・アプリケーションのユーザから、パーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信し、
要求を満たすためにエージェントに要求を振り当て、
自然言語プロセッサを使用して、要求の意図を判定し、
要求の判定された意図に従う1つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを構成するようにしてもよい。
【0025】
本発明による一実施形態では、非一時的コンピュータ可読媒体は、少なくとも1つのプロセッサによって実行されたとき、コンピュータ・システムに行わせる命令を含んでもよく、要求の意図を判定することは、要求から、意図を示す1つまたは複数の単語または句を識別することを含み、
要求の判定された意図に従う1つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェースを構成することは、ユーザ・インタフェース内で識別された単語または句に関連する1つまたは複数の可能なオプションを提供することを含んでもよい。
【0026】
本発明による一実施形態では、非一時的コンピュータ可読媒体は、少なくとも1つのプロセッサによって実行されたとき、コンピュータ・システムが、
要求の判定された意図に対応する複数の特性を判定し、
要求において、複数の特性に対応する1つまたは複数の要求詳細を識別し、
エージェント・ユーザ・インタフェース内の1つまたは複数のオプションに関連する1つまたは複数の詳細フィールドに識別された1つまたは複数の要求詳細を追加するようにする命令を含んでもよい。
【0027】
本発明による一実施形態では、非一時的コンピュータ可読媒体は、少なくとも1つのプロセッサによって実行されたとき、コンピュータ・システムが、
要求に基づいて、1つまたは複数の詳細フィールドから未追加の詳細フィールドを識別し、
未追加の詳細フィールドに関連する要求に対する自動化された応答を生成し、
メッセージング・アプリケーションのユーザに送るためにエージェント・ユーザ・インタフェースのメッセージング・エリア内でエージェントに生成された応答を提供するようにする命令を含んでもよい。
【0028】
本発明による一実施形態では、非一時的コンピュータ可読媒体は、少なくとも1つのプロセッサによって実行されたとき、コンピュータ・システムが、
要求の判定された意図に基づいて、サードパーティ・サービスからオプションのリストを入手し、
エージェント・ユーザ・インタフェース内でサードパーティ・サービスからのオプションのリストを提供するようにする命令を含んでもよい。
【0029】
本発明によるさらなる実施形態では、1つまたは複数のコンピュータ可読非一時的記憶媒体は、実行された時に本発明または以前に言及された実施形態のいずれかによる方法を実行するように動作可能なソフトウェアを実施する。
【0030】
本発明によるさらなる実施形態では、システムは、1つまたは複数のプロセッサと、プロセッサに結合され、プロセッサによって実行される命令を含む少なくとも1つのメモリとを含み、プロセッサは、命令を実行する時に本発明または以前に言及された実施形態のいずれかによる方法を実行するように動作可能である。
【0031】
本発明によるさらなる実施形態では、好ましくはコンピュータ可読非一時的記憶媒体を含むコンピュータ・プログラム製品は、データ処理システム上で実行されたとき本発明または以前に言及された実施形態のいずれかによる方法を実行するように動作可能である。
【0032】
本開示の以前に列挙されたおよび他の利点および特徴が入手され得る形を説明するために、以前に短く説明された本開示のより具体的な説明が、添付図面に示されたその特定の実施形態を参照して提供される。図面が原寸通りに描かれていないことと、同様の構造または機能の要素が、図面全体を通じて例示のために同様の参照符号によって全般的に表されることとに留意されたい。以下の図面では、括弧で括られたテキストおよび破線(たとえば、長い破線、短い破線、一点鎖線、点線)の境界を有するブロックは、本明細書では、本開示の実施形態に追加の特徴を追加するオプションの特徴または動作を示すのに使用される。しかし、そのような表記が、オプションまたはオプションの動作のみがあること、および/または実線の境界を有するブロックが本開示のある種の実施形態においてオプションではないことを意味すると解釈してはならない。これらの図面が、本開示の通常の実施形態のみを示し、したがって、その範囲について限定的であると考えられるべきではないこととを理解して、本開示は、添付図面の使用を介して追加の特異性および詳細を伴って記述され、説明される。
【図面の簡単な説明】
【0033】
図1】1つまたは複数の実施形態による、パーソナル・アシスタント・サービス・システムを示す詳細な概略図。
図2】1つまたは複数の実施形態による、図1のパーソナル・アシスタント・サービス・システムがその中で動作するメッセージング・システムを示す概略図。
図3A】1つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
図3B】1つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
図3C】1つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
図3D】1つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
図3E】1つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
図3F】1つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
図3G】1つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
図3H】1つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
図3I】1つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
図4A】1つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
図4B】1つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
図4C】1つまたは複数の実施形態による、例のエージェント・ユーザ・インタフェースを示す図。
図5】1つまたは複数の実施形態による、メッセージングを介してパーソナル・アシスタント・サービスを提供する方法内の一連の動作の実施形態を示すフローチャート。
図6】1つまたは複数の実施形態による、例のコンピューティング・デバイスを示すブロック図。
図7】1つまたは複数の実施形態による、ソーシャル・ネットワーキング・システムの例のネットワーク環境を示す図。
図8】1つまたは複数の実施形態による、ソーシャル・ネットワーキング・システムの例のソーシャル・グラフを示す図。
【発明を実施するための形態】
【0034】
本開示の実施形態は、エージェントの能力を改善してユーザ要求を満たすパーソナル・アシスタント・サービス・システムを提供する。具体的には、1つまたは複数の実施形態は、要求の意図を判定し、要求を満たす際にエージェントを支援する情報を提供するパーソナル・アシスタント・サービス・システムを提供する。たとえば、本システムは、自然言語プロセッサを使用して要求の意図を判定することができる。その後、本システムは、判定された意図と一貫する情報を含むように、振り当てられたエージェントのエージェント・ユーザ・インタフェースを構成することができる。エージェント・ユーザ・インタフェースの構成は、エージェントが、関連する情報またはサービスを素早く選択し、メッセージング・アプリケーションにおいて要求するユーザに提供することを可能にするためにエージェント・ユーザ・インタフェースにおいて1つまたは複数のオプションを提供することを含んでもよい。
【0035】
以下により詳細に説明されるように、本システムは、ある形でユーザを支援するために要求と共に電子メッセージをメッセージング・アプリケーションのユーザから受信する。具体的には、本システムは、ユーザのために1つまたは複数のアクションを実行する要求またはある種の情報をユーザに提供する要求を満たすことができる。たとえば、本システムは、要求に関連して必要な情報をユーザから入手するためにユーザと対話することによって要求を満たすためにエージェントを振り当てることができる。
【0036】
ユーザ要求を満たすためにエージェントを振り当てることに関連して、本システムは、自然言語処理を使用して要求の意図を判定することもできる。具体的には、本システムは、ユーザが好む支援のタイプを判定するのに自然言語プロセッサを使用することができる。たとえば、自然言語プロセッサは、ユーザが特定の商品またはサービスを好むかどうかを示す、電子メッセージ内の単語および/または句を識別することができる。自然言語プロセッサは、システムが要求を正確に満たすことを可能にする、要求に関連する他の情報を識別することもできる。本システムの1つまたは複数の実施形態は、エージェントが、要求の判定された意図に対する手作業の調整を行うことを可能にする。
【0037】
要求の意図を識別した後に、本システムは、エージェントが要求を満たすことができる時間を加速するためにエージェント・ユーザ・インタフェース内で情報を提供することができる。たとえば、本システムは、エージェントが見つけなければならない情報の量を減らすために、要求の判定された意図に関連するオプションを識別することができる。具体的には、本システムは、ユーザとのメッセージの交換での使用のために識別されたオプションを含むようにエージェント・ユーザ・インタフェースを構成することができる。
【0038】
さらに、本システムは、エージェント・ユーザ・インタフェースに情報を提供するためにサードパーティ・サービスと相互作用することができる。具体的には、本システムは、エージェントがユーザの要求を満たすのを支援することができる情報を入手するために、要求の判定された意図に基づいてサードパーティ・サービスと通信することができる。たとえば、本システムは、ユーザの要求の判定された意図に基づいてオプションのリストを見るためにサードパーティ・サービスに要求を送ることができる。サードパーティ・サービスからオプションのリストを入手した後に、本システムは、ユーザが適当なオプションを選択するのをエージェントが支援できるように、エージェント・ユーザ・インタフェース内でオプションのリストを提供することができる。
【0039】
さらに、本システムは、将来の要求と共に使用するために機械学習モデルをトレーニングするのに、ユーザ要求に関連する情報を使用することができる。具体的には、本システムは、要求が成功であったかどうかを判定し、本システムがエージェントに提供した情報の正確さを判定するために、エージェントによるアクションを識別することができる。たとえば、本システムは、自然言語プロセッサが意図をどの程度成功裏に判定したのか、およびエージェントに提供された情報が正確かつ/または役立つものであったかどうかを判定することができる。ユーザ要求に関連する情報を使用して機械学習モデルをトレーニングすることによって、本システムは、意図を判定する際の自然言語プロセッサの正確さを改善すると同時に、エージェント・ユーザ・インタフェース内でより役立つ情報をエージェントに提供することができる。さらに、機械学習モデルのトレーニングは、本システムが将来のユーザ要求に関連する追加のタスクを自動化することを可能にすることができる。
【0040】
本明細書で使用される時に、用語「電子メッセージ」は、2つ以上のコンピューティング・デバイスの間のすべての形の電子通信を指す。メッセージは、テキスト・メッセージ、写真、ステッカまたは他のアイコン、ビデオ、録音、音楽、音声メールなどを含んでもよい。1つまたは複数の実施形態では、メッセージは、リアルタイムまたはほぼリアルタイムで通信されるインスタント・メッセージである。しかし、代替実施形態では、メッセージは、SMSメッセージ、電子メール、またはソーシャル・ネットワークの投稿もしくはコメントなど、任意の形の電子通信を指すことができる。
【0041】
本明細書で使用される時に、用語「要求」は、情報を提供し、かつ/または1つもしくは複数のアクションを実行するためのクエリに関連するメッセージ内のコンテンツを指す。様々な例では、要求は、ユーザに情報を提供し、かつ/または、予約を行うこと、旅行プランを予約すること、品目を購入すること、別のユーザとの通信セッションを開始すること、与えられた主題に関する質問に答えること、メディア・コンテンツ・アイテムを再生すること、またはユーザがインターネットを介して実行できる可能性があるタスクを含むがこれに限定されないアクションを実行することの指示を含む電子メッセージ内のコンテンツを含んでもよい。
【0042】
本明細書で使用される時に、メッセージ内の要求に関する用語「意図」は、要求の目的を指す。たとえば、要求の意図は、要求されるアクションおよび関連する主題を含むことができる。また、本明細書で使用される時に、用語「パーソナル・アシスタント・サービス」は、本システムによって振り当てられるエージェントまたは人が要求の判定された意図に従ってユーザ要求を満たすサービスを指す。たとえば、パーソナル・アシスタント・サービスは、エージェントがエージェント・ユーザ・インタフェースの支援を得、かつ、メッセージング・アプリケーション内でインスタント・メッセージをユーザと交換することによって、ユーザ要求を満たすことができるサービスを含むことができる。
【0043】
図1は、パーソナル・アシスタント・サービス・システム100(または単に「システム」)の詳細な概略図である。システム100は、パーソナル・アシスタント・サービスを実施する複数のコンポーネントを含むことができる。具体的には、図1に示されているように、システム100は、通信マネージャ102、タスク・マネージャ104、言語プロセッサ106、ユーザ・インタフェース・マネージャ108、メッセージ・ジェネレータ110、人工知能エンジン112、およびデータ・マネージャ114を含むことができる。コンポーネントが、図1では別々であるものとして示されているが、コンポーネントのいずれもが、単一のファシリティまたはモジュールなど、より少数のコンポーネントに組み合わされてもよく、あるいは、特定の実施形態のために機能することができるようにより多数のコンポーネントに分割されてもよいことを了解されたい。さらに、コンポーネントは、単一のアプリケーション(たとえば、メッセージング・アプリケーション)または複数のアプリケーションのためにパーソナル・アシスタント・サービスを実施することができる。
【0044】
コンポーネントは、ソフトウェア、ハードウェア、またはその両方を含むことができる。たとえば、コンポーネントは、非一時的コンピュータ可読記憶媒体上に記憶された、コンピューティング・デバイスの少なくとも1つのプロセッサによって実行可能なコンピュータ命令を含むことができる。少なくとも1つのプロセッサによって実行されたとき、コンピュータ実行可能命令は、コンピューティング・デバイスに、本明細書で説明される方法および工程を実行させることができる。代替案では、コンポーネントは、ある種の機能または機能のグループを実行するための特殊目的処理デバイスなどのハードウェアを含むことができる。それに加えてまたはその代わりに、コンポーネントは、コンピュータ実行可能命令およびハードウェアの組合せを含むことができる。
【0045】
1つまたは複数の実施形態では、通信マネージャ102は、メッセージング・アプリケーションを介してユーザから受信されたメッセージを処理することができる。たとえば、通信マネージャ102は、メッセージング・アプリケーションのメッセージング・スレッド内でユーザから送られたメッセージのディレクタとして動作し、各メッセージの送信者および受信者を識別し、エージェントへの振り当てのためにメッセージをタスク・マネージャ104に送ることができる。同様に、通信マネージャ102は、メッセージがユーザ宛であることを識別することによって、振り当てられたエージェントからのメッセージをメッセージング・スレッド内でユーザに向けることもできる。通信マネージャ102は、エージェントからのメッセージをユーザに関連する複数のコンピューティング・デバイス(すなわち、ユーザがメッセージング・アプリケーションのバージョンをインストールした各デバイス)に向けることができる。
【0046】
前に述べたように、タスク・マネージャ104は、ユーザにパーソナル・アシスタント・サービスを提供するためにシステム100のエージェントにタスクを振り当てることができる。具体的には、タスク・マネージャ104は、通信マネージャ102からメッセージを受け取り、メッセージ内の要求を完了するためにメッセージをエージェントに振り当てることができる。たとえば、タスク・マネージャ104は、複数のエージェントの作業負荷を管理し、エージェントの作業負荷に基づいてエージェントにタスクを振り当てることができる。それに加えてまたはその代わりに、タスク・マネージャ104は、エージェントの位置、エージェントによって話される言語、またはエージェントもしくは支援を要求するユーザの他の特性に基づいてエージェントにタスクを振り当てることができる。
【0047】
1つまたは複数の実施形態では、言語プロセッサ106は、要求の意図を判定することができる。具体的には、言語プロセッサ106は、ユーザからの1つまたは複数のメッセージ内のテキストに基づいて要求の意図を判定するためにメッセージを分析することができる。たとえば、言語プロセッサ106は、要求のタイプおよび要求の目的を示す単語および句を識別するためにテキストを解析するのに自然言語処理技法を使用することができる。たとえば、言語プロセッサ106は、1つまたは複数のメッセージ内の識別された単語および句に基づいて、要求の広いカテゴリ、要求の狭いカテゴリ、要求に関連する特定の詳細、または要求に関連する他の情報を判定することができる。
【0048】
1つまたは複数の実施形態によれば、ユーザ・インタフェース・マネージャ108は、システム100に関連する複数のエージェントのエージェント・ユーザ・インタフェースを管理することができる。たとえば、ユーザ・インタフェース・マネージャ108は、エージェントがパーソナル・アシスタント・サービスに関連するタスクを実行するのを支援するためにエージェント・ユーザ・インタフェース内でコンテンツを提供することができる。例示のために、ユーザ・インタフェース・マネージャ108は、ユーザ要求の判定された意図と一貫する情報および視覚的要素を提供するためにシステム100内の他のコンポーネントと通信することができる。さらに、ユーザ・インタフェース・マネージャ108は、メッセージング・アプリケーションのエージェント固有バージョン内にエージェント・ユーザ・インタフェースを表示することができる。
【0049】
システム100は、ユーザ要求に関連してエージェントに提供するためのメッセージの自動生成を可能にするためにメッセージ・ジェネレータ110をも含むことができる。具体的には、メッセージ・ジェネレータ110は、ユーザ要求の判定された意図の特性を使用して、対応するエージェントがメッセージをタイプするか、または他の形で入力することを要求せずに、ユーザに送るためのメッセージを生成することができる。たとえば、判定された意図および要求に関連する他の情報に基づいて、メッセージ・ジェネレータ110は、エージェントが要求を正確に満たすためにユーザからの1つまたは複数の追加の詳細を必要とすると判定し、1つまたは複数の追加の詳細に関してユーザに送るべきメッセージを自動的に生成することができる。
【0050】
さらに、システム100は、パーソナル・アシスタント・サービスに従って機械学習モデルをトレーニングし、実施するために人工知能エンジン112(または「AIエンジン」)を含むことができる。たとえば、AIエンジン112は、要求に関連する情報を識別するためにシステム100内の他のコンポーネントと通信することができる。具体的には、AIエンジン112は、ユーザによる要求、要求の判定された意図、エージェントによるアクション、エージェントとユーザとの間の追加の通信、および要求の結果を含むメッセージからテキストを入手することができる。AIエンジン112は、機械学習モデルをトレーニングするのに識別された情報を使用することができ、このトレーニングは、意図のさらなる判定を改善すると同時に、ユーザ要求を満たすシステム100の能力を高め、エージェントの作業負荷を減らすことができる。
【0051】
1つまたは複数の実施形態では、データ・マネージャ114は、システム100のコンポーネントによる使用のためのデータの管理および記憶を可能にすることができる。具体的には、データ・マネージャ114は、ユーザ情報、言語辞書、可能な要求意図情報、アクション情報、およびエージェントがユーザ要求を満たすのをシステム100が支援することを可能にする他の情報を記憶することができる。データ・マネージャ114は、サーバ、エージェント・クライアント・デバイス、およびユーザ・クライアント・デバイスの間の通信を可能にすることに関連するデータを維持することもできる。さらに、データ・マネージャ114は、任意の個数のデバイスにまたがってシステム100に関連する情報を維持することができる。たとえば、データ・マネージャ114は、単一のストレージデバイスまたは複数の分散されたデバイス(たとえば、クラウド・ストレージ・システムまたはサーバのネットワーク)上に情報を記憶することができる。
【0052】
図2は、メッセージング・システム200の概略図であり、図1のパーソナル・アシスタント・サービス・システム100がメッセージング・システム200内で動作する。図2に示されているように、メッセージング・システム200は、メッセージング・アプリケーションに従って互いに通信する複数のデバイスまたはコンポーネントを含むことができる。具体的には、メッセージング・システム200は、クライアント・デバイス204を操作するユーザ202、パーソナル・アシスタント・サービス・システム100を含むサーバ206(単数または複数)、エージェント・クライアント・デバイス210を操作するエージェント208、およびサードパーティ・サービス212を含むことができる。図示されてはいないが、メッセージング・システム200は、任意の数のユーザおよび対応するクライアント・デバイスを含むことができる。さらに、メッセージング・システム200内のデバイスまたはコンポーネントのそれぞれは、ネットワーク214を介して互いに通信することができる。
【0053】
図2は、クライアント・デバイス204、サーバ206(単数または複数)、エージェント・クライアント・デバイス210、サードパーティ・システム、およびネットワーク214の特定の配置を示すが、様々な代替配置が可能である。たとえば、図2は、サーバ206(単数または複数)と直接に通信しているエージェント・クライアント・デバイス210を示す。代替実施形態では、エージェント・クライアント・デバイス210は、ネットワーク214によってサーバ206(単数または複数)と通信することができる。同様に、図2は、ネットワーク214を介してサーバ206(単数または複数)と通信するサードパーティ・サービスおよびクライアント・デバイス204を示すが、サードパーティ・サービスおよび/またはクライアント・デバイス204は、サーバ206(単数または複数)と直接に通信することができる。
【0054】
前に述べたように、ユーザ202は、エージェント・クライアント・デバイス210を使用するエージェント208と通信するのにクライアント・デバイス204を使用することができる。具体的には、ユーザ202は、サーバ206(単数または複数)によってエージェント208と通信することができる。たとえば、ユーザ202は、1つまたは複数のメッセージング・フォーマットに従って(たとえば、クライアント・デバイス204上で動作するメッセージング・アプリケーションを使用するインスタント・メッセージで)エージェント208への要求を含む電子メッセージを構成することができる。例示のために、クライアント・デバイス204は、要求を含む電子メッセージをネットワーク214を介してサーバ206(単数または複数)に送ることができる。サーバ206(単数または複数)は、電子メッセージがパーソナル・アシスタント・サービス・システム100に向けられると判定し、電子メッセージを、エージェント・クライアント・デバイス210の振り当てられたエージェント208に送ることができる。
【0055】
図2に関連する説明は、サーバ206(単数または複数)を介してクライアント・デバイス204からエージェント・クライアント・デバイス210にインスタント・メッセージを送ることに関するが、ユーザ202は、エージェント208に他のタイプの電子メッセージを送り、エージェント208から電子メッセージを受信することができる。たとえば、ユーザ202は、テキスト・メッセージでパーソナル・アシスタント・サービス・システム100に要求を送り、テキスト・メッセージを介してエージェント208と通信することができる。同様に、エージェント208は、エージェント・クライアント・デバイス210上のメッセージング・アプリケーションを使用して、ユーザ202にメッセージを送り、ユーザ202からメッセージを受信することができる。
【0056】
さらに、図2は、人としてユーザ202およびエージェント208を示すが、ユーザ202および/またはエージェント208は、他のエンティティを含んでもよい。たとえば、ユーザ202は、メッセージング・システム200またはソーシャル・ネットワーキング・システムに関するアカウントを有する会社とすることができる。別の例では、エージェント208は、パーソナル・アシスタント・サービス・システム100が、人のエージェントを使用せずに単純な要求を満たし、かつより困難な要求に人のエージェントを振り当てることができるように、サーバ206(単数または複数)にある人工知能を含むこともできる。さらに、人工知能は、図1で説明したように、要求に関連する詳細に加えて、要求の意図を自動的に判定することによって、人のエージェントが要求を満たすのを支援することができる。
【0057】
1つまたは複数の実施形態では、パーソナル・アシスタント・サービス・システム100は、ユーザ要求を満たすための情報を入手するために、サードパーティ・サービスと通信することもできる。具体的には、システム100は、電子メッセージ内の要求が、サードパーティ・サービスが提供する特定のサービスに関すると判定することができる。サーバ206(単数または複数)は、エージェント208がユーザ要求を満たすのを支援することができる情報を入手するためにサードパーティ・サービスに連絡することができる。
【0058】
図2に示されているように、ユーザ202およびエージェント208は、それぞれクライアント・デバイス204およびエージェント・クライアント・デバイス210と対話することができる。クライアント・デバイスの例は、モバイル・デバイス(たとえば、スマートフォン、タブレット)、ラップトップ、デスクトップ、または任意の他のタイプのコンピューティング・デバイスなどのコンピューティング・デバイスを含む。図6および対応する説明は、コンピューティング・デバイスに関する追加の情報を提供する。さらに、以前に述べたように、クライアント・デバイスは、ネットワーク214を介して互いに、およびサーバ206(単数または複数)と通信することができる。1つまたは複数の実施形態では、ネットワーク214は、インターネットまたはワールド・ワイド・ウェブを含む。しかし、ネットワーク214は、以下に図6を参照してさらに説明するように、様々な通信技術およびプロトコルを使用する1つまたは複数のプライベート・ネットワークおよび/またはパブリック・ネットワークを含むことができる。
【0059】
前に説明したように、図1〜2を参照して以前に説明したシステムおよびコンポーネントは、メッセージング・システム200およびパーソナル・アシスタント・サービス・システム100が、メッセージング・システム200に関連するユーザによる要求を満たすことを可能にすることができる。具体的には、メッセージング・システム200は、ユーザがパーソナル・アシスタント・サービス・システム100と通信することを可能にし、パーソナル・アシスタント・サービス・システム100は、エージェントが要求を正確に効率的に満たすことを可能にする、要求に関連する情報を識別することができる。以下により詳細に説明するように、パーソナル・アシスタント・サービス・システム100のコンポーネントは、単独でおよび/またはメッセージング・システム200の他のコンポーネントと組み合わされて、1つまたは複数のエージェント・ユーザ・インタフェースを提供することができる。コンポーネントは、エージェントが、様々な目的のためにディスプレイ要素の集合と対話することを可能にすることができる。具体的には、図3A〜3Iおよび以下の説明は、エージェント・ユーザ・インタフェースの様々な例示的の実施形態およびパーソナル・アシスタント・サービスを実施するための特徴を示す。
【0060】
たとえば、図3A〜3Iは、電子メッセージングおよびユーザ要求を満たすことを可能にするためにメッセージング・アプリケーションに関連して提供されるエージェント・ユーザ・インタフェースの様々なビューを示す。いくつかの例では、エージェント・クライアント・デバイスは、図1を参照して説明したメッセージング・システム200およびパーソナル・アシスタント・サービス・システムのコンポーネントのうちの少なくともいくつかを実施することができる。たとえば、図3Aは、メッセージング・システム200のユーザにパーソナル・アシスタント・サービスを提供するためのエージェント・ユーザ・インタフェース302を有するエージェント・クライアント・デバイス300を示す。例示のために、いくつかの実施形態では、エージェント・クライアント・デバイス300は、言語プロセッサ106、ユーザ・インタフェース・マネージャ108、メッセージ・ジェネレータ110、またはデータ・マネージャ114に関連する工程のうちの少なくともいくつかを実施することができる。
【0061】
さらに、エージェント・クライアント・デバイス300は、エージェント・ユーザ・インタフェース302の表示を可能にする任意のクライアント・デバイスとすることができる。図3A〜3Iは、デスクトップ・モニタを有するデスクトップ・コンピューティング・デバイスを含むエージェント・クライアント・デバイス300を示す。しかし、エージェント・クライアント・デバイス300は、タブレット・デバイス、ハンドヘルド・デバイス(たとえば、スマートフォン)、より大きい無線デバイス、ラップトップまたはデスクトップ・コンピュータ、携帯情報端末デバイス、または本明細書で説明される工程および/もしくは動作のうちの1つもしくは複数を実行することができる他の適切なコンピューティング・デバイスなどであるが、これに限定されない任意の適切なコンピューティング・デバイスを含むことができる。
【0062】
図3Aに示されているように、エージェント・クライアント・デバイス300は、エージェント・ユーザ・インタフェース302を表示するか、または提供するためのスクリーン304を含む。具体的には、エージェント・クライアント・デバイス300は、エージェントがユーザと通信し、ユーザ要求を満たすのを支援するように設計されたソフトウェアを動作させることができる。たとえば、エージェント・クライアント・デバイス300は、エージェント使用のためにカスタマイズされ、エージェントがメッセージング・アプリケーションの異なるユーザ・バージョンを有するユーザと通信することをも可能にする、あるバージョンのメッセージング・アプリケーションを動作させることができる。エージェント・クライアント・デバイス300上で動作するメッセージング・アプリケーションは、エージェントがインスタント・メッセージを介してユーザと対話することを可能にすると同時に、ユーザの要求を満たす際に使用するための情報をエージェントに提供することも行う、エージェント・ユーザ・インタフェース302を提供することができる。
【0063】
1つまたは複数の実施形態では、エージェント・ユーザ・インタフェース302は、メッセージをユーザと交換し、ユーザによる要求に関する情報を取り出すための別々のエリアを含むことができる。具体的には、エージェント・ユーザ・インタフェース302は、メッセージング・インタフェース306およびブラウザ・インタフェース308を含むことができる。たとえば、エージェント・ユーザ・インタフェース302は、図3Aに示されているように、メッセージング・アプリケーション内の隣り合った位置にメッセージング・インタフェース306およびブラウザ・インタフェース308を含むことができる。代替案では、エージェント・ユーザ・インタフェース302は、別々のウィンドウ、タブ、または他の方法など、メッセージング・アプリケーション内の他の位置においてメッセージング・インタフェース306およびブラウザ・インタフェース308を含むことができる。それに加えてまたはその代わりに、エージェント・ユーザ・インタフェース302は、特定の実施形態のために動作するように、他のエリアまたはインタフェースを含むことができる。
【0064】
図示されているように、メッセージング・インタフェース306は、ユーザおよびエージェントを含むメッセージを含むことができる。たとえば、メッセージング・インタフェース306は、ユーザとエージェントとの間で交換された電子メッセージの履歴を含む、ユーザとエージェントとの間のメッセージング・スレッド310を含むことができる。例示のために、ユーザおよびエージェントがインスタント・メッセージを交換する時に、メッセージング・スレッド310は、ユーザ/エージェントがメッセージを送った時の時系列順でインスタント・メッセージを追加することができる。メッセージング・インタフェース306は、メッセージング・スレッド310がメッセージング・インタフェース306内にすべてが収まらない場合に、エージェントがメッセージング・スレッド310中をスクロールすることを可能にすることもできる。
【0065】
メッセージング・システム200は、ユーザがメッセージング・スレッド310内の電子通信の間で区別するのを支援するために、様々な電子通信特性を提供することができる。たとえば、図3Aに示されているように、メッセージング・インタフェース306は、ユーザのアカウントから受信された電子メッセージ(たとえば、メッセージ312a)を、メッセージング・インタフェース306の片側(たとえば、左側)に向かって表示する。その一方で、メッセージング・インタフェース306は、エージェントから送られた電子メッセージ(たとえば、図3Dのメッセージ334a)を、メッセージング・インタフェース306の反対側(すなわち、右側)に向かって表示することができる。1つまたは複数の実施形態では、電子メッセージの位置決めおよび方位は、メッセージング・インタフェース306内に表示される様々な電子通信源の明瞭なインジケータをエージェントに提供する。
【0066】
エージェントが電子通信を区別するのを支援するメッセージング・インタフェース306の別の特性は、電子通信の色であってもよい。たとえば、メッセージング・インタフェース306は、送られた電子メッセージを第1の色で、受信された電子メッセージを第2の色で表示する。1つまたは複数の実施形態では、第1および第2の色は、反転された字体色を有する、黒および白であってもよい。代替実施形態では、メッセージング・インタフェース306は、白の背景および異なる色の輪郭を用いて電子メッセージを表示してもよい。追加のまたは代替の実施形態では、メッセージング・インタフェース306は、異なるパターンの背景、異なるフォント、異なるサイズ、または送られた電子メッセージを受信された電子メッセージと区別できる任意の他の形を用いて電子メッセージを表示することができる。
【0067】
メッセージング・インタフェース306は、電子メッセージへのコンテンツの入力を可能にするためにツールバー314を含むこともできる。具体的には、ツールバー314は、ユーザに様々な入力オプションまたは他のオプションを提供する1つまたは複数の選択可能な入力コントロールを含むことができる。たとえば、ツールバー314は、テキスト入力フィールド316a、マルチメディア入力コントロール316b、シンボル・コントロール316c、および「いいね」インジケータ・コントロール316dを含むことができる。1つまたは複数の代替実施形態では、ツールバー314は、異なる順序でコントロールを提供することができ、表示されていない他のコントロールを提供してもよく、あるいは、図3Aのコントロールのうちの1つまたは複数を省略してもよい。
【0068】
エージェントは、電子通信を構成し、かつ送るために、コントロールのいずれかと対話することができる。たとえば、エージェントが、テキスト入力フィールド316aと対話する(たとえば、マウス・カーソルを用いてテキスト入力フィールド316aを選択することによって)場合に、メッセージング・インタフェース306は、エージェントがフィールドにテキストをタイプできることを示すカーソルを提供し、エージェントがテキストを入力することを可能にすることができる。エージェントが、マルチメディア入力コントロール316bと対話する場合に、メッセージング・インタフェース306は、ユーザが電子メッセージ内に様々なマルチメディア・コンテンツ・アイテム(たとえば、デジタル写真、デジタル・ビデオ)を入力することを可能にすることができる。同様に、エージェントがシンボル・コントロール316cと対話する場合に、メッセージング・インタフェース306は、エージェントが電子メッセージに投入するために選択できるシンボルのセレクションを提示することができる。同様に、「いいね」インジケータ・コントロール316dの選択は、電子メッセージ内に「いいね」アイコンを入力することができる。
【0069】
1つまたは複数の実施形態では、ユーザが、メッセージング・インタフェース306のテキスト入力フィールド316a内でタイピングを開始する時に、メッセージング・インタフェース306は、テキスト入力フィールド316a内に対応する文字を表示することができる。図3Aに示されているように、エージェントは、メッセージング・スレッド310内の会話に参加するユーザ(「ボブ・ポッター」)とメッセージを交換する。たとえば、以下により詳細に示されるように、エージェントがユーザからメッセージを受信した後に、エージェントは、テキスト入力フィールド316aを選択することと、キーボードを使用してテキストを入力することとによってメッセージで応答することができる。
【0070】
前に述べたように、パーソナル・アシスタント・サービス・システム100は、ユーザからの要求と共に、システム100に向けられたメッセージを受信することができる。メッセージを受信した後に、システム100は、エージェントの作業負荷または他の判断基準に基づいて、エージェントに要求を振り当てることができる。一例では、エージェントは、有効な要求のキューを見て、キューから要求を選択することができる。エージェントへの要求の振り当ては、エージェント・ユーザ・インタフェース302に、メッセージング・インタフェース306内にユーザからのメッセージを表示させることができる。例示のために、メッセージング・インタフェース306は、ユーザおよびエージェントを含む新しいメッセージング・スレッド310を表示し、メッセージング・スレッド310の最上部にユーザからの第1のメッセージを提供することができる。
【0071】
前に述べたように、ユーザからメッセージを受信した後に、システム100は、メッセージ内の要求の意図を判定することができる。具体的には、システム100は、キーワード、句、数、または、要求に関する特定の詳細を含む、要求の意図を示す他の情報を識別するために、メッセージのテキストを分析することができる。たとえば、図3Bは、システム100が、ユーザからの電子メッセージ312bを分析し終え、メッセージ内の要求の意図を判定し終えているエージェント・ユーザ・インタフェース302を示す。エージェント・ユーザ・インタフェース302は、意図要素318内に判定された意図を表示することができる。例示のために、システム100は、ユーザがレストラン予約を行うことを求めると判定することができる。
【0072】
メッセージの意図を判定した後に、システム100は、要求に基づいて1つまたは複数の関連する詳細をエージェントに提供することができる。具体的には、エージェント・ユーザ・インタフェース302は、複数の詳細要素320を表示し、あるいは、エージェントが必要とするか、または要求を正確に満たすのに有用であり得る詳細に関連する複数の詳細フィールドを追加することができる。たとえば、ユーザがレストラン予約を要求している場合に、エージェント・ユーザ・インタフェース302は、通常のレストラン予約に関連する詳細を含む複数の詳細要素320を表示することができる。例示のために、エージェント・ユーザ・インタフェース302は、人数、日付、時刻、位置、料理(すなわち、レストランのタイプ)、および予算に関連する詳細要素320を表示することができる。
【0073】
1つまたは複数の実施形態では、エージェント・ユーザ・インタフェース302は、図3Bに示されたものより多数または少数の詳細要素320を表示することができる。たとえば、エージェント・ユーザ・インタフェース302は、判定された意図に具体的に関連する複数の詳細要素320を表示することができる。各判定された意図は、エージェントが対応する要求を正確に満たすための異なる個数/タイプの詳細に関連付けられ得る。例示のために、要求が、飛行機旅行を予約する判定された意図を有する場合に、エージェント・ユーザ・インタフェース302は、人数、出発日、帰還日、おおよその時間、出発位置、到着位置、座席情報、手荷物情報などに関する詳細要素320を提供することができる。
【0074】
詳細要素320の提示に加えて、エージェント・ユーザ・インタフェース302は、詳細要素320のうちの1つまたは複数に対応する詳細を事前に追加することができる。たとえば、メッセージが、判定された意図に関連する詳細を含む場合に、システム100は、詳細を識別するためにメッセージのテキストを分析することができ、エージェント・ユーザ・インタフェース302は、対応する詳細要素320内に識別された詳細を含めることができる。例示のために、レストラン予約に関して、システム100は、メッセージが、人数、位置、日付、および料理に関する情報を含むと判定することができ、エージェント・ユーザ・インタフェース302は、対応する詳細要素320に識別された詳細を事前に追加することができる。システム100が、要求される詳細または関係する詳細の一部を判定することができない場合に、エージェント・ユーザ・インタフェース302は、対応する詳細要素320a、320bのうちの1つまたは複数を未追加のままにすることができる。さらに、エージェントは、未追加の詳細要素320a、320bのうちの1つまたは複数に関する情報を手作業で入力することができる。
【0075】
エージェント・ユーザ・インタフェース302は、エージェントが簡単に識別するために、メッセージ内の情報を強調表示することもできる。たとえば、メッセージを分析する際に、システム100は、メッセージ内の判定された意図に対応する詳細を識別し、識別された詳細の句の単語を強調表示することができる。さらに、システム100は、メッセージ内の識別された詳細をカラー・コーディングし、対応する詳細要素320の隣のカラー・コーディング・ボックス322によって示される対応する詳細要素320に同一のカラー・コードを適用することができ、その結果、エージェントは、システム100がどの詳細を自動的に識別し、事前に追加したのかを簡単に識別できるようになる。代替案では、システム100は、特定の実施形態のために動作することのできる、エージェントが要求の詳細を素早く識別することを可能にする、他のタイプのメッセージの強調表示またはメッセージに対するメモを適用することができる。たとえば、エージェント・ユーザ・インタフェース302は、エージェントに知らせるために、下線を付けること、太字にすること、フォント変更、メッセージの隣のメモ、他の視覚的指示、可聴指示、または他の指示を使用することができる。
【0076】
1つまたは複数の実施形態によれば、エージェント・ユーザ・インタフェース302は、メッセージング・インタフェース306の上部のオーバーレイ324内に意図要素318および詳細要素320を表示することができる。ユーザおよびエージェントが対話する時に、オーバーレイ324は、ユーザとエージェントとの間のメッセージのいずれかを覆わないように、メッセージング・インタフェース306内で移動することができる。たとえば、ユーザおよび/またはエージェントがメッセージを送る場合に、オーバーレイ324は、メッセージング・インタフェース306内でより下に位置を変更することができ、その結果、オーバーレイ324は、メッセージング・スレッド310内の最も最近のメッセージの真下になる。代替案では、エージェント・ユーザ・インタフェース302は、ブラウザ・インタフェース308、別のインタフェース、または別のウィンドウもしくはタブ内など、エージェント・ユーザ・インタフェース302の別々のエリア内に意図要素318および詳細要素320を表示することができる。
【0077】
1つまたは複数の実施形態では、エージェント・ユーザ・インタフェース302は、エージェントが判定された意図を変更することを可能にすることができる。たとえば、エージェントが、要求を有するメッセージを読み、自動的に判定された意図が不正確であると判定する場合がある。エージェントは、その後、意図要素318を選択することと、複数のオプション(たとえば、ドロップダウン・メニュー内)から新しい意図を選択することとによって、要求の新しい意図を選択することができる。エージェント・ユーザ・インタフェース302は、たとえば、判定された意図に関する複数の事前定義の意図オプションを表示することができる。1つまたは複数の実施態様では、エージェント・ユーザ・インタフェース302は、エージェントが判定された意図の別々の部分を洗練させる(たとえば、「宝石類を購入する」を「ネックレスを購入する」に変更する)ことを可能にするために、判定された意図に関する複数の選択可能な要素を提供することができる。
【0078】
代替案では、エージェントは、新しい意図を手作業で入力することができ、システム100は、手作業で入力された意図が、システム100が認識する特定の意図に対応すると判定することができる。システム100が意図を認識しない場合には、エージェントは、支援なしで要求を実行することができ、システム100は、将来の要求の意図を認識するために人工知能エンジン112をトレーニングするために、エージェントのアクションを監視することができる。したがって、システム100は、将来の要求意図をよりよく識別できるようになるためにエージェントから学習することができる。
【0079】
エージェントが、要求の意図を変更する場合に、システム100は、それに応じて詳細要素320を調整することができる。具体的には、意図の変更は、要求を正確に満たすのに要求されるか、または役立つ異なる詳細をもたらすこともできる。たとえば、エージェントが、「日本食品雑貨店を見つける」に意図を変更する場合に、システム100は、特定の食品雑貨店を見つけることに対応する詳細要素320を提示することができる。システム100は、メッセージが対応する詳細のいずれかを含むかどうかを判定するために、メッセージをもう一度分析することもできる。
【0080】
さらに、システム100は、エージェントがエージェント・ユーザ・インタフェース302内に表示された詳細要素320のいずれかを変更することを可能にすることができる。たとえば、エージェントは、システム100がメッセージを分析する時に自動的に識別した詳細のうちの1つまたは複数が誤っていると判定することができる。したがって、エージェントは、対応する詳細要素(たとえば、人数)を選択し、ドロップダウン・メニューまたは他の入力方法から要求の新しい詳細を選択することができる。1つまたは複数の詳細要素320の変更は、システム100に、以下に説明するように、サードパーティ・サービスからブラウザ・インタフェース308内に提供される情報など、エージェントに提供される情報を更新させることができる。
【0081】
エージェント・ユーザ・インタフェース302は、エージェントが要求に関する情報を検索するために1つまたは複数のサードパーティを選択することを可能にする複数のサードパーティ要素326を表示することもできる。具体的には、サードパーティ要素326は、パーソナル・アシスタント・サービス・システム100に関連するサードパーティ・サービスに関連付けられ得る。たとえば、システム100は、エージェントがユーザ要求を満たすのを支援するための情報をシステム100が入手することを可能にするサードパーティ・サービスと契約し、または他の形でこれに関連するようにすることができる。例示のために、図3Bは、レストラン・ファインダ、検索エンジン、およびレビュー・サイトに対応するサードパーティ要素326を示す。
【0082】
1つまたは複数の実施形態では、システム100は、判定された意図に関する情報を入手するためにサードパーティ・サービスのうちの1つまたは複数に自動的に連絡をとることができる。たとえば、図3Bのユーザ要求が、和食のレストラン予約という判定された意図を有すると仮定すると、システム100は、要求された時間に予約時間を有する、ユーザの要求した位置の近くの和食レストランの情報を入手することができる。図示されているように、エージェント・ユーザ・インタフェース302は、ブラウザ・インタフェース308内に、サードパーティ・レストラン・ファインダ・サービスから入手された情報を表示することができる。たとえば、エージェント・ユーザ・インタフェース302は、レストランのそれぞれに関する追加の詳細を含むリスト330と一緒に、エリア内の和食レストランの位置を有する地図328を表示することができる。
【0083】
それに加えてまたはその代わりに、エージェント・ユーザ・インタフェース302は、エージェントが、ブラウザ・インタフェース308内で異なるサードパーティ・サービスの間で切り替えることを可能にすることができる。たとえば、エージェントが、要求に関連する情報を見つけるために異なるサードパーティ・サービスを使用することを求める場合に、エージェントは、ブラウザ・インタフェース308内で見るために、サードパーティ・サービスのうちの1つを選択することができる。例示のために、ブラウザ・インタフェース308は、サードパーティ・サービスに関連するタブ332を含むことができる。さらに、ブラウザ・インタフェース308は、ユーザが、特定のレストランに関する追加の詳細など、サードパーティ・サービスからの情報に関する追加の詳細を見ることを可能にすることができる。
【0084】
1つまたは複数の実施形態では、エージェント・ユーザ・インタフェース302は、ブラウザ・インタフェース308内に直接にサードパーティ・サービスに関連するウェブページを表示することによって、サードパーティ・サービスからの情報を表示することができる。たとえば、システム100は、ウェブページのURLからの情報を要求することができる。代替案では、システム100は、サードパーティ・サービスから情報を入手するためにサードパーティ・サービスのアプリケーション・プログラム・インタフェース(API)への1つまたは複数の呼出しを行い、その後、入手された情報をブラウザ・インタフェース308内に所定のフォーマットで表示することができる。さらに、エージェントは、サードパーティ・サービスからの情報を選択し、かつ/または変更するために、ブラウザ・インタフェース308内の情報と対話することができる。したがって、システム100は、サードパーティ・サービスからの情報の表示を提供して、エージェントがメッセージング・アプリケーションを終了することを要求せずに、エージェントが要求を満たすための対応する詳細を入手することを可能にすることができる。
【0085】
前に述べたように、システム100は、判定された意図に対応する1つまたは複数の詳細が、要求を有するメッセージから欠けている可能性があると判定する。欠けている詳細の識別に応答して、エージェント・ユーザ・インタフェース302は、欠けている詳細に関する質問をするためにエージェントにプロンプトを提供することができる。たとえば、エージェント・ユーザ・インタフェース302は、対応する詳細に関する「質問をする」ようにユーザに促すテキストと共に、対応する詳細要素320a、320bを強調表示することができる。要求が、未追加の詳細要素を有しない場合に、エージェントは、要求を満たすことを進行することができる。
【0086】
ユーザが未追加の詳細要素320a、320bのうちの1つまたは複数を選択することに応答して、図3Cに示されているように、システム100は、ユーザに送るためにメッセージ334aを生成することができる。具体的には、システム100は、エージェントが特定の詳細要素を選択したと判定し、対応する詳細に関するさらなる情報についてユーザに尋ねる包括的なメッセージを生成することができる。たとえば、エージェントが、時間要素320aおよび予算要素320bを選択する場合に、システム100は、ユーザが時間枠および予算を念頭においているかどうかをユーザに尋ねるメッセージ334aを生成することができる。詳細要素320a、320bの選択は、対詳細要素320a、320bが選択されたことを示すために対応する詳細要素320a、320bが視覚的に更新されるようにすることもできる。
【0087】
さらに、エージェントが選択する詳細要素ごとに、システム100は、以前に生成されたメッセージ334aに対応する詳細を追加することができる。たとえば、システム100は、文法的に正しい形で詳細を含むように、生成されたメッセージ334aを動的に変更することができる。代替案では、新しい詳細要素320の選択は、システム100に、以前に生成されたメッセージ334aとは異なるテキストを有する可能性がある新しいメッセージ334aを生成させることができる。
【0088】
1つまたは複数の実施形態では、エージェント・ユーザ・インタフェース302は、自動的に生成されたメッセージ334aをテキスト入力フィールド316a内に表示することができる。具体的には、エージェント・ユーザ・インタフェース302は、エージェントが生成されたメッセージ334aに対する変更を行うことを可能にするために、自動的に生成されたメッセージ334aをエージェントに提供することができる。たとえば、エージェント・ユーザ・インタフェース302は、メッセージ334aを削除し、メッセージ334a内に追加の詳細を入力し、メッセージ334aの言葉遣いを変更し、または他の形でメッセージ334aを変更することができる。例示のために、エージェントは、例を入力するか、または生成されたメッセージ334a内の要求された詳細のいずれかを明確にすることができる。要求に関する1つまたは複数の詳細を尋ねる自動的に生成されたメッセージ334aを提供することは、エージェントの効率を改善することができる。
【0089】
生成されたメッセージ334aを検証した後に、エージェントは、生成されたメッセージ334aをユーザに送ることができる。生成されたメッセージ334aのユーザへの送出により、メッセージング・スレッド310が、ユーザとエージェントとの間のメッセージの時系列順に従って更新される。図3Dは、ユーザとエージェントとの間のメッセージング・スレッド310内の生成されたメッセージ334aを含むエージェント・ユーザ・インタフェース302を示す。前に述べたように、エージェントからユーザへのメッセージは、異なる場所にあり、かつ/またはユーザからエージェントへのメッセージとは異なる外観を有し、ユーザおよびエージェントがそれぞれのメッセージング・アプリケーション内でメッセージを簡単に区別することを可能にし得る。
【0090】
生成されたメッセージ334aに応答して、ユーザは、要求された詳細を示す1つまたは複数のメッセージで応答することができる。たとえば、図3Eは、ユーザが、時間枠および好ましい予算を示す第2のメッセージ312bで応答したことを示す。システム100は、要求される詳細を自動的に識別するために、第2のメッセージ312bを分析することができる。さらに、エージェント・ユーザ・インタフェース302は、ユーザからの第2のメッセージ312bに基づいて、対応する詳細要素320に要求される詳細を追加することができる。
【0091】
1つまたは複数の実施形態では、エージェント・ユーザ・インタフェース302は、ユーザからの第2のメッセージ312b内の情報に基づく推定を用いて、詳細要素320のうちの1つまたは複数を表示することができる。たとえば、ユーザが、時間範囲を提供する場合に、システム100は、対応する時刻が時間範囲の中央にあると判定することができ、エージェント・ユーザ・インタフェース302は、時間要素内に推定された時刻を表示することができる。代替案では、システム100は、異なる時刻を選択し、または要求された時刻として時間範囲を提供することができる。
【0092】
同様に、システム100は、第2のメッセージ312bに基づき、サードパーティ・サービスに関連する価格体系に従って、推定される予算を判定することができる。例示のために、サードパーティ・サービスは、所与のレストランがどれほどの高価であるのかを示す複数の「$」アイコン(たとえば、「$$」は20〜30ドル範囲内の料理の適度な価格を示す)を用いて価格を識別する料金システムを使用することができる。システム100は、識別された詳細をサードパーティ・サービスに対応する価格体系に自動的に変換し、変換された値を予算要素に追加することができる。
【0093】
受信された詳細に従って、システム100は、サードパーティ・サービスから新しい情報を入手することができる。具体的には、システム100は、利用可能なオプションの個数を絞り込むのを支援し得る追加の詳細を含めるために、サードパーティ・サービスへの要求を更新することができる。たとえば、システム100は、予算および時刻の詳細を含めるためにレストランの予約に関する要求を更新し、おそらくは、要求に関連する位置内のより少数の使用可能なレストランに絞られるようにすることができる。システム100は、サードパーティ・サービスからの新しい情報を用いてブラウザ・インタフェース308を更新することができる(たとえば、地図328から位置マーカーを除去することおよび/またはリスト330からオプションを除去することによって)。したがって、システム100は、エージェントに表示される情報を自動的に更新することによって、エージェントが新しい情報を手作業で要求することを要求せずに、エージェントの効率を改善することができる。
【0094】
エージェントが、ユーザの要求を満たすのに必要なまたはこれに役立つ詳細を識別した後に、エージェントは、追加情報をユーザに提供することができる。具体的には、エージェントは、選択するためにユーザに1つまたは複数のオプションを提供することができる。たとえば、エージェントは、ユーザが使用可能な1つまたは複数のオプションを示す第2のメッセージ334bをメッセージング・スレッド310内でユーザに送ることができる。例示のために、メッセージ334bは、ユーザの判断基準を満たす1つまたは複数のレストランに関連する1つまたは複数の予約時刻を示すことができる。図3Fは、メッセージング・スレッド310内で表示される、ユーザが利用可能な1つまたは複数のオプションを含む自動的に生成されたメッセージ334bを示す。
【0095】
1つまたは複数の実施形態では、エージェントは、利用可能なオプションを示すメッセージ334bを手作業で生成することができる。代替案では、システム100は、ブラウザ・インタフェース308内で視認可能な情報に基づくか、またはサードパーティ・サービスによって提供された他の情報に基づいて、利用可能なオプションを示すメッセージ334bを自動的に生成することができる。たとえば、システム100は、最高のレビューを有するオプション、ユーザの判断基準に対するオプションの一致の正確さ、またはメッセージ334bを生成するためにエージェントがマークしたオプションに基づいて(これに限定はされない)、メッセージ334bを自動的に生成することができる。追加の詳細を尋ねる生成されたメッセージに関して、エージェントは、ユーザに送る前に、利用可能なオプションを含む自動的に生成されたメッセージ334bを変更しまたは再検討することができる。
【0096】
オプションを有する生成されたメッセージ334bをユーザに送った後に、ユーザは、図3Gに示されているように、要求を満たすための選択されたオプションを示すメッセージ312cで応答することができる。1つまたは複数の実施形態では、システム100は、サードパーティ・サービスと通信することと、要求された詳細を送ることとによって、選択されたオプションを示すメッセージ312cに基づいて要求を自動的に満たすことができる。代替実施形態では、エージェントは、ブラウザ・インタフェース308内でユーザによって選択されたオプションを選択することと、すべての要求された詳細をサードパーティ・サービスに提供することとによって、要求を手作業で満たすことができる。たとえば、エージェントは、システム100がサードパーティ・サービスに正しい詳細を提供したことを検証し、ブラウザ・インタフェース308内で選択されたオプションを選択することができる。
【0097】
いくつかの代替実施形態では、ユーザからのある要求は、ユーザがオプションを選択することを要求しない場合があり、エージェントは、ユーザからのさらなる通信なしでユーザの要求を満たすことができる。たとえば、情報(たとえば、天気、映画の時間、メディア・レビュー、または他の全般的情報)の要求は、選択されたオプションをサードパーティ・サービスに提供することを含まない場合がある。したがって、エージェントは、ユーザからのメッセージ内の詳細に基づいて(パーソナル・アシスタント・サービス・システム100の支援を得て)要求された情報を単純に入手し、要求された情報をユーザに提供することができる。
【0098】
1つまたは複数の実施形態では、エージェントまたはシステム100がユーザとエージェントとの間で交換されたメッセージに基づいてオプションを選択した後に、サードパーティ・サービスは、選択の確認を提供することができる。たとえば、サードパーティ・サービスは、エージェントがオプションを成功裡に選択したことを示す確認ページ336をブラウザ・インタフェース308内でエージェントに提供することができる。例示のために、図3Hに示されているように、サードパーティ・サービスは、エージェントがレストランの予約を成功裡にスケジューリングしたことを示す確認ページ336を提供することができる。確認ページ336は、レストラン、人数、日付、および時刻など、予約の詳細を含むことができる。エージェントは、詳細のいずれかが不正確である場合に予約を変更することができる。
【0099】
少なくともいくつかの実施形態によれば、サードパーティ・サービスは、エージェントがユーザの名前で要求を満たすことを可能にすることができる。たとえば、システム100は、ユーザが要求に関連してサードパーティ・サービスに提供するためのアカウント情報にアクセスすることができる。例示のために、エージェントがユーザのためにレストラン予約をスケジューリングする場合に、システム100は、予約がユーザの名前の下になるように、ユーザのアカウント情報をサードパーティ・サービスに提供することができる。代替案では、エージェントは、ユーザのアカウント情報にアクセスすることと、ユーザのアカウント情報を使用して予約をスケジューリングすることとによって、ユーザの情報をサードパーティ・サービスに手作業で提供することができる。システム100は、システム100がユーザからの将来の要求に応答する能力を改善するために、ユーザ・アカウントと共に記憶するための情報(たとえば、頻繁な要求、プリファレンス、ライティング・スタイル)を提供することもできる。
【0100】
1つまたは複数の実施形態では、システム100は、意図を判定する際および/または要求を満たす際にユーザ・アカウント情報を使用することができる。たとえば、システム100は、ユーザのメッセージ内にリストされた名前がユーザに関係することを、ユーザ・アカウント情報に基づいて識別することができる。その後、システム100は、その情報を活用して、判定された意図を洗練し、かつ/または要求に関連する1つまたは複数の詳細を識別することができる。一例では、システム100は、ユーザ・アカウント情報に基づいて要求内の代名詞を識別し(たとえば、「私の母に花を送る」)、ユーザの関係に基づいてその人のアイデンティティを外挿することができる。1つまたは複数の実施形態では、システム100は、以下により詳細に説明するように、ユーザの要求において人を識別するために、ソーシャル・ネットワーキング・システムのソーシャル・グラフを使用することができる。
【0101】
エージェントが、ユーザの情報へのアクセスを有し、ユーザの情報を使用して要求を満たす場合に、エージェントは、ユーザのために追加のアクションを実行し得る。たとえば、エージェントは、ユーザがカレンダ内の予約を見ることができるように、ユーザのアカウントに関連するカレンダに予約を追加できる場合がある。さらに、ユーザが、エージェントの支援なしで、変更を行うか追加情報を見るために予約にアクセスすることができる場合もある。
【0102】
代替実施形態では、サードパーティ・サービスは、エージェントがパーソナル・アシスタント・サービスの名前で要求を満たすことを可能にすることができる。具体的には、ユーザのアカウント情報を入手し、ユーザのアカウント情報をサードパーティ・システムに提供するのではなく、システム100は、パーソナル・アシスタント・サービスの情報をサードパーティ・サービスに提供することができる。その後、エージェントは、満たされた要求(たとえば、予約)が、パーソナル・アシスタント・サービスの名前で行われたことをユーザに示すことができる。したがって、エージェントが、ユーザが個人情報をサードパーティ・サービスに提供することを要求せずに要求を満たすことができる場合がある。
【0103】
少なくともいくつかの要求に関して、サードパーティ・サービスは、エージェントがユーザの代わりに支払い取引に入ることを要求してもよい。たとえば、ユーザが、システム100がユーザのためにある品目を購入することを要求する場合に、その品目を提供するサードパーティ・サービスは、システム100がサードパーティ・サービスに支払いを提供することを要求してもよい。1つまたは複数の実施態様によれば、システム100は、まずユーザがシステム100に支払うことを要求することができ、その後、システム100は、サードパーティ・サービスに支払うことができる。そのような実施形態では、サードパーティ・サービスは、ユーザの金融情報へのアクセスを絶対に有しない。代替案では、システム100は、ユーザがサードパーティ・サービスとの直接支払い取引に入ることを可能にするために、ユーザの金融情報をサードパーティ・サービスに提供することができる。さらに他の実施形態では、システム100は、ユーザの名前で要求を満たすことができるが、パーソナル・アシスタント・サービスの支払い情報をサードパーティ・サービスに提供することができる(すなわち、ユーザがシステム100に支払い、システム100がサードパーティ・サービスに支払うが、システム100は、ユーザの名前をサードパーティ・サービスに提供する)。
【0104】
1つまたは複数の実施形態では、システム100は、サードパーティ・サービスから報酬を受け取ることができる。たとえば、1つまたは複数のサードパーティ・サービスは、サードパーティ・サービスをユーザに推奨することに関する報酬を提供する契約をシステム100と結ぶ場合がある。さらに、1つまたは複数のサードパーティ・サービスは、要求がサードパーティ・サービスとの支払い取引をもたらす場合に手数料を提供してもよい。さらに、サードパーティ・サービスは、パーソナル・アシスタント・サービスに関連する広告を提供するためにシステム100に支払うことができる。
【0105】
1つまたは複数の実施形態では、システム100は、確認ページ336に関連してユーザに送るべき確認メッセージ338を提供することができる。具体的には、システム100は、満たされた要求に関する詳細を含む確認メッセージ338を生成することができる。たとえば、システム100は、満たされた要求に関連する情報をサードパーティ・サービスから入手し(たとえば、サードパーティ・サービスのウェブページのスクラップを作ることによって、またはサードパーティ・サービスのAPIへの呼出しを行うことによって)、入手された情報を含むように確認メッセージ338を自動的に生成することができる。例示のために、システム100は、成立した予約に関連する関係する詳細(たとえば、レストラン、日付、時刻、住所、および人数)を示す確認メッセージ338をユーザとエージェントとの間のメッセージング・スレッド310内で提供することができる。図3Iは、成立した予約に関する確認メッセージ338を含むメッセージング・スレッド310を示す。
【0106】
代替案では、システム100は、エージェントがなんらかの理由で要求を満たすことができない場合にユーザに示すことができる。たとえば、システム100は、失敗の理由を含めて、エージェントが要求を満たすことができなかったことを示すメッセージを生成することができる。例示のために、エージェントがサードパーティ・サービスに連絡できない場合に、システム100は、サードパーティ・サービスが利用できないことを示す、ユーザに送るべきメッセージを生成することができる。同様に、支払い取引を含む要求に関して、システム100は、サードパーティ・サービスがユーザの支払い証明書(payment credential)を拒絶した場合に、要求が満たされ得なかったことをユーザに示すことができる。
【0107】
前に述べたように、システム100は、ユーザとエージェントとの間のメッセージング・スレッド310内でユーザに提供すべきメッセージを自動的に生成することができる。図3A〜3Iは、テキストを含む自動的に生成されたメッセージを示すが、システム100は、メッセージング・スレッド310に関して生成されるメッセージ内に他のコンテンツを含めることができる。図4A〜4Cは、メッセージング・スレッド404内の自動的に生成されたメッセージの代替実施形態を含む、エージェント・ユーザ・インタフェース402を有するエージェント・クライアント・デバイス400の実施形態を示す。
【0108】
1つまたは複数の実施形態では、システム100は、メッセージング・スレッド404内で対話メッセージを提供することができる。具体的には、図4A〜4Cのエージェント・ユーザ・インタフェース402は、メッセージング・スレッド404内の対話メッセージを含む。たとえば、システム100は、エージェントからの入力を用いてまたは用いずに、対話メッセージを生成し、対話メッセージをメッセージング・スレッド404に挿入することができる。例示のために、ユーザからの要求を有するメッセージを分析した後に、システム100は、判定された意図に関連する1つまたは複数の詳細を識別し、ユーザが選択できる複数の異なるオプションを有する対話メッセージを生成することができる。たとえば、図4Aは、複数の時間枠オプションおよび複数の予算オプションを有する第1の対話メッセージ406を示す。
【0109】
対話メッセージは、ユーザがエージェントに送るための応答をタイプすることを要求せずに、ユーザがシステム100に情報を提供することを可能にする。具体的には、ユーザは、対応する詳細の所望のオプションをタップするか、または他の形で選択することによって、クライアント・デバイスのメッセージング・アプリケーション内で第1の対話メッセージ406と対話することができる。たとえば、ユーザは、対応する時間枠オプション408aをタップすることによって「午後7〜8時」時間枠を、対応する予算オプション408bをタップすることによって「$$」予算を選択することができる。オプションの選択によって、クライアント・デバイスが選択をシステム100に送ることができ、システム100は、図4Bに示されているように、その選択に応じてエージェント・ユーザ・インタフェース402を更新する(たとえば、選択されたオプションを強調表示することによって)。さらに、オプションの選択によって、システム100が更新された詳細をサードパーティ・サービスに送らせることができる。
【0110】
ユーザが第1の対話メッセージ406内の1つまたは複数のオプションを選択することに応答して、システム100は、1つまたは複数の追加メッセージを提供することができる。たとえば、システム100は、ユーザの指定した判断基準を満たす利用可能なオプションを含む対話メッセージを提供することができる。例示のために、図4Cの第2の対話メッセージ410は、レストラン予約に関する複数のオプションを含む。具体的には、第2の対話メッセージ410は、複数の使用可能な予約時刻を有する第1のレストランと、複数の使用可能な予約時刻を有する第2のレストランとを含む。ユーザは、予約を確定し、かつ要求を満たすようにシステム100に指示するために、利用可能なオプションから選択することができる。
【0111】
1つまたは複数の実施形態によれば、ユーザは、追加のオプションを求めることができる。たとえば、ユーザが、提供されたオプションに満足しない場合に、ユーザは、ユーザが1つまたは複数の追加のオプションを確認したいと思うことを示すメッセージをシステム100に送ることができる。システム100は、メッセージを分析してユーザがより多くのオプションを好むことを判定することができる。そして、システム100(またはエージェント)は、サードパーティ・サービスに追加のオプションを要求し、メッセージング・スレッド404内のユーザへのメッセージ内で追加オプションを提供することができる。
【0112】
少なくともいくつかの実施形態では、ユーザは、要求を有する元のメッセージを送った後のどの時にも、要求を取り消すことができる。たとえば、ユーザは、システム100が要求を満たすことをユーザがもはや望まないことを示すメッセージ(たとえば、「必要ない」または「取り消す」などの句を有する)を送り、メッセージング・アプリケーション内の取消要素を選択し、またはメッセージング・スレッド404を閉じることができる。ユーザが要求を取り消すことを求めるとの判定に応答して、システム100は、エージェントのタスクを打ち切り、かつ/または要求が取り消されたことを示すメッセージをユーザに送ることができる。
【0113】
1つまたは複数の実施形態では、対話メッセージの提供は、システム100が、エージェントが要求を満たす際に実行する作業の量を減らすことを可能にすることができる。具体的には、対話メッセージは、ライブ・エージェントの代わりに人工知能を使用して要求を満たすためのパーソナル・アシスタント・サービスのさらなる自動化の一部とされ得る。たとえば、前に述べたように、システム100は、エージェント効率を改善し、ユーザ待ち時間を減らすために、以前の要求およびユーザとエージェントとの間の対話を使用して機械学習モデルをトレーニングすることができる。より多くのユーザが要求を提供し、エージェントと対話するにつれて、システム100は、機械学習モデルをトレーニングすべきデータセットを増やす。さらに、データセットの増加は、機械学習モデルの正確さを改善し、システム100がエージェントなしで実行できるアクションのタイプを増やすことができる。よくトレーニングされた機械学習モデルは、ユーザ要求を満たすことに関連する様々な異なるアクション(単純から複雑まで)を実行することができる。
【0114】
少なくともいくつかの実施形態によれば、機械学習モデルは、システム100に関連するすべてのエージェントのメッセージング履歴およびアクションに対してトレーニングすることができる。具体的には、機械学習モデルは、将来の同様の要求にどのように応答すべきかを知るために、ユーザ要求に関連してエージェントによって行われたアクションから学習することができる。たとえば、システム100は、ある句または用語をどのように解釈すべきか、およびその句および用語にどのように応答すべきかを判定するために、エージェントからの入力およびアクション(たとえば、エージェントが実行する動作およびエージェントが入力するテキスト)を記憶することができる。
【0115】
さらに、システム100は、熟語、口語表現、単語の代替の意味、冗談、および他の書き方の特性を含む、エージェントおよびユーザのライティング・スタイルから学習することができる。ライティング・スタイルの多様性の改善は、ユーザおよびエージェントの経験をより楽しいものにすることを支援することができる。システム100は、機械学習モデルと共に使用するために認識されたライティング・スタイルおよび癖を記憶するために、エージェント・プロファイルを維持することもできる。たとえば、システム100は、要求に関連してユーザに送るための自動的に生成されるメッセージにエージェントのライティング・スタイルを適用することができる。
【0116】
1つまたは複数の実施形態では、システム100は、エージェント固有のメッセージング・アプリケーション内で追加の情報および/またはインタフェースを提供することができる。たとえば、システム100は、エージェントがユーザに現在振り当てられているタスクのリストを見ることを可能にするタスク・リストを提供することができる。各タスクは、エージェントが選択し、かつ見ることのできるメッセージング・スレッド404に関連付けられ得る。
【0117】
さらに、各タスクは、要求の開始日付によって決定された関連する時刻情報を有してもよい。たとえば、タスク・リストは、ユーザが対応する要求をサブミットした時系列順に基づいてタスクを編成することができる。例示のために、システム100は、タスク・リストの最上部に最も古いタスクをリストすることができる。タスク・リストは、任意のタスクが緊急であり、かつ即座に対処される必要があるかどうかを表示することもできる。たとえば、同一の日の予約の要求は、緊急である可能性があるが、2週間先の日の予約の要求は、緊急ではない可能性がある。
【0118】
システム100は、要求のタイプに基づいて、引き続いてタスクを行うようにエージェントに促すことができる。具体的には、一部のユーザ要求は、ユーザへの配送のために製品またはサービスを購入しまたは注文すること、あるいはユーザのために将来のアクションを実行すること(たとえば、ユーザに製品を出荷すること、予約をとること、飛行機旅行を予約すること)を含む場合がある。要求が、サードパーティ・サービスに関連する配送または将来のアクションを含む場合に、システム100は、サードパーティ・サービスが適切に要求を満たしたことを検証するために、ユーザをフォローするためのメッセージを送るようにエージェントに促すことができる。システム100は、緊急タスクに関してより頻繁にフォロー・アップし、かつ/または緊急タスクをタスク・リストの最上部に移動することができる。
【0119】
エージェントが要求を満たした後に、エージェントは、タスクを完了することができる。具体的には、エージェントは、対応するタスクを完了されたタスクのリストに移動することができる。タスクの完了によって、ユーザとのメッセージング・スレッド404を終了することができ、その結果、エージェントは、もはやメッセージング・スレッド404内でユーザにメッセージを送らなくてもよくなる。1つまたは複数の実施形態によれば、システム100は、完了されたタスクを含む、エージェントのタスクの履歴を維持することができる。
【0120】
図1図4C、対応するテキスト、および例は、メッセージングを介してパーソナル・アシスタント・サービスを提供する複数の異なるシステムおよびデバイスを提供する。前述に加えて、実施形態が、特定の結果を達成する方法における動作およびステップを含むフローチャートに関して説明され得る。たとえば、図4は、1つまたは複数の実施形態による例示的な方法のフローチャートを示す。
【0121】
図5は、メッセージングによりパーソナル・アシスタント・サービスを提供する方法500のフローチャートを示す。方法500は、パーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信する動作502を含む。たとえば、動作502は、メッセージング・アプリケーションのユーザから、パーソナル・アシスタント・サービスに関する要求を含む電子メッセージを受信することを含む。例示のために、動作502は、パーソナル・アシスタント・サービスがユーザのために1つまたは複数のアクションを実行することの要求を示すテキスト・コンテンツを含むインスタント・メッセージを受信することを含むことができる。
【0122】
方法500は、エージェントに要求を振り当てる動作504をも含む。たとえば、動作504は、要求を満たすためにエージェントに要求を振り当てることを含む。例示のために、動作504は、エージェントの作業負荷に基づいてエージェントに要求を振り当てることを含むことができる。代替案では、動作504は、エージェントに関連する位置および言語に基づいてエージェントに要求を振り当てることを含むことができる。代替案では、動作504は、要求をエージェントに振り当てることのエージェントによる要求を受信することと、受信された要求に応答して要求をエージェントに振り当てることとを含むことができる。
【0123】
方法500は、要求の意図を判定する動作506をさらに含む。たとえば、動作506は、自然言語プロセッサを使用して、要求の意図を判定することを含むことができる。例示のために、動作506は、要求の意図を判定することは、意図を示す1つまたは複数の単語または句を要求から識別することを含むことができる。さらに、動作506は、複数のユーザからの複数の以前の要求の判定された意図に基づいて要求の意図を判定することを含むことができる。
【0124】
さらに、方法500は、エージェント・ユーザ・インタフェース302、402を構成する動作508を含む。たとえば、動作508は、要求の判定された意図に従う1つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェース302、402を構成することを含む。例示のために、動作508は、ユーザ・インタフェース内の識別された単語または句に関連する1つまたは複数の可能なオプションを提供することによって、要求の判定された意図に従う1つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェース302、402を構成することを含むことができる。
【0125】
動作508は、判定された意図に対応する、電子メッセージ内の1つまたは複数の単語または句と、判定された意図に関連する1つまたは複数の詳細とを強調表示することを含むこともできる。さらに、動作508は、エージェント・ユーザ・インタフェース内での表示のために1つまたは複数の詳細にカラー・コードを適用することを含むことができる。
【0126】
方法500は、動作508の一部としてまたは追加の動作として、要求の判定された意図に基づいて、サードパーティ・サービスからオプションのリストを入手することと、エージェント・ユーザ・インタフェース302、402内でサードパーティ・サービスからのオプションのリストを提供することとを含むことができる。さらに、方法500は、エージェント・ユーザ・インタフェース302、402内でオプションのリストに対応する複数の選択可能な要素を提供する動作を含むことができる。
【0127】
動作508の一部としてまたは追加の動作として、方法500は、要求の意図を変更するためにエージェント・ユーザ・インタフェース302、402を介してユーザ入力を受け取ることをも含むことができる。方法500は、要求の変更された意図に従う1つまたは複数のオプションを含むようにエージェント・ユーザ・インタフェース302、402を再構成する動作を追加的に含むことができる。
【0128】
動作508の一部としてまたは追加の動作として、方法500は、要求の判定された意図に対応する複数の特性を判定する動作を含むことができる。さらに、方法500は、要求内で、複数の特性に対応する1つまたは複数の要求詳細を識別する動作と、識別された1つまたは複数の要求詳細を、エージェント・ユーザ・インタフェース302、402内の1つまたは複数のオプションに関連する1つまたは複数の詳細フィールドに追加する動作とを含むことができる。
【0129】
方法500は、要求に基づいて、1つまたは複数の詳細フィールドから未追加の詳細フィールドを識別する動作を含むこともできる。方法500は、未追加の詳細フィールドに関連する要求に対する自動化された応答を生成する動作と、エージェント・ユーザ・インタフェース302、402のメッセージング・エリア内でメッセージング・アプリケーションのユーザに送るために、生成された応答をエージェントに提供する動作とをさらに含むことができる。たとえば、方法500は、未追加の詳細フィールドに関連する要求に対する対話応答を生成する動作を含むことができる。対話応答は、メッセージング・アプリケーションのメッセージング・スレッド310、404内での表示のための未追加の詳細フィールドに関連する複数の選択可能な要素を含むことができる。方法500は、それに加えてまたはその代わりに、パーソナル・アシスタント・サービスに関する要求を満たすことに関連する複数の選択可能なオプションを含む対話メッセージを生成し、生成された対話メッセージをメッセージング・アプリケーションのメッセージング・スレッド310、404内でユーザに送る動作を含むことができる。
【0130】
方法500は、要求を含む電子メッセージに関連する電子メッセージのメッセージング履歴を維持する動作をさらに含むことができる。方法500は、要求に関連するエージェントによる1つまたは複数のアクションを識別する動作を含むこともできる。方法500は、メッセージ履歴および識別された1つまたは複数のアクションに基づいて機械学習モデルをトレーニングする動作を含むことができる。
【0131】
本開示の実施形態では、以下に詳述する通り、たとえば1つまたは複数のプロセッサおよびシステムメモリ等のコンピュータハードウェアを備えた専用または汎用コンピュータを備えるか、または利用するようにしてもよい。また、本開示の発明の範囲内の実施形態には、コンピュータ実行可能な命令および/またはデータ構造を搬送または記憶する物理的なコンピュータ可読媒体および他のコンピュータ可読媒体を含む。とりわけ、本明細書に記載のプロセスのうちの1つまたは複数は、非一時的コンピュータ可読媒体にて具現化され、1つまたは複数のコンピューティング・デバイス(たとえば、本明細書に記載のメディアコンテンツアクセスデバイスのいずれか)により実行可能な命令として、その少なくとも一部が実装されていてもよい。一般的には、プロセッサ(たとえば、マイクロプロセッサ)が非一時的コンピュータ可読媒体(たとえば、メモリ等)から命令を受け取り、これらの命令を実行することによって、本明細書に記載のプロセスのうちの1つまたは複数等、1つまたは複数のプロセスを実行する。
【0132】
コンピュータ可読媒体としては、汎用または専用コンピュータ・システムによりアクセス可能な任意の利用可能な媒体が可能である。コンピュータ実行可能な命令を記憶するコンピュータ可読媒体は、非一時的コンピュータ可読記憶媒体(デバイス)である。コンピュータ実行可能な命令を搬送するコンピュータ可読媒体は、伝送媒体である。このように、非限定的な一例として、本開示の実施形態には、非一時的コンピュータ可読記憶媒体(デバイス)および伝送媒体という少なくとも2つの明確に異なる種類のコンピュータ可読媒体を含み得る。
【0133】
非一時的コンピュータ可読記憶媒体(デバイス)としては、RAM、ROM、EEPROM、CD−ROM、固体ドライブ(「SSD」)(たとえば、RAMベース)、フラッシュメモリ、相変化メモリ(「PCM」)、他の種類のメモリ、他の光ディスクストレージ、磁気ディスクストレージ等の磁気ストレージデバイス、またはコンピュータ実行可能な命令もしくはデータ構造の形態の所望のプログラムコード手段の記憶に使用可能であるとともに、汎用もしくは専用コンピュータによりアクセス可能なその他任意の媒体が挙げられる。
【0134】
「ネットワーク」は、コンピュータ・システムおよび/またはモジュールおよび/または他の電子機器間で電子データを伝送可能な1つまたは複数のデータリンクとして定義されている。情報がネットワークまたは別の通信接続(有線、無線、または有線もしくは無線の組み合わせ)上でコンピュータに転送または提供される場合、上記コンピュータは、その接続を厳密に伝送媒体と見なす。伝送媒体としては、コンピュータ実行可能な命令またはデータ構造の形態の所望のプログラムコード手段の搬送に使用可能であるとともに、汎用または専用コンピュータによりアクセス可能なネットワークおよび/またはデータリンクが挙げられる。また、上記の組み合わせについても、コンピュータ可読媒体の範囲に含まれるものとする。
【0135】
さらに、コンピュータ・システムのさまざまな構成要素に到達した際に、コンピュータ実行可能な命令またはデータ構造の形態のプログラムコード手段は、伝送媒体から非一時的コンピュータ可読記憶媒体(デバイス)へと自動的に転送可能である(その逆も可能である)。たとえば、ネットワークまたはデータリンク上で受信されたコンピュータ実行可能な命令またはデータ構造は、ネットワークインタフェースモジュール(たとえば、「NIC」)内のRAMにバッファリングした後、最終的には、コンピュータ・システムRAMおよび/またはコンピュータ・システムにおける低揮発性コンピュータ記憶媒体(デバイス)に転送可能である。したがって、非一時的コンピュータ可読記憶媒体(デバイス)は、伝送媒体も(または、主として)利用するコンピュータ・システムの構成要素に含み得ることが了解されるものとする。
【0136】
コンピュータ実行可能な命令としては、たとえばプロセッサで実行された場合に、特定の機能または機能群を汎用コンピュータ、専用コンピュータ、または専用処理デバイスに実行させる命令およびデータが挙げられる。1つまたは複数の実施形態においては、コンピュータ実行可能な命令が汎用コンピュータ上で実行されることにより、上記汎用コンピュータは、本開示の実施形態の要素を実装した専用コンピュータへと変化する。コンピュータ実行可能な命令は、たとえばバイナリ、アセンブリ言語等の中間フォーマット命令、あるいはソースコードであってもよい。以上、構造的特徴および/または方法論的動作に固有の表現で主題を説明したが、添付の特許請求の範囲に規定の主題は、必ずしも上述の特徴または動作に限定されないことが了解されるものとする。むしろ、上記特徴および動作は、特許請求の範囲を実施する例示的な形態として開示している。
【0137】
当業者であれば、パーソナル・コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、メッセージプロセッサ、携帯機器、マルチプロセッサシステム、マイクロプロセッサベースの家庭用電化製品またはプログラム可能な家庭用電化製品、ネットワークPC、マイクロコンピュータ、メインフレームコンピュータ、携帯電話、PDA,タブレット、ポケベル、ルータ、スイッチ等、さまざまな種類のコンピュータ・システム構成のネットワークコンピュータ環境において本開示が実現されるようになっていてもよいことが認識されよう。また、本開示は、ネットワークを通じて(有線データリンク、無線データリンク、または有線および無線データリンクの組み合わせにより)リンクしたローカルメモリストレージデバイスおよび遠隔コンピュータ・システムがともにタスクを実行する分散システム環境において実現されるようになっていてもよい。分散システム環境においては、ローカルメモリストレージデバイスおよび遠隔メモリストレージデバイスの両者にプログラムモジュールが配置されていてもよい。
【0138】
また、本開示の実施形態は、クラウドコンピュータ環境において実装可能である。本記載において、「クラウドコンピューティング」は、設定可能なコンピュータリソースの共有プールに対するオンデマンドネットワークアクセスを可能とするモデルとして定義されている。たとえば、クラウドコンピューティングは、設定可能なコンピュータリソースの共有プールに対するユビキタスかつ便利なオンデマンドアクセスを提供する市場で採用可能である。設定可能なコンピュータリソースの共有プールは、仮想化によって迅速に開設可能であるとともに、わずかな管理労力またはサービス・プロバイダ対話で解放可能であるため、これに応じてスケーリング可能である。
【0139】
クラウドコンピューティングモデルは、たとえばオンデマンドセルフサービス、ブロードネットワークアクセス、リソースプーリング、ラピッドエラスティシティ、メジャードサービス等のさまざまな特性で構成可能である。また、クラウドコンピューティングモデルは、たとえばサービス型ソフトウェア(「SaaS」)、サービス型プラットフォーム(「PaaS」)、およびサービス型インフラ(「IaaS」)等のさまざまなサービスモデルを提供可能である。また、クラウドコンピューティングモデルは、プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウド等のさまざまな展開モデルを用いて展開可能である。本明細書および特許請求の範囲において、「クラウドコンピュータ環境」は、クラウドコンピューティングを採用する環境である。
【0140】
図6は、上述のプロセスのうちの1つまたは複数を実行するように構成できる例示的なコンピューティング・デバイス600のブロック図を示している。データコンピューティング・デバイス600などの1つまたは複数のコンピューティング・デバイスがパーソナルアシスタントサービスシステム100aを実装することが理解される。図6に示すように、コンピューティング・デバイス600は、通信インフラ612によって通信されるように結合されている、プロセッサ602、メモリ604、ストレージデバイス606、I/Oインタフェース608、および通信インタフェース610を備える。図6には、例示的なコンピューティング・デバイス600を示しているが、図6に示す構成要素は、何ら限定を意図したものではない。他の実施形態においては、付加的または代替的な構成要素を使用するようにしてもよい。さらに、特定の実施形態において、コンピューティング・デバイス600は、図6よりも少ない構成要素を備える。以下、図6に示すコンピューティング・デバイス600の構成要素について、さらに詳しく説明する。
【0141】
1つまたは複数の実施形態において、プロセッサ602は、コンピュータ・プログラムを構成する命令等を実行するハードウェアを備えてもよい。非限定的な一例として、プロセッサ602は、命令を実行するため、内部レジスタ、内部キャッシュ、メモリ604、またはストレージデバイス606から命令を取り出す(または、フェッチする)とともに、上記命令を復号化して実行するようにしてもよい。1つまたは複数の実施形態において、プロセッサ602は、データ、命令、またはアドレス用の1つまたは複数の内部キャッシュを備えてもよい。非限定的な一例として、プロセッサ602は、1つまたは複数の命令キャッシュ、1つまたは複数のデータキャッシュ、および1つまたは複数のトランスレーション・ルックアサイド・バッファ(TLB)を備えてもよい。命令キャッシュ中の命令は、メモリ604またはストレージ806中の命令のコピーであってもよい。
【0142】
メモリ604は、データ、メタデータ、およびプロセッサが実行するプログラムの記憶に使用してもよい。メモリ604は、ランダムアクセスメモリ(「RAM」)、リードオンリーメモリ(「ROM」)、固体ディスク(「SSD」)、フラッシュ、相変化メモリ(「PCM」)、または他の種類のデータ・ストレージ等、揮発性および不揮発性メモリのうちの1つまたは複数を備えていてもよい。また、メモリ604は、内部メモリであってもよいし、分散メモリであってもよい。
【0143】
ストレージデバイス606は、データまたは命令を記憶するストレージを備える。非限定的な一例として、ストレージデバイス606は、上述の非一時的記憶媒体を備える。ストレージデバイス606としては、ハードディスクドライブ(HDD)、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、ユニバーサルシリアルバス(USB)ドライブ、またはこれらのうちの2つ以上の組み合わせが挙げられる。ストレージデバイス606は、必要に応じて、取り外し可能媒体を備えていてもよいし、取り外し可能でない(すなわち、固定)媒体を備えていてもよい。ストレージデバイス606は、コンピューティング・デバイス600の内部であってもよいし、外部であってもよい。1つまたは複数の実施形態において、ストレージデバイス606は、不揮発性の固体メモリである。他の実施形態において、ストレージデバイス606は、リードオンリーメモリ(ROM)を含む。必要に応じて、このROMは、マスクプログラムROM、プログラム可能ROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、フラッシュメモリ、またはこれらのうちの2つ以上の組み合わせであってもよい。
【0144】
I/Oインタフェース608によって、ユーザが、入力を提供し、出力を受け取り、あるいはコンピューティング・デバイス600に対してデータを転送しデータを受け取ることを可能にする。これらのI/Oインタフェース608は、マウス、キーパッドもしくはキーボード、タッチスクリーン、カメラ、光学スキャナ、ネットワーク・インタフェース、モデル、その他既知のI/Oデバイス、またはこのようなI/Oデバイス/インタフェースの組み合わせを含む。I/Oインタフェース608は、出力をユーザに提示する1つまたは複数の機器を備えていてもよく、グラフィックスエンジン、ディスプレイ(たとえば、表示画面)、1つまたは複数の出力ドライバ(たとえば、ディスプレイドライバ)、1つまたは複数の音声スピーカ、および1つまたは複数の音声ドライバが挙げられるが、これらに限定されない。特定の実施形態において、I/Oインタフェース608は、グラフィックデータをディスプレイに提供して、ユーザに提示するように構成されている。グラフィックデータは、特定の実施態様に役立ち得る1つもしくは複数のグラフィカル・ユーザ・インタフェースおよび/またはその他任意のグラフィックコンテンツを代表するものであってもよい。
【0145】
通信インタフェース610は、ハードウェア、ソフトウェア、または両者を含み得る。いかなる場合でも、通信インタフェース610は、コンピューティング・デバイスと1つもしくは複数の他のコンピューティング・デバイス600またはネットワークとの間の通信(たとえば、パケットベースの通信等)のための1つまたは複数のインタフェースを提供可能である。非限定的な一例として、通信インタフェース610としては、イーサネット(登録商標)等の有線ネットワークと連通するネットワークインタフェースコントローラ(NIC)もしくはネットワークアダプタまたはWi−Fi等の無線ネットワークと連通する無線NIC(WNIC)もしくは無線アダプタが挙げられる。
【0146】
加えて、または、代替として、通信インタフェース610は、アドホック・ネットワーク、パーソナルエリアネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの1つもしくは複数の部分、またはこれらのうちの2つ以上の組み合わせと通信を行わせる。これらネットワークのうちの1つまたは複数の1つまたは複数の部分は、有線であってもよいし、無線であってもよい。一例として、通信インタフェース610は、無線PAN(WPAN)(たとえば、Bluetooth(登録商標)WPAN等)、Wi−Fiネットワーク、Wi−MAXネットワーク、携帯電話ネットワーク(たとえば、汎欧州デジタル移動電話通信(GSM(登録商標))ネットワーク等)、他の適当な無線ネットワーク、またはこれらの組み合わせと通信を行わせる。
【0147】
加えて、通信インタフェース610は、通信さまざまな通信プロトコルを促進し得る。使用され得る通信プロトコルの例としては、限定されるものではないが、データ伝送媒体、通信デバイス、伝送制御プロトコル(「TCP」)、インターネット・プロトコル(「IP」)、ファイル転送プロトコル(「FTP」)、Telnet、Hypertext Transfer Protocol(「HTTP」)、Hypertext Transfer Protocol Secure(「HTTPS」)、セッション開始プロトコル(「SIP」)、Simple Object Access Protocol(「SOAP」)、拡張マークアップ言語(「XML」)およびその変種、簡易メール転送プロトコル(「SMTP」)、リアルタイム転送プロトコル(「RTP」)、ユーザ・データグラム・プロトコル(「UDP」)、Global System for Mobile Communications(「GSM」)技術、符号分割多元接続(「CDMA」)技術、時分割多元接続(「TDMA」)技術、ショート・メッセージ・サービス(「SMS」)、マルチメディア・メッセージ・サービス(「MMS」)、無線周波数(「RF」)シグナリング技術、Long Term Evolution(「LTE」)技術、無線通信技術、帯域内シグナリング技術および帯域外シグナリング技術、ならびに他の適切な通信ネットワークおよび技術がある。
【0148】
通信インフラ612は、コンピューティング・デバイス600の構成要素を互いに結合するハードウェア、ソフトウェア、または両者を備える。非限定的な一例として、通信インフラ612は、アクセラレイテッドグラフィックスポート(AGP)等のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、ハイパートランスポート(HT)相互接続、業界標準アーキテクチャ(ISA)バス、インフィニバンド相互接続、ロウピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺機器相互接続(PCI)バス、PCIエクスプレス(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクス標準協会ローカル(VLB)バス、その他適当なバス、またはこれらの組み合わせを含んでいてもよい。
【0149】
上述のように、システム100は、ソーシャル・ネットワーキング・システムを備える。ソーシャル・ネットワーキング・システムは、そのユーザ(人や組織等)がシステムと、および互いに対話が可能である。上述したように、システム100はソーシャル・ネットワーキング・システムを含むことができる。ソーシャル・ネットワーキング・システムによれば、そのユーザ(人または組織等)は、システムと、および互いに対話が可能である。ソーシャル・ネットワーキング・システムは、ユーザからの入力により、ユーザに関連付けられているユーザプロフィールを作成して上記ソーシャル・ネットワーキング・システムに記憶するようにしてもよい。ユーザプロフィールには、人口統計学的情報、通信チャンネル情報、およびユーザの個人的関心に関する情報を含んでいてもよい。また、ソーシャル・ネットワーキング・システムは、ユーザからの入力により、上記ユーザのソーシャル・ネットワーキング・システムの他ユーザとの関係のレコードを作成して記憶するとともに、ユーザ間の社会的対話を行わせるサービス(たとえば、壁のポスト、写真共有、オンラインカレンダーおよびイベント統合、メッセージング、ゲーム、または広告)を提供するようにしてもよい。
【0150】
また、ソーシャル・ネットワーキング・システムは、ユーザが写真および他のマルチメディア・コンテンツ・アイテム(その両方がユーザが設定したプライバシー設定に依存してソーシャル・ネットワーキング・システムの他のユーザがアクセスし得る)をユーザのプロフィールページ(典型的には「壁のポスト」または「タイムラインのポスト」として知られている)またはフォト・アルバムにポストすることを可能にする。
【0151】
図7は、ソーシャル・ネットワーキング・システムの例となるネットワーク環境700を例示する。ネットワーク環境700は、ネットワーク704によって互いに接続された、クライアント・システム706と、ソーシャル・ネットワーキング・システム702と、サードパーティ・システム708とを含む。図7は、クライアント・システム706、ソーシャル・ネットワーキング・システム702、サードパーティ・システム708、およびネットワーク704の特定の構成を例示しているが、この開示は、クライアント・システム706、ソーシャル・ネットワーキング・システム702、サードパーティ・システム708、およびネットワーク704の任意の適切な構成を企図したものである。限定としてではなく、一例として、クライアント・システム706、ソーシャル・ネットワーキング・システム702、およびサードパーティ・システム708のうちの2つ以上が、ネットワーク704をバイパスして、直接的に互いに接続されてもよい。別の例として、クライアント・システム706、ソーシャル・ネットワーキング・システム702、およびサードパーティ・システム708のうちの2つ以上が、全体的にまたは部分的に互いと物理的または論理的に共同設置されてもよい。さらに、図7は、特定の数のクライアント・システム706、ソーシャル・ネットワーキング・システム702、サードパーティ・システム708、およびネットワーク704を例示しているが、この開示は、任意の適切な数のクライアント・システム706、ソーシャル・ネットワーキング・システム702、サードパーティ・システム708、およびネットワーク704を企図したものである。限定としてではなく、一例として、ネットワーク環境700は、複数のクライアント・システム706と、ソーシャル・ネットワーキング・システム702と、サードパーティ・システム708と、ネットワーク704とを含んでよい。
【0152】
本開示は、任意の適切なネットワーク704を企図したものである。限定としてではなく、一例として、ネットワーク704の1つまたは複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク(VPN)、ローカル・エリア・ネットワーク(LAN)、無線LAN(WLAN)、ワイド・エリア・ネットワーク(WAN)、無線WAN(WWAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、セルラー電話ネットワーク、またはこれらのうちの2つ以上の組み合わせを含んでよい。ネットワーク704は、1つまたは複数のネットワーク704を含み得る。
【0153】
リンクは、クライアント・システム706、ソーシャル・ネットワーキング・システム702、およびサードパーティ・システム708を通信ネットワーク704に対して、または互いに対して接続し得る。本開示は、任意の適切なリンクを企図したものである。特定の実施形態では、1つまたは複数のリンクとしては、1つまたは複数のワイヤライン・リンク(たとえば、デジタル加入者線(DSL)またはData Over Cable Service Interface Specification(DOCSIS)など)、無線リンク(たとえば、Wi−FiまたはWorldwide Interoperability for Microwave Access(WiMAX)など)、または光リンク(たとえば、同期型光ネットワーク(SONET)または同期デジタル・ハイアラーキ(SDH)など)がある。特定の実施形態では、1つまたは複数のリンクは各々、アドホック・ネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部分、PSTNの一部分、セルラー技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク、または2つ以上のそのようなリンクの組み合わせを含む。リンクは、必ずしもネットワーク環境700全体を通じて同じである必要はない。1つまたは複数の第1のリンクは、1つまたは複数の点において、1つまたは複数の第2のリンクと異なってよい。
【0154】
特定の実施形態では、クライアント・システム706は、ハードウェア、ソフトウェア、または埋め込まれた論理構成要素、または2つ以上のそのような構成要素の組み合わせを含み、クライアント・システム706によって実施またはサポートされる適切な機能を実行することが可能な電子デバイスであってよい。限定としてではなく、一例として、クライアント・システム706は、図6に関して上記したコンピューティング・デバイスのいずれかを含む。クライアント・システム706は、クライアント・システム706におけるネットワーク・ユーザがネットワーク704にアクセスすることを可能にし得る。クライアント・システム706は、そのユーザが他のクライアント・システム706における他のユーザと通信することを可能にし得る。
【0155】
特定の実施形態では、クライアント・システム706は、MICROSOFT INTERNET EXPLORER、GOOGLE CHROME、またはMOZILLA FIREFOXなどのウェブ・ブラウザ932を含んでよく、1つまたは複数のアドオン、プラグイン、またはツールバーもしくはYAHOOツールバーなどの他の拡張機能を有してもよい。クライアント・システム706におけるユーザは、ユニフォーム・リソース・ロケータ(URL)またはウェブ・ブラウザを特定のサーバ(サーバ、またはサードパーティ・システム708に関連付けられているサーバなど)に対して宛てる他のアドレスを入力してよく、ウェブ・ブラウザは、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、HTTP要求をサーバに対して通信し得る。サーバは、HTTP要求を受け入れ、HTTP要求に応答して1つまたは複数のハイパーテキスト・マークアップ言語(HTML)ファイルをクライアント・システム706に対して通信し得る。クライアント・システム706は、ユーザに対する提示のために、サーバからのHTMLファイルに基づいてウェブページをレンダリングし得る。本開示は、任意の適切なウェブページ・ファイルを企図したものである。限定としてではなく、一例として、ウェブページは、特定のニーズに従って、HTMLファイル、拡張可能ハイパーテキスト・マークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルからレンダリングし得る。そのようなページはまた、たとえば、限定されるものではないが、JAVASCRIPT(登録商標)、JAVA(登録商標)、MICROSOFT SILVERLIGHTで記述されたスクリプトなどのスクリプト、AJAX(非同期JAVASCRIPTおよびXML)などのマークアップ言語とスクリプトの組み合わせなどを実行し得る。本明細書では、ウェブページに対する参照は、適切な場合、1つまたは複数の対応するウェブページ・ファイル(ブラウザがウェブページをレンダリングするために使用し得る)を包含し、逆も同様である。
【0156】
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、オンライン・ソーシャル・ネットワークをホストする、ネットワークアドレス指定可能なコンピューティング・システムであってよい。ソーシャル・ネットワーキング・システム702は、たとえばユーザプロファイル・データ、コンセプトプロファイル・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関係する他の適切なデータなどのソーシャルネットワーキング・データを生成、記憶、受信、および送信し得る。ソーシャル・ネットワーキング・システム702は、直接的に、またはネットワーク704を介して、のどちらかで、ネットワーク環境700の他の構成要素によってアクセスされ得る。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、1つまたは複数のサーバを含み得る。各サーバは、単体サーバであってもよいし、複数のコンピュータまたは複数のデータセンタにまたがる分散サーバであってもよい。サーバは、たとえば限定されるものではないが、ウェブ・サーバ、ニュース・サーバ、メール・サーバ、メッセージ・サーバ、広告サーバ、ファイル・サーバ、アプリケーション・サーバ、交換サーバ、データベース・サーバ、プロキシ・サーバ、本明細書で説明される機能もしくはプロセスを実行するのに適した別のサーバ、またはそれらの任意の組み合わせなどの、さまざまなタイプであってよい。特定の実施形態では、各サーバは、ハードウェア、ソフトウェア、または埋め込まれた論理構成要素、またはサーバによって実施もしくはサポートされる適切な機能を実行するための2つ以上そのような構成要素の組み合わせを含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、1つまたは複数のデータ・ストアを含み得る。データ・ストアは、さまざまなタイプの情報を記憶するために使用され得る。特定の実施形態では、データ・ストア内に記憶される情報は、具体的なデータ構造に従って編成され得る。特定の実施形態では、各データ・ストアは、リレーショナル・データベース、カラムナ・データベース、相関データベース、または他の適切なデータベースであってよい。本開示は特定のタイプのデータベースを説明または例示しているが、本開示は、任意の適切なタイプのデータベースを企図するものである。特定の実施形態は、クライアント・システム706、ソーシャル・ネットワーキング・システム702、またはサードパーティ・システム708がデータ・ストア内に記憶された情報を管理する、取り出す、修正する、追加するか、または削除することを可能にするインタフェースを提供し得る。
【0157】
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、1つまたは複数のデータ・ストア内に1つまたは複数のソーシャル・グラフを記憶し得る。特定の実施形態では、ソーシャル・グラフは、複数のユーザ・ノード(各々が特定のユーザに対応する)または複数のコンセプトノード(各々が特定のコンセプトに対応する)を含み得る複数のノードと、ノードを接続する複数のエッジを含み得る。ソーシャル・ネットワーキング・システム702は、オンライン・ソーシャル・ネットワークのユーザに、他のユーザと通信および対話できることを提供し得る。特定の実施形態では、ユーザは、ソーシャル・ネットワーキング・システム702を介してオンライン・ソーシャル・ネットワークに加わり、次いで、ユーザが接続されたいソーシャル・ネットワーキング・システム702の何人かの他のユーザに対して接続(たとえば、関係)を追加し得る。本明細書では、「友人」という用語は、ユーザがソーシャル・ネットワーキング・システム702を介して接続、関連付け、または関係を形成した、ソーシャル・ネットワーキング・システム702の他の任意のユーザを指し得る。
【0158】
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、ソーシャル・ネットワーキング・システム702によってサポートされるさまざまなタイプのアイテムまたはオブジェクトに対してアクションをとることをユーザに提供し得る。限定としてではなく、一例として、アイテムおよびオブジェクトは、ソーシャル・ネットワーキング・システム702のユーザが属し得るグループもしくはソーシャル・ネットワーク、ユーザが興味を抱き得るイベントもしくはカレンダ記載事項、ユーザが使用し得るコンピュータベースのアプリケーション、ユーザがサービスを介してアイテムを購入もしくは販売し得る取引、ユーザが実行し得る広告との対話、または他の適切なアイテムもしくはオブジェクトを含み得る。ユーザは、ソーシャル・ネットワーキング・システム702内で、またはサードパーティ・システム708の外部システムによって表されることが可能なものと対話し得、サードパーティ・システム708は、ソーシャル・ネットワーキング・システム702とは別個であり、ネットワーク704を介してソーシャル・ネットワーキング・システム702に結合される。
【0159】
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、さまざまなエンティティをリンクすることが可能であり得る。限定としてではなく、一例として、ソーシャル・ネットワーキング・システム702は、ユーザが、互いと対話し、ならびにサードパーティ・システム708もしくは他のエンティティからコンテンツを受信するか、またはユーザが、アプリケーション・プログラミング・インタフェース(API)もしくは他の通信チャネルを通して、これらのエンティティと対話できることを可能にし得る。
【0160】
特定の実施形態では、サードパーティ・システム708は、1つもしくは複数のタイプのサーバ、1つもしくは複数のデータ・ストア、限定されるものではないがAPIを含む1つもしくは複数のインタフェース、1つもしくは複数のウェブ・サービス、1つもしくは複数のコンテンツ・ソース、1つもしくは複数のネットワーク、または、たとえばサーバが通信し得る他の任意の適切な構成要素であり得る。サードパーティ・システム708は、ソーシャル・ネットワーキング・システム702を運用するエンティティからの異なるエンティティによって運用され得る。しかしながら、特定の実施形態では、ソーシャル・ネットワーキング・システム702およびサードパーティ・システム708は、ソーシャル・ネットワーキング・システム702またはサードパーティ・システム708のユーザにソーシャルネットワーキング・サービスを提供するために互いに運用し得る。この意味で、ソーシャル・ネットワーキング・システム702は、サードパーティ・システム708などの他のシステムがインターネット全体にわたってソーシャルネットワーキング・サービスおよび機能をユーザに対して提供するために使用し得るプラットフォームすなわちバックボーンを提供し得る。
【0161】
特定の実施形態では、サードパーティ・システム708は、サードパーティ・コンテンツ・オブジェクト・プロバイダを含み得る。サードパーティ・コンテンツ・オブジェクト・プロバイダは、クライアント・システム706に対して通信され得るコンテンツ・オブジェクトの1つまたは複数のソースを含み得る。限定としてではなく、一例として、コンテンツ・オブジェクトは、たとえば、映画の上映時間、映画のレビュー、レストランのレビュー、レストランのメニュー、製品情報およびレビュー、または他の適切な情報などの、ユーザの興味を引く物事またはアクティビティに関する情報を含み得る。限定としてではなく、別の例として、コンテンツ・オブジェクトは、クーポン、割引チケット、商品券、または他の適切な報償となるオブジェクトなどの、報償となるコンテンツ・オブジェクトを含み得る。
【0162】
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、ソーシャル・ネットワーキング・システム702とのユーザの対話を向上させ得る、ユーザにより生成されたコンテンツ・オブジェクトも含む。ユーザにより生成されたコンテンツは、ユーザがソーシャル・ネットワーキング・システム702に対して追加、アップロード、送信、または「ポストする」ものを含み得る。限定としてではなく、一例として、ユーザが、クライアント・システム706からソーシャル・ネットワーキング・システム702に対してポストを通信する。ポストとしては、ステータス更新もしくは他のテキスト・データ、ロケーション情報、フォト、映像、リンク、音楽、または他の類似のデータもしくはメディアなどのデータがあり得る。コンテンツはまた、ニュースフィードまたはストリームなどの「通信チャネル」を介して、サードパーティによってソーシャル・ネットワーキング・システム702に対して追加され得る。
【0163】
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、さまざまなサーバと、サブシステムと、プログラムと、モジュールと、ログと、データ・ストアとを含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、ウェブ・サーバ、アクション・ロガー、API要求サーバ、関連性およびランキング・エンジン、コンテンツ・オブジェクト分類器、通知コントローラ、アクション・ログ、サードパーティコンテンツ・オブジェクト公開(exposure)ログ、推測モジュール、許可/プライバシー・サーバ、検索モジュール、広告ターゲティング・モジュール、ユーザインタフェース・モジュール、ユーザプロファイル・ストア、接続ストア、サードパーティ・コンテンツ・ストア、またはロケーション・ストアのうちの1つまたは複数を含んでよい。ソーシャル・ネットワーキング・システム702は、ネットワーク・インタフェース、セキュリティ機構、ロード・バランサ、フェイルオーバ・サーバ、管理およびネットワーク運用コンソール、他の適切な構成要素、またはそれらの任意の適切な組み合わせなどの、適切な構成要素も含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、ユーザ・プロファイルを記憶するための1つまたは複数のユーザプロファイル・ストアを含んでよい。ユーザ・プロファイルは、たとえば、経歴情報、人口統計学的情報、行動情報、社会情報、または職歴、学歴、趣味もしくは好み、興味、親密度、もしくはロケーションなどの他のタイプの記述情報を含み得る。興味情報は、1つまたは複数のカテゴリに関係する興味を含み得る。カテゴリは、汎用的であってもよいし、具体的であってもよい。限定としてではなく、一例として、ユーザが、靴のブランドについての記事に対して「いいね」を表明した場合、そのカテゴリはブランドであってもよいし、「靴」または「衣類」という汎用的なカテゴリであってもよい。接続ストアは、ユーザについての接続情報を記憶するために使用され得る。接続情報は、類似もしくは共通の職歴、グループ会員資格、趣味、学歴を有するか、または、いかなる形であれ関係する、もしくは共通属性を共有するユーザを示してもよい。接続情報は、異なるユーザとコンテンツ(内部と外部の両方)との間の、ユーザにより定義された接続も含み得る。ウェブ・サーバは、ネットワーク704を介して1つもしくは複数のクライアント・システム706または1つもしくは複数のサードパーティ・システム708に対してソーシャル・ネットワーキング・システム702をリンクするために使用され得る。ウェブ・サーバは、ソーシャル・ネットワーキング・システム702と1つまたは複数のクライアント・システム706との間でメッセージを受信およびルーティングするためのメール・サーバまたは他のメッセージング機能を含んでよい。API要求サーバは、サードパーティ・システム708が、1つまたは複数のAPIを呼び出すことによって、ソーシャル・ネットワーキング・システム702からの情報にアクセスすることを可能にし得る。アクション・ロガーは、ソーシャル・ネットワーキング・システム702上またはそれ以外の場所でのユーザのアクションについてウェブ・サーバから通信を受信するために使用され得る。アクション・ログとともに、サードパーティコンテンツ・オブジェクトに対するユーザ公開のサードパーティコンテンツオブジェクト・ログが維持され得る。通知コントローラは、コンテンツ・オブジェクトに関する情報をクライアント・システム706に対して提供し得る。情報は、通知としてクライアント・システム706に対してプッシュされてもよいし、情報は、クライアント・システム706から受信された要求に応答してクライアント・システム706からプルされてもよい。許可サーバは、ソーシャル・ネットワーキング・システム702のユーザの1つまたは複数のプライバシー設定を強制するために使用され得る。ユーザのプライバシー設定は、ユーザに関連付けられている特定の情報がどのように共有可能であるかを決定する。許可サーバは、ユーザが、たとえば、適切なプライバシー設定を設定することなどによって、アクションをソーシャル・ネットワーキング・システム702によってログさせること、または他のシステム(たとえば、サードパーティ・システム708)とともに共有させることに加わる、または加わらない(opt in to or opt out of)ことを可能にする。サードパーティコンテンツオブジェクト・ストアは、サードパーティ・システム708などのサードパーティから受信されたコンテンツ・オブジェクトを記憶するために使用され得る。ロケーション・ストアは、ユーザに関連付けられているクライアント・システム706から受信されたロケーション情報を記憶するために使用され得る。広告価格設定モジュールは、社会情報、現在の時間、ロケーション情報、または他の適切な情報を組み合わせて、通知の形で関係のある広告をユーザに対して提供し得る。
【0164】
図8は、例となるソーシャル・グラフ800を例示する。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、1つまたは複数のデータ・ストア内に1つまたは複数のソーシャル・グラフ800を記憶し得る。特定の実施形態では、ソーシャル・グラフ800は、複数のユーザ・ノード802または複数のコンセプトノード804を含み得る複数のノードと、ノードを接続する複数のエッジ806とを含み得る。図8に例示される例となるソーシャル・グラフ800は、教説的な目的で、2次元の視覚的なマップ表現で示されている。特定の実施形態では、ソーシャル・ネットワーキング・システム702、クライアント・システム706、またはサードパーティ・システム708は、適切なアプリケーションのためのソーシャル・グラフ800および関係するソーシャル・グラフ情報にアクセスし得る。ソーシャル・グラフ800のノードおよびエッジは、たとえば、データ・ストア(ソーシャル・グラフ・データベースなど)内に、データ・オブジェクトとして記憶され得る。そのようなデータ・ストアは、ソーシャル・グラフ800のノードまたはエッジの1つまたは複数の検索可能またはクエリ可能なインデックスを含み得る。
【0165】
特定の実施形態では、ユーザ・ノード802は、ソーシャル・ネットワーキング・システム702のユーザに対応し得る。限定としてではなく、一例として、ユーザは、ソーシャル・ネットワーキング・システム702と、またはその上で対話または通信する、個人(人間ユーザ)、エンティティ(たとえば、企業、会社、もしくはサードパーティ・アプリケーション)、または(たとえば、個人もしくはエンティティの)グループであってよい。特定の実施形態では、ユーザがソーシャル・ネットワーキング・システム702に口座を登録するとき、ソーシャル・ネットワーキング・システム702は、ユーザに対応するユーザ・ノード802を作成し、1つまたは複数のデータ・ストア内にユーザ・ノード802を記憶し得る。本明細書で説明されるユーザおよびユーザ・ノード802は、適切な場合には、登録されたユーザと、登録されたユーザに関連付けられているユーザ・ノード802を指し得る。加えて、または代替として、本明細書で説明されるユーザおよびユーザ・ノード802は、適切な場合には、ソーシャル・ネットワーキング・システム702に登録されていないユーザを指し得る。特定の実施形態では、ユーザ・ノード802は、ユーザによって提供される情報、またはソーシャル・ネットワーキング・システム702を含むさまざまなシステムによって収集された情報に関連付けられ得る。限定としてではなく、一例として、ユーザは、自分の名前、プロファイル・ピクチャ、連絡先情報、誕生日、性別、配偶者の有無、家族構成、職業、学歴、好み、興味、または他の人口統計学的情報を提供し得る。ソーシャル・グラフの各ユーザ・ノードは、対応するウェブページ(典型的にはプロファイル・ページとして知られている)を有してもよい。ソーシャル・ネットワーキング・システムは、ユーザ名を含むリクエストに応答して、ユーザ名に対応するユーザ・ノードにアクセスし、名前、プロフィール画像、およびユーザに関連する他の情報を含むプロファイル・ページを構築することができる。第1のユーザのプロフィールページは、第1のユーザによる1つまたは複数のプライバシー設定および第1のユーザと第2のユーザとの間の関係に基づいて、第1のユーザの情報のすべてまたは一部を第2のユーザに表示することができる。
【0166】
特定の実施形態では、コンセプトノード804はコンセプトに対応し得る。限定としてではなく、一例として、コンセプトは、場所(たとえば、映画館、レストラン、ランドマーク、もしくは都市など)、ウェブサイト(たとえば、ソーシャル・ネットワーク・システム802に関連付けられているウェブサイト、もしくはウェブアプリケーション・サーバに関連付けられているサード・パーティ・ウェブサイトなど)、エンティティ(たとえば、人物、会社、グループ、スポーツ・チーム、もしくは有名人など)、ソーシャル・ネットワーキング・システム702の中もしくはウェブアプリケーション・サーバなどの外部サーバ上に配置され得るリソース(たとえば、オーディオ・ファイル、映像ファイル、デジタル・フォト、テキスト・ファイル、構造化文書、もしくはアプリケーションなど)、物的財産もしくは知的財産(たとえば、彫刻、絵画、映画、ゲーム、歌、アイデア、写真、または著書など)、ゲーム、アクティビティ、アイデア、もしくは理論、別の適切なコンセプト、または2つ以上のそのようなコンセプトに対応し得る。コンセプトノード804は、ユーザによって提供されるコンセプトの情報、またはソーシャル・ネットワーキング・システム702を含むさまざまなシステムによって収集された情報に関連付けられ得る。限定としてではなく、一例として、コンセプトの情報としては、名前もしくはタイトル、1つもしくは複数の画像(たとえば、本のカバー・ページの画像)、ロケーション(たとえば、住所もしくは地理的ロケーション)、ウェブサイト(URLに関連付けられ得る)、連絡先情報(たとえば、電話番号もしくは電子メール・アドレス)、他の適切なコンセプト情報、またはそのような情報の任意の適切な組み合わせがあり得る。特定の実施形態では、コンセプトノード804は、コンセプトノード804に関連付けられている情報に対応する1つまたは複数のデータ・オブジェクトに関連付けられ得る。特定の実施形態では、コンセプトノード804は、1つまたは複数のウェブページに対応し得る。
【0167】
特定の実施形態では、ソーシャル・グラフ800内のノードは、ウェブページ(「プロファイル・ページ」と呼ばれることがある)を表してもよいし、これによって表されてもよい。プロファイル・ページは、ソーシャル・ネットワーキング・システム702によってホストされてもよいし、これに対してアクセス可能であってもよい。プロファイル・ページはまた、サードパーティ・サーバ708に関連付けられているサード・パーティ・ウェブサイト上にホストされ得る。限定としてではなく、一例として、特定の外部のウェブページに対応するプロファイル・ページは特定の外部ウェブページであってよく、プロファイル・ページは特定のコンセプトノード804に対応し得る。プロファイル・ページは、他のユーザのすべてまたは選択されたサブセットによって閲覧することができてよい。限定としてではなく、一例として、ユーザ・ノード802は、対応するユーザがコンテンツを追加し、発表をし、または別のやり方で自分を表現し得る対応するユーザプロファイル・ページを有し得る。限定としてではなく、別の例として、コンセプトノード804は、特にコンセプトノード804に対応するコンセプトに関係して1つまたは複数のユーザがコンテンツを追加し、発表をし、または別のやり方で自分を表現し得る対応するコンセプトプロファイル・ページを有し得る。
【0168】
特定の実施形態では、コンセプトノード804は、サードパーティ・システム708によってホストされるサードパーティ・ウェブページまたはリソースを表し得る。サードパーティ・ウェブページまたはリソースは、要素の中でもとりわけ、アクションまたはアクティビティを表すコンテンツ、選択可能なアイコンもしくは他のアイコン、または他の対話可能なオブジェクト(たとえば、JavaScriptコード、AJAXコード、またはPHPコードで実装され得る)を含んでよい。限定としてではなく、一例として、サードパーティ・ウェブページは、「いいね」、「チェックイン」、「食べる」、「推奨」、または別の適切なアクションもしくはアクティビティなどの選択可能なアイコンを含み得る。サードパーティ・ウェブページを閲覧するユーザは、アイコンのうちの1つ(たとえば、「食べる」)を選択し、クライアント・システム706に、ユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム702に対して送信させることによって、アクションを実行し得る。メッセージに応答して、ソーシャル・ネットワーキング・システム702は、ユーザに対応するユーザ・ノード802とサードパーティ・ウェブページまたはリソースに対応するコンセプトノード804との間にエッジ(たとえば、「食べる」エッジ)を作成し、1つまたは複数のデータ・ストア内にエッジ806を記憶し得る。
【0169】
特定の実施形態では、ソーシャル・グラフ800内のノードのペアは、1つまたは複数のエッジ806によって互いに接続され得る。ノードのペアを接続するエッジ806は、ノードのペアの間の関係を表し得る。特定の実施形態では、エッジ806は、ノードのペアの間の関係に対応する1つまたは複数のデータ・オブジェクトまたは属性を含み得るか、またはこれを表し得る。限定としてではなく、一例として、第1のユーザは、第2のユーザが第1のユーザの「友人」であることを示し得る。このインディケーションに応答して、ソーシャル・ネットワーキング・システム702は、第2のユーザに対して「友人要求」を送信し得る。第2のユーザが「友人要求」を確認する場合、ソーシャル・ネットワーキング・システム702は、ソーシャル・グラフ800内の第1のユーザのユーザ・ノード802を第2のユーザのユーザ・ノード802に対して接続するエッジ806を作成し、エッジ806をソーシャル・グラフ情報としてデータ・ストアのうちの1つまたは複数に記憶し得る。図8の例では、ソーシャル・グラフ800は、ユーザ「A」とユーザ「B」のユーザ・ノード802間の友人関係を示すエッジ806と、ユーザ「C」とユーザ「B」のユーザ・ノード802間の友人関係を示すエッジとを含む。本開示は、特定のユーザ・ノード802を接続する、特定の属性を有する特定のエッジ806を説明または例示しているが、本開示は、ユーザ・ノード802を接続する、任意の適切な属性を有する任意の適切なエッジ806を企図するものである。限定としてではなく、一例として、エッジ806は、友人関係、家族関係、ビジネスすなわち雇用関係、ファン関係、フォロワー関係、ビジター関係、購読者関係、上下関係、相互関係、非相互関係、別の適切なタイプの関係、または2つ以上のそのような関係を表し得る。さらに、本開示は一般に、ノードを、接続されていると説明しているが、本開示は、ユーザまたはコンセプトも、接続されていると説明する。本明細書では、接続されているユーザまたはコンセプトへの参照は、適切な場合には、ソーシャル・グラフ800内で1つまたは複数のエッジ806によって接続されているそれらのユーザまたはコンセプトに対応するノードに及ぶ。
【0170】
特定の実施形態では、ユーザ・ノード802とコンセプトノード804との間のエッジ806は、コンセプトノード804に関連付けられているコンセプトのためにユーザ・ノード802に関連付けられているユーザによって実行される特定のアクションまたはアクティビティを表し得る。限定としてではなく、一例として、図8に例示されるように、ユーザは、コンセプトに対して「いいね」を表明し、「通学した」、「プレイした」、「聞いた」、「料理した」、「働いた」、またはコンセプトを「見た」とする。その各々は、エッジ・タイプまたはサブタイプに対応し得る。コンセプトノード804に対応するコンセプトプロファイル・ページは、たとえば、選択可能な「チェックイン」アイコン(たとえば、クリック可能な「チェックイン」アイコンなど)または選択可能な「お気に入りに追加」アイコンを含んでよい。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャル・ネットワーキング・システム702は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジまたは「チェックイン」エッジを作成してもよい。限定としてではなく、別の例として、ユーザ(ユーザ「C」)は、特定のアプリケーション(オンライン音楽アプリケーションであるSPOTIFY)を使用して特定の歌(「ランブル・オン」)を聞くことがある。この場合、ソーシャル・ネットワーキング・システム702は、ユーザがその歌を聞き、そのアプリケーションを使用したことを示すため、にユーザに対応するユーザ・ノード802と歌およびアプリケーションに対応するコンセプトノード804との間に「聞いた」エッジ806および「使用した」エッジ(図8に例示される)を作成し得る。さらに、ソーシャル・ネットワーキング・システム702は、特定の歌が特定のアプリケーションによってプレイ(再生)されたことを示すために、歌およびアプリケーションに対応するコンセプトノード804間に「プレイした」エッジ806(図8に例示される)を作成し得る。この場合、「プレイした」エッジ806は、外部オーディオ・ファイル(歌「イマジン」)に対して外部アプリケーション(SPOTIFY)によって実行されるアクションに対応する。本開示は、ユーザ・ノード802およびコンセプトノード804を接続する、特定の属性を有する特定のエッジ806を説明しているが、本開示は、ユーザ・ノード802およびコンセプトノード804を接続する、任意の適切な属性を有する任意の適切なエッジ806を企図するものである。そのうえ、本開示は、単一の関係を表す、ユーザ・ノード802とコンセプトノード804との間のエッジを説明しているが、本開示は、1つまたは複数の関係を表す、ユーザ・ノード802とコンセプトノード804との間のエッジを企図する。限定としてではなく、一例として、エッジ806は、ユーザが特定のコンセプトに対して「いいね」を表明したことと、特定のコンセプトにおいて使用したことの両方を表し得る。代替的に、別のエッジ806は、ユーザ・ノード802とコンセプトノード804との間の各タイプの関係(または単一の関係の倍数)を表し得る(図8では、ユーザ「E」のユーザ・ノード802と「SPOTIFY」のコンセプトノード804との間に例示される)。
【0171】
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、ソーシャル・グラフ800内のユーザ・ノード802とコンセプトノード804との間にエッジ806を作成し得る。限定としてではなく、一例として、(たとえば、ユーザのクライアント・システム706によってホストされるウェブ・ブラウザまたは特殊目的アプリケーションを使用することなどによって)コンセプトプロファイル・ページを閲覧するユーザは、自分はコンセプトノード804によって表されるコンセプトに対して「いいね」を表明したことを、「いいね」アイコンをクリックまたは選択することによって示し得、それは、ユーザはコンセプトプロファイル・ページに関連付けられているコンセプトに対して「いいね」を表明したことを示すメッセージをソーシャル・ネットワーキング・システム702に対して送信することをユーザのクライアント・システム706に行わせ得る。メッセージに応答して、ソーシャル・ネットワーキング・システム702は、ユーザとコンセプトノード804との間の「いいね」エッジ806によって例示されるように、ユーザに関連付けられているユーザ・ノード802とコンセプトノード804との間にエッジ806を作成し得る。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、1つまたは複数のデータ・ストアにエッジ806を記憶し得る。特定の実施形態では、エッジ806は、特定のユーザ・アクションに応答して、ソーシャル・ネットワーキング・システム702によって自動的に形成され得る。限定としてではなく、一例として、第1のユーザがピクチャをアップロードする、映画を見る、または歌を聞く場合、エッジ806は、第1のユーザに対応するユーザ・ノード802とそれらのコンセプトに対応するコンセプトノード804との間に形成され得る。本開示は、特定の様式で特定のエッジ806を形成することを説明しているが、本開示は、任意の適切な様式で任意の適切なエッジ806を形成することを企図するものである。
【0172】
特定の実施形態では、広告は、テキスト(HTMLリンクであってよい)、1つもしくは複数の画像(HTMLリンクであってよい)、1つもしくは複数の映像、オーディオ、1つもしくは複数のADOBE FLASHファイル、これらの適切な組み合わせ、または1つもしくは複数のウェブページ上で、1つもしくは複数の電子メール内で、もしくはユーザによって要求された検索結果に関係して、提示される任意の適切なデジタル・フォーマットの他の任意の適切な広告であってよい。加えて、または代替として、広告は、1つまたは複数のスポンサー付きストーリー(たとえば、ソーシャル・ネットワーキング・システム702上のニュースフィードまたはティッカー・アイテム)である。スポンサー付きストーリーは、たとえば、ソーシャル・アクションを、ユーザのプロファイル・ページまたは他のページの所定のエリア内に提示させる、広告主に関連付けられている追加の情報とともに提示させる、他のユーザのニュースフィードもしくはティッカー内で衝突させるもしくは別のやり方で目立たせる、または別のやり方でプロモーションさせることによって広告主がプロモーションする、ユーザによるソーシャル・アクション(ページに対して「いいね」を表明する、ページ上のポストに対して「いいね」を表明するもしくはコメントする、ページに関連付けられているイベントの出欠を返事する、ページ上でポストされた質問に関してポストする、ある場所にチェックインする、アプリケーションを使用するもしくはゲームをするか、またはウェブサイトを「リンク」もしくは共有するなど)であってよい。広告主は、ソーシャル・アクションをプロモーションさせるために支払うことがある。限定としてではなく、一例として、広告は検索結果ページの検索結果の間に含まれてよく、そこでは、スポンサー付きコンテンツは、スポンサー付きでないコンテンツよりもプロモーションされる。
【0173】
特定の実施形態では、広告は、ソーシャル・ネットワーキング・システム・ウェブページ、サードパーティ・ウェブページ、または他のページ内での表示のために要求され得る。広告は、ページの上部のバナー・エリア内、ページの側部のカラム内、ページのGUI内、ポップアップ・ウィンドウ内、ドロップダウン・メニュー内、ページの入力フィールド内、ページのコンテンツの上部の上、またはページに関する他の場所などの、ページの専用部分内に表示され得る。加えて、または代替として、広告はアプリケーション内に表示され得る。広告は、専用ページ内に表示され、ユーザに、ユーザがページにアクセスするか、またはアプリケーションを利用する前に広告と対話するか、またはこれを見ることを要求し得る。ユーザは、たとえば、ウェブ・ブラウザを通して広告を閲覧してもよい。
【0174】
ユーザは、任意の適切な様式で広告と対話してもよい。ユーザは、広告をクリックしてもよいし、または別のやり方で広告を選択してもよい。広告を選択することによって、ユーザは、広告に関連付けられているページ(または、ユーザによって使用されているブラウザもしくは他のアプリケーション)に対して向けられ得る。広告に関連付けられているページでは、ユーザは、広告に関連付けられている製品もしくはサービスを購入する、広告に関連付けられている情報を受信するか、または広告に関連付けられているニュースレターを購読するなどの、追加のアクションをとり得る。オーディオまたは映像を有する広告は、(「プレイ・ボタン」などの)広告の構成要素を選択することによってプレイされ得る。代替的に、広告を選択することによって、ソーシャル・ネットワーキング・システム702は、ユーザの特定のアクションを実行または修正し得る。
【0175】
広告は、ユーザが対話し得るソーシャル・ネットワーキング・システム機能も含み得る。限定としてではなく、一例として、広告は、ユーザが、支持に関連付けられているアイコンまたはリンクを選択することによって広告に対して「いいね」を表明するか、または別のやり方で広告を支持することを可能にし得る。限定としてではなく、別の例として、広告は、ユーザが、広告主に関連するコンテンツを(たとえば、クエリを実行することによって)検索することを可能にし得る。同様に、ユーザは、別のユーザと(たとえば、ソーシャル・ネットワーキング・システム702を通して)広告を共有し得、または広告に関連付けられているイベントの出欠を(たとえば、ソーシャル・ネットワーキング・システム702を通して)返事し得る。加えて、または代替として、広告は、ユーザに対して向けられたソーシャル・ネットワーキング・システム・コンテキストを含み得る。限定としてではなく、一例として、広告は、広告の主題に関連付けられているアクションをとった、ソーシャル・ネットワーキング・システム702内のユーザの友人についての情報を表示し得る。
【0176】
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、互いに対するさまざまなソーシャル・グラフ・エンティティのソーシャル・グラフ親密度(本明細書では、「親密度」と呼ばれることがある)を決定し得る。親密度は、ユーザ、コンセプト、コンテンツ、アクション、広告、オンライン・ソーシャル・ネットワークに関連付けられている他のオブジェクト、またはそれらの任意の適切な組み合わせなどの、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強さまたは興味のレベルを表し得る。親密度は、サードパーティ・システム708または他の適切なシステムに関連付けられているオブジェクトに対しても決定され得る。各ユーザ、主題、またはコンテンツのタイプのためのソーシャル・グラフ・エンティティの全体的な親密度が確立され得る。全体的な親密度は、ソーシャル・グラフ・エンティティに関連付けられているアクションまたは関係の継続モニタリングに基づいて変化し得る。本開示は、特定の様式で特定の親密度を決定することを説明しているが、本開示は、任意の適切な様式で任意の適切な親密度を決定することを企図している。
【0177】
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、親密度係数(本明細書では、「係数」と呼ばれることがある)を使用してソーシャル・グラフ親密度を測定または定量化し得る。係数は、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強さを表すまたは定量化し得る。係数は、アクションにおけるユーザの興味に基づいてユーザが特定のアクションを実行する予測確率を測定する確率または機能も表し得る。このようにして、ユーザの将来のアクションは、ユーザの前のアクションに基づいて予測され得、係数は、少なくとも部分的にユーザのアクションの履歴が計算され得る。係数は、任意の数のアクションを予測するために使用され得、アクションは、オンライン・ソーシャル・ネットワーク内であってもよいし、オンライン・ソーシャル・ネットワークの外部であってもよい。限定としてではなく、一例として、これらのアクションは、メッセージを送信すること、コンテンツをポストすること、もしくはコンテンツに対してコメントすることなどのさまざまなタイプの通信、プロファイル・ページ、メディア、もしくは他の適切なコンテンツにアクセスもしくは閲覧するなどのさまざまなタイプの観察アクション、同じグループ内にある、同じ写真でタグ付けされている、同じロケーションにチェックインした、もしくは同じイベントに出席したなどの2つ以上のソーシャル・グラフ・エンティティについてのさまざまなタイプの一致情報、または他の適切なアクションを含み得る。本開示は、特定の様式で親密度を測定することを説明しているが、本開示は、任意の適切な様式で親密度を測定することを企図している。
【0178】
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、さまざまな因子を使用して係数を計算し得る。これらの因子としては、たとえば、ユーザ・アクション、オブジェクト間の関係のタイプ、ロケーション情報、他の適切な因子、またはそれらの任意の組み合わせがあり得る。特定の実施形態では、異なる因子は、係数を計算するとき、異なるように重み付けされ得る。各因子の重みは静的であってもよいし、重みは、たとえば、ユーザ、関係のタイプ、アクションのタイプ、ユーザのロケーションなどに応じて変化してもよい。因子のレーティングは、ユーザの全体的係数を決定するための重みに応じて組み合わされ得る。限定としてではなく、一例として、特定のユーザ・アクションは、レーティングと重みの両方に対して割り当てられてよく、特定のユーザ・アクションに関連付けられている関係は、レーティングおよび相関重みが割り当てられる(たとえば、そのため、重みは合計100%になる)。特定のオブジェクトに対するユーザの係数を計算するために、ユーザのアクションに対して割り当てられたレーティングは、たとえば、全体的係数の60%を備えることがあり、ユーザとオブジェクトとの間の関係は全体的係数の40%を備えることがある。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、たとえば、情報がアクセスされてからの時間、減衰因子、アクセスの頻度、情報との関係もしくは情報がアクセスされたオブジェクトとの関係、オブジェクトに対して接続されたソーシャル・グラフ・エンティティとの関係、ユーザ・アクションの短期もしくは長期の平均、ユーザ・フィードバック、他の適切な変数、またはそれらの任意の組み合わせなどの、係数を計算するために使用されるさまざまな因子に対する重みを決定するとき、さまざまな変数を考慮し得る。限定としてではなく、一例として、係数は、係数を計算するとき、アクションが最近であればあるほど関連度が大きくなるように、特定のアクションによって提供される信号の強さを時間とともに減衰させる減衰因子を含み得る。レーティングおよび重みは、係数が基づくアクションの継続追跡に基づいて連続的に更新され得る。任意のタイプのプロセスまたはアルゴリズムが、各因子および因子に対して割り当てられた重みに対するレーティングを割り当てる、組み合わせる、平均化するなどを行うために用いられてよい。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、履歴アクションおよび過去のユーザ応答、またはさまざまなオプションに対してさらし、応答を測定することによってユーザから得られた(farmed)データに関して訓練された機械学習アルゴリズムを使用して係数を決定し得る。本開示は、特定の様式で係数を計算することを説明しているが、本開示は、任意の適切な様式で係数を計算することを企図している。
【0179】
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、ユーザのアクションに基づいて係数を計算し得る。ソーシャル・ネットワーキング・システム702は、オンライン・ソーシャル・ネットワーク上で、サードパーティ・システム708上で、他の適切なシステム上で、またはそれらの任意の組み合わせで、そのようなアクションを監視してもよい。任意の適切なタイプのユーザ・アクションが追跡または監視されてもよい。典型的なユーザ・アクションとしては、プロファイル・ページを閲覧すること、コンテンツを作成またはポストすること、コンテンツと対話すること、グループに加わること、イベントにおける出席をリストし確認すること、ロケーションにチェックインすること、特定のページに対して「いいね」を表明すること、ページを作成すること、およびソーシャル・アクションを促進する他のタスクを実行することがある。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、特定のタイプのコンテンツとのユーザのアクションに基づいて係数を計算し得る。コンテンツは、オンライン・ソーシャル・ネットワーク、サードパーティ・システム708、または別の適切なシステムに関連付けられ得る。コンテンツとしては、ユーザ、プロファイル・ページ、ポスト、ニュース・ストーリー、ヘッドライン、インスタント・メッセージ、チャット・ルームの会話、電子メール、広告、ピクチャ、映像、音楽、他の適切なオブジェクト、またはそれらの任意の組み合わせがある。ソーシャル・ネットワーキング・システム702は、ユーザのアクションを分析して、アクションのうちの1つまたは複数が主題、コンテンツ、他のユーザなどに対して親密度を示すか否かを決定し得る。限定としてではなく、一例として、ユーザが、「コーヒー」またはその変種に関係したコンテンツのポストを頻繁に行う場合、ソーシャル・ネットワーキング・システム702は、ユーザが「コーヒー」というコンセプトに関して高い係数を有することを決定し得る。特定のアクションまたは特定のタイプのアクションは、計算された全体的係数に影響し得る、他のアクションよりも高い重みおよび/またはレーティングが割り当てられ得る。限定としてではなく、一例として、第1のユーザが第2のユーザに電子メールを出す場合、アクションに対する重みまたはレーティングは、第1のユーザが第2のユーザのためのユーザプロファイル・ページを閲覧するだけの場合よりも高くなり得る。
【0180】
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、特定のオブジェクト間の関係のタイプに基づいて係数を計算し得る。ソーシャル・グラフ800を参照すると、ソーシャル・ネットワーキング・システム702は、係数を計算するとき、特定のユーザ・ノード802とコンセプトノード804を接続するエッジ806の数および/またはタイプを分析し得る。限定としてではなく、一例として、配偶者タイプのエッジ(2人のユーザが結婚していることを表す)によって接続されるユーザ・ノード802は、友人タイプのエッジによって接続されるユーザ・ノード802よりも高い係数が割り当てられ得る。言い換えれば、特定のユーザのためのアクションおよび関係に対して割り当てられた重みに応じて、全体的親密度は、ユーザの友人についてのコンテンツに対するよりもユーザの配偶者についてのコンテンツに対して高くなるように決定され得る。特定の実施形態では、ユーザが別のオブジェクトと有する関係は、そのオブジェクトに関する係数を計算することに関するユーザのアクションの重みおよび/またはレーティングに影響し得る。限定としてではなく、一例として、コンテンツとタグ付けタイプの関係を有することは、コンテンツと「いいね」タイプの関係を有するよりも高い重みおよび/またはレーティングを割り当てられ得るので、ユーザが第1のフォトでタグ付けされるが、第2のフォトに対しては「いいね」を表明するにすぎない場合、ソーシャル・ネットワーキング・システム702は、ユーザが、第2のフォトよりも第1のフォトに関して高い係数を有することを決定し得る。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、1つまたは複数の第2のユーザが特定のオブジェクトと有する関係に基づいて、第1のユーザに関する係数を計算し得る。言い換えれば、他のユーザがオブジェクトと有する接続および係数は、第1のユーザのオブジェクトに関する係数に影響し得る。限定としてではなく、一例として、第1のユーザが、1つもしくは複数の第2のユーザに対して接続される、またはそれらに関して高い係数を有し、それらの第2のユーザが特定のオブジェクトに接続されるか、またはそれに関して高い係数を有する場合、ソーシャル・ネットワーキング・システム702は、第1のユーザも、特定のオブジェクトに関する比較的高い係数も有するべきであることを決定し得る。特定の実施形態では、係数は、特定のオブジェクト間の分離度に基づいてもよい。任意の2つのノード間の分離度は、あるノードから別のノードへソーシャル・グラフを横断するために必要なホップの最小数として定義される。2つのノード間の分離度は、ソーシャル・グラフ内の2つのノードによって表されるユーザまたはコンセプト間の関連性の尺度とみなすことができる。例えば、エッジによって直接接続されているユーザ・ノード(すなわち、1次ノードである)を有する2人のユーザは、「つながりのあるユーザ」または「友人」として記述されてもよい。同様に、別のユーザ・ノードを介してのみ接続されているユーザ・ノード(すなわち、2次ノードである)を有する2人のユーザは、「友人の友人」と記述することができる。より低い係数は、第1のユーザが、ソーシャル・グラフ800内で第1のユーザに対して間接的に接続されたユーザのコンテンツ・オブジェクトにおいて興味を共有する可能性の減少を表し得る。限定としてではなく、一例として、ソーシャル・グラフ800内でより近い(すなわち、隔たり次数のより低い)ソーシャル・グラフ・エンティティは、ソーシャル・グラフ800内でさらに離れたエンティティよりも高い係数を有し得る。
【0181】
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、ロケーション情報に基づいて係数を計算し得る。互いに対して地理的により近いオブジェクトは、より遠いオブジェクトよりも互いに対してより関係がある、またはより興味があると考えられ得る。特定の実施形態では、特定のオブジェクトのためのユーザの係数は、ユーザに関連付けられている現在のロケーション(またはユーザのクライアント・システム706のロケーション)に対するオブジェクトのロケーションの近接性に基づき得る。第1のユーザは、第1のユーザに対してより近い他のユーザまたはコンセプトに、より興味があり得る。限定としてではなく、一例として、ユーザが空港から1.609km(1マイル)、ガソリン・スタンドから3.219km(2マイル)のところに位置している場合、ソーシャル・ネットワーキング・システム702は、ユーザに対する空港の近接性に基づいて、ユーザがガソリン・スタンドよりも空港に関して高い係数を有することを決定し得る。
【0182】
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、係数情報に基づいて、ユーザに関する特定のアクションを実行し得る。係数は、ユーザのアクションへの興味に基づいて、ユーザが特定のアクションを実行するか否かを予測するために使用され得る。係数は、広告、検索結果、ニュース・ストーリー、メディア、メッセージ、通知、または他の適切なオブジェクトなどの任意のタイプのオブジェクトをユーザに対して生成または提示するとき、使用され得る。係数はまた、必要に応じて、そのようなオブジェクトをランキングし、順序付けるために利用され得る。このようにして、ソーシャル・ネットワーキング・システム702は、ユーザの興味および現在の環境に関連のある情報を提供し、興味のあるそのような情報を見つける可能性を増加させ得る。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、係数情報に基づいてコンテンツを生成し得る。コンテンツ・オブジェクトは、ユーザに固有の係数に基づいて提供または選択され得る。限定としてではなく、一例として、ユーザが、ユーザがメディア・オブジェクトに関して高い全体的係数を有するメディアが提示される場合、係数は、ユーザのためのメディアを生成するために使用され得る。限定としてではなく、別の例として、ユーザが、ユーザが広告付きオブジェクトに関して高い全体的係数を有する広告が提示される場合、係数は、ユーザのための広告を生成するために使用され得る。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、係数情報に基づいて検索結果を生成し得る。特定のユーザのための検索結果は、クエリを発行したユーザに対する検索結果に関連付けられている係数に基づいてスコア付けまたはランキングされ得る。限定としてではなく、一例として、より高い係数を有するオブジェクトに対応する検索結果は、検索結果ページ上で、より低い係数を有するオブジェクトに対応する結果よりも高くランキングされ得る。
【0183】
特定の実施形態では、ソーシャル・ネットワーキング・システム702は、特定のシステムまたはプロセスからの係数の要求に応答して係数を計算し得る。ユーザが所与の状況でとり得る(または、その対象であり得る)可能性があるアクションを予測するために、任意のプロセスは、ユーザに関する計算された係数を要求し得る。要求は、係数を計算するために使用されるさまざまな因子に使用する重みのセットも含み得る。この要求は、オンライン・ソーシャル・ネットワーク上で実行されているプロセスから来ることもあるし、サードパーティ・システム708から(たとえば、APIまたは他の通信チャネルを介して)来ることもあるし、別の適切なシステムから来ることもある。要求に応答して、ソーシャル・ネットワーキング・システム702は、係数を計算し得る(または、係数情報が以前に計算され、記憶されている場合、その係数情報にアクセスし得る)。特定の実施形態では、ソーシャル・ネットワーキング・システム702は、特定のプロセスに関して親密度を測定し得る。さまざまなプロセス(オンライン・ソーシャル・ネットワークに対して内部と外部の両方にある)は、特定のオブジェクトまたはオブジェクトのセットに関する係数を要求し得る。ソーシャル・ネットワーキング・システム702は、親密度の尺度を要求した特定のプロセスに対して関連のある親密度の尺度を提供し得る。このようにして、各プロセスは、プロセスが親密度の尺度を使用する異なるコンテキストに合わせられた親密度の尺度を受信する。
【0184】
ソーシャル・グラフ親密度および親密度係数に関して、特定の実施形態は、その各々が本願明細書に援用される、2006年8月11日に出願された米国特許出願第11/503093号、2010年12月22日に出願された米国特許出願第12/977027号、2010年12月23日に出願された米国特許出願第12/978265号、および2012年10月01日に出願された米国特許出願第13/642869号に開示されている1つまたは複数のシステム、構成要素、要素、機能、方法、動作、またはステップを利用し得る。
【0185】
特定の実施形態では、オンライン・ソーシャル・ネットワークのコンテンツ・オブジェクトのうちの1つまたは複数がプライバシー設定に関連付けられ得る。オブジェクトのためのプライバシー設定(または「アクセス設定」)は、たとえば、オブジェクトに関連して、許可サーバ上のインデックス内に、別の適切な様式で、または、それらの任意の組み合わせなどの任意の適切な様式で記憶されてもよい。オブジェクトのプライバシー設定は、オブジェクト(またはオブジェクトに関連付けられている特定の情報)が、オンライン・ソーシャル・ネットワークを使用してどのようにアクセス(たとえば、閲覧または共有)され得るかを規定し得る。オブジェクトのためのプライバシー設定は、特定のユーザがそのオブジェクトにアクセスすることを可能にし、オブジェクトは、そのユーザに対して「閲覧可能」と説明され得る。限定としてではなく、一例として、オンライン・ソーシャル・ネットワークのユーザは、ユーザプロファイル・ページのためのプライバシー設定が、ユーザプロファイル・ページ上の職歴情報にアクセスし得るユーザのセットを識別し、したがって、他のユーザを情報にアクセスさせないことを規定し得る。特定の実施形態では、プライバシー設定は、オブジェクトに関連付けられている一定の情報にアクセスすることが可能にされるべきではないユーザの「遮断リスト」を規定し得る。言い換えれば、遮断リストは、オブジェクトが見えない1つまたは複数のユーザまたはエンティティを規定し得る。限定としてではなく、一例として、ユーザは、ユーザに関連付けられているフォト・アルバムにアクセスし得ないユーザのセットを規定し、したがって、それらのユーザをフォト・アルバムにアクセスさせ得ない(がまた、おそらく、ユーザのセットに含まれない一定のユーザはフォト・アルバムにアクセスすることを可能にする)。特定の実施形態では、プライバシー設定は、特定のソーシャル・グラフ要素に関連付けられ得る。ノードまたはエッジなどのソーシャル・グラフ要素のプライバシー設定は、ソーシャル・グラフ要素、ソーシャル・グラフ要素に関連付けられている情報、またはソーシャル・グラフ要素に関連付けられているコンテンツ・オブジェクトがどのようにしてオンライン・ソーシャル・ネットワークを使用してアクセス可能であるかを規定し得る。限定としてではなく、一例として、特定のフォトに対応する特定のコンセプトノード804は、そのフォトは、フォトでタグ付けされたユーザおよびユーザの友人によってのみアクセスされ得ることを規定するプライバシー設定を有し得る。特定の実施形態では、プライバシー設定は、ユーザが、アクションをソーシャル・ネットワーキング・システム702によってログさせること、または他のシステム(たとえば、サードパーティ・システム708)と共有させることに加わる、または加わらないことを可能にする。特定の実施形態では、オブジェクトに関連付けられているプライバシー設定は、任意の適切な粒度の許容されたアクセスまたはアクセスの否定を規定し得る。限定としてではなく、一例として、アクセスまたはアクセスの否定は、特定のユーザ(たとえば、自分のみ、ルームメイト、および上司)、特定の次数以内の隔たりに含まれるユーザ(たとえば、友人、または友人の友人)、ユーザ・グループ(たとえば、ゲーム・クラブ、家族)、ユーザ・ネットワーク(たとえば、特定の雇用者の従業員、学生、または特定の大学の卒業生)、すべてのユーザ(「パブリック」)、ユーザなし(「プライベート」)、サードパーティ・システム708のユーザ、特定のアプリケーション(たとえば、サードパーティ・アプリケーション、外部ウェブサイト)、他の適切なユーザもしくはエンティティ、またはそれらの任意の組み合わせに対して規定され得る。本開示は、特定の様式で特定のプライバシー設定を使用することを説明しているが、本開示は、任意の適切な様式で任意の適切なプライバシー設定を使用することを企図している。
【0186】
特定の実施形態では、1つまたは複数のサーバは、プライバシー設定を強制するための許可/プライバシー・サーバであってよい。データ・ストア内に記憶された特定のオブジェクトに関するユーザ(または他のエンティティ)からの要求に応答して、ソーシャル・ネットワーキング・システム702は、オブジェクトのためのデータ・ストアに対して要求を送信し得る。要求は、要求に関連付けられているユーザを識別し得、許可サーバが、オブジェクトに関連付けられているプライバシー設定に基づいて、ユーザがオブジェクトにアクセスすることを許可されていることを決定した場合、ユーザ(またはユーザのクライアント・システム706)のみに対して送信され得る。要求元ユーザが、オブジェクトにアクセスすることが許可されていない場合、許可サーバは、要求されたオブジェクトがデータ・ストアから取り出されるのを防止し得る、または、要求されたオブジェクトがユーザに対して送信されるのを防止し得る。検索クエリ・コンテキストでは、クエリ元ユーザが、オブジェクトにアクセスすることが許可されている場合、そのオブジェクトは、検索結果としてのみ生成され得る。言い換えれば、オブジェクトは、クエリ元ユーザに見える可視性を有さなければならない。オブジェクトが、ユーザに見えない可視性を有する場合、オブジェクトは検索結果から除外され得る。本開示は、特定の様式でプライバシー設定を強制することを説明しているが、本開示は、任意の適切な様式でプライバシー設定を強制することを企図したものである。
【0187】
上記明細は、特定の例示的な実施形態を参照して記載されている。種々実施形態および本開示の様相は、本明細書に記載の詳細を参照して記述され、添付の図面は、これら種々の実施形態を示している。上記説明および図面は、本発明の一例に過ぎず、本発明を制限するものと解釈されるべきではない。多くの具体的詳細の記述によって、本発明の種々の実施形態の十分な理解が得られる。
【0188】
追加または代替の実施形態は、その主旨または本質的特性から逸脱することなく、他の特定の形態で具現化されるようになっていてもよい。上記実施形態は、あらゆる点において一例に過ぎず、何ら限定的なものではないと解釈されるべきである。したがって、本開示の範囲は、上記説明ではなく、添付の特許請求の範囲によって指定される。特許請求の範囲と同等の意味および範囲に含まれるすべての変更は、上記請求の範囲に包含されるものとする。
図1
図2
図3A
図3B
図3C
図3D
図3E
図3F
図3G
図3H
図3I
図4A
図4B
図4C
図5
図6
図7
図8