(57)【要約】  デジタルオブジェクトの組に関して制限アクセス制御を実施するシステムは、第１の機器を含む。第１の機器は、少なくとも部分的に第１のアクセス制御ルールに基づいて、デジタルオブジェクトの組に含まれている少なくとも第１のデジタルオブジェクトへのアクセスを遮断することを決定し、少なくとも部分的に第２のアクセス制御ルールに基づいて、デジタルオブジェクトの組に含まれている少なくとも第２のデジタルオブジェクトへのアクセスを遮断することを決定し、及び、デジタルオブジェクトの組に含まれているが、第１のデジタルオブジェクトでも第２のデジタルオブジェクトでもない少なくとも第３のデジタルオブジェクトを第１の機器のユーザに提供するように構成されている。【選択図】図４
2019508826.tif 000002
【特許請求の範囲】
【請求項１】
デジタルオブジェクトの組に関して制限アクセス制御を実施するシステムであって、
少なくとも部分的に第１のアクセス制御ルールに基づいて、前記デジタルオブジェクトの組に含まれている少なくとも第１のデジタルオブジェクトへのアクセスを遮断することを決定し、
少なくとも部分的に第２のアクセス制御ルールに基づいて、前記デジタルオブジェクトの組に含まれている少なくとも第２のデジタルオブジェクトへのアクセスを遮断することを決定し、
前記デジタルオブジェクトの組に含まれているが、前記第１のデジタルオブジェクトでも前記第２のデジタルオブジェクトでもない少なくとも第３のデジタルオブジェクトを前記第１の機器のユーザに提供する
ように構成されている第１の機器を備える、システム。
【請求項２】
前記第１の機器は、少なくとも部分的に前記第１のデジタルオブジェクト及び前記第２のデジタルオブジェクトのそれぞれに関連付けられているロックカウントを増加させることによって、前記第１のデジタルオブジェクト及び前記第２のデジタルオブジェクトへのアクセスを遮断するように構成されている、請求項１に記載のシステム。
【請求項３】
前記第１の機器は、少なくとも部分的に前記第１のデジタルオブジェクト、前記第２のデジタルオブジェクト、及び前記第３のデジタルオブジェクトのそれぞれに関連付けられている前記ロックカウントに基づいて、前記第１のデジタルオブジェクトでも前記第２のデジタルオブジェクトでもない前記第３のデジタルオブジェクトを提供するように構成されている、請求項２に記載のシステム。
【請求項４】
前記第１のデジタルオブジェクトへのアクセスを遮断することは、前記第１のデジタルオブジェクトと前記第１のアクセスルールとの間の直接的な関係性に基づいている、請求項１に記載のシステム。
【請求項５】
前記第１のデジタルオブジェクトへのアクセスを遮断することは、前記第１のアクセスルールを考慮した複数のデジタルオブジェクトの検索に基づいている、請求項１に記載のシステム。
【請求項６】
前記第１のデジタルオブジェクトへのアクセスを遮断することは、前記第１のデジタルオブジェクトと前記検索によって識別されたデジタルオブジェクトとの間の関連付けを識別することに基づいている、請求項５に記載のシステム。
【請求項７】
前記識別されたデジタルオブジェクトに関連付けられている前記第１のデジタルオブジェクトは、前記第１のアクセスルールに基づいて識別された前記デジタルオブジェクトから１つ又は複数の属性を継承する、請求項６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本書に記載された様々な実施形態は、デジタルオブジェクトのアクセス制御に係わり、より詳しくは、マスキング制限アクセス制御のためのシステム及び方法に関する。
【背景技術】
【０００２】
従来型のメディアオブジェクトインデキシング技術は、限定されている。たとえば、メディアオブジェクトのライブラリは、各ノードが別々のラベルに対応するツリー階層（たとえば、フォルダ及びサブホルダ、又はアルバム及びサブアルバム）に従って編成されることがある。ツリー（たとえば、フォルダ又はアルバム）内のノードにおけるメディアオブジェクトのメンバーシップは、手動で維持される。それゆえに、ある種の分類（たとえば、場所）から別の分類（たとえば、イベント）へメディアオブジェクトを再分類することは、ライブラリ内のあらゆるメディアオブジェクトの再分類を必要とする。
【０００３】
キーワードベースの分類（たとえば、テキストタグ付け）は、動的アルバム又はフォルダの作成及び維持によりうまく適応することがある。しかしながら、キーワードベースの分類技術は、考えられる限りのタグ置換の追加を手入力することが必要である。それゆえに、単一の場所のため多数のタグ（たとえば、自然、公園、木、草）が追加されなければならないことがある。その上、一部のタグは、曖昧である傾向がある（たとえば、「パリ（Ｐａｒｉｓ）」は、都市名でも人名でもあり得る）。
【０００４】
直接属性に基づく分類（たとえば、Ａｐｐｌｅ（登録商標）ｉＰｈｏto（登録商標））により、ユーザは構成要素のメディアオブジェクトに関連している直接属性に基づく動的アルバムを作成することができる。たとえば、アルバムは、あるタイムフレーム（たとえば、２０１３年４月１１日から２０１４年５月５日まで）からのあらゆる写真を含むことができる。しかしながら、直接属性システムは、不十分なユーザ・インターフェース（ＵＩ）しか提供せず、直接属性に基づいて行われる検索に著しい制限を課す。
【０００５】
制限付き意味タグ付け（たとえば、Ｆａｃｅｂｏｏｋ（登録商標）タグ付け）は、制限された間接属性の組に基づいてメディアオブジェクトの動的分類を提供する。具体的には、タグは、メディアオブジェクトに関して存在することがある様々な種類の関係を区別しない。たとえば、写真内でタグ付けされた人物は、写真内に現れ、写真の内容に関心があり、又は、写真の創作者である可能性がある。
【０００６】
完全自動化メディアオブジェクトインデキシング技術は、概して、不正確である。たとえば、画像認識システムは、メディアオブジェクトに描かれた総称オブジェクト（たとえば、靴）を識別するときでさえ７０％の成功率しかない。これらのシステムは、さらにメディアオブジェクトに関して関係（たとえば、靴の所有者、設計者、及び／又は小売業者）を判定することができない。それに反して、メディアオブジェクトをインデックス化する手動方法は、退屈であり、間違いを起こしやすい傾向があると共に、ほとんどユーザにインセンティブを与えない。
【０００７】
必要とされるのは、高度検索及び閲覧機能を支援することができる、メディアオブジェクトをインデックス化するシステム及び方法である。
【発明の概要】
【０００８】
マスキング制限アクセス制御のためのシステム及び方法が提供される。様々な実施形態によれば、マスキング制限アクセス制御のためのシステムは、少なくとも部分的に第１のアクセス制御ルールに基づいて、デジタルオブジェクトの組に含まれている少なくとも第１のデジタルオブジェクトへのアクセスを遮断することに決定するように、少なくとも部分的に第２のアクセス制御ルールに基づいて、デジタルオブジェクトの組に含まれている少なくとも第２のデジタルオブジェクトへのアクセスを遮断することに決定するように、及び、デジタルオブジェクトの組に含まれているが、第１のデジタルオブジェクトでも第２のデジタルオブジェクトでもない少なくとも第３のデジタルオブジェクトを第１の機器のユーザに提供するように構成されている第１の機器を含む。本発明の概念の他の特徴及び利点は、一例として本発明の概念の態様を例示する以下の説明から明らかであろう。
【０００９】
デジタルプラットフォームのデジタルオブジェクトをキュレートするシステム及び方法が提供される。様々な実施形態によれば、オブジェクトスタンピング・ユーザ・インターフェースのためのシステムは、各デジタルオブジェクトの意味情報を識別するためにデジタルプラットフォームのデジタルオブジェクトをインデックス化し、マッチング意味情報に基づいて複数のデジタルオブジェクトを関連付けるように構成されているデジタルプラットフォームを含む。
【００１０】
本発明の概念の他の特徴及び利点は、一例として本発明の概念の態様を例示する以下の説明から明らかであろう。
【００１１】
本発明の概念の上記態様及び特徴とその他の態様及び特徴は、添付図面を参照して実施形態例を記載することによって一層明らかになるであろう。
【図面の簡単な説明】
【００１２】
【図１】様々な実施形態によるネットワーク環境を示すネットワーク図である。
【図２】様々な実施形態による意味インデキシングを示す図である。
【図３】様々な実施形態によるスタンピング・ユーザ・インターフェースを示す図である。
【図４】様々な実施形態によるスタンピングプロセスを示すフローチャートである。
【図５】様々な実施形態によるスタンプへの関連付けを追加するプロセスを示す図である。
【図６】様々な実施形態によるオブジェクトセレクタを示す図である。
【図７Ａ】様々な実施形態による関連付けセレクタを示す図である。
【図７Ｂ】様々な実施形態による単一及び多重関連付け選択を示す図である。
【図８】様々な実施形態によるビジュアルインターフェースを示す図である。
【図９】様々な実施形態によるビジュアル閲覧メニューを示す図である。
【図１０】様々な実施形態による選択基準を示す図である。
【図１１】様々な実施形態による新しい検索セレクタを追加するプロセスを示す図である。
【図１２】様々な実施形態によるファセットナビゲーションインターフェースを示す図である。
【図１３】様々な実施形態によるファセット表示選択を示す図である。
【図１４】様々な実施形態によるファセット表現を示す図である。
【図１５】様々な実施形態による制限付き離散インデックスを示す図である。
【図１６】様々な実施形態による簡略派生インデックスを示す図である。
【図１７】様々な実施形態によるファジー派生インデックスを示す図である。
【図１８】様々な実施形態によるマルチモード制御スイッチを示す図である。
【図１９Ａ】様々な実施形態によるマルチモードＵＩを示す図である。
【図１９Ｂ】様々な実施形態によるマルチモードＵＩを示す図である。
【図１９Ｃ】様々な実施形態によるマルチモードＵＩを示す図である。
【図２０】様々な実施形態によるデータアクセス計算を示す図である。
【図２１】様々な実施形態によるアクセス制御を実施するプロセスを示す図である。
【図２２】様々な実施形態によるアクセス制御ルール状態への自動変更を示す図である。
【図２３】様々な実施形態によるアクセス制御ルール状態への手動変更を示す図である。
【図２４】様々な実施形態による集中サーバベースの同期化を示す図である。
【図２５】様々な実施形態によるピア・ツー・ピア同期化を示す図である。
【図２６】様々な実施形態による階層同期化を示す図である。
【図２７】様々な実施形態によるアクセス制御ルールカスケードを示す図である。
【図２８】様々な実施形態によるピア・ツー・ピア閲覧セッションを示す図である。
【図２９】様々な実施形態によるピア・ツー・ピア閲覧を起動するプロセスを示す図である。
【図３０】様々な実施形態によるビジュアルアクセスコードを設定するプロセスを示す図である。
【図３１】ビジュアルアクセスコードと共に使用するためのロックコード管理インターフェース例を示す図である。
【図３２】実施形態例によるビジュアルアクセスコードを設定するフロー例を示す図である。
【図３３】様々な実施形態によるユーザ識別子を写真選択マッピングにマッピングするプロセス例を示す図である。
【図３４】様々な実施形態による一意ユーザ１６進ダイジェスト例を示す図である。
【図３５】実施形態例によるビジュアルアクセスコードを割り当てる登録プロセス例を示す図である。
【図３６】実施形態例によるパスワードを使ってビジュアルアクセスコードをエンコードするプロセス例を示す図である。
【図３７】様々な実施形態によるモバイルインターフェース例を示す図である。
【図３８】実施形態例によるビジュアルアクセスコードを入力する実装例を示す図である。
【図３９Ａ】様々な実施形態によるウェブサイト上の仮想入力方法の実装例を示す図である。
【図３９Ｂ】様々な実施形態によるウェブサイト上の仮想入力方法の実装例を示す図である。
【図３９Ｃ】様々な実施形態によるウェブサイト上の仮想入力方法の実装例を示す図である。
【図４０】様々な実施形態による画像融合プロセスを示す図である。
【図４１】様々な実施形態によるホットスポット位置シフトの実装例を示す図である。
【図４２】様々な実施形態による有線又は無線システムを示すブロック図である。
【発明を実施するための形態】
【００１３】
ある特定の実施形態が記載されているが、これらの実施形態は、一例としてのみ提示され、保護範囲を制限することは意図されていない。本書に記載された方法及びシステムは、多種多様な他の形式でも具現化されることがある。さらに、本書に記載された方法例及びシステム例の形式で様々な省略、置換、及び変更が保護範囲から逸脱することなくなされることがある。
【００１４】
図１は、様々な実施形態によるネットワーク環境１００を示すネットワーク図である。図１を参照すると、ユーザ機器１１０は、メディアプラットフォーム１２０と通信する。ユーザ機器１１０は、有線若しくは無線接続を通じてメディアプラットフォーム１２０と通信できる、又は、通信させることができるいずれの機器でもよい。たとえば、ユーザ機器１１０は、たとえば、限定されることはないが、スマートフォン、ウェアラブル機器、タブレット型パーソナルコンピュータ（ＰＣ）、ラップトップ、デスクトップ型ＰＣ、パーソナルエンタテインメントシステム、及び組み込み型処理システムを含む、有線若しくは無線通信機器でもよい。
【００１５】
ユーザ機器１１０は、通信ネットワーク１３０を介してメディアプラットフォーム１２０と通信する。様々な実施形態では、通信ネットワーク１３０は、１つ又は複数の有線及び／又は無線接続を表している。たとえば、通信ネットワーク１３０は、たとえば、限定されることはないが、有線及び／又は無線ローカル・エリア・ネットワーク（ＬＡＮ）と、有線及び／又は無線ワイド・エリア・ネットワーク（ＷＡＮ）と、これらの何らかの組み合わせとを含むことがある。
【００１６】
メディアプラットフォーム１２０は、ローカルデータストア１２５と通信結合されることがある。加えて、メディアプラットフォーム１２０は、たとえば、限定されることはないが、第１のデータソース１４０及び第２のデータソース１５０を含む複数のリモート及び／又はサード・パーティー・データソースとさらに通信することがある。
【００１７】
関連付けモデル
【００１８】
意味インデキシング
【００１９】
様々な実施形態では、メディアプラットフォーム１２０は、メディアオブジェクトを、たとえば、限定されることなく、属性、関係性、及び分類を含む意味情報と関連付けることができる。意味情報は、各々が属性、関係性、及び／又は分類の個別の組を提供する１つ又は複数のオブジェクト（すなわち、他のメディアオブジェクトを含んでいる）から継承され得る。
【００２０】
たとえば、１つのメディアオブジェクト（たとえば、写真）は、笑顔のビル・ゲイツを描写することができる。メディアオブジェクトは、人物としてのビル・ゲイツの全ての属性、及び、ビル・ゲイツが他の人物と結んでいる関係性（たとえば、年齢、起業家、インフルエンサー、億万長者、慈善家、父親、家庭的な男、技術屋、米国人など）を継承することができる。笑顔は、ビル・ゲイツが写真の中に登場し、機嫌が良かったことを示唆する。
【００２１】
ジョン・スミスは、ビル・ゲイツを描写するメディアオブジェクト（たとえば、写真）のコンテンツに興味があるかもしれない。それゆえに、メディアオブジェクトは、ジョン・スミスが写真の中に描写されていないとしても、人物としてのジョン・スミスの全ての属性、及び、ジョン・スミスが他の人物と結んでいる関係性をさらに継承できる。
【００２２】
別の実施例として、メディアオブジェクト（たとえば、ビデオ）は、事故後に、Ａｌｉｃｅに所属する車両を描写することができる。メディアオブジェクトは、Ａｌｉｃｅの車の全ての属性（たとえば、メーカー、モデル、年式、走行距離、及び保守記録）を継承することができ、これらは、サード・パーティー・ソース（たとえば、Ｃａｒｆａｘ（登録商標））によって決定することができる。メディアオブジェクトは、たとえば、限定されることなく、Ａｌｉｃｅの運転記録、本業、及び略歴を含むＡｌｉｃｅに関する全ての属性をさらに継承することができる。加えて、メディアオブジェクトは、特定の事故に関する全ての属性（たとえば、些細な事故又は重大事故としての分類）をさらに継承できる。
【００２３】
様々な実施形態では、メディアプラットフォーム１２０は、メディアオブジェクトが対応する意味情報のいずれかによって検索されることを可能にする。たとえば、ビル・ゲイツを描写するメディアオブジェクトは、笑顔の５０歳男性の写真の検索を通じて見つけられることがある。同様に、Ａｌｉｃｅの自動車事故のビデオは、事故に巻き込まれた女性によって所有される車のビデオの検索を通じて見つけられることがある。
【００２４】
メディアオブジェクトは、たとえば、限定されることなく、テキスト及びマルチメディア（たとえば、写真、ビデオ）ファイルを含むどんな種類のコンピュータ記憶ファイルでもよいことが理解されるべきである。
【００２５】
図２は、様々な実施形態による意味インデキシングを示す。図２を参照すると、メディアオブジェクト（たとえば、車両の写真）は、たとえば、限定されることはないが、手動関連付け２及び自動関連付け４を含む複数の意味情報と関連付けられ得る。様々な実施形態では、メディアプラットフォーム１２０は、メディアオブジェクトのメタデータに含まれる地理位置情報に基づいて、自動関連付け２を生成し、追加することができる。手動関連付け２及び自動関連付け４に基づいて、メディアオブジェクトは、たとえば、限定されることはないが、所有権（たとえば、ボブ・スミス）及び場所（たとえば、ヨルダン中学校駐車場）を含む複数の他の関係性を継承することができる。
【００２６】
自動関連付けモデル
【００２７】
様々な実施形態では、自動関連付けは、メディアオブジェクトに追加され得る。たとえば、自動関連付けは、地理位置及び／又はタイムスタンプに基づいて生成され得る。自動関連付けは、現在イベント（たとえば、展示会、休日、個人の誕生日など）及び天候（たとえば、雨、雪、嵐）に基づいて生成され、メディアオブジェクトに追加されることもあり得る。一部の実施形態では、自動関連付けの確実性が一定の閾値を下回る場合、自動関連付けは、確認のためユーザに提示される可能性がある。
【００２８】
拡張意味情報
【００２９】
様々な実施形態では、メディアプラットフォーム１２０は、新しい意味情報をメディアオブジェクトに追加することができ、これにより、メディアオブジェクトが新しい意味情報に基づいて検索されることができる。たとえば、ボブ・スミスが引退する場合、ボブ・スミスの車両を描写するメディアオブジェクトは、「引退した人物によって所有される車の写真」として検索可能である。
【００３０】
メディアオブジェクトは、メディアオブジェクトとの既存の関連付けを有するオブジェクトに追加された新しい意味情報に基づいてさらに検索可能である。たとえば、ボブ・スミスの息子であるチャーリー・スミスがオブジェクトとして追加され、チャーリー・スミスがヨルダン中学校の生徒である場合、ボブ・スミスの車両を描写するメディアオブジェクトは、「生徒の両親によって所有される車の写真」としても検索可能である。
【００３１】
意味インデキシングのためのシステムは、メディアプラットフォームを含む。様々な実施形態では、メディアプラットフォームは、第１の意味情報の組に関連付けられている第１のメディアオブジェクトを受信し、第１のメディアオブジェクトを第２の意味情報の組に関連付けられている第２のメディアオブジェクトと関連付けるように構成されている、１台又は複数のハードウェアプロセッサを備えることがある。
【００３２】
実装例によれば、第１のメディアオブジェクトは、第２のメディアオブジェクトに関連付けられた第２の意味情報の組を継承する。第１の意味情報の組及び第２の意味情報の組は、各々に属性、関係性、及び分類のうちの少なくとも１つを含むことができる。１台又は複数のハードウェアプロセッサは、付加的な意味情報を自動生成し、自動生成された意味情報を第１のメディアオブジェクトと関連付けるように構成され得る。１台又は複数のハードウェアプロセッサは、少なくとも部分的に第１のメディアオブジェクトに関連付けられている地理位置及びタイムスタンプのうちの１つ又は複数に基づいて付加的な意味情報を自動生成するように構成され得る。
別の実装例によれば、１台又は複数のハードウェアプロセッサは、ユーザから付加的な意味情報を受信し、ユーザから受信された付加的な意味を第１のメディアオブジェクトと関連付けるように構成されている。たとえば、ユーザは、第１のメディアオブジェクトと第３の意味情報の組に関連付けられている第３のメディアオブジェクトとの間の関連付けを指し示すことによって少なくとも部分的に付加的な意味情報を提供することができる。別の実施例では、ユーザは、第１のメディアオブジェクトと属性、関係性、及び分類のうちの１つ又は複数との間の関連付けを指し示すことによって少なくとも部分的に付加的な意味情報を提供する。
【００３３】
人間主体の関連付けインターフェース
【００３４】
様々な実施形態では、メディアプラットフォーム１２０は、ユーザが意味情報をメディアオブジェクトに素早く加えることができるユーザ・インターフェース（ＵＩ）を提示する。
【００３５】
スタンピング・ユーザ・インターフェース
【００３６】
メディアプラットフォーム１２０により、ユーザはスタンピングＵＩ  ３００を使用して意味情報をメディアコンテンツに割り当てることができる。様々な実施形態では、スタンピングＵＩ  ３００により、ユーザが１回のクリックを使用して意味情報を複数のメディアオブジェクトに割り当てることができる。スタンピングＵＩ  ３００は、追加されるべき意味情報のカテゴリ、ソース、又は値を表示するスタンプエリア４を提供する。一実装例では、ユーザは、リスト２からターゲットメディアオブジェクトをクリックし、スタンプエリア４は、ターゲットメディアオブジェクトの解析に基づいて意味情報のリストを推奨する。ターゲットメディアオブジェクトの解析は、オブジェクト認識、メタデータ解析、及び、ターゲットメディアアイテムに関連付けられた他のメディアアイテムの意味情報を検査することを含む可能性がある。ユーザは、スタンプエリア４内に推奨された意味情報のリストを編集する選択権があり、推奨情報の組全体を受け入れることができる。たとえば、ユーザによる１回のクリックは、スタンプエリア４に表示された意味情報の組を使ってターゲットメディアオブジェクトにスタンプを押すことができる。
【００３７】
スタンプエリア４は、他の関連付けとは独立に追加されることがある個別の関連付け６を含む可能性がある。スタンプエリア４は、関連付けテンプレート８をさらに含む可能性がある。スタンプ関連付けテンプレート８は、一般的に使用されている関連付けに基づいて構成された意味カテゴリのグループを含む可能性がある。スタンプ関連付けテンプレート８を選択することは、テンプレート内のカテゴリごとに意味情報の組を割り当てる。たとえば、ホームスタンプ関連付けテンプレートは、ターゲットメディアオブジェクトを自宅に関連付けられている他のメディアオブジェクトと関連付け、自宅の地理的位置に対する意味情報を追加し、ホームカテゴリの一部でもある人物との関係性を追加する、等々である。スタンプ関連付けテンプレート８は、一般的に使用される関連付けのため繰り返される使用に対して予め構成され得る。
【００３８】
実施形態例によれば、意味インデキシングのためのシステムは、各メディアオブジェクトの意味情報を識別するためにメディアプラットフォームのメディアオブジェクトをインデックス化し、マッチング意味情報に基づいて複数のメディアオブジェクトを関連付けるように構成されている１台又は複数の処理機器を備えたメディアプラットフォームを含む可能性がある。実施例では、処理装置は、スタンプテンプレートと共通している意味情報を求めてメディアオブジェクトのインデックスを検索し、検索に基づいて、処理機器は、対応するメディアオブジェクトを共通意味情報に基づいてソートし、ユーザによるキュレーションのため、ソートされたメディアオブジェクトを提示する。一部の実施形態では、処理機器は、関連付けを１つ又は複数のメディアオブジェクトに適用するための共通意味情報を備える関連付けのスタンプテンプレートを生成する。たとえば、キュレーションは、スタンプテンプレート又は１つ若しくは複数のその他の関連付けを適用することを含む可能性がある。スタンプテンプレートは、関連付けの意味情報を修正するために編集することができ、複数の関連付けを含む可能性がある。一部の実施形態では、システムは、ユーザが１回の選択に基づいて選択されたスタンプテンプレートから複数のメディアオブジェクトに関連付けを適用することによってメディアプラットフォームのメディアオブジェクトをキュレートすることが可能なスタンプテンプレートとのインターフェースを含む。実施例では、処理機器は、１つ又は複数のメディアオブジェクトと関連付けるためにユーザ入力から付加的な意味情報を受信する。
【００３９】
スタンピングワークフロー
【００４０】
図４は、様々な実施形態によるスタンピングのためのプロセス４００を示すフローチャートである。図４を参照すると、様々な実施形態では、プロセス４００は、メディアプラットフォーム１２０によって実行することができる。
【００４１】
様々な実施形態では、プロセス４００は、データ収集モードが選択されたときに実行される。このため、メディアプラットフォーム１２０は、少なくとも一部の特定の関連付けのための付加的な情報をスタンプ内に収集することができる。すなわち、共通の意味情報をもつオブジェクトが識別され、共通の意味情報は、関連付けとしてグループ化される。共通の意味情報のグループ化は、テンプレートを形成する可能性がある。意味情報のクループ化がスタンピング動作によって付随させられ、実際のメディアオブジェクトがシステム内に定義される。関連付けは、共通の意味情報をもつオブジェクト間に関係性を形成し、修正が伝搬できるようにする可能性もある。
【００４２】
たとえば、ユーザが画面表示６に表されたメディアオブジェクトをクリックするとき、画面表示８は、スタンプが食料品関連付けを含む、という判定に応答して現れる。画面表示８では、ＵＩは、食料に関する情報を収集することを可能にする。画面表示８は、オブジェクトテンプレート型に特有である。ユーザが保存機能を作動させた後、新しいオブジェクトが作成（又は記憶）され、関連付けがこのオブジェクトに割り当てられる。
【００４３】
代替的に、データ収集モードが選択されていない場合、ユーザは、メディアオブジェクトをクリックすることができ、スタンプエリア４内の他のオブジェクトは、メディアオブジェクトと関連付けられる。
【００４４】
様々な実施形態では、２つのワークフローは、メディアプラットフォーム１２０の多重定義アプローチの一部である。メディアプラットフォーム１２０は、ユーザによって指定されたとおりに徐々に情報を収集することができる。有利であるのは、ユーザは、ビジュアル検索を使用した当該情報に基づいて検索能力が高められるので、追加情報を入力するために労力を費やすことが奨励される。
【００４５】
関連付け選択インターフェース
【００４６】
様々な実施形態では、ユーザは、メディアオブジェクトのコンテンツを識別し、意味情報をメディアオブジェクトと関連付け、関連付けのタイプを選択することがある。ユーザが別のメディアオブジェクトのコンテンツをターゲットメディアオブジェクトと関連付けると、ターゲットメディアオブジェクトは、他のメディアオブジェクトのコンテンツの他の関連付けを継承する。有利であるのは、ユーザがコンテンツを効率的に識別し、高い精度でメディアオブジェクトと関連付けることができることである。図４は、ワールドオブジェクトをメディアコンテンツと関連付けるデータ収集プロセス例のフローチャートを示す。
【００４７】
図５は、様々な実施形態による関連付けをスタンプに追加するプロセス５００を示す。図５を参照すると、プロセス５００は、メディアプラットフォーム１２０によって実行されることがある。画面表示２では、ユーザは、キュレートされるメディアオブジェクトを検査することができる。スタンプの観点から、ユーザは追加される関連付けを見ることができる。スタンプの観点で、ユーザは、写真を選択する（たとえば、クリックする、触れる、等々）によりメディアオブジェクトをスタンプ化することができ、スタンプ内の全ての関連付けが写真に追加されることになる。代替的に、ユーザは、新しい関連付けをスタンプに追加することを選択することができる。
【００４８】
ユーザがスタンピングモードボタンをクリックするのに応答して、プロセスは、画面表示４の提示へ進み、メニューにより、ユーザは新しい関連付けを追加することを様々なプロセスから選択することができる。たとえば、一部の実施形態では、ユーザは、画面表示６を介してオブジェクトタイプを選択することにより新しい関連付けを追加することができる。ユーザがオブジェクトタイプを選択するとき、ＵＩは、選択されたオブジェクトタイプに基づいてオブジェクト候補の検索可能リストを提示する画面表示８（すなわち、オブジェクト選択画面）に切り替わる。ユーザは、追加するオブジェクトを検索することができる。一部の実施形態では、画面表示８は、容易なナビゲーションを提供するためにスタンプアイコンを含む。
【００４９】
特定のオブジェクトを選択し次第、関連付け選択画面表示１０が提示され、ユーザはこのオブジェクトのための関連付けをさらに選択することができる。ユーザは、関連付け操作を完了することなく、取り消し又は戻ることを選択できる。代替的に、ユーザは、スタンピング操作を完了するために関連付け選択画面表示１０上で１つ又は複数の関連付けを選択することができる。関連付け選択画面１０の後に続いて、又は、代わりに、ＵＩは、関連付けを完了するために、たとえば、画面表示１２に描かれているような付加的な確認制御（たとえば、保存、取り消しなど）を提供する。
【００５０】
図６は、様々な実施形態によるオブジェクトセレクタ６００を示す。ユーザは、オブジェクトタイプを選択し、関連付ける様々なオブジェクトの検索を開始することができる。ＵＩ  ６００は、オブジェクトが既にスタンプにロードされていることをユーザに通信するために、既存のスタンプを表示する関連付けスタンプを表示する。
【００５１】
関連付け選択
【００５２】
ユーザが関連付け編集モードを開始するためにメニューボタンをクリックしたとき、ユーザは、様々な方法で関連付けをスタンプに追加するために選択することができる。たとえば、ユーザは、最近の関連付けのリストから選択することができる。別の実施例では、ユーザは、以前に設定された関連付けテンプレートから選択することができる。各テンプレートは、ユーザによって入力された関連付けのグループである。たとえば、テンプレートは、「遊んでいる赤ちゃんＪｉｍ」、「プロジェクトＸ」、又は「プロジェクトＹの経費領収書」を含む可能性がある。一部の実施形態では、メディアプラットフォーム１２０により、ユーザは一定数のテンプレートを定義し、編集することができる。限定された数の設定可能なテンプレートがあることにより、ユーザは、テンプレート管理システムを用いることなく、予め設定されたテンプレートに容易にアクセスすることができる。
【００５３】
代替的に、ユーザは、ユーザが関連付けを選択するためにオブジェクトタイプを閲覧することができるワールドオブジェクトタイプを選択することができる。付加的に、ユーザは、アプリケーション作者によって設定された一般的な関連付けのような共通の関連付けから選択することができる。たとえば、サムネイルを利用するアプリケーションは、一時的な写真関連付けを使用することがある。
【００５４】
関連付けピッカーフロー
【００５５】
ワールドオブジェクトとメディアオブジェクトとの間の関連付けタイプ選択を合理化するために、メディアプラットフォーム１２０は、ユーザが１つ又は複数の関連付けを抜き取ることができる最適化された関連付けセレクタを提供する。図７Ａは、実施形態例による関連付けセレクタ７００を示す。
【００５６】
たとえば、１つの関連付けを選択するために、ユーザは、関連付けボタン又はチェックボックス（たとえば、選択範囲）をクリックすることができ、これが関連付け選択を完了する。複数の関連付けを選択するために、ユーザは、チェックボックス（たとえば、選択範囲）をクリックすることができ、関連付けダイアログボックスは、多重選択ダイアログボックスとして機能する。図７Ｂは、実施形態例による単一及び多重関連付け選択を示す。
【００５７】
関連付け検索
【００５８】
メディアプラットフォーム１２０は、ユーザが関連付けを徐々に追加することを可能にする。その上、メディアプラットフォーム１２０により、ユーザはより高速な関連付けのため共通パラメータを伴うアーティファクトを素早くグループ化することができる。様々な実施形態では、メディアプラットフォーム１２０は、マルチモード・ユーザ・インターフェースを介して関連付けプロセスを検索プロセスと連結する。マルチモード・ユーザ・インターフェースを使用して、ユーザは、関連付けと検索を素早く切り替えることができ、その逆もできる。この素早い切り替えにより、以下のシナリオが可能になる。
【００５９】
ユーザが関連付けを追加している間に、ユーザは、利用可能なメディアオブジェクトの数を制限する又は数にフィルタをかけるために検索モードに切り替えることができる。このため、ユーザは、既に追加された意味情報又はタイムスタンプのような簡単な属性に対して検索を行う。
【００６０】
ユーザが検索している間に、ユーザは、一部の意味情報が失われていると判定することがある。このとき、ユーザは、第１のレベルのメニューを介してスタンピングモードに素早く切り替え、より多くの関連付けをメディアオブジェクトに追加し始めることができる。
【００６１】
インターフェースは、ユーザが徐々に増加する方式で要望通りに多くの情報を追加できるようにして、認識される作業及び努力の量を削減する。その上、ＵＩにより、ユーザは新たに追加された意味情報を使用して探索を開始することができるため、ユーザは、新たに追加された情報の恩恵を直ちに認識することができる。
【００６２】
階層ビジュアル多面的検索
【００６３】
様々な実施形態では、メディアプラットフォーム１２０は、提示されたメディアが満たす基準をユーザが素早く一瞥することができるビジュアルインターフェースを提供する。選択基準は、特定のエリアに表示され得る。加えて、インターフェースは、より多くのスースペースをユーザに与えるために通常モード及び最小化モードをもつ。図８は、様々な実施形態によるビジュアルインターフェース８００を示す。最小化モードでは、ユーザは、読込専用モードであり、様々なセレクタと相互作用できない。
【００６４】
様々な実施形態では、セレクタのグループとして問い合わせを提示することは、エンドユーザへの概念を簡略化する。さらに、セレクタの相対的な位置が重要であり、ユーザは、これらの順序を入れ替えることができる。
【００６５】
図９は、様々な実施形態によるビジュアル閲覧メニュー９００を示す。図９を参照すると、様々な実施形態では、ユーザが通常モードにおいて中央のメニューボタンをクリックしたとき、メディアプラットフォーム１２０は、第１のレベルのメニュービュー２を提示する。このメニューは、ユーザが２レベル階層のファセット分類を閲覧することを可能にする。メニューボタンの１回のクリックは、第１のレベルのファセットカテゴリを提示し、これは、ユーザが第２のレベルのメニュービュー４に進むことを可能にする。第２のレベルのメニュービュー４では、ユーザは、様々なメディアオブジェクトに関する情報が与えられる。ユーザは、複数年（たとえば、２００８年、２０１０年及び２０１２年、しかし、２０１１年を除く）からの複数のメディアオブジェクトが存在かどうかを判定し、３月から８月までのメディアオブジェクトを見るためにフィルタをかけることができる。並行して、インターフェースは、データを抜き取るために使用されるセレクタを表示する。
【００６６】
セレクタ
【００６７】
図１０は、様々な実施形態による選択基準１０００を示す。図１０を参照すると、選択基準１０００は、ユーザによって構築される可能性がある。図１０に示されたとおり、ファセットごとに複数のセレクタ２が存在し得る。セレクタ２は、どのファセット値が探索のため使用されるかを指定することができる。選択基準１０００は、ＮＯＴ基準４及びＭＵＳＴ基準６を含む可能性があり、これらはどちらも単一値セレクタとなり得る。選択基準１０００は、地図場所基準８及び値範囲基準１０をさらに含む可能性があり、これらはどちらもＯＲ基準となり得る（すなわち、地図場所基準８及び値範囲基準１０のうちの少なくとも一方が真でなければならない）。有利であるのは、ユーザは、検索のため使用されている基準を素早く一瞥し、理解することができることである。
【００６８】
新しい検索セレクタ追加
【００６９】
図１１は、様々な実施形態による新しい検索セレクタを追加するプロセス１１００を示す。図１１を参照すると、ユーザは、ユーザをファセット閲覧モード４に導くオープンメニュー２をクリックする。ユーザが特定のファセットを使用して検索することを決定したとき、ユーザは、このファセットをセレクタエリアにドラッグすることができる。ドラッグ動作は、ユーザが既存のセレクタと相対的にセレクタを配置することを可能にするので重要である。セレクタがドラッグ・アンド・ドロップされると、ダイアログボックス６は、ユーザがより詳細に選択項目を編集できるようにするために表示される。ダイアログボックス６は、ファセットタイプごとに異なるＵＩを表示することがある。大型インターフェースを表示する目的は、様々な選択肢をユーザに表示するためにコンピュータアプリケーション設計者により大きいスペースを与えるためである。さらに、大型インターフェースは、小さいスペースを扱わなければならないフラストレーションからユーザを救う。ダイアログボックス６内で、ユーザは、異なるファセット値又は値の範囲に対してＡＮＤ、ＯＲ及びＭＵＳＴ基準を指定することができる。ユーザが承認をクリックすると、新たに追加されたセレクタが画面表示８内に提示される。
【００７０】
ファセットナビゲーション
【００７１】
図１２は、様々な実施形態によるファセットナビゲーションインターフェース１２００を示す。
【００７２】
ユーザは、第１のレベルのファセットカテゴリのうちの１つを選択することによってファセットに沿って進むことができる。たとえば、第１のレベルのファセットカテゴリは、いくつかの（たとえば、５つの）主グループに分割され得る。グループは、たとえば、誰、何、いつ、どこ、及びどのように、に関する検索対象であるメディアオブジェクトに特有のものである。ユーザが第１のレベルのファセットカテゴリのうちの１つをクリックしたとき、第２のレベルのファセットカテゴリは、ユーザの検索を簡略化するために表示され得る。たとえば、第１のレベルのファセットカテゴリ「いつ」の下で、たとえば、限定されることはないが、特定の日付、天候条件、イベントタイプ、及びイベント名を含む複数の第２のレベルのファセットカテゴリが存在する可能性がある。一つの例示的な実施形態では、各最上位レベルのカテゴリは、カテゴリを強調し、識別するのに役立つように、異なった色を有する。
【００７３】
ユーザが第２のレベルのファセットカテゴリをクリックしたとき、インターフェースは、ユーザのメディアオブジェクトに存在する利用可能なファセット及びファセット値を表示する。一部の実施形態では、第２のレベルのファセットカテゴリは、制限のない値をもつ単一のファセットを含む可能性がある。有利であるのは、ファセットナビゲーションインターフェースは、メディアオブジェクトのメタデータを素早く一瞥する方法を提供することである。ファセットナビゲーションインターフェースは、ユーザが好奇心によって決定されたメタ情報に基づいてメディアコレクションを探索することを可能にする。ユーザは、見当たらないメタデータを特定するようにさらに促される可能性がある（たとえば、ユーザは、スタンピングモードに切り替え、見当たらない情報を追加することができる）。その上、ファセットナビゲーションインターフェースは、ユーザがメディアライブラリ内で入手できないメディアを要求し始めるために統一されたインターフェースを提供する。たとえば、ユーザが、メディアライブラリがある一定のメディアオブジェクト（たとえば、昨年のユーザのいとこの誕生日からの写真）を見逃していることを見つけた場合、ユーザは、見当たらないメディアオブジェクトのリクエストを開始するためにこのインターフェースを使用することができる。
【００７４】
ファセット表示セクション
【００７５】
図１３は、様々な実施形態によるファセット表示セクション１３００を示す。図１３を参照すると、ファセット表示セクション１３００は、ファセットが対応する値をもつかどうかとは無関係に、特別なファセットカテゴリ内にファセットを表示する。値をもっていないファセットを表示することにより、ユーザは、ユーザが現在見ているメタデータオブジェクトのコレクションに関して何が見当たらないかに気付くことができる。たとえば、ユーザは、ファセット表示セクション１３００から職業ファセットも性別ファセットも値が与えられていないことを観察することができる。
【００７６】
システムは、ファセットに値が関連付けられていないことを判定したことに応答してファセットを表示することがある。値のないファセット又は検索ヒットがないことを提示することは、バックグラウンド検索によって、ファセットがデータセットに役立たないと判定されたことをユーザに伝える。空のファセットは、意味データが１つ若しくは複数のデータオブジェクトから見当たらないこと、又は、データオブジェクトが利用できないこともユーザに伝える。この場合、ユーザは、見当たらないメタデータを追加するためにメディアオブジェクトを見つけること、又は、利用できないメディアオブジェクトを獲得することができる。
【００７７】
ファセット表現
【００７８】
様々な実施形態では、メディアプラットフォーム１２０は、ファセットの値に関連付けられたタイプに基づいて様々な方法でファセットをユーザに表示する。有利であるのは、ファセットの値に関連付けられたタイプに基づいてファセットを表示することが利用可能なデータのタイプに関してユーザへの伝達情報を改善することである。
【００７９】
離散値は、個別の値である。２種類の離散値：制限付きの値及び無制限の値がある。制限付きの離散値（たとえば、性別）は、制限付きの個数の起こり得る値を有する値である。制限付きの離散値を有するファセットは、第２のレベルのファセットカテゴリの一部である。これに反して、無制限の離散値（たとえば、人間、イベント）は、個別の第２のレベルのファセットカテゴリとして表示される。
【００８０】
範囲値は、ある範囲にグループ化され得る値である。一部の範囲値は、無制限の個数の起こり得る値（たとえば、タイムスタンプ）を含む連続的な範囲である。連続的な範囲値は、ある範囲内に、又は、範囲のグループ内に常に表示される。これに反して、整数範囲は、離散値（たとえば、曜日）で構成されている。整数範囲は、離散値のグループ分けとして表示されることがあり得る。地図値は、地図値が特殊な値である特殊な地図表現で表示されることがあり得る。
【００８１】
図１４は、様々な実施形態によるファセット表現を示す。図１４に示されたとおり、ファセット表現は、制限付きの離散ファセット１２、整数範囲ファセット４、及び、無制限の離散ファセット１４の表現を含む可能性がある。無制限の離散ファセット１４は、他のファセット表現（たとえば、制限付きの離散ファセット１２及び整数範囲ファセット４）が一つにグループ化される場所を表示するためにサブカテゴリ全体を必要とする可能性がある。
【００８２】
メディアコンテンツのための階層ファセット
【００８３】
様々な実施形態では、ファセットは、２レベル階層に体系化される可能性がある。階層は、データ構造体（たとえば、ツリー）に記憶される。ツリーの各リーフノードは、個別のファセット値のインデックスを指し示すことができる。このため、メディアプラットフォーム１２０は、ユーザに基づいて異なったファセット階層を取り扱うことができる。たとえば、ファセット階層は、ユーザの経験レベル又は関心レベルに基づいて規定されることがある。
【００８４】
たとえば、階層は以下を含み得る。
【００８５】
１）誰？
【００８６】
ａ．名前
【００８７】
ｂ．関係性
【００８８】
ｃ．興味
【００８９】
ｄ．職業
【００９０】
２）いつ？
【００９１】
ａ．日付
【００９２】
ｂ．イベント
【００９３】
ｃ．イベントタイプ
【００９４】
ｄ．気象条件
【００９５】
３）どこ？
【００９６】
ａ．地名
【００９７】
ｂ．地図
【００９８】
ｃ．プレイスタイプ
【００９９】
４）どのようにして？
【０１００】
ａ．撮影者
【０１０１】
ｂ．カメラタイプ
【０１０２】
ｃ．メディアタイプ
【０１０３】
５）何？
【０１０４】
ａ．オブジェクト
【０１０５】
ｂ．オブジェクトのタイプ
【０１０６】
付属書Ｂは、様々な実施形態による階層ファセット検索エンジンをさらに示す。
【０１０７】
様々な実施形態によれば、１つ又は複数のメディアオブジェクトの階層ビジュアルファセット検索システムは、メディアプラットフォームを含む。様々な実施形態では、メディアプラットフォームは、複数の選択基準を受信するために適合したセレクタ・ユーザ・インターフェース（ＵＩ）をユーザ機器に提供するように、第１の選択基準を含む複数の第１のレベルの選択基準を備えた第１のレベルのメニューをユーザ機器に提供するように、少なくとも第１の選択基準をセレクタＵＩに追加する指示をユーザ機器から受信するように、第１の選択基準に対応し、第２の選択基準を含む複数の第２のレベルの選択基準を備えた第２のレベルのメニューをユーザ機器に提供するように、少なくとも第２の選択基準をセレクタＵＩに追加する指示をユーザ機器から受信するように、第１の選択基準及び第２の選択基準をセレクタＵＩに追加するように、そして、少なくとも部分的にセレクタＵＩのコンテンツに基づいて第１の選択基準及び第２の選択基準を満たす１つ若しくは複数のメディアオブジェクトを識別するために検索を実行するように構成されている１台又は複数のハードウェアプロセッサを備えることがある。
実装例では、第１の選択基準は、識別基準、位置基準を含む可能性があり、第２の選択基準は、メディアオブジェクトに関連付けられた個人の名前、関係性、興味、及び職業のうちの１つを含む可能性がある。たとえば、第１の選択基準は、時間基準を含む可能性があり、第２の選択基準は、メディアオブジェクトに関連付けられている日付、イベント、イベントタイプ、及び気象条件のうちの１つを備える。別の実施例では、第１の選択基準は、場所基準を備え、第２の選択基準は、メディアオブジェクトに関連付けられた地図座標、地名、及び位置タイプのうちの１つを含む可能性がある。別の実施例では、第１の選択基準は、方法又は手段基準を備え、第２の選択基準は、メディアオブジェクトに関連付けられている撮影者、カメラタイプ、及びメディアタイプのうちの１つを含む可能性がある。別の実施例では、第１の選択基準は、識別基準を備え、第２の選択基準は、メディアオブジェクトに関連付けられているオブジェクト及びオブジェクトタイプのうちの１つを含む可能性がある。
【０１０８】
ハイブリッド・インメモリ・ファセット・エンジン
【０１０９】
様々な実施形態では、ファセット検索エンジンは、ユーザ機器１１０で実施されることがある。このため、ファセット検索エンジンは、検索されるファセットに基づいてオンデマンドでロードされる可能性があるインメモリ検索インデックスに依存する可能性がある。検索インデックスは、実オブジェクトの属性値の上に構築される。
【０１１０】
ファセットは、１つ又は複数のメディアオブジェクトを検索する方法である。ファセットは、様々なファセット値に関連付けられる可能性がある。その上、各ファセットは、インデックス化されているデータ内の特定のフィールドに対応する。フィールドは、データタイプ及び期待値を有する。検索を行うため、ファセット検索エンジンは、各フィールド内に全ての値のインデックスを構築することができる。有利であるのは、ファセット検索エンジンがあらゆる問い合わせを非常に素早く実行できることである。これに反して、従来型のファセット検索エンジンは、予め計算された一定の問い合わせのビューに基づいており、動的な複雑な問い合わせを扱うことができない。
【０１１１】
実施形態例では、システムは、１つ又は複数のデジタルオブジェクトのハイブリッド・インメモリ・ファセット検索を実行する。システムは、インデックスがデータセット内の各デジタルオブジェクトに対する識別子への値のマッピングを含んでいる、１つ若しくは複数のインデクシングプロセスを使用して生成されたデータセットに対するインデックスを記憶するように、インデックスの更新情報を受信するように、記憶されたインデックスとは独立したタイムスタンプと共にインデックス更新情報を記憶するように、そして、記憶されたインデックスのリクエストに応答して、インデックス更新情報をインデックスに適用するように構成されている１台又は複数の処理機器を備えたメディアプラットフォームを含む可能性がある。実施例では、処理機器は、データセットに関連付けられている特性を判定し、データセット内の各デジタルオブジェクトに対する識別子への値のマッピングを含んでいるインデックスは、データセットの特性に基づいて処理される。
【０１１２】
たとえば、データセットは、離散データを含む可能性があり、インデックスは、ソートされた離散データ及び識別子の値のうちの少なくとも１つを含んでいる各デジタルオブジェクトに対する複数のアレイを含む。たとえば、識別子は、順序付きグループにグループ化される可能性がある。実施形態例では、データセットは、連続データを含み、各デジタルオブジェクトは、一意のタイムスタンプにマッピングされる。
【０１１３】
データセット内の各デジタルオブジェクトに対する識別子への値のマッピングが重複値を含むとき、処理機器は、各デジタルオブジェクトに対する各値に関連付けられている確信度を判定し、確信度に基づいて識別子にランクを付けることができる。
【０１１４】
記憶されたインデックスのリクエストは、問い合わせ基準を含む検索リクエストである可能性があり、処理機器は、問い合わせ基準をインデックスの識別子にマッチさせるためにセレクタオブジェクトを生成し、セレクタオブジェクトに基づいて各問い合わせ基準に関連付けられた未修正識別子のカウントを計算し、問い合わせ基準でほとんどの未修正識別子に関連付けられている問い合わせ基準から始まる検索を実行することができる。
【０１１５】
インデックスのタイプ
【０１１６】
データをインデックス化するため、ファセット検索エンジンは、インデックス化されるデータのタイプ及び性質に依存して様々なタイプのインデックスを使用することができる。各インデックスタイプは、別々に構築され、特定の目的がある。
【０１１７】
インデックスは、基本インデックス又は派生インデックスとなり得る。各インデックスタイプは異なった方法で実装されるが、全てのインデックスは、リアルワールドの値をインデックス化しているメディアオブジェクトのある一定の行にマッピングする機能をもっている。
【０１１８】
基本インデックス
【０１１９】
基本インデックスは、ワールドオブジェクトの未加工値から直接計算される。種々のタイプの基本インデックスは、未加工値がタイプごとに異なって取り扱われるので、未加工値の性質に依存して計算されることがある。
【０１２０】
図１５は、様々な実施形態による制限付きの離散インデックス１５００を示す。図１５を参照すると、制限付きの離散インデックス１５００は、離散的な無制限を含む基本タイプのインデックスである。制限付きの離散インデックス１５００は、（たとえば、ユーザ機器１１０の）メモリに常に保持され、制限付きの離散インデックス１５００が必要とされるときにいつでも展開される。様々な実施形態では、制限付きの離散インデックス１５００は、２つのアレイとして実装することができる。第１のアレイは、昇順ソートの順にインデックス化された値、及び、第２のインデックスへの開始点を保持することができる。第２のアレイは、未加工値に従ってグループ化され、各グループ内でソートされた順番になっているメディア行識別子を保持することができる。有利であるのは、制限付きの離散インデックス１５００を記憶することは、少量のメモリしか必要としないことである。
【０１２１】
大規模離散インデックスは、非常に多数の離散値を含んでいる。
【０１２２】
連続インデックスは、値（たとえば、タイムスタンプ）とほぼ１対１のマッピングをもつ無制限の個数の起こり得る値を含んでいる。１枚の写真ほとんど全ては、たとえば、異なったタイムスタンプをもつ可能性がある。連続範囲値は、特殊なインデックス構造によって処理することができる。たとえば、連続インデックスは、データベースインデックスに類似した正規のＢ−ツリーを使用して処理されることがある。
【０１２３】
マップインデックスは、地理位置データを含む。地理位置データは、全体として取り扱われる３次元データ（たとえば、経度、緯度、及び標高）となり得る。一部の実施形態では、マップインデックスは、データベースエンジン（たとえば、ＳＱＬｉｔｅ（登録商標））を使用して処理されることがある。
【０１２４】
派生インデックス
【０１２５】
派生インデックスは、他のインデックス（たとえば、基本又は派生）に基づき、分類及び／又は含意をもたらす。様々な実施形態では、派生インデックスは、単純派生インデックス又はファジー派生インデックスになり得る。
【０１２６】
図１６は、様々な実施形態による単純派生インデックス１６００を示す。図１６を参照すると、単純派生インデックス１６００のインデックス値は、別のインデックスによってインデックス化された値に基づいている。たとえば、年齢グループは、たとえば、限定されることはないが、赤ちゃん、幼児、子ども、１０代、若者、大人、中年、及び高齢者を含む複数のファセット値にインデックス化されることがある。実際のインデックス化された値は、年齢未加工値から派生し、たとえば、幼児は、年齢が２歳と５歳の間の人物である。様々な実施形態では、単純派生インデックス１６００は、値及び対応する未加工値を基本インデックス内に保持する単一のアレイを使用して構築される。このため、単純派生インデックス１６００は、メモリ内の非常に制限されたスペースを占め、基本インデックスへの変更を容易に受け入れることができる。
【０１２７】
図１７は、様々な実施形態によるファジー派生インデックス１７００を示す。図１７を参照すると、ファジー派生インデックス１７００は、未加工値と重複する複数のインデックス化値を含む可能性がある。このようにして、各マッピングには確信度が関連付けられている。たとえば、年齢グループがファジーインデックスを有する場合、１．８歳である人物は、赤ちゃんであると共に幼児である可能性がある。しかしながら、その人物は、幼児である可能性が高い。このため、幼児に対する確信度は、９０％であり、その一方で、赤ちゃんに対する確信度は、１５％である。確信度は、各値に対して適当であるように選択される。このようなファジーインデキシングの利点は、我々が同じ情報を異なった方法で見つけ、検索結果にランクを付けるために確実性を使用することを可能にすることである。
【０１２８】
インデックスライフサイクル
【０１２９】
インデックスは、未加工データを順に処理することによってメモリ内に作成され得る。インデックスは、最もコンパクトな形式でメモリ内に保持される。これに対して、未加工データは、直交演算において別々にアクセスされる。メモリ使用量を少量に保つために、未加工データは、未加工データの量が大量である場合、インスタンス内でバッチ形式により順に処理されることがある。このプロセスは、データがソート順にロードされるべきであるので、複数の反復パス（たとえば、インデックスごとに１回のパス）を含むことがある。このようにして、未加工データの量が少量である場合、未加工データは、一度にメモリにロードされ、インデックスの作成中にソートされる可能性がある。
【０１３０】
インデックスが最もコンパクトな形式で作成されると、インデックスは、この形式でファイル内に保存される。２つ以上のアレイを有するインデックスの場合、個々のアレイは、特定の順に、たとえば、行ｉｄアレイの前にインデックス化データアレイという順に、同じファイル内に保存される。
【０１３１】
インデックスは、値をインデックスに追加又は値をインデックスから削除することを含めて、さらに更新される可能性がある。様々な実施形態では、インデックスが既にメモリ内に存在する場合、更新がインデックスに適用され、更新が完了すると、インデックスがディスクに保存される。
【０１３２】
ディスクがディスク上にある場合、更新情報がこの特有のインデックスのため更新ファイルに加えられる。更新ファイルは、タイムスタンプによってソートされた全ての更新情報を含んでいる。インデックスは、更新操作のためアップロードされない。１回又は複数の更新を適用するためにインデックスをロードする代わりに、ファセット検索エンジンは、インデックスに加えられるべき変更を記憶する。インデックスが検索のため必要とされるとき、インデックスは、ディスクからメモリにロードされ、記憶された更新情報がインデックスにロードされ、適用され、インデックスは、メモリに保存され、検索中に使用することができる。
【０１３３】
有利であるのは、更新プロセスは、インデックスが更新されるとき毎回行われている不要な計算を削減することである。更新プロセスは、更新の間に使用されないインデックスのための計算能力を保存する。インデックスは、インデックスが（たとえば、検索を実行するため）呼び出されたときに更新される。
【０１３４】
問い合わせモデル
【０１３５】
ファセット検索エンジンは、急勾配の学習曲線をもたない分かりやすい形で、ユーザに企業検索エンジンの能力及び制御を与えることができる。問い合わせを行うために、ユーザは、１つ又は複数のファセット値を選択し、結果が選択されたファセット値をもつべき、もつことができる、又はもつべきではないかどうかを指示する。たとえば、ユーザが、感謝祭以外の休日に獲得され、靴、ドレス、バッグ、又はサングラスを描くメディアオブジェクトを見つけることを望むと仮定しよう。ユーザは、以下の問い合わせを定義することができる。
【０１３６】
ＭＵＳＴ：イベントタイプ  休日
【０１３７】
ＮＯＴ：イベント  感謝祭
【０１３８】
ＯＲ：オブジェクト  靴  出現
【０１３９】
ＯＲ：オブジェクト  ドレス  出現
【０１４０】
ＯＲ：オブジェクト  バッド  出現
【０１４１】
ユーザは、秋の間に家の近くで自分の妻が撮影したユーザの息子の写真についての複雑な問い合わせを指定することもできる。問い合わせは、以下のとおり指定することができる。
【０１４２】
ＭＵＳＴ：人物  息子  出現
【０１４３】
ＭＵＳＴ：人物  妻  撮影者
【０１４４】
ＭＵＳＴ：自宅所在地で
【０１４５】
ＭＵＳＴ：イベント  秋
【０１４６】
ＮＯＴ：家の中
【０１４７】
ＮＯＴ：人物  誰でも  出現
【０１４８】
問い合わせメカニズム
【０１４９】
ユーザによって定義された各基準に対して、ファセット検索エンジンは、ファセットインデックスに作用するセレクタオブジェクトを作成することができる。セレクタの目的は、基準を未加工データオブジェクト識別子にマッチさせることである。これは、所定の基準にマッチするメディアオブジェクト識別子候補の個数を返すことができ、これは、次に、マッチ候補を返す。ファセット検索エンジンは、マッチ候補によって昇順にインデックスをソートする。このため、マッチの個数が最も少ないインデックスが最初に実行され、ファセット検索エンジンは、インデックスのリストを順に処理し、基準全体にマッチする値を計算する。
ＭｕｓｔＳｅｌｅｃｔｏｒｓ［］
ＣａｎＳｅｌｅｃｔｏｒｓ［］
ＮｏｔＳｅｌｅｃｔｏｒｓ［］
ｍｕｓｔＳｅｌｅｃｔｏｒｓＩｄｘ  ＝  ０
ｃａｎＳｅｌｅｃｔｏｒｓＩｄｘ  ＝  ０
ｎｏｔＳｅｌｅｃｔｏｒｓＩｄｘ  ＝  ０
各ユーザ基準に対して
もしも基準がＭＵＳＴであるならば
ＭｕｓｔＳｅｌｅｃｔｏｒｓ［ｍｕｓｔＳｅｌｅｃｔｏｒｓＩｄｘ］  ＝  ｎｅｗ  Ｓｅｌｅｃｔｏｒ（ｃｒｉｔｅｒｉａ）
ｍｕｓｔＳｅｌｅｃｔｏｒｓＩｄｘ＋＋
そうではなくもしも基準がＣＡＮであるならば
ＣａｎＳｅｌｅｃｔｏｒｓ［ｃａｎＳｅｌｅｃｔｏｒｓＩｄｘ］  ＝  ｎｅｗ  Ｓｅｌｅｃｔｏｒ（ｃｒｉｔｅｒｉａ）
ｃａｎＳｅｌｅｃｔｏｒｓＩｄｘ  ＋＋
そうではなくもしも基準がＮＯＴであるならば
ＮｏｔＳｅｌｅｃｔｏｒｓ  ［ｎｏｔＳｅｌｅｃｔｏｒｓＩｄｘ］  ＝  ｎｅｗ  Ｓｅｌｅｃｔｏｒ（ｃｒｉｔｅｒｉａ）
ｎｏｔＳｅｌｅｃｔｏｒｓＩｄｘ  ＋＋
各ＭｕｓｔＳｅｌｅｃｔｏｒｓに対して
結果として得られた行ｉｄの個数を計算する
結果として得られた行ｉｄの個数によってＭｕｓｔＳｅｌｅｃｔｏｒｓセレクタを昇順にソートする
Ｒｅｓｕｌｔ  ＝  ＭｕｓｔＳｅｌｅｃｔｏｒｓ［０］．ｒｏｗＩｄｓ
ＭｕｓｔＳｅｌｅｃｔｏｒｓ内の各ｍｕｓｔＳｅｌｅｔｏｒに対して＜１  から  ｍｕｓｔＳｅｌｅｃｔｏｒｓＩｄｘ−１まで＞
Ｒｅｓｕｌｔ  ＝  Ｒｅｓｕｌｔ  ＡＮＤ  ｍｕｓｔＳｅｌｅｔｏｒ．ｒｏｗＩｄｓ
各ＮｏｔＳｅｌｅｃｔｏｒｓに対して
行ｉｄ候補の個数を計算する
行ｉｄの個数によってＮｏｔＳｅｌｅｃｔｏｒｓを昇順にソートする
ＮｏｔＳｅｌｅｃｔｏｒｓ内の各ｎｏｔＳｅｌｅｔｏｒに対して＜０  から  ｎｏｔＳｅｌｅｃｔｏｒｓＩｄｘ  −１まで＞
Ｒｅｓｕｌｔ  ＝  Ｒｅｓｕｌｔ  ＮＯＴ  ｎｏｔＳｅｌｅｔｏｒ．ｒｏｗＩｄｓ
ＯＲＲｅｓｕｌｔ  ＝  ＣａｎＳｅｌｅｃｔｏｒｓ［０］．ｒｏｗＩｄ
ＣａｎＳｅｌｅｃｔｏｒｓ内の各ｃａｎＳｅｌｅｔｏｒに対して＜１  から  ｃａｎＳｅｌｅｃｔｏｒｓＩｄｘ−１まで＞
ＯＲＲｅｓｕｌｔ  ＝  ＯＲＲｅｓｕｌｔ  ＯＲ  ｃａｎＳｅｌｅｔｏｒ．ｒｏｗＩｄｓ
Ｒｅｓｕｌｔ  ＝  Ｒｅｓｕｌｔ  ＡＮＤ  ＯＲＲｅｓｕｌｔ
【０１５０】
有利であるのは、複数の問い合わせアルゴリズムが並列に実行され得ることである。それゆえに、各セレクタは、独立であり、競合状態を回避する。セレクタは、最大厳密性から最小厳密性までの順に（たとえば、ＡＮＤの次にＮＯＴが続き、さらにＯＲが続く順に）さらに実行される。セレクタ順序は、結果集合が空であるならば、厳密性の低いセレクタの実行を飛ばす機能を提供する。
【０１５１】
加えて、アルゴリズムは、以下のとおり最適化されることがある：
メモリ内にインデックスを有する基準を使用して問い合わせのＡＮＤ部分及びＮＯＴ部分を実行する
結果が行ｉｄを有するならば
未修正インデックスを有する基準に関して問い合わせを実行する
結果が行ｉｄを有するならば
残りの基準に関して問い合わせを実行する
【０１５２】
上記最適化は、問い合わせ結果がゼロ個のレコードを含んでいることが分かっている場合、インデックスの不必要なローディングの必要性を低減する。
【０１５３】
選択演算
【０１５４】
選択演算は、ある選択基準に対するマッチング行識別子を選択するために実行される。各インデックスタイプは、特定のインデックスタイプの構造に対応する特有の方法でセレクタを実装する。
【０１５５】
離散値インデックス
【０１５６】
離散値インデックスは、数字又は非数字となり得る。数字離散値は、たとえば、限定されることはないが、範囲選択、大なり、小なりといった数学演算を利用できるようにする。
・Ｘより小さい：
−ファセット値アレイを二分探索し、Ｘより小さいインデックス内の最大値の位置を見つける。最大値の位置は、未加工レコードＩｄアレイ内の位置を指示する。その結果、最大値位置の位置より前にある先行する行ｉｄを収集することができる。
・Ｘより大きい：
−ファセット値インデックスを二分探索し、Ｘより大きい最小値の位置を見つける。最小値の位置は、未加工レコードＩｄアレイ内の位置を指示する。その結果、最小値の位置より後にある行ｉｄを収集することができる。
・Ｘに等しい：
−ファセット値インデックスを二分探索し、値がＸに等しい位置を見つける。値が等しい位置は、未加工レコードＩｄアレイ内の位置を指示する。未加工レコードＩｄアレイは、開始位置を有する。終了位置は、ファセット値インデックス内の後続のインデックスから判定される。
【０１５７】
派生値インデックスもまた数字又は非数字となり得るものであり、数字派生値インデックスは、数学演算を支えることができる。
・Ｘより小さい：
−ファセット値アレイを二分探索し、Ｘより小さいインデックス内の最大値の位置を見つける。最大値の位置は、未加工レコードＩｄアレイ内のベースインデックス値を指示する。その結果、最大値の位置より前にある行ｉｄが収集される。
・Ｘより大きい：
−ファセット値インデックスを二分探索し、Ｘより大きい最小値の位置を見つける。最小値の位置は、未加工レコードＩｄアレイ内の位置を指示する。その結果、最小値の位置より後にある行ｉｄが収集される。
・Ｘに等しい：
−ファセット値インデックスを二分探索し、値がＸに等しい位置を見つける。値が等しい位置は、未加工レコードＩｄアレイ内の位置を指示する。未加工レコードＩｄは、開始位置を有する。終了位置は、ファセット値インデックス内の後続のインデックスから取得される。
【０１５８】
問い合わせ基本演算
【０１５９】
問い合わせ演算（たとえば、ＡＮＤ、ＮＯＴ及びＯＲ）は、多数の実施形態において実行されることがある。大規模なアレイに対して、圧縮ビットベクトルアレイが行識別子を記憶するために使用され（たとえば、ローアリング（ｒｏａｒｉｎｇ）アレイ）、バイナリビットマスクがこのようなデータ構造に適した演算を行うために使用される。小規模なアレイに対して、アルゴリズムは、たとえば、以下のとおり適用される。
【０１６０】
ＡＮＤ演算は、行識別子の２つのアレイ：ｒｏｗＩＤｓ１及びｒｏｗＩＤｓ２に作用する。結果は、ｒｅｓｕｌｔｉｎｇＩＤｓに含まれている。ＡＮＤ演算のためのアルゴリズムは、線形時間（すなわち、Ｏ（ｎ））で動作し、以下を含む：
基数ソートを使用して、ｒｏｗＩＤｓ１及びｒｏｗＩＤｓ２を昇順にソートする
ｒｏｗＩＤｓ１をより要素数の少ないアレイに割り当てる
Ｐｏｉｎｔｅｒ１  ＝  ０
Ｐｏｉｎｔｅｒ２  ＝  ０
ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ  ＝  ０
Ｐｏｉｎｔｅｒ１＜  ｒｏｗＩＤｓ１のカウント数  ＆＆  Ｐｏｉｎｔｅｒ２＜  ｒｏｗＩＤｓ２のカウント数である間
もしもｒｏｗＩＤｓ１［Ｐｏｉｎｔｅｒ１］  ＝＝  ｒｏｗＩＤｓ２［Ｐｏｉｎｔｅｒ２］であるならば
ｒｅｓｕｌｔｉｎｇＩＤｓ［ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ］  ＝  ｒｏｗＩＤｓ１［Ｐｏｉｎｔｅｒ１］
ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ＋＋
Ｐｏｉｎｔｅｒ１＋＋
Ｐｏｉｎｔｅｒ２＋＋
そうではなくもしもｒｏｗＩＤｓ１［Ｐｏｉｎｔｅｒ１］  ＞  ｒｏｗＩＤｓ２［Ｐｏｉｎｔｅｒ２］であるならば、
Ｐｏｉｎｔｅｒ２＋＋
そうでなければ
Ｐｏｉｎｔｅｒ１＋＋
【０１６１】
ＮＯＴ演算は、集合差演算に類似している。行識別子の１つの集合が結果から減算される。ＮＯＴ演算のためのアルゴリズムは、同様に線形時間（すなわち、Ｏ（ｎ））で動作し、以下を含む：
基数ソートを使用してｒｏｗＩＤｓ１及びｒｏｗＩＤｓ２を昇順にソートする
Ｐｏｉｎｔｅｒ１  ＝  ０
Ｐｏｉｎｔｅｒ２  ＝  ０
ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ  ＝  ０
Ｐｏｉｎｔｅｒ１＜  ｒｏｗＩＤｓ１のカウント数  ＆＆  Ｐｏｉｎｔｅｒ２＜  ｒｏｗＩＤｓ２のカウント数である間
もしもｒｏｗＩＤｓ１［Ｐｏｉｎｔｅｒ１］  ＝＝  ｒｏｗＩＤｓ２［Ｐｏｉｎｔｅｒ２］であるならば
Ｐｏｉｎｔｅｒ１＋＋
Ｐｏｉｎｔｅｒ２＋＋
そうではなくもしもｒｏｗＩＤｓ１［Ｐｏｉｎｔｅｒ１］  ＞  ｒｏｗＩＤｓ２［Ｐｏｉｎｔｅｒ２］であるならば
Ｐｏｉｎｔｅｒ２＋＋
そうでなければ
ｒｅｓｕｌｔｉｎｇＩＤｓ［ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ］  ＝  ｒｏｗＩＤｓ１［Ｐｏｉｎｔｅｒ１］
ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ＋＋
Ｐｏｉｎｔｅｒ１＋＋
Ｐｏｉｎｔｅｒ１＜  ｒｏｗＩＤｓ１のカウント数である間
ｒｅｓｕｌｔｉｎｇＩＤｓ［ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ］  ＝  ｒｏｗＩＤｓ１［Ｐｏｉｎｔｅｒ１］
ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ＋＋
Ｐｏｉｎｔｅｒ１＋＋
【０１６２】
ＯＲ演算は、行識別子の２つのアレイ：ｒｏｗＩＤｓ１及びｒｏｗＩＤｓ２に作用し、結果は、ｒｅｓｕｌｔｉｎｇＩＤｓと呼ばれる。結果は、ｒｅｓｕｌｔｉｎｇＩＤｓに含まれている。ＡＮＤ演算のためのアルゴリズムは、線形時間（すなわち、Ｏ（ｎ））で動作し、以下を含む：
基数ソートを使用して、ｒｏｗＩＤｓ１及びｒｏｗＩＤｓ２を昇順にソートする
ｒｏｗＩＤｓ１をより要素数の少ないアレイに適用する
Ｐｏｉｎｔｅｒ１  ＝  ０
Ｐｏｉｎｔｅｒ２  ＝  ０
ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ  ＝  ０
Ｐｏｉｎｔｅｒ１＜  ｒｏｗＩＤｓ１のカウント数  ＆＆  Ｐｏｉｎｔｅｒ２＜  ｒｏｗＩＤｓ２のカウント数である間
もしもｒｏｗＩＤｓ１［Ｐｏｉｎｔｅｒ１］  ＝＝  ｒｏｗＩＤｓ２［Ｐｏｉｎｔｅｒ２］であるならば
ｒｅｓｕｌｔｉｎｇＩＤｓ［ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ］  ＝  ｒｏｗＩＤｓ１［Ｐｏｉｎｔｅｒ１］
ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ＋＋
Ｐｏｉｎｔｅｒ１＋＋
Ｐｏｉｎｔｅｒ２＋＋
そうではなくもしもｒｏｗＩＤｓ１［Ｐｏｉｎｔｅｒ１］  ＞  ｒｏｗＩＤｓ２［Ｐｏｉｎｔｅｒ２］であるならば
もしもｒｅｓｕｌｔｉｎｇＩＤｓ［ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ］  ＜  ｒｏｗＩＤｓ２［Ｐｏｉｎｔｅｒ２］であるならば
ｒｅｓｕｌｔｉｎｇＩＤｓ［ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ］  ＝  ｒｏｗＩＤｓ２［Ｐｏｉｎｔｅｒ２］
ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ＋＋
Ｐｏｉｎｔｅｒ２＋＋
そうでなければ
もしもｒｅｓｕｌｔｉｎｇＩＤｓ［ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ］  ＜  ｒｏｗＩＤｓ１［Ｐｏｉｎｔｅｒ１］であるならば
ｒｅｓｕｌｔｉｎｇＩＤｓ［ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ］  ＝  ｒｏｗＩＤｓ１［Ｐｏｉｎｔｅｒ１］
ＲｅｓｕｌｔｓＰｏｉｎｔｅｒ＋＋
Ｐｏｉｎｔｅｒ１＋＋
【０１６３】
マルチモード・ユーザ・インターフェース
【０１６４】
様々な実施形態では、メディアプラットフォーム１２０は、様々な主要なアクティビティタイプに適応可能であるマルチモードＵＩをサポートする。たとえば、ＵＩは、ビジュアル検索モード、オブジェクト関連付けモード、又はオブジェクト操作モードになり得る。このため、ＵＩは、終わりのない選択肢の組で画面を散らかすことなく主要なアクティビティに重点を置くことができる。様々な実施形態では、コマンドは、画面内で実質的に同じ相対的な位置若しくは領域に配置され、ユーザが記憶を頼りにこれらのコマンドにアクセスすることを可能にする。ＵＩは、ＵＩがどのモードにあるかをユーザに指示し、ユーザが他のモードへ素早く切り替えることを可能にするモード切り替え制御によって制御され得る。
【０１６５】
実施形態例では、メディアプラットフォームと相互作用するシステムは、メディアプラットフォームのマルチモードアプリケーションを制御するためにユーザ・インターフェース（ＵＩ）をユーザ機器に提供するように構成される処理機器を備えたメディアプラットフォームを含み、ユーザ・インターフェースは、複数のモードナビゲーション領域を備え、各モードナビゲーション領域は、マルチモードアプリケーションのモードに関連付けられ、各モードナビゲーション領域は、モードナビゲーション領域に関連付けられたモードを制御する特定の機能の組を備えている。ＵＩは、機器アクティビティの検出に基づいて、アクティブモードのためのナビゲーション領域を提示するものであり、ＵＩは、非アクティブモードに切り替えるためのグローバルナビゲーションメニューを含み、非アクティブモードに関連付けられている機能を抑制する。
【０１６６】
たとえば、各モードナビゲーション領域は、モードナビゲーション領域に関連付けられたモードを制御する特定の機能の組を含むことができ、ナビゲーション領域が提示されたとき、特定の機能の組がモードナビゲーション領域内に維持される。実施形態例では、グローバルナビゲーションメニューは、ユーザのジェスチャ入力によって制御可能である。特定の機能の組を提示するために、ＵＩは、１つ又は複数の拡張可能なサブモードナビゲーション領域を含むことができる。１つ又は複数の拡張可能なサブモードナビゲーション領域は、検出された機器アクティビティに基づいて提示される可能性があるが、ＵＩは、非アクティブサブモードに関連付けられた機能を抑制する。
【０１６７】
ＵＩは、グローバルナビゲーションメニューにアクティブモードインジケータを含むことができる。一部の実施形態では、処理機器は、グローバルナビゲーションメニュー上のショートカットを強調することによって次のモードを提案するために、ユーザのアクティビティパターンを追跡することにより機器アクティビティを検出する。マルチモードアプリケーションは、ビジュアル検索モード、オブジェクト操作モード、又はデータエントリモードのうちの少なくとも１つを含むことができる。
【０１６８】
マルチモード制御スイッチ
【０１６９】
図１８は、様々な実施形態によるマルチモード制御スイッチ１８００を示す。図１８を参照すると、マルチモード制御スイッチ１８００は、ユーザ機器１１０（たとえば、スマートフォン）に表示され得る。マルチモード制御スイッチ１８００は、現在モード「ビジュアル検索」をユーザが切り替えることができる追加モードと共に表示する。代替的に、ユーザは、異なったモードの間で切り替えるために、及び／又は、追加モードを見せるために（たとえば、タッチスクリーン上で）スワイプジェスチャを使用することができる。
【０１７０】
マルチモードオーバービュー
【０１７１】
図１９Ａ〜図１９Ｃは、様々な実施形態によるマルチモードＵＩを示す。図１９Ａ〜図１９Ｃを参照すると、マルチモードＵＩは、意味情報をメディアオブジェクトに関連付けるため、及び、メディアオブジェクトを検索するため使用することができる。スタンピングモードは、メディアオブジェクトのための関連付けを判定するインターフェースを提供する。ＵＩは、ユーザがバッチ関連付けを行えるようにする非常に効率的な方法で関連付けることができるメディアオブジェクトの効率的な検索を可能にするために構成されている。スタンピングＵＩ内の制御ボタンは、関連付け機能に関係している。検索するために、ユーザは、（右側で）ビジュアル検索モードに切り替えることができる。マルチモード制御スイッチは、図１８に記載されているとおり、モード間で素早いナビゲーションが可能である。検索モードでは、ビジュアル検索ＵＩは、メディアライブラリに重点が置かれた制御選択肢を提示する。
【０１７２】
有利であるのは、マルチモードＵＩは、どんな動作が異なったアクティビティ（たとえば、検索、スタンピング、シェアリングなど）のため利用可能であるかを推測することからユーザを解放する。マルチモードＵＩは、各アクティビティモードに関係している動作を効率的に分類し、提示する。ＵＩコマンドは、所定のモードの画面の同じ場所又は領域に置かれる。このようにして、マルチモードＵＩは、アプリケーションの機能を低減することなく、個別のユーザの認識要件を緩和する。
【０１７３】
マスキングアクセス制御
【０１７４】
様々な実施形態では、メディアプラットフォーム１２０は、記憶されたデータオブジェクト（たとえば、データストア１２５に記憶されたメディアオブジェクト）へのアクセスを、ユーザアカウントを必要としない方法で制御する。これに反して、アクセスは、ユーザアカウントメカニズムに関係しない自動又は手動データオブジェクト保護ルールに基づいて制御される。各データ保護ルールは、保護されるべき特定のデータオブジェクトを選択し、オブジェクトをアクセス可能及びアクセス不可能にするためにそれぞれオン及びオフを切り替えることができる。データ保護ルールのステータスは、効率的なデータマスキング層を計算するために組み合わせ可能である。データマスキング層は、所定のデータオブジェクトがアクセス可能であるかどうかを判定する。簡単なデータ選択ルールとしてデータ保護を提示することは、複雑なアクセス制御メカニズムを簡略化する。
【０１７５】
データアクセス計算
【０１７６】
図２０は、様々な実施形態によるデータアクセス計算を示す。様々な実施形態では、メディアプラットフォーム１２０は、効率的なデータマスキング計算を行うことによってデータオブジェクト可視性を計算することができる。アクセス制御ルールは、マスキングメカニズムを作成するために組み合わせ可能である。各ルールは、アクセス不可能であるべき（たとえば、隠されるべき）データオブジェクトを識別する。多数のルールが組み合わされたとき、何らかのルールによって覆い隠されなかったデータオブジェクトは、ユーザから見えるままにされる。
【０１７７】
一部の実施形態では、メディアプラットフォーム１２０は、ロックカウントを作成することによりマスキングメカニズムを実装し、ロックカウントを各データオブジェクトに添付する。アクセス制御ルールが起動されたとき、ルールは、ルールに関連付けられているデータオブジェクトを識別し、（たとえば、１ずつ）増加させられた対応するロックカウントを判定し、関連付けられたデータオブジェクトへのアクセスを制限する。ユーザが検索を行うとき、システムは、ゼロより大きいロックカウントを有するデータオブジェクトへのアクセスを制限する（たとえば、検索結果からデータオブジェクトを隠す、又は、データオブジェクトにアクセスすることを防ぐ）。これに反して、ロックカウントがゼロであるデータオブジェクトは、ユーザに表示され、ユーザからアクセス可能である。一部の実施形態では、メディアプラットフォーム１２０は、選択されたデータオブジェクトが何らかのアクティブアクセス制御ルールと関連付けられているかどうかについてのチェックを行うことによりマスキングメカニズムを実装することができる。
【０１７８】
アクセス制御ワークフロー
【０１７９】
図２１は、様々な実施形態によるアクセス制御を実施するプロセス２１００を示す。
【０１８０】
図２１を参照すると、第１のＵＩは、ユーザにルールを編集する前にユーザ識別を再構築するように要求するために提示される（１）。第２のＵＩは、ユーザが新しいアクセス制御ルールを作成する、又は、既存のルールを編集することを可能にするために提示される（２）。第２のＵＩは、中から取り出すために利用可能なメタデータと関連タグとに基づく動的ＵＩである。その上、第２のＵＩは、２つのサービスと情報交換する。第一に、第２のＵＩは、アクセス制御エディタインターフェースがユーザによる関連タグの追加を実現し易くするのを助けるために、オントロジーに基づくタグ検索エンジンサービスと情報交換することがある。たとえば、ユーザは、イタリアの都市に対するタグを選びたいと思うことがあり、オントロジーベースのタグ検索エンジンは、ユーザがこれらを効率的に見つけるのに役立つ。
【０１８１】
第二に、第２のＵＩは、どの種類のメタデータが特有のオブジェクトタイプのため利用可能であるかを指示する適切なメタデータリコメンデーションエンジンと協議することがある。たとえば、ビデオは、メタデータとしての持続期間を有することがあるが、テキスト文書は、単語又は文字カウントを有することがある。エンジンは、簡単な編集のためユーザへの選択の範囲を絞り込むのに役立つ。
【０１８２】
ユーザがアクセス制御ルールの最終バージョンを確認した後、アクセス制御ルールは、効率的な記憶及び転送のためパッケージ化される（３）。ルールは、メディアプラットフォーム１２０による実行の準備ができている。アクセス制御ルールは、次に、（たとえば、既存のルールと一緒にルールデータベースに）記憶される。
【０１８３】
ルールの効果は、実行時の効率的な実施のため予め計算され、このような効果は、各データオブジェクトと共に記憶される（４）。
【０１８４】
代替的に、アクセス制御ルールは、ルールが手動で選択されたデータオブジェクトの単純なグループであるシンボリックリンクアクセス制御ルールになり得る。一実施形態では、シンボリックリンクは、ロックされるべきファイルシステム内のファイルを識別するために使用される。このため、シンボリックリンクのグループがロックされたとき、実際のファイルもロックされる。シンボリックリンクを使用して実装されたデータ制御ロックは、組織的な構造から分離している。
【０１８５】
アクセス制御ルールは、アクセス制御ルールがタグではなくメタデータに基づいているメタデータアクセス制御ルールにもなり得る。
【０１８６】
アクセス制御ルールは、タグがキーワードマッチングタグであり、オントロジーに基づくタグではない、キーワードベースのタグアクセス制御ルールにもなり得る。
【０１８７】
アクセス制御ルールは、オントロジーに基づくタグアクセス制御ルールにもなり得る。
【０１８８】
アクセス制御ルールステータス変更
【０１８９】
アクセス制御ルールステータスは、手動又は自動のいずれかで変更され得る。
【０１９０】
図２２は、様々な実施形態によるアクセス制御ルールステータスへの自動変更を示す。図２２を参照すると、外部システムは、マスキングアクセス制御システムと連動して機能していることがある。外部システムは、どのアクセス制御ルールが効果的であり、どのアクセス制御ルールが効果的ではないかを制御する機能を担う。たとえば、オペレーティングシステムは、物理的な記憶装置コントローラ（たとえば、ハードディスク又はソリッドステートドライブ（ＳＳＤ）コントローラ）に実装されたアクセス制御ルールを制御することができる。この場合、オペレーティングシステムは、基本的なオペレーティングシステムレベル協働する追加レベルの保護を追加することができる。図２２に表されたとおり、状態１において、外部システムは、規則のうちの１つ又は複数をオフにするように命令するコマンドを前述のシステムに送信する。システムは、ルールステータスを変更した後にアクセス制御ルールの新しいステータスを確認することによって状態２で応答する。
【０１９１】
図２３は、様々な実施形態によるアクセス制御ルールステータスへの手動変更を示す。図２３を参照すると、手動モードでは、ユーザは、アクセス制御ルールのステータスを制御する。ユーザがアクセス制御ルールステータスを変更したいとき、システムは、ユーザがアクセス制御ルールを編集することを可能にするＵＩを提示する。たとえば、ユーザがユーザ識別を確認するためにログイン画面を使って認証をチャレンジする場合、ログイン画面は、パスワードフォーム、ピクチャコードフォーム、ロックキーフォーム、又は、その他の認証フォームを選ぶことができる。アクセス制御ルール及び各アクセス制御ルールのスタータス（たとえば、使用可能、使用不能、動作中、停止中など）を一覧するＵＩが提示され得る。ユーザがルールのうちの１つをクリックしたとき、ユーザは、ユーザがルールのステータス（たとえば、使用可能、使用不能、動作中、停止中など）を変更することを可能にするＵＩが提示される。
【０１９２】
様々な実施形態によれば、メディアオブジェクトの組に関して制限アクセス制御を実施するシステムは、単一の機器を含む。単一の機器は、少なくとも部分的に第１のアクセス制御ルールに基づいて、メディアオブジェクトの組に含まれている少なくとも第１のメディアオブジェクトへのアクセスを遮断することに決定するように、少なくとも部分的に第２のアクセス制御ルールに基づいて、メディアオブジェクトの組に含まれている少なくとも第２のメディアオブジェクトへのアクセスを制御することに決定するように、及び、メディアオブジェクトの組に含まれているが、第１のメディアオブジェクトでも第２のメディアオブジェクトでもない少なくとも第３のメディアオブジェクトを単一の機器のユーザに提供するように構成されることがある。機器は、第１のメディアオブジェクト、第２のメディアオブジェクト、及び第３のメディアオブジェクトのそれぞれに関連付けられているロックカウントに少なくとも部分的に基づいて、第１のメディアオブジェクトでも第２のメディアオブジェクトでもない第３のメディアオブジェクトを提供するように構成され得る。
【０１９３】
独立及び分散マルチシステム環境における制限アクセス制御
【０１９４】
一部の実施形態では、データは、たとえば、限定されることはないが、ユーザ機器１１０、データストア１２５、第１のデータソース１４０、及び第２のデータソース１５０を含む複数の独立したシステムにわたって分布していることがある。メディアプラットフォーム１２０は、別個の、かつ、データ同期化より高い優先度の同期化チャネル上で、別個のシステム上のアクセス制御ルールを同期させることができる。付加的に、データオブジェクトメタデータは、別個の同期化メカニズム及び／又はチャネルも使用することができるので、各システムが集中型システムとは無関係にルールを実施することを可能にする。
【０１９５】
同期化
【０１９６】
マルチシステム型エコシステムでは、異なったシステム（たとえば、データストア１２５、第１のデータソース１４０、及び第２のデータソース１５０）は、一体になって連結され、ユーザがどのシステムに対しても同じアクセス制御ルールを再使用できるようにする。メディアプラットフォーム１２０は、各システムが独立に動作することを可能にするために、アクセス制御ルール、データオブジェクト、及びデータオブジェクトに対するメタデータを同期させる。複数の同期化ネットワークは、独立に動作することができる。たとえば、アクセス制御ルール同期化ネットワークは、高い優先度レベルで実質的にリアルタイムに動作することができる。メタデータ同期化ネットワークも高い優先度レベルで機能することができる。データオブジェクト同期化ネットワークは、第３の独立したネットワークとなることがある。
【０１９７】
実装例によれば、システムは、ユーザの第１の機器及び第２の機器によってアクセス可能であるデジタルオブジェクトの組に関して制限アクセス制御を実施することができる。システムは、第１の機器上でデジタルオブジェクトの組に含まれている少なくとも第１のデジタルオブジェクトへのアクセス遮断することである第１のシステムアクセス制御ルールに関連付けられている更新情報を検出するように、少なくとも部分的に第１のシステムアクセス制御ルールへの更新情報に基づいて、第２の機器上でデジタルオブジェクトの組に含まれている少なくとも第２のデジタルオブジェクトへのアクセスを遮断することに決定するように、そして、第２の機器上でデジタルオブジェクトの組に対する制限アクセス制御を維持するために第１のシステムアクセス制御ルールに関連付けられている更新情報を第２の機器を提供するように構成されているユーザの第１の機器を含む。
【０１９８】
実装例によれば、メディアオブジェクトの組に関して制限アクセス制御を実施するシステムは、複数の機器上に単一ユーザのための機器を含む。第１の機器は、少なくとも部分的に第１のアクセス制御ルールに基づいて、メディアオブジェクトの組に含まれている少なくとも第１のメディアオブジェクトへのアクセスを遮断することを決定するように、少なくとも部分的に第２のアクセス制御ルールに基づいて、メディアオブジェクトの組に含まれている少なくとも第２のメディアオブジェクトへのアクセスを遮断することに決定するように、及び、メディアオブジェクトの組に含まれているが、第１のメディアオブジェクトでも第２のメディアオブジェクトでもない少なくとも第３のメディアオブジェクトを第１の機器のユーザに提供するように構成されることがある。システムは、ユーザの第２の機器を含むことができ、第１のアクセス制御ルールは、第１の機器及び第２の機器に適用可能であるユニバーサルルールを含むことができ、第２のアクセス制御ルールは、第１の機器に適用可能であるが、第２の機器には適用できない機器固有ルールを含むことができる。
【０１９９】
実装例によれば、第１の機器及び第２の機器は、第２の機器のユーザが第１の機器を介してメディアオブジェクトの組を閲覧する閲覧セッションを行うように構成されている。たとえば、第１の機器及び第２の機器は、ユーザの第１の機器と第２の機器との間で閲覧セッションに適用可能である第３のアクセス制御ルールに基づいて閲覧セッションを行うように構成され得る。第３のアクセス制御ルールは、メディアオブジェクトの組に含まれている第３のメディアオブジェクトへのアクセスを遮断することができる。たとえば、第１の機器は、第１のメディアオブジェクト及び第３のメディアオブジェクトではなく少なくとも第２のメディアオブジェクトを第２の機器のユーザに提供するように構成され得る。
【０２００】
中央サーバ
【０２０１】
一部の実施形態では、同期化は、マエストロとしての機能を果たす集中サーバ又はクラウドを使って行われる可能性がある。全ての変更は、変更が他のシステムへ伝搬される前に、最初に、集中サーバ又はクラウドへ送信される。図２４は、様々な実施形態による集中サーバベースの同期化を示す。
【０２０２】
ピア・ツー・ピア
【０２０３】
一部の実施形態では、ピア・ツー・ピアのパラダイムが複数のシステムを同期化するときに適用される。たとえば、ピア・ツー・ピア同期化は、最新の更新情報を追跡するために、独立したバージョニングを使用することができる。図２５は、様々な実施形態によるピア・ツー・ピア同期化を示す。
【０２０４】
階層同期化ネットワーク
【０２０５】
一部の実施形態では、一部のシステムは、ローカル機器間のステータスを統合するローカル同期化サーバとしての機能を果たすことがある。ローカル同期化サーバは、集中サーバとの通信機能を担う。たとえば、モバイルネットワークが存在しない場合、ＷｉＦｉホットスポットは、ホットスポットに接続された様々なシステムの間の同期化も同様に統合し、集中サーバと通信するサーバをホストできることがある。図２６は、様々な実施形態による階層同期化を示す。
【０２０６】
データアクセス計算
【０２０７】
様々な実施形態では、データオブジェクト可視性は、アクセス制御ルールステータスカスケードによって、及び、データマスキング計算を行うことによって計算される。
【０２０８】
アクセス制御ルールステータスカスケード
【０２０９】
アクセス制御ルール配布及びピア・ツー・ピア閲覧をサポートするために、アクセス制御ルールがオン又はオフに切り替えられる複数の層を定義することができる。これらの層は、たとえば、限定されることはないが、ユニバーサル層（すなわち、エコシステム全体のため）、システム若しくは機器層（すなわち、個別の機器又はシステムのため）、アプリケーション層（すなわち、プラットフォームレベルで実装されたシステムのため）、及び、セッション層（すなわち、ピア・ツー・ピア又は一時的変更のため）を含む可能性がある。
【０２１０】
様々な実施形態では、アクセス制御ルールは、各層でオン又はオンに切り替えることができる。各ルールのステータスを計算するために、ルールステータスは、最も特異的ではない（すなわち、ユニバーサル）層から最も特異的な（すなわち、セッション）層まで次々に重ねられる。各ルールのステータスは、より一般的な層におけるルールステータスがより特異的な層でのルールステータスに優先することを可能にすることによって計算される。図２７は、様々な実施形態によるアクセス制御ルールカスケードを示す。
【０２１１】
実効データマスキング計算
【０２１２】
実効データマスキング計算は、前述された方法と同様の方法で実施されるが、プロセスは、各ターゲットセッションに対して繰り返される。
【０２１３】
アクセス制御付きのピア・ツー・ピア閲覧セッション
【０２１４】
ピア・ツー・ピア閲覧モードでは、他のシステムは、アドホック的に、ホスト機器に記憶されたデータオブジェクトを閲覧することができるが、アクセス制御ルールを維持する。ホスティングを閲覧することを要求する各衛星システムに対して、システムは、閲覧セッションを作成し、特有の閲覧セッションのためのアクセス制御ルールのステータスを変更することができる。セッションルールは、前述のとおり、ルールステータスカスケードの計算に含まれる可能性がある。一部の実施形態では、ピア・ツー・ピア閲覧は、データ閲覧の目的のため、ホスト機器をアドホックサーバに変換する。図２８は、様々な実施形態によるピア・ツー・ピア閲覧セッションを示す。
【０２１５】
閲覧セッション開始
【０２１６】
図２９は、様々な実施形態によるピア・ツー・ピア閲覧セッションを起動するプロセス２９００を示す。ユーザがピア・ツー・ピア閲覧セッションを起動するために、ユーザは、ユーザがユーザ自身の機器を閲覧するように勧めることができるゲストの組を提示される（１）。ユーザは、望ましいゲストを選択し、次に、継続してアクセス制御ルールを調べる。新しいセッションに対するアクセス制御ルールの有効ステータスがユーザに提示され、ユーザがこの特有のセッションに対する各ルールの有効ステータスを変更できるようにする（２）。ユーザは、この特有のゲストセッションのための各アクセス制御ルールを作動及び停止することができる（３）。ユーザは、ユーザが現在動作中の閲覧セッションを各セッションに参加しているゲストと共に見ることを可能にするＵＩが提示される（４）。ユーザは、ゲストを追加すること、ＵＩを介してゲストを削除すること、及び／又は、セッションを終了することが可能である。
【０２１７】
実装例によれば、システムは、別のユーザの機器を閲覧しながら、ユーザに対する制限アクセス制御を実施することができる。
【０２１８】
ビジュアルアクセスコード
【０２１９】
様々な実施形態では、アクセスは、組み合わせ候補を増やすことによってセキュリティを高めると共に、ユーザがより容易に思い出せるようにするビジュアルアクセスコードメカニズムを介して制御されることがある。ビジュアルアクセスコードメカニズムは、２つの入力フェーズを有するＵＩを介して提示される。第１の入力フェーズは、ユーザがシステムアドミニストレータによって予め設定される可能性がある写真又は画像の組から１枚の写真を選択することを要求する。写真集合は、全てのユーザに対して同一である、又は、ユーザ固有である可能性がある。その上、写真集合は、全ての機器に対して同一である、又は、機器固有である可能性がある。
【０２２０】
図３０は、様々な実施形態によるビジュアルアクセスコードを設定するプロセス３０００を示す。ユーザは、ステップ１において画像（たとえば、写真）を提示される可能性がある。ステップ２において、ユーザは、（たとえば、１６個、２５個、３６個などの）ホットスポット候補からホットスポットの一部（たとえば、４個、５個など）を（たとえば、クリックする、タッチする、ジェスチャを行うなどによって）選択するよう要求される。たとえば、ユーザは、写真にマークが付けられた１６個のホットスポットから、任意の順序でホットスポットに触れることによって、４個のホットスポットからなる一部を選択することができる。一部の実施形態では、画像は、ホットスポットが見えるようにして、ユーザホットスポットを選択し、選択されたホットスポットを思い出すことに役立てるために重ね合わせ又はマーキングを行う可能性がある。ビジュアルアクセスコードは、ステップ１で選択された写真と、ステップ２で選択されたホットスポット値の一部とに関連付けられた写真インデックスから構成されている。ホットスポットの一部に関連付けられている写真インデックス及び座標は、暗号化されたダイジェストとして記憶される可能性がある。
【０２２１】
ユーザの視覚的記憶は、画像内のビジュアルキューを使用して、登録された画像及びホットスポットを記憶し、思い出すために利用される。視覚的記憶は、視覚経験に関する我々の感覚の一部の特性を保存する記憶の形式である。視覚的記憶は、知覚処理及びエンコーディングと、結果として生じる神経表現との間の関係性を記述する。視覚的記憶は、事前に訪れた場所へ視覚的にナビゲートするために、眼球運動から長い時間範囲にわたって現れる。登録された画像上のホットスポットの一部を含むビジュアルアクセスコードは、認証機能を提供するため、より長く記憶され、より容易に思い出される可能性がある。さらに、平凡なビジュアルアクセスコードを選択することは、利用可能なホットスポットが写真ごとに異なるので、平凡な英数字パスコード（たとえば、「１１１１」、「１２３４」、「ｐａｓｓｗｏｒｄ」など）よりも可能性が低い。ユーザは、オブジェクト、場所、動物又は人物に類似しているビジュアル情報をビジュアルアクセスコードの心的イメージとして記憶に置くことができる。ユーザは、自分の前頭前野皮質及び前帯状皮質の異なるエリアを使用して、長期視覚記憶からのパターンとしてビジュアルアクセスコードを思い出すことができる。
【０２２２】
様々な実施形態によれば、ビジュアルアクセスコードプロセスのためのシステムは、複数の画像を第１の機器又はサービスのユーザに提示し、ユーザから、複数の画像の中の第１の画像の選択を受信するように、ユーザから、第１の画像に含まれている複数のホットスポットの中の少なくとも第１のホットスポットの選択を受信するように、及び、少なくとも部分的に第１の画像及び第１のホットスポットの選択に基づいてビジュアルアクセスコードを生成するように構成されている第１の機器を含む可能性がある。
【０２２３】
実装例によれば、ビジュアルアクセスプロセスの登録プロセスは、画像（たとえば、写真、ピクチャ、複雑形状、画像など）のグリッドからの第１の選択と、第１の選択された画像のホットスポット位置（たとえば、画素位置、画面座標、重ね合わせポイントなど）の系列に対する第２の選択とを含むことがある。たとえば、ユーザは、様々なランドマークを描写する写真のグリッドを提示され、グリッドからランドマークを描写するピクチャを選択することがある。次に、選択されたランドマークピクチャから、ユーザは、選択されたピクチャ上でホットスポット位置の系列を選択することができる。たとえば、選択されたホットスポット位置は、ランドマークの異なった部分、背景、ピクチャの境界などのピクチャ又は画像上の位置でもよい。ピクチャ又は画像内の描写された形状は、ユーザに対するビジュアルキューとしての役目を果たし、ビジュアルキューは、選択されたホットスポット位置に対応する。その結果、ピクチャ内の描写された形状は、従来型の英数字の組み合わせより容易にユーザのメモリに記憶されることがある。
【０２２４】
システムは、図３２〜図４１を参照してより詳しく記載されるとおり、登録プロセス中にピクチャ及びホットスポットの組のユーザ選択を効率的に記憶することができる。たとえば、複数の写真の各々は、対応するインデックス番号に関連付けられ得る。たとえば、各インデックス番号は、グローバルに一意な写真識別子を含む可能性がある。実施形態では、画像のグリッドからの画像の第１のフェーズ選択は、複数の画像のグリッドの追加ページを含む可能性がある。ユーザは、第１のフェーズ画像選択に対して登録された画像を識別するために、画像のグリッドの複数のページ内をスクロールすることができる。画像の複数のグリッド内の画像の各々は、各画像のグローバルに一意な写真識別子に基づくインデックス番号を含む可能性がある。
【０２２５】
各画像は、ユーザがホットスポットの第２のフェーズ集合の部分集合を選択するためにいくつかの予め定められたホットスポットを含む可能性がある。実装例によれば、複数のホットスポットの各々は、画像インデックス番号を使って暗号学的に記憶することができる対応するホットスポット識別子に関連付けられている。別の実装例によれば、複数のホットスポットの各々は、写真内の対応する画素の２次元座標に関連付けられる可能性がある。
【０２２６】
実施形態によれば、ビジュアルアクセスコードは、たとえば、宛先機器又はサービス上の認証サービスによって実装され得る。実施例では、ウェブサイトは、ユーザを認証するために、従来型の英数字ログインフォームをビジュアルアクセスコードの２フェーズ入力方法で置換することができる。ユーザがビジュアルアクセスコードを認証サービスに登録した後、認証サービス（たとえば、モバイル機器又はウェブサイト）は、ビジュアルアクセスコードの後続のエントリを記憶された登録アクセスコードにマッチさせるユーザのビジュアルアクセスコードを安全に記憶するために様々な技術を使用することができる。たとえば、ユーザがビジュアルアクセスコードを登録した後、認証サービスは、第１のフェーズに関連付けられている識別子及び第２のフェーズに関連付けられている座標をテキスト文字列に変換し、文字列を暗号学的に記憶することができる。その後、ユーザが宛先を再訪問し、ビジュアルアクセスコードを入力したとき、認証サービスは、宛先にアクセスするユーザの権限を検証するために、記憶された文字列をデコードすることができる。
【０２２７】
別の実施形態によれば、ビジュアルアクセスコードは、ユーザからビジュアルアクセスコードを受信し、英数字パスワードを様々な宛先へ出力するクライアント側ビジュアル認証インターフェース（ＶＡＩ）によって実装され得る。本実施形態では、ＶＡＩは、宛先に基づいて英数字パスワードを再作成するアルゴリズムを含む。実施例では、ユーザは、ＶＡＩを使って、従来型の英数字ログインフォームを使用するウェブサイトにアクセスできる。宛先と一緒にＶＡＩを使用するため、ユーザは、英数字パスワードをセットアップ又は登録するためにＶＡＩを利用する。
【０２２８】
ビジュアルアクセスコードシステムは、画面上の仮想入力メカニズム又はビジュアル認証インターフェース（ＶＡＩ）を通じてビジュアルアクセスコードを入力するシステム及び方法をさらに含む可能性がある。ＶＡＩは、他のアプリケーション又はウェブサイトからのサポートを必要としないクライアント側ビジュアルパスワード入力ソフトウェアとして機能する。ＶＡＩは、ユーザが視覚的にパスワードを入力することを可能にするユーザ・インターフェースをユーザに提示し、その後、ソフトウェアは、このようなビジュアルアクセスコードを現行のウェブサイト及びアプリケーションに適した普通の英数字にエンコードする。このシステムは、どこにもパスワードを記憶することがなく、ユーザがビジュアルアクセスコードを入力するときに毎回パスワードを矛盾なく生成する。
【０２２９】
たとえば、ビジュアルアクセスコード入力専用の仮想キーボードは、ＶＡＩでもよい。ＶＡＩは、ビジュアルアクセスコードプロセスを介したビジュアルパスワードの入力のためのクライアント側認証を実行できる。ＶＡＩは、機器ハードウェアとは独立にビジュアルアクセスコードを入力するためにユーザにインターフェースを提示する。すなわち、ＶＡＩは、指紋リーダのようなハードウェアを必要とはしないセキュア認証のための互換性を提供し、局所的に記憶されたパスワードとは独立にビジュアルアクセスコードの完全性を維持する。
【０２３０】
ユーザは、自分のパスワードフォームをリセットするために進み、宛先のパスワードフォームに英数字パスワードを投入するためにＶＡＩを開始することがある。以下に記載されているとおり、ＶＡＩは、ユーザによって入力されたビジュアルアクセスコードに基づいて宛先のための英数字パスワードを矛盾なく再生成するであろう。その上、同じビジュアルアクセスコードが異なった宛先のためのＶＡＩに入力されたとき、ＶＡＩは、異なった英数字パスワードを生成する。その結果として、ＶＡＩは、従来型の宛先ログイン方法と互換性があるビジュアルアクセスコードを使用してユーザを認証することができる。ユーザが宛先に登録するためにＶＡＩを使用した後、宛先は、ＶＡＩの出力（たとえば、英数字パスワード）を記憶する。ＶＡＩの出力は、宛先側認証鍵としての役割を果たし、他方、ビジュアルアクセスコードは、クライアント側認証鍵である。
【０２３１】
たとえば、宛先がＶＡＩの出力を記録した後、ユーザは、宛先を再訪問し、ＶＡＩを開始し、ユーザのビジュアルアクセスコードを入力することができ、ＶＡＩは、宛先によって予め記憶されたパスワードにマッチするパスコードを出力するであろう。様々な実施形態では、ＶＡＩの出力は、ユーザの一意識別子、第１の画像の選択、第１の画像の固有識別子、画像融合アルゴリズム、ホットスポットの選択、ホットスポット座標のシフト、及び／又は、１つ若しくは複数の一方向性暗号アルゴリズムを使用する１６進ダイジェストに基づく可能性がある。
【０２３２】
ユーザが選択された画像のホットスポットの系列又は組を登録した後、ユーザには、機器又はサービスに対してユーザを認証するビジュアルアクセスコードプロセスが提示され得る。たとえば、ユーザは、機器又はサービスのアクセスインターフェースまで進み、ビジュアルアクセスプロセスの第１のフェーズ中に多数の写真又は画像が提示されることがある。ユーザは、登録されたプロセスの間に、提示された多数の写真の中から事前に選択された正しい写真を思い出さなければならない。たとえば、ユーザは、様々な有名なランドマークを描写するピクチャのグリッドが提示されることがある。ユーザの登録された画像は、登録プロセス中に同じ複数の写真とグループ化されることがあり、又は、登録プロセス中に提示された画像とは異なった写真とグループ化されることがある。ユーザは、最初に、複数の画像から、登録された画像を選択する。たとえば、ユーザ選択画像は、写真のグローバルに一意な写真識別子のインデックス番号とマッチする可能性がある。
【０２３３】
図３１は、ビジュアルアクセスコード共に用いられるロックコード管理インターフェース例を示す。ロックコード管理インターフェース３１００は、ユーザがビジュアルアクセスコードを管理し、ビジュアルアクセスコード優先を設定し、ユーザプロファイルを割り当てることなどを可能にする。実施形態例では、ロックコード管理インターフェースは、ユーザが、メディアアプリケーション、ファイナンシャルアプリケーション、ワークアプリケーションなどのアプリケーションカテゴリに基づいて、異なったビジュアルアクセスコードを設定することを可能にする。マスタユーザは、サービス又は機器の異なったサブユーザに対して多数のビジュアルアクセスコードを設定することができる。たとえば、親は、子どもがゲーミングアプリケーションにアクセスすることを許可するゲストビジュアルアクセスコードを設定することがある。別の実施例では、配偶者は、この配偶者のパートナーが配偶者のファイナンシャルアカウントにアクセスことを許可するが、ソーシャルメディア又はメッセージングアカウントにアクセスすることを許可しないパートナービジュアルアクセスコードを設定することがある。
【０２３４】
図３２は、例示的な実施形態によるビジュアルアクセスコードを設定するフロー例３２００を示す。プロセスは、ユーザから一意識別子を集めることから始まる。プロセス３２００は、図３３を参照してさらに記載されるように、ユーザのための一貫した画像の組を生成するために一方向性暗号符号化を使用する。ワークフロー３２００は、図３６を参照してさらに記載されているとおり、続けて、ユーザがマスタパスワードを設定したいかどうかを判定する。
【０２３５】
図３３は、様々な実施形態によるユーザ識別子を写真選択マッピングにマッピングするプロセス例３３００を示す。プロセス３３００は、ユーザが一意識別子を提供することから始まることがある。プロセス３３００は、図３５〜図３６を参照してより詳細に記載されているとおり、一方向性暗号符号を判定し、一意ユーザ１６進ダイジェストを生成することがある。次に、一意ユーザ１６進ダイジェストは、図４０〜図４１を参照してより詳細に記載されているとおり、写真及びホットスポットの一意リストを生成するために使用される可能性がある。次に、プロセス３３００は、図３７〜図３９を参照してより詳細に記載されているとおり、写真のリストをユーザに提示して、パスコードを登録する。
【０２３６】
コンパクト符号化
【０２３７】
一部の実施形態では、ビジュアルアクセスコードは、コンパクト符号化を使用してエンコードされることがある。たとえば、コンパクト符号化において、各写真は、０から８までのインデックスをもつことができるが、各ホットスポットは、０から１５までのインデックスを有する。ホットスポットに割り当てられたインデックスと写真内のホットスポットの位置との間に一定の相関が存在ないことがある。ホットスポットに割り当てられたインデックスと写真内でのホットスポットの位置との間の相関は、写真に依存する。実施形態では、ホットスポットに関連付けられたインデックス値は、ランダムに割り当てられる。その結果、ホットスポットに対するランダムなインデックス割り当ては、セキュアなアクセスパスコードを作成する。
【０２３８】
上記実施例では、コンパクト符号化は、１６個の候補値を作成する。これらの値のうちの４個が何回でもどんな順番でも選択され、３，８７６個の候補を生じさせる。さらに９個の異なる写真が存在するので、組み合わせ候補の個数は、９×３，８７６＝３４，８８４個まで増加し、これは、従来型の４桁数字パスコードによって与えられた候補数の３倍より多い。
【０２３９】
ポジション符号化
【０２４０】
一部の実施形態では、ビジュアルアクセスコードは、１つ１つの選択されたホットスポットの座標に基づいてポジション符号化を使用して生成されることがある。同じ写真に対して、各ホットスポットの座標は、一定であることがあるが、これらの座標は、一方の写真から別の写真へ移すことができない。表１は、前の節に記載されたとおりの単純なホットスポットインデックス符号化がどのように座標インデックスにマッピングされるかを表している。たとえば、ホットスポットインデックス２は、写真１内の値（１４０及び５９）と写真２内の（８９及び１４７）に対応する。コンパクト符号化を用いると、値２は、写真の間で共有されるが、同じホットスポットに対する座標値は、写真間で共有されない。その上、記憶された桁数も増える（たとえば、４個の値の代わりに８個）。このようして、ポジション符号化は、より一層多くの候補を生成し、対応するビジュアルアクセスコードを破ることをより一層難しくする。
【０２４１】
一部の実施形態では、ビジュアルアクセスコードは、写真のサイズ及び／又は解像度に依存することがあり得る。たとえば、５００×５００画素の写真では、各ホットスポットは、水平軸方向に０から４９９まで、及び、垂直軸方向に０から４９９までのコードを生成することができる。このため、４個のホットスポットは、８桁と等価であり、これは、１．０２４３２８６０ｅ＋１７個の候補を生じる。この数は、写真の枚数（たとえば、９）がさらに乗じられ、これは、従来型の８文字長の英数字の大小文字を区別したパスワード（すなわち、２．０２０９５４５５ｅ＋１１個の候補）より遙かに強いパスワードに対する〜９ｅ＋１７個の候補を生じさせる。
【表１】
2019508826.tif 000003
【０２４２】
一意写真識別子を用いるポジション符号化
【０２４３】
一部の実施形態では、あらゆる写真には、グローバル一意識別子を関連付けることができる。このため、パスコードを記憶することは、システム又はユーザに依存する。ユーザは、２つの異なったシステムに対して同じパスワードを選択することができない。たとえば、ポジション符号化を使用してエンコードされたパスコード（０，１００，１０１，２００，２０１，３００，３０１，４００，４０１）は、第１の写真（すなわち、写真０）に対応する。しかし、一意写真識別子を組み込むことは、パスワード（３８Ａ５２ＢＥ４−９３５２−４５３Ｅ−ＡＦ９７  ５Ｃ３Ｂ４４８６５２Ｆ  ０，１００，１０１，２００，２０１，３００，３０１，４００，４０１）を生成し、ここで、「３８Ａ５２ＢＥ４−９３５２−４５３Ｅ−ＡＦ９７−５Ｃ３Ｂ４４８６５２Ｆ０」は、写真グローバル一意識別子である。様々な実施形態では、グローバル一意識別子は、推定することが困難である長さの値（たとえば、１６文字長の数）になり得る。
【０２４４】
図３４は、様々な実施形態による一意ユーザ１６進ダイジェスト例を示す。１６進ダイジェストは、写真選択インデックス、フィルタ混合アルゴリズム識別子、最終パスワードマッピングアルゴリズム識別子、写真フィルタビットマップ、及び、ホットスポット識別子を含むことができる。たとえば、一意ユーザ１６進ダイジェストは、写真選択インデックスのため指定された８バイトから始まり、その後に、１バイトフィルタ混合アルゴリズム識別子と、最終パスワードマッピングアルゴリズムのインジケータとが続けられる。実施形態例では、写真フィルタビットマップは、２７バイトで構成されることがある。実施形態例によれば、一意ユーザ１６進ダイジェストは、ホットスポットシフト用インデックスを指示する２５バイトを含む可能性がある。
【０２４５】
図３５は、実施形態例によるビジュアルアクセスコードを割り当てる登録プロセス例を示す。登録プロセス３５００は、認証を必要とする宛先へのユーザナビゲーションから始まることがある。仮想入力（たとえば、ＶＡＩ）方法は、ユーザ名及びパスワードを要求する従来型のログインフォームを検出することがある。ユーザがユーザ名を従来型のログインフォームにタイプ入力した後、登録プロセス３５００方法は、１６進ダイジェストを使用してビジュアルアクセスコードを宛先に割り当てる登録インターフェースを提示することがある。ユーザは、前述のとおり、ＶＡＩを介して、宛先のための新しいビジュアルアクセスコードを登録するために、第１の画像及びホットスポットの系列群を選択することを進める。
【０２４６】
提供されたユーザ名及び宛先識別子に基づいて、ＶＡＩは、記憶されたパスワードを宛先とマッチさせるために１６進ダイジェストに基づくパスワードを再生成することができる。
【０２４７】
登録プロセス３５００は、１６進ダイジェストに基づくパスワードを使って従来型のログインフォームを完了することに進むことがある。たとえば、登録プロセス３５００は、一方向性暗号符号化を使用し、宛先識別子を用いてパスワードにシード値を与えて、英数字パスワードを生成することができる。パスワードシードは、図３６を参照して記述されているとおり、英数字パスワードを生成する前に、一方向性暗号アルゴリズムに入力するために使用される。シードは、ユーザの選択したホットスポットとシードとの間に直接的な１対１のマッピングをもつ。このプロセスは、同じビジュアルパスコードが使用されるときでも異なったアプリケーション／ウェブサイト宛先が異なったパスワードを有するように、一方向性暗号方式の前にアプリケーション／ウェブサイト宛先名を使ってシード値が与えられたパスワードを生成する。その結果、アクセスコードプロセスがユーザ入力に基づいてパスワードの生成を矛盾なく再現するので、ユーザのシステムは、サイトごとにパスワードを記憶することを必要としない。
【０２４８】
例示的な実施形態によれば、ビジュアルアクセスコードをセットアップするアルゴリズムは、以下を含むことがあり得る：
一方向性暗号法、すなわち、ｓｈａ−５１２を用いてフレーズをエンコードする
ｕｎｉｑｕｅＵｓｅｒＨｅｘＤｉｇｅｓｔ  ＝  ｏｎｅｗａｙＣｒｙｐｔｏｇｒａｐｈｙ（ユーザフレーズ）とする
ｕｎｉｑｕｅＵｓｅｒＨｅｘＤｉｇｅｓｔをホストシステムＫｅｙｓｔｏｒｅに保存する
写真のリストを生成するために暗号方式を使用する
ｂａｓｅＰｈｏｔｏＩｎｄｅｘ  ＝  ｇｅｔＢｙｔｅＡｔＩｎｄｅｘ（０，８，  ｕｎｉｑｕｅＵｓｅｒＨｅｘＤｉｇｅｓｔ）とする
インデックスｉを０から（キーに対して使用する写真の数）−１まで繰り返す
ｐｈｏｔｏＩｎｄｅｘ  ＝  （ｂａｓｅＰｈｏｔｏＩｎｄｅｘ  ＋  ｉ）ｍｏｄｕｌｕｓ  （システム内の写真の総数）とする
ｐｈｏｔｏ  ＝  ｇｅｔＰｈｏｔｏＷｉｔｈＩｎｄｅｘ（ｐｈｏｔｏＩｎｄｅｘ）とする
ｂｌｅｎｄｉｎｇＡｌｇｏｒｉｔｈｍＩｎｄｅｘ＝  ｇｅｔＢｙｔｅＡｔＩｎｄｅｘ（８，  ｕｎｉｑｕｅＵｓｅｒＨｅｘＤｉｇｅｓｔ）とする
ｐｈｏｔｏＦｉｌｔｅｒＢｉｔｍａｐ  ＝  ｇｅｔＮｕｍｂｅｒＯｆＢｙｔｅｓＦｒｏｍＰｏｓｉｔｉｏｎ（２７，１２，  ｕｎｉｑｕｅＵｓｅｒＨｅｘＤｉｇｅｓｔ）とする
ｐｈｏｔｏＢｌｅｎｄｉｎｇＦｉｌｔｅｒ  ＝  ｇｅｎｅｒａｔｅＦｕｌｌＰｈｏｔｏＦｒｏｍＢｉｔｍａｐ（ｐｈｏｔｏＦｉｌｔｅｒＢｉｔｍａｐ）とする
ｆｉｎａｌＰｈｏｔｏ  ＝  ｂｌｅｎｄＰｈｏｔｏＷｉｔｈＦｉｌｔｅｒＵｓｉｎｇＡｌｇｏｒｉｔｈｍ（ｐｈｏｔｏ，  ｐｈｏｔｏＢｌｅｎｄｉｎｇＦｉｌｔｅｒ，  ｂｌｅｎｄｉｎｇＡｌｇｏｒｉｔｈｍＩｎｄｅｘ）とする
ｈｏｔｓｐｏｔｓ  ＝  ｇｅｔＰｈｏｔｏＨｏｔＳｐｏｔｓＦｏｒＩｎｄｅｘ（ｐｈｏｔｏＩｎｄｅｘ）とする
ｈ＝０とする
ｓｈｉｆｔｅｄＨｏｔＳｐｏｔｓ  ＝  サイズ２５の配列
各ホットスポットに対して
ｈｏｔｓｐｏｔＳｈｉｆｔ  ＝  ｇｅｔＢｙｔｅＡｔＩｎｄｅｘ  （ｈ＋３８，  ｕｎｉｑｕｅＵｓｅｒＨｅｘＤｉｇｅｓｔ）とする
ａｄｊｕｓｔｅｄＨｏｔＳｐｏｔ  ＝  ａｄｊｕｓｔＨｏｔＳｐｏｔＣｅｎｔｅｒＢｙＳｈｉｆｔ（ｈｏｔｓｐｏｔｓ［ｈ］，  ｈｏｔｓｐｏｔＳｈｉｆｔ）とする
ｓｈｉｆｔｅｄＨｏｔＳｐｏｔｓ．ａｄｄ（ａｄｊｕｓｔｅｄＨｏｔＳｐｏｔ）
【０２４９】
宛先が訪問されたとき、ＶＡＩは、ユーザを認証するために、関連付けられているビジュアルアクセスコードを判定し、仮想入力方法をユーザに提示することがある。仮想入力方法を介したビジュアルアクセスコード認証の成功に応答して、システムは、宛先認証を完了するために、割り当てられた英数字パスワードを従来型のログインフォームに投入することがある。
【０２５０】
図３６は、実施形態例によるパスワードを用いてビジュアルアクセスコードをエンコードするプロセス例３６００を示す。プロセス３６００は、パスコードシードを生成するために、写真ＳＨＡ−５１２ｈａｓと、ｘ軸によってソートされたホットスポット位置と、アプリケーション／ウェブサイト宛先識別子とを入力することがある。プロセス３６００は、英数字パスワードをマップするために使用された１６進ダイジェストを生成するために一方向性暗号アルゴリズムを用いてエンコードされたパスコードを使用する。実施形態例では、結果として得られるパスワードは、大文字及び小文字の英数字と特殊文字とを含むことができるセキュアなＡＳＣＩＩパスワードを生成するであろう。実施形態例によれば、アルゴリズムは、以下を含むことがあり得る：
ｐａｓｓｗｏｒｄＨｅｘＤｉｇｅｓｔを入力する
ｐａｓｓｗｏｒｄＢｙｔｅｓ  ＝  ｇｅｔＮｕｍｂｅｒＯｆＢｙｔｅｓＦｒｏｍＰｏｓｉｔｉｏｎ（０，１６，  ｐａｓｓｗｏｒｄＨｅｘＤｉｇｅｓｔ）
ｆｉｎａｌＰａｓｓｗｏｒｄ  ＝  “”とする
ｐａｓｓｗｏｒｄＢｙｔｅｓ内の各バイトに対して
Ｉｆ  （ｂｙｔｅ  ＝＝  ４５  ＯＲ  
（ｂｙｔｅ  ＞＝４８  ＡＮＤ  ｂｙｔｅ  ＜＝５７）  ＯＲ  
（ｂｙｔｅ  ＞＝６５  ＡＮＤ  ｂｙｔｅ  ＜＝９０）  ＯＲ
（ｂｙｔｅ  ＞＝９７  ＡＮＤ  ｂｙｔｅ  ＜＝１２２））｛
／／  そのままの値を取得する
ｆｉｎａｌＰａｓｓｗｏｒｄ．ａｐｐｅｎｄ（ｂｙｔｅ）
次のバイトに続く
｝
ｍｏｄＢｙｔｅ  ＝  ｂｙｔｅ  ｍｏｄｕｌｕｓ  ６３とする
ｉｆ（ｍｏｄＢｙｔｅ  ＝＝  ０）｛
ｍｏｄＢｙｔｅ  ＋＝  ４５
｝ｅｌｓｅ  ｉｆ  （ｂｙｔｅ  ＞＝１  ＡＮＤ  ｂｙｔｅ  ＜＝１１）｛
ｍｏｄＢｙｔｅ  ＋＝  ４７
｝ｅｌｓｅ  ｉｆ  （ｂｙｔｅ  ＞＝１２  ＡＮＤ  ｂｙｔｅ  ＜＝３７）｛
ｍｏｄＢｙｔｅ＋＝  ５３
｝ｅｌｓｅ｛
ｍｏｄＢｙｔｅ＋＝  ５９
｝
ｆｉｎａｌＰａｓｓｗｏｒｄ．ａｐｐｅｎｄ（ｍｏｄＢｙｔｅ）
【０２５１】
図３７は、様々な実施形態によるモバイルインターフェース例を示す。仮想入力方法に対するビジュアルアクセスコードをセットアップするために、ユーザは、自分の名前、母親の旧姓、誕生日、又はお気に入りの場所などの一意パスフレーズを選択することによって開始する。ステップ２で、システムは、ユーザが登録画像を選択するための画像の組を生成する。実施形態例によれば、アルゴリズムは、以下を含むことがあり得る：
ｐｈｏｔｏＨｅｘＤｉｇｅｓｔ  ＝  ｇｅｎｅｒａｔｅＯｎｅＷａｙＣｒｙｐｔｏｇｒａｐｈｙＦｒｏｍ（ｐｈｏｔｏＢｉｔｍｐａ）とする
ｓｅｌｅｃｔｅｄＨｏｔｓｐｏｔｓＸＹ  ＝  “”とする
選択された各ホットスポットに対して
ｈｏｔｓｐｏｔＸＹ＝ｇｅｔＸＹＦｏｒＨｏｔｓｐｏｔとする
ｓｅｌｅｃｔｅｄＨｏｔｓｐｏｔｓＸＹ．ａｐｐｅｎｄ（ｈｏｔｓｐｏｔＸＹ）
Ｅｎｄ  
ｓｉｔｅＯｒＡｐｐＩｄ  ＝  ｃｏｌｌｅｃｔＣｕｒｒｅｎｔＳｉｔｅＯｒＡｐｐＩｄとする
ｆｉｎａｌＰａｓｓｗｏｒｄＳｅｅｄ  ＝  ｃｏｎｃａｔ（ｐｈｏｔｏＨｅｘＤｉｇｅｓｔ，  ｓｅｌｅｃｔｅｄＨｏｔｓｐｏｔｓＸＹ，  ｓｉｔｅＯｒＡｐｐＩｄ）とする
ｐａｓｓｗｏｒｄＨｅｘＤｉｇｅｓｔ  ＝  ｇｅｎｅｒａｔｅＯｎｅＷａｙＣｒｙｐｔｏｇｒａｐｈｙＦｒｏｍ（ｆｉｎａｌＰａｓｓｗｏｒｄＳｅｅｄ）とする
ｐａｓｓｏｒｄＭａｐｐｉｎｇＡｌｇｏｒｉｔｈｍＩｎｄｅｘ＝  
ｇｅｔＢｙｔｅＡｔＩｎｄｅｘ  （９，  ｕｎｉｑｕｅＵｓｅｒＨｅｘＤｉｇｅｓｔ）とする
ａｓｃｉｉＰａｓｓｗｏｒｄ＝  ｇｅｎｅｒａｔｅＡｓｃｉｉＰａｓｓｗｏｒｄＷｉｔｈＡｌｇｏｒｉｔｈｍ（ｐａｓｓｗｏｒｄＨｅｘＤｉｇｅｓｔ，  ｐａｓｓｏｒｄＭａｐｐｉｎｇＡｌｇｏｒｉｔｈｍＩｎｄｅｘ）とする
【０２５２】
図３８は、実施形態例によるビジュアルアクセスコードを入力する実装例を示す。ステップ１で、ユーザは、認証を必要とする宛先ウェブサイト若しくはアプリケーション又はログイン画面に進む。ＶＡＩは、宛先の認証フォームを検出し、宛先識別子に関連付けられたビジュアルアクセスコードを取り出すことができる。ＶＡＩは、宛先のためユーザによって以前に登録された画像の組をユーザに提示する。ユーザが登録された画像にマッチする画像を選択することに応答して、ＶＡＩは、ステップ２へ進み、ユーザに登録された画像のホットスポットを提示する。たとえば、登録された画像は、１６個のホットスポット候補を含む自宅の画像でもよい。
【０２５３】
ユーザが以前に登録されたホットスポットとマッチするホットスポットの系列を選択することに応答して、ビジュアル入力方法は、ステップ３へ進む。たとえば、ユーザは、登録プロセス中にユーザが選択したホットスポットにマッチする、描写された自宅の異なる部分に対応する画像上の異なる場所に触れることにより４個のホットスポットを識別することがある。ステップ３で、仮想入力方法は、ビジュアルアクセスコードと一緒に宛先の認証フォームに記憶された英数字パスワードを入力する。一部の実施形態例では、仮想入力方法は、ユーザがビジュアルアクセスコードを入力することに成功した確認メッセージを提示することがある。ユーザは、英数字パスワードをタイプ入力する必要なしにログインを完了するために、宛先の認証フォームをクリックすることにより先へ進むことがある。
【０２５４】
図３９Ａ〜図３９Ｃは、様々な実施形態によるウェブサイト上の仮想入力方法の実装例を示す。図３９Ａは、ユーザに以前に登録された画像を含むいくつかの画像を提示する仮想入力方法の第１のフェーズを示す。ユーザは、登録された画像をクリックする又は触れることにより以前に登録された画像を識別することがある。ユーザが登録された画像にマッチする画像を選択することに応答して、ユーザは、登録された画像を提示され、登録された画像上でホットスポットの系列を識別するように指示されることがある。
【０２５５】
図３９Ｂでは、ユーザは、仮想入力方法のためのホットスポット選択画面が提示される。インターフェースは、選択された画像に対するいくつかのホットスポットをユーザに提示することができる。ユーザが登録されたホットスポットの系列群にマッチする登録された画像上のホットスポットの系列を選択したことに応答して、ビジュアルアクセスコードプロセスは、機器又はサービスに対してユーザを認証することがある。たとえば、ユーザは、ユーザが登録されたプロセス中に選択したホットスポット位置に対応するピクチャ上の４箇所をクリック又触れる可能性がある。たとえば、ビジュアルアクセスプロセスは、ユーザが選択した場所が登録プロセス中に記憶された対応するインデックス番号を満たすかどうかを判定する。別の実装例によれば、ビジュアルアクセスプロセスは、ユーザが選択した場所が登録プロセスからの写真内の対応する画素の２次元座標を満たすかどうかを判定する。
【０２５６】
実装例では、ユーザを認証するビジュアルアクセスコードプロセスの第２のフェーズを満たすために、登録された画像上のホットスポットの系列は、ホットスポットが登録プロセス中に選択された順序と同じ順序で識別されることがある。別の実装例では、登録された画像上のホットスポットの系列は、ユーザを認証するビジュアルアクセスコードプロセスの第２のフェーズを満たすためにどんな順序でも識別されることがある。場所及びビジュアルキューの並べ替えは、従来型の英数字組み合わせより著しく増加するので、正しい画像を最初に思い出し、次に正しい画像上のホットスポット位置の系列を識別するユーザは、ユーザを認証するのに十分であるかもしれない。
【０２５７】
ユーザが登録された画像にマッチしない画像を選択するのに応答して、ユーザには、マッチしない画像を提示され、マッチしない画像上のホットスポットの系列を識別するように命令されることがある。ユーザを認証するために、ビジュアルアクセスコードプロセスは、複数の画像からの第１の画像の選択に関してユーザへのフィードバックを行う、又は、フィードバックを抑制することができる。その結果、権限のないユーザは、第１の画像の選択又は第２のホットスポットの系列の識別がビジュアルアクセスコードプロセスを満たすことができなかったかどうかを通知されないことがある。画像及びホットスポット位置のグループから異なった画像の組み合わせの推測を示す度重なる試行は、その結果、ブルートフォース攻撃として検出されることがある。
【０２５８】
正しいホットスポットが選択された場合、仮想入力方法は、図３９Ｃへ進み、確認をユーザに提示し、宛先のログインフォームに英数字最終パスワードを投入することができる。
【０２５９】
各ユーザに対してセキュアなビジュアルアクセスコードを作成するために、プロセスは、視覚的には識別できないと思われるが各ユーザに対して一意である修正された画像を利用することができる。実施形態では、プロセスは、ホットスポットの座標を修正するために原画像の中心点をシフトすることを含み、画像データを保護するために合成テクスチャを追加することができる。
【０２６０】
図４０は、様々な実施形態による画像融合プロセスを示す。各ユーザに対する融合写真は、ユーザの画像選択を調べて観察するだけでは検出できない異なったパスワードを各ユーザに提供する。実施形態では、システムは、融合アルゴリズムによってテクスチャマスクを原写真と組み合わせ、セキュアなビジュアルアクセスコードを生成するため修正された写真を作成する。写真融合アルゴリズム例は、以下を含むことがあり得る：
ｒｅｓｕｌｔｉｎｇＰｈｏｔｏ  ＝  ｃｏｐｙＰｈｏｔｏ（ｏｒｉｇｉｎａｌＰｈｏｔｏＳｉｚｅ）とする
０からｐｈｏｔｏＷｉｄｔｈまでの各ｘに対して
０からｐｈｏｔｏＨｅｉｇｈｔまでの各ｙに対して
ｒｅｓｕｌｔｉｎｇＰｈｏｔｏＰｉｘｅｌＡｔ（ｘ，ｙ）  ＝  ｒｅｓｕｌｔｉｎｇＰｈｏｔｏＰｉｘｅｌＡｔ（ｘ，ｙ）  ＋  ｓｅｔＴｒａｎｓｐａｒｅｎｃｙＴｏ（ｐｈｏｔｏＢｌｅｎｄｉｎｇＦｉｌｔｅｒＰｉｘｅｌＡｔ（ｘ，ｙ），２０％）
Ｅｎｄ
Ｅｎｄ
【０２６１】
実施形態例では、システムは、一意ユーザ１６進ダイジェストに記憶された融合アルゴリズム及び写真フィルタビットマップを選択する。たとえば、１６進ダイジェストは、修正された写真を作成する単純な重複融合アルゴリズムを指示する値を含むことができる。多数の融合及びパスワードマッピングアルゴリズムがアクセスコードのセキュリティを向上させる。
【０２６２】
図４１は、様々な実施形態によるホットスポット位置シフトの実装例を示す。原写真座標の中心点をシフトすることにより、画像上のホットスポットの場所値は、同じビジュアル画像を使用し、かつ、画像の視覚的見かけを維持して、各ユーザに対して異なったパスワードを生成するために変更され得る。
【０２６３】
ホットスポットシフトアルゴリズム例は、以下を含むことがあり得る：
ｈｏｔｓｐｏｔＳｈｉｆｔｉｎｇＩｎｄｅｘを入力する
各ｈｏｔｓｐｏｔに対して
ｈｏｔｓｐｏｔ．ｘ  ＝  （ｈｏｔｓｐｏｔ．ｘ  −  ２）  ＋  （ｈｏｔｓｐｏｔＳｈｉｆｔｉｎｇＩｎｄｅｘ  ｒｅｍａｉｎｄｅｒ  ５）
ｈｏｔｓｐｏｔ．ｙ  ＝  （ｈｏｔｓｐｏｔ．ｙ  −  ２）  ＋  （ｈｏｔｓｐｏｔＳｈｉｆｔｉｎｇＩｎｄｅｘ  ｍｏｄｕｌｕｓ  ５）
Ｅｎｄ
【０２６４】
たとえば、登録フェーズ中に提供された一意ユーザフレーズに基づいて、１６進ダイジェストは、ホットスポット中心をシフトさせ、それによって、ユーザに対する画像のホットスポット座標を区別するシフト値を提供することができる。たとえば、一意ユーザ１６進ダイジェスト内のシフト値９に基づいてシフトされたとき、位置座標３０、５０をもつ原ホットスポット中心は、ホットスポット中心を位置座標３０１、４９へシフトさせる。
【０２６５】
図４２は、様々な実施形態による有線又は無線システム５５０を示すブロック図である。図１及び図２１を参照すると、システム５５０は、メディアプラットフォーム１２０を実装するために使用されることがある。様々な実施形態では、システム５５０は、有線又は無線データ通信の能力をもつ従来型のパーソナルコンピュータ、コンピュータサーバ、パーソナルデジタルアシスタント、スマートフォン、タブレットコンピュータ、又はその他のプロセッサ対応機器となり得る。その他のコンピュータシステム及び／又はアーキテクチャが、当業者に明らかであるように、同様に使用されることがある。
【０２６６】
システム５５０は、好ましくは、プロセッサ５６０などの１台又は複数のプロセッサを含む。入力／出力を管理する補助プロセッサ、浮動小数点数学演算を実行する補助プロセッサ、信号処理アルゴリズムの高速実行に適したアーキテクチャを有する専用マイクロプロセッサ（デジタル信号プロセッサ）、主処理システムに従属するスレーブプロセッサ（たとえば、バックエンドプロセッサ）、デュアル若しくはマルチプロセッサシステムのための追加マイクロプロセッサ若しくはコントローラ、又は、コプロセッサなどの追加プロセッサが設けられることがある。このような補助プロセッサは、ディスクリートプロセッサでもよく、又は、プロセッサ５６０と統合されてもよい。
【０２６７】
プロセッサ５６０は、好ましくは、通信バス５５５に接続されている。通信バス５５５は、システム５５０のストレージと他の周辺コンポーネントとの間の情報転送を容易にするデータチャネルを含むことがある。通信バス５５５は、プロセッサ５６０との通信のため使用される信号の組、たとえば、データバス、アドレスバス、及び制御バス（図示せず）などをさらに提供することがある。通信バス５５５は、たとえば、業界標準アーキテクチャ（「ＩＳＡ」）、拡張業界標準アーキテクチャ（「ＥＩＳＡ」）、マイクロチャネルアーキテクチャ（「ＭＣＡ」）、ペリフェラルコンポーネントインターコネクト（「ＰＣＩ」）ローカルバス、若しくは、ＩＥＥＥ  ４８８汎用インターフェースバス（「ＧＰＩＢ」）、ＩＥＥＥ  ６９６／Ｓ−１００などを含む米国電気電子技術者協会（「ＩＥＥＥ」）によって公表された標準に準拠するバスアーキテクチャなどの標準又は非標準バスアーキテクチャを備えることがある。
【０２６８】
システム５５０は、好ましくは、主メモリ５６５を含み、二次メモリ５７０も含むことがある。主メモリ５６５は、プロセッサ５６０上で動くプログラムのための命令及びデータの格納場所を提供する。主メモリ５６５は、典型的には、たとえば、ダイナミック・ランダム・アクセス・メモリ（「ＤＲＡＭ」）及び／又はスタティック・ランダム・アクセス・メモリ（「ＳＲＡＭ」）などの半導体ベースのメモリである。その他の半導体ベースのメモリタイプは、たとえば、リード・オンリ・メモリ（「ＲＯＭ」）を始めとして、同期ダイナミック・ランダム・アクセス・メモリ（「ＳＤＲＡＭ」）、Ｒａｍｂｕｓダイナミック・ランダム・アクセス・メモリ（「ＲＤＲＡＭ」）、強誘電体ランダム・アクセス・メモリ（「ＦＲＡＭ（登録商標）」）などを含む。
【０２６９】
二次メモリ５７０は、場合によっては、内部メモリ５７５、及び／又は、リムーバル媒体５８０、たとえば、フロッピーディスクドライブ、磁気テープドライブ、コンパクトディスク（「ＣＤ」）ドライブ、デジタル汎用ディスク（「ＤＶＤ」）ドライブなどを含むことがある。リムーバブル媒体５８０は、周知の方法で読み出される、及び／又は、書き込まれる。リムーバブル記憶媒体５８０は、たとえば、フロッピーディスク、磁気テープ、ＣＤ、ＤＶＤ、ＳＤカードなどでもよい。
【０２７０】
リムーバル記憶媒体５８０は、コンピュータ実行可能なコード（たとえば、ソフトウェア）及び／又はデータが記憶されている非一時的なコンピュータ読み取り可能な媒体である。リムーバブル記憶媒体５８０に記憶されたコンピュータソフトウェア又はデータは、プロセッサ５６０による実行のためシステム５５０へ読み込まれる。
【０２７１】
代替的な実施形態では、二次メモリ５７０は、コンピュータプログラム又はその他のデータ若しくは命令がシステム５５０にロードされる他の同様の手段を含むことがある。このような手段は、たとえば、外部記憶媒体５９５及び通信インターフェース５９０を含むことがある。外部記憶媒体５９５の実施例は、外部ハードディスクドライブ若しくは外部光ドライブ、及び／又は、外部光磁気ドライブを含むことがある。
【０２７２】
２次メモリ５７０のその他の実施例は、プログラマブル・リード・オンリ・メモリ（「ＰＲＯＭ」）、消去可能プログラマブル・リード・オンリ・メモリ（「ＥＰＲＯＭ」）、電気的消去可能リード・オンリ・メモリ（「ＥＥＰＲＯＭ」）、又はフラッシュメモリ（ＥＥＰＲＯＭに類似したブロック指向メモリ）などの半導体ベースのメモリを含むことがある。同様に含まれているのは、リムーバブル媒体５８０及び通信インターフェースであり、これらは、ソフトウェア及びデータが外部記憶媒体５９５からシステム５５０へ転送されることを可能にする。
【０２７３】
システム５５０は、入力／出力（「Ｉ／Ｏ」）インターフェース５８５をさらに含むことがある。Ｉ／Ｏインターフェース５８５は、外部機器からの入力及び外部機器への出力を容易にする。たとえば、Ｉ／Ｏインターフェース５８５は、キーボード又はマウスから入力を受信することがあり、ディスプレイへの出力を提供することがある。Ｉ／Ｏインターフェース５８５は、様々な代替的なタイプのヒューマンインターフェース及びマシンインターフェース機器への入力と、ヒューマンインターフェース及びマシンインターフェース機器からの出力とを同様に実現し易くすることができる。
【０２７４】
システム５５０は、通信インターフェース５９０をさらに含むことがある。通信インターフェース５９０は、ソフトウェア及びデータがシステム５５０と外部機器（たとえば、プリンタ、ネットワーク、情報源など）との間で転送されることを可能にする。たとえば、コンピュータソフトウェア又は実行可能なコードは、ネットワークサーバから通信インターフェース５９０を介してシステム５５０へ転送されることがある。通信インターフェース５９０の実施例は、少し例を挙げると、モデムと、ネットワーク・インターフェース・カード（「ＮＩＣ」）と、無線データカードと、通信ポートと、ＰＣＭＣＩＡスロット及びカードと、赤外線インターフェースと、ＩＥＥＥ  １３９４ファイヤワイヤとを含む。
【０２７５】
通信インターフェース５９０は、好ましくは、たとえば、イーサネット（登録商標）ＩＥＥＥ  ８０２標準、ファイバーチャネル、デジタル加入者回線（「ＤＳＬ」）、非同期デジタル加入者回線（「ＡＤＳＬ」）、フレームリレー、非同期転送モード（「ＡＴＭ」）、統合デジタルサービス網（「ＩＳＤＮ」）、パーソナル通信サービス（「ＰＣＳ」）、伝送制御プロトコル／インテーネット・プロトコル（「ＴＣＰ／ＩＰ」）、シリアル回線インターネット・プロトコル／ポイント・ツー・ポイント・プロトコル（「ＳＬＩＰ／ＰＰＰ」）などの業界公表プロトコル標準を実装するが、カスタマイズされた、又は、非標準インターフェースプロトコルも同様に実装することがある。
【０２７６】
通信インターフェース５９０を介して転送されたソフトウェア及びデータは、概して、電気通信信号６０５の形をしている。電気通信信号６０５は、好ましくは、通信チャネル６００を介して通信インターフェース５９０に提供される。一実施形態では、通信チャネル６００は、有線若しくは無線ネットワークでもよく、又は、様々なその他の通信リンクでもよい。通信チャネル６００は、電気通信信号６０５を搬送し、少し例を挙げると、ワイヤ若しくはケーブル、光ファイバ、従来型の電話回線、携帯電話リンク、無線データ通信リンク、無線周波数（「ＲＦ」）リンク、又は、赤外線リンクを含む様々な有線若しくは無線通信手段を使用して実装されることがあり得る。
【０２７７】
コンピュータ実行可能なコード（すなわち、コンピュータプログラム又はソフトウェア）は、主メモリ５６５及び／又は二次メモリ５７０に記憶される。コンピュータプログラムは、通信インターフェース５９０を介して受信され、主メモリ５６５及び／又は二次メモリ５７０に記憶されることもあり得る。このようなコンピュータプログラムは、実行されたとき、システム５５０が前述されているとおりに本発明の様々な機能を行うことを可能にする。
【０２７８】
本説明において、用語「コンピュータ読み取り可能な媒体」は、コンピュータ実行可能なコード（たとえば、ソフトウェア及びコンピュータプログラム）をシステム５５０に提供するために使用される非一時的なコンピュータ読み取り可能な記憶媒体を指すために用いられている。媒体の実施例は、主メモリ５６５と、（内部メモリ５７５、リムーバブル媒体５８０、及び、外部記憶媒体５９５を含む）二次メモリ５７０と、通信インターフェース５９０と通信結合された（ネットワーク情報サーバ又はその他のネットワーク機器を含む）周辺機器とを含む。これらの非一時的なコンピュータ読み取り可能な媒体は、実行可能なコード、プログラミング命令、及び、ソフトウェアをシステム５５０に提供する手段である。
【０２７９】
ソフトウェアを使用して実装された実施形態では、ソフトウェアは、コンピュータ読み取り可能な媒体に記憶され、リムーバル媒体５８０、Ｉ／Ｏインターフェース５８５、又は通信インターフェース５９０を介してシステム５５０にロードされることがある。このような実施形態では、ソフトウェアは、電気通信信号６０５の形でシステム５５０にロードされる。ソフトウェアは、プロセッサ５６０によって実行されたとき、好ましくは、プロセッサ５６０に本書において前述された本発明の特徴及び機能を行わせる。
【０２８０】
システム５５０は、音声ネットワーク及びデータネットワーク上で無線通信を実現し易くする任意選択的な無線通信コンポーネントをさらに含む。無線通信コンポーネントは、アンテナシステム６１０と、無線システム６１５と、ベースバンドシステム６２０とを備える。システム５５０において、無線周波数（「ＲＦ」）信号は、無線システム６１５の管理の下でアンテナシステム６１０によって無線で送受信される。
【０２８１】
一実施形態では、アンテナシステム６１０は、１つ又は複数のアンテナと、アンテナシステム６１０に送信信号経路及び受信信号経路を設けるためにスイッチング機能を行う１つ又は複数のマルチプレクサ（図示せず）とを備えることがある。受信経路では、受信されたＲＦ信号は、マルチプレクサから、受信されたＲＦ信号を増幅し、増幅された信号を無線システム６１５に送信する低雑音増幅器（図示せず）に結合され得る。
【０２８２】
代替的な実施形態では、無線システム６１５は、様々な周波数上で通信するように構成されている１台又は複数の無線機を備えることがある。一実施形態では、無線システム６１５は、１つの集積回路（「ＩＣ」）内で復調器（図示せず）と変調器（図示せず）とを組み合わせることがある。復調器及び変調器は、別個のコンポーネントにもなり得る。着信経路において、復調器は、ＲＦ搬送波信号を取り除いて、ベースバンド受信オーディオ信号を残し、このベースバンド受信オーディオ信号が無線システム６１５からベースバンドシステム６２０へ送信される。
【０２８３】
受信された信号がオーディオ情報を含んでいる場合、ベースバンドシステム６２０は、信号を復号化し、アナログ信号に変換する。次に、信号は、増幅されてスピーカーへ送信される。ベースバンドシステム６２０は、伝送のためデジタル信号をさらに符号化し、無線システム６１５の変調器部分に送られるベースバンド送信信号を生成する。変調器は、ベースバンド送信オーディオ信号をＲＦ搬送波信号と混合して、アンテナシステムに送られ、電力増幅器（図示せず）を通過することがあるＲＦ送信信号を生成する。電力増幅器は、ＲＦ送信信号を増幅し、アンテナシステム６１０に送り、アンテナシステムで信号が送信のためアンテナポートに切り替えられる。
【０２８４】
ベースバンドシステム６２０は、プロセッサ５６０にも通信結合されている。プロセッサ５６０は、たとえば、限定されることはないが、主メモリ５６５及び二次メモリ５７０を含む１つ又は複数のデータ記憶エリアにアクセスできる。プロセッサ５６０は、好ましくは、主メモリ５６５又は二次メモリ５７０に記憶することができる命令（すなわち、コンピュータプログラム又はソフトウェア）を実行するように構成されている。コンピュータプログラムは、ベースバンドプロセッサ６１０から受信され、主メモリ５６５若しくは二次メモリ５７０に記憶され、又は、受信時に実行されることもあり得る。このようなコンピュータプログラムは、実行されたとき、前述されているとおり、システム５５０が本発明の様々な機能を行うことを可能にする。たとえば、主メモリ５６５は、プロセッサ５６０によって実行可能である様々なソフトウェアモジュール（図示せず）を含むことがある。
【０２８５】
様々な実施形態は、たとえば、特定用途向け集積回路（「ＡＳＩＣ」）又はフィールド・プログラマブル・ゲート・アレイ（「ＦＰＧＡ」）などのコンポーネントを使用して、主としてハードウェアで実装されることもある。本書に記載されている機能を行うことができるハードウェア状態機械の実装は、当業者に明らかでもあるであろう。様々な実施形態は、ハードウェアとソフトウェアの両方の組み合わせを使用して実装されることもある。
【０２８６】
さらに、当業者は、前述の図及び本書に開示された実施形態に関連して記載された様々な例示的な論理ブロック、モジュール、回路、及び方法ステップが多くの場合に電子ハードウェア、コンピュータソフトウェア、又は両方の組み合わせとして実装され得ることを理解するであろう。このハードウェアとソフトウェアとの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、及びステップが概してこれらの機能性の観点から前述されている。このような機能性がハードウェアで実装されるか、又は、ソフトウェアで実装されるかは、特有のアプリケーションと、システム全体に課された設計上の制約とに依存する。当業者は、特有のアプリケーションごとに様々な方法で前述の機能性を実装することができるが、このような実装決定は、発明の範囲からの逸脱を生じさせるものとして解釈されるべきではない。加えて、モジュール、ブロック、回路又はステップ内の機能のグループ化は、説明を簡単にするためである。特定の機能又はステップは、本発明から逸脱することなく、あるモジュール、ブロック又は回路から別のモジュール、ブロック又は回路へ移すことができる。
【０２８７】
その上、本書に開示された実施形態に関連して記載されている様々な例示的な論理ブロック、モジュール、及び方法は、汎用プロセッサ、デジタル信号プロセッサ（「ＤＳＰ」）、ＡＳＩＣ、ＦＰＧＡ又はその他のプログラマブル論理機器、ディスクリートゲート若しくはトランジスタ論理、ディスクリートハードウェアコンポーネント、又は、本書に記載されている機能を実行するように設計されたこれらの何らかの組み合わせを用いて実装又は実行され得る。汎用プロセッサは、マイクロプロセッサとなり得るが、代替案では、プロセッサは、いかなるプロセッサ、コントローラ、マイクロコントローラ、又は状態機械にもなり得る。プロセッサは、コンピューティング機器の組み合わせとして、たとえば、ＤＳＰ及びマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと併せて１台若しくは複数のマイクロプロセッサ、又は、何らかの他のこのような構成として実装されることもあり得る。
【０２８８】
付加的に、本書に開示された実施形態と関連して記載されている方法又はアルゴリズムのステップは、ハードウェアに直接的に、プロセッサによって実行されるソフトウェアモジュールに、又は、これら２つの組み合わせに具現化され得る。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、又は、ネットワークストレージ媒体を含む何らかの他の形式のストレージ媒体に置かれる可能性がある。例示的なストレージ媒体は、プロセッサがストレージ媒体から情報を読み取り、ストレージ媒体に情報を書き込むことができるように、プロセッサに結合される可能性がある。代替案では、ストレージ媒体は、プロセッサと一体となり得る。プロセッサ及びストレージ媒体は、ＡＳＩＣ内に置かれることもあり得る。
【０２８９】
開示された実施形態についての以上の説明は、当業者が本発明をなすこと、又は、使用することを可能にするために記載されている。これらの実施形態に対する様々な変更は、当業者にとって容易に分かることであり、本書に記載されている全体的な原理は、本発明の趣旨又は範囲から逸脱することなく他の実施形態にも適用できる。それ故に、本書に提示された説明及び図面は、現時点での本発明の好ましい実施形態を表現していること、従って、本発明によって広く熟考された主題を表していることが理解されるべきである。本発明の範囲は、当業者に自明になることがある他の実施形態を完全に包含していること、及び、本発明の範囲は、その結果として限定されないことがさらに理解されるべきである。
【図１】
2019508826.tif 000004
【図２】
2019508826.tif 000005
【図３】
2019508826.tif 000006
【図４】
2019508826.tif 000007
【図５】
2019508826.tif 000008
【図６】
2019508826.tif 000009
【図７Ａ】
2019508826.tif 000010
【図７Ｂ】
2019508826.tif 000011
【図８】
2019508826.tif 000012
【図９】
2019508826.tif 000013
【図１０】
2019508826.tif 000014
【図１１】
2019508826.tif 000015
【図１２】
2019508826.tif 000016
【図１３】
2019508826.tif 000017
【図１４】
2019508826.tif 000018
【図１５】
2019508826.tif 000019
【図１６】
2019508826.tif 000020
【図１７】
2019508826.tif 000021
【図１８】
2019508826.tif 000022
【図１９Ａ】
2019508826.tif 000023
【図１９Ｂ】
2019508826.tif 000024
【図１９Ｃ】
2019508826.tif 000025
【図２０】
2019508826.tif 000026
【図２１】
2019508826.tif 000027
【図２２】
2019508826.tif 000028
【図２３】
2019508826.tif 000029
【図２４】
2019508826.tif 000030
【図２５】
2019508826.tif 000031
【図２６】
2019508826.tif 000032
【図２７】
2019508826.tif 000033
【図２８】
2019508826.tif 000034
【図２９】
2019508826.tif 000035
【図３０】
2019508826.tif 000036
【図３１】
2019508826.tif 000037
【図３２】
2019508826.tif 000038
【図３３】
2019508826.tif 000039
【図３４】
2019508826.tif 000040
【図３５】
2019508826.tif 000041
【図３６】
2019508826.tif 000042
【図３７】
2019508826.tif 000043
【図３８】
2019508826.tif 000044
【図３９Ａ】
2019508826.tif 000045
【図３９Ｂ】
2019508826.tif 000046
【図３９Ｃ】
2019508826.tif 000047
【図４０】
2019508826.tif 000048
【図４１】
2019508826.tif 000049
【図４２】
2019508826.tif 000050
【国際調査報告】
2019508826.tif 000051
2019508826.tif 000052