(57)【特許請求の範囲】
【請求項１】
方法であって、
コンピューティング・デバイスによって、記号の文字列にアクセスすること、
該コンピューティング・デバイスによって、該文字列を、該記号のうちの少なくとも１つを各々含む１または複数の文字列構成要素に分割すること、
該コンピューティング・デバイスによって、該１または複数の文字列構成要素の各々に、少なくとも１つの文字列位置識別子を関連付けること、
該コンピューティング・デバイスによって、該記号の文字列について、該１または複数の文字列構成要素と、該１または複数の文字列構成要素の各々の関連付けられた文字列位置識別子とを記憶すること、
前記コンピューティング・デバイスによって、１または複数の他の文字列構成要素を、文字列位置識別子のうちの１または複数の各々に関連付けること、
前記コンピューティング・デバイスによって、前記記号の文字列について、該１または複数の他の文字列構成要素と１または複数の他の文字列構成要素の各々の関連付けられた文字列位置識別子とを記憶すること、を備え、
他の文字列構成要素のうちの少なくとも１つが、
前記記号の文字列の１つまたは複数の文字列構成要素のうちの１つとの音声上の類似性を有する文字列構成要素、
クライアント・コンピューティング・デバイスの記号入力レイアウト上で、１または複数の第２の英字に近い１または複数の第１の英字を含む文字列構成要素であって、所定の記号の文字列の１つまたは複数の文字列構成要素のうちの少なくとも１つが、該１または複数の第２の英字を含む、前記文字列構成要素、
該クライアント・コンピューティング・デバイスのユーザによって定義された文字列構成要素、
該クライアント・コンピューティング・デバイスの過去の使用から決定された文字列構成要素、または
１または複数の他のクライアント・コンピューティング・デバイスの過去の使用から決定された文字列構成要素のうちの１または複数を含む、方法。
【請求項２】
前記コンピューティング・デバイスによって、１または複数の他の文字列構成要素を、１または複数の他の文字列位置識別子の各々に関連付けること、
前記コンピューティング・デバイスによって、前記記号の文字列について、該１つまたは複数の他の文字列構成要素および１つまたは複数の他の文字列構成要素の各々の関連付けられた他の文字列位置識別子を記憶することをさらに備える請求項１に記載の方法。
【請求項３】
前記記号の文字列が、単語を含む、請求項１に記載の方法。
【請求項４】
コンピューティング・デバイスによって、クライアント・コンピューティング・デバイスのユーザにより入力された記号の文字列を受信すること、
該コンピューティング・デバイスによって、受信された文字列を、記号のうちの少なくとも１つを各々含む１または複数の受信された文字列構成要素に分割すること、
該コンピューティング・デバイスによって、１つまたは複数の受信された文字列構成要素の各々に、文字列位置識別子を関連付けること、
該コンピューティング・デバイスによって、複数の記録にアクセスすることであって、各記録は、所定の記号の文字列に関連付けられており、各記録は、該所定の記号の文字列についての文字列構成要素および関連付けられた文字列位置識別子を含む、前記アクセスすること、
該コンピューティング・デバイスによって、アクセスされた記録のうちの１または複数の各々について、受信された文字列構成要素のうちの少なくともいくつかおよび関連付けられた文字列位置識別子を、アクセスされた記録の文字列構成要素のうちの少なくともいくつかおよび関連付けられた文字列位置識別子と比較すること、
該コンピューティング・デバイスによって、前記比較することに基づいて、比較された記録に関連付けられた所定の記号の文字列のうちの１または複数を選択すること、
該コンピューティング・デバイスによって、選択された所定の記号の文字列のうちの少なくとも１つをユーザへの表示のために提供すること、を備え、
前記クライアント・コンピューティング・デバイスのユーザにより入力された記号の文字列は、スペル間違いの単語を含み、
ユーザへの表示のために提供された前記所定の記号の文字列は、正しいスペルの単語を含み、
前記所定の記号の文字列に関連付けられた記録の文字列構成要素は、
前記所定の記号の文字列の文字列構成要素と、
１または複数の他の文字列構成要素と、を含み、
前記他の文字列構成要素のうちの少なくとも１つは、
前記所定の記号の文字列の文字列構成要素のうちの１つとの音声上の類似性を有する文字列構成要素、
前記クライアント・コンピューティング・デバイスの記号入力レイアウト上で、１または複数の第２の英字に近い１または複数の第１の英字を含む文字列構成要素であって、前記所定の記号の文字列の文字列構成要素のうちの少なくとも１つは、該１または複数の第２の英字を含む、前記１または複数の第１の英字を含む文字列構成要素、
前記クライアント・コンピューティング・デバイスのユーザによって定義された文字列構成要素、
前記クライアント・コンピューティング・デバイスの過去の使用から決定された文字列構成要素、または
１または複数の他のクライアント・コンピューティング・デバイスの過去の使用から決定された文字列構成要素のうちの１または複数を含む、方法。
【請求項５】
前記クライアント・コンピューティング・デバイスのユーザにより入力された前記記号の文字列が、部分的に完成された記号の文字列を含み、
ユーザへの表示のために提供された前記所定の記号の文字列は、完成された記号の文字列を含む、請求項４に記載の方法。
【請求項６】
前記クライアント・コンピューティング・デバイスのユーザにより入力された部分的に完成された記号の文字列は、部分的に完成されたクエリまたは該クエリの部分を含み、
ユーザへの表示のために提供された前記所定の記号の文字列は、完成されたクエリまたは該クエリの部分を含む、請求項５に記載の方法。
【請求項７】
前記部分的に完成された記号の文字列が、部分的に完成された単語を含み、
前記所定の記号の文字列が、完成された単語を含む、請求項５に記載の方法。
【請求項８】
前記比較することは、
受信された文字列構成要素の各々および該文字列構成要素の各々の関連付けられた文字列位置識別子が、前記所定の記号の文字列に関連付けられた記録に関連付けられているかどうかを決定することを含み、
前記比較することに基づいて、選択することは、
前記受信された文字列構成要素の各々および該文字列構成要素の各々の関連付けられた文字列位置識別子が前記所定の記号の文字列に関連付けられた記録に関連付けられている場合に、前記所定の記号の文字列を選択することを含む、請求項４に記載の方法。
【請求項９】
前記比較することに基づいて、選択することは、
比較された各記録に関連付けられた所定の記号の文字列のスコアを決定することを含む、請求項４記載の方法。
【請求項１０】
前記スコアが、１または複数の重みに基づき、
各重みは、受信された文字列構成要素のうちの少なくとも１つに関連付けられている、請求項９に記載の方法。
【請求項１１】
重みのうちの少なくとも１つの値は、
重みに関連付けられた受信された文字列構成要素に関連付けられた各文字列位置識別子と、前記所定の記号の文字列についての前記記録における対応する文字列構成要素の文字列位置識別子との間の一致の程度に、少なくとも部分的に依存する、請求項１０に記載の方法。
【請求項１２】
前記スコアが、前記重みの合計に基づく、請求項１０に記載の方法。
【請求項１３】
前記スコアが所定の閾値スコアよりも大きい場合に、前記比較することに基づいて選択することは、
前記所定の記号の文字列を選択することをさらに含む、請求項１０に記載の方法。
【請求項１４】
前記選択された所定の記号の文字列のうちの少なくとも１つをユーザへの表示のために提供することは、
所定の記号の文字列のスコアに従って順序付けられた複数の選択された所定の記号の文字列をユーザへの表示のために提供することを含む、請求項１０に記載の方法。
【請求項１５】
１または複数の非一時的なコンピュータ可読記憶媒体であって、
実行されるときに、
クライアント・コンピューティング・デバイスのユーザにより入力された記号の文字列を受信すること、
受信された文字列を、記号のうちの少なくとも１つを各々含む１または複数の受信された文字列構成要素に分割すること、
受信された文字列構成要素の各々に、文字列位置識別子を関連付けること、
複数の記録にアクセスすることであって、各記録が、所定の記号の文字列に関連付けられており、各記録が、該所定の記号の文字列についての文字列構成要素および関連付けられた文字列位置識別子を含む、前記複数の記録にアクセスすること、
アクセスされた記録のうちの１または複数の各々について、受信された文字列構成要素のうちの少なくともいくつかおよび関連付けられた文字列位置識別子を、アクセスされた記録の文字列構成要素のうちの少なくともいくつかおよび関連付けられた文字列位置識別子と比較すること、
前記比較することに基づいて、比較された各記録に関連付けられた所定の記号の文字列のうちの１または複数を選択すること、
選択された所定の記号の文字列のうちの少なくとも１つをユーザへの表示のために提供すること、を実行するように動作可能であるソフトウェアを実装し、
前記クライアント・コンピューティング・デバイスのユーザにより入力された記号の文字列は、スペル間違いの単語を含み、
ユーザへの表示のために提供された前記所定の記号の文字列は、正しいスペルの単語を含み、
前記所定の記号の文字列に関連付けられた記録の文字列構成要素は、
前記所定の記号の文字列の文字列構成要素と、
１または複数の他の文字列構成要素と、を含み、
前記他の文字列構成要素のうちの少なくとも１つは、
前記所定の記号の文字列の文字列構成要素のうちの１つとの音声上の類似性を有する文字列構成要素、
前記クライアント・コンピューティング・デバイスの記号入力レイアウト上で、１または複数の第２の英字に近い１または複数の第１の英字を含む文字列構成要素であって、前記所定の記号の文字列の文字列構成要素のうちの少なくとも１つは、該１または複数の第２の英字を含む、前記１または複数の第１の英字を含む文字列構成要素、
前記クライアント・コンピューティング・デバイスのユーザによって定義された文字列構成要素、
前記クライアント・コンピューティング・デバイスの過去の使用から決定された文字列構成要素、または
１または複数の他のクライアント・コンピューティング・デバイスの過去の使用から決定された文字列構成要素のうちの１または複数を含む、１または複数の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、クエリ補完およびスペル訂正に関する。
【背景技術】
【０００２】
電子デバイスと通信すること、または電子デバイスにより通信することは、ユーザが記号の文字列を入力することをしばしば必要とする。そのような文字列は、たとえば、テキスト、数字、文字、「％」および「＄」などの記号、その他を含むことができる。たとえば、電子メール、文書、テキスト・メッセージ、その他においてユーザが単語のスペル間違いをするときなどに、ユーザは、所望の文字列を誤って入力することがある。加えて、意図する文字列を完全に入力しなければならないことは、時間がかかり、文字列を入力する際に、たとえばスペル間違いなどのエラーの機会を与える。
【発明の概要】
【課題を解決するための手段】
【０００３】
記号の文字列を文字列構成要素に分割し、構成要素を文字列位置識別子に関連付け、それらの構成要素および対応する位置識別子を記号の文字列に関連付けられた記録に記憶することによって、電子的な記号の文字列についての記録が作成されてよい。その記録は、スペル間違いの単語を訂正するために、または検索クエリ、もしくは他の部分的に入力されたテキストを完成させるために使用されてよい。たとえば、クライアント・コンピューティング・デバイスのユーザにより入力された文字列が、スペル間違いの単語であることがあり、その受信された文字列は、その文字列構成要素および関連付けられた文字列位置識別子に分割されてよい。それらの受信された文字列構成要素および関連付けられた文字列位置識別子は、１または複数の記録のコンテンツと比較されてよく、記録に関連付けられた記号の文字列のうちの１または複数が、（たとえば、スペル間違いの単語を訂正するために）ユーザへの表示のために提供されてよい。ある記号の文字列の文字列構成要素および関連付けられた文字列位置識別子に加えて、記録は、文字列位置識別子に関連付けられた他の文字列構成要素（たとえば、記号の文字列が単語である場合、よくあるスペル間違い）、および他の文字列位置識別子（たとえば、記号の文字列が単語である場合、正しいスペルにおける、しかし誤った場所において見出される英字（ｌｅｔｔｅｒ）の位置を識別する）に関連付けられた記号の文字列の文字列構成要素を含むことができる。
【０００４】
上で開示される実施形態は、例のみであり、この開示の範囲は、それらに限定されない。特定の実施形態は、上で開示された実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべて、いくつかを含んでもよいし、またはいずれも含まなくてもよい。
【図面の簡単な説明】
【０００５】
【図１】ソーシャル・ネットワーキング・システムに関連付けられた１例のネットワーク環境を示す図。
【図２】１例のソーシャル・グラフを示す図。
【図３】記号の文字列を保有する１組の記録を作成するための１例の方法３００を示す図。
【図４】クライアント・コンピューティング・デバイスのユーザからの記号の入力文字列の受信に応答して、所定の記号の文字列をクライアント・コンピューティング・デバイスのユーザに提供するための１例の方法を示す図。
【図５】１例のコンピュータ・システムを示す図。
【発明を実施するための形態】
【０００６】
特定の実施形態では、特定のユーザ特性を有する可能性の高いソーシャル・ネットワーキング・システムのユーザを推測するための方法について記載する。特定の実施形態では、最初に機械学習アルゴリズムまたは他の適切な方法を用いて、ソーシャル・ネットワーキング・システムのソーシャル・グラフにおいて、特定のユーザ特性を有するユーザに対応する１組のユーザ・ノードを識別し、各識別されたユーザ・ノードにスコアを割り当てる。特定の実施形態では、次いで、ソーシャル・グラフにおける他のユーザ・ノードについてのスコアを推定するために、識別されたユーザ・ノードをシードとして用いてよい。ユーザ・ノードのスコアは、割り当てられたスコアを有するユーザ・ノードに対するソーシャル・グラフにおけるそのユーザ・ノードのつながりに基づいて推定されてもよい。ユーザ・ノードについての推定されたスコアの値は、そのユーザ・ノードが特定のユーザ特性を有するユーザに対応する見込みを示してもよい。
【０００７】
図１は、ソーシャル・ネットワーキング・システムに関連付けられている例示的なネットワーク環境１００を示す。ネットワーク環境１００は、互いにネットワーク１１０によって接続されたユーザ１０１、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０を含む。図１は、ユーザ１０１、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０の特定の構成を示すが、この開示は、ユーザ１０１、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０の任意の好適な構成を企図する。限定するものとしてではなく一例として、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０の２以上は、ネットワーク１１０をバイパスして互いに直接的に接続されてもよい。別の例として、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０の２以上が、全体として、または部分的に互いに物理的に、または論理的に同じ場所にあってもよい。さらに、図１は、特定の数のユーザ１０１、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を示すが、この開示は、任意の好適な数のユーザ１０１、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を企図する。限定するものとしてではなく一例として、ネットワーク環境１００は、複数のユーザ１０１、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を含んでもよい。
【０００８】
特定の実施形態では、ユーザ１０１は、ソーシャル・ネットワーキング・システム１６０と、またはソーシャル・ネットワーキング・システム１６０を通じて対話、すなわち通信する個人（人間のユーザ）、エンティティ（たとえば、企業、事業者、またはサードパーティ・アプリケーション）、または（たとえば、個人またはエンティティの）グループであってよい。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、オンライン・ソーシャル・ネットワークをホストするネットワークアドレス指定可能なコンピューティング・システムであってよい。ソーシャル・ネットワーキング・システム１６０は、たとえばユーザプロフィール・データ、コンセプトプロフィール・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関係する他の好適なデータなど、ソーシャル・ネットワーキング・データを生成、記憶、受信、および送信する。ソーシャル・ネットワーキング・システム１６０は、ネットワーク環境１００の他の構成要素によって、直接的に、またはネットワーク１１０を通じてアクセスされてもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、ユーザ１０１がたとえば適切なプライバシ設定を設定することによってなど、自分達のアクションをソーシャル・ネットワーキング・システム１６０によって記録させる、または他のシステム（たとえば、サードパーティ・システム１７０）と共有させることについてオプトインまたはオプトアウトすることを可能にする認可サーバ（または他の適切な構成要素）を含んでもよい。ユーザのプライバシ設定は、そのユーザに関連付けられているどの情報が記録されるか、そのユーザに関連付けられている情報がどのように記録されるか、そのユーザに関連付けられている情報がいつ記録されるか、そのユーザに関連付けられている情報を誰が記録するか、そのユーザに関連付けられている情報が誰と共有されるか、およびそのユーザに関連付けられている情報が何の目的で記録され共有されるかを決定することができる。認可サーバは、ブロッキング、データのハッシュ化、匿名化、または他の適切な技術を通じて、ソーシャル・ネットワーキング・システム３０のユーザの１以上のプライバシ設定を適切に実施するために用いられる。特定の実施形態では、サードパーティ・システム１７０は、該サードパーティ・システム１７０の種々の機能をホストするネットワークアドレス指定可能なコンピューティング・システムであってよい。サードパーティ・システム１７０は、サードパーティ・システム・データを生成、記憶、受信、および送信する。サードパーティ・システム１７０は、ネットワーク環境１００の他の構成要素によって、直接的に、またはネットワーク１１０を通じてアクセスされてもよい。特定の実施形態では、１または複数のユーザ１０１が１または複数のクライアント・システム１３０を使用し、ソーシャル・ネットワーキング・システム１６０またはサードパーティ・システム１７０にアクセスし、データを送り、それらからデータを受信してもよい。クライアント・システム１３０は、ソーシャル・ネットワーキング・システム１６０またはサードパーティ・システム１７０に直接的に、ネットワーク１１０を通じて、またはサードパーティ・システムを通じてアクセスしてもよい。限定するものとしてではなく一例として、クライアント・システム１３０は、サードパーティ・システム１７０にソーシャル・ネットワーキング・システム１６０を通じてアクセスしてもよい。クライアント・システム１３０は、たとえばパーソナル・コンピュータ、ラップトップ・コンピュータ、携帯電話、スマートフォン、またはタブレット・コンピュータなど、任意の好適なコンピューティング・デバイスであってよい。
【０００９】
この開示は、任意の好適なネットワーク１１０を企図する。限定するものとしてではなく一例として、ネットワーク１１０の１または複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク（ＶＰＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、無線ＷＡＮ（ＷＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、インターネットの一部分、公衆交換電話網（ＰＳＴＮ）の一部分、携帯電話ネットワーク、またはこれらの２以上の組合せを含んでもよい。ネットワーク１１０は、１または複数のネットワーク１１０を含んでもよい。
【００１０】
リンク１５０は、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０を通信ネットワーク１１０に、または互いに接続する。この開示は、任意の好適なリンク１５０を企図する。特定の実施形態では、１または複数のリンク１５０は、１または複数の有線（たとえば、デジタル加入者線（ＤＳＬ）またはＤＯＣＳＩＳ（Ｄａｔａ  Ｏｖｅｒ  Ｃａｂｌｅ  Ｓｅｒｖｉｃｅ
Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）など）、無線（たとえば、Ｗｉ−ＦｉまたはＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ）など）、または光（たとえば、同期光ネットワーク（ＳＯＮＥＴ）または同期デジタル・ハイアラーキ（ＳＤＨ）など）リンクを含む。特定の実施形態では、１または複数のリンク１５０は、それぞれ、アドホック・ネットワーク、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＷＷＡＮ、ＭＡＮ、インターネットの一部分、ＰＳＴＮの一部分、セルラ技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク１５０、または２以上のそのようなリンク１５０の組合せを含む。リンク１５０は、必ずしもネットワーク環境１００全体を通じて同じであることを必要としない。１または複数の第１のリンク１５０は、１または複数の点で１または複数の第２のリンク１５０と異なってもよい。
【００１１】
図２は、例示的なソーシャル・グラフ２００を示す。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、１または複数のソーシャル・グラフ２００を１または複数のデータ・ストア内に記憶する。特定の実施形態では、ソーシャル・グラフ２００は、複数のノード（複数のユーザ・ノード２０２または複数のコンセプト・ノード２０４を含んでもよい）と、それらのノードを接続する複数のエッジ２０６とを含んでもよい。図２に示されている例示的なソーシャル・グラフ２００は、説明のために、２次元の視覚マップ表現で示されている。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０、クライアント・システム１３０、またはサードパーティ・システム１７０は、適切な用途のためにソーシャル・グラフ２００および関連するソーシャル・グラフ情報にアクセスする。ソーシャル・グラフ２００のノードおよびエッジは、データ・オブジェクトとして、たとえばデータ・ストア（ソーシャル・グラフ・データベースなど）内に記憶されてもよい。そのようなデータ・ストアは、ソーシャル・グラフ２００のノードまたはエッジの、１または複数の検索可能または照会可能なインデックスを含んでもよい。
【００１２】
特定の実施形態では、ユーザ・ノード２０２は、ソーシャル・ネットワーキング・システム１６０のユーザに対応する。限定するものとしてではなく一例として、ユーザは、ソーシャル・ネットワーキング・システム１６０と、またはソーシャル・ネットワーキング・システム１６０を通じて対話または通信する個人（人間のユーザ）、エンティティ（たとえば、企業、事業者、またはサードパーティ・アプリケーション）、または（たとえば、個人またはエンティティの）グループであってよい。特定の実施形態では、ユーザがアカウントをソーシャル・ネットワーキング・システム１６０に登録するとき、ソーシャル・ネットワーキング・システム１６０は、そのユーザに対応するユーザ・ノード２０２を作成し、そのユーザ・ノード２０２を１または複数のデータ・ストア内に記憶する。本明細書に記載のユーザおよびユーザ・ノード２０２は、適切な場合、登録されたユーザ、および登録されたユーザに関連付けられているユーザ・ノード２０２に及ぶ。それに加えて、または代替として、本明細書に記載のユーザおよびユーザ・ノード２０２は、適切な場合、ソーシャル・ネットワーキング・システム１６０に登録しなかったユーザに及ぶ。特定の実施形態では、ユーザ・ノード２０２は、ユーザによって提供された情報、またはソーシャル・ネットワーキング・システム１６０を含む様々なシステムによって収集された情報に関連付けられてもよい。限定するものとしてではなく一例として、ユーザは、自分の名前、プロフィール写真、連絡先情報、誕生日、性別、婚姻状態、家族状態、雇用、学歴、好み、関心、または他の人口統計情報を提供してもよい。特定の実施形態では、ユーザ・ノード２０２は、ユーザに関連付けられている情報に対応する１または複数のデータ・オブジェクトに関連付けられてもよい。特定の実施形態では、ユーザ・ノード２０２は、１または複数のウェブ・ページに対応してもよい。
【００１３】
特定の実施形態では、コンセプト・ノード２０４は、コンセプトに対応する。限定するものとしてではなく一例として、コンセプトは、場所（たとえば、映画館、レストラン、目印、または都市など）、ウェブサイト（たとえば、ソーシャル・ネットワーキング・システム１６０に関連付けられているウェブサイト、またはウェブアプリケーションサーバに関連付けられているサードパーティウェブサイトなど）、エンティティ（たとえば、人、事業者、グループ、スポーツチーム、または有名人など）、ソーシャル・ネットワーキング・システム１６０内、またはウェブアプリケーションサーバなど外部サーバ上に位置するリソース（たとえば、オーディオファイル、映像ファイル、デジタル写真、テキストファイル、構造化文書、またはアプリケーションなど）、実際の財産または知的財産（たとえば、彫刻、絵画、映画、ゲーム、楽曲、着想、写真、または書物など）、ゲーム、アクティビティ、着想もしくは理論、別の好適なコンセプト、または２以上のそのようなコンセプトに対応してもよい。コンセプト・ノード２０４は、ユーザによって提供されたコンセプトの情報、またはソーシャル・ネットワーキング・システム１６０を含む様々なシステムによって収集された情報に関連付けられてもよい。限定するものとしてではなく一例として、コンセプトの情報は、名前もしくはタイトル、１または複数の画像（たとえば、本の表紙の画像）、ロケーション（たとえば、住所または地理的ロケーション）、（ＵＲＬに関連付けられる）ウェブサイト、連絡先情報（たとえば、電話番号または電子メール・アドレス）、他の好適なコンセプト情報、またはそのような情報の任意の好適な組合せを含んでもよい。特定の実施形態では、コンセプト・ノード２０４は、コンセプト・ノード２０４に関連付けられている情報に対応する１または複数のデータ・オブジェクトに関連付けられてもよい。特定の実施形態では、コンセプト・ノード２０４は、１または複数のウェブ・ページに対応してもよい。
【００１４】
特定の実施形態では、ソーシャル・グラフ２００内の１対のノードが、１または複数のエッジ２０６によって互いに接続されてもよい。１対のノードを接続するエッジ２０６は、その対のノード間の関係を表す。特定の実施形態では、エッジ２０６は、１対のノード間の関係に対応する１または複数のデータ・オブジェクトまたは属性を含み、または表してもよい。限定するものとしてではなく一例として、第１のユーザは、第２のユーザが第１のユーザの「友達」であることを示してもよい。この示したことに応答して、ソーシャル・ネットワーキング・システム１６０は、「友達要求」を第２のユーザに送信してもよい。第２のユーザが「友達要求」を確認した場合、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・グラフ２００内で第１のユーザのユーザ・ノード２０２を第２のユーザのユーザ・ノード２０２に接続するエッジ２０６を作成し、エッジ２０６をソーシャル・グラフ情報としてデータ・ストア１６４の１または複数に記憶してもよい。図２の例では、ソーシャル・グラフ２００は、ユーザ「Ａ」とユーザ「Ｂ」とのユーザ・ノード２０２間の友達関係を示すエッジ２０６と、ユーザ「Ｃ」とユーザ「Ｂ」とのユーザ・ノード２０２間の友達関係を示すエッジとを含む。本開示は特定のユーザ・ノード２０２を接続する特定の属性を有する特定のエッジ２０６について記載し示しているが、本開示は、ユーザ・ノード２０２を接続する任意の好適な属性を有する任意の好適なエッジ２０６を企図する。限定するものとしてではなく一例として、エッジ２０６は、友達関係、家族関係、仕事関係もしくは雇用関係、ファン関係、フォロワー関係、ビジタ関係、加入者関係、主従関係、相互的関係、非相互的関係、別の好適なタイプの関係、または２以上のそのような関係を表してもよい。さらに、本開示は一般にノードを接続されているものとして記載しているが、本開示は、ユーザまたはコンセプトも接続されているものとして記載している。本明細書では、接続されているユーザまたはコンセプトへの言及は、適切な場合、ソーシャル・グラフ２００内で１または複数のエッジ２０６によって接続されているユーザまたはコンセプトに対応するノードに及ぶ。
【００１５】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・グラフ２００内でユーザ・ノード２０２とコンセプト・ノード２０４との間にエッジ２０６を作成する。限定するものとしてではなく一例として、（たとえば、ウェブブラウザまたはユーザのクライアント・システム１３０によってホストされる専用アプリケーションを使用することによってなど）コンセプトプロフィールページを閲覧するユーザは、「いいね」アイコンをクリックまたは選択することによって、ユーザがコンセプト・ノード２０４によって表されたコンセプトに対して「いいね」と表明することを示す。これによって、ユーザのクライアント・システム１３０は、コンセプトプロフィールページに関連付けられているコンセプトに対してユーザが「いいね」と表明することを示すメッセージをソーシャル・ネットワーキング・システム１６０へ送信する。ソーシャル・ネットワーキング・システム１６０は、そのメッセージに応答して、ユーザとコンセプト・ノード２０４との間の「いいね」エッジ２０６によって示されているように、ユーザに関連付けられているユーザ・ノード２０２とコンセプト・ノード２０４との間にエッジ２０６を作成してもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、エッジ２０６を１または複数のデータ・ストア内に記憶してもよい。特定の実施形態では、エッジ２０６は、特定のユーザ・アクションに応答してソーシャル・ネットワーキング・システム１６０によって自動的に形成されてもよい。限定するものとしてではなく一例として、第１のユーザが写真をアップロードし、映画を見たか、または楽曲を聴いた場合、エッジ２０６は、第１のユーザに対応するユーザ・ノード２０２とそれらのコンセプトに対応するコンセプト・ノード２０４との間に形成されてもよい。本開示は、特定のエッジ２０６を特定の方法で形成することについて記載しているが、本開示は、任意の好適なエッジ２０６を任意の好適な方法で形成することを企図する。
【００１６】
図３は、記号の文字列（string）を保有する１組の記録を作成するための１例の方法３００を示す。記号は、アルファベットの記号、英数字の記号、「＄」または「％」などの記号、その他などの、任意の好適な記号であってよい。記号の文字列は、任意の好適な長さであってよく、任意の好適な記号を保有ことができる。方法は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、または任意の他の好適なコンピューティング・デバイスなどのコンピューティング・デバイスによって記号の文字列がアクセスされる、ステップ３１０で開始することができる。文字列は、たとえば、文字列にアクセスするコンピューティング・デバイスのメモリまたは他の構成要素から、別のコンピューティング・デバイス、その他から、任意の好適な方法によってアクセスされてよい。特定の実施形態では、文字列にアクセスすることは、コンピューティング・デバイスにおいて、またはコンピューティング・デバイスの構成要素から、文字列を受信することを含む。ステップ３２０で、記号の文字列は、１または複数の文字列構成要素に分割され、ここで各文字列構成要素は、記号のうちの少なくとも１つである。特定の実施形態では、記号の文字列が単語である場合、文字列構成要素は、単語を構成する英字であってよい。たとえば、文字列は、「ｐｈｏｎｅ」であることがあり、文字列構成要素は、「ｐ」、「ｈ」、その他であってよい。特定の実施形態では、文字列構成要素は、記号のうちの２以上であってよい。たとえば、「ｐｈ」は、文字列「ｐｈｏｎｅ」の１つの文字列構成要素であってよい。文字列は、たとえば、「ｏｏ」、「ｑｕ」、その他などの通例一緒に見出される英字、または、構成要素につき２つの記号のような特定の数の記号などの、１組の規則に従って、文字列構成要素に分割され得る。この開示は、任意の好適な基準の組に従って、文字列を文字列構成要素に分割することを企図する。
【００１７】
ステップ３３０で、文字列構成要素の各々は、少なくとも１つの文字列位置識別子に関連付けられる。文字列位置識別子は、分割されている記号の文字列においてなどの、文字列におけるその関連付けられた文字列構成要素の位置を識別する。位置は、任意の好適な方法によって識別されてよい。たとえば、位置は、１または複数の他の文字列構成要素に対する文字列構成要素の位置（たとえば、文字列構成要素が、別の文字列構成要素から隔たった２つの文字列構成要素であること）を識別することによって、識別されてよい。別の例として、位置は、文字列の冒頭などの、記号の文字列の特定の基準点に対する文字列構成要素の位置を識別することによって、識別されてよい。その例では、位置識別子は、文字列における文字列構成要素の位置を識別する番号であってよい。たとえば、「ｐｈｏｎｅ」は、「ｐｈ：１」、「ｏ：２」、「ｎ：３」、「ｅ：４」によって表されてよい。番号付けは、任意の好適な番号で始めることができる。特定の実施形態では、文字列の最後の構成要素が、文字列末尾識別子によって表されてもよい。たとえば、上の例における位置識別子「４」は、文字列「ｐｈｏｎｅ」の末尾に関連付けられてよく、または文字列構成要素の「ｅ」が、文字列の末尾に達したことを指し示す明示的な識別子に関連付けられてもよい。特定の実施形態では、文字列構成要素は、記号の文字列における構成要素の位置を識別する文字列位置識別子以外の文字列位置識別子に関連付けられてもよい。たとえば、文字列構成要素および位置識別子は、（以下でさらに完全に記載されるように）たとえば、スペル間違いの単語を訂正するために使用されてよく、したがって、それらの文字列位置識別子に近い文字列位置識別子が、文字列構成要素に関連付けられてよい。たとえば、「ｐｈｏｎｅ」は、「ｐｈｏｅｎ」とスペル間違いされることがあり、したがって、文字列構成要素および関連付けられた文字列位置識別子は、「ｅ：３」および「ｎ：４」を含むことができる。文字列構成要素のいずれかが、任意の好適な文字列位置識別子に関連付けられてよい。特定の実施形態では、文字列構成要素に関連付けるための文字列位置識別子は、たとえば、記号の文字列において文字列構成要素の実際の文字列位置から１つまたは２つだけ位置が離れた文字列位置識別子などの、１組の規則から決定されてよい。この開示は、文字列構成要素に関連付けられた文字列位置識別子の特定の例を記載しているが、この開示は、任意の好適な文字列位置識別子に関連付けられた、任意の好適な文字列構成要素を企図する。
【００１８】
ステップ３４０で、コンピューティング・デバイスは、記号の文字列について、文字列構成要素およびそれらのそれぞれの文字列位置識別子を記憶する。言い換えれば、記号の文字列の構成要素およびそれらのそれぞれの関連付けられた位置識別子が、記号の文字列に関連付けられて記憶される。構成要素および位置識別子は、１または複数のデータベース、インデックス、その他においてなどの、任意の好適な構造において記憶されてよい。
【００１９】
特定の実施形態は、適切な場合、図３の方法の１または複数のステップを繰り返してもよい。この開示は、図３の方法の特定のステップを、特定の順序で発生するものとして記載し示しているが、この開示は、任意の好適な順序で発生する図３の方法の任意の好適なステップを企図する。さらに、この開示は、図３の方法の特定のステップを含む、記号の文字列を保有する１組の記録を作成するための１例の方法について記載し示しているが、この開示は、適切な場合、図３の方法のステップのすべて、いくつかを含んでもよいし、またはいずれも含まなくてもよい任意の好適なステップを含む、記号の文字列を保有する１組の記録を作成するための任意の好適な方法を企図する。さらに、この開示は、図３の方法の特定のステップを実施する特定の構成要素、デバイス、またはシステムについて記載し示しているが、この開示は、図３の方法の任意の好適なステップを実施する任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【００２０】
特定の実施形態では、追加的な文字列構成要素が、記号の文字列について記憶されてよい。たとえば、記号の文字列が単語を含むとき、追加的な英字が記憶されてよい。たとえば、「ｐｈｏｎｅ」は、「ｐｈｏｎｅ」のスペル間違いにおいて通例見出される文字列構成要素を含むことができ、それらの文字列構成要素が、ステップ３３０で文字列構成要素に関連付けられた文字列位置識別子のうちのいずれかに、または任意の他の好適な文字列位置識別子に関連付けられてよい。特定の実施形態では、記号の文字列について記憶するために他のどの文字列構成要素を決定するかは、１組の規則または基準に従ってなされてよい。特定の実施形態では、他の文字列構成要素は、記号の文字列の文字列構成要素のうちの１つとの音声上の類似性を有する文字列構成要素を含むことができる。「ｐｈ」とのその音声上の類似性を考慮すると、たとえば、「ｆ」が、文字列「ｐｈｏｎｅ」について記憶されてもよい。別の例として、「Ｊｕｎｅ」は、「Ｊｕｎｅ」における「ｕ」とのその音声上の類似性を考慮すると、文字列構成要素「ｏｏ」を含んでもよい。特定の実施形態では、他の英字が記号の文字列の文字列構成要素である場合、他の文字列構成要素は、クライアント・コンピューティング・デバイスの記号入力レイアウト上で他の英字に近い英字を含むことができる。たとえば、記号入力レイアウトがＱＷＥＲＴＹキーボードである場合、文字列「ｐｈｏｎｅ」は、文字列構成要素「ｉ」（それは、ＱＷＥＲＴＹキーボード上で構成要素「ｏ」に隣接する」、「ｍ」（それは、ＱＷＥＲＴＹキーボード上で文字列構成要素「ｎ」に近い）、その他を含んでもよい。この開示は、他のキーボード・レイアウト、タッチパッド・レイアウト、その他を含む、任意の好適な記号入力レイアウトを企図する。特定の実施形態では、他の文字列構成要素は、クライアント・コンピューティング・デバイスのユーザによって識別された文字列構成要素を含むことができる。たとえば、あるユーザが、「ｐａｉｒｓ」を「ｐｅｒｒｓ」と頻繁にスペル間違いをすることがあり、したがって、文字列「ｐａｉｒｓ」について記憶するための文字列構成要素として、「ｅ」を識別することができる。特定の実施形態では、他の文字列構成要素は、クライアント・コンピューティング・デバイスの過去の使用から決定された文字列構成要素を含むことができる。たとえば、クライアント・コンピューティング・デバイスに頻繁に入力されたスペル間違いが、たとえば、任意の好適な機械学習技法によって決定されてよく、それらのスペル間違いの文字列構成要素が、記号の文字列について記憶されてよい。クライアント・コンピューティング・デバイスの過去の使用から決定された文字列構成要素は、たとえば、ソーシャル・ネットワーキング・システムに関連付けられたプロフィールなどの、クライアント・コンピューティング・デバイスに関連付けられたユーザ・プロフィールから決定されるなどの、ユーザ依存であってもよい。言い換えれば、過去の使用から決定された文字列構成要素は、クライアント・コンピューティング・デバイスのユーザによって様々であってよく、所与の記号の文字列について、異なる文字列構成要素が異なるユーザのために記憶されてよい。特定の実施形態では、他の文字列構成要素は、他のクライアント・コンピューティング・デバイスのユーザによってなされたスペル間違いに関与した文字列構成要素などの、他のクライアント・コンピューティング・デバイスの過去の使用から決定された文字列構成要素を含むことができる。特定の実施形態では、記号の文字列が記憶されているユーザとの１または複数の関連した類似性（たとえば、年齢、教育、使用されるクライアント・デバイス、その他）を有するユーザを識別することによって、他のクライアント・デバイスが決定されてもよい。ユーザ間および／または過去の使用の類似性は、任意の好適な方法によって、たとえば、ソーシャル・ネットワーキング・システムのノード、エッジ、またはプロフィールから決定されてよい。この開示は、記号の文字列について記憶され得る他の文字列構成要素のタイプの特有の例を記載しているが、この開示は、記号の文字列について記憶される任意の好適な他の文字列構成要素を企図する。
【００２１】
図４は、クライアント・コンピューティング・デバイスのユーザからの記号の入力文字列の受信に応答して、所定の記号の文字列をクライアント・コンピューティング・デバイスのユーザに提供するための１例の方法４００を示す。方法は、コンピューティング・デバイスが、クライアント・コンピューティング・デバイスのユーザにより入力された記号の文字列を受信する、ステップ４１０で開始することができる。記号は、クライアント・コンピューティング・デバイス、別のクライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、その他などの、任意の好適なコンピューティング・デバイスで受信されてよい。ステップ４２０で、受信された記号の文字列は、１または複数の文字列構成要素に分割され、ここで各文字列構成要素は、記号のうちの少なくとも１つである。図３のステップ３２０に対応する記載が、適切な場合、ステップ４２０に適用される。ステップ４３０で、文字列構成要素の各々は、受信された記号の文字列における受信された文字列構成要素の位置を識別する文字列位置識別子に関連付けられる。図３のステップ３３０に対応する記載が、適切な場合、ステップ４３０に適用される。
【００２２】
ステップ４４０で、１または複数の記録がアクセスされ、各記録は、所定の文字列記号に関連付けられており、その記録に関連付けられた記号の文字列についての文字列構成要素および関連付けられた文字列位置識別子を保有する。文字列構成要素および関連付けられた文字列位置識別子は、図３の方法に従って、記録に記憶されていてよく、上で論じたように、他の文字列構成要素を含むことができる。たとえば、所定の記号の文字列は、「ｐｈｏｎｅ」であることがあり、記録は、「ｐｈ：１」、「ｆ：１」、「ｏ：１」、「ｏ：２」、「ｏ：３」、その他を含むことができる。本明細書において記載したように、「アクセスすること」は、任意の好適なコンピューティング・デバイスまたはコンピューティング・デバイスの構成要素から、アクセスすること、または受信することを含むことができる。
【００２３】
ステップ４５０で、アクセスされた記録のうちの１または複数の各々について、受信された文字列構成要素のうちの少なくともいくつかおよびそれらの関連付けられた文字列位置識別子が、アクセスされた記録の文字列構成要素のうちの少なくともいくつかおよび関連付けられた文字列位置識別子と比較される。たとえば、受信された文字列は、「ｆｏｎｅ」であることがあり、その文字列構成要素および関連付けられた文字列位置識別子は、「ｆ：１」、「ｏ：２」、「ｎ：３」、「ｅ：４」であってよい。それらの構成要素および識別子は、たとえば、ＡＮＤクエリ（AND query）または弱いＡＮＤクエリ（weak AND query）を使用することによって、アクセスされた記録のうちの少なくとも１つにおける構成要素および識別子と比較される。弱いＡＮＤクエリは、クエリの各要素または各部分の重み付けを行うこと、およびクエリされているデータにおいて見出されるそれらの要素の重みの合計が所定の閾値よりも大きい場合に「真（true）」を返すことを含むことができる。たとえば、あるクエリが、要素Ａ、Ｂ、およびＣ（それらは、文字列、文字、データ要素、または任意の他の好適なクエリ要素もしくは部分であってよい）を含む場合、弱いＡＮＤクエリは、それらの要素の各々が、クエリされているデータにおいて見出されたかどうかを評価することになる。重みの合計が次いで、閾値と比較されることになり、合計が閾値よりも大きかった場合、弱いＡＮＤクエリは、「真」を返すことになる。特定の実施形態では、比較することは、それらのそれぞれの関連付けられた文字列位置識別子を有する受信された文字列構成要素の各々が、記録の中にあるかどうかを決定することを含むことができる。その決定は、たとえば、受信された文字列構成要素の各々および関連付けられた文字列位置識別子でＡＮＤクエリを実施することによってなどの、任意の適切な方法によってなされてよい。たとえば、受信された文字列構成要素「ｆｏｎｅ」について、比較することは、「ｆ：１」、「ｏ：２」、「ｎ：３」、および「ｅ：４」が、すべて特定の記録の中にあるかどうかを決定することを含むことができる。特定の実施形態では、比較することは、受信された文字列構成要素のいずれかおよびそれぞれの関連付けられた文字列位置識別子が、記録の中にあるかどうかを決定することを含むことができる。
【００２４】
ステップ４６０で、ステップ４５０の記録のうちの１つに関連付けられた所定の記号の文字列のうちの少なくとも１つが、その比較に基づいて選択される。特定の実施形態では、２以上の所定の記号の文字列が選択されてよい。特定の実施形態では、記号の文字列が選択されなくてもよい。特定の実施形態では、比較に基づいて所定の記号の文字列を選択することは、一定の比較される特徴が記録の中に見出される場合に、所定の記号の文字列を選択することを含むことができる。たとえば、比較が、それらのそれぞれの関連付けられた文字列位置識別子を有する受信された文字列構成要素の各々が記録の中にあるかどうかを決定することを含むとき、そのための決定が真である、記録に関連付けられた所定の記号の文字列のみが選択されてよい。特定の実施形態では、比較に基づいて所定の記号の文字列を選択することは、比較に基づいて事前に選択された記号の文字列のスコアを決定することを含むことができる。たとえば、スコアを決定することは、上で記載したように、受信された文字列構成要素の各々およびそれらのそれぞれの関連付けられた文字列位置識別子が記録の中にあるかどうかを決定することを含むことができる。別の例として、１または複数の重みが、受信された文字列構成要素のうちの１または複数に関連付けられてよく、スコアを決定することは、それらの文字列構成要素に関連付けられた重みに基づいてもよい。たとえば、スコアは、受信された文字列構成要素に関連付けられた重みの合計を含むことができる。特定の実施形態では、スコアは、記録において対応する文字列構成要素を有する受信された文字列構成要素に関連付けられた、かつ同じ文字列位置識別子に関連付けられた、それらの重みのみを含むことができる。たとえば、受信された文字列構成要素および関連付けられた文字列位置識別子が、「о：３」である場合、その文字列構成要素に関連付けられた重みは、その所定の記号の文字列に関連付けられた記録においてもやはり「о：３」が見出される場合に、所定の記号の文字列についてのスコアに含まれてよい。特定の実施形態では、重みの値は、正数、ゼロ、または負数であってよい（たとえば、受信された文字列構成要素が記録の中に見出されない、および／または、記録の中には見出されるが対応する文字列位置識別子を伴わない場合、スコアは、減少することがある（重みが負数）、または増加しないことがある（重みがゼロ））。特定の実施形態では、重みの値は、重みに関連付けられた受信された文字列構成要素に関連付けられたそれぞれの文字列位置識別子と、所定の記号の文字列についての記録における対応する文字列構成要素に関連付けられた文字列位置識別子との間の一致の程度に依存してよい。たとえば、受信された文字列構成要素および関連付けられた文字列位置識別子が、「о：３」であり、「о：３」が記録の中にある場合、「о：３」は、特定の重みを受信することができる。「о：４」および／または「о：２」のみが記録の中にある場合、「о：３」は、より低い重みを受信することができる。「о：１」および／または「о：５」のみが記録の中にある場合、「о：３」は、さらに低い重みを受信することができる、などである。重みは、さらに、ま��は代替において、受信された文字列および記録の両方において文字列末尾識別子を有する文字列構成要素に依存してよい。特定の実施形態では、受信された文字列には存在していない、記録における文字列構成要素の存在が、より低いスコアをもたらすことがある。たとえば、「ｐｈｏｎｅｔｉｃ」についての記録は、「ｐｈｏｎｅ」についての記録における文字列構成要素、プラスいくつかの追加的な構成要素を含むことができる。したがって、受信された文字列「ｆｏｎｅ」について、「ｐｈｏｎｅ」は、「ｐｈｏｎｅｔｉｃ」よりも高くスコアを決定されてよい。特定の実施形態では、所定の記号の文字列についてのスコアは、所定の閾値スコアと比較されてよく、閾値よりも大きいスコアを有する所定の記号の文字列が選択されてよい。この開示は、所定の記号の文字列を選択するための任意の好適な基準、またはその所定の記号の文字列のスコアを決定する方法を企図する。
【００２５】
ステップ４７０で、選択された所定の記号の文字列のうちの少なくとも１つが、ユーザへの表示のために提供され、これは文字列をユーザに表示することを含むことができる。特定の実施形態では、表示のために提供することは、ユーザが文字列の包含または別の文字列の置換を受け入れる、または否定するために、所定の記号の文字列をユーザに提示することを含むことができる。たとえば、受信された記号の文字列がスペル間違いの単語であり、所定の記号の文字列が正しいスペルの単語である場合、正しいスペルの単語は、スペル間違いの単語を自動的に置換することができる、または、ユーザが置換を受け入れるのか拒否するのかを指し示すために、ユーザに提示され得る。別の例として、特定の実施形態では、（たとえば、検索クエリにあるような）文字列が部分的に完成された単語または語句であり、所定の記号の文字列が完成された単語または語句である場合、完成された単語／語句は、部分的に完成された単語／語句を自動的に置換することができる、または、ユーザが完成を受け入れるのか拒否するのかを指し示すために、ユーザに提示され得る。特定の実施形態では、２以上の所定の記号の文字列が、ユーザへの表示のために提供されてよい。特定の実施形態では、所定の記号の文字列は、たとえば、それらのスコアに従ってなどの、特定の順序で表示されてよい。
【００２６】
特定の実施形態は、適切な場合、図４の方法の１または複数のステップを繰り返してもよい。この開示は、図４の方法の特定のステップを、特定の順序で発生するものとして記載し示しているが、この開示は、任意の好適な順序で発生する図４の方法の任意の好適なステップを企図する。さらに、この開示は、図４の方法の特定のステップを含む、図４に関連付けられた例示的な方法について記載し示しているが、この開示は、適切な場合、図４の方法のステップのすべて、いくつかを含んでもよいし、またはいずれも含まなくてもよい任意の好適なステップを含むとき、クライアント・コンピューティング・デバイスのユーザからの記号の入力文字列の受信に応答して、所定の記号の文字列をクライアント・コンピューティング・デバイスのユーザに提供するための任意の好適な方法を企図する。さらに、この開示は、図４の方法の特定のステップを実施する特定の構成要素、デバイス、またはシステムについて記載し示しているが、この開示は、図４の方法の任意の好適なステップを実施する任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【００２７】
図５は、例示的なコンピュータ・システム５００を示す。特定の実施形態では、１または複数のコンピュータ・システム５００は、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施する。特定の実施形態では、１または複数のコンピュータ・システム５００は、本明細書に記載され、または示されている機能を提供する。特定の実施形態では、１または複数のコンピュータ・システム５００上で動作するソフトウェアは、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施し、または本明細書に記載され、または示されている機能を提供する。特定の実施形態は、１または複数のコンピュータ・システム５００の１または複数の部分を含む。本明細書では、コンピュータ・システムに言及することは、適切な場合、コンピューティング・デバイスを包含してもよく、逆も同様である。さらに、コンピュータ・システムに言及することは、適切な場合、１または複数のコンピュータ・システムを包含してもよい。
【００２８】
この開示は、任意の好適な数のコンピュータ・システム５００を企図する。この開示は、任意の好適な物理形態をとるコンピュータ・システム５００を企図する。限定するものとしてではなく一例として、コンピュータ・システム５００は、組込みコンピュータ・システム、システム・オン・チップ（ＳＯＣ）、シングルボード・コンピュータ・システム（ＳＢＣ）（たとえば、コンピュータ・オン・モジュール（ＣＯＭ）またはシステム・オン・モジュール（ＳＯＭ）など）、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、対話キオスク、メインフレーム、コンピュータ・システムのメッシュ、移動体電話、携帯情報端末（ＰＤＡ）、サーバ、タブレット・コンピュータ・システム、またはこれらの２以上の組合せであってよい。適切な場合、コンピュータ・システム５００は、１または複数のコンピュータ・システム５００を含んでもよく、一元的なものであっても分散型であってもよく、複数のロケーションに跨ってもよく、複数のマシンに跨ってもよく、複数のデータ・センタに跨ってもよく、クラウド内にあってもよく、クラウドは、１または複数のネットワーク内で１または複数のクラウド・コンポーネントを含んでもよい。適切な場合、１または複数のコンピュータ・システム５００は、実質的な空間的または時間的制限なしに、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施してもよい。限定するものとしてではなく一例として、１つまたは複数のコンピュータ・システム５００は、リアルタイムで、またはバッチ・モードで、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施してもよい。１または複数のコンピュータ・システム５００は、適切な場合、異なる時に、または異なるロケーションで、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施してもよい。
【００２９】
特定の実施形態では、コンピュータ・システム５００は、プロセッサ５０２、メモリ５０４、ストレージ５０６、入力／出力（Ｉ／Ｏ）インターフェース５０８、通信インターフェース５１０、およびバス５１２を含む。この開示は、特定の数の特定の構成要素を特定の構成で有する特定のコンピュータ・システムについて記載し示しているが、この開示は、任意の好適な数の任意の好適な構成要素を任意の好適な構成で有する任意の好適なコンピュータ・システムを企図する。
【００３０】
特定の実施形態では、プロセッサ５０２は、コンピュータ・プログラムを構成するものなど命令を実行するためのハードウェアを含む。限定するものとしてではなく一例として、命令を実行するために、プロセッサ５０２は、内部レジスタ、内部キャッシュ、メモリ５０４、またはストレージ５０６から命令を取り出し（またはフェッチし）、それらを復号および実行し、次いで、１または複数の結果を内部レジスタ、内部キャッシュ、メモリ５０４、またはストレージ５０６に書き込む。特定の実施形態では、プロセッサ５０２は、データ、命令、またはアドレス用に１または複数の内部キャッシュを含んでもよい。この開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ５０２を企図する。限定するものとしてではなく一例として、プロセッサ５０２は、１または複数の命令キャッシュ、１または複数のデータ・キャッシュ、および１または複数の変換索引バッファ（ＴＬＢ）を含んでもよい。命令キャッシュ内の命令は、メモリ５０４またはストレージ５０６内の命令のコピーであってもよく、命令キャッシュは、プロセッサ５０２によるこれらの命令の取り出しを高速化する。データ・キャッシュ内のデータは、プロセッサ５０２にて実行される命令が操作するための、メモリ５０４またはストレージ５０６内のデータのコピー、プロセッサ５０２で実行される後続の命令によるアクセスのための、またはメモリ５０４もしくはストレージ５０６に書き込むための、プロセッサ５０２で実行された以前の命令の結果、あるいは他の好適なデータであってもよい。データ・キャッシュは、プロセッサ５０２による読出しまたは書込み動作を高速化する。ＴＬＢは、プロセッサ５０２のために仮想アドレス変換を高速化する。特定の実施形態では、プロセッサ５０２は、データ、命令、またはアドレス用に１または複数の内部レジスタを含む。この開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ５０２を企図する。適切な場合、プロセッサ５０２は、１または複数の算術論理演算ユニット（ＡＬＵ）を含むことができ、マルチコア・プロセッサであってもよく、１または複数のプロセッサ５０２を含んでもよい。この開示は、特定のプロセッサについて記載し示しているが、この開示は、任意の好適なプロセッサを企図する。
【００３１】
特定の実施形態では、メモリ５０４は、プロセッサ５０２が実行するための命令、またはプロセッサ５０２が操作するためのデータを記憶するための主記憶装置を含む。限定するものとしてではなく一例として、コンピュータ・システム５００は、ストレージ５０６または別のソース（たとえば、別のコンピュータ・システム５００など）からメモリ５０４に命令をロードする。次いで、プロセッサ５０２は、メモリ５０４から内部レジスタまたは内部キャッシュに命令をロードする。命令を実行するために、プロセッサ５０２は、内部レジスタまたは内部キャッシュから命令を取り出し、それらを復号する。命令の実行中、または実行後、プロセッサ５０２は、１または複数の結果（中間結果であることも最終結果であることもある）を内部レジスタまたは内部キャッシュに書き込む。次いで、プロセッサ５０２は、それらの結果の１または複数をメモリ５０４に書き込む。特定の実施形態では、プロセッサ５０２は、１もしくは複数の内部レジスタもしくは内部キャッシュ内、または（ストレージ５０６もしくは他の場所ではなく）メモリ５０４内の命令だけを実行し、１もしくは複数の内部レジスタもしくは内部キャッシュ内、または（ストレージ８０６もしくは他の場所ではなく）メモリ５０４内のデータだけを操作する。１または複数のメモリ・バス（それぞれがアドレス・バスとデータ・バスを含むことがある）がプロセッサ５０２をメモリ５０４に結合してもよい。バス５１２は、下記に記載されているように、１または複数のメモリ・バスを含んでもよい。特定の実施形態では、１または複数のメモリ管理ユニット（ＭＭＵ）が、プロセッサ５０２とメモリ５０４との間に存在し、プロセッサ５０２によって要求されるメモリ５０４へのアクセスを容易にする。特定の実施形態では、メモリ５０４は、ランダム・アクセス・メモリ（ＲＡＭ）を含む。このＲＡＭは、適切な場合、揮発性メモリであり得る。適切な場合、このＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であってよい。さらに、適切な場合、このＲＡＭは、シングルポート型またはマルチポート型ＲＡＭであってよい。この開示は、任意の好適なＲＡＭを企図する。メモリ５０４は、適切な場合、１または複数のメモリ５０４を含んでもよい。この開示は、特定のメモリについて記載し示しているが、この開示は、任意の好適なメモリを企図する。
【００３２】
特定の実施形態では、ストレージ５０６は、データまたは命令用のマス・ストレージを含む。限定するものとしてではなく一例として、ストレージ５０６は、ハード・ディスク・ドライブ（ＨＤＤ）、フロッピー（登録商標）ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、もしくはユニバーサル・シリアル・バス（ＵＳＢ）ドライブ、またはこれらの２以上の組合せを含んでもよい。ストレージ５０６は、適切な場合、取外し式または非取外し式（または固定）媒体を含んでもよい。ストレージ５０６は、適切な場合、コンピュータ・システム５００に対して内部であっても外部であってもよい。特定の実施形態では、ストレージ５０６は、不揮発性のソリッドステート・メモリである。特定の実施形態では、ストレージ５０６は、読出し専用メモリ（ＲＯＭ）を含む。適切な場合、このＲＯＭは、マスクプログラムドＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的書き換え可能ＲＯＭ（ＥＡＲＯＭ）、もしくはフラッシュ・メモリ、またはこれらの２以上の組合せであってよい。この開示は、任意の好適な物理形態をとるマス・ストレージ５０６を企図する。ストレージ５０６は、適切な場合、プロセッサ５０２とストレージ５０６の間の通信を容易にする１または複数のストレージ制御ユニットを含んでもよい。適切な場合、ストレージ５０６は、１または複数のストレージ５０６を含んでもよい。この開示は、特定のストレージについて記載し示しているが、この開示は、任意の好適なストレージを企図する。
【００３３】
特定の実施形態では、Ｉ／Ｏインターフェース５０８は、コンピュータ・システム５００と１または複数のＩ／Ｏデバイスとの間の通信のために１または複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム５００は、適切な場合、これらのＩ／Ｏデバイスの１または複数を含んでもよい。これらのＩ／Ｏデバイスの１または複数は、人とコンピュータ・システム５００の間の通信を可能にする。限定するものとしてではなく一例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、ビデオ・カメラ、別の好適なＩ／Ｏデバイス、またはこれらの２以上の組合せを含んでもよい。Ｉ／Ｏデバイスは、１または複数のセンサを含んでもよい。この開示は、任意の好適なＩ／Ｏデバイス、およびそれらのための任意の好適なＩ／Ｏインターフェース５０８を企図する。適切な場合、Ｉ／Ｏインターフェース５０８は、プロセッサ５０２がこれらのＩ／Ｏデバイスの１または複数を駆動することを可能にする１または複数のデバイスまたはソフトウェア・ドライバを含む。Ｉ／Ｏインターフェース５０８は、適切な場合、１または複数のＩ／Ｏインターフェース５０８を含んでもよい。この開示は、特定のＩ／Ｏインターフェースについて記載し示しているが、この開示は、任意の好適なＩ／Ｏインターフェースを企図する。
【００３４】
特定の実施形態では、通信インターフェース５１０は、コンピュータ・システム５００と１もしくは複数の他のコンピュータ・システム５００または１もしくは複数のネットワークとの間の通信（たとえば、パケットベースの通信など）のために１または複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定するものとしてではなく一例として、通信インターフェース５１０は、ＥＴＨＥＲＮＥＴ（登録商標）もしくは他の有線ベースのネットワークとの通信のためのインターフェース・コントローラ（ＮＩＣ）もしくはネットワーク・アダプタ、またはＷＩ−ＦＩネットワークなど無線ネットワークとの通信のための無線ＮＩＣ（ＷＮＩＣ）もしくは無線アダプタを含んでもよい。この開示は、任意の好適なネットワーク、およびそのための任意の好適な通信インターフェース５１０を企図する。限定するものとしてではなく一例として、コンピュータ・システム５００は、アドホック・ネットワーク、パーソナル・エリア・ネットワーク（ＰＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、またはインターネットの１もしくは複数の部分、あるいはこれらの２以上の組合せと通信する。これらのネットワークの１または複数のうちの１または複数の部分は、有線であっても無線であってもよい。一例として、コンピュータ・システム５００は、無線ＰＡＮ（ＷＰＡＮ）（たとえば、ＢＬＵＥＴＯＯＴＨ（登録商標）ＷＰＡＮなど）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、携帯電話ネットワーク（たとえば、グローバル移動体通信システム（ＧＳＭ（登録商標））ネットワークなど）、もしくは他の好適な無線ネットワーク、またはこれらの２以上の組合せと通信する。コンピュータ・システム５００は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース５１０を含んでもよい。通信インターフェース５１０は、適切な場合、１または複数の通信インターフェース５１０を含んでもよい。この開示は、特定の通信インターフェースについて記載し示しているが、この開示は、任意の好適な通信インターフェースを企図する。
【００３５】
特定の実施形態では、バス５１２は、コンピュータ・システム５００の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定するものとしてではなく一例として、バス５１２は、アクセラレィティッド・グラフィックス・ポート（ＡＧＰ）もしくは他のグラフィックス・バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、フロントサイド・バス（ＦＳＢ）、ＨＴ（ＨＹＰＥＲＴＲＡＮＳＰＯＲＴ）相互接続、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、インフィニバンド相互接続、ＬＰＣ（ｌｏｗ−ｐｉｎ−ｃｏｕｎｔ）バス、メモリ・バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス、ＰＣＩエクスプレス（ＰＣＩｅ）バス、ＳＡＴＡ（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ）バス、ＶＬＢ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ  ｌｏｃａｌ）バス、もしくは別の好適なバス、またはこれらの２以上の組合せを含んでもよい。バス５１２は、適切な場合、１または複数のバス５１２を含んでもよい。この開示は、特定のバスについて記載し示しているが、この開示は、任意の好適なバスまたは相互接続を企図する。
【００３６】
本明細書では、１または複数の非一時的コンピュータ可読記憶媒体は、適切な場合、１または複数の半導体ベースの、もしくは他の集積回路（ＩＣ）（たとえば、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）または特定用途向けＩＣ（ＡＳＩＣ））、ハード・ディスク・ドライブ（ＨＤＤ）、ハイブリッド・ハード・ドライブ（ＨＨＤ）、光ディスク、光ディスク・ドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピー（登録商標）・ディスケット、フロッピー（登録商標）・ディスク・ドライブ（ＦＤＤ）、磁気テープ、ソリッドステート・ドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュア・デジタル・カードもしくはセキュア・デジタル・ドライブ、任意の他の好適な非一時的コンピュータ可読記憶媒体、またはこれらの２以上の組合せを含んでもよい。非一時的コンピュータ可読記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せであってよい。
【００３７】
本明細書では、「または（もしくは）」は、別段明確に示されていない限り、または別段文脈によって示されない限り、包括的（ｉｎｃｌｕｓｉｖｅ）であり、排他的なものではない。したがって、本明細書では、「ＡまたはＢ」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「Ａ、Ｂ、またはその両方」を意味する。さらに、「および」は、別段明確に示されていない限り、または別段文脈によって示されない限り、共同であり、個別的でもある。したがって、本明細書では、「ＡおよびＢ」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「ＡおよびＢを共同で、または個別的に」意味する。
【００３８】
この開示の範囲は、当業者であれば理解するであろう、本明細書に記載され、または示されている例示的な実施形態に対する変更、置換、変形、代替、および修正すべてを包含する。この開示の範囲は、本明細書に記載され、または示されている例示的な実施形態に限定されない。さらに、この開示は、それぞれの実施形態について、本明細書では、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして記載し示しているが、これらの実施形態のいずれも、当業者であれば理解するであろう、本明細書のどこかに記載され、または示されている構成要素、要素、特徴、機能、動作、またはステップのいずれかの任意の組合せまたは並べ替えを含んでもよい。さらに、添付の特許請求の範囲において、特定の機能を実施するように適合された、するように配置された、することが可能な、するように構成された、することが可能である、するように動作可能である、またはするように動作する装置もしくはシステム、または装置もしくはシステムの構成要素に言及することは、その装置、システム、または構成要素がそのように適合され、配置され、動作可能であり、構成され、可能であり、動作可能であり、動作する限り、それ、またはその特定の機能が作動される、オンにされる、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。
【図１】
0006462687.tif 000002
【図２】
0006462687.tif 000003
【図３】
0006462687.tif 000004
【図４】
0006462687.tif 000005
【図５】
0006462687.tif 000006