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

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

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

特許6705897コンテンツを共有するためのシステムおよび方法
<>
  • 特許6705897-コンテンツを共有するためのシステムおよび方法 図000002
  • 特許6705897-コンテンツを共有するためのシステムおよび方法 図000003
  • 特許6705897-コンテンツを共有するためのシステムおよび方法 図000004
  • 特許6705897-コンテンツを共有するためのシステムおよび方法 図000005
  • 特許6705897-コンテンツを共有するためのシステムおよび方法 図000006
  • 特許6705897-コンテンツを共有するためのシステムおよび方法 図000007
  • 特許6705897-コンテンツを共有するためのシステムおよび方法 図000008
  • 特許6705897-コンテンツを共有するためのシステムおよび方法 図000009
  • 特許6705897-コンテンツを共有するためのシステムおよび方法 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6705897
(24)【登録日】2020年5月18日
(45)【発行日】2020年6月3日
(54)【発明の名称】コンテンツを共有するためのシステムおよび方法
(51)【国際特許分類】
   G06F 16/14 20190101AFI20200525BHJP
   G06F 16/583 20190101ALI20200525BHJP
【FI】
   G06F16/14 200
   G06F16/583
【請求項の数】15
【全頁数】31
(21)【出願番号】特願2018-526767(P2018-526767)
(86)(22)【出願日】2015年11月25日
(65)【公表番号】特表2019-502199(P2019-502199A)
(43)【公表日】2019年1月24日
(86)【国際出願番号】US2015062796
(87)【国際公開番号】WO2017091233
(87)【国際公開日】20170601
【審査請求日】2018年11月12日
(31)【優先権主張番号】14/951,280
(32)【優先日】2015年11月24日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】フェイスブック,インク.
(74)【代理人】
【識別番号】110002974
【氏名又は名称】特許業務法人World IP
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】スリニバサン、ラガバン
(72)【発明者】
【氏名】バーンスタイン、アーロン サミュエル
(72)【発明者】
【氏名】プライヤー、レオナード ウィリアム
【審査官】 早川 学
(56)【参考文献】
【文献】 米国特許出願公開第2014/0059231(US,A1)
【文献】 米国特許出願公開第2003/0078968(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00−16/958
(57)【特許請求の範囲】
【請求項1】
コンピュータが実行する方法であって、
コンピューティング・デバイスが、共有する少なくとも1つのコンテンツ・アイテムを決定するステップと、
前記コンピューティング・デバイスが、前記コンテンツ・アイテムを共有する1つまたは複数のアプリケーションを決定するステップと、
前記コンピューティング・デバイスが、1つまたは複数の基準に少なくとも部分的に基づいて、前記1つまたは複数のアプリケーションをランク付けするステップと、
前記コンピューティング・デバイスが、前記コンテンツ・アイテムを共有するための1組のオプションとして、ランク付けしたアプリケーションを提供するステップであって、前記コンピューティング・デバイスを操作しているユーザが、前記1組のオプションのうちの少なくとも1つを選択し、当該オプションと関連付けられたアプリケーションを通じて、前記コンテンツ・アイテムを共有可能である、前記提供するステップと、
前記コンピューティング・デバイスが、前記ランク付けしたアプリケーションに含まれる第1のアプリケーションを通じて前記コンテンツ・アイテムを共有するオプションの選択を決定するステップと、
前記コンピューティング・デバイスが、1つまたは複数の機械学習モデルを用いて、前記コンテンツ・アイテムに表示された特定事項を解析するステップと、
前記コンピューティング・デバイスが、解析した特定事項に少なくとも部分的に基づいて、前記コンテンツ・アイテムが共有されているメッセージにテキストを自動的に追加するステップであって、前記テキストは、少なくとも1つの異なるコンテンツ・アイテムを共有した、過去に共有された1つまたは複数のメッセージに含まれるテキストに少なくとも部分的に基づいて決定され、前記異なるコンテンツ・アイテムは、前記解析した特定事項の少なくとも一部を含む、前記テキストを自動的に追加するステップと、を備える方法。
【請求項2】
前記コンピューティング・デバイスが、エンティティと共有する前記コンテンツ・アイテムを決定するステップは、
前記コンピューティング・デバイスが、前記コンピューティング・デバイスを操作している前記ユーザが前記コンテンツ・アイテムを共有するオプションを選択済みである旨を判定することであって、前記オプションが、前記コンピューティング・デバイス上で実行されるアプリケーションのインターフェースを通じて提供される、前記判定することをさらに含む、請求項1に記載の方法。
【請求項3】
前記コンピューティング・デバイスが、1つまたは複数の基準に少なくとも部分的に基づいて、前記1つまたは複数のアプリケーションをランク付けするステップは、
前記コンピューティング・デバイスが、共有する前記コンテンツ・アイテムに表示された特定事項を解析すること、
前記コンピューティング・デバイスが、解析した特定事項に少なくとも部分的に基づいて、前記1つまたは複数のアプリケーションの第1のアプリケーションがコンテンツ・アイテムの共有に好ましい旨を判定すること、
前記コンピューティング・デバイスが、前記1つまたは複数のアプリケーションの他のアプリケーションよりも前記第1のアプリケーションを高くランク付けすること、をさらに含む、請求項1または2に記載の方法。
【請求項4】
前記特定事項が、少なくとも1つのエンティティの表示であり、
前記方法が、
前記コンピューティング・デバイスが、前記コンテンツ・アイテムの提案された受取人として、前記少なくとも1つのエンティティの各名称を提供するステップをさらに備えること、
前記方法が、
前記コンピューティング・デバイスが、前記コンテンツ・アイテムに関連するテキストであって、解析した特定事項に少なくとも部分的に基づいて決定される前記テキストを提供するステップと、をさらに備えること、および
前記コンピューティング・デバイスが、前記1つまたは複数のアプリケーションの前記第1のアプリケーションがコンテンツ・アイテムの共有に好ましい旨を判定することが、
前記コンピューティング・デバイスが、前記コンピューティング・デバイスを操作している前記ユーザが指定する通りに、前記第1のアプリケーションの選好を決定すること、
前記コンピューティング・デバイスが、前記コンピューティング・デバイスを操作している前記ユーザが前記第1のアプリケーションを起動してコンテンツ・アイテムを共有した回数が閾値を満たす旨を判定すること、をさらに含むこと、のうちの少なくとも一つを特徴とする請求項3に記載の方法。
【請求項5】
前記コンピューティング・デバイスが、1つまたは複数の基準に少なくとも部分的に基づいて、前記1つまたは複数のアプリケーションをランク付けするステップは、
前記コンピューティング・デバイスが、前記1つまたは複数のアプリケーションの各アプリケーションの各計数であって、前記コンピューティング・デバイスを操作している前記ユーザが前記アプリケーションを起動してコンテンツ・アイテムを共有した回数を示す前記各計数を決定すること、
前記コンピューティング・デバイスが、前記各計数に少なくとも部分的に基づいて、前記1つまたは複数のアプリケーションをランク付けすること、をさらに含む、請求項1〜4のいずれか一項に記載の方法。
【請求項6】
前記コンピューティング・デバイスが、1つまたは複数の基準に少なくとも部分的に基づいて、前記1つまたは複数のアプリケーションをランク付けするステップは、
前記コンピューティング・デバイスが、共有する前記コンテンツ・アイテムに対応するコンテンツ・タイプを決定すること、
前記コンピューティング・デバイスが、前記1つまたは複数のアプリケーションの各アプリケーションの各計数であって、前記コンピューティング・デバイスを操作している前記ユーザが前記アプリケーションを起動して、前記コンテンツ・タイプに対応するコンテンツ・アイテムを共有した回数を示す前記各計数を決定すること、
前記コンピューティング・デバイスが、前記各計数に少なくとも部分的に基づいて、前記1つまたは複数のアプリケーションをランク付けすること、をさらに含む、請求項1〜5のいずれか一項に記載の方法。
【請求項7】
前記コンピューティング・デバイスが、1つまたは複数の基準に少なくとも部分的に基づいて、前記1つまたは複数のアプリケーションをランク付けするステップは、
前記コンピューティング・デバイスが、前記コンテンツ・アイテムが共有されている前記コンピューティング・デバイスに対応するジオフェンスを決定すること、
前記コンピューティング・デバイスが、前記コンピューティング・デバイスが前記ジオフェンス中にある間、前記1つまたは複数のアプリケーションの第1のアプリケーションがコンテンツ・アイテムの共有に用いられる旨を判定すること、
前記コンピューティング・デバイスが、前記1つまたは複数のアプリケーションの他のアプリケーションよりも前記第1のアプリケーションを高くランク付けすること、をさらに含む、請求項1〜6のいずれか一項に記載の方法。
【請求項8】
前記ランク付けしたアプリケーションは、前記方法を実行する共有モジュールによって1組のオプションとして提供され、前記共有モジュールは、ソーシャル・ネットワーキング・システムに関連付けられた情報を記憶する少なくとも1つのデータ・ストアと通信して動作するかまたは通信するように構成されており、
前記コンピューティング・デバイスにインストールされていないがコンテンツ・アイテムの共有に適した新たなアプリケーションが、前記コンピューティング・デバイスの前記ユーザの閾値数のソーシャルつながりによってそれぞれのコンピューティング・デバイスにインストールされたことに応答して、当該新たなアプリケーションが前記1組のオプションのうちの1つのオプションとして提供され、
前記ユーザは、前記新たなアプリケーションが提供された際に前記1つのオプションを選択することにより、前記コンピューティング・デバイスへの前記新たなアプリケーションのインストールを開始することができる、請求項1〜7のいずれか一項に記載の方法。
【請求項9】
システムであって、
少なくとも1つのプロセッサと、
命令を格納したメモリと、を備え、
前記命令は、前記少なくとも1つのプロセッサにより実行された場合に、
共有する少なくとも1つのコンテンツ・アイテムを決定するステップと、
前記コンテンツ・アイテムを共有する1つまたは複数のアプリケーションを決定するステップと、
1つまたは複数の基準に少なくとも部分的に基づいて、前記1つまたは複数のアプリケーションをランク付けするステップと、
前記コンテンツ・アイテムを共有するための1組のオプションとして、ランク付けしたアプリケーションを提供するステップであって、コンピューティング・デバイスを操作しているユーザが、前記1組のオプションのうちの少なくとも1つを選択し、当該オプションと関連付けられたアプリケーションを通じて、前記コンテンツ・アイテムを共有可能である、前記提供するステップと、
前記ランク付けしたアプリケーションに含まれる第1のアプリケーションを通じて前記コンテンツ・アイテムを共有するオプションの選択を決定するステップと、
1つまたは複数の機械学習モデルを用いて、前記コンテンツ・アイテムに表示された特定事項を解析するステップと、
解析した特定事項に少なくとも部分的に基づいて、前記コンテンツ・アイテムが共有されているメッセージにテキストを自動的に追加するステップであって、前記テキストは、少なくとも1つの異なるコンテンツ・アイテムを共有した、過去に共有された1つまたは複数のメッセージに含まれるテキストに少なくとも部分的に基づいて決定され、前記異なるコンテンツ・アイテムは、前記解析した特定事項の少なくとも一部を含む、前記自動的に追加するステップと、を前記システムに実行させる、システム。
【請求項10】
エンティティと共有する前記コンテンツ・アイテムを決定するステップは、
前記コンピューティング・デバイスを操作している前記ユーザが前記コンテンツ・アイテムを共有するオプションを選択済みである旨を判定することであって、前記オプションが、前記コンピューティング・デバイス上で実行されるアプリケーションのインターフェースを通じて提供される、前記判定することを前記システムにさらに実行させる、請求項9に記載のシステム。
【請求項11】
1つまたは複数の基準に少なくとも部分的に基づいて、前記1つまたは複数のアプリケーションをランク付けするステップは、
共有する前記コンテンツ・アイテムに表示された特定事項を解析すること、
解析した特定事項に少なくとも部分的に基づいて、前記1つまたは複数のアプリケーションの第1のアプリケーションがコンテンツ・アイテムの共有に好ましい旨を判定すること、
前記1つまたは複数のアプリケーションの他のアプリケーションよりも前記第1のアプリケーションを高くランク付けすること、を前記システムにさらに実行させる、請求項9または10に記載のシステム。
【請求項12】
前記特定事項が、少なくとも1つのエンティティの表示であり、
前記コンテンツ・アイテムの提案された受取人として、前記少なくとも1つのエンティティの各名称を提供するステップと、
前記コンテンツ・アイテムに関わるテキストであって、解析した特定事項に少なくとも部分的に基づいて決定される前記テキストを提供するステップと、
の両方または一方をさらに実行する請求項11に記載のシステム。
【請求項13】
命令を含む非一時的なコンピュータ可読記憶媒体であって、
前記命令は、コンピューティング・システムの少なくとも1つのプロセッサにより実行された場合に、
共有する少なくとも1つのコンテンツ・アイテムを決定するステップと、
前記コンテンツ・アイテムを共有する1つまたは複数のアプリケーションを決定するステップと、
1つまたは複数の基準に少なくとも部分的に基づいて、前記1つまたは複数のアプリケーションをランク付けするステップと、
前記コンテンツ・アイテムを共有するための1組のオプションとして、ランク付けしたアプリケーションを提供するステップであって、コンピューティング・デバイスを操作しているユーザが、前記1組のオプションのうちの少なくとも1つを選択し、当該オプションと関連付けられたアプリケーションを通じて、前記コンテンツ・アイテムを共有可能である、前記提供するステップと、
前記ランク付けしたアプリケーションに含まれる第1のアプリケーションを通じて前記コンテンツ・アイテムを共有するオプションの選択を決定するステップと、
1つまたは複数の機械学習モデルを用いて、前記コンテンツ・アイテムに表示された特定事項を解析するステップと、
解析した特定事項に少なくとも部分的に基づいて、前記コンテンツ・アイテムが共有されているメッセージにテキストを自動的に追加するステップであって、前記テキストは、少なくとも1つの異なるコンテンツ・アイテムを共有した、過去に共有された1つまたは複数のメッセージに含まれるテキストに少なくとも部分的に基づいて決定され、前記異なるコンテンツ・アイテムは、前記解析した特定事項の少なくとも一部を含む、前記自動的に追加するステップと、を含む方法を前記コンピューティング・システムに実行させる、非一時的なコンピュータ可読記憶媒体。
【請求項14】
エンティティと共有する前記コンテンツ・アイテムを決定するステップは、
前記コンピューティング・デバイスを操作している前記ユーザが前記コンテンツ・アイテムを共有するオプションを選択済みである旨を判定することであって、前記オプションが、前記コンピューティング・デバイス上で実行されるアプリケーションのインターフェースを通じて提供される、前記判定することを前記コンピューティング・システムにさらに実行させる、請求項13に記載の非一時的なコンピュータ可読記憶媒体。
【請求項15】
1つまたは複数の基準に少なくとも部分的に基づいて、前記1つまたは複数のアプリケーションをランク付けするステップが、
共有する前記コンテンツ・アイテムに表示された特定事項を解析すること、
解析した特定事項に少なくとも部分的に基づいて、前記1つまたは複数のアプリケーションの第1のアプリケーションがコンテンツ・アイテムの共有に好ましい旨を判定すること、
前記1つまたは複数のアプリケーションの他のアプリケーションよりも前記第1のアプリケーションを高くランク付けすること、
を前記コンピューティング・システムにさらに実行させ、
好ましくは、前記特定事項が、少なくとも1つのエンティティの表示であり、
前記コンピューティング・システムが、
前記コンテンツ・アイテムの提案された受取人として、前記少なくとも1つのエンティティの各名称を提供するステップと、
好ましくは、前記コンテンツ・アイテムに関わるテキストであって、解析した特定事項に少なくとも部分的に基づいて決定される前記テキストを提供するステップと、
の両方または一方をさらに実行する、請求項13または14に記載の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、コンテンツ共有の分野に関する。より詳細に、本技術は、コンピューティング・デバイス間でコンテンツを共有する技術に関する。
【背景技術】
【0002】
今日、人々は、多種多様な目的でコンピューティング・デバイス(または、システム)を利用することが多い。ユーザは、それぞれのコンピューティング・デバイスの操作により、たとえば相互作用、コンテンツの作成、コンテンツの共有、および情報へのアクセスが可能である。従来の手法では、ユーザがコンピューティング・デバイスを操作して、他のユーザのコンピューティング・デバイスとコンテンツ・アイテム(たとえば、画像、ビデオ、オーディオ・ファイル等)を共有することができる。
【0003】
通常、コンテンツ・アイテムを共有する場合、コンピューティング・デバイスを操作しているユーザには、いくつかの例を挙げると、電子メール・アプリケーションおよびテキスト・メッセージング・アプリケーションの両方または一方等、コンテンツ・アイテムを共有するためのソフトウェア・アプリケーションをそれぞれ参照する1つまたは複数のオプションが提示され得る。ユーザは、対応するソフトウェア・アプリケーションを使用してコンテンツ・アイテムを共有するオプションのうちの1つを選択可能であるとともに、コンテンツ・アイテムを共有する1人または複数人の受取人を指定可能である。
【発明の概要】
【課題を解決するための手段】
【0004】
本開示の様々な実施形態には、共有する少なくとも1つのコンテンツ・アイテムを決定するように構成されたシステム、方法、および非一時的なコンピュータ可読媒体を含み得る。コンテンツ・アイテムを共有する1つまたは複数のアプリケーションを決定可能である。アプリケーションは、1つまたは複数の基準に少なくとも部分的に基づいてランク付け可能である。ランク付けしたアプリケーションは、1組のオプションとして提供可能である。コンピューティング・デバイスを操作しているユーザは、オプションのうちの少なくとも1つを選択し、オプションと関連付けられたアプリケーションを通じて、コンテンツ・アイテムを共有可能である。
【0005】
一実施形態においては、コンピューティング・デバイスを操作しているユーザがコンテンツ・アイテムを共有するオプションを選択済みである旨を判定するが、このオプションは、コンピューティング・デバイス上で実行されるアプリケーションのインターフェースを通じて提供される。
【0006】
一実施形態においては、共有するコンテンツ・アイテムに表示された特定事項を解析可能である。解析した特定事項に少なくとも部分的に基づいて、1つまたは複数のアプリケーションの第1のアプリケーションがコンテンツ・アイテムの共有に好ましい旨を判定する。1つまたは複数のアプリケーションの他のアプリケーションよりも第1のアプリケーションを高くランク付けする。
【0007】
一実施形態においては、コンテンツ・アイテムの提案された受取人として、少なくとも1つのエンティティの各名称を提供する。
一実施形態においては、コンテンツ・アイテムに関わるテキストであり、解析した特定事項に少なくとも部分的に基づいて決定される、テキストを提供する。
【0008】
一実施形態においては、コンピューティング・デバイスを操作しているユーザが指定する通りに、第1のアプリケーションの選好を決定する。
一実施形態においては、コンピューティング・デバイスを操作しているユーザが第1のアプリケーションを起動してコンテンツ・アイテムを共有した回数が閾値を満たす旨を判定する。
【0009】
一実施形態においては、1つまたは複数のアプリケーションの各アプリケーションの各計数であって、コンピューティング・デバイスを操作しているユーザが該アプリケーションを起動してコンテンツ・アイテムを共有した回数を示す、各計数を決定するとともに、各計数に少なくとも部分的に基づいて、アプリケーションをランク付けする。
【0010】
一実施形態においては、共有するコンテンツ・アイテムに対応するコンテンツ・タイプを決定する。1つまたは複数のアプリケーションの各アプリケーションの各計数であって、コンピューティング・デバイスを操作しているユーザが該アプリケーションを起動して、コンテンツ・タイプに対応するコンテンツ・アイテムを共有した回数を示す、各計数を決定する。各計数に少なくとも部分的に基づいて、アプリケーションをランク付けする。
【0011】
一実施形態においては、コンテンツ・アイテムが共有されているコンピューティング・デバイスに対応するジオフェンスを決定する。コンピューティング・デバイスがジオフェンス中にある間、1つまたは複数のアプリケーションの第1のアプリケーションがコンテンツ・アイテムの共有に用いられる旨を判定する。1つまたは複数のアプリケーションの他のアプリケーションよりも第1のアプリケーションを高くランク付けする。
【0012】
一実施形態においては、コンテンツ・アイテムが共有されている時刻を決定する。上記時刻において、1つまたは複数のアプリケーションの第1のアプリケーションがコンテンツ・アイテムの共有に用いられる旨を判定する。1つまたは複数のアプリケーションの他のアプリケーションよりも第1のアプリケーションを高くランク付けする。
【0013】
一実施形態において、1つまたは複数の非一時的なコンピュータ可読記憶媒体は、実行された場合に、本発明または前述の実施形態のいずれかに係る方法を実行するように動作可能なソフトウェアを具現化する。
【0014】
一実施形態において、システムは、1つまたは複数のプロセッサと、プロセッサに結合され、プロセッサにより実行可能な命令を含む少なくとも1つのメモリとを備え、プロセッサは、命令を実行する場合に、本発明または前述の実施形態のいずれかに係る方法を実行するように動作可能である。
【0015】
一実施形態において、好ましくは非一時的なコンピュータ可読記憶媒体を備えたコンピュータ・プログラム製品は、データ処理システム上で実行された場合に、本発明または前述の実施形態のいずれかに係る方法を実行するように動作可能である。
【0016】
開示された技術の多くの他の特徴、用途、実施形態、および/または変形例は、添付の図面および以下の詳細な説明から明らかとなることを理解されたい。開示技術の原理から逸脱することなく、本明細書に記載の構造、システム、非一時的なコンピュータ可読媒体、および方法の追加の実装および/または代替の実装を採用できる。
【0017】
本発明に係る実施形態は、具体的には、方法、記憶媒体、システムおよびコンピュータ・プログラム製品へ向けられる添付の特許請求の範囲において開示され、1つの請求項のカテゴリ、例えば、方法において記載される任意の特徴は、別の請求項のカテゴリ、例えば、システムにおいても特許請求され得る。添付の特許請求の範囲における従属関係または参照は、形式的な理由のために選ばれているにすぎない。しかしながら、添付の特許請求の範囲において選ばれた従属関係に関わらず、請求項の任意の組み合わせおよびその特徴が開示され、特許請求され得るように、(特に、多数従属形式で)任意の先行請求項への意図的な参照に由来する任意の主題も、特許請求され得る。特許請求され得る主題は、添付の特許請求の範囲において述べられる特徴の組み合わせだけでなく、特許請求の範囲における特徴の任意の他の組み合わせも備え、特許請求の範囲において記載される各特徴は、特許請求の範囲における任意の他の特徴と、または他の特徴の組み合わせと、組み合わせられ得る。さらに、本明細書において説明または図示される実施形態および特徴のうちの任意のものは、別個の請求項において特許請求されてもよく、および/または、本明細書において説明もしくは図示される任意の実施形態もしくは特徴との任意の組み合わせにおいて特許請求されてもよく、または添付の特許請求の範囲の特徴のうちの任意のものとの組み合わせにおいて特許請求されてもよい。
【図面の簡単な説明】
【0018】
図1】本開示の一実施形態による、コンテンツ・アイテムを共有するためのソフトウェア・アプリケーションを提案するように構成された例示的なコンテンツ共有モジュールを含む例示的なシステムを示した図である。
図2】本開示の一実施形態による、コンテンツ・アイテムを共有するためのソフトウェア・アプリケーションを提案するように構成された例示的な共有提案モジュールを示した図である。
図3】本開示の一実施形態による、コンテンツ・アイテムを共有するためのインターフェースの一例を示した図である。
図4A】本開示の様々な実施形態による、異なるソフトウェア・アプリケーションを通じてコンテンツ・アイテムを共有するためのオプションを提供するインターフェースの一例を示した図である。
図4B】本開示の様々な実施形態による、異なるソフトウェア・アプリケーションを通じてコンテンツ・アイテムを共有するためのオプションを提供するインターフェースの一例を示した図である。
図5】本開示の様々な実施形態による、自動生成テキストを含むコンテンツ・アイテムを共有するためのインターフェースの一例を示した図である。
図6】本開示の一実施形態による、コンテンツ・アイテムを共有するためのソフトウェア・アプリケーションを決定する例示的な方法を示した図である。
図7】本開示の一実施形態による、多様なシナリオで利用することができる例示的なソーシャル・ネットワーキング・システムを含む例示的なシステムのネットワーク図である。
図8】本開示の一実施形態による、多様なシナリオで利用することができるコンピュータ・システムまたはコンピューティング・デバイスの例を示す図である。
【発明を実施するための形態】
【0019】
図面は、開示される技術の様々な技術を例示の目的のために図示するものにすぎず、図面は、同様の要素を識別するために同様の参照符号を使用する。当業者は、本明細書において説明される開示される技術の原理から逸脱することなく、図面に例示される構造および方法の代替的実施形態が採用され得ることを、下記の議論から容易に認識するであろう。
【0020】
コンテンツを共有するためのアプリケーションを提案する手法
人々は、多種多様な目的でコンピューティング・デバイス(または、システム)を使用する。前述の通り、従来の手法では、ユーザがコンピューティング・デバイスを利用して、他のユーザとコンテンツ・アイテム(たとえば、文書、画像、ビデオ、オーディオ・ファイル等)を共有することができる。通常、コンテンツ・アイテムを共有する場合、コンピューティング・デバイスを操作しているユーザには、電子メール・アプリケーションまたはテキスト・メッセージング・アプリケーション等、コンピューティング・デバイスにインストールされた特定のソフトウェア・アプリケーションを通じてコンテンツ・アイテムを共有するための1つまたは複数のオプションが提示され得る。
【0021】
従来の手法において、コンピューティング・デバイスを通じてコンテンツ・アイテムを共有するためのオプション(このようなオプションの提示順を含む)は通常、コンピューティング・デバイスを操作しているユーザに関係なく予め決定されている。たとえば、コンテンツ・アイテムを共有するオプションが選択された場合、コンピューティング・デバイスは、表示インターフェースを通じて、テキスト・メッセージング・アプリケーション、電子メール・アプリケーション、クラウドベースの共有プラットフォーム・アプリケーション、ならびに/または1つもしくは複数のソーシャル・ネットワークに対応するアプリケーションによって、コンテンツ・アイテムを共有する1組のオプションを提示可能である。従来の手法においては、ユーザおよび共有されているコンテンツ・アイテムの両方または一方に関わらず、同じ1組のオプションが提示される。コンピューティング・デバイスを操作しているユーザは、1組のオプションが参照するアプリケーションとは異なる特定のアプリケーションを通じてコンテンツ・アイテムを共有したい場合、該特定のアプリケーションを通じてコンテンツ・アイテムを共有するためのオプションを提供するようにコンピューティング・デバイスを手動で設定する必要がある。本明細書において、用語「アプリケーション」は、コンピューティング・デバイス上でアクセス、実行、および利用可能なソフトウェア・アプリケーション、プログラム、および/または媒体を大略表す。
【0022】
改良された手法は、従来の手法に伴う上記および他の不都合を克服する。様々な実施形態において、コンピューティング・デバイスを操作しているユーザがコンテンツ・アイテムを共有しようとする場合は、いくつかの例を挙げると、特定のアプリケーションを通じてコンテンツ・アイテムを共有するためのユーザ選好、共有されているコンテンツ・アイテム、共有されているコンテンツ・アイテムの種類、および/またはコンテンツ・アイテムが共有されているエンティティ等の多様な因子に少なくとも部分的に基づいて、コンテンツ・アイテムを共有するためのアプリケーションがユーザに対して自動的に提案され得る。また、ユーザがコンテンツ・アイテムを共有する可能性が最も高いアプリケーションが、共有用の、他の比較的好ましくないアプリケーションの前に順序付けまたはランク付けされるように、上記のような因子に部分的に基づいて、アプリケーションの提案順をカスタマイズすることもできる。その結果、ユーザは、好ましいアプリケーションのうちの1つに対するオプションを選択することによって、コンテンツ・アイテムを迅速かつ容易に共有することができる。
【0023】
図1は、本開示の一実施形態による、コンテンツ・アイテムを共有するためのソフトウェア・アプリケーションを提案するように構成された例示的なコンテンツ共有モジュール102を含む例示的なシステム100を示している。図1の例に示すように、コンテンツ共有モジュール102は、コンテンツ・アイテム選択モジュール104および共有提案モジュール106を具備し得る。場合によっては、例示的なシステム100は、少なくとも1つのデータ・ストア108を具備し得る。本図および本明細書のすべての図に示す構成要素(たとえば、モジュール、要素等)は、例示に過ぎず、他の実施態様では、付加的な構成要素、より少ない構成要素、統合された構成要素、または異なる構成要素を含んでいてもよい。関連する詳細が分かりにくくならないように、一部の構成要素については、示していない場合がある。
【0024】
いくつかの実施形態において、コンテンツ共有モジュール102は、ソフトウェア、ハードウェア、またはこれらの任意の組み合わせとして一部または全部を実装可能である。一般的に、本明細書に記載のモジュールは、ソフトウェア、ハードウェア、またはこれらの任意の組み合わせと関連付け可能である。いくつかの実施態様において、モジュールの1つまたは複数の機能、タスク、および/または動作は、ソフトウェア・ルーチン、ソフトウェア・プロセス、ハードウェア、および/またはこれらの任意の組み合わせによって遂行または実行可能である。場合により、コンテンツ共有モジュール102は、ユーザ・コンピューティング・デバイスまたはクライアント・コンピューティング・システム等の1つまたは複数のコンピューティング・デバイスまたはシステム上で動作するソフトウェアとして一部または全部を実装可能である。たとえば、コンテンツ共有モジュール102またはその少なくとも一部は、図7のユーザ・デバイス710等のユーザ・コンピューティング・デバイスまたはクライアント・コンピューティング・システム上で動作するアプリケーション(たとえば、アプリ)、プログラム、またはアプレット等としての実装またはそれらの内部での実装が可能である。さらに、コンテンツ共有モジュール102またはその少なくとも一部は、ネットワーク・サーバまたはクラウド・サーバ等の1つまたは複数のサーバを含む1つまたは複数のコンピューティング・デバイスまたはシステムを用いて実装可能である。場合により、コンテンツ共有モジュール102は、図7のソーシャル・ネットワーキング・システム730等のソーシャル・ネットワーキング・システム(または、サービス)内で一部または全部を実装することも可能であるし、ソーシャル・ネットワーキング・システム(または、サービス)とともに動作するように一部または全部を構成することも可能である。多くの変形例または他の可能性が存在し得ることが了解されるものとする。
【0025】
前述の通り、様々な実施形態において、コンテンツ共有モジュール102は、コンピューティング・デバイスにおいて実装可能であるとともに、コンテンツ・アイテムを共有するための特定のアプリケーションを使用するための1つまたは複数の提案を与えるように構成可能である。
【0026】
コンテンツ・アイテム選択モジュール104は、所与のインターフェースを通じて共有されるコンテンツ・アイテムのユーザ選択を処理するように構成可能である。たとえば、様々な実施形態において、ユーザは、コンピューティング・デバイスに格納された様々なコンテンツ・アイテムを包含または参照するインターフェースにアクセス可能である。このような実施形態において、コンピューティング・デバイスを操作しているユーザは、たとえばオプションの選択によりインターフェースと相互作用して、1人または複数人の受取人と1つまたは複数のコンテンツ・アイテムを共有することができる。コンテンツ・アイテム選択モジュール104は、ユーザ選択に基づいて、共有用に選択されたコンテンツ・アイテムを決定することができる。別の例において、コンテンツ・アイテム選択モジュール104は、たとえばコンテンツ・アイテムを共有するオプションの選択により、ユーザがブラウザ(たとえば、ファイル・ブラウザ、ウェブ・ブラウザ等)を通じてコンテンツ・アイテムを選択および指定または選択もしくは指定した場合にどのコンテンツ・アイテムを共有するかを決定することができる。
【0027】
共有提案モジュール106は、コンテンツ・アイテムの共有に使用するものとしてユーザに提案するアプリケーションを決定するように構成可能である。たとえば、コンテンツ・アイテム選択モジュール104が決定した通り、共有するコンテンツ・アイテムをユーザが選択した場合、共有提案モジュール106は、コンテンツ・アイテムを共有するための1つまたは複数のアプリケーションを提供することができる。前述の通り、従来の手法において、共有するコンテンツ・アイテムをユーザが選択した場合、コンピューティング・デバイスは、コンテンツ・アイテムを共有する固定された1組のオプションをユーザに与えることができる。これらのオプションとしては、たとえばテキスト・メッセージング・アプリケーション、電子メール・アプリケーション、クラウドベースの共有プラットフォーム・アプリケーション、ならびに/または1つもしくは複数のソーシャル・ネットワークに対応するアプリケーションが挙げられる。様々な実施形態において、共有提案モジュール106は、様々な因子に基づいて、コンテンツ・アイテムを共有するための1つまたは複数のアプリケーションを決定することができる。いくつかの実施形態において、これらの因子には、いくつかの例を挙げると、たとえば特定のソフトウェア・アプリケーションおよび共有媒体の両方もしくは一方に対するユーザ選好、共有するコンテンツ・アイテム、共有するコンテンツの種類、ならびにコンテンツ・アイテムが共有されているエンティティが含まれ得る。共有提案モジュール106のさらなる詳細については、図2を参照して以下に示す。
【0028】
いくつかの実施形態において、コンテンツ共有モジュール102は、例示的なシステム100の少なくとも1つのデータ・ストア108と通信して動作するかまたは通信もしくは動作するように構成可能である。少なくとも1つのデータ・ストア108は、様々な種類のデータを格納して保持するように構成可能である。様々な実施形態において、少なくとも1つのデータ・ストア108は、コンテンツ共有モジュール102の機能および動作に関するデータを格納することができる。このようなデータの一例は、コンピューティング・デバイス上での、ユーザによる、異なるソフトウェア・アプリケーションおよび媒体または異なるソフトウェア・アプリケーションもしくは媒体の使用情報である。いくつかの実施態様において、少なくとも1つのデータ・ストア108は、ソーシャル・ネットワーキング・システム(たとえば、図7のソーシャル・ネットワーキング・システム730)と関連付けられた情報を格納することができる。ソーシャル・ネットワーキング・システムと関連付けられた情報としては、ユーザに関するデータ、ソーシャルつながり、ソーシャル・インタラクション、位置、ジオフェンス・エリア、マップ、場所、イベント、ページ、グループ、投稿、通信、コンテンツ、フィード、アカウント設定、プライバシー設定、ソーシャル・グラフ、およびその他様々な種類のデータが挙げられる。いくつかの実施態様において、少なくとも1つのデータ・ストア108は、ユーザ識別子、ユーザ情報、プロフィール情報、ユーザ固有の設定、ユーザが生成または投稿したコンテンツ、およびその他様々な種類のユーザデータ等、ユーザと関連付けられた情報を格納することができる。当然のことながら、多くの変形例または他の可能性が存在し得る。
【0029】
図2は、本開示の一実施形態による、コンテンツ・アイテムを共有するためのソフトウェア・アプリケーションを提案するように構成された例示的な共有提案モジュール202を示している。いくつかの実施形態において、図1の共有提案モジュール106は、共有提案モジュール202とともに実装可能である。図2の例に示すように、共有提案モジュール202は、共有モジュール204、コンテンツ解析モジュール206、およびフィードバック・モジュール208を具備し得る。
【0030】
様々な実施形態において、共有モジュール204は、コンピューティング・デバイス間でコンテンツ・アイテムを共有するための1組のアプリケーションを決定して推奨するように構成可能である。たとえば、コンピューティング・デバイスを操作しているユーザがコンテンツ・アイテムを共有しようとした場合、該ユーザには、コンテンツ・アイテムを共有する異なるアプリケーションをそれぞれ参照するための1つまたは複数のオプションが提示され得る。ユーザは、インターフェースと相互作用して、コンテンツ・アイテムの共有に使用するアプリケーションを参照するオプションを選択することができる。様々な実施形態において、共有モジュール204は、ユーザに提示されて、いくつかの例を挙げるとオペレーティング・システム・フック、システム・コール、および/またはアプリケーション・プログラミング・インターフェース(API)によりコンテンツ・アイテムを共有するためのオプションを提示して修正または提示するかもしくは修正するように構成され得る。
【0031】
いくつかの実施形態において、共有モジュール204は、コンピューティング・デバイス上で動作するアプリケーションを通じて機能が提供され得るように実装可能である。たとえば、ユーザは、コンピューティング・デバイス上で動作しているコンテンツ作成アプリケーション(たとえば、画像エディタ)と相互作用していてもよい。ユーザは、コンテンツ作成アプリケーションを用いてコンテンツ・アイテムを編集可能であり、その後、編集したコンテンツ・アイテムを他者と共有したくなる場合がある。この例においては、共有モジュール204の利用により、編集したコンテンツ・アイテムを共有可能な異なるアプリケーションを参照する1組のオプションを提供するようにしてもよく、さらに、コンテンツ・アイテムの共有用にユーザが使用を好むアプリケーションが他のアプリケーションよりも高くランク付けされ得るように、1組のオプションをランク付けすることができる。いくつかの実施形態において、共有モジュール204が提供する機能を利用するアプリケーションは、ログイン・ポータルを通じてユーザの認証情報を取得および提供することが必要となり得る。
【0032】
前述の通り、コンテンツ・アイテムの共有用にユーザが従来から利用可能なアプリケーションは、コンテンツ・アイテムの共有用にユーザが好むアプリケーションを反映していない場合がある。たとえば、コンテンツ・アイテムを共有する場合、ユーザには従来、テキスト・メッセージング・アプリケーション、電子メール・アプリケーション、およびソーシャル・ネットワーキング・アプリケーションを通じてコンテンツ・アイテムを共有する1組のオプションが提供される可能性がある。ただし、ユーザは、1組のオプションに含まれるものとは異なるアプリケーションを好む場合がある。この例において、ユーザは、好ましいアプリケーションを、コンテンツを共有するためのインターフェースを通じて利用可能となるアプリケーションのリストに追加するために時間と手間を別途費やす必要がある。また、一度追加すると、ユーザは、インターフェースを通じて提供されるアプリケーションのリストにおいて好ましいアプリケーションを見つけるのに、時間と手間を別途費やす必要がある。
【0033】
様々な実施形態において、共有モジュール204は、他のエンティティまたはユーザとのコンテンツ・アイテムの共有に利用可能なアプリケーションの順序(たとえば、ランク)を決定することができる。この順序は、様々な方法で決定可能である。いくつかの実施形態において、順序は、特定のアプリケーションを用いてコンテンツ・アイテムを共有するためのユーザ選好に部分的に基づいて決定することができる。たとえば、共有モジュール204は、起動(たとえば、実行)回数および使用頻度の両方または一方に基づいて、テキスト・メッセージまたは電子メール等の他のアプリケーションよりも特定のアプリケーション「XYZ Chat」を用いてユーザが画像を共有したい旨を判定するようにしてもよい。この例において、ユーザには、画像を共有するオプションを選択した場合、画像を共有可能な異なるアプリケーションを参照する1組のオプションが提供され得るとともに、この例においては、アプリケーション「XYZ Chat」を参照する第1のオプションを含み、テキスト・メッセージング・アプリケーションおよび電子メール・アプリケーションを参照するオプションがこれに続くように、1組のオプションを順序付け可能である。
【0034】
いくつかの実施形態において、ユーザに提示されるアプリケーションの順序は、共有されているコンテンツ・アイテムに部分的に基づいて決定可能である。たとえば、コンテンツ解析モジュール206は、顔認識技術に基づいて、共有するコンテンツ・アイテムがエンティティのグループまたは個人のグループの画像である旨を判定するようにしてもよく、ユーザが特定のアプリケーション「UX Messenger」を通じてグループ内の個人の画像を(または、グループの個人と)共有したい旨を判定することができる。この例において、共有モジュール204は、アプリケーション「UX Messenger」を参照する第1のオプションを含み、テキスト・メッセージング・アプリケーションおよび電子メール・アプリケーション等の他のアプリケーションを参照するオプションがこれに続く順序で、コンテンツ・アイテムを共有するための1組のオプションを提示することができる。場合により、アプリケーションを推奨する1組のオプションは、コンテンツ・アイテムに表示されたユーザとエンティティとの間の関係に部分的に基づくことが可能であり、これは、たとえばソーシャル・ネットワーキング環境における該ユーザと該エンティティとの間の関係の強度を評価する各親密度測定結果(affinity measurement)を求めることにより決定可能である。
【0035】
別の例において、コンテンツ解析モジュール206は、共有するコンテンツ・アイテムが仕事関連の文書またはテキスト(たとえば、メモ)である旨と、ユーザが仕事の電子メールアカウントを通じてこのような仕事関連の文書を共有したい旨とを判定するようにしてもよい。この例において、共有モジュール204は、仕事の電子メール・アプリケーションを参照する第1のオプションを含み、他のアプリケーションを参照するオプションがこれに続く順序で、コンテンツ・アイテムを共有するための1組のオプションを提示することができる。
【0036】
いくつかの実施形態において、ユーザに提示されるアプリケーションの順序は、共有されているコンテンツ・アイテムの種類に部分的に基づいて決定可能である。たとえば、共有モジュール204は、アプリケーション「XYZ Share Doc」を用いて、赤線を引いた文書をユーザが共有したい旨を判定するようにしてもよい。この例において、このようなコンテンツ・アイテムが共有されている場合、共有モジュール204は、アプリケーション「XYZ Share」を参照する第1のオプションを含み、他のアプリケーションを参照するオプションがこれに続く順序で、コンテンツ・アイテムを共有するための1組のオプションを提示することができる。同様に、いくつかの実施形態において、アプリケーションの順序は、共有されているコンテンツ・アイテムのサイズまたは長さに部分的に基づいて決定されるようになっていてもよい。たとえば、ユーザは、「UX Messenger」アプリケーションを通じて、サイズが大きなコンテンツ・アイテム(たとえば、高解像度画像またはビデオ)を共有するとともに、テキスト・メッセージング・アプリケーションを通じて、サイズが小さなコンテンツ・アイテム(たとえば、低解像度画像またはビデオ)を共有したい場合がある。この例において、コンテンツ・アイテムが共有されている場合、共有モジュール204は、共有されているコンテンツ・アイテムのサイズまたは長さに部分的に基づいて、「UX Messenger」アプリケーションおよびテキスト・メッセージング・アプリケーションがランク付けされる順序で、コンテンツ・アイテムを共有するための1組のオプションを提示することができる。
【0037】
いくつかの実施形態において、ユーザに提示されるアプリケーションの順序は、コンテンツ・アイテムが共有されている地理的位置(たとえば、ジオフェンス)に部分的に基づいて決定可能である。たとえば、ユーザは、仕事中はアプリケーションAを用いてコンテンツ・アイテムを共有するとともに、自宅でコンテンツ・アイテムを共有する場合は、アプリケーションBを使用するようにしてもよい。この例において、共有モジュール204は、仕事中にユーザがコンテンツ・アイテムを共有している場合にはアプリケーションAを優先し、自宅でユーザがコンテンツ・アイテムを共有している場合にはアプリケーションBを優先する順序で、コンテンツ・アイテムを共有するための1組のオプションを提示することができる。同様に、いくつかの実施形態において、ユーザに提示されるアプリケーションの順序は、コンテンツ・アイテムが共有されている時刻に部分的に基づいて決定可能である。いくつかの実施形態において、ユーザに提示されるアプリケーションの順序は、共有されているコンテンツ・アイテムと関連付けられたメタデータに部分的に基づいて決定可能である。
【0038】
いくつかの実施形態において、ユーザに提示されるアプリケーションの順序は、コンテンツ・アイテムが共有されているエンティティに部分的に基づいて決定可能である。たとえば、共有モジュール204は、画像がユーザにより家族と共有されており、ユーザが「XYZ Chat」アプリケーションを用いてこのような個人とコンテンツ・アイテムを共有したい旨を判定するようにしてもよい。この例において、共有モジュール204は、コンテンツ・アイテムの共有に利用可能な他のアプリケーションよりも「XYZ Chat」アプリケーションが高くランク付けされる順序で、コンテンツ・アイテムを共有するための1組のオプションを提示することができる。
【0039】
いくつかの実施形態において、共有モジュール204は、特定のコンテンツ・アイテムを共有してもよい1つまたは複数の提案されたエンティティを与えることができる。たとえば、コンテンツ解析モジュール206は、共有されているコンテンツ・アイテムの解析により、コンテンツ・アイテムを共有してもよい1つまたは複数のエンティティを決定するとともに、このようなエンティティの名称を提案として提供するように構成可能である。様々な実施形態において、コンテンツ解析モジュール206は、コンテンツ・アイテムにより表示されたコンテンツ、および共有されているコンテンツ・アイテムと関連付けられたメタデータ、の両方または一方の解析により、上記のような決定を行うことができる。たとえば画像およびビデオの例において、コンテンツ解析モジュール206は、顔認識等の様々な技術を適用して、コンテンツ・アイテムを共有してもよい可能性の高いエンティティを決定することができる。同様に、文書の場合、コンテンツ解析モジュール206は、文書テキストを解析することにより、コンテンツ・アイテムを共有してもよい可能性の高いエンティティを決定することができる。様々な実施形態において、コンテンツ解析モジュール206は、コンテンツ・アイテムに対する分類解析を実行して、コンテンツ・アイテムにより捕捉された特定事項を決定するように構成可能である。コンテンツ解析モジュール206は、1つまたは複数の機械学習モデル(たとえば、コンテンツ分類子)をコンテンツ・アイテムに適用することにより、分類解析を実行することができる。特に、コンテンツ解析モジュール206は、コンテンツ・アイテムが所定の特定事項を反映するかどうかの確率を決定することができる。このモデルは、任意の機械学習技術に基づくことができ、深層畳み込みニューラル・ネットワークが挙げられるが、これに限定されない。
【0040】
様々な実施形態において、共有モジュール204は、ユーザにより過去に共有されたコンテンツ(たとえば、投稿、メッセージ等)を考慮してコンテンツ・アイテムの特定事項を解析することにより、このようなコンテキストにおいてユーザが通常提供する任意のテキスト(たとえば、キャプション)を決定することができる。このようなテキストは、ユーザによりコンテンツ・アイテムが共有されているアプリケーションに、自動的に追加可能である。
【0041】
フィードバック・モジュール208は、たとえばコンピューティング・デバイスを操作している間にユーザが起動または実行したアプリケーションの計数を保持することにより、ユーザのアプリケーション選好を学習するように構成可能である。また、フィードバック・モジュール208は、たとえばコンテンツ解析モジュール206により決定された情報(たとえば、コンテンツの種類、コンテンツに表示されたエンティティ等)のほか、コンテンツ・アイテムが共有されているエンティティの名称を用いることにより、このようなアプリケーションが起動されたコンテキストに部分的に基づいて、このような選好を学習するように構成可能である。フィードバック・モジュール208により決定されたユーザのアプリケーション選好は、コンテンツ・アイテムの共有に際してユーザに提示される1組のアプリケーションの調節に使用可能である。この情報は、1組のオプションが参照する、アプリケーションの順序の調整にも用いられ、所与のコンテキストにおいて、ユーザが共有用に好むアプリケーションが他のアプリケーションよりも高くランク付けされる順序を反映させることができる。
【0042】
いくつかの実施形態において、共有モジュール204が提供する、共有に利用可能な異なるアプリケーションを参照する1組のオプションは、ユーザのコンピューティング・デバイスにインストールされていないアプリケーションを少なくとも1つのオプションが参照するように修正可能である。たとえば、コンピューティング・デバイスにインストールされていない新たなアプリケーションが、利用可能であり、かつ、コンテンツ・アイテムの共有に適している場合がある。この例において、新たなアプリケーションは、オプションのうちの1つとして提供可能であり、かつ、オプションを選択することによって、ユーザは、この新たなアプリケーションの、コンピューティング・デバイスへのインストールを開始することができる。いくつかの実施形態において、新たなアプリケーションは、ユーザの閾値数のソーシャルつながり(たとえば、「友達」)が、該アプリケーションをそれぞれのコンピューティング・デバイスにインストールしたことに応答して、オプションとして提供されるようになっていてもよい。いくつかの実施形態において、新たなアプリケーションは、たとえば、ある金額をソーシャル・ネットワーキング・プロバイダに支払うことによって、オプションとして提供されるようになっていてもよい。
【0043】
図3は、本開示の一実施形態による、コンテンツ・アイテム306を共有するためのインターフェース304の一例300を示している。この例において、インターフェース304は、コンピューティング・デバイス302の表示画面に提示されている。さらに、インターフェース304は、コンピューティング・デバイス302上で動作するアプリケーション(たとえば、メディア・ギャラリー・アプリケーション)を通じて提供されるようになっていてもよい。コンピューティング・デバイス302を操作しているユーザは、他のエンティティと共有するコンテンツ・アイテム306を選択することができる。コンテンツ・アイテムの共有を容易化するため、インターフェース304は、選択されたコンテンツ・アイテムを、ユーザが指定する様々なエンティティのコンピューティング・デバイスと共有するためのオプション308を提示可能である。通常、選択されたコンテンツ・アイテムをユーザが共有しようとする場合、インターフェース304は、選択されたコンテンツ・アイテムを共有するための異なるアプリケーションをそれぞれ参照する1つまたは複数のオプションを提示可能である。ユーザは、インターフェースと相互作用して、コンテンツ・アイテムの共有に使用するアプリケーションを参照するオプションを選択することができる。様々な実施形態において、インターフェース304が提供する1組のオプションが参照するアプリケーションは、図4Aおよび図4Bに示すように、様々な因子に基づいてカスタマイズ可能である。
【0044】
図4Aは、本開示の様々な実施形態による、異なるソフトウェア・アプリケーションを通じてコンテンツ・アイテム406を共有するためのオプション408を提供するインターフェース404の一例400を示している。図4Aの例において、インターフェース404は、コンピューティング・デバイス402の表示画面に提示されている。さらに、インターフェース404は、コンピューティング・デバイス402上で動作するアプリケーション(たとえば、メディア・ギャラリー・アプリケーション)を通じて提供されるようになっていてもよい。コンピューティング・デバイス402を操作しているユーザは、他のエンティティと共有するコンテンツ・アイテム406を選択することができる。選択されたコンテンツ・アイテムを共有する場合、従来のシステムでは、たとえば、コンピューティング・デバイス402を操作しているユーザまたは共有されているコンテンツ・アイテム406に対して、カスタマイズされていないコンテンツ・アイテムを共有するオプション408の固定されたセットをインターフェース404がユーザに提供することができる。この例において、これらのオプション408としては、テキスト・メッセージング・アプリケーション、電子メール・アプリケーション、クラウドベースの共有プラットフォーム・アプリケーション、アプリケーション「App 1」、アプリケーション「App 2」、およびアプリケーション「App 3」が挙げられる。前述の通り、通常の手法では、これらの同じアプリケーションがオプション408として同じ順序で提示される。様々な実施形態において、提示されるオプションおよびこのようなオプションの順序は、図4Bに示すように、様々な因子に基づいてカスタマイズ可能である。
【0045】
図4Bは、本開示の様々な実施形態による、異なるソフトウェア・アプリケーションを通じてコンテンツ・アイテム456を共有するためのオプション458を提供するインターフェースの一例450を示している。図4Bの例において、インターフェース454は、コンピューティング・デバイス452の表示画面に提示されている。上述の通り、インターフェース454は、コンピューティング・デバイス452上で動作するアプリケーション(たとえば、メディア・ギャラリー・アプリケーション)を通じて提供されるようになっていてもよい。図4Aを参照して上述した通り、コンピューティング・デバイス452を操作しているユーザは、他のエンティティと共有するコンテンツ・アイテム456を選択することができる。ただし、図4Bの例において、選択されたコンテンツ・アイテムを共有する場合は、コンテンツ・アイテムを共有するためのカスタマイズされた1組のオプション458を提供するものとして、インターフェース454を示している。上述の通り、この1組のオプション458は、多様な因子に基づいてカスタマイズすることができ、たとえばコンピューティング・デバイス452を操作しているユーザの選好および共有するコンテンツ・アイテム456が挙げられる。この例において、これらのカスタム・オプション458としては、アプリケーション「App 2」、アプリケーション「App 3」、テキスト・メッセージング・アプリケーション、アプリケーション「App 1」、電子メール・アプリケーション、およびアプリケーション「App 4」が挙げられる。前述の通り、1組のオプション458のランク付けは、コンテンツ・アイテム456を共有するための、ユーザのアプリケーション選好を反映し得る。この例においては、アプリケーション「App 2」が1番にランク付けされ、アプリケーション「App 3」が2番にランク付けされ、テキスト・メッセージング・アプリケーションが3番にランク付けされ、アプリケーション「App 1」が4番にランク付けされ、電子メール・アプリケーションが5番にランク付けされ、アプリケーション「App 4」が6番にランク付けされている。
【0046】
図5は、本開示の様々な実施形態による、自動生成テキストを含むコンテンツ・アイテム506を共有するためのインターフェース504の一例500を示している。図5の例において、インターフェース504は、コンピューティング・デバイス502の表示画面に提示されている。さらに、インターフェース504は、コンピューティング・デバイス502上で動作するアプリケーション(たとえば、メディア・ギャラリー・アプリケーション)を通じて提供されるようになっていてもよい。コンピューティング・デバイス502を操作しているユーザは、他のエンティティと共有するコンテンツ・アイテム506のほか、特定のエンティティとコンテンツ・アイテム506を共有するためのアプリケーションを選択することができる。様々な実施形態においては、ユーザにより過去に共有されたコンテンツ(たとえば、投稿、メッセージ等)を考慮してコンテンツ・アイテムの特定事項を解析することにより、このような背景においておよびこのような特定事項を共有する場合において、または、このような背景においてもしくはこのような特定事項を共有する場合においてユーザが通常提供する任意のテキスト(たとえば、キャプション(caption))を決定し、コンテンツ・アイテム506が共有されているアプリケーション508にこのようなテキストを自動的に追加することができる。図5の例において、ユーザは、リトル・リーグでプレーしている家族の画像506を共有している。この例においては、他の類似画像を含むユーザの過去の共有(たとえば、投稿)および該共有と関連付けられた任意のテキストの解析により、投稿508に自動的に追加する任意のテキストを決定することができる。この例においては、ユーザが過去の共有(たとえば、投稿)において類似のコンテンツ・アイテムを記述するのに使用したテキスト510(たとえば、「#SFゲーターズ(SFGators) #ビリー(Billy) #リトル・リーグ(LittleLeague)」が投稿508に自動追加されるものとして示している。
【0047】
図6は、本開示の一実施形態による、コンテンツ・アイテムを共有するためのソフトウェア・アプリケーションを決定する例示的な方法を示している。当然のことながら、特に明記しない限り、本明細書に記載の様々な実施形態の範囲において、類似もしくは別の順序または並行して実行される付加的なステップ、より少ないステップ、または別のステップが存在し得る。ブロック602において、例示的な方法600は、共有する少なくとも1つのコンテンツ・アイテムを決定可能である。ブロック604においては、コンテンツ・アイテムを共有する1つまたは複数のアプリケーションを決定可能である。ブロック606において、アプリケーションは、1つまたは複数の基準に少なくとも部分的に基づいてランク付け可能である。ブロック608において、ランク付けしたアプリケーションは、コンテンツ・アイテムを共有する1組のオプションとして提供可能である。コンピューティング・デバイスを操作しているユーザは、オプションのうちの少なくとも1つを選択し、オプションと関連付けられたアプリケーションを通じて、コンテンツ・アイテムを共有可能である。
【0048】
本開示の様々な実施形態に関連する多くの他の使用、用途、および/または変形例が存在し得ることが想到される。例えば、いくつかの場合において、ユーザは、開示された技術を利用するか否かを選択することができる。開示された技術はまた、様々なプライバシー設定および嗜好が維持され、個人情報の漏洩を防止できることを保証することができる。別の例では、本開示の様々な実施形態は、経時的に学習、改善、および/または改良され得る。
【0049】
ソーシャル・ネットワーキング・システム − 例示的な実装
図7は、本開示の実施形態に係る、エンハンスト・ビデオ符号化のための様々な実施形態において利用され得る例示的なシステム700のネットワーク図を例示する。システム700は、1つまたは複数のユーザ・デバイス710と、1つまたは複数の外部システム720と、ソーシャル・ネットワーキング・システム730と、ネットワーク750とを含む。一実施形態において、上述される実施形態に関連して議論されるソーシャル・ネットワーキング・サービス、プロバイダ、および/またはシステムは、ソーシャル・ネットワーキング・システム730として実装され得る。例示の目的のために、図7によって示される、システム700の実施形態は、単一の外部システム720と、単一のユーザ・デバイス710とを含む。ただし、他の実施形態において、システム700は、より多くのユーザ・デバイス710、および/または、より多くの外部システム720を含んでもよい。特定の実施形態において、ソーシャル・ネットワーキング・システム730は、ソーシャル・ネットワーク・プロバイダによって運営されるのに対して、外部システム720は、異なるエンティティによって運営され得るという点で、ソーシャル・ネットワーキング・システム730とは別個のものである。しかしながら、様々な実施形態において、ソーシャル・ネットワーキング・システム730および外部システム720は、共に動作して、ソーシャル・ネットワーキング・システム730のユーザ(またはメンバー)に対してソーシャル・ネットワーキング・サービスを提供する。この意味において、ソーシャル・ネットワーキング・システム730は、外部システム720などの他のシステムがインターネット上のユーザに対してソーシャル・ネットワーキング・サービスおよび機能を提供するために使用し得るプラットフォームまたはバックボーンを提供する。
【0050】
ユーザ・デバイス710は、ユーザから入力を受け取り、ネットワーク750を通じてデータを送受信することができる1つまたは複数のコンピューティング・デバイスを備える。一実施形態において、ユーザ・デバイス710は、例えば、マイクロソフト・ウィンドウズ(登録商標)と互換性のあるオペレーティング・システム(OS)、Apple OS X、および/またはLinux(登録商標)ディストリビューションを実行する従来のコンピュータ・システムである。別の実施形態において、ユーザ・デバイス710は、スマートフォン、タブレット、携帯情報端末(PDA:personal digital assistant)、携帯電話等などのコンピュータ機能を有するデバイスであってもよい。ユーザ・デバイス710は、ネットワーク750を通じて通信するように構成される。ユーザ・デバイス710は、アプリケーション、例えば、ユーザ・デバイス710のユーザがソーシャル・ネットワーキング・システム730と相互作用することを可能にするブラウザ・アプリケーションを実行することができる。別の実施形態において、ユーザ・デバイス710は、iOSおよびANDROID(登録商標)などの、ユーザ・デバイス710のネイティブ・オペレーティング・システムによって提供されるアプリケーション・プログラミング・インターフェース(API)を通じてソーシャル・ネットワーキング・システム730を相互作用する。ユーザ・デバイス710は、ネットワーク750を通じて外部システム720およびソーシャル・ネットワーキング・システム730と通信するように構成される。ネットワーク750は、有線通信システムおよび/または無線通信システムを使用する、ローカル・エリア・ネットワークおよび/または広域ネットワークの任意の組み合わせを備え得る。
【0051】
1つの実施形態において、ネットワーク750は、標準的な通信技術およびプロトコルを使用する。したがって、ネットワーク750は、イーサネット(登録商標)、802.11、マイクロ波アクセスのための世界的相互運用性(WiMAX:worldwide interoperability for microwave access)、3G、4G、CDMA、GSM(登録商標)、LTE、デジタル加入者線(DSL:digital subscriber line)等などの技術を使用するリンクを含み得る。同様に、ネットワーク750上で使用されるネットワーキング・プロトコルは、マルチプロトコル・ラベル・スイッチング(MPLS:multiprotocol label switching)、送信制御プロトコル/インターネット・プロトコル(TCP/IP)、ユーザ・データグラム・プロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)、簡易メール転送プロトコル(SMTP:simple mail transfer protocol)、ファイル転送プロトコル(FTP)などを含み得る。ネットワーク750上で交換されるデータは、ハイパーテキスト・マークアップ言語(HTML)および拡張マークアップ言語(XML)を含む技術および/またはフォーマットを使用して表現され得る。また、全部または一部のリンクは、セキュア・ソケット・レイヤ(SSL)、トランスポート・レイヤ・セキュリティ(TLS)、およびインターネット・プロトコル・セキュリティ(IPsec)などの従来の暗号化技術を使用して暗号化され得る。
【0052】
1つの実施形態において、ユーザ・デバイス710は、外部システム720から、およびソーシャル・ネットワーキング・システム730から受信されるマークアップ言語文書714を、ブラウザ・アプリケーション712を使用して処理することによって、外部システム720からのコンテンツおよび/またはソーシャル・ネットワーキング・システム730からのコンテンツを表示し得る。マークアップ言語文書714は、コンテンツと、そのコンテンツのフォーマッティングまたは表示方法を記述する1つまたは複数の命令とを識別する。マークアップ言語文書714内に含まれる命令を実行することによって、ブラウザ・アプリケーション712は、マークアップ言語文書714によって記述されたフォーマットまたは表示方法を使用して、識別されたコンテンツを表示する。例えば、マークアップ言語文書714は、外部システム720およびソーシャル・ネットワーキング・システム730から得られたテキストおよび/または画像データを含む複数のフレームを有するウェブ・ページを生成および表示するための命令を含む。様々な実施形態において、マークアップ言語文書714は、拡張マークアップ言語(XML)データ、拡張ハイパーテキスト・マークアップ言語(XHTML)データ、または、他のマークアップ言語データを含むデータ・ファイルを備える。また、マークアップ言語文書714は、外部システム720とユーザ・デバイス710との間のデータ交換を容易にするためのジャバスクリプト・オブジェクト・ノーテーション(JSON:JavaScript(登録商標)Object Notation)データ、パディング付きのJSON(JSONP:JSON with padding)データ、およびジャバスクリプト・データを含み得る。ユーザ・デバイス710上のブラウザ・アプリケーション712は、ジャバスクリプト・コンパイラを使用して、マークアップ言語文書714を復号し得る。
【0053】
マークアップ言語文書714は、FLASH(商標)アプリケーションまたはUnity(商標)アプリケーション、Silverlight(商標)アプリケーション・フレームワーク等などの、アプリケーションまたはアプリケーション・フレームワークも含み、または、これらに対してもリンクし得る。
【0054】
1つの実施形態において、ユーザ・デバイス710は、ユーザ・デバイス710のユーザがソーシャル・ネットワーキング・システム730へログインしたかを示すデータを含む、1つまたは複数のクッキー716も含む。クッキー716は、ソーシャル・ネットワーキング・システム730からユーザ・デバイス710へ通信されるデータの変更を可能にし得る。
【0055】
外部システム720は、1つまたは複数のウェブ・ページ722a、722bを含む、1つまたは複数のウェブ・サーバを含む。1つまたは複数のウェブ・ページ722a、722bは、ネットワーク750を使用して、ユーザ・デバイス710へ通信される。外部システム720は、ソーシャル・ネットワーキング・システム730とは別個である。例えば、外部システム720は、第1のドメインに対して関連付けられるが、ソーシャル・ネットワーキング・システム730は、別個のソーシャル・ネットワーキング・ドメインに対して関連付けられる。外部システム720に含まれるウェブ・ページ722a、722bは、コンテンツを識別し、識別されたコンテンツのフォーマッティングおよび表示方法を特定する命令を含むマークアップ言語文書714を備える。前述したように、多くの変形例または他の可能性があり得ることを理解されたい。
【0056】
ソーシャル・ネットワーキング・システム730は、複数のユーザを含み、ソーシャル・ネットワークのユーザに対して、ソーシャル・ネットワークの他のユーザと通信および相互作用するための能力を提供する、ソーシャル・ネットワークのための1つまたは複数のコンピューティング・デバイスを含む。いくつかの例において、ソーシャル・ネットワークは、グラフ、すなわち、エッジとノードとを含むデータ構造によって表現され得る。データベース、オブジェクト、クラス、メタ要素、ファイル、または任意の他のデータ構造を含むが、これらに限定されない、他のデータ構造も、ソーシャル・ネットワークを表現するために使用され得る。ソーシャル・ネットワーキング・システム730は、運営者によって運営され、管理され、または制御され得る。ソーシャル・ネットワーキング・システム730の運営者は、ソーシャル・ネットワーキング・システム730内でコンテンツを管理し、政策を規制し、使用法メトリック(usage metrics)を収集するための人間、自動化されたアプリケーション、または一連のアプリケーションであってもよい。任意のタイプの運営者が使用され得る。
【0057】
ユーザは、ソーシャル・ネットワーキング・システム730に加入し、次いで、そのユーザがつなげられることを望む、ソーシャル・ネットワーキング・システム730の任意の数の他のユーザへのつながりを追加し得る。本明細書において、「友達」という用語は、ユーザがソーシャル・ネットワーキング・システム730を通じてつながり、関連、または関係を形成した、ソーシャル・ネットワーキング・システム730の任意の他のユーザを指す。例えば、一実施形態において、ソーシャル・ネットワーキング・システム730内のユーザが、ソーシャル・グラフ内のノードとして表現される場合、「友達」という用語は、2つのユーザ・ノード間に形成され、かつ、2つのユーザ・ノードを直接接続するエッジを指し得る。
【0058】
つながりは、ユーザによって明示的に追加されても、または、ユーザの共通の特性(例えば、同じ教育機関の卒業生であるユーザ)に基づいて、ソーシャル・ネットワーキング・システム730によって自動的に作成されてもよい。例えば、第1のユーザは、友達になりたい特定の他のユーザを具体的に選択する。ソーシャル・ネットワーキング・システム730におけるつながりは、通常は双方向であるが、双方向である必要はなく、そのため、「ユーザ」および「友達」という用語は、枠組みに依存する。ソーシャル・ネットワーキング・システム730のユーザ間のつながりは、通常は、双務的(「二方向」)または「相互的」であるが、つながりは、片務的、または「一方向」であってもよい。例えば、ボブおよびジョーの両者が、ソーシャル・ネットワーキング・システム730のユーザであり、互いにつながっている場合、ボブおよびジョーは、互いのつながりである。他方で、ボブは、ジョーによってソーシャル・ネットワーキング・システム730へ通信されたデータを見るためにジョーとつながることを欲するが、ジョーは、相互的なつながりを形成することを欲しない場合、片務的なつながりが確立され得る。ユーザ間のつながりは、直接的なつながりであり得る。ただし、ソーシャル・ネットワーキング・システム730のいくつかの実施形態は、つながりが、1つまたは複数のつながりのレベルまたは分離度を通じた間接的なものとなることを可能にする。
【0059】
ユーザ間のつながりを確立および維持し、ユーザ間の相互作用を可能にすることに加えて、ソーシャル・ネットワーキング・システム730は、ソーシャル・ネットワーキング・システム730によってサポートされる様々なタイプのアイテムに対してアクションを行うための能力をユーザに対して提供する。こうしたアイテムは、ソーシャル・ネットワーキング・システム730のユーザが所属し得るグループまたはネットワーク(すなわち、人々、エンティティ、および概念のソーシャル・ネットワーク)、ユーザが興味を持ち得るイベントまたはカレンダー入力、ユーザがソーシャル・ネットワーキング・システム730を通じて使用し得るコンピュータベースのアプリケーション、ソーシャル・ネットワーキング・システム730によって提供されるサービスを通じてまたはソーシャル・ネットワーキング・システム730を通じてユーザがアイテムを購入または販売することを可能にする取引、ならびにユーザがソーシャル・ネットワーキング・システム730内外で実行し得る広告との相互作用を含み得る。これらは、ユーザがソーシャル・ネットワーキング・システム730上で作用を与え得るアイテムのわずかな例にすぎず、多くの他の例が可能である。ユーザは、ソーシャル・ネットワーキング・システム730において、または、ソーシャル・ネットワーキング・システム730とは別個の外部システム720もしくはネットワーク750を通じてソーシャル・ネットワーキング・システム730に対して結合される外部システム720において表現されることが可能なありとあらゆるものと相互作用し得る。
【0060】
ソーシャル・ネットワーキング・システム730は、多様なエンティティとリンクすることも可能である。例えば、ソーシャル・ネットワーキング・システム730は、ユーザが互いに相互作用すること、および、API、ウェブ・サービス、または他の通信チャネルを通じて外部システム720または他のエンティティと相互作用することを可能にする。ソーシャル・ネットワーキング・システム730は、複数のエッジによって相互接続された複数のノードを備える「ソーシャル・グラフ」を生成および維持する。ソーシャル・グラフ内の各ノードは、別のノードに対して作用を与え得るエンティティおよび/または別のノードによって作用を与えられ得るエンティティを表現し得る。ソーシャル・グラフは、様々なタイプのノードを含み得る。ノードタイプの例は、ユーザ、非人間エンティティ、コンテンツ・アイテム、ウェブ・ページ、グループ、アクティビティ、メッセージ、概念、およびソーシャル・ネットワーキング・システム730内のオブジェクトによって表現され得る任意の他のものを含む。ソーシャル・グラフ内の2つのノード間のエッジは、ノード関係から、またはノードのうちの一方によって他方に対して実行されたアクションから生じ得る、2つのノード間の特定の種類のつながり、または関連を表現し得る。いくつかの場合において、ノード間のエッジは、重み付けされ得る。エッジの重みは、ノード間のつながりまたは関連の強度などの、そのエッジに対して関連付けられた属性を表現し得る。異なるタイプのエッジが、異なる重みと共に提供され得る。例えば、あるユーザが別のユーザに対して「いいね」を表明する際に作成されるエッジには、ある重みが与えられ得る一方で、ユーザが別のユーザと友達になる際に作成されるエッジには、異なる重みが与えられ得る。
【0061】
例として、第1のユーザが、第2のユーザを友達として識別する場合、第1のユーザを表現するノードと第2のユーザを表現する第2のノードとを接続する、ソーシャル・グラフ内のエッジが生成される。様々なノードが互いに関連し、または相互作用するにつれて、ソーシャル・ネットワーキング・システム730は、様々なノードを接続するエッジを変更して、関係および相互作用を反映する。
【0062】
ソーシャル・ネットワーキング・システム730は、ユーザによるソーシャル・ネットワーキング・システム730との相互作用を高める、ユーザにより生成されたコンテンツも含む。ユーザにより生成されたコンテンツは、ユーザがソーシャル・ネットワーキング・システム730に対して追加し、アップロードし、送信し、または「投稿し」得るあらゆるものを含み得る。例えば、ユーザは、ユーザ・デバイス710からソーシャル・ネットワーキング・システム730への投稿を通信する。投稿は、ステータス・アップデートもしくは他の文字情報などのデータ、位置情報、写真などの画像、ビデオ、リンク、音楽、または、他の同様のデータおよび/もしくはメディアを含み得る。コンテンツも、第三者によってソーシャル・ネットワーキング・システム730に対して追加され得る。コンテンツ「アイテム」は、ソーシャル・ネットワーキング・システム730においてオブジェクトとして表現される。このようにして、ソーシャル・ネットワーキング・システム730のユーザは、様々な通信チャネルを通じて様々なタイプのテキストおよびコンテンツ・アイテムを投稿することによって、互いに通信することを促される。そのような通信は、ユーザ同士の相互作用を増加させ、ユーザがソーシャル・ネットワーキング・システム730と相互作用する頻度を増加させる。
【0063】
ソーシャル・ネットワーキング・システム730は、ウェブ・サーバ732と、API要求サーバ734と、ユーザ・プロファイル・ストア736と、つながりストア738と、動作ロガー740と、アクティビティ・ログ742と、認証サーバ744とを含む。本発明の一実施形態において、ソーシャル・ネットワーキング・システム730は、様々なアプリケーションのための追加的な構成要素、より少ない構成要素、または異なる構成要素を含み得る。ネットワーク・インターフェース、セキュリティ機構、負荷分散装置、フェイルオーバ・サーバ、管理およびネットワーク操作コンソールなどの他の構成要素は、本システムの詳細を曖昧にしないように、図示されていない。
【0064】
ユーザ・プロファイル・ストア736は、ユーザによって申告され、またはソーシャル・ネットワーキング・システム730によって推測された職歴、学歴、趣味または嗜好、住所などの経歴的情報、人口学的情報、および他のタイプの記述的情報を含む、ユーザ・アカウントに関する情報を維持する。この情報は、各ユーザが一意に識別されるように、ユーザ・プロファイル・ストア736内に記憶される。ソーシャル・ネットワーキング・システム730は、異なるユーザ間の1つまたは複数のつながりを記述するデータも、つながりストア738内に記憶する。つながり情報は、同様または共通の職歴、グループ・メンバーシップ、趣味、または学歴を有するユーザを示し得る。また、ソーシャル・ネットワーキング・システム730は、ユーザの他のユーザとの関係をユーザが特定することを可能にする、異なるユーザ間におけるユーザによって定義されたつながりを含む。例えば、ユーザによって定義されたつながりは、友達、同僚、パートナー等などの、ユーザの実生活の関係と並行する、他のユーザとの関係をユーザが生成することを可能にする。ユーザは、予め定義されたタイプのつながりから選択しても、またはユーザ自身のつながりタイプを必要に応じて定義してもよい。非人間エンティティ、バケット、クラスタ・センタ、画像、興味、ページ、外部システム、概念等などの、ソーシャル・ネットワーキング・システム730内の他のノードとのつながりも、つながりストア738内に記憶される。
【0065】
ソーシャル・ネットワーキング・システム730は、ユーザが相互作用し得るオブジェクトに関するデータを維持する。このデータを維持するために、ユーザ・プロファイル・ストア736およびつながりストア738は、ソーシャル・ネットワーキング・システム730によって維持されるオブジェクトの対応するタイプのインスタンスを記憶する。各オブジェクト・タイプは、オブジェクトのタイプに適した情報を記憶するのに適した情報フィールドを有する。例えば、ユーザ・プロファイル・ストア736は、ユーザのアカウントおよびユーザのアカウントに関連した情報を記述するのに適したフィールドを有するデータ構造を含む。特定のタイプの新たなオブジェクトが作成される場合、ソーシャル・ネットワーキング・システム730は、対応するタイプの新たなデータ構造を初期化し、その新たなデータ構造に対して一意のオブジェクト識別子を割り当て、必要に応じて、そのオブジェクトに対してデータを追加することを開始する。これは、例えば、ユーザがソーシャル・ネットワーキング・システム730のユーザになった場合に発生し、ソーシャル・ネットワーキング・システム730は、ユーザ・プロファイル・ストア736内にユーザ・プロファイルの新たなインスタンスを生成し、ユーザ・アカウントに対して一意の識別子を割り当て、ユーザによって提供される情報をユーザ・アカウントのフィールドへ投入し始める。
【0066】
つながりストア738は、他のユーザに対するユーザのつながり、外部システム720に対するつながり、または他のエンティティに対するつながりを記述するのに適したデータ構造を含む。つながりストア738は、つながりタイプもユーザのつながりと関連付け得る。つながりタイプは、ユーザのプライバシー設定と共に使用されて、ユーザに関する情報に対するアクセスを規制し得る。本発明の一実施形態において、ユーザ・プロファイル・ストア736およびつながりストア738は、連合データベースとして実装され得る。
【0067】
つながりストア738、ユーザ・プロファイル・ストア736、およびアクティビティ・ログ742内に記憶されるデータは、ノードを使用して、ノードを接続する様々なオブジェクトおよびエッジを識別して、異なるオブジェクト間の関係を識別するソーシャル・グラフをソーシャル・ネットワーキング・システム730が生成することを可能にする。例えば、第1のユーザが、ソーシャル・ネットワーキング・システム730内で第2のユーザとのつながりを確立する場合、ユーザ・プロファイル・ストア736からの第1のユーザおよび第2のユーザのユーザ・アカウントは、ソーシャル・グラフ内のノードとして動作し得る。つながりストア738によって記憶される、第1のユーザと第2のユーザとの間のつながりは、第1のユーザおよび第2のユーザに対して関連付けられるノード間のエッジである。この例を続けると、第2のユーザは、次いで、第1のユーザに対して、ソーシャル・ネットワーキング・システム730内でメッセージを送信し得る。メッセージを送信するアクションは、第1のユーザおよび第2のユーザを表現する、ソーシャル・グラフ内の2つのノード間の別のエッジであり、メッセージを送信するアクションは、記憶され得る。また、メッセージ自体が、第1のユーザを表現するノードおよび第2のユーザを表現するノードに対して接続される別のノードとして、ソーシャル・グラフにおいて識別され、ソーシャル・グラフに含まれ得る。
【0068】
別の例において、第1のユーザは、ソーシャル・ネットワーキング・システム730によって維持される画像において(または、代替的に、ソーシャル・ネットワーキング・システム730の外部の別のシステムによって維持される画像において)第2のユーザをタグ付けし得る。画像は、それ自体がソーシャル・ネットワーキング・システム730内のノードとして表現され得る。このタグ付けアクションは、ユーザの各々と画像との間にエッジを作成するだけでなく、第1のユーザと第2のユーザとの間のエッジも作成し得る。画像もソーシャル・グラフ内のノードである。また別の例において、ユーザが、イベントへ参加することを確かめる場合、そのユーザおよびそのイベントは、ユーザ・プロファイル・ストア736から取得されるノードであり、そのイベントへの参加は、アクティビティ・ログ742から得られ得るノード間のエッジである。ソーシャル・グラフを生成および維持することによって、ソーシャル・ネットワーキング・システム730は、多くの異なるタイプのオブジェクトを記述するデータ、ならびに、それらのオブジェクト間の相互作用およびつながりを含み、社会的に関連する情報の豊富なソースを提供する。
【0069】
ウェブ・サーバ732は、ソーシャル・ネットワーキング・システム730を、ネットワーク750を通じて、1つもしくは複数のユーザ・デバイス710および/または1つもしくは複数の外部システム720に対してリンクする。ウェブ・サーバ732は、ウェブ・ページ、およびJava(登録商標)、JavaScript、Flash、XMLなどの他のウェブ関連コンテンツを供給する。ウェブ・サーバ732は、メール・サーバを含み、または、ソーシャル・ネットワーキング・システム730と1つもしくは複数のユーザ・デバイス710との間のメッセージを受信およびルーティングするための他のメッセージング機能を含み得る。メッセージは、インスタント・メッセージ、キュー・メッセージ(例えば、電子メール)、テキストおよびSMSメッセージ、または任意の他の適切なメッセージング・フォーマットであり得る。
【0070】
API要求サーバ734は、1つまたは複数の外部システム720およびユーザ・デバイス710が、1つまたは複数のAPI関数を呼び出すことによって、ソーシャル・ネットワーキング・システム730からのアクセス情報を呼び出すことを可能にする。API要求サーバ734は、外部システム720が、APIを呼び出すことによって、ソーシャル・ネットワーキング・システム730に対して情報を送信することも可能にし得る。外部システム720は、1つの実施形態において、ネットワーク750を通じてソーシャル・ネットワーキング・システム730へAPI要求を送信し、API要求サーバ734は、そのAPI要求を受信する。API要求サーバ734は、API要求に対して関連付けられたAPIを呼び出すことによって要求を処理して、適当な応答を生成する。API要求サーバ734は、その適当な応答を、ネットワーク750を通じて外部システム720へ通信する。例えば、API要求に応答して、API要求サーバ734は、外部システム720に対してログインしたユーザのつながりなどの、ユーザに対して関連付けられたデータを収集し、収集されたデータを外部システム720へ通信する。別の実施形態において、ユーザ・デバイス710は、外部システム720と同じ手法で、APIを通じてソーシャル・ネットワーキング・システム730と通信する。
【0071】
アクション・ロガー740は、ソーシャル・ネットワーキング・システム730内での、および/またはソーシャル・ネットワーキング・システム730外でのユーザ・アクションに関する通信をウェブ・サーバ732から受信することが可能である。アクション・ロガー740は、ユーザ・アクションに関する情報をアクティビティ・ログ742へ投入し、ソーシャル・ネットワーキング・システム730の内部で、およびソーシャル・ネットワーキング・システム730の外部で、そのユーザによって行われた様々なアクションをソーシャル・ネットワーキング・システム730が発見することを可能にする。特定のユーザが、ソーシャル・ネットワーキング・システム730上の別のノードに関して行う任意のアクションは、アクティビティ・ログ742内または同様のデータベースもしくは他のデータ・レポジトリ内で維持される情報を通じて、各ユーザのアカウントに対して関連付けられ得る。識別および記憶される、ソーシャル・ネットワーキング・システム730内でユーザによって行われるアクションの例は、例えば、別のユーザに対するつながりを追加すること、別のユーザへメッセージを送信すること、別のユーザからのメッセージを読むこと、別のユーザに対して関連付けられるコンテンツを視聴すること、別のユーザによって投稿されたイベントに参加すること、画像を投稿すること、画像を投稿しようと試行すること、または、別のユーザもしくは別のオブジェクトと相互作用する他のアクションを含み得る。ユーザが、ソーシャル・ネットワーキング・システム730内でアクションを行う場合、そのアクションは、アクティビティ・ログ742内に記録される。一実施形態において、ソーシャル・ネットワーキング・システム730は、アクティビティ・ログ742をエントリのデータベースとして維持する。アクションが、ソーシャル・ネットワーキング・システム730内で行われる場合、そのアクションについてのエントリが、アクティビティ・ログ742に対して追加される。アクティビティ・ログ742は、アクション・ログと称され得る。
【0072】
また、ユーザ・アクションは、ソーシャル・ネットワーキング・システム730とは別個の外部システム720などの、ソーシャル・ネットワーキング・システム730の外部のエンティティ内で発生する概念およびアクションに対して関連付けられ得る。例えば、アクション・ロガー740は、ユーザによる外部システム720との相互作用を記述するデータを、ウェブ・サーバ732から受信し得る。この例において、外部システム720は、ソーシャル・グラフにおける構造化されたアクションおよびオブジェクトに従って、ユーザによる相互作用を報告する。
【0073】
ユーザが外部システム720と相互作用するアクションの他の例は、ユーザが外部システム720もしくは別のエンティティにおいて興味を表現すること、外部システム720もしくは外部システム720内のウェブ・ページ722aと議論するソーシャル・ネットワーキング・システム730に対してユーザがコメントを投稿すること、ユーザがソーシャル・ネットワーキング・システム730に対してユニフォーム・リソース・ロケータ(URL)もしくは外部システム720に対して関連付けられる他の識別子を投稿すること、ユーザが外部システム720に対して関連付けられるイベントへ参加すること、または、外部システム720に関連する、ユーザによる任意の他のアクションを含む。したがって、アクティビティ・ログ742は、ソーシャル・ネットワーキング・システム730のユーザと、ソーシャル・ネットワーキング・システム730とは別個の外部システム720との間の相互作用を記述するアクションを含み得る。
【0074】
認証サーバ744は、ソーシャル・ネットワーキング・システム730のユーザの1つまたは複数のプライバシー設定を強化する。ユーザのプライバシー設定は、ユーザに対して関連付けられる特定の情報がどのように共有され得るかを決定する。プライバシー設定は、ユーザに対して関連付けられる特定の情報の仕様、および情報が共有され得る1つまたは複数のエンティティの仕様を備える。情報が共有され得るエンティティの例は、他のユーザ、アプリケーション、外部システム720、または、その情報に潜在的にアクセスし得る任意のエンティティを含み得る。ユーザによって共有され得る情報は、プロフィール写真などのユーザ・アカウント情報、ユーザに対して関連付けられる電話番号、ユーザのつながり、つながりを追加すること、ユーザ・プロフィール情報を変更することなどのユーザによって行われるアクション等を備える。
【0075】
プライバシー設定仕様は、異なるレベルの粒度で提供され得る。例えば、プライバシー設定は、他のユーザと共有されるべき具体的な情報を識別し得る。プライバシー設定は、職場電話番号、または、プロフィール写真、自宅電話番号、およびステータスを含む個人情報などの関連情報の具体的なセットを識別する。代替的に、プライバシー設定は、ユーザに対して関連付けられる全ての情報に対して適用されてもよい。特定の情報にアクセスすることができるエンティティのセットの仕様も、様々なレベルの粒度で特定され得る。情報が共有され得るエンティティの様々なセットは、例えば、ユーザの全ての友達、友達の全ての友達、全てのアプリケーション、または全ての外部システム720を含み得る。1つの実施形態は、エンティティのセットの仕様がエンティティの一覧表を備えることを可能にする。例えば、ユーザは、一定の情報に対してアクセスすることを許可される外部システム720のリストを提供し得る。別の実施形態は、情報に対してアクセスすることを許可されない例外と共にエンティティのセットを仕様が備えることを可能にする。例えば、ユーザは、全ての外部システム720がユーザの職場情報に対してアクセスすることを許可し得るが、職場情報に対してアクセスすることを許可されない外部システム720のリストを特定し得る。一定の実施形態は、一定の情報に対してアクセスすることを許可されない例外のリストを「ブロック・リスト」と呼ぶ。ユーザによって特定されるブロック・リストに所属する外部システム720は、プライバシー設定において特定される情報に対してアクセスすることをブロックされる。情報の仕様の粒度と、情報が共有されるエンティティの仕様の粒度との様々な組み合わせが可能である。例えば、全ての個人情報は、友達と共有され得るのに対して、全ての職場情報は、友達の友達と共有され得る。
【0076】
認証サーバ744は、ユーザに対して関連付けられる一定の情報がユーザの友達、外部システム720、ならびに/または他のアプリケーションおよびエンティティによってアクセスされ得るかを決定するためのロジックを含む。外部システム720は、ユーザの職場電話番号などの、ユーザのより個人的かつ機密的な情報に対してアクセスするために、認証サーバ744からの認証を必要とし得る。ユーザのプライバシー設定に基づいて、認証サーバ744は、別のユーザ、外部システム720、アプリケーション、または別のエンティティが、ユーザによって行われるアクションに関する情報を含む、ユーザに対して関連付けられる情報に対してアクセスすることを許可されているかを決定する。
【0077】
いくつかの実施形態では、ソーシャル・ネットワーキング・システム730は、コンテンツ共有モジュール746を備えることができる。コンテンツ共有モジュール746は、例えば、図1のコンテンツ共有モジュール102として実装されてもよい。前述したように、多くの変形例または他の可能性が存在し得ることを理解されたい。
【0078】
ハードウェア実装
前述のプロセスおよび特徴は、多種多様なマシンおよびコンピュータ・システム・アーキテクチャによって、ならびに、多種多様なネットワークおよびコンピューティング環境において実装され得る。図8は、本発明の一実施形態に係る、本明細書において説明される実施形態のうちの1つまたは複数を実装するために使用され得るコンピュータ・システム800の例を例示する。コンピュータ・システム800は、コンピュータ・システム800に対して、本明細書において議論されるプロセスおよび特徴を実行させるための命令のセットを含む。コンピュータ・システム800は、他のマシンへ接続され(例えば、ネットワーク化され)得る。ネットワーク化された配置において、コンピュータ・システム800は、クライアント/サーバ・ネットワーク環境内のサーバ・マシンもしくはクライアント・マシンの資格において動作し、または、ピア・ツー・ピア(もしくは分散)・ネットワーク環境内のピア・マシンとして動作し得る。本発明の一実施形態において、コンピュータ・システム800は、ソーシャル・ネットワーキング・システム830、ユーザ・デバイス710、および外部システム820、または、これらの構成要素であり得る。本発明の一実施形態において、コンピュータ・システム800は、ソーシャル・ネットワーキング・システム830の全部または一部を構成する多くのサーバのうちの1つのサーバであり得る。
【0079】
コンピュータ・システム800は、プロセッサ802と、キャッシュ804と、コンピュータ読取可能な媒体上に記憶され、本明細書において説明されるプロセスおよび特徴へ向けられた、1つまたは複数の実行可能なモジュールおよびドライバとを含む。また、コンピュータ・システム800は、高性能入出力(I/O)バス806と、標準I/Oバス808とを含む。ホスト・ブリッジ810は、プロセッサ802を高性能I/Oバス806に対して結合する一方で、I/Oバス・ブリッジ812は、2つのバス806および808を互いに結合する。システム・メモリ814および1つまたは複数のネットワーク・インターフェース816は、高性能I/Oバス806へ結合される。コンピュータ・システム800は、ビデオ・メモリと、ビデオ・メモリに対して結合される表示デバイスとをさらに含んでもよい(図示せず)。マス・ストレージ818およびI/Oポート820は、標準I/Oバス808へ結合される。コンピュータ・システム800は、標準I/Oバス808に対して結合される、キーボードおよびポインティング・デバイス、表示デバイス、または他の入出力デバイス(図示せず)を随意的に含んでもよい。全体的に、これらの要素は、カリフォルニア州サンタ・クララのインテル・コーポレーション社(Intel Corporation)によって製造されるx86互換性のあるプロセッサ、カリフォルニア州サニーヴェイルのアドバンスト・マイクロ・デバイス社(AMD:Advanced Micro Devices,Inc)によって製造されるx86互換性のあるプロセッサ、および任意の他の適切なプロセッサを含むが、これらに限定されない、広範なカテゴリのコンピュータ・ハードウェア・システムを表現することが意図される。
【0080】
オペレーティング・システムは、ソフトウェア・アプリケーション(図示せず)へのデータの入力およびソフトウェア・アプリケーションからのデータの出力を含む、コンピュータ・システム800の動作を管理および制御する。オペレーティング・システムは、システム上で実行されているソフトウェア・アプリケーションと、システムのハードウェア構成要素との間のインターフェースを提供する。任意の適切なオペレーティング・システム、例えば、LINUXオペレーティング・システム、カリフォルニア州クパチーノのアップル・コンピュータ社(Apple Computer,Inc.)から市販されているアップル・マッキントッシュ・オペレーティング・システム、UNIX(登録商標)オペレーティング・システム、マイクロソフト(登録商標)ウィンドウズ(登録商標)オペレーティング・システム、BSDオペレーティング・システム等などが使用され得る。他の実装も可能である。
【0081】
コンピュータ・システム800の要素は、下記においてより詳細に説明される。具体的には、ネットワーク・インターフェース816は、コンピュータ・システム800と、幅広いネットワークのうちの任意のもの、例えば、イーサネット(例えば、IEEE802.3)・ネットワーク、バックプレーン等などとの間の通信を提供する。マス・ストレージ818は、上記に識別されたそれぞれのコンピューティング・システムによって実装される上述されたプロセスおよび特徴を実行するためのデータおよびプログラミング命令のための永続的なストレージを提供するのに対して、システム・メモリ814(例えば、DRAM)は、プロセッサ802によって実行される場合のデータおよびプログラミング命令のための一時的なストレージを提供する。I/Oポート820は、コンピュータ・システム800へ結合され得る付加的な周辺デバイス間の通信を提供する、1つまたは複数のシリアル通信ポートおよび/またはパラレル通信ポートであり得る。
【0082】
コンピュータ・システム800は、多様なシステム・アーキテクチャを含むことができ、コンピュータ・システム800の様々な構成要素は、再配置されてもよい。例えば、キャッシュ804は、プロセッサ802と共にチップ上に実装されてもよい。代替的に、キャッシュ804およびプロセッサ802は、「プロセッサ・モジュール」としてまとめられて、プロセッサ802が「プロセッサ・コア」と称されてもよい。さらに、本発明の一定の実施形態は、上記構成要素の全部を必要としなくても、または、含まなくてもよい。例えば、標準I/Oバス808へ結合される周辺デバイスは、高性能I/Oバス806へ結合されてもよい。また、いくつかの実施形態において、単一のバスのみが存在して、コンピュータ・システム800の構成要素が、その単一のバスへ結合されてもよい。さらに、コンピュータ・システム800は、付加的なプロセッサ、記憶デバイス、またはメモリなどの付加的な構成要素を含んでもよい。
【0083】
一般に、本明細書において説明されるプロセスおよび特徴は、オペレーティング・システムの一部もしくは特定のアプリケーション、構成要素、プログラム、オブジェクト、モジュール、または「プログラム」と称される一連の命令として実装され得る。例えば、1つまたは複数のプログラムは、本明細書において説明される具体的なプロセスを実行するために使用され得る。プログラムは、典型的には、1つまたは複数のプロセッサによって読み出され、実行される場合に、コンピュータ・システム800に対して、本明細書において説明されるプロセスおよび特徴を実行するための動作を実行させる、1つまたは複数の命令を、コンピュータ・システム800内の様々なメモリおよび記憶デバイスにおいて備える。本明細書において説明されるプロセスおよび特徴は、ソフトウェア、ファームウェア、ハードウェア(例えば、特定用途向け集積回路)、または、これらの任意の組み合わせにおいて実装され得る。
【0084】
1つの実装において、本明細書において説明されるプロセスおよび特徴は、分散コンピューティング環境において個々にまたはまとめて、コンピュータ・システム800によって実行される一連の実行可能なモジュールとして実装される。前述のモジュールは、ハードウェア、コンピュータ読取可能な媒体(もしくはマシン読取可能な媒体)上に記憶される実行可能なモジュール、または、両者の組み合わせによって実現され得る。例えば、モジュールは、プロセッサ802などの、ハードウェア・システム内のプロセッサによって実行されるべき複数の命令または一連の命令を備え得る。まず、一連の命令は、マス・ストレージ818などの記憶デバイス上に記憶され得る。ただし、一連の命令は、任意の適切なコンピュータ読取可能な記憶媒体上に記憶されてもよい。さらに、一連の命令は、局所的に記憶される必要はなく、ネットワーク上のサーバなどの遠隔記憶デバイスからネットワーク・インターフェース816を通じて受信されてもよい。命令は、マス・ストレージ818などの記憶デバイスからシステム・メモリ814内へコピーされ、次いで、プロセッサ802によってアクセスされ、実行される。様々な実施形態において、1つまたは複数のモジュールは、並列処理環境内の複数のサーバなどの、1つまたは複数の位置における、1つまたは複数のプロセッサによって実行され得る。
【0085】
コンピュータ読取可能な媒体の例は、揮発性メモリ・デバイスおよび不揮発性メモリ・デバイスなどの記録可能なタイプの媒体、ソリッド・ステート・メモリ、フロッピー(登録商標)ディスクおよび他の取り外し可能なディスク、ハード・ディスク・ドライブ、磁気媒体、光ディスク(例えば、コンパクト・ディスク読取専用メモリ(CD ROMS)、デジタル多用途ディスク(DVD))、他の同様の非一時的で(もしくは一時的で)、有形の(もしくは無形の)記憶媒体、または、本明細書において説明されるプロセスおよび特徴のうちの任意の1つもしくは複数を実行すべく、コンピュータ・システム800による実行のために一連の命令を記憶し、符号化し、もしくは担持するのに適切な任意のタイプの媒体を含むが、これらに限定されない。
【0086】
説明の目的のために、多くの具体的な詳細が、本説明の完全な理解を提供するために述べられている。しかしながら、こうした具体的な詳細なしに本開示の実施形態が実施され得ることは、当業者には明らかであろう。いくつかの例において、モジュール、構造、プロセス、特徴、およびデバイスは、本説明を曖昧にすることを回避するために、ブロック図の形式で示される。他の例において、機能ブロック図およびフロー図は、データおよび論理フローを表現するために示される。ブロック図およびフロー図の構成要素(例えば、モジュール、ブロック、構造、デバイス、特徴等)は、本明細書において明示的に説明および図示されたような手法以外の手法で、様々に組み合わされ、分離され、除去され、順序を並べ替えられ、置換されてもよい。
【0087】
この明細書における、「1つの実施形態」、「一実施形態」、「他の実施形態」、「一連の実施形態」、「いくつかの実施形態」、「様々な実施形態」等への言及は、実施形態に関連して説明される特定の特徴、設計、構造、または特性が本開示の少なくとも1つの実施形態に含まれることを意味する。本明細書内の様々な部分における「1つの実施形態において」または「一実施形態において」という句の出現は、必ずしも全て同じ実施形態に言及するものとは限らず、別個の実施形態または代替的な実施形態は、他の実施形態と相互排他的ではない。さらに、「実施形態」等への明示的な言及が存在しても存在しなくても、様々な特徴が説明され、様々な特徴は、いくつかの実施形態において様々に組み合わされ、含まれ得るが、他の実施形態においては様々に省略され得る。同様に、いくつかの実施形態にとっては選好事項または要件であり得るが、他の実施形態にとっては選好事項または要件ではない、様々な特徴が説明される。
【0088】
本明細書において使用される文言は、主に、読みやすさと教育的目的のために選択されており、発明の主題の輪郭を描くため、または境界線を描くために選択されたものではない。そのため、本発明の範囲は、この詳細な説明によって限定されるのではなく、むしろ、本明細書に基づく出願について発行される任意の請求項によって限定されることが意図される。したがって、本発明の実施形態の開示は、本発明の範囲の例示とはなるが、限定とはならないことが意図され、本発明の範囲は、下記の特許請求の範囲において述べられる。
図1
図2
図3
図4A
図4B
図5
図6
図7
図8