(58)【調査した分野】(Int.Cl.,DB名)
1つまたは複数のコンピューティング・システムにおける1つまたは複数の非一時的なコンピュータ可読記憶媒体であって、前記媒体はロジックを具現化し、前記ロジックは実行時、
メッセージ・セッションに参加している第1のユーザによるオブジェクトの識別子の入力を検出する工程であって、前記検出は前記識別子が所定のテキストのフォーマットであることに基づき、前記メッセージ・セッションは前記識別子を含むテキストのメッセージを含む、検出工程と、
少なくとも部分的には前記オブジェクトの前記識別子に基づき、ソーシャル・ネットワーキング・システムのソーシャル・グラフにおける前記オブジェクトに対応する第1のノードを決定する工程と、
前記ソーシャル・グラフにおける前記第1のノードに関連付けられている前記オブジェクトに対応する1以上の画像にアクセスを行うアクセス工程と、
前記テキストのメッセージを第2のユーザに送信する工程であって、前記テキストのメッセージに含まれる前記識別子が前記テキストのメッセージ内においてインライン画像に置き換えられている工程であって、前記インライン画像は、前記オブジェクトに対応する前記ソーシャル・グラフにおける前記第1のノードに関連付けられているアクセスされた前記画像のうちの少なくとも1つを含む、工程と、
を行うように動作可能である、媒体。
【発明を実施するための形態】
【0005】
特定の実施形態では、コンピューティング・デバイス(ソーシャル・ネットワーキング・システムのサーバであり得る)は、メッセージ・セッションに参加しているユーザ(例えば、ソーシャル・ネットワーキング・システムのユーザ)がオブジェクトの識別子をメッセージ・セッションのメッセージのテキストに入力したことを検出することができる。オブジェクトは、例えば、ソーシャル・ネットワーキング・システムの別のユーザまたはソーシャル・ネットワーキング・システム内に表された概念であり得る。識別子は、例えば、URL(もしくは、URLの一部)、数字による識別子、またはバニティ(vanity)識別子であってよく、コンピューティング・デバイスが識別子を検出することを可能にする特定のフォーマットを有し得る。コンピューティング・デバイスは、この識別子を使用して、オブジェクトに対応する画像にアクセスを行うことができる。コンピューティング・デバイスは、第2のユーザ(例えば、メッセージの受信者)に対する表示用に、
メッセージのテキスト内の識別子に代えて画像を提供することができる。画像は、例えば、第2のユーザがその画像を閲覧する権限(permission)を有する場合に第2のユーザに対し表示されるだけである。画像のサイズは、メッセージ内のテキストのサイズに応じてスケールが変更され得る。
【0006】
図1は、ソーシャル・ネットワーキング・システムと関連付けられた一例のネットワーク環境100を示す。ネットワーク環境100は、クライアント・システム130と、ソーシャル・ネットワーキング・システム160と、サードパーティ・システム170とを含み、それらはネットワーク110によって互いに接続されている。
図1は、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110について特定の配置を示すが、本開示は、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110の任意の適切な配置を企図する。限定ではなく、一例として、ネットワーク110をバイパスして、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサードパーティ・システム170のうちの2つ以上を互いに直接的に接続することが可能である。別の例として、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサードパーティ・システム170のうちの2つ以上を全部もしくは部分的に互いに物理的または論理的に同じ位置に置くことが可能である。さらに、
図1は、特定の数のクライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110を示すが、本開示は任意の適切な数のクライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110を企図する。限定ではなく、一例として、ネットワーク環境100は、複数のクライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110を含み得る。
【0007】
本開示は、任意の適切なネットワーク110を企図する。限定ではなく、一例として、ネットワーク110の1つまたは複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカル・エリア・ネットワーク(LAN)、無線LAN(WLAN)、広域ネットワーク(WAN)、無線WAN(WWAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの一部、公衆交換電話網(PSTN)の一部、セルラ電話ネットワーク、またはこれらのうちの2つ以上の組合せを含み得る。ネットワーク110は1つまたは複数のネットワーク110を含み得る。
【0008】
リンク150は、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサードパーティ・システム170を、ネットワーク110と通信するようにまたは互いと通信するように接続することができる。本開示は、任意の適切なリンク150を企図する。特定の実施形態では、1つもしくは複数のリンク150は、1つもしくは複数の有線(例えば、デジタル加入者線(DSL)またはDOCSIS(Data Over Cable Service Interface Specification)など)リンク、無線(例えば、Wi−FiまたはWiMAX(Worldwide Interoperability for Microwave Access)など)リンク、または光(例えば、SONET(Synchronous Optical Network)またはSDH(Synchronous Digital Hierarchy)など)リンクを含む。特定の実施形態では、1つもしくは複数のリンク150は、各々、アドホック・ネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部、PSTNの一部、セルラ技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリン
ク150、または2つ以上のそのようなリンク150の組合せを含む。リンク150は、ネットワーク環境100を通じて必ずしも同じでなくてよい。1つまたは複数の第1のリンク150は、1つまたは複数の点で1つまたは複数の第2のリンク150とは異なってよい。
【0009】
特定の実施形態では、クライアント・システム130は、ハードウェア、ソフトウェア、もしくは組込式論理構成要素、または2つ以上のそのような構成要素の組合せを含み、クライアント・システム130が実装あるいはサポートする適切な機能を実行することができる電子デバイスであってよい。限定ではなく、一例として、クライアント・システム130は、デスクトップ・コンピュータ、ノートブック・コンピュータもしくはラップトップ・コンピュータ、ネットブック、タブレット・コンピュータ、電子ブック・リーダ、GPSデバイス、カメラ、携帯情報端末(PDA)、ハンドヘルド電子デバイス、セルラ電話、スマートフォン、他の適切な電子デバイス、またはそれらの任意の適切な組合せなど、コンピュータ・システムを含み得る。本開示は、任意の適切なクライアント・システム130を企図する。クライアント・システム130は、ネットワーク・ユーザが、クライアント・システム130においてネットワーク110にアクセスを行うことを可能とする。クライアント・システム130は、そのユーザが他のクライアント・システム130において他のユーザと通信することを可能とする。
【0010】
特定の実施形態では、クライアント・システム130は、MICROSOFT INTERNET EXPLORER、GOOGLE CHROME、またはMOZILLA FIREFOXなど、ウェブ・ブラウザ132を含むことが可能であり、1つもしくは複数のアドオン、プラグイン、あるいは、TOOLBARまたはYAHOO TOOLBARなどの他の拡張を有し得る。クライアント・システム130において、ユーザは、ユニフォーム・リソース・ロケータ(URL)、またはウェブ・ブラウザ132を特定のサーバ(サーバ162、またはサードパーティ・システム170と関連付けられたサーバなど)に導く他のアドレスを入力することができ、ウェブ・ブラウザ132は、ハイパー・テキスト・トランスファー・プロトコル(HTTP)要求を生成して、そのHTTP要求をサーバに通信することができる。サーバは、そのHTTP要求を受け入れて、そのHTTP要求に応答する1つまたは複数のハイパー・テキスト・マークアップ言語(HTML)ファイルをクライアント・システム130に通信することができる。クライアント・システム130は、ユーザに対する表示用に、サーバからのHTMLファイルに基づいてウェブページのレンダリングを行うことができる。本開示は、任意の適切なウェブページ・ファイルを企図する。限定ではなく、一例として、ウェブページのレンダリングは、特定のニーズに従って、HTMLファイル、拡張可能ハイパー・テキスト・マークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルから行われることができる。そのようなページは、例えば、限定なしに、JAVASCRIPT(登録商標)、JAVA(登録商標)、MICROSOFT SILVERLIGHTで書かれたスクリプトなどのスクリプト、AJAX(非同期JAVASCRIPT(登録商標)およびXML)などマークアップ言語とスクリプトとの組合せなどを実行することもできる。本明細書で、ウェブページの参照は、必要に応じて、1つまたは複数の対応するウェブページ・ファイル(ブラウザがウェブページのレンダリングを行うために使用できる)を包含し、逆も同様である。
【0011】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、オンライン・ソーシャル・ネットワークをホストすることができるネットワーク・アドレッシング可能なコンピューティング・システムであり得る。ソーシャル・ネットワーキング・システム160は、ソーシャル・ネットワーキング・データ(例えば、ユーザ・プロファイル・データ、概念プロファイル・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関係する他の適切なデータなど)を生成すること、記憶すること
、受信すること、および送信することができる。ソーシャル・ネットワーキング・システム160は、直接またはネットワーク110を介して、ネットワーク環境100の他の構成要素によってアクセスされることが可能である。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、1つまたは複数のサーバ162を含み得る。各サーバ162は、単一のサーバであっても、複数のコンピュータもしくは複数のデータ・センターにわたる分散型サーバであってもよい。サーバ162は、例えば、限定なしに、ウェブ・サーバ、ニュース・サーバ、メール・サーバ、メッセージ・サーバ、広告サーバ、ファイル・サーバ、アプリケーション・サーバ、エクスチェンジ・サーバ、データベース・サーバ、プロキシ・サーバ、本明細書で説明する機能もしくはプロセスを実行するのに適した別のサーバ、またはそれらの任意の組合せなど、様々なタイプのものであってよい。特定の実施形態では、各サーバ162は、ハードウェア、ソフトウェア、もしくは組込型論理構成要素、またはサーバ162が実装もしくはサポートする適切な機能を実行するための2つ以上のそのような構成要素の組合せを含み得る。特定の実施形態では、ソーシャル・ネットワーキング・システム164は、1つまたは複数のデータ・ストア164を含み得る。データ・ストア164は、様々なタイプの情報を記憶するために使用され得る。特定の実施形態では、データ・ストア164内に記憶された情報は、特定のデータ構造に従って組織され得る。特定の実施形態では、各データ・ストア164は関係データベースであり得る。特定の実施形態は、クライアント・システム130、ソーシャル・ネットワーキング・システム160、またはサードパーティ・システム170がデータ・ストア164内に記憶された情報を管理すること、取り出すこと、修正すること、追加すること、または削除することを可能にするインターフェースを提供することができる。
【0012】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、1つまたは複数のソーシャル・グラフを1つまたは複数のデータ・ストア164内に記憶することができる。特定の実施形態では、ソーシャル・グラフは、複数のユーザ・ノード(各々が特定のユーザに対応する)または複数の概念ノード(各々が特定の概念に対応する)を含み得る複数のノードと、それらのノードを接続する複数のエッジとを含むことが可能である。ソーシャル・ネットワーキング・システム160は、オンライン・ソーシャル・ネットワークのユーザに他のユーザと通信および対話するための能力を提供することができる。特定の実施形態では、ユーザは、ソーシャル・ネットワーキング・システム160を介してオンライン・ソーシャル・ネットワークに加わり、次いで、それらのユーザがつながることを望む、ソーシャル・ネットワーキング・システム160の複数の他のユーザに対するつながり(connection)、すなわち、関係(relationship)を追加することができる。本明細書で、「友人」という用語は、ユーザが、ソーシャル・ネットワーキング・システム160を介して、つながり、関連付け、または関係を形成した、ソーシャル・ネットワーキング・システム160の任意の他のユーザを指す場合がある。
【0013】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ソーシャル・ネットワーキング・システム160がサポートする様々なタイプのアイテムまたはオブジェクトに関してアクションを取るための能力をユーザに提供することができる。限定ではなく、一例として、アイテムおよびオブジェクトは、ソーシャル・ネットワーキング・システム160のユーザが属し得るグループもしくは社会的なネットワーク、ユーザが関心を持ち得るイベントもしくはカレンダー・エントリ、ユーザが使用できるコンピュータ・ベースのアプリケーション、ユーザがサービスを介して物品を購入もしくは販売することを可能にする取引、ユーザが実行し得る広告との対話、または他の適切なアイテムもしくはオブジェクトを含み得る。ユーザは、ソーシャル・ネットワーキング・システム160内に表されること、またはサードパーティ・システム170(ソーシャル・ネットワーキング・システム160から分離され、ネットワーク110を介してソーシャル・ネットワーキング・システム160に結合される)の外部システムによって表されることが可能
な任意のものとも対話することができる。
【0014】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、様々なエンティティをリンクさせることが可能であり得る。限定ではなく、一例として、ソーシャル・ネットワーキング・システム160は、ユーザが互いに対話すること、ならびにサードパーティ・システム170もしくは他のエンティティからコンテンツを受信すること、またはユーザがアプリケーション・プログラミング・インターフェース(API)もしくは他の通信チャネルを介して、これらのエンティティと対話できるようにすることを可能とする。
【0015】
特定の実施形態では、サードパーティ・システム170は、1つもしくは複数のタイプのサーバ、1つもしくは複数のデータ・ストア、APIを含むが、これに限定されず、1つもしくは複数のインターフェース、1つもしくは複数のウェブ・サービス、1つもしくは複数のコンテンツ・ソース、1つもしくは複数のネットワーク、または、例えば、サーバが通信することができる任意の他の適切な構成要素を含み得る。サードパーティ・システム170は、ソーシャル・ネットワーキング・システム160を運営するエンティティとは異なるエンティティによって運営され得る。しかし、特定の実施形態では、ソーシャル・ネットワーキング・システム160およびサードパーティ・システム170は、ソーシャル・ネットワーキング・システム160またはサードパーティ・システム170のユーザにソーシャル・ネットワーキング・サービスを提供するために互いに連携して動作することができる。この意味で、ソーシャル・ネットワーキング・システム160は、サードパーティ・システム170など、他のシステムがインターネット上でソーシャル・ネットワーキング・サービスおよび機能をユーザに提供するために使用することができるプラットフォーム、すなわち、バックボーンを提供し得る。
【0016】
特定の実施形態では、サードパーティ・システム170は、サードパーティ・コンテンツ・オブジェクト・プロバイダを含み得る。サードパーティ・コンテンツ・オブジェクト・プロバイダは、クライアント・デバイス130に通信することができるコンテンツ・オブジェクトの1つまたは複数のソースを含み得る。限定ではなく、一例として、コンテンツ・オブジェクトは、例えば、映画上映時間、映画レビュー、レストランレビュー、レストラン・メニュー、製品情報および製品レビュー、もしくは他の適切な情報など、ユーザに関心ある事柄または活動に関する情報を含み得る。限定ではなく、別の例として、コンテンツ・オブジェクトは、クーポン、割引券、商品券、または他の適切な奨励オブジェクトなど、奨励コンテンツ・オブジェクトを含み得る。
【0017】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ソーシャル・ネットワーキング・システム160とのユーザの対話を拡張し得るユーザ生成コンテンツ・オブジェクトをも含む。ユーザ生成コンテンツは、ユーザがソーシャル・ネットワーキング・システム160に追加すること、アップロードすること、送信すること、または「掲示すること」ができる任意のものを含み得る。限定ではなく、一例として、ユーザはクライアント・デバイス130からソーシャル・ネットワーキング・システム160に掲示を通信する。掲示は、状態更新もしくは他のテキスト・データ、位置情報、写真、ビデオ、リンク、音楽、または他の類似のデータもしくは媒体など、データを含み得る。ニュースフィードまたはストリームなど、「通信チャネル」を介してサードパーティによってコンテンツをソーシャル・ネットワーキング・システム160に追加することも可能である。
【0018】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、様々なサーバ、サブシステム、プログラム、モジュール、ログ、およびデータ・ストアを含み得る。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、以下、すなわ
ち、ウェブ・サーバ、アクション・ロガー、API要求サーバ、関連性(relevance)およびランク付け(ranking)のエンジン、コンテンツ・オブジェクト分類子、通知コントローラ、アクション・ログ、サードパーティ・コンテンツ・オブジェクト露出(exposure)ログ、推論モジュール、許可/プライバシー・サーバ、検索モジュール、広告ターゲット・モジュール、ユーザ・インターフェース・モジュール、ユーザ・プロファイル・ストア、つながりストア、サードパーティ・コンテンツ・ストア、またはロケーション・ストアのうちの1つもしくは複数を含み得る。ソーシャル・ネットワーキング・システム160は、ネットワーク・インターフェース、セキュリティ機構、負荷分散装置、フェールオーバ・サーバ、管理およびネットワーク・コンソール、他の適切な構成要素、またはそれらの任意の適切な組合せなど、適切な構成要素を含むことも可能である。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ユーザ・プロファイルを記憶するための1つまたは複数のユーザ・プロファイル・ストアを含み得る。ユーザ・プロファイルは、例えば、履歴情報、人口統計情報、挙動情報、社会的情報、または、職歴、学歴、趣味もしくは選好、関心、親近感、あるいは場所など、他のタイプの記述情報を含み得る。関心情報は、1つまたは複数のカテゴリーに関係する関心を含み得る。カテゴリーは、全般的であってもよく、または特定的であってもよい。限定ではなく、一例として、靴のブランドに関する記事に対して「いいね」を表明する(like)場合、カテゴリーはブランドであってよく、または「靴」もしくは「衣類」の全般的なカテゴリーであってよい。つながりストアは、ユーザに関するつながり情報を記憶するために使用され得る。つながり情報は、類似のもしくは共通の職歴、グループ会員資格、趣味、学歴を有するか、または何らかの形で関係するもしくは共通の属性を共有するユーザを示すことができる。つながり情報は、異なるユーザとコンテンツ(内部および外部の両方)との間のユーザ定義されたつながりを含むことも可能である。ウェブ・サーバは、ネットワーク110を介して、ソーシャル・ネットワーキング・システム160を1つもしくは複数のクライアント・デバイス130または1つもしくは複数のサードパーティ・システム170とリンクさせるために使用され得る。ウェブ・サーバは、メール・サーバを含むか、メッセージを受信して、ソーシャル・ネットワーキング・システム160と1つまたは複数のクライアント・デバイス130との間で経路指定するための他のメッセージング機能を含み得る。API要求サーバは、サードパーティ・システム170が、1つまたは複数のAPIを呼び出すことによって、ソーシャル・ネットワーキング・システム160からの情報にアクセスを行うことを可能とする。アクション・ロガーは、ソーシャル・ネットワーキング・システム160上またはソーシャル・ネットワーキング・システム160外のユーザのアクションに関する通信をウェブ・サーバから受信するために使用され得る。アクション・ログとともに、サードパーティ・コンテンツ・オブジェクトに対するユーザ露出に関するサードパーティ・コンテンツ・オブジェクト・ログが維持され得る。通知コントローラは、コンテンツ・オブジェクトに関する情報をクライアント・デバイス130に提供することができる。情報は、通知としてクライアント・デバイス130にプッシュされ得るか、または情報は、クライアント・デバイス130から受信した要求に応答して、クライアント・デバイス130からプルされ得る。許可サーバは、ソーシャル・ネットワーキング・システム160のユーザの1つまたは複数のプライバシー設定を施行するために使用され得る。ユーザのプライバシー設定は、ユーザと関連付けられた特定の情報がどのように共有され得るかを判断する。許可サーバは、ユーザが、例えば、適切なプライバシー設定を設定することによってなど、そのアクションをソーシャル・ネットワーキング・システム160によって記憶させること、もしくは他のシステム(例えば、サードパーティ・システム170)と共有させることをオプト・インまたはオプト・アウトすることを可能とする。サードパーティ・コンテンツ・オブジェクト・ストアは、サードパーティ・システム170など、サードパーティから受信したコンテンツ・オブジェクトを記憶するために使用され得る。ロケーション・ストアは、ユーザと関連付けられたクライアント・デバイス130から受信した位置情報を記憶するために使用され得る。広告価格設定モジュールは、社会的情報、現在の時刻、位置情報、または他の適切な情報
を組み合わせて、通知の形で関連広告をユーザに提供することができる。
【0019】
図2は、例示的なソーシャル・グラフ200を示す。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、1つまたは複数のソーシャル・グラフ200を1つまたは複数のデータ・ストア内に記憶することができる。特定の実施形態では、ソーシャル・グラフ200は、複数のユーザ・ノード202または複数の概念ノード204を含み得る複数のノードと、それらのノードを接続する複数のエッジ206とを含み得る。
図2に示された例示的なソーシャル・グラフ200は、教示のために、2次元の視覚的なマップにより表現されている。特定の実施形態では、ソーシャル・ネットワーキング・システム160、クライアント・システム130、またはサードパーティ・システム170は、適切なアプリケーションに関するソーシャル・グラフ200および関係するソーシャル・グラフ情報にアクセスを行うことができる。ソーシャル・グラフ200のノードおよびエッジは、データ・オブジェクトとして、例えば、データ・ストア(ソーシャル・グラフ・データベースなど)内に記憶され得る。そのようなデータ・ストアは、ソーシャル・グラフ200のノードまたはエッジの1つもしくは複数の検索可能あるいはクエリによる問合せ可能なインデックスを含み得る。
【0020】
特定の実施形態では、ユーザ・ノード202は、ソーシャル・ネットワーキング・システム160のユーザに対応し得る。限定ではなく、一例として、ユーザは、ソーシャル・ネットワーキング・システム160と、あるいはソーシャル・ネットワーキング・システム160を介して対話または通信する個人(人間のユーザ)、エンティティ(例えば、企業、会社、もしくはサードパーティ・アプリケーション)、またはグループ(例えば、個人もしくはエンティティの)であり得る。特定の実施形態では、ユーザがソーシャル・ネットワーキング・システム160にアカウントを登録するとき、ソーシャル・ネットワーキング・システム160は、そのユーザに対応するユーザ・ノード202を作成して、そのユーザ・ノード202を1つまたは複数のデータ・ストア内に記憶することができる。本明細書で説明されるユーザおよびユーザ・ノード202は、必要に応じて、登録ユーザと、登録ユーザに関連付けられたユーザ・ノード202とを指す場合がある。これに加えて、またはこれに代えて、本明細書で説明されるユーザおよびユーザ・ノード202は、必要に応じて、ソーシャル・ネットワーキング・システム160に登録していないユーザを指す場合がある。特定の実施形態では、ユーザ・ノード202は、ユーザによって提供された情報、またはソーシャル・ネットワーキング・システム160を含めて、様々なシステムによって収集された情報と関連付けられることが可能である。限定ではなく、一例として、ユーザは、自らの名前、プロファイル写真、連絡先情報、誕生日、性別、婚姻状態、家族状態、職業、学歴、選好、関心、または他の人口統計情報を提供することができる。特定の実施形態では、ユーザ・ノード202は、ユーザと関連付けられた情報に対応する1つまたは複数のデータ・オブジェクトと関連付けられることが可能である。特定の実施形態では、ユーザ・ノード202は、1つもしくは複数のウェブページまたは1つもしくは複数のユーザ・プロファイル・ページ(ウェブページであってもよい)に対応し得る。
【0021】
特定の実施形態では、概念ノード204は概念に対応し得る。限定ではなく、一例として、概念は、場所(例えば、映画館、レストラン、ランドマーク、もしくは街など)、ウェブサイト(例えば、ソーシャル・ネットワーキング・システム160と関連付けられたウェブサイト、もしくはウェブ・アプリケーション・サーバと関連付けられたサードパーティ・ウェブサイトなど)、エンティティ(例えば、人物、仕事、グループ、スポーツ・チーム、もしくは有名人など)、ソーシャル・ネットワーキング・システム160内、またはウェブ・アプリケーション・サーバなど、外部サーバ上に位置し得るリソース(例えば、オーディオ・ファイル、ビデオ・ファイル、デジタル写真、テキスト・ファイル、構造化文書、もしくはアプリケーションなど)、物的財産または知的財産(例えば、彫刻、
絵画、映画、ゲーム、曲、アイデア、写真、もしくは書かれた文章など)、ゲーム、活動、アイデアもしくは理論、別の適切な概念、あるいは2つ以上のそのような概念に対応し得る。概念ノード204は、ユーザによって提供された概念の情報、または、ソーシャル・ネットワーキング・システム160を含めて、様々なシステムによって収集された情報と関連付けられることが可能である。限定ではなく、一例として、概念の情報は、名前またはタイトル、1つもしくは複数の画像(例えば、書籍の表紙ページの画像)、位置(例えば、住所または地理的位置)、ウェブサイト(URLと関連付けられることが可能な)、概念情報(例えば、電話番号または電子メールアドレス)、他の適切な概念情報、あるいはそのような情報の任意の適切な組合せを含み得る。特定の実施形態では、概念ノード204は、概念ノード204と関連付けられた情報に対応する、1つまたは複数のデータ・オブジェクトと関連付けられることが可能である。特定の実施形態では、概念ノード204はウェブページに対応し得る。
【0022】
特定の実施形態では、ソーシャル・グラフ200内のノードは、ウェブページ(「プロファイル・ページ」と呼ばれる場合もある)を表す場合があるか、またはそのようなウェブページによって表される場合がある。プロファイル・ページは、ソーシャル・ネットワーキング・システム160によってホストされ得るか、またはソーシャル・ネットワーキング・システム160にアクセス可能であり得る。プロファイル・ページは、サードパーティ・サーバ170と関連付けられたサードパーティ・ウェブサイト上でホストされることも可能である。限定ではなく、一例として、特定の外部ウェブページに対応するプロファイル・ページは特定の外部ウェブページであってよく、プロファイル・ページは特定の概念ノード204に対応し得る。プロファイル・ページは、他のユーザのすべてまたは選択されたサブセットによって閲覧可能であり得る。限定ではなく、一例として、ユーザ・ノード202は対応するユーザ・プロファイル・ページを有し、該ユーザ・プロファイル・ページにおいて、対応するユーザはコンテンツを追加すること、宣言を行うこと、あるいは、自らを表現することができる。限定ではなく、別の例として、概念ノード204は対応する概念プロファイル・ページを有し、該概念プロファイル・ページにおいて、1人または複数のユーザは(特に、概念ノード204に対応する概念に関して)コンテンツを追加すること、宣言を行うこと、または自らを表現することができる。
【0023】
特定の実施形態では、概念ノード204は、サードパーティ・システム170によってホストされたサードパーティ・ウェブページまたはリソースを表す場合がある。サードパーティ・ウェブページまたはリソースは、他の要素に加え、特に、アクションまたは活動を表すコンテンツ、選択可能なアイコンもしくは他のアイコン、あるいは他の対話可能なオブジェクト(例えば、JAVASCRIPT(登録商標)コード、AJAXコード、もしくはPHPコードで実施され得る)を含み得る。限定ではなく、一例として、サードパーティ・ウェブページは、「『いいね』を表明する」、「チェックインする」、「食べる」、「勧める」、または別の適切なアクションもしくは活動など、選択可能なアイコンを含み得る。サードパーティ・ウェブページを閲覧するユーザは、アイコンのうちの1つ(例えば、「食べる」)を選択して、クライアント・システム130に、そのユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム160に対し送信させることによってアクションを実行することができる。そのメッセージに応答して、ソーシャル・ネットワーキング・システム160は、ユーザに対応するユーザ・ノード202とそのサードパーティ・ウェブページまたはリソースに対応する概念ノード204との間にエッジ(例えば、「食べる」エッジ)を作成して、エッジ206を1つまたは複数のデータ・ストア内に記憶することができる。
【0024】
特定の実施形態では、ソーシャル・グラフ200内の一対のノードは、1つまたは複数のエッジ206によって互いに接続され得る。一対のノードを接続するエッジ206は、一対のノードの間の関係を表す場合がある。特定の実施形態では、エッジ206は、一対
のノードの間の関係に対応する1つもしくは複数のデータ・オブジェクトまたは属性を含むか、あるいはそれらを表す場合がある。限定ではなく、一例として、第1のユーザは、第2のユーザが第1のユーザの「友人」であることを示すことができる。この表示に応答して、ソーシャル・ネットワーキング・システム160は、「友人要求」を第2のユーザに送信することができる。第2のユーザが「友人要求」を確認する場合、ソーシャル・ネットワーキング・システム160は、ソーシャル・グラフ200内で第1のユーザのユーザ・ノード202を第2のユーザのユーザ・ノード202に接続するエッジ206を作成して、エッジ206をソーシャル・グラフ情報としてデータ・ストア24のうちの1つまたは複数内に記憶することができる。
図2のこの例では、ソーシャル・グラフ200は、ユーザ「A」とユーザ「B」のユーザ・ノード202間の友人関係を示すエッジ206と、ユーザ「C」とユーザ「B」のユーザ・ノード202間の友人関係を示すエッジとを含む。本開示は、特定のユーザ・ノード202を接続する特定の属性を有する特定のエッジ206を説明または例示するが、本開示は、ユーザ・ノード202を接続する任意の適切な属性を有する任意の適切なエッジ206を企図する。限定ではなく、一例として、エッジ206は、友人関係、家族関係、仕事または雇用関係、ファン関係、フォロワー関係、訪問者関係、加入者関係、上下関係、相互関係、非相互関係、別の適切なタイプの関係、または2つ以上のそのような関係を表す場合がある。さらに、本開示は、一般に、接続されているとしてノードを説明するが、本開示は、接続されているとしてユーザまたは概念についても説明する。本明細書で、接続されているユーザまたは概念の参照は、必要に応じて、1つもしくは複数のエッジ206によってソーシャル・グラフ200内で接続されているユーザまたは概念に対応するノードを指す場合がある。
【0025】
特定の実施形態では、ユーザ・ノード202と概念ノード204との間のエッジ206は、概念ノード204と関連付けられた概念に向けてユーザ・ノード202と関連付けられたユーザによって実行される特定のアクションまたは活動を表す場合がある。限定ではなく、一例として、
図2に示すように、ユーザは、その各々がエッジタイプもしくはサブタイプに対応し得る概念について、「に対して『いいね』を表明する」、「参加した」、「プレイした」、「聴いた」、「調理した」、「勤務した」、または「見た」可能性がある。概念ノード204に対応する概念プロファイル・ページは、例えば、選択可能な「チェックイン」アイコン(例えば、クリック可能な「チェックイン」アイコンなど)または選択可能な「お気に入りに追加する」アイコンを含み得る。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャル・ネットワーキング・システム160は、それぞれのアクションに対応するユーザのアクションに応答して、「お気に入り」エッジまたは「チェックイン」エッジを作成することができる。限定ではなく、別の例として、ユーザ(ユーザ「C」)は、特定のアプリケーション(オンライン・ミュージック・アプリケーションであるスポティファイ(SPOTIFY))を使用して特定の曲(「イマジン(Imagine)」)を聴くことができる。この場合、ソーシャル・ネットワーキング・システム160は、ユーザがその曲を聴いて、そのアプリケーションを使用したことを示すために、ユーザに対応するユーザ・ノード202と曲およびアプリケーションに対応する概念ノード204との間に(
図2に示すように)「聴いた」エッジ206と「使用した」エッジとを作成することができる。さらに、ソーシャル・ネットワーキング・システム160は、特定のアプリケーションによってその特定の曲がプレイされたことを示すために、曲およびアプリケーションに対応する概念ノード204間に(
図2に示すように)「プレイした」エッジ206を作成することができる。この場合、「プレイした」エッジ206は、外部オーディオ・ファイル(曲「イマジン(Imagine)」)に関して外部アプリケーション(スポティファイ(SPOTIFY))によって実行されたアクションに対応する。本開示は、ユーザ・ノード202と概念ノード204とを接続する特定の属性を有する特定のエッジ206を説明するが、本開示は、ユーザ・ノード202と概念ノード204とを接続する任意の適切な属性を有する任意の適切なエッジ206を企図する。さらに、本開示は、単一の関係を表す、ユーザ・ノード202と概念ノード204との間の
エッジを説明するが、本開示は、1つまたは複数の関係を表す、ユーザ・ノード202と概念ノード204との間のエッジを企図する。限定ではなく、一例として、エッジ206は、ユーザが「いいね」を表明したことと、特定の概念で使用したことの両方を表す場合がある。あるいは、別のエッジ206は、ユーザ・ノード202と概念ノード204との間(
図2に示すように、ユーザ「E」に関するユーザ・ノード202と「スポティファイ(SPOTIFY)」に関する概念ノード204との間)の各タイプの関係(または複数の単一関係)を表す場合がある。
【0026】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ソーシャル・グラフ200内でユーザ・ノード202と概念ノード204との間にエッジ206を作成することができる。限定ではなく、一例として、概念プロファイル・ページを閲覧するユーザは、そのユーザが「いいね」を表明するアイコンをクリックまたは選択することによって(例えば、ウェブ・ブラウザまたはユーザのクライアント・システム130によってホストされた専用アプリケーションを使用することによってなど)、概念ノード204によって表された概念に対して「いいね」を表明することを示すことができ、これは、ユーザのクライアント・システム130に概念プロファイル・ページと関連付けられた概念に対してユーザが「いいね」を表明することを示すメッセージをソーシャル・ネットワーキング・システム160に送信させることができる。このメッセージに応答して、ソーシャル・ネットワーキング・システム160は、ユーザと概念ノード204との間の「『いいね』を表明する」エッジ206によって示すように、ユーザと関連付けられたユーザ・ノード202と概念ノード204との間にエッジ206を作成することができる。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、エッジ206を1つまたは複数のデータ・ストア内に記憶することができる。特定の実施形態では、エッジ206は、特定のユーザ・アクションに応答して、ソーシャル・ネットワーキング・システム160によって自動的に形成され得る。限定ではなく、一例として、第1のユーザが写真をアップロードする場合、映画を見る場合、または曲を聴く場合、エッジ206は、第1のユーザに対応するユーザ・ノード202とそれらの概念に対応する概念ノード204との間に形成され得る。本開示は、特定のエッジ206を特定の形で形成することを説明するが、本開示は、任意の適切なエッジ206を任意の適切な形で形成することを企図する。
【0027】
特定の実施形態では、ソーシャル・ネットワーキング・システム160のユーザは、例えば、メッセージング・サービスを介して互いに通信することができる。メッセージング・サービスは、ソーシャル・ネットワーキング・システム160のサーバ162によってホスト可能であり、ソーシャル・ネットワーキング・システムのユーザが、テキストおよび添付物(例えば、URL、画像、ビデオ、または他のファイル)を含むメッセージをメッセージ・セッションで互いに送信することを可能にするメッセージング・インターフェースを含み得る。メッセージ・セッションは、ユーザ間で複数のメッセージ(例えば、添付物を含む複数行のテキスト)を包含し得る。特定の実施形態では、メッセージング・インターフェースは、ソーシャル・ネットワーキング・システムのユーザが、テキストとインライン画像とを含むメッセージを互いに送信するための操作機能を含むことも可能である。インライン画像を含む、操作機能を備えた、メッセージング・インターフェース内の例示的なメッセージを
図3に示す。
図3の例では、画像は、メッセージに対する別の添付物ではなく、メッセージ内のテキスト行内に表示される。例えば、ソーシャル・ネットワーキング・システム160内でユーザに利用可能な画像を含めて、様々なソースからこれらの画像を選ぶことができる。
【0028】
特定の実施形態では、ソーシャル・ネットワーキング・システム160のメッセージング・インターフェースのユーザは、関連付けられた画像を有するオブジェクトの識別子を指定することによって、メッセージ内のテキスト行中に画像を挿入することができる。メ
ッセージ内のテキスト行内に、ユーザは、オブジェクト(例えば、ソーシャル・ネットワーキング・システム160内のノード)に関する識別子を示す特定のフォーマットでテキスト文字列をタイプすることができ、そのオブジェクトと関連付けられた画像(例えば、ソーシャル・ネットワーキング・システム160内のノードと関連付けられた画像)をテキスト行内でメッセージの受信者に対し表示することができる。オブジェクトは、必要に応じて、概念ノード204(例えば、場所、ウェブサイト、エンティティ、もしくはリソース)、ユーザ・ノード202(例えば、個人、エンティティ、もしくはグループ)、ニュースフィード・アイテム、写真もしくは写真アルバム、またはソーシャル・ネットワーキング・システム160内もしくはソーシャル・ネットワーキング・システム160の外部の任意の他の適切なオブジェクトであり得る。例として、オブジェクトは、ソーシャル・ネットワーキング・システム160の外部のサーバ上でサードパーティ・システム170によってホストされたウェブページであり得る。画像は、概念ノード204、ユーザ・ノード202、あるいは、限定ではなく、一例として、ユーザと関連付けられたプロファイル写真、場所もしくはユーザと関連付けられたアルバム内の写真、またはインライン・メッセージ画像として使用するためにユーザ(または、ノード管理者)によって選ばれた特定の画像を含む、任意の他のオブジェクトと関連付けられた画像であり得る。画像は、例えば、ニュースフィード・アイテム内にリンクされたニュース・ストーリ内の画像を含めて、ソーシャル・ネットワーキング・システム160の外部のサーバ上でウェブページ(例えば、サードパーティ・システム170によってホストされる)内の画像であってもよい。ユーザがタイプしたテキスト文字列によってオブジェクトが識別されるので、その識別子に基づいて、オブジェクトと関連付けられた画像がフェッチされ、そのメッセージの受信者にインラインで表示され得る。テキスト文字列識別子は、画像ファイルの1つのURL全体、画像ファイルのURLの一部、ソーシャル・ネットワーキング・システム160のオブジェクトのオブジェクト識別子(例えば、ユーザ・ノード202、概念ノード204、もしくはグラフ・エッジ206に関する一意の数字による識別子)、またはソーシャル・ネットワーキング・システム160のオブジェクトに関する一意のバニティ識別子を含み得る。例として、ソーシャル・ネットワーキング・システムのユーザであるマイケル(Michael)と関連付けられたユーザ・ノードに関する一意のオブジェクト識別子は17812であってよい。マイケルに関するバニティ識別子は「MichaelRulez!!」であってもよく、これもマイケルに対応するユーザ・ノードを一意に識別する。テキスト文字列は、そのテキスト文字列がオブジェクトに関する識別子を含む(したがって、単なるメッセージのテキストではない)ことを示す特定のフォーマットでタイプされ得る。例として、ユーザがマイケルの画像を1つのテキスト行内に含めることを望む場合、ユーザは(そのテキスト行内に)「[[17812]]」とタイプすることができ、そのテキスト行がそのメッセージの受信者に表示されるとき、マイケルと関連付けられたインライン画像(例えば、マイケルのプロファイル写真)を、文字列「[[17812]]」がタイプされた場所に表示することができる。別の例として、ユーザはテキスト行内に「[[MichaelRulez!]]」とタイプすることができ、そのテキスト行がそのメッセージの受信者に表示されるとき、マイケルと関連付けられたインライン画像は文字列「[[MichaelRulez!]]」がタイプされた場所に表示されることになる。先の2つの例で、二重左角括弧[[と二重右角括弧]]は、内部のテキスト・コンテンツ(例えば、17812またはMichaelRulez!)がオブジェクト(例えば、マイケルと関連付けられたユーザ・ノード)に関する識別子であることを示す。テキスト文字列に適したフォーマットを使用して、そのテキスト文字列がオブジェクトに関する識別子を含むことを示すことができる。
【0029】
特定の実施形態では、ソーシャル・ネットワーキング・システムのAPIは、メッセージ内のインライン画像のフェッチまたは表示を処理することができる。例として、ソーシャル・ネットワーキング・システム160のメッセージ・サーバ162は、メッセージ・セッション内のメッセージの送信者が、メッセージング・インターフェース内にオブジェ
クト識別子(例えば、[[17812]])を示す特定のフォーマットでテキスト文字列をタイプしたことを認識することができる。特定の実施形態では、ソーシャル・ネットワーキング・システム160のメッセージ・サーバ162は、識別子に関して検査を実行して、その識別子が良好に形成されており(例えば、文字と数字だけ、または許可された文字の任意の他のセットを使用して)、妥当(legitimate)であるか(例えば、存在するオブジェクトに対応するか)を判断する。例えば、識別子が良好に形成されていないか、または妥当でない場合、画像をインラインで表示することに代えて、受信者に表示されるメッセージは、ユーザがタイプしたテキスト文字列(例えば、既存のオブジェクトに対応し得ない[[1781@]])を単に示すことができる。例えば、識別子が良好に形成され、妥当であるが、識別されたオブジェクトと関連付けられる写真がない場合、メッセージ受信者に対してブランク画像をインラインで表示することができる。特定の実施形態では、メッセージ受信者に表示される画像はサイズの点で固定されてよく、他の実施形態では、画像は、メッセージ・テキストのテキスト・サイズに基づいてスケールが変更され得る。加えて、表示される画像は、ユーザが自身のマウスを画像の上に置く場合、その画像を識別するテキスト文字列(例えば、[[MichaelRulez!]])をユーザに対し表示することができるように、米国リハビリテーション法の修正第508条に準拠し得る。
【0030】
オブジェクト識別子を含むメッセージの受信者のブラウザ(または、他のディスプレイ・インターフェース)がそのメッセージを受信するとき、ブラウザは、ソーシャル・ネットワーキング・システム160のサーバ162に対して画像に関するAPIクエリまたは方法要求を(メッセージ内のオブジェクト識別子に基づく引数を用いて)構築することができる(例えば、JAVASCRIPT(登録商標)により)。サーバは、その方法が有効であるかどうか、受信者のユーザ・ブラウザがその方法を要求する権限を有するかどうか、および(上述において説明したように)引数(例えば、オブジェクト識別子)が良好に形成され、妥当であるかどうかを検証することができる。これに基づいて、サーバ162は、その画像に関するURLを構築して、そのURLまたは画像をそのメッセージの受信者のブラウザに配信することができる。上述において説明したように、受信者は、テキスト文字列(例えば、識別子が良好に形成されていないか、もしくは妥当でない場合)、またはブランク画像(例えば、識別されたオブジェクトが関連する画像を有しない場合)を見ることができる。さらに、受信者ユーザは、インライン画像を見るために適切な権限(ソーシャル・ネットワーキング・システム160内に記憶されている)を有する必要がある。例えば、送信者が、識別子が良好に形成されており、妥当であり、関連の写真を有するオブジェクトを指すにもかかわらず、その受信者が見る権限を有しないというメッセージをユーザ・プロファイル写真のインライン画像とともに送信することを試みる場合、受信者は、権限が無いため、テキスト内にブランク画像しか見ることができない。
【0031】
特定の実施形態では、上述において説明したように、1つまたは複数の画像がフェッチされて、そのメッセージの受信者に表示され得る。
図4は、単一のメッセージ・セッションが、各々がオブジェクト識別子(および、関連するオブジェクト)に基づいてフェッチされた複数のインライン画像を含む例を示す。この例では、複数のインライン画像は、大型の複合画像を生み出すように配置される。他の実施形態では、GIFフォーマットの画像または一連の画像がフェッチされて、そのメッセージの受信者に表示され得る。さらに、メッセージング・サービスに関連する特定の実施形態について説明したが、テキストが通信に使用される場合はいつでも、インライン画像がソーシャル・ネットワーキング・システム160を介して用いられることが可能である。例として、ユーザがソーシャル・ネットワーキング・システム160の別のユーザ(エッジ206の一例)による掲示にコメントする場合、そのコメントは、上述において説明したように、特定のフォーマットのテキスト文字列の使用によってインライン画像を含み得る。同様に、掲示(リンクまたは状態更新などの)はテキストを含むことが可能であり、このテキストはインライン画像を含
むことも可能である。加えて、電子メール・サービスまたはチャット・サービスを含む、他のタイプの通信サービスはインライン画像用の操作機能を含めることも可能である。
【0032】
図5は、メッセージ内で画像をインラインで送信するための例示的な方法を示す。この方法は、工程510で開始し、ここで、コンピューティング・デバイス(例えば、ソーシャル・ネットワーキング・システム160のメッセージ・サーバ162)は、メッセージ・セッションに参加しているユーザが入力したオブジェクト(例えば、ユーザ・ノード202または概念ノード204)の識別子を検出する。メッセージ・セッションは、テキストを含む1つまたは複数のメッセージを含むことが可能であり、テキストは識別子を含む。工程520で、コンピューティング・デバイスは、少なくとも部分的にはその識別子に基づき、オブジェクトに対応する画像にアクセスを行う。工程530で、コンピューティング・デバイスは、第2のユーザに対して、テキスト内の識別子に代えて画像を提示する(例えば、メッセージのテキスト内にインラインで)。特定の実施形態は、必要に応じて、
図5の方法の1つまたは複数の工程を繰り返すことができる。本開示は、特定の順序で発生するとして、
図5の方法の特定の工程を説明および例示するが、本開示は、
図5の方法の任意の適切な工程が任意の適切な順序で発生することを企図する。さらに、本開示は、
図5の方法の特定の工程を実行する特定の構成要素、デバイス、またはシステムを説明および例示するが、本開示は、
図5の方法の任意の適切な工程を実行する任意の適切な構成要素、デバイス、またはシステムの任意の適切な組合せを企図する。
【0033】
図6は、例示的なコンピュータ・システム600を示す。特定の実施形態では、1つもしくは複数のコンピュータ・システム600は、本明細書で説明または例示する1つもしくは複数の方法の1つもしくは複数の工程を実行する。特定の実施形態では、1つもしくは複数のコンピュータ・システム600は、本明細書で説明または例示する機能を提供する。特定の実施形態では、1つもしくは複数のコンピュータ・システム600上で実行するソフトウェアは、本明細書で説明または例示する1つもしくは複数の方法の1つもしくは複数の工程を実行するか、あるいは本明細書で説明または例示する機能を提供する。特定の実施形態は、1つまたは複数のコンピュータ・システム600の1つまたは複数の部分を含む。本明細書で、コンピュータ・システムの参照は、必要に応じて、1つのコンピューティング・デバイスを包含する場合がある。さらに、コンピュータ・システムの参照は、必要に応じて、1つまたは複数のコンピュータ・システムを包含する場合がある。
【0034】
本開示は、任意の適切な数のコンピュータ・システム600を企図する。本開示は、任意の適切な物理的形状をとるコンピュータ・システム600を企図する。限定ではなく、一例として、コンピュータ・システム600は、組込式コンピュータ・システム、システム・オン・チップ(SOC)、シングル・ボード・コンピュータ・システム(SBC)(例えば、コンピュータ・オン・モジュール(COM)もしくはシステム・オン・モジュール(SOM)など)、デスクトップ・コンピュータ・システム、ラップトップ・コンピュータ・システムもしくはノートブック・コンピュータ・システム、対話型キオスク、メインフレーム、コンピュータ・システムのメッシュ、モバイル電話、携帯情報端末(PDA)、サーバ、タブレット・コンピュータ・システム、またはこれらのうちの2つ以上の組合せであってよい。必要に応じて、コンピュータ・システム600は、1つもしくは複数のコンピュータ・システム600を含むことが可能であり、単体または分散型であってよく、複数の位置に及んでよく、複数のマシンに及んでよく、複数のデータ・センターに及んでよく、あるいは1つもしくは複数のネットワーク内の1つもしくは複数のクラウド成分を含み得るクラウド内に存在してよい。必要に応じて、1つもしくは複数のコンピュータ・システム600は、実質的な空間的あるいは時間的な限定なしに、本明細書で説明または例示される1つもしくは複数の方法の1つもしくは複数の工程を実行することができる。限定ではなく、一例として、1つもしくは複数のコンピュータ・システム600は、本明細書で説明または例示される1つもしくは複数の方法の1つもしくは複数の工程をリ
アルタイムであるいはバッチ・モードで実行することができる。1つもしくは複数のコンピュータ・システム600は、必要に応じて、本明細書で説明または例示される1つもしくは複数の方法の1つもしくは複数の工程を異なる時間にあるいは異なる位置で実行することができる。
【0035】
特定の実施形態では、コンピュータ・システム600は、プロセッサ602と、メモリ604と、ストレージ606と、入出力(I/O)インターフェース608と、通信インターフェース610と、バス612とを含む。本開示は、特定の数の特定の構成要素を特定の配置で有する特定のコンピュータ・システムを説明および例示するが、本開示は、任意の適切な数の任意の適切な構成要素を任意の適切な配置で有する任意の適切なコンピュータ・システムを企図する。
【0036】
特定の実施形態では、プロセッサ602は、コンピュータ・プログラムを構成する命令など、命令を実行するためのハードウェアを含む。限定ではなく、一例として、命令を実行するために、プロセッサ602は、内部レジスタ、内部キャッシュ、メモリ604、またはストレージ606から命令を取出(すなわち、フェッチ)して、それらを復号および実行し、次いで、1つもしくは複数の結果を内部レジスタ、内部キャッシュ、メモリ604、またはストレージ606に書き込むことができる。特定の実施形態では、プロセッサ602は、データ、命令、またはアドレスに関する、1つもしくは複数の内部キャッシュを含み得る。本開示は、必要に応じて、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ602を企図する。限定ではなく、一例として、プロセッサ602は、1つまたは複数の命令キャッシュと、1つまたは複数のデータ・キャッシュと、1つまたは複数のトランスレーション・ルックアサイド・バッファ(TLB)とを含み得る。命令キャッシュ内の命令は、メモリ604内またはストレージ606内の命令の複写であってよく、命令キャッシュは、プロセッサ602によるそれらの命令の取出を加速し得る。データ・キャッシュ内のデータは、動作するためにプロセッサ602において実行する命令に関する、メモリ604内またはストレージ606内のデータの複写、プロセッサ602において実行する後続の命令によってアクセスを行うため、またはメモリ604もしくはストレージ606に書き込むためにプロセッサ602において実行された前の命令の結果、あるいは他の適切なデータであってよい。データ・キャッシュは、プロセッサ602による読取り動作または書き込み動作を加速し得る。TLBは、プロセッサ602に関する仮想アドレス変換を加速し得る。特定の実施形態では、プロセッサ602は、データ、命令、またはアドレスに関する、1つもしくは複数の内部レジスタを含み得る。本開示は、必要に応じて、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ602を企図する。必要に応じて、プロセッサ602は、1つもしくは複数の論理演算装置(ALU)を含んでよく、マルチコア・プロセッサであってよく、または1つもしくは複数のプロセッサ602を含んでよい。本開示は特定のプロセッサを説明および例示するが、本開示は、任意の適切なプロセッサを企図する。
【0037】
特定の実施形態では、メモリ604は、プロセッサ602が実行するための命令またはプロセッサ602が演算するためのデータを記憶するためのメイン・メモリを含む。限定ではなく、一例として、コンピュータ・システム600は、ストレージ606または別のソース(例えば、別のコンピュータ・システム600など)からメモリ604に命令をロードすることができる。プロセッサ602は、次いで、メモリ604から内部レジスタまたは内部キャッシュに命令をロードすることができる。これらの命令を実行するために、プロセッサ602は、内部レジスタまたは内部キャッシュから命令を取り出して、それらを復号することができる。命令の実行の間またはその後、プロセッサ602は、1つもしくは複数の結果(中間結果または最終結果であってよい)を内部レジスタあるいは内部キャッシュに書き込むことができる。プロセッサ602は、次いで、それらの結果のうちの1つまたは複数をメモリ604に書き込むことができる。特定の実施形態では、プロセッ
サ602は、1つもしくは複数の内部レジスタ内または内部キャッシュ内の命令、またはメモリ604内(ストレージ606内その他の場所ではなく)における命令のみを実行し、1つもしくは複数の内部レジスタ内または内部キャッシュ内のデータ、またはメモリ604内(ストレージ606内その他の場所ではなく)におけるデータのみを演算する。1つまたは複数のメモリ・バス(各々が1つのアドレス・バスと1つのデータ・バスとを含み得る)は、プロセッサ602をメモリ604に結合することができる。バス612は、下で説明したように、1つまたは複数のメモリ・バスを含み得る。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)は、プロセッサ602とメモリ604との間に存在して、プロセッサ602によって要求されるメモリに対するアクセスを円滑にする。特定の実施形態では、メモリ604は、ランダム・アクセス・メモリ(RAM)を含む。このRAMは、必要に応じて、揮発性メモリであってよい。必要に応じて、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であってよい。さらに、必要に応じて、このRAMは、シングル・ポートRAMであってよく、またはマルチ・ポートRAMであってもよい。本開示は、任意の適切なRAMを企図する。メモリ604は、必要に応じて、1つまたは複数のメモリ604を含み得る。本開示は特定のメモリを説明および例示するが、本開示は、任意の適切なメモリを企図する。
【0038】
特定の実施形態では、ストレージ606は、データまたは命令のための大容量記憶装置を含む。限定ではなく、一例として、ストレージ606は、ハード・ディスク・ドライブ(HDD)、フロッピー(登録商標)・ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサル・シリアル・バス(USB)ドライブ、あるいはこれらのうちの2つ以上の組合せを含み得る。ストレージ606は、必要に応じて、取外可能な媒体または取外不可能な(すなわち、固定の)媒体を含み得る。ストレージ606は、必要に応じて、コンピュータ・システム600の内部であってよく、または外部であってもよい。特定の実施形態では、ストレージ606は、不揮発性、固体メモリであってよい。特定の実施形態では、ストレージ606は、読取り専用メモリ(ROM)を含む。必要に応じて、このROMは、マスク・プログラムROM、プログラム可能ROM(PROM)、消去可能PROM(EPROM)、電気消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM:electrically alterable ROM)、もしくはフラッシュ・メモリ、またはそれらのうちの2つ以上の組合せであってよい。本開示は、任意の適切な物理的形状をとる大容量記憶装置606を企図する。ストレージ606は、必要に応じて、プロセッサ602とストレージ606との間の通信を円滑にする1つまたは複数の記憶制御機構を含み得る。必要に応じて、ストレージ606は、1つまたは複数のストレージ606を含み得る。本開示は特定のストレージを説明および例示するが、本開示は、任意の適切なストレージを企図する。
【0039】
特定の実施形態では、I/Oインターフェース608は、コンピュータ・システム600と1つもしくは複数のI/Oデバイスとの間の通信のために1つもしくは複数のインターフェースを提供するハードウェア、ソフトウェア、またはそれらの両方を含む。コンピュータ・システム600は、必要に応じて、これらのI/Oデバイスのうちの1つまたは複数を含み得る。これらのI/Oデバイスのうちの1つまたは複数は、人物とコンピュータ・システム600との間の通信を可能とする。限定ではなく、一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナー、スピーカ、静止カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、ビデオ・カメラ、別の適切なI/Oデバイス、またはそれらのうちの2つ以上の組合せを含み得る。I/Oデバイスは、1つまたは複数のセンサを含み得る。本開示は、任意の適切なI/Oデバイスと、それらのI/Oデバイスのための任意の適切なI/Oインターフェース608とを企図する。必要に応じて、I/Oインターフェース608は、プロセッサ602がこれらのI/Oデバイスのうちの1つまたは複数を駆動させることを可能にする、1つもしくは複数のデバイス・ドライバまたはソフトウェア・ドライバを含
み得る。I/Oインターフェース608は、必要に応じて、1つまたは複数のI/Oインターフェース608を含み得る。本開示は、特定のI/Oインターフェースを説明および例示するが、本開示は、任意の適切なI/Oインターフェースを企図する。
【0040】
特定の実施形態では、通信インターフェース610は、コンピュータ・システム600と1つもしくは複数の他のコンピュータ・システム600または1つもしくは複数のネットワークとの間の通信(例えば、パケットベースの通信など)のための1つもしくは複数のインターフェースを提供するハードウェア、ソフトウェア、あるいはそれらの両方を含む。限定ではなく、一例として、通信インターフェース610は、ETHERNET(登録商標)もしくは他のワイヤ・ベースのネットワークと通信するためのネットワーク・インターフェース・コントローラ(NIC)またはネットワーク・アダプタ、あるいはWi−Fiネットワークなど、無線ネットワークと通信するための無線NIC(WNIC)または無線アダプタを含み得る。本開示は、任意の適切なネットワークと、そのネットワークのための任意の適切な通信インターフェース610とを企図する。限定ではなく、一例として、コンピュータ・システム600は、アドホック・ネットワーク、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、またはインターネットの1つもしくは複数の部分、あるいはこれらのうちの2つ以上の組合せと通信することができる。これらのネットワークのうちの1つもしくは複数の1つもしくは複数の部分は、有線または無線であってよい。一例として、コンピュータ・システム600は、無線PAN(WPAN)(例えば、BLUETOOTH(登録商標) WPANなど)、WI−FIネットワーク、WI−MAXネットワーク、セルラ電話ネットワーク(例えば、移動体通信用グローバルシステム(GSM(登録商標))ネットワークなど)、もしくは他の適切な無線ネットワーク、またはそれらのうちの2つ以上の組合せと通信することができる。コンピュータ・システム600は、必要に応じて、これらのネットワークのうちのいずれかに関する任意の適切な通信インターフェース610を含み得る。通信インターフェース610は、必要に応じて、1つまたは複数の通信インターフェース610を含み得る。本開示は特定の通信インターフェースを説明および例示するが、本開示は、任意の適切な通信インターフェースを企図する。
【0041】
特定の実施形態では、バス612は、コンピュータ・システム600の構成要素を互いに結合するハードウェア、ソフトウェア、またはそれらの両方を含む。限定ではなく、一例として、バス612は、アクセラレーテッド・グラフィックス・ポート(AGP)バスもしくは他のグラフィックス・バス、拡張業界標準アーキテクチャ(EISA)バス、フロント・サイド・バス(FSB)、HYPERTRANSPORT(HT)インターコネクト、業界標準アーキテクチャ(ISA)バス、INFINIBANDインターコネクト、ロー・ピン・カウント(LPC)バス、メモリ・バス、マイクロ・チャネル・アーキテクチャ(MCA:Micro Channel Architecture)バス、ペリフェラル・コンポーネント・インターコネクト(PCI)バス、PCIエクスプレス(PCIe:PCI−Express)バス、シリアル・アドバンスド・テクノロジー・アタッチメント(SATA:serial advanced technology attachment)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション・ローカル(VLB:Video Electronics Standards Association local)バス、もしくは別の適切なバス、またはそれらのうちの2つ以上の組合せを含み得る。バス612は、必要に応じて、1つまたは複数のバス612を含み得る。本開示は特定のバスを説明および例示するが、本開示は、任意の適切なバスまたはインターコネクトを企図する。
【0042】
本明細書で、1つもしくは複数のコンピュータ可読非一時的記憶媒体は、必要に応じて、1つもしくは複数の半導体ベースの集積回路または他の集積回路(IC)(例えば、フ
ィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向けIC(ASIC)など)、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスク・ドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピー(登録商標)・ディスケット、フロッピー(登録商標)・ディスク・ドライブ(FDD)、磁気テープ、固体ドライブ(SSD)、RAMドライブ、SECURE DIGITALカードまたはSECURE DIGITALドライブ、任意の他の適切なコンピュータ可読非一時的記憶媒体、あるいはこれらのうちの2つ以上の任意の適切な組合せを含み得る。コンピュータ可読非一時時的記憶媒体は、必要に応じて、揮発性、不揮発性、または揮発性と不揮発性の組合せであってよい。
【0043】
本明細書で、「または」は、別段に示されていない限り、または文脈によって別段に示されていない限り、包括的であり、排他的ではない。したがって、本明細書で、「AまたはB」は、別段に示されていない限り、または文脈によって別段に示されていない限り、「A、B、またはそれら両方」を意味する。さらに、「および」は、別段に示されていない限り、または文脈によって別段に示されていない限り、一緒と別個の両方である。したがって、本明細書で、「AおよびB」は、別段に示されていない限り、または文脈によって別段に示されていない限り、「一緒にまたは別々にAおよびB」を意味する。
【0044】
本開示の範囲は、当業者が理解することになる、本明細書で説明または示された例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は本明細書で説明または示された例示的な実施形態に限定されない。さらに、本開示は、本明細書で、特定の構成要素、要素、機能、動作、または工程を含むとして、それぞれの実施形態を説明および例示するが、これらの実施形態のいずれも、当業者が理解することになる、本明細書のいずれかの場所で説明もしくは例示された構成要素、要素、機能、動作、または工程のうちのいずれかの任意の組合せあるいは置換を含み得る。さらに、添付の特許請求の範囲において、特定の機能を実行するように適合されている、実行するように配置されている、実行することが可能である、実行するように構成されている、実行することが可能にされている、実行するように動作可能である、もしくは実行するように動作自在である装置またはシステム、あるいは装置またはシステムの構成要素の参照は、その装置、システム、または構成要素がそのように適合され、そのように配置され、それが可能であり、そのように構成され、それが可能にされ、そのように動作可能であり、もしくはそのように動作自在である限り、それが、またはその特定の機能がアクティブ化されてもいなくても、オンにされていてもいなくても、あるいは解除されていてもいなくても、その装置、システム、構成要素を包含する。