【文献】
藤澤信夫 外3名,部分文字列を用いた綴り誤りに対する訂正候補の高速検索手法,言語処理学会第13回年次大会発表論文集,日本,言語処理学会,2007年 3月19日,pp.962-965
(58)【調査した分野】(Int.Cl.,DB名)
前記クライアント・コンピューティング・デバイスのユーザにより入力された部分的に完成された記号の文字列は、部分的に完成されたクエリまたは該クエリの部分を含み、
ユーザへの表示のために提供された前記所定の記号の文字列は、完成されたクエリまたは該クエリの部分を含む、請求項5に記載の方法。
【発明を実施するための形態】
【0006】
特定の実施形態では、特定のユーザ特性を有する可能性の高いソーシャル・ネットワーキング・システムのユーザを推測するための方法について記載する。特定の実施形態では、最初に機械学習アルゴリズムまたは他の適切な方法を用いて、ソーシャル・ネットワーキング・システムのソーシャル・グラフにおいて、特定のユーザ特性を有するユーザに対応する1組のユーザ・ノードを識別し、各識別されたユーザ・ノードにスコアを割り当てる。特定の実施形態では、次いで、ソーシャル・グラフにおける他のユーザ・ノードについてのスコアを推定するために、識別されたユーザ・ノードをシードとして用いてよい。ユーザ・ノードのスコアは、割り当てられたスコアを有するユーザ・ノードに対するソーシャル・グラフにおけるそのユーザ・ノードのつながりに基づいて推定されてもよい。ユーザ・ノードについての推定されたスコアの値は、そのユーザ・ノードが特定のユーザ特性を有するユーザに対応する見込みを示してもよい。
【0007】
図1は、ソーシャル・ネットワーキング・システムに関連付けられている例示的なネットワーク環境100を示す。ネットワーク環境100は、互いにネットワーク110によって接続されたユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサードパーティ・システム170を含む。
図1は、ユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110の特定の構成を示すが、この開示は、ユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110の任意の好適な構成を企図する。限定するものとしてではなく一例として、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサードパーティ・システム170の2以上は、ネットワーク110をバイパスして互いに直接的に接続されてもよい。別の例として、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサードパーティ・システム170の2以上が、全体として、または部分的に互いに物理的に、または論理的に同じ場所にあってもよい。さらに、
図1は、特定の数のユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110を示すが、この開示は、任意の好適な数のユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110を企図する。限定するものとしてではなく一例として、ネットワーク環境100は、複数のユーザ101、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110を含んでもよい。
【0008】
特定の実施形態では、ユーザ101は、ソーシャル・ネットワーキング・システム160と、またはソーシャル・ネットワーキング・システム160を通じて対話、すなわち通信する個人(人間のユーザ)、エンティティ(たとえば、企業、事業者、またはサードパーティ・アプリケーション)、または(たとえば、個人またはエンティティの)グループであってよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、オンライン・ソーシャル・ネットワークをホストするネットワークアドレス指定可能なコンピューティング・システムであってよい。ソーシャル・ネットワーキング・システム160は、たとえばユーザプロフィール・データ、コンセプトプロフィール・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関係する他の好適なデータなど、ソーシャル・ネットワーキング・データを生成、記憶、受信、および送信する。ソーシャル・ネットワーキング・システム160は、ネットワーク環境100の他の構成要素によって、直接的に、またはネットワーク110を通じてアクセスされてもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ユーザ101がたとえば適切なプライバシ設定を設定することによってなど、自分達のアクションをソーシャル・ネットワーキング・システム160によって記録させる、または他のシステム(たとえば、サードパーティ・システム170)と共有させることについてオプトインまたはオプトアウトすることを可能にする認可サーバ(または他の適切な構成要素)を含んでもよい。ユーザのプライバシ設定は、そのユーザに関連付けられているどの情報が記録されるか、そのユーザに関連付けられている情報がどのように記録されるか、そのユーザに関連付けられている情報がいつ記録されるか、そのユーザに関連付けられている情報を誰が記録するか、そのユーザに関連付けられている情報が誰と共有されるか、およびそのユーザに関連付けられている情報が何の目的で記録され共有されるかを決定することができる。認可サーバは、ブロッキング、データのハッシュ化、匿名化、または他の適切な技術を通じて、ソーシャル・ネットワーキング・システム30のユーザの1以上のプライバシ設定を適切に実施するために用いられる。特定の実施形態では、サードパーティ・システム170は、該サードパーティ・システム170の種々の機能をホストするネットワークアドレス指定可能なコンピューティング・システムであってよい。サードパーティ・システム170は、サードパーティ・システム・データを生成、記憶、受信、および送信する。サードパーティ・システム170は、ネットワーク環境100の他の構成要素によって、直接的に、またはネットワーク110を通じてアクセスされてもよい。特定の実施形態では、1または複数のユーザ101が1または複数のクライアント・システム130を使用し、ソーシャル・ネットワーキング・システム160またはサードパーティ・システム170にアクセスし、データを送り、それらからデータを受信してもよい。クライアント・システム130は、ソーシャル・ネットワーキング・システム160またはサードパーティ・システム170に直接的に、ネットワーク110を通じて、またはサードパーティ・システムを通じてアクセスしてもよい。限定するものとしてではなく一例として、クライアント・システム130は、サードパーティ・システム170にソーシャル・ネットワーキング・システム160を通じてアクセスしてもよい。クライアント・システム130は、たとえばパーソナル・コンピュータ、ラップトップ・コンピュータ、携帯電話、スマートフォン、またはタブレット・コンピュータなど、任意の好適なコンピューティング・デバイスであってよい。
【0009】
この開示は、任意の好適なネットワーク110を企図する。限定するものとしてではなく一例として、ネットワーク110の1または複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク(VPN)、ローカル・エリア・ネットワーク(LAN)、無線LAN(WLAN)、ワイド・エリア・ネットワーク(WAN)、無線WAN(WWAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、携帯電話ネットワーク、またはこれらの2以上の組合せを含んでもよい。ネットワーク110は、1または複数のネットワーク110を含んでもよい。
【0010】
リンク150は、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサードパーティ・システム170を通信ネットワーク110に、または互いに接続する。この開示は、任意の好適なリンク150を企図する。特定の実施形態では、1または複数のリンク150は、1または複数の有線(たとえば、デジタル加入者線(DSL)またはDOCSIS(Data Over Cable Service
Interface Specification)など)、無線(たとえば、Wi−FiまたはWiMAX(Worldwide interoperability for Microwave Access)など)、または光(たとえば、同期光ネットワーク(SONET)または同期デジタル・ハイアラーキ(SDH)など)リンクを含む。特定の実施形態では、1または複数のリンク150は、それぞれ、アドホック・ネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部分、PSTNの一部分、セルラ技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク150、または2以上のそのようなリンク150の組合せを含む。リンク150は、必ずしもネットワーク環境100全体を通じて同じであることを必要としない。1または複数の第1のリンク150は、1または複数の点で1または複数の第2のリンク150と異なってもよい。
【0011】
図2は、例示的なソーシャル・グラフ200を示す。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、1または複数のソーシャル・グラフ200を1または複数のデータ・ストア内に記憶する。特定の実施形態では、ソーシャル・グラフ200は、複数のノード(複数のユーザ・ノード202または複数のコンセプト・ノード204を含んでもよい)と、それらのノードを接続する複数のエッジ206とを含んでもよい。
図2に示されている例示的なソーシャル・グラフ200は、説明のために、2次元の視覚マップ表現で示されている。特定の実施形態では、ソーシャル・ネットワーキング・システム160、クライアント・システム130、またはサードパーティ・システム170は、適切な用途のためにソーシャル・グラフ200および関連するソーシャル・グラフ情報にアクセスする。ソーシャル・グラフ200のノードおよびエッジは、データ・オブジェクトとして、たとえばデータ・ストア(ソーシャル・グラフ・データベースなど)内に記憶されてもよい。そのようなデータ・ストアは、ソーシャル・グラフ200のノードまたはエッジの、1または複数の検索可能または照会可能なインデックスを含んでもよい。
【0012】
特定の実施形態では、ユーザ・ノード202は、ソーシャル・ネットワーキング・システム160のユーザに対応する。限定するものとしてではなく一例として、ユーザは、ソーシャル・ネットワーキング・システム160と、またはソーシャル・ネットワーキング・システム160を通じて対話または通信する個人(人間のユーザ)、エンティティ(たとえば、企業、事業者、またはサードパーティ・アプリケーション)、または(たとえば、個人またはエンティティの)グループであってよい。特定の実施形態では、ユーザがアカウントをソーシャル・ネットワーキング・システム160に登録するとき、ソーシャル・ネットワーキング・システム160は、そのユーザに対応するユーザ・ノード202を作成し、そのユーザ・ノード202を1または複数のデータ・ストア内に記憶する。本明細書に記載のユーザおよびユーザ・ノード202は、適切な場合、登録されたユーザ、および登録されたユーザに関連付けられているユーザ・ノード202に及ぶ。それに加えて、または代替として、本明細書に記載のユーザおよびユーザ・ノード202は、適切な場合、ソーシャル・ネットワーキング・システム160に登録しなかったユーザに及ぶ。特定の実施形態では、ユーザ・ノード202は、ユーザによって提供された情報、またはソーシャル・ネットワーキング・システム160を含む様々なシステムによって収集された情報に関連付けられてもよい。限定するものとしてではなく一例として、ユーザは、自分の名前、プロフィール写真、連絡先情報、誕生日、性別、婚姻状態、家族状態、雇用、学歴、好み、関心、または他の人口統計情報を提供してもよい。特定の実施形態では、ユーザ・ノード202は、ユーザに関連付けられている情報に対応する1または複数のデータ・オブジェクトに関連付けられてもよい。特定の実施形態では、ユーザ・ノード202は、1または複数のウェブ・ページに対応してもよい。
【0013】
特定の実施形態では、コンセプト・ノード204は、コンセプトに対応する。限定するものとしてではなく一例として、コンセプトは、場所(たとえば、映画館、レストラン、目印、または都市など)、ウェブサイト(たとえば、ソーシャル・ネットワーキング・システム160に関連付けられているウェブサイト、またはウェブアプリケーションサーバに関連付けられているサードパーティウェブサイトなど)、エンティティ(たとえば、人、事業者、グループ、スポーツチーム、または有名人など)、ソーシャル・ネットワーキング・システム160内、またはウェブアプリケーションサーバなど外部サーバ上に位置するリソース(たとえば、オーディオファイル、映像ファイル、デジタル写真、テキストファイル、構造化文書、またはアプリケーションなど)、実際の財産または知的財産(たとえば、彫刻、絵画、映画、ゲーム、楽曲、着想、写真、または書物など)、ゲーム、アクティビティ、着想もしくは理論、別の好適なコンセプト、または2以上のそのようなコンセプトに対応してもよい。コンセプト・ノード204は、ユーザによって提供されたコンセプトの情報、またはソーシャル・ネットワーキング・システム160を含む様々なシステムによって収集された情報に関連付けられてもよい。限定するものとしてではなく一例として、コンセプトの情報は、名前もしくはタイトル、1または複数の画像(たとえば、本の表紙の画像)、ロケーション(たとえば、住所または地理的ロケーション)、(URLに関連付けられる)ウェブサイト、連絡先情報(たとえば、電話番号または電子メール・アドレス)、他の好適なコンセプト情報、またはそのような情報の任意の好適な組合せを含んでもよい。特定の実施形態では、コンセプト・ノード204は、コンセプト・ノード204に関連付けられている情報に対応する1または複数のデータ・オブジェクトに関連付けられてもよい。特定の実施形態では、コンセプト・ノード204は、1または複数のウェブ・ページに対応してもよい。
【0014】
特定の実施形態では、ソーシャル・グラフ200内の1対のノードが、1または複数のエッジ206によって互いに接続されてもよい。1対のノードを接続するエッジ206は、その対のノード間の関係を表す。特定の実施形態では、エッジ206は、1対のノード間の関係に対応する1または複数のデータ・オブジェクトまたは属性を含み、または表してもよい。限定するものとしてではなく一例として、第1のユーザは、第2のユーザが第1のユーザの「友達」であることを示してもよい。この示したことに応答して、ソーシャル・ネットワーキング・システム160は、「友達要求」を第2のユーザに送信してもよい。第2のユーザが「友達要求」を確認した場合、ソーシャル・ネットワーキング・システム160は、ソーシャル・グラフ200内で第1のユーザのユーザ・ノード202を第2のユーザのユーザ・ノード202に接続するエッジ206を作成し、エッジ206をソーシャル・グラフ情報としてデータ・ストア164の1または複数に記憶してもよい。
図2の例では、ソーシャル・グラフ200は、ユーザ「A」とユーザ「B」とのユーザ・ノード202間の友達関係を示すエッジ206と、ユーザ「C」とユーザ「B」とのユーザ・ノード202間の友達関係を示すエッジとを含む。本開示は特定のユーザ・ノード202を接続する特定の属性を有する特定のエッジ206について記載し示しているが、本開示は、ユーザ・ノード202を接続する任意の好適な属性を有する任意の好適なエッジ206を企図する。限定するものとしてではなく一例として、エッジ206は、友達関係、家族関係、仕事関係もしくは雇用関係、ファン関係、フォロワー関係、ビジタ関係、加入者関係、主従関係、相互的関係、非相互的関係、別の好適なタイプの関係、または2以上のそのような関係を表してもよい。さらに、本開示は一般にノードを接続されているものとして記載しているが、本開示は、ユーザまたはコンセプトも接続されているものとして記載している。本明細書では、接続されているユーザまたはコンセプトへの言及は、適切な場合、ソーシャル・グラフ200内で1または複数のエッジ206によって接続されているユーザまたはコンセプトに対応するノードに及ぶ。
【0015】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ソーシャル・グラフ200内でユーザ・ノード202とコンセプト・ノード204との間にエッジ206を作成する。限定するものとしてではなく一例として、(たとえば、ウェブブラウザまたはユーザのクライアント・システム130によってホストされる専用アプリケーションを使用することによってなど)コンセプトプロフィールページを閲覧するユーザは、「いいね」アイコンをクリックまたは選択することによって、ユーザがコンセプト・ノード204によって表されたコンセプトに対して「いいね」と表明することを示す。これによって、ユーザのクライアント・システム130は、コンセプトプロフィールページに関連付けられているコンセプトに対してユーザが「いいね」と表明することを示すメッセージをソーシャル・ネットワーキング・システム160へ送信する。ソーシャル・ネットワーキング・システム160は、そのメッセージに応答して、ユーザとコンセプト・ノード204との間の「いいね」エッジ206によって示されているように、ユーザに関連付けられているユーザ・ノード202とコンセプト・ノード204との間にエッジ206を作成してもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、エッジ206を1または複数のデータ・ストア内に記憶してもよい。特定の実施形態では、エッジ206は、特定のユーザ・アクションに応答してソーシャル・ネットワーキング・システム160によって自動的に形成されてもよい。限定するものとしてではなく一例として、第1のユーザが写真をアップロードし、映画を見たか、または楽曲を聴いた場合、エッジ206は、第1のユーザに対応するユーザ・ノード202とそれらのコンセプトに対応するコンセプト・ノード204との間に形成されてもよい。本開示は、特定のエッジ206を特定の方法で形成することについて記載しているが、本開示は、任意の好適なエッジ206を任意の好適な方法で形成することを企図する。
【0016】
図3は、記号の文字列(string)を保有する1組の記録を作成するための1例の方法300を示す。記号は、アルファベットの記号、英数字の記号、「$」または「%」などの記号、その他などの、任意の好適な記号であってよい。記号の文字列は、任意の好適な長さであってよく、任意の好適な記号を保有ことができる。方法は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、または任意の他の好適なコンピューティング・デバイスなどのコンピューティング・デバイスによって記号の文字列がアクセスされる、ステップ310で開始することができる。文字列は、たとえば、文字列にアクセスするコンピューティング・デバイスのメモリまたは他の構成要素から、別のコンピューティング・デバイス、その他から、任意の好適な方法によってアクセスされてよい。特定の実施形態では、文字列にアクセスすることは、コンピューティング・デバイスにおいて、またはコンピューティング・デバイスの構成要素から、文字列を受信することを含む。ステップ320で、記号の文字列は、1または複数の文字列構成要素に分割され、ここで各文字列構成要素は、記号のうちの少なくとも1つである。特定の実施形態では、記号の文字列が単語である場合、文字列構成要素は、単語を構成する英字であってよい。たとえば、文字列は、「phone」であることがあり、文字列構成要素は、「p」、「h」、その他であってよい。特定の実施形態では、文字列構成要素は、記号のうちの2以上であってよい。たとえば、「ph」は、文字列「phone」の1つの文字列構成要素であってよい。文字列は、たとえば、「oo」、「qu」、その他などの通例一緒に見出される英字、または、構成要素につき2つの記号のような特定の数の記号などの、1組の規則に従って、文字列構成要素に分割され得る。この開示は、任意の好適な基準の組に従って、文字列を文字列構成要素に分割することを企図する。
【0017】
ステップ330で、文字列構成要素の各々は、少なくとも1つの文字列位置識別子に関連付けられる。文字列位置識別子は、分割されている記号の文字列においてなどの、文字列におけるその関連付けられた文字列構成要素の位置を識別する。位置は、任意の好適な方法によって識別されてよい。たとえば、位置は、1または複数の他の文字列構成要素に対する文字列構成要素の位置(たとえば、文字列構成要素が、別の文字列構成要素から隔たった2つの文字列構成要素であること)を識別することによって、識別されてよい。別の例として、位置は、文字列の冒頭などの、記号の文字列の特定の基準点に対する文字列構成要素の位置を識別することによって、識別されてよい。その例では、位置識別子は、文字列における文字列構成要素の位置を識別する番号であってよい。たとえば、「phone」は、「ph:1」、「o:2」、「n:3」、「e:4」によって表されてよい。番号付けは、任意の好適な番号で始めることができる。特定の実施形態では、文字列の最後の構成要素が、文字列末尾識別子によって表されてもよい。たとえば、上の例における位置識別子「4」は、文字列「phone」の末尾に関連付けられてよく、または文字列構成要素の「e」が、文字列の末尾に達したことを指し示す明示的な識別子に関連付けられてもよい。特定の実施形態では、文字列構成要素は、記号の文字列における構成要素の位置を識別する文字列位置識別子以外の文字列位置識別子に関連付けられてもよい。たとえば、文字列構成要素および位置識別子は、(以下でさらに完全に記載されるように)たとえば、スペル間違いの単語を訂正するために使用されてよく、したがって、それらの文字列位置識別子に近い文字列位置識別子が、文字列構成要素に関連付けられてよい。たとえば、「phone」は、「phoen」とスペル間違いされることがあり、したがって、文字列構成要素および関連付けられた文字列位置識別子は、「e:3」および「n:4」を含むことができる。文字列構成要素のいずれかが、任意の好適な文字列位置識別子に関連付けられてよい。特定の実施形態では、文字列構成要素に関連付けるための文字列位置識別子は、たとえば、記号の文字列において文字列構成要素の実際の文字列位置から1つまたは2つだけ位置が離れた文字列位置識別子などの、1組の規則から決定されてよい。この開示は、文字列構成要素に関連付けられた文字列位置識別子の特定の例を記載しているが、この開示は、任意の好適な文字列位置識別子に関連付けられた、任意の好適な文字列構成要素を企図する。
【0018】
ステップ340で、コンピューティング・デバイスは、記号の文字列について、文字列構成要素およびそれらのそれぞれの文字列位置識別子を記憶する。言い換えれば、記号の文字列の構成要素およびそれらのそれぞれの関連付けられた位置識別子が、記号の文字列に関連付けられて記憶される。構成要素および位置識別子は、1または複数のデータベース、インデックス、その他においてなどの、任意の好適な構造において記憶されてよい。
【0019】
特定の実施形態は、適切な場合、
図3の方法の1または複数のステップを繰り返してもよい。この開示は、
図3の方法の特定のステップを、特定の順序で発生するものとして記載し示しているが、この開示は、任意の好適な順序で発生する
図3の方法の任意の好適なステップを企図する。さらに、この開示は、
図3の方法の特定のステップを含む、記号の文字列を保有する1組の記録を作成するための1例の方法について記載し示しているが、この開示は、適切な場合、
図3の方法のステップのすべて、いくつかを含んでもよいし、またはいずれも含まなくてもよい任意の好適なステップを含む、記号の文字列を保有する1組の記録を作成するための任意の好適な方法を企図する。さらに、この開示は、
図3の方法の特定のステップを実施する特定の構成要素、デバイス、またはシステムについて記載し示しているが、この開示は、
図3の方法の任意の好適なステップを実施する任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【0020】
特定の実施形態では、追加的な文字列構成要素が、記号の文字列について記憶されてよい。たとえば、記号の文字列が単語を含むとき、追加的な英字が記憶されてよい。たとえば、「phone」は、「phone」のスペル間違いにおいて通例見出される文字列構成要素を含むことができ、それらの文字列構成要素が、ステップ330で文字列構成要素に関連付けられた文字列位置識別子のうちのいずれかに、または任意の他の好適な文字列位置識別子に関連付けられてよい。特定の実施形態では、記号の文字列について記憶するために他のどの文字列構成要素を決定するかは、1組の規則または基準に従ってなされてよい。特定の実施形態では、他の文字列構成要素は、記号の文字列の文字列構成要素のうちの1つとの音声上の類似性を有する文字列構成要素を含むことができる。「ph」とのその音声上の類似性を考慮すると、たとえば、「f」が、文字列「phone」について記憶されてもよい。別の例として、「June」は、「June」における「u」とのその音声上の類似性を考慮すると、文字列構成要素「oo」を含んでもよい。特定の実施形態では、他の英字が記号の文字列の文字列構成要素である場合、他の文字列構成要素は、クライアント・コンピューティング・デバイスの記号入力レイアウト上で他の英字に近い英字を含むことができる。たとえば、記号入力レイアウトがQWERTYキーボードである場合、文字列「phone」は、文字列構成要素「i」(それは、QWERTYキーボード上で構成要素「o」に隣接する」、「m」(それは、QWERTYキーボード上で文字列構成要素「n」に近い)、その他を含んでもよい。この開示は、他のキーボード・レイアウト、タッチパッド・レイアウト、その他を含む、任意の好適な記号入力レイアウトを企図する。特定の実施形態では、他の文字列構成要素は、クライアント・コンピューティング・デバイスのユーザによって識別された文字列構成要素を含むことができる。たとえば、あるユーザが、「pairs」を「perrs」と頻繁にスペル間違いをすることがあり、したがって、文字列「pairs」について記憶するための文字列構成要素として、「e」を識別することができる。特定の実施形態では、他の文字列構成要素は、クライアント・コンピューティング・デバイスの過去の使用から決定された文字列構成要素を含むことができる。たとえば、クライアント・コンピューティング・デバイスに頻繁に入力されたスペル間違いが、たとえば、任意の好適な機械学習技法によって決定されてよく、それらのスペル間違いの文字列構成要素が、記号の文字列について記憶されてよい。クライアント・コンピューティング・デバイスの過去の使用から決定された文字列構成要素は、たとえば、ソーシャル・ネットワーキング・システムに関連付けられたプロフィールなどの、クライアント・コンピューティング・デバイスに関連付けられたユーザ・プロフィールから決定されるなどの、ユーザ依存であってもよい。言い換えれば、過去の使用から決定された文字列構成要素は、クライアント・コンピューティング・デバイスのユーザによって様々であってよく、所与の記号の文字列について、異なる文字列構成要素が異なるユーザのために記憶されてよい。特定の実施形態では、他の文字列構成要素は、他のクライアント・コンピューティング・デバイスのユーザによってなされたスペル間違いに関与した文字列構成要素などの、他のクライアント・コンピューティング・デバイスの過去の使用から決定された文字列構成要素を含むことができる。特定の実施形態では、記号の文字列が記憶されているユーザとの1または複数の関連した類似性(たとえば、年齢、教育、使用されるクライアント・デバイス、その他)を有するユーザを識別することによって、他のクライアント・デバイスが決定されてもよい。ユーザ間および/または過去の使用の類似性は、任意の好適な方法によって、たとえば、ソーシャル・ネットワーキング・システムのノード、エッジ、またはプロフィールから決定されてよい。この開示は、記号の文字列について記憶され得る他の文字列構成要素のタイプの特有の例を記載しているが、この開示は、記号の文字列について記憶される任意の好適な他の文字列構成要素を企図する。
【0021】
図4は、クライアント・コンピューティング・デバイスのユーザからの記号の入力文字列の受信に応答して、所定の記号の文字列をクライアント・コンピューティング・デバイスのユーザに提供するための1例の方法400を示す。方法は、コンピューティング・デバイスが、クライアント・コンピューティング・デバイスのユーザにより入力された記号の文字列を受信する、ステップ410で開始することができる。記号は、クライアント・コンピューティング・デバイス、別のクライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、その他などの、任意の好適なコンピューティング・デバイスで受信されてよい。ステップ420で、受信された記号の文字列は、1または複数の文字列構成要素に分割され、ここで各文字列構成要素は、記号のうちの少なくとも1つである。
図3のステップ320に対応する記載が、適切な場合、ステップ420に適用される。ステップ430で、文字列構成要素の各々は、受信された記号の文字列における受信された文字列構成要素の位置を識別する文字列位置識別子に関連付けられる。
図3のステップ330に対応する記載が、適切な場合、ステップ430に適用される。
【0022】
ステップ440で、1または複数の記録がアクセスされ、各記録は、所定の文字列記号に関連付けられており、その記録に関連付けられた記号の文字列についての文字列構成要素および関連付けられた文字列位置識別子を保有する。文字列構成要素および関連付けられた文字列位置識別子は、
図3の方法に従って、記録に記憶されていてよく、上で論じたように、他の文字列構成要素を含むことができる。たとえば、所定の記号の文字列は、「phone」であることがあり、記録は、「ph:1」、「f:1」、「o:1」、「o:2」、「o:3」、その他を含むことができる。本明細書において記載したように、「アクセスすること」は、任意の好適なコンピューティング・デバイスまたはコンピューティング・デバイスの構成要素から、アクセスすること、または受信することを含むことができる。
【0023】
ステップ450で、アクセスされた記録のうちの1または複数の各々について、受信された文字列構成要素のうちの少なくともいくつかおよびそれらの関連付けられた文字列位置識別子が、アクセスされた記録の文字列構成要素のうちの少なくともいくつかおよび関連付けられた文字列位置識別子と比較される。たとえば、受信された文字列は、「fone」であることがあり、その文字列構成要素および関連付けられた文字列位置識別子は、「f:1」、「o:2」、「n:3」、「e:4」であってよい。それらの構成要素および識別子は、たとえば、ANDクエリ(AND query)または弱いANDクエリ(weak AND query)を使用することによって、アクセスされた記録のうちの少なくとも1つにおける構成要素および識別子と比較される。弱いANDクエリは、クエリの各要素または各部分の重み付けを行うこと、およびクエリされているデータにおいて見出されるそれらの要素の重みの合計が所定の閾値よりも大きい場合に「真(true)」を返すことを含むことができる。たとえば、あるクエリが、要素A、B、およびC(それらは、文字列、文字、データ要素、または任意の他の好適なクエリ要素もしくは部分であってよい)を含む場合、弱いANDクエリは、それらの要素の各々が、クエリされているデータにおいて見出されたかどうかを評価することになる。重みの合計が次いで、閾値と比較されることになり、合計が閾値よりも大きかった場合、弱いANDクエリは、「真」を返すことになる。特定の実施形態では、比較することは、それらのそれぞれの関連付けられた文字列位置識別子を有する受信された文字列構成要素の各々が、記録の中にあるかどうかを決定することを含むことができる。その決定は、たとえば、受信された文字列構成要素の各々および関連付けられた文字列位置識別子でANDクエリを実施することによってなどの、任意の適切な方法によってなされてよい。たとえば、受信された文字列構成要素「fone」について、比較することは、「f:1」、「o:2」、「n:3」、および「e:4」が、すべて特定の記録の中にあるかどうかを決定することを含むことができる。特定の実施形態では、比較することは、受信された文字列構成要素のいずれかおよびそれぞれの関連付けられた文字列位置識別子が、記録の中にあるかどうかを決定することを含むことができる。
【0024】
ステップ460で、ステップ450の記録のうちの1つに関連付けられた所定の記号の文字列のうちの少なくとも1つが、その比較に基づいて選択される。特定の実施形態では、2以上の所定の記号の文字列が選択されてよい。特定の実施形態では、記号の文字列が選択されなくてもよい。特定の実施形態では、比較に基づいて所定の記号の文字列を選択することは、一定の比較される特徴が記録の中に見出される場合に、所定の記号の文字列を選択することを含むことができる。たとえば、比較が、それらのそれぞれの関連付けられた文字列位置識別子を有する受信された文字列構成要素の各々が記録の中にあるかどうかを決定することを含むとき、そのための決定が真である、記録に関連付けられた所定の記号の文字列のみが選択されてよい。特定の実施形態では、比較に基づいて所定の記号の文字列を選択することは、比較に基づいて事前に選択された記号の文字列のスコアを決定することを含むことができる。たとえば、スコアを決定することは、上で記載したように、受信された文字列構成要素の各々およびそれらのそれぞれの関連付けられた文字列位置識別子が記録の中にあるかどうかを決定することを含むことができる。別の例として、1または複数の重みが、受信された文字列構成要素のうちの1または複数に関連付けられてよく、スコアを決定することは、それらの文字列構成要素に関連付けられた重みに基づいてもよい。たとえば、スコアは、受信された文字列構成要素に関連付けられた重みの合計を含むことができる。特定の実施形態では、スコアは、記録において対応する文字列構成要素を有する受信された文字列構成要素に関連付けられた、かつ同じ文字列位置識別子に関連付けられた、それらの重みのみを含むことができる。たとえば、受信された文字列構成要素および関連付けられた文字列位置識別子が、「о:3」である場合、その文字列構成要素に関連付けられた重みは、その所定の記号の文字列に関連付けられた記録においてもやはり「о:3」が見出される場合に、所定の記号の文字列についてのスコアに含まれてよい。特定の実施形態では、重みの値は、正数、ゼロ、または負数であってよい(たとえば、受信された文字列構成要素が記録の中に見出されない、および/または、記録の中には見出されるが対応する文字列位置識別子を伴わない場合、スコアは、減少することがある(重みが負数)、または増加しないことがある(重みがゼロ))。特定の実施形態では、重みの値は、重みに関連付けられた受信された文字列構成要素に関連付けられたそれぞれの文字列位置識別子と、所定の記号の文字列についての記録における対応する文字列構成要素に関連付けられた文字列位置識別子との間の一致の程度に依存してよい。たとえば、受信された文字列構成要素および関連付けられた文字列位置識別子が、「о:3」であり、「о:3」が記録の中にある場合、「о:3」は、特定の重みを受信することができる。「о:4」および/または「о:2」のみが記録の中にある場合、「о:3」は、より低い重みを受信することができる。「о:1」および/または「о:5」のみが記録の中にある場合、「о:3」は、さらに低い重みを受信することができる、などである。重みは、さらに、または代替において、受信された文字列および記録の両方において文字列末尾識別子を有する文字列構成要素に依存してよい。特定の実施形態では、受信された文字列には存在していない、記録における文字列構成要素の存在が、より低いスコアをもたらすことがある。たとえば、「phonetic」についての記録は、「phone」についての記録における文字列構成要素、プラスいくつかの追加的な構成要素を含むことができる。したがって、受信された文字列「fone」について、「phone」は、「phonetic」よりも高くスコアを決定されてよい。特定の実施形態では、所定の記号の文字列についてのスコアは、所定の閾値スコアと比較されてよく、閾値よりも大きいスコアを有する所定の記号の文字列が選択されてよい。この開示は、所定の記号の文字列を選択するための任意の好適な基準、またはその所定の記号の文字列のスコアを決定する方法を企図する。
【0025】
ステップ470で、選択された所定の記号の文字列のうちの少なくとも1つが、ユーザへの表示のために提供され、これは文字列をユーザに表示することを含むことができる。特定の実施形態では、表示のために提供することは、ユーザが文字列の包含または別の文字列の置換を受け入れる、または否定するために、所定の記号の文字列をユーザに提示することを含むことができる。たとえば、受信された記号の文字列がスペル間違いの単語であり、所定の記号の文字列が正しいスペルの単語である場合、正しいスペルの単語は、スペル間違いの単語を自動的に置換することができる、または、ユーザが置換を受け入れるのか拒否するのかを指し示すために、ユーザに提示され得る。別の例として、特定の実施形態では、(たとえば、検索クエリにあるような)文字列が部分的に完成された単語または語句であり、所定の記号の文字列が完成された単語または語句である場合、完成された単語/語句は、部分的に完成された単語/語句を自動的に置換することができる、または、ユーザが完成を受け入れるのか拒否するのかを指し示すために、ユーザに提示され得る。特定の実施形態では、2以上の所定の記号の文字列が、ユーザへの表示のために提供されてよい。特定の実施形態では、所定の記号の文字列は、たとえば、それらのスコアに従ってなどの、特定の順序で表示されてよい。
【0026】
特定の実施形態は、適切な場合、
図4の方法の1または複数のステップを繰り返してもよい。この開示は、
図4の方法の特定のステップを、特定の順序で発生するものとして記載し示しているが、この開示は、任意の好適な順序で発生する
図4の方法の任意の好適なステップを企図する。さらに、この開示は、
図4の方法の特定のステップを含む、
図4に関連付けられた例示的な方法について記載し示しているが、この開示は、適切な場合、
図4の方法のステップのすべて、いくつかを含んでもよいし、またはいずれも含まなくてもよい任意の好適なステップを含むとき、クライアント・コンピューティング・デバイスのユーザからの記号の入力文字列の受信に応答して、所定の記号の文字列をクライアント・コンピューティング・デバイスのユーザに提供するための任意の好適な方法を企図する。さらに、この開示は、
図4の方法の特定のステップを実施する特定の構成要素、デバイス、またはシステムについて記載し示しているが、この開示は、
図4の方法の任意の好適なステップを実施する任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【0027】
図5は、例示的なコンピュータ・システム500を示す。特定の実施形態では、1または複数のコンピュータ・システム500は、本明細書に記載され、または示されている1または複数の方法の1または複数のステップを実施する。特定の実施形態では、1または複数のコンピュータ・システム500は、本明細書に記載され、または示されている機能を提供する。特定の実施形態では、1または複数のコンピュータ・システム500上で動作するソフトウェアは、本明細書に記載され、または示されている1または複数の方法の1または複数のステップを実施し、または本明細書に記載され、または示されている機能を提供する。特定の実施形態は、1または複数のコンピュータ・システム500の1または複数の部分を含む。本明細書では、コンピュータ・システムに言及することは、適切な場合、コンピューティング・デバイスを包含してもよく、逆も同様である。さらに、コンピュータ・システムに言及することは、適切な場合、1または複数のコンピュータ・システムを包含してもよい。
【0028】
この開示は、任意の好適な数のコンピュータ・システム500を企図する。この開示は、任意の好適な物理形態をとるコンピュータ・システム500を企図する。限定するものとしてではなく一例として、コンピュータ・システム500は、組込みコンピュータ・システム、システム・オン・チップ(SOC)、シングルボード・コンピュータ・システム(SBC)(たとえば、コンピュータ・オン・モジュール(COM)またはシステム・オン・モジュール(SOM)など)、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、対話キオスク、メインフレーム、コンピュータ・システムのメッシュ、移動体電話、携帯情報端末(PDA)、サーバ、タブレット・コンピュータ・システム、またはこれらの2以上の組合せであってよい。適切な場合、コンピュータ・システム500は、1または複数のコンピュータ・システム500を含んでもよく、一元的なものであっても分散型であってもよく、複数のロケーションに跨ってもよく、複数のマシンに跨ってもよく、複数のデータ・センタに跨ってもよく、クラウド内にあってもよく、クラウドは、1または複数のネットワーク内で1または複数のクラウド・コンポーネントを含んでもよい。適切な場合、1または複数のコンピュータ・システム500は、実質的な空間的または時間的制限なしに、本明細書に記載され、または示されている1または複数の方法の1または複数のステップを実施してもよい。限定するものとしてではなく一例として、1つまたは複数のコンピュータ・システム500は、リアルタイムで、またはバッチ・モードで、本明細書に記載され、または示されている1または複数の方法の1または複数のステップを実施してもよい。1または複数のコンピュータ・システム500は、適切な場合、異なる時に、または異なるロケーションで、本明細書に記載され、または示されている1または複数の方法の1または複数のステップを実施してもよい。
【0029】
特定の実施形態では、コンピュータ・システム500は、プロセッサ502、メモリ504、ストレージ506、入力/出力(I/O)インターフェース508、通信インターフェース510、およびバス512を含む。この開示は、特定の数の特定の構成要素を特定の構成で有する特定のコンピュータ・システムについて記載し示しているが、この開示は、任意の好適な数の任意の好適な構成要素を任意の好適な構成で有する任意の好適なコンピュータ・システムを企図する。
【0030】
特定の実施形態では、プロセッサ502は、コンピュータ・プログラムを構成するものなど命令を実行するためのハードウェアを含む。限定するものとしてではなく一例として、命令を実行するために、プロセッサ502は、内部レジスタ、内部キャッシュ、メモリ504、またはストレージ506から命令を取り出し(またはフェッチし)、それらを復号および実行し、次いで、1または複数の結果を内部レジスタ、内部キャッシュ、メモリ504、またはストレージ506に書き込む。特定の実施形態では、プロセッサ502は、データ、命令、またはアドレス用に1または複数の内部キャッシュを含んでもよい。この開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ502を企図する。限定するものとしてではなく一例として、プロセッサ502は、1または複数の命令キャッシュ、1または複数のデータ・キャッシュ、および1または複数の変換索引バッファ(TLB)を含んでもよい。命令キャッシュ内の命令は、メモリ504またはストレージ506内の命令のコピーであってもよく、命令キャッシュは、プロセッサ502によるこれらの命令の取り出しを高速化する。データ・キャッシュ内のデータは、プロセッサ502にて実行される命令が操作するための、メモリ504またはストレージ506内のデータのコピー、プロセッサ502で実行される後続の命令によるアクセスのための、またはメモリ504もしくはストレージ506に書き込むための、プロセッサ502で実行された以前の命令の結果、あるいは他の好適なデータであってもよい。データ・キャッシュは、プロセッサ502による読出しまたは書込み動作を高速化する。TLBは、プロセッサ502のために仮想アドレス変換を高速化する。特定の実施形態では、プロセッサ502は、データ、命令、またはアドレス用に1または複数の内部レジスタを含む。この開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ502を企図する。適切な場合、プロセッサ502は、1または複数の算術論理演算ユニット(ALU)を含むことができ、マルチコア・プロセッサであってもよく、1または複数のプロセッサ502を含んでもよい。この開示は、特定のプロセッサについて記載し示しているが、この開示は、任意の好適なプロセッサを企図する。
【0031】
特定の実施形態では、メモリ504は、プロセッサ502が実行するための命令、またはプロセッサ502が操作するためのデータを記憶するための主記憶装置を含む。限定するものとしてではなく一例として、コンピュータ・システム500は、ストレージ506または別のソース(たとえば、別のコンピュータ・システム500など)からメモリ504に命令をロードする。次いで、プロセッサ502は、メモリ504から内部レジスタまたは内部キャッシュに命令をロードする。命令を実行するために、プロセッサ502は、内部レジスタまたは内部キャッシュから命令を取り出し、それらを復号する。命令の実行中、または実行後、プロセッサ502は、1または複数の結果(中間結果であることも最終結果であることもある)を内部レジスタまたは内部キャッシュに書き込む。次いで、プロセッサ502は、それらの結果の1または複数をメモリ504に書き込む。特定の実施形態では、プロセッサ502は、1もしくは複数の内部レジスタもしくは内部キャッシュ内、または(ストレージ506もしくは他の場所ではなく)メモリ504内の命令だけを実行し、1もしくは複数の内部レジスタもしくは内部キャッシュ内、または(ストレージ806もしくは他の場所ではなく)メモリ504内のデータだけを操作する。1または複数のメモリ・バス(それぞれがアドレス・バスとデータ・バスを含むことがある)がプロセッサ502をメモリ504に結合してもよい。バス512は、下記に記載されているように、1または複数のメモリ・バスを含んでもよい。特定の実施形態では、1または複数のメモリ管理ユニット(MMU)が、プロセッサ502とメモリ504との間に存在し、プロセッサ502によって要求されるメモリ504へのアクセスを容易にする。特定の実施形態では、メモリ504は、ランダム・アクセス・メモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであり得る。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であってよい。さらに、適切な場合、このRAMは、シングルポート型またはマルチポート型RAMであってよい。この開示は、任意の好適なRAMを企図する。メモリ504は、適切な場合、1または複数のメモリ504を含んでもよい。この開示は、特定のメモリについて記載し示しているが、この開示は、任意の好適なメモリを企図する。
【0032】
特定の実施形態では、ストレージ506は、データまたは命令用のマス・ストレージを含む。限定するものとしてではなく一例として、ストレージ506は、ハード・ディスク・ドライブ(HDD)、フロッピー(登録商標)ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、もしくはユニバーサル・シリアル・バス(USB)ドライブ、またはこれらの2以上の組合せを含んでもよい。ストレージ506は、適切な場合、取外し式または非取外し式(または固定)媒体を含んでもよい。ストレージ506は、適切な場合、コンピュータ・システム500に対して内部であっても外部であってもよい。特定の実施形態では、ストレージ506は、不揮発性のソリッドステート・メモリである。特定の実施形態では、ストレージ506は、読出し専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムドROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、もしくはフラッシュ・メモリ、またはこれらの2以上の組合せであってよい。この開示は、任意の好適な物理形態をとるマス・ストレージ506を企図する。ストレージ506は、適切な場合、プロセッサ502とストレージ506の間の通信を容易にする1または複数のストレージ制御ユニットを含んでもよい。適切な場合、ストレージ506は、1または複数のストレージ506を含んでもよい。この開示は、特定のストレージについて記載し示しているが、この開示は、任意の好適なストレージを企図する。
【0033】
特定の実施形態では、I/Oインターフェース508は、コンピュータ・システム500と1または複数のI/Oデバイスとの間の通信のために1または複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム500は、適切な場合、これらのI/Oデバイスの1または複数を含んでもよい。これらのI/Oデバイスの1または複数は、人とコンピュータ・システム500の間の通信を可能にする。限定するものとしてではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、ビデオ・カメラ、別の好適なI/Oデバイス、またはこれらの2以上の組合せを含んでもよい。I/Oデバイスは、1または複数のセンサを含んでもよい。この開示は、任意の好適なI/Oデバイス、およびそれらのための任意の好適なI/Oインターフェース508を企図する。適切な場合、I/Oインターフェース508は、プロセッサ502がこれらのI/Oデバイスの1または複数を駆動することを可能にする1または複数のデバイスまたはソフトウェア・ドライバを含む。I/Oインターフェース508は、適切な場合、1または複数のI/Oインターフェース508を含んでもよい。この開示は、特定のI/Oインターフェースについて記載し示しているが、この開示は、任意の好適なI/Oインターフェースを企図する。
【0034】
特定の実施形態では、通信インターフェース510は、コンピュータ・システム500と1もしくは複数の他のコンピュータ・システム500または1もしくは複数のネットワークとの間の通信(たとえば、パケットベースの通信など)のために1または複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定するものとしてではなく一例として、通信インターフェース510は、ETHERNET(登録商標)もしくは他の有線ベースのネットワークとの通信のためのインターフェース・コントローラ(NIC)もしくはネットワーク・アダプタ、またはWI−FIネットワークなど無線ネットワークとの通信のための無線NIC(WNIC)もしくは無線アダプタを含んでもよい。この開示は、任意の好適なネットワーク、およびそのための任意の好適な通信インターフェース510を企図する。限定するものとしてではなく一例として、コンピュータ・システム500は、アドホック・ネットワーク、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、またはインターネットの1もしくは複数の部分、あるいはこれらの2以上の組合せと通信する。これらのネットワークの1または複数のうちの1または複数の部分は、有線であっても無線であってもよい。一例として、コンピュータ・システム500は、無線PAN(WPAN)(たとえば、BLUETOOTH(登録商標)WPANなど)、WI−FIネットワーク、WI−MAXネットワーク、携帯電話ネットワーク(たとえば、グローバル移動体通信システム(GSM(登録商標))ネットワークなど)、もしくは他の好適な無線ネットワーク、またはこれらの2以上の組合せと通信する。コンピュータ・システム500は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース510を含んでもよい。通信インターフェース510は、適切な場合、1または複数の通信インターフェース510を含んでもよい。この開示は、特定の通信インターフェースについて記載し示しているが、この開示は、任意の好適な通信インターフェースを企図する。
【0035】
特定の実施形態では、バス512は、コンピュータ・システム500の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定するものとしてではなく一例として、バス512は、アクセラレィティッド・グラフィックス・ポート(AGP)もしくは他のグラフィックス・バス、EISA(Enhanced Industry Standard Architecture)バス、フロントサイド・バス(FSB)、HT(HYPERTRANSPORT)相互接続、ISA(Industry Standard Architecture)バス、インフィニバンド相互接続、LPC(low−pin−count)バス、メモリ・バス、MCA(Micro Channel Architecture)バス、PCI(Peripheral Component Interconnect)バス、PCIエクスプレス(PCIe)バス、SATA(serial advanced technology attachment)バス、VLB(Video Electronics Standards Association local)バス、もしくは別の好適なバス、またはこれらの2以上の組合せを含んでもよい。バス512は、適切な場合、1または複数のバス512を含んでもよい。この開示は、特定のバスについて記載し示しているが、この開示は、任意の好適なバスまたは相互接続を企図する。
【0036】
本明細書では、1または複数の非一時的コンピュータ可読記憶媒体は、適切な場合、1または複数の半導体ベースの、もしくは他の集積回路(IC)(たとえば、フィールド・プログラマブル・ゲート・アレイ(FPGA)または特定用途向けIC(ASIC))、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスク・ドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピー(登録商標)・ディスケット、フロッピー(登録商標)・ディスク・ドライブ(FDD)、磁気テープ、ソリッドステート・ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カードもしくはセキュア・デジタル・ドライブ、任意の他の好適な非一時的コンピュータ可読記憶媒体、またはこれらの2以上の組合せを含んでもよい。非一時的コンピュータ可読記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せであってよい。
【0037】
本明細書では、「または(もしくは)」は、別段明確に示されていない限り、または別段文脈によって示されない限り、包括的(inclusive)であり、排他的なものではない。したがって、本明細書では、「AまたはB」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「A、B、またはその両方」を意味する。さらに、「および」は、別段明確に示されていない限り、または別段文脈によって示されない限り、共同であり、個別的でもある。したがって、本明細書では、「AおよびB」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「AおよびBを共同で、または個別的に」意味する。
【0038】
この開示の範囲は、当業者であれば理解するであろう、本明細書に記載され、または示されている例示的な実施形態に対する変更、置換、変形、代替、および修正すべてを包含する。この開示の範囲は、本明細書に記載され、または示されている例示的な実施形態に限定されない。さらに、この開示は、それぞれの実施形態について、本明細書では、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして記載し示しているが、これらの実施形態のいずれも、当業者であれば理解するであろう、本明細書のどこかに記載され、または示されている構成要素、要素、特徴、機能、動作、またはステップのいずれかの任意の組合せまたは並べ替えを含んでもよい。さらに、添付の特許請求の範囲において、特定の機能を実施するように適合された、するように配置された、することが可能な、するように構成された、することが可能である、するように動作可能である、またはするように動作する装置もしくはシステム、または装置もしくはシステムの構成要素に言及することは、その装置、システム、または構成要素がそのように適合され、配置され、動作可能であり、構成され、可能であり、動作可能であり、動作する限り、それ、またはその特定の機能が作動される、オンにされる、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。