(57)【特許請求の範囲】
【請求項１】
コンピューティング・デバイスが、前記コンピューティング・デバイスによって第１のコンピューティング・プロセスを用いて表示されたグラフィカル・ユーザ・インタフェースの変化に対応するイベントを検出する工程と、
前記コンピューティング・デバイスが、検出した前記イベントに基づき前記第１のコンピューティング・プロセスとは異なる第２のコンピューティング・プロセスに関連する動作を識別する工程であって、前記第２のコンピューティング・プロセスは、延期されない場合には前記グラフィカル・ユーザ・インタフェースに１または複数のフレームを欠落させるコンピューティング・プロセスである、工程と、
前記コンピューティング・デバイスが、識別した前記動作の状態を判定する工程であって、判定された前記状態は、関連するタスクを完了させることに関する識別した前記動作の相対的な進行を識別し、前記相対的な進行は、識別した前記動作が（１）アイドル、（２）データ処理の初期化段階、または（３）ほぼ完了したデータ処理であるか否かを示す、工程と、
前記コンピューティング・デバイスが、判定した前記状態に少なくとも部分的に基づき、識別した前記動作を延期するべきと判定する工程と、
前記コンピューティング・デバイスが、識別した前記動作の実行を再開する工程と、
を備える方法。
【請求項２】
前記コンピューティング・デバイスが、所定の期間の後、延期した前記動作を再開する工程をさらに備える、請求項１に記載の方法。
【請求項３】
前記変化は所定のしきい値を越えている、請求項１に記載の方法。
【請求項４】
前記イベントは、スクロール・イベント、アニメーション・イベント、またはカスタム・イベントを含む、請求項１に記載の方法。
【請求項５】
識別した前記動作は、ＪＳＯＮ（ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）パース、データベース・クエリ、データの直列化もしくは直列化復元、または写真のデコードを含む、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、一般にグラフィカル・ユーザ・インタフェースに関する。
【背景技術】
【０００２】
ソーシャル・ネットワーキング・ウェブサイトを含むソーシャル・ネットワーキング・システムは、そのユーザ（人または組織）がソーシャル・ネットワーキング・システムと、またソーシャル・ネットワーキング・システムを通じて互いに対話することを可能にする。ソーシャル・ネットワーキング・システムは、ユーザからの入力と共に、ソーシャル・ネットワーキング・システム内でそのユーザに関連付けられているユーザ・プロフィールを作成し記憶する。ユーザ・プロフィールは、人口統計情報、通信チャネル情報、およびユーザの個人的関心に関する情報を含んでもよい。また、ソーシャル・ネットワーキング・システムは、ユーザからの入力と共に、ソーシャル・ネットワーキング・システムの他のユーザとのユーザの関係の記録を作成および記憶し、サービス（たとえば、ウォール投稿、写真の共有、イベントの主催、メッセージング、ゲーム、または広告）を提供し、ユーザ間またはユーザの間でのソーシャル対話を容易にする。
【０００３】
ソーシャル・ネットワーキング・システムは、１または複数のネットワークを通じて、そのサービスに関係するコンテンツまたはメッセージをユーザの移動体コンピューティング・デバイスまたは他のコンピューティング・デバイスに送信する。ユーザは、ソーシャル・ネットワーキング・システム内のそのユーザのユーザ・プロフィールおよび他のデータにアクセスするために、ユーザの移動体コンピューティング・デバイスまたは他のコンピューティング・デバイス上にソフトウェア・アプリケーションをインストールしてもよい。ソーシャル・ネットワーキング・システムは、ユーザに接続された他のユーザの集約されたストーリのニュースフィードなど、コンテンツ・オブジェクトのパーソナライズされたセットを生成し、ユーザに対して表示してもよい。
【図面の簡単な説明】
【０００４】
【図１】ソーシャル・ネットワーキング・システムに関連付けられている一例のネットワーク環境の図。
【図２】一例のソーシャル・グラフの図。
【図３】重大なイベントの実行中に重い動作を延期するための一例の方法の図。
【図４】一例のコンピュータ・システムの図。
【発明を実施するための形態】
【０００５】
特定の実施形態では、重大なイベントの実行中に重い動作を延期することによって、より良いユーザ経験を提供するための方法について記載する。例えば、特定の実施形態では、ユーザがイベントをスクロールする際、重い動作を延期することによって、スクロール速度の不均一を低減する。特定の実施形態では、コンピューティング・デバイスは、コンピューティング・デバイスによって表示されたグラフィカル・ユーザ・インタフェースの変化に対応するイベントを検出する。コンピューティング・デバイスは、検出したイベントに基づき少なくとも１つの動作を識別し、識別した動作の状態を判定する。コンピューティング・デバイスは、判定した状態に少なくとも部分的に基づき、識別した動作を延期する。
【０００６】
図１は、ソーシャル・ネットワーキング・システムに関連付けられている例示的なネットワーク環境１００を示す。ネットワーク環境１００は、互いにネットワーク１１０によって接続されたユーザ１０１、クライアント・システム１３０、ソーシャル・ネットワー
キング・システム１６０、およびサードパーティ・システム１７０を含む。図１は、ユーザ１０１、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０の特定の構成を示すが、この開示は、ユーザ１０１、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０の任意の好適な構成を企図する。限定するものとしてではなく一例として、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０の２以上は、ネットワーク１１０をバイパスして互いに直接的に接続されてもよい。別の例として、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０の２以上が、全体として、または部分的に互いに物理的に、または論理的に同じ場所にあってもよい。さらに、図１は、特定の数のユーザ１０１、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を示すが、この開示は、任意の好適な数のユーザ１０１、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を企図する。限定するものとしてではなく一例として、ネットワーク環境１００は、複数のユーザ１０１、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を含んでもよい。
【０００７】
特定の実施形態では、ユーザ１０１は、ソーシャル・ネットワーキング・システム１６０と、またはソーシャル・ネットワーキング・システム１６０を通じて対話、すなわち通信する個人（人間のユーザ）、エンティティ（たとえば、企業、事業者、またはサードパーティ・アプリケーション）、または（たとえば、個人またはエンティティの）グループであってよい。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、オンライン・ソーシャル・ネットワークをホストするネットワークアドレス指定可能なコンピューティング・システムであってよい。ソーシャル・ネットワーキング・システム１６０は、たとえばユーザプロフィール・データ、コンセプトプロフィール・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関係する他の好適なデータなど、ソーシャル・ネットワーキング・データを生成、記憶、受信、および送信する。ソーシャル・ネットワーキング・システム１６０は、ネットワーク環境１００の他の構成要素によって、直接的に、またはネットワーク１１０を通じてアクセスされてもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、ユーザ１０１がたとえば適切なプライバシ設定を設定することによってなど、自分達のアクションをソーシャル・ネットワーキング・システム１６０によって記録させる、または他のシステム（たとえば、サードパーティ・システム１７０）と共有させることについてオプトインまたはオプトアウトすることを可能にする認可サーバ（または他の適切な構成要素）を含んでもよい。ユーザのプライバシ設定は、そのユーザに関連付けられているどの情報が記録されるか、そのユーザに関連付けられている情報がどのように記録されるか、そのユーザに関連付けられている情報がいつ記録されるか、そのユーザに関連付けられている情報を誰が記録するか、そのユーザに関連付けられている情報が誰と共有されるか、およびそのユーザに関連付けられている情報が何の目的で記録され共有されるかを決定する。認可サーバは、ブロッキング、データのハッシュ化、匿名化、または他の適切な技術を通じて、ソーシャル・ネットワーキング・システム３０のユーザの１以上のプライバシ設定を適切に実施するために用いられる。特定の実施形態では、サードパーティ・システム１７０は、ウェブサイトまたはアプリケーションをホストするネットワークアドレス指定可能なコンピューティング・システムであってよい。サードパーティ・システム１７０は、たとえば、ウェブ・ページ、テキスト、画像、映像、オーディオ、またはアプリケーションなど、サードパーティ・システム・データを生成、記憶、受信、および送信する。サードパーティ・システム１７０は、ネットワーク環境１００の他の構成要素によって、直接
的に、またはネットワーク１１０を通じてアクセスされてもよい。特定の実施形態では、１または複数のユーザ１０１が１または複数のクライアント・システム１３０を使用し、ソーシャル・ネットワーキング・システム１６０またはサードパーティ・システム１７０にアクセスし、データを送り、それらからデータを受信してもよい。クライアント・システム１３０は、ソーシャル・ネットワーキング・システム１６０またはサードパーティ・システム１７０に直接的に、ネットワーク１１０を通じて、またはサードパーティ・システムを通じてアクセスしてもよい。限定するものとしてではなく一例として、クライアント・システム１３０は、サードパーティ・システム１７０にソーシャル・ネットワーキング・システム１６０を通じてアクセスしてもよい。クライアント・システム１３０は、たとえばパーソナル・コンピュータ、ラップトップ・コンピュータ、携帯電話、スマートフォン、またはタブレット・コンピュータなど、任意の好適なコンピューティング・デバイスであってよい。
【０００８】
この開示は、任意の好適なネットワーク１１０を企図する。限定するものとしてではなく一例として、ネットワーク１１０の１または複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク（ＶＰＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、無線ＷＡＮ（ＷＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、インターネットの一部分、公衆交換電話網（ＰＳＴＮ）の一部分、携帯電話ネットワーク、またはこれらの２以上の組合せを含んでもよい。ネットワーク１１０は、１または複数のネットワーク１１０を含んでもよい。
【０００９】
リンク１５０は、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０を通信ネットワーク１１０に、または互いに接続する。この開示は、任意の好適なリンク１５０を企図する。特定の実施形態では、１または複数のリンク１５０は、１または複数の有線（たとえば、デジタル加入者線（ＤＳＬ）またはＤＯＣＳＩＳ（Ｄａｔａ  Ｏｖｅｒ  Ｃａｂｌｅ  Ｓｅｒｖｉｃｅ
Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）など）、無線（たとえば、Ｗｉ−ＦｉまたはＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ）など）、または光（たとえば、同期光ネットワーク（ＳＯＮＥＴ）または同期デジタル・ハイアラーキ（ＳＤＨ）など）リンクを含む。特定の実施形態では、１または複数のリンク１５０は、それぞれ、アドホック・ネットワーク、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＷＷＡＮ、ＭＡＮ、インターネットの一部分、ＰＳＴＮの一部分、セルラ技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク１５０、または２以上のそのようなリンク１５０の組合せを含む。リンク１５０は、必ずしもネットワーク環境１００全体を通じて同じであることを必要としない。１または複数の第１のリンク１５０は、１または複数の点で１または複数の第２のリンク１５０と異なってもよい。
【００１０】
図２は、例示的なソーシャル・グラフ２００を示す。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、１または複数のソーシャル・グラフ２００を１または複数のデータ・ストア内に記憶する。特定の実施形態では、ソーシャル・グラフ２００は、複数のノード（複数のユーザノード２０２または複数のコンセプトノード２０４を含んでもよい）と、それらのノードを接続する複数のエッジ２０６とを含んでもよい。図２に示されている例示的なソーシャル・グラフ２００は、説明のために、２次元の視覚マップ表現で示されている。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０、クライアント・システム１３０、またはサードパーティ・システム１７０は、適切な用途のためにソーシャル・グラフ２００および関連するソーシャル・グラフ情報にアクセスする。ソーシャル・グラフ２００のノードおよびエッジは、データ・オブジェクトとして、たとえばデータ・ストア（ソーシャル・グラフ・データベースなど）内に記
憶されてもよい。そのようなデータ・ストアは、ソーシャル・グラフ２００のノードまたはエッジの、１または複数の検索可能または照会可能なインデックスを含んでもよい。
【００１１】
特定の実施形態では、ユーザノード２０２は、ソーシャル・ネットワーキング・システム１６０のユーザに対応する。限定するものとしてではなく一例として、ユーザは、ソーシャル・ネットワーキング・システム１６０と、またはソーシャル・ネットワーキング・システム１６０を通じて対話または通信する個人（人間のユーザ）、エンティティ（たとえば、企業、事業者、またはサードパーティ・アプリケーション）、または（たとえば、個人またはエンティティの）グループであってよい。特定の実施形態では、ユーザがアカウントをソーシャル・ネットワーキング・システム１６０に登録するとき、ソーシャル・ネットワーキング・システム１６０は、そのユーザに対応するユーザノード２０２を作成し、そのユーザノード２０２を１または複数のデータ・ストア内に記憶する。本明細書に記載のユーザおよびユーザノード２０２は、適切な場合、登録されたユーザ、および登録されたユーザに関連付けられているユーザノード２０２に及ぶ。それに加えて、または代替として、本明細書に記載のユーザおよびユーザノード２０２は、適切な場合、ソーシャル・ネットワーキング・システム１６０に登録しなかったユーザに及ぶ。特定の実施形態では、ユーザノード２０２は、ユーザによって提供された情報、またはソーシャル・ネットワーキング・システム１６０を含む様々なシステムによって収集された情報に関連付けられてもよい。限定するものとしてではなく一例として、ユーザは、自分の名前、プロフィール写真、連絡先情報、誕生日、性別、婚姻状態、家族状態、雇用、学歴、好み、関心、または他の人口統計情報を提供してもよい。特定の実施形態では、ユーザノード２０２は、ユーザに関連付けられている情報に対応する１または複数のデータ・オブジェクトに関連付けられてもよい。特定の実施形態では、ユーザノード２０２は、１または複数のウェブ・ページに対応してもよい。
【００１２】
特定の実施形態では、コンセプトノード２０４は、コンセプトに対応する。限定するものとしてではなく一例として、コンセプトは、場所（たとえば、映画館、レストラン、目印、または都市など）、ウェブサイト（たとえば、ソーシャル・ネットワーキング・システム１６０に関連付けられているウェブサイト、またはウェブアプリケーションサーバに関連付けられているサードパーティウェブサイトなど）、エンティティ（たとえば、人、事業者、グループ、スポーツチーム、または有名人など）、ソーシャル・ネットワーキング・システム１６０内、またはウェブアプリケーションサーバなど外部サーバ上に位置するリソース（たとえば、オーディオファイル、映像ファイル、デジタル写真、テキストファイル、構造化文書、またはアプリケーションなど）、実際の財産または知的財産（たとえば、彫刻、絵画、映画、ゲーム、楽曲、着想、写真、または書物など）、ゲーム、アクティビティ、着想もしくは理論、別の好適なコンセプト、または２以上のそのようなコンセプトに対応してもよい。コンセプトノード２０４は、ユーザによって提供されたコンセプトの情報、またはソーシャル・ネットワーキング・システム１６０を含む様々なシステムによって収集された情報に関連付けられてもよい。限定するものとしてではなく一例として、コンセプトの情報は、名前もしくはタイトル、１または複数の画像（たとえば、本の表紙の画像）、ロケーション（たとえば、住所または地理的ロケーション）、（ＵＲＬに関連付けられる）ウェブサイト、連絡先情報（たとえば、電話番号または電子メール・アドレス）、他の好適なコンセプト情報、またはそのような情報の任意の好適な組合せを含んでもよい。特定の実施形態では、コンセプトノード２０４は、コンセプトノード２０４に関連付けられている情報に対応する１または複数のデータ・オブジェクトに関連付けられてもよい。特定の実施形態では、コンセプトノード２０４は、１または複数のウェブ・ページに対応してもよい。
【００１３】
特定の実施形態では、ソーシャル・グラフ２００内のノードは、ウェブ・ページを表しても、ウェブ・ページによって表されてもよい（「プロフィールページ」と呼ばれる）。
プロフィールページは、ソーシャル・ネットワーキング・システム１６０によってホストされ、またはそこからアクセス可能であってもよい。また、プロフィールページは、サードパーティ・システム１７０に関連付けられているサードパーティウェブサイト上でホストされてもよい。限定するものとしてではなく一例として、特定の外部ウェブ・ページに対応するプロフィールページは、その特定の外部ウェブ・ページであってもよく、プロフィールページが、特定のコンセプトノード２０４に対応してもよい。プロフィールページは、他のユーザのすべてまたは選択されたサブセットによって閲覧可能であってもよい。限定するものとしてではなく一例として、ユーザノード２０２は、対応するユーザがコンテンツを追加し、宣言をし、または他の方法で自分を表現する、対応するユーザプロフィールページを有してもよい。限定するものとしてではなく別の例として、コンセプトノード２０４は、１または複数のユーザがコンセプトノード２０４に対応するコンセプトに特に関連してコンテンツを追加し、宣言をし、またはユーザ自身を表現する、対応するコンセプトプロフィールページを有してもよい。
【００１４】
特定の実施形態では、コンセプトノード２０４は、サードパーティ・システム１７０によってホストされるサードパーティウェブページまたはリソースを表す。サードパーティウェブページまたはリソースは、要素の中でもとりわけ、コンテンツ、選択可能なアイコンもしくは他のアイコン、またはアクションもしくはアクティビティを表す（たとえば、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＡＪＡＸ、またはＰＨＰコードにより実装される）他の対話可能なオブジェクトを含んでもよい。限定するものとしてではなく一例として、サードパーティウェブページは、「いいね」、「チェックイン」、「食べる」、「推奨する」、または別の好適なアクションまたはアクティビティなど、選択可能なアイコンを含んでもよい。サードパーティウェブページを閲覧するユーザは、アイコンの１つ（たとえば、「食べる」）を選択することによって、アクションを行う。これによって、クライアント・システム１３０は、ユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム１６０へ送信する。ソーシャル・ネットワーキング・システム１６０は、メッセージに応答して、ユーザに対応するユーザノード２０２とサードパーティウェブページまたはリソースに対応するコンセプトノード２０４との間にエッジ（たとえば、「食べる」エッジ）を作成し、エッジ２０６を１または複数のデータ・ストア内に記憶する。
【００１５】
特定の実施形態では、ソーシャル・グラフ２００内の１対のノードが、１または複数のエッジ２０６によって互いに接続されてもよい。１対のノードを接続するエッジ２０６は、その対のノード間の関係を表す。特定の実施形態では、エッジ２０６は、１対のノード間の関係に対応する１または複数のデータ・オブジェクトまたは属性を含み、または表してもよい。限定するものとしてではなく一例として、第１のユーザは、第２のユーザが第１のユーザの「友達」であることを示してもよい。この示したことに応答して、ソーシャル・ネットワーキング・システム１６０は、「友達要求」を第２のユーザに送信してもよい。第２のユーザが「友達要求」を確認した場合、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・グラフ２００内で第１のユーザのユーザノード２０２を第２のユーザのユーザノード２０２に接続するエッジ２０６を作成し、エッジ２０６をソーシャル・グラフ情報としてデータ・ストアの１または複数に記憶してもよい。図２の例では、ソーシャル・グラフ２００は、ユーザ「Ａ」とユーザ「Ｂ」とのユーザノード２０２間の友達関係を示すエッジ２０６と、ユーザ「Ｃ」とユーザ「Ｂ」とのユーザノード２０２間の友達関係を示すエッジとを含む。本開示は特定のユーザノード２０２を接続する特定の属性を有する特定のエッジ２０６について記載し示しているが、本開示は、ユーザノード２０２を接続する任意の好適な属性を有する任意の好適なエッジ２０６を企図する。限定するものとしてではなく一例として、エッジ２０６は、友達関係、家族関係、仕事関係もしくは雇用関係、ファン関係、フォロワ関係、ビジタ関係、加入者関係、主従関係、相互的関係、非相互的関係、別の好適なタイプの関係、または２以上のそのような関係を表
してもよい。さらに、本開示は一般にノードを接続されているものとして記載しているが、本開示は、ユーザまたはコンセプトも接続されているものとして記載している。本明細書では、接続されているユーザまたはコンセプトへの言及は、適切な場合、ソーシャル・グラフ２００内で１または複数のエッジ２０６によって接続されているユーザまたはコンセプトに対応するノードに及ぶ。
【００１６】
特定の実施形態では、ユーザノード２０２とコンセプトノード２０４との間のエッジ２０６は、コンセプトノード２０４に関連付けられているコンセプトに向かってユーザノード２０２に関連付けられているユーザによって行われる特定のアクションまたはアクティビティを表してもよい。限定するものとしてではなく一例として、図２に示されているように、ユーザは、コンセプトに対して「いいね」と表明することができ、コンセプトに「通った」、コンセプトを「プレイした」、「聴いた」、「調理した」、コンセプトに「勤務した」、またはコンセプトを「見た」のであり、コンセプトのそれぞれは、エッジタイプまたはサブタイプに対応する。コンセプトノード２０４に対応するコンセプトプロフィールページは、たとえば、選択可能な「チェックイン」アイコン（たとえば、クリッカ可能な「チェックイン」アイコン）または選択可能な「お気に入りに追加」アイコンを含んでもよい。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャル・ネットワーキング・システム１６０は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジ、または「チェックイン」エッジを作成する。限定するものとしてではなく別の例として、ユーザ（ユーザ「Ｃ」）は、特定のアプリケーション（オンラインミュージックアプリケーションであるＳＰＯＴＩＦＹ）を使用して特定の楽曲（ランブル・オン）を聴く。この場合には、ソーシャル・ネットワーキング・システム１６０は、ユーザに対応するユーザノード２０２と楽曲およびアプリケーションに対応するコンセプトノード２０４との間に「聴いた」エッジ２０６および「使用した」エッジ（図２に図示）を作成し、ユーザがその楽曲を聞き、そのアプリケーションを使用したことを示す。さらに、ソーシャル・ネットワーキング・システム１６０は、楽曲およびアプリケーションに対応するコンセプトノード２０４間に「プレイした」エッジ２０６（図２に図示）を作成し、特定の楽曲が特定のアプリケーションによってプレイされたことを示す。この場合には、「プレイした」エッジ２０６は、外部アプリケーション（ＳＰＯＴＩＦＹ）によって外部オーディオファイル（楽曲「イマジン」）に対して行われたアクションに対応する。本開示は、ユーザノード２０２とコンセプトノード２０４とを接続する特定の属性を有する特定のエッジ２０６について記載しているが、本開示は、ユーザノード２０２とコンセプトノード２０４とを接続する任意の好適な属性を有する任意の好適なエッジ２０６を企図する。さらに、本開示は、ユーザノード２０２とコンセプトノード２０４の間の単一の関係を表すエッジについて記載しているが、本開示は、ユーザノード２０２とコンセプトノード２０４との間の１または複数の関係を表すエッジを企図する。限定するものとしてではなく一例として、エッジ２０６は、ユーザが「いいね」と表明したこと、および特定のコンセプトを使用したことの両方を表してもよい。あるいは、別のエッジ２０６が、ユーザノード２０２とコンセプトノード２０４（図２に示されているように、ユーザ「Ｅ」に関するユーザノード２０２と「ＳＰＯＴＩＦＹ」に関するコンセプトノード２０４）との間の関係の各タイプ（または単一の関係の複数）を表してもよい。
【００１７】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・グラフ２００内でユーザノード２０２とコンセプトノード２０４との間にエッジ２０６を作成する。限定するものとしてではなく一例として、（たとえば、ウェブブラウザまたはユーザのクライアント・システム１３０によってホストされる専用アプリケーションを使用することによってなど）コンセプトプロフィールページを閲覧するユーザは、「いいね」アイコンをクリックまたは選択することによって、ユーザがコンセプトノード２０４によって表されたコンセプトに対して「いいね」と表明することを示す。これによって、ユーザのクライアント・システム１３０は、コンセプトプロフィールページに関連付けら
れているコンセプトに対してユーザが「いいね」と表明することを示すメッセージをソーシャル・ネットワーキング・システム１６０へ送信する。ソーシャル・ネットワーキング・システム１６０は、そのメッセージに応答して、ユーザとコンセプトノード２０４との間の「いいね」エッジ２０６によって示されているように、ユーザに関連付けられているユーザノード２０２とコンセプトノード２０４との間にエッジ２０６を作成してもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、エッジ２０６を１または複数のデータ・ストア内に記憶してもよい。特定の実施形態では、エッジ２０６は、特定のユーザ・アクションに応答してソーシャル・ネットワーキング・システム１６０によって自動的に形成されてもよい。限定するものとしてではなく一例として、第１のユーザが写真をアップロードし、映画を見たか、または楽曲を聴いた場合、エッジ２０６は、第１のユーザに対応するユーザノード２０２とそれらのコンセプトに対応するコンセプトノード２０４との間に形成されてもよい。本開示は、特定のエッジ２０６を特定の方法で形成することについて記載しているが、本開示は、任意の好適なエッジ２０６を任意の好適な方法で形成することを企図する。
【００１８】
さらに、任意の２つのノード間の分離度は、一方のノードから他方のノードにソーシャル・グラフを横断するために必要とされるホップ（またはエッジ）の最小数として定義される。２つのノード間の分離度は、ソーシャル・グラフ内の２つのノードによって表されるユーザ間またはコンセプト間の関連性の尺度と考えることができる。
【００１９】
ソーシャル・ネットワーキング・システムは、ユーザに対し、そのユーザに関係する記録されたアクティビティまたはアクションに基づき、頻繁に更新されるコンテンツを提供する。特定の実施形態では、ソーシャル・ネットワーキング・システムは、ニュースフィード・サービスをサポートする。特定の実施形態では、ニュースフィードは、１以上のニュースフィード・ストーリを含むデータ・フォーマットを含む。各ニュースフィード・ストーリは、特定の主題またはトピックと関係するコンテンツを含んでよい。特定の実施形態では、ソーシャル・ネットワーキング・システムは、特定のユーザ・アクションに関係するアクティビティまたはアクションをニュースフィード・ストーリに集約してもよい。例えば、第１のユーザは、ソーシャル・ネットワーキング・システムに写真をポストしてもよく、一方、ソーシャル・ネットワーキング・システムの他のユーザは、その写真に関係する様々なアクティビティまたはアクションを行っていてもよい。他のユーザは、その写真に「いいね」と表明してもよく、その写真に関係するコメントをポストしてもよく、その写真に対し１以上の特定のユーザをタグ付けしてもよい。ソーシャル・ネットワーキング・システムは、その写真に関係するアクティビティを、その写真のイメージ、第１のユーザのプロフィール写真、他のユーザによるその写真に関する「いいね」のカウント、およびその写真に関係する１以上のコメントを含むニュースフィード・ストーリに集約してもよい。別の例では、第１のユーザは、１つの場所（例えば、ランドマーク、レストラン、デパート）に対応するウェブ・ページ（ソーシャル・ネットワーキング・システムまたはサードパーティ・システムによって維持される）にチェックインを行ってもよい。ソーシャル・ネットワーキング・システムの他のユーザは、このチェックイン・アクティビティに「いいね」と表明してもよく、このチェックイン・アクティビティに関係するコメントをポストしてもよい。ソーシャル・ネットワーキング・システムは、そのチェックイン・アクティビティに関係するアクティビティを、そのウェブ・ページのリンクおよびイメージ、第１のユーザのプロフィール写真、他のユーザによるそのチェックイン・アクティビティに関する「いいね」のカウント、およびそのチェックイン・アクティビティに関係する１以上のコメントを含むニュースフィード・ストーリに集約してもよい。また、ソーシャル・ネットワーキング・システムは、そのウェブ・ページに対する更新をニュースフィード・ストーリに集約してもよく、ウェブ・ページに関係する広告（例えば、そのウェブ・ページに関係するビジネスからのオンライン・クーポン）を行ってもよい。特定の実施形態では、ソーシャル・ネットワーキングは、１以上のニュースフィード・ストーリ
を含むニュースフィードを閲覧ユーザに提示してもよい。例えば、この閲覧ユーザのクライアント・デバイスによってホストされるアプリケーション（例えば、ウェブ・ブラウザ）は、ソーシャル・ネットワーキング・システムからニュースフィードを取り出し、アプリケーションのユーザ・インタフェースにニュースフィードを表示する。アプリケーションは、アプリケーションのユーザ・インタフェースにおいて。それぞれのフレーム（例えば、ハイパーテキストマークアップ言語すなわちＨＴＭＬのｉＦｒａｍｅ）にニュースフィードにおける各ニュースフィード・ストーリを表示してもよい。
【００２０】
ソーシャル・ネットワーキング・システムは、ソーシャル・グラフ情報に基づき、アクティビティまたはアクションをニュースフィード・ストーリに集約してもよい。例えば、ソーシャル・ネットワーキング・システムは、閲覧ユーザのために、ソーシャル・グラフ上において閲覧ユーザから指定の隔たりの程度内（例えば、２次の隔たり以内）に存在するユーザによって行われたアクティビティまたはアクションに関係するニュースフィード・ストーリを含むニュースフィードを集約してもよい。ソーシャル・ネットワーキング・システムは、プライバシ設定に基づき、アクティビティまたはアクションをニュースフィード・ストーリに集約してもよい。例えば、ユーザは、そのユーザによって行われた特定のアクティビティの情報に他のどのユーザがアクセス可能であるかを指定してもよい。ソーシャル・ネットワーキング・システムは、閲覧ユーザのために、その閲覧ユーザにアクセス可能なアクティビティに関係するニュースフィード・ストーリを含むニュースフィードを集約してもよい。
【００２１】
ウェブ・ページなどの構造化ドキュメントは、例えば、ページ・レイアウト情報（例えば、フレーム）、スクリプト、テキスト（例えば、ＡＳＣＩＩまたはＨＴＭＬ）などのページ・コンテンツ、メディア・データ（例えば、イメージ、ビデオクリップ、またはアニメーション）、および実行可能なコード・オブジェクト（例えば、ブラウザ・ウィンドウまたはフレーム内において実行可能なゲーム）を含む。構造化ドキュメントは、ＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＸＨＴＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＪＡＶＡＳＣＲＩＰＴ（登録商標）、ＷｅｂＧＬ、ＣＳＳ（Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔ）アニメーションおよび遷移を含むＣＳＳ（ＣＳＳ）、およびしばしばＪＡＶＡ（登録商標）などの言語および技術を用いて実装されてもよい。構造化ドキュメントは、それ自体、複数の構造化ドキュメントおよびコンテンツに対する参照を含んでもよい。例えば、ウェブ・ページは、グラフィカル・ユーザ・インタフェースにウェブ・ページを表示するアプリケーションに、ユーザ・イベント（例えば、マウスのクリック、マウスのホバーオーバ）に応じて、ＵＲＬおよびスクリプト・コードによって指定されるコンテンツを動的に取り出させるＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｉｏｎ）またはスクリプト・コード（例えば、ＪＡＶＡＳＣＲＩＰＴ（登録商標）、ＰＨＰ、またはＡＪＡＸ）を組込むことによって、１以上のインライン参照を含んでもよい。
【００２２】
グラフィカル・ユーザ・インタフェースに構造化ドキュメントを表示するアプリケーションは、アプリケーション・プログラム・インタフェース（ＡＰＩ）を通じて遠隔データベース（例えば、ウェブサイトによってホストされる）にデータベース・クエリを送出することによって、構造化ドキュメントによって（またはアプリケーションのユーザによって）指定されるコンテンツを取り出すことができる。遠隔データベースから返されたクエリ結果は、ＪＳＯＮ（ＪＡＶＡＳＣＲＩＰＴ（登録商標）  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）フォーマットにより表現されるコードを含んでもよい。アプリケーションは、グラフィカル・ユーザ・インタフェースに結果を表示する前に、ＪＳＯＮコードのパースを行ってもよい。また、アプリケーションは、キャッシュされているコンテンツについての１以上のローカル・ファイルにアクセスすることによって、構造化ドキュメントによって（
またはアプリケーションのユーザによって）指定されるコンテンツを取り出してもよい。
【００２３】
ユーザがアプリケーション（例えば、ウェブ・ブラウザ）のグラフィカル・ユーザ・インタフェースにより構造化ドキュメントの閲覧または対話を行うと、そのアプリケーションは、グラフィカル・ユーザ・インタフェース内に表示される構造化ドキュメントのコンテンツの取出およびレンダリングを行う。アプリケーションは、ユーザがグラフィカル・ユーザ・インタフェースにおいて構造化ドキュメントを上または下にスクロールさせるとき、構造化ドキュメントの追加のコンテンツの取出およびレンダリングを行ってもよい。構造化ドキュメントのコンテンツの取出およびレンダリングに関係する動作は、上述のデータベース・クエリ、ＪＳＯＮパース、またはファイル・アクセス（またはデータ直列化もしくは直列化復元）を含んでもよい。構造化ドキュメントのコンテンツの取出およびレンダリングに関係する動作は、構造化ドキュメントにおけるイメージのための写真デコード（例えば、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）を含んでもよい。しかしながら、構造化ドキュメントのコンテンツの取出およびレンダリングに関係する動作は、ハードウェア資源が制限されているアプリケーションの性能に影響を与え、アプリケーションのユーザエンゲージメントおよび質を減少させる場合がある。
【００２４】
例えば、データベース・クエリがアプリケーションによって遠隔データベースに送出されており、遠隔データベースが応答しない場合、アプリケーションが休止されてもよい。例えば、大きな写真のデコードは、より大きな処理またはメモリのリソースを必要とし、したがってアプリケーションの実行を妨げる場合がある。例えば、ＪＳＯＮパース、データベース・クエリ、データ直列化または直列化復元、および写真デコードは、より大きなメモリを必要とするので、アプリケーションをホストするコンピューティング・デバイスによって自動メモリ管理アクティビティ（例えば、ＪＡＶＡ（登録商標）プログラミング言語におけるガーベジ・コレクション）のトリガを行ってもよい。自動メモリ管理アクティビティが著しい量の処理資源を消費して、アプリケーションに関連付けられているコード実行（例えば、ＪＡＶＡ（登録商標）バーチャル・マシンの実行）における休止を引き起こしてもよい。さらにまた、自動メモリ管理アクティビティは、アプリケーションによってではなく、自動メモリ管理アクティビティがアプリケーションをホストするコンピューティング・デバイスによって制御されているので、アプリケーションに時外れの休止をもたらす場合がある。スクロールまたはアニメーションなどの重大なイベントの実行中、それらの「重い」動作は、カクカクした（ｃｈｏｐｐｙ）スクロール、スクリーンのフリーズ、またはフレーム落ちなど、アプリケーションの視覚的な経験の質を下げる場合がある。一方、ＪＳＯＮパース、データベース・クエリ、ファイル・アクセスまたは、グラフィカル・ユーザ・インタフェースを表示するアプリケーションとは異なる別のアプリケーションに由来する写真デコードなどの動作も、グラフィカル・ユーザ・インタフェースの視覚的な経験の質を下げる場合がある。
【００２５】
特定の実施形態では、アプリケーションのグラフィカル・ユーザ・インタフェースの視覚的な経験を保持する方法について記載する。特定の実施形態では、スクロールおよびアニメーションなどの重大なイベントの実行中に重い動作を延期することによって、グラフィカル・ユーザ・インタフェースの視覚的な経験を保持する。
【００２６】
図３には、重大なイベントの実行中に重い動作を延期するための一例の方法３００を示す。方法３００は、コンピューティング・デバイスによって実行されることができる。例えば、方法３００は、コンピューティング・デバイスの１以上のプロセッサ上で実行する、１以上のコンピューティング・プロセスによって実行されてもよい。コンピューティング・デバイスは、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、スマートフォン、または１以上のグラフィカル・ユーザ・インタフェ
ースを表示する少なくとも１つのディスプレイを備えた任意の適切なコンピューティング・デバイスであってよい。方法３００は、工程３１０によって開始できる。特定の実施形態では、工程３１０にて、コンピューティング・デバイスは、コンピューティング・デバイスによって表示されるグラフィカル・ユーザ・インタフェースの変化に対応するイベントを検出する。
【００２７】
このグラフィカル・ユーザ・インタフェースの変化は、上述のように１以上の重い動作によって影響され得る重大なイベントの実行に相当し得る。例えば、グラフィカル・ユーザ・インタフェースは、コンテンツ・オブジェクト（例えば、テキスト、イメージ、ＨＴＭＬの  ｉＦｒａｍｅなど）のスクロール可能なリストを表示する。別の例では、グラフィカル・ユーザ・インタフェースは、ニュースフィード・ストーリのスクロール可能なリストを含むニュースフィードを表示してもよい（例えば、各ニュースフィード・ストーリはＨＴＭＬのｉＦｒａｍｅに含まれる）。このグラフィカル・ユーザ・インタフェースの変化は、コンピューティング・デバイスのユーザによって開始されるスクロール・イベントに相当し得る。ユーザは、グラフィカル・ユーザ・インタフェースを表示するタッチ・スクリーン上でスライドのジェスチャを用いることによって、またはマウスもしくはポインティング・デバイスを用いてグラフィカル・ユーザ・インタフェースのスクロール・バーを上または下にドラッグすることによって、グラフィカル・ユーザ・インタフェースを上または下にスクロールできる。スクロール・イベントは、グラフィカル・ユーザ・インタフェースの垂直軸に沿って、グラフィカル・ユーザ・インタフェースの水平軸に沿って、または任意の適切な方向に沿ってよい。また、このグラフィカル・ユーザ・インタフェースの変化は、グラフィカル・ユーザ・インタフェースによって表示されるスクロール可能なリストに関連付けられているフライ・イベントに相当してもよい。ユーザは、フリック・タッチ・ジェスチャを用いて、リストがフリック・タッチ・ジェスチャの速度でグラフィカル・ユーザ・インタフェース中で移動する（「フライ」）するように、スクロール可能なリストを上または下へ（または任意の適切な方向へ）スクロールでき、徐々に速度を落として停止させることができる。
【００２８】
このグラフィカル・ユーザ・インタフェースの変化は、グラフィカル・ユーザ・インタフェースに表示されるアニメーション・イベントに相当してもよい。アニメーション・イベントは、グラフィカル・ユーザ・インタフェースの表示エリアの全部または一部を含むアニメーション効果を含んでもよい。アニメーション・イベントは、グラフィカル・ユーザ・インタフェースに表示されるフレーム内のアニメーション効果を含んでもよい。
【００２９】
このグラフィカル・ユーザ・インタフェースの変化は、コンピューティング・デバイスのユーザによって、またはコンピューティング・デバイス上で動作するプログラムまたはオペレーティング・システムのプログラマによって定義される、カスタム・イベントに相当してもよい。プログラムのプログラマは、所定のしきい値を越える変化に対応するようにカスタム・イベントを定義してもよい。例えば、プログラマは、カスタム・イベントが、グラフィカル・ユーザ・インタフェースの変化がグラフィカル・ユーザ・インタフェースの表示エリアの２０パーセントを超える変化に相当する場合、カスタム・イベント（プログラムの実行中）を定義してもよい。別の例では、カスタム・イベントが、グラフィカル・ユーザ・インタフェースに新たなフレームを表示することに相当し、かつ、その新たなフレームのエリアがグラフィカル・ユーザ・インタフェースの２０パーセントを超える場合、プログラマはカスタム・イベントを定義してもよい。さらに別の例では、カスタム・イベントが、グラフィカル・ユーザ・インタフェースの新たなアニメーションに相当し、かつ、そのアニメーションのエリアがグラフィカル・ユーザ・インタフェースの表示エリアの２０パーセントを超える場合、プログラマはカスタム・イベントを定義してもよい。一実施形態では、コンピューティング・デバイス（例えば、コンピューティング・デバイス上で動作するオペレーティング・システム）は、その変化が所定のしきい値を超える
（例えば、その変化がグラフィカル・ユーザ・インタフェースの表示エリアの３０パーセントを超える）場合、グラフィカル・ユーザ・インタフェースにおける変化に対応するイベントを検出してもよい。
【００３０】
コンピューティング・デバイスは、リスナーまたはイベント・メッセージングを用いることによって、コンピューティング・デバイスにより表示されたグラフィカル・ユーザ・インタフェースの変化に対応するイベントを検出してもよい。例えば、コンピューティング・デバイス上で動作するディテクタ・プロセスは、グラフィカル・ユーザ・インタフェース（例えば、ハンドラ機能を用いる）を表示するアプリケーション（またはオペレーティング・システム）を、そのグラフィカル・ユーザ・インタフェースに関連付けられているスクロール・イベントに対するリスナーとして。登録してもよい。ディテクタ・プロセスは、このリスナー機能を通じてスクロール・イベントを検出することができる。また、ディテクタ・プロセスは、グラフィカル・ユーザ・インタフェースに関連付けられているアニメーション・イベントに対するリスナーとして登録することもできる。ディテクタ・プロセスは、リスナー機能を通じて、アニメーション・イベントの開始またはアニメーション・イベントの停止を検知することができる。また、ディテクタ・プロセスは、カスタム・イベントの開始および終了を検出するために、カスタム・イベントに対するリスナーとして登録することもできる。例えば、ディテクタ・プロセスは、リスナー機能を通じて、カスタム・イベントの開始より前である状態、カスタム・イベントの処理中の状態、およびカスタム・イベントの終了より後である状態を検出してもよい。
【００３１】
特定の実施形態では、工程３２０にて、コンピューティング・デバイスは、検出したイベントに基づき少なくとも１つの動作を識別する。コンピューティング・デバイスによって識別された動作は、検出されたイベント中に視覚的な経験に影響を与える重い動作である場合がある。例えば、コンピューティング・デバイスによって識別された動作は、ＪＳＯＮパース、データベース・クエリ、データ直列化または直列化復元、または上述の写真デコードを含む。特定の実施形態では、検出されたイベント中に視覚的な経験に影響を与える任意の適切な動作が想定される。例えば、コンピューティング・デバイスによって識別された動作は、グラフィカル・ユーザ・インタフェースに関連付けられているフレームレートの著しい減少（例えば、３５パーセントを超える）を引き起こす。別の例では、コンピューティング・デバイスによって識別された動作は、１フレームの期間より長い（例えば、６０Ｈｚのフレームレートについては１７ミリ秒より長い）期間、グラフィカル・ユーザ・インタフェースを表示するアプリケーションの実行を休止させる。すなわち、この動作によってグラフィカル・ユーザ・インタフェースにおける１以上のフレームが欠落する。
【００３２】
コンピューティング・デバイスは、リスナーを用いるかメッセージングを均一化することによって、少なくとも１つの動作を識別することができる。例えば、ディテクタ・プロセスは、上述のように、スクロール・イベント、アニメーション・イベントの開始、またはアニメーション・イベントの終了など、検出されたイベントを公表してもよい。一方、動作（例えば、ＪＳＯＮパース、データベース・クエリなど）は、ディテクタ・プロセスをサブスクライブしてもよい。ディテクタ・プロセスによって公表されたイベントに対するサブスクライバとして、動作は検出されたイベントに関するディテクタ・プロセスによって通知されてもよい。すなわち、コンピューティング・デバイスは、ディテクタ・プロセスに対するサブスクライバとして、検出されたイベントに関するディテクタ・プロセスによって通知される少なくとも１つの動作を識別してもよい。ここでは、識別されたプロセス（サブスクライバ）は、ディテクタ・プロセスからの、およびグラフィカル・ユーザ・インタフェースからのコンピューティング・デバイスによって実行される異なるコンピューティング・スレッド（またはプロセス）のものであってもよい。したがって、コンピューティング・デバイスは、ディテクタ・プロセスまたはグラフィカル・ユーザ・インタ
フェースの実行に衝突することなく、識別された動作を延期したり、中断したりできる。
【００３３】
特定の実施形態では、工程３３０にて、コンピューティング・デバイスは、識別された動作の状態を判定する。コンピューティング・デバイスは、識別された動作がアイドルであるか否かを判定してもよい。例えば、遠隔データベースからの応答を待機する間、データベース・クエリ動作はアイドルである場合がある。コンピューティング・デバイスは、識別された動作が処理の初期化段階にあるか否か（例えば、ちょうど入力データを受信するところ）、識別された動作が既にデータを処理しているか否か、または識別された動作がほぼデータの処理を完了しているか否かを判定してもよい。例えば、ファイル・アクセス動作は、特定のファイルにアクセスするための命令をちょうど受信する。あるいは、ファイル・アクセス動作は、特定のファイルからデータを取り出している。あるいは、ファイル・アクセス動作は、特定のファイルからデータを取り出して、その取り出しデータをちょうど返すところである。
【００３４】
特定の実施形態では、工程３４０にて、コンピューティング・デバイスは、判定した状態に少なくとも部分的に基づき、識別した動作を延期する。例えば、コンピューティング・デバイスは、識別された動作がアイドルである場合、識別された動作を延期する。コンピューティング・デバイスは、識別された動作がそのデータ処理の初期化段階にある場合、識別された動作を延期することができる。コンピューティング・デバイスは、識別された動作が既にデータを処理しているか、ほとんどデータの処理を完了している場合、識別された動作を延期しないことができる。コンピューティング・デバイスは、識別された動作が既にデータを処理している場合、識別された動作を延期してもよい。
【００３５】
特定の実施形態では、コンピューティング・デバイスは、検出されたイベントの終了後、識別された動作を再開してもよい。例えば、動作は、ディテクタ・プロセスに対するサブスクライバとして、ディテクタ・プロセスによって公表されたアニメーション・イベントの開始の受信後に、その実行を中断してよい。この動作は、ディテクタ・プロセスによって公表されたアニメーション・イベントの終了の受信後に、その実行を再開してよい。
【００３６】
他の実施形態では、コンピューティング・デバイスは、所定の期間の後、延期された動作を再開してもよい。すなわち、コンピューティング・デバイスは、例えば、その延期が延期された動作からの結果を待機している（そのコンピューティング・デバイス上で動作している）別のコンピューティング・プロセスの実行を偶発的に阻止しないように、識別された動作の延期を時間切れにしてもよい。
【００３７】
特定の実施形態は、適切な場合、図３の方法の１または複数のステップを繰り返してもよい。この開示は、図３の方法の特定のステップを、特定の順番で発生するものとして記載し示しているが、この開示は、任意の好適な順番で発生する図３の方法の任意の好適なステップを企図する。さらに、この開示は、図３の方法の特定のステップを実施する特定の構成要素、デバイス、またはシステムについて記載し示しているが、この開示は、図３の方法の任意の好適なステップを実施する任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【００３８】
図４は、例示的なコンピュータ・システム４００を示す。特定の実施形態では、１または複数のコンピュータ・システム４００は、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施する。特定の実施形態では、１または複数のコンピュータ・システム４００は、本明細書に記載され、または示されている機能を提供する。特定の実施形態では、１または複数のコンピュータ・システム４００上で動作するソフトウェアは、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施し、または本明細書に記載され、または示されている機能
を提供する。特定の実施形態は、１または複数のコンピュータ・システム４００の１または複数の部分を含む。本明細書では、コンピュータ・システムに言及することは、適切な場合、コンピューティング・デバイスを包含してもよく、逆も同様である。さらに、コンピュータ・システムに言及することは、適切な場合、１または複数のコンピュータ・システムを包含してもよい。
【００３９】
この開示は、任意の好適な数のコンピュータ・システム４００を企図する。この開示は、任意の好適な物理形態をとるコンピュータ・システム４００を企図する。限定するものとしてではなく一例として、コンピュータ・システム４００は、組込みコンピュータ・システム、システム・オン・チップ（ＳＯＣ）、シングルボード・コンピュータ・システム（ＳＢＣ）（たとえば、コンピュータ・オン・モジュール（ＣＯＭ）またはシステム・オン・モジュール（ＳＯＭ）など）、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、対話キオスク、メインフレーム、コンピュータ・システムのメッシュ、移動体電話、携帯情報端末（ＰＤＡ）、サーバ、タブレット・コンピュータ・システム、またはこれらの２以上の組合せであってよい。適切な場合、コンピュータ・システム４００は、１または複数のコンピュータ・システム４００を含んでもよく、一元的なものであっても分散型であってもよく、複数のロケーションに跨ってもよく、複数のマシンに跨ってもよく、複数のデータ・センタに跨ってもよく、クラウド内にあってもよく、クラウドは、１または複数のネットワーク内で１または複数のクラウド・コンポーネントを含んでもよい。適切な場合、１または複数のコンピュータ・システム４００は、実質的な空間的または時間的制限なしに、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施してもよい。限定するものとしてではなく一例として、１つまたは複数のコンピュータ・システム４００は、リアルタイムで、またはバッチ・モードで、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施してもよい。１または複数のコンピュータ・システム４００は、適切な場合、異なる時に、または異なるロケーションで、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施してもよい。
【００４０】
特定の実施形態では、コンピュータ・システム４００は、プロセッサ４０２、メモリ４０４、ストレージ４０６、入力／出力（Ｉ／Ｏ）インタフェース４０８、通信インタフェース４１０、およびバス４１２を含む。この開示は、特定の数の特定の構成要素を特定の構成で有する特定のコンピュータ・システムについて記載し示しているが、この開示は、任意の好適な数の任意の好適な構成要素を任意の好適な構成で有する任意の好適なコンピュータ・システムを企図する。
【００４１】
特定の実施形態では、プロセッサ４０２は、コンピュータ・プログラムを構成するものなど命令を実行するためのハードウェアを含む。限定するものとしてではなく一例として、命令を実行するために、プロセッサ４０２は、内部レジスタ、内部キャッシュ、メモリ４０４、またはストレージ４０６から命令を取り出し（またはフェッチし）、それらを復号および実行し、次いで、１または複数の結果を内部レジスタ、内部キャッシュ、メモリ４０４、またはストレージ４０６に書き込む。特定の実施形態では、プロセッサ４０２は、データ、命令、またはアドレス用に１または複数の内部キャッシュを含んでもよい。この開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ４０２を企図する。限定するものとしてではなく一例として、プロセッサ４０２は、１または複数の命令キャッシュ、１または複数のデータ・キャッシュ、および１または複数の変換索引バッファ（ＴＬＢ）を含んでもよい。命令キャッシュ内の命令は、メモリ４０４またはストレージ４０６内の命令のコピーであってもよく、命令キャッシュは、プロセッサ４０２によるこれらの命令の取り出しを高速化する。データ・キャッシュ内のデータは、プロセッサ４０２にて実行される命令が操作するための、メモリ４０４またはストレー
ジ４０６内のデータのコピー、プロセッサ４０２で実行される後続の命令によるアクセスための、またはメモリ４０４もしくはストレージ４０６に書き込むための、プロセッサ４０２で実行された以前の命令の結果、あるいは他の好適なデータであってもよい。データ・キャッシュは、プロセッサ４０２による読出しまたは書込み動作を高速化する。ＴＬＢは、プロセッサ４０２のために仮想アドレス変換を高速化する。特定の実施形態では、プロセッサ４０２は、データ、命令、またはアドレス用に１または複数の内部レジスタを含む。この開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ４０２を企図する。適切な場合、プロセッサ４０２は、１または複数の算術論理演算ユニット（ＡＬＵ）を含むことができ、マルチコア・プロセッサであってもよく、１または複数のプロセッサ４０２を含んでもよい。この開示は、特定のプロセッサについて記載し示しているが、この開示は、任意の好適なプロセッサを企図する。
【００４２】
特定の実施形態では、メモリ４０４は、プロセッサ４０２が実行するための命令、またはプロセッサ４０２が操作するためのデータを記憶するための主記憶装置を含む。限定するものとしてではなく一例として、コンピュータ・システム４００は、ストレージ４０６または別のソース（たとえば、別のコンピュータ・システム４００など）からメモリ４０４に命令をロードする。次いで、プロセッサ４０２は、メモリ４０４から内部レジスタまたは内部キャッシュに命令をロードする。命令を実行するために、プロセッサ４０２は、内部レジスタまたは内部キャッシュから命令を取り出し、それらを復号する。命令の実行中、または実行後、プロセッサ４０２は、１または複数の結果（中間結果であることも最終結果であることもある）を内部レジスタまたは内部キャッシュに書き込む。次いで、プロセッサ４０２は、それらの結果の１または複数をメモリ４０４に書き込む。特定の実施形態では、プロセッサ４０２は、１もしくは複数の内部レジスタもしくは内部キャッシュ内、または（ストレージ４０６もしくは他の場所ではなく）メモリ４０４内の命令だけを実行し、１もしくは複数の内部レジスタもしくは内部キャッシュ内、または（ストレージ８０６もしくは他の場所ではなく）メモリ４０４内のデータだけを操作する。１または複数のメモリ・バス（それぞれがアドレス・バスとデータ・バスを含むことがある）がプロセッサ４０２をメモリ４０４に結合してもよい。バス４１２は、下記に記載されているように、１または複数のメモリ・バスを含んでもよい。特定の実施形態では、１または複数のメモリ管理ユニット（ＭＭＵ）が、プロセッサ４０２とメモリ４０４との間に存在し、プロセッサ４０２によって要求されるメモリ４０４へのアクセスを容易にする。特定の実施形態では、メモリ４０４は、ランダム・アクセス・メモリ（ＲＡＭ）を含む。このＲＡＭは、適切な場合、揮発性メモリであり得る。適切な場合、このＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であってよい。さらに、適切な場合、このＲＡＭは、シングルポート型またはマルチポート型ＲＡＭであってよい。この開示は、任意の好適なＲＡＭを企図する。メモリ４０４は、適切な場合、１または複数のメモリ４０４を含んでもよい。この開示は、特定のメモリについて記載し示しているが、この開示は、任意の好適なメモリを企図する。
【００４３】
特定の実施形態では、ストレージ４０６は、データまたは命令用のマス・ストレージを含む。限定するものとしてではなく一例として、ストレージ４０６は、ハード・ディスク・ドライブ（ＨＤＤ）、フロッピー（登録商標）ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、もしくはユニバーサル・シリアル・バス（ＵＳＢ）ドライブ、またはこれらの２以上の組合せを含んでもよい。ストレージ４０６は、適切な場合、取外し式または非取外し式（または固定）媒体を含んでもよい。ストレージ４０６は、適切な場合、コンピュータ・システム４００に対して内部であっても外部であってもよい。特定の実施形態では、ストレージ４０６は、不揮発性のソリッドステート・メモリである。特定の実施形態では、ストレージ４０６は、読出し専用メモリ（ＲＯＭ）を含む。適切な場合、このＲＯＭは、マスクプログラムドＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰ
ＲＯＭ）、電気的書き換え可能ＲＯＭ（ＥＡＲＯＭ）、もしくはフラッシュ・メモリ、またはこれらの２以上の組合せであってよい。この開示は、任意の好適な物理形態をとるマス・ストレージ４０６を企図する。ストレージ４０６は、適切な場合、プロセッサ４０２とストレージ４０６の間の通信を容易にする１または複数のストレージ制御ユニットを含んでもよい。適切な場合、ストレージ４０６は、１または複数のストレージ４０６を含んでもよい。この開示は、特定のストレージについて記載し示しているが、この開示は、任意の好適なストレージを企図する。
【００４４】
特定の実施形態では、Ｉ／Ｏインタフェース４０８は、コンピュータ・システム４００と１または複数のＩ／Ｏデバイスとの間の通信のために１または複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム４００は、適切な場合、これらのＩ／Ｏデバイスの１または複数を含んでもよい。これらのＩ／Ｏデバイスの１または複数は、人とコンピュータ・システム４００の間の通信を可能にする。限定するものとしてではなく一例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、ビデオ・カメラ、別の好適なＩ／Ｏデバイス、またはこれらの２以上の組合せを含んでもよい。Ｉ／Ｏデバイスは、１または複数のセンサを含んでもよい。この開示は、任意の好適なＩ／Ｏデバイス、およびそれらのための任意の好適なＩ／Ｏインタフェース４０８を企図する。適切な場合、Ｉ／Ｏインタフェース４０８は、プロセッサ４０２がこれらのＩ／Ｏデバイスの１または複数を駆動することを可能にする１または複数のデバイスまたはソフトウェア・ドライバを含む。Ｉ／Ｏインタフェース４０８は、適切な場合、１または複数のＩ／Ｏインタフェース４０８を含んでもよい。この開示は、特定のＩ／Ｏインタフェースについて記載し示しているが、この開示は、任意の好適なＩ／Ｏインタフェースを企図する。
【００４５】
特定の実施形態では、通信インタフェース４１０は、コンピュータ・システム４００と１もしくは複数の他のコンピュータ・システム４００または１もしくは複数のネットワークとの間の通信（たとえば、パケットベースの通信など）のために１または複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定するものとしてではなく一例として、通信インタフェース４１０は、ＥＴＨＥＲＮＥＴ（登録商標）もしくは他の有線ベースのネットワークとの通信のためのインタフェース・コントローラ（ＮＩＣ）もしくはネットワーク・アダプタ、またはＷＩ−ＦＩネットワークなど無線ネットワークとの通信のための無線ＮＩＣ（ＷＮＩＣ）もしくは無線アダプタを含んでもよい。この開示は、任意の好適なネットワーク、およびそのための任意の好適な通信インタフェース４１０を企図する。限定するものとしてではなく一例として、コンピュータ・システム４００は、アドホック・ネットワーク、パーソナル・エリア・ネットワーク（ＰＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、またはインターネットの１もしくは複数の部分、あるいはこれらの２以上の組合せと通信する。これらのネットワークの１または複数のうちの１または複数の部分は、有線であっても無線であってもよい。一例として、コンピュータ・システム４００は、無線ＰＡＮ（ＷＰＡＮ）（たとえば、ＢＬＵＥＴＯＯＴＨ（登録商標）ＷＰＡＮなど）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、携帯電話ネットワーク（たとえば、グローバル移動体通信システム（ＧＳＭ（登録商標））ネットワークなど）、もしくは他の好適な無線ネットワーク、またはこれらの２以上の組合せと通信する。コンピュータ・システム４００は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インタフェース４１０を含んでもよい。通信インタフェース４１０は、適切な場合、１または複数の通信インタフェース４１０を含んでもよい。この開示は、特定の通信インタフェースについて記載し示しているが、この開示は、任意の好適な通信インタフェースを企図する。
【００４６】
特定の実施形態では、バス４１２は、コンピュータ・システム４００の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定するものとしてではなく一例として、バス４１２は、アクセラレィティッド・グラフィックス・ポート（ＡＧＰ）もしくは他のグラフィックス・バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、フロントサイド・バス（ＦＳＢ）、ＨＴ（ＨＹＰＥＲＴＲＡＮＳＰＯＲＴ）相互接続、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、インフィニバンド相互接続、ＬＰＣ（ｌｏｗ−ｐｉｎ−ｃｏｕｎｔ）バス、メモリ・バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス、ＰＣＩエクスプレス（ＰＣＩｅ）バス、ＳＡＴＡ（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ）バス、ＶＬＢ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ  ｌｏｃａｌ）バス、もしくは別の好適なバス、またはこれらの２以上の組合せを含んでもよい。バス４１２は、適切な場合、１または複数のバス４１２を含んでもよい。この開示は、特定のバスについて記載し示しているが、この開示は、任意の好適なバスまたは相互接続を企図する。
【００４７】
本明細書では、１または複数の非一時的コンピュータ可読記憶媒体は、適切な場合、１または複数の半導体ベースの、もしくは他の集積回路（ＩＣ）（たとえば、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）または特定用途向けＩＣ（ＡＳＩＣ））、ハード・ディスク・ドライブ（ＨＤＤ）、ハイブリッド・ハード・ドライブ（ＨＨＤ）、光ディスク、光ディスク・ドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピー（登録商標）・ディスケット、フロッピー（登録商標）・ディスク・ドライブ（ＦＤＤ）、磁気テープ、ソリッドステート・ドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュア・デジタル・カードもしくはセキュア・デジタル・ドライブ、任意の他の好適な非一時的コンピュータ可読記憶媒体、またはこれらの２以上の組合せを含んでもよい。非一時的コンピュータ可読記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せであってよい。
【００４８】
本明細書では、「または（もしくは）」は、別段明確に示されていない限り、または別段文脈によって示されない限り、包括的（ｉｎｃｌｕｓｉｖｅ）であり、排他的なものではない。したがって、本明細書では、「ＡまたはＢ」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「Ａ、Ｂ、またはその両方」を意味する。さらに、「および」は、別段明確に示されていない限り、または別段文脈によって示されない限り、共同であり、個別的でもある。したがって、本明細書では、「ＡおよびＢ」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「ＡおよびＢを共同で、または個別的に」意味する。
【００４９】
この開示の範囲は、当業者であれば理解するであろう、本明細書に記載され、または示されている例示的な実施形態に対する変更、置換、変形、代替、および修正すべてを包含する。この開示の範囲は、本明細書に記載され、または示されている例示的な実施形態に限定されない。さらに、この開示は、それぞれの実施形態について、本明細書では、特定の構成要素、要素、機能、動作、またはステップを含むものとして記載し示しているが、これらの実施形態のいずれも、当業者であれば理解するであろう、本明細書のどこかに記載され、または示されている構成要素、要素、機能、動作、またはステップのいずれかの任意の組合せまたは並べ替えを含んでもよい。さらに、添付の特許請求の範囲において、特定の機能を実施するように適合された、するように配置された、することが可能な、するように構成された、することが可能である、するように動作可能である、またはするように動作する装置もしくはシステム、または装置もしくはシステムの構成要素に言及することは、その装置、システム、または構成要素がそのように適合され、配置され、動作可
能であり、構成され、可能であり、動作可能であり、動作する限り、それ、またはその特定の機能が作動される、オンにされる、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。
【図１】
0006449843.tif 000002
【図２】
0006449843.tif 000003
【図３】
0006449843.tif 000004
【図４】
0006449843.tif 000005