ある特定の実施形態が記載されているが、これらの実施形態は、一例としてのみ提示され、保護範囲を制限することは意図されていない。本書に記載された方法及びシステムは、多種多様な他の形式でも具現化されることがある。さらに、本書に記載された方法例及びシステム例の形式で様々な省略、置換、及び変更が保護範囲から逸脱することなくなされることがある。
図1は、様々な実施形態によるネットワーク環境100を示すネットワーク図である。図1を参照すると、ユーザ機器110は、メディアプラットフォーム120と通信する。ユーザ機器110は、有線若しくは無線接続を通じてメディアプラットフォーム120と通信できる、又は、通信させることができるいずれの機器でもよい。たとえば、ユーザ機器110は、たとえば、限定されることはないが、スマートフォン、ウェアラブル機器、タブレット型パーソナルコンピュータ(PC)、ラップトップ、デスクトップ型PC、パーソナルエンタテインメントシステム、及び組み込み型処理システムを含む、有線若しくは無線通信機器でもよい。
ユーザ機器110は、通信ネットワーク130を介してメディアプラットフォーム120と通信する。様々な実施形態では、通信ネットワーク130は、1つ又は複数の有線及び/又は無線接続を表している。たとえば、通信ネットワーク130は、たとえば、限定されることはないが、有線及び/又は無線ローカル・エリア・ネットワーク(LAN)と、有線及び/又は無線ワイド・エリア・ネットワーク(WAN)と、これらの何らかの組み合わせとを含むことがある。
メディアプラットフォーム120は、ローカルデータストア125と通信結合されることがある。加えて、メディアプラットフォーム120は、たとえば、限定されることはないが、第1のデータソース140及び第2のデータソース150を含む複数のリモート及び/又はサード・パーティー・データソースとさらに通信することがある。
関連付けモデル
意味インデキシング
様々な実施形態では、メディアプラットフォーム120は、メディアオブジェクトを、たとえば、限定されることなく、属性、関係性、及び分類を含む意味情報と関連付けることができる。意味情報は、各々が属性、関係性、及び/又は分類の個別の組を提供する1つ又は複数のオブジェクト(すなわち、他のメディアオブジェクトを含んでいる)から継承され得る。
たとえば、1つのメディアオブジェクト(たとえば、写真)は、笑顔のビル・ゲイツを描写することができる。メディアオブジェクトは、人物としてのビル・ゲイツの全ての属性、及び、ビル・ゲイツが他の人物と結んでいる関係性(たとえば、年齢、起業家、インフルエンサー、億万長者、慈善家、父親、家庭的な男、技術屋、米国人など)を継承することができる。笑顔は、ビル・ゲイツが写真の中に登場し、機嫌が良かったことを示唆する。
ジョン・スミスは、ビル・ゲイツを描写するメディアオブジェクト(たとえば、写真)のコンテンツに興味があるかもしれない。それゆえに、メディアオブジェクトは、ジョン・スミスが写真の中に描写されていないとしても、人物としてのジョン・スミスの全ての属性、及び、ジョン・スミスが他の人物と結んでいる関係性をさらに継承できる。
別の実施例として、メディアオブジェクト(たとえば、ビデオ)は、事故後に、Aliceに所属する車両を描写することができる。メディアオブジェクトは、Aliceの車の全ての属性(たとえば、メーカー、モデル、年式、走行距離、及び保守記録)を継承することができ、これらは、サード・パーティー・ソース(たとえば、Carfax(登録商標))によって決定することができる。メディアオブジェクトは、たとえば、限定されることなく、Aliceの運転記録、本業、及び略歴を含むAliceに関する全ての属性をさらに継承することができる。加えて、メディアオブジェクトは、特定の事故に関する全ての属性(たとえば、些細な事故又は重大事故としての分類)をさらに継承できる。
様々な実施形態では、メディアプラットフォーム120は、メディアオブジェクトが対応する意味情報のいずれかによって検索されることを可能にする。たとえば、ビル・ゲイツを描写するメディアオブジェクトは、笑顔の50歳男性の写真の検索を通じて見つけられることがある。同様に、Aliceの自動車事故のビデオは、事故に巻き込まれた女性によって所有される車のビデオの検索を通じて見つけられることがある。
メディアオブジェクトは、たとえば、限定されることなく、テキスト及びマルチメディア(たとえば、写真、ビデオ)ファイルを含むどんな種類のコンピュータ記憶ファイルでもよいことが理解されるべきである。
図2は、様々な実施形態による意味インデキシングを示す。図2を参照すると、メディアオブジェクト(たとえば、車両の写真)は、たとえば、限定されることはないが、手動関連付け2及び自動関連付け4を含む複数の意味情報と関連付けられ得る。様々な実施形態では、メディアプラットフォーム120は、メディアオブジェクトのメタデータに含まれる地理位置情報に基づいて、自動関連付け2を生成し、追加することができる。手動関連付け2及び自動関連付け4に基づいて、メディアオブジェクトは、たとえば、限定されることはないが、所有権(たとえば、ボブ・スミス)及び場所(たとえば、ヨルダン中学校駐車場)を含む複数の他の関係性を継承することができる。
自動関連付けモデル
様々な実施形態では、自動関連付けは、メディアオブジェクトに追加され得る。たとえば、自動関連付けは、地理位置及び/又はタイムスタンプに基づいて生成され得る。自動関連付けは、現在イベント(たとえば、展示会、休日、個人の誕生日など)及び天候(たとえば、雨、雪、嵐)に基づいて生成され、メディアオブジェクトに追加されることもあり得る。一部の実施形態では、自動関連付けの確実性が一定の閾値を下回る場合、自動関連付けは、確認のためユーザに提示される可能性がある。
拡張意味情報
様々な実施形態では、メディアプラットフォーム120は、新しい意味情報をメディアオブジェクトに追加することができ、これにより、メディアオブジェクトが新しい意味情報に基づいて検索されることができる。たとえば、ボブ・スミスが引退する場合、ボブ・スミスの車両を描写するメディアオブジェクトは、「引退した人物によって所有される車の写真」として検索可能である。
メディアオブジェクトは、メディアオブジェクトとの既存の関連付けを有するオブジェクトに追加された新しい意味情報に基づいてさらに検索可能である。たとえば、ボブ・スミスの息子であるチャーリー・スミスがオブジェクトとして追加され、チャーリー・スミスがヨルダン中学校の生徒である場合、ボブ・スミスの車両を描写するメディアオブジェクトは、「生徒の両親によって所有される車の写真」としても検索可能である。
意味インデキシングのためのシステムは、メディアプラットフォームを含む。様々な実施形態では、メディアプラットフォームは、第1の意味情報の組に関連付けられている第1のメディアオブジェクトを受信し、第1のメディアオブジェクトを第2の意味情報の組に関連付けられている第2のメディアオブジェクトと関連付けるように構成されている、1台又は複数のハードウェアプロセッサを備えることがある。
実装例によれば、第1のメディアオブジェクトは、第2のメディアオブジェクトに関連付けられた第2の意味情報の組を継承する。第1の意味情報の組及び第2の意味情報の組は、各々に属性、関係性、及び分類のうちの少なくとも1つを含むことができる。1台又は複数のハードウェアプロセッサは、付加的な意味情報を自動生成し、自動生成された意味情報を第1のメディアオブジェクトと関連付けるように構成され得る。1台又は複数のハードウェアプロセッサは、少なくとも部分的に第1のメディアオブジェクトに関連付けられている地理位置及びタイムスタンプのうちの1つ又は複数に基づいて付加的な意味情報を自動生成するように構成され得る。
別の実装例によれば、1台又は複数のハードウェアプロセッサは、ユーザから付加的な意味情報を受信し、ユーザから受信された付加的な意味を第1のメディアオブジェクトと関連付けるように構成されている。たとえば、ユーザは、第1のメディアオブジェクトと第3の意味情報の組に関連付けられている第3のメディアオブジェクトとの間の関連付けを指し示すことによって少なくとも部分的に付加的な意味情報を提供することができる。別の実施例では、ユーザは、第1のメディアオブジェクトと属性、関係性、及び分類のうちの1つ又は複数との間の関連付けを指し示すことによって少なくとも部分的に付加的な意味情報を提供する。
人間主体の関連付けインターフェース
様々な実施形態では、メディアプラットフォーム120は、ユーザが意味情報をメディアオブジェクトに素早く加えることができるユーザ・インターフェース(UI)を提示する。
スタンピング・ユーザ・インターフェース
メディアプラットフォーム120により、ユーザはスタンピングUI 300を使用して意味情報をメディアコンテンツに割り当てることができる。様々な実施形態では、スタンピングUI 300により、ユーザが1回のクリックを使用して意味情報を複数のメディアオブジェクトに割り当てることができる。スタンピングUI 300は、追加されるべき意味情報のカテゴリ、ソース、又は値を表示するスタンプエリア4を提供する。一実装例では、ユーザは、リスト2からターゲットメディアオブジェクトをクリックし、スタンプエリア4は、ターゲットメディアオブジェクトの解析に基づいて意味情報のリストを推奨する。ターゲットメディアオブジェクトの解析は、オブジェクト認識、メタデータ解析、及び、ターゲットメディアアイテムに関連付けられた他のメディアアイテムの意味情報を検査することを含む可能性がある。ユーザは、スタンプエリア4内に推奨された意味情報のリストを編集する選択権があり、推奨情報の組全体を受け入れることができる。たとえば、ユーザによる1回のクリックは、スタンプエリア4に表示された意味情報の組を使ってターゲットメディアオブジェクトにスタンプを押すことができる。
スタンプエリア4は、他の関連付けとは独立に追加されることがある個別の関連付け6を含む可能性がある。スタンプエリア4は、関連付けテンプレート8をさらに含む可能性がある。スタンプ関連付けテンプレート8は、一般的に使用されている関連付けに基づいて構成された意味カテゴリのグループを含む可能性がある。スタンプ関連付けテンプレート8を選択することは、テンプレート内のカテゴリごとに意味情報の組を割り当てる。たとえば、ホームスタンプ関連付けテンプレートは、ターゲットメディアオブジェクトを自宅に関連付けられている他のメディアオブジェクトと関連付け、自宅の地理的位置に対する意味情報を追加し、ホームカテゴリの一部でもある人物との関係性を追加する、等々である。スタンプ関連付けテンプレート8は、一般的に使用される関連付けのため繰り返される使用に対して予め構成され得る。
実施形態例によれば、意味インデキシングのためのシステムは、各メディアオブジェクトの意味情報を識別するためにメディアプラットフォームのメディアオブジェクトをインデックス化し、マッチング意味情報に基づいて複数のメディアオブジェクトを関連付けるように構成されている1台又は複数の処理機器を備えたメディアプラットフォームを含む可能性がある。実施例では、処理装置は、スタンプテンプレートと共通している意味情報を求めてメディアオブジェクトのインデックスを検索し、検索に基づいて、処理機器は、対応するメディアオブジェクトを共通意味情報に基づいてソートし、ユーザによるキュレーションのため、ソートされたメディアオブジェクトを提示する。一部の実施形態では、処理機器は、関連付けを1つ又は複数のメディアオブジェクトに適用するための共通意味情報を備える関連付けのスタンプテンプレートを生成する。たとえば、キュレーションは、スタンプテンプレート又は1つ若しくは複数のその他の関連付けを適用することを含む可能性がある。スタンプテンプレートは、関連付けの意味情報を修正するために編集することができ、複数の関連付けを含む可能性がある。一部の実施形態では、システムは、ユーザが1回の選択に基づいて選択されたスタンプテンプレートから複数のメディアオブジェクトに関連付けを適用することによってメディアプラットフォームのメディアオブジェクトをキュレートすることが可能なスタンプテンプレートとのインターフェースを含む。実施例では、処理機器は、1つ又は複数のメディアオブジェクトと関連付けるためにユーザ入力から付加的な意味情報を受信する。
スタンピングワークフロー
図4は、様々な実施形態によるスタンピングのためのプロセス400を示すフローチャートである。図4を参照すると、様々な実施形態では、プロセス400は、メディアプラットフォーム120によって実行することができる。
様々な実施形態では、プロセス400は、データ収集モードが選択されたときに実行される。このため、メディアプラットフォーム120は、少なくとも一部の特定の関連付けのための付加的な情報をスタンプ内に収集することができる。すなわち、共通の意味情報をもつオブジェクトが識別され、共通の意味情報は、関連付けとしてグループ化される。共通の意味情報のグループ化は、テンプレートを形成する可能性がある。意味情報のクループ化がスタンピング動作によって付随させられ、実際のメディアオブジェクトがシステム内に定義される。関連付けは、共通の意味情報をもつオブジェクト間に関係性を形成し、修正が伝搬できるようにする可能性もある。
たとえば、ユーザが画面表示6に表されたメディアオブジェクトをクリックするとき、画面表示8は、スタンプが食料品関連付けを含む、という判定に応答して現れる。画面表示8では、UIは、食料に関する情報を収集することを可能にする。画面表示8は、オブジェクトテンプレート型に特有である。ユーザが保存機能を作動させた後、新しいオブジェクトが作成(又は記憶)され、関連付けがこのオブジェクトに割り当てられる。
代替的に、データ収集モードが選択されていない場合、ユーザは、メディアオブジェクトをクリックすることができ、スタンプエリア4内の他のオブジェクトは、メディアオブジェクトと関連付けられる。
様々な実施形態では、2つのワークフローは、メディアプラットフォーム120の多重定義アプローチの一部である。メディアプラットフォーム120は、ユーザによって指定されたとおりに徐々に情報を収集することができる。有利であるのは、ユーザは、ビジュアル検索を使用した当該情報に基づいて検索能力が高められるので、追加情報を入力するために労力を費やすことが奨励される。
関連付け選択インターフェース
様々な実施形態では、ユーザは、メディアオブジェクトのコンテンツを識別し、意味情報をメディアオブジェクトと関連付け、関連付けのタイプを選択することがある。ユーザが別のメディアオブジェクトのコンテンツをターゲットメディアオブジェクトと関連付けると、ターゲットメディアオブジェクトは、他のメディアオブジェクトのコンテンツの他の関連付けを継承する。有利であるのは、ユーザがコンテンツを効率的に識別し、高い精度でメディアオブジェクトと関連付けることができることである。図4は、ワールドオブジェクトをメディアコンテンツと関連付けるデータ収集プロセス例のフローチャートを示す。
図5は、様々な実施形態による関連付けをスタンプに追加するプロセス500を示す。図5を参照すると、プロセス500は、メディアプラットフォーム120によって実行されることがある。画面表示2では、ユーザは、キュレートされるメディアオブジェクトを検査することができる。スタンプの観点から、ユーザは追加される関連付けを見ることができる。スタンプの観点で、ユーザは、写真を選択する(たとえば、クリックする、触れる、等々)によりメディアオブジェクトをスタンプ化することができ、スタンプ内の全ての関連付けが写真に追加されることになる。代替的に、ユーザは、新しい関連付けをスタンプに追加することを選択することができる。
ユーザがスタンピングモードボタンをクリックするのに応答して、プロセスは、画面表示4の提示へ進み、メニューにより、ユーザは新しい関連付けを追加することを様々なプロセスから選択することができる。たとえば、一部の実施形態では、ユーザは、画面表示6を介してオブジェクトタイプを選択することにより新しい関連付けを追加することができる。ユーザがオブジェクトタイプを選択するとき、UIは、選択されたオブジェクトタイプに基づいてオブジェクト候補の検索可能リストを提示する画面表示8(すなわち、オブジェクト選択画面)に切り替わる。ユーザは、追加するオブジェクトを検索することができる。一部の実施形態では、画面表示8は、容易なナビゲーションを提供するためにスタンプアイコンを含む。
特定のオブジェクトを選択し次第、関連付け選択画面表示10が提示され、ユーザはこのオブジェクトのための関連付けをさらに選択することができる。ユーザは、関連付け操作を完了することなく、取り消し又は戻ることを選択できる。代替的に、ユーザは、スタンピング操作を完了するために関連付け選択画面表示10上で1つ又は複数の関連付けを選択することができる。関連付け選択画面10の後に続いて、又は、代わりに、UIは、関連付けを完了するために、たとえば、画面表示12に描かれているような付加的な確認制御(たとえば、保存、取り消しなど)を提供する。
図6は、様々な実施形態によるオブジェクトセレクタ600を示す。ユーザは、オブジェクトタイプを選択し、関連付ける様々なオブジェクトの検索を開始することができる。UI 600は、オブジェクトが既にスタンプにロードされていることをユーザに通信するために、既存のスタンプを表示する関連付けスタンプを表示する。
関連付け選択
ユーザが関連付け編集モードを開始するためにメニューボタンをクリックしたとき、ユーザは、様々な方法で関連付けをスタンプに追加するために選択することができる。たとえば、ユーザは、最近の関連付けのリストから選択することができる。別の実施例では、ユーザは、以前に設定された関連付けテンプレートから選択することができる。各テンプレートは、ユーザによって入力された関連付けのグループである。たとえば、テンプレートは、「遊んでいる赤ちゃんJim」、「プロジェクトX」、又は「プロジェクトYの経費領収書」を含む可能性がある。一部の実施形態では、メディアプラットフォーム120により、ユーザは一定数のテンプレートを定義し、編集することができる。限定された数の設定可能なテンプレートがあることにより、ユーザは、テンプレート管理システムを用いることなく、予め設定されたテンプレートに容易にアクセスすることができる。
代替的に、ユーザは、ユーザが関連付けを選択するためにオブジェクトタイプを閲覧することができるワールドオブジェクトタイプを選択することができる。付加的に、ユーザは、アプリケーション作者によって設定された一般的な関連付けのような共通の関連付けから選択することができる。たとえば、サムネイルを利用するアプリケーションは、一時的な写真関連付けを使用することがある。
関連付けピッカーフロー
ワールドオブジェクトとメディアオブジェクトとの間の関連付けタイプ選択を合理化するために、メディアプラットフォーム120は、ユーザが1つ又は複数の関連付けを抜き取ることができる最適化された関連付けセレクタを提供する。図7Aは、実施形態例による関連付けセレクタ700を示す。
たとえば、1つの関連付けを選択するために、ユーザは、関連付けボタン又はチェックボックス(たとえば、選択範囲)をクリックすることができ、これが関連付け選択を完了する。複数の関連付けを選択するために、ユーザは、チェックボックス(たとえば、選択範囲)をクリックすることができ、関連付けダイアログボックスは、多重選択ダイアログボックスとして機能する。図7Bは、実施形態例による単一及び多重関連付け選択を示す。
関連付け検索
メディアプラットフォーム120は、ユーザが関連付けを徐々に追加することを可能にする。その上、メディアプラットフォーム120により、ユーザはより高速な関連付けのため共通パラメータを伴うアーティファクトを素早くグループ化することができる。様々な実施形態では、メディアプラットフォーム120は、マルチモード・ユーザ・インターフェースを介して関連付けプロセスを検索プロセスと連結する。マルチモード・ユーザ・インターフェースを使用して、ユーザは、関連付けと検索を素早く切り替えることができ、その逆もできる。この素早い切り替えにより、以下のシナリオが可能になる。
ユーザが関連付けを追加している間に、ユーザは、利用可能なメディアオブジェクトの数を制限する又は数にフィルタをかけるために検索モードに切り替えることができる。このため、ユーザは、既に追加された意味情報又はタイムスタンプのような簡単な属性に対して検索を行う。
ユーザが検索している間に、ユーザは、一部の意味情報が失われていると判定することがある。このとき、ユーザは、第1のレベルのメニューを介してスタンピングモードに素早く切り替え、より多くの関連付けをメディアオブジェクトに追加し始めることができる。
インターフェースは、ユーザが徐々に増加する方式で要望通りに多くの情報を追加できるようにして、認識される作業及び努力の量を削減する。その上、UIにより、ユーザは新たに追加された意味情報を使用して探索を開始することができるため、ユーザは、新たに追加された情報の恩恵を直ちに認識することができる。
階層ビジュアル多面的検索
様々な実施形態では、メディアプラットフォーム120は、提示されたメディアが満たす基準をユーザが素早く一瞥することができるビジュアルインターフェースを提供する。選択基準は、特定のエリアに表示され得る。加えて、インターフェースは、より多くのスースペースをユーザに与えるために通常モード及び最小化モードをもつ。図8は、様々な実施形態によるビジュアルインターフェース800を示す。最小化モードでは、ユーザは、読込専用モードであり、様々なセレクタと相互作用できない。
様々な実施形態では、セレクタのグループとして問い合わせを提示することは、エンドユーザへの概念を簡略化する。さらに、セレクタの相対的な位置が重要であり、ユーザは、これらの順序を入れ替えることができる。
図9は、様々な実施形態によるビジュアル閲覧メニュー900を示す。図9を参照すると、様々な実施形態では、ユーザが通常モードにおいて中央のメニューボタンをクリックしたとき、メディアプラットフォーム120は、第1のレベルのメニュービュー2を提示する。このメニューは、ユーザが2レベル階層のファセット分類を閲覧することを可能にする。メニューボタンの1回のクリックは、第1のレベルのファセットカテゴリを提示し、これは、ユーザが第2のレベルのメニュービュー4に進むことを可能にする。第2のレベルのメニュービュー4では、ユーザは、様々なメディアオブジェクトに関する情報が与えられる。ユーザは、複数年(たとえば、2008年、2010年及び2012年、しかし、2011年を除く)からの複数のメディアオブジェクトが存在かどうかを判定し、3月から8月までのメディアオブジェクトを見るためにフィルタをかけることができる。並行して、インターフェースは、データを抜き取るために使用されるセレクタを表示する。
セレクタ
図10は、様々な実施形態による選択基準1000を示す。図10を参照すると、選択基準1000は、ユーザによって構築される可能性がある。図10に示されたとおり、ファセットごとに複数のセレクタ2が存在し得る。セレクタ2は、どのファセット値が探索のため使用されるかを指定することができる。選択基準1000は、NOT基準4及びMUST基準6を含む可能性があり、これらはどちらも単一値セレクタとなり得る。選択基準1000は、地図場所基準8及び値範囲基準10をさらに含む可能性があり、これらはどちらもOR基準となり得る(すなわち、地図場所基準8及び値範囲基準10のうちの少なくとも一方が真でなければならない)。有利であるのは、ユーザは、検索のため使用されている基準を素早く一瞥し、理解することができることである。
新しい検索セレクタ追加
図11は、様々な実施形態による新しい検索セレクタを追加するプロセス1100を示す。図11を参照すると、ユーザは、ユーザをファセット閲覧モード4に導くオープンメニュー2をクリックする。ユーザが特定のファセットを使用して検索することを決定したとき、ユーザは、このファセットをセレクタエリアにドラッグすることができる。ドラッグ動作は、ユーザが既存のセレクタと相対的にセレクタを配置することを可能にするので重要である。セレクタがドラッグ・アンド・ドロップされると、ダイアログボックス6は、ユーザがより詳細に選択項目を編集できるようにするために表示される。ダイアログボックス6は、ファセットタイプごとに異なるUIを表示することがある。大型インターフェースを表示する目的は、様々な選択肢をユーザに表示するためにコンピュータアプリケーション設計者により大きいスペースを与えるためである。さらに、大型インターフェースは、小さいスペースを扱わなければならないフラストレーションからユーザを救う。ダイアログボックス6内で、ユーザは、異なるファセット値又は値の範囲に対してAND、OR及びMUST基準を指定することができる。ユーザが承認をクリックすると、新たに追加されたセレクタが画面表示8内に提示される。
ファセットナビゲーション
図12は、様々な実施形態によるファセットナビゲーションインターフェース1200を示す。
ユーザは、第1のレベルのファセットカテゴリのうちの1つを選択することによってファセットに沿って進むことができる。たとえば、第1のレベルのファセットカテゴリは、いくつかの(たとえば、5つの)主グループに分割され得る。グループは、たとえば、誰、何、いつ、どこ、及びどのように、に関する検索対象であるメディアオブジェクトに特有のものである。ユーザが第1のレベルのファセットカテゴリのうちの1つをクリックしたとき、第2のレベルのファセットカテゴリは、ユーザの検索を簡略化するために表示され得る。たとえば、第1のレベルのファセットカテゴリ「いつ」の下で、たとえば、限定されることはないが、特定の日付、天候条件、イベントタイプ、及びイベント名を含む複数の第2のレベルのファセットカテゴリが存在する可能性がある。一つの例示的な実施形態では、各最上位レベルのカテゴリは、カテゴリを強調し、識別するのに役立つように、異なった色を有する。
ユーザが第2のレベルのファセットカテゴリをクリックしたとき、インターフェースは、ユーザのメディアオブジェクトに存在する利用可能なファセット及びファセット値を表示する。一部の実施形態では、第2のレベルのファセットカテゴリは、制限のない値をもつ単一のファセットを含む可能性がある。有利であるのは、ファセットナビゲーションインターフェースは、メディアオブジェクトのメタデータを素早く一瞥する方法を提供することである。ファセットナビゲーションインターフェースは、ユーザが好奇心によって決定されたメタ情報に基づいてメディアコレクションを探索することを可能にする。ユーザは、見当たらないメタデータを特定するようにさらに促される可能性がある(たとえば、ユーザは、スタンピングモードに切り替え、見当たらない情報を追加することができる)。その上、ファセットナビゲーションインターフェースは、ユーザがメディアライブラリ内で入手できないメディアを要求し始めるために統一されたインターフェースを提供する。たとえば、ユーザが、メディアライブラリがある一定のメディアオブジェクト(たとえば、昨年のユーザのいとこの誕生日からの写真)を見逃していることを見つけた場合、ユーザは、見当たらないメディアオブジェクトのリクエストを開始するためにこのインターフェースを使用することができる。
ファセット表示セクション
図13は、様々な実施形態によるファセット表示セクション1300を示す。図13を参照すると、ファセット表示セクション1300は、ファセットが対応する値をもつかどうかとは無関係に、特別なファセットカテゴリ内にファセットを表示する。値をもっていないファセットを表示することにより、ユーザは、ユーザが現在見ているメタデータオブジェクトのコレクションに関して何が見当たらないかに気付くことができる。たとえば、ユーザは、ファセット表示セクション1300から職業ファセットも性別ファセットも値が与えられていないことを観察することができる。
システムは、ファセットに値が関連付けられていないことを判定したことに応答してファセットを表示することがある。値のないファセット又は検索ヒットがないことを提示することは、バックグラウンド検索によって、ファセットがデータセットに役立たないと判定されたことをユーザに伝える。空のファセットは、意味データが1つ若しくは複数のデータオブジェクトから見当たらないこと、又は、データオブジェクトが利用できないこともユーザに伝える。この場合、ユーザは、見当たらないメタデータを追加するためにメディアオブジェクトを見つけること、又は、利用できないメディアオブジェクトを獲得することができる。
ファセット表現
様々な実施形態では、メディアプラットフォーム120は、ファセットの値に関連付けられたタイプに基づいて様々な方法でファセットをユーザに表示する。有利であるのは、ファセットの値に関連付けられたタイプに基づいてファセットを表示することが利用可能なデータのタイプに関してユーザへの伝達情報を改善することである。
離散値は、個別の値である。2種類の離散値:制限付きの値及び無制限の値がある。制限付きの離散値(たとえば、性別)は、制限付きの個数の起こり得る値を有する値である。制限付きの離散値を有するファセットは、第2のレベルのファセットカテゴリの一部である。これに反して、無制限の離散値(たとえば、人間、イベント)は、個別の第2のレベルのファセットカテゴリとして表示される。
範囲値は、ある範囲にグループ化され得る値である。一部の範囲値は、無制限の個数の起こり得る値(たとえば、タイムスタンプ)を含む連続的な範囲である。連続的な範囲値は、ある範囲内に、又は、範囲のグループ内に常に表示される。これに反して、整数範囲は、離散値(たとえば、曜日)で構成されている。整数範囲は、離散値のグループ分けとして表示されることがあり得る。地図値は、地図値が特殊な値である特殊な地図表現で表示されることがあり得る。
図14は、様々な実施形態によるファセット表現を示す。図14に示されたとおり、ファセット表現は、制限付きの離散ファセット12、整数範囲ファセット4、及び、無制限の離散ファセット14の表現を含む可能性がある。無制限の離散ファセット14は、他のファセット表現(たとえば、制限付きの離散ファセット12及び整数範囲ファセット4)が一つにグループ化される場所を表示するためにサブカテゴリ全体を必要とする可能性がある。
メディアコンテンツのための階層ファセット
様々な実施形態では、ファセットは、2レベル階層に体系化される可能性がある。階層は、データ構造体(たとえば、ツリー)に記憶される。ツリーの各リーフノードは、個別のファセット値のインデックスを指し示すことができる。このため、メディアプラットフォーム120は、ユーザに基づいて異なったファセット階層を取り扱うことができる。たとえば、ファセット階層は、ユーザの経験レベル又は関心レベルに基づいて規定されることがある。
たとえば、階層は以下を含み得る。
1)誰?
a.名前
b.関係性
c.興味
d.職業
2)いつ?
a.日付
b.イベント
c.イベントタイプ
d.気象条件
3)どこ?
a.地名
b.地図
c.プレイスタイプ
4)どのようにして?
a.撮影者
b.カメラタイプ
c.メディアタイプ
5)何?
a.オブジェクト
b.オブジェクトのタイプ
付属書Bは、様々な実施形態による階層ファセット検索エンジンをさらに示す。
様々な実施形態によれば、1つ又は複数のメディアオブジェクトの階層ビジュアルファセット検索システムは、メディアプラットフォームを含む。様々な実施形態では、メディアプラットフォームは、複数の選択基準を受信するために適合したセレクタ・ユーザ・インターフェース(UI)をユーザ機器に提供するように、第1の選択基準を含む複数の第1のレベルの選択基準を備えた第1のレベルのメニューをユーザ機器に提供するように、少なくとも第1の選択基準をセレクタUIに追加する指示をユーザ機器から受信するように、第1の選択基準に対応し、第2の選択基準を含む複数の第2のレベルの選択基準を備えた第2のレベルのメニューをユーザ機器に提供するように、少なくとも第2の選択基準をセレクタUIに追加する指示をユーザ機器から受信するように、第1の選択基準及び第2の選択基準をセレクタUIに追加するように、そして、少なくとも部分的にセレクタUIのコンテンツに基づいて第1の選択基準及び第2の選択基準を満たす1つ若しくは複数のメディアオブジェクトを識別するために検索を実行するように構成されている1台又は複数のハードウェアプロセッサを備えることがある。
実装例では、第1の選択基準は、識別基準、位置基準を含む可能性があり、第2の選択基準は、メディアオブジェクトに関連付けられた個人の名前、関係性、興味、及び職業のうちの1つを含む可能性がある。たとえば、第1の選択基準は、時間基準を含む可能性があり、第2の選択基準は、メディアオブジェクトに関連付けられている日付、イベント、イベントタイプ、及び気象条件のうちの1つを備える。別の実施例では、第1の選択基準は、場所基準を備え、第2の選択基準は、メディアオブジェクトに関連付けられた地図座標、地名、及び位置タイプのうちの1つを含む可能性がある。別の実施例では、第1の選択基準は、方法又は手段基準を備え、第2の選択基準は、メディアオブジェクトに関連付けられている撮影者、カメラタイプ、及びメディアタイプのうちの1つを含む可能性がある。別の実施例では、第1の選択基準は、識別基準を備え、第2の選択基準は、メディアオブジェクトに関連付けられているオブジェクト及びオブジェクトタイプのうちの1つを含む可能性がある。
ハイブリッド・インメモリ・ファセット・エンジン
様々な実施形態では、ファセット検索エンジンは、ユーザ機器110で実施されることがある。このため、ファセット検索エンジンは、検索されるファセットに基づいてオンデマンドでロードされる可能性があるインメモリ検索インデックスに依存する可能性がある。検索インデックスは、実オブジェクトの属性値の上に構築される。
ファセットは、1つ又は複数のメディアオブジェクトを検索する方法である。ファセットは、様々なファセット値に関連付けられる可能性がある。その上、各ファセットは、インデックス化されているデータ内の特定のフィールドに対応する。フィールドは、データタイプ及び期待値を有する。検索を行うため、ファセット検索エンジンは、各フィールド内に全ての値のインデックスを構築することができる。有利であるのは、ファセット検索エンジンがあらゆる問い合わせを非常に素早く実行できることである。これに反して、従来型のファセット検索エンジンは、予め計算された一定の問い合わせのビューに基づいており、動的な複雑な問い合わせを扱うことができない。
実施形態例では、システムは、1つ又は複数のデジタルオブジェクトのハイブリッド・インメモリ・ファセット検索を実行する。システムは、インデックスがデータセット内の各デジタルオブジェクトに対する識別子への値のマッピングを含んでいる、1つ若しくは複数のインデクシングプロセスを使用して生成されたデータセットに対するインデックスを記憶するように、インデックスの更新情報を受信するように、記憶されたインデックスとは独立したタイムスタンプと共にインデックス更新情報を記憶するように、そして、記憶されたインデックスのリクエストに応答して、インデックス更新情報をインデックスに適用するように構成されている1台又は複数の処理機器を備えたメディアプラットフォームを含む可能性がある。実施例では、処理機器は、データセットに関連付けられている特性を判定し、データセット内の各デジタルオブジェクトに対する識別子への値のマッピングを含んでいるインデックスは、データセットの特性に基づいて処理される。
たとえば、データセットは、離散データを含む可能性があり、インデックスは、ソートされた離散データ及び識別子の値のうちの少なくとも1つを含んでいる各デジタルオブジェクトに対する複数のアレイを含む。たとえば、識別子は、順序付きグループにグループ化される可能性がある。実施形態例では、データセットは、連続データを含み、各デジタルオブジェクトは、一意のタイムスタンプにマッピングされる。
データセット内の各デジタルオブジェクトに対する識別子への値のマッピングが重複値を含むとき、処理機器は、各デジタルオブジェクトに対する各値に関連付けられている確信度を判定し、確信度に基づいて識別子にランクを付けることができる。
記憶されたインデックスのリクエストは、問い合わせ基準を含む検索リクエストである可能性があり、処理機器は、問い合わせ基準をインデックスの識別子にマッチさせるためにセレクタオブジェクトを生成し、セレクタオブジェクトに基づいて各問い合わせ基準に関連付けられた未修正識別子のカウントを計算し、問い合わせ基準でほとんどの未修正識別子に関連付けられている問い合わせ基準から始まる検索を実行することができる。
インデックスのタイプ
データをインデックス化するため、ファセット検索エンジンは、インデックス化されるデータのタイプ及び性質に依存して様々なタイプのインデックスを使用することができる。各インデックスタイプは、別々に構築され、特定の目的がある。
インデックスは、基本インデックス又は派生インデックスとなり得る。各インデックスタイプは異なった方法で実装されるが、全てのインデックスは、リアルワールドの値をインデックス化しているメディアオブジェクトのある一定の行にマッピングする機能をもっている。
基本インデックス
基本インデックスは、ワールドオブジェクトの未加工値から直接計算される。種々のタイプの基本インデックスは、未加工値がタイプごとに異なって取り扱われるので、未加工値の性質に依存して計算されることがある。
図15は、様々な実施形態による制限付きの離散インデックス1500を示す。図15を参照すると、制限付きの離散インデックス1500は、離散的な無制限を含む基本タイプのインデックスである。制限付きの離散インデックス1500は、(たとえば、ユーザ機器110の)メモリに常に保持され、制限付きの離散インデックス1500が必要とされるときにいつでも展開される。様々な実施形態では、制限付きの離散インデックス1500は、2つのアレイとして実装することができる。第1のアレイは、昇順ソートの順にインデックス化された値、及び、第2のインデックスへの開始点を保持することができる。第2のアレイは、未加工値に従ってグループ化され、各グループ内でソートされた順番になっているメディア行識別子を保持することができる。有利であるのは、制限付きの離散インデックス1500を記憶することは、少量のメモリしか必要としないことである。
大規模離散インデックスは、非常に多数の離散値を含んでいる。
連続インデックスは、値(たとえば、タイムスタンプ)とほぼ1対1のマッピングをもつ無制限の個数の起こり得る値を含んでいる。1枚の写真ほとんど全ては、たとえば、異なったタイムスタンプをもつ可能性がある。連続範囲値は、特殊なインデックス構造によって処理することができる。たとえば、連続インデックスは、データベースインデックスに類似した正規のB−ツリーを使用して処理されることがある。
マップインデックスは、地理位置データを含む。地理位置データは、全体として取り扱われる3次元データ(たとえば、経度、緯度、及び標高)となり得る。一部の実施形態では、マップインデックスは、データベースエンジン(たとえば、SQLite(登録商標))を使用して処理されることがある。
派生インデックス
派生インデックスは、他のインデックス(たとえば、基本又は派生)に基づき、分類及び/又は含意をもたらす。様々な実施形態では、派生インデックスは、単純派生インデックス又はファジー派生インデックスになり得る。
図16は、様々な実施形態による単純派生インデックス1600を示す。図16を参照すると、単純派生インデックス1600のインデックス値は、別のインデックスによってインデックス化された値に基づいている。たとえば、年齢グループは、たとえば、限定されることはないが、赤ちゃん、幼児、子ども、10代、若者、大人、中年、及び高齢者を含む複数のファセット値にインデックス化されることがある。実際のインデックス化された値は、年齢未加工値から派生し、たとえば、幼児は、年齢が2歳と5歳の間の人物である。様々な実施形態では、単純派生インデックス1600は、値及び対応する未加工値を基本インデックス内に保持する単一のアレイを使用して構築される。このため、単純派生インデックス1600は、メモリ内の非常に制限されたスペースを占め、基本インデックスへの変更を容易に受け入れることができる。
図17は、様々な実施形態によるファジー派生インデックス1700を示す。図17を参照すると、ファジー派生インデックス1700は、未加工値と重複する複数のインデックス化値を含む可能性がある。このようにして、各マッピングには確信度が関連付けられている。たとえば、年齢グループがファジーインデックスを有する場合、1.8歳である人物は、赤ちゃんであると共に幼児である可能性がある。しかしながら、その人物は、幼児である可能性が高い。このため、幼児に対する確信度は、90%であり、その一方で、赤ちゃんに対する確信度は、15%である。確信度は、各値に対して適当であるように選択される。このようなファジーインデキシングの利点は、我々が同じ情報を異なった方法で見つけ、検索結果にランクを付けるために確実性を使用することを可能にすることである。
インデックスライフサイクル
インデックスは、未加工データを順に処理することによってメモリ内に作成され得る。インデックスは、最もコンパクトな形式でメモリ内に保持される。これに対して、未加工データは、直交演算において別々にアクセスされる。メモリ使用量を少量に保つために、未加工データは、未加工データの量が大量である場合、インスタンス内でバッチ形式により順に処理されることがある。このプロセスは、データがソート順にロードされるべきであるので、複数の反復パス(たとえば、インデックスごとに1回のパス)を含むことがある。このようにして、未加工データの量が少量である場合、未加工データは、一度にメモリにロードされ、インデックスの作成中にソートされる可能性がある。
インデックスが最もコンパクトな形式で作成されると、インデックスは、この形式でファイル内に保存される。2つ以上のアレイを有するインデックスの場合、個々のアレイは、特定の順に、たとえば、行idアレイの前にインデックス化データアレイという順に、同じファイル内に保存される。
インデックスは、値をインデックスに追加又は値をインデックスから削除することを含めて、さらに更新される可能性がある。様々な実施形態では、インデックスが既にメモリ内に存在する場合、更新がインデックスに適用され、更新が完了すると、インデックスがディスクに保存される。
ディスクがディスク上にある場合、更新情報がこの特有のインデックスのため更新ファイルに加えられる。更新ファイルは、タイムスタンプによってソートされた全ての更新情報を含んでいる。インデックスは、更新操作のためアップロードされない。1回又は複数の更新を適用するためにインデックスをロードする代わりに、ファセット検索エンジンは、インデックスに加えられるべき変更を記憶する。インデックスが検索のため必要とされるとき、インデックスは、ディスクからメモリにロードされ、記憶された更新情報がインデックスにロードされ、適用され、インデックスは、メモリに保存され、検索中に使用することができる。
有利であるのは、更新プロセスは、インデックスが更新されるとき毎回行われている不要な計算を削減することである。更新プロセスは、更新の間に使用されないインデックスのための計算能力を保存する。インデックスは、インデックスが(たとえば、検索を実行するため)呼び出されたときに更新される。
問い合わせモデル
ファセット検索エンジンは、急勾配の学習曲線をもたない分かりやすい形で、ユーザに企業検索エンジンの能力及び制御を与えることができる。問い合わせを行うために、ユーザは、1つ又は複数のファセット値を選択し、結果が選択されたファセット値をもつべき、もつことができる、又はもつべきではないかどうかを指示する。たとえば、ユーザが、感謝祭以外の休日に獲得され、靴、ドレス、バッグ、又はサングラスを描くメディアオブジェクトを見つけることを望むと仮定しよう。ユーザは、以下の問い合わせを定義することができる。
MUST:イベントタイプ 休日
NOT:イベント 感謝祭
OR:オブジェクト 靴 出現
OR:オブジェクト ドレス 出現
OR:オブジェクト バッド 出現
ユーザは、秋の間に家の近くで自分の妻が撮影したユーザの息子の写真についての複雑な問い合わせを指定することもできる。問い合わせは、以下のとおり指定することができる。
MUST:人物 息子 出現
MUST:人物 妻 撮影者
MUST:自宅所在地で
MUST:イベント 秋
NOT:家の中
NOT:人物 誰でも 出現
問い合わせメカニズム
ユーザによって定義された各基準に対して、ファセット検索エンジンは、ファセットインデックスに作用するセレクタオブジェクトを作成することができる。セレクタの目的は、基準を未加工データオブジェクト識別子にマッチさせることである。これは、所定の基準にマッチするメディアオブジェクト識別子候補の個数を返すことができ、これは、次に、マッチ候補を返す。ファセット検索エンジンは、マッチ候補によって昇順にインデックスをソートする。このため、マッチの個数が最も少ないインデックスが最初に実行され、ファセット検索エンジンは、インデックスのリストを順に処理し、基準全体にマッチする値を計算する。
MustSelectors[]
CanSelectors[]
NotSelectors[]
mustSelectorsIdx = 0
canSelectorsIdx = 0
notSelectorsIdx = 0
各ユーザ基準に対して
もしも基準がMUSTであるならば
MustSelectors[mustSelectorsIdx] = new Selector(criteria)
mustSelectorsIdx++
そうではなくもしも基準がCANであるならば
CanSelectors[canSelectorsIdx] = new Selector(criteria)
canSelectorsIdx ++
そうではなくもしも基準がNOTであるならば
NotSelectors [notSelectorsIdx] = new Selector(criteria)
notSelectorsIdx ++
各MustSelectorsに対して
結果として得られた行idの個数を計算する
結果として得られた行idの個数によってMustSelectorsセレクタを昇順にソートする
Result = MustSelectors[0].rowIds
MustSelectors内の各mustSeletorに対して<1 から mustSelectorsIdx−1まで>
Result = Result AND mustSeletor.rowIds
各NotSelectorsに対して
行id候補の個数を計算する
行idの個数によってNotSelectorsを昇順にソートする
NotSelectors内の各notSeletorに対して<0 から notSelectorsIdx −1まで>
Result = Result NOT notSeletor.rowIds
ORResult = CanSelectors[0].rowId
CanSelectors内の各canSeletorに対して<1 から canSelectorsIdx−1まで>
ORResult = ORResult OR canSeletor.rowIds
Result = Result AND ORResult
有利であるのは、複数の問い合わせアルゴリズムが並列に実行され得ることである。それゆえに、各セレクタは、独立であり、競合状態を回避する。セレクタは、最大厳密性から最小厳密性までの順に(たとえば、ANDの次にNOTが続き、さらにORが続く順に)さらに実行される。セレクタ順序は、結果集合が空であるならば、厳密性の低いセレクタの実行を飛ばす機能を提供する。
加えて、アルゴリズムは、以下のとおり最適化されることがある:
メモリ内にインデックスを有する基準を使用して問い合わせのAND部分及びNOT部分を実行する
結果が行idを有するならば
未修正インデックスを有する基準に関して問い合わせを実行する
結果が行idを有するならば
残りの基準に関して問い合わせを実行する
上記最適化は、問い合わせ結果がゼロ個のレコードを含んでいることが分かっている場合、インデックスの不必要なローディングの必要性を低減する。
選択演算
選択演算は、ある選択基準に対するマッチング行識別子を選択するために実行される。各インデックスタイプは、特定のインデックスタイプの構造に対応する特有の方法でセレクタを実装する。
離散値インデックス
離散値インデックスは、数字又は非数字となり得る。数字離散値は、たとえば、限定されることはないが、範囲選択、大なり、小なりといった数学演算を利用できるようにする。
・Xより小さい:
−ファセット値アレイを二分探索し、Xより小さいインデックス内の最大値の位置を見つける。最大値の位置は、未加工レコードIdアレイ内の位置を指示する。その結果、最大値位置の位置より前にある先行する行idを収集することができる。
・Xより大きい:
−ファセット値インデックスを二分探索し、Xより大きい最小値の位置を見つける。最小値の位置は、未加工レコードIdアレイ内の位置を指示する。その結果、最小値の位置より後にある行idを収集することができる。
・Xに等しい:
−ファセット値インデックスを二分探索し、値がXに等しい位置を見つける。値が等しい位置は、未加工レコードIdアレイ内の位置を指示する。未加工レコードIdアレイは、開始位置を有する。終了位置は、ファセット値インデックス内の後続のインデックスから判定される。
派生値インデックスもまた数字又は非数字となり得るものであり、数字派生値インデックスは、数学演算を支えることができる。
・Xより小さい:
−ファセット値アレイを二分探索し、Xより小さいインデックス内の最大値の位置を見つける。最大値の位置は、未加工レコードIdアレイ内のベースインデックス値を指示する。その結果、最大値の位置より前にある行idが収集される。
・Xより大きい:
−ファセット値インデックスを二分探索し、Xより大きい最小値の位置を見つける。最小値の位置は、未加工レコードIdアレイ内の位置を指示する。その結果、最小値の位置より後にある行idが収集される。
・Xに等しい:
−ファセット値インデックスを二分探索し、値がXに等しい位置を見つける。値が等しい位置は、未加工レコードIdアレイ内の位置を指示する。未加工レコードIdは、開始位置を有する。終了位置は、ファセット値インデックス内の後続のインデックスから取得される。
問い合わせ基本演算
問い合わせ演算(たとえば、AND、NOT及びOR)は、多数の実施形態において実行されることがある。大規模なアレイに対して、圧縮ビットベクトルアレイが行識別子を記憶するために使用され(たとえば、ローアリング(roaring)アレイ)、バイナリビットマスクがこのようなデータ構造に適した演算を行うために使用される。小規模なアレイに対して、アルゴリズムは、たとえば、以下のとおり適用される。
AND演算は、行識別子の2つのアレイ:rowIDs1及びrowIDs2に作用する。結果は、resultingIDsに含まれている。AND演算のためのアルゴリズムは、線形時間(すなわち、O(n))で動作し、以下を含む:
基数ソートを使用して、rowIDs1及びrowIDs2を昇順にソートする
rowIDs1をより要素数の少ないアレイに割り当てる
Pointer1 = 0
Pointer2 = 0
ResultsPointer = 0
Pointer1< rowIDs1のカウント数 && Pointer2< rowIDs2のカウント数である間
もしもrowIDs1[Pointer1] == rowIDs2[Pointer2]であるならば
resultingIDs[ResultsPointer] = rowIDs1[Pointer1]
ResultsPointer++
Pointer1++
Pointer2++
そうではなくもしもrowIDs1[Pointer1] > rowIDs2[Pointer2]であるならば、
Pointer2++
そうでなければ
Pointer1++
NOT演算は、集合差演算に類似している。行識別子の1つの集合が結果から減算される。NOT演算のためのアルゴリズムは、同様に線形時間(すなわち、O(n))で動作し、以下を含む:
基数ソートを使用してrowIDs1及びrowIDs2を昇順にソートする
Pointer1 = 0
Pointer2 = 0
ResultsPointer = 0
Pointer1< rowIDs1のカウント数 && Pointer2< rowIDs2のカウント数である間
もしもrowIDs1[Pointer1] == rowIDs2[Pointer2]であるならば
Pointer1++
Pointer2++
そうではなくもしもrowIDs1[Pointer1] > rowIDs2[Pointer2]であるならば
Pointer2++
そうでなければ
resultingIDs[ResultsPointer] = rowIDs1[Pointer1]
ResultsPointer++
Pointer1++
Pointer1< rowIDs1のカウント数である間
resultingIDs[ResultsPointer] = rowIDs1[Pointer1]
ResultsPointer++
Pointer1++
OR演算は、行識別子の2つのアレイ:rowIDs1及びrowIDs2に作用し、結果は、resultingIDsと呼ばれる。結果は、resultingIDsに含まれている。AND演算のためのアルゴリズムは、線形時間(すなわち、O(n))で動作し、以下を含む:
基数ソートを使用して、rowIDs1及びrowIDs2を昇順にソートする
rowIDs1をより要素数の少ないアレイに適用する
Pointer1 = 0
Pointer2 = 0
ResultsPointer = 0
Pointer1< rowIDs1のカウント数 && Pointer2< rowIDs2のカウント数である間
もしもrowIDs1[Pointer1] == rowIDs2[Pointer2]であるならば
resultingIDs[ResultsPointer] = rowIDs1[Pointer1]
ResultsPointer++
Pointer1++
Pointer2++
そうではなくもしもrowIDs1[Pointer1] > rowIDs2[Pointer2]であるならば
もしもresultingIDs[ResultsPointer] < rowIDs2[Pointer2]であるならば
resultingIDs[ResultsPointer] = rowIDs2[Pointer2]
ResultsPointer++
Pointer2++
そうでなければ
もしもresultingIDs[ResultsPointer] < rowIDs1[Pointer1]であるならば
resultingIDs[ResultsPointer] = rowIDs1[Pointer1]
ResultsPointer++
Pointer1++
マルチモード・ユーザ・インターフェース
様々な実施形態では、メディアプラットフォーム120は、様々な主要なアクティビティタイプに適応可能であるマルチモードUIをサポートする。たとえば、UIは、ビジュアル検索モード、オブジェクト関連付けモード、又はオブジェクト操作モードになり得る。このため、UIは、終わりのない選択肢の組で画面を散らかすことなく主要なアクティビティに重点を置くことができる。様々な実施形態では、コマンドは、画面内で実質的に同じ相対的な位置若しくは領域に配置され、ユーザが記憶を頼りにこれらのコマンドにアクセスすることを可能にする。UIは、UIがどのモードにあるかをユーザに指示し、ユーザが他のモードへ素早く切り替えることを可能にするモード切り替え制御によって制御され得る。
実施形態例では、メディアプラットフォームと相互作用するシステムは、メディアプラットフォームのマルチモードアプリケーションを制御するためにユーザ・インターフェース(UI)をユーザ機器に提供するように構成される処理機器を備えたメディアプラットフォームを含み、ユーザ・インターフェースは、複数のモードナビゲーション領域を備え、各モードナビゲーション領域は、マルチモードアプリケーションのモードに関連付けられ、各モードナビゲーション領域は、モードナビゲーション領域に関連付けられたモードを制御する特定の機能の組を備えている。UIは、機器アクティビティの検出に基づいて、アクティブモードのためのナビゲーション領域を提示するものであり、UIは、非アクティブモードに切り替えるためのグローバルナビゲーションメニューを含み、非アクティブモードに関連付けられている機能を抑制する。
たとえば、各モードナビゲーション領域は、モードナビゲーション領域に関連付けられたモードを制御する特定の機能の組を含むことができ、ナビゲーション領域が提示されたとき、特定の機能の組がモードナビゲーション領域内に維持される。実施形態例では、グローバルナビゲーションメニューは、ユーザのジェスチャ入力によって制御可能である。特定の機能の組を提示するために、UIは、1つ又は複数の拡張可能なサブモードナビゲーション領域を含むことができる。1つ又は複数の拡張可能なサブモードナビゲーション領域は、検出された機器アクティビティに基づいて提示される可能性があるが、UIは、非アクティブサブモードに関連付けられた機能を抑制する。
UIは、グローバルナビゲーションメニューにアクティブモードインジケータを含むことができる。一部の実施形態では、処理機器は、グローバルナビゲーションメニュー上のショートカットを強調することによって次のモードを提案するために、ユーザのアクティビティパターンを追跡することにより機器アクティビティを検出する。マルチモードアプリケーションは、ビジュアル検索モード、オブジェクト操作モード、又はデータエントリモードのうちの少なくとも1つを含むことができる。
マルチモード制御スイッチ
図18は、様々な実施形態によるマルチモード制御スイッチ1800を示す。図18を参照すると、マルチモード制御スイッチ1800は、ユーザ機器110(たとえば、スマートフォン)に表示され得る。マルチモード制御スイッチ1800は、現在モード「ビジュアル検索」をユーザが切り替えることができる追加モードと共に表示する。代替的に、ユーザは、異なったモードの間で切り替えるために、及び/又は、追加モードを見せるために(たとえば、タッチスクリーン上で)スワイプジェスチャを使用することができる。
マルチモードオーバービュー
図19A〜図19Cは、様々な実施形態によるマルチモードUIを示す。図19A〜図19Cを参照すると、マルチモードUIは、意味情報をメディアオブジェクトに関連付けるため、及び、メディアオブジェクトを検索するため使用することができる。スタンピングモードは、メディアオブジェクトのための関連付けを判定するインターフェースを提供する。UIは、ユーザがバッチ関連付けを行えるようにする非常に効率的な方法で関連付けることができるメディアオブジェクトの効率的な検索を可能にするために構成されている。スタンピングUI内の制御ボタンは、関連付け機能に関係している。検索するために、ユーザは、(右側で)ビジュアル検索モードに切り替えることができる。マルチモード制御スイッチは、図18に記載されているとおり、モード間で素早いナビゲーションが可能である。検索モードでは、ビジュアル検索UIは、メディアライブラリに重点が置かれた制御選択肢を提示する。
有利であるのは、マルチモードUIは、どんな動作が異なったアクティビティ(たとえば、検索、スタンピング、シェアリングなど)のため利用可能であるかを推測することからユーザを解放する。マルチモードUIは、各アクティビティモードに関係している動作を効率的に分類し、提示する。UIコマンドは、所定のモードの画面の同じ場所又は領域に置かれる。このようにして、マルチモードUIは、アプリケーションの機能を低減することなく、個別のユーザの認識要件を緩和する。
マスキングアクセス制御
様々な実施形態では、メディアプラットフォーム120は、記憶されたデータオブジェクト(たとえば、データストア125に記憶されたメディアオブジェクト)へのアクセスを、ユーザアカウントを必要としない方法で制御する。これに反して、アクセスは、ユーザアカウントメカニズムに関係しない自動又は手動データオブジェクト保護ルールに基づいて制御される。各データ保護ルールは、保護されるべき特定のデータオブジェクトを選択し、オブジェクトをアクセス可能及びアクセス不可能にするためにそれぞれオン及びオフを切り替えることができる。データ保護ルールのステータスは、効率的なデータマスキング層を計算するために組み合わせ可能である。データマスキング層は、所定のデータオブジェクトがアクセス可能であるかどうかを判定する。簡単なデータ選択ルールとしてデータ保護を提示することは、複雑なアクセス制御メカニズムを簡略化する。
データアクセス計算
図20は、様々な実施形態によるデータアクセス計算を示す。様々な実施形態では、メディアプラットフォーム120は、効率的なデータマスキング計算を行うことによってデータオブジェクト可視性を計算することができる。アクセス制御ルールは、マスキングメカニズムを作成するために組み合わせ可能である。各ルールは、アクセス不可能であるべき(たとえば、隠されるべき)データオブジェクトを識別する。多数のルールが組み合わされたとき、何らかのルールによって覆い隠されなかったデータオブジェクトは、ユーザから見えるままにされる。
一部の実施形態では、メディアプラットフォーム120は、ロックカウントを作成することによりマスキングメカニズムを実装し、ロックカウントを各データオブジェクトに添付する。アクセス制御ルールが起動されたとき、ルールは、ルールに関連付けられているデータオブジェクトを識別し、(たとえば、1ずつ)増加させられた対応するロックカウントを判定し、関連付けられたデータオブジェクトへのアクセスを制限する。ユーザが検索を行うとき、システムは、ゼロより大きいロックカウントを有するデータオブジェクトへのアクセスを制限する(たとえば、検索結果からデータオブジェクトを隠す、又は、データオブジェクトにアクセスすることを防ぐ)。これに反して、ロックカウントがゼロであるデータオブジェクトは、ユーザに表示され、ユーザからアクセス可能である。一部の実施形態では、メディアプラットフォーム120は、選択されたデータオブジェクトが何らかのアクティブアクセス制御ルールと関連付けられているかどうかについてのチェックを行うことによりマスキングメカニズムを実装することができる。
アクセス制御ワークフロー
図21は、様々な実施形態によるアクセス制御を実施するプロセス2100を示す。
図21を参照すると、第1のUIは、ユーザにルールを編集する前にユーザ識別を再構築するように要求するために提示される(1)。第2のUIは、ユーザが新しいアクセス制御ルールを作成する、又は、既存のルールを編集することを可能にするために提示される(2)。第2のUIは、中から取り出すために利用可能なメタデータと関連タグとに基づく動的UIである。その上、第2のUIは、2つのサービスと情報交換する。第一に、第2のUIは、アクセス制御エディタインターフェースがユーザによる関連タグの追加を実現し易くするのを助けるために、オントロジーに基づくタグ検索エンジンサービスと情報交換することがある。たとえば、ユーザは、イタリアの都市に対するタグを選びたいと思うことがあり、オントロジーベースのタグ検索エンジンは、ユーザがこれらを効率的に見つけるのに役立つ。
第二に、第2のUIは、どの種類のメタデータが特有のオブジェクトタイプのため利用可能であるかを指示する適切なメタデータリコメンデーションエンジンと協議することがある。たとえば、ビデオは、メタデータとしての持続期間を有することがあるが、テキスト文書は、単語又は文字カウントを有することがある。エンジンは、簡単な編集のためユーザへの選択の範囲を絞り込むのに役立つ。
ユーザがアクセス制御ルールの最終バージョンを確認した後、アクセス制御ルールは、効率的な記憶及び転送のためパッケージ化される(3)。ルールは、メディアプラットフォーム120による実行の準備ができている。アクセス制御ルールは、次に、(たとえば、既存のルールと一緒にルールデータベースに)記憶される。
ルールの効果は、実行時の効率的な実施のため予め計算され、このような効果は、各データオブジェクトと共に記憶される(4)。
代替的に、アクセス制御ルールは、ルールが手動で選択されたデータオブジェクトの単純なグループであるシンボリックリンクアクセス制御ルールになり得る。一実施形態では、シンボリックリンクは、ロックされるべきファイルシステム内のファイルを識別するために使用される。このため、シンボリックリンクのグループがロックされたとき、実際のファイルもロックされる。シンボリックリンクを使用して実装されたデータ制御ロックは、組織的な構造から分離している。
アクセス制御ルールは、アクセス制御ルールがタグではなくメタデータに基づいているメタデータアクセス制御ルールにもなり得る。
アクセス制御ルールは、タグがキーワードマッチングタグであり、オントロジーに基づくタグではない、キーワードベースのタグアクセス制御ルールにもなり得る。
アクセス制御ルールは、オントロジーに基づくタグアクセス制御ルールにもなり得る。
アクセス制御ルールステータス変更
アクセス制御ルールステータスは、手動又は自動のいずれかで変更され得る。
図22は、様々な実施形態によるアクセス制御ルールステータスへの自動変更を示す。図22を参照すると、外部システムは、マスキングアクセス制御システムと連動して機能していることがある。外部システムは、どのアクセス制御ルールが効果的であり、どのアクセス制御ルールが効果的ではないかを制御する機能を担う。たとえば、オペレーティングシステムは、物理的な記憶装置コントローラ(たとえば、ハードディスク又はソリッドステートドライブ(SSD)コントローラ)に実装されたアクセス制御ルールを制御することができる。この場合、オペレーティングシステムは、基本的なオペレーティングシステムレベル協働する追加レベルの保護を追加することができる。図22に表されたとおり、状態1において、外部システムは、規則のうちの1つ又は複数をオフにするように命令するコマンドを前述のシステムに送信する。システムは、ルールステータスを変更した後にアクセス制御ルールの新しいステータスを確認することによって状態2で応答する。
図23は、様々な実施形態によるアクセス制御ルールステータスへの手動変更を示す。図23を参照すると、手動モードでは、ユーザは、アクセス制御ルールのステータスを制御する。ユーザがアクセス制御ルールステータスを変更したいとき、システムは、ユーザがアクセス制御ルールを編集することを可能にするUIを提示する。たとえば、ユーザがユーザ識別を確認するためにログイン画面を使って認証をチャレンジする場合、ログイン画面は、パスワードフォーム、ピクチャコードフォーム、ロックキーフォーム、又は、その他の認証フォームを選ぶことができる。アクセス制御ルール及び各アクセス制御ルールのスタータス(たとえば、使用可能、使用不能、動作中、停止中など)を一覧するUIが提示され得る。ユーザがルールのうちの1つをクリックしたとき、ユーザは、ユーザがルールのステータス(たとえば、使用可能、使用不能、動作中、停止中など)を変更することを可能にするUIが提示される。
様々な実施形態によれば、メディアオブジェクトの組に関して制限アクセス制御を実施するシステムは、単一の機器を含む。単一の機器は、少なくとも部分的に第1のアクセス制御ルールに基づいて、メディアオブジェクトの組に含まれている少なくとも第1のメディアオブジェクトへのアクセスを遮断することに決定するように、少なくとも部分的に第2のアクセス制御ルールに基づいて、メディアオブジェクトの組に含まれている少なくとも第2のメディアオブジェクトへのアクセスを制御することに決定するように、及び、メディアオブジェクトの組に含まれているが、第1のメディアオブジェクトでも第2のメディアオブジェクトでもない少なくとも第3のメディアオブジェクトを単一の機器のユーザに提供するように構成されることがある。機器は、第1のメディアオブジェクト、第2のメディアオブジェクト、及び第3のメディアオブジェクトのそれぞれに関連付けられているロックカウントに少なくとも部分的に基づいて、第1のメディアオブジェクトでも第2のメディアオブジェクトでもない第3のメディアオブジェクトを提供するように構成され得る。
独立及び分散マルチシステム環境における制限アクセス制御
一部の実施形態では、データは、たとえば、限定されることはないが、ユーザ機器110、データストア125、第1のデータソース140、及び第2のデータソース150を含む複数の独立したシステムにわたって分布していることがある。メディアプラットフォーム120は、別個の、かつ、データ同期化より高い優先度の同期化チャネル上で、別個のシステム上のアクセス制御ルールを同期させることができる。付加的に、データオブジェクトメタデータは、別個の同期化メカニズム及び/又はチャネルも使用することができるので、各システムが集中型システムとは無関係にルールを実施することを可能にする。
同期化
マルチシステム型エコシステムでは、異なったシステム(たとえば、データストア125、第1のデータソース140、及び第2のデータソース150)は、一体になって連結され、ユーザがどのシステムに対しても同じアクセス制御ルールを再使用できるようにする。メディアプラットフォーム120は、各システムが独立に動作することを可能にするために、アクセス制御ルール、データオブジェクト、及びデータオブジェクトに対するメタデータを同期させる。複数の同期化ネットワークは、独立に動作することができる。たとえば、アクセス制御ルール同期化ネットワークは、高い優先度レベルで実質的にリアルタイムに動作することができる。メタデータ同期化ネットワークも高い優先度レベルで機能することができる。データオブジェクト同期化ネットワークは、第3の独立したネットワークとなることがある。
実装例によれば、システムは、ユーザの第1の機器及び第2の機器によってアクセス可能であるデジタルオブジェクトの組に関して制限アクセス制御を実施することができる。システムは、第1の機器上でデジタルオブジェクトの組に含まれている少なくとも第1のデジタルオブジェクトへのアクセス遮断することである第1のシステムアクセス制御ルールに関連付けられている更新情報を検出するように、少なくとも部分的に第1のシステムアクセス制御ルールへの更新情報に基づいて、第2の機器上でデジタルオブジェクトの組に含まれている少なくとも第2のデジタルオブジェクトへのアクセスを遮断することに決定するように、そして、第2の機器上でデジタルオブジェクトの組に対する制限アクセス制御を維持するために第1のシステムアクセス制御ルールに関連付けられている更新情報を第2の機器を提供するように構成されているユーザの第1の機器を含む。
実装例によれば、メディアオブジェクトの組に関して制限アクセス制御を実施するシステムは、複数の機器上に単一ユーザのための機器を含む。第1の機器は、少なくとも部分的に第1のアクセス制御ルールに基づいて、メディアオブジェクトの組に含まれている少なくとも第1のメディアオブジェクトへのアクセスを遮断することを決定するように、少なくとも部分的に第2のアクセス制御ルールに基づいて、メディアオブジェクトの組に含まれている少なくとも第2のメディアオブジェクトへのアクセスを遮断することに決定するように、及び、メディアオブジェクトの組に含まれているが、第1のメディアオブジェクトでも第2のメディアオブジェクトでもない少なくとも第3のメディアオブジェクトを第1の機器のユーザに提供するように構成されることがある。システムは、ユーザの第2の機器を含むことができ、第1のアクセス制御ルールは、第1の機器及び第2の機器に適用可能であるユニバーサルルールを含むことができ、第2のアクセス制御ルールは、第1の機器に適用可能であるが、第2の機器には適用できない機器固有ルールを含むことができる。
実装例によれば、第1の機器及び第2の機器は、第2の機器のユーザが第1の機器を介してメディアオブジェクトの組を閲覧する閲覧セッションを行うように構成されている。たとえば、第1の機器及び第2の機器は、ユーザの第1の機器と第2の機器との間で閲覧セッションに適用可能である第3のアクセス制御ルールに基づいて閲覧セッションを行うように構成され得る。第3のアクセス制御ルールは、メディアオブジェクトの組に含まれている第3のメディアオブジェクトへのアクセスを遮断することができる。たとえば、第1の機器は、第1のメディアオブジェクト及び第3のメディアオブジェクトではなく少なくとも第2のメディアオブジェクトを第2の機器のユーザに提供するように構成され得る。
中央サーバ
一部の実施形態では、同期化は、マエストロとしての機能を果たす集中サーバ又はクラウドを使って行われる可能性がある。全ての変更は、変更が他のシステムへ伝搬される前に、最初に、集中サーバ又はクラウドへ送信される。図24は、様々な実施形態による集中サーバベースの同期化を示す。
ピア・ツー・ピア
一部の実施形態では、ピア・ツー・ピアのパラダイムが複数のシステムを同期化するときに適用される。たとえば、ピア・ツー・ピア同期化は、最新の更新情報を追跡するために、独立したバージョニングを使用することができる。図25は、様々な実施形態によるピア・ツー・ピア同期化を示す。
階層同期化ネットワーク
一部の実施形態では、一部のシステムは、ローカル機器間のステータスを統合するローカル同期化サーバとしての機能を果たすことがある。ローカル同期化サーバは、集中サーバとの通信機能を担う。たとえば、モバイルネットワークが存在しない場合、WiFiホットスポットは、ホットスポットに接続された様々なシステムの間の同期化も同様に統合し、集中サーバと通信するサーバをホストできることがある。図26は、様々な実施形態による階層同期化を示す。
データアクセス計算
様々な実施形態では、データオブジェクト可視性は、アクセス制御ルールステータスカスケードによって、及び、データマスキング計算を行うことによって計算される。
アクセス制御ルールステータスカスケード
アクセス制御ルール配布及びピア・ツー・ピア閲覧をサポートするために、アクセス制御ルールがオン又はオフに切り替えられる複数の層を定義することができる。これらの層は、たとえば、限定されることはないが、ユニバーサル層(すなわち、エコシステム全体のため)、システム若しくは機器層(すなわち、個別の機器又はシステムのため)、アプリケーション層(すなわち、プラットフォームレベルで実装されたシステムのため)、及び、セッション層(すなわち、ピア・ツー・ピア又は一時的変更のため)を含む可能性がある。
様々な実施形態では、アクセス制御ルールは、各層でオン又はオンに切り替えることができる。各ルールのステータスを計算するために、ルールステータスは、最も特異的ではない(すなわち、ユニバーサル)層から最も特異的な(すなわち、セッション)層まで次々に重ねられる。各ルールのステータスは、より一般的な層におけるルールステータスがより特異的な層でのルールステータスに優先することを可能にすることによって計算される。図27は、様々な実施形態によるアクセス制御ルールカスケードを示す。
実効データマスキング計算
実効データマスキング計算は、前述された方法と同様の方法で実施されるが、プロセスは、各ターゲットセッションに対して繰り返される。
アクセス制御付きのピア・ツー・ピア閲覧セッション
ピア・ツー・ピア閲覧モードでは、他のシステムは、アドホック的に、ホスト機器に記憶されたデータオブジェクトを閲覧することができるが、アクセス制御ルールを維持する。ホスティングを閲覧することを要求する各衛星システムに対して、システムは、閲覧セッションを作成し、特有の閲覧セッションのためのアクセス制御ルールのステータスを変更することができる。セッションルールは、前述のとおり、ルールステータスカスケードの計算に含まれる可能性がある。一部の実施形態では、ピア・ツー・ピア閲覧は、データ閲覧の目的のため、ホスト機器をアドホックサーバに変換する。図28は、様々な実施形態によるピア・ツー・ピア閲覧セッションを示す。
閲覧セッション開始
図29は、様々な実施形態によるピア・ツー・ピア閲覧セッションを起動するプロセス2900を示す。ユーザがピア・ツー・ピア閲覧セッションを起動するために、ユーザは、ユーザがユーザ自身の機器を閲覧するように勧めることができるゲストの組を提示される(1)。ユーザは、望ましいゲストを選択し、次に、継続してアクセス制御ルールを調べる。新しいセッションに対するアクセス制御ルールの有効ステータスがユーザに提示され、ユーザがこの特有のセッションに対する各ルールの有効ステータスを変更できるようにする(2)。ユーザは、この特有のゲストセッションのための各アクセス制御ルールを作動及び停止することができる(3)。ユーザは、ユーザが現在動作中の閲覧セッションを各セッションに参加しているゲストと共に見ることを可能にするUIが提示される(4)。ユーザは、ゲストを追加すること、UIを介してゲストを削除すること、及び/又は、セッションを終了することが可能である。
実装例によれば、システムは、別のユーザの機器を閲覧しながら、ユーザに対する制限アクセス制御を実施することができる。
ビジュアルアクセスコード
様々な実施形態では、アクセスは、組み合わせ候補を増やすことによってセキュリティを高めると共に、ユーザがより容易に思い出せるようにするビジュアルアクセスコードメカニズムを介して制御されることがある。ビジュアルアクセスコードメカニズムは、2つの入力フェーズを有するUIを介して提示される。第1の入力フェーズは、ユーザがシステムアドミニストレータによって予め設定される可能性がある写真又は画像の組から1枚の写真を選択することを要求する。写真集合は、全てのユーザに対して同一である、又は、ユーザ固有である可能性がある。その上、写真集合は、全ての機器に対して同一である、又は、機器固有である可能性がある。
図30は、様々な実施形態によるビジュアルアクセスコードを設定するプロセス3000を示す。ユーザは、ステップ1において画像(たとえば、写真)を提示される可能性がある。ステップ2において、ユーザは、(たとえば、16個、25個、36個などの)ホットスポット候補からホットスポットの一部(たとえば、4個、5個など)を(たとえば、クリックする、タッチする、ジェスチャを行うなどによって)選択するよう要求される。たとえば、ユーザは、写真にマークが付けられた16個のホットスポットから、任意の順序でホットスポットに触れることによって、4個のホットスポットからなる一部を選択することができる。一部の実施形態では、画像は、ホットスポットが見えるようにして、ユーザホットスポットを選択し、選択されたホットスポットを思い出すことに役立てるために重ね合わせ又はマーキングを行う可能性がある。ビジュアルアクセスコードは、ステップ1で選択された写真と、ステップ2で選択されたホットスポット値の一部とに関連付けられた写真インデックスから構成されている。ホットスポットの一部に関連付けられている写真インデックス及び座標は、暗号化されたダイジェストとして記憶される可能性がある。
ユーザの視覚的記憶は、画像内のビジュアルキューを使用して、登録された画像及びホットスポットを記憶し、思い出すために利用される。視覚的記憶は、視覚経験に関する我々の感覚の一部の特性を保存する記憶の形式である。視覚的記憶は、知覚処理及びエンコーディングと、結果として生じる神経表現との間の関係性を記述する。視覚的記憶は、事前に訪れた場所へ視覚的にナビゲートするために、眼球運動から長い時間範囲にわたって現れる。登録された画像上のホットスポットの一部を含むビジュアルアクセスコードは、認証機能を提供するため、より長く記憶され、より容易に思い出される可能性がある。さらに、平凡なビジュアルアクセスコードを選択することは、利用可能なホットスポットが写真ごとに異なるので、平凡な英数字パスコード(たとえば、「1111」、「1234」、「password」など)よりも可能性が低い。ユーザは、オブジェクト、場所、動物又は人物に類似しているビジュアル情報をビジュアルアクセスコードの心的イメージとして記憶に置くことができる。ユーザは、自分の前頭前野皮質及び前帯状皮質の異なるエリアを使用して、長期視覚記憶からのパターンとしてビジュアルアクセスコードを思い出すことができる。
様々な実施形態によれば、ビジュアルアクセスコードプロセスのためのシステムは、複数の画像を第1の機器又はサービスのユーザに提示し、ユーザから、複数の画像の中の第1の画像の選択を受信するように、ユーザから、第1の画像に含まれている複数のホットスポットの中の少なくとも第1のホットスポットの選択を受信するように、及び、少なくとも部分的に第1の画像及び第1のホットスポットの選択に基づいてビジュアルアクセスコードを生成するように構成されている第1の機器を含む可能性がある。
実装例によれば、ビジュアルアクセスプロセスの登録プロセスは、画像(たとえば、写真、ピクチャ、複雑形状、画像など)のグリッドからの第1の選択と、第1の選択された画像のホットスポット位置(たとえば、画素位置、画面座標、重ね合わせポイントなど)の系列に対する第2の選択とを含むことがある。たとえば、ユーザは、様々なランドマークを描写する写真のグリッドを提示され、グリッドからランドマークを描写するピクチャを選択することがある。次に、選択されたランドマークピクチャから、ユーザは、選択されたピクチャ上でホットスポット位置の系列を選択することができる。たとえば、選択されたホットスポット位置は、ランドマークの異なった部分、背景、ピクチャの境界などのピクチャ又は画像上の位置でもよい。ピクチャ又は画像内の描写された形状は、ユーザに対するビジュアルキューとしての役目を果たし、ビジュアルキューは、選択されたホットスポット位置に対応する。その結果、ピクチャ内の描写された形状は、従来型の英数字の組み合わせより容易にユーザのメモリに記憶されることがある。
システムは、図32〜図41を参照してより詳しく記載されるとおり、登録プロセス中にピクチャ及びホットスポットの組のユーザ選択を効率的に記憶することができる。たとえば、複数の写真の各々は、対応するインデックス番号に関連付けられ得る。たとえば、各インデックス番号は、グローバルに一意な写真識別子を含む可能性がある。実施形態では、画像のグリッドからの画像の第1のフェーズ選択は、複数の画像のグリッドの追加ページを含む可能性がある。ユーザは、第1のフェーズ画像選択に対して登録された画像を識別するために、画像のグリッドの複数のページ内をスクロールすることができる。画像の複数のグリッド内の画像の各々は、各画像のグローバルに一意な写真識別子に基づくインデックス番号を含む可能性がある。
各画像は、ユーザがホットスポットの第2のフェーズ集合の部分集合を選択するためにいくつかの予め定められたホットスポットを含む可能性がある。実装例によれば、複数のホットスポットの各々は、画像インデックス番号を使って暗号学的に記憶することができる対応するホットスポット識別子に関連付けられている。別の実装例によれば、複数のホットスポットの各々は、写真内の対応する画素の2次元座標に関連付けられる可能性がある。
実施形態によれば、ビジュアルアクセスコードは、たとえば、宛先機器又はサービス上の認証サービスによって実装され得る。実施例では、ウェブサイトは、ユーザを認証するために、従来型の英数字ログインフォームをビジュアルアクセスコードの2フェーズ入力方法で置換することができる。ユーザがビジュアルアクセスコードを認証サービスに登録した後、認証サービス(たとえば、モバイル機器又はウェブサイト)は、ビジュアルアクセスコードの後続のエントリを記憶された登録アクセスコードにマッチさせるユーザのビジュアルアクセスコードを安全に記憶するために様々な技術を使用することができる。たとえば、ユーザがビジュアルアクセスコードを登録した後、認証サービスは、第1のフェーズに関連付けられている識別子及び第2のフェーズに関連付けられている座標をテキスト文字列に変換し、文字列を暗号学的に記憶することができる。その後、ユーザが宛先を再訪問し、ビジュアルアクセスコードを入力したとき、認証サービスは、宛先にアクセスするユーザの権限を検証するために、記憶された文字列をデコードすることができる。
別の実施形態によれば、ビジュアルアクセスコードは、ユーザからビジュアルアクセスコードを受信し、英数字パスワードを様々な宛先へ出力するクライアント側ビジュアル認証インターフェース(VAI)によって実装され得る。本実施形態では、VAIは、宛先に基づいて英数字パスワードを再作成するアルゴリズムを含む。実施例では、ユーザは、VAIを使って、従来型の英数字ログインフォームを使用するウェブサイトにアクセスできる。宛先と一緒にVAIを使用するため、ユーザは、英数字パスワードをセットアップ又は登録するためにVAIを利用する。
ビジュアルアクセスコードシステムは、画面上の仮想入力メカニズム又はビジュアル認証インターフェース(VAI)を通じてビジュアルアクセスコードを入力するシステム及び方法をさらに含む可能性がある。VAIは、他のアプリケーション又はウェブサイトからのサポートを必要としないクライアント側ビジュアルパスワード入力ソフトウェアとして機能する。VAIは、ユーザが視覚的にパスワードを入力することを可能にするユーザ・インターフェースをユーザに提示し、その後、ソフトウェアは、このようなビジュアルアクセスコードを現行のウェブサイト及びアプリケーションに適した普通の英数字にエンコードする。このシステムは、どこにもパスワードを記憶することがなく、ユーザがビジュアルアクセスコードを入力するときに毎回パスワードを矛盾なく生成する。
たとえば、ビジュアルアクセスコード入力専用の仮想キーボードは、VAIでもよい。VAIは、ビジュアルアクセスコードプロセスを介したビジュアルパスワードの入力のためのクライアント側認証を実行できる。VAIは、機器ハードウェアとは独立にビジュアルアクセスコードを入力するためにユーザにインターフェースを提示する。すなわち、VAIは、指紋リーダのようなハードウェアを必要とはしないセキュア認証のための互換性を提供し、局所的に記憶されたパスワードとは独立にビジュアルアクセスコードの完全性を維持する。
ユーザは、自分のパスワードフォームをリセットするために進み、宛先のパスワードフォームに英数字パスワードを投入するためにVAIを開始することがある。以下に記載されているとおり、VAIは、ユーザによって入力されたビジュアルアクセスコードに基づいて宛先のための英数字パスワードを矛盾なく再生成するであろう。その上、同じビジュアルアクセスコードが異なった宛先のためのVAIに入力されたとき、VAIは、異なった英数字パスワードを生成する。その結果として、VAIは、従来型の宛先ログイン方法と互換性があるビジュアルアクセスコードを使用してユーザを認証することができる。ユーザが宛先に登録するためにVAIを使用した後、宛先は、VAIの出力(たとえば、英数字パスワード)を記憶する。VAIの出力は、宛先側認証鍵としての役割を果たし、他方、ビジュアルアクセスコードは、クライアント側認証鍵である。
たとえば、宛先がVAIの出力を記録した後、ユーザは、宛先を再訪問し、VAIを開始し、ユーザのビジュアルアクセスコードを入力することができ、VAIは、宛先によって予め記憶されたパスワードにマッチするパスコードを出力するであろう。様々な実施形態では、VAIの出力は、ユーザの一意識別子、第1の画像の選択、第1の画像の固有識別子、画像融合アルゴリズム、ホットスポットの選択、ホットスポット座標のシフト、及び/又は、1つ若しくは複数の一方向性暗号アルゴリズムを使用する16進ダイジェストに基づく可能性がある。
ユーザが選択された画像のホットスポットの系列又は組を登録した後、ユーザには、機器又はサービスに対してユーザを認証するビジュアルアクセスコードプロセスが提示され得る。たとえば、ユーザは、機器又はサービスのアクセスインターフェースまで進み、ビジュアルアクセスプロセスの第1のフェーズ中に多数の写真又は画像が提示されることがある。ユーザは、登録されたプロセスの間に、提示された多数の写真の中から事前に選択された正しい写真を思い出さなければならない。たとえば、ユーザは、様々な有名なランドマークを描写するピクチャのグリッドが提示されることがある。ユーザの登録された画像は、登録プロセス中に同じ複数の写真とグループ化されることがあり、又は、登録プロセス中に提示された画像とは異なった写真とグループ化されることがある。ユーザは、最初に、複数の画像から、登録された画像を選択する。たとえば、ユーザ選択画像は、写真のグローバルに一意な写真識別子のインデックス番号とマッチする可能性がある。
図31は、ビジュアルアクセスコード共に用いられるロックコード管理インターフェース例を示す。ロックコード管理インターフェース3100は、ユーザがビジュアルアクセスコードを管理し、ビジュアルアクセスコード優先を設定し、ユーザプロファイルを割り当てることなどを可能にする。実施形態例では、ロックコード管理インターフェースは、ユーザが、メディアアプリケーション、ファイナンシャルアプリケーション、ワークアプリケーションなどのアプリケーションカテゴリに基づいて、異なったビジュアルアクセスコードを設定することを可能にする。マスタユーザは、サービス又は機器の異なったサブユーザに対して多数のビジュアルアクセスコードを設定することができる。たとえば、親は、子どもがゲーミングアプリケーションにアクセスすることを許可するゲストビジュアルアクセスコードを設定することがある。別の実施例では、配偶者は、この配偶者のパートナーが配偶者のファイナンシャルアカウントにアクセスことを許可するが、ソーシャルメディア又はメッセージングアカウントにアクセスすることを許可しないパートナービジュアルアクセスコードを設定することがある。
図32は、例示的な実施形態によるビジュアルアクセスコードを設定するフロー例3200を示す。プロセスは、ユーザから一意識別子を集めることから始まる。プロセス3200は、図33を参照してさらに記載されるように、ユーザのための一貫した画像の組を生成するために一方向性暗号符号化を使用する。ワークフロー3200は、図36を参照してさらに記載されているとおり、続けて、ユーザがマスタパスワードを設定したいかどうかを判定する。
図33は、様々な実施形態によるユーザ識別子を写真選択マッピングにマッピングするプロセス例3300を示す。プロセス3300は、ユーザが一意識別子を提供することから始まることがある。プロセス3300は、図35〜図36を参照してより詳細に記載されているとおり、一方向性暗号符号を判定し、一意ユーザ16進ダイジェストを生成することがある。次に、一意ユーザ16進ダイジェストは、図40〜図41を参照してより詳細に記載されているとおり、写真及びホットスポットの一意リストを生成するために使用される可能性がある。次に、プロセス3300は、図37〜図39を参照してより詳細に記載されているとおり、写真のリストをユーザに提示して、パスコードを登録する。
コンパクト符号化
一部の実施形態では、ビジュアルアクセスコードは、コンパクト符号化を使用してエンコードされることがある。たとえば、コンパクト符号化において、各写真は、0から8までのインデックスをもつことができるが、各ホットスポットは、0から15までのインデックスを有する。ホットスポットに割り当てられたインデックスと写真内のホットスポットの位置との間に一定の相関が存在ないことがある。ホットスポットに割り当てられたインデックスと写真内でのホットスポットの位置との間の相関は、写真に依存する。実施形態では、ホットスポットに関連付けられたインデックス値は、ランダムに割り当てられる。その結果、ホットスポットに対するランダムなインデックス割り当ては、セキュアなアクセスパスコードを作成する。
上記実施例では、コンパクト符号化は、16個の候補値を作成する。これらの値のうちの4個が何回でもどんな順番でも選択され、3,876個の候補を生じさせる。さらに9個の異なる写真が存在するので、組み合わせ候補の個数は、9×3,876=34,884個まで増加し、これは、従来型の4桁数字パスコードによって与えられた候補数の3倍より多い。
ポジション符号化
一部の実施形態では、ビジュアルアクセスコードは、1つ1つの選択されたホットスポットの座標に基づいてポジション符号化を使用して生成されることがある。同じ写真に対して、各ホットスポットの座標は、一定であることがあるが、これらの座標は、一方の写真から別の写真へ移すことができない。表1は、前の節に記載されたとおりの単純なホットスポットインデックス符号化がどのように座標インデックスにマッピングされるかを表している。たとえば、ホットスポットインデックス2は、写真1内の値(140及び59)と写真2内の(89及び147)に対応する。コンパクト符号化を用いると、値2は、写真の間で共有されるが、同じホットスポットに対する座標値は、写真間で共有されない。その上、記憶された桁数も増える(たとえば、4個の値の代わりに8個)。このようして、ポジション符号化は、より一層多くの候補を生成し、対応するビジュアルアクセスコードを破ることをより一層難しくする。
一部の実施形態では、ビジュアルアクセスコードは、写真のサイズ及び/又は解像度に依存することがあり得る。たとえば、500×500画素の写真では、各ホットスポットは、水平軸方向に0から499まで、及び、垂直軸方向に0から499までのコードを生成することができる。このため、4個のホットスポットは、8桁と等価であり、これは、1.02432860e+17個の候補を生じる。この数は、写真の枚数(たとえば、9)がさらに乗じられ、これは、従来型の8文字長の英数字の大小文字を区別したパスワード(すなわち、2.02095455e+11個の候補)より遙かに強いパスワードに対する〜9e+17個の候補を生じさせる。
一意写真識別子を用いるポジション符号化
一部の実施形態では、あらゆる写真には、グローバル一意識別子を関連付けることができる。このため、パスコードを記憶することは、システム又はユーザに依存する。ユーザは、2つの異なったシステムに対して同じパスワードを選択することができない。たとえば、ポジション符号化を使用してエンコードされたパスコード(0,100,101,200,201,300,301,400,401)は、第1の写真(すなわち、写真0)に対応する。しかし、一意写真識別子を組み込むことは、パスワード(38A52BE4−9352−453E−AF97 5C3B448652F 0,100,101,200,201,300,301,400,401)を生成し、ここで、「38A52BE4−9352−453E−AF97−5C3B448652F0」は、写真グローバル一意識別子である。様々な実施形態では、グローバル一意識別子は、推定することが困難である長さの値(たとえば、16文字長の数)になり得る。
図34は、様々な実施形態による一意ユーザ16進ダイジェスト例を示す。16進ダイジェストは、写真選択インデックス、フィルタ混合アルゴリズム識別子、最終パスワードマッピングアルゴリズム識別子、写真フィルタビットマップ、及び、ホットスポット識別子を含むことができる。たとえば、一意ユーザ16進ダイジェストは、写真選択インデックスのため指定された8バイトから始まり、その後に、1バイトフィルタ混合アルゴリズム識別子と、最終パスワードマッピングアルゴリズムのインジケータとが続けられる。実施形態例では、写真フィルタビットマップは、27バイトで構成されることがある。実施形態例によれば、一意ユーザ16進ダイジェストは、ホットスポットシフト用インデックスを指示する25バイトを含む可能性がある。
図35は、実施形態例によるビジュアルアクセスコードを割り当てる登録プロセス例を示す。登録プロセス3500は、認証を必要とする宛先へのユーザナビゲーションから始まることがある。仮想入力(たとえば、VAI)方法は、ユーザ名及びパスワードを要求する従来型のログインフォームを検出することがある。ユーザがユーザ名を従来型のログインフォームにタイプ入力した後、登録プロセス3500方法は、16進ダイジェストを使用してビジュアルアクセスコードを宛先に割り当てる登録インターフェースを提示することがある。ユーザは、前述のとおり、VAIを介して、宛先のための新しいビジュアルアクセスコードを登録するために、第1の画像及びホットスポットの系列群を選択することを進める。
提供されたユーザ名及び宛先識別子に基づいて、VAIは、記憶されたパスワードを宛先とマッチさせるために16進ダイジェストに基づくパスワードを再生成することができる。
登録プロセス3500は、16進ダイジェストに基づくパスワードを使って従来型のログインフォームを完了することに進むことがある。たとえば、登録プロセス3500は、一方向性暗号符号化を使用し、宛先識別子を用いてパスワードにシード値を与えて、英数字パスワードを生成することができる。パスワードシードは、図36を参照して記述されているとおり、英数字パスワードを生成する前に、一方向性暗号アルゴリズムに入力するために使用される。シードは、ユーザの選択したホットスポットとシードとの間に直接的な1対1のマッピングをもつ。このプロセスは、同じビジュアルパスコードが使用されるときでも異なったアプリケーション/ウェブサイト宛先が異なったパスワードを有するように、一方向性暗号方式の前にアプリケーション/ウェブサイト宛先名を使ってシード値が与えられたパスワードを生成する。その結果、アクセスコードプロセスがユーザ入力に基づいてパスワードの生成を矛盾なく再現するので、ユーザのシステムは、サイトごとにパスワードを記憶することを必要としない。
例示的な実施形態によれば、ビジュアルアクセスコードをセットアップするアルゴリズムは、以下を含むことがあり得る:
一方向性暗号法、すなわち、sha−512を用いてフレーズをエンコードする
uniqueUserHexDigest = onewayCryptography(ユーザフレーズ)とする
uniqueUserHexDigestをホストシステムKeystoreに保存する
写真のリストを生成するために暗号方式を使用する
basePhotoIndex = getByteAtIndex(0,8, uniqueUserHexDigest)とする
インデックスiを0から(キーに対して使用する写真の数)−1まで繰り返す
photoIndex = (basePhotoIndex + i)modulus (システム内の写真の総数)とする
photo = getPhotoWithIndex(photoIndex)とする
blendingAlgorithmIndex= getByteAtIndex(8, uniqueUserHexDigest)とする
photoFilterBitmap = getNumberOfBytesFromPosition(27,12, uniqueUserHexDigest)とする
photoBlendingFilter = generateFullPhotoFromBitmap(photoFilterBitmap)とする
finalPhoto = blendPhotoWithFilterUsingAlgorithm(photo, photoBlendingFilter, blendingAlgorithmIndex)とする
hotspots = getPhotoHotSpotsForIndex(photoIndex)とする
h=0とする
shiftedHotSpots = サイズ25の配列
各ホットスポットに対して
hotspotShift = getByteAtIndex (h+38, uniqueUserHexDigest)とする
adjustedHotSpot = adjustHotSpotCenterByShift(hotspots[h], hotspotShift)とする
shiftedHotSpots.add(adjustedHotSpot)
宛先が訪問されたとき、VAIは、ユーザを認証するために、関連付けられているビジュアルアクセスコードを判定し、仮想入力方法をユーザに提示することがある。仮想入力方法を介したビジュアルアクセスコード認証の成功に応答して、システムは、宛先認証を完了するために、割り当てられた英数字パスワードを従来型のログインフォームに投入することがある。
図36は、実施形態例によるパスワードを用いてビジュアルアクセスコードをエンコードするプロセス例3600を示す。プロセス3600は、パスコードシードを生成するために、写真SHA−512hasと、x軸によってソートされたホットスポット位置と、アプリケーション/ウェブサイト宛先識別子とを入力することがある。プロセス3600は、英数字パスワードをマップするために使用された16進ダイジェストを生成するために一方向性暗号アルゴリズムを用いてエンコードされたパスコードを使用する。実施形態例では、結果として得られるパスワードは、大文字及び小文字の英数字と特殊文字とを含むことができるセキュアなASCIIパスワードを生成するであろう。実施形態例によれば、アルゴリズムは、以下を含むことがあり得る:
passwordHexDigestを入力する
passwordBytes = getNumberOfBytesFromPosition(0,16, passwordHexDigest)
finalPassword = “”とする
passwordBytes内の各バイトに対して
If (byte == 45 OR
(byte >=48 AND byte <=57) OR
(byte >=65 AND byte <=90) OR
(byte >=97 AND byte <=122)){
// そのままの値を取得する
finalPassword.append(byte)
次のバイトに続く
}
modByte = byte modulus 63とする
if(modByte == 0){
modByte += 45
}else if (byte >=1 AND byte <=11){
modByte += 47
}else if (byte >=12 AND byte <=37){
modByte+= 53
}else{
modByte+= 59
}
finalPassword.append(modByte)
図37は、様々な実施形態によるモバイルインターフェース例を示す。仮想入力方法に対するビジュアルアクセスコードをセットアップするために、ユーザは、自分の名前、母親の旧姓、誕生日、又はお気に入りの場所などの一意パスフレーズを選択することによって開始する。ステップ2で、システムは、ユーザが登録画像を選択するための画像の組を生成する。実施形態例によれば、アルゴリズムは、以下を含むことがあり得る:
photoHexDigest = generateOneWayCryptographyFrom(photoBitmpa)とする
selectedHotspotsXY = “”とする
選択された各ホットスポットに対して
hotspotXY=getXYForHotspotとする
selectedHotspotsXY.append(hotspotXY)
End
siteOrAppId = collectCurrentSiteOrAppIdとする
finalPasswordSeed = concat(photoHexDigest, selectedHotspotsXY, siteOrAppId)とする
passwordHexDigest = generateOneWayCryptographyFrom(finalPasswordSeed)とする
passordMappingAlgorithmIndex=
getByteAtIndex (9, uniqueUserHexDigest)とする
asciiPassword= generateAsciiPasswordWithAlgorithm(passwordHexDigest, passordMappingAlgorithmIndex)とする
図38は、実施形態例によるビジュアルアクセスコードを入力する実装例を示す。ステップ1で、ユーザは、認証を必要とする宛先ウェブサイト若しくはアプリケーション又はログイン画面に進む。VAIは、宛先の認証フォームを検出し、宛先識別子に関連付けられたビジュアルアクセスコードを取り出すことができる。VAIは、宛先のためユーザによって以前に登録された画像の組をユーザに提示する。ユーザが登録された画像にマッチする画像を選択することに応答して、VAIは、ステップ2へ進み、ユーザに登録された画像のホットスポットを提示する。たとえば、登録された画像は、16個のホットスポット候補を含む自宅の画像でもよい。
ユーザが以前に登録されたホットスポットとマッチするホットスポットの系列を選択することに応答して、ビジュアル入力方法は、ステップ3へ進む。たとえば、ユーザは、登録プロセス中にユーザが選択したホットスポットにマッチする、描写された自宅の異なる部分に対応する画像上の異なる場所に触れることにより4個のホットスポットを識別することがある。ステップ3で、仮想入力方法は、ビジュアルアクセスコードと一緒に宛先の認証フォームに記憶された英数字パスワードを入力する。一部の実施形態例では、仮想入力方法は、ユーザがビジュアルアクセスコードを入力することに成功した確認メッセージを提示することがある。ユーザは、英数字パスワードをタイプ入力する必要なしにログインを完了するために、宛先の認証フォームをクリックすることにより先へ進むことがある。
図39A〜図39Cは、様々な実施形態によるウェブサイト上の仮想入力方法の実装例を示す。図39Aは、ユーザに以前に登録された画像を含むいくつかの画像を提示する仮想入力方法の第1のフェーズを示す。ユーザは、登録された画像をクリックする又は触れることにより以前に登録された画像を識別することがある。ユーザが登録された画像にマッチする画像を選択することに応答して、ユーザは、登録された画像を提示され、登録された画像上でホットスポットの系列を識別するように指示されることがある。
図39Bでは、ユーザは、仮想入力方法のためのホットスポット選択画面が提示される。インターフェースは、選択された画像に対するいくつかのホットスポットをユーザに提示することができる。ユーザが登録されたホットスポットの系列群にマッチする登録された画像上のホットスポットの系列を選択したことに応答して、ビジュアルアクセスコードプロセスは、機器又はサービスに対してユーザを認証することがある。たとえば、ユーザは、ユーザが登録されたプロセス中に選択したホットスポット位置に対応するピクチャ上の4箇所をクリック又触れる可能性がある。たとえば、ビジュアルアクセスプロセスは、ユーザが選択した場所が登録プロセス中に記憶された対応するインデックス番号を満たすかどうかを判定する。別の実装例によれば、ビジュアルアクセスプロセスは、ユーザが選択した場所が登録プロセスからの写真内の対応する画素の2次元座標を満たすかどうかを判定する。
実装例では、ユーザを認証するビジュアルアクセスコードプロセスの第2のフェーズを満たすために、登録された画像上のホットスポットの系列は、ホットスポットが登録プロセス中に選択された順序と同じ順序で識別されることがある。別の実装例では、登録された画像上のホットスポットの系列は、ユーザを認証するビジュアルアクセスコードプロセスの第2のフェーズを満たすためにどんな順序でも識別されることがある。場所及びビジュアルキューの並べ替えは、従来型の英数字組み合わせより著しく増加するので、正しい画像を最初に思い出し、次に正しい画像上のホットスポット位置の系列を識別するユーザは、ユーザを認証するのに十分であるかもしれない。
ユーザが登録された画像にマッチしない画像を選択するのに応答して、ユーザには、マッチしない画像を提示され、マッチしない画像上のホットスポットの系列を識別するように命令されることがある。ユーザを認証するために、ビジュアルアクセスコードプロセスは、複数の画像からの第1の画像の選択に関してユーザへのフィードバックを行う、又は、フィードバックを抑制することができる。その結果、権限のないユーザは、第1の画像の選択又は第2のホットスポットの系列の識別がビジュアルアクセスコードプロセスを満たすことができなかったかどうかを通知されないことがある。画像及びホットスポット位置のグループから異なった画像の組み合わせの推測を示す度重なる試行は、その結果、ブルートフォース攻撃として検出されることがある。
正しいホットスポットが選択された場合、仮想入力方法は、図39Cへ進み、確認をユーザに提示し、宛先のログインフォームに英数字最終パスワードを投入することができる。
各ユーザに対してセキュアなビジュアルアクセスコードを作成するために、プロセスは、視覚的には識別できないと思われるが各ユーザに対して一意である修正された画像を利用することができる。実施形態では、プロセスは、ホットスポットの座標を修正するために原画像の中心点をシフトすることを含み、画像データを保護するために合成テクスチャを追加することができる。
図40は、様々な実施形態による画像融合プロセスを示す。各ユーザに対する融合写真は、ユーザの画像選択を調べて観察するだけでは検出できない異なったパスワードを各ユーザに提供する。実施形態では、システムは、融合アルゴリズムによってテクスチャマスクを原写真と組み合わせ、セキュアなビジュアルアクセスコードを生成するため修正された写真を作成する。写真融合アルゴリズム例は、以下を含むことがあり得る:
resultingPhoto = copyPhoto(originalPhotoSize)とする
0からphotoWidthまでの各xに対して
0からphotoHeightまでの各yに対して
resultingPhotoPixelAt(x,y) = resultingPhotoPixelAt(x,y) + setTransparencyTo(photoBlendingFilterPixelAt(x,y),20%)
End
End
実施形態例では、システムは、一意ユーザ16進ダイジェストに記憶された融合アルゴリズム及び写真フィルタビットマップを選択する。たとえば、16進ダイジェストは、修正された写真を作成する単純な重複融合アルゴリズムを指示する値を含むことができる。多数の融合及びパスワードマッピングアルゴリズムがアクセスコードのセキュリティを向上させる。
図41は、様々な実施形態によるホットスポット位置シフトの実装例を示す。原写真座標の中心点をシフトすることにより、画像上のホットスポットの場所値は、同じビジュアル画像を使用し、かつ、画像の視覚的見かけを維持して、各ユーザに対して異なったパスワードを生成するために変更され得る。
ホットスポットシフトアルゴリズム例は、以下を含むことがあり得る:
hotspotShiftingIndexを入力する
各hotspotに対して
hotspot.x = (hotspot.x − 2) + (hotspotShiftingIndex remainder 5)
hotspot.y = (hotspot.y − 2) + (hotspotShiftingIndex modulus 5)
End
たとえば、登録フェーズ中に提供された一意ユーザフレーズに基づいて、16進ダイジェストは、ホットスポット中心をシフトさせ、それによって、ユーザに対する画像のホットスポット座標を区別するシフト値を提供することができる。たとえば、一意ユーザ16進ダイジェスト内のシフト値9に基づいてシフトされたとき、位置座標30、50をもつ原ホットスポット中心は、ホットスポット中心を位置座標301、49へシフトさせる。
別の実装例によれば、マルチファクタ認証システム(MFA)は、複数のアプリケーション/ウェブサイト宛先にアクセスするためにユーザを認証するのに使用され得る様々なパスワード入力機構(たとえば、英数字、ビジュアル、音声など)をサポートする。MFAは、ローカル又はネットワークメモリ(たとえば、パスワード貯蔵庫(password vault))内にパスワードを記憶せずに、複数の異なるサービスプロバイダ(たとえば、ユーザ認証を含むサードパーティアプリケーション、クラウドサービス、ウェブサイトなど)に関するインターネット接続性とは独立に一意でセキュアなパスワードを作成するリアルタイムパスワードジェネレータを含む。
MFAは、一意で複雑なパスワードを作成し、パスワードをサービスプロバイダに登録し、これらをユーザによってアクセス可能なパーソナライズされたリコールツールに関連付ける。たとえば、パーソナライズされたリコールツールは、一般にユーザの公に入手可能な又は秘密に入手された情報(たとえば、ソーシャルメディア、公文書など)からのハッキングを許す伝統的なパスワード及び/又は回復の質問ではなく、ユーザ自身の個人的記憶に基づくものとすることができる。
MFAは、パスワードリセットに関連する直接コスト並びにセキュリティ違反に起因する法的及び公共関係性責任に関連する間接コストを削減するために、パーソナル及びエンタープライズシステム(たとえば、金融機関、大学、健康保険機関、病院など)に関して互換かつスケーラブルである。MFAは、複数の一意パスワードの思い出し、デバイスの間でのパスワード貯蔵庫の同期化、クラウドベースソリューションの可用性、漏洩及び濫用が致命的になり得る場合の変更不能なバイオメトリックパスワードなど、伝統的なパスワード問題を回避する。
例の態様によれば、MFAは、サービスプロバイダの認証モジュール(たとえば、アプリケーション、ウェブサイト、デジタル宛先など)から分離された、ユーザデバイス上の認証機構である。マルチファクタ認証システムは、ユーザが、ユーザによってアクセス可能なパーソナライズされたリコールツールに基づいて識別子コード及びアクセスコードを作成することを可能にする。マルチファクタ認証システムは、識別子コード及びアクセスコードを使用して、サービスプロバイダごとに一意宛先鍵を生成する。たとえば、アクセスコードを、英数字、パターン、及び/又はビジュアルフォーマットとすることができる。マルチファクタ認証システムは、共通のリポジトリなし(たとえば、パスワード貯蔵庫なし)で、各サービスプロバイダの一意宛先鍵にアクセスするためのインターネット接続を必要とせずに、ユーザデバイスにまたがって動作することができる。
一実装によれば、識別子コードは、各ユーザデバイス上で一旦セキュアに記憶され、アクセスコードは、各サービスプロバイダ(たとえば、アプリケーション、ウェブサイト、デジタル宛先など)との認証時にユーザによって提供される。同一の識別子コード及びアクセスコードが、複数の異なる一意宛先鍵に関連付けられる。各一意宛先鍵は、異なるアプリケーション/ウェブサイト宛先に登録するのに使用される。アプリケーション/ウェブサイト宛先は、一般に、ログイン時に受信した宛先鍵を、宛先によってユーザに登録された宛先鍵と照合することによって、アクセスを許可する。したがって、記憶された識別子コードを有するデバイス上のユーザは、ログインのたびに単一のアクセスコードを入力することによって、複数の宛先にログインすることができ、各宛先は、異なる宛先鍵を受信する。
アプリケーション/ウェブサイト宛先の宛先鍵は、ユーザ側(たとえば、ユーザデバイス、パスワード貯蔵庫、ユーザのクラウドストレージ、ハードウェア鍵など)で記憶されるのではなく、識別子コード及びアクセスコードを使用してマルチファクタ認証システムに基づいて再生成される。すなわち、宛先鍵は、及びアクセスコード及び識別子コードに基づいて一貫して生成され、ここで、宛先鍵は、ユーザ側では記憶されない。
識別子コードを、ユーザデバイス上でセキュアに記憶することができる。識別子コードを、頑健な最小要件(たとえば、長さ要件、複雑さ試験、重複検出など)の対象とし、ユーザが簡単に思い出すことのできる記憶可能な情報(たとえば、お気に入りの映画の引用又は彼らの人生の決定的瞬間)を使用して作成することができる。
たとえば、識別子を、英数字パスフレーズ又は文、ビジュアルアクセスコード(たとえば、VAIを介して画像又はホットスポットを選択する)、パターンなどとすることができる。識別子コードは、デバイスに1回入力され得、デバイスからの表示又は送信から保護される。たとえば、識別子コードは、セキュアフォーマットで記憶され(たとえば、暗号化、ハッシュなど)、デバイスのセキュリティ機構(たとえば、セキュアハードウェア空間、保護されたメモリ、読取専用メモリ、追記型セキュアストレージなど)を使用することができる。
アクセスコードは、サービスプロバイダがセキュアログインを要求するたびに、ユーザによってデバイスに供給される。単一のアクセスコードが、複数の異なるサービスプロバイダにアクセスするために様々なフォーマットで(たとえば、英数字、ビジュアル、音声など)入力され得、デバイスからは送信されない。
実装例では、テキストパスワード、ビジュアルパスワード、パターン、バイオメトリクス、ユーザ挙動などの異なるユーザに重点を置いた認証機構が、宛先鍵を生成するのに一貫して使用される識別子コードと共に使用されるアクセスコードを受信する。アクセスコードは、頑健なセキュリティ要件(たとえば、長さ要件、複雑さ試験、重複検出など)を要求し、デバイスに入力するのに効率的とすることができる。
実装例では、アクセスコードは、英数字文字列、ビジュアルアクセスシーケンス、安全ロック、パターン、ジェスチャ、隠されたロック、ダイスワード(dice word)のうちの少なくとも1つであり、アクセスコードは、バイオメトリック情報(たとえば、指紋、顔スキャン、網膜スキャンなど)を使用してさらに暗号化される。バイオメトリック情報は、すばやい認証が宛先鍵を再生成することを可能にするローカルセキュリティの追加層を提供するためにデバイス上で記憶され、バイオメトリック情報が、外部のサービス又は構成要素に送信される必要はない。アプリケーション又はサービスからの後続のログインリクエストは、宛先鍵を再生成するためにアクセスコードを暗号化解除するためにバイオメトリック情報を提供するようにユーザに促すことができる。
さらに、ユーザがアクセスコードを覚えていることを確認するために、時々(たとえば、ランダムに、カウントダウンクロック、x回のログインごとになど)アクセスコードを入力するようにユーザに求めることができる。アプリケーション又はサービスからの追加の後続のログインリクエストは、バイオメトリック情報に加えてアクセスコードを入力することによってアクセスコードを確認するようにユーザに促すことができる。
アクセスコードが、識別子コードより頻繁に入力されるので、アクセスコードを、識別しコードより効率的に入力されるように構成することができる。たとえば、アクセスコードは、英数字パスワード、ビジュアルアクセスコード(たとえば、VAIを介して画像又はホットスポットを選択する)、パターンなどとすることができ、識別子コードとは異ならなければならない。
宛先鍵は、サービスプロバイダに供給される(たとえば、送信、宛先のパスワードフォームへのパスワードの投入などを介して)。たとえば、MFAは、ウェブサイトのログインフィールドを正しく識別するのに頑健なヒューリスティックを使用し、ユーザアクセシビリティAPI(たとえば、Open YOLOプロトコル)を使用することなどができる。
前述のとおり、登録プロセス(たとえば、登録プロセス3500)は、一方向性暗号符号化を使用し、宛先識別子を用いてパスワードにシード値を与えて、英数字パスワードを生成することができる。MFAプロセスは、アプリケーション/ウェブサイト宛先名、識別子コード、及びアクセスコードを用いてシード値を与えられる宛先鍵を生成する。したがって、アクセスコードプロセスがユーザ入力に基づくパスワードの生成を一貫して複製するので、ユーザのシステムが、サイトごとにパスワードを記憶する必要はない。
構成されたデバイス上での宛先鍵の生成は、ネットワーク接続性又は外部リソースを必要としない。代替の例によれば、追加のデバイスの構成は、識別子コード及びアクセスコードを用いてセットアッププロセスを完了すること、構成されたデバイスからの認証されたエクスポート機構(たとえば、マトリックスバーコード、近距離無線通信など)、又は当業者によって理解されるネットワーキング転送技法を使用することによって完了され得る。実装例は、MFAの完全性のために識別子コード及び/又はアクセスコードのネットワーク化された転送を禁止するように構成される。
例のMFA法は、デバイスによって、ユーザからの識別子コードをデバイスのセキュアストレージに記憶することを含む。アプリケーション又はサービスからのログインリクエストの受信に応答して、ユーザは、アクセスコードを提供するように促され、デバイスは、識別子コード及びアクセスコードに基づいて宛先鍵を生成する。宛先鍵は、ユーザを認証するためにアプリケーション又はサービスに登録される。
アプリケーション又はサービスからの後続のログインリクエストの受信に応答して、ユーザは、アクセスコードを提供するように促され、MFAは、記憶された識別子コード及び受信したアクセスコードに基づいてアプリケーション又はサービスの同一の宛先鍵を再生成する。宛先鍵は、アプリケーション又はサービスにアクセスするために記憶された識別子コード及びアクセスコードに基づいて一貫して再生成され得る。
さらに、別のアプリケーション又はサービスからのログインリクエストの受信に応答して、ユーザは、同一のアクセスコードを提供するように促され、MFAは、識別子コード及びアクセスコードに基づいて異なる宛先鍵を生成する。異なる宛先鍵は、ユーザを認証するために他のアプリケーション又はサービスに登録され、ここで、異なる宛先鍵は、他のアプリケーション又はサービスにアクセスするために記憶された識別子コード及びアクセスコードに基づいて一貫して再生成され得る。
図42は、様々な実施形態による有線又は無線システム550を示すブロック図である。図1及び図21を参照すると、システム550は、メディアプラットフォーム120を実装するために使用されることがある。様々な実施形態では、システム550は、有線又は無線データ通信の能力をもつ従来型のパーソナルコンピュータ、コンピュータサーバ、パーソナルデジタルアシスタント、スマートフォン、タブレットコンピュータ、又はその他のプロセッサ対応機器となり得る。その他のコンピュータシステム及び/又はアーキテクチャが、当業者に明らかであるように、同様に使用されることがある。
システム550は、好ましくは、プロセッサ560などの1台又は複数のプロセッサを含む。入力/出力を管理する補助プロセッサ、浮動小数点数学演算を実行する補助プロセッサ、信号処理アルゴリズムの高速実行に適したアーキテクチャを有する専用マイクロプロセッサ(デジタル信号プロセッサ)、主処理システムに従属するスレーブプロセッサ(たとえば、バックエンドプロセッサ)、デュアル若しくはマルチプロセッサシステムのための追加マイクロプロセッサ若しくはコントローラ、又は、コプロセッサなどの追加プロセッサが設けられることがある。このような補助プロセッサは、ディスクリートプロセッサでもよく、又は、プロセッサ560と統合されてもよい。
プロセッサ560は、好ましくは、通信バス555に接続されている。通信バス555は、システム550のストレージと他の周辺コンポーネントとの間の情報転送を容易にするデータチャネルを含むことがある。通信バス555は、プロセッサ560との通信のため使用される信号の組、たとえば、データバス、アドレスバス、及び制御バス(図示せず)などをさらに提供することがある。通信バス555は、たとえば、業界標準アーキテクチャ(「ISA」)、拡張業界標準アーキテクチャ(「EISA」)、マイクロチャネルアーキテクチャ(「MCA」)、ペリフェラルコンポーネントインターコネクト(「PCI」)ローカルバス、若しくは、IEEE 488汎用インターフェースバス(「GPIB」)、IEEE 696/S−100などを含む米国電気電子技術者協会(「IEEE」)によって公表された標準に準拠するバスアーキテクチャなどの標準又は非標準バスアーキテクチャを備えることがある。
システム550は、好ましくは、主メモリ565を含み、二次メモリ570も含むことがある。主メモリ565は、プロセッサ560上で動くプログラムのための命令及びデータの格納場所を提供する。主メモリ565は、典型的には、たとえば、ダイナミック・ランダム・アクセス・メモリ(「DRAM」)及び/又はスタティック・ランダム・アクセス・メモリ(「SRAM」)などの半導体ベースのメモリである。その他の半導体ベースのメモリタイプは、たとえば、リード・オンリ・メモリ(「ROM」)を始めとして、同期ダイナミック・ランダム・アクセス・メモリ(「SDRAM」)、Rambusダイナミック・ランダム・アクセス・メモリ(「RDRAM」)、強誘電体ランダム・アクセス・メモリ(「FRAM(登録商標)」)などを含む。
二次メモリ570は、場合によっては、内部メモリ575、及び/又は、リムーバル媒体580、たとえば、フロッピーディスクドライブ、磁気テープドライブ、コンパクトディスク(「CD」)ドライブ、デジタル汎用ディスク(「DVD」)ドライブなどを含むことがある。リムーバブル媒体580は、周知の方法で読み出される、及び/又は、書き込まれる。リムーバブル記憶媒体580は、たとえば、フロッピーディスク、磁気テープ、CD、DVD、SDカードなどでもよい。
リムーバル記憶媒体580は、コンピュータ実行可能なコード(たとえば、ソフトウェア)及び/又はデータが記憶されている非一時的なコンピュータ読み取り可能な媒体である。リムーバブル記憶媒体580に記憶されたコンピュータソフトウェア又はデータは、プロセッサ560による実行のためシステム550へ読み込まれる。
代替的な実施形態では、二次メモリ570は、コンピュータプログラム又はその他のデータ若しくは命令がシステム550にロードされる他の同様の手段を含むことがある。このような手段は、たとえば、外部記憶媒体595及び通信インターフェース590を含むことがある。外部記憶媒体595の実施例は、外部ハードディスクドライブ若しくは外部光ドライブ、及び/又は、外部光磁気ドライブを含むことがある。
2次メモリ570のその他の実施例は、プログラマブル・リード・オンリ・メモリ(「PROM」)、消去可能プログラマブル・リード・オンリ・メモリ(「EPROM」)、電気的消去可能リード・オンリ・メモリ(「EEPROM」)、又はフラッシュメモリ(EEPROMに類似したブロック指向メモリ)などの半導体ベースのメモリを含むことがある。同様に含まれているのは、リムーバブル媒体580及び通信インターフェースであり、これらは、ソフトウェア及びデータが外部記憶媒体595からシステム550へ転送されることを可能にする。
システム550は、入力/出力(「I/O」)インターフェース585をさらに含むことがある。I/Oインターフェース585は、外部機器からの入力及び外部機器への出力を容易にする。たとえば、I/Oインターフェース585は、キーボード又はマウスから入力を受信することがあり、ディスプレイへの出力を提供することがある。I/Oインターフェース585は、様々な代替的なタイプのヒューマンインターフェース及びマシンインターフェース機器への入力と、ヒューマンインターフェース及びマシンインターフェース機器からの出力とを同様に実現し易くすることができる。
システム550は、通信インターフェース590をさらに含むことがある。通信インターフェース590は、ソフトウェア及びデータがシステム550と外部機器(たとえば、プリンタ、ネットワーク、情報源など)との間で転送されることを可能にする。たとえば、コンピュータソフトウェア又は実行可能なコードは、ネットワークサーバから通信インターフェース590を介してシステム550へ転送されることがある。通信インターフェース590の実施例は、少し例を挙げると、モデムと、ネットワーク・インターフェース・カード(「NIC」)と、無線データカードと、通信ポートと、PCMCIAスロット及びカードと、赤外線インターフェースと、IEEE 1394ファイヤワイヤとを含む。
通信インターフェース590は、好ましくは、たとえば、イーサネットIEEE 802標準、ファイバーチャネル、デジタル加入者回線(「DSL」)、非同期デジタル加入者回線(「ADSL」)、フレームリレー、非同期転送モード(「ATM」)、統合デジタルサービス網(「ISDN」)、パーソナル通信サービス(「PCS」)、伝送制御プロトコル/インテーネット・プロトコル(「TCP/IP」)、シリアル回線インターネット・プロトコル/ポイント・ツー・ポイント・プロトコル(「SLIP/PPP」)などの業界公表プロトコル標準を実装するが、カスタマイズされた、又は、非標準インターフェースプロトコルも同様に実装することがある。
通信インターフェース590を介して転送されたソフトウェア及びデータは、概して、電気通信信号605の形をしている。電気通信信号605は、好ましくは、通信チャネル600を介して通信インターフェース590に提供される。一実施形態では、通信チャネル600は、有線若しくは無線ネットワークでもよく、又は、様々なその他の通信リンクでもよい。通信チャネル600は、電気通信信号605を搬送し、少し例を挙げると、ワイヤ若しくはケーブル、光ファイバ、従来型の電話回線、携帯電話リンク、無線データ通信リンク、無線周波数(「RF」)リンク、又は、赤外線リンクを含む様々な有線若しくは無線通信手段を使用して実装されることがあり得る。
コンピュータ実行可能なコード(すなわち、コンピュータプログラム又はソフトウェア)は、主メモリ565及び/又は二次メモリ570に記憶される。コンピュータプログラムは、通信インターフェース590を介して受信され、主メモリ565及び/又は二次メモリ570に記憶されることもあり得る。このようなコンピュータプログラムは、実行されたとき、システム550が前述されているとおりに本発明の様々な機能を行うことを可能にする。
本説明において、用語「コンピュータ読み取り可能な媒体」は、コンピュータ実行可能なコード(たとえば、ソフトウェア及びコンピュータプログラム)をシステム550に提供するために使用される非一時的なコンピュータ読み取り可能な記憶媒体を指すために用いられている。媒体の実施例は、主メモリ565と、(内部メモリ575、リムーバブル媒体580、及び、外部記憶媒体595を含む)二次メモリ570と、通信インターフェース590と通信結合された(ネットワーク情報サーバ又はその他のネットワーク機器を含む)周辺機器とを含む。これらの非一時的なコンピュータ読み取り可能な媒体は、実行可能なコード、プログラミング命令、及び、ソフトウェアをシステム550に提供する手段である。
ソフトウェアを使用して実装された実施形態では、ソフトウェアは、コンピュータ読み取り可能な媒体に記憶され、リムーバル媒体580、I/Oインターフェース585、又は通信インターフェース590を介してシステム550にロードされることがある。このような実施形態では、ソフトウェアは、電気通信信号605の形でシステム550にロードされる。ソフトウェアは、プロセッサ560によって実行されたとき、好ましくは、プロセッサ560に本書において前述された本発明の特徴及び機能を行わせる。
システム550は、音声ネットワーク及びデータネットワーク上で無線通信を実現し易くする任意選択的な無線通信コンポーネントをさらに含む。無線通信コンポーネントは、アンテナシステム610と、無線システム615と、ベースバンドシステム620とを備える。システム550において、無線周波数(「RF」)信号は、無線システム615の管理の下でアンテナシステム610によって無線で送受信される。
一実施形態では、アンテナシステム610は、1つ又は複数のアンテナと、アンテナシステム610に送信信号経路及び受信信号経路を設けるためにスイッチング機能を行う1つ又は複数のマルチプレクサ(図示せず)とを備えることがある。受信経路では、受信されたRF信号は、マルチプレクサから、受信されたRF信号を増幅し、増幅された信号を無線システム615に送信する低雑音増幅器(図示せず)に結合され得る。
代替的な実施形態では、無線システム615は、様々な周波数上で通信するように構成されている1台又は複数の無線機を備えることがある。一実施形態では、無線システム615は、1つの集積回路(「IC」)内で復調器(図示せず)と変調器(図示せず)とを組み合わせることがある。復調器及び変調器は、別個のコンポーネントにもなり得る。着信経路において、復調器は、RF搬送波信号を取り除いて、ベースバンド受信オーディオ信号を残し、このベースバンド受信オーディオ信号が無線システム615からベースバンドシステム620へ送信される。
受信された信号がオーディオ情報を含んでいる場合、ベースバンドシステム620は、信号を復号化し、アナログ信号に変換する。次に、信号は、増幅されてスピーカーへ送信される。ベースバンドシステム620は、伝送のためデジタル信号をさらに符号化し、無線システム615の変調器部分に送られるベースバンド送信信号を生成する。変調器は、ベースバンド送信オーディオ信号をRF搬送波信号と混合して、アンテナシステムに送られ、電力増幅器(図示せず)を通過することがあるRF送信信号を生成する。電力増幅器は、RF送信信号を増幅し、アンテナシステム610に送り、アンテナシステムで信号が送信のためアンテナポートに切り替えられる。
ベースバンドシステム620は、プロセッサ560にも通信結合されている。プロセッサ560は、たとえば、限定されることはないが、主メモリ565及び二次メモリ570を含む1つ又は複数のデータ記憶エリアにアクセスできる。プロセッサ560は、好ましくは、主メモリ565又は二次メモリ570に記憶することができる命令(すなわち、コンピュータプログラム又はソフトウェア)を実行するように構成されている。コンピュータプログラムは、ベースバンドプロセッサ610から受信され、主メモリ565若しくは二次メモリ570に記憶され、又は、受信時に実行されることもあり得る。このようなコンピュータプログラムは、実行されたとき、前述されているとおり、システム550が本発明の様々な機能を行うことを可能にする。たとえば、主メモリ565は、プロセッサ560によって実行可能である様々なソフトウェアモジュール(図示せず)を含むことがある。
様々な実施形態は、たとえば、特定用途向け集積回路(「ASIC」)又はフィールド・プログラマブル・ゲート・アレイ(「FPGA」)などのコンポーネントを使用して、主としてハードウェアで実装されることもある。本書に記載されている機能を行うことができるハードウェア状態機械の実装は、当業者に明らかでもあるであろう。様々な実施形態は、ハードウェアとソフトウェアの両方の組み合わせを使用して実装されることもある。
さらに、当業者は、前述の図及び本書に開示された実施形態に関連して記載された様々な例示的な論理ブロック、モジュール、回路、及び方法ステップが多くの場合に電子ハードウェア、コンピュータソフトウェア、又は両方の組み合わせとして実装され得ることを理解するであろう。このハードウェアとソフトウェアとの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、及びステップが概してこれらの機能性の観点から前述されている。このような機能性がハードウェアで実装されるか、又は、ソフトウェアで実装されるかは、特有のアプリケーションと、システム全体に課された設計上の制約とに依存する。当業者は、特有のアプリケーションごとに様々な方法で前述の機能性を実装することができるが、このような実装決定は、発明の範囲からの逸脱を生じさせるものとして解釈されるべきではない。加えて、モジュール、ブロック、回路又はステップ内の機能のグループ化は、説明を簡単にするためである。特定の機能又はステップは、本発明から逸脱することなく、あるモジュール、ブロック又は回路から別のモジュール、ブロック又は回路へ移すことができる。
その上、本書に開示された実施形態に関連して記載されている様々な例示的な論理ブロック、モジュール、及び方法は、汎用プロセッサ、デジタル信号プロセッサ(「DSP」)、ASIC、FPGA又はその他のプログラマブル論理機器、ディスクリートゲート若しくはトランジスタ論理、ディスクリートハードウェアコンポーネント、又は、本書に記載されている機能を実行するように設計されたこれらの何らかの組み合わせを用いて実装又は実行され得る。汎用プロセッサは、マイクロプロセッサとなり得るが、代替案では、プロセッサは、いかなるプロセッサ、コントローラ、マイクロコントローラ、又は状態機械にもなり得る。プロセッサは、コンピューティング機器の組み合わせとして、たとえば、DSP及びマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、DSPコアと併せて1台若しくは複数のマイクロプロセッサ、又は、何らかの他のこのような構成として実装されることもあり得る。
付加的に、本書に開示された実施形態と関連して記載されている方法又はアルゴリズムのステップは、ハードウェアに直接的に、プロセッサによって実行されるソフトウェアモジュールに、又は、これら2つの組み合わせに具現化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、又は、ネットワークストレージ媒体を含む何らかの他の形式のストレージ媒体に置かれる可能性がある。例示的なストレージ媒体は、プロセッサがストレージ媒体から情報を読み取り、ストレージ媒体に情報を書き込むことができるように、プロセッサに結合される可能性がある。代替案では、ストレージ媒体は、プロセッサと一体となり得る。プロセッサ及びストレージ媒体は、ASIC内に置かれることもあり得る。
図43は、様々な実施形態による例の識別確立プロセス4300を示す。ghostPassword識別は、ユーザが複数のサーバサービス又はアプリケーションにまたがって複数のユーザ名/パスワードと集合的に対話するために確立される。ユーザは、決定的瞬間を使用する単一の記憶可能な識別を用いてユーザ名/パスワード組合せを集中管理することができる。インターフェース4310、4320、4330、及び4340は、識別をセットアップするための例の識別確立プロセスを示す。たとえば、識別を、識別カードとして使用される一意のフレーズを入力することによって確立することができる。ユーザは、簡単に思い出せるか記憶可能であるものを選ぶことができる。インターフェースは、決定的瞬間の例を提供することができる。たとえば、決定的瞬間を、悪いレストランとすることができる。ここで、ユーザは、「Muleレストランからの道を尋ねた時に、傍観者は、Muleと言う前に必ず失礼ですが、と言った」などを思い付く。他の記憶可能な例は、出来事、映画の引用、お気に入りの場所などを含むことができる。これは、電話機のセキュアエリアに記憶され、ハードウェアによって保護される。
図44は、様々な実施形態による例のデフォルト鍵ジェネレータプロセスを示す。パスワードインターフェースは、ghostPasswordを生成するキーボードアドオンを含むことができる。たとえば、鍵ジェネレータは、サービス又はアプリケーションごとに一意鍵を生成するマスタパスワードを入力するためのキーボードを含むことができる。鍵ジェネレータキーボードを、電話機にインストールされたアプリケーションにネイティブに統合することができる。4420では、鍵ジェネレータタイプを選択することができる。ユーザがパスワードを生成するたびに、ユーザは、鍵を入力する。様々な鍵入力機構を、鍵を生成するためにユーザに提供することができる。4430では、単純化された英数字などの鍵ジェネレータタイプを選択することができる。4440では、ビジュアルパスワードの鍵ジェネレータタイプを選択することができる。
図45は、様々な実施形態による例のghostPasswordキーボードインターフェースを示す。4510では、ユーザは、ghostキーボード鍵ジェネレータモードと通常キーボードモードとの間で切り替えることができる。4520では、ghostキーボードが、使用されている現在のアプリケーション又はサービスを示すためにアイコンを含む。4530では、ユーザは、現在のアプリケーション又はサービスにログインするのに使用するユーザ名を入力し又は選択することができる。4540では、ユーザは、識別レベルに関連付けられるマスタghostPasswordを入力することができる。4550では、ghostパスワード鍵ジェネレータが、マスタghostPasswordを認証し、選択されたアプリケーション又はサービスに個別化された一意セキュアパスワードを判定する。アプリケーションの一意セキュアパスワードは、アプリケーションに登録され、ghostパスワードキーボードは、以前に登録されたセキュアパスワードと一致するセキュアパスワードをステップ4520、4530、4540に基づいて一貫して再生成する。4560では、生成されたセキュアパスワードが、選択されたユーザ名と共に、選択されたアプリケーション又はサービスのパスワード入力フィールドに投入される。鍵ジェネレータパスワードキーボードは、複数のアプリケーション又はサービスにまたがって個別化されたセキュアパスワードを生成するために、ユーザがマスタgoesパスワードを答えることを可能にする。したがって、ユーザが、各個別化されたセキュアパスワードを記憶し又は思い出す必要はない。
図46は、様々な実施形態による例のユーザ名入力プロセスを示す。実装例では、ユーザは、登録されたアプリケーション又はサービスに関連付けられたユーザ名を確立し、記憶することができる。4610では、モバイルデバイスは、アクセシビリティサービスがデバイス上で作動しているかどうかを自動的に検出し、サービスを使用可能にするようにユーザに促すか、URLを検出するのにクリップボードを使用し続けることを可能にすることができる。4620〜4640では、ユーザは、彼らのユーザ名、電子メールアドレス、又は電話番号を、パスワードバージョン整数と共に入力することができる。4650では、例のインターフェースは、リビジョンカウントと共に、以前に記憶されたユーザ名、たとえば電子メールアドレスをユーザに提示する。
図47は、様々な実施形態による例の決定的瞬間インターフェースを示す。インターフェース4700は、例の決定的瞬間入力モードを示す。4710では、ユーザは、ヒントと共に決定的瞬間を入力することができる。4720では、ユーザは、ホットスポットを使用して、視覚的な決定的瞬間を選択することができる。
図48は、様々な実施形態による例のブラウザghostPassword入力プロセスを示す。プロセス4800は、ブラウザモードで登録されたアプリケーションと共に識別を使用する例のログインプロセスを示す。たとえば、ユーザに、4820でユーザ名を提示することができる。ユーザ名の選択に応答して、ユーザは、4830で、第1のビジュアルパスワード画面を提示される。ビジュアルパスワードキーボードを使用して、ユーザは、ギャラリから以前に登録した画像を選択し、4840で、ユーザは、正しい画像から以前に登録したホットスポットを選択する。ホットスポットが正しく選択された後に、ghostPasswordは、ユーザがセキュアパスワードを入力することなく、アプリケーションに関連付けられたセキュアパスワードを生成し、セキュアパスワード情報及びユーザ名をアプリケーションログイン画面に投入し、アプリケーションにセキュアパスワード及びユーザ名を送信する。4850では、選択されたアプリケーションが、ユーザを認証し、アプリケーションへのアクセスをユーザに提供する。
図49は、様々な実施形態による例のghostPassword管理プロセスを示す。プロセス4900は、様々な実施形態と共に使用される例の管理画面を示す。たとえば、インターフェース4910は、ユーザがセキュアパスワード及びアプリケーション制御を管理し又は更新登録することを可能にするために、ログイン、セッティング、ヘルプ、アプリケーション情報、又は識別を含むことができる。4920では、ユーザは、以前に登録されたアカウントを選択することができる。4930では、ユーザは、特定のアプリケーション又はサービスに関連するセキュアパスワードにアクセスすることができる。4940では、ユーザは、たとえばパスワードをエクスポートし、インポートし、変更し、又はリセットするために、ghostPasswordに関連するセッティングを変更することができる。インターフェース4950は、識別及び又はセキュアパスワードをエクスポートする例のエクスポートモードを示す。ghostパスワード管理インターフェースは、QRコード(登録商標)、近距離無線通信、共有オプション、又は他の通信オプションなどの様々な通信手段を介するエクスポートを可能にする。
図50は、様々な実施形態によるghostPassword要素のフロー例を示す。
開示された実施形態についての以上の説明は、当業者が本発明をなすこと、又は、使用することを可能にするために記載されている。これらの実施形態に対する様々な変更は、当業者にとって容易に分かることであり、本書に記載されている全体的な原理は、本発明の趣旨又は範囲から逸脱することなく他の実施形態にも適用できる。それ故に、本書に提示された説明及び図面は、現時点での本発明の好ましい実施形態を表現していること、従って、本発明によって広く熟考された主題を表していることが理解されるべきである。本発明の範囲は、当業者に自明になることがある他の実施形態を完全に包含していること、及び、本発明の範囲は、その結果として限定されないことがさらに理解されるべきである。