図1は、ソーシャル・ネットワーキング・システムに関連付けられている例示的なネットワーク環境100を示す。ネットワーク環境100は、互いにネットワーク110によって接続されたユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサードパーティ・システム170を含む。図1は、ユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110の特定の構成を示すが、この開示は、ユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110の任意の好適な構成を企図する。限定するものとしてではなく一例として、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサードパーティ・システム170の2以上は、ネットワーク110をバイパスして互いに直接的に接続されてもよい。別の例として、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサードパーティ・システム170の2以上が、全体として、または部分的に互いに物理的に、または論理的に同じ場所にあってもよい。さらに、図1は、特定の数のユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110を示すが、この開示は、任意の好適な数のユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110を企図する。限定するものとしてではなく一例として、ネットワーク環境100は、複数のユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110を含んでもよい。
特定の実施形態では、ユーザ101は、ソーシャル・ネットワーキング・システム160と、またはソーシャル・ネットワーキング・システム160を通じて対話、すなわち通信する個人(人間のユーザ)、エンティティ(たとえば、企業、事業者、またはサードパーティ・アプリケーション)、または(たとえば、個人またはエンティティの)グループであってよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、オンライン・ソーシャル・ネットワークをホストするネットワークアドレス指定可能なコンピューティング・システムであってよい。ソーシャル・ネットワーキング・システム160は、たとえばユーザプロフィール・データ、コンセプトプロフィール・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関係する他の好適なデータなど、ソーシャル・ネットワーキング・データを生成、記憶、受信、および送信する。ソーシャル・ネットワーキング・システム160は、ネットワーク環境100の他の構成要素によって、直接的に、またはネットワーク110を通じてアクセスされてもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ユーザ101がたとえば適切なプライバシ設定を設定することによってなど、自分達のアクションをソーシャル・ネットワーキング・システム160によって記録させる、または他のシステム(たとえば、サードパーティ・システム170)と共有させることについてオプトインまたはオプトアウトすることを可能にする認可サーバ(または他の適切な構成要素)を含んでもよい。ユーザのプライバシ設定は、そのユーザに関連付けられているどの情報が記録されるか、そのユーザに関連付けられている情報がどのように記録されるか、そのユーザに関連付けられている情報がいつ記録されるか、そのユーザに関連付けられている情報を誰が記録するか、そのユーザに関連付けられている情報が誰と共有されるか、およびそのユーザに関連付けられている情報が何の目的で記録され共有されるかを決定することができる。認可サーバは、ブロッキング、データのハッシュ化、匿名化、または他の適切な技術を通じて、ソーシャル・ネットワーキング・システム30のユーザの1以上のプライバシ設定を適切に実施するために用いられる。特定の実施形態では、サードパーティ・システム170は、ウェブサイトまたはアプリケーションをホストするネットワークアドレス指定可能なコンピューティング・システムであってよい。サードパーティ・システム170は、たとえば、ウェブ・ページ、テキスト、画像、映像、オーディオ、またはアプリケーションなど、サードパーティ・システム・データを生成、記憶、受信、および送信する。サードパーティ・システム170は、ネットワーク環境100の他の構成要素によって、直接的に、またはネットワーク110を通じてアクセスされてもよい。特定の実施形態では、1または複数のユーザ101が1または複数のクライアント・システム130を使用し、ソーシャル・ネットワーキング・システム160またはサードパーティ・システム170にアクセスし、データを送り、それらからデータを受信してもよい。クライアント・システム130は、ソーシャル・ネットワーキング・システム160またはサードパーティ・システム170に直接的に、ネットワーク110を通じて、またはサードパーティ・システムを通じてアクセスしてもよい。限定するものとしてではなく一例として、クライアント・システム130は、サードパーティ・システム170にソーシャル・ネットワーキング・システム160を通じてアクセスしてもよい。クライアント・システム130は、たとえばパーソナル・コンピュータ、ラップトップ・コンピュータ、携帯電話、スマートフォン、またはタブレット・コンピュータなど、任意の好適なコンピューティング・デバイスであってよい。
この開示は、任意の好適なネットワーク110を企図する。限定するものとしてではなく一例として、ネットワーク110の1または複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク(VPN)、ローカル・エリア・ネットワーク(LAN)、無線LAN(WLAN)、ワイド・エリア・ネットワーク(WAN)、無線WAN(WWAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、携帯電話ネットワーク、またはこれらの2以上の組合せを含んでもよい。ネットワーク110は、1または複数のネットワーク110を含んでもよい。
リンク150は、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサードパーティ・システム170を通信ネットワーク110に、または互いに接続する。この開示は、任意の好適なリンク150を企図する。特定の実施形態では、1または複数のリンク150は、1または複数の有線(たとえば、デジタル加入者線(DSL)またはDOCSIS(Data Over Cable Service Interface Specification)など)、無線(たとえば、Wi−FiまたはWiMAX(Worldwide interoperability for Microwave Access)など)、または光(たとえば、同期光ネットワーク(SONET)または同期デジタル・ハイアラーキ(SDH)など)リンクを含む。特定の実施形態では、1または複数のリンク150は、それぞれ、アドホック・ネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部分、PSTNの一部分、セルラ技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク150、または2以上のそのようなリンク150の組合せを含む。リンク150は、必ずしもネットワーク環境100全体を通じて同じであることを必要としない。1または複数の第1のリンク150は、1または複数の点で1または複数の第2のリンク150と異なってもよい。
図2は、例示的なソーシャル・グラフ200を示す。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、1または複数のソーシャル・グラフ200を1または複数のデータ・ストア内に記憶する。特定の実施形態では、ソーシャル・グラフ200は、複数のノード(複数のユーザ・ノード202または複数のコンセプト・ノード204を含んでもよい)と、それらのノードを接続する複数のエッジ206とを含んでもよい。図2に示されている例示的なソーシャル・グラフ200は、説明のために、2次元の視覚マップ表現で示されている。特定の実施形態では、ソーシャル・ネットワーキング・システム160、クライアント・システム130、またはサードパーティ・システム170は、適切な用途のためにソーシャル・グラフ200および関連するソーシャル・グラフ情報にアクセスする。ソーシャル・グラフ200のノードおよびエッジは、データ・オブジェクトとして、たとえばデータ・ストア(ソーシャル・グラフ・データベースなど)内に記憶されてもよい。そのようなデータ・ストアは、ソーシャル・グラフ200のノードまたはエッジの、1または複数の検索可能または照会可能なインデックスを含んでもよい。
特定の実施形態では、ユーザ・ノード202は、ソーシャル・ネットワーキング・システム160のユーザに対応する。限定するものとしてではなく一例として、ユーザは、ソーシャル・ネットワーキング・システム160と、またはソーシャル・ネットワーキング・システム160を通じて対話または通信する個人(人間のユーザ)、エンティティ(たとえば、企業、事業者、またはサードパーティ・アプリケーション)、または(たとえば、個人またはエンティティの)グループであってよい。特定の実施形態では、ユーザがアカウントをソーシャル・ネットワーキング・システム160に登録するとき、ソーシャル・ネットワーキング・システム160は、そのユーザに対応するユーザ・ノード202を作成し、そのユーザ・ノード202を1または複数のデータ・ストア内に記憶する。本明細書に記載のユーザおよびユーザ・ノード202は、適切な場合、登録されたユーザ、および登録されたユーザに関連付けられているユーザ・ノード202に及ぶ。それに加えて、または代替として、本明細書に記載のユーザおよびユーザ・ノード202は、適切な場合、ソーシャル・ネットワーキング・システム160に登録しなかったユーザに及ぶ。特定の実施形態では、ユーザ・ノード202は、ユーザによって提供された情報、またはソーシャル・ネットワーキング・システム160を含む様々なシステムによって収集された情報に関連付けられてもよい。限定するものとしてではなく一例として、ユーザは、自分の名前、プロフィール写真、連絡先情報、誕生日、性別、婚姻状態、家族状態、雇用、学歴、好み、関心、または他の人口統計情報を提供してもよい。特定の実施形態では、ユーザ・ノード202は、ユーザに関連付けられている情報に対応する1または複数のデータ・オブジェクトに関連付けられてもよい。特定の実施形態では、ユーザ・ノード202は、1または複数のウェブ・ページに対応してもよい。
特定の実施形態では、コンセプト・ノード204は、コンセプトに対応する。限定するものとしてではなく一例として、コンセプトは、場所(たとえば、映画館、レストラン、目印、または都市など)、ウェブサイト(たとえば、ソーシャル・ネットワーキング・システム160に関連付けられているウェブサイト、またはウェブアプリケーションサーバに関連付けられているサードパーティウェブサイトなど)、エンティティ(たとえば、人、事業者、グループ、スポーツチーム、または有名人など)、ソーシャル・ネットワーキング・システム160内、またはウェブアプリケーションサーバなど外部サーバ上に位置するリソース(たとえば、オーディオファイル、映像ファイル、デジタル写真、テキストファイル、構造化ドキュメント、またはアプリケーションなど)、実際の財産または知的財産(たとえば、彫刻、絵画、映画、ゲーム、楽曲、着想、写真、または書物など)、ゲーム、アクティビティ、着想もしくは理論、別の好適なコンセプト、または2以上のそのようなコンセプトに対応してもよい。コンセプト・ノード204は、ユーザによって提供されたコンセプトの情報、またはソーシャル・ネットワーキング・システム160を含む様々なシステムによって収集された情報に関連付けられてもよい。限定するものとしてではなく一例として、コンセプトの情報は、名前もしくはタイトル、1または複数の画像(たとえば、本の表紙の画像)、場所(たとえば、住所または地理的場所)、(URLに関連付けられる)ウェブサイト、連絡先情報(たとえば、電話番号または電子メール・アドレス)、他の好適なコンセプト情報、またはそのような情報の任意の好適な組合せを含んでもよい。特定の実施形態では、コンセプト・ノード204は、コンセプト・ノード204に関連付けられている情報に対応する1または複数のデータ・オブジェクトに関連付けられてもよい。特定の実施形態では、コンセプト・ノード204は、1または複数のウェブ・ページに対応してもよい。
特定の実施形態では、ソーシャル・グラフ200内のノードは、ウェブ・ページを表しても、ウェブ・ページによって表されてもよい(「プロフィール・ページ」と呼ばれる)。プロフィール・ページは、ソーシャル・ネットワーキング・システム160によってホストされ、またはそこからアクセス可能であってもよい。また、プロフィール・ページは、サードパーティ・システム170に関連付けられているサードパーティウェブサイト上でホストされてもよい。限定するものとしてではなく一例として、特定の外部ウェブ・ページに対応するプロフィール・ページは、その特定の外部ウェブ・ページであってもよく、プロフィール・ページが、特定のコンセプト・ノード204に対応してもよい。プロフィール・ページは、他のユーザのすべてまたは選択されたサブセットによって閲覧可能であってもよい。限定するものとしてではなく一例として、ユーザ・ノード202は、対応するユーザがコンテンツを追加し、宣言をし、または他の方法で自分を表現する、対応するユーザプロフィールページを有してもよい。限定するものとしてではなく別の例として、コンセプト・ノード204は、1または複数のユーザがコンセプト・ノード204に対応するコンセプトに特に関連してコンテンツを追加し、宣言をし、またはユーザ自身を表現する、対応するコンセプトプロフィールページを有してもよい。
特定の実施形態では、コンセプト・ノード204は、サードパーティ・システム170によってホストされるサードパーティ・ウェブ・ページまたはリソースを表す。サードパーティ・ウェブ・ページまたはリソースは、要素の中でもとりわけ、コンテンツ、選択可能なアイコンもしくは他のアイコン、またはアクションもしくはアクティビティを表す(たとえば、JavaScript(登録商標)、AJAX、またはPHPコードにより実装される)他の対話可能なオブジェクトを含んでもよい。限定するものとしてではなく一例として、サードパーティ・ウェブ・ページは、「いいね」、「チェックイン」、「食べる」、「推奨する」、または別の好適なアクションまたはアクティビティなど、選択可能なアイコンを含んでもよい。サードパーティ・ウェブ・ページを閲覧するユーザは、アイコンの1つ(たとえば、「食べる」)を選択することによって、アクションを行う。これによって、クライアント・システム130は、ユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム160へ送信する。ソーシャル・ネットワーキング・システム160は、メッセージに応答して、ユーザに対応するユーザ・ノード202とサードパーティ・ウェブ・ページまたはリソースに対応するコンセプト・ノード204との間にエッジ(たとえば、「食べる」エッジ)を作成し、エッジ206を1または複数のデータ・ストア内に記憶する。
特定の実施形態では、ソーシャル・グラフ200内の1対のノードが、1または複数のエッジ206によって互いに接続されてもよい。1対のノードを接続するエッジ206は、その対のノード間の関係を表す。特定の実施形態では、エッジ206は、1対のノード間の関係に対応する1または複数のデータ・オブジェクトまたは属性を含み、または表してもよい。限定するものとしてではなく一例として、第1のユーザは、第2のユーザが第1のユーザの「友達」であることを示してもよい。この示したことに応答して、ソーシャル・ネットワーキング・システム160は、「友達要求」を第2のユーザに送信してもよい。第2のユーザが「友達要求」を確認した場合、ソーシャル・ネットワーキング・システム160は、ソーシャル・グラフ200内で第1のユーザのユーザ・ノード202を第2のユーザのユーザ・ノード202に接続するエッジ206を作成し、エッジ206をソーシャル・グラフ情報としてデータ・ストア164の1または複数に記憶してもよい。図2の例では、ソーシャル・グラフ200は、ユーザ「A」とユーザ「B」とのユーザ・ノード202間の友達関係を示すエッジ206と、ユーザ「C」とユーザ「B」とのユーザ・ノード202間の友達関係を示すエッジとを含む。本開示は特定のユーザ・ノード202を接続する特定の属性を有する特定のエッジ206について記載し示しているが、本開示は、ユーザ・ノード202を接続する任意の好適な属性を有する任意の好適なエッジ206を企図する。限定するものとしてではなく一例として、エッジ206は、友達関係、家族関係、仕事関係もしくは雇用関係、ファン関係、フォロワー関係、ビジタ関係、加入者関係、主従関係、相互的関係、非相互的関係、別の好適なタイプの関係、または2以上のそのような関係を表してもよい。さらに、本開示は一般にノードを接続されているものとして記載しているが、本開示は、ユーザまたはコンセプトも接続されているものとして記載している。本明細書では、接続されているユーザまたはコンセプトへの言及は、適切な場合、ソーシャル・グラフ200内で1または複数のエッジ206によって接続されているユーザまたはコンセプトに対応するノードに及ぶ。
特定の実施形態では、ユーザ・ノード202とコンセプト・ノード204との間のエッジ206は、コンセプト・ノード204に関連付けられているコンセプトに向かってユーザ・ノード202に関連付けられているユーザによって行われる特定のアクションまたはアクティビティを表してもよい。限定するものとしてではなく一例として、図2に示されているように、ユーザは、コンセプトに対して「いいね」と表明することができ、コンセプトに「通った」、コンセプトを「プレイした」、「聴いた」、「調理した」、コンセプトに「勤務した」、またはコンセプトを「見た」のであり、コンセプトのそれぞれは、エッジタイプまたはサブタイプに対応する。コンセプト・ノード204に対応するコンセプトプロフィールページは、たとえば、選択可能な「チェックイン」アイコン(たとえば、クリッカ可能な「チェックイン」アイコン)または選択可能な「お気に入りに追加」アイコンを含んでもよい。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャル・ネットワーキング・システム160は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジ、または「チェックイン」エッジを作成する。限定するものとしてではなく別の例として、ユーザ(ユーザ「C」)は、特定のアプリケーション(オンラインミュージックアプリケーションであるSPOTIFY)を使用して特定の楽曲(「イマジン」)を聴く。この場合には、ソーシャル・ネットワーキング・システム160は、ユーザに対応するユーザ・ノード202と楽曲およびアプリケーションに対応するコンセプト・ノード204との間に「聴いた」エッジ206および「使用した」エッジ(図2に図示)を作成し、ユーザがその楽曲を聞き、そのアプリケーションを使用したことを示す。さらに、ソーシャル・ネットワーキング・システム160は、楽曲およびアプリケーションに対応するコンセプト・ノード204間に「プレイした」エッジ206(図2に図示)を作成し、特定の楽曲が特定のアプリケーションによってプレイされたことを示す。この場合には、「プレイした」エッジ206は、外部アプリケーション(SPOTIFY)によって外部オーディオファイル(楽曲「イマジン」)に対して行われたアクションに対応する。本開示は、ユーザ・ノード202とコンセプト・ノード204とを接続する特定の属性を有する特定のエッジ206について記載しているが、本開示は、ユーザ・ノード202とコンセプト・ノード204とを接続する任意の好適な属性を有する任意の好適なエッジ206を企図する。さらに、本開示は、ユーザ・ノード202とコンセプト・ノード204の間の単一の関係を表すエッジについて記載しているが、本開示は、ユーザ・ノード202とコンセプト・ノード204との間の1または複数の関係を表すエッジを企図する。限定するものとしてではなく一例として、エッジ206は、ユーザが「いいね」と表明したこと、および特定のコンセプトを使用したことの両方を表してもよい。あるいは、別のエッジ206が、ユーザ・ノード202とコンセプト・ノード204(図2に示されているように、ユーザ「E」に関するユーザ・ノード202と「SPOTIFY」に関するコンセプト・ノード204)との間の関係の各タイプ(または単一の関係の複数)を表してもよい。
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ソーシャル・グラフ200内でユーザ・ノード202とコンセプト・ノード204との間にエッジ206を作成する。限定するものとしてではなく一例として、(たとえば、ウェブブラウザまたはユーザのクライアント・システム130によってホストされる専用アプリケーションを使用することによってなど)コンセプトプロフィールページを閲覧するユーザは、「いいね」アイコンをクリックまたは選択することによって、ユーザがコンセプト・ノード204によって表されたコンセプトに対して「いいね」と表明することを示す。これによって、ユーザのクライアント・システム130は、コンセプトプロフィールページに関連付けられているコンセプトに対してユーザが「いいね」と表明することを示すメッセージをソーシャル・ネットワーキング・システム160へ送信する。ソーシャル・ネットワーキング・システム160は、そのメッセージに応答して、ユーザとコンセプト・ノード204との間の「いいね」エッジ206によって示されているように、ユーザに関連付けられているユーザ・ノード202とコンセプト・ノード204との間にエッジ206を作成してもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、エッジ206を1または複数のデータ・ストア内に記憶してもよい。特定の実施形態では、エッジ206は、特定のユーザ・アクションに応答してソーシャル・ネットワーキング・システム160によって自動的に形成されてもよい。限定するものとしてではなく一例として、第1のユーザが写真をアップロードし、映画を見たか、または楽曲を聴いた場合、エッジ206は、第1のユーザに対応するユーザ・ノード202とそれらのコンセプトに対応するコンセプト・ノード204との間に形成されてもよい。本開示は、特定のエッジ206を特定の方法で形成することについて記載しているが、本開示は、任意の好適なエッジ206を任意の好適な方法で形成することを企図する。
さらに、任意の2つのノード間の分離度は、一方のノードから他方のノードにソーシャル・グラフを横断するために必要とされるホップ(またはエッジ)の最小数として定義される。2つのノード間の分離度は、ソーシャル・グラフ内の2つのノードによって表されるユーザ間またはコンセプト間の関連性の尺度と考えることができる。
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、互いについて様々なソーシャルグラフ・エンティティのソーシャル・グラフ親和性(本明細書では「親和性」と呼ばれる)を決定してよい。親和性は、ユーザ、コンセプト、コンテンツ、アクション、広告、オンライン・ソーシャル・ネットワークに関連付けられている他のオブジェクト、またはそれらの任意の適切な組み合わせなど、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間における関係の強さまたは関心のレベルを表すことができる。また、親和性は、サードパーティ・システム170または他の適切なシステムに関連付けられているオブジェクトに関して決定されてもよい。各ユーザ、主題、またはコンテンツのタイプについて、ソーシャルグラフ・エンティティに対する総合親和性が確立されてもよい。総合親和性は、ソーシャルグラフ・エンティティに関連付けられているアクションまたは関係の継続的なモニタリングに基づき、変化し得る。本開示では特定の方式による特定の親和性の決定について記載するが、本開示では任意の適切な方式による任意の適切な親和性の決定が想定される。
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、親和性係数(本明細書では「係数」と呼ばれる)を用いてソーシャル・グラフ親和性を測定または定量してよい。この係数は、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強さを表してよい、または定量してよい。また、この係数は、ユーザが特定のアクションを行う予測される確率を測定する確率または関数を表してもよく、この確率または関数は、そのアクションについてのそのユーザの関心に基づく。このようにして、ユーザの将来のアクションは、ユーザの以前のアクションに基づいて予測されることができ、その係数は少なくとも部分的にはユーザのアクションの履歴により計算され得る。係数は、オンライン・ソーシャル・ネットワークの内外の任意の数のアクションを予測するために用いられてよい。限定ではなく一例として、これらのアクションは、メッセージの送信、コンテンツのポスト、またはコンテンツに対するコメントなど、様々なタイプの通信、プロフィール・ページ、メディア、または他の適切なコンテンツのアクセスまたは閲覧など、様々なタイプの観察アクション、同じグループにある、同じ写真にタグ付けされる、同じ場所においてチェックインされる、もしくは同じイベントに出席する、または他の適切なアクションなど、2つ以上のソーシャルグラフ・エンティティに関する様々なタイプの同時発生情報、または他の適切なアクションを含んでよい。本開示では特定の方式による特定の親和性の測定について記載するが、本開示では任意の適切な方式による親和性の測定が想定される。
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、係数を計算するために様々な因子を用いてよい。これらの因子は、例えば、ユーザ・アクション、オブジェクト間の関係のタイプ、場所情報、他の適切な因子、またはそれらの任意の組み合わせを含んでよい。特定の実施形態では、係数を計算するとき、様々な因子に異なる重み付けを行ってもよい。各因子の重みは静的であってもよく、例えば、ユーザ、関係のタイプ、アクションのタイプ、ユーザの場所などによって変化してもよい。因子のための格付け、そのユーザに対する総合的な係数を決定するべく、それらの重みにしたがって組み合わせられてもよい。限定ではなく一例として、特定のユーザ・アクションには格付けおよび重みの両方が割り当てられる一方、その特定のユーザ・アクションに関連付けられている関係には、格付けと相互に関連する重みとが割り当てられる(例えば、したがって重みが計100%になる)。特定のオブジェクトに対するユーザの係数を計算するために、そのユーザのアクションに割り当てられた格付けが、例えば、総合的な係数の60%を含む一方、そのユーザとそのオブジェクトとの間の関係は、総合的な係数の40%を含んでもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、係数を計算するために用いられる様々な因子の重みを決定するときに、例えば、情報がアクセスされてからの時間、減衰因子、アクセスの頻度、情報に対する関係またはそれに関する情報がアクセスされたオブジェクトに対する関係、オブジェクトに接続されたソーシャルグラフ・エンティティに対する関係、ユーザ・アクションの短期的または長期的な平均、ユーザ・フィードバック、他の適切な変数、またはそれらの任意の組み合わせなど、様々な変数を考慮してもよい。限定ではなく一例として、係数は、係数を計算するとき、より最近のアクションがより関連性を有するように、特定のアクションによって提供される信号の強さを時間とともに減衰させる減衰因子を含んでもよい。格付けおよび重みは、その係数が基づくアクションの継続的なトラッキングに基づいて、継続的に更新されてもよい。任意のタイプのプロセスまたはアルゴリズムが、各因子およびそれらの因子に割り当てられる重みの格付けの割当、結合、平均化などに用いられてよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、履歴のアクションおよび過去のユーザ応答、またはデータを様々なオプションに晒し応答を測定することによってユーザから集められたデータに基づきトレーニングされた機械学習アルゴリズムを用いて、係数を決定してもよい。本開示では特定の方式による特定の係数の計算について記載するが、本開示では任意の適切な方式による係数の計算が想定される。
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ユーザのアクションに基づき係数を計算してもよい。ソーシャル・ネットワーキング・システム160は、オンライン・ソーシャル・ネットワーク上、サードパーティ・システム170上、他の適切なシステム上、またはそれらの任意の組み合わせ上において、そのようなアクションを監視してよい。任意の適切なタイプのユーザ・アクションのトラッキングまたは監視が行われてよい。典型的なユーザ・アクションには、プロフィール・ページを閲覧すること、コンテンツを作成またはポストすること、コンテンツと対話すること、グループに参加すること、イベントへの参加をリストまたは確認すること、場所にチェックインすること、特定のページに「いいね」と表明すること、ページを作成すること、およびソーシャル・アクションを行う他のタスクを実行することが含まれる。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、特定のタイプのコンテンツを有するユーザのアクションに基づき、係数を計算してよい。コンテンツは、オンライン・ソーシャル・ネットワーク、サードパーティ・システム170、または別の適切なシステムに関連付けられてよい。コンテンツは、ユーザ、プロフィール・ページ、ポスト、ニュース・ストーリ、ヘッドライン、インスタント・メッセージ、チャット・ルーム会話、電子メール、広告、写真、動画、音楽、他の適切なオブジェクト、またはそれらの任意の組み合わせを含んでよい。ソーシャル・ネットワーキング・システム160は、ユーザのアクションを、そのアクションのうちの1つ以上が主題、コンテンツ、他のユーザなどに対する親和性を示すか否かを判定するために分析してよい。限定ではなく一例として、ユーザが、「コーヒー」またはその変形に関係するコンテンツを頻繁にポストする場合、ソーシャル・ネットワーキング・システム160は、ユーザがコンセプト「コーヒー」に関して高い係数を有すると決定してもよい。特定のアクションまたはアクションのタイプは、他のアクションよりも大きな重み、より高い格付け、またはその両方を割り当てられ、これが総合的な計算された係数に影響を与えてもよい。限定ではなく一例として、第1のユーザが第2のユーザに電子メールを送る場合、そのアクションに対する重みまたは格付けは、第1のユーザが単に第2のユーザのユーザ・プロファイル・ページを閲覧する場合よりも高くてもよい。
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、特定のオブジェクトの間の関係のタイプに基づき係数を計算してもよい。ソーシャル・グラフ200を参照すると、ソーシャル・ネットワーキング・システム160は、係数を計算するとき、特定のユーザ・ノード202およびコンセプト・ノード204を接続するエッジ206の数および/またはタイプを分析してもよい。限定ではなく一例として、配偶者タイプのエッジ(2人のユーザが結婚していることを表す)によって接続されているユーザ・ノード202は、友達タイプのエッジによって接続されているユーザ・ノード202より高い係数を割り当てられてもよい。換言すれば、特定のユーザのアクション及び関係に割り当てられた重みに応じて、総合親和性は、ユーザの友達に関するコンテンツに対するよりもユーザの配偶者に関するコンテンツに対してより高くなるように決定されてもよい。特定の実施形態では、ユーザが別のオブジェクトと有する関係は、そのオブジェクトについての係数の計算に関して重みおよび/またはユーザのアクションの格付けに影響を与えてもよい。限定ではなく一例として、ユーザが第1の写真にタグ付けされているが、第2の写真にいいねと表明しかしない場合、コンテンツに対してタグ付けタイプの関係を有することにはコンテンツに対していいねタイプの関係を有するよりも高い重みおよび/または格付けが割り当てられることから、ソーシャル・ネットワーキング・システム160は、ユーザが第2の写真より第1の写真に関して高い係数を有すると決定してもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、1以上の第2のユーザが特定のオブジェクトに対して有する関係に基づき、第1のユーザのための係数を計算してもよい。換言すれば、他のユーザがオブジェクトに対して有する接続および係数は、そのオブジェクトに対する第1のユーザの係数に影響を与えてもよい。限定ではなく一例として、第1のユーザが1以上の第2のユーザに接続されるか、1以上の第2のユーザに対する高い係数を有し、それらの第2のユーザが特定のオブジェクトに接続されるか、特定のオブジェクトに対する高い係数を有する場合、ソーシャル・ネットワーキング・システム160は、その特定のオブジェクトに対して第1のユーザが比較的高い係数を有するべきであると決定してもよい。特定の実施形態では、係数は特定のオブジェクト間の隔たりの程度に基づいてもよい。係数が低いほど、ソーシャル・グラフ200において第1のユーザに間接的に接続されているユーザのコンテンツ・オブジェクトへの関心を第1のユーザが共有する見込みが減少することを表してもよい。限定ではなく一例として、ソーシャル・グラフ200においてより近くにある(すなわち、より隔たりの程度が小さい)ソーシャルグラフ・エンティティ同士は、ソーシャル・グラフ200においてより遠くにあるエンティティ同士よりも高い係数を有してもよい。
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、場所情報に基づき係数を計算してもよい。互いに地理的に近くにあるオブジェクト同士は、より離れたオブジェクト同士よりも、より関連している、または互いにより高い関心を有すると考えられてよい。特定の実施形態では、特定のオブジェクトに対するユーザの係数は、そのユーザに関連付けられている現在の場所(またはそのユーザのクライアント・システム130の場所)に対するそのオブジェクトの場所の近接度に基づいてもよい。第1のユーザは、第1のユーザのより近くにある他のユーザまたはコンセプトに、より高い関心を有し得る。限定ではなく一例として、ユーザが空港から1マイル(約1.6km)に位置し、ガソリン・スタンドから2マイル(約3.2km)に位置する場合、ソーシャル・ネットワーキング・システム160は、そのユーザに対する空港の近接度に基づき、ユーザがガソリン・スタンドよりも空港に対しより高い係数を有すると決定してもよい。
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、係数情報に基づきユーザに関する特定のアクションを行ってもよい。係数を用いて、ユーザが特定のアクションを行うか否かを、そのアクションについてのそのユーザの関心に基づき予測することができる。係数は、広告、検索結果、ニュース・ストーリ、メディア、メッセージ、通知、または他の適切なオブジェクトなど、ユーザに対する任意のタイプのオブジェクトを生成または提示するときに用いられてよい。また、適切な場合、係数は、そのようなオブジェクトのランクおよび順序を決定するためにも利用されて得る。このように、ソーシャル・ネットワーキング・システム160は、ユーザの関心および現在の状況に関連する情報を提供してもよく、それによって、それらがそのような関心を有する情報を見出す見込みを高める。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、係数情報に基づきコンテンツを生成してもよい。コンテンツ・オブジェクトは、ユーザに特有の係数に基づき提供または選択されてもよい。限定ではなく一例として、係数はユーザに対するメディアを生成するために用いられてもよく、ユーザには、そのメディア・オブジェクトに関してそのユーザが高い総合係数を有するメディアが、提示される。限定ではなく別の一例として、限定ではなく一例として、係数はユーザに対する広告を生成するために用いられてもよく、ユーザには、その広告オブジェクトに関してそのユーザが高い総合係数を有する広告が、提示される。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、係数情報に基づき検索結果を生成してもよい。特定のユーザのための検索結果は、問い合わせを行うユーザに関して検索結果に関連付けられている係数に基づき、得点またはランクを決定されてよい。限定ではなく一例として、より高い係数を有するオブジェクトに対応する検索結果は、より低い係数を有するオブジェクトに対応する結果よりも、検索結果のページにおいて、より高いランクを決定されてもよい。
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、特定のシステムまたはプロセスからの係数の要求に応じて、係数を計算してもよい。ユーザが所与の状況において取り得る(あるいは対象となる)可能性の高いアクションを予測するために、任意のプロセスによって、ユーザの計算された係数が要求されてよい。また、この要求は、係数を計算するために用いられる様々な因子に用いる1組の重みを含んでもよい。この要求は、オンライン・ソーシャル・ネットワーク上で動作するプロセスから、サードパーティ・システム170から(例えば、APIまたは他の通信チャンネルを介して)、または別の適切なシステムから届いてよい。要求に応じて、ソーシャル・ネットワーキング・システム160は、係数を計算してよい(または、係数が以前に計算され記憶されている場合、その係数情報にアクセスしてよい)。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、特定のプロセスに関する親和性を測定してもよい。様々なプロセス(オンライン・ソーシャル・ネットワークに対して内外の両方)は、特定の1つのオブジェクトまたは複数のオブジェクトからなる組に対する係数を要求してもよい。ソーシャル・ネットワーキング・システム160は、親和性の尺度を要求した特定のプロセスに関連する親和性の尺度を提供してもよい。このように、各プロセスは、プロセスが親和性の尺度を用いる様々なコンテキストに適合する親和性の尺度を受信する。
ソーシャル・グラフ親和性および親和性係数に関して、特定の実施形態では、米国特許出願第11/503093号(2006年8月11日提出)、米国特許出願第12/977027号(2010年12月22日提出)、米国特許出願第12/978265号(2010年12月23日受信)、および米国特許出願第13/632869号、において開示されている1以上のシステム、構成要素、要素、機能、方法、動作、または工程を利用してよい。それらの文献の各々を引用によって本明細書に援用する。
ウェブ・ページなどの構造化ドキュメントは、ページレイアウトの情報、スクリプト、テキスト(例えば、ASCIIまたはHTML)等のページコンテンツ、メディアデータ(例えば、グラフィックス、写真、ビデオクリップ)、及び実行可能なコード・オブジェクト(例えば、ブラウザのウィンドウまたはブラウザのフレーム内で実行可能なゲーム)を含む。構造化ドキュメントは、ハイパーテキスト・マークアップ・ランゲージ(HTML:Hypertext Markup Language)、エクステンシブル・マークアップ・ランゲージ(XML:Extensible Markup Language)、エクステンシブル・ハイパーテキスト・マークアップ・ランゲージ(XHTML:Extensible Hypertext Markup Language)、ジャヴァスクリプト(JavaScript)、ウェブジーエル(WebGL)、CSSアニメーション及びトランジション(transitions)を含むカスケーディング・スタイル・シート(CSS:Cascading Style Sheet)、及び高頻度のジャヴァ(Java)などのランゲージ及び技術で具体化される。構造化ドキュメントは、構造化ドキュメント自身が多数の構造化ドキュメント及びコンテンツのリファレンスを含む。例えば、ウェブ・ページは、ユニフォーム・リソース・ロケーションズ(URLs:Uniform Resource Locations)、またはスクリプトコード(script code)(例えば、ジャヴァスクリプト、ピーエイチピーPHP)、エイジャックス(AJAX))、もしくはその両方を組み込むことによって、ユーザイベント(例えば、マウスクリック、マウスオーバー)に応じて、グラフィカル・ユーザ・インタフェースにウェブ・ページを表示するアプリケーションにURL及びスクリプトコードによって特定されるコンテンツを動的に取得させる1つもしくは複数のインライン・リファレンス(inline reference)を含む。
ウェブ・ページなどの構造化ドキュメントは、HTMLの〈img〉タグを使用する画像を含む。その一方、〈img〉タグも〈img〉タグの代替属性を使用する代替テキストを含む。例えば、関連するURL「www.example.com/picture.jpg」と代替テキスト「ゴールデンゲートブリッジの写真(Picture of Golden Gate Bridge)」とを有するゴールデンゲートブリッジの画像は、ウェブ・ページにおいて〈img src=”www.example.com/picture.jpg” alt=“Picture of Golden Gate Bridge”〉として作成される。画像を表示に使用できない場合(例えば、画像のURLをホストするサーバが応答しない場合)、ウェブ・ページを表示するクライアント・コンピューティング・デバイスは、代替テキスト「ゴールデンゲートブリッジの写真」を表示する。
クライアント・コンピューティング・デバイスは、ウェブ・ページのテキストコンテンツ及び画像に対する代替テキストを(例えば、テキスト音声変換ソフトウェアプログラム、及びクライアント・コンピューティング・デバイスのスピーカを使用して)可聴的に読み出しつつ、画像を有するウェブ・ページを表示する。ウェブ・ページにおける画像の代替テキスト、及びウェブ・ページの他のテキストコンテンツを可聴的に読み出すことは、弱視者または視覚障害者(例えば、盲人)のユーザのアクセス容易性に関して有用である。例えば、上記のゴールデンゲートブジッジの画像を有するウェブ・ページを表示するクライアント・コンピューティング・デバイスは、ウェブ・ページの最初からテキストコンテンツを可聴的に読み出す。画像に到達すると同時に、クライアント・コンピューティング・デバイスは代替テキスト「ゴールデンゲートブリッジの写真」を可聴的に読み出す。このようにして、クライアント・コンピューティング・デバイスを使用する盲人は、ウェブ・ページのコンテンツを十分に知ることができる。ウェブ・ページを表示するクライアント・コンピューティング・デバイスを使用する盲人は、代替テキストがなくとも、ウェブ・ページにおける画像の前(及び後ろ)のテキストコンテンツと、テキストコンテンツ間において(画像の)URLリンクの存在を示す可聴的に読み出された「リンク」とを聴き取り得る。
通常、ウェブ・ページにおける画像に対する代替テキストは固定されている。例えば、画像をホストするウェブサイトは画像の代替テキストを作成する。この代替テキストは、画像が存続している間、同じである。画像を有するウェブ・ページは、ウェブ・ページの他のコンテンツまたはウェブ・ページの閲覧者に関係なく、画像の代替テキストを直接的に含む。特定の実施形態は、ウェブ・ページに含まれる画像の代替テキストを動的に作成するための方法を説明する。特定の実施形態は、他にどのようなコンテンツがウェブ・ページに含まれているか等のコンテキスト情報か、またはウェブ・ページの閲覧者が誰であるかに基づいて、ウェブ・ページに含まれる画像の代替テキストを動的に作成する。
図3は、構造化ドキュメントに含まれる画像の代替テキストを動的に作成するための方法300を示す。特定の実施形態は、構造化ドキュメントを提供する1つもしくは複数のサーバによって実行される(例えば、アプリケーションの)コンピューティング・プロセスによって具体化される。特定の実施形態は、上述したように、ソーシャル・ネットワーキング・システムの1つもしくは複数のサーバ・コンピューティング・デバイスによって実行されるコンピューティング・プロセスによって具体化される。
方法300はステップ310において開始される。特定の実施形態においては、ステップ310において、ソーシャル・ネットワーキング・システムの1つもしくは複数のサーバは、クライアント・コンピューティング・デバイスから画像を含む構造化ドキュメントに対する要求を受信する。クライアント・コンピューティング・デバイスは、構造化ドキュメント(例えば、ウェブ・ページ)を表示するように構成されるデスクトップコンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、スマートフォン、または任意の適切なクライアント・コンピューティング・デバイスである。クライアント・コンピューティング・デバイスは、特定のユーザ(例えば、構造化ドキュメントがサーバによって提供されるときの構造化ドキュメントの閲覧者)と関連付けられる。特定のユーザは、ソーシャル・ネットワーキング・システムのユーザである。画像は、任意の適切な形式(例えば、グラフィックス・インターチェンジ・フォーマット(Graphics Interchange Format)もしくはGIF形式、ジョイント・フォトグラフィック・エキスパート・グループ(Joint Photographic Experts Group)もしくはJPEG形式、エクスチェンジャブル・イメージ・ファイル・フォーマット(Exchangeable Interchange Format)もしくはExif形式)の写真または任意の適切な画像ファイルである。画像は、ソーシャル・ネットワーキング・システムまたはサードパーティ・システムのデータ・ストアに記憶される。
特定の実施形態においては、画像はソーシャル・ネットワーキング・システムのソーシャル・グラフのコンセプト・ノードに対応している。画像に対応するコンセプト・ノードも画像と関連付けられた追加の情報を含む。例えば、コンセプト・ノードは、画像の作者(または出所)を含む。コンセプト・ノードは、画像の場所(例えば、場所の名前、一組の地理座標、郵便番号、など)を含む。コンセプト・ノードは、画像のタイムスタンプを含む。特定の実施形態は、画像に対応するコンセプト・ノードに含まれる任意の適切な情報を想定する。ソーシャル・ネットワーキング・システムは、ソーシャル・ネットワーキング・システムの1つもしくは複数のデータ・ストアに画像に対応するコンセプト・ノードを記憶する。
加えて、ソーシャル・グラフは、(画像に対応する)コンセプト・ノードを他のユーザまたはソーシャル・グラフのコンセプト・ノードに接続する1つもしくは複数のエッジを含む。例えば、ソーシャル・グラフはコンセプト・ノードをユーザ・ノードに接続するエッジを含み、ユーザ・ノードに対応するユーザを表すエッジは、コンセプト・ノードに対応する画像にタグ付けされる。ソーシャル・グラフは、コンセプト・ノードをユーザ・ノードに接続するエッジを含み、ユーザ・ノードに対応するユーザを表すエッジは、コンセプト・ノードに対応する画像にリンク付けする。ソーシャル・グラフは、(画像に対応する)コンセプト・ノードを(例えば、ソーシャル・ネットワーキング・システムのユーザによって)画像上に作成されたコメントを含む別のコンセプト・ノードに接続するエッジを含む。ソーシャル・グラフは、(画像に対応する)コンセプト・ノードを画像が関連づけられるイベントに対応する別のコンセプト・ノードに接続するエッジを含む。ソーシャル・グラフは、(画像に対応する)コンセプト・ノードを画像が属する写真アルバムに対応する別のコンセプト・ノードに接続するエッジを含む。特定の実施形態は、ソーシャル・グラフにおいて画像に対応するコンセプト・ノードに接続する任意の適切なエッジを想定している。ソーシャル・ネットワーキング・システムは、画像に対応するコンセプト・ノードに接続する1つもしくは複数のエッジをソーシャル・ネットワーキング・システムの1つもしくは複数のデータ・ストアに記憶する。
特定の実施形態においては、ステップ320で、サーバは、画像と関連付けられたデータ用のデータ・ストアにアクセスする。例えば、サーバは、作者、場所、タイムスタンプ、画像にタグ付けされた1人もしくは複数のユーザ、「いいね」の数、画像上に作成された1つもしくは複数のコメント、または画像を含むアルバムなど、画像と関連付けられたデータ用の、画像に対応するコンセプト・ノード、及び(上記したように)コンセプト・ノードを接続するエッジを記憶する1つもしくは複数のデータ・ストアにアクセスする。いくつかの実施形態においては、サーバは、画像と関連付けられたデータに関する画像のメタデータ(例えば、タイムスタンプ、コメント)にもアクセスする。サーバは、構造化ドキュメントの他のコンテンツ(例えば、テキストコンテンツ)に関してソーシャル・ネットワーキング・システム(またはサードパーティ・システム)の1つもしくは複数のデータ・ストアにもアクセスする。
特定の実施形態においては、ステップ330で、サーバは画像に対応するテキスト文字列(例えば、画像に関する代替テキスト)を作成する。テキスト文字列は、クライアント・コンピューティング・デバイスによって可聴的に読み出されるように構成されている。特定の実施形態においては、サーバは、画像と対応するテキスト文字列を自然言語の話法で作成する。特定の実施形態においては、サーバは、画像と関連付けられたデータの少なくともいくつかに少なくとも部分的に基づいてテキスト文字列を作成する。
例えば、画像と関連付けられたデータは、画像の作者(例えば、「ジョン(John)」)、画像の場所(例えば、「グランドキャニオン(Grand Canyon)」)、及び画像にタグ付けされた7人のユーザ(例えば、「A」、「B」、「C」、「D」、「E」、及び「G」)を含む。サーバは、画像と関連付けられたデータに基づいて、「これはA、B、C、F、E、F、及びGと一緒にいるジョンの写真である。(This is John‘s photo with A,B,C,D,E,F, and G.)。この写真はグランドキャニオンで撮影された。(The photo was taken at Grand Canyon.)」などの画像に対応するテキスト文字列を英語の話法で作成する。
一実施形態においては、サーバによって作成されたテキスト文字列は、画像と関連付けられた1つもしくは複数のコメントを含む。例えば、パリのエトワール凱旋門(Arc de Triomphe)の画像と関連付けられたデータは、作者(「ビル(Bill)」)、画像にタグ付けされたユーザ(「マリー(Marry)」)、「エトワール凱旋門」の場所、「シャンゼリゼ通りからのすばらしい眺め!(Great view from Ave des Champ−Rlysees!)」というコメントを含む。サーバは、「これはマリーと一緒にいるビルの写真である。(This is Bill‘s photo with Mary.)。この写真はエトワール凱旋門で撮影され、「シャンゼリゼ通りからのすばらしい眺め!」というタイトルが付けられた。(The photo was taken at Arc de Triomphe, and entitled “Great view from Ave des Champ−Rlysees!”)」などの画像に対応する文字列でのコメントを含む。
特定の実施形態においては、画像と関連付けられたデータは、ソーシャル・グラフの1つもしくは複数のノード(ユーザ・ノードまたはコンセプト・ノード)に対応する。サーバは、ソーシャル・グラフにおける各ノードと特定のユーザに対応するユーザ・ノードとの間のソーシャル・グラフ近接度に基づいて、画像に対応するテキスト文字列を作成する。
特定の実施形態においては、サーバは、特定のユーザに対応するユーザ・ノードから特定の程度の離れた範囲内にあるソーシャル・グラフにおける1つもしくは複数のノード(ユーザ・ノードまたはコンセプト・ノード)と対応する画像と関連付けられたデータの一部のみを含む。例えば、上記の例示的なグランドキャニオンの画像においては、ユーザ「D」及び「E」は特定のユーザの第1の程度の友人であり、一方、他のユーザ(「A」、「B」、「C」、「F」、及び「G」)はソーシャル・グラフにおいて第2の程度または第3程度以上特定のユーザから離れている。サーバは、「これはD、E、及び他の5人と一緒にいるジョンの写真である。この写真はグランドキャニオンで撮影された。」など、テキスト文字列において特定のユーザの第1の程度の友人のみを含む。このように、クライアント・コンピューティング・デバイスによって特定のユーザ(即ち、構造化ドキュメントの閲覧者)により関連のある情報のみが、テキスト文字列に含まれ、かつ特定のユーザに対して可聴的に読み出されるように構成される。
特定の実施形態においては、サーバは、画像と関連付けられたデータからの各ノードと特定のユーザとの間のソーシャル・グラフ近接度に基づいて、画像に対応するテキスト文字列を作成する。例えば、上記の例示的なグランドキャニオンの画像においては、サーバは、ユーザ「A」、「B」、「C」、「D」、「E」、「F」、及び「G」を、特定のユーザとのそれらユーザ個々の親和性係数)に基づいて順位付けする。ユーザの順位付けの順番は、「E」、「A」、「B」、「D」、「C」、「G」、及び「F」である。サーバは、「これはE、A、B、及び他の4人と一緒にいるジョンの写真である。この写真はグランドキャニオンで撮影された。」など、特定のユーザに関するテキスト文字列において、上位に順位付けされたユーザ(例えば、上位3位に順位付けされたユーザ)を含むようにテキスト文字列を作成する。このように、クライアント・コンピューティング・デバイスによって特定のユーザにより密接な情報のみが、テキスト文字列に含められ、かつ特定のユーザに対して可聴的に読み出されるように構成される。
特定の実施形態においては、サーバは、構造化ドキュメントのテキストコンテンツに基づいてテキスト文字列を作成する。サーバは、構造化ドキュメントのテキストコンテンツについての言語に基づいてテキスト文字列を作成する。例えば、構造化ドキュメントのテキストコンテンツのいくつかまたは全てがスペイン語である場合、サーバは、上記の例示的なグランドキャニオンの画像に関して、「これはA、B、C、D、E、F、及びGと一緒にいるジョンの写真である。(Esta es la foto de John con A,B,C,D,E,F y G.)。この写真はグランドキャニオンで撮影された。(La foto fue tomada en el Grand Canyon.)」など、スペイン語でテキスト文字列を作成する。
サーバは、構造化ドキュメントの他のコンテンツで言及されたテキスト文字列の情報を省略する。例えば、構造化ドキュメントは、上記の例示的なグランドキャニオンの画像を含む写真アルバム(またはイベント)を含む。アルバムの「グランドキャニオン」の場所(このように画像の場所)が、構造化ドキュメントにおいて写真アルバム(またはイベント)とともに記述された場合、サーバは場所の情報無しで、テキスト文字列(例えば、「これはA、B、C、D、E、F、及びGと一緒にいるジョンの写真である。」)を作成する。画像と関連付けられたデータが構造化ドキュメントの他の部分におけるテキストによって記述されている場合、サーバは画像に対応する空テキスト文字列を作成する(または画像に対応するテキスト文字列の作成をスキップする)。
特定の実施形態においては、サーバは、クライアント・コンピューティング・デバイスのネットワーク状態に基づいてテキスト文字列を作成する。例えば、画像に対応するテキスト文字列は、表示のためにクライアント・コンピューティング・デバイスに送信される構造化ドキュメントの全体のサイズを増加させるため、クライアント・コンピューティング・デバイスがネットワーク接続のバンド幅が制限されている(例えば、携帯接続)場合、テキスト文字列のサイズを低減することは好ましい。特定の実施形態においては、サーバは、クライアント・コンピューティング・デバイスのネットワーク状態(例えば、携帯接続、Wi−Fi接続、またはイーサネット接続)を判定する。クライアント・コンピューティング・デバイスのネットワーク接続のバンド幅が携帯接続などにより制限されている場合、サーバは、構造化ドキュメントに含まれる画像に対応するテキスト文字列のより縮小版を作成する。
例えば、サーバは、画像にタグ付けされたユーザの数人のみを含む(または全く含まない)ことによって、上記の例示的なグランドキャニオンの画像に対応するテキスト文字列のより縮小版(例えば、「これはD及びGと一緒にいるジョンの写真である。この写真はグランドキャニオンで撮影された。」、または「これはグランドキャニオンで撮影されたジョンの写真である。」)を作成する。サーバは、上記のように、タグ付けされた各ユーザと特定のユーザとの間のソーシャル・グラフ近接度に基づいて、画像にタグ付けされたユーザの数人のみを含むことによってテキスト文字列のより縮小版を作成する。
サーバは、画像の場所の情報を省略することによって、上記の例示的なグランドキャニオンの画像に対応するテキスト文字列のより縮小版(例えば、「これはA、B、C、D、E、F及びGと一緒にいるジョンの写真である。」)も作成する。
一実施形態においては、構造化ドキュメントを表示するクライアント・コンピューティング・デバイスのネットワーク接続のバンド幅が制限されている場合、サーバは、構造化ドキュメントに含まれた画像に対応する空テキスト文字列を作成する(または画像に対応するテキストの文字列の作成をスキップする)。
特定の実施形態においては、ステップ340で、サーバは、特定のユーザに対する提示のために、テキスト文字列を有する構造化ドキュメントをクライアント・コンピューティング・デバイスに送信する。クライアント・コンピューティング・デバイスによってホストされるウェブブラウザ(または構造化ドキュメントもしくはウェブ・ページを表示するように構成された任意の適切なアプリケーション)は、構造化ドキュメントを表示し、クライアント・コンピューティング・デバイスによってホストされるテキスト音声変換プログラム(または任意の適切なアプリケーション)は、画像に対応するテキスト文字列を含む、構造化ドキュメントのテキストコンテンツを(例えば、クライアント・コンピューティング・デバイスのスピーカを介して)可聴的に読み出す。一実施形態においては、ウェブブラウザ(または別の適切なアプリケーション)は、テキスト文字列を構造化ドキュメントにおける画像と隣接して表示するか、または(例えば、画像に関する見出しとして)画像と重ねて表示する。ウェブブラウザは、特定のユーザによるユーザイベント(例えば、マウスクリックイベント、マウスホバーオーバーイベント)に応じて、テキスト文字列を画像と隣接して表示するか、または画像と重なるように表示する。
特定の実施形態は、図3の方法の1つもしくは複数の適切なステップを繰り返し得る。この開示は、図3の方法の特定のステップが特定の順序で行われるものとして説明し、図示するが、この開示は、任意の適切な順序で行われるものとして図3の方法の任意の適切なステップを想定する。加えて、この開示は、図3の方法の特定のステップを実行する特定のコンポーネント、デバイス、またはシステムを説明し、図示するが、この開示は、図3の方法の任意の適切なステップを実行するコンポーネント、デバイス、またはシステムの任意の適切な組み合わせを想定する。
図4は、例示的なコンピュータ・システム400を示す。特定の実施形態では、1または複数のコンピュータ・システム400は、本明細書に記載され、または示されている1または複数の方法の1または複数のステップを実施する。特定の実施形態では、1または複数のコンピュータ・システム400は、本明細書に記載され、または示されている機能を提供する。特定の実施形態では、1または複数のコンピュータ・システム400上で動作するソフトウェアは、本明細書に記載され、または示されている1または複数の方法の1または複数のステップを実施し、または本明細書に記載され、または示されている機能を提供する。特定の実施形態は、1または複数のコンピュータ・システム400の1または複数の部分を含む。本明細書では、コンピュータ・システムに言及することは、適切な場合、コンピューティング・デバイスを包含してもよく、逆も同様である。さらに、コンピュータ・システムに言及することは、適切な場合、1または複数のコンピュータ・システムを包含してもよい。
この開示は、任意の好適な数のコンピュータ・システム400を企図する。この開示は、任意の好適な物理形態をとるコンピュータ・システム400を企図する。限定するものとしてではなく一例として、コンピュータ・システム400は、組込みコンピュータ・システム、システム・オン・チップ(SOC)、シングルボード・コンピュータ・システム(SBC)(たとえば、コンピュータ・オン・モジュール(COM)またはシステム・オン・モジュール(SOM)など)、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、対話キオスク、メインフレーム、コンピュータ・システムのメッシュ、移動体電話、携帯情報端末(PDA)、サーバ、タブレット・コンピュータ・システム、またはこれらの2以上の組合せであってよい。適切な場合、コンピュータ・システム400は、1または複数のコンピュータ・システム400を含んでもよく、一元的なものであっても分散型であってもよく、複数の場所に跨ってもよく、複数のマシンに跨ってもよく、複数のデータ・センタに跨ってもよく、クラウド内にあってもよく、クラウドは、1または複数のネットワーク内で1または複数のクラウド・コンポーネントを含んでもよい。適切な場合、1または複数のコンピュータ・システム400は、実質的な空間的または時間的制限なしに、本明細書に記載され、または示されている1または複数の方法の1または複数のステップを実施してもよい。限定するものとしてではなく一例として、1つまたは複数のコンピュータ・システム400は、リアルタイムで、またはバッチ・モードで、本明細書に記載され、または示されている1または複数の方法の1または複数のステップを実施してもよい。1または複数のコンピュータ・システム400は、適切な場合、異なる時に、または異なる場所で、本明細書に記載され、または示されている1または複数の方法の1または複数のステップを実施してもよい。
特定の実施形態では、コンピュータ・システム400は、プロセッサ402、メモリ404、ストレージ406、入力/出力(I/O)インターフェース408、通信インターフェース410、およびバス412を含む。この開示は、特定の数の特定の構成要素を特定の構成で有する特定のコンピュータ・システムについて記載し示しているが、この開示は、任意の好適な数の任意の好適な構成要素を任意の好適な構成で有する任意の好適なコンピュータ・システムを企図する。
特定の実施形態では、プロセッサ402は、コンピュータ・プログラムを構成するものなど命令を実行するためのハードウェアを含む。限定するものとしてではなく一例として、命令を実行するために、プロセッサ402は、内部レジスタ、内部キャッシュ、メモリ404、またはストレージ406から命令を取り出し(またはフェッチし)、それらを復号および実行し、次いで、1または複数の結果を内部レジスタ、内部キャッシュ、メモリ404、またはストレージ406に書き込む。特定の実施形態では、プロセッサ402は、データ、命令、またはアドレス用に1または複数の内部キャッシュを含んでもよい。この開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ402を企図する。限定するものとしてではなく一例として、プロセッサ402は、1または複数の命令キャッシュ、1または複数のデータ・キャッシュ、および1または複数の変換索引バッファ(TLB)を含んでもよい。命令キャッシュ内の命令は、メモリ404またはストレージ406内の命令のコピーであってもよく、命令キャッシュは、プロセッサ402によるこれらの命令の取り出しを高速化する。データ・キャッシュ内のデータは、プロセッサ402にて実行される命令が操作するための、メモリ404またはストレージ406内のデータのコピー、プロセッサ402で実行される後続の命令によるアクセスための、またはメモリ404もしくはストレージ406に書き込むための、プロセッサ402で実行された以前の命令の結果、あるいは他の好適なデータであってもよい。データ・キャッシュは、プロセッサ402による読出しまたは書込み動作を高速化する。TLBは、プロセッサ402のために仮想アドレス変換を高速化する。特定の実施形態では、プロセッサ402は、データ、命令、またはアドレス用に1または複数の内部レジスタを含む。この開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ402を企図する。適切な場合、プロセッサ402は、1または複数の算術論理演算ユニット(ALU)を含むことができ、マルチコア・プロセッサであってもよく、1または複数のプロセッサ402を含んでもよい。この開示は、特定のプロセッサについて記載し示しているが、この開示は、任意の好適なプロセッサを企図する。
特定の実施形態では、メモリ404は、プロセッサ402が実行するための命令、またはプロセッサ402が操作するためのデータを記憶するための主記憶装置を含む。限定するものとしてではなく一例として、コンピュータ・システム400は、ストレージ406または別のソース(たとえば、別のコンピュータ・システム400など)からメモリ404に命令をロードする。次いで、プロセッサ402は、メモリ404から内部レジスタまたは内部キャッシュに命令をロードする。命令を実行するために、プロセッサ402は、内部レジスタまたは内部キャッシュから命令を取り出し、それらを復号する。命令の実行中、または実行後、プロセッサ402は、1または複数の結果(中間結果であることも最終結果であることもある)を内部レジスタまたは内部キャッシュに書き込む。次いで、プロセッサ402は、それらの結果の1または複数をメモリ404に書き込む。特定の実施形態では、プロセッサ402は、1もしくは複数の内部レジスタもしくは内部キャッシュ内、または(ストレージ406もしくは他の場所ではなく)メモリ404内の命令だけを実行し、1もしくは複数の内部レジスタもしくは内部キャッシュ内、または(ストレージ406もしくは他の場所ではなく)メモリ404内のデータだけを操作する。1または複数のメモリ・バス(それぞれがアドレス・バスとデータ・バスを含むことがある)がプロセッサ402をメモリ404に結合してもよい。バス412は、下記に記載されているように、1または複数のメモリ・バスを含んでもよい。特定の実施形態では、1または複数のメモリ管理ユニット(MMU)が、プロセッサ402とメモリ404との間に存在し、プロセッサ402によって要求されるメモリ404へのアクセスを容易にする。特定の実施形態では、メモリ404は、ランダム・アクセス・メモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであり得る。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であってよい。さらに、適切な場合、このRAMは、シングルポート型またはマルチポート型RAMであってよい。この開示は、任意の好適なRAMを企図する。メモリ404は、適切な場合、1または複数のメモリ404を含んでもよい。この開示は、特定のメモリについて記載し示しているが、この開示は、任意の好適なメモリを企図する。
特定の実施形態では、ストレージ406は、データまたは命令用のマス・ストレージを含む。限定するものとしてではなく一例として、ストレージ406は、ハード・ディスク・ドライブ(HDD)、フロッピー(登録商標)ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、もしくはユニバーサル・シリアル・バス(USB)ドライブ、またはこれらの2以上の組合せを含んでもよい。ストレージ406は、適切な場合、取外し式または非取外し式(または固定)媒体を含んでもよい。ストレージ406は、適切な場合、コンピュータ・システム400に対して内部であっても外部であってもよい。特定の実施形態では、ストレージ406は、不揮発性のソリッドステート・メモリである。特定の実施形態では、ストレージ406は、読出し専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムドROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、もしくはフラッシュ・メモリ、またはこれらの2以上の組合せであってよい。この開示は、任意の好適な物理形態をとるマス・ストレージ406を企図する。ストレージ406は、適切な場合、プロセッサ402とストレージ406の間の通信を容易にする1または複数のストレージ制御ユニットを含んでもよい。適切な場合、ストレージ406は、1または複数のストレージ406を含んでもよい。この開示は、特定のストレージについて記載し示しているが、この開示は、任意の好適なストレージを企図する。
特定の実施形態では、I/Oインターフェース408は、コンピュータ・システム400と1または複数のI/Oデバイスとの間の通信のために1または複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム400は、適切な場合、これらのI/Oデバイスの1または複数を含んでもよい。これらのI/Oデバイスの1または複数は、人とコンピュータ・システム400の間の通信を可能にする。限定するものとしてではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、ビデオ・カメラ、別の好適なI/Oデバイス、またはこれらの2以上の組合せを含んでもよい。I/Oデバイスは、1または複数のセンサを含んでもよい。この開示は、任意の好適なI/Oデバイス、およびそれらのための任意の好適なI/Oインターフェース408を企図する。適切な場合、I/Oインターフェース408は、プロセッサ402がこれらのI/Oデバイスの1または複数を駆動することを可能にする1または複数のデバイスまたはソフトウェア・ドライバを含む。I/Oインターフェース408は、適切な場合、1または複数のI/Oインターフェース408を含んでもよい。この開示は、特定のI/Oインターフェースについて記載し示しているが、この開示は、任意の好適なI/Oインターフェースを企図する。
特定の実施形態では、通信インターフェース410は、コンピュータ・システム400と1もしくは複数の他のコンピュータ・システム400または1もしくは複数のネットワークとの間の通信(たとえば、パケットベースの通信など)のために1または複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定するものとしてではなく一例として、通信インターフェース410は、ETHERNET(登録商標)もしくは他の有線ベースのネットワークとの通信のためのインターフェース・コントローラ(NIC)もしくはネットワーク・アダプタ、またはWI−FIネットワークなど無線ネットワークとの通信のための無線NIC(WNIC)もしくは無線アダプタを含んでもよい。この開示は、任意の好適なネットワーク、およびそのための任意の好適な通信インターフェース410を企図する。限定するものとしてではなく一例として、コンピュータ・システム400は、アドホック・ネットワーク、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、またはインターネットの1もしくは複数の部分、あるいはこれらの2以上の組合せと通信する。これらのネットワークの1または複数のうちの1または複数の部分は、有線であっても無線であってもよい。一例として、コンピュータ・システム400は、無線PAN(WPAN)(たとえば、BLUETOOTH(登録商標)WPANなど)、WI−FIネットワーク、WI−MAXネットワーク、携帯電話ネットワーク(たとえば、グローバル移動体通信システム(GSM(登録商標))ネットワークなど)、もしくは他の好適な無線ネットワーク、またはこれらの2以上の組合せと通信する。コンピュータ・システム400は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース410を含んでもよい。通信インターフェース410は、適切な場合、1または複数の通信インターフェース410を含んでもよい。この開示は、特定の通信インターフェースについて記載し示しているが、この開示は、任意の好適な通信インターフェースを企図する。
特定の実施形態では、バス412は、コンピュータ・システム400の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定するものとしてではなく一例として、バス412は、アクセラレィティッド・グラフィックス・ポート(AGP)もしくは他のグラフィックス・バス、EISA(Enhanced Industry Standard Architecture)バス、フロントサイド・バス(FSB)、HT(HYPERTRANSPORT)相互接続、ISA(Industry Standard Architecture)バス、インフィニバンド相互接続、LPC(low−pin−count)バス、メモリ・バス、MCA(Micro Channel Architecture)バス、PCI(Peripheral Component Interconnect)バス、PCIエクスプレス(PCIe)バス、SATA(serial advanced technology attachment)バス、VLB(Video Electronics Standards Association local)バス、もしくは別の好適なバス、またはこれらの2以上の組合せを含んでもよい。バス412は、適切な場合、1または複数のバス412を含んでもよい。この開示は、特定のバスについて記載し示しているが、この開示は、任意の好適なバスまたは相互接続を企図する。
本明細書では、1または複数の非一時的コンピュータ可読記憶媒体は、適切な場合、1または複数の半導体ベースの、もしくは他の集積回路(IC)(たとえば、フィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向けIC(ASIC))、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスク・ドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピー(登録商標)・ディスケット、フロッピー(登録商標)・ディスク・ドライブ(FDD)、磁気テープ、ソリッドステート・ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カードもしくはセキュア・デジタル・ドライブ、任意の他の好適な非一時的コンピュータ可読記憶媒体、またはこれらの2以上の組合せを含んでもよい。非一時的コンピュータ可読記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せであってよい。
本明細書では、「または(もしくは)」は、別段明確に示されていない限り、または別段文脈によって示されない限り、包括的(inclusive)であり、排他的なものではない。したがって、本明細書では、「AまたはB」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「A、B、またはその両方」を意味する。さらに、「および」は、別段明確に示されていない限り、または別段文脈によって示されない限り、共同であり、個別的でもある。したがって、本明細書では、「AおよびB」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「AおよびBを共同で、または個別的に」意味する。
この開示の範囲は、当業者であれば理解するであろう、本明細書に記載され、または示されている例示的な実施形態に対する変更、置換、変形、代替、および修正すべてを包含する。この開示の範囲は、本明細書に記載され、または示されている例示的な実施形態に限定されない。さらに、この開示は、それぞれの実施形態について、本明細書では、特定の構成要素、要素、機能、動作、またはステップを含むものとして記載し示しているが、これらの実施形態のいずれも、当業者であれば理解するであろう、本明細書のどこかに記載され、または示されている構成要素、要素、機能、動作、またはステップのいずれかの任意の組合せまたは並べ替えを含んでもよい。さらに、添付の特許請求の範囲において、特定の機能を実施するように適合された、するように配置された、することが可能な、するように構成された、することが可能である、するように動作可能である、またはするように動作する装置もしくはシステム、または装置もしくはシステムの構成要素に言及することは、その装置、システム、または構成要素がそのように適合され、配置され、動作可能であり、構成され、可能であり、動作可能であり、動作する限り、それ、またはその特定の機能が作動される、オンにされる、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。