(57)【要約】  フレキシブルなセンテンスを提供するための方法およびシステムが開示される。システムは、フレキシブルなセンテンス構文のアクタ、エッジ、ターゲット、およびアグリゲーションを定義するためのオプションを提供するための開発者インタフェースを含む。一実施形態において、フレキシブルなセンテンス構文のエッジおよび／またはターゲットの性質表現を定義するために、トークンが提供される。定義されたエッジおよびターゲットに基づいて、開発者インタフェースは、開発者が選択するための複数のフレキシブルなセンテンス構文を生成することができる。いくつかの実施形態において、開発者は、フレキシブルなセンテンス構文のエッジおよび／またはターゲットをさらに定義するために、追加の性質表現を追加することができる。いくつかの事例では、複数のフレキシブルなセンテンス構文は、所与の時間フレームにわたって受信されたインプレッションによって決定されたパーセンテージ通用範囲に基づいて、優先順位を付けられてよい。
2016524207.tif 000002
【特許請求の範囲】
【請求項１】
エッジ構成に基づいてフレキシブルなセンテンス構文を定義するために、開発者インタフェースを提供する工程と、
前記フレキシブルなセンテンス構文における個別のエッジの第１の性質表現を開発者が選ぶために、１または複数のエッジ・トークンを前記開発者インタフェース上で生成する工程と、
前記フレキシブルなセンテンス構文における前記個別のエッジの１または複数の時制を前記開発者が選択するために、時制オプションを前記開発者インタフェース上で提供する工程と、
前記個別のエッジに基づいて、前記フレキシブルなセンテンス構文を前記開発者が決定するために、複数の関係のあるフレキシブルなセンテンスを生成する工程と
を備える方法。
【請求項２】
前記フレキシブルなセンテンス構文における個別のターゲットの第２の性質表現を前記開発者が選ぶために、１または複数のターゲット・トークンを前記開発者インタフェース上で生成する工程をさらに備える請求項１に記載の方法。
【請求項３】
前記フレキシブルなセンテンス構文における前記個別のエッジ、前記個別のターゲット、またはその両方の性質をカスタマイズするように、１または複数の追加の性質表現を前記開発者が追加するために、性質表現オプションを前記開発者インタフェース上で提供する工程をさらに備える請求項２に記載の方法。
【請求項４】
前記フレキシブルなセンテンス構文を前記開発者が構成するために、複数のエッジ構成を前記開発者インタフェース上で生成する工程であって、前記複数のエッジ構成は、１対１、オブジェクト・タイトルなしの１対１、１対２、１対多、オブジェクト・タイトルなしの１対２／多、２対１、または多対１を含む工程をさらに備える請求項３に記載の方法。
【請求項５】
ギャラリー・タイプ、テーブル、リスト、およびマップを含む１または複数のアグリゲーション・タイプを、前記開発者インタフェース上で生成する工程をさらに備える請求項４に記載の方法。
【請求項６】
前記開発者が選択するために、前記個別のエッジ、前記個別のターゲット、またはその両方の複数のアグリゲーションを自動的に生成する工程をさらに備える請求項５に記載の方法。
【請求項７】
複数のユーザ・インタフェース上で自動的に生成されたセンテンスの表示をシミュレートするためのプレビュー・オプションを生成する工程であって、前記複数のユーザ・インタフェースは、モバイル・ウェブと、ｉＯＳ（登録商標）と、Ａｎｄｒｏｉｄ（登録商標）と、デスクトップ・ウェブと、およびＷｉｎｄｏｗｓ（登録商標）ＯＳ、Ｌｉｎｕｘ（登録商標）、またはＵｎｉｘ（登録商標）上に存在するアプリケーションとのうちの１以上を含む工程をさらに備える請求項６に記載の方法。
【請求項８】
前記複数のフレキシブルなセンテンスは、その対応する通用範囲のパーセンテージに基づいた優先順位により前記開発者インタフェース上に提示され、前記通用範囲のパーセンテージは、あらかじめ定義された期間内に受信されたインプレッションによって決定され、前記インプレッションは、インプレッション総数、照会総数、フィード・インプレッション、フィード照会、ティッカー・インプレッション、またはティッカー照会を含む、請求項１に記載の方法。
【請求項９】
前記１または複数のエッジ・トークンが前記開発者によって選択されるとき、ネットワークＩ／Ｏ遅延を最小限にするために、関係のあるフレキシブルなセンテンスのグループを前記開発者のデバイス上にプリ・フェッチする工程であって、フレキシブルなセンテンスの前記グループは、所定の閾値を上回る前記通用範囲のパーセンテージを有する工程をさらに備える請求項８に記載の方法。
【請求項１０】
前記１または複数のエッジ・トークンは、チェック・ボックス・リスト、ドロップ・ダウン・メニュー、選択リスト、ボタンのリスト、または複数層メニュー・レベルにおいて提供される、請求項１に記載の方法。
【請求項１１】
コンピュータ・システムと、
前記コンピュータ・システム上でインスタンス化されるアプリケーション・プログラムであって、前記アプリケーションがコンピュータにより生成される出力を提供する、アプリケーション・プログラムと、
を備えるネットワーキング・システムであって、
前記コンピュータ・システムは、
フレキシブルなセンテンス構文を開発者が定義するために、前記開発者のデバイス上でインスタンス化される開発者インタフェースを提供し、
前記フレキシブルなセンテンス構文における個別のエッジの第１の性質表現を前記開発者が選ぶために、１または複数のエッジ・トークンを前記開発者インタフェース上で生成し、
前記フレキシブルなセンテンス構文における前記個別のエッジの１または複数の時制を前記開発者が選択するために、時制オプションを前記開発者インタフェース上で提供し、
前記個別のエッジに基づいて、前記フレキシブルなセンテンス構文を前記開発者が決定するために、複数の関係のあるフレキシブルなセンテンスを生成するように構成されている、
ネットワーキング・システム。
【請求項１２】
前記コンピュータ・システムは、前記フレキシブルなセンテンス構文における個別のターゲットの第２の性質表現を前記開発者が選ぶために、１または複数のターゲット・トークンを前記開発者インタフェース上で生成するように構成されている、請求項１１に記載のネットワーキング・システム。
【請求項１３】
前記コンピュータ・システムは、前記フレキシブルなセンテンス構文を前記開発者が構成するために、１対１、オブジェクト・タイトルなしの１対１、１対２、１対多、オブジェクト・タイトルなしの１対２／多、２対１、または多対１を含む複数のエッジ構成を、前記開発者インタフェース上で生成するように構成されている、請求項１２に記載のネットワーキング・システム。
【請求項１４】
前記コンピュータ・システムは、前記フレキシブルなセンテンス構文を前記開発者が構成するために、１対１、オブジェクト・タイトルなしの１対１、１対２、１対多、オブジェクト・タイトルなしの１対２／多、２対１、および／または多対１を含む複数のエッジ構成を、前記開発者インタフェース上で生成するように構成されている、請求項１３に記載のネットワーキング・システム。
【請求項１５】
前記コンピュータ・システムは、前記開発者が前記フレキシブルなセンテンス構文を公開するために、ギャラリー・タイプ、テーブル、リスト、およびマップを含む１または複数のアグリゲーション・タイプを、前記開発者インタフェース上で生成するように構成されている、請求項１４に記載のネットワーキング・システム。
【請求項１６】
前記コンピュータ・システムは、前記開発者が選択するために、前記個別のエッジ、前記個別のターゲット、またはその両方の複数のアグリゲーションを自動的に生成するように構成されている、請求項１５に記載のネットワーキング・システム。
【請求項１７】
フレキシブルなセンテンス構文からエッジ構成を解釈する工程と、
前記エッジ構成に関係のあるソーシャル・ネットワーキング・システムのソーシャル・グラフからエッジを抽出する工程と、
前記エッジのフレキシブルなセンテンス表現を公開するためのフォーラムを決定する工程と、
前記フォーラムと前記フレキシブルなセンテンス構文におけるエッジ・トークンおよびターゲット・トークンとに基づいて、前記フレキシブルなセンテンス表現をレンダリングする工程と、
を備える方法。
【請求項１８】
前記エッジの時間マーカを決定する工程
をさらに備え、
前記フレキシブルなセンテンス表現をレンダリングする工程は、前記時間マーカに基づいて前記エッジ・トークンの動詞時制をレンダリングする工程を含む、
請求項１７に記載の方法。
【請求項１９】
前記エッジを抽出する工程は、前記エッジ構成に関係のある前記ソーシャル・グラフからエッジのアグリゲートを抽出する工程を含み、前記フレキシブルなセンテンス表現をレンダリングする工程は、要約センテンスをレンダリングするために、前記エッジ構成に基づいて前記フレキシブルなセンテンス表現をレンダリングする工程を含む、請求項１７に記載の方法。
【請求項２０】
前記フレキシブルなセンテンス表現をレンダリングする工程は、前記ターゲット・トークンの性質または前記エッジ・トークンの性質に基づいて、数値関数を計算する工程を含む、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示のさまざまな実施形態は、一般に、ユーザにソーシャル・ネットワーキング体験を提供することに関し、詳細には、ソーシャル・ネットワーキング・システムにおけるソーシャル表現をレンダリングすることに関する。
【背景技術】
【０００２】
世界中の大多数の人々が、今やソーシャル・ネットワーキング・システムを通してオンラインで接続している。ネットワーキング・システムは、複数のエッジによって相互接続された複数のノードを含むソーシャル・グラフを生成し、維持することができる。各ノードは、ソーシャル・ネットワーキング・システムにおけるオブジェクト（たとえば、場所、映画、その他）を表す。オブジェクトは、ユーザ・オブジェクトを含むことができる。複数のエッジの各々は、２つのノード間の個別の種類の接続を表す。
【０００３】
この構造化データは、ネットワーキング・システムのユーザのために意味のあるブラウザ体験をレンダリングするために有用であり得る。開発者は、ソーシャル・グラフに新しいコンテンツを公開して、構造化データを拡大し、ソーシャル・グラフにおいてオブジェクトをエッジでリンクすることができる。ユーザは、構造化データ内で、グラフ検索をクエリし、生成することができる。
【０００４】
しかしながら、開発者がソーシャル・グラフに新しいコンテンツを公開するアプリケーションを作成するとき、フィード・ストーリ、検索結果、および他のタイプの体験においてこの構造化データをレンダリングするために使用されるマシン生成テキストが、ぎこちないセンテンスおよび体験を導くことがある。
【図面の簡単な説明】
【０００５】
【図１】フレキシブルなセンテンスを生成するためのメカニズムを備えるソーシャル・ネットワーキング・システムを示す図。
【図２】一実施形態による、ソーシャル・ネットワーキング・システムに好適なシステム環境の高レベル・ブロック図。
【図３】ソーシャル・ネットワーキング・システムにおいて個別のフレキシブルなセンテンスを生成するためにトークンを使用するブロック図。
【図４Ａ】開発者プラットフォーム上で個別のフレキシブルなセンテンスの動詞時制を構成するためのオプションの例を示す図。
【図４Ｂ】開発者プラットフォーム上で個別のフレキシブルなセンテンスの時制を編集するためのオプションの例を示す図。
【図４Ｃ】開発者プラットフォーム上で個別のフレキシブルなセンテンスの時制を編集するためのオプションの例を示す図。
【図４Ｄ】開発者プラットフォーム上で個別のフレキシブルなセンテンスのための属性を選択するためのオプションの例を示す図。
【図５】ソーシャル・ネットワーキング・システムにおいて、個別のフレキシブルなセンテンス構文を生成するために使用され得る一組の動作を示す流れ図。
【図６】本開示のいくつかの実施形態がそれを用いて利用され得るコンピュータ・システムの例を示す図。
【発明を実施するための形態】
【０００６】
本開示の実施形態は、アプリケーションを通してアクタ（行為者）によって実施された
、関係またはアクションを表すために、フレキシブルで自然な響きのセンテンスを生成するための多様な方法およびシステムを提供する。センテンスは、アプリケーションによって、ソーシャル・グラフに公開される。これらのセンテンスは、ニュースフィード・ストーリ、検索結果、プロフィール・ストーリにおいて、または、ソーシャル・ネットワーク・システム上で、もしくはソーシャル・ネットワーク・システムの外で発生する他の体験において現れることができる。一実施形態において、アクタは、ソーシャル・ネットワーク・システムにおけるオブジェクトとして表されてよく、アクションまたは関係は、エッジとして表されてよい。通常、デフォルト・センテンス構造は、アクタ、エッジ、アクタが対話するターゲット、およびアクタに代わってソーシャル・ネットワーク・システム上でセンテンスを公開したアプリケーションを含む。たとえば、以下のストーリがソーシャル・ネットワーク・システムに公開されてよい：「サムは、グッドリーズ（Ｇｏｏｄｒｅａｄｓ）で、風の名前（Ｔｈｅ  Ｎａｍｅ  ｏｆ  ｔｈｅ  Ｗｉｎｄ）を読み終えた」。この例において、アクタは「サム」、エッジは「読み終えた」、ターゲットは「風の名前」（書籍）、およびアプリケーションは「グッドリーズ」である。
【０００７】
一定の状況においては、デフォルト・センテンス構造が、ぎこちない、またはコンテキストを欠くことがある。たとえば、ある彼女が、フィットネス・アプリケーションを通じて、自分がハイキングを終了したことを示した場合、公開されるセンテンスは、これまでは「ケリーは、ハイキング・コースをハイキングした（Ｋｅｌｌｙ  ｈｉｋｅｄ  ａ  ｈｉｋｉｎｇ  ｔｒａｉｌ）」のようであり得る。この例においては、「ケリー」がアクタ、「ハイキングした」がエッジ、および「ハイキング・コース」がターゲットである。デフォルト・センテンス構造は、冗長で、すっきりしないセンテンスをもたらす。別の例において、これまでは、ある彼が、自分があるアーティストをソングキック（Ｓｏｎｇｋｉｃｋ；コンサートを見つけるアプリケーション）で追跡したことを示したが、しかしながら、これは「クリスチャンは、ソングキック．ｃｏｍでミューズを追跡した（Ｃｈｒｉｓｔｅｎ  ｔｒａｃｋｅｄ  Ｍｕｓｅ  ｏｎ  Ｓｏｎｇｋｉｃｋ．ｃｏｍ）」となるので明瞭ではなかった。このように、デフォルト・センテンスは、十分なコンテキストをセンテンスに提供しない。
【０００８】
本明細書で説明されるように、システムは、ソーシャル・ネットワーク・システムによって公開されるセンテンスのための構文をカスタマイズするための開発者インタフェースを含むプラットフォームを含む。インタフェースは、アプリケーションの開発者が、そのアプリケーションによって公開されるエッジを表すセンテンスの構造を制御するのを可能にする。センテンス構文を［アクタ］［エッジ］［ターゲット］に限定する代わりに、開発者は、トークンを使用して、公開されることになるターゲットの性質（ｐｒｏｐｅｒｔｙ）を表すことができる。たとえば、「ケリーは、ハイキング・コースをハイキングした」の代わりに、よりすっきりしたバージョンは、「ケリーは、約５．６キロメートル（３．５マイル）ハイキングした。彼女を激励しよう！」であってよい。この例において、構文は、［アクタ］［エッジ］［ターゲット．長さ（ｔａｒｇｅｔ．ｌｅｎｇｔｈ）］である。「彼女を激励しよう！（Ｇｉｖｅ  ｈｅｒ  ａ  ｐａｔ  ｏｎ  ｔｈｅ  ｂａｃｋ！）」は、より自然で、記述的で、ソーシャルに実用的である。このセンテンスは、センテンスからターゲットそれ自体を省略し、ターゲットの性質を使用し、任意の自由なテキストを含んで、センテンスがよりソーシャル・アクション可能なものに聞こえるようにしている。アクタ、エッジ、およびターゲットの各々は、異なる状況の下では異なって表現されてよい。
【０００９】
さらに、システムはまた、必要に応じて、アクタ、エッジ、またはターゲットの性質を表すトークンをセンテンスの中に挿入する、自由な文字列を挿入する、およびトークンを省略するためのオプションを含む。
【００１０】
定義されたエッジおよびターゲットに基づいて、プラットフォームは、特定の開発者が定義するための一組のフレキシブルなセンテンスを生成することができる。プラットフォームは、開発者が、アクタ、エッジ、ターゲット、自由なテキスト文字列、またはそれらの任意の組合せのうちの１または複数の性質を、フレキシブルなセンテンス構文に挿入することを可能とする。プラットフォームは、フレキシブルなセンテンス構文における性質に関して派生形が計算されることをさらに可能とすることができる。プラットフォームは、開発者が、フレキシブルなセンテンス構文を公開する／レンダリングする異なる状況のために複数のセンテンス構成を定義することを含む、フレキシブルなセンテンス構文において任意の要素を省略する、および／または再配列することを可能とする。
【００１１】
いくつかの実施形態において、エッジ・トークンおよび／またはターゲット・トークンを開発者が選択するために、さまざまなオプションが開発者インタフェースによって提供される。たとえば、トークンは、チェック・ボックス・リスト、ドロップ・ダウン・メニュー、選択リスト、ボタンのリスト、複数層メニュー・レベル、またはそれらの任意の組合せにおいて提供され得る。別の例では、開発者がエッジまたはオブジェクト（たとえば、アクタまたはターゲット）の前に開き中括弧（「｛」）をタイプするとき、エッジまたはオブジェクトの性質表現を含むドロップ・ダウン・ボックスが、開発者が選択するために表示されてもよい。
【００１２】
いくつかの実施形態において、ユーザの間で人気の異なるレベルによるエッジ・トークンおよび／またはターゲット・トークンを区別するために、色分けが使用されてもよい。いくつかの実施形態において、開発者が選択したエッジおよびオブジェクトに基づいて、複数の関係のあるセンテンスが生成され、開発者が再検討するために、その対応する通用範囲（ｃｏｖｅｒａｇｅ）のパーセンテージと一緒に表示され得る。複数のセンテンスは、それらがどのくらい頻繁に発生したかに基づいて、優先順位を付けられることが可能である。いくつかの実施形態において、所定の閾値を上回る通用範囲のパーセンテージを有するセンテンスが、ネットワークＩ／Ｏ遅延を最小限にするために、開発者デバイスにプリ・フェッチされてよい。
【００１３】
いくつかの実施形態において、開発者は、アクティビティの要約をアグリゲーションにおいて一度に公開することができる。開発者は、ギャラリー・タイプ、テーブル、リスト、マップ、またはそれらの任意の組合せを含むことができる、異なるタイプのアグリゲーションから選択することができる。いくつかの実施形態において、開発者が個別のフレキシブルなセンテンスのエッジおよびターゲットを選ぶとき、複数のアグリゲーションが、開発者が選択するために自動的に生成されてよい。
【００１４】
いくつかの実施形態において、開発者は、一組の「エッジ構成」から選択することによって、個別のセンテンスを構成することができる。一組のエッジ構成は、限定はされないが、１対１、ターゲット・タイトルなしの１対１、１対２、１対多、ターゲット・タイトルなしの１対２／多、２対１、多対１、その他を含むことができる。
【００１５】
いくつかの実施形態において、異なるエッジ構成を有する個別のフレキシブルなセンテンスを開発者がプレビューするために、プレビュー・ボックスが提供されてよい。いくつかの実施形態において、プレビュー・ボックスは、異なるプラットフォームを使用するアクタの友達によってセンテンスがどのように知覚され得るのかを開発者が視覚化するために、これらのプラットフォーム上で個別のフレキシブルなセンテンスの表示をシミュレートすることができる。
【００１６】
いくつかの実施形態において、開発者は、個別のフレキシブルなセンテンスの時制をカスタマイズすることができる。個別のセンテンスにおける動詞の時制は、過去時制、複数
過去時制、現在時制、複数現在時制、継続時制、完了時制、完了継続時制、および命令時制などを含むことができる。いくつかの実装形態において、開発者は、個別のフレキシブルなセンテンスのエッジのために１または複数の時制を選ぶことができる。いくつかの実施形態において、開発者のアプリケーションがどのようにストーリに帰され得るかを開発者がカスタマイズするために、属性トークンが提供され得る。
【００１７】
いくつかの実施形態において、開発者は、モバイル・ウェブ、ｉＯＳ（登録商標）、Ａｎｄｒｏｉｄ（登録商標）、デスクトップ・ウェブ、および／または、Ｗｉｎｄｏｗｓ（登録商標）ＯＳ、Ｌｉｎｕｘ（登録商標）、もしくはＵｎｉｘ（登録商標）上に存在するアプリケーションから、個別のフレキシブルなセンテンスを公開することができる。
【００１８】
数々の実施形態が開示されるが、本開示のなおも他の実施形態が、本発明の説明的な実施形態を示し、説明する、以下の詳細な説明から、当業者には明らかになるであろう。気付かれるように、本発明は、さまざまな態様における変更形態が、すべて本開示の範囲から逸脱することなく可能である。それに応じて、図面および詳細な説明は、説明的なものとみなされるべきであり、限定としてみなされるべきではない。
【００１９】
本開示の実施形態は、付随する図面の使用を通して、説明され、明らかにされることになる。
図面は、必ずしも一定の縮尺で描かれてはいない。たとえば、図における要素のうちのいくつかの寸法は、本開示の実施形態の理解の向上に役立つように、拡大される、または縮小されることがある。同様に、いくつかのコンポーネントおよび／または動作は、本開示の実施形態のうちのいくつかの議論の目的のために、異なるブロックの中に分離されても、単一のブロックの中に組み合わされてもよい。その上、本発明は、さまざまな変更形態および代替形態に適しているが、個別の実施形態が、図面の中で例として示されており、下記で詳細に説明される。しかしながら、その意図は、本発明を説明される特定の実施形態に限定することではない。反対に、本発明は、添付の特許請求の範囲によって定義される本発明の範囲内に入るすべての変更形態、均等形態、および代替形態を対象とするように意図されている。
【００２０】
本開示のさまざまな実施形態は、一般に、ユーザにソーシャル・ネットワーキング体験を提供することに関する。より具体的には、本開示のさまざまな実施形態は、ソーシャル・ネットワーキング・システムにおいてフレキシブルなセンテンスを提供するためのシステムおよび方法に関する。過去において、開発者が選択したアクタ、エッジ、およびターゲットは、センテンスまたはストーリの中に公開されることが可能であった。しかしながら、マシン生成テキストが、ぎこちない言葉遣い含むセンテンス、または公開後の読者にとって適当なコンテキストを欠くセンテンスをもたらしていた。たとえば、一定のソーシャル・ネットワーキング・システム上で利用可能なＮｉｋｅ＋アプリケーションなどの、エクササイズ・アプリケーションについて考える。エクササイズ・アプリケーション内で、ユーザがタスクに関係したなんらかのエクササイズを開始したとき、または終了したとき、エクササイズ・アプリケーションは、デフォルト・センテンス構文に基づいて、投稿するためのテキストを生成することになる。これは、「ハイキングをハイキングする」、または「ランニングを走る」などの、エッジとターゲットとが重複されたセンテンスの生成をもたらすことがあった。対照的に、本開示のさまざまな実施形態は、読者が容易に理解することができるフレキシブルなセンテンスを生成する。
【００２１】
一実施形態において、アプリケーション開発者は、アクタ、ターゲット、エッジ、およびアグリゲーション・コンポーネントを含む、個別のフレキシブルなセンテンスのための構文を定義することができる。個別のフレキシブルなセンテンスのエッジおよび／またはオブジェクト（たとえば、アクタまたはターゲット）の性質表現を開発者が定義するため
に、トークンが提供される。定義されたオブジェクトおよびエッジ、ならびにその対応する同義語に基づいて、プラットフォームは、開発者が選択するための一組のフレキシブルなセンテンス構文を自動的に生成することができる。開発者は、個別のフレキシブルなセンテンスのエッジおよび／またはオブジェクトをさらにカスタマイズするために、より多くの性質表現を追加することができる。個別のフレキシブルなセンテンスは、アプリケーションによって公開されるストーリおよびセンテンスが、タイムライン、ニュースフィード、および／またはソーシャル・ネットワーキング・システムにおける他の場所にどのように現れることができるのかを、開発者が制御するのを可能にする。
【００２２】
本明細書で説明される例は、ネットワーキング・システムに言及するが、本説明は、本開示の範囲を限定するものとして取られるべきではない。本発明の趣旨から変わることなく、さまざまな代替形態、変更形態、および均等形態が、当業者には明らかであろう。たとえば、フレキシブルなセンテンスを生成する方法は、アプリケーションを公開する、および／もしくはストーリを投稿する際の任意のユーザ・デバイス上で、または、ユーザにサービスを提供するためのコンピューティング・システム上で実装されてよい。別の例では、フレキシブルなセンテンスを生成する方法は、ウェブ・サーバ・システムを有する任意のコンピューティング・システムにおいて実装されてもよい。ウェブ・サーバ・システムは、ＨＢａｓｅ、ＭｙＳＱＬ、ＦｏｘＰｒｏ、ＩＢＭ  ＤＢ２、Ｌｉｎｔｅｒ、Ｍｉｃｒｏｓｏｆｔ  ＳＱＬ  Ｓｅｒｖｅｒ、Ｏｒａｃｌｅ、ＰｏｓｔｇｒｅＳＱＬ、ＳＱＬｉｔｅ、その他などの、データベース管理システム（ＤＢＭＳ）を含むことができる。
【００２３】
図１は、フレキシブルなセンテンスを開発し、レンダリングするためのメカニズムを備えるソーシャル・ネットワーキング・システム１００を示す。ソーシャル・ネットワーキング・システム１００は、ユーザが、ソーシャル・ネットワーキング・システムのコンテキスト内とコンテキストの外部との両方で、オブジェクトおよび他のユーザと対話するのを可能にするメカニズムを提供する。ソーシャル・ネットワーキング・システム１００は、ソーシャル・グラフ１０２を含む。ソーシャル・グラフ１０２は、エッジ１０６などのエッジを介して接続されたオブジェクト１０４などの複数のオブジェクトを含む。ソーシャル・グラフ１０２のオブジェクト１０４は、ユーザ、ページ、グループ、企業、ユーザが対話することができる他のエンティティ、またはそれらの任意の組合せなどの、ソーシャル・ネットワーキング・システム１００内のエンティティを表すことができる。エッジ１０６は、オブジェクト間の関係を表す。関係は、方向性があってよい。たとえば、関係を作成することを担当するオブジェクトは、アクタ１０８と考えられてよい。関係を受けることにおいて受動的であるオブジェクトは、ターゲット１１０と考えられてよい。しかしながら、単一のオブジェクトの中へと導くエッジがあり、単一のオブジェクトから外へと導くエッジがある場合には、単一のオブジェクトが、アクタ１０８およびターゲット１１０の両方と考えられてもよい。ソーシャル・グラフ１０２は、下記でさらに説明される。
【００２４】
フレキシブルなセンテンスを開発し、レンダリングするために、ソーシャル・ネットワーキング・システム１００を動作させる１または複数の方法は、下記で説明されるモジュールおよびストアによって実装されてよい。モジュールは、ハードウェア・コンポーネント、ソフトウェア・モジュール、またはそれらの任意の組合せとして実装されてよい。たとえば、説明されるモジュールは、マシン上のプロセッサまたはコントローラによって実行されることが可能な、非一時的なメモリ上の命令として実装されるソフトウェア・モジュールであってよい。
【００２５】
モジュールの各々は、個々に、かつ他のモジュールから独立して動作することができる。モジュールのうちのいくつか、またはすべては、同じホスト・デバイス上で実行されても、別個のデバイス上で実行されてもよい。別個のデバイスは、その動作を調整するため
に、通信モジュールを介して結合され得る。モジュールのうちのいくつか、またはすべては、１つのモジュールとして組み合わされてもよい。単一のモジュールはまた、サブ・モジュールに分割されてもよく、各サブ・モジュールが、単一のモジュールの別個の１または複数の方法ステップを実施する。モジュールは、メモリ空間へのアクセスを共有することができる。１つのモジュールが、別のモジュールによってアクセスされた、または別のモジュールによって変換されたデータにアクセスすることができる。モジュールは、直接的にまたは間接的に、物理接続または仮想接続を共有する場合に、互いに「結合される」と考えられてよく、１つのモジュールからアクセスされた、または変更されたデータが、別のモジュールにおいてアクセスされるのを可能にする。ソーシャル・ネットワーキング・システム１００は、さまざまなアプリケーションのための、追加の、より少ない、または異なるモジュールを含むことができる。
【００２６】
下記で説明されるストレージまたは「ストア」は、ネットワーク・アクセス可能なデータベースを稼働させることなどによって、デジタル・データを記憶するための、ハードウェア・コンポーネントまたはハードウェア・コンポーネントの部分である。ストレージの各々は、単一の物理エンティティであってもよいし、複数の物理デバイスを通して分散されてもよい。ストレージの各々は、別個の物理デバイス上にあってもよいし、同じ１または複数の物理デバイスを共有してもよい。ストアの各々は、個別のストレージ空間をランタイム・アプリケーションに割り当てることができる。
【００２７】
ソーシャル・ネットワーキング・システム１００は、フレキシブルなセンテンス管理システム１５０を含むことができる。フレキシブルなセンテンス管理システム１５０は、ソーシャル・ネットワーキング・システム１００上で稼働することができるソーシャル・ネットワーキング・アプリケーション１５２の開発者を支援する。ソーシャル・ネットワーキング・アプリケーション１５２はまた、別個のサーバ・システム上の外部モジュールを、ソーシャル・ネットワーキング・システム１００のように稼働させることができる。ソーシャル・ネットワーキング・アプリケーション１５２はその場合、下記で説明されるように、ソーシャル・ネットワーキング・システム１００のグラフ・アプリケーション・プログラミング・インタフェース（ＡＰＩ）サーバを介して、ソーシャル・ネットワーキング・システム１００と通信することができる。ソーシャル・ネットワーキング・アプリケーション１５２は、ソーシャル・ネットワーキング・システム１００のユーザに、追加の特徴を提供するモジュールである。ソーシャル・ネットワーキング・アプリケーション１５２の一部は、ソーシャル・ネットワーキング・システム１００内でソーシャル・グラフ１０２の進化を記述するセンテンスを公開することによって、ユーザと対話することができる。
【００２８】
フレキシブルなセンテンス管理システム１５０は、開発者インタフェース・モジュール１５４を含み、開発者インタフェース・モジュール１５４は、コンピュータ・システムまたはコンピュータ機能を備える電子デバイスなどの開発者デバイス１５５上で、フレキシブルなセンテンスを構成するための開発者インタフェースを生成し、提供する。たとえば、開発者インタフェースは、開発者が、ソーシャル・ネットワーキング・アプリケーション１５２によって公開され得るフレキシブルなセンテンス構文１５６を生成することを可能とする。たとえば、開発者インタフェースは、開発者が、アクタ１０８などのアクタ、エッジ１０６などのエッジ、ターゲット１１０などのターゲット、追加の不変もしくは可変のテキスト・テンプレート、またはそれらの任意の組合せを、フレキシブルなセンテンス構文１５６の中に挿入することを可能とする。フレキシブルなセンテンス構文１５６の構成は、ソーシャル・ネットワーキング・アプリケーション１５２の一部として記憶されても、フレキシブルなセンテンス管理システム１５０上に記憶されても、またはその両方でもよい。フレキシブルなセンテンス構文１５６の構成は、あらかじめ構成されたフレキシブルなセンテンスを保有するセンテンス・テンプレート・ストア１５８に基づくことが
できる。
【００２９】
フレキシブルなセンテンス管理システム１５０は、フレキシブルなセンテンス構文１５６のランタイム・インスタンスをレンダリングするセンテンス・レンディション・モジュール１６０をさらに含む。ソーシャル・ネットワーキング・アプリケーション１５２が実行されるとき、フレキシブルなセンテンス構文１５６は、ニュースフィード・ストーリを投稿する、またはモバイル通知を生成するなどのソーシャル・ネットワーキング・アプリケーション１５２に代わって、ソーシャル・グラフの表現をレンダリングするために使用される。
【００３０】
フレキシブルなセンテンス構文１５６は、エッジ構成によって編成されてよい。各フレキシブルなセンテンス構文１５６は、エッジ構成に対して特異的であってよい。たとえば、ソーシャル・ネットワーキング・アプリケーション１５２は、ソーシャル・ネットワーキング・アプリケーション１５２にサブスクライブする、またはソーシャル・ネットワーキング・アプリケーション１５２を稼働する、ソーシャル・ネットワーキング・システム１００にログオンしている特定のユーザに基づいて、アクタを検出することができる。アクタは、特定のユーザ、特定のユーザの友達、またはソーシャル・ネットワーキング・システム１００によって決められたように特定のユーザに関係のある任意の他のアクタであってよい。フレキシブルなセンテンス構文１５６のエッジ構成に合うエッジが、フレキシブルなセンテンスのレンダリングされたインスタンスにレンダリングされてよい。一実施形態において、センテンス・レンディション・モジュール１６０は、ソーシャル・ネットワーキング・アプリケーション１５２の一部である。
【００３１】
開発者インタフェースは、開発者が、アクタ、エッジ、ターゲット、またはそれらの任意の組合せの性質を、フレキシブルなセンテンス構文１５６の中に挿入することを可能とする。開発者インタフェースは、アクタ、エッジ、またはターゲットの演算された性質の挿入をさらに可能とする。たとえば、開発者は、アクタが一週間以内にハイキングしたいくつかのハイキングをアグリゲートするストーリについて、要素「［合計（ターゲット．長さ）］」を含むフレキシブルなセンテンス構文１５６を構成することができる。キーワード「合計」は、フレキシブルなセンテンス構文１５６内に置かれ得る演算関数である。フレキシブルなセンテンスのインスタンスがセンテンス・レンディション・モジュール１６０によってレンダリングされるとき、演算が遂行され、結果として生じた数が、レンダリングされたインスタンスのテキストの一部になる。
【００３２】
開発者インタフェースは、同じセンテンスにおける複数のアクタ、エッジ、およびターゲットの挿入を含む、フレキシブルなセンテンス構文１５６の構築を可能とする。たとえば、レンダリングされたフレキシブルなセンテンスのインスタンスは、「ジョーとジルは、今週、２つのコースをハイキングし、３つの市を自転車で横断し、約１９．３キロメートル（１２マイル）ジョギングした」を含むことができる。たとえば、フレキシブルなセンテンス構文１５６は、［アクタ＃１］および［アクタ＃２］、［エッジ＃１］および［エッジ＃２］、エッジ＃１．ターゲット（ｅｄｇｅ＃１．ｔａｒｇｅｔｓ）のカウントの演算関数、ならびにエッジ＃２．ターゲット．距離（ｅｄｇｅ＃２．ｔａｒｇｅｔｓ．ｄｉｓｔａｎｃｅ）の合計の演算関数を含むことができる。
【００３３】
開発者インタフェースは、開発者が、「彼女を激励しよう！」などの自由な文字列を、フレキシブルなセンテンス構文１５６に挿入することを可能とする。レンダリング時に動的に表現が埋められるに代えて、自由な文字列は、ランタイムで逐語的に表現される。開発者インタフェースは、開発者が、フレキシブルなセンテンス構文１５６における要素のうちのいずれかを省略し、再配列するのを可能にする。
【００３４】
開発者インタフェースは、異なる状況のために、フレキシブルなセンテンス構文１５６における複数のセンテンス構成の定義をさらに可能とする。複数のセンテンス構成は、センテンス・レンディション・モジュール１６０によってレンダリングされるとき、異なる状況の下でのフレキシブルなセンテンス構文１５６の異なるレンディションを考慮する。たとえば、異なる状況は、フレキシブルなセンテンス構文１５６が、ニュースフィードのためにレンダリングされているとき、パーソナル・タイムラインのためにレンダリングされているとき、または検索結果としてレンダリングされているときを含む。フレキシブルなセンテンス構文１５６をレンダリングするための異なるフォーラムは別にして、異なる状況はまた、フレキシブルなセンテンス構文１５６のエッジ構成下で適格であるユーザ・アクションの異なる数のアグリゲーションにおける違いを含む。たとえば、ユーザが一週間に一度のハイキングよりも多くハイキングしているときに対して、ユーザが一度だけハイキングしているときである。異なる状況は、エッジ構成のタイミングにおける違いをさらに含むことができる。たとえば、状況は、エッジが過去に起きた関係を指すとき（たとえば、ジョーはディアブロ山コースをハイキングした）、エッジが起きている関係を指すとき（たとえば、ジョーは、タム山をハイキングし始めた）、または、エッジが未来に起きる関係を指すとき（たとえば、ジョーは、５月にイタリアに旅行することを計画している）を含む。
【００３５】
ソーシャル・ネットワーキング・システム概要
フレキシブルなセンテンス管理システム１５０は、任意のデータ共有システムにおいて利用され得る。とりわけ、フレキシブルなセンテンス管理システム１５０は、ソーシャル・ネットワーキング・システム１００などのソーシャル・ネットワーキング・システムにおいて利用され得る。ソーシャル・ネットワーキング・システムは、通例、ユーザが、ソーシャル・ネットワーキング・システムのコンテキスト内とコンテキストの外部との両方で、オブジェクトおよび他のユーザと対話するのを可能にするメカニズムを提供する。ソーシャル・ネットワーキング・システム・ユーザは、個人、または企業もしくは他の人以外のエンティティなどの任意の他のエンティティであってよい。ソーシャル・ネットワーキング・システムは、ユーザがソーシャル・ネットワーキング・システム・オブジェクトおよび情報と対話するのを表示し、可能にする、一連の相互接続されたページを含むウェブ・ベースのインタフェースを利用することができる。たとえば、ソーシャル・ネットワーキング・システムは、ソーシャル・ネットワーキング・システム・ユーザによって登録された、またはソーシャル・ネットワーキング・システム・ユーザに関連したオブジェクトおよび情報（たとえば、ユーザの「プロフィール」）を含む、各ソーシャル・ネットワーキング・システム・ユーザのためのページを表示することができる。ソーシャル・ネットワーキング・システムはまた、写真もしくはビデオを保有するページ、概念専用のページ、同様の関心を持つユーザ（「グループ」）専用のページ、あるいは、他のユーザへの、他のユーザからの、もしくは他のユーザによる通信またはソーシャル・ネットワーキング・システム・アクティビティを保有するページを保有することができる。ソーシャル・ネットワーキング・システム・ページはまた、他のソーシャル・ネットワーキング・システム・ページへのリンクを保有することができ、検索、リアル・タイム通信、コンテンツ・アイテム・アップローディング、購入、広告、および任意の他のウェブ・ベースの技術もしくは性能などの追加の性能を含むことができる。ソーシャル・ネットワーキング・システム・インタフェースは、ウェブ・ブラウザ・アプリケーション、または専用のソーシャル・ネットワーキング・システムのモバイル・デバイス・アプリケーションもしくはコンピュータ・アプリケーションなどの非ウェブ・ブラウザ・アプリケーションから、アクセス可能であってよいことに留意されたい。本明細書で使用されるときの「ページ」は、ウェブページ、アプリケーション・インタフェースもしくはアプリケーション表示、ウェブページもしくはアプリケーション上で表示されるウィジェット、ボックスもしくは他のグラフィカル・インタフェース、別のページ（ソーシャル・ネットワーキング・システムのコンテキスト内またはコンテキストの外のいずれであれ）上のオーバーレイ・ウィンド
ウ、または、ソーシャル・ネットワーキング・システム・プラグ・インもしくは統合性能を備えるソーシャル・ネットワーキング・システムの外部のウェブページであってよい。
【００３６】
上記で議論されたように、ソーシャル・グラフは、エッジ（対話、アクティビティ、関係性を表す）によって相互接続された、一組のノード（ソーシャル・オブジェクトとしても知られるソーシャル・ネットワーキング・システム・オブジェクトを表す）を含む。ソーシャル・グラフにおける各ノードは、別のノードに作用し得る、および／または別のノードによって作用され得る、何かを表すことができる。ソーシャル・ネットワーキング・システム・オブジェクトは、ソーシャル・ネットワーキング・システム・ユーザ、人以外のエンティティ、コンテンツ・アイテム、グループ、ソーシャル・ネットワーキング・システム・ページ、ロケーション、アプリケーション、サブジェクト、概念、または映画、バンド、もしくは書籍などの他のソーシャル・ネットワーキング・システム・オブジェクトであってよい。コンテンツ・アイテムは、ソーシャル・ネットワーキング・システム・ユーザまたは他のオブジェクトが作成する、アップロードする、編集する、または対話することができるどんなものも含み、たとえば、メッセージ、キューに入ったメッセージ（たとえば、電子メール）、テキストおよびＳＭＳ（ショート・メッセージ・サービス）メッセージ、コメント・メッセージ、任意の他の好適なメッセージング技法を使用して送られたメッセージ、ＨＴＴＰリンク、ＨＴＭＬファイル、画像、ビデオ、オーディオ・クリップ、文書、文書編集、カレンダー・エントリもしくはイベント、および他のコンピュータ関連ファイルを含む。ソーシャル・グラフのコンテキストにおいて、サブジェクトおよび概念は、任意の人、場所、もの、または抽象的観念を表すノードを含む。ソーシャル・グラフにおける２つのノード間のエッジは、ノードのうちの１つによって他のノードに実施されたアクションから生じ得る、またはそうでなければ、ノード／オブジェクト間の関係を記述する、２つのノード間の特定の種類の接続を表す。
【００３７】
ソーシャル・ネットワーキング・システムは、ユーザが、ユーザの関心に関連した情報、教育および職歴、連絡先情報、および他の経歴情報を、ユーザのプロフィール・ページに登録し、表示するのを可能にすることができる。各学校、雇用者、関心（たとえば、音楽、書籍、映画、テレビ番組、ゲーム、政治的見解、哲学、宗教、グループ、またはファン・ページ）、地理的ロケーション、ネットワーク、またはプロフィール・ページに保有される任意の他の情報は、ソーシャル・グラフにおけるノードによって表されてよい。ソーシャル・ネットワーキング・システムは、ユーザが、写真、ビデオ、文書、歌、または他のコンテンツ・アイテムをアップロードする、または作成するのを可能にすることができ、ユーザが、イベントを作成し、スケジュールするのを可能にすることができる。コンテンツ・アイテムおよびイベントは、ソーシャル・グラフにおけるノードによって表されてよい。
【００３８】
ソーシャル・ネットワーキング・システムは、ソーシャル・ネットワーキング・システム内で人以外のオブジェクトと対話するための多様な手段を提供することができる。たとえば、ユーザは、ソーシャル・ネットワーキング・システム内で、グループを形成する、もしくはグループに加入する、またはファン・ページのファンになることができる。加えて、ユーザは、ソーシャル・ネットワーキング・システム・オブジェクトを作成する、ダウンロードする、閲覧する、アップロードする、それにリンクする、タグ付けする、編集する、またはプレイすることができる。ユーザは、ソーシャル・ネットワーキング・システムのコンテキストの外でソーシャル・ネットワーキング・システム・オブジェクトと対話することができる。たとえば、ニュース・ウェブ・サイト上の記事が、ユーザがクリックすることができる「いいね」ボタンを有していることがある。これらの事例の各々において、ユーザとオブジェクトとの間の対話は、ユーザのノードをオブジェクトのノードに接続する、ソーシャル・グラフにおけるエッジによって表されてよい。ユーザは、ロケーション検出機能（モバイル・デバイス上のＧＰＳ受信機など）を使用して、特定のロケー
ションに「チェック・イン」することができ、エッジは、ソーシャル・グラフにおいてユーザのノードをロケーションのノードに接続することができる。
【００３９】
ソーシャル・ネットワーキング・システムは、ユーザが、自分自身をソーシャル・ネットワーキング・システムの他のユーザに関連付け、他のユーザとの接続を確立するのを可能にする。２人のユーザがソーシャル・ネットワーキング・システムにおいて接続を明示的に確立するとき、ユーザらは、ソーシャル・ネットワーキング・システムのコンテキスト内で「友達」（または「つながり」）になる。ソーシャル・ネットワーキング・システムにおいて友達になることは、そうでない場合に接続されていないユーザに対して利用可能であるよりも多くの、互いについての情報に、ユーザがアクセスするのを可能にすることができる。たとえば、友達になることは、ユーザが、別のユーザのプロフィールを閲覧する、別のユーザの友達を見る、または別のユーザの写真を閲覧するのを可能にすることができる。同様に、ソーシャル・ネットワーキング・システム内で友達になることは、電子メール（ソーシャル・ネットワーキング・システムの内部および外部）、インスタント・メッセージ、テキスト・メッセージ、電話、または任意の他の通信インタフェースなどによって、ユーザに、別のユーザと通信するためのより多くのアクセスを可能にすることができる。友達になることは、別のユーザのアップロードしたコンテンツ・アイテムを閲覧する、それにコメントする、ダウンロードする、支持する、または別のやり方でそれと対話するための、ユーザ・アクセスを可能にすることができる。接続を確立すること、ユーザ情報にアクセスすること、通信すること、およびソーシャル・ネットワーキング・システムのコンテキスト内で対話することは、２人のソーシャル・ネットワーキング・システム・ユーザを表すノード間のエッジによって表されてよい。
【００４０】
ソーシャル・ネットワーキング・システムにおいて接続を明示的に確立することに加えて、コミュニケーションの話題を決定するのに使用するためのソーシャル・コンテキストを決定する目的のために、共通の特性を持つユーザ同士が接続される（ソフトな接続または非明示的な接続など）と考えられてよい。一実施形態において、共通のネットワークに属するユーザ同士が接続されると考えられる。たとえば、共通の学校に通う、共通の会社で仕事をする、または共通のソーシャル・ネットワーキング・システム・グループに属するユーザ同士が接続されると考えられてよい。一実施形態において、共通の経歴特性を持つユーザ同士が接続されると考えられる。たとえば、ユーザが生まれた、または暮らした地理領域、ユーザの年齢、ユーザの性別、およびユーザの関係ステータスが、ユーザ同士が接続されるかどうかを決定するために使用されてよい。一実施形態において、共通の関心を持つユーザ同士が接続されると考えられる。たとえば、ユーザの映画の好み、音楽の好み、政治的見解、宗教的見解、または任意の他の関心が、ユーザ同士が接続されるかどうかを決定するために使用されてよい。一実施形態において、ソーシャル・ネットワーキング・システム内で共通のアクションを取っているユーザ同士が接続されると考えられる。たとえば、共通のオブジェクトを支持する、または推奨するユーザ同士、共通のコンテンツ・アイテムにコメントするユーザ同士、または、共通のイベントへの返事を出すユーザ同士が、接続されると考えられてよい。下記でより詳細に説明されるように、ソーシャル・ネットワーキング・システムは、特定のユーザのコミュニケーションのソーシャル・コンテキストを決定する、または評価するために、ソーシャル・グラフを利用して、特定のユーザに接続されるユーザを決定することができる。
【００４１】
ソーシャル・ネットワーキング・システムは、多様な通信チャネルをユーザに提供することができる。たとえば、ソーシャル・ネットワーキング・システムは、ユーザが、１人または複数の他のユーザに電子メール、インスタント・メッセージ、またはテキスト／ＳＭＳメッセージを送るのを可能にすることができ、ユーザが、ユーザのウォールもしくはプロフィールに、または別のユーザのウォールもしくはプロフィールにメッセージを投稿するのを可能にすることができ、ユーザが、グループまたはファン・ページにメッセージ
を投稿するのを可能にすることができ、あるいは、ユーザが、ユーザもしくは別のユーザによって作成された、もしくはアップロードされた、画像、ウォール投稿、または他のコンテンツ・アイテムにコメントするのを可能にすることができる。一実施形態において、ユーザは、最新のイベント、心理の状態、考え、フィーリング、アクティビティ、または任意の他の現在時間に関係のある通信を示すステータス・メッセージを、ユーザのプロフィールに投稿する。ソーシャル・ネットワーキング・システムは、ユーザが、ソーシャル・ネットワーキング・システム内と、ソーシャル・ネットワーキング・システムの外部との両方で通信するのを可能にすることができる。たとえば、第１のユーザが、第２のユーザに、ソーシャル・ネットワーキング・システム内でメッセージを送り、ソーシャル・ネットワーキング・システムを通して電子メールを送り、ソーシャル・ネットワーキング・システムの外部の、しかしソーシャル・ネットワーキング・システムから発信した電子メールを送り、ソーシャル・ネットワーキング・システム内でインスタント・メッセージを送り、かつソーシャル・ネットワーキング・システムの外部の、しかしソーシャル・ネットワーキング・システムから発信したインスタント・メッセージを送ることができる。さらに、第１のユーザは、第２のユーザのプロフィール・ページにコメントすることができる、または、第２のユーザによってアップロードされたコンテンツ・アイテムなどの、第２のユーザに関連付けられたオブジェクトにコメントすることができる。
【００４２】
ソーシャル・ネットワーキング・システム環境およびアーキテクチャ
次に図２を参照すると、一実施形態による、ソーシャル・ネットワーキング・システム２０２に好適なシステム環境２００の高レベル・ブロック図が示されている。図２に示されるシステム環境２００は、ソーシャル・ネットワーキング・システム２０２と、クライアント・デバイス２０４Ａと、ネットワーク・チャネル２０６とを含む。システム環境２００は、クライアント・デバイス２０４Ｂおよびクライアント・デバイス２０４Ｃなどの他のクライアント・デバイスも同様に含むことができる。たとえば、クライアント・デバイス２０４は、図１の開発者デバイス１５５を含むことができる。他の実施形態において、システム環境２００は、図２によって示されるものとは異なるコンポーネントおよび／または追加のコンポーネントを含むことができる。ソーシャル・ネットワーキング・システム２０２は、図１のソーシャル・ネットワーキング・システム１００であってよい。
【００４３】
下記でさらに説明されるソーシャル・ネットワーキング・システム２０２は、ユーザおよび／または他のオブジェクトに、ならびにユーザと他のユーザとの間、および／またはユーザと他のオブジェクトとの間の接続に関連付けられたユーザ・プロフィールを記憶する、１または複数のコンピューティング・デバイスを含む。使用において、ユーザは、ソーシャル・ネットワーキング・システム２０２に加入し、次いでユーザが接続されたいと所望する、ソーシャル・ネットワーキング・システムの他のユーザまたはオブジェクトへの接続を追加する。図２と併せて下記でさらに説明されるように、ソーシャル・ネットワーキング・システム２０２のユーザは、個人、または企業、組織、大学、製造業者などのエンティティであってよい。ソーシャル・ネットワーキング・システム２０２は、そのユーザ同士が互いに、ならびにソーシャル・ネットワーキング・システム２０２によって維持される他のオブジェクトと対話するのを可能にする。いくつかの実施形態において、ソーシャル・ネットワーキング・システム２０２は、ユーザが、第三者ウェブサイトおよび金融アカウント・プロバイダと対話するのを可能にする。
【００４４】
ユーザ、オブジェクト、ならびにユーザおよび／またはオブジェクトの間の接続について記憶されたデータに基づいて、ソーシャル・ネットワーキング・システム２０２は、複数のエッジによって相互接続された複数のノードを含む「ソーシャル・グラフ」を生成し、維持する。ソーシャル・グラフにおける各ノードは、別のノードに作用し得る、および／または別のノードによって作用され得る、オブジェクトまたはユーザを表す。ソーシャル・グラフにおける２つのノード間のエッジは、ノードのうちの１つによって他のノード
に実施されたアクションから生じることができる、２つのノード間の特定の種類の接続を表す。たとえば、あるユーザが追加のユーザを友達として識別するとき、第１のユーザを表すノードと、追加のユーザを表す追加のノードとを接続する、ソーシャル・グラフにおけるエッジが生成される。生成されたエッジは、ユーザ同士が友達であることを示す接続タイプを有する。さまざまなノードが互いに対話するとき、ソーシャル・ネットワーキング・システム２０２は、その対話を反映するように、さまざまなノードを接続するエッジを追加する、および／または変更する。
【００４５】
クライアント・デバイス２０４Ａは、ユーザ入力を受信することが可能な、ならびにネットワーク・チャネル２０６を介してデータを送信および／または受信することが可能なコンピューティング・デバイスである。一実施形態において、クライアント・デバイス２０４Ａは、デスクトップ・コンピュータまたはラップトップ・コンピュータなどの従来のコンピュータ・システムである。別の実施形態において、クライアント・デバイス２０４Ａは、携帯情報端末（ＰＤＡ）、モバイル電話、タブレット、スマート・フォン、または同様のデバイスなどの、コンピュータ機能を有するデバイスであってよい。さらに別の実施形態において、クライアント・デバイス２０４Ａは、クラウド・コンピューティング・サービス上で稼働する仮想化されたデスクトップであってもよい。クライアント・デバイス２０４Ａは、ネットワーク・チャネル２０６を介して、ソーシャル・ネットワーキング・システム２０２および／または金融アカウント・プロバイダと通信するように構成されている。一実施形態において、クライアント・デバイス２０４Ａは、クライアント・デバイス２０４Ａのユーザがソーシャル・ネットワーキング・システム２０２と対話するのを可能にするアプリケーションを実行する。たとえば、クライアント・デバイス２０４Ａは、ネットワーク・チャネル２０６を介したクライアント・デバイス２０４Ａとソーシャル・ネットワーキング・システム２０２との間の対話を可能とするために、ブラウザ・アプリケーションを実行する。別の実施形態において、クライアント・デバイス２０４Ａは、ＩＯＳ（登録商標）またはＡＮＤＲＯＩＤ（登録商標）などの、クライアント・デバイス２０４Ａのネイティブ・オペレーティング・システム上で稼働するアプリケーション・プログラミング・インタフェース（ＡＰＩ）を通して、ソーシャル・ネットワーキング・システム２０２と対話する。
【００４６】
クライアント・デバイス２０４Ａは、ネットワーク・チャネル２０６を介して通信するように構成されており、ネットワーク・チャネル２０６は、有線および無線の両方の通信システムを使用する、ローカル・エリア・ネットワークおよび／またはワイド・エリア・ネットワークの任意の組合せを含むことができる。一実施形態において、ネットワーク・チャネル２０６は、標準の通信技術および／または通信プロトコルを使用する。したがって、ネットワーク・チャネル２０６は、イーサネット（登録商標）、８０２．１１、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス（ＷｉＭＡＸ）、３Ｇ、４Ｇ、ＣＤＭＡ、デジタル・サブスクライバ・ライン（ＤＳＬ）、その他などの技術を使用するリンクを含むことができる。同様に、ネットワーク・チャネル２０６上で使用されるネットワーキング・プロトコルは、マルチプロトコル・ラベル・スイッチング（ＭＰＬＳ）、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）、ユーザ・データグラム・プロトコル（ＵＤＰ）、ハイパーテキスト・トランスポート・プロトコル（ＨＴＴＰ）、シンプル・メール転送プロトコル（ＳＭＴＰ）、およびファイル転送プロトコル（ＦＴＰ）を含むことができる。ネットワーク・チャネル２０６上で交換されるデータは、ハイパーテキスト・マークアップ言語（ＨＴＭＬ）または拡張可能なマークアップ言語（ＸＭＬ）を含む技術および／またはフォーマットを使用して表されてよい。加えて、リンクのすべて、またはいくつかは、セキュア・ソケット・レイヤ（ＳＳＬ）、トランスポート・レイヤ・セキュリティ（ＴＬＳ）、およびインターネット・プロトコル・セキュリティ（ＩＰＳｅｃ）などの従来の暗号化技術を使用して暗号化されてもよい。
【００４７】
図２によって示されるソーシャル・ネットワーキング・システム２０２は、プロフィール・ストア２１０と、コンテンツ・ストア２１２と、アクション・ロガー２１４と、アクション・ログ２１６と、エッジ・ストア２１８と、金融アカウント・ストア２２０と、フレキシブルなセンテンス管理システム２２２と、ウェブ・サーバ２２４と、メッセージ・サーバ２２６と、ＡＰＩ要求サーバ２２８とを含む。他の実施形態において、ソーシャル・ネットワーキング・システム２０２は、さまざまなアプリケーションのための、追加の、より少ない、または異なるモジュールを含むことができる。ネットワーク・インタフェース、セキュリティ・メカニズム、ロードバランサ、フェイルオーバ・サーバ、管理およびネットワーク動作コンソール、その他などの従来のコンポーネントは、システム・アーキテクチャの詳細を曖昧にしないように、示されていない。
【００４８】
ソーシャル・ネットワーキング・システム２０２の各ユーザは、プロフィール・ストア２１０に記憶されたユーザ・プロフィールに関連付けられている。ユーザ・プロフィールは、ユーザによって明示的に共有された、そのユーザについての宣言的情報を含み、ソーシャル・ネットワーキング・システム２０２によって推測されるプロフィール情報もまた含むことができる。一実施形態において、ユーザ・プロフィールは、複数のデータ・フィールドを含み、各データ・フィールドは、ソーシャル・ネットワーキング・システム２０２の対応するユーザの１または複数の属性を記述する。プロフィール・ストア２１０に記憶されたユーザ・プロフィール情報は、職歴、学歴、性別、趣味または好み、ロケーション、その他などの、経歴の、人口統計の、および他のタイプの記述的情報を含んで、ソーシャル・ネットワーキング・システム１００のユーザを記述する。ユーザ・プロフィールはまた、ユーザによって提供される他の情報、たとえば、画像またはビデオを記憶することができる。一定の実施形態において、ユーザの画像が、ある画像に表示されたソーシャル・ネットワーキング・システム２０２のユーザの識別情報にタグ付けされてもよい。プロフィール・ストア２１０におけるユーザ・プロフィールはまた、コンテンツ・ストア２１２におけるコンテンツ・アイテム上で実施され、エッジ・ストア２１８に記憶された、対応するユーザによるアクションへの参照を維持することができる。
【００４９】
下記でさらに説明されるように、ユーザ・プロフィールは、１または複数の金融アカウントに関連付けられて、ユーザ・プロフィールが、金融アカウントから取り出される、または金融アカウントから得られるデータを含むのを可能にすることができる。ユーザは、ユーザ・プロフィールに記憶される１または複数のプライバシー設定を指定することができ、プライバシー設定は、ソーシャル・ネットワーキング・システム２０２がアクセスすることを許可される金融アカウントからの情報を限定する。たとえば、プライバシー設定は、ソーシャル・ネットワーキング・システム２０２を、最新のアカウント残高にではなく、金融アカウントのトランザクション履歴にアクセスすることに限定する。別の例として、プライバシー設定は、ソーシャル・ネットワーキング・システム２０２を、金融アカウントのトランザクション履歴のサブセットに限定して、指定された時間範囲内のトランザクション、閾値トランザクション量未満を伴うトランザクション、指定されたベンダー識別子に関連付けられたトランザクション、指定されたベンダー識別子以外のベンダー識別子に関連付けられたトランザクション、またはソーシャル・ネットワーキング・システム２０２によってアクセス可能である、ユーザによって識別された金融アカウントからの情報を限定する任意の好適な基準に、ソーシャル・ネットワーキング・システム２０２がアクセスするのを可能にする。一実施形態において、金融アカウントからの情報は、プロフィール・ストア２１０に記憶される。他の実施形態において、情報は、金融アカウント・ストア２２０に記憶されてもよい。
【００５０】
コンテンツ・ストア２１２は、画像、ビデオ、またはオーディオ・ファイルなどの、ユーザ・プロフィールに関連付けられたコンテンツ・アイテムを記憶する。コンテンツ・ス
トア２１２からのコンテンツ・アイテムは、ユーザ・プロフィールが閲覧されるとき、またはユーザ・プロフィールに関連付けられた他のコンテンツが閲覧されるときに表示されてよい。たとえば、表示されたコンテンツ・アイテムは、ユーザ・プロフィールに関連付けられた画像もしくはビデオを見せる、またはユーザのステータスを記述するテキストを見せることができる。追加として、他のコンテンツ・アイテムは、ユーザが、自分の接続を他のユーザに拡大するように、新しいユーザをシステムに招待するように、または、ソーシャル・ネットワーキング・システム２０２のユーザ、オブジェクト、アクティビティ、または機能に関係したコンテンツを表示することによってソーシャル・ネットワーク・システムとの対話を増加させるように奨励することによって、ユーザ関与を促進することができる。ソーシャル・ネットワーキング・コンテンツ・アイテムの例は、提案された接続または他のアクションを実施するための提案、ソーシャル・ネットワーキング・システム２０２に提供される、またはソーシャル・ネットワーキング・システム２０２によって維持されるメディア（たとえば、写真またはビデオ）、ユーザによってソーシャル・ネットワーキング・システムに投稿されたステータス・メッセージまたはリンク、イベント、グループ、ページ（たとえば、団体または商用エンティティを表す）、および、ソーシャル・ネットワーキング・システムによって提供される、またはソーシャル・ネットワーキング・システムを介してアクセス可能な任意の他のコンテンツを含む。
【００５１】
コンテンツ・ストア２１２はまた、プロフィール・ストア２１０にユーザ・プロフィールを有するエンティティに関連付けられた１または複数のページを含む。エンティティは、企業、ベンダー、組織、または大学などの、ソーシャル・ネットワーキング・システム２０２の非個人ユーザである。ページは、エンティティに関連付けられたコンテンツと、コンテンツをソーシャル・ネットワーキング・システム・ユーザに提示するための命令とを含む。たとえば、ページは、エンティティのユーザ・プロフィールに関連付けられたコンテンツ、ならびにブランド・ページを閲覧するユーザにどのようにコンテンツを提示するかを記述する情報を識別する。ベンダーが、コンテンツ・ストア２１２におけるページに関連付けられて、ソーシャル・ネットワーキング・システム・ユーザが、ソーシャル・ネットワーキング・システム２０２を介してベンダーとより簡単に対話するのを可能にすることができる。ベンダー識別子は、ベンダーのページに関連付けられて、ソーシャル・ネットワーキング・システム２０２が、ベンダーを識別する、および／または、プロフィール・ストア２１０、アクション・ログ２１６から、もしくはベンダー識別子を使用する任意の他の好適なソースから、ベンダーについての追加の情報を取り出すのを可能にする。いくつかの実施形態において、コンテンツ・ストア２１２はまた、記憶されたオブジェクトに関連付けられた１または複数のターゲティング基準を記憶し、そのオブジェクトが提示される資格があるユーザの１または複数の特性を識別することができる。
【００５２】
アクション・ロガー２１４は、ソーシャル・ネットワーキング・システム２０２をオンおよび／またはオフにするユーザ・アクションについての通信を受信して、ユーザ・アクションについての情報でアクション・ログ２１６をポピュレートする。そのようなアクションは、たとえば、別のユーザへの接続を追加すること、別のユーザにメッセージを送ること、画像をアップロードすること、別のユーザからのメッセージを読むこと、別のユーザに関連付けられたコンテンツを閲覧すること、別のユーザによって投稿されたイベントに出席することを、とりわけ含むことができる。いくつかの実施形態において、アクション・ロガー２１４は、１または複数のプライバシー設定を条件として、ユーザに関連付けられた金融アカウントからのトランザクション情報を受信し、トランザクション情報からユーザ・アクションを識別する。たとえば、アクション・ロガー２１４は、金融アカウントのトランザクション履歴からベンダー識別子を取り出し、ベンダー識別子に関連付けられた、ソーシャル・ネットワーキング・システムにおけるページなどのオブジェクトを識別する。これは、コンテンツ・ストア２１２におけるページ、または別のオブジェクトに関連付けられた製品またはサービスのユーザの購入を、アクション・ロガー２１４が識別
するのを可能にする。加えて、他のオブジェクトに関連して記述されるいくつかのアクションは、特定のユーザに向けられており、そのため、これらのアクションは、それらのユーザにも同様に関連付けられている。これらのアクションは、アクション・ログ２１６に記憶される。
【００５３】
さまざまな実施形態に従って、アクション・ロガー２１４は、ソーシャル・ネットワーキング・システム２００をオンおよび／またはオフにするユーザ・アクションについて、ウェブ・サーバ２２４からの通信を受信することが可能である。アクション・ロガー２１４は、ユーザ・アクションを追跡するために、ユーザ・アクションについての情報でアクション・ログ２１６をポピュレートする。この情報は、ユーザに関連付けられたプライバシー設定を条件とすることができる。特定のユーザが別のユーザに対して取る任意のアクションは、アクション・ログ２１６などのデータベース、または他のデータ・リポジトリに維持される情報を通して、各ユーザのプロフィールに関連付けられる。そのようなアクションは、たとえば、他のユーザへの接続を追加すること、他のユーザにメッセージを送ること、他のユーザからのメッセージを読むこと、他のユーザに関連付けられたコンテンツを閲覧すること、別のユーザによって投稿されたイベントに出席すること、フォトの中で別のユーザにタグ付けされること、エンティティに対して「いいね」を表明すること、その他を含むことができる。
【００５４】
アクション・ログ２１６は、ソーシャル・ネットワーキング・システム２０２上だけでなく、ソーシャル・ネットワーキング・システム２０２に情報を通信する外部ウェブサイト上のユーザ・アクションを追跡するために、ソーシャル・ネットワーキング・システム２０２によって使用されてよい。ユーザは、投稿にコメントすること、リンクを共有すること、およびモバイル・デバイスを介して物理的なロケーションにチェック・インすること、コンテンツ・アイテムに順番にアクセスすること、または他の対話を含む、ソーシャル・ネットワーキング・システム２０２上のさまざまなオブジェクトと対話することができる。これらのアクションを記述する情報は、アクション・ログ２１６に記憶される。アクション・ログ２１６に含まれるソーシャル・ネットワーキング・システム２０２上のオブジェクトとの対話の追加の例は、フォト・アルバムにコメントすること、ユーザ間での通信、ミュージシャンのファンになること、カレンダーにイベントを追加すること、グループに加入すること、ブランド・ページのファンになること、イベントを作成すること、アプリケーションを認可すること、アプリケーションを使用すること、およびトランザクションに関与することを含む。追加として、アクション・ログ２１６は、ソーシャル・ネットワーキング・システム２０２上の広告とのユーザの対話、ならびにソーシャル・ネットワーキング・システム２０２上で動作するアプリケーションとのユーザの対話を記録する。いくつかの実施形態において、アクション・ログ２１６からのデータは、ユーザの関心または好みを推測するために使用されて、ユーザ・プロフィールに含まれる関心を増やし、ユーザの好みのより完全な理解を可能にする。
【００５５】
さらに、ソーシャル・ネットワーキング・システム２００上の特定のコンテンツにアクセスするのをユーザが見せられたとき、または見られたときなどの、特定のコンテキストにおいて起きたユーザ・アクションが、特定のコンテキストと共にキャプチャされ、ログされる。たとえば、特定のユーザは、その特定のユーザが固定された時間の期間の間にソーシャル・ネットワーキング・システム２００にアクセスした度に、候補ユーザに関する情報を見せられる／見せられないことが可能である。この時間の期間の間にユーザによって取られたいかなるアクションも、コンテキスト情報（すなわち、候補ユーザが特定のユーザに提供された／提供されなかった）と共にログされ、アクション・ログ２１６に記録される。加えて、他のオブジェクトに関連して下記で説明されるいくつかのアクションは、特定のユーザに向けられており、そのため、これらのアクションは、それらのユーザにも同様に関連付けられている。
【００５６】
アクション・ログ２１６はまた、外部ウェブサイトに対して取られた、および／またはユーザに関連付けられた金融アカウントから決定された、ユーザ・アクションを記憶することができる。たとえば、スポーツ用具を特価で主に販売するｅ−コマース・ウェブサイトは、ｅ−コマース・ウェブサイトがソーシャル・ネットワーキング・システム２０２のユーザを識別することを可能とするソーシャル・プラグインを通して、ソーシャル・ネットワーキング・システム２０２のユーザを認めることができる。ソーシャル・ネットワーキング・システム２０２のユーザは一意に識別可能なので、このスポーツ用具小売店などのｅ−コマース・ウェブサイトは、ユーザが小売店のウェブサイトを訪問するとき、これらのユーザについての情報を使用することができる。アクション・ログ２１６は、ウェブページ閲覧履歴、関与された広告、行われた購入、ならびにショッピングおよび買い付けからの他のパターンを含む、これらのユーザについてのデータを記録する。ユーザに関連付けられた金融アカウントのトランザクション履歴からアクション・ロガー２１４によって識別されたアクションは、アクション・ログ２１６が、追加のタイプのユーザ・アクションについてのさらなる情報を記録するのを可能にする。
【００５７】
一実施形態において、エッジ・ストア２１８は、ソーシャル・ネットワーキング・システム２０２上のユーザと他のオブジェクトとの間の接続を記述する情報を、エッジ・オブジェクトに記憶する。エッジ・ストア２１８は、図１のソーシャル・グラフ１０８などの、上記で説明されたソーシャル・グラフを記憶することができる。いくつかのエッジは、ユーザによって定義されて、ユーザが他のユーザとの自分の関係を指定するのを可能にすることができる。たとえば、ユーザは、友達、同僚、パートナー、その他などの、ユーザの実生活関係と並行した他のユーザとのエッジを生成することができる。他のエッジは、ソーシャル・ネットワーキング・システム上のページに関心を表現する、ソーシャル・ネットワーキング・システムの他のユーザとリンクを共有する、およびソーシャル・ネットワーキング・システムの他のユーザによって行われた投稿にコメントするなどの、ユーザがソーシャル・ネットワーキング・システム２０２におけるオブジェクトと対話するときに生成される。エッジ・ストア２１８は、オブジェクト、関心、および他のユーザに対する親近度スコアなどの、エッジについての情報を含むエッジ・オブジェクトを記憶する。ユーザによって実施されたアクションに基づいて、ソーシャル・ネットワーキング・システム２０２におけるオブジェクト、関心、および他のユーザに対するユーザの親近度を概算するために、親近度スコアは、ソーシャル・ネットワーキング・システム２０２によって経時的に演算されてよい。一実施形態において、ユーザと個別のターゲットとの間の同じタイプの複数の対話が、エッジ・ストア２１８における１つのエッジ・オブジェクトに記憶されてよい。いくつかの実施形態において、ユーザ間の接続は、プロフィール・ストア２１０に記憶されてもよく、またはプロフィール・ストア２１０が、ユーザ間の接続を決定するために、エッジ・ストア２１８にアクセスしてもよい。ユーザは、あらかじめ定義されたタイプの接続から選択する、または、必要に応じてユーザ独自の接続タイプを定義することができる。
【００５８】
ウェブ・サーバ２２４は、ネットワークを介して、ソーシャル・ネットワーキング・システム２００を１または複数のクライアント・デバイスにリンクし、ウェブ・サーバ２２４は、ウェブページ、ならびにＪａｖａ（登録商標）、Ｆｌａｓｈ、ＸＭＬ、その他などの他のウェブ関係コンテンツをサービスする。ウェブ・サーバ２２４は、メッセージ・サーバ２２６と通信することができ、メッセージ・サーバ２２６は、ソーシャル・ネットワーキング・システム２００とクライアント・デバイスとの間で、メッセージを受信し、ルーティングする機能を提供する。メッセージ・サーバ２２６によって処理されるメッセージは、インスタント・メッセージ、キューに入ったメッセージ（たとえば、電子メール）、テキスト・メッセージおよびＳＭＳ（ショート・メッセージ・サービス）メッセージ、または任意の他の好適なメッセージング技法であってよい。いくつかの実施形態において
、ユーザによって別のユーザに送られたメッセージが、たとえば、メッセージを受信するユーザの接続によって、ソーシャル・ネットワーキング・システム２００のその他のユーザらによって閲覧され得る。メッセージの受信者の他に、ソーシャル・ネットワーキング・システムのその他のユーザらによって閲覧され得るメッセージのタイプの一例が、ウォール投稿である。いくつかの実施形態において、ユーザは、ある別のユーザによってのみ取り出されることができるプライベート・メッセージを、その別のユーザに送ることができる。
【００５９】
ＡＰＩ要求サーバ２２８は、外部システムが、ＡＰＩを呼び出すことによって、ソーシャル・ネットワーキング・システム２００からの情報にアクセスするのを可能にする。ソーシャル・ネットワークによって提供される情報は、ユーザ・プロフィール情報、またはユーザの個々のプライバシー設定によって決定されるようなユーザの接続情報を含むことができる。たとえば、ユーザがソーシャル・ネットワーキング・システム内で接続を形成する確率を予想することに関心のあるシステムが、ネットワークを介して、ソーシャル・ネットワーキング・システム２００にＡＰＩ要求を送ることができる。ＡＰＩ要求は、ＡＰＩ要求サーバ２２８によって、ソーシャル・ネットワーキング・システム２００で受信される。ＡＰＩ要求サーバ２２８は、適切な応答を決定することによって要求を処理し、応答は次いで、ネットワークを介して要求するシステムに通信し戻される。
【００６０】
ソーシャル・ネットワーキング・システム２０２はまた、フレキシブルなセンテンス管理システム２２２を含む。フレキシブルなセンテンス管理システム２２２は、図１のフレキシブルなセンテンス管理システム１５０であってよい。ソーシャル・ネットワーキング・システム２０２上で稼働するアプリケーションのために、フレキシブルなセンテンスを開発し、フレキシブルなセンテンスをレンダリングするために、フレキシブルなセンテンス管理システム２２２は、ソーシャル・ネットワーキング・システム２０２のストアおよびモジュールにアクセスすることができる。フレキシブルなセンテンスが開発されると、フレキシブルなセンテンス管理システム２２２はまた、ソーシャル・ネットワーキング・システム２０２の他のモジュールおよびストアと連携して、フレキシブルなセンテンス構成に基づいて、レンダリングされたフレキシブルなセンテンスを、クライアント・デバイス２０４Ａに表示することができる。
【００６１】
図３は、図１のソーシャル・ネットワーキング・システム１００、または図２のソーシャル・ネットワーキング・システム２００などの、ソーシャル・ネットワーキング・システム３００において、個別のフレキシブルなセンテンスを生成するためのトークンを使用するブロック図を示す。一組のフレキシブルなセンテンス構文が、開発者インタフェース上で構成され、次いでソーシャル・ネットワーキング・システムのソーシャル・グラフ・データからレンダリングされてよい。
【００６２】
ソーシャル・ネットワーキング・システム３００は、図２のユーザ・デバイス２０４などのユーザ・デバイスと対話するためのグラフＡＰＩサーバ２２８などのグラフＡＰＩサーバを含む。グラフＡＰＩサーバは、ソーシャル・ネットワーキング・システム３００におけるユーザ・プロフィールおよびアクティビティの記録を促進することができる。いくつかの実施形態において、ユーザ・プロフィールはプロフィール・ストア２１０に、アクティビティはアクション・ログ２１６に、それぞれ記憶されてよい。ユーザ・プロフィールは、限定はされないが、特定のユーザの名前またはユーザ識別子（ＵＩＤ）、プロフィール写真、性別、誕生日、ネットワーク、友達リスト、ロケーション、言語、国、「いいね」、お気に入りのブランド、ニュース、アウトレット、レストラン、特定のユーザが全員と共有するために選ぶ任意の情報、またはそれらの任意の組合せを含むことができる。
【００６３】
開発者によって開発されたアプリケーションは、ソーシャル・ネットワーキング・シス
テム３００と対話するために、ソーシャル・ネットワーキング・システム３００に記憶されたソーシャル・グラフを利用することができる。たとえば、アプリケーションは、グラフＡＰＩサーバを通して、図２のエッジ・ストア２１８にアクセスすることができる。図３は、アプリケーションを通してソーシャル・グラフからの情報を表現するために、アプリケーションを構成する際の個別の開発者インタフェースを示す。
【００６４】
ソーシャル・ネットワーキング・システム３００は、図２のクライアント・デバイス２０４などのデバイス上でインスタンス化される、図１の開発者インタフェース・モジュール１５４によって生成された開発者インタフェースなどの開発者プラットフォーム３１０を生成することができる。開発者プラットフォーム３１０は、図１のソーシャル・ネットワーキング・アプリケーション１５２のための図１のフレキシブルなセンテンス構文１５６などの、アプリケーションのためのフレキシブルなセンテンス構文を、開発者が構成するのを可能にする。フレキシブルなセンテンス構文は、ソーシャル・ネットワーキング・システム３００上のユーザ・アカウントによって実施されるアクションを解釈し、それらのアクションを意味のあるやり方で表現するために、アプリケーションによって使用される。解釈されたアクションは、グラフＡＰＩサーバを通してアクション・ログ２１６から、またはエッジ・ストアからアクセスされてよい。開発者プラットフォーム３１０は、ソーシャル・ネットワーキング・システム３００と、直接、またはグラフＡＰＩサーバを通して間接的に通信することができる。
【００６５】
いくつかの実施形態において、開発者プラットフォーム３１０は、ソーシャル・ネットワーキング・システム３００におけるフレキシブルなセンテンスを開発者が生成するために、複数のオプションを提供する。開発者は、個別のフレキシブルなセンテンスの「アクタ」、「エッジ」、および「ターゲット」を入力することによって、始めることができる。たとえば、開発者は、「アクタ」、「エッジ」、および「ターゲット」を、それらの対応するテキスト・ボックスの中にタイプすることによって、定義することができる。いくつかの実施形態において、「アクタ」テキスト・ボックスには、開発者のアプリケーションを使用するユーザの名前があらかじめ書き入れられている。特定のユーザが、それを他の名前に変更する、または他の友達を追加することができる。
【００６６】
開発者プラットフォーム３１０上では、１つもしくは複数のエッジ・トークン３２１〜３２９（すなわち、エッジについての変数）、および／または、１つもしくは複数のターゲット・トークン３３１〜３３９（すなわち、ターゲットについての変数）を開発者が選ぶために、オプションが提供される。１または複数のエッジ・トークン３２１〜３２９は、個別のフレキシブルなセンテンスにおける「エッジ」の性質表現を定義するために使用され得る。開発者は、個別のセンテンスの「エッジ」をさらに定義するために、エッジ・トークン３２１〜３２９を選ぶことができる。エッジ・トークン３２１〜３２９は、数多くのやり方で開発者に提示されてよい。たとえば、エッジ・トークン３２１〜３２９は、チェック・ボックス・リスト、ドロップ・ダウン・メニュー、選択リスト、ボタンのリスト、複数層メニュー・レベル、またはそれらの任意の組合せで提供され得る。別の例では、開発者が、「エッジ」の前に開き中括弧（「｛」）などのあらかじめ定義された文字をタイプするとき、「エッジ」に関連付けられた性質表現を開発者が選択するために、ドロップ・ダウン・ボックスが表示されてもよい。
【００６７】
１または複数のターゲット・トークン３３１〜３３９は、個別のフレキシブルなセンテンスにおける「ターゲット」の性質表現を定義するために使用され得る。開発者は、個別のフレキシブルなセンテンスの「ターゲット」をさらに定義するために、ターゲット・トークン３３１〜３３９を選ぶことができる。ターゲット・トークン３３１〜３３９は、チェック・ボックス・リスト、ドロップ・ダウン・メニュー、選択リスト、ボタンのリスト、複数層メニュー・レベル、またはそれらの任意の組合せなどのオプションを介して、開
発者に提示され得る。
【００６８】
いくつかのエッジ・トークンおよびターゲット・トークンは、ソーシャル・ネットワーキング・システム３００におけるユーザによって、他のトークンよりも頻繁に使用されることがある。いくつかの実施形態において、エッジ・トークンおよびターゲット・トークンは、ユーザおよび／または開発者による使用頻度の異なるレベルを有するトークンを区別するために、色分けされてもよい。
【００６９】
いくつかの実施形態において、開発者が選択したエッジおよび／またはターゲットに基づいて、開発者プラットフォーム３１０は、開発者が選択するための複数のセンテンスを自動的に生成することができる。各センテンスは、その対応する通用範囲のパーセンテージと共に提示されてよい。個別のセンテンスの通用範囲のパーセンテージは、所与の時間フレームにわたって、個別のセンテンスがソーシャル・ネットワーキング・システム３００におけるユーザによって閲覧されているインプレッションによって決定される。インプレッションは、限定はされないが、インプレッション総数（すなわち、受信されたインプレッションの数）、照会総数（ｒｅｆｅｒｒａｌ）（すなわち、すべてのチャネルにわたるクリック総数）、フィード・インプレッション（すなわち、ユーザのニュースフィードにおいて閲覧されたインプレッションの数）、フィード照会（すなわち、ユーザのニュースフィードにおいて閲覧されたクリックの数）、ティッカー・インプレッション（すなわち、ユーザのティッカーにおいて閲覧されたインプレッションの数）、ティッカー照会（すなわち、ユーザのティッカーにおいて閲覧されたクリックの数）、その他を含むことができる。
【００７０】
いくつかの実施形態において、個別のセンテンスのパーセンテージ通用範囲はまた、個別のセンテンスの割合に依存することができる。個別のセンテンスの割合は、「いいね」を表明する、コメントする、および「いいね」を取り消す、その他などの、ソーシャル・ネットワーキング・システム３００におけるユーザからのフィードバックに基づいて決定されることが可能である。
【００７１】
複数のセンテンスは、その対応する通用範囲のパーセンテージに基づいて、優先順位を付けられることが可能である。最も高い通用範囲のパーセンテージを有するセンテンスが、最も上位にリストにされ得る。いくつかの実施形態において、通用範囲のパーセンテージは、色分けされてもよい。個別の色が、通用範囲のパーセンテージの特定のレベルに指示される。
【００７２】
いくつかの実施形態において、エッジが定義されるとき、ネットワークＩ／Ｏ遅延を最小限にするために、所定の閾値を上回るその対応するパーセンテージ通用範囲を有する関係のあるセンテンスが、開発者デバイス上にプリ・フェッチされることが可能である。
【００７３】
いくつかの実施形態において、開発者は、アクティビティの要約をアグリゲーションにおいて一度に公開するために、ソーシャル・ネットワーキング・システム３０上で稼働するアプリケーションを構成することができる。開発者プラットフォーム３１０は、開発者に、選択するための異なるアグリゲーション・タイプを提供することができる。アグリゲーション・タイプは、限定はされないが、ギャラリー・タイプ、テーブル、リスト、マップ、またはそれらの任意の組合せを含むことができる。たとえば、エッジが「料理する」である場合、アグリゲーションは、特定のユーザが最近料理したすべてのものをリストにすることができる。
【００７４】
いくつかの実施形態において、エッジおよびターゲットが選択されるとき、開発者プラットフォーム３１０は、開発者に、選択するための複数のアグリゲーションを提供するこ
とができる。たとえば、個別のセンテンスのエッジおよびターゲットが、「歌を聴く」である場合、アグリゲーションは、特定のユーザのお気に入りのアルバム、お気に入りのプレイリスト、および／またはお気に入りのアーティストを含むことができる。開発者は、アグリゲーションをカスタマイズし、ソーシャル・ネットワーキング・システム３００における他のユーザによってアグリゲーションがどのように知覚され得るかを視覚化するために、カスタマイズされたアグリゲーションをプレビューすることができる。たとえば、開発者は、お気に入りアルバムをギャラリー・タイプの中にアグリゲートするように、ソーシャル・ネットワーキング・システム１００上で稼働するアプリケーションを構成することができる。
【００７５】
図４Ａは、図３の開発者プラットフォーム３１０などの開発者プラットフォーム４００上で、個別のフレキシブルなセンテンスの動詞時制を構成するためのオプションの例を示す。開発者は、複数のエッジ構成４１０から選択することによって、個別のフレキシブルなセンテンスを構成することができる。エッジ構成４１０は、限定はされないが、１対１（たとえば、「ジョン（Ｊｏｈｎ）は、ソーシャル・ハイキングで、ｈｉｋｅ．ｔｉｔｌｅをハイキングした」）、ターゲット・タイトルなしの１対１（たとえば、「ジョンは、ソーシャル・ハイキングで、ハイキングをハイキングした」）、１対２（たとえば、「ジョンは、ソーシャル・ハイキングで、ｈｉｋｅ１．ｔｉｔｌｅおよびｈｉｋｅ２．ｔｉｔｌｅをハイキングした」）、１対多（たとえば、「ジョンは、ソーシャル・ハイキングで、ｈｉｋｅ１．ｔｉｔｌｅと５つの他のハイキングをハイキングした」）、ターゲット・タイトルなしの１対２／多（たとえば、「ジョンは、ソーシャル・ハイキングで、５つのハイキングをハイキングした」）、２対１（たとえば、「ジョンとメアリーは、ソーシャル・ハイキングで、ｈｉｋｅ．ｔｉｔｌｅをハイキングした」）、および多対１（たとえば、「ジョンと他３人は、ソーシャル・ハイキングで、ｈｉｋｅ．ｔｉｔｌｅをハイキングした」）を含むことができる。各エッジ構成４１０は、図１のフレキシブルなセンテンス構文１５６などのフレキシブルなセンテンス構文として記憶されてよい。
【００７６】
開発者が個別のフレキシブルなセンテンスを公開するとき、公開された個別のセンテンスは、ニュースフィードの中だけではなく、ソーシャル・ネットワーキング・システム３００における特定のユーザの友達のユーザ・デバイス１１５上でティッカーの中にもまた現れることができる。いくつかの実施形態において、開発者は、異なる「エッジ構成」を有するセンテンスをプレビューすることができる。たとえば、開発者プラットフォーム３１０は、ニュースフィードおよびティッカーの中に個別のフレキシブルなセンテンスを開発者が表示するために、プレビュー・ボックスを提供することができる。通常、ティッカーが有する空間は、ニュースフィードが有するよりも少ない。プレビューに基づいて、開発者は、同じ情報をティッカーの中で伝えるように、センテンスを短くしなければならないことがある。
【００７７】
いくつかの実施形態において、プレビュー・ボックスは、異なるプラットフォーム上のユーザによって個別のセンテンスおよび／またはニュースフィード・ストーリがどのように知覚され得るかを開発者が視覚化するのに役立てるために、これらのプラットフォーム上の個別のフレキシブルなセンテンスまたはニュースフィード・ストーリの表示をシミュレートすることができる。
【００７８】
図４Ｂ〜図４Ｃは、開発者プラットフォーム４００上で個別のフレキシブルなセンテンスの時制を編集するためのオプションの例を示す。図４Ｂに示されるように、個別のフレキシブルなセンテンスを編集するとき、開発者は、エッジおよびターゲットの性質表現を選ぶためのトークンを使用することができる。たとえば、特定の使用は、エッジ「ハイキングする」の複数の性質表現４３０を含むドロップ・ダウン・ボックスを持ってくるために、開き中括弧（「｛」）４２０などのあらかじめ定義された文字、プラス「ｈｉｋｅ」
を使用することができる。開発者は、個別のフレキシブルなセンテンスのエッジ「ハイキングする」に関連付けられた１または複数の性質表現を選ぶことができる。たとえば、性質表現は、ハイキング．タイトル（ｈｉｋｅ．ｔｉｔｌｅ）、ハイキング．オーディオ（ｈｉｋｅ．ａｕｄｉｏ）、ハイキング．説明（ｈｉｋｅ．ｄｅｓｃｒｉｐｔｉｏｎ）、ハイキング．決定者（ｈｉｋｅ．ｄｅｔｅｒｍｉｎｅｒ）、ハイカー．画像（ｈｉｋｅｒ．ｉｍａｇｅ）、ハイキング．規則（ｈｉｋｅ．ｒｅｓｔｒｉｃｔｉｏｎｓ）、ハイキング．同様に参照（ｈｉｋｅ．ｓｅｅ＿ａｌｓｏ）、ハイキング．サイト名（ｈｉｋｅ．ｓｉｔｅ＿ｎａｍｅ）、その他などの、エッジ「ハイキングする」に関連付けられたエッジ・トークンを含むことができる。ドロップ・ダウン・ボックスにおけるエッジ・トークンの各々が、選択され、編集され得る。たとえば、開発者は、ハイキング．画像を選択し、エッジ「ハイキングする」に関連した１または複数の画像と共にそれを編集することができる。
【００７９】
いくつかの実施形態において、開発者は、個別のフレキシブルなセンテンスのエッジおよびターゲットをカスタマイズするために、追加の性質表現を追加することができる。たとえば、開発者は、「ハイキングする」エッジについてカスタマイズされた性質として、ハイキング．現地（ｈｉｋｅ．ｌｏｃａｌｅ）（たとえば、エッジ「ハイキングする」に関する場所）を追加することができる。別の例では、エッジおよびターゲットが「映画を見る」である場合、開発者は、映画の監督、映画における俳優／女優、映画を封切るスタジオ、映画の特定のサブジェクトまたはジャンル、その他などの性質表現を追加することによって、ターゲット「映画」をカスタマイズすることができる。
【００８０】
いくつかの実施形態において、開発者は、個別のフレキシブルなセンテンスにおいて、特定のユーザが、他のユーザをタグ付けすることを可能とすることができる。他のユーザをタグ付けすることによって、個別のフレキシブルなセンテンスは、タグ付けされたユーザのタイムラインにおいて公開されるだけでなく、タグ付けされたユーザの友達のティッカーおよびニュースフィードにおいてもまた、公開されることが可能である。
【００８１】
たとえば、エッジおよびターゲットが「レシピを料理する」である場合、開発者は、追加のターゲット「材料」を追加することができる。ターゲット「材料」は、画像、ジオポイント、日付、時間、いろいろな材料、ブーリアンおよび／または整数、その他などの、さまざまな異なるタイプであってもよい。レシピがエッグ・ロールである場合、特定の使用は、典型的なエッグ・ロール・レシピのお気に入りの材料（たとえば、エッグ、豚ひき肉、および青タマネギ）を追加することができる。開発者はまた、「誕生日」などの、新しいターゲット・タイプ「行事」を追加することができる。行事は、「料理する」エッジの性質である。開発者はまた、「料理する」エッジの別の性質、「場所」（たとえば、「ジョンの家」）を追加することができる。他のユーザ（たとえば、ジムおよびジェーン）をタグ付けすることによって、個別のセンテンスは、あたかもジムおよびジェーンもまたそのエッジによって表されたアクションを行ったかのように、彼らの友達のティッカーおよびニュースフィードにおいて、公開されることが可能である。開発者は、ターゲット性質表現、たとえば「おいしい」を、個別のセンテンスにさらに追加することができる。ニュースフィードにおいて公開された個別のセンテンスは、「ジョンは、誕生日用に、エッグ、青タマネギ、および豚ひき肉で作られたおいしいエッグ・ロールのレシピを、ジョンの家でジムとジェーンと料理した」のように見えてよい。
【００８２】
いくつかの実施形態において、個別のセンテンスにおけるエッジ（すなわち、動詞）の時制は、動詞を囲むグレー・ボックス上をクリックすることによって、編集され得る。いくつかの実施形態において、プラットフォーム３０１は、個別のセンテンスの時制を開発者が編集するためのダイアログ・ボックスを提供する。開発者は、ダイアログ・ボックスにおいて動詞それ自体を変化させる（たとえば、「ハイキングした」から、「歩いた」へ
と）ことができる。変化は、そのタイプのすべてのストーリにおいて変化させた動詞をもたらす。
【００８３】
個別のセンテンスにおける動詞の時制は、過去時制、複数過去時制、現在時制、複数現在時制、継続時制、完了時制、完了継続時制、および命令時制などを含むことができる。開発者は、個別のフレキシブルなセンテンスのエッジについて、１または複数の時制を選ぶことができる。たとえば、図４Ｃに示されるように、開発者は、エッジ「ハイキングする」によるストーリを示すために、過去時制および現在時制の両方４４０を選ぶことができる。いくつかの実施形態において、開発者の選択がない場合、エッジの名前は、デフォルトによって過去時制で表示されてよい。
【００８４】
図４Ｄは、開発者プラットフォーム４００上で個別のフレキシブルなセンテンスの属性を選択するためのオプションの例を示す。いくつかの実施形態において、開発者のアプリケーションがどのようにストーリに帰されるかを開発者がカスタマイズするために、属性トークン４６０が提供され得る。属性トークン４６０は、チェック・ボックス・リスト、ドロップ・ダウン・メニュー、選択リスト、ボタンのリスト、複数層メニュー・レベル、またはそれらの任意の組合せなどのオプションにより選択され得る。図４Ｄに示されるように、開発者は、個別のフレキシブルなセンテンスを編集するときに、個別の属性「ソーシャル・ハイキングで」４６３を選択することができる。
【００８５】
実施形態が、開発者プラットフォーム３１０のコンテキストにおいて説明されてきたが、さまざまな実施形態は、モバイル・ウェブ、ｉＯＳ（登録商標）、Ａｎｄｒｏｉｄ（登録商標）、デスクトップ・ウェブ、および／または、Ｗｉｎｄｏｗｓ（登録商標）ＯＳ、Ｌｉｎｕｘ（登録商標）、もしくはＵｎｉｘ（登録商標）上に存在するアプリケーションから、個別のフレキシブルなセンテンスを生成し、公開することができる。
【００８６】
図５は、図１のソーシャル・ネットワーキング・システム１００、または図２のソーシャル・ネットワーキング・システム２０２などのソーシャル・ネットワーキング・システムにおいて、個別のフレキシブルなセンテンスを生成するために使用されてよい一組の動作５００を示す流れ図を示す。ステップ５２０で、ソーシャル・ネットワーキング・システムは、開発者デバイス上で個別のフレキシブルなセンテンス構文を開発者が定義するための開発者インタフェースを提供する。
【００８７】
ステップ５３０で、個別のフレキシブルなセンテンス構文の個別のエッジの性質表現を開発者が選ぶために、１または複数のエッジ・トークンが生成され得る。ステップ５４０で、個別のフレキシブルなセンテンス構文の個別のターゲットの性質表現を開発者が選ぶために、１または複数のターゲット・トークンが生成され得る。ステップ５５０で、個別のフレキシブルなセンテンス構文における個別のエッジの時制を開発者が定義するために、時制トークンが生成されてよい。
【００８８】
ステップ５６０で、個別のエッジ、個別のターゲット、および個別のエッジの定義された時制に基づいて、個別のフレキシブルなセンテンス構文を開発者が決定するために、複数の関係のあるセンテンス構文が生成され得る。複数の関係のあるセンテンス構文は、その対応する通用範囲のパーセンテージにより、優先順位を付けられることが可能である。
【００８９】
いくつかの実施形態において、開発者は、アクティビティの要約を生成して、アグリゲーションにおいて一度に公開することができる。異なるアグリゲーション・タイプが、開発者が選択するために提供されてよい。いくつかの実施形態において、開発者が選択するために、複数のアグリゲーションが自動的に提供され得る。
【００９０】
ステップ５７０で、個別のフレキシブルなセンテンス構文を開発者がプレビューし、公開するために、プレビュー・オプションが提供され得る。いくつかの実施形態において、個別のフレキシブルなセンテンス構文が、異なるタイプのプラットフォームを使用するユーザによってどのように知覚され得るかを開発者が視覚化するために、プレビュー・ボックスが提供され得る。フレキシブルなセンテンス構文のエッジ構成は、ソーシャル・ネットワーキング・システム上で、エッジ構成をフレキシブルなセンテンス構文として記憶することによって、公開されてよい。たとえば、図２のグラフＡＰＩサーバ２２８を通してソーシャル・グラフ・データを解釈することによって、図１のセンテンス・レンディション・モジュール１６０によって、フレキシブルなセンテンス構文のランタイム・レンディションがレンダリングされてよい。センテンスのレンディションは、ソーシャル・ネットワーキング・システム上で新しいエッジを生成する新しいユーザ・アクションに応答して、発生することができる。エッジ構成にマップする各新しいエッジが、レンダリングされたフレキシブルなセンテンス構文の新しいインスタンスの中にレンダリングされてよい。
【００９１】
図５の方法５００は、単一のネットワーキング・システムのコンテキストにおいて説明されたが、本開示は、複数のネットワーキング・システムおよび／または複数のサーバを企図している。複数のネットワーキング・システムおよび／または複数のサーバは、単一のロケーション、または多様なロケーションに設置されることが可能である。
【００９２】
図６は、本開示のさらに別の実施形態に従った、コンピュータ・システム６００の図を示す。コンピュータ・システム６００は、１または複数のバス６７０を介してそのすべてが相互接続された、少なくとも１つのプロセッサ６１０と、１または複数のネットワーク・インタフェース６３０と、１または複数のコンピュータ可読媒体６２０とを含むことができる。図６において、さまざまなコンポーネントは、説明の簡略化の目的のために省略されている。コンピュータ・システム６００は、本明細書で説明された任意の他のコンポーネント（すなわち、図１〜図５において図示されたコンポーネントのうちのいずれか）が実装され得るデバイスを示すように意図されている。
【００９３】
コンピュータ・システム６００は、多様な物理的な形態を取ることができる。例として、コンピュータ・システム６００は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、携帯情報端末（ＰＤＡ）、ポータブル・コンピュータ、タブレットＰＣ、ウェアラブル・コンピュータ、対話型キオスク、モバイル・フォン、サーバ、メインフレーム・コンピュータ、メッシュ接続型コンピュータ、シングル・ボード・コンピュータ（ＳＢＣ）（すなわち、ＢｅａｇｌｅＢｏａｒｄ、ＰＣオン・ア・スティック、Ｃｕｂｉｅｂｏａｒｄ、ＣｕＢｏｘ、Ｇｏｏｓｅｂｅｒｒｙ、Ｈａｗｋｂｏａｒｄ、Ｍｂｅｄ、ＯｍａｐＺｏｏｍ、Ｏｒｉｇｅｎｂｏａｒｄ、Ｐａｎｄａｂｏａｒｄ、Ｐａｎｄｏｒａ、Ｒａｓｃａｌ、Ｒａｓｐｂｅｒｒｙ  Ｐｉ、ＳｈｅｅｖａＰｌｕｇ、Ｔｒｉｍ−Ｓｌｉｃｅ、その他）、埋め込み型コンピュータ・システム、またはこれらの２つ以上の組合せであってよい。適切な場合、コンピュータ・システム６００は、単体でもしくは分算された、複数のロケーションに及ぶ、複数のマシンに及ぶ、１つもしくは複数のコンピュータ・システム６００、または、１つもしくは複数のネットワークにおいて１つもしくは複数のクラウド・コンポーネントを含むことができるクラウドに常駐する、１つもしくは複数のコンピュータ・システム６００を含むことができる。適切な場合、１または複数のコンピュータ・システム６００は、本明細書で説明された、または示された、１または複数の方法のうちの１または複数のステップを、実質的な空間的または時間的限定なしに、実施することができる。限定ではなく例として、１または複数のコンピュータ・システム６００は、本明細書で説明された、または示された、１または複数の方法のうちの１または複数のステップを、リアル・タイムで、またはバッチ・モードで実施することができる。１または複数のコンピュータ・システム６００は、適切な場合、本明細書で説明された、または示された、１または複数の方法のうちの１または複数のステップを、異なる時間に、または異な
るロケーションで実施することができる。
【００９４】
コンピュータ・システム６００は、限定はされないが、好ましくは、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）、またはＵｎｉｘ（登録商標）などのオペレーティング・システムを含むことができる。オペレーティング・システムは、ファイルを編成し、ファイルの経過を追う、ファイル管理システムを含むことができる。いくつかの実施形態において、別個のファイル管理システムが提供されてよい。別個のファイル管理システムは、オペレーティング・システムとスムーズに対話し、向上したバックアップ手順および／またはより厳重なファイル保護などの、拡張されたおよび／またはより多くの特徴を提供することができる。
【００９５】
少なくとも１つのプロセッサ６１０は、任意の好適なプロセッサであってよい。少なくとも１つのプロセッサ６１０のタイプは、中央処理ユニット（ＣＰＵ）、マイクロプロセッサ、グラフィックス処理ユニット（ＧＰＵ）、物理処理ユニット（ＰＰＵ：ｐｈｙｓｉｃｓ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、デジタル信号プロセッサ、ネットワーク・プロセッサ、フロント・エンド・プロセッサ、データ・プロセッサ、ワード・プロセッサ、およびオーディオ・プロセッサを含むグループからの１または複数を含むことができる。
【００９６】
１または複数のバス６７０は、コンピュータ・システム６００のコンポーネントを互いに結合するように構成されている。限定ではなく例として、１または複数のバス６７０は、グラフィックス・バス（すなわち、アクセラレーテッド・グラフィックス・ポート（ＡＧＰ））、拡張業界標準アーキテクチャ（ＥＩＳＡ：Ｅｎｈａｎｃｅｄ  Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、フロント・サイド・バス（ＦＳＢ）、ハイパー・トランスポート（ＨＴ）相互接続、業界標準アーキテクチャ（ＩＳＡ）バス、Ｉｎｆｉｎｉｂａｎｄ相互接続、ロー・ピン・カウント（ＬＰＣ）バス、メモリ・バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、周辺コンポーネント相互接続（ＰＣＩ）バス、ＰＣＩエクスプレス（ＰＣＩ−Ｘ）バス、シリアル高度技術アタッチメント（ＳＡＴＡ：ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ）バス、ビデオ電子標準協会ローカル（ＶＬＢ：Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ  ｌｏｃａｌ）バス、または別の好適なバス、あるいはこれらのうちの２つ以上の組合せを含むことができる。本開示は、特定のバスを説明し、示しているが、本開示は、任意の好適なバスまたは相互接続を企図している。
【００９７】
１または複数のネットワーク・インタフェース６３０は、モデムまたはネットワーク・インタフェースのうちの１または複数を含むことができる。モデムまたはネットワーク・インタフェースは、コンピュータ・システム６００の一部であると考えられ得ることが認識されるであろう。インタフェースは、アナログ・モデム、非対称型デジタル・サブスクライバ・ライン（ＡＤＳＬ）モデム、ケーブル・モデム、ダブルウェイ衛星モデム、電力線モデム、トークン・リング・インタフェース、ケンブリッジ・リング・インタフェース、衛星伝送インタフェース、またはコンピュータ・システムを他のコンピュータ・システムと結合するための任意の好適なインタフェースを含むことができる。インタフェースは、１または複数の入力デバイスおよび／または出力デバイスを含むことができる。Ｉ／Ｏデバイスは、限定ではなく例として、キーボード、マウス、または他のポインティング・デバイス、ディスク・ドライバ、プリンタ、スキャナ、タッチ・スクリーン、タブレット・スクリーン、および他の入力デバイス、および／または表示デバイスを含む出力デバイスを含むことができる。表示デバイスは、限定ではなく例として、陰極線管（ＣＲＴ）表示装置、液晶表示装置（ＬＣＤ）、３−Ｄ表示装置、またはなんらかの他の適用可能な、知られている、もしくは好都合な表示デバイスを含むことができる。簡略化のために、図６の例に図示されていない任意のデバイスのコントローラが、インタフェースに常駐する
ことが想定されている。
【００９８】
コンピュータ可読媒体６２０は、プロセッサ６１０によってアクセス可能な任意のメディア・デバイスを含むことができる。限定ではなく例として、コンピュータ可読媒体６２０は、揮発性メモリ（すなわち、ランダム・アクセス・メモリ（ＲＡＭ）、動的ＲＡＭ（ＤＲＡＭ）、および／または静的ＲＡＭ（ＳＲＡＭ））、ならびに不揮発性メモリ（すなわち、フラッシュ・メモリ、読み出し専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能なプログラマブルＲＯＭ（ＥＰＲＯＭ）、および／または電気的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ））を含むことができる。適切であるとき、揮発性メモリおよび／または不揮発性メモリは、単一ポートの、または複数ポートのメモリであってよい。本開示は、任意の好適なメモリを企図している。いくつかの実施形態において、コンピュータ可読媒体６２０は、適切な場合、半導体ベースの集積回路もしくは他の集積回路（ＩＣ）（すなわち、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）もしくは特定用途向けＩＣ（ＡＳＩＣ））、ハード・ディスク、ＨＤＤ、ハイブリッド・ハード・ドライブ（ＨＨＤ）、光学ディスク（すなわち、ＣＤ−ＲＯＭもしくはデジタル多用途ディスク（ＤＶＤ））、光学ディスク・ドライブ（ＯＤＤ）、磁気光学ディスク、磁気光学ドライブ、フロッピー（登録商標）・ディスク、フロッピー（登録商標）・ディスク・ドライブ（ＦＤＤ）、磁気テープ、ホログラフィック・ストレージ・メディア、ソリッド・ステート・ドライブ（ＳＳＤ）、セキュア・デジタル（ＳＤ）カード、ＳＤドライブ、または別の好適なコンピュータ可読ストレージ・メディア、あるいはこれらのうちの２つ以上の組合せを含むことができる。コンピュータ可読媒体６２０は、適切な場合、揮発性、不揮発性、または揮発性および不揮発性の組合せであってよい。
【００９９】
プログラム６２０１は、１または複数のコンピュータ可読媒体６２０上に記憶されてよい。限定ではなく例として、コンピュータ・システム６００は、プログラム６２０１を、実行のために、１または複数のコンピュータ可読媒体６２０上の適切なロケーションにロードすることができる。プログラム６２０１は、実行されるとき、コンピュータ・システム６００に、本明細書で説明される、または示される、１つもしくは複数の動作、または１つもしくは複数の方法を実施させることができる。いくつかの実装形態において、動作は、限定はされないが、図５の方法５００を含むことができる。
【０１００】
当業者によって認識されるように、動作または方法は、ローカルに（すなわち、１つのローカル・コンピュータ・システム上で）インスタンス化されてもよく、リモート・コンピュータ・システムにわたって分散されてもよい。たとえば、ローカル・コンピュータ・システムの利用可能な演算性能が不十分であること、または追加の演算性能が必要とされることが決定されることがあり、動作の一定の態様をクラウドにオフロードすることができる。
【０１０１】
コンピュータ可読媒体は、一実施形態において、単一の媒体であるように示されているが、用語「コンピュータ可読媒体」は、１または複数の組の命令を記憶する、単一の媒体、または複数の媒体（たとえば、集中化された、もしくは分散化されたデータベース、および／または、関連付けられたキャッシュおよびサーバ）を含んで取られるべきである。用語「コンピュータ可読媒体」はまた、コンピュータによる実行のために一組の命令を記憶する、符号化する、または搬送することが可能な、かつ現在開示されている技法および新技術の方法論のうちの任意の１または複数をコンピュータに実施させる、いかなる媒体も含んで取られるものとする。
【０１０２】
コンピュータ可読媒体、マシン可読ストレージ媒体、マシン可読媒体、またはコンピュータ可読（ストレージ）媒体のさらなる例は、限定はされないが、とりわけ、揮発性および不揮発性メモリ・デバイス、フロッピー（登録商標）および他のリムーバブル・ディス
ク、ハード・ディスク・ドライブ、光学ディスク、デジタル多用途ディスクなどの記録可能タイプ媒体、ならびに、デジタルおよびアナログ通信リンクなどの伝送タイプ媒体を含む。
【０１０３】
いくつかの状況において、２進数の１から２進数の０への状態における変化またはその逆などのメモリ・デバイスの動作は、たとえば、物理的な変換などの変換を含むことがある。特定のタイプのメモリ・デバイスにより、そのような物理的な変換は、異なる状態または異なるものへの物品の物理的な変換を含むことがある。たとえば、限定はせずに、いくつかのタイプのメモリ・デバイスでは、状態における変化は、電荷の累積および貯蔵、または記憶された電荷の開放を伴うことがある。同様に、他のメモリ・デバイスにおいては、状態の変化が、帯磁方向における物理的な変化もしくは変換、または、結晶から非結晶もしくはその逆などの分子構造における物理的な変化もしくは変換を含むことがある。前述の事項は、メモリ・デバイスにおける２進数の１から２進数の０、またはその逆についての状態における変化が、物理的な変換などの変換を含むことがある、すべての例の網羅的なリストであることは意図されていない。むしろ、前述の事項は、説明的な例として意図されている。
【０１０４】
ストレージ・メディアは、通常、非一時的であってよい、または非一時的なデバイスを含むことができる。このコンテキストにおいて、非一時的ストレージ・メディアは、有形であるデバイスを含むことがあり、それは、デバイスがその物理的な状態を変化させることがあっても、デバイスは、実際の物理的な形態を有することを意味する。したがって、たとえば、非一時的とは、状態におけるこうした変化にもかかわらず、有形であり続けるデバイスを指す。
【０１０５】
コンピュータは、限定はされないが、サーバ・コンピュータ、クライアント・コンピュータ、パーソナル・コンピュータ（ＰＣ）、タブレットＰＣ、ラップトップ・コンピュータ、セット・トップ・ボックス（ＳＴＢ）、携帯情報端末（ＰＤＡ）、セルラ電話、ｉＰｈｏｎｅ（登録商標）、ｉＰａｄ（登録商標）、プロセッサ、電話、ウェブ・アプライアンス、ネットワーク・ルータ、スイッチもしくはブリッジ、またはそのマシンによって取られるべきアクションを指定する一組の命令（シーケンシャルに、または別のやり方で）を実行することが可能なあらゆるマシンであってよい。
【０１０６】
代替実施形態において、マシンは、スタンドアローン・デバイスとして動作する、または（たとえば、ネットワーク化されて）他のマシンに接続されてもよい。ネットワーク化された展開において、マシンは、クライアント−サーバ環境において、サーバ・マシンまたはクライアント・マシンの役割で動作する、またはピア・ツー・ピア（もしくは分散化された）ネットワーク環境におけるピア・マシンとして、動作することができる。
【０１０７】
詳細な説明のうちのある部分は、コンピュータ・メモリ内のデータ・ビットに対する動作のアルゴリズムおよびシンボル表記に関して提示されることがある。これらのアルゴリズムの記述および表記は、データ処理技術における当業者の仕事の実体を、他の当業者に最も効果的に伝えるために、当業者によって使用される手段である。アルゴリズムは、ここで、および一般に、所望の結果へと導く動作の首尾一貫したシーケンスであるとみなされる。動作は、物理量の物理的な操作を必要とするものである。必ずしもではないが、普通、これらの量は、記憶される、転送される、組み合わされる、比較される、および別のやり方で操作されることが可能な、電気的または磁気的な信号の形態を取る。主に共通使用の理由のために、これらの信号を、ビット、値、要素、シンボル、文字、項、数字などと呼ぶことが、時に好都合であることが分かっている。
【０１０８】
しかしながら、これらのおよび同様の用語のすべては、適切な物理量に関連付けられる
べきであり、これらの量に適用される好都合なラベルにすぎないことが念頭に置かれるべきである。別段具体的に明記されない限り、以下の議論から明らかであるように、「処理する（ｐｒｏｃｅｓｓｉｎｇ）」、または「演算する（ｃｏｍｐｕｔｉｎｇ）」または「計算する（ｃａｌｃｕｌａｔｉｎｇ）」、または「決定する（ｄｅｔｅｒｍｉｎｉｎｇ）」、または「表示する（ｄｉｓｐｌａｙｉｎｇ）」、または「生成する（ｇｅｎｅｒａｔｉｎｇ）」、その他などの用語を利用する議論は、コンピュータ・システムまたは同様の電子コンピューティング・デバイスのアクションおよびプロセスを指し、コンピュータ・システムまたは電子コンピューティング・デバイスは、コンピュータ・システムのレジスタおよびメモリ内で、物理的（電子的）量として表されるデータを操作し、コンピュータ・システムのメモリもしくはレジスタ内、または他のそのような情報ストレージ・デバイス、送信デバイス、もしくは表示デバイス内で、同様に物理量として表される他のデータに変換することが、説明の全体を通して認識される。
【０１０９】
本明細書で提示されたアルゴリズムおよび表示は、本来的には任意の特定のコンピュータまたは他の装置に関係していない。さまざまな汎用システムが、本明細書の教示に従ってプログラムと共に使用されてよく、または、いくつかの実施形態の方法を実施するためにより特化された装置を構築することが好都合であると分かることがある。多様なこれらのシステムのために要求される構造は、下記の説明から現れることになる。加えて、本技法は、任意の特定のプログラミング言語を参照して説明されておらず、したがってさまざまな実施形態は、多様なプログラミング限度を使用して実装されてよい。
【０１１０】
一般に、本開示の実施形態を実装するために実行されるルーチンは、オペレーティング・システムもしくは個別のアプリケーションの一部、コンポーネント、プログラム、オブジェクト、モジュール、または「プログラム」と呼ばれる命令のシーケンスとして実装されてよい。プログラムは、通常、コンピュータのさまざまなメモリおよびストレージ・デバイスにおいて、さまざまな時間に設定される１または複数の命令を含み、コンピュータの１または複数の処理ユニットまたはプロセッサによって読み込まれ、実行されるときに、本開示のさまざまな態様を伴う要素を実行するための動作を、コンピュータに実施させる。
【０１１１】
その上、実施形態は、完全に機能しているコンピュータおよびコンピュータ・システムのコンテキストにおいて説明されているが、さまざまな実施形態は、多様な形態におけるプログラム製品として分散されることが可能であり、本開示は、分散を実際に果たすために使用される特定のタイプのコンピュータ可読媒体には関係なく、等しく適用される。
【０１１２】
別段コンテキストが明らかに要求しない限り、本説明および特許請求の範囲の全体を通して、単語「含む」（ｃｏｍｐｒｉｓｅ）（ｃｏｍｐｒｉｓｉｎｇ）」などは、排他的または網羅的な意味とは対照的に、包括的な意味において釈義されるべきであり、すなわち、「含むが、限定はされない」という意味において釈義されるべきである。本明細書で使用されるとき、用語「接続される（ｃｏｎｎｅｃｔｅｄ）」、「結合される（ｃｏｕｐｌｅｄ）」またはそれらの任意の変形は、２つ以上の要素の間の直接的または間接的のいずれかの任意の接続または結合を意味し、要素間の接続の結合は、物理的、論理的、またはそれらの組合せであってよい。追加として、単語「本明細書において（ｈｅｒｅｉｎ）」、「上記で（ａｂｏｖｅ）」、「下記で（ｂｅｌｏｗ）」、および同様の旨の単語は、本出願において使用されるとき、全体としての本出願を指し、本出願の任意の特定の部分を指すものではないとする。コンテキストが許可する場合、単数または複数を使用する上記の詳細な説明における単語はまた、それぞれ複数または単数を含むことができる。単語「または（ｏｒ）」は、２つ以上のアイテムのリストを参照して、単語の以下の解釈、すなわち、リストにおけるアイテムのいずれか、リストにおけるアイテムのすべて、およびリストにおけるアイテムの任意の組合せのすべてを対象とする。
【０１１３】
本開示の実施形態の上記の詳細な説明は、網羅的であるように、または本教示を上記で開示された厳密な形態に限定するようには意図されていない。本開示の個別の実施形態および本開示のための例が説明目的のために上記で説明されたが、当業者が認めるように、本開示の範囲内で、さまざまな均等の変更形態が可能である。たとえば、プロセスまたはブロックが所与の順序で提示されていても、代替実施形態は、異なる順序でのステップを有するルーチンを実施する、または異なる順序でのブロックを有するシステムを用いることができ、いくつかのプロセスまたはブロックは、削除され、移動され、追加され、再分割され、組み合わされ、および／または、代替的な、もしくはサブの組合せを提供するように変更されてもよい。これらのプロセスまたはブロックの各々は、多様な異なるやり方で実装されてよい。また、プロセスまたはブロックは、時に連続して実施されるように示されるが、これらのプロセスまたはブロックは、代わりに並行して実施されてもよいし、異なる時間に実施されてもよい。さらに、本明細書で触れられたいかなる個別の数も例にすぎず、代替実装形態は、異なる値または範囲を用いることができる。
【０１１４】
本明細書における「一実施形態（ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ、またはａｎ  ｅｍｂｏｄｉｍｅｎｔ）」への言及は、本実施形態に関連して説明された特定の特徴、構造、または特性が、本開示の少なくとも１つの実施形態に含まれることを意味する。本明細書のさまざまな場所における「一実施形態において」という語句の出現は、必ずしも同じ実施形態をすべて指しているわけではなく、別個のまたは代替の実施形態が他の実施形態を互いに排除するわけでもない。その上、いくつかの実施形態によって呈されてよく、他の実施形態によっては呈されないことがある、さまざまな特徴が説明される。同様に、いくつかの実施形態のための要件であってよいが、他の実施形態のための要件ではないことがある、さまざまな要件が説明される。
【０１１５】
本明細書で使用される用語は、本開示のコンテキスト内で、および各用語が使用される個別のコンテキスト内で、当技術分野におけるその通常の意味を一般に有する。本開示を説明するために使用される一定の用語は、本開示の説明に関する実務者への追加のガイダンスを提供するために本明細書で議論される。便宜上、一定の用語は、たとえば、イタリック体および／または引用符を使用して強調表示されることがある。強調表示の使用は、用語の範囲および意味に影響を有することはなく、それが強調されていてもいなくても、用語の範囲および意味は、同じコンテキストにおいては同じである。２つ以上のやり方で、同じものが言い表され得ることが認識されるであろう。
【０１１６】
その結果として、代替言語および同義語が、本明細書で議論される用語のうちの任意の１または複数のために使用されてもよく、ある用語が本明細書で詳述または議論されているか、いないかということに、特別な重要性が置かれることにはならない。一定の用語のための同義語が提供される。１または複数の同義語の詳説は、他の同義語の使用を排除しない。本明細書で議論される任意の用語の例を含む、本明細書のどこでも、例の使用は説明的のみであり、本開示の、またはいずれの例示された用語の範囲および意味をさらに限定することは意図されていない。同様に、本開示は、本明細書において与えられたさまざまな実施形態に限定されない。
【０１１７】
本開示の範囲のさらなる限定を意図することなく、本開示の実施形態による、機器、装置、方法の例、およびそれらに関連した結果が、本明細書で与えられる。タイトルまたはサブタイトルは、読者の便宜のための例において使用されていることがあり、本開示の範囲を限定すべきでは全くないことに留意されたい。別段定義されていない限り、本明細書で使用されるすべての技術的かつ科学的用語は、本開示が付属する当業者によって通例理解されるのと同じ意味を有する。相反する場合には、定義を含んで、本文書が支配することになる。
【０１１８】
本明細書で提供される開示の教示は、他のシステムに適用されてもよく、必ずしも上記で説明されたシステムに適用されなくてもよい。付随する出願書類にリストにされていることがあるいずれかを含む、上記で触れられたいずれの特許および出願ならびに他の参考文献も、本願明細書に援用する。本開示のなおもさらなる実施形態を提供するために、本開示の態様は、必要であれば、上記で説明されたさまざまな参考文献のシステム、機能、および概念を用いるように変更されることが可能である。
【０１１９】
付随する出願書類にリストにされていることがあるいずれかを含む、上記で触れられたいずれの特許および出願ならびに他の参考文献も、本願明細書に援用する。本開示のなおもさらなる実施形態を提供するために、本開示の態様は、必要であれば、上記で説明されたさまざまな参考文献のシステム、機能、および概念を用いるように変更されることが可能である。
【０１２０】
これらの、および他の変化は、上記の詳細な説明に照らして本開示になされ得る。上記の説明は、本開示の一定の実施形態を説明し、企図されるベスト・モードを説明しているが、どのように詳細に上記でテキストに現れようとも、教示は、多くのやり方で実践され得る。システムの詳細は、本明細書で開示される主題によってなお包含されながら、その実装形態の詳細において、大幅に変わることができる。上で触れられたように、本開示の一定の特徴または態様を説明するときに使用される特定の専門語は、その専門語が関連付けられた本開示のいずれかの個別の特性、特徴、または態様に制約されるように、その専門語が本明細書で再定義されることをほのめかすように取られるべきではない。一般に、以下の特許請求の範囲で使用される用語は、上記の詳細な説明のセクションが明示的にそのような用語を定義しない限り、本開示を本明細書で開示される個別の実施形態に限定するように釈義されるべきではない。それに応じて、本開示の実際の範囲は、開示された実施形態のみならず、特許請求の範囲の下で、本開示を実践する、または実装するすべての均等のやり方もまた包含する。
【０１２１】
本開示の一定の態様が、一定の特許請求形式で以下に提示されるが、発明者は、任意の数の特許請求形式における本開示のさまざまな態様を企図している。たとえば、本開示の１つのみの態様が、米国特許法第１１２条第６項の下で、ミーンズ・プラス・ファンクション・クレームとして列挙される一方で、他の態様が、同様にミーンズ・プラス・ファンクション・クレームとして具体化されても、またはコンピュータ可読媒体などで具体化されるなどの他の形式で具体化されてもよい（米国特許法第１１２条第６項の下で扱われることが意図されるあらゆる請求項は、語「〜のための手段（ｍｅａｎｓ  ｆｏｒ）」で始まることになる）。それに応じて、出願人は、本開示の他の態様のためにそのような追加の特許請求形式を追求するように、出願の提出後に追加の請求項を追加する権利を留保する。
【０１２２】
本説明のうちのある部分は、情報に対する動作のアルゴリズムおよびシンボル表記に関して本発明の実施形態を説明する。これらのアルゴリズムの記述および表記は、データ処理技術における当業者の仕事の実体を、他の当業者に効果的に伝えるために、当業者によって通例使用される。これらの動作は、機能的に、演算的に、または論理的に説明されるが、コンピュータ・プログラムまたは均等の電気回路、マイクロコードなどによって実装されるように理解される。さらに、一般性を欠くことなく、動作のこれらの仕組みを、モジュールと呼ぶことが時に好都合であることもまた分かっている。説明された動作およびそれらの関連付けられたモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せで具体化されてよい。
【０１２３】
本明細書で説明されたステップ、動作、またはプロセスのいずれかは、１または複数の
ハードウェアまたはソフトウェア・モジュールで、単独でまたは他のデバイスとの組合せで、実施されてよい、または実装されてよい。一実施形態において、ソフトウェア・モジュールは、コンピュータ・プログラム・コードを保有するコンピュータ可読媒体を含むコンピュータ・プログラム製品で実装され、コンピュータ・プログラム・コードは、説明されたステップ、動作、またはプロセスのうちのいずれか、またはすべてを実施するためのコンピュータ・プロセッサによって実行され得る。
【０１２４】
本発明の実施形態はまた、本明細書の動作を実施するための装置に関することができる。この装置は、要求された目的のために特化して構築されてもよく、および／または、コンピュータに記憶されたコンピュータ・プログラムによって選択的に作動される、または再構成される汎用コンピューティング・デバイスを含んでもよい。そのようなコンピュータ・プログラムは、コンピュータ・システム・バスに結合され得る、非一時的で有形なコンピュータ可読ストレージ媒体、または電子命令を記憶するために好適な任意のタイプの媒体に記憶されてよい。さらに、本明細書において言及された任意のコンピューティング・システムは、単一のプロセッサを含むことができる、または、増加したコンピューティング性能のためのマルチプロセッサ設計を用いるアーキテクチャであってもよい。
【０１２５】
本発明の実施形態はまた、本明細書で説明されたコンピューティング・プロセスによって生産された製品に関することができる。そのような製品は、コンピューティング・プロセスから生じた、非一時的で有形なコンピュータ可読ストレージ媒体上に記憶される情報を含むことができ、コンピュータ・プログラム製品の任意の実施形態、または本明細書で説明された他のデータの組合せを含むことができる。
【図１】
2016524207.tif 000003
【図２】
2016524207.tif 000004
【図３】
2016524207.tif 000005
【図４Ａ】
2016524207.tif 000006
【図４Ｂ】
2016524207.tif 000007
【図４Ｃ】
2016524207.tif 000008
【図４Ｄ】
2016524207.tif 000009
【図５】
2016524207.tif 000010
【図６】
2016524207.tif 000011
【手続補正書】
【提出日】平成28年6月15日(2016.6.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
エッジ構成に基づいてフレキシブルなセンテンス構文を定義するために、開発者インタフェースを提供する工程と、
前記フレキシブルなセンテンス構文における個別のエッジの第１の性質表現を開発者が選ぶために、１または複数のエッジ・トークンを前記開発者インタフェース上で生成する工程と、
前記フレキシブルなセンテンス構文における前記個別のエッジの１または複数の時制を前記開発者が選択するために、時制オプションを前記開発者インタフェース上で提供する工程と、
前記個別のエッジに基づいて、前記フレキシブルなセンテンス構文を前記開発者が決定するために、複数の関係のあるフレキシブルなセンテンスを生成する工程と
を備える方法。
【請求項２】
前記フレキシブルなセンテンス構文における個別のターゲットの第２の性質表現を前記開発者が選ぶために、１または複数のターゲット・トークンを前記開発者インタフェース上で生成する工程をさらに備える請求項１に記載の方法。
【請求項３】
前記フレキシブルなセンテンス構文における前記個別のエッジ、前記個別のターゲット、またはその両方の性質をカスタマイズするように、１または複数の追加の性質表現を前記開発者が追加するために、性質表現オプションを前記開発者インタフェース上で提供する工程をさらに備える請求項２に記載の方法。
【請求項４】
前記フレキシブルなセンテンス構文を前記開発者が構成するために、複数のエッジ構成を前記開発者インタフェース上で生成する工程であって、前記複数のエッジ構成は、１対１、オブジェクト・タイトルなしの１対１、１対２、１対多、オブジェクト・タイトルなしの１対２／多、２対１、または多対１を含む工程をさらに備える請求項３に記載の方法。
【請求項５】
ギャラリー・タイプ、テーブル、リスト、およびマップを含む１または複数のアグリゲーション・タイプを、前記開発者インタフェース上で生成する工程をさらに備える請求項４に記載の方法。
【請求項６】
前記開発者が選択するために、前記個別のエッジ、前記個別のターゲット、またはその両方の複数のアグリゲーションを自動的に生成する工程をさらに備える請求項５に記載の方法。
【請求項７】
複数のユーザ・インタフェース上で自動的に生成された複数のアグリゲーションの表示をシミュレートするためのプレビュー・オプションを生成する工程であって、前記複数のユーザ・インタフェースは、モバイル・ウェブと、ｉＯＳ（登録商標）と、Ａｎｄｒｏｉｄ（登録商標）と、デスクトップ・ウェブと、Ｗｉｎｄｏｗｓ（登録商標）ＯＳ、Ｌｉｎｕｘ（登録商標）、またはＵｎｉｘ（登録商標）上に存在するアプリケーションとのうちの１以上を含む工程をさらに備える請求項６に記載の方法。
【請求項８】
前記複数のフレキシブルなセンテンスは、その対応する通用範囲のパーセンテージに基づいた優先順位により前記開発者インタフェース上に提示され、前記通用範囲のパーセンテージは、あらかじめ定義された期間内に受信されたインプレッションによって決定され、前記インプレッションは、インプレッション総数、照会総数、フィード・インプレッション、フィード照会、ティッカー・インプレッション、またはティッカー照会を含む、請求項１に記載の方法。
【請求項９】
前記１または複数のエッジ・トークンが前記開発者によって選択されるとき、ネットワークＩ／Ｏ遅延を最小限にするために、関係のあるフレキシブルなセンテンスのグループを開発者デバイス上にプリ・フェッチする工程であって、フレキシブルなセンテンスの前記グループは、所定の閾値を上回る前記通用範囲のパーセンテージを有する工程をさらに備える請求項８に記載の方法。
【請求項１０】
前記１または複数のエッジ・トークンは、チェック・ボックス・リスト、ドロップ・ダウン・メニュー、選択リスト、ボタンのリスト、または複数層メニュー・レベルにおいて提供される、請求項１に記載の方法。
【請求項１１】
コンピュータ・システムと、
前記コンピュータ・システム上でインスタンス化されるアプリケーション・プログラムであって、前記アプリケーション・プログラムがコンピュータにより生成される出力を提供する、アプリケーション・プログラムと、
を備えるネットワーキング・システムであって、
前記コンピュータ・システムは、
フレキシブルなセンテンス構文を開発者が定義するために、開発者デバイス上でインスタンス化される開発者インタフェースを提供し、
前記フレキシブルなセンテンス構文における個別のエッジの第１の性質表現を前記開発者が選ぶために、１または複数のエッジ・トークンを前記開発者インタフェース上で生成し、
前記フレキシブルなセンテンス構文における前記個別のエッジの１または複数の時制を前記開発者が選択するために、時制オプションを前記開発者インタフェース上で提供し、
前記個別のエッジに基づいて、前記フレキシブルなセンテンス構文を前記開発者が決定するために、複数の関係のあるフレキシブルなセンテンスを生成するように構成されている、
ネットワーキング・システム。
【請求項１２】
前記コンピュータ・システムは、前記フレキシブルなセンテンス構文における個別のターゲットの第２の性質表現を前記開発者が選ぶために、１または複数のターゲット・トークンを前記開発者インタフェース上で生成するように構成されている、請求項１１に記載
のネットワーキング・システム。
【請求項１３】
前記コンピュータ・システムは、前記フレキシブルなセンテンス構文を前記開発者が構成するために、１対１、オブジェクト・タイトルなしの１対１、１対２、１対多、オブジェクト・タイトルなしの１対２／多、２対１、または多対１を含む複数のエッジ構成を、前記開発者インタフェース上で生成するように構成されている、請求項１２に記載のネットワーキング・システム。
【請求項１４】
前記コンピュータ・システムは、前記フレキシブルなセンテンス構文を前記開発者が構成するために、１対１、オブジェクト・タイトルなしの１対１、１対２、１対多、オブジェクト・タイトルなしの１対２／多、２対１、および多対１のうちの１つ以上を含む複数のエッジ構成を、前記開発者インタフェース上で生成するように構成されている、請求項１３に記載のネットワーキング・システム。
【請求項１５】
前記コンピュータ・システムは、前記開発者が前記フレキシブルなセンテンス構文を公開するために、ギャラリー・タイプ、テーブル、リスト、およびマップを含む１または複数のアグリゲーション・タイプを、前記開発者インタフェース上で生成するように構成されている、請求項１４に記載のネットワーキング・システム。
【請求項１６】
前記コンピュータ・システムは、前記開発者が選択するために、前記個別のエッジ、前記個別のターゲット、またはその両方の複数のアグリゲーションを自動的に生成するように構成されている、請求項１５に記載のネットワーキング・システム。
【請求項１７】
フレキシブルなセンテンス構文からエッジ構成を解釈する工程と、
前記エッジ構成に関係のあるソーシャル・ネットワーキング・システムのソーシャル・グラフからエッジを抽出する工程と、
前記エッジのフレキシブルなセンテンス表現を公開するためのフォーラムを決定する工程と、
前記フォーラムと前記フレキシブルなセンテンス構文におけるエッジ・トークンおよびターゲット・トークンとに基づいて、前記フレキシブルなセンテンス表現をレンダリングする工程と、
を備える方法。
【請求項１８】
前記エッジの時間マーカを決定する工程
をさらに備え、
前記フレキシブルなセンテンス表現をレンダリングする工程は、前記時間マーカに基づいて前記エッジ・トークンの動詞時制をレンダリングする工程を含む、
請求項１７に記載の方法。
【請求項１９】
前記エッジを抽出する工程は、前記エッジ構成に関係のある前記ソーシャル・グラフからエッジのアグリゲートを抽出する工程を含み、前記フレキシブルなセンテンス表現をレンダリングする工程は、要約センテンスをレンダリングするために、前記エッジ構成に基づいて前記フレキシブルなセンテンス表現をレンダリングする工程を含む、請求項１７に記載の方法。
【請求項２０】
前記フレキシブルなセンテンス表現をレンダリングする工程は、前記ターゲット・トークンの性質または前記エッジ・トークンの性質に基づいて、数値関数を計算する工程を含む、請求項１７に記載の方法。
【国際調査報告】
2016524207.tif 000012
2016524207.tif 000013