(57)【要約】  システム、方法および非一時的コンピュータ可読媒体は、複数の映像フレームを有するテスト・コンテンツ・アイテムを取得することができる。テスト・コンテンツ・アイテムに対応する１組の映像フレームに基づき、少なくとも１つの映像フィンガープリントを決定する。映像フィンガープリントの少なくとも一部を使用して、少なくとも１つの参照コンテンツ・アイテムを決定する。テスト・コンテンツ・アイテムの映像フィンガープリントおよび参照コンテンツ・アイテムの１以上の映像フィンガープリントに少なくとも部分的に基づいて、参照コンテンツ・アイテムの少なくとも１つの部分に一致するテスト・コンテンツ・アイテムの少なくとも１つの部分を決定する。
2019527442.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング・システムが、テスト・コンテンツ・アイテムの１以上の第１フィンガープリントおよび参照コンテンツ・アイテムの１以上の第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの少なくとも１つの部分を前記参照コンテンツ・アイテムの少なくとも１つの部分に対して評価する工程であって、前記第１フィンガープリントは第１タイプのメディアに対応する、工程と、
前記コンピューティング・システムが、少なくとも１つの検証基準が満たされていると決定する工程と、
前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムの１以上の第２フィンガープリントおよび前記参照コンテンツ・アイテムの１以上の第２フィンガープリントを使用して、前記テスト・コンテンツの前記部分を前記参照コンテンツの前記部分に対して評価する工程であって、前記第２フィンガープリントは、前記第１タイプのメディアとは異なる第２タイプのメディアに対応する、工程と、
を含む、コンピュータ実装方法。
【請求項２】
前記テスト・コンテンツの前記部分を前記参照コンテンツの前記部分に対して評価する工程は、
前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムの前記部分に対応する前記１以上の第２フィンガープリントを取得する工程と、
前記コンピューティング・システムが、前記参照コンテンツ・アイテムの前記部分に対応する前記１以上の第２フィンガープリントを取得する工程と、
前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムの前記第２フィンガープリントおよび前記参照コンテンツ・アイテムの前記第２フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致すると決定する工程と、
をさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
少なくとも１つの検証基準が満たされていると決定する工程は、
前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムの前記第１フィンガープリントおよび前記参照コンテンツ・アイテムの前記第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致していないと決定する工程
をさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
少なくとも１つの検証基準が満たされていると決定する工程は、
前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムの前記第１フィンガープリントおよび前記参照コンテンツ・アイテムの前記第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致すると決定する工程
をさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
少なくとも１つの検証基準が満たされていると決定する工程は、
前記コンピューティング・システムが、閾値期間中、前記テスト・コンテンツ・アイテムと前記参照コンテンツ・アイテムとの間に一致がないと決定されたと決定する工程
をさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項６】
少なくとも１つの検証基準が満たされていると決定する工程は、
前記コンピューティング・システムが、閾値数のフレームについて、前記テスト・コンテンツ・アイテムと前記参照コンテンツ・アイテムとの間に一致がないと決定されたと決定する工程
をさらに含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記第１フィンガープリントおよび前記第２フィンガープリントは、音声フィンガープリント、映像フィンガープリント、およびサムネイル・フィンガープリントのうちの１つに対応する、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記第１フィンガープリントは音声フィンガープリントに対応し、前記第２フィンガープリントは映像フィンガープリントに対応する、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記第１フィンガープリントはサムネイル・フィンガープリントに対応し、前記第２フィンガープリントは映像フィンガープリントに対応する、請求項１に記載のコンピュータ実装方法。
【請求項１０】
前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムの１以上の第３フィンガープリントおよび前記参照コンテンツ・アイテムの１以上の第３フィンガープリントを使用して、前記テスト・コンテンツの前記部分を前記参照コンテンツの前記部分に対して評価する工程をさらに含み、前記第３フィンガープリントは、前記第１タイプのメディアおよび前記第２タイプのメディアとは異なる第３タイプのメディアに対応する、
請求項１に記載のコンピュータ実装方法。
【請求項１１】
少なくとも１つのプロセッサと、
命令を記憶するメモリと、を備えるシステムであって、
前記命令が前記少なくとも１つのプロセッサによって実行されたときに、前記システムに、
テスト・コンテンツ・アイテムの１以上の第１フィンガープリントおよび参照コンテンツ・アイテムの１以上の第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの少なくとも１つの部分を前記参照コンテンツ・アイテムの少なくとも１つの部分に対して評価する工程であって、前記第１フィンガープリントは第１タイプのメディアに対応する、工程と、
少なくとも１つの検証基準が満たされていると決定する工程と、
前記テスト・コンテンツ・アイテムの１以上の第２フィンガープリントおよび前記参照コンテンツ・アイテムの１以上の第２フィンガープリントを使用して、前記テスト・コンテンツの前記部分を前記参照コンテンツの前記部分に対して評価する工程であって、前記第２フィンガープリントは、前記第１タイプのメディアとは異なる第２タイプのメディアに対応する、工程と、
を行わせる、システム。
【請求項１２】
前記テスト・コンテンツの前記部分を前記参照コンテンツの前記部分に対して評価する工程は、前記システムに、
前記テスト・コンテンツ・アイテムの前記部分に対応する前記１以上の第２フィンガープリントを取得する工程と、
前記参照コンテンツ・アイテムの前記部分に対応する前記１以上の第２フィンガープリントを取得する工程と、
前記テスト・コンテンツ・アイテムの前記第２フィンガープリントおよび前記参照コンテンツ・アイテムの前記第２フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致すると決定する工程と、
をさらに行わせる、請求項１１に記載のシステム。
【請求項１３】
少なくとも１つの検証基準が満たされていると決定する工程は、前記システムに、
前記テスト・コンテンツ・アイテムの前記第１フィンガープリントおよび前記参照コンテンツ・アイテムの前記第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致していないと決定する工程
をさらに行わせる、請求項１２に記載のシステム。
【請求項１４】
前記システムは、前記システムに、
前記少なくとも１つの通知を受信したにも関わらず、前記第２ライブ・コンテンツ・ストリームの前記放送者が前記第２ライブ・コンテンツ・ストリームを提供し続けていると決定する工程と、
前記テスト・コンテンツ・アイテムの前記第１フィンガープリントおよび前記参照コンテンツ・アイテムの前記第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致していると決定する工程と、
をさらに行わせる、請求項１１に記載のシステム。
【請求項１５】
前記第１ライブ・コンテンツ・ストリームの前記パブリッシャに少なくとも１つの通知を提供する工程は、前記システムに、
閾値期間中、前記テスト・コンテンツ・アイテムと前記参照コンテンツ・アイテムとの間に一致がないと決定されたと決定する工程
をさらに行わせる、請求項１４に記載のシステム。
【請求項１６】
コンピューティング・システムの少なくとも１つのプロセッサによって実行されたときに、前記コンピューティング・システムに、
テスト・コンテンツ・アイテムの１以上の第１フィンガープリントおよび参照コンテンツ・アイテムの１以上の第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの少なくとも１つの部分を前記参照コンテンツ・アイテムの少なくとも１つの部分に対して評価する工程であって、前記第１フィンガープリントは第１タイプのメディアに対応する、工程と、
少なくとも１つの検証基準が満たされていると決定する工程と、
前記テスト・コンテンツ・アイテムの１以上の第２フィンガープリントおよび前記参照コンテンツ・アイテムの１以上の第２フィンガープリントを使用して、前記テスト・コンテンツの前記部分を前記参照コンテンツの前記部分に対して評価する工程であって、前記第２フィンガープリントは、前記第１タイプのメディアとは異なる第２タイプのメディアに対応する、工程と、
を含む方法を行わせる命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記テスト・コンテンツの前記部分を前記参照コンテンツの前記部分に対して評価する工程は、前記コンピューティング・システムに、
前記テスト・コンテンツ・アイテムの前記部分に対応する前記１以上の第２フィンガープリントを取得する工程と、
前記参照コンテンツ・アイテムの前記部分に対応する前記１以上の第２フィンガープリントを取得する工程と、
前記テスト・コンテンツ・アイテムの前記第２フィンガープリントおよび前記参照コンテンツ・アイテムの前記第２フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致すると決定する工程と、
をさらに行わせる、請求項１６に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
少なくとも１つの検証基準が満たされていると決定する工程は、
前記テスト・コンテンツ・アイテムの前記第１フィンガープリントおよび前記参照コンテンツ・アイテムの前記第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致していないと決定する工程
をさらに行う、請求項１７に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
少なくとも１つの検証基準が満たされていると決定する工程は、
前記テスト・コンテンツ・アイテムの前記第１フィンガープリントおよび前記参照コンテンツ・アイテムの前記第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致していると決定する工程
をさらに行う、請求項１６に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
少なくとも１つの検証基準が満たされていると決定する工程は、前記コンピューティング・システムに、
閾値期間中、前記テスト・コンテンツ・アイテムと前記参照コンテンツ・アイテムとの間に一致がないと決定されたと決定する工程
をさらに行わせる、請求項１９に記載の非一時的コンピュータ可読記憶媒体。
【請求項２１】
コンピューティング・システムが、テスト・コンテンツ・アイテムの１以上の第１フィンガープリントおよび参照コンテンツ・アイテムの１以上の第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの少なくとも１つの部分を前記参照コンテンツ・アイテムの少なくとも１つの部分に対して評価する工程であって、前記第１フィンガープリントは第１タイプのメディアに対応する、工程と、
前記コンピューティング・システムが、少なくとも１つの検証基準が満たされていると決定する工程と、
前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムの１以上の第２フィンガープリントおよび前記参照コンテンツ・アイテムの１以上の第２フィンガープリントを使用して、前記テスト・コンテンツの前記部分を前記参照コンテンツの前記部分に対して評価する工程であって、前記第２フィンガープリントは、前記第１タイプのメディアとは異なる第２タイプのメディアに対応する、工程と、
を含む、コンピュータ実装方法。
【請求項２２】
前記テスト・コンテンツの前記部分を前記参照コンテンツの前記部分に対して評価する工程は、
前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムの前記部分に対応する前記１以上の第２フィンガープリントを取得する工程と、
前記コンピューティング・システムが、前記参照コンテンツ・アイテムの前記部分に対応する前記１以上の第２フィンガープリントを取得する工程と、
前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムの前記第２フィンガープリントおよび前記参照コンテンツ・アイテムの前記第２フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致すると決定する工程と、
をさらに含む、請求項２１に記載のコンピュータ実装方法。
【請求項２３】
少なくとも１つの検証基準が満たされていると決定する工程は、
前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムの前記第１フィンガープリントおよび前記参照コンテンツ・アイテムの前記第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致していないと決定する工程、および／または、
前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムの前記第１フィンガープリントおよび前記参照コンテンツ・アイテムの前記第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致すると決定する工程、および／または、
前記コンピューティング・システムが、閾値期間中、前記テスト・コンテンツ・アイテムと前記参照コンテンツ・アイテムとの間に一致がないと決定されたと決定する工程、および／または、
前記コンピューティング・システムが、閾値数のフレームについて、前記テスト・コンテンツ・アイテムと前記参照コンテンツ・アイテムとの間に一致がないと決定されたと決定する工程、
をさらに含む、請求項２１または２２に記載のコンピュータ実装方法。
【請求項２４】
前記第１フィンガープリントおよび前記第２フィンガープリントは、音声フィンガープリント、映像フィンガープリント、および、サムネイル・フィンガープリントのうちの１つに対応する、請求項２１〜２３のいずれか一項に記載のコンピュータ実装方法。
【請求項２５】
前記第１フィンガープリントは音声フィンガープリントに対応し、前記第２フィンガープリントは映像フィンガープリントに対応する、請求項２１〜２４のいずれか一項に記載のコンピュータ実装方法。
【請求項２６】
前記第１フィンガープリントはサムネイル・フィンガープリントに対応し、前記第２フィンガープリントは映像フィンガープリントに対応する、請求項２１〜２５のいずれか一項に記載のコンピュータ実装方法。
【請求項２７】
前記コンピューティング・システムが、前記テスト・コンテンツ・アイテムの１以上の第３フィンガープリントおよび前記参照コンテンツ・アイテムの１以上の第３フィンガープリントを使用して、前記テスト・コンテンツの前記部分を前記参照コンテンツの前記部分に対して評価する工程をさらに含み、前記第３フィンガープリントは、前記第１タイプのメディアおよび前記第２タイプのメディアとは異なる第３タイプのメディアに対応する、
請求項２１〜２６のいずれか一項に記載のコンピュータ実装方法。
【請求項２８】
ユーザ・デバイスが記第１フィンガープリントのうちの１以上を生成して送信するように命令され、前記方法は、
前記１以上の第１タイプのフィンガープリントを使用して少なくとも１つの検証基準が満たされている場合、追加のタイプのフィンガープリントを使用して、前記一致したコンテンツをさらに検証するために、提供されるコンテンツ・アイテムについて１以上の第２タイプのフィンガープリントの生成および送信を命令する工程
をさらに含む、請求項２１〜２７のいずれか一項に記載のコンピュータ実装方法。
【請求項２９】
前記第１タイプが音声であり、前記第２タイプが映像であり、音声フィンガープリントおよび映像フィンガープリントは所定のフレーム・レートで生成される、請求項２１〜２８のいずれか一項に記載のコンピュータ実装方法。
【請求項３０】
少なくとも１つのプロセッサと、
命令を記憶するメモリとを備えるシステムであって、前記命令は、前記少なくとも１つのプロセッサによって実行されたときに、前記システムに、
テスト・コンテンツ・アイテムの１以上の第１フィンガープリントおよび参照コンテンツ・アイテムの１以上の第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの少なくとも１つの部分を前記参照コンテンツ・アイテムの少なくとも１つの部分に対して評価する工程であって、前記第１フィンガープリントは第１タイプのメディアに対応する、工程と、
少なくとも１つの検証基準が満たされていると決定する工程と、
前記テスト・コンテンツ・アイテムの１以上の第２フィンガープリントおよび前記参照コンテンツ・アイテムの１以上の第２フィンガープリントを使用して、前記テスト・コンテンツの前記部分を前記参照コンテンツの前記部分に対して評価する工程であって、前記第２フィンガープリントは、前記第１タイプのメディアとは異なる第２タイプのメディアに対応する、工程と、
を行わせる、システム。
【請求項３１】
前記テスト・コンテンツの前記部分を前記参照コンテンツの前記部分に対して評価する工程は、前記システムに、
前記テスト・コンテンツ・アイテムの前記部分に対応する前記１以上の第２フィンガープリントを取得する工程と、
前記参照コンテンツ・アイテムの前記部分に対応する前記１以上の第２フィンガープリントを取得する工程と、
前記テスト・コンテンツ・アイテムの前記第２フィンガープリントおよび前記参照コンテンツ・アイテムの前記第２フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致すると決定する工程と、をさらに行わせ、
好ましくは、少なくとも１つの検証基準が満たされていると決定する工程は、前記システムに、
前記テスト・コンテンツ・アイテムの前記第１フィンガープリントおよび前記参照コンテンツ・アイテムの前記第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致していないと決定する工程、をさらに行わせる、
請求項３０に記載のシステム。
【請求項３２】
前記システムは、前記システムに、
前記少なくとも１つの通知を受信したにも関わらず、前記第２ライブ・コンテンツ・ストリームの前記放送者が前記第２ライブ・コンテンツ・ストリームを提供し続けていると決定する工程と、
前記テスト・コンテンツ・アイテムの前記第１フィンガープリントおよび前記参照コンテンツ・アイテムの前記第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致していると決定する工程と、をさらに行わせ、
好ましくは、前記第１ライブ・コンテンツ・ストリームの前記パブリッシャに少なくとも１つの通知を提供する工程は、前記システムに、
閾値期間中、前記テスト・コンテンツ・アイテムと前記参照コンテンツ・アイテムとの間に一致がないと決定されたと決定する工程、をさらに行わせる、
請求項３０または３１に記載のシステム。
【請求項３３】
コンピューティング・システムの少なくとも１つのプロセッサによって実行されたときに、前記コンピューティング・システムに、
テスト・コンテンツ・アイテムの１以上の第１フィンガープリントおよび参照コンテンツ・アイテムの１以上の第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの少なくとも１つの部分を前記参照コンテンツ・アイテムの少なくとも１つの部分に対して評価する工程であって、前記第１フィンガープリントは第１タイプのメディアに対応する、工程と、
少なくとも１つの検証基準が満たされていると決定する工程と、
前記テスト・コンテンツ・アイテムの１以上の第２フィンガープリントおよび前記参照コンテンツ・アイテムの１以上の第２フィンガープリントを使用して、前記テスト・コンテンツの前記部分を前記参照コンテンツの前記部分に対して評価する工程であって、前記第２フィンガープリントは、前記第１タイプのメディアとは異なる第２タイプのメディアに対応する、工程と、
を含む方法を行わせる命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項３４】
前記テスト・コンテンツの前記部分を前記参照コンテンツの前記部分に対して評価する工程は、前記コンピューティング・システムに、
前記テスト・コンテンツ・アイテムの前記部分に対応する前記１以上の第２フィンガープリントを取得する工程と、
前記参照コンテンツ・アイテムの前記部分に対応する前記１以上の第２フィンガープリントを取得する工程と、
前記テスト・コンテンツ・アイテムの前記第２フィンガープリントおよび前記参照コンテンツ・アイテムの前記第２フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致すると決定する工程と、をさらに行わせ、
好ましくは、少なくとも１つの検証基準が満たされていると決定する工程は、
前記テスト・コンテンツ・アイテムの前記第１フィンガープリントおよび前記参照コンテンツ・アイテムの前記第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致していないと決定する工程、をさらに行い、
好ましくは、少なくとも１つの検証基準が満たされていると決定する工程は、
前記テスト・コンテンツ・アイテムの前記第１フィンガープリントおよび前記参照コンテンツ・アイテムの前記第１フィンガープリントを使用して、前記テスト・コンテンツ・アイテムの前記部分が前記参照コンテンツ・アイテムの前記部分に一致していると決定する工程、をさらに行い、
好ましくは、少なくとも１つの検証基準が満たされていると決定する工程は、前記コンピューティング・システムに、
閾値期間中、前記テスト・コンテンツ・アイテムと前記参照コンテンツ・アイテムとの間に一致がないと決定されたと決定する工程、をさらに行わせる、
請求項３３に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、コンテンツの照合の分野に関わる。より具体的には、本技術は、一致するコンテンツ・アイテムを特定するための手法に関わる。
【背景技術】
【０００２】
現在、人々は、多様な目的のためにコンピューティング・デバイス（またはシステム）をしばしば利用する。ユーザは、自らのコンピューティング・デバイスを使用して、たとえば、互いに相互作用し、コンテンツにアクセスし、コンテンツを共有し、コンテンツを作成することができる。場合により、コンテンツ・アイテムは、ソーシャル・ネットワークのメンバーからの投稿を含むことができる。投稿は、テキスト、ならびに画像、映像および音声等のメディア・コンテンツ・アイテムを含むことができる。投稿は、他者による利用のためにソーシャル・ネットワークに公開されてもよい。
【図面の簡単な説明】
【０００３】
【図１】本開示の一実施形態に係る、さまざまなコンテンツ・アイテムへのアクセスを提供するように構成される例示的なコンテンツ・プロバイダ・モジュールを含む例示的なシステムを示す図。
【図２】本開示の一実施形態に係る、コンテンツ照合モジュールの一実施例を示す図。
【図３】本開示の一実施形態に係る、フィンガープリンティング・モジュールの一実施例を示す図。
【図４】本開示の一実施形態に係る、記憶モジュールの一実施例を示す図。
【図５】本開示の一実施形態に係る、照合モジュールの一実施例を示す図。
【図６】本開示の一実施形態に係る、フレームから特徴値を抽出するための例示的なアプローチを示す図。
【図７】本開示の一実施形態に係る、フィンガープリント・データを記憶して検索するための例示的な転置インデックスを示す図。
【図８Ａ】本開示の一実施形態に係る、コンテンツ・アイテム間で一致するコンテンツを特定するための例示的なアプローチを示す図。
【図８Ｂ】本開示の一実施形態に係る、コンテンツ・アイテム間で一致するコンテンツを特定するための例示的なアプローチを示す図。
【図９Ａ】本開示の一実施形態に係る、ライブ・コンテンツ・ストリームを処理するための例示的なアプローチを示す図。
【図９Ｂ】本開示の一実施形態に係る、ライブ・コンテンツ・ストリームを処理するための例示的なアプローチを示す図。
【図９Ｃ】本開示の一実施形態に係る、ライブ・コンテンツ・ストリームを処理するための例示的なアプローチを示す図。
【図１０】本開示の種々実施形態に係る、コンテンツのフィンガープリントを作成するための例示的なプロセスを示す図。
【図１１】本開示の種々実施形態に係る、異なるタイプのフィンガープリントを使用してコンテンツを照合するための例示的なプロセスを示す図。
【図１２】本開示の種々実施形態に係る、歪みフィンガープリントを使用してコンテンツを照合するための例示的なプロセスを示す図。
【図１３】本開示の一実施形態に係る、さまざまなシナリオで利用することのできる例示的なソーシャル・ネットワーキング・システムを含む例示的なシステムのネットワーク図。
【図１４】本開示の一実施形態に係る、さまざまなシナリオで利用することのできるコンピュータ・システムまたはコンピューティング・デバイスの一実施例を示す図。
【発明を実施するための形態】
【０００４】
本開示の種々実施形態は、複数の映像フレームを有するテスト・コンテンツ・アイテムを取得し、テスト・コンテンツ・アイテムに対応する１組の映像フレームに基づいて少なくとも１つの映像フィンガープリントを生成し、映像フィンガープリントの少なくとも一部分を使用して少なくとも１つの参照コンテンツ・アイテムを決定し、テスト・コンテンツ・アイテムの映像フィンガープリントおよび参照コンテンツ・アイテムの１つまたは複数の映像フィンガープリントに少なくとも部分的に基づいて、参照コンテンツ・アイテムの少なくとも１つの部分に一致するテスト・コンテンツ・アイテムの少なくとも１つの部分を決定するように構成されているシステム、方法および非一時的コンピュータ可読媒体を含むことができる。
【０００５】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、１組の映像フレーム内の各映像フレームについて、映像フレームを記述する１組の特徴値を含む特徴ベクトルをそれぞれ生成し、１組の映像フレームについての特徴ベクトルを周波数ドメインに変換し、映像フレームのうちの１つまたは複数に対応する１組の周波数成分を量子化することによって各映像フレームについてそれぞれ１組のビットを生成するように構成されている。
【０００６】
一実施形態において、映像フレームの特徴ベクトルに含まれる特徴値は、少なくとも、映像フレームについての測定明るさ、映像フレームについての測定配色、および映像フレーム内の画素の１つまたは複数のグループ間の測定変化に対応する。
【０００７】
一実施形態において、映像フレームについての特徴ベクトルは、高速フーリエ変換（ＦＦＴ）、離散コサイン変換（ＤＣＴ）、またはその両方を適用することによって、周波数ドメインに変換される。
【０００８】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、周波数ドメインで映像フレームを補間するように構成されており、補間は、映像フィンガープリントを所定のフレーム・レートに一致させる。
【０００９】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、映像フィンガープリントがそこから生成された１組のフレーム内の第１フレームに対応する１組のビットを取得し、１組のビットの第１部分に少なくとも部分的に基づいて少なくとも１つの候補フレームを特定し、候補フレームに基づいて参照コンテンツ・アイテムを決定するように構成されている。
【００１０】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、１組のビットの第１部分を転置インデックスのビンにハッシュ化するように構成されており、ビンは、少なくとも１つの候補フレームを記述する情報を参照する。
【００１１】
一実施形態において、候補フレームを記述する情報は、参照コンテンツ・アイテムと、参照コンテンツ・アイテム内の候補フレームの位置を特定するオフセットとを特定する。
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、映像フィンガープリントがそこから生成された１組のフレーム内の少なくとも１つの第１フレームに対応する１組のビットを取得し、１組のビットの第１部分に少なくとも部分的に基づいて少なくとも１つの候補フレームを特定し、第１フレームに対応する１組のビットと候補フレームに対応する１組のビットとのハミング距離が閾値を満たしていると決定するように構成されている。
【００１２】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、映像フィンガープリントがそこから生成された１組のフレーム内の少なくとも１つの第２フレームに対応する１組のビットを取得し、参照コンテンツ・アイテム内の新たなフレームに対応する１組のビットを決定し、第２フレームに対応する１組のビットと新たなフレームに対応する１組のビットとのハミング距離が閾値を満たしていると決定するように構成されている。
【００１３】
本開示の種々実施形態は、テスト・コンテンツ・アイテムの１つまたは複数の第１フィンガープリントおよび参照コンテンツ・アイテムの１つまたは複数の第１フィンガープリントを使用して、テスト・コンテンツ・アイテムの少なくとも１つの部分を参照コンテンツ・アイテムの少なくとも１つの部分に対して評価するように構成されているシステム、方法および非一時的コンピュータ可読媒体を含むことができ、第１フィンガープリントは第１タイプのメディアに対応し、少なくとも１つの検証基準が満たされていると決定し、テスト・コンテンツ・アイテムの１つまたは複数の第２フィンガープリントおよび参照コンテンツ・アイテムの１つまたは複数の第２フィンガープリントを使用して、テスト・コンテンツの部分を参照コンテンツの部分に対して評価し、第２フィンガープリントは、第１タイプのメディアとは異なる第２タイプのメディアに対応する。
【００１４】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、テスト・コンテンツ・アイテムの部分に対応する１つまたは複数の第２フィンガープリントを取得し、参照コンテンツ・アイテムの部分に対応する１つまたは複数の第２フィンガープリントを取得し、テスト・コンテンツ・アイテムの第２フィンガープリントおよび参照コンテンツ・アイテムの第２フィンガープリントを使用して、テスト・コンテンツ・アイテムの部分が参照コンテンツ・アイテムの部分に一致していると決定するように構成されている。
【００１５】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、テスト・コンテンツ・アイテムの第１フィンガープリントおよび参照コンテンツ・アイテムの第１フィンガープリントを使用して、テスト・コンテンツ・アイテムの部分が参照コンテンツ・アイテムの部分に一致していないと決定するように構成されている。
【００１６】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、テスト・コンテンツ・アイテムの第１フィンガープリントおよび参照コンテンツ・アイテムの第１フィンガープリントを使用して、テスト・コンテンツ・アイテムの部分が参照コンテンツ・アイテムの部分に一致していると決定するように構成されている。
【００１７】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、閾値期間中、テスト・コンテンツ・アイテムと参照コンテンツ・アイテムとの間に一致がないと決定されたと決定するように構成されている。
【００１８】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、閾値数のフレームについて、テスト・コンテンツ・アイテムと参照コンテンツ・アイテムとの間に一致がないと決定されたと決定するように構成されている。
【００１９】
一実施形態において、第１フィンガープリントおよび第２フィンガープリントは、音声フィンガープリント、映像フィンガープリント、およびサムネイル・フィンガープリントのうちの１つに対応する。
【００２０】
一実施形態において、第１フィンガープリントは音声フィンガープリントに対応し、第２フィンガープリントは映像フィンガープリントに対応する。
一実施形態において、第１フィンガープリントはサムネイル・フィンガープリントに対応し、第２フィンガープリントは映像フィンガープリントに対応する。
【００２１】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、テスト・コンテンツ・アイテムの１つまたは複数の第３フィンガープリントおよび参照コンテンツ・アイテムの１つまたは複数の第３フィンガープリントを使用して、テスト・コンテンツの部分を参照コンテンツの部分に対して評価するように構成されており、第３フィンガープリントは、第１タイプのメディアおよび第２タイプのメディアとは異なる第３タイプのメディアに対応する。
【００２２】
一実施形態において、ユーザ・デバイスが第１フィンガープリントのうちの１つまたは複数を生成して送信するように命令されるシステム、方法および非一時的コンピュータ可読媒体は、１つまたは複数の第１タイプのフィンガープリントを使用して少なくとも１つの検証基準が満たされている場合、追加のタイプのフィンガープリントを使用して、一致したコンテンツをさらに検証するために、提供されるコンテンツ・アイテムについて１つまたは複数の第２タイプのフィンガープリントの生成および送信を命令することを含むように構成されている。
【００２３】
一実施形態において、第１タイプが音声であり、第２タイプが映像であるシステム、方法および非一時的コンピュータ可読媒体は、所定のフレーム・レートで音声フィンガープリントおよび映像フィンガープリントを生成する。
【００２４】
本開示の種々実施形態は、テスト・コンテンツ・アイテムに対応する１組のフレームに基づいて少なくとも１つのフィンガープリントを生成し、フィンガープリントの少なくとも一部分を使用して１組の歪みフィンガープリントを生成し、１組の歪みフィンガープリントを使用して１つまたは複数の参照コンテンツ・アイテムを決定するように構成されており、テスト・コンテンツ・アイテムは、一致するコンテンツを特定するために少なくとも１つの参照コンテンツ・アイテムに対して評価される、システム、方法および非一時的コンピュータ可読媒体を含むことができる。
【００２５】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、フィンガープリントがそこから生成された１組のフレーム内の第１フレームに対応する１組のビットを取得し、１組のビットの少なくとも一部分について、１組のバイナリ文字列の順列を生成するように構成されている。
【００２６】
一実施形態において、各バイナリ文字列において１つまたは複数のビットが置換される。
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、１組のビットの部分について、各バイナリ文字列において１つのビットが置換される第１組のバイナリ文字列の順列を生成し、第１組のバイナリ文字列の順列を使用して参照コンテンツ・アイテムが特定されなかったと決定し、１組のビットの部分について、各バイナリ文字列において複数のビットが置換される第２組のバイナリ文字列の順列を生成するように構成されている。
【００２７】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、第１歪みフィンガープリントに対応する１組のビットを取得し、１組のビットの一部分に少なくとも部分的に基づいて、少なくとも１つの候補フレームを特定し、候補フレームに基づいて少なくとも１つの参照コンテンツ・アイテムを決定するように構成されている。
【００２８】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、１組のビットの部分を転置インデックスのビンにハッシュ化するように構成されており、ビンは、少なくとも１つの候補フレームおよび参照コンテンツ・アイテムを記述する情報を参照する。
【００２９】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、１組の歪みフィンガープリントを使用して参照コンテンツ・アイテムを特定することで、コンピューティング・システムの中央処理装置（ＣＰＵ）の負荷が閾値負荷を超えることはないと決定するように構成されている。
【００３０】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、少なくとも１つのフィンガープリントを使用して参照コンテンツ・アイテムが特定されなかったと決定するように構成されている。
【００３１】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、少なくとも１つのフィンガープリントを使用して少なくとも１つの参照コンテンツ・アイテムを決定し、テスト・コンテンツ・アイテムと参照コンテンツ・アイテムとの間に一致が特定されなかったと決定するように構成されている。
【００３２】
一実施形態において、システム、方法および非一時的コンピュータ可読媒体は、少なくとも１つのフィンガープリントを使用して少なくとも１つの参照コンテンツ・アイテムを決定し、テスト・コンテンツ・アイテムと参照コンテンツ・アイテムとの間の一致が閾値一致度距離内であると決定するように構成されている。
【００３３】
開示される技術の他の多くの特徴、アプリケーション、実施形態、および／または変型は添付の図面および以下の詳細な説明から明らかになることは理解されるべきである。本明細書で説明する構造、システム、非一時的コンピュータ可読媒体および方法の追加の実施態様および／または代替実施態様を、開示される技術の原理から逸脱することなく採用することができる。
【００３４】
本発明による実施形態は、方法、記憶媒体、システムおよびコンピュータ・プログラム製品に向けられた添付の特許請求の範囲に特に開示されており、ある請求項のカテゴリ、たとえば方法、で述べられる特徴は、別の請求項のカテゴリ、たとえばシステム、でも同様に請求できる。添付の特許請求の範囲における従属性または後方参照は、形式上の理由で選ばれているにすぎない。しかし、任意の前の請求項への意図的な後方参照（特に多項従属）の結果として生じる主題も同様に請求することができるので、請求項およびその特徴の任意の組み合わせが開示され、添付の特許請求の範囲で選ばれた従属性に関係なく請求することができる。請求することのできる主題は、添付の特許請求の範囲に記載される特徴の組み合わせだけでなく、特許請求の範囲の特徴の任意の他の組み合わせも含み、特許請求の範囲で述べられる各特徴は、特許請求の範囲の任意の他の特徴または他の特徴の組み合わせと組み合わせることができる。さらに、本明細書において説明または描写される実施形態および特徴のいずれも、個別の請求項で、および／または本明細書において説明もしくは描写される任意の実施形態もしくは特徴と、もしくは添付の特許請求の範囲の特徴のいずれかと組み合わせて請求することができる。
【００３５】
図面は、説明のみを目的として、開示される技術の種々実施形態を示しており、図面は、同様な要素の識別には同様な参照符号を使用している。以下の考察から、当業者には、本明細書で説明される開示技術の原理から逸脱することなく、図面に図示される構造および方法の代替実施形態を採用可能であることは容易に認識されよう。
【００３６】
一致するコンテンツを特定するためのアプローチ
現在、人々は、多様な目的のためにコンピューティング・デバイス（またはシステム）をしばしば利用する。ユーザは、自らのコンピューティング・デバイスを使用して、たとえば、互いに相互作用し、コンテンツにアクセスし、コンテンツを共有し、コンテンツを作成することができる。場合により、コンテンツ・アイテムは、ソーシャル・ネットワークのメンバーからの投稿を含むことができる。投稿は、テキスト、ならびに画像、映像および音声等のメディア・コンテンツ・アイテムを含むことができる。投稿は、他者による利用のためにソーシャル・ネットワークに公開されてもよい。
【００３７】
従来のアプローチにおいては、コンテンツは、コンテンツ・プロバイダ経由で放送されてもよい。たとえば、該コンテンツ・プロバイダは、種々の放送媒体（たとえば、テレビ、衛星放送、インターネット等）経由でコンテンツを放送してもよい。一実施例において、放送は、パブリッシャによってキャプチャおよびライブ・ストリーミングされているコンテンツを含むことができる。たとえば、パブリッシャは、ライブ・コンテンツ・ストリームの一部として放送されるコンテンツ（たとえば、ライブ・コンサート、テレビ番組の初回放送等）を提供することができる。そうしたイベントは、たとえば、ビデオ・キャプチャ・デバイス（たとえば、ビデオ・カメラ）および／またはオーディオ・キャプチャ・デバイス（たとえば、マイクロフォン）を使用してキャプチャすることができる。このようにキャプチャされたコンテンツは、さらに、コンテンツ・プロバイダ（たとえば、ソーシャル・ネットワーキング・システム）によって、符号化されて、ネットワーク（たとえば、インターネット）上でリアルタイムでユーザ・デバイスに配信されることができる。場合によっては、未許可のエンティティが、パブリッシャのライブ・コンテンツ・ストリームの複製をキャプチャして、複製されたコンテンツを、コンテンツ・プロバイダ経由で個別のライブ・コンテンツ・ストリームの一部としてストリーミングすることがある。たとえば、このエンティティは、コンテンツがテレビのディスプレイに提示されているときに、パブリッシャのライブ・コンテンツ・ストリームを録画することがある。別の実施例では、無許可のエンティティが、異なるメディア（例、衛星等）経由で放送されているイベントのストリームをキャプチャし、キャプチャしたストリームをコンテンツ・プロバイダ経由で発信することがある。
【００３８】
従来のアプローチにおいては、こうした無許可のライブ・コンテンツ・ストリームを検出することは時に難しく、この難しさは、ライブ・コンテンツ・ストリームが著作権保護コンテンツを含む場合に特に問題となる可能性がある。たとえば、従来のアプローチでは、コンテンツ・プロバイダは、通例、コンテンツ・アイテムがコンテンツ・プロバイダに全部アップロードされた後に、コンテンツ・アイテムが著作権保護コンテンツ・アイテムを侵害しているかどうかをチェックするであろう。コンテンツ・プロバイダは、次いで、アップロードされたコンテンツ・アイテムを著作権保護コンテンツ・アイテムに対して分析して、いずれかの部分が一致するかどうかを特定するであろう。このようなアプローチは、オンデマンドで供給されるコンテンツ・アイテムの著作権侵害を検出するには十分であるかもしれないが、一般に、ライブ・ストリーミングされているコンテンツ・アイテムの著作権侵害の検出には不十分である。したがって、このような従来のアプローチは、コンピュータ技術で生じる以上のような問題および他の問題に対処するには効果的ではないかもしれない。
【００３９】
コンピュータ技術に根ざした改良されたアプローチが、コンピュータ技術の分野において特に生じる従来のアプローチに伴う、上述の欠点および他の欠点を克服する。種々実施形態において、パブリッシャは、ライブ・コンテンツ・ストリームの一部としてソーシャル・ネットワーキング・システム経由でストリーミングまたは放送するコンテンツを提供することができる。パブリッシャは、ライブ・コンテンツ・ストリームが著作権保護されていることを示すことができ、この表示に基づいて、ソーシャル・ネットワーキング・システムは、コンテンツがライブ・ストリーミングされているときに、コンテンツのフィンガープリントを生成することができる。これらのフィンガープリントは、参照データベースに記憶することができ、たとえば、他のライブ・コンテンツ・ストリームおよび／またはオンデマンド・コンテンツ・アイテム内の複製コンテンツを特定するために使用することができる。たとえば、パブリッシャのコンテンツがライブ・ストリーミングされているとき、ソーシャル・ネットワーキング・システムは、任意の他のライブ・コンテンツ・ストリームおよび／またはオンデマンド・コンテンツ・アイテムがパブリッシャの著作権保護ライブ・コンテンツ・ストリームの全体または一部のいずれかに一致するかどうかを判別することができる。パブリッシャのライブ・コンテンツ・ストリームに一致するコンテンツ・アイテムの任意の部分は、著作権または他の法的権利の侵害である可能性がある。このような場合、ライブ・コンテンツ・ストリームの無許可の放送者および／またはパブリッシャ（たとえば、著作権保有者）には、著作権侵害の可能性について通知することができ、適切な処置を取ることができる。いくつかの実施形態においては、無許可の放送者が投稿する侵害ライブ・コンテンツ・ストリームおよび／またはオンデマンド・コンテンツ・アイテムは、自動的に、ソーシャル・ネットワーキング・システム経由でアクセス不可にされる。
【００４０】
図１は、本開示の一実施形態に係る、さまざまなコンテンツ・アイテムへのアクセスを提供するように構成される例示的なコンテンツ・プロバイダ・モジュール１０２を含む例示的なシステム１００を示している。図１の実施例に図示されるように、コンテンツ・プロバイダ・モジュール１０２は、コンテンツ・アップロード・モジュール１０４、ライブ・ストリーム・モジュール１０６、コンテンツ・モジュール１０８、およびコンテンツ照合モジュール１１０を含むことができる。場合によっては、例示的なシステム１００は、少なくとも１つのデータ・ストア１１２を含むことができる。この図および本明細書のすべての図に図示される構成要素（たとえば、モジュール、要素等）は例示にすぎず、他の実施態様は、追加の構成要素、より少ない構成要素、統合された構成要素、または異なる構成要素を含んでいてもよい。関連する細部が分かり難くならないように、図示していない構成要素もある。
【００４１】
いくつかの実施形態において、コンテンツ・プロバイダ・モジュール１０２は、部分的にまたは全体的に、ソフトウェア、ハードウェアまたはその任意の組み合わせとして実装される。一般に、本明細書で説明されるモジュールは、ソフトウェア、ハードウェアまたはその任意の組み合わせに関連付けることができる。いくつかの実施態様において、モジュールの１つまたは複数の機能、タスクおよび／または動作は、ソフトウェアのルーチン、ソフトウェアのプロセス、ハードウェア、および／またはその任意の組み合わせによって遂行または実装される。場合により、コンテンツ・プロバイダ・モジュール１０２は、部分的にまたは全体として、ユーザまたはクライアント・コンピューティング・デバイス等、１つまたは複数のコンピューティング・デバイスまたはシステム上で稼働するソフトウェアとして実装される。一実施例において、コンテンツ・プロバイダ・モジュール１０２または少なくともその一部は、図１３のユーザ・デバイス１３１０等、ユーザ・コンピューティング・デバイスまたはクライアント・コンピューティング・システム上で稼働するアプリケーション（たとえば、アプリ）、プログラム、またはアプレット等として、またはその内部に実装される。別の実施例では、コンテンツ・プロバイダ・モジュール１０２または少なくともその一部は、ネットワーク・サーバまたはクラウド・サーバ等の１つまたは複数のサーバを含む１つまたは複数のコンピューティング・デバイスまたはシステムを使用して実装される。場合によっては、コンテンツ・プロバイダ・モジュール１０２は、部分的にまたは全体として、図１３のソーシャル・ネットワーキング・システム１３３０等のソーシャル・ネットワーキング・システム（またはサービス）内に実装され、または該システム（またはサービス）と連携して動作するように構成することができる。
【００４２】
コンテンツ・プロバイダ・モジュール１０２は、例示的なシステム１００に図示されるように、少なくとも１つのデータ・ストア１１２と通信する、および／または少なくとも１つのデータ・ストア１１２と一緒に動作するように構成することができる。少なくとも１つのデータ・ストア１１２は、さまざまなタイプのデータを記憶して維持するように構成することができる。たとえば、データ・ストア１１２は、ソーシャル・ネットワーキング・システム経由でライブ・ストリーミングされているさまざまなコンテンツを記述する情報、またはソーシャル・ネットワーキング・システムのユーザによって投稿されたコンテンツ・アイテムを記述する情報を記憶することができる。該情報には、たとえば、ライブ・コンテンツ・ストリームのために、およびオンデマンド・コンテンツ・アイテムのために生成されたフィンガープリント（たとえば、ビット・シーケンス）を含むことができる。いくつかの実施態様において、少なくとも１つのデータ・ストア１１２は、ソーシャル・ネットワーキング・システム（たとえば、図１３のソーシャル・ネットワーキング・システム１３３０）に関連付けられている情報を記憶することができる。ソーシャル・ネットワーキング・システムに関連付けられている情報には、ユーザに関するデータ、ソーシャルつながり、ソーシャル対話、位置、ジオフェンス・エリア、地図、場所、イベント、ページ、グループ、投稿、コミュニケーション、コンテンツ、フィード、アカウント設定、プライバシー設定、ソーシャル・グラフ、およびさまざまな他のタイプのデータを含むことができる。いくつかの実施態様において、少なくとも１つのデータ・ストア１１２は、ユーザ識別子、ユーザ情報、プロフィール情報、ユーザ指定の設定、ユーザが生成または投稿したコンテンツ、および他のタイプのユーザ・データ等、ユーザに関連付けられている情報を記憶することができる。
【００４３】
コンテンツ・プロバイダ・モジュール１０２は、ソーシャル・ネットワーキング・システム経由で投稿されたコンテンツ・アイテムへのアクセスをユーザに提供するように構成することができる。たとえば、ユーザは、ユーザのコンピューティング・デバイス上で稼働するソフトウェア・アプリケーション（たとえば、ソーシャル・ネットワーキング・アプリケーション）によって提供されるインタフェースと相互作用することができる。このインタフェースは、ソーシャル・ネットワーキング・システムにコンテンツ・アイテムを投稿する選択肢、またはアップロードする選択肢を含むことができる。コンテンツ・アイテムを投稿する場合、コンテンツ・アップロード・モジュール１０４を利用して、コンテンツ・アイテムを記述するデータを、コンピューティング・デバイスからソーシャル・ネットワーキング・システムに通信することができる。該コンテンツ・アイテムは、たとえば、テキスト、画像、音声および映像を含んでいてもよい。そして、ソーシャル・ネットワーキング・システムは、たとえば、１つまたは複数のニュース・フィード内を含め、ソーシャル・ネットワーキング・システム経由でコンテンツ・アイテムを提供することができる。いくつかの実施形態において、インタフェースは、ソーシャル・ネットワーキング・システム経由でコンテンツ・アイテムをライブ・ストリーミングするための選択肢を含むこともできる。ライブ・コンテンツ・ストリームを開始する場合、ライブ・ストリーム・モジュール１０６を利用して、ライブ・ストリーミングされるコンテンツを記述するデータを、コンピューティング・デバイスからソーシャル・ネットワーキング・システムに通信することができる。ライブ・ストリーム・モジュール１０６は、たとえば、リアル・タイム・メッセージング・プロトコル（ＲＴＭＰ）を含む、コンテンツのライブ・ストリーミングを可能にする、一般的に公知の任意の技術を利用することができる。
【００４４】
ソフトウェア・アプリケーションが提供するインタフェースを使用して、たとえば、コンテンツ・モジュール１０８を使用して、投稿されたコンテンツ・アイテムにアクセスすることもできる。たとえば、コンテンツ・モジュール１０８は、ユーザのニュース・フィード内にコンテンツ・アイテムを含むことができる。該コンテンツ・アイテムは、オンデマンドのコンテンツ・アイテム（例、ビデオ・オンデマンドまたは「ＶＯＤ」）およびライブでストリーミングされているコンテンツを含んでいてもよい。この実施例では、ユーザは、ニュース・フィードをブラウジングしている間に、コンテンツ・アイテムにアクセスすることができる。別の実施例では、ユーザは、インタフェース経由で、コンテンツ・アイテムを検索することにより、コンテンツ・アイテムを投稿したユーザを検索することにより、および／またはコンテンツ・アイテムに対応する検索語を使用して、コンテンツ・アイテムにアクセスすることができる。一実施例において、ユーザは、ライブ・コンテンツ・ストリームを視聴する選択肢を選択してもよく、これに応じて、ソーシャル・ネットワーキング・システムは、ライブ・コンテンツ・ストリームに対応するデータをユーザのコンピューティング・デバイスに送信することができる。この実施例では、ソーシャル・ネットワーキング・システムは、たとえば、ライブ・コンテンツ・ストリームのパブリッシャがストリーミングを中止するときまで、またはユーザがライブ・コンテンツ・ストリームを中止する選択肢を選択する場合まで、ライブ・コンテンツ・ストリームに対応するデータを送信し続けることができる。コンテンツ照合モジュール１１０は、ソーシャル・ネットワーキング・システム経由でライブでストリーミングされているかまたはオンデマンドで利用できるコンテンツ・アイテム間の一致（例、著作権侵害）を特定するように構成することができる。コンテンツ照合モジュール１１０に関するさらなる詳細は、図２を参照して以下に記載する。
【００４５】
図２は、本開示の一実施形態に係る、コンテンツ照合モジュール２０２の一実施例を示す。いくつかの実施形態において、図１のコンテンツ照合モジュール１１０をコンテンツ照合モジュール２０２として実装することができる。図２に図示するように、コンテンツ照合モジュール２０２は、フィンガープリンティング・モジュール２０４、記憶モジュール２０６、照合モジュール２０８および通知モジュール２１０を含むことができる。
【００４６】
種々実施形態において、フィンガープリンティング・モジュール２０４は、コンテンツ・アイテムについてのそれぞれのフィンガープリントを決定または取得するように構成されている。たとえば、ストリームがソーシャル・ネットワーキング・システムによって受信されると、ライブ・コンテンツ・ストリームの１組のフィンガープリントが決定されてもよい。別の実施例では、コンテンツ・アイテムがソーシャル・ネットワーキング・システムにアップロードされた後に、コンテンツ・アイテムについて１組のフィンガープリントを決定することができる。いくつかの実施形態において、コンテンツ・アイテムをライブ・ストリーミングまたはアップロードしているパブリッシャは、コンテンツ・アイテムが保護されている、たとえば、著作権保護されていることを示す選択肢を選択してもよい。このような実施形態では、選択肢が選択されたことに応答して、ライブ・コンテンツ・ストリームまたはアップロードされたコンテンツ・アイテムのフィンガープリントを作成して、たとえば、参照データベース（例、図１のデータ・ストア１１２）に記憶することができる。この参照データベースに記憶されたフィンガープリントを使用して、ライブ・ストリームまたはビデオ・オンデマンドのいずれかとして、ソーシャル・ネットワーキング・システム経由で利用できる他のコンテンツ・アイテムが、保護されている、たとえば、著作権保護されていると特定されたコンテンツに一致する（例、抵触する）かどうかを決定することができる。
【００４７】
いくつかの実施形態において、フィンガープリンティング・モジュール２０４は、１つまたは複数の手法を使用してフィンガープリントを判別するようにそれぞれ構成されている１つまたは複数のフィンガープリンティング・サービスから、コンテンツ・アイテムについてのフィンガープリントを取得することができる。該フィンガープリントは、たとえば、コンテンツ・アイテムに対応する映像データ、コンテンツ・アイテムに対応する音声データ、またはその両方を使用して判断してもよい。フィンガープリンティング・モジュール２０４に関するさらなる詳細は、図３を参照して以下に記載する。
【００４８】
記憶モジュール２０６は、さまざまなコンテンツ・アイテムに関わる情報の記憶を管理するように構成することができる。種々実施形態において、記憶モジュール２０６は、コンテンツ・アイテムについて取得または生成されるフィンガープリントの記憶を最適化するように構成される。記憶モジュール２０６に関するさらなる詳細は、図４を参照して以下に記載する。
【００４９】
種々実施形態において、照合モジュール２０８は、コンテンツ・アイテム間の関係性の指標を決定するように構成されている。このような指標値を使用して、コンテンツ・アイテム（例、ライブ・コンテンツ・ストリームおよび／またはオンデマンド・コンテンツ・アイテム）が、全体または一部分において、ライブ・コンテンツ・ストリームの任意の部分、最近ライブでストリーミングされたコンテンツの任意の部分、および／またはソーシャル・ネットワーキング・システム経由でオンデマンドで利用できる映像の任意の部分に一致するかどうかを決定することができる。たとえば、照合モジュール２０８は、保護されたライブ・コンテンツ・ストリームの１つまたは複数の部分（例、フレーム）が候補ライブ・ストリームの１つまたは複数の部分（例、フレーム）に一致すると決定することができる。いくつかの実施形態において、照合モジュール２０８を利用して、不適切なまたは猥褻なコンテンツを含むとしてフラグを立てられた任意のコンテンツを含むコンテンツ・アイテムを、特定して分別することができる。照合モジュール２０８に関するさらなる詳細は、図５を参照して以下に記載する。
【００５０】
通知モジュール２１０は、保護されたコンテンツが複製されること（例、潜在的その他の著作権侵害）に対して、さまざまなアクションを取るように構成することができる。たとえば、第１コンテンツ・アイテム（例、保護されたライブ・コンテンツ・ストリーム）と第２コンテンツ・アイテム（例、候補ライブ・コンテンツ・ストリーム）との間のコンテンツ閾値一致度を決定すると、通知モジュール２１０は、候補ライブ・コンテンツ・ストリームの放送者に複製（例、潜在的な著作権侵害）を通知することができる。いくつかの実施形態において、放送者は、候補ライブ・コンテンツ・ストリームを終了するか、またはライブ・コンテンツ・ストリームを継続するかの選択肢を有する。このような実施形態では、ライブ・コンテンツ・ストリームを継続することにより、放送者は、候補ライブ・コンテンツ・ストリームをストリーミングする自身の権利を主張している。ある場合には、放送者が候補ライブ・コンテンツ・ストリームを終了する場合、パブリッシャからのアクションは必要なく、実施態様によって、パブリッシャには放送者のライブ・コンテンツ・ストリームを通知しても、または通知しなくてもよい。しかし、放送者が候補ライブ・コンテンツ・ストリームを継続することにする場合、通知モジュール２１０は、一致するコンテンツに関する情報をパブリッシャに提供することができる。いくつかの実施形態において、パブリッシャは、通知モジュール２１０によって提供されて、一致が見つかった候補ライブ・コンテンツ・ストリームのそれぞれの部分を特定するインタフェースにアクセスすることができる。パブリッシャはインタフェースにアクセスして、コンテンツ・アイテムの一致する部分を再生することができる。パブリッシャはインタフェースにアクセスして、ライブ・コンテンツ・ストリームおよび／またはアップロードされたコンテンツ・アイテムに複製侵害（例、著作権侵害）としてフラグを立てて、何のアクションも取らない（例、コンテンツ・アイテムの公正な使用のため）、または、たとえば、保護された（例、著作権保護された）部分の使用の許可を与えることもできる。いくつかの実施形態において、パブリッシャの保護コンテンツの侵害としてフラグを立てられたライブ・コンテンツ・ストリームおよび／またはアップロードされたコンテンツ・アイテムを、ソーシャル・ネットワーキング・システム経由でユーザにアクセス不可にする。いくつかの実施形態において、パブリッシャは、パブリッシャに一致が通知される前に満たされるべきさまざまな基準を指定する、一致ルールを作成することができる。たとえば、いくつかの実施形態において、パブリッシャは、一致タイプ（たとえば、音声、映像、映像のみ、音声のみ、または音声と映像の両方）を指定することができる。この実施例では、一致が一致タイプを満たす場合に、パブリッシャに一致が通知される。いくつかの実施形態において、パブリッシャは、地理的地域（たとえば、特定の都市、州、地域、国、世界中等）を指定することができる。この実施例において、一致するコンテンツが、指定の地理的地域から発信または放送された場合に、パブリッシャに一致が通知される。いくつかの実施形態において、パブリッシャは、１つまたは複数の一致条件と、その条件が満たされた場合に行うべきアクションとを指定することができる。１つの例示的な一致条件は、一致継続時間の設定に関わる。この実施例では、一致するコンテンツの時間長が一致継続時間を満たす（たとえば、一致継続時間より長い、一致継続時間と等しい、または一致継続時間より短い）場合に、パブリッシャに通知することができる。いくつかの実施形態において、パブリッシャは、一致長さ（たとえば、フレーム数）を指定することができ、一致するコンテンツが指定の一致長さを満たす場合に通知されることができる。いくつかの実施形態において、パブリッシャは、パブリッシャの保護コンテンツの使用が許可されている１つまたは複数の承認済みまたはホワイトリスト登録ユーザおよび／またはページを指定することができる。このような実施形態において、一致するコンテンツが、承認されていないかまたはホワイトリスト登録がされていないユーザまたはページによって投稿された場合に、パブリッシャに通知される。いくつかの実施形態において、パブリッシャは、ユーザおよび／またはページをブラックリスト登録することができ、一致するコンテンツが、ブラックリスト登録ユーザから発信される場合、および／またはブラックリスト登録ページ経由で放送される場合に通知されることができる。いくつかの実施形態において、パブリッシャは、一致ルールが満たされたときに行うべき１つまたは複数のアクションを指定することができる。たとえば、パブリッシャは、１つまたは複数の一定のルールを満たす一致に対してアクションを取らないことを指定することができる。別の実施例では、パブリッシャは、一致が１つまたは複数の一定のルールを満たすときに通知またはレポートをパブリッシャに送付するよう指示することができる。上述の一致ルールおよび条件は、例として記載されており、いくつかの実施形態においては、パブリッシャは、他の制約を使用して一致ルールを作成することができる。一般に、上述の例示的な一致ルールおよび／または条件のいずれも、他のルールおよび／または条件と組み合わせることができる。
【００５１】
図３は、本開示の一実施形態に係る、フィンガープリンティング・モジュール３０２の一実施例を示す。いくつかの実施形態において、図２のフィンガープリンティング・モジュール２０４をフィンガープリンティング・モジュール３０２として実施することができる。図３に図示するように、フィンガープリンティング・モジュール３０２は、音声フィンガープリンティング・モジュール３０４、映像フィンガープリンティング・モジュール３０６、サムネイル・フィンガープリンティング・モジュール３０８および分散型フィンガープリンティング・モジュール３１０を含むことができる。
【００５２】
音声フィンガープリンティング・モジュール３０４は、コンテンツ・アイテムについての音声フィンガープリントを取得または生成するように構成することができる。このような音声フィンガープリントは、一般的に公知の多様な手法を使用して生成することができる。いくつかの実施形態において、音声フィンガープリンティング・モジュール３０４は、コンテンツ・アイテムに対応する音声信号から音声フィンガープリントを取得または生成する。音声信号は、ある時点における音声信号の一部分にそれぞれ対応する１つまたは複数の別々の音声フレームから構成されてもよい。各音声フレームは、ある時間の長さ（例、３２ミリ秒、６４ミリ秒、１２８ミリ秒等）にわたる音声信号の一部分に対応することができる。いくつかの実施形態において、各音声フレームは、固定時間長に対応する。たとえば、各音声フレームは、音声信号の任意の部分を表し、長さを６４ミリ秒とすることができる。音声信号から抽出され得る特徴のいくつかの例には、周波数ドメインの音響特徴（例、音声信号の振幅スペクトルで計算されるスペクトル特徴）、音声信号のメル周波数ケプストラム係数（ＭＦＣＣ：Ｍｅｌ−ｆｒｅｑｕｅｎｃｙ  ｃｅｐｓｔｒａｌ  ｃｏｅｆｆｉｃｉｅｎｔ）、音声信号のスペクトル帯域幅およびスペクトル平坦度、音声信号のスペクトル変動、極値周波数および無声周波数（ｓｉｌｅｎｔ  ｆｒｅｑｕｅｎｃｉｅｓ）を含むことができる。また、音声信号から抽出される音声特徴には、音声信号のテクスチャウィンドウにおける特徴ベクトルの平均、標準偏差および共分散行列など、時間ドメインの特徴を含んでもよい。前述した実施例とは別に、または追加して、たとえば、ある期間にわたる音声信号の音量変化、および音声信号が圧縮されている場合の音声信号の圧縮フォーマットを含め、他の特徴を抽出してもよい。
【００５３】
音声フィンガープリンティング・モジュール３０４は、音声信号の音声フレームのうちの１つまたは複数から音声フィンガープリントを生成することができる。いくつかの実施形態において、音声信号の任意の部分に対応する音声フィンガープリントは、音声信号のその部分によってキャプチャされたさまざまな音響特性および／または知覚特性に基づいて生成される。１フレームに関して計算される音声フィンガープリントは、音声フィンガープリントが対応する、波形またはフレームを表す１組のビット（例、３２ビット、６４ビット、１２８ビット等）として表すことができる。いくつかの実施形態において、音声フィンガープリンティング・モジュール３０４は、音声信号を前処理し、音声信号をあるドメイン（例、時間ドメイン）から別のドメイン（例、周波数ドメイン）に変換し、変換された音声信号を濾波して、濾波した音声信号から音声フィンガープリントを生成する。いくつかの実施形態において、音声フィンガープリントは離散コサイン変換（ＤＣＴ）を使用して生成される。いくつかの実施形態において、第１音声フィンガープリントと第２音声フィンガープリントとの間の一致は、第１音声フィンガープリントに対応する１組のビットと、第２音声フィンガープリントに対応する１組のビットとの間のハミング距離が閾値を満たすときに、決定することができる。このような音声フィンガープリントの生成および照合を説明するさらなる詳細は、米国特許出願第１４／１５３４０４号明細書および第１４／５５２０３９号明細書に記載されており、両特許出願を参照により本明細書に組み込む。コンテンツ・アイテムについて生成される音声フィンガープリントは、記憶されて、一致するコンテンツを特定するために使用することができる。いくつかの例では、コンテンツ・アイテムの一部分は無音を含んでもよく、すなわち、知覚できる音声がなくてもよい。たとえば、コンテンツ・アイテムの一部分がそのコンテンツ・アイテムに対応する音声波形に基づいて聞き取れないとの決定が行われることがある。いくつかの実施形態において、無音コンテンツを含む部分について生成される音声フィンガープリントは、たとえば、その音声フィンガープリントのビット文字列をすべてゼロに変更することによってフラグを立てることができる。このような実施形態では、無音とマークされたコンテンツ・アイテムの部分は、フィンガープリントの照合を行うときにスキップすることができる。
【００５４】
いくつかの実施形態において、各音声フィンガープリントは所定のフレーム・レート（例、毎秒８フレーム、毎秒１６フレーム、毎秒３２フレーム等）に対応する。たとえば、毎秒１６フレームでは、コンテンツ・アイテムの音声フィンガープリントは、一連のフレーム（例、１６音声フレーム）に対応することができ、コンテンツ・アイテム内の１秒の音声を表すことができる。この実施例では、音声フィンガープリントに対応する１６フレームはそれぞれ、１組の６４ビットまたは６４ビットの整数として表してもよい。いくつかの実施形態において、音声フィンガープリント、映像フィンガープリントおよびサムネイル・フィンガープリントは、同じ所定のフレーム・レートでフィンガープリンティング・モジュール３０２によって生成される。音声フィンガープリントの記憶および検索を説明するさらなる詳細は、図４を参照して以下に記載する。
【００５５】
映像フィンガープリンティング・モジュール３０６は、コンテンツ・アイテムについて映像フィンガープリントを取得または生成するように構成することができる。いくつかの実施形態において、映像フィンガープリントを計算するとき、映像フィンガープリンティング・モジュール３０６は、コンテンツ・アイテムの１組の映像フレーム（例、８フレーム、１６フレーム、３２フレーム等）を記述するデータを、時間ドメインから周波数ドメインに変換する。たとえば、１組のフレームは、コンテンツ・アイテム内の１組の連続フレーム（例、フレーム１からフレーム８、フレーム１からフレーム１６等）にしてもよい。このような実施形態では、映像フィンガープリンティング・モジュール３０６は、フレームを周波数ドメインに変換するために使用するべき１組のフレームについてのそれぞれの特徴値を決定する。フレームについての特徴値は、フレームに対応する１つまたは複数の特徴に基づいて決定することができる。一実施例において、フレームについての特徴値は、フレームの明るさを計算することによって、たとえば、フレーム内の画素の値を平均化することによって決定することができる。別の実施例では、フレームについての特徴値は、フレーム内の配色成分に基づいて、たとえば、ＲＧＢカラー・モデルおよび／またはＹＵＶ色空間に基づいて決定することができる。１組のフレームについての各特徴値は、アレイまたはバッファに含めることができる。これらの特徴値は、さらに、１つまたは複数の他のドメインに変換することができる。一般に、どのタイプの変換も適用することができる。たとえば、いくつかの実施形態において、特徴値に時間・周波数変換を適用する。いくつかの実施形態において、特徴値に空間・周波数変換を適用する。いくつかの実施形態において、高速フーリエ変換（ＦＦＴ）、離散コサイン変換（ＤＣＴ）、またはその両方を適用することによって、特徴値は別のドメインに変換される。一旦変換されたら、１組のフレームについての経時的な値は、周波数成分の分布として表される。いくつかの実施形態において、フレーム内のオブジェクトはセグメント化されて、これらのセグメントに変換を適用する。いくつかの実施形態において、フレーム内の領域をセグメント化して、これらのセグメントに変換を適用する。
【００５６】
いくつかの実施形態において、各映像フィンガープリントは、所定のフレーム・レート（例、毎秒８フレーム、毎秒１６フレーム、毎秒３２フレーム等）に対応する。たとえば、毎秒１６フレームでは、コンテンツ・アイテムの映像フィンガープリントは、一連の１６フレームに対応することができ、コンテンツ・アイテム内の１秒の映像を表すことができる。この実施例では、映像フィンガープリントに対応する１６フレームのそれぞれは、１組の６４ビットまたは６４ビットの整数として表してもよい。種々実施形態において、映像フィンガープリンティング・モジュール３０６は、フィンガープリントされるコンテンツ・アイテムが異なるフレーム・レートをもっていたとしても、映像フィンガープリントが所定のフレーム・レートに対応するように、一般的に公知の補間手法を行うことができる。このような補間は、１組のフレームについて決定された空間成分を使用して、周波数ドメインで行うことができる。たとえば、２つのフレームの補間は、閾値を超える高い周波数係数を破棄しながら（例、ローパス・フィルタ）、残りの低い周波数係数を残すことによって行うことができる。
【００５７】
映像フィンガープリンティング・モジュール３０６は、これらの低周波数係数を量子化して、映像フィンガープリントに含まれるフレームに対応する１組のビットを生成することができる。前述したように、いくつかの実施形態において、映像フィンガープリントはフレームのシーケンスに対応し、各フレームは１組の６４ビットまたは６４ビットの整数として表される。いくつかの実施形態において、８点ＦＦＴを１組のフレームに適用すると、映像フィンガープリンティング・モジュール３０６は、低周波数成分のうちの４つを量子化して、１組のフレーム内の各フレームを表すそれぞれ６４ビットを生成することができる。次の映像フィンガープリントを計算するために、映像フィンガープリンティング・モジュール３０６は、１組の中の最初のフレームについての値を破棄し、コンテンツ・アイテムの次のフレームについての対応する値を追加することによって、１組のフレームを１つシフトすることができる。したがって、たとえば、当初の１組のフレームがフレーム１から８についての値を含んでいた場合、シフトされた１組のフレームは、フレーム２から９についての値を含むことになる。映像フィンガープリンティング・モジュール３０６は、さらに、前述のようにシフトされた１組のフレームを使用して、別の映像フィンガープリントを生成することができる。種々実施形態において、映像フィンガープリンティング・モジュール３０６は、１組のフレームをシフトし続けて、コンテンツ・アイテムの最後のフレーム（例、ライブ・コンテンツ・ストリームの最後またはオンデマンド・コンテンツ・アイテム・ファイルの最後）に達するまで映像フィンガープリントを生成する。したがって、このような実施形態では、フィンガープリントは、フィンガープリントされるコンテンツ・アイテムの重複フレームに対応する。たとえば、第１フィンガープリントはフレーム１から１６までと決定することができ、第２フィンガープリントはフレーム２から１７までと決定することができ、第３フィンガープリントはフレーム３から１８までと決定することができ、以下同様である。
【００５８】
いくつかの実施形態において、１つの特徴値に依拠するのではなく、１組のフレーム内の各フレームについて特徴値のベクトルを決定し、これらのベクトルを使用して１組の映像フレームを周波数ドメインに変換する。たとえば、映像フィンガープリントについて決定された特徴ベクトルは、フレームに対応するさまざまな特徴の値を記述することができる。いくつかの実施形態において、特徴値は、フレーム内の１つまたは複数のグループの画素間の変化（例、明るさの変化、配色の変化等）を記述することができる。このような実施形態において、図６の実施例に示されるように、第１領域６０６および第１領域６０６内の第２領域６０８は、フレーム６０２内の画素６０４の周りに特定することができる。第１領域６０６および第２領域６０８は、いずれも、１組のセクター（例、６、８、１０等のセクター）にセグメント化することができる。たとえば、図６では、第１領域６０６がセクターａ１、ａ２、ａ３、ａ４、ａ５、ａ６、ａ７およびａ８に分割されているのに対し、第２領域６０８はセクターｂ１、ｂ２、ｂ３、ｂ４、ｂ５、ｂ６、ｂ７およびｂ８に分割されている。各セクターについて特徴値を計算することができる。これらの特徴値は、マトリックス６１０に記憶することができる。次に、各内側セクター（例、ｂ１）についての特徴値とそれに対応する外側セクター（例、ａ１）についての特徴値との差を計算する。これらの差は、マトリックス６１２に記憶することができる（例、ｆ１、ｆ２、…、ｆ８）。いくつかの実施形態において、このような差を、フレーム６０２内の各画素について計算し、それぞれの差を合計してマトリックス６１２を出す。マトリックス６１２は、前述したように処理される１組の映像フレーム内の各フレームについて生成することができる。その結果、いくつかの実施形態において、１組の映像フレーム内の各フレームは、１組の値（例、８個の値）の対応する特徴ベクトルによって表される。１組の映像フレームについての特徴値を、必要なら、さらに補間し、前述したように、たとえば、離散コサイン変換および／または高速フーリエ変換を適用することによって、周波数ドメインに変換することができる。いくつかの実施形態において、特徴ベクトルに含まれる特徴値の一部または全部は、一般的に公知の特徴検出アプローチ、たとえば、方向付きＦＡＳＴと回転ＢＲＩＥＦ（ＯＲＢ：Ｏｒｉｅｎｔｅｄ  ＦＡＳＴ  ａｎｄ  Ｒｏｔａｔｅｄ  ＢＲＩＥＦ）を適用することによって決定される。
【００５９】
いくつかの実施形態において、映像フィンガープリンティング・モジュール３０６は、各フレームについて複数のフィンガープリントを生成する。たとえば、いくつかの実施形態において、映像フィンガープリンティング・モジュール３０６は、フィンガープリントが作成されるフレームを上半分と下半分とに水平に分割する。このような実施形態では、フレームの上半分について第１フィンガープリントが生成され、フレームの下半分について第２フィンガープリントが生成される。たとえば、第１フィンガープリントおよび第２フィンガープリントは、それぞれ３２ビットを使用して表すことができる。一実施例において、このようなアプローチを使用して、スクロールしているテキスト（例、エンドクレジット）を含むコンテンツ・アイテムを区別することができる。当然、フレームは多数の異なる方法で分割してもよく（例、垂直、斜め等）、分割された部分の各々について、それぞれのフィンガープリントを生成することができる。いくつかの実施形態において、コンテンツのフィンガープリントを作成する前に、映像フィンガープリンティング・モジュール３０６は、コンテンツに関連付けられているすべての色情報を除去し、コンテンツを、白黒、またはグレースケール表現に変換する。いくつかの例では、映像内のフレームを、そのオリジナルの状態から反転してもよい（例、水平に反転、垂直に反転等）。このようなフレームの反転は、映像内の一致するコンテンツが特定されないように行うことができる。したがって、いくつかの実施形態において、映像のフレームのフィンガープリントを作成するとき、映像フィンガープリンティング・モジュール３０６は、そのオリジナルの状態のフレームについてのフィンガープリントと、１つまたは複数のそれぞれ反転された状態（例、水平に反転、垂直に反転等）のフレームについての１つまたは複数の個別のフィンガープリントとを生成する。コンテンツ・アイテムについて生成される映像フィンガープリントは、記憶して、一致するコンテンツを特定するために使用することができる。映像フィンガープリントの記憶および検索を説明するさらなる詳細は、図４を参照して以下に記載する。
【００６０】
サムネイル・フィンガープリンティング・モジュール３０８は、コンテンツ・アイテムについてのサムネイル・フィンガープリント、または画像フィンガープリントを取得または生成するように構成することができる。いくつかの実施形態において、コンテンツ・アイテムについてサムネイル・フィンガープリントを生成するとき、サムネイル・フィンガープリンティング・モジュール３０８は、所定の時間間隔（例、１秒ごと、３秒ごと等）でコンテンツ・アイテム内のフレームのサムネイル・スナップショットをキャプチャする。このようなサムネイル・スナップショットを使用して、一般的に公知の画像フィンガープリンティング手法を使用して対応するサムネイル・フィンガープリントを生成することができる。いくつかの実施形態において、各サムネイル・フィンガープリントは、１組のビット（例、３２ビット、６４ビット、１２８ビット等）を使用して表される。いくつかの実施形態において、各所定の時間間隔で、サムネイル・フィンガープリンティング・モジュール３０８は、１つもしくは複数のスケールおよび／または解像度で、複数のサムネイル・スナップショットをキャプチャする。このような実施形態では、複数のサムネイル・スナップショットについて、個別のフィンガープリントを生成することができる。このような複数のフィンガープリントを使用して、評価するコンテンツ内に歪みがあっても、２つのコンテンツ・アイテム間で一致するサムネイルを特定することができる。コンテンツ・アイテムについて生成されるサムネイル・フィンガープリントは、記憶して、一致するコンテンツを特定するために使用することができる。サムネイル・フィンガープリントの記憶および検索を説明するさらなる詳細は、図４を参照して以下に記載する。
【００６１】
いくつかの実施形態において、コンテンツ・アイテムのフィンガープリントを作成しようとするとき、フィンガープリンティング・モジュール３０２は、そのコンテンツ・アイテムについて音声フィンガープリント、映像フィンガープリント、および／またはサムネイル・フィンガープリントを生成する。このようなフィンガープリントは、単独で、または組み合わせて使用して、フィンガープリントを作成されたコンテンツ・アイテムに一致するコンテンツの部分（例、音声、映像、サムネイル）を含む、他のコンテンツ・アイテムを特定することができる。いくつかの実施形態において、オンデマンド・コンテンツ・アイテムは、オンデマンド・コンテンツ・アイテムに対応するファイルが利用できるようになるかまたはたとえばコンテンツ・プロバイダ・システム（例、ソーシャル・ネットワーキング・システム）にアップロードされるとすぐに、フィンガープリントを作成することができる。いくつかの実施形態において、ライブ・コンテンツ・ストリームは、ライブ・コンテンツ・ストリームを記述するデータをコンテンツ・プロバイダ・システムが受信するとすぐに、フィンガープリントを作成することができる。
【００６２】
いくつかの実施形態において、フィンガープリンティング・モジュール３０２は、コンテンツ・プロバイダ・システムに実装される。このような実施形態では、コンテンツ・アイテムのフィンガープリント作成は、コンテンツ・アイテムを記述するデータが受信された後で、コンテンツ・プロバイダ・システムによって行われる。いくつかの実施形態において、フィンガープリンティング・モジュール３０２は、ユーザ・デバイスに実装される。このような実施形態では、コンテンツ・アイテムのフィンガープリント作成は、コンテンツ・アイテムを記述するデータがコンテンツ・プロバイダ・システムに送信されると、ユーザ・デバイスによって行われる。いくつかの実施形態において、分散型フィンガープリンティング・モジュール３１０は、異なるタイプのフィンガープリントがユーザ・デバイスおよびコンテンツ・プロバイダ・システムによって生成されるように構成される。たとえば、いくつかの実施形態において、分散型フィンガープリンティング・モジュール３１０は、ユーザ・デバイスに対して、コンテンツ・プロバイダ・システムに提供されるコンテンツ・アイテムについて、１つまたは複数のタイプのフィンガープリント（例、音声フィンガープリントおよび／またはサムネイル・フィンガープリント）を生成するように命令することができる。このような実施形態では、分散型フィンガープリンティング・モジュール３１０は、コンテンツ・プロバイダ・システムに対して、コンテンツ・アイテムが受信されると、１つまたは複数の異なるタイプのフィンガープリント（例、映像フィンガープリント）を生成するように命令することができる。このような分散型フィンガープリンティングは、コンピューティング・リソースの、より最適な利用を可能にすることができる。
【００６３】
いくつかの実施形態において、分散型フィンガープリンティング・モジュール３１０は、ユーザ・デバイスに対して、コンテンツ・プロバイダ・システムに提供されるコンテンツ・アイテムについて、１つまたは複数の第１タイプのフィンガープリント（例、音声フィンガープリント）を生成して送信するように命令することができる。このような実施形態では、１つまたは複数の第１タイプのフィンガープリント（例、音声フィンガープリント）を使用して、コンテンツ・アイテムと参照コンテンツ・アイテムとの間の一致が特定される場合、分散型フィンガープリンティング・モジュール３１０は、ユーザ・デバイスに対して、追加のタイプのフィンガープリント（例、映像フィンガープリントおよび／またはサムネイル・フィンガープリント）を使用して一致したコンテンツをさらに検証するために、提供されるコンテンツ・アイテムについて１つまたは複数の第２タイプのフィンガープリント（例、映像フィンガープリントおよび／またはサムネイル・フィンガープリント）の生成および送信を開始するように命令することができる。種々実施形態において、フィンガープリント（例、音声フィンガープリント、映像フィンガープリント、サムネイル・フィンガープリント）は、フィンガープリントがそこから決定されたそれぞれのコンテンツ・アイテムに関するさまざまな情報を提供するメタデータに関連付けることもできる。このような情報は、コンテンツ・アイテムに対応する、タイトル、説明、キーワードまたはタグを含むことができる。いくつかの実施形態において、情報は、たとえば、一般的に公知の光学文字認識（ＯＣＲ）手法を使用して、コンテンツ・アイテム（またはコンテンツ・アイテムに対応するフレーム）から抽出した任意のテキストを含むことができる。
【００６４】
図４は、本開示の一実施形態に係る、記憶モジュール４０２の一実施例を示す。いくつかの実施形態において、図２の記憶モジュール２０６を記憶モジュール４０２として実施することができる。図４に図示するように、記憶モジュール４０２は、インデックス作成モジュール４０４および最適化モジュール４０６を含むことができる。
【００６５】
インデックス作成モジュール４０４は、コンテンツ・アイテムについて生成されるフィンガープリント（例、音声フィンガープリント、映像フィンガープリント、サムネイル・フィンガープリント）を記憶するように構成することができる。一般に、このようなフィンガープリントは、データ記憶および検索のための一般的に公知の任意のアプローチを使用して記憶してもよい。いくつかの実施形態において、ライブ・コンテンツ・ストリームについて生成されるフィンガープリントがライブ参照データベースに記憶されるのに対し、オンデマンド・コンテンツ・アイテムについて生成されるフィンガープリントは静的参照データベースに記憶される。いくつかの実施形態において、閾値期間内（例、直近２４時間以内、直近４８時間以内等）に提供された（例、ストリームおよび／またはアップロードされた）コンテンツ・アイテム（例、ライブ・コンテンツ・ストリームおよびオンデマンド・コンテンツ・アイテム）についてのフィンガープリントがリアルタイム参照データベースに記憶されるのに対し、この閾値期間を超えて提供されたコンテンツ・アイテムについてのフィンガープリントは静的参照データベースに記憶される。このような実施形態では、記憶モジュール４０２は、コンテンツ・アイテムについてのフィンガープリント・データを、必要に応じて、リアルタイム参照データベースから静的参照データベースに移動し、閾値期間に基づいた２つのデータベース間のフィンガープリント・データの分別を満足する。
【００６６】
いくつかの実施形態において、インデックス作成モジュール４０４は、フィンガープリント・データを１つまたは複数のデータ構造に記憶する。使用されるデータ構造は、フィンガープリント・データの記憶および処理に利用できるコンピューティング・リソースによって変えてもよい。一実施例では、ある組のコンピューティング・リソースがインデックス・データ構造の使用を正当化し得るのに対し、別の組のコンピューティング・リソースは、転置インデックス・データ構造の使用を正当化し得る。たとえば、音声フィンガープリントは第１転置インデックス・データ構造に記憶することができ、映像フィンガープリントは第２転置インデックス・データ構造に記憶することができ、サムネイル・フィンガープリントは第３転置インデックス・データ構造に記憶することができる。述べたように、ライブ・コンテンツ・ストリームおよびオンデマンド・コンテンツ・アイテムについて生成されるフィンガープリントを記憶するために、個別の転置インデックス・データ構造を使用してもよい。図７は、例示的な転置インデックス・データ構造７０２を示す。この実施例では、転置インデックス７０２は、１組のビン７０４を含む。各ビンは、そのビンにハッシュ化された１組のフィンガープリント付きフレームを参照することができる。たとえば、フィンガープリント付きフレーム７０８および７１０は、ともにビン７０６にハッシュ化されたものである。
【００６７】
述べたように、各フィンガープリントは１組のフレームに対応させることができ、各フレームは、１組のビット、たとえば、６４ビットまたは整数として表すことができる。いくつかの実施形態において、フィンガープリント付きフレームを転置インデックス７０２に挿入するとき、フィンガープリント付きフレームに対応する部分を使用して、転置インデックス７０２内のビン７０４のうちの１つにハッシュ化する。たとえば、フィンガープリント付きフレーム７０８に対応する６４ビットの最初の２４ビット（例、インデックス部分）は、ビン７０６にハッシュ化することができる。フィンガープリント付きフレーム７０８は、次に、ビン７０６にハッシュ化されたフィンガープリント付きフレームのリスト７１２に追加される。いくつかの実施形態において、フィンガープリント付きフレーム７０８をリスト７１２に追加するとき、ビットの残りの部分が記憶される。このように、この実施例では、フィンガープリント付きフレーム７０８に対応する６４ビットの残りの４０ビットが記憶される。いくつかの実施形態において、フィンガープリント付きフレーム７０８は、フィンガープリント付きフレームがそこから生成されたコンテンツ・アイテムを記述する情報（例、ファイル識別子、ストリーム識別子等）と、フィンガープリントがそこから生成されたコンテンツ・アイテムの部分を示すオフセット（例、タイム・スタンプ、フレーム番号等）とともに記憶される。
【００６８】
いくつかの実施形態において、フィンガープリントの記憶および照合に、複数の転置インデックスを利用することができる。たとえば、フィンガープリント付きフレームに対応するビットの第１部分は、第１転置インデックスのビンの１つにハッシュ化することができる。第１転置インデックス内のこのビンは、第２転置インデックスを参照することができる。この実施例では、フィンガープリント付きフレームに対応するビットの第２部分は、第２転置インデックス内のビンにハッシュ化されて、そのビンにハッシュ化されたフィンガープリント付きフレームのリストを特定することができる。フィンガープリント付きフレームに対応する１組のビット（１組のビット全体またはビットの残りの部分）を、第２転置インデックス内のこのリストに追加することができる。たとえば、６４ビットのフィンガープリント付きフレームの最初の２４ビットは、第１転置インデックス内のビンにハッシュ化されて、第２転置インデックスを特定することができる。この実施例では、６４ビットのフィンガープリント付きフレームのうちの次の２０ビットは、第２転置インデックス内のビンにハッシュ化されて、そのビンによって参照されるフィンガープリント付きフレームのリストを特定することができる。ここで、６４ビットのフィンガープリント付きフレームの残りの２０ビット（または６４ビット全部）をリストに記憶することができる。フィンガープリント付きフレームは、フィンガープリント付きフレームがそこから生成されたコンテンツ・アイテムを記述する情報（例、ファイル識別子、ストリーム識別子等）と、フィンガープリント付きフレームがそこから生成されたコンテンツ・アイテムの部分を示すオフセット（例、タイム・スタンプ、フレーム番号等）とともに、第２転置インデックスに記憶される。
【００６９】
最適化モジュール４０６は、フィンガープリントの記憶および照合に利用される転置インデックス・データ構造を管理するように構成することができる。たとえば、いくつかの実施形態において、最適化モジュール４０６は、コンテンツ・プロバイダ・システムから除去されたコンテンツ・アイテムに対応するエントリを除去するために、転置インデックスを自動的に更新またはクリーン・アップすることができる。いくつかの実施形態において、最適化モジュール４０６は、閾値期間にわたって記憶されたエントリを除去するために、転置インデックスを自動的に更新し、またはクリーン・アップすることができる。いくつかの実施形態において、最適化モジュール４０６は、所望の編成を得るために、転置インデックスを並べ替えることができる。一実施例において、最適化モジュール４０６は、同様なフィンガープリント付きフレーム（例、互いの閾値ハミング距離であるフィンガープリント付きフレーム）を同じ（または付近の）チャンクまたはビンに集めるかまたは編成するように、転置インデックス内のエントリを並べ替えることができる。
【００７０】
図５は、本開示の一実施形態に係る、照合モジュール５０２の一実施例を示す。いくつかの実施形態において、図２の照合モジュール２０８を照合モジュール５０２として実装することができる。図５に図示するように、照合モジュール５０２は、フィンガープリント照合モジュール５０４、組み合わせ照合モジュール５０６、ライブ処理モジュール５０８および歪みモジュール５１０を含むことができる。
【００７１】
フィンガープリント照合モジュール５０４は、１つまたは複数の第２（または参照）コンテンツ・アイテム内のコンテンツの部分に一致する第１（またはテスト）コンテンツ・アイテム内のコンテンツの部分を特定するように構成することができる。種々実施形態において、フィンガープリント照合モジュール５０４は、テスト・コンテンツ・アイテムに対応する１組のフィンガープリント（例、音声フィンガープリント、映像フィンガープリント、サムネイル・フィンガープリント）を使用してテスト・コンテンツ・アイテムを評価することができ、これらのフィンガープリントを使用して、分析するべき１つまたは複数の参照コンテンツ・アイテムを特定することができる。このような参照コンテンツ・アイテムは、保護（または著作権保護）されているものとして特定または指定されたものであってもよい。一般に、参照コンテンツ・アイテム内のコンテンツに一致するコンテンツを含むテスト・コンテンツ・アイテムにフラグを立てることができ、さまざまなアクションを取ることができる。参照コンテンツ・アイテムは、たとえば、前述したように、転置インデックス・データ構造を使用して特定することができる。
【００７２】
たとえば、図８Ａに図示するように、フィンガープリント照合モジュール５０４は、テスト・コンテンツ・アイテムから生成された映像フィンガープリントを取得することができる。映像フィンガープリントは、１組のフレーム（例、１６フレーム）に対応することができ、各フレームは、１組のビット（例、６４ビット）として表すことができる。いくつかの実施形態において、フィンガープリント内のフレーム８０４の第１部分（例、最初の２４ビット）を、転置インデックス８０２内のビン８０６にハッシュ化するために使用することができ、フレーム８０４の第２部分（例、残りの４０ビット）を、フレーム間の一致を検証するために使用することができる。述べたように、転置インデックス８０２は、１組のビンを含み、各ビンは、そのビンにハッシュ化された１組のフィンガープリント付きフレームを参照することができる。たとえば、図８Ａでは、ビン８０６は、フィンガープリント付きフレーム８０８およびフィンガープリント付きフレーム８１０を参照する。この実施例では、フィンガープリント付きフレーム８０８およびフィンガープリント付きフレーム８１０は、ともに一致候補である。フィンガープリント照合モジュール５０４は、ビン８０６に対応するフィンガープリント付きフレーム８０８、８１０のそれぞれを評価して、フィンガープリント付きフレームがフレーム８０４に一致するかどうかを決定する。いくつかの実施形態において、フィンガープリント照合モジュール５０４は、第１フレームに対応する１組のビットと、第２フレームに対応する１組のビットとの間のハミング距離を決定する。このような実施形態では、フィンガープリント照合モジュール５０４は、ハミング距離が閾値を満たす場合に、第１フレームと第２フレームとの間の一致を決定する。このように、たとえば、フィンガープリント照合モジュール５０４は、フレーム８０４に対応する１組のビットと、フィンガープリント付きフレーム８０８に対応する１組のビットとの間のハミング距離を決定することができる。このハミング距離が閾値を満たす場合、フレーム８０４とフィンガープリント付きフレーム８０８との間の一致が特定される。フレーム８０４がハッシュ化されたビン８０６によって参照される残りのフィンガープリント付きフレーム（例、フィンガープリント付きフレーム８１０）に同じプロセスを適用して、他の一致を特定することができる。
【００７３】
テスト・コンテンツ・アイテムのフレーム８０４と参照コンテンツ・アイテムのフィンガープリント付きフレーム（例、フィンガープリント付きフレーム８０８）との間の一致が特定された場合、フィンガープリント照合モジュール５０４は、一致するフィンガープリント付きフレーム８０８がそこから生成された参照コンテンツ・アイテムを評価して、テスト・コンテンツ・アイテムと参照コンテンツ・アイテムとの間で一致するコンテンツの範囲、または境界を決定することができる。述べたように、転置インデックス８０２に記憶されている各フレームは、フィンガープリント付きフレームがそこから生成された参照コンテンツ・アイテム（例、ファイル名、ストリーム識別子等）と、フィンガープリント付きフレームが対応する、参照コンテンツ・アイテムの部分を示すオフセットとを示すこともできる。このような情報を使用して、フィンガープリント照合モジュール５０４は、例示的な図８Ｂに図示するように、参照コンテンツ・アイテムの全体について時系列的に生成された１組のフィンガープリント付きフレーム８４０にアクセスすることができる。フィンガープリント照合モジュール５０４は、テスト・コンテンツ・アイテムに対応する１組のフィンガープリント付きフレーム８６０にもアクセスすることができる。いくつかの実施形態において、フィンガープリント照合モジュール５０４は、チャンク（例、１秒のチャンク）内のテスト・コンテンツ・アイテムおよび参照コンテンツ・アイテムを処理する。したがって、たとえば、各フィンガープリントが毎秒１６フレームに対応する場合、フィンガープリント照合モジュール５０４は、毎秒１６フレームのコンテンツを処理する。
【００７４】
図８Ｂに図示するように、フィンガープリント照合モジュール５０４は、参照コンテンツ・アイテムの一致するフィンガープリント付きフレーム８０８よりも前の各フィンガープリント付きフレームを、テスト・コンテンツ・アイテムのフィンガープリント付きフレーム８０４よりも前のそれぞれ対応するフィンガープリント付きフレームに対して評価することができる。したがって、たとえば、フィンガープリント照合モジュール５０４は、参照コンテンツ・アイテムのフィンガープリント付きフレーム８２０とテスト・コンテンツ・アイテムのフィンガープリント付きフレーム８２４との間のハミング距離を計算することができる。ハミング距離が閾値を満たす場合、コンテンツの一致が見つかる。フィンガープリント照合モジュール５０４は、一致が見つからなくなるまで、または参照コンテンツ・アイテムおよび／もしくはテスト・コンテンツ・アイテムの始めに達するまで、各先行フレームとのこのような照合を続けることができる。同様に、フィンガープリント照合モジュール５０４は、参照コンテンツ・アイテム内の一致するフィンガープリント８０８よりも後の各フィンガープリント付きフレームを、テスト・コンテンツ・アイテム内の一致するフィンガープリント付きフレーム８０４よりも後のそれぞれ対応するフィンガープリント付きフレームに対して評価することができる。したがって、たとえば、フィンガープリント照合モジュール５０４は、参照コンテンツ・アイテムのフィンガープリント付きフレーム８２２とテスト・コンテンツ・アイテムのフィンガープリント付きフレーム８２６との間のハミング距離を計算することができる。ハミング距離が閾値を満たす場合、コンテンツの一致が見つかる。フィンガープリント照合モジュール５０４は、一致が見つからなくなるまで、または参照コンテンツ・アイテムおよび／もしくはテスト・コンテンツ・アイテムの最後に達するまで、各後続フレームとのこのような照合を続けることができる。このような照合が完了したら、フィンガープリント照合モジュール５０４は、テスト・コンテンツ・アイテムのどの部分８３２が参照コンテンツ・アイテムの境界８３０に一致するかどうかを特定することができる。この照合プロセスは、テスト・コンテンツ・アイテムの音声フィンガープリントと参照コンテンツ・アイテムの音声フィンガープリントとの間の一致、テスト・コンテンツ・アイテムの映像フィンガープリントと参照コンテンツ・アイテムの映像フィンガープリントとの間の一致、および／またはテスト・コンテンツ・アイテムのサムネイル・フィンガープリントと参照コンテンツ・アイテムのサムネイル・フィンガープリントとの間の一致を見つけるために適用することができる。図８Ａ〜図８Ｂを参照して説明する照合プロセスは、２つのコンテンツ・アイテム間の一致するコンテンツを決定するための単なる１つの例示的なアプローチであり、当然ながら、他のアプローチも可能である。いくつかの実施形態において、照合プロセスは、一致の決定に、テスト・コンテンツ・アイテムおよび参照コンテンツ・アイテムのすべてのフィンガープリント付きフレームを評価する必要がないように最適化される。たとえば、テスト・コンテンツ・アイテムの第１フィンガープリント付きフレームと参照コンテンツ・アイテムの第１フィンガープリント付きフレームとの間の一致の特定にあたり、フィンガープリント照合モジュール５０４は、テスト・コンテンツ・アイテムおよび参照コンテンツ・アイテム内の１つまたは複数の中間フレーム（例、閾値数のフィンガープリント付きフレーム）をスキップし、その後、テスト・コンテンツ・アイテムの第２フィンガープリント付きフレームおよび参照コンテンツ・アイテムの第２フィンガープリント付きフレームを評価することができる。第１フィンガープリント付きフレームおよび第２フィンガープリント付きフレームがともに一致する場合、テスト・コンテンツ・アイテムおよび参照コンテンツ・アイテムの１つまたは複数の中間フレームも一致すると想定される。いくつかの実施形態において、照合プロセスは２段階にされ、第１検証ステップは、コンテンツ・アイテム内の閾値数の中間フィンガープリント付きフレームの評価をスキップしても、１組の第１フィンガープリント付きフレームが一致し、かつ第２組のフィンガープリント付きフレームが一致するときに一致を決定するように最適化される。このような実施形態では、第２検証ステップでは、一致の全長を確認するために、中間フィンガープリント付きフレームのそれぞれも個々に評価される。
【００７５】
いくつかの実施形態において、さらなる検討のために、一致する部分８３０および８３２を記述する情報がさまざまな要員に提供される。いくつかの実施形態において、一致する部分８３０および８３２が閾値時間長（例、３０秒）を満たす場合、フィンガープリント照合モジュール５０４は、さらなる検討のために、テスト・コンテンツ・アイテムに自動的にフラグを立てることができる。いくつかの実施形態において、一致する部分８３０および８３２が閾値時間長（例、３０秒）を満たす場合、フィンガープリント照合モジュール５０４は、ユーザがテスト・コンテンツ・アイテムにアクセスすることを自動的に防止することができる。いくつかの実施形態において、フィンガープリント照合モジュール５０４は、テスト・コンテンツ・アイテムおよび参照コンテンツ・アイテムが複製である（つまり、テスト・コンテンツ・アイテムの全部が参照コンテンツ・アイテムの全部に一致する）と決定することがある。このような実施形態では、テスト・コンテンツ・アイテムは、自動的に削除することもできる。
【００７６】
組み合わせ照合モジュール５０６は、複数のタイプのフィンガープリント（例、音声、映像、サムネイル）を利用して、テスト・コンテンツ・アイテムと参照コンテンツ・アイテムとの間で一致するコンテンツを特定するように構成することができる。たとえば、いくつかの実施形態において、組み合わせ照合モジュール５０６は、前述したように、音声フィンガープリントを使用してテスト・コンテンツ・アイテムと参照コンテンツ・アイテムとの間で一致するコンテンツを決定することができる。このような実施形態では、組み合わせ照合モジュール５０６は、閾値期間および／または閾値フレーム数について音声フィンガープリントを使用して一致が見つからない場合に、他のタイプのフィンガープリント（例、映像フィンガープリントおよび／またはサムネイル・フィンガープリント）を使用して照合を補完する。いくつかの実施形態において、組み合わせ照合モジュール５０６は、音声フィンガープリントを使用して決定したコンテンツの一致を、対応する映像フィンガープリント（またはサムネイル・フィンガープリント）を追加で使用することによって検証することができる。このような検証は、たとえば、著作権保護された音楽を含むビデオ広告とミュージック・ビデオとを区別するのに有用であり得る。同様に、いくつかの実施形態において、組み合わせ照合モジュール５０６は、映像フィンガープリントを使用して決定したコンテンツの一致を、対応する音声フィンガープリント（またはサムネイル）を追加で使用することによって検証することができる。種々実施形態において、音声フィンガープリントおよび映像フィンガープリントは、所定のフレーム・レートで生成される。その結果、組み合わせ照合モジュール５０６は、ある所与のフレームについて、音声フィンガープリントと映像フィンガープリントとを容易に相互参照することができる。
【００７７】
いくつかの実施形態において、コンテンツ・アイテムをコンテンツ・プロバイダ・システムに提供しているユーザ・デバイスには、コンテンツ・アイテムのサムネイル・フィンガープリントを生成して送信するように命令することができる。このような実施形態では、組み合わせ照合モジュール５０６は、サムネイル・フィンガープリントを利用して、コンテンツ・アイテムと参照コンテンツ・アイテムとの間で一致するコンテンツを特定することができる。一致が見つかる場合、ユーザ・デバイスには、コンテンツ・アイテムの他のタイプのフィンガープリント（例、音声フィンガープリントおよび／または映像フィンガープリント）を生成して送信するように命令することができる。組み合わせ照合モジュール５０６は、他のタイプのフィンガープリントを利用して、サムネイル・フィンガープリントを使用して決定したフレームの一致を検証することができる。たとえば、サムネイル・フィンガープリントを使用してコンテンツ・アイテムのフレームと参照コンテンツ・アイテムのフレームとの間の一致が決定される場合、組み合わせフィンガープリント照合モジュール５０６は、コンテンツ・アイテムおよび参照コンテンツ・アイテムで一致するフレームに対応する映像フィンガープリントを使用して、一致を確認することができる。いくつかの実施形態において、サムネイル・フィンガープリントを使用して一致が見つかる場合、コンテンツ・プロバイダ・システムは、検証のために、コンテンツ・アイテムについて他のタイプのフィンガープリント（例、音声フィンガープリントおよび／または映像フィンガープリント）を生成し始めることができる。
【００７８】
一般に、オンデマンド・コンテンツ・アイテムのコンテンツを評価するとき、照合モジュール５０２は、１つまたは複数の参照コンテンツ・アイテムを特定し、これらの参照コンテンツ・アイテムをオンデマンド・コンテンツ・アイテムに対して評価して、一致するコンテンツを特定することができる。いくつかの実施形態において、照合モジュール５０２は、コンテンツの照合のために、ライブ・コンテンツ・ストリームを別様に処理するように構成することができる。たとえば、いくつかの実施形態において、ライブ処理モジュール５０８は、スライド・ウィンドウを使用して、固定部分で受信されるライブ・コンテンツ・ストリームを処理するように構成することができる。いくつかの実施形態において、ライブ処理モジュール５０８は、固定時間長（例、コンテンツの最後の２０秒）または固定数のフレーム（例、１６フレーム）に対応するライブ・コンテンツ・ストリームのフレームを含むために、スライド・ウィンドウを画定することができる。図９Ａは、ユーザ・デバイスからコンテンツ・プロバイダ・システムによって受信されるライブ・コンテンツ・ストリーム９０２の例示的な図を示す。図９Ａの実施例において、スライド・ウィンドウ９０４は、フレーム９０６およびフレーム９０８によって画定されるライブ・コンテンツ・ストリーム９０２の２０秒に対応する。いくつかの実施形態において、ライブ・コンテンツ・ストリームが受信されているとき、ライブ処理モジュール５０８は、スライド・ウィンドウ９０４の長さが満たされるまで、ライブ・コンテンツ・ストリームをバッファリングする。たとえば、スライド・ウィンドウが２０秒の長さに対応する場合、ライブ処理モジュール５０８は、ライブ・コンテンツ・ストリームの２０秒をバッファリングする。バッファリングされると、ライブ処理モジュール５０８は、前述したように、スライド・ウィンドウ９０４内のコンテンツの一部分（例、スライド・ウィンドウ９０４内のコンテンツの最後の１秒）のフィンガープリントを作成する。フィンガープリントを作成されたら、ライブ処理モジュール５０８は、ライブ・コンテンツ・ストリームのフィンガープリントを作成された部分がいずれかの参照コンテンツ・アイテムに一致するかどうかを決定することができる。前述したように、照合プロセスは、ライブ・コンテンツ・ストリーム９０２の以前に受信したフレームを評価することにより、一致するコンテンツの境界を決定することを試みる。この実施例では、ライブ・コンテンツ・ストリームの別の１秒が受信されると、スライド・ウィンドウは、ライブ・コンテンツ・ストリームの最新の２０秒を包含するように進む。図９Ｂは、ライブ・コンテンツの別の１秒が受信された後のライブ・コンテンツ・ストリーム９１２の例示的な図を示す。図９Ｂの実施例では、スライド・ウィンドウ９１４は、ライブ・コンテンツ・ストリームの最新の２０秒まで進んでおり、今ではフレーム９０６および９１８と接している。同様に、この実施例では、ライブ処理モジュール５０８は、受信したライブ・コンテンツ・ストリームの最後の１秒のフィンガープリントを作成して、フィンガープリントを作成された部分がいずれかの参照コンテンツ・アイテムに一致するかどうかを決定する。図９Ｃは、ライブ・コンテンツ・ストリームの別の１秒が受信された後のライブ・コンテンツ・ストリーム９２２の例示的な図を示す。図９Ｃの実施例では、スライド・ウィンドウ９２４は、ライブ・コンテンツ・ストリームの最新の２０秒まで進んでおり、今ではフレーム９０６および９２８と接している。同様に、この実施例では、ライブ処理モジュール５０８は、受信したライブ・コンテンツ・ストリームの最後の１秒のフィンガープリントを作成し、フィンガープリントを作成した部分がいずれかの参照コンテンツ・アイテムに一致するかどうかを決定する。スライド・ウィンドウを使用してライブ・コンテンツ・ストリームを処理するこのアプローチは、参照コンテンツ・アイテムにおいて一致するコンテンツを最適に検出することを可能にする。このアプローチは、参照ライブ・コンテンツ・ストリームの受信が遅れる状況にも対処することができる。このような場合、コンテンツ・プロバイダ・システムは、テスト・ライブ・コンテンツ・ストリームと遅延した参照ライブ・コンテンツ・ストリームとの間で一致するコンテンツを決定することができる。いくつかの実施形態において、スライド・ウィンドウを拡張して、繰返しパターンを含むコンテンツの特定を容易にすることができる。
【００７９】
ある場合には、ライブ・コンテンツ・ストリームは、照合プロセスを複雑にし得る歪みを受けやすいことがある。たとえば、ユーザは、コンピューティング・デバイスを使用してキャプチャされたコンサートのライブ・コンテンツ・ストリームを提供することがある。このライブ・コンテンツ・ストリームは、一定の角度および／またはズーム・レベルからキャプチャされるかもしれない。また、キャプチャされたコンテンツは、コンピューティング・デバイスの振動により生じるさまざまな回転を受けやすいことがある。このような歪みにより、たとえば、許可された放送者によって提供された参照ライブ・コンテンツ・ストリーム（つまり、保護されたストリーム、または著作権保護されたストリーム）に対して正確な一致が見つけにくくなるかもしれない。いくつかの実施形態において、歪みモジュール５１０は、このような歪みにも関わらずコンテンツの照合を容易にするためのさまざまなアプローチを適用するように構成される。
【００８０】
たとえば、いくつかの実施形態において、ライブ・コンテンツ・ストリームのフィンガープリントが作成されたフレームについて一致を見つけようとするとき、歪みモジュール５１０は、歪みのある１組のフィンガープリント付きフレームを生成し、歪みのあるフィンガープリント付きフレームのそれぞれを使用して一致を見つけようとする。したがって、上記実施例では、ライブ・コンテンツ・ストリームの最後の１秒に対応するフィンガープリント付きフレームについて一致を見つけようとする場合、歪みモジュール５１０は、フィンガープリント付きフレームに対応する１組のビットのインデックス部分（例、最初の２４ビット）を置換する。いくつかの実施形態において、このインデックス部分を使用して、前述したように、１つまたは複数の転置インデックスで参照コンテンツ・アイテムを見つける。いくつかの実施形態において、歪みモジュール５１０は、フィンガープリント付きフレームのインデックス部分を１度に１ビットずつ置換する。たとえば、フレームが６ビット「０１０１１１」を使用して表され、インデックス部分が最初の３ビット、たとえば、「０１０」を使用して表されると仮定する。この実施例では、歪みモジュール５１０は、インデックス部分を１度に１ビットずつ置換して、次の歪みの組を生成することができる。すなわち、「０００」、「０１１」、「１１０」。フレームに対応する残りの３ビット、たとえば、「１１１」にこれらの歪みをプリペンドして、歪みのある次の組のフィンガープリント付きフレームを生成することができる。すなわち、「０００１１１」、「００１１１１」、「０１１１１１」、「１００１１１」、「１０１１１１」、「１１０１１１」および「１１１１１１」である。歪みのあるこれらのフィンガープリント付きフレームのそれぞれを使用して、前述したように、１つまたは複数の参照コンテンツ・アイテムを特定し、その参照コンテンツ・アイテムのどの部分が一致するコンテンツを含むかどうかを決定することができる。いくつかの実施形態において、歪みモジュール５１０は、フィンガープリント付きフレームのインデックス部分を１度に複数ビット（例、２ビット）ずつ置換して、追加の歪みフィンガープリントフレームを生成し、一致するコンテンツを特定する。上記の実施例では、歪みモジュール５１０は、インデックス部分「０１０」を１度に２ビットずつ置換して、次の歪みの組を生成することができる。すなわち、「００１」、「１１１」および「１００」である。いくつかの実施形態において、歪みモジュール５１０は、インデックス部分だけを歪ませるのではなく、フィンガープリント付きフレームに対応するビットのすべてを置換する。いくつかの実施形態において、歪みモジュール５１０は、１組のビットにおける置換される部分（またはビットの数）を抑制する。たとえば、いくつかの実施形態において、フィンガープリント付きフレームについて一致を見つけようとするときに置換される部分（またはビットの数）は、中央処理装置（ＣＰＵ）の使用量によって変わることがある。一実施例では、歪みモジュール５１０は、ＣＰＵの使用量が閾値以内のときにはフレームの最初の２４ビットを置換することができ、ＣＰＵの使用量が閾値に達したときには、歪みモジュール５１０は、順列をフレームの最初の１６ビットまで減少させることができる。
【００８１】
このような順列は、一般に、２つのコンテンツ・アイテムの一致する部分を決定するときに評価されるコンテンツの量を増やすことによって、分析されるテスト・コンテンツ・アイテムに存在するかもしれない歪みを考慮する。しかし、ある場合には、システムの性能を改善するために、評価されるコンテンツの量を調節するためのさまざまなアプローチを適用してもよい。たとえば、いくつかの実施形態において、歪みは、閾値の中央処理装置（ＣＰＵ）の使用量に達するまで（例、７０パーセント、７５パーセント等）、段階的に生成されてテストすることもできる。たとえば、フィンガープリント付きフレームを、まず歪みなしで評価してもよい。一致が見つからなければ、フィンガープリント付きフレームを、１度に１ビットずつ置換して歪ませてもよい。この順列を使用して一致が見つからなければ、フィンガープリント付きフレームを、１度に２ビットずつ置換して歪ませてもよい。いくつかの実施形態において、閾値のクエリタイム（例、１５０ミリ秒、２００ミリ秒等）に達するまで、歪みを段階的に生成してテストすることができる。このような実施形態では、閾値のクエリタイムに達したときに、照合プロセスが中止する。述べたように、フィンガープリントは、コンテンツの任意の長さ（例、コンテンツの１秒）にわたる一連のフレーム（例、１６フレーム）に対応させることができる。いくつかの実施形態において、フィンガープリントに対応する１６のフィンガープリント付きフレームのそれぞれを評価する代わりに、歪みモジュール５１０は、フィンガープリント付きフレームのうちの１つまたは複数の評価をスキップするように構成することができる（例、１５フレームをスキップして、フィンガープリントに対応する１６番目のフレームのみを評価する）。いくつかの実施形態において、フィンガープリントを評価するとき、照合モジュール５０２は、フィンガープリントを、１組のより小さなチャンクにセグメント化するように構成することができ、その１組の中のチャンクのそれぞれを、一般的に公知の並列処理手法を使用して並列処理することができる。
【００８２】
図１０は、本開示の種々実施形態に係る、コンテンツのフィンガープリントを作成するための例示的なプロセス１０００を示す。特に記載のない限り、本明細書で述べる種々実施形態の範囲内において、追加のステップ、より少ないステップまたは代替ステップを、同様な順序もしくは他の順序で、または並行して行うことができることは理解されるべきである。
【００８３】
ブロック１００２で、複数の映像フレームを有するテスト・コンテンツ・アイテムが取得される。ブロック１００４で、テスト・コンテンツ・アイテムに対応する１組の映像フレームに基づいて、少なくとも１つの映像フィンガープリントが生成される。ブロック１００６で、映像フィンガープリントの少なくとも一部分を使用して、少なくとも１つの参照コンテンツ・アイテムが決定される。ブロック１００８で、テスト・コンテンツ・アイテムの映像フィンガープリントおよび参照コンテンツ・アイテムの１つまたは複数の映像フィンガープリントに少なくとも部分的に基づいて、テスト・コンテンツ・アイテムの少なくとも１つの部分が参照コンテンツ・アイテムの少なくとも１つの部分に一致するとの決定が行われる。
【００８４】
図１１は、本開示の種々実施形態に係る、異なるタイプのフィンガープリントを使用してコンテンツを照合するための例示的なプロセス１１００を示す。特に記載のない限り、本明細書で述べる種々実施形態の範囲内において、追加のステップ、より少ないステップまたは代替ステップを、同様な順序もしくは他の順序で、または並行して行うことができることは理解されるべきである。
【００８５】
ブロック１１０２で、テスト・コンテンツ・アイテムの１つまたは複数の第１フィンガープリントおよび参照コンテンツ・アイテムの１つまたは複数の第１フィンガープリントを使用して、テスト・コンテンツ・アイテムの少なくとも１つの部分を参照コンテンツ・アイテムの少なくとも１つの部分に対して評価する。第１フィンガープリントは、第１タイプのメディアに対応する。ブロック１１０４で、少なくとも１つの検証基準が満たされているとの決定が行われる。ブロック１１０６で、テスト・コンテンツ・アイテムの１つまたは複数の第２フィンガープリントおよび参照コンテンツ・アイテムの１つまたは複数の第２フィンガープリントを使用して、テスト・コンテンツの部分を参照コンテンツの部分に対して評価する。第２フィンガープリントは、第１タイプのメディアとは異なる第２タイプのメディアに対応する。
【００８６】
図１２は、本開示の種々実施形態に係る、歪みフィンガープリントを使用してコンテンツを照合するための例示的なプロセス１２００を示す。特に記載のない限り、本明細書で述べる種々実施形態の範囲内において、追加のステップ、より少ないステップまたは代替ステップを、同様な順序もしくは他の順序で、または並行して行うことができることは理解されるべきである。
【００８７】
ブロック１２０２で、テスト・コンテンツ・アイテムに対応する１組のフレームに基づいて、少なくとも１つのフィンガープリントが生成される。ブロック１２０４で、フィンガープリントの少なくとも一部分を使用して、１組の歪みフィンガープリントが生成される。ブロック１２０６で、１組の歪みフィンガープリントを使用して１つまたは複数の参照コンテンツ・アイテムが決定され、テスト・コンテンツ・アイテムは、一致するコンテンツを特定するために少なくとも１つの参照コンテンツ・アイテムに対して評価される。
【００８８】
本開示の種々実施形態に関連して、他の多くの用途、アプリケーション、および／または変型が存在できることが想定される。たとえば、ある場合において、ユーザは、開示される技術を利用するためにオプトインするか否かを選ぶことができる。開示される技術は、さまざまなプライバシー設定および嗜好を確実に維持することもでき、個人情報の漏洩を防止することができる。別の例では、本開示の種々実施形態は、経時的に学習し、改善し、および／または改良することができる。
【００８９】
ソーシャル・ネットワーキング・システム‐例示的な実施態様
図１３は、本開示の一実施形態に係る、さまざまなシナリオで利用することのできる例示的なシステム１３００のネットワーク図である。システム１３００は、１つまたは複数のユーザ・デバイス１３１０、１つまたは複数の外部システム１３２０、ソーシャル・ネットワーキング・システム（またはサービス）１３３０、およびネットワーク１３５０を含む。一実施形態において、上述の実施形態と関連して説明したソーシャル・ネットワーキング・サービス、プロバイダ、および／またはシステムを、ソーシャル・ネットワーキング・システム１３３０として実装してもよい。説明の便宜上、図１３に示すシステム１３００の実施形態は、単一の外部システム１３２０および単一のユーザ・デバイス１３１０を含む。ただし、他の実施形態において、システム１３００は、より多くのユーザ・デバイス１３１０および／またはより多くの外部システム１３２０を含んでいてもよい。特定の実施形態においては、ソーシャル・ネットワーキング・システム１３３０がソーシャル・ネットワーク・プロバイダにより運用されるのに対し、外部システム１３２０は、異なるエンティティにより運用可能である点において、ソーシャル・ネットワーキング・システム１３３０から分離されている。ただし、種々実施形態において、ソーシャル・ネットワーキング・システム１３３０および外部システム１３２０は、協調して動作することにより、ソーシャル・ネットワーキング・システム１３３０のユーザ（またはメンバー）にソーシャル・ネットワーキング・サービスを提供する。この意味において、ソーシャル・ネットワーキング・システム１３３０は、プラットフォームまたはバックボーンを提供し、これを外部システム１３２０等の他のシステムが利用して、インターネット全体でユーザにソーシャル・ネットワーキング・サービスおよび機能を提供するようにしてもよい。
【００９０】
ユーザ・デバイス１３１０は、ユーザからの入力を受け付けるとともにネットワーク１３５０を介してデータを送受信可能な１つまたは複数のコンピューティング・デバイス（またはシステム）を備える。一実施形態において、ユーザ・デバイス１３１０は、たとえばＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）互換オペレーティング・システム（ＯＳ）、Ａｐｐｌｅ  ＯＳ  Ｘ、および／またはＬｉｎｕｘ（登録商標）ディストリビューションを実行する従来のコンピュータ・システムである。別の実施形態において、ユーザ・デバイス１３１０としては、スマートフォン、タブレット、携帯情報端末（ＰＤＡ）、携帯電話、ラップトップ・コンピュータ、ウェアラブル・デバイス（例、眼鏡、腕時計、ブレスレット等）、カメラ、器具等、コンピューティング・デバイスまたはコンピュータ機能を有するデバイスが可能である。ユーザ・デバイス１３１０は、ネットワーク１３５０を介して通信を行うように構成されている。ユーザ・デバイス１３１０は、たとえば、該ユーザ・デバイス１３１０のユーザによるソーシャル・ネットワーキング・システム１３３０との相互作用を可能にするブラウザ・アプリケーション等のアプリケーションを実行可能である。別の実施形態において、ユーザ・デバイス１３１０は、ｉＯＳおよびＡＮＤＲＯＩＤ（登録商標）等、ユーザ・デバイス１３１０のネイティブオペレーティング・システムが提供するアプリケーション・プログラミング・インタフェース（ＡＰＩ）を通して、ソーシャル・ネットワーキング・システム１３３０と相互作用する。ユーザ・デバイス１３１０は、有線通信システムおよび／または無線通信システムを用いることにより、ローカル・エリア・ネットワークおよび／またはワイド・エリア・ネットワークの任意の組み合わせを含み得るネットワーク１３５０を介して、外部システム１３２０およびソーシャル・ネットワーキング・システム１３３０と通信するように構成されている。
【００９１】
一実施形態において、ネットワーク１３５０は、標準的な通信技術およびプロトコルを使用する。このため、ネットワーク１３５０には、イーサネット（登録商標）、８０２．１１、ワールドワイド・インターオペラビリティ・フォー・マイクロウェーブ・アクセス（ＷｉＭＡＸ）、３Ｇ、４Ｇ、ＣＤＭＡ、ＧＳＭ（登録商標）、ＬＴＥ、デジタル・サブスクライバ・ライン（ＤＳＬ）等の技術を用いたリンクを含み得る。同様に、ネットワーク１３５０で用いられるネットワーキング・プロトコルとしては、マルチ・プロトコル・ラベル・スイッチング（ＭＰＬＳ）、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）、ユーザ・データグラム・プロトコル（ＵＤＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ）、ファイル転送プロトコル（ＦＴＰ）等が挙げられる。ネットワーク１３５０上で交換されるデータは、ハイパーテキスト・マークアップ言語（ＨＴＭＬ）および拡張マークアップ言語（ＸＭＬ）を含む技術およびフォーマットまたは技術もしくはフォーマットを用いて表すことができる。また、全部または一部のリンクは、セキュアソケットレイヤ（ＳＳＬ）、トランスポート・レイヤ・セキュリティ（ＴＬＳ）、およびインターネット・プロトコル・セキュリティ（ＩＰｓｅｃ）等の従来の暗号化技術を用いて暗号化可能である。
【００９２】
一実施形態において、ユーザ・デバイス１３１０は、外部システム１３２０およびソーシャル・ネットワーキング・システム１３３０から受信したマークアップ言語ドキュメント１３１４をブラウザ・アプリケーション１３１２で処理することにより、外部システム１３２０および／またはソーシャル・ネットワーキング・システム１３３０からのコンテンツを表示するようにしてもよい。マークアップ言語ドキュメント１３１４は、コンテンツおよび該コンテンツの書式設定または体裁を記述した１つまたは複数の命令を識別する。マークアップ言語ドキュメント１３１４に含まれる命令を実行することにより、ブラウザ・アプリケーション１３１２は、マークアップ言語ドキュメント１３１４により記述されたフォーマットまたは体裁で識別コンテンツを表示する。たとえば、マークアップ言語ドキュメント１３１４には、外部システム１３２０およびソーシャル・ネットワーキング・システム１３３０から読み出されたテキストおよび画像データまたはテキストもしくは画像データを含む複数のフレームを有するウェブ・ページを生成および表示する命令を含む。種々実施形態において、マークアップ言語ドキュメント１３１４は、拡張マークアップ言語（ＸＭＬ）データ、拡張ハイパーテキスト・マークアップ言語（ＸＨＴＭＬ）データ等のマークアップ言語データを含むデータ・ファイルを備える。また、マークアップ言語ドキュメント１３１４は、ＪａｖａＳｃｒｉｐｔ（登録商標）オブジェクト表記法（ＪＳＯＮ）データ、ＪＳＯＮ  ｗｉｔｈ  ｐａｄｄｉｎｇ（ＪＳＯＮＰ）、およびＪａｖａＳｃｒｉｐｔデータを含むことにより、外部システム１３２０とユーザ・デバイス１３１０との間のデータ交換を容易化するようにしてもよい。ユーザ・デバイス１３１０上のブラウザ・アプリケーション１３１２は、ＪａｖａＳｃｒｉｐｔコンパイラを用いて、マークアップ言語ドキュメント１３１４を復号化するようにしてもよい。
【００９３】
また、マークアップ言語ドキュメント１３１４は、ＦＬＡＳＨ（商標）またはＵｎｉｔｙ（商標）アプリケーション、Ｓｉｌｖｅｒｌｉｇｈｔ（商標）アプリケーション・フレームワーク等のアプリケーションまたはアプリケーション・フレームワークを含んでいてもよいし、これらとリンクしていてもよい。
【００９４】
また、一実施形態において、ユーザ・デバイス１３１０は、該ユーザ・デバイス１３１０のユーザがソーシャル・ネットワーキング・システム１３３０にログインしたかどうかを示すデータを含む１つまたは複数のクッキー１３１６を含むことにより、ソーシャル・ネットワーキング・システム１３３０からユーザ・デバイス１３１０に伝達されたデータの変更ができるようになっていてもよい。
【００９５】
外部システム１３２０は、ネットワーク１３５０を用いてユーザ・デバイス１３１０に伝達される１つまたは複数のウェブ・ページ１３２２ａ、１３２２ｂを含む１つまたは複数のウェブ・サーバを含む。外部システム１３２０は、ソーシャル・ネットワーキング・システム１３３０から分離されている。たとえば、外部システム１３２０が第１のドメインと関連付けられている一方、ソーシャル・ネットワーキング・システム１３３０は、別個のソーシャル・ネットワーキングドメインと関連付けられている。外部システム１３２０に含まれるウェブ・ページ１３２２ａ、１３２２ｂは、コンテンツを識別するとともに該識別コンテンツの書式設定または体裁を指定する命令を含むマークアップ言語ドキュメント１３１４を含む。前述したように、多数の変型および他の可能性が可能であることは理解されるべきである。
【００９６】
ソーシャル・ネットワーキング・システム１３３０は、複数のユーザを含み、ソーシャル・ネットワークのユーザに対して該ソーシャル・ネットワークの他のユーザと通信および相互作用する能力を提供する、該ソーシャル・ネットワーク用の１つまたは複数のコンピューティング・デバイスを含む。場合によっては、グラフ、すなわちエッジおよびノードを含むデータ構造により、ソーシャル・ネットワークを表すことができる。ソーシャル・ネットワークは、データベース、オブジェクト、クラス、メタ要素、ファイル、またはその他任意のデータ構造を含むが、これらに限定されない、他のデータ構造を用いて表すこともできる。ソーシャル・ネットワーキング・システム１３３０は、オペレータにより運営、管理、または制御されるようになっていてもよい。ソーシャル・ネットワーキング・システム１３３０のオペレータは、人間、自動化アプリケーション、またはコンテンツの管理、ポリシーの調整、ソーシャル・ネットワーキング・システム１３３０内の利用状況総計値の収集を行う一連のアプリケーションであってもよい。オペレータは、任意の種類が用いられるようになっていてもよい。
【００９７】
ユーザは、ソーシャル・ネットワーキング・システム１３３０に参加した後、ソーシャル・ネットワーキング・システム１３３０のつながりたい任意数の他ユーザとのつながりを追加するようにしてもよい。本明細書において、用語「友達」は、ユーザがソーシャル・ネットワーキング・システム１３３０を介して、つながり、関連性、または関係を形成した、ソーシャル・ネットワーキング・システム１３３０のその他任意のユーザを表す。たとえば、一実施形態において、ソーシャル・ネットワーキング・システム１３３０のユーザがソーシャル・グラフのノードとして表される場合、用語「友達」は、２つのユーザ・ノード間に形成され、これら２つのユーザ・ノードを直接つなげるエッジを表し得る。
【００９８】
つながりは、ユーザ（たとえば、同じ教育機関の同窓生であるユーザ）の共通特性に基づいて、ユーザが明示的に追加してもよいし、ソーシャル・ネットワーキング・システム１３３０が自動的に作成するようにしてもよい。たとえば、第１のユーザは、友達となる特定の他ユーザを具体的に選択する。ソーシャル・ネットワーキング・システム１３３０におけるつながりは通例、両方向であるが、これは必須ではないため、用語「ユーザ」および「友達」は、枠組みによって決まる。ソーシャル・ネットワーキング・システム１３３０のユーザ間のつながりは通例、双方向（「２方向」）すなわち「相互」であるが、単方向すなわち「１方向」であってもよい。たとえば、ボブ（Ｂｏｂ）およびジョー（Ｊｏｅ）がともにソーシャル・ネットワーキング・システム１３３０のユーザであり、互いにつながっている場合、ボブおよびジョーは、互いのつながりである。一方、ボブがジョーとつながって、ジョーによりソーシャル・ネットワーキング・システム１３３０に伝達されたデータを見たいものの、ジョーが相互のつながりを形成したくない場合は、単方向のつながりが確立されるようになっていてもよい。ユーザ間のつながりは、直接的なつながりであってもよい。ただし、ソーシャル・ネットワーキング・システム１３３０のいくつかの実施形態によれば、つながりは、１つまたは複数のつながりレベルまたは分離度によって、間接的にすることができる。
【００９９】
ユーザ間のつながりの確立および維持ならびにユーザ間の相互作用の許可に加えて、ソーシャル・ネットワーキング・システム１３３０は、該ソーシャル・ネットワーキング・システム１３３０によりサポートされたさまざまな種類のアイテムに対するアクションをユーザが起こせるようにする。これらのアイテムには、ソーシャル・ネットワーキング・システム１３３０のユーザが属し得るグループまたはネットワーク（すなわち、人々、エンティティ、およびコンセプトのソーシャル・ネットワーク）、ユーザが関心を示す可能性があるイベントまたはカレンダ・エントリ、ユーザがソーシャル・ネットワーキング・システム１３３０を介して使用可能なコンピュータ・ベースのアプリケーション、ソーシャル・ネットワーキング・システム１３３０が提供するサービスまたはソーシャル・ネットワーキング・システム１３３０を通してユーザがアイテムの売買を行える取引、およびユーザがソーシャル・ネットワーキング・システム１３３０上またはソーシャル・ネットワーキング・システム１３３０外で実行可能な広告との相互作用、を含んでいてもよい。これらは、ユーザがソーシャル・ネットワーキング・システム１３３０上でアクションを起こすことができるアイテムのわずかな例に過ぎず、その他多くが可能である。ユーザは、ソーシャル・ネットワーキング・システム１３３０もしくは外部システム１３２０にて表し得るあらゆるもの、ソーシャル・ネットワーキング・システム１３３０とは別個のあらゆるもの、またはネットワーク１３５０を介してソーシャル・ネットワーキング・システム１３３０に結合されたあらゆるものと相互作用可能である。
【０１００】
また、ソーシャル・ネットワーキング・システム１３３０は、多様なエンティティをリンク可能である。たとえば、ソーシャル・ネットワーキング・システム１３３０は、ＡＰＩ、ウェブサービス、または他の通信チャンネルを通して、ユーザの互いの相互作用および外部システム１３２０または他のエンティティとの相互作用を可能にする。ソーシャル・ネットワーキング・システム１３３０は、複数のエッジにより相互につなげられた複数のノードを含む「ソーシャル・グラフ」を生成して保持する。ソーシャル・グラフの各ノードは、別のノードに作用可能なエンティティおよび／または別のノードが作用し得るエンティティを表していてもよい。ソーシャル・グラフは、さまざまな種類のノードを含んでいてもよい。ノードの種類の例としては、ユーザ、人間以外のエンティティ、コンテンツ・アイテム、ウェブ・ページ、グループ、アクティビティ、メッセージ、コンセプト、およびソーシャル・ネットワーキング・システム１３３０のオブジェクトにより表し得るその他任意の事物が挙げられる。ソーシャル・グラフの２つのノード間のエッジは、ノード関係または一方のノードが他方のノードに対して行ったアクションに由来し得る２つのノード間の特定種類のつながりすなわち関連性を表していてもよい。場合により、ノード間のエッジは、重み付け可能である。エッジの重みは、ノード間のつながりすなわち関連性の強度等、エッジと関連付けられた属性を表し得る。エッジの種類が異なれば、異なる重みが可能である。たとえば、あるユーザが別のユーザに「いいね！」をした場合に作成されるエッジにある重みが与えられる一方、ユーザが別のユーザと友達になった場合に作成されるエッジには、異なる重みが与えられるようになっていてもよい。
【０１０１】
一例として、第１のユーザが第２のユーザを友達として識別した場合は、第１のユーザを表すノードと第２のユーザを表す第２のノードとをつなげるソーシャル・グラフのエッジが生成される。さまざまなノードが互いに関連または相互作用すると、ソーシャル・ネットワーキング・システム１３３０は、該さまざまなノードをつなげるエッジを修正して、上記関係および相互作用を反映する。
【０１０２】
また、ソーシャル・ネットワーキング・システム１３３０は、該ソーシャル・ネットワーキング・システム１３３０とのユーザの相互作用を増進させるユーザ生成コンテンツを含む。ユーザ生成コンテンツには、ユーザがソーシャル・ネットワーキング・システム１３３０に追加、アップロード、送信、または「投稿」可能なあらゆるものを含み得る。たとえば、ユーザは、ユーザ・デバイス１３１０からソーシャル・ネットワーキング・システム１３３０に投稿を伝達する。投稿には、近況等の文字情報、ロケーション情報、写真等の画像、映像、リンク、音楽、またはその他類似のデータおよび媒体またはデータもしくは媒体等のデータを含んでいてもよい。また、コンテンツは、第三者によってソーシャル・ネットワーキング・システム１３３０に追加されるようになっていてもよい。コンテンツ「アイテム」は、ソーシャル・ネットワーキング・システム１３３０のオブジェクトとして表される。このように、ソーシャル・ネットワーキング・システム１３３０のユーザは、さまざまな通信チャンネルを通して、さまざまな種類の媒体の文字およびコンテンツ・アイテムを投稿することにより、互いのコミュニケーションが促される。このようなコミュニケーションでは、ユーザの互いの相互作用が増大するとともに、ユーザがソーシャル・ネットワーキング・システム１３３０と相互作用する頻度が高くなる。
【０１０３】
ソーシャル・ネットワーキング・システム１３３０は、ウェブ・サーバ１３３２、ＡＰＩ要求サーバ１３３４、ユーザ・プロフィール・ストア１３３６、つながりストア１３３８、アクション・ロガー１３４０、アクティビティ・ログ１３４２、および承認サーバ１３４４を含む。本発明の一実施形態において、ソーシャル・ネットワーキング・システム１３３０は、さまざまなアプリケーションを対象として、追加の構成要素、より少ない構成要素、または異なる構成要素を含んでいてもよい。ネットワーク・インタフェース、セキュリティ・メカニズム、ロード・バランサ、フェイルオーバ・サーバ、管理・ネットワーク運用コンソール等の他の構成要素については、システムの細部が分かり難くならないように、図示していない。
【０１０４】
ユーザ・プロフィール・ストア１３３６は、略歴、人口統計学的情報、およびユーザによる申告またはソーシャル・ネットワーキング・システム１３３０による推察が行われた職歴、学歴、趣味または好み、ロケーション等の他の種類の記述的情報等、ユーザ・アカウントに関する情報を保持する。この情報は、各ユーザが一意に識別されるように、ユーザ・プロフィール・ストア１３３６に記憶される。また、ソーシャル・ネットワーキング・システム１３３０は、異なるユーザ間の１つまたは複数のつながりを記述したデータをつながりストア１３３８に記憶する。つながり情報は、職歴、グループ・メンバーシップ、趣味、または学歴が類似または共通するユーザを示していてもよい。また、ソーシャル・ネットワーキング・システム１３３０には、ユーザによる他ユーザとの関係の指定を可能にする異なるユーザ間のユーザ定義のつながりを含む。たとえば、ユーザ定義のつながりによれば、ユーザは、友達、同僚、パートナー等、ユーザの実生活の関係と似た他ユーザとの関係を生成可能である。ユーザは、所定の種類のつながりから選択を行うようにしてもよいし、必要に応じて、自身のつながりの種類を規定するようにしてもよい。人間以外のエンティティ、バケット、クラスタ中心、画像、関心、ページ、外部システム、コンセプト等、ソーシャル・ネットワーキング・システム１３３０の他のノードとのつながりについても、つながりストア１３３８に記憶される。
【０１０５】
ソーシャル・ネットワーキング・システム１３３０は、ユーザが相互作用可能なオブジェクトに関するデータを保持する。このデータを保持するため、ユーザ・プロフィール・ストア１３３６およびつながりストア１３３８は、ソーシャル・ネットワーキング・システム１３３０により保持された対応する種類のオブジェクトのインスタンスを記憶する。各オブジェクト種類は、オブジェクトの種類に相応しい情報を記憶するのに適した情報フィールドを有する。たとえば、ユーザ・プロフィール・ストア１３３６は、ユーザのアカウントおよびユーザのアカウントに関する情報の記述に適したフィールドを備えたデータ構造を含む。特定種類の新たなオブジェクトが作成された場合、ソーシャル・ネットワーキング・システム１３３０は、対応する種類の新たなデータ構造を初期化し、一意のオブジェクト識別子を割り当てるとともに、必要に応じて、オブジェクトへのデータの追加を開始する。これは、たとえばユーザがソーシャル・ネットワーキング・システム１３３０のユーザとなり、ソーシャル・ネットワーキング・システム１３３０がユーザ・プロフィール・ストア１３３６のユーザ・プロフィールの新たなインスタンスを生成し、一意の識別子をユーザ・アカウントに割り当て、ユーザが提供する情報のユーザ・アカウントのフィールドへの入力を開始した場合に起こる可能性がある。
【０１０６】
つながりストア１３３８には、ユーザの他ユーザとのつながり、外部システム１３２０とのつながり、または他のエンティティとのつながりを記述するのに適したデータ構造を含む。また、つながりストア１３３８は、ユーザに関する情報へのアクセスを調整するユーザのプライバシー設定と併せて使用可能なユーザのつながりに対して、つながりの種類を関連付けるようにしてもよい。本発明の一実施形態において、ユーザ・プロフィール・ストア１３３６およびつながりストア１３３８は、連合データベースとして実装されていてもよい。
【０１０７】
つながりストア１３３８、ユーザ・プロフィール・ストア１３３６、およびアクティビティ・ログ１３４２に記憶されたデータによれば、ソーシャル・ネットワーキング・システム１３３０は、ノードを用いてさまざまなオブジェクトを識別するとともに、ノードをつなげるエッジを用いて異なるオブジェクト間の関係を識別するソーシャル・グラフを生成することができる。たとえば、ソーシャル・ネットワーキング・システム１３３０において、第１のユーザが第２のユーザとのつながりを確立した場合は、ユーザ・プロフィール・ストア１３３６からの第１のユーザおよび第２のユーザのユーザ・アカウントがソーシャル・グラフのノードとして作用するようになっていてもよい。つながりストア１３３８が記憶する第１のユーザと第２のユーザとの間のつながりは、第１のユーザおよび第２のユーザと関連付けられたノード間のエッジである。この例を続けて、第２のユーザは、ソーシャル・ネットワーキング・システム１３３０において、第１のユーザにメッセージを送信するようにしてもよい。記憶可能なメッセージを送信するアクションは、第１のユーザおよび第２のユーザを表すソーシャル・グラフの２つのノード間の別のエッジである。また、メッセージ自体は、第１のユーザおよび第２のユーザを表すノードとつながった別のノードとして、ソーシャル・グラフにおいて識別されるとともに含まれていてもよい。
【０１０８】
別の例において、第１のユーザは、ソーシャル・ネットワーキング・システム１３３０により保持された画像（または、ソーシャル・ネットワーキング・システム１３３０の外部の別のシステムにより保持された画像）において、第２のユーザにタグを付けるようにしてもよい。画像自体は、ソーシャル・ネットワーキング・システム１３３０のノードとして表されていてもよい。このタグ付けアクションによって、第１のユーザと第２のユーザとの間にエッジを作成するとともに、ユーザそれぞれと画像（これもソーシャル・グラフのノードである）との間にエッジを作成するようにしてもよい。さらに別の例において、ユーザがイベントへの出席を確認した場合は、ユーザおよびイベントは、ユーザ・プロフィール・ストア１３３６から得られるノードであり、イベントへの出席は、アクティビティ・ログ１３４２から読み出し可能なノード間のエッジである。ソーシャル・グラフを生成して保持することにより、ソーシャル・ネットワーキング・システム１３３０は、さまざまな種類のオブジェクトならびにこれらのオブジェクト間の相互作用およびつながりを記述したデータを含み、社会的な関連情報の宝庫となる。
【０１０９】
ウェブ・サーバ１３３２は、ネットワーク１３５０を介して、ソーシャル・ネットワーキング・システム１３３０を１つもしくは複数のユーザ・デバイス１３１０および／または１つもしくは複数の外部システム１３２０にリンクさせる。また、ウェブ・サーバ１３３２は、ウェブ・ページのほか、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ、Ｆｌａｓｈ、ＸＭＬ等の他のウェブ関連コンテンツを提供する。ウェブ・サーバ１３３２は、ソーシャル・ネットワーキング・システム１３３０と１つまたは複数のユーザ・デバイス１３１０との間でメッセージの受信およびルーティングを行うメール・サーバ等のメッセージング機能を含んでいてもよい。メッセージとしては、インスタント・メッセージ、待ち行列型メッセージ（たとえば、電子メール）、テキストおよびＳＭＳメッセージ、またはその他任意の適当なメッセージング・フォーマットが可能である。
【０１１０】
ＡＰＩ要求サーバ１３３４によれば、１つまたは複数の外部システム１３２０およびユーザ・デバイス１３１０は、１つまたは複数のＡＰＩ機能を呼び出すことによって、ソーシャル・ネットワーキング・システム１３３０からのアクセス情報を呼び出すことができる。また、ＡＰＩ要求サーバ１３３４によれば、外部システム１３２０は、ＡＰＩを呼び出すことによって、ソーシャル・ネットワーキング・システム１３３０に情報を送ることができる。一実施形態において、外部システム１３２０は、ネットワーク１３５０を介して、ＡＰＩ要求をソーシャル・ネットワーキング・システム１３３０に送信し、ＡＰＩ要求サーバ１３３４は、このＡＰＩ要求を受信する。ＡＰＩ要求サーバ１３３４は、このＡＰＩ要求と関連付けられたＡＰＩを呼び出して要求を処理することにより、適当な応答を生成し、これをＡＰＩ要求サーバ１３３４が、ネットワーク１３５０を介して外部システム１３２０に伝達する。たとえば、ＡＰＩ要求に応答して、ＡＰＩ要求サーバ１３３４は、外部システム１３２０にログインしたユーザのつながり等、ユーザと関連付けられたデータを収集し、この収集データを外部システム１３２０に伝達する。別の実施形態において、ユーザ・デバイス１３１０は、外部システム１３２０と同じ様態で、ＡＰＩを介してソーシャル・ネットワーキング・システム１３３０と通信する。
【０１１１】
アクション・ロガー１３４０は、ソーシャル・ネットワーキング・システム１３３０上および／またはソーシャル・ネットワーキング・システム１３３０外でのユーザ・アクションに関するウェブ・サーバ１３３２からの通信を受信可能である。また、アクション・ロガー１３４０は、ユーザ・アクションに関する情報をアクティビティ・ログ１３４２に入力することによって、ソーシャル・ネットワーキング・システム１３３０のユーザが該ソーシャル・ネットワーキング・システム１３３０内外で起こしたさまざまなアクションを該ソーシャル・ネットワーキング・システム１３３０が発見できるようにする。ソーシャル・ネットワーキング・システム１３３０上の別のノードに関して特定のユーザが起こした何れのアクションも、アクティビティ・ログ１３４２または類似のデータベース等のデータ・リポジトリに保持された情報によって、各ユーザのアカウントと関連付け可能である。ソーシャル・ネットワーキング・システム１３３０においてユーザが起こす識別および記憶対象のアクションの例としては、たとえば別のユーザへのつながりの追加、別のユーザへのメッセージの送信、別のユーザからのメッセージを読むこと、別のユーザと関連付けられたコンテンツの閲覧、別のユーザが投稿したイベントへの出席、画像の投稿、画像の投稿の試行、または別のユーザもしくは別のオブジェクトと相互作用するその他のアクションが挙げられる。ユーザがソーシャル・ネットワーキング・システム１３３０においてアクションを起こすと、該アクションがアクティビティ・ログ１３４２に記録される。一実施形態において、ソーシャル・ネットワーキング・システム１３３０は、エントリのデータベースとしてアクティビティ・ログ１３４２を維持する。ソーシャル・ネットワーキング・システム１３３０においてアクションが起こされると、該アクションのエントリがアクティビティ・ログ１３４２に追加される。アクティビティ・ログ１３４２は、アクション・ログと称される場合もある。
【０１１２】
また、ユーザ・アクションは、ソーシャル・ネットワーキング・システム１３３０とは別個の外部システム１３２０等、ソーシャル・ネットワーキング・システム１３３０の外部のエンティティ内で起こるコンセプトおよびアクションと関連付けられていてもよい。たとえば、アクション・ロガー１３４０は、外部システム１３２０とのユーザの相互作用を記述したデータをウェブ・サーバ１３３２から受信するようにしてもよい。この例において、外部システム１３２０は、ソーシャル・グラフの構造化されたアクションおよびオブジェクトに従って、ユーザの相互作用を報告する。
【０１１３】
ユーザが外部システム１３２０と相互作用するアクションの他の例としては、外部システム１３２０または別のエンティティに対する関心をユーザが示すこと、外部システム１３２０または外部システム１３２０内のウェブ・ページ１３２２ａに関するコメントをユーザがソーシャル・ネットワーキング・システム１３３０に投稿すること、ユニフォーム・リソース・ロケータ（ＵＲＬ）または外部システム１３２０と関連付けられた他の識別子をユーザがソーシャル・ネットワーキング・システム１３３０に投稿すること、外部システム１３２０と関連付けられたイベントにユーザが出席すること、または外部システム１３２０に関するユーザによるその他任意のアクションが挙げられる。このように、アクティビティ・ログ１３４２には、ソーシャル・ネットワーキング・システム１３３０のユーザとソーシャル・ネットワーキング・システム１３３０とは別個の外部システム１３２０との間の相互作用を記述したアクションを含んでいてもよい。
【０１１４】
承認サーバ１３４４は、ソーシャル・ネットワーキング・システム１３３０のユーザの１つまたは複数のプライバシー設定を強制する。ユーザのプライバシー設定は、ユーザと関連付けられた特定の情報がどのように共有可能であるかどうかを決定する。プライバシー設定には、ユーザと関連付けられた特定の情報の仕様、および情報を共有可能な１つまたは複数のエンティティの仕様を含む。情報を共有可能なエンティティの例としては、他のユーザ、アプリケーション、外部システム１３２０、または潜在的に情報にアクセス可能な任意のエンティティが挙げられる。ユーザが共有可能な情報には、プロフィール写真、ユーザと関連付けられた電話番号、ユーザのつながり、つながりの追加やユーザ・プロフィール情報の変更等、ユーザが起こしたアクション等のユーザ・アカウント情報を含む。
【０１１５】
プライバシー設定の仕様は、さまざまな粒度レベルで提供されていてもよい。たとえば、プライバシー設定は、他のユーザと共有される特定の情報を識別していてもよく、勤務先の電話番号またはプロフィール写真、自宅の電話番号、およびステータスを含む個人情報等の特定の関連情報集合を識別する。または、プライバシー設定は、ユーザと関連付けられたすべての情報に適用可能である。特定の情報にアクセス可能なエンティティ集合の仕様についても、さまざまな粒度レベルで指定可能である。情報を共有できるさまざまなエンティティ集合としては、たとえばユーザのすべての友達、友達のすべての友達、すべてのアプリケーション、またはすべての外部システム１３２０が挙げられる。一実施形態によれば、エンティティ集合の仕様には、エンティティ一覧を含むことができる。たとえば、ユーザは、特定の情報へのアクセスが許可された外部システム１３２０の一覧を提供するようにしてもよい。別の実施形態によれば、仕様には、情報へのアクセスが許可されていない例外と併せてエンティティ集合を含むことができる。たとえば、ユーザは、該ユーザの勤務先情報にすべての外部システム１３２０がアクセスすることを許可するが、該勤務先情報へのアクセスが許可されていない外部システム１３２０の一覧を指定するようにしてもよい。特定の実施形態では、特定の情報へのアクセスが許可されていない例外の一覧を「ブロック・リスト」と称する。ユーザが指定するブロック・リストに属する外部システム１３２０は、プライバシー設定に指定された情報へのアクセスがブロックされる。情報の仕様の粒度および情報が共有されるエンティティの仕様の粒度は、さまざまな組み合わせが可能である。たとえば、すべての個人情報が友達と共有される一方、すべての勤務先情報が友達の友達と共有されるようになっていてもよい。
【０１１６】
承認サーバ１３４４は、ユーザと関連付けられた特定の情報にユーザの友達、外部システム１３２０、ならびに／または他のアプリケーションおよびエンティティがアクセス可能であるかどうかを決定するロジックを含む。外部システム１３２０は、ユーザの勤務先の電話番号等、ユーザのより私的かつ繊細な情報にアクセスするため、承認サーバ１３４４の承認が必要となる場合がある。ユーザのプライバシー設定に基づいて、承認サーバ１３４４は、ユーザが起こすアクションに関する情報等、ユーザと関連付けられた情報に対して、別のユーザ、外部システム１３２０、アプリケーション、または別のエンティティがアクセス可能であるかどうかを決定する。
【０１１７】
いくつかの実施形態において、ソーシャル・ネットワーキング・システム１３３０は、コンテンツ・プロバイダ・モジュール１３４６を含むことができる。コンテンツ・プロバイダ・モジュール１３４６は、たとえば、図１のコンテンツ・プロバイダ・モジュール１０２として実装される。前述したように、多数の変型および他の可能性が可能であることは理解されるべきである。
【０１１８】
ハードウェアの実装態様
上記プロセスおよび特徴は、多種多様なネットワークおよびコンピュータ環境において、多種多様なマシンおよびコンピュータ・システム・アーキテクチャにより実装可能である。図１４は、本発明の一実施形態に係る、本明細書に記載の実施形態のうちの１つまたは複数の実装に使用可能なコンピュータ・システム１４００の一例を示している。コンピュータ・システム１４００には、本明細書に記載のプロセスおよび特徴を該コンピュータ・システム１４００に実行させる命令セットを含む。また、コンピュータ・システム１４００は、他のマシンにつなげられていてもよい（たとえば、ネットワーク化されていてもよい）。ネットワーク配置において、コンピュータ・システム１４００は、クライアント／サーバ・ネットワーク環境におけるサーバ・マシンもしくはクライアント・マシンまたはピア・ツー・ピア（または、分散）ネットワーク環境におけるピア・マシンとして動作するようになっていてもよい。本発明の一実施形態において、コンピュータ・システム１４００は、ソーシャル・ネットワーキング・システム１３００、ユーザ・デバイス１３１０、および外部システム１４２０、またはその構成要素であってもよい。本発明の一実施形態において、コンピュータ・システム１４００は、ソーシャル・ネットワーキング・システム１３３０の全部または一部を構成する多くのサーバのうちの１つであってもよい。
【０１１９】
コンピュータ・システム１４００は、プロセッサ１４０２、キャッシュ１４０４、ならびにコンピュータ可読媒体に記憶され、本明細書に記載のプロセスおよび特徴を対象とした１つまたは複数の実行可能なモジュールおよびドライバを含む。また、コンピュータ・システム１４００は、高性能入出力（Ｉ／Ｏ）バス１４０６および標準Ｉ／Ｏバス１４０８を含む。ホスト・ブリッジ１４１０がプロセッサ１４０２を高性能Ｉ／Ｏバス１４０６に結合させる一方、Ｉ／Ｏバス・ブリッジ１４１２が２つのバス１４０６および１４０８を互いに結合させる。高性能Ｉ／Ｏバス１４０６には、システム・メモリ１４１４および１つまたは複数のネットワーク・インタフェース１４１６が結合されている。コンピュータ・システム１４００は、ビデオメモリおよび該ビデオメモリに結合された表示装置をさらに含んでもよい（図示せず）。標準Ｉ／Ｏバス１４０８には、マス・ストレージ１４１８およびＩ／Ｏポート１４２０が結合されている。コンピュータ・システム１４００は、任意選択として、標準Ｉ／Ｏバス１４０８に結合されたキーボードおよびポインティング・デバイス、表示装置等の入出力装置（図示せず）を含んでいてもよい。これらの要素は総じて、カリフォルニア州サンタクララのインテル・コーポレーション社が製造するｘ８６互換プロセッサ、カリフォルニア州サニーベールのアドバンスト・マイクロ・デバイセズ（ＡＭＤ）社が製造するｘ８６互換プロセッサ、およびその他任意の適当なプロセッサに基づくコンピュータ・システム等、広範囲のコンピュータ・ハードウェア・システムを表すことを意図しているが、これらに限定されない。
【０１２０】
ソフトウェア・アプリケーション（図示せず）に対するデータの入出力等、コンピュータ・システム１４００の動作は、オペレーティング・システムが管理および制御する。オペレーティング・システムは、システム上で実行されるソフトウェア・アプリケーションとシステムのハードウェア構成要素との間のインタフェースを提供する。ＬＩＮＵＸオペレーティング・システム、カリフォルニア州クパチーノのアップル・コンピュータ・インコーポレイテッド社（Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒ  Ｉｎｃ．）から入手可能なＡｐｐｌｅ  Ｍａｃｉｎｔｏｓｈオペレーティング・システム、ＵＮＩＸ（登録商標）オペレーティング・システム、Ｍｉｃｒｏｓｏｆｔ（登録商標）  Ｗｉｎｄｏｗｓ（登録商標）オペレーティング・システム、ＢＳＤオペレーティング・システム等、任意適当なオペレーティング・システムを使用可能である。また、他の実施態様も可能である。
【０１２１】
以下、コンピュータ・システム１４００の要素について、より詳しく説明する。特に、ネットワーク・インタフェース１４１６は、コンピュータ・システム１４００とイーサネット（たとえば、ＩＥＥＥ  ８０２．３）ネットワーク、バックプレーン等の広範なネットワークのいずれかとの間の通信を提供する。マス・ストレージ１４１８は、上記識別された各演算システムにより実装される上記プロセスおよび特徴を実行するデータおよびプログラミング命令の記憶を提供する。一方、システム・メモリ１４１４（たとえば、ＤＲＡＭ）は、プロセッサ１４０２により実行される場合のデータおよびプログラミング命令の一時的な記憶を提供する。Ｉ／Ｏポート１４２０は、コンピュータ・システム１４００に結合し得る付加的な周辺機器間の通信を提供する１つもしくは複数のシリアル通信ポートおよび／またはパラレル通信ポートであってもよい。
【０１２２】
コンピュータ・システム１４００は、多様なシステム・アーキテクチャを含んでいてもよく、コンピュータ・システム１４００のさまざまな構成要素が再配置されるようになっていてもよい。たとえば、キャッシュ１４０４は、プロセッサ１４０２とともにオンチップであってもよい。または、キャッシュ１４０４およびプロセッサ１４０２は、一体的に「プロセッサ・モジュール」としてパッケージングされていてもよく、プロセッサ１４０２は「プロセッサ・コア」と称される。さらに、本発明の特定の実施形態においては、上記構成要素のすべてを必要としなくてもよいし、すべてを含んでいなくてもよい。たとえば、高性能Ｉ／Ｏバス１４０６には、標準Ｉ／Ｏバス１４０８に結合された周辺機器が結合されていてもよい。また、いくつかの実施形態においては、バスが１つだけ存在し、コンピュータ・システム１４００の構成要素がこの単一バスに結合されていてもよい。さらに、コンピュータ・システム１４００は、付加的なプロセッサ、記憶装置、またはメモリ等、付加的な構成要素を含んでいてもよい。
【０１２３】
一般的に、本明細書に記載のプロセスおよび特徴は、オペレーティング・システムまたは特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、もしくは「プログラム」と称される一連の命令の一部として実装されていてもよい。たとえば、本明細書に記載の特定のプロセスは、１つまたは複数のプログラムを用いて実行してもよい。プログラムは通常、１つまたは複数のプロセッサにより読み出されて実行された場合に、本明細書に記載のプロセスおよび特徴を実行する演算をコンピュータ・システム１４００に行わせる１つまたは複数の命令をコンピュータ・システム１４００のさまざまなメモリおよび記憶装置に含む。本明細書に記載のプロセスおよび特徴は、ソフトウェア、ファームウェア、ハードウェア（たとえば、特定用途向け集積回路）、またはこれらの任意の組み合わせに実装されていてもよい。
【０１２４】
一実施態様において、本明細書に記載のプロセスおよび特徴は、分散コンピュータ環境において個別または一括に、コンピュータ・システム１４００が動作させる一連の実行可能モジュールとして実装されていてもよい。上記モジュールは、ハードウェア、コンピュータ可読媒体（または、機械可読媒体）に記憶された実行可能モジュール、または両者の組み合わせによって実現されるようになっていてもよい。たとえば、これらのモジュールは、プロセッサ１４０２等、ハードウェア・システムのプロセッサにより実行される複数の命令または一連の命令を含んでいてもよい。最初は、マス・ストレージ１４１８等の記憶装置に一連の命令が記憶されていてもよい。ただし、一連の命令は、任意適当なコンピュータ可読記憶媒体に記憶可能である。さらに、一連の命令は、ローカルに記憶する必要はなく、ネットワーク・インタフェース１４１６を介して、ネットワーク上のサーバ等のリモート記憶装置から受信することも可能である。命令は、マス・ストレージ１４１８等の記憶装置からシステム・メモリ１４１４への複製の後、プロセッサ１４０２がアクセスして実行する。種々実施態様においては、並列処理環境における複数のサーバ等、１つまたは複数のロケーションの１つまたは複数のプロセッサによって、１つまたは複数のモジュールを実行可能である。
【０１２５】
コンピュータ可読媒体の例としては、揮発性および不揮発性メモリ・デバイス等の記録可能な種類の媒体、ソリッド・ステート・メモリ、フロッピー（登録商標）等のリムーバブル・ディスク、ハードディスク・ドライブ、磁気媒体、光ディスク（たとえば、コンパクト・ディスク・リード・オンリー・メモリ（ＣＤ  ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ））、その他類似する非一時的（または、一時的）の有形（または、無形）記憶媒体、またはコンピュータ・システム１４００による実行によって、本明細書に記載のプロセスおよび特徴のうちのいずれか１つもしくは複数を実行する一連の命令の記憶、符号化、または伝達に適した任意の種類の媒体が挙げられるが、これらに限定されない。
【０１２６】
説明の便宜上、本明細書の十分な理解が得られるように、多くの具体的詳細を示した。ただし、当業者には、これらの具体的詳細がなくても、本開示の実施形態を実現可能であることが明らかとなろう。場合により、モジュール、構造、プロセス、特徴、およびデバイスをブロック図の形態で示すことによって、説明が分かり難くならないようにしている。他の例では、機能ブロック図およびフロー図を示すことにより、データおよび論理の流れを表している。ブロック図およびフロー図の構成要素（たとえば、モジュール、ブロック、構造、デバイス、特徴等）は、本明細書における明示的な説明および図示以外の様態でのさまざまな組み合わせ、分離、除去、並び替え、および置き換えがなされていてもよい。
【０１２７】
本明細書における「一実施形態」、「他の実施形態」、「一連の実施形態」、「いくつかの実施形態」、「種々実施形態」等の言及は、該実施形態に関連して説明した特定の特徴、設計、構造、または特性が本開示の少なくとも１つの実施形態に含まれることを意味する。本明細書のさまざまな箇所における表現「一実施形態において」等の出現は、必ずしもすべてが同じ実施形態を表してはおらず、相互に他の実施形態を除外する別個または別の実施形態でもない。さらには、「実施形態」等の明示的な言及の有無に関わらず、いくつかの実施形態においてはさまざまに組み合わせて包含可能であり、他の実施形態においてはさまざまに省略も可能である種々特徴を記載している。同様に、いくつかの実施形態では選好または要件となり得るが、他の実施形態ではなり得ない種々特徴を記載している。
【０１２８】
本明細書において使用する言語は、主として読み易さおよび教示の便宜上から選択しており、本発明に係る主題を描写または限定するようには選択していない場合がある。したがって、本発明の範囲は、この詳細な説明ではなく、これに基づく用途に由来する任意の請求項によって限定されるものとする。以上から、本発明の実施形態に関する開示は、以下の特許請求の範囲に示す本発明の範囲の例示であり、何ら限定的なものではない。
【図１】
2019527442.tif 000003
【図２】
2019527442.tif 000004
【図３】
2019527442.tif 000005
【図４】
2019527442.tif 000006
【図５】
2019527442.tif 000007
【図６】
2019527442.tif 000008
【図７】
2019527442.tif 000009
【図８Ａ】
2019527442.tif 000010
【図８Ｂ】
2019527442.tif 000011
【図９Ａ】
2019527442.tif 000012
【図９Ｂ】
2019527442.tif 000013
【図９Ｃ】
2019527442.tif 000014
【図１０】
2019527442.tif 000015
【図１１】
2019527442.tif 000016
【図１２】
2019527442.tif 000017
【図１３】
2019527442.tif 000018
【図１４】
2019527442.tif 000019
【国際調査報告】
2019527442.tif 000020
2019527442.tif 000021