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

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

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

特許6184954自然言語処理に基づく、種々のオブジェクトに対する係数付与
<>
  • 特許6184954-自然言語処理に基づく、種々のオブジェクトに対する係数付与 図000002
  • 特許6184954-自然言語処理に基づく、種々のオブジェクトに対する係数付与 図000003
  • 特許6184954-自然言語処理に基づく、種々のオブジェクトに対する係数付与 図000004
  • 特許6184954-自然言語処理に基づく、種々のオブジェクトに対する係数付与 図000005
  • 特許6184954-自然言語処理に基づく、種々のオブジェクトに対する係数付与 図000006
  • 特許6184954-自然言語処理に基づく、種々のオブジェクトに対する係数付与 図000007
  • 特許6184954-自然言語処理に基づく、種々のオブジェクトに対する係数付与 図000008
  • 特許6184954-自然言語処理に基づく、種々のオブジェクトに対する係数付与 図000009
  • 特許6184954-自然言語処理に基づく、種々のオブジェクトに対する係数付与 図000010
  • 特許6184954-自然言語処理に基づく、種々のオブジェクトに対する係数付与 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6184954
(24)【登録日】2017年8月4日
(45)【発行日】2017年8月23日
(54)【発明の名称】自然言語処理に基づく、種々のオブジェクトに対する係数付与
(51)【国際特許分類】
   G06Q 50/00 20120101AFI20170814BHJP
   G06F 17/30 20060101ALI20170814BHJP
【FI】
   G06Q50/00 300
   G06F17/30 330C
   G06F17/30 419B
【請求項の数】17
【全頁数】30
(21)【出願番号】特願2014-526033(P2014-526033)
(86)(22)【出願日】2012年7月20日
(65)【公表番号】特表2014-527232(P2014-527232A)
(43)【公表日】2014年10月9日
(86)【国際出願番号】US2012047530
(87)【国際公開番号】WO2013025309
(87)【国際公開日】20130221
【審査請求日】2015年7月1日
(31)【優先権主張番号】13/209,207
(32)【優先日】2011年8月12日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】フェイスブック,インク.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ツェン、エリック
【審査官】 佐藤 裕子
(56)【参考文献】
【文献】 特表2011−513802(JP,A)
【文献】 国際公開第2011/002588(WO,A1)
【文献】 特開2009−176302(JP,A)
【文献】 特表2012−532370(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 − 99/00
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のコンピューティング・システムによって、
複数のノードと、該ノード同士を接続する複数のエッジとを備えるソーシャル・グラフにアクセスするステップであって、該ノードは、オンライン・ソーシャル・ネットワークに関連する複数のコンテンツ・オブジェクトに対応する、ステップと、
自由形式テキストを含む入力をユーザから受け取るステップと、
該自由形式テキストの自然言語処理の適用を通して、該入力に関連する1つまたは複数のオブジェクトを決定するステップであって、各オブジェクトは、該ソーシャル・グラフ中の該複数のノードのうちの1つに対応し、該1つまたは複数のオブジェクトの各々は、該自由形式テキスト中で検出された名詞を含む、ステップと、
該自由形式テキストの自然言語処理の適用を通して、該1つまたは複数のオブジェクトに関連する1つまたは複数のアフィニティ宣言を決定するステップと、
該1つまたは複数のオブジェクトから第1の概念および第2の概念を決定するステップであって、該第1の概念は、該ソーシャル・グラフ中の第1のノードに対応し、該第2の概念は、該ソーシャル・グラフ中の第2のノードに対応し、該第1の概念は、該第2の概念の特定のインスタンスである、ステップと、
1つまたは複数のアフィニティ宣言に基づいて該ユーザと該第1の概念との間の第1のアフィニティ係数を決定するステップと、
該ユーザと該第2の概念との間の第2のアフィニティ係数を推論するステップであって、該推論は、該第1のアフィニティ係数と該ユーザのソーシャル・ネットワーキング情報とに基づく、ステップと、
第1のアフィニティ係数を該ユーザおよび該第1の概念との関連でデータ・ストアに記憶するステップと
しきい値数のユーザに対して該推論された第2のアフィニティ係数が所定の数を超えたことを決定するに際し、オンライン・ソーシャル・ネットワーク上に表示するための該第1の概念に関連するページを作成するステップとを備える、方法。
【請求項2】
前記入力がコンテキスト・データをさらに含んでなる、請求項1に記載の方法。
【請求項3】
前記コンテキスト・データが位置を含んでなる、請求項2に記載の方法。
【請求項4】
前記コンテキスト・データが時刻を含んでなる、請求項2に記載の方法。
【請求項5】
前記コンテキスト・データが特定の位置へのチェックインを含んでなる、請求項2に記載の方法。
【請求項6】
前記コンテキスト・データが、前記ユーザ入力が作用する要素に基づいて推論される、請求項2に記載の方法。
【請求項7】
前記第1のアフィニティ係数または前記第2のアフィニティ係数が正または負の数値である、請求項1に記載の方法。
【請求項8】
前記自然言語処理が、クラウドソーシングされた形容詞またはオブジェクトからなる辞書を利用する、請求項7に記載の方法。
【請求項9】
前記第1のアフィニティ係数または前記第2のアフィニティ係数が、前記アフィニティ宣言中に見られる形容詞の相対的な強度に基づく、請求項8に記載の方法。
【請求項10】
前記第1のノードが、前記ソーシャル・グラフにアクセスするソーシャル・ネットワークのユーザから隠蔽される、請求項に記載の方法。
【請求項11】
前記第1のアフィニティを記憶することが、前記ユーザを表すノードと前記インスタンスを表す前記ノードとを接続するエッジを作成することを含む、請求項10に記載の方法。
【請求項12】
前記ユーザがソーシャル・グラフ中で第1のノードによって表され、前記インスタンスが該ソーシャル・グラフ中で第2のノードによって表され、前記第1のアフィニティ係数を記憶することが、該第1のノードと該第2のノードとを接続するエッジを作成することを含む、請求項1に記載の方法。
【請求項13】
命令を含む非一時的コンピュータ可読媒体であって、前記命令が実行されたとき、前記命令が、
複数のノードと、該ノード同士を接続する複数のエッジとを備えるソーシャル・グラフにアクセスするステップであって、該ノードは、オンライン・ソーシャル・ネットワークに関連する複数のコンテンツ・オブジェクトに対応する、ステップと、
自由形式テキストを含む入力をユーザから受け取るステップと、
該自由形式テキストの自然言語処理の適用を通して、該入力に関連する1つまたは複数のオブジェクトを決定するステップであって、各オブジェクトは、該ソーシャル・グラフ中の該複数のノードのうちの1つに対応し、該1つまたは複数のオブジェクトの各々は、該自由形式テキスト中で検出された名詞を含む、ステップと、
該自由形式テキストの自然言語処理の適用を通して、該1つまたは複数のオブジェクトに関連する1つまたは複数のアフィニティ宣言を決定するステップと、
該1つまたは複数のオブジェクトから第1の概念および第2の概念を決定するステップであって、該第1の概念は、該ソーシャル・グラフ中の第1のノードに対応し、該第2の概念は、該ソーシャル・グラフ中の第2のノードに対応し、該第1の概念は、該第2の概念の特定のインスタンスである、ステップと、
該1つまたは複数のアフィニティ宣言に基づいて該ユーザと該第1の概念との間の第1のアフィニティ係数を決定するステップと、
該ユーザと該第2の概念との間の第2のアフィニティ係数を推論するステップであって、該推論は、該第1のアフィニティ係数と該ユーザのソーシャル・ネットワーキング情報
とに基づく、ステップと、
該第1のアフィニティ係数を該ユーザおよび該第1の概念との関連でデータ・ストアに記憶するステップと、
しきい値数のユーザに対して該推論された第2のアフィニティ係数が所定の数を超えたことを決定するに際し、オンライン・ソーシャル・ネットワーク上に表示するための該第1の概念に関連するページを作成するステップとが行われるように構成される、媒体。
【請求項14】
前記入力がコンテキスト・データも含む、請求項13に記載の媒体。
【請求項15】
前記コンテキスト・データが位置または時刻を含む、請求項14に記載の媒体。
【請求項16】
前記コンテキスト・データが特定の位置へのチェックインを含む、請求項14に記載の媒体。
【請求項17】
前記コンテキスト・データが、前記ユーザ入力が作用する要素に基づいて推論される、請求項14に記載の媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は一般に、ソーシャル・ネットワーキングに関し、より詳細には、自然言語処理をユーザの自由形式テキスト宣言に適用して、特定のオブジェクトと、これらのオブジェクトに対するユーザのアフィニティ(好感)とを識別することに関する。
【背景技術】
【0002】
コンピュータ・ユーザは、様々なローカルおよびワイド・エリア・コンピュータ・ネットワーク(プロプラエタリ・ネットワーク、ならびにインターネットなどの公衆ネットワークを含む)を介して、大量の情報にアクセスしこの情報を共有することができる。通常、ユーザのコンピューティング・デバイスにインストールされたウェブ・ブラウザが、様々なネットワーク・サーバに位置する情報へのアクセスおよびこの情報との対話を容易にし、この情報は例えば、関連するユニフォーム・リソース・ロケータ(URL)によって識別される。ユーザによって生成されたコンテンツの共有を可能にするための従来の手法は、ソーシャル・ネットワーキング・ウェブサイトなど、様々な情報共有技術またはプラットフォームを含む。このようなウェブサイトは、他のユーザによって作成またはカスタマイズされた「プロフィール」ページをユーザが閲覧できるようにするアプリケーションのためのプラットフォームを備えるか、そうしたプラットフォームにリンクされるか、またはそうしたプラットフォームを提供することができ、他のユーザからこのようなプロフィールが見える度合い、および他のユーザによるこのようなプロフィールとの対話は、いくつかの特徴的な規則セットによって管理される。例として、ユーザ・プロフィールは、連絡先情報、背景情報、職業/経歴情報、ならびに関心など、ユーザによって宣言された情報を含む場合がある。
【0003】
従来のソーシャル・ネットワークの1つは、個人、グループ、エンティティ、または組織(「ノード」と一般に呼ばれる)で構成されるソーシャル構造であり、これらのノードは、1つまたは複数の特定タイプの相互依存性によって結び付けられる(接続される)。ソーシャル・ネットワーク(グラフ)分析は、ソーシャル関係を、ノードとエッジとからなるネットワーク理論の点から見る。ノードは、ネットワーク内の個々の動作主体であり、エッジは、動作主体間の関係である。結果として得られるグラフベースの構造は、しばしば非常に複雑である。ノード間には多くの種類のエッジが存在する可能性がある。ソーシャル・ネットワークまたはソーシャル・グラフは、その最も単純な形では、検討されている全てのノード間の、関連する全てのエッジのマップである。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ユーザは、他の非ユーザ・ノードと対話し、様々なアクションを通してノードに対するアフィニティを明示的に表現することができる。しかし、ソーシャル・ネットワーク上でのユーザ・アクションのかなりの部分は、非ユーザ・ノードがはっきりと識別されることも、アフィニティがはっきりと述べられることもなく行われる。自然言語処理を適用することで、ソーシャル・ネットワークは、この膨大な未開発の情報を定量化し、これを活用してユーザおよび広告主にとってのソーシャル・ネットワーキング体験を向上させることができる。
【課題を解決するための手段】
【0005】
本発明の第1の実施例によれば、1つまたは複数のコンピューティング・システムによって、自由形式テキストを含む入力をユーザから受け取ること、該自由形式テキストの自然言語処理の適用を通して、該入力に関連する1つまたは複数のオブジェクトを決定する
こと、該自由形式テキストの自然言語処理の適用を通して、該1つまたは複数のオブジェクトに関連する1つまたは複数のアフィニティ宣言を決定すること、該1つまたは複数のオブジェクトから概念のインスタンスを決定すること、該アフィニティ宣言に基づいて該ユーザと該インスタンスとの間のアフィニティ係数を決定すること、および、該アフィニティ係数を該ユーザおよび該インスタンスとの関連でデータ・ストアに記憶することからなる、方法を要旨とする。
【0006】
本発明の第2の実施例によれば、第1の実施例において、前記入力がコンテキスト・データも含むことを要旨とする。
第3の実施例によれば、第2の実施例において、前記コンテキスト・データが位置を含むことを要旨とする。
【0007】
第4の実施例によれば、第2の実施例において、前記コンテキスト・データが時刻を含むことを要旨とする。
第5の実施例によれば、第2の実施例において、前記コンテキスト・データが特定の位置へのチェックインを含むことを要旨とする。
【0008】
第6の実施例によれば、第2の実施例において、前記コンテキスト・データが、前記ユーザ入力が作用する要素に基づいて推論されることを要旨とする。
第7の実施例によれば、第1の実施例において、前記アフィニティ係数が正または負の数値である場合があることを要旨とする。
【0009】
第8の実施例によれば、第7の実施例において、前記自然言語処理が、クラウドソーシングされた形容詞またはオブジェクトからなる辞書を利用することを要旨とする。
第9の実施例によれば、第8の実施例において、前記アフィニティ係数が、前記アフィニティ宣言中に見られる形容詞の相対的な強度に基づくことを要旨とする。
【0010】
第10の実施例によれば、第1の実施例において、前記インスタンスがソーシャル・グラフ中にノードとして存在するかどうか判定すること、該インスタンスが該ソーシャル・グラフ中に存在しない場合に、該決定されたインスタンスを表すノードを該ソーシャル・グラフ中で作成することをさらに含むことを要旨とする。
【0011】
第11の実施例によれば、第10の実施例において、前記ノードが、前記ソーシャル・グラフにアクセスするソーシャル・ネットワークのユーザから隠蔽されることを要旨とする。
【0012】
第12の実施例によれば、第11の実施例において、前記アフィニティを記憶することが、前記ユーザを表すノードと前記インスタンスを表す前記ノードとを接続するエッジを作成することを含むことを要旨とする。
【0013】
第13の実施例によれば、第1の実施例において、前記ユーザがソーシャル・グラフ中で第1のノードによって表され、前記インスタンスが該ソーシャル・グラフ中で第2のノードによって表され、前記アフィニティ係数を記憶することが、該第1のノードと該第2のノードとを接続するエッジを作成することを含むことを要旨とする。
【0014】
第14の実施例によれば、1つまたは複数のコンピューティング・システムによって、
自由形式テキストを含む入力をユーザから受け取ること、該自由形式テキストへの自然言語処理の適用を通して、該入力に関連する1つまたは複数のオブジェクトを決定すること、該決定された1つまたは複数のオブジェクトにほぼ関係する、所定数の正のアフィニティ係数が関連付けられたインスタンスを、インスタンスのデータベース中で検索するこ
と、および、該インスタンスを推奨する通知を該ユーザに送達することからなる、方法を要旨とする。
【0015】
第15の実施例によれば、第14の実施例において、前記正のアフィニティ係数が所定の数値よりも大きいことを要旨とする。
第16の実施例によれば、命令を含む非一時的コンピュータ可読媒体であって、前記命令が実行されたとき、前記命令が、自由形式テキストを含む入力をユーザから受け取り、該自由形式テキストの自然言語処理の適用を通して、該入力に関連する1つまたは複数のオブジェクトを決定し、該自由形式テキストの自然言語処理の適用を通して、該1つまたは複数のオブジェクトに関連する1つまたは複数のアフィニティ宣言を決定し、該1つまたは複数のオブジェクトから概念のインスタンスを決定し、該アフィニティ宣言に基づいて該ユーザと該インスタンスとの間のアフィニティ係数を決定し、該アフィニティ係数を該ユーザおよび該インスタンスとの関連でデータ・ストアに記憶するように動作可能である、媒体を要旨とする。
【0016】
第17の実施例によれば、第16の実施例において、前記入力がコンテキスト・データも含むことを要旨とする。
第18の実施例によれば、第17の実施例において、前記コンテキスト・データが位置または時刻を含むことを要旨とする。
【0017】
第19の実施例によれば、第17の実施例において、前記コンテキスト・データが特定の位置へのチェックインを含むことを要旨とする。
第20の実施例によれば、第17の実施例において、前記コンテキスト・データが、前記ユーザ入力が作用する要素に基づいて推論されることを要旨とする。
【図面の簡単な説明】
【0018】
図1】例示的なソーシャル・ネットワーク環境の例示的なコンピュータ・ネットワーク環境を示す図。
図2】例示的なソーシャル・ネットワーク環境の例示的なコンポーネントを示す図。
図3】例示的なソーシャル・グラフを示す図。
図4A】自由形式テキストを含む例示的なユーザ・アクションを示す図(図中、「アンドロイド」は商標である)。
図4B】自由形式テキストを含む例示的なユーザ・アクションを示す図。
図4C】自由形式テキストを含む例示的なユーザ・アクションを示す図(図中、「iPhone」は商標である)。
図5】例示的な概念プロフィール・ページを示す図。
図6】自然言語処理を通して係数を計算するための例示的な方法を示すフローチャート。
図7】例示的なネットワーク環境を示す図。
図8】例示的なコンピュータ・システム・アーキテクチャを示す図。
【発明を実施するための形態】
【0019】
特定の実施形態は、統合ソーシャル・ネットワーク環境を可能にするインフラストラクチャまたはプラットフォーム(以下ではインフラストラクチャとプラットフォームは交換可能に使用される場合がある)を備えるソーシャル・ネットワーク環境に関する。本開示においては、ソーシャル・グラフ情報を含むソーシャル・グラフの点から、ソーシャル・ネットワーク環境について述べる場合がある。特定の実施形態では、ソーシャル・ネットワーク環境を実現する、ソーシャル・ネットワーク環境の1つまたは複数のコンピューティング・システムは、本願明細書に述べるソーシャル・ネットワーク環境を実現する際に
使用されるソーシャル・グラフ情報を含むデータ構造を備えるか、記憶するか、またはそのようなデータ構造へのアクセスを有する。ソーシャル・ネットワークは、ソーシャル・ネットワーク環境中のユーザおよび概念を表すノードと、このようなノード間の接続を定義するかまたは表すエッジとを含むソーシャル・グラフを利用する。自然言語処理を適用することで、ソーシャル・ネットワーキング・システムは、どんな明示的なオブジェクト識別子もない自由形式テキストから、またはいずれかの明示的なオブジェクト識別子に関連する自由形式テキストから、ユーザ・ノードと概念ノードとの間のアフィニティ・エッジを論理的に割り当てることができる。
【0020】
特定の実施形態では、ソーシャル・グラフ情報は、それぞれのユーザに各々対応するユーザ・ノードの第1のセットと、それぞれの概念に各々対応する概念ノードの第2のセットとを含む。本願明細書において、「ユーザ」は、このようなソーシャル・ネットワーク環境と対話もしくは通信するか、またはこのようなソーシャル・ネットワーク環境を介して対話もしくは通信する、個人(人間のユーザ)、エンティティ(例えば企業、事業、もしくは第三者アプリケーション)、またはグループ(例えば個人もしくはエンティティの)とすることができる。本願明細書において、「概念」とは、それに対する関心、好み、または関係をユーザが宣言するかまたは他の方法で表明することのできる、ほぼどんなものも指すことができ、例としてこれは、スポーツ、スポーツ・チーム、音楽ジャンル、作曲家、趣味、事業(企業)、エンティティ、グループ、第三者アプリケーション、著名人、登録ユーザでない人物、などである。特定の実施形態では、各ノードは、ソーシャル・ネットワーク環境中でホストされるかまたはアクセス可能な対応するウェブ・ページ(プロフィール・ページ)を有するか、表すか、またはそのようなウェブ・ページによって表される。
【0021】
例として、ユーザ・ノードは、対応するユーザ・プロフィール・ページを有することができ、このユーザ・プロフィール・ページ中では、対応するユーザが、コンテンツを追加すること、宣言を行うこと、および他の方法で自分を表現することができる。一方、概念ノードは、対応する概念プロフィール・ページ(ハブ)を有することができ、この概念プロフィール・ページ中では、複数のユーザが、特にその概念との関係で、内容を追加すること、宣言を行うこと、および自分を表現することができる。特定の実施形態では、ソーシャル・グラフ情報はさらに、ソーシャル・グラフ中の対応する1対のノードの間の接続をそれぞれが定義するかまたは表す複数のエッジを含む。
【0022】
特定の実施形態では、ソーシャル・グラフは、概念ノードのサブカテゴリを含む。第1に、属性ノードは、ユーザ・ノードに、または対応するハブ・ページを必ずしも有するとは限らない他の概念ノードに接続される概念ノードであり、ソーシャル・ネットワークのユーザから必ずしも見えるとは限らない。例えば、ソーシャル・ネットワークは、特定のユーザがスポーツ・ゲームにエッジ接続されていることに基づいて、このユーザが「スポーツ」または「アクション・ゲーム」に対するアフィニティを有すると推論することができる。これらの属性ノードはソーシャル・ネットワークによって動的に生成され、一般に、このような広いカテゴリについてのハブ・ページは、ソーシャル・ネットワークのユーザにとって、無意味であるか、または、ほとんどもしくは全く有用でないことになる。
【0023】
同様に、概念がハブ・ページを有することが意味をなさないような狭い概念に対するアフィニティをユーザが表現する場合、このアフィニティは、属性ノードとしてソーシャル・グラフ上で追跡されるが、ユーザから公に見えることはない。例えば、ユーザが、ハブ・ページを有する特定のレストランにチェックインし、また、このレストランの特定の料理に対するアフィニティを表現した(例えば「レストランXのフォアグラは驚きだ」)場合、ソーシャル・ネットワークは、自然言語プログラミングを使用して、属性ノード(レストランXのフォアグラ)に対する「いいね」など、アフィニティを決定することができ
る。特定の実施形態では、ある属性ノードへの接続の数が所定数を超えたとき、ソーシャル・ネットワークは、この属性ノードについてのハブ・ページを動的に作成する。特定の実施形態では、ソーシャル・ネットワークは、属性ノードに関連する概念ノードの管理者(この例では、レストランXの管理者)にメッセージを送り、属性ノードのサブページを作成して欲しいかどうか尋ねることになる。前述のような隠れ属性ノードは、「アクション・ゲーム」や「保守派」などの一般概念、または「フォアグラ」や「ステーキ」などのオブジェクトに対応する場合がある。この区別は、属性の範囲によっては曖昧である。例えば、属性ノードが「発行元Xからのアクション・ゲーム」に対応する場合がある。本開示において、用語「属性ノード」と「オブジェクト・ノード」は、交換可能に使用される。
【0024】
いくつかの実施形態では、各エッジは、ソーシャル・グラフ中でエッジが接続するノードのタイプに少なくとも部分的に基づく複数のエッジ・タイプのうちの1つとすることができる。例として、特定の一実施形態では、第1のエッジ・タイプからの各エッジは、第1のセットからの1対のユーザ・ノード間の接続を定義し、第2のエッジ・タイプからの各エッジは、第1のセットからのユーザ・ノードと第2のセットからの概念ノードとの間の接続を定義する。さらに、第3のエッジ・タイプからの各エッジは、第2のセットからの1対の概念ノード間の接続を定義することができる。このような実施形態では、エッジ自体が、エッジが接続する1対のノード間の接続のタイプを定義するデータを記憶するかまたはそのようなデータと共に記憶されてよく、このデータは例えば、適切なまたは関連するデータの中でもとりわけ、エッジが接続するノードのタイプ(例えばユーザまたは概念)、エッジによって接続される1対のノードのうちの一方の管理者の、エッジが接続する他方のノードに対するアクセス特権(例えば、エッジによって接続される他方のノードに対する、一方のノードの管理者の読取りまたは書込みアクセス)を記述するデータ、あるいは、エッジが最初にどのようにまたはなぜ初期化または作成されたか(例えば、明示的なユーザ・アクションもしくは宣言に応答して、または明示的なユーザ・アクションなしで自動的に)、エッジによって接続されるノードに関係するかまたはそれらのノードによって共有される様々な要因または基準によって決定される接続強度を記述するデータなどである。代替の一実施形態では、各エッジは単に、エッジが接続するノードのタイプにかかわらず、ノード間の接続を定義するかまたは表すことができる。すなわち、エッジ自体は、エッジが接続するノードの識別子を記憶するかまたはそのような識別子と共に記憶されるが、エッジが接続する1対のノード間の接続のタイプを記述するデータは記憶しないかまたはそのようなデータと共には記憶されないものとすることができる。さらに、これらのまたは他の実施形態のいずれにおいても、エッジによって接続されるノード間の接続または関係のタイプを示すことのできるデータが、ノード自体と共に記憶されてよい。
【0025】
特定の実施形態では、概念データベースは、既知の概念の、ならびに、いくつかの実施形態では、それぞれの概念に関連する様々な属性、メタデータ、または他の情報の、インデックスを含む。特定の実施形態では、1つまたは複数のバックエンド(サーバ側)工程が、1つまたは複数の外部データ・ソース(例えばWIKIPEDIA(www.wikipedia.org)、FREEBASE(www.freebase.com。METAWEBから利用可能)、または一般にインターネット)をクロールして、概念データベースの生成またはデータ投入を円滑化または補助する。いくつかの実施形態では、概念データベースはまた、本願明細書に述べるソーシャル・ネットワーク環境のユーザから抽出された情報で増補されてもよい。
【0026】
ソーシャル・ネットワーキング・システムのユーザは、概念ノードおよびそれらのハブと様々な方法で対話することができる。例えば、ユーザは、ハブ上のボタンをクリックして、ハブおよび関連する概念ノードが「好き」であることを明示的に示すことができる。特定の実施形態では、ユーザは、ハブ・ページに関連する実世界の位置に「チェックイン
」することができる。特定の実施形態では、ユーザは、特定のハブおよび関連する概念ノードの「ファン」になることができる。特定の実施形態では、ユーザは、ハブ・ページを明示的に識別し、ハブ・ページ上でコメントまたはレビューを投稿することができる。これらの対話は、ソーシャル・ネットワークの内または外で行われる場合があるが、ハブ・ページの明示的な識別と、ハブに関連する概念ノードに対する明示的なアフィニティとを少なくとも含む可能性がある。しかし、ソーシャル・ネットワーク上での大多数のアクションは、ハブの識別も、明示的に示されるアフィニティも含まない。
【0027】
ソーシャル・ネットワークのユーザは、自由形式テキストをタイプ入力することを主に含むアクションを行うことができる。特定の実施形態では、ユーザは、「ステータス・メッセージ」として自由形式テキストをタイプ入力することができる。特定の実施形態では、ユーザは、自分自身のウォール、別のユーザのウォール、またはハブ・ページのウォール上に、コメントの形で自由形式テキストを入力することができる。特定の実施形態では、ユーザは、フォト・アルバム、個別の写真またはビデオ、投稿されたリンクなど、ソーシャル・ネットワーキング・ウェブサイト上の任意の他のページの任意の要素に対して、コメントすることができる。特定の実施形態では、ソーシャル・ネットワーキング・サイトのユーザは、電子メール、テキスト・メッセージ、またはインスタント・メッセージの形で、私的なメッセージを相互に送ることができる。特定の実施形態では、ユーザは、明示的なオブジェクト/ハブ識別子を含むかまたは明示的なアフィニティの表現を含む自由形式テキストを、別のユーザ・アクションに付加することができる。例えば、ユーザは、ある位置にチェックインし、自分のチェックインに関連して、「天気とマンゴー・マルガリータを楽しんでいます」などの自由形式テキストを付加する場合がある。特定の実施形態では、ユーザは、ハブまたはオブジェクトを暗黙的に識別する自由形式テキストを、ソーシャル・ネットワーキング・システムの要素に対して投稿することができる。例えば、ユーザは、自分の友達によって共有される、ニューヨーク・タイムズへの記事へのリンクに対して、コメントする場合がある。ユーザのコメントがニューヨーク・タイムズの記事の明示的な識別を含まなくても、記事を共有するリンクに関連してこのコメントが配置されていることで、暗黙的なオブジェクトまたはハブ識別子があることが示される。
【0028】
特定の実施形態では、ソーシャル・ネットワーキング・システム上のアプリケーションが、ユーザによって投稿された全ての自由形式テキストを解析し、自然言語処理を通して、1つまたは複数のオブジェクトと、アフィニティに対する1つまたは複数のアフィニティとを識別する。このオブジェクトおよびアフィニティは、ソーシャル・ネットワーキング・システムまたはその広告主によって活用されるように、ソーシャル・グラフに記憶することができる。
【0029】
このようなソーシャル・ネットワーキング・プラットフォームの様々な部分は、限定ではなく例としてより詳細に後述するように様々なソフトウェア・コンポーネントまたは工程が特定の実施形態を実施できるようにするハードウェア・アーキテクチャまたはソフトウェア・フレームワークを介して、実現することができる。このプラットフォームは、1つまたは複数のハードウェアまたはソフトウェア・コンポーネントを備えてよく、これらのコンポーネントの1つまたは複数は、1つまたは複数の統合または分散コンピューティング・システム中で位置するかまたは実現されてよい。加えて、本願明細書において、「または(もしくは、あるいは)」は、「または」だけでなく「および(ならびに、〜と)」も含意し得る。すなわち、「または」は、明示的に言及されるか暗黙的に含意されない限り、「および」を必ずしも除外しない。
【0030】
先に述べたように、様々な例示的な実施形態で、述べる1つまたは複数のウェブ・ページまたはウェブ・アプリケーションは、ソーシャル・ネットワーク環境またはソーシャル・ネットワーキング・サービスに関連する。本願明細書において、「ユーザ」は、このよ
うなソーシャル・ネットワーク環境と対話もしくは通信するか、またはこのようなソーシャル・ネットワーク環境を介して対話もしくは通信する、個人(人間のユーザ)、エンティティ(例えば企業、事業、もしくは第三者アプリケーション)、またはグループ(例えば個人もしくはエンティティの)とすることができる。本願明細書において、「登録ユーザ」とは、ソーシャル・ネットワーク環境内で正式に登録されたユーザを指す(一般に、本願明細書に述べるユーザおよびユーザ・ノードとは登録ユーザのみを指すが、これは他の実施形態では必ずしも要件ではない。すなわち、他の実施形態では、本願明細書に述べるユーザおよびユーザ・ノードとは、本願明細書に述べるソーシャル・ネットワーク環境に登録されていないユーザを指す場合もある)。特定の実施形態では、登録ユーザは、ソーシャル・ネットワーク環境によって記憶またはホストされ他のユーザの全てまたは選択されたサブセットによって閲覧可能な、対応する「プロフィール」ページを有する。一般に、ユーザは、それぞれの自己プロフィール・ページの全部または一部に対して、ならびに場合によっては、特定ユーザによってまたは特定ユーザについて作成された他のページ(これらには例えば、可能性のなかでもとりわけ、ホーム・ページ、ウェブ・アプリケーションをホストするページが含まれる)に対して、管理権限を有する。本願明細書において、「認証ユーザ」とは、そのユーザが管理権限を有する対応するプロフィール・ページ中で本人を主張するユーザとして、あるいは主張するユーザの適切な信頼される代理人として、ソーシャル・ネットワーク環境によって認証されたユーザを指す。
【0031】
本願明細書において、「接続」は、ソーシャル・ネットワーク環境のユーザまたは概念の間の、定義された関係を表すことができる。この関係は、ソーシャル・ネットワーク環境の適切なデータ構造中で論理的に定義することができ、また、接続がなされた対象であるソーシャル・ネットワーク環境のユーザまたは概念に対応するノード間の関係(以下ではエッジと呼ばれる)を定義するのに使用することができる。本願明細書において、「フレンドシップ」は、定義されたソーシャル関係など、ソーシャル・ネットワーク環境の1対のユーザ間の接続を表す。本願明細書において、「友達」は、ソーシャル・ネットワーク環境の任意のユーザに対して別のユーザが接続、フレンドシップ、関連、または関係を形成して、2人のユーザ間にエッジを生成させた場合の、この任意のユーザを指すことができる。例として、2人の登録ユーザが、明示的に相互と友達になることができる。これは例えば、2人のユーザのうちの一方が、フレンドシップ要求を他方のユーザに送信するかまたは送信させた結果として、他方のユーザをフレンドシップに選択することになどよって行われ、次いで他方のユーザは、この要求を受諾または拒否することができる。別法として、フレンドシップまたは他の接続は、自動的に確立されてもよい。このようなソーシャル・フレンドシップは、他のユーザから、特に自分自身がこれらの登録ユーザの一方または他方と友達であるようなユーザから、見えてもよい。登録ユーザの友達はまた、登録ユーザのプロフィール・ページまたは他のページ上のコンテンツ、特にユーザによって生成または宣言されたコンテンツに対して、より多くのアクセス特権を有することができる。しかし、ソーシャル・グラフ中で友達接続が間に確立された2人のユーザは、実生活(ソーシャル・ネットワーキング環境の外)では必ずしも友達(従来の意味での)とは限らない場合があることに留意されたい。例えば、いくつかの実装形態では、ユーザは、事業または他の非人間エンティティである場合があり、したがって、この言葉の従来の意味で人間のユーザと友達になることはできない場合がある。
【0032】
本願明細書において、「ファン」は、ソーシャル・ネットワーク環境中でアクセスできる特定のウェブ・ページ、ウェブ・アプリケーション、または他のウェブ・コンテンツのサポータであるユーザを指すことができる。特定の実施形態では、あるユーザが特定のウェブ・ページのファンである(特定のウェブ・ページの「ファン」になる)とき、このユーザは、他の登録ユーザまたは一般大衆が見られるように、このページ上にファンとしてリストされてよい。加えて、ユーザのアバターまたはプロフィール・ピクチャが、ページ上(または後述するいずれかのページ中もしくはページ上)に表示されてよい。本願明細
書において、「いいね」とは、限定ではなく例として、ユーザ、特に登録ユーザまたは認証ユーザが、好きであるか、ファンであるか(本願明細書においては、様々な例示的実施形態で、概念や概念プロフィール・ページなどの何かに対して「いいね」と言うこと、すなわち「ファン」になることは、ソーシャル・ネットワーキング環境では等価に定義することができ、交換可能に使用することができる。同様に、自分自身が概念や概念プロフィール・ページなどの何かの「ファン」であると宣言すること、または自分自身がそれを「いいね」と思うと宣言することは、ソーシャル・ネットワーキング環境では等価に定義することができ、本願明細書では交換可能に使用することができる)、支持するか、楽しむか、さもなければ肯定的な印象を持っていると、宣言するかまたは他の方法で表明した何らかのもの(関心、リンク、メディア(例えば写真、フォト・アルバム、ビデオ、楽曲など)、概念、エンティティ、またはページなど)を指すことができる。本願明細書において、「関心」とは、ユーザによって宣言された関心(ユーザのプロフィール・ページ中で提示される、ユーザによって宣言された関心など)を指すことができる。本願明細書において、「欲しい」とは、ユーザが欲するほぼどんなものも指すことができる。前述のように、「概念」は、それに対する関心、好み、または関係をユーザが宣言するかまたは他の方法で表明することのできる、ほぼどんなものも指すことができ、例としてこれは、スポーツ、スポーツ・チーム、音楽ジャンル、作曲家、趣味、事業(企業)、エンティティ、グループ、第三者アプリケーション、著名人、登録ユーザでない人物、さらには、いくつかの実施形態では、別のユーザ(例えば未認証ユーザ)、などである。例として、有名なプロ・フットボール選手「ジェリー・ライス」についての概念ノードおよび概念プロフィール・ページがあり、複数のユーザのうちの1人または複数(例えばジェリー・ライス以外の人)によって作成され管理されるものとすることができるが、ソーシャル・グラフは追加で、ジェリー・ライス自身によって作成され管理される、ジェリー・ライスについてのユーザ・ノードおよびユーザ・プロフィール・ページを含む。特定の実施形態では、後でより詳細に述べるように、友達接続またはフレンドシップは、ソーシャル・グラフ中のユーザ・ノード間のエッジによって定義されるかまたは表される論理接続を定義するかまたは示すことができ、一方、関心または関連を一般に表明する「いいね」、「欲しい」、「ファン」、または他の接続は、ソーシャル・グラフ中のユーザ・ノードと概念ノードとの間(および、いくつかの実施形態では、2つのユーザ・ノード間または2つの概念ノード間)の論理接続またはエッジを定義することができる。他のエッジ・タイプは、楽曲や動画などのオブジェクトに対してユーザが行った特定のアクションに対応する可能性がある。例えば、追加のエッジ・タイプは、コンテンツまたはオブジェクトを購入すること、コンテンツを見たり聴いたりすること、コンテンツを共有すること、コンテンツをブックマークすることなどに対応するエッジ・タイプを含むことができる。
【0033】
特定の実施形態は、インターネットなど、複数のネットワーク・アドレッサブル・システムを含むワイド・エリア・ネットワーク環境中で、またはそのような環境との関連で、動作することができる。図1に、様々な例示的実施形態が動作することのできる例示的なネットワーク環境を示す。ネットワーク・クラウド60は、1つまたは複数の相互接続されたネットワークを全体的に表し、これらのネットワークを介して、本願明細書に述べる様々なシステムおよびホストが通信することができる。ネットワーク・クラウド60は、パケットベースのワイド・エリア・ネットワーク(インターネットなど)、私設ネットワーク、ワイヤレス・ネットワーク、衛星ネットワーク、セルラー・ネットワーク、ページング・ネットワークなどを含んでよい。図1に示すように、特定の実施形態は、ソーシャル・ネットワーク環境20およびクライアント・デバイス30、ならびにいくつかの実施形態では、1つもしくは複数の第三者ウェブ・アプリケーション・サーバ40、または1つもしくは複数の企業サーバ50を含むネットワーク環境との関連で動作することができる。クライアント・デバイス30、ウェブ・アプリケーション・サーバ40、および企業サーバ50は、ネットワーク・サービス・プロバイダ、ワイヤレス・キャリア、1組のルータもしくはネットワーキング・スイッチ、または他の任意の適切な手段を介して、ネッ
トワーク環境およびネットワーク・クラウド60に動作可能に接続されてよい。
【0034】
各クライアント・デバイス30、ウェブ・アプリケーション・サーバ40、または企業サーバ50は一般に、コンピュータ・ネットワークを介して通信する(例えばリモートに)ための機能を備えた、コンピュータ、コンピューティング・システム、またはコンピューティング・デバイス(図8に関して後述するものなど)とすることができる。クライアント・デバイス30は特に、適切なコンピューティング・デバイスの中でもとりわけ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、パーソナル・ディジタル・アシスタント(PDA)、車内もしくは車外ナビゲーション・システム、スマート・フォンまたは他のセルラーもしくはモバイル・デバイス、あるいはモバイル・ゲーミング・デバイスとすることができる。クライアント・デバイス30は、図2Bに示すように、ウェブ・ブラウザ(例えばMICROSOFT WINDOWS(登録商標) INTERNET EXPLORER、MOZILLA FIREFOX、APPLE SAFARI、GOOGLE CHROME、およびOPERA等)など、1つまたは複数のクライアント・アプリケーションを実行して、コンピュータ・ネットワーク60を介してコンテンツへのアクセスおよびコンテンツの閲覧を行うことができる。特定の実装形態では、クライアント・アプリケーションにより、クライアント・デバイス30のユーザは、ソーシャル・ネットワーク環境20、ウェブ・アプリケーション・サーバ40、または企業サーバ50によってホストされるリソースなど、取り出すべき特定のネットワーク・リソースのアドレスを入力することができる。これらのアドレスは、ユニフォーム・リソース・ロケータ(URL)とすることができる。加えて、ページまたは他のリソースが取り出された後は、クライアント・アプリケーションは、他のリソースへのハイパーリンクをユーザがクリックしたときに他のページまたはレコードへのアクセスを提供することができる。例として、このようなハイパーリンクは、ウェブ・ページ内に位置してよく、ユーザが別のページのURLを入力してそのページを取り出すための自動化された方法を提供することができる。
【0035】
特に、クライアント・デバイス30におけるユーザが、ソーシャル・ネットワーク環境20によってホストされる特定のウェブ・ページ(以下ではターゲット構造化ドキュメントとも呼ばれる)を閲覧したいとき、または、ウェブ・アプリケーション・サーバ40によってホストされソーシャル・ネットワーク環境20との関連で利用可能になるウェブ・アプリケーションを閲覧したいとき、ユーザのウェブ・ブラウザは、またはクライアント側の他の構造化ドキュメント・レンダリング・エンジンもしくは適切なクライアント・アプリケーションは、要求を作成してソーシャル・ネットワーク環境20に送信する。要求は一般に、URLまたは他のドキュメント識別子、ならびにメタデータまたは他の情報を含む。例として、要求は、ユーザIDなどのユーザ識別情報と、ユーザのクライアント・コンピューティング・デバイス30上で実行されているウェブ・ブラウザまたはオペレーティング・システムを識別するかまたは特徴付ける情報とを含むことができる。要求はまた、ユーザのクライアント・デバイスの地理的位置、またはユーザのクライアント・デバイスの論理的なネットワーク位置を識別する位置情報と、いつ要求が送信されたかを識別するタイムスタンプとを含むことができる。
【0036】
例示的な1実装形態では、ソーシャル・ネットワーク環境20によってホストされるウェブ・ページまたは構造化ドキュメントを求める要求が、ソーシャル・ネットワーク環境20によって受け取られると、通常、ソーシャル・ネットワーク環境20内で実行される1つまたは複数のページ生成工程が、ハイパー・テキスト・マークアップ言語(HTML)、拡張可能マークアップ言語(XML)、または他の、ウェブ・ブラウザによってサポートされる構造化ドキュメントの形で、ベース・ウェブ・ページを生成する。次いで、生成された構造化ドキュメントは、クライアント・デバイスにおいてウェブ・ブラウザによってレンダリングされるよう、ハイパーテキスト・トランスファー・プロトコル(HTT
P)または他の適切な接続を介して、応答(1つもしくは複数の部分または部分的応答を含む場合がある)の中で要求元クライアント30に送信される。構造化ドキュメントは、1つもしくは複数のリソース(例えばJAVA(登録商標)Scriptスクリプト、コード・セグメント、もしくはリソース、カスケーディング・スタイル・シート(CSS)コード・セグメントもしくはリソース、画像データもしくはリソース、ビデオ・データもしくはリソースなど)、またはそのようなリソースへの参照が、送信されるドキュメント内に埋め込まれているものとすることができる。例として、HTMLドキュメントに埋め込まれたリソースは一般に、リソースのタイプに応じて、とりわけスクリプト要素、画像要素、またはオブジェクト要素内に含まれるかまたはそのような要素内で指定される場合がある。リソースを参照または指定する要素は、リソースの位置を識別するソース属性(例えばsrc)を含むことができ、リソースは、ソーシャル・ネットワーク環境20内のサーバもしくはデータ・ストア内にあるか、または、ウェブ・ページを要求するクライアント・デバイス30に対する1つもしくは複数の外部位置にある場合がある。通常、クライアント・デバイス30において実行されるウェブ・ブラウザまたは他のクライアント・ドキュメント・レンダリング・アプリケーションは、応答を受け取ると、次いで、受け取った構造化ドキュメントのドキュメント・オブジェクト・モデル(DOM)表現を構築し、ドキュメントに埋め込まれたリソース(複数可)(1つまたは複数の他の外部位置にある場合がある)を要求する。
【0037】
例示的な1実装形態では、ソーシャル・ネットワーク環境20の登録ユーザが最初に所与のユーザ・セッション中でソーシャル・ネットワーク環境20にウェブ・ページを要求したとき、ソーシャル・ネットワーク環境20からユーザのクライアント・デバイス30に送信される応答は、クライアント・デバイスにおいてログイン・ページをレンダリングするための、ページ生成工程によって生成された構造化ドキュメントを含むことができる。次いでユーザは、自分のユーザ・ログイン証明(例えばユーザIDおよびパスワード)を入力することができ、次いでこれはユーザのクライアント・デバイス30からソーシャル・ネットワーク環境20に送信される。ユーザの認証が成功すると、次いでソーシャル・ネットワーク環境20は、ユーザのクライアント・デバイス30におけるユーザのウェブ・ブラウザに応答を送信することができる。この応答は、ユーザのクライアント・デバイスにおいてユーザ・ホームページまたはユーザ・プロフィール・ページをレンダリングするための、ページ生成工程によって生成された構造化ドキュメントを含む。
【0038】
例示的な一実施形態では、ソーシャル・ネットワーク環境20は、本願明細書に述べるようにクライアント・デバイス30におけるユーザが相互と通信するかまたは他の方法で対話してユーザ・プロフィールなどのコンテンツにアクセスすることができるようにするコンピューティング・システムを含む。ソーシャル・ネットワーク環境20は、様々な例示的な実施形態で、図2に示すように、1つまたは複数の物理サーバ22aまたは22b(以下ではサーバ22とも総称される)と、本願明細書でデータ・ストア24と総称される1つまたは複数のデータ・ストア(様々な統合または分散コンピューティング・システム、データベース、またはデータ・サーバの1つまたは複数の中で、またはそれによって実現されてよい)とを含む、ネットワーク・アドレッサブル・システムである。1つまたは複数の物理サーバ22は、例として1組のルータまたはネットワーク・スイッチ26を介して、コンピュータ・ネットワーク60に動作可能に接続される。例示的な一実施形態では、1つまたは複数の物理サーバ22によってホストされる機能は、ウェブ・サーバまたはHTTPサーバ、FTPサーバを含むことができ、さらに、限定ではないが、コモン・ゲートウェイ・インタフェース(CGI)スクリプト、PHPハイパーテキスト・プリプロセッサ(PHP)、アクティブ・サーバ・ページ(ASP)、ハイパー・テキスト・マークアップ言語(HTML)、拡張可能マークアップ言語(XML)、JAVA(登録商標)、JAVA(登録商標)Script、AJAX(Asynchronous JAVA(登録商標)Script and XML)などを使用して実現されるウェブ・
ページおよびアプリケーションを含むことができる。
【0039】
物理サーバ22は、ソーシャル・ネットワーク環境20の動作に向けられた機能をホストすることができる。例として、ソーシャル・ネットワーク環境20は、1つまたは複数のクライアント・デバイス30における1人または複数のユーザがウェブサイトを介して情報の閲覧および投稿ならびに相互との通信ができるようなウェブサイトをホストすることができる。以下では複数のサーバ22を単数のサーバ22として言及する場合もあるが、先に述べたように、サーバ22は、ソーシャル・ネットワーク環境20ならびに他のコンテンツ配信サーバ、データ・ストア、またはデータベースを例えばホストする、多くのサーバを含み得る。データ・ストア24は、ソーシャル・ネットワーク環境の動作に関係しソーシャル・ネットワーク環境の動作を可能にするコンテンツおよびデータを、コンテンツ・オブジェクトを含めたディジタル・データ・オブジェクトとして記憶することができる。データ・オブジェクトは、特定の1実装形態では、典型的にはデータ・ファイル、データベース、またはレコードに記憶されるか組み入れられる、ディジタル情報の1つである。コンテンツ・オブジェクトは多くの形をとる場合があり、これらは、テキスト(例えばASCII、SGML、HTML)、画像(例えばjpeg、tif、およびgif)、グラフィックス(ベクトルベースもしくはビットマップ)、音声、ビデオ(例えばmpeg)、または他のマルチメディア、ならびにこれらの組合せを含む。コンテンツ・オブジェクトはまた、実行可能コード・オブジェクト(例えば、ブラウザ・ウィンドウまたはフレーム内で実行可能なゲーム)、ポッドキャストなども含むことができる。論理的には、データ・ストア24は、1つまたは複数の物理システム上に記憶された論理的に関係付けられたレコードまたはファイルの集積として情報を維持する、様々な個別または統合データベース(関係データベースおよびオブジェクト指向データベースなど)のうちの1つまたは複数に対応する。構造的には、データ・ストア24は一般に、大きな部類のデータ記憶管理システムのうちの1つまたは複数を含むことができる。特定の実施形態では、データ・ストア24は、1つまたは複数のデータベース・サーバ、大容量記憶媒体、メディア・ライブラリ・システム、ストレージ・エリア・ネットワーク、データ記憶クラウドなどのコンポーネントを含む、任意の適切な物理システム(複数可)によって実現されてよい。例示的な一実施形態では、データ・ストア24は、1つもしくは複数のサーバ、データベース(例えばMySQL)、および/またはデータ・ウェアハウスを含む。
【0040】
データ・ストア24は、種々のソーシャル・ネットワーク環境20ユーザ、クライアント・デバイス30、ウェブ・アプリケーション・サーバ40、または企業サーバ50に関連するデータ、ならびに、特定の実施形態では、様々な概念に関連するデータを含むことができる。前述のように、特定の実施形態は、統合ソーシャル・ネットワーク環境を可能にするプラットフォームを備えるソーシャル・ネットワーク環境20に関する。後続の例示的な実施形態では、ソーシャル・グラフ情報を含むソーシャル・グラフの点から、ソーシャル・ネットワーク環境を記述または実現することができる。特定の実施形態では、データ・ストア24は、本願明細書に述べるソーシャル・ネットワーク環境を実現する際に使用されるソーシャル・グラフ情報が記憶されるソーシャル・グラフ・データベースを含む。特定の実施形態では、ソーシャル・ネットワーク環境20によってデータ・ストア24(特にソーシャル・グラフ・データベース)に記憶されるソーシャル・グラフ情報は、複数のノードと、対応するノード間の接続を定義する複数のエッジとを含む。特定の実施形態では、ノードまたはエッジ自体は、それらに対応するユーザまたは概念の識別子、属性、および情報(それらに対応するプロフィール・ページの情報を含めた)を含むデータ・オブジェクトであり(後述するように)、これらの識別子、属性、情報のいくらかは、対応するプロフィール・ページまたは他のページ上に実際にレンダリングされる。ノードはまた、それぞれのノードに対応するプロフィール・ページのレンダリングと共にコンテンツをレンダリングする際に使用される他のオブジェクト、データ構造、またはリソースへの、ポインタまたは参照を含むことができる。
【0041】
図3に、説明のために2次元視覚マップ表現で呈示される、例示的なソーシャル・グラフ300を示す。特定の実施形態では、ソーシャル・グラフ300の複数のノードおよびエッジは、データ・オブジェクトとしてデータ・ストア24に、特にソーシャル・グラフ・データベースに記憶される。加えて、後述するように、データ・ストア24はさらに、ソーシャル・グラフ・データベースをインデクシングすることによって生成された、ノードまたはエッジの検索可能または照会可能な1つまたは複数のインデックスを含むことができる。特定の実施形態では、複数のノードは、管理されるノード302の第1のセット、および管理されないノード304の第2のセットを含む。特定の実施形態では、管理されるノード302の第1のセットは、ユーザによって管理されるノード(以下では「ユーザ・ノード」とも呼ばれる)であり、各ユーザ・ノードは、それぞれのユーザ、およびそのユーザのそれぞれのユーザ・プロフィール・ページに対応する。特定の実施形態では、ユーザ・ノード302に対応するユーザ・プロフィール・ページは、それぞれの所有者(登録)ユーザによって、かつこのユーザによってのみ、修正、書込み、または他の方法で管理することができる(ただし、例えば登録ユーザ側の慎重なまたは他の不適切なアクションの結果として、ソーシャル・ネットワーク環境20の正式な管理者が一般にユーザのプロフィール・ページを修正または削除するためにアクセスを望むかまたは必要とした場合には、この限りではない)。特定の一実施形態では、ユーザ・ノード302の第1のセットは、認証ノード302aの第1のサブセット、および未認証ノード302bの第2のサブセットを含む。特定の一実施形態では、認証ノード302aの第1のサブセットは、それぞれの認証登録ユーザに対応し、未認証ノード302bの第2のサブセットは、ソーシャル・ネットワーク環境によって認証されていない登録ユーザに対応する。例えば、認証ユーザは、自分のそれぞれのプロフィール・ページ中で本人を主張する者として検証されたユーザとすることができ、未認証ユーザは、自分のそれぞれのプロフィール・ページ中で本人を主張する者として検証されていないユーザとすることができる(例えば、未認証ユーザが、オバマ大統領でないにもかかわらず、バラク・オバマ大統領の名前でプロフィール・ページを登録する可能性がある)。いくつかの実施形態では、いくつかの既存のユーザ・プロフィール・ページについて、ソーシャル・ネットワーク環境20は、ユーザ・プロフィール・ページの管理者が本当に主張ユーザの本物の声(ユーザが自分だと主張する本人)であるかどうか判定することができる。現在の管理者が本物のまたは本当の主張ユーザでないと判定された場合は、ソーシャル・ネットワーク環境20は、ページに対するユーザの管理権限を除去することができる。このようにして、ユーザ・ノードおよび対応するユーザ・プロフィール・ページを、概念ノード304および対応する概念プロフィール・ページとして、ソーシャル・グラフ・データベースに記憶されたソーシャル・グラフ情報の中で再定義することができる。さらに、様々な例示的実施形態で、ユーザ・ノード302aおよび302bは、異なるノード・タイプとして明確に分類される場合もあり、そうでない場合もあることにも留意されたい。すなわち、一実施形態では、ユーザ・ノード302は、明示的なユーザ・ノード・タイプまたはサブ・タイプによってではなく、ノードに対応するデータ・オブジェクトと共に記憶されたかまたはその中に記憶されたデータに基づいて、認証ユーザ・ノードまたは未認証ユーザ・ノードとして識別される場合がある。
【0042】
図4A〜4Cに、自由形式テキストを含む場合のある、ソーシャル・ネットワーク上での例示的なユーザ・アクションを説明のために示す。図4Aには、コンテキスト・データと自由形式テキストとを含む「チェックイン」400を示す。特定の実施形態では、チェックインは、生成しているユーザ(この例では「ジェーン・スミス」)のページ上と、ソーシャル・ネットワーク上のジェーン・スミスの全ての友達のページ上との両方に現れる。チェックインは、位置401を含めたいくつかのコンテキスト情報を含む。位置401「トゥルーディズ・メキシカン・グリル」は、ユーザがコンピューティング・デバイス上でチェックイン・ボタンを押すとユーザに提示される位置リストから選択される。特定の
実施形態では、特定の位置はそれぞれ、対応するハブ・ページをソーシャル・ネットワーク上で有することができる。チェックインはまた、403のチェックイン時刻など、他のコンテキスト・データも含む。最後に、チェックインは、任意選択で、自由形式テキスト402を含むことができる。この場合、自由形式テキスト402「メキシカン・マティーニを楽しんでいます」は、ジェーン・スミスによる、トゥルーディズ・メキシカン・グリルのメキシカン・マティーニに対するアフィニティの表現を含む。通常、この情報はソーシャル・ネットワーク中で反映されず、ユーザ情報の膨大な財産が失われる。
【0043】
特定の実施形態では、コメント404で示すように、チェックインを生成しているユーザの友達が、チェックインに対してコメントすることができる。コメント404はまた、コメント時刻などのコンテキスト・データを含むことができる。しかしコメント404は、位置401などの明示的な識別情報は何も含まない。しかし、暗黙的な位置情報をコメント404から推論することはできる。例えば、コメントされる要素(この例ではチェックイン400)が明示的な位置を含む場合、ソーシャル・ネットワーキング・システムは、コメントがその位置(この例では「トゥルーディズ・メキシカン・グリル」401)に関係すると見なすことができる。位置に直接関連する要素に対するコメントはその位置に関係する可能性が高いので、ソーシャル・ネットワーキング・システムは、コメント404についてのコンテキスト・データとして、位置識別子を推論する。特定の実施形態では、チェックインを生成しているユーザの友達はまた、ボタン405を介してチェックインに「いいね」と言うか、またはボタン406を介してコメント自体に「いいね」と言うことができる。特定の実施形態では、ユーザがチェックイン400に「いいね」と言うと、ソーシャル・ネットワーキング・システムは、チェックイン位置401に対するアフィニティを自動的に記録する。
【0044】
図4Bに、明示的な位置識別子を含まない典型的な自由形式テキスト・ステータス・メッセージまたはコメントを示す。コメント「7番街/ブロードウェイで最高にロマンティックな時を過ごしたところだ−眺めは驚き!」は、特定の位置を識別するテキストを含むが、通常のソーシャル・ネットワークは、これを自由形式テキスト以外の何かであるとは認識しない。コメントに関連する唯一のコンテキスト・データは、投稿された時刻である。図6の方法を適用することで、位置と位置に対するアフィニティとの両方を生成することができ、これらをユーザと共にプロフィール・データベースに記憶することができる。
【0045】
図4Cに、ユーザによって生成された自由形式テキスト論評を含む共有リンクを示す。ユーザは、ユニバーサル・リソース・ロケータ(URL)を介してアクセス可能な記事、ウェブ・ページ、製品、または他の任意のリソースへのリンクを共有することができる。ユーザ・アクションは、自由形式テキスト論評411と、記事へのリンク412および投稿時刻の形のコンテキスト・データとを含む。特定の実施形態では、生成したユーザの友達もまた、記事に対するコメント413を投稿することができる。
【0046】
図4A〜4Cに描かれたユーザ・アクションは、ユーザ・ノード302に対応するユーザのユーザ・プロフィール・ページ上に表示されてよい。特定の実施形態では、ユーザ・プロフィール・ページは、プライバシー設定に応じて、ユーザ、ユーザの友達、さらには友達でない他のユーザからも見える。プライバシー設定は、例えばユーザのプロフィール・ページまたはユーザ・ホームページを介して、ユーザによって設定または修正することができる。特定の実施形態では、ユーザ・プロフィール・ページは、投稿するためにウォール(フィード)にアクセスするためのウォール(フィード)タブを含む(後述する)。
【0047】
特定の実施形態では、ユーザ・プロフィール・ページはまた、ソーシャル・グラフ・データベースに記憶されたソーシャル・グラフ中のエッジによって定義されるユーザの友達の全てまたはサブセットを表示する友達セクションを含む。特定の実施形態では、ユーザ
が別の第2ユーザに関して行う任意のアクション(第2ユーザがユーザの友達であろうとなかろうと)、また特定の実施形態では、ユーザが様々な概念ノードに関して行うアクションが、最近のアクティビティ・セクションに表示されてよく、このセクションは、ウォール(フィード)タブの下のウォール(フィード)セクション内のサブセクションとして閲覧可能とすることができる。一般に、ウォール(フィード)セクションは、ユーザおよび友達が、ユーザおよび友達が見られるように入力ボックスを介してメッセージを投稿することができ、かつウォール(フィード)上の投稿に関連してコメントするかまたは他の方法で自分を表現することができる、あらゆるユーザのプロフィール・ページ上の空間である。
【0048】
特定の実施形態では、管理されないノード304の第2のセットは、それぞれの概念と、それぞれの概念に充てられたそれぞれの概念プロフィール・ページ(以下では「ハブ」とも呼ばれる)とに各々対応する、管理されないノードである。特定の実施形態では、管理されないノード(「概念ノード」または「ハブ・ノード」とも呼ばれる)304は、それぞれの概念プロフィール・ページ(ハブ)を有するノードだが、ハブは通常、いずれか1人のユーザによって管理されることはない。そうではなく、特定の実施形態では、ハブは一般に、ソーシャル・ネットワーク環境20の任意の登録ユーザによって少なくとも部分的に、管理、作成、書込み、寄与、または修正されてよく、この任意の登録ユーザは、特定の実施形態では、ハブ・ノード304との接続を有さないユーザ(すなわち、そのユーザ・ノード302が必ずしもソーシャル・グラフ・データベース中のソーシャル・グラフ中のエッジによってハブ・ノード304と接続されるとは限らないユーザ)を含む。ある意味では、ハブは、ソーシャル・ネットワーク環境20の登録ユーザのコミュニティによって管理または寄与されてよい。特定の実施形態では、ハブ・ノード304の第2のセットは、非総称ハブにそれぞれ対応する管理されないノード304aの第1のサブセットと、総称ハブにそれぞれ対応する管理されないノード304bの第2のサブセットとを含む。例として、総称ハブは、ランニングなどの抽象的なアクティビティに充てられたハブとすることができ、非総称ハブは、特定のランナー・クラブに充てられたプロフィール・ページなど、より特定の概念に充てられたハブとすることができる。さらに、様々な例示的実施形態では、ノード304aと304bは、異なるノード・タイプとして明確に分類される場合もあり、そうでない場合もあることに留意されたい。すなわち、一実施形態では、ハブ・ノード304は、明示的なハブ・ノード・タイプまたはサブ・タイプによってではなく、ハブ・ノードに対応するデータ・オブジェクトと共に記憶されたかまたはそのようなデータ・オブジェクト内に記憶されたデータに基づいて、総称ハブ・ノードまたは非総称ハブ・ノードとして識別することができる。
【0049】
ユーザ・プロフィール・ページと同様、概念プロフィール・ページ(ハブ)は、対応するハブ・ノード304に関連する概念に関係する情報を共有する。特定の実施形態では、wikiサイトと同様、ソーシャル・ネットワーク環境20にログインしてハブを閲覧している登録ユーザは誰でも、ハブにコンテンツを追加することができる。特定の実施形態では、ハブ・ノード304は事業を表す場合があり、ノード管理者のみがハブにコンテンツを追加したりハブを修正したりすることができる。図5に、レストラン「トゥルーディズ・メキシカン・グリル」についての例示的なハブを示す。例示的な一実施形態では、かつ図5に示すように、ハブは、情報タブ501a、友達のアクティビティ・タブ501b、近くの場所タブ501、写真タブ501d、および、ユーザ・プロフィール・ページと同様のウォール(フィード)タブ501eを介してアクセス可能な、サブページを含むことができる。ハブはまた、写真タブ501dの下に写真またはピクチャ・セクションを含むことができる。このセクションによりユーザは、概念中の画像、または概念に関係する画像をアップロードすることができ、これらの画像のうちの1つをハブのプロフィール・ピクチャ502として選択することができる。
【0050】
特定の実施形態では、ウォール(もしくはニュース・フィード/アクティビティ・フィード)セクション501e、またはハブの他のフィードもしくはアクティビティ・セクションは、このハブを閲覧しているユーザおよびユーザの友達に関連する、コメント、ステータス更新、ウォール投稿、および他のユーザ・アクティビティを表示する。ウォール(もしくはニュース・フィード/アクティビティ・フィード)セクション501e、またはハブの他のフィードもしくはアクティビティ・セクションはまた、ハブが作成された対象である概念に関係するコメント、ステータス更新、ウォール投稿、ならびに他のユーザ・アクティビティおよびユーザ生成コンテンツを表示することもできる。特に、ソーシャル・ネットワーキング環境20内の1つまたは複数の工程は、要求元ユーザおよび要求元ユーザの友達に関連するコメント、ステータス更新、ウォール投稿、および他のユーザ生成コンテンツに対して、概念によってフィルタリングされる検索を実施することができる。すなわち、要求元ユーザおよび要求元ユーザの友達に関係するユーザ・フィードまたはアクティビティのこれらのストリーム中で、現在要求または閲覧されているハブの概念に関係するキーワード(および場合によっては、推奨されるハブに関連する概念に関係するキーワード)を探すキーワード検索を実施することができる。そして、ユーザ概念またはアクティビティのこのサブセットを、現在要求または閲覧されているハブのウォールまたはフィード・セクション501eに表示することができる。例として、2010年2月11日に出願された「REAL TIME CONTENT SEARCHING IN SOCIAL NETWORK」という名称の米国特許出願第12/704,400号に、このような検索、フィルタリング、および表示を実施するための方法、工程、またはシステムが記載されており、この出願を本願明細書に援用する。ウォールまたはフィード・セクション501eはまた、先に述べたセクションとは別個とすることのできるセクションも含むことができ、このセクションは、ハブを閲覧しているユーザおよびユーザの友達だけでなく、ハブが作成された対象である概念に関係するソーシャル・ネットワーキング環境20のあらゆるユーザの、コメント、ステータス更新、ウォール投稿、および他のユーザ・アクティビティを表示する。
【0051】
特定の実施形態では、特定のハブが作成されたときにハブ中に表示されるデフォルトのセクションは、概念自体に依存する場合がある。すなわち、ハブ・ノード304は、ソーシャル・ネットワーク環境20によってカテゴリ化されてよく、これらのカテゴリ(例えば人、場所、物、アクティビティ、スポーツ、スポーツ・チーム、著名人、都市、位置、映画、俳優、本、レストランなど)は、特定のハブ上にどのセクションが表示されるかを少なくとも部分的に指定することができる。例として、場所ハブは、近くの場所タブ501cを含むことができ、近くの場所タブ501cは、同じ地理領域中の他の事業または位置と、事業位置の地図504とを表示する。場所ハブはまた、特定の実施形態では、友達アクティビティ・タブ501bを含むことができ、友達アクティビティ・タブ501bは、ハブ・ページを閲覧しているユーザの友達のアクティビティ全てを示す。例えば、図4Aからのチェックイン400は、場所ページを閲覧しているユーザが、チェックインを生成しているユーザ(この例では「ジェーン・スミス」)の友達である場合に、友達アクティビティ503として表示されることになる。
【0052】
特定の実施形態では、ハブ・ノード304およびそれぞれのハブは、ソーシャル・ネットワーク環境20のユーザによって明示的に作成される場合もあり、様々な基準に基づいて自動的に作成される場合もある。特定の実施形態では、ハブおよびそれぞれのハブ・ノード304は、例えば、総称と見なされる(または分類される)か非総称と見なされる(または分類される)かなど、2種類のものとすることができる。特定の1実装形態では、ハブおよびそれぞれのハブ・ノード304を「ロック」または「ロック解除」することができる。ハブは、作成時にまたは他の適切な時点で、例えば作成者またはソーシャル・ネットワーク環境20の管理者によってロックすることができる。前述のように、ハブは本質的にコミュニティによって所有され、したがって、特定の実施形態では、ソーシャル・
ネットワーク環境20のユーザは誰でも、ハブを編集する(例えばコンテンツまたは宣言をハブに追加する)ことができる。しかし、特定の実施形態では、ロック解除されたハブ中で編集すると、編集は即座に「ライブになる」(ユーザ、またはハブを閲覧している他のユーザから見える状態になる)が、ロックされたハブ中で編集すると、編集は、修正されてユーザに公開される前に、信頼されるユーザまたは管理者による承認を必要とするものとすることができる。加えて、いくつかの実施形態では、ソーシャル・ネットワーク環境20は、いつ、どのユーザがどのコンテンツをハブに追加したかを追跡することができることに留意されたい。
【0053】
また、特定の実施形態では、ハブ・ノード304に対応するハブ(または未認証ユーザ・ノード302bに対応する未認証ユーザ・プロフィール・ページ)の真の声(ハブ・ノード304がすでに作成されている実際の著名人や事業など)が、これらのノードを自分のものであると主張し、それによりこれらのノードに対する管理権限を担ってこれらのノードをソーシャル・グラフ中で再定義する(例えば登録認証ユーザ・ノード302a(あるいは認証ハブ・ノード304)として)ことができるような手段または工程(例えば選択可能なリンクまたはユーザ・インタフェース)を、ソーシャル・ネットワーク環境20が提供することにも留意されたい。
【0054】
図3に示すように、ソーシャル・グラフ・データベースに記憶されたユーザ・ノード302およびハブ・ノード304は、エッジを介して相互と接続されてよい。前述のように、いくつかの実施形態では、各エッジは、エッジによって接続される1対のノード間の接続を定義、指示、または特徴付けする複数のエッジ・タイプのうちのエッジ・タイプによって、分類または特徴付けされてよい。例として、ユーザ・ノード302は、第1のエッジ・タイプのエッジ306を介して相互と接続される場合がある。特定の実施形態では、エッジ306は、それぞれのユーザ・ノード302に関連するユーザ(例えば友達)間のフレンドシップまたは他のソーシャル関係接続を定義する。加えて、ユーザ・ノード302は、1つまたは複数の第2のエッジ・タイプのエッジ308を介して概念ノード304と接続される場合がある。例として、ユーザ・ノード302に対応するユーザは、特定のハブ・ノード304に対応する概念が好きであるか、そのファンであるか、それが欲しいか、または他の形でそれに関心もしくは関連があることを、宣言するかまたは他の方法で示すことができる。上に論じたように、他のエッジ・タイプは、楽曲の再生および/または共有など、ハブ・ノードに関係する概念またはディジタル・オブジェクトとのユーザ対話に基づくものである場合がある。ユーザは、対応する概念ノードのハブ上のリンクをクリックすることによって、または他の適切な手段によって(例えば、招待に応答してユーザのホーム・ページもしくはプロフィール・ページ中のリンクをクリックすること、友達のプロフィール・ページ中のリンクをクリックすること、または、特定の実施形態では、何らかの自動的なもしくは自動化された手段などによって)、この好みまたは関心を示すことができる。
【0055】
さらに、いくつかの実施形態では、様々なハブ・ノード304は、ソーシャル・グラフ・データベース中で第3のエッジ・タイプのエッジ310を介して相互と接続される場合がある。この第3のエッジ・タイプは、ハブ・ノード304間の情報提供関係またはカテゴリ関係を定義することができ、こうした関係のいくつかは、このようなハブを階層に編成する傾向がある可能性がある。例として、アジア料理に充てられた総称ハブは、非総称ハブ中に表示される様々なアジア・レストランまたはレビュー・ページへのリンクをページ中に有する場合がある。したがって、ソーシャル・グラフ中で、エッジ310は、総称アジア料理ハブを1つまたは複数の総称ハブまたは非総称ハブに接続することができる。
【0056】
加えて、いくつかの実施形態では、各エッジ・タイプは、対応する1対のノード間の特定タイプの接続を記述するより多くの詳細またはメタデータを追加する、複数のエッジ・
サブタイプを含むことができる。さらに、いくつかの実施形態では、新しいエッジ・タイプが自動的または動的に定義または生成されてよい。例として、第三者ウェブ・アプリケーションに入力された情報、または第三者ウェブ・アプリケーションに関係する情報により、新しいエッジ・タイプが定義および生成されてよい。特定の例として、Netflixに関するウェブ・アプリケーションの場合に、「見たい映画」を示すエッジ・タイプが生成されてよい。
【0057】
エッジが関連エッジ・タイプを有するかまたは割り当てられるこのような実施形態では、エッジ自体が、エッジが接続する1対のノード間の接続タイプを定義するデータを記憶するかまたはそのようなデータと共に記憶されてよく、このデータは例えば、適切なまたは関連するデータの中でもとりわけ、エッジが接続するノードのタイプ(例えば、ユーザ、ハブ、ハブのカテゴリまたは分類)、エッジによって接続される1対のノードのうちの一方の管理者の、エッジが接続する他方のノードに対するアクセス特権(例えば、エッジによって接続される他方のノードに対する、一方のノードの管理者の読取りまたは書込みアクセス)を記述するデータ、あるいは、エッジが最初にどのようにまたはなぜ初期化または作成されたか(例えば、明示的なユーザ・アクションもしくは宣言に応答して、または明示的なユーザ・アクションなしで自動的に)、エッジによって接続されるノード(またはより具体的には、接続されるそれぞれのノードに関連するユーザもしくは概念)に関係するかまたはそれらのノードによって共有される様々な要因または基準によって決定される接続強度を記述するデータなどである。
【0058】
代替の一実施形態では、各エッジは単に、エッジが接続するノードのタイプにかかわらず、ノード間の接続を定義するかまたは表すことができる。すなわち、エッジ自体は、エッジが接続するノードの識別子を記憶するかまたはそのような識別子と共に記憶されるが、エッジが接続する1対のノード間の接続のタイプを記述するデータは記憶しないかまたはそのようなデータと共には記憶されないものとすることができる。さらに、これらのまたは他の実施形態のいずれにおいても、エッジによって接続されるノード間の接続または関係のタイプを示すことのできるデータが、ノード自体と共に記憶されてよい。特定の実施形態では、エッジ、ならびに、エッジを定義するか特徴付けるかまたはエッジに関係する属性(例えば、エッジ・タイプ、および、エッジによって接続されるノードに対応するノード識別子)、メタデータ、または他の情報が、(例えばデータ・オブジェクトとして)ソーシャル・グラフ・データベースに記憶され、定期的に、または様々なアクションもしくは要因に応答して更新されてよい(例えば、ユーザがハブとさらに対話するにつれて、それぞれのユーザ・ノードおよびハブ・ノードを接続するエッジが、この対話を反映するように更新されてよい。次いでこの更新は、後でより詳細に述べるように、エッジを特徴付けるアフィニティ・スコアまたは接続強度スコアに寄与することができる)。
【0059】
特定の実施形態では、ソーシャル・ネットワーク環境20は、ユーザ・ノード302とハブ・ノード304の両方から抽出された情報を、様々な目的に、または様々な既存のもしくは新しい機能を実装もしくは増補するのに活用することができる。加えて、様々なユーザによって入力または寄与された情報がハブ・ノード304に投入されるにつれて、後述するように、このような情報に基づいて他のハブ・ノード304およびそれぞれのハブを生成することができる。さらに、ハブは、いくつかの方法でユーザに価値をもたらすことができる。例として、第1のユーザが特定のハブを訪れた場合、このユーザは、自分の友達のうちの様々な友達もまたこのハブに接続されていることを発見することができる。例えば、オンライン音楽ストアで、このハブは、音楽アーティスト、アルバム、または特定の楽曲に対応する場合がある。第1のユーザはまた、これらの友達が他のどのハブに接続されているかを容易に決定することもできる。ソーシャル・ネットワーク環境20はまた、ユーザおよびユーザの友達に関するこの情報を相関させて、例えば重なる関心または属性を見つけることができ、次いでこれを用いて、他のハブを生成すること、的を絞った
広告を生成すること、または、推奨ハブなど、ユーザへの推奨を作成することができる。
【0060】
図6は、自然言語処理を通して所与のユーザ・アクションについてのアフィニティ係数を決定する例示的な方法を示すフローチャートである。この方法は、ソーシャル・ネットワーキング・システム20中の1つまたは複数のサーバ22上にある1つまたは複数のアプリケーションを介して実施することができる。特定の実施形態では、アプリケーションは、ソーシャル・ネットワーキング・システム20中の単一のアプリケーション・サーバ22aまたは22b上のみにある。特定の実施形態では、アプリケーションは、ソーシャル・ネットワーキング・システム上での全てのユーザ・アクションの集約セットからなる有機的なアクティビティ・ストリームにアクセスすることができる。特定の実施形態では、アプリケーションは、プロフィール・データベース24に対する読取りアクセスと書込みアクセスの両方を有することができる。
【0061】
ステップ601で、アプリケーションはテキスト入力を受け取る。テキスト入力は、図4A〜4Cで上述したいずれかの形とすることができ、ステータス更新、コメント、チェックイン、投稿されたレビュー、ソーシャル・ネットワークのユーザ間で送られた電子メッセージ、または共有リンクなどであってよいが、これらの形に限定されない。本開示は、ソーシャル・ネットワーク上で行われる可能性のある、自由形式テキストの入力を伴う複数の異なるアクションを想定し、前述の例に限定されない。自由形式テキストを生成したアクションにかかわらず、ステップ601で、アプリケーションは、アクションを受け取り、アクションに含まれるテキスト・ストリングにアクセスする。例えば、アプリケーションは、チェックイン400を受け取ると、自由形式テキスト・フィールド(メキシカン・マティーニを楽しんでいます)を抽出する。同様に、ステータス更新407については、アプリケーションは、テキスト「7番街/ブロードウェイで最高にロマンティックな時を過ごしたところだ−眺めは驚き」を抽出し、共有リンク411については、アプリケーションは、テキスト・ストリング「下手で偏向した記事について話そう」を抽出する。
【0062】
ステップ602で、アプリケーションは、受け取ったアクションと抽出したテキスト・ストリングの両方から、オブジェクトおよびアフィニティを識別する。アプリケーションはまず、明示的なオブジェクト識別子など、オブジェクトを検出する際に使用されるコンテキスト・データがあればそれを抽出する。例えば、チェックイン400は、ハブ・ページの明示的な識別「トゥルーディズ・メキシカン・グリル」を含む。したがって、アプリケーションは、チェックインと共に含まれるどんなテキスト・ストリングも、チェックインされた場所に関係する可能性が非常に高いことがわかる。同様に、共有リンク412は、明示的なオブジェクト識別子、すなわち特定のウォール・ストリート・ジャーナル記事「法科大学に行きませんか」を含む。特定の実施形態では、ハブ・ページがソーシャル・ネットワークのユーザにとって有意義となるには具体的過ぎるため、記事についてのハブ・ページがない場合がある。この場合、ソーシャル・ネットワークは、ユーザから隠される、明示的なハブ・ページを有さない属性ノードを作成することができる。ユーザ・アクションから引き出せる他のコンテキスト・データは、アクションの時刻、およびアクションの生成に使用されたデバイスを含む。例えば、チェックイン400および共有リンク412は、様々なモバイル・デバイスから生成されたが、このことは、ユーザがモバイルである確率、およびユーザ・アクションが場所または位置に関係する確率を高める可能性がある。
【0063】
コンテキスト・データを抽出した後、アプリケーションは、自然言語処理を通してテキスト・ストリング自体の中でオブジェクトおよびアフィニティ・インジケータを識別することを試みる。例えば、チェックイン400中では、語句「メキシカン・マティーニ」を、オブジェクトである可能性の高い名詞/形容詞の組合せとして識別することができる。同様に、ステータス更新407については、自然言語処理を通して、語句「7番街/ブロ
ードウェイ」を、場所、特に2つの通りの交差点に関係するとして識別することができ、また、「眺め」を、所与の位置におけるオブジェクトとして識別することができる。オブジェクトは、各単語または単語組合せを、wikiまたはデータベース中で維持されるオブジェクトの辞書と比較することによって識別することができる。特定の実施形態では、オブジェクトの辞書は、ユーザによって識別された全てのオブジェクトからクラウドソーシングされる。
【0064】
アプリケーションは同時に、自然言語処理を通して、アフィニティ・インジケータがあるかどうかテキスト・ストリングを解析する。例えば、チェックイン400中では、語句「楽しんでいます」が、肯定的なアフィニティのインジケータとして自動的にタグ付けされることになる。同様に、ステータス・メッセージ407中では、アプリケーションは、語句「最高にロマンティック」および「驚き」を自動的にタグ付けし抽出することになる。特定の実施形態では、いくつかの単語は、確率の高いオブジェクト識別子とアフィニティ・ステートメントとの両方としてタグ付けされる場合がある。特定の実施形態では、アフィニティ宣言は、肯定的なものと否定的なものの両方がある場合がある。例えば、共有リンク412中では、テキスト・ストリング411は「下手」および「偏向」を含むが、これらは、識別されたオブジェクトに対するユーザの否定的なアフィニティを示すことになる。特定の実施形態では、自然言語処理辞書は相対的であり、使用される単語に基づいて、より高いまたはより低いアフィニティを割り当てる。例えば、「愛している」には、「好き」よりも高いアフィニティが割り当てられる。特定の実施形態では、自然言語処理アルゴリズムは、句読点およびフォントを考慮に入れる。例えば、1つまたは複数の感嘆符が続くステートメントは、終止点で終わるステートメントよりも高いアフィニティとして重み付けされることになる。別の例として、全て大文字の「愛している(LOVE)」には、小文字の「愛している(love)」よりも高いアフィニティ値が割り当てられる場合がある。自然言語処理の技法は当技術分野で周知であり、本開示は、自由形式テキスト・ストリングからオブジェクトおよびアフィニティを抽出するためのそのような技法のいずれをも企図する。
【0065】
ステップ603で、アプリケーションは、様々なオブジェクト組合せを評価して、より広い概念のインスタンスを決定する。アプリケーションは、ユーザ・アクションからの様々なオブジェクトおよびコンテキスト・データを評価して、ユーザのアフィニティ宣言のサブジェクトまたはターゲットを決定する。例えば、チェックイン400中では、アプリケーションはステップ602で、ユーザ・アクションが明示的な場所識別子(「トゥルーディズ・メキシカン・グリル」)と、少なくとも1つのオブジェクト(「メキシカン・マティーニ」)と、時刻(「2時間前」)とを含むと決定した。「マティーニの」、さらにはおそらく「メキシカン・マティーニの」についてのハブ・ページがある可能性も高いが、アプリケーションは、コンテキスト・データと決定されたオブジェクトとの組合せを考慮して、より広い概念のインスタンスを計算する。この場合、より広い概念は、「マティーニ」または「ドリンク」となり、広い概念の具体的なインスタンスは、「トゥルーディズ・メキシカン・グリルのメキシカン・マティーニ」と決定されることになる。
【0066】
特定の実施形態では、見えるハブ・ページがソーシャル・ネットワークのメンバにとって無意味または無用となるほど、インスタンスが具体的である場合がある。したがって、ソーシャル・ネットワーキング・システムは、「トゥルーディズ・メキシカン・グリルのメキシカン・マティーニ」についての隠れ属性ノード(「オブジェクト・ノード」とも呼ばれる)を作成することができる。このノードは、ハブ・ページがなくユーザから見えないが、この隠れ属性ノードに対するユーザのアフィニティは、ソーシャル・ネットワークによって記憶される。このようにして、トゥルーディズ・メキシカン・グリルおよびさらに補外されたあらゆるレストランのメニュー載っているあらゆる品目に、隠れ属性ノードが潜在的に関連する可能性があることが考えられる。
【0067】
ステップ604で、アプリケーションは、ユーザとインスタンスとの間のアフィニティ係数を決定する。これは、前述のように自然言語処理を通して実施される。クラウドソーシングされた辞書を使用して、ユーザとオブジェクトとの間の相対的なアフィニティを決定することができる。特定の実施形態では、自然言語処理は、辞書中の類義語にアクセスして、アフィニティ係数を決定する。
【0068】
ステップ605で、アプリケーションは、アフィニティ・スコアをプロフィール・データベースに記憶する。特定の実施形態では、係数は、ユーザ・エッジとインスタンスとを接続するアフィニティ・エッジとして記憶される。インスタンスは、ハブ・ページを有するライブ概念ノードによって、または前述のような隠れ属性ノードによって表される。アフィニティ・エッジを活用して、ユーザに関する特性を推論することができる。例えば、一実施形態では、インスタンスとユーザとを接続するエッジは、ユーザとステップ603で決定されたより広い概念との間に、より弱いアフィニティ・エッジを生み出すことができる。例えば、図4Aのようにインスタンス「トゥルーディズ・メキシカン・グリルのメキシカン・マティーニ」に対するアフィニティを表現するユーザは、「メキシカン・マティーニ」、「マティーニ」を表す概念ノードに対する強い関心またはアフィニティ、および、「テキーラ」または「アルコール・ドリンク」に対する中程度のアフィニティも有する可能性が高いことになる。ソーシャル・ネットワークは、これらのアフィニティを推論し、これらが強化または低減されるように調整することができる。加えて、特定の実施形態では、このアフィニティを使用して、他のインスタンスをユーザへの提案として重み付けすることができる。例えば、「ロス・チャロス・レストランのメキシカン・マティーニ」を表すノードとして別のインスタンスがソーシャル・グラフ中に存在する場合、ソーシャル・ネットワークは、このインスタンスを提案としてユーザに勧めることができる。ユーザが所与の提案インスタンスを気に入る確率は、ユーザ・ノードとインスタンスとを接続する推論されたアフィニティ・エッジによって表されてよい。特定の実施形態では、他の要因が、推論されたアフィニティの強度または重みに影響を及ぼす場合がある。例えば、ユーザと同じ地理的位置にインスタンスがある場合、重みは増加される。特定の実施形態では、ユーザの友達のより多くが提案インスタンスへのアフィニティ・エッジを有する場合、重みは増加される。本開示は、推論されたインスタンスをソーシャル・ネットワーキング要因に基づいて重み付けする方式として、どんな方式も企図する。
【0069】
特定の実施形態では、ソーシャル・ネットワーキング・システムは、インスタンス(隠れ属性またはオブジェクト・ノードとして表される)に対するアフィニティを有するユーザの数、ならびにノードの平均アフィニティ係数について、インスタンスを監視する。特定の実施形態では、特定の隠れ属性ノードに対するアフィニティを表現するユーザ数がしきい値を超えたとき、このノードは、それ自体のハブ・ページを持って「ライブになる」ことができる。特定の実施形態では、ソーシャル・ネットワーキング・システムは、このインスタンスにリンクされた概念ノード(前述の例では「トゥルーディズ・メキシカン・グリル」)の所有者または管理者に、インスタンスのハブ・ページを作成して欲しいかどうか尋ねる。
【0070】
インスタンスおよびアフィニティ・スコアのデータベースが生成され記憶されると、ソーシャル・ネットワーキング・システムは、データベースを活用してユーザ体験を向上させることを開始することができる。例えば、特定の実施形態では、1つまたは複数のアプリケーションが、自由形式テキスト入力を監視して、提案をユーザに勧める。例えば、ユーザは、質問「一番良いマティーニを出すのはどこ?」を含むステータス・メッセージを投稿する場合がある。ソーシャル・ネットワーキング・システムは、同様にしてこのステータス・メッセージを解析して、質問の広い概念(この場合は「マティーニ」)を決定し、インスタンスに対するアフィニティを表現するユーザの数が多いインスタンスを勧める
。この例では、質問を発したユーザには、提案「トゥルーディズ・メキシカン・グリルのメキシカン・マティーニを試してみて」が提示されてよい。特定の実施形態では、ソーシャル・ネットワーキング・システムは、ユーザのメッセージまたはインスタント・メッセージのテキストを常に解析し、検出された概念に基づいて提案インスタンスをユーザに勧める。例えば、ユーザは、ソーシャル・ネットワーク上の自分の友達の1人にインスタント・メッセージを送り、「マティーニでいい場所はどこ?」と尋ねる場合があり、ソーシャル・ネットワーク20は、邪魔にならないようなやり方で、提案「トゥルーディのメキシカン・マティーニを試してみて」を自動的に勧めることになる。
【0071】
特定の実施形態では、隠れ属性ノードはまた、アフィニティ宣言をノードと共に記憶することができる。例えば、ステータス・メッセージ407(「7番街/ブロードウェイ」)中で決定される位置に対して、語句「ロマンティック」またはその類義語を使用する多数のアフィニティ宣言が行われる場合、この語句を使用して、このノードが提案されるべきユーザを識別することができる。例えば、ユーザがステータス・メッセージ「ガールフレンドを連れていくためのロマンティックな場所を誰か知ってる?」を投稿したか、または私的なインスタント・メッセージ中でこの質問をした場合、ソーシャル・ネットワーキング・システムは、自然言語プログラミングを通して、語句「ロマンティック」(または他の類義語)を識別し、この決定に基づいて、位置「7番街/ブロードウェイ」を提案としてユーザに勧めることができる。特定の実施形態では、提案は、ノードがライブのハブ・ページを有するようになった後でしか行われない。特定の実施形態では、ソーシャル・ネットワーキング・システムは、見えるハブ・ページをノードが有さないときでも、テキストの形で提案を勧めることができる。
【0072】
特定の実施形態では、ソーシャル・ネットワーキング・システムは、概念に対する明示的なアフィニティを表現したユーザに提案インスタンスを勧めることができる。例えば、ユーザが「マティーニ」または「トゥルーディズ・メキシカン・グリル」についてのハブ・ページに「いいね」と言った場合、ソーシャル・ネットワーキング・システムは、「トゥルーディズ・メキシカン・グリルのメキシカン・マティーニを試してみた?」を例えば示すダイアログ・ボックスを、ユーザに対して表示することができる。他の実施形態では、ソーシャル・ネットワーキング・システムは、インスタンスに対するアフィニティを有するユーザの友達に、提案インスタンスを勧める。本開示は、述べる実施形態に限定されず、ソーシャル・ネットワーク上で勧められる提案を的の絞られたものにするためのどんな方法も企図する。
【0073】
図6の方法は、任意の既存ノードまたはオブジェクトに適用することができる。例えば、レストランの特定の料理(「レストランXのフォアグラ」)についての既存ハブ・ページがすでにあり、プログラムがこのインスタンスに対するユーザのアフィニティを検出した場合、「レストランXのフォアグラ」について別のノードを作成する必要はない。この既存ノードに対するユーザのアフィニティ係数は、ノードへのエッジとして記憶されることになる。
【0074】
特定の実施形態では、図6の方法は、ソーシャル・ネットワーク上でのあらゆるユーザ・アクションに適用される。特定の実施形態では、ソーシャル・ネットワークによってコンテキスト・データを推論することができる。図4Aでは、ユーザがチェックイン400上で「この店のケサディヤスも素晴らしい」とコメントする。図6の方法をコメント404に適用すると、アプリケーションは、「ケサディヤス」をオブジェクトとして識別し、「素晴らしい」をアフィニティ宣言として識別することができる。特定の実施形態では、コメント404はチェックイン400上にあるので、チェックイン400からのコンテキスト・データがコメント400に対して推論される。したがって、ソーシャル・ネットワークは、コメント400がインスタンス「トゥルーディズ・メキシカン・グリルのケサデ
ィヤス」を有すると決定することができる。特定の実施形態では、コメントの連鎖が下に行くにつれて、コンテキスト情報が推論される程度は下がる。例えば、1番目のコメントは、15番目のコメントよりも、チェックインされた位置に関係する可能性がずっと高い。
【0075】
特定の実施形態では、コメントは、コメントされている対象のアクションにかかわらず、肯定的または否定的なアフィニティ宣言を含む場合がある。例えば、図4Cで、自由形式テキスト宣言411は否定的なアフィニティ語句を含むが、コメント413は、1つの肯定的なアフィニティ語句(「一理ある」)を含む。
【0076】
以上の実施形態は様々なネットワーク構成で実施することができるが、以下に、例示的なネットワーク環境を限定ではなく説明のために示す。図7に、例示的なネットワーク環境700を示す。ネットワーク環境700は、1つまたは複数のサーバ720と1つまたは複数のクライアント730とを相互に結合するネットワーク710を含む。ネットワーク環境700はまた、1つまたは複数のサーバ720にリンクされた1つまたは複数のデータ記憶装置740を含む。特定の実施形態をネットワーク環境700中で実施することができる。例えば、ソーシャル・ネットワーキング・システム・フロントエンド120は、1つまたは複数のサーバ720によってホストされるソフトウェア・プログラム中で書かれたものとすることができる。例えば、イベント・データベース102は、1つまたは複数の記憶装置740に記憶されてよい。特定の実施形態では、ネットワーク710は、イントラネット、エクストラネット、仮想私設ネットワーク(VPN)、ローカル・エリア・ネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの一部、もしくは別のネットワーク710、または、このような2つ以上のネットワーク710の組合せである。本開示は、任意の適切なネットワーク710を企図する。
【0077】
1つまたは複数のリンク750が、サーバ720またはクライアント730をネットワーク710に結合する。特定の実施形態では、1つまたは複数のリンク750はそれぞれ、1つまたは複数の有線、ワイヤレス、または光リンク750を含む。特定の実施形態では、1つまたは複数のリンク750はそれぞれ、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、MAN、インターネットの一部、もしくは別のリンク750、または、このような2つ以上のリンク750の組合せを含む。本開示は、サーバ720およびクライアント730をネットワーク710に結合する任意の適切なリンク750を企図する。
【0078】
特定の実施形態では、各サーバ720は、単体のサーバであってもよく、または複数のコンピュータもしくは複数のデータセンタにわたる分散サーバであってもよい。サーバ720は様々なタイプのものとすることができ、限定ではなく例えばこれらは、ウェブ・サーバ、ニュース・サーバ、メール・サーバ、メッセージ・サーバ、広告サーバ、ファイル・サーバ、アプリケーション・サーバ、交換サーバ、データベース・サーバ、またはプロキシ・サーバなどとすることができる。特定の実施形態では、各サーバ720は、サーバ720によって実現またはサポートされる適切な機能を実施するためのハードウェア・コンポーネント、ソフトウェア・コンポーネント、もしくは組込み論理コンポーネント、またはこのような2つ以上のコンポーネントの組合せを備えてよい。例えば、ウェブ・サーバは一般に、ウェブ・ページまたはウェブ・ページの特定の要素を含むウェブサイトをホストすることができる。より具体的には、ウェブ・サーバは、HTMLファイルもしくは他のファイル・タイプをホストすることができ、または、要求に応じて動的にファイルを作成または構成し、クライアント730からのHTTPもしくは他の要求に応答してこれらのファイルをクライアント730に通信することができる。メール・サーバは一般に、電子メール・サービスを様々なクライアント730に提供することができる。データベー
ス・サーバは一般に、1つまたは複数のデータ・ストアに記憶されたデータを管理するためのインタフェースを提供することができる。
【0079】
特定の実施形態では、1つまたは複数のデータ記憶装置740は、1つまたは複数のリンク750を介して1つまたは複数のサーバ720に通信可能にリンクされてよい。特定の実施形態では、データ記憶装置740を使用して様々なタイプの情報を記憶することができる。特定の実施形態では、データ記憶装置740に記憶された情報は、特定のデータ構造に従って構成されてよい。特定の実施形態では、各データ記憶装置740は、関係データベースとすることができる。特定の実施形態は、データ記憶装置740に記憶された情報をサーバ720またはクライアント730が管理(例えば取出し、修正、追加、または削除)できるようにするインタフェースを提供することができる。
【0080】
特定の実施形態では、各クライアント730は、ハードウェア・コンポーネント、ソフトウェア・コンポーネント、もしくは組込み論理コンポーネント、またはこのような2つ以上のコンポーネントの組合せを備える電子デバイスとすることができ、クライアント730によって実現またはサポートされる適切な機能を実施することができる。限定ではなく例えば、クライアント730は、デスクトップ・コンピュータ・システム、ノートブック・コンピュータ・システム、ネットブック・コンピュータ・システム、ハンドヘルド電子デバイス、または携帯電話機とすることができる。本開示は、任意の適切なクライアント730を企図する。クライアント730は、クライアント730におけるネットワーク・ユーザがネットワーク730にアクセスするのを可能にすることができる。クライアント730は、そのユーザが他のクライアント730における他のユーザと通信するのを可能にすることができる。
【0081】
クライアント730は、MICROSOFT INTERNET EXPLORER、GOOGLE CHROME、またはMOZILLA FIREFOXなどのウェブ・ブラウザ732を有してよく、TOOLBARまたはYAHOO TOOLBARなど、1つまたは複数のアドオン、プラグイン、または他の拡張を有してよい。クライアント730におけるユーザは、ウェブ・ブラウザ732をサーバ720に向けるユニフォーム・リソース・ロケータ(URL)または他のアドレスを入力することができ、ウェブ・ブラウザ732は、ハイパー・テキスト・トランスファー・プロトコル(HTTP)要求を生成して、HTTP要求をサーバ720に通信することができる。サーバ720は、HTTP要求を受諾し、HTTP要求に応答して1つまたは複数のハイパー・テキスト・マークアップ言語(HTML)ファイルをクライアント730に通信することができる。クライアント730は、ユーザに対して提示するために、サーバ720からのHTMLファイルに基づいてウェブ・ページをレンダリングすることができる。本開示は、任意の適切なウェブ・ページ・ファイルを企図する。限定ではなく例として、ウェブ・ページは、特定の必要性に従って、HTMLファイル、拡張可能ハイパー・テキスト・マークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルからレンダリングすることができる。このようなページはまた、限定ではなく例えば、JAVA(登録商標)SCRIPT、JAVA(登録商標)、MICROSOFT SILVERLIGHT、マークアップ言語とスクリプトの組合せ(AJAX(Asynchronous JAVA(登録商標)Script and XML)等)などで書かれたものなど、スクリプトを実行することができる。本願明細書において、適切な場合には、ウェブ・ページへの言及は、1つまたは複数の対応するウェブ・ページ・ファイル(ブラウザがウェブ・ページをレンダリングするのに使用できる)を包含し、その逆でもある。
【0082】
図8に、サーバ22a、22bを実現するのに使用できる例示的なコンピューティング・システム・アーキテクチャを示す。一実施形態では、ハードウェア・システム800は、プロセッサ802と、キャッシュ・メモリ804と、有形コンピュータ可読媒体に記憶
された、本願明細書に述べる機能に向けられた1つまたは複数の実行可能モジュールおよびドライバとを備える。加えて、ハードウェア・システム800は、高性能入出力(I/O)バス806および標準I/Oバス808を備える。ホスト・ブリッジ808が、プロセッサ802を高性能I/Oバス806に結合し、I/Oバス・ブリッジ812が、2つのバス806と808とを相互に結合する。システム・メモリ814および1つまたは複数のネットワーク/通信インタフェース816が、バス806に結合する。ハードウェア・システム800はさらに、ビデオ・メモリ(図示せず)と、ビデオ・メモリに結合された表示デバイスとを備えてよい。大容量記憶装置818およびI/Oポート820が、バス808に結合する。ハードウェア・システム800は任意選択で、キーボードおよびポインティング・デバイス、ならびに、バス808に結合された表示デバイス(図示せず)を備えてよい。これらの要素は集合的に、広いカテゴリのコンピュータ・ハードウェア・システムを表すものとし、これらのシステムは、米国カリフォルニア州サンタクララのインテル社製のx86互換プロセッサ、および米国カリフォルニア州サニーベールのアドバンスト・マイクロ・デバイセズ(Advanced Micro Devices)(AMD)社製のx86互換プロセッサ、ならびに他の任意の適切なプロセッサに基づく汎用コンピュータ・システムを含むが、これらに限定されない。
【0083】
以下、ハードウェア・システム800の要素についてより詳細に述べる。特に、ネットワーク・インタフェース816は、ハードウェア・システム800と、幅広いネットワーク(イーサネット(登録商標)(例えばIEEE802.3)ネットワーク、バックプレーンなど)のいずれかとの間の通信を提供する。大容量記憶装置818は、サーバ22a、22b中で実現される前述の機能を実施するためのデータおよびプログラミング命令のための永続的記憶域を提供し、システム・メモリ814(例えばDRAM)は、プロセッサ802による実行時にこれらのデータおよびプログラミング命令のための一時的記憶域を提供する。I/Oポート620は、ハードウェア・システム800に結合される場合のある追加の周辺デバイス間の通信を提供する、1つまたは複数のシリアルおよび/またはパラレル通信ポートである。
【0084】
ハードウェア・システム800は様々なシステム・アーキテクチャを備えてよく、ハードウェア・システム800の様々なコンポーネントは、再構成することができる。例えば、キャッシュ804は、プロセッサ802と共にオンチップであってもよい。別法として、キャッシュ804とプロセッサ802とが共に「プロセッサ・モジュール」としてパックされてもよく、プロセッサ802は「プロセッサ・コア」と呼ばれる。さらに、本発明のいくつかの実施形態は、上記のコンポーネントの全てを必要としなくても、また全てを備えなくてもよい。例えば、標準I/Oバス808に結合されるように示される周辺デバイスは、高性能I/Oバス806に結合してもよい。加えて、いくつかの実施形態では、単一のバスのみが存在してよく、ハードウェア・システム800のコンポーネントは、この単一のバスに結合される。さらに、ハードウェア・システム800は、追加のプロセッサや記憶デバイスやメモリなど、追加のコンポーネントを備えてもよい。
【0085】
1実装形態では、本願明細書に述べる実施形態の動作は、分散コンピューティング環境で個別にまたは一括してハードウェア・システム800によって実行される一連の実行可能モジュールとして実現される。特定の一実施形態では、1組のソフトウェア・モジュールおよび/またはドライバが、ネットワーク通信プロトコル・スタック、閲覧および他のコンピューティング機能、最適化工程などを実施する。前述の機能モジュールは、ハードウェア、コンピュータ可読媒体に記憶された実行可能モジュール、またはこの両方の組合せによって実現することができる。例えば、機能モジュールは、プロセッサ802など、ハードウェア・システム中のプロセッサによって実行されることになる複数のまたは一連の命令を含んでよい。この一連の命令は、最初は大容量記憶装置818などの記憶デバイスに記憶されていてよい。しかし、一連の命令は、ディスケット、CD−ROM、EEP
ROMなど、任意の適切な記憶媒体に有形に記憶されてもよい。さらに、一連の命令は、ローカルに記憶される必要はなく、ネットワーク上のサーバなどのリモート記憶デバイスから、ネットワーク/通信インタフェース816を介して受信されてもよい。命令は、大容量記憶装置818などの記憶デバイスからメモリ814にコピーされた後で、プロセッサ802によってアクセスされ実行される。
【0086】
オペレーティング・システムが、ソフトウェア・アプリケーション(図示せず)との間のデータ入出力を含めた、ハードウェア・システム800の動作を管理および制御する。オペレーティング・システムは、システム上で実行されているソフトウェア・アプリケーションと、システムのハードウェア・コンポーネントとの間のインタフェースを提供する。LINUX(登録商標)オペレーティング・システム、米国カリフォルニア州クパチーノ(Cupertino)のアップル・コンピュータ社(Apple Computer
Inc.)から入手可能なApple Macintoshオペレーティング・システム、UNIX(登録商標)オペレーティング・システム、Microsoft(登録商標)Windows(登録商標)オペレーティング・システム、BSDオペレーティング・システムなど、任意の適切なオペレーティング・システムを使用することができる。当然、他の実装形態も可能である。例えば、本願明細書に述べるニックネーム生成機能は、ファームウェア中で、または特定用途向け集積回路上で実施することができる。
【0087】
さらに、前述の要素および動作は、記憶媒体に記憶された命令からなるものとすることができる。命令は、処理システムによって取り出して実行することができる。命令のいくつかの例は、ソフトウェア、プログラム・コード、およびファームウェアである。記憶媒体のいくつかの例は、メモリ・デバイス、テープ、ディスク、集積回路、およびサーバである。命令が処理システムによって実行されると、命令は、本発明に従って動作するよう処理システムに指示するように動作可能である。用語「処理システム」とは、単一の処理デバイス、または1群の相互運用可能な処理デバイスを指す。処理デバイスのいくつかの例は、集積回路および論理回路である。当業者なら、命令、コンピュータ、および記憶媒体に精通している。
【0088】
本開示は、本願明細書における例示的な実施形態に対する、当業者なら理解するであろうあらゆる変更、代用、変形、改変、および修正を包含する。同様に、適切な場合には、添付の特許請求の範囲は、本願明細書における例示的な実施形態に対する、当業者なら理解するであろうあらゆる変更、代用、変形、改変、および修正を包含する。例として、ソーシャル・ネットワーキング・ウェブサイトとの関連で動作するものとして本発明の実施形態を述べたが、本発明は、ウェブ・アプリケーションをサポートする任意の通信機能との関連で使用することができる。さらに、いくつかの実施形態では、用語「ウェブ・サービス」と「ウェブサイト」は交換可能に使用される場合があり、加えてこれらの用語は、モバイル・デバイス(例えばセルラー・フォン、スマート・フォン、パーソナルGPS、パーソナル・ディジタル・アシスタンス、パーソナル・ゲーミング・デバイス等)など、API呼をサーバに直接発信するデバイス上の、カスタムのまたは一般化されたAPIを指す場合もある。
図1
図2
図3
図4A
図4B
図4C
図5
図6
図7
図8