(57)【特許請求の範囲】
【請求項１】
第１のコンピューティングデバイスが、前記第１のコンピューティングデバイスに記憶されている複数のマルチメディアオブジェクトからなるマルチメディアオブジェクトのセットにアクセスを行う工程であって、該マルチメディアオブジェクトのセットは前記第１のコンピューティングデバイスのユーザによって選択されている、前記工程と、
前記第１のコンピューティングデバイスが、前記マルチメディアオブジェクトのセットの第２のコンピューティングデバイスへのアップロードを開始する工程と、
前記マルチメディアオブジェクトのセットの前記第２のコンピューティングデバイスへのアップロード中、前記マルチメディアオブジェクトのセットをグラフィカルユーザインターフェースにより前記ユーザに表示する工程と、
前記マルチメディアオブジェクトのセットの前記第２のコンピューティングデバイスへのアップロード中、前記第１のコンピューティングデバイスが、同時に前記ユーザによる前記マルチメディアオブジェクトのセットの一部の選択を受け取る工程と、
前記マルチメディアオブジェクトのセットの前記第２のコンピューティングデバイスへのアップロード中、前記第１のコンピューティングデバイスが、同時に前記ユーザによって入力されるメタデータを受け取る工程であって、該メタデータは、前記マルチメディアオブジェクトのセットの選択された前記一部に対応する、前記工程と、からなる方法。
【請求項２】
前記マルチメディアオブジェクトのセットが前記第２のコンピューティングデバイスに対しアップロードされた後、前記第１のコンピューティングデバイスが、前記マルチメディアオブジェクトのセットの選択された前記一部に対応する前記メタデータを前記第２のコンピューティングデバイスに対しアップロードする工程をさらに備える、請求項１に記載の方法。
【請求項３】
前記マルチメディアオブジェクトのセットの前記第２のコンピューティングデバイスへのアップロード中、前記第１のコンピューティングデバイスが、前記第１のコンピューティングデバイスに記憶されているデータに少なくとも部分的に基づいて、前記マルチメディアオブジェクトのセットの選択された前記一部に対応する前記メタデータの少なくとも一部を自動的に決定する工程をさらに備える、請求項１に記載の方法。
【請求項４】
前記マルチメディアオブジェクトのセットの前記第２のコンピューティングデバイスへのアップロード中、前記第１のコンピューティングデバイスが、前記マルチメディアオブジェクトのセットの選択された前記一部に対応する前記メタデータの少なくとも一部を前記ユーザから受け取るためのユーザインターフェースを提供する工程をさらに備える、請求項１に記載の方法。
【請求項５】
前記第１のコンピューティングデバイスが、前記マルチメディアオブジェクトのセットをアップロードするために第２のコンピューティングデバイスとの接続を確立する工程をさらに備える、請求項１に記載の方法。
【請求項６】
前記マルチメディアオブジェクトのセットの前記第２のコンピューティングデバイスへのアップロード中、前記マルチメディアオブジェクトのセットのアップロードによって前記接続の帯域幅が消費される、請求項５に記載の方法。
【請求項７】
前記第１のコンピューティングデバイスはモバイルデバイスである、請求項１に記載の方法。
【請求項８】
前記マルチメディアオブジェクトのセットがデジタル画像のセットである、請求項１に記載の方法。
【請求項９】
第１のシステムであって、
１つ以上のプロセッサと、
該１つ以上のプロセッサに結合され、該プロセッサによって実行可能な命令を含むメモリと、を備え、前記プロセッサは前記命令の実行時に、
前記第１のシステムに記憶されている複数のマルチメディアオブジェクトからなるマルチメディアオブジェクトのセットにアクセスを行う工程であって、該マルチメディアオブジェクトのセットは前記第１のシステムのユーザによって選択されている、前記工程と、
前記マルチメディアオブジェクトのセットの第２のシステムへのアップロードを開始する工程と、
前記マルチメディアオブジェクトのセットの前記第２のシステムへのアップロード中、前記マルチメディアオブジェクトのセットをグラフィカルユーザインターフェースにより前記ユーザに表示する工程と、
前記マルチメディアオブジェクトのセットの前記第２のシステムへのアップロード中、同時に前記ユーザによる前記マルチメディアオブジェクトのセットの一部の選択を受け取る工程と、
前記マルチメディアオブジェクトのセットの前記第２のシステムへのアップロード中、同時に前記ユーザによって入力されるメタデータを受け取る工程であって、該メタデータは、前記マルチメディアオブジェクトのセットの選択された前記一部に対応する、前記工程と、を実行するように構成されている、第１のシステム。
【請求項１０】
前記１つ以上のプロセッサは前記命令の実行時に、
前記マルチメディアオブジェクトのセットが前記第２のシステムに対しアップロードされた後、前記マルチメディアオブジェクトのセットの選択された前記一部に対応する前記メタデータを前記第２のシステムに対しアップロードする工程を実行するようにさらに構成されている、請求項９に記載の第１のシステム。
【請求項１１】
前記１つ以上のプロセッサは前記命令の実行時に、
前記マルチメディアオブジェクトのセットの前記第２のシステムへのアップロード中、前記第１のシステムに記憶されているデータに少なくとも部分的に基づいて、前記マルチメディアオブジェクトのセットの選択された前記一部に対応する前記メタデータの少なく
とも一部を自動的に決定する工程を実行するようにさらに構成されている、請求項９に記載の第１のシステム。
【請求項１２】
前記１つ以上のプロセッサは前記命令の実行時に、
前記マルチメディアオブジェクトのセットの前記第２のシステムへのアップロード中、前記マルチメディアオブジェクトのセットの選択された前記一部に対応する前記メタデータの少なくとも一部を前記ユーザから受け取るためのユーザインターフェースを提供する工程を実行するようにさらに構成されている、請求項９に記載の第１のシステム。
【請求項１３】
前記１つ以上のプロセッサは前記命令の実行時に、
前記マルチメディアオブジェクトのセットをアップロードするために第２のシステムとの接続を確立する工程を実行するようにさらに構成されており、
前記マルチメディアオブジェクトのセットの前記第２のシステムへのアップロード中、前記マルチメディアオブジェクトのセットのアップロードによって前記接続の帯域幅が消費される、請求項９に記載の第１のシステム。
【請求項１４】
前記第１のシステムはモバイルデバイスである、請求項９に記載の第１のシステム。
【請求項１５】
ソフトウェアを具現化する１つ以上の非一時的なコンピュータ可読記憶媒体であって、該ソフトウェアは、第１のシステムに関連する１つ以上のプロセッサによる実行時に、
前記第１のシステムに記憶されている複数のマルチメディアオブジェクトからなるマルチメディアオブジェクトのセットにアクセスを行う工程であって、該マルチメディアオブジェクトのセットは前記第１のシステムのユーザによって選択されている、前記工程と、
前記マルチメディアオブジェクトのセットの第２のシステムへのアップロードを開始する工程と、
前記マルチメディアオブジェクトのセットの前記第２のシステムへのアップロード中、前記マルチメディアオブジェクトのセットをグラフィカルユーザインターフェースにより前記ユーザに表示する工程と、
前記マルチメディアオブジェクトのセットの前記第２のシステムへのアップロード中、同時に前記ユーザによる前記マルチメディアオブジェクトのセットの一部の選択を受け取る工程と、
前記マルチメディアオブジェクトのセットの前記第２のシステムへのアップロード中、同時に前記ユーザによって入力されるメタデータを受け取る工程であって、該メタデータは、前記マルチメディアオブジェクトのセットの選択された前記一部に対応する、前記工程と、を実行するように構成されている、媒体。
【請求項１６】
前記ソフトウェアは、前記第１のシステムに関連する前記１つ以上のプロセッサによる実行時に、
前記マルチメディアオブジェクトのセットが前記第２のシステムに対しアップロードされた後、前記マルチメディアオブジェクトのセットの選択された前記一部に対応する前記メタデータを前記第２のシステムに対しアップロードする工程を実行するようにさらに構成されている、請求項１５に記載の媒体。
【請求項１７】
前記ソフトウェアは、前記第１のシステムに関連する前記１つ以上のプロセッサによる実行時に、
前記マルチメディアオブジェクトのセットの前記第２のシステムへのアップロード中、前記第１のシステムに記憶されているデータに少なくとも部分的に基づいて、前記マルチメディアオブジェクトのセットの選択された前記一部に対応する前記メタデータの少なくとも一部を自動的に決定する工程を実行するようにさらに構成されている、請求項１５に記載の媒体。
【請求項１８】
前記ソフトウェアは、前記第１のシステムに関連する前記１つ以上のプロセッサによる実行時に、
前記マルチメディアオブジェクトのセットの前記第２のシステムへのアップロード中、前記マルチメディアオブジェクトのセットの選択された前記一部に対応する前記メタデータの少なくとも一部を前記ユーザから受け取るためのユーザインターフェースを提供する工程を実行するようにさらに構成されている、請求項１５に記載の媒体。
【請求項１９】
前記ソフトウェアは、前記第１のシステムに関連する前記１つ以上のプロセッサによる実行時に、
前記マルチメディアオブジェクトのセットをアップロードするために第２のシステムとの接続を確立する工程を実行するようにさらに構成されており、
前記マルチメディアオブジェクトのセットの前記第２のシステムへのアップロード中、前記マルチメディアオブジェクトのセットのアップロードによって前記接続の帯域幅が消費される、請求項１５に記載の媒体。
【請求項２０】
前記第１のシステムはモバイルデバイスである、請求項１５に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は全般に、マルチメディアオブジェクトおよびマルチメディアオブジェクトと関連付けられるメタデータを、クライアントとサーバとの間など複数のコンピューティングデバイスの間で送信することに関する。
【背景技術】
【０００２】
クラウドストレージは、一般に第三者がホストとなる複数の仮想サーバにデータが記憶される、ネットワーク化されたオンラインストレージのモデルである。クラウドストレージには、いくつかの利点がある。たとえば、ある個人所有のユーザデバイス（すなわち、クライアント）ではなくリモートサーバにデータを記憶することによって、ユーザデバイス上のストレージ空間を、他の用途のために空けることができる。同時に、データを、第三者が専門的に管理（たとえば、編成、バックアップ、セキュア化など）することができ、他の人々と簡単に共有することができる。
【０００３】
デジタルデータの量が急速に増えるに従って、近年オンラインストレージは一般的になってきている。１つの例では、多くのソーシャルネットワーキングウェブサイトは、ユーザ間の情報共有を支援し促進するために、様々な形式のオンラインストレージをユーザに提供する。たとえば、Ｆｌｉｃｋｒ（登録商標）（ｗｗｗ．ｆｌｉｃｋｒ．ｃｏｍ）は、ユーザがデジタル画像をアップロードし共有することを可能にする、ウェブベースのサービスであり、Ｙｏｕｔｕｂｅ（ｗｗｗ．ｙｏｕｔｕｂｅ．ｃｏｍ）は、デジタルビデオおよびオーディオをユーザがアップロードし共有することを可能にする、別のウェブベースのサービスである。
【図面の簡単な説明】
【０００４】
【図１】画像のアップロードおよびアップロードされている画像の少なくとも一部とのメタデータの関連付けを同時実行するための例示的な方法を示す図。
【図２】例示的なユーザインターフェースの図。
【図３】画像のアップロードおよびアップロードされている画像の少なくとも一部とのメタデータの関連付けを同時実行するための例示的なシステムを示す図。
【図４】例示的なコンピュータシステムを示す図。
【発明を実施するための形態】
【０００５】
本開示は全般に、マルチメディアオブジェクトおよびマルチメディアオブジェクトと関連付けられるメタデータを、クライアントとサーバとの間など複数のコンピューティングデバイスの間で送信することに関する。より具体的には、特定の実施形態では、第１のデバイス（たとえば、クライアント）に記憶されているマルチメディアオブジェクト（たとえば、デジタル写真）のセットが、第２のデバイス（たとえば、サーバ）にアップロードされている最中に、メタデータが、アップロードされているマルチメディアオブジェクトの少なくとも一部に関連付けられる。続いて、このメタデータも第２のデバイスにアップロードされ得る。
【０００６】
第１のコンピューティングデバイスに記憶されている複数のマルチメディアオブジェクトからなるマルチメディアオブジェクトのセットにアクセスし、前記マルチメディアオブジェクトのセットの第２のコンピューティングデバイスへのアップロードを開始し、前記マルチメディアオブジェクトのセットの第２のコンピューティングデバイスへのアップロード中、第１のコンピューティングデバイスのユーザによって入力されるメタデータを受
け取り、前記マルチメディアオブジェクトのセットのうちの１つ以上のマルチメディアオブジェクトの各々にメタデータを関連付ける。
【０００７】
本開示のこれらのおよび他の特徴、態様、ならびに利点が、詳細な説明において、次の図面とともに以下でより詳しく説明される。ここで、本開示が、添付の図面に示されるような本開示のいくつかの実施形態を参照して、詳しく説明される。以下の説明では、本開示の完全な理解を与えるために、多数の具体的な詳細が述べられる。しかしながら、本開示は、これらの具体的な詳細のいくつかまたはすべてを伴わずに実施されてもよい。他の例では、本開示を不必要に曖昧にしないように、よく知られている処理工程および／または構造は説明されていない。加えて、本開示は、特定の実施形態に関連して説明されるが、この説明が本開示を説明される実施形態に限定することは意図されていないことを理解されたい。逆に、この説明は、添付の特許請求の範囲によって定義されるような本開示の趣旨および範囲に含まれ得るような、代替物、修正、および等価物を包含することが意図される。
【０００８】
オンラインストレージによって、ユーザは、デジタル画像または他のマルチメディアオブジェクト、たとえばデジタル写真を、記憶または他のユーザとの共有のために、第三者が管理するサーバにアップロードすることができる。ユーザは、ユーザデバイス（たとえば、クライアント）に記憶されている画像のセットを選択し、別のデバイス（たとえば、サーバ）とのネットワーク接続を確立し画像のセットを他のデバイスにアップロードするように、ユーザデバイスに命令することができる。しばしば、画像の少なくとも一部と関連付けられるメタデータ（たとえば、タグ）が存在することがある。たとえば、写真と関連付けられるメタデータは、限定はされないが、写真のタイトルまたは説明、カメラの設定（たとえば、露光指数、シャッタースピード、絞りなど）、写真の中の人々の名前、写真が撮られた日付または時間、写真が撮られた時の出来事、写真が撮られた位置（たとえば、緯度および経度、都市、イベントなど）、または写真が属するアルバムを含み得る。１つまたは複数の画像のセットを考えると、場合によっては、特に、データの量が比較的多い場合、またはネットワーク接続の帯域幅が比較的狭い場合、ユーザデバイスからサーバに画像データを送信するのにある程度の時間がかかることがある。いくつかのタイプのユーザデバイス（たとえば、携帯電話のようなモバイルデバイス）では、画像データがユーザデバイスからサーバに送信されている間、ユーザがユーザデバイスによって実行できる他の動作は多くないことがある。それは、ユーザデバイスのリソースがデータ送信によってほぼ消費されている（たとえば、ネットワーク接続の帯域幅が画像データの送信のためにほぼ使い果たされている）ため、または、ユーザデバイスが複数のアプリケーションの同時実行に対応しない（たとえば、Ａｐｐｌｅ  ｉＯＳアプリケーションを実行するデバイス）ためである。
【０００９】
特定の実施形態では、画像（たとえば、写真）のセットがユーザデバイスからサーバにアップロードされるのを待つ間に、メタデータが、アップロードされている画像の少なくとも一部と関連付けられる。続いて（たとえば、画像データのアップロードが完了した後）、メタデータもサーバにアップロードされ得る。図１は、画像のアップロードおよびアップロードされている画像の少なくとも一部とのメタデータの関連付けを同時実行するための例示的な方法を示す。本願明細書で説明されるクライアント側の処理は、ウェブページに埋め込まれたＪＡＶＡ（登録商標）Ｓｃｒｉｐｔオブジェクトとして実装されてよく、ユーザはそのウェブページから、１つまたは複数のデジタルメディアファイルをアップロードのために選択すると決定することができる。
【００１０】
特定の実施形態では、ユーザと関連付けられる第１のデバイス（たとえば、ユーザデバイス）に記憶されているデジタル画像（たとえば、写真）が存在し得る。工程１０１において示されるように、ユーザは、第１のデバイスに記憶されている画像から、第２のデバ
イス（たとえば、サーバ）へアップロードする画像のセットを特定することができる。なお、１回にアップロードされるセット中の画像の数は任意であってよい。
【００１１】
ユーザがアップロードする画像の選択を終えると、第１のデバイスは、工程１０３において示されるように、第２のデバイスとのネットワーク接続（たとえば、ＴＣＰ、ＦＴＰ、または任意の他の適切な接続）を確立することができ、工程１０５において示されるように、ネットワーク接続を通じた画像データの第２のデバイスへのアップロードを開始することができる。
【００１２】
特定の実施形態では、画像データが第１のデバイスから第２のデバイスにアップロードされている間、工程１０７において示されるように、第１のデバイスは、アップロードされている画像の少なくともいくつかと、メタデータを関連付けることができる。１つの例として、ユーザは、セット中のいくつかの画像を選択し、ユーザインターフェースコンポーネントを介して各々の選択された画像にメタデータを与えることができる。いくつかの実装形態では、ユーザは、アップロードキューの中の画像のセットをスクロールまたはスワイプして、そのうちの１つをメタデータによるタグ付け（タギング）のために選択することができる。ユーザによって与えられたメタデータは次いで、対応する画像と関連付けられる。別の例として、第１のデバイスは、第１のデバイスに記憶されている情報に基づいて、セットの中の画像のいくつかのためのメタデータを自動的に決定し、決定されたメタデータを対応する画像と関連付けることができる。たとえば、第１のデバイスがデジタルカメラを含む場合（たとえば、内蔵カメラを有する携帯電話）、第１のデバイスはデジタル写真を撮るために使用され得る。カメラの設定、日付、時刻、または位置情報（たとえば、第１のデバイスのＧＰＳセンサから取得される）が、写真のメタデータとして写真と関連付けられ得る。加えて、第１のデバイスは、適切なユーザ情報を、写真のメタデータとして、写真と自動的に関連付けることができる。ユーザの画像への自動的なタギングは、２０１０年９月２４日に出願された、「Ａｕｔｏ  Ｔａｇｇｉｎｇ  ｉｎ  Ｇｅｏ−Ｓｏｃｉａｌ  Ｎｅｔｗｏｒｋｉｎｇ  Ｓｙｓｔｅｍ」という表題の米国特許出願第１２／８９０，２８３号においてより詳しく説明されており、上記の出願の全体を本願明細書に援用する。１つの実装形態では、ユーザは、アップロード処理の間に、サーバによって自動的に関連付けられたタグを確認することを求められ得る。
【００１３】
画像または他のデジタルメディアファイルのアップロードの後で、工程１０９に示されるように、第１のデバイスは、画像と関連付けられるメタデータを第２のデバイスにアップロードすることができる。特定の実施形態では、第１のデバイスは、画像のセットに対応するすべての画像データが第２のデバイスに完全にアップロードされるまで待機し、次いで画像と関連付けられるメタデータをアップロードすることができる。あるいは、特定の実施形態では、第１のデバイスは、画像データのアップロードとメタデータのアップロードを交互に行うことができる。この場合、第１のデバイスは、第１の画像のアップロードおよびメタデータの第１の画像との関連付けを同時実行し、第１の画像のメタデータをアップロードすることができ、次いで、第２の画像のアップロードおよびメタデータの第２の画像との関連付けを同時実行し、第２の画像のメタデータをアップロードすることができ、以下同様である。１つの実装形態では、メタデータは、ファイル名、または対応する画像ファイルと関連付けられる他のハンドラと関連付けられる。
【００１４】
図１に示される工程は、画像に言及して説明しているが、任意のタイプのデータの送信に同じ概念を適用することができる。たとえば、ファイル（たとえば、テキストファイル、オーディオファイル、ビデオファイル、さらには画像ファイル）のセットが、第１のデバイスから第２のデバイスにアップロードされ得る。ファイルデータをアップロードする間、メタデータがアップロードされているファイルの少なくとも一部と関連付けられ得る。その後（たとえば、ファイルデータが完全にアップロードされると）、ファイルと関連
付けられるメタデータも第２のデバイスにアップロードされ得る。
【００１５】
図２は、ユーザが画像をアップロードしアップロードされている個々の画像とメタデータを関連付けることを可能にする、例示的なユーザインターフェース２００を示す。教示の目的で、説明される実装形態の動作は、撮影された画像に関連する。しかしながら、本発明は、ビデオ、オーディオなどのような、任意の適切なマルチメディアオブジェクトに関連して利用され得る。ユーザインターフェース２００は、いくつかのスクリーンを含み得る。特定の実施形態では、第１のスクリーン２０１では、ユーザはアップロードされるべき特定の画像２４０を選択することができる。選択された画像２４０は、確認のためにユーザに（たとえば、サムネイルとして）提示され得る。ユーザがアップロードされるべき画像２４０を確認すると、ユーザは「アップロード」ボタン２１０をクリックして、アップロード処理を開始することができる。スクリーン２０１は次いで、第２のスクリーン２０２に置き換わり得る。
【００１６】
特定の実施形態では、スクリーン２０２には、アップロードされるべき画像のユーザにより選択されたセットを表示するアップロードキュー２５０、および、アップロード処理の現在の状態を表示するプログレスバー２２０があり得る。たとえば、現在アップロードされている１つの特定の画像は、アップロードキュー２５０の中の他の画像とは視覚的に区別され得る。ユーザは、アップロードキュー２５０からの任意の画像２４０を見進めて選択し、入力コンポーネント２３０を介してその画像２４０のためのメタデータを与えることができる。特定の実施形態では、メタデータは、自由形式のテキストであってよい。他の実装形態では、メタデータは、クライアントデバイスに記憶されている他の情報に対する他のファイルまたは記録へのタグもしくはポインタ、たとえば、アドレス帳の連絡先、カレンダーのイベント入力などへのポインタであってよい。１つの実装形態では、タギングインターフェースは、ユーザによって現在入力されている文字列に基づいて、クライアントデバイス上のローカルデータベース（たとえば、連絡先、カレンダーなど）から入力をサジェストする先行入力フィールドを設けてよい。
【００１７】
ユーザインターフェース２００は、ユーザが、アップロードアプリケーションを終了することなく、かつ画像２４０がアップロードされている間に、画像２４０のためのメタデータを与えることを可能にする。
【００１８】
図３は、画像のアップロードおよびアップロードされている画像の少なくとも一部とのメタデータの関連付けを同時実行するための例示的なシステム３００を示す。特定の実施形態では、ユーザデバイス３１０に記憶されている画像および他のデータが存在することがある。たとえば、ユーザデバイス３１０は、デスクトップコンピュータまたはモバイルデバイス（たとえば、モバイルコンピュータまたは携帯電話）であってよい。特定の実施形態では、ユーザデバイス３１０は、デジタルカメラおよび様々なタイプのセンサ（たとえば、ＧＰＳセンサ）を含み得る。ユーザは、ユーザデバイス３１０によってデジタル写真を撮影し、次いで写真をアップロードサーバ３３０にアップロードすることができる。ユーザデバイス３１０は、ネットワーク３２０を介して、アップロードサーバ３３０との有線または無線のネットワーク接続もしくは通信接続を確立することができる。特定の実施形態では、ユーザデバイス３１０からの画像データをアップロードサーバ３３０にアップロードする時、ユーザデバイス３１０とアップロードサーバ３３０との間のネットワーク接続の帯域幅は、アップロード処理によってほぼ消費されることがある（すなわち、画像データのアップロードがネットワーク接続の利用可能な帯域幅の大半を使い果たす）。特定の実施形態では、アップロードサーバ３３０は、ユーザデバイス３１０から受信された画像の記憶のために、データ記憶装置３４０と接続され得る。
【００１９】
特定の実施形態では、ユーザは、ソーシャルネットワーキングウェブサイトのメンバー
であることがあり、ウェブサイトの他のメンバーと写真を共有するために、その写真をソーシャルネットワーキングウェブサイトのユーザのアカウントにアップロードすることが時々ある。ソーシャルネットワークは、一般に、友人関係、親族関係、共通の関心、金融取引、嫌悪、または、信仰、知識、もしくは名声の関係のような、１つまたは複数のタイプの相互依存性または関係によってつなげられた、個人または組織のような実在からなる社会的構造である。さらに近年では、ソーシャルネットワークはインターネットを利用している。ソーシャルネットワーキングウェブサイトの形式でインターネット上に存在する、ソーシャルネットワーキングシステムがある。そのようなソーシャルネットワーキングウェブサイトは、ウェブサイトユーザと一般に呼ばれるウェブサイトのメンバーが、様々な社会的な活動を行うことを可能にする。たとえば、ｗｗｗ．ｆａｃｅｂｏｏｋ．ｃｏｍにあるフェイスブックインコーポレイテッド社（Ｆａｃｅｂｏｏｋ，Ｉｎｃ．）によって運営されているソーシャルネットワーキングウェブサイトは、ユーザが、電子メール、インスタントメッセージ、またはブログ投稿を介して友人とコミュニケーションをとり、社会的なイベントを企画し、写真を共有し、友人または関心のあるイベントについての新しい情報を受け取り、ゲームをプレイすることなどを可能にする。アップロードサーバ３３０は、ソーシャルネットワーキングウェブサイトと接続され得る。
【００２０】
特定の実施形態は、１以上のコンピュータシステム上で実装され得る。図４には、例示的コンピュータシステム４００を示す。特定の実施形態では、１または複数のコンピュータシステム４００は、本明細書に記載または図示された１または複数の方法の１または複数の工程を行う。特定の実施形態では、１または複数のコンピュータシステム４００は本明細書に記載または図示された機能を提供する。特定の実施形態では、１または複数のコンピュータシステム４００上で実行するソフトウェアは、本明細書に記載または図示された１または複数の方法の１または複数の工程を行う、または本明細書に記載または図示された機能を提供する。特定の実施形態は、１または複数のコンピュータシステム４００の１または複数の部分を含む。
【００２１】
本開示は、任意の好適な数のコンピュータシステム４００を企図する。本開示は、任意の好適な物理的形式をとるコンピュータシステム４００を企図する。限定としてではなく一例として、コンピュータシステム４００は、埋込式コンピュータシステム、システムオンチップ（ＳＯＣ）、シングルボードコンピュータシステム（ＳＢＣ）（例えばコンピュータオンモジュール（ＣＯＭ：ｃｏｍｐｕｔｅｒ−ｏｎ−ｍｏｄｕｌｅ）またはシステムオンモジュール（ＳＯＭ：ｓｙｓｔｅｍ−ｏｎ−ｍｏｄｕｌｅ）など）、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、会話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、サーバ、タブレットコンピュータシステム、またはこれらの２つ以上の組合せであり得る。適切な場合には、コンピュータシステム４００は１または複数のコンピュータシステム４００を含み、単一または分散型であり、複数の場所に広がり、複数の機械装置に広がり、複数のデータセンタに広がり得る、または、１または複数のネットワーク内に１または複数のクラウド部品を含み得るクラウド内に存在し得る。適切な場合には、１または複数のコンピュータシステム４００は、ほぼ空間的または時間的制限無しに、本明細書に記載または図示された１または複数の方法の１または複数の工程を行い得る。限定としてではなく一例として、１または複数のコンピュータシステム４００は、リアルタイムでまたはバッチモードで、本明細書に記載または図示された１または複数の方法の１または複数の工程を行い得る。１または複数のコンピュータシステム４００は、適切な場合、本明細書に記載または図示された１または複数の方法の１または複数の工程を様々な時間にまたは様々な場所で行い得る。
【００２２】
特定の実施形態では、コンピュータシステム４００は、プロセッサ４０２、メモリ４０
４、記憶装置４０６、入出力（Ｉ／Ｏ）インターフェース４０８、通信インターフェース４１０、およびバス４１２を含む。本開示は特定の配置における特定の数の特定部品を有する特定のコンピュータシステムについて説明し図示するが、本開示は任意の好適な配置における任意の好適な数の任意の好適な部品を有する任意の好適なコンピュータシステムを企図する。
【００２３】
特定の実施形態では、プロセッサ４０２は、コンピュータプログラムを構成するような命令を実行するためのハードウェアを含む。限定としてではなく一例として、命令を実行するために、プロセッサ４０２は、内部レジスタ、内部キャッシュ、メモリ４０４、または記憶装置４０６から命令を取り出し（またはフェッチし）、それらを復号化し実行し、次に、１または複数の結果を内部レジスタ、内部キャッシュ、メモリ４０４、または記憶装置４０６へ書き込み得る。特定の実施形態では、プロセッサ４０２は、データ、命令、またはアドレス用の１または複数の内部キャッシュを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ４０２を企図する。限定としてではなく一例として、プロセッサ４０２は、１または複数の命令キャッシュ、１または複数のデータキャッシュ、および１または複数の変換索引バッファ（ＴＬＢ：ｔｒａｎｓｌａｔｉｏｎ  ｌｏｏｋａｓｉｄｅ  ｂｕｆｆｅｒ）を含み得る。命令キャッシュ内の命令は、メモリ４０４または記憶装置４０６内の命令の複製であり得、命令キャッシュは、プロセッサ４０２によるそれらの命令の取り出しを速め得る。データキャッシュ内のデータは、プロセッサ４０２において実行して作用する命令用のメモリ４０４または記憶装置４０６内のデータの複製、プロセッサ４０２において実行するその後の命令によるアクセスのためのまたはメモリ４０４または記憶装置４０６に書き込むためのプロセッサ４０２において実行された以前の命令の結果、または他の好適なデータであり得る。データキャッシュはプロセッサ４０２による書き込みまたは読み取り動作を速め得る。ＴＬＢは、プロセッサ４０２の仮想アドレス変換を速め得る。特定の実施形態では、プロセッサ４０２は、データ、命令、またはアドレス用の１または複数の内部レジスタを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ４０２を企図する。適切な場合、プロセッサ４０２は１または複数の演算装置（ＡＬＵ）を含み、マルチコアプロセッサであり得る、または１または複数のプロセッサ４０２を含み得る。本開示は特定のプロセッサについて説明し図示するが、本開示は任意の好適なプロセッサも企図する。
【００２４】
特定の実施形態では、メモリ４０４は、プロセッサ４０２が実行する命令またはプロセッサ４０２が作用するデータを記憶するためのメインメモリを含む。限定としてではなく一例として、コンピュータシステム４００は、命令を、記憶装置４０６または別のソース（例えば別のコンピュータシステム４００等）からメモリ４０４にロードし得る。次に、プロセッサ４０２は、命令をメモリ４０４から内部レジスタまたは内部キャッシュへロードし得る。命令を実行するために、プロセッサ４０２は、内部レジスタまたは内部キャッシュから命令を取り出し、それらを復号し得る。命令の実行中または実行後、プロセッサ４０２は、１または複数の結果（中間または最終結果であり得る）を内部レジスタまたは内部キャッシュへ書き込み得る。次に、プロセッサ４０２はそれらの結果の１または複数をメモリ４０４に書き込み得る。特定の実施形態では、プロセッサ４０２は、１または複数の内部レジスタまたは内部キャッシュ内またはメモリ４０４内の命令だけを実行し（記憶装置４０６または他のどこかとは対照的に）、１または複数の内部レジスタまたは内部キャッシュ内またはメモリ４０４内のデータだけに作用する（記憶装置４０６または他のどこかとは対照的に）。１または複数のメモリバス（それぞれアドレスバスとデータバスを含み得る）は、プロセッサ４０２をメモリ４０４に結合し得る。バス４１２は、以下に述べるように１または複数のメモリバスを含み得る。特定の実施形態では、１または複数のメモリ管理ユニット（ＭＭＵ：ｍｅｍｏｒｙ  ｍａｎａｇｅｍｅｎｔ  ｕｎｉｔ）は、プロセッサ４０２とメモリ４０４間に存在し、プロセッサ４０２によって要求されるメモ
リ４０４へのアクセスを容易にする。特定の実施形態では、メモリ４０４は、ランダムアクセスメモリ（ＲＡＭ）を含む。このＲＡＭは、適切な場合、揮発性メモリであってよい。適切な場合、このＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であってよい。さらに、適切な場合、このＲＡＭはシングルポートまたはマルチポートＲＡＭであってよい。本開示は、任意の好適なＲＡＭを企図する。メモリ４０４は、適切な場合、１または複数のメモリ４０４を含み得る。本開示は特定のメモリについて説明し図示するが、本開示は任意の好適なメモリをも企図する。
【００２５】
特定の実施形態では、記憶装置４０６はデータまたは命令用の大容量記憶装置を含む。限定としてではなく一例として、記憶装置４０６は、ＨＤＤ、フロッピー（登録商標）ディスク駆動装置、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、ユニバーサルシリアルバス（ＵＳＢ）駆動装置、またはこれらの２つ以上の組合せを含み得る。記憶装置４０６は、適切な場合、着脱可能または着脱不能（すなわち固定）媒体を含み得る。記憶装置４０６は、適切な場合、コンピュータシステム４００内にまたはコンピュータシステム４００外にあってよい。特定の実施形態では、記憶装置４０６は不揮発性固体メモリである。特定の実施形態では、記憶装置４０６は、読み出し専用メモリ（ＲＯＭ）を含む。適切な場合、このＲＯＭは、マスクプログラムＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去書き込み可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的可変ＲＯＭ（ＥＡＲＯＭ：ｅｌｅｃｔｒｉｃａｌｌｙ  ａｌｔｅｒａｂｌｅ  ＲＯＭ）、またはフラッシュメモリ、またはこれらの２つ以上の組合せであり得る。本開示は、任意の好適な物理的形式をとる大容量記憶装置４０６を企図する。記憶装置４０６は、適切な場合、プロセッサ４０２と記憶装置４０６との間の通信を容易にする１または複数の記憶制御機構を含み得る。適切な場合、記憶装置４０６は１または複数の記憶装置４０６を含み得る。本開示は特定の記憶装置について説明し図示するが、本開示は任意の好適な記憶装置をも企図する。
【００２６】
特定の実施形態では、Ｉ／Ｏインターフェース４０８は、コンピュータシステム４００と１または複数のＩ／Ｏ装置間の通信のための１または複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム４００は、適切な場合、これらのＩ／Ｏ装置の１または複数を含み得る。これらのＩ／Ｏ装置の１または複数は、人とコンピュータシステム４００間の通信を可能にし得る。限定としてではなく一例として、Ｉ／Ｏ装置は、キーボード、キーパッド、マイクロホン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なＩ／Ｏ装置、またはこれらの２つ以上の組合せを含み得る。Ｉ／Ｏ装置は１または複数のセンサを含み得る。本開示は任意の好適なＩ／Ｏ装置と任意の好適なＩ／Ｏインターフェース４０８を企図する。適切な場合、Ｉ／Ｏインターフェース４０８は、プロセッサ４０２がこれらのＩ／Ｏ装置の１または複数を駆動できるようにする１または複数の装置またはソフトウェアドライバを含み得る。Ｉ／Ｏインターフェース４０８は、適切な場合、１または複数のＩ／Ｏインターフェース４０８を含み得る。本開示は特定のＩ／Ｏインターフェースについて説明し図示するが、本開示は任意の好適なＩ／Ｏインターフェースを企図する。
【００２７】
特定の実施形態では、通信インターフェース４１０は、コンピュータシステム４００と１または複数のコンピュータシステム４００、または１または複数のネットワーク間の通信（例えばパケットベースの通信等）のための１または複数のインターフェースを提供するハードウェア、ソフトウェアまたはその両方を含む。限定としてではなく一例として、通信インターフェース４１０は、イーサネット（登録商標）または他の有線ベースのネットワークに通信するためのネットワークインタフェース制御装置（ＮＩＣ：ｎｅｔｗｏｒｋ  ｉｎｔｅｒｆａｃｅ  ｃｏｎｔｒｏｌｌｅｒ）またはネットワークアダプタ、またはＷＩ−ＦＩネットワーク等の無線ネットワークに通信するための無線ＮＩＣ（ＷＮＩＣ）
または無線アダプタを含み得る。本開示は、任意の好適なネットワークと任意の好適な通信インターフェース４１０を企図する。限定としてではなく一例として、コンピュータシステム４００は、アドホックネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットの１または複数の部分、またはこれらの２つ以上の組合せに通信し得る。これらのネットワークの１または複数のネットワークの１または複数の部分は有線または無線であり得る。一例として、コンピュータシステム４００は、無線ＰＡＮ（ＷＰＡＮ）（例えばブルートゥースＷＰＡＮ等）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、携帯電話ネットワーク（例えばグローバル移動体通信システム（ＧＳＭ（登録商標）：Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）ネットワーク等）、他の好適な無線ネットワーク、またはこれらの２つ以上の組合せに通信し得る。コンピュータシステム４００は、適切な場合、これらのネットワークのうちの任意のネットワークの任意の好適な通信インターフェース４１０を含み得る。通信インターフェース４１０は、適切な場合、１または複数の通信インターフェース４１０を含み得る。本開示は特定の通信インターフェースについて説明し図示するが、本開示は任意の好適な通信インターフェースをも企図する。
【００２８】
特定の実施形態では、バス４１２は、コンピュータシステム４００の部品と互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、バス４１２は、アクセラレイテッドグラフィックポート（ＡＧＰ）または他のグラフィックバス、強化型業界標準アーキテクチャ（ＥＩＳＡ：Ｅｎｈａｎｃｅｄ  Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、フロントサイドバス（ＦＳＢ）、ハイパートランスポート（ＨＴ）相互接続、業界標準アーキテクチャ（ＩＳＡ）バス、インフィニバンド（ＩＮＦＩＮＩＢＡＮＤ）相互接続、ローピンカウント（ＬＰＣ：ｌｏｗ−ｐｉｎ−ｃｏｕｎｔ）バス、メモリバス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、周辺部品相互接続（ＰＣＩ：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ
Ｉｎｔｅｒｃｏｎｎｅｃｔ）、ＰＣＩエクスプレス（ＰＣＩ−Ｘ：ＰＣＩ−Ｅｘｐｒｅｓｓ）バス、シリアルアドバンストテクノロジアタッチメント（ＳＡＴＡ：ｓｅｒｉａｌ
ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ）バス、ビデオ電子装置規格化協会ローカルバス（ＶＬＢ：Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ  ｌｏｃａｌ）、別の好適なバス、またはこれらの２つ以上の組合せを含み得る。バス４１２は、適切な場合、１または複数のバス４１２を含み得る。本開示は特定のバスについて説明し図示するが、本開示は任意の好適なバスまたは相互接続を企図する。
【００２９】
本明細書では、コンピュータ可読記憶媒体への参照は、１または複数の非一時的、有形、コンピュータ可読記憶媒体を有する構造を包含する。限定としてではなく一例として、コンピュータ可読記憶媒体は、適切な場合、半導体ベースまたは他の集積化回路（ＩＣ）（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途ＩＣ（ＡＳＩＣ）等）、ハードディスク、ＨＤＤ、ハイブリッドハードディスク駆動装置（ＨＨＤ：ｈｙｂｒｉｄ  ｈａｒｄ  ｄｒｉｖｅ）、光ディスク、光ディスクドライブ（ＯＤＤ）、光磁気ディスク、光磁気駆動装置、フロッピー（登録商標）ディスク、フロッピー（登録商標）ディスク駆動装置（ＦＤＤ）、磁気テープ、ホログラフィック記憶媒体、固体駆動装置（ＳＳＤ：ｓｏｌｉｄ−ｓｔａｔｅ  ｄｒｉｖｅ）、ＲＡＭ駆動装置、セキュアデジタル（ＳＥＣＵＲＥ  ＤＩＧＩＴＡＬ）カード、セキュアデジタル駆動装置、別の好適なコンピュータ可読記憶媒体、またはこれらの２つ以上の組合せを含み得る。本明細書では、コンピュータ可読記憶媒体への参照は、米国特許法第１０１条下の特許権保護を受ける資格が無いいかなる媒体も除外する。本明細書では、コンピュータ可読記憶媒体への参照は、米国特許法第１０１条下の特許権保護を受ける資格が無い限り、信号送信の一時的形式（電気的または電磁気的伝播信号自体等）を除外する。コンピュータ可読非一時的記
憶媒体は、適切な場合、不揮発性、揮発性、または揮発性と不揮発性との組合せであり得る。
【００３０】
本開示は、任意の好適な記憶装置を実施する１または複数のコンピュータ可読記憶媒体を企図する。特定の実施形態では、コンピュータ可読記憶媒体は、適切な場合、プロセッサ４０２の１または複数の部分（例えば１または複数の内部レジスタまたはキャッシュ等）、メモリ４０４の１または複数の部分、記憶装置４０６の１または複数の部分、またはこれらの組合せを実装する。特定の実施形態では、コンピュータ可読記憶媒体はＲＡＭまたはＲＯＭを実装する。特定の実施形態では、コンピュータ可読記憶媒体は揮発性または持続性メモリを実装する。特定の実施形態では、１または複数のコンピュータ可読記憶媒体はソフトウェアを具現する。本明細書では、ソフトウェアへの参照は、適切な場合、１または複数のアプリケーション、バイトコード、１または複数のコンピュータプログラム、１または複数の実行ファイル、１または複数の命令、論理、マシンコード、１または複数のスクリプト、またはソースコードを包含し得、逆もまた同様である。特定の実施形態では、ソフトウェアは１または複数のアプリケーションプログラムインターフェイス（ＡＰＩ）を含む。本開示は、任意の好適なプログラミング言語またはプログラミング言語の組合せで書かれるまたはそうでなければ表現される任意の好適なソフトウェアを企図する。特定の実施形態では、ソフトウェアはソースコードまたはオブジェクトコードとして表現される。特定の実施形態では、ソフトウェアは、例えばＣ、Ｐｅｒｌ、または好適なその拡張版などのハイレベルプログラミング言語で表現される。特定の実施形態では、ソフトウェアは、アセンブリ言語（またはマシンコード）等のローレベルプログラミング言語で表現される。特定の実施形態では、ソフトウェアはＪＡＶＡ（登録商標），Ｃ，Ｃ＋＋で表現される。特定の実施形態では、ソフトウェアは、ハイパーテキストマークアップ言語（ＨＴＭＬ：Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、エクステンシブルマークアップランゲージ（ＸＭＬ：Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、または他の好適なマークアップ言語で表現される。
【００３１】
本明細書で、「または」は、明記しない限りまたは文脈が示さない限り、包括的であって排他的でない。したがって本明細書では、「ＡまたはＢ」は、明記しない限りまたは文脈が示さない限り「Ａ、Ｂ、または両方」を意味する。さらに、「および」は、明記しない限りまたは文脈が示さない限り、合同と個々の両方である。したがって本明細書では、「ＡとＢ」は、明記しない限りまたは文脈が示さない限り、「ＡとＢ合同でまたは個々に」を意味する。
【００３２】
本開示は、当業者が理解する本明細書の例示的実施形態に対するすべての変更形態、置換形態、変形形態、代替形態、修正形態を包含する。同様に、適切な場合には、添付特許請求範囲、当業者が理解する本明細書の例示的実施形態に対するすべての変更形態、置換形態、変形形態、代替形態、修正形態を包含する。さらに、装置またはシステムへの添付特許請求範囲内の参照、または特定機能を行うように適合化され、配置され、特定機能を行うことができ、特定機能を行うように構成され、特定機能を行うことができるようにされ、特定機能を行うように動作可能な、または特定機能を行うように動作する装置またはシステムの部品は、それがまたはその特定機能がアクティブ化される、オンされる、またはロック解除されるかどうかにかかわらず、そしてその装置、システム、または部品がそのように適合化され、構成され、行うことができ、配置され、可能にされ、動作可能にされ、動作するようにされる限り、その装置、システム、部品を包含する。
【図１】
0006054959.tif 000002
【図２】
0006054959.tif 000003
【図３】
0006054959.tif 000004
【図４】
0006054959.tif 000005