(57)【特許請求の範囲】
【請求項１】
検索文字列拡張のためにプロセッサが実施する方法であって、前記方法は、
前記プロセッサが、予約フレーズのリストを受信するステップを含み、前記リストにおける各予約フレーズはコンテンツに関連し、各予約フレーズは前記コンテンツの一部に関連付けられ、前記方法はさらに、
前記プロセッサが、言語特性に従って各予約フレーズを分類するステップと、
前記プロセッサが、前記リストにおける各予約フレーズについて同義語の候補リストを生成するステップと、
前記プロセッサが、同義語重複を除去し、同義語を同義語ルールと比較し、前記同義語ルールにマッチングしない同義語を除去することによって、同義語の前記候補リストをフィルタリングするステップと、
前記プロセッサが、関連付けられた予約フレーズの言語特性に従ってフィルタされた前記同義語の候補リストにおける各同義語を分類するステップと、
前記プロセッサが、クエリ文字列を受信するステップと、
前記プロセッサが、前記クエリ文字列の一部とマッチングする、フィルタリングされた候補同義語のリストからマッチング同義語を決定するステップと、
前記プロセッサが、前記クエリ文字列の一部が前記マッチング同義語の言語特性とマッチングするかどうかを判断するステップとを含む、方法。
【請求項２】
前記プロセッサが、マッチング同義語の予約フレーズに関連付けられた前記コンテンツの一部を送信するステップをさらに含む、請求項１に記載の方法。
【請求項３】
同義語の候補リストを生成するステップは、前記プロセッサが、各予約フレーズの部分文字列変化形のリストを生成するステップを含む、請求項１または２に記載の方法。
【請求項４】
同義語の候補リストを生成するステップは、
前記プロセッサが、前記コンテンツを分析するステップと、
前記プロセッサが、前記コンテンツにおける前記予約フレーズの各々を参照するために使用される代替的なワードを判断するステップとを含む、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
言語特性は、名詞、動詞、または場所のうちの少なくとも１つを含む、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
システムであって、
プロセッサと、
前記プロセッサと結合され、前記プロセッサによって読取可能であり、一組の命令を格納する、メモリとを含み、前記一組の命令は、前記プロセッサによって実行されると、以下のステップによって前記プロセッサに検索文字列拡張を行なわせ、前記以下のステップは、
予約フレーズのリストを受信するステップを含み、前記リストにおける各予約フレーズはコンテンツに関連し、各予約フレーズは前記コンテンツの一部に関連付けられ、前記以下のステップはさらに、
言語特性に従って各予約フレーズを分類するステップと、
前記リストにおける各予約フレーズについて同義語の候補リストを生成するステップと、
同義語重複を除去し、同義語を同義語ルールと比較し、前記同義語ルールにマッチングしない同義語を除去することによって、同義語の前記候補リストをフィルタリングするステップと、
関連付けられた予約フレーズの言語特性に従ってフィルタされた前記同義語の候補リストにおける各同義語を分類するステップと、
クエリ文字列を受信するステップと、
前記クエリ文字列の一部とマッチングする、フィルタリングされた候補同義語のリストからのマッチング同義語を決定するステップと、
前記クエリ文字列の一部が前記マッチング同義語の言語特性とマッチングするかどうかを判断するステップとを含む、システム。
【請求項７】
マッチング同義語の予約フレーズに関連付けられた前記コンテンツの一部を送信するステップをさらに含む、請求項６に記載のシステム。
【請求項８】
同義語の候補リストを生成するステップは、各予約フレーズの部分文字列変化形のリストを生成するステップを含む、請求項６または７に記載のシステム。
【請求項９】
同義語の候補リストを生成するステップは、
前記コンテンツを分析するステップと、
前記コンテンツにおける前記予約フレーズの各々を参照するために使用される代替的なワードを判断するステップとを含む、請求項６〜８のいずれか１項に記載のシステム。
【請求項１０】
言語特性は、名詞、動詞、または場所のうちの少なくとも１つを含む、請求項６〜９のいずれか１項に記載のシステム。
【請求項１１】
一組の命令を格納するコンピュータ読取可能プログラムであって、前記一組の命令は、プロセッサによって実行されると、以下のステップによって前記プロセッサに検索文字列拡張を行なわせ、前記以下のステップは、
予約フレーズのリストを受信するステップを含み、前記リストにおける各予約フレーズはコンテンツに関連し、各予約フレーズは前記コンテンツの一部に関連付けられ、前記以下のステップはさらに、
言語特性に従って各予約フレーズを分類するステップと、
前記リストにおける各予約フレーズについて同義語の候補リストを生成するステップと、
同義語重複を除去し、同義語を同義語ルールと比較し、前記同義語ルールにマッチングしない同義語を除去することによって、同義語の前記候補リストをフィルタリングするステップと、
関連付けられた予約フレーズの言語特性に従ってフィルタされた前記同義語の候補リストにおける各同義語を分類するステップと、
クエリ文字列を受信するステップと、
前記クエリ文字列の一部とマッチングする、フィルタリングされた候補同義語のリストからのマッチング同義語を決定するステップと、
前記クエリ文字列の一部が前記マッチング同義語の言語特性とマッチングするかどうかを判断するステップとを含む、コンピュータ読取可能プログラム。
【請求項１２】
プロセッサによって実行されると、当該プロセッサに請求項１〜５のいずれか１項に記載の方法を実行させる、コンピュータ読取可能プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の背景
この発明の実施形態は一般に、クエリに応答してより関連性があり有用なコンテンツをユーザに提供するための方法およびシステムに関し、より特定的には、クエリに応答して結果をユーザに提供するために独特の予約フレーズ（reserved phrase）を使用することに関する。
【背景技術】
【０００２】
ユーザによって行なわれるウェブまたは企業検索はしばしば、無関係な結果を検索の意図されたターゲットに返す。たとえば、ある製品についてのテクニカルヘルプを検索するユーザは、無関係の製品についての結果や、その製品の新バージョンの販売についてのオファーを提示されるかもしれない。多くの場合では、ユーザが製品のフルネームまたは他の検索タームを入力しない場合、ウェブまたは企業検索は結果を返さないかもしれない。よって、より関連性があり有用なコンテンツをユーザに提供する、改良された方法およびシステムが必要とされている。
【発明の概要】
【課題を解決するための手段】
【０００３】
発明の簡単な概要
この発明の実施形態は、クエリに応答してより関連性があり有用なコンテンツをユーザに提供するためのシステムおよび方法を提供する。一実施形態によれば、コンテンツの検索は、独特の予約フレーズを用いて改良され得る。予約フレーズはクエリを、コンテンツの予め選択された特定の区分に向け得る。クエリが予約フレーズを含まない場合でも、同義語を使用してクエリを予約フレーズおよび関連付けられたコンテンツにマッピングするように、同義語が生成され、予約フレーズに関連付けられ得る。同義語は、１つの同義語が１つの予約フレーズにのみ関連付けられるように生成されてフィルタリングされ、それにより検索曖昧性を減少させ得る。
【０００４】
一実施形態によれば、検索文字列拡張は、予約フレーズのリストを受信するステップを含み得る。リストにおける各予約フレーズはコンテンツに関連し、各文字列はコンテンツの一部に関連付けられ得る。各予約フレーズは言語特性に従って分類され得る。たとえば、言語特性は、名詞、動詞、または場所のうちの少なくとも１つを含む。
【０００５】
リストにおける各予約フレーズについて、同義語の候補リストが生成され得る。同義語重複を除去し、同義語を同義語ルールと比較し、同義語ルールにマッチングする同義語を除去することによって、同義語の候補リストはフィルタリングされ得る。関連付けられた予約ワード（reserved word）の言語特性に従って、各同義語が分類され得る。一実施形態によれば、同義語の候補リストを生成するステップは、各予約フレーズの部分文字列変化形のリストを生成するステップを含み得る。それに加えて、またはそれに代えて、同義語の候補リストを生成するステップは、コンテンツを分析するステップと、コンテンツにおける予約フレーズの各々を参照するために使用される代替的なワードを判断するステップとを含み得る。
【０００６】
クエリ文字列が一旦受信されると、クエリ文字列の一部とマッチングする、フィルタリングされた候補同義語のリストからのマッチング同義語が決定され得る。クエリ文字列の一部がマッチング同義語の言語特性とマッチングするかどうかについて、判断が下され得る。次に、マッチング同義語の予約フレーズに関連付けられたコンテンツの一部が送信され得る。
【図面の簡単な説明】
【０００７】
【図１】本発明のさまざまな実施形態が実現され得る例示的な分散型システムのコンポーネントを示すブロック図である。
【図２】本発明の実施形態によって提供されるサービスをクラウドサービスとして提供し得るシステム環境のコンポーネントを示すブロック図である。
【図３】本発明の実施形態が実現され得る例示的なコンピュータシステムを示すブロック図である。
【図４】本発明の一実施形態に従った文脈検索システムの要素を示すブロック図である。
【図５】本発明の実施形態に従った同義語エンジンの要素の追加の詳細を示すブロック図である。
【図６】本発明の一実施形態に従った、予約フレーズの同義語を判断するためのプロセスを示すフローチャートである。
【図７】本発明の一実施形態に従った、予約フレーズおよびそれらの同義語を使用したユーザクエリの処理の追加の詳細を示すフローチャートである。
【図８】本発明の一実施形態に従った、予約フレーズの同義語を判断するためのプロセスを示すフローチャートである。
【発明を実施するための形態】
【０００８】
発明の詳細な説明
以下の記載では、説明の目的のため、多くの特定の詳細が、本発明のさまざまな実施形態の完全な理解を提供するために述べられる。しかしながら、これらの特定の詳細のうちのいくつかがなくても本発明の実施形態は実践され得る、ということは、当業者には明らかであろう。他の例では、周知の構造および装置は、ブロック図の形で示される。
【０００９】
以下の記載は例示的な実施形態のみを提供しており、この開示の範囲、利用可能性、または構成を限定するよう意図されてはいない。むしろ、例示的な実施形態の以下の記載は、例示的な実施形態を実現するための実施可能な説明を当業者に提供するであろう。添付された請求項で述べられるようなこの発明の精神および範囲から逸脱することなく、要素の機能および配置においてさまざまな変更が行なわれてもよい、ということが理解されるべきである。
【００１０】
以下の記載では、実施形態の完全な理解を提供するために、特定の詳細が与えられる。しかしながら、これらの特定の詳細がなくても実施形態は実践され得る、ということは、当業者には理解されるであろう。たとえば、実施形態を必要以上に詳細に記して不明瞭にすることがないように、回路、システム、ネットワーク、プロセス、および他のコンポーネントは、ブロック図の形のコンポーネントとして示されてもよい。他の例では、実施形態を不明瞭にしないように、周知の回路、プロセス、アルゴリズム、構造、および手法は、不要な詳細なしで示されてもよい。
【００１１】
また、個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明され得ることに留意されたい。フローチャートは動作を順次プロセスとして説明し得るものの、動作の多くは並行してまたは同時に行なうことが可能である。加えて、動作の順序は並べ替えられてもよい。プロセスは、その動作が完了すると終了するが、図に含まれない追加のステップを有していてもよい。プロセスは、方法、機能、手順、サブルーチン、サブプログラムなどに対応していてもよい。プロセスがある機能に対応している場合、その終了は、その機能が呼出し元の機能または主機能に戻ることに対応可能である。
【００１２】
「マシン読取可能媒体」という用語は、命令および／またはデータを格納し、含み、または担持することができる、携帯型または固定式記憶装置、光学記憶装置、ならびにさまざまな他の媒体を含むものの、それらに限定されない。コードセグメントまたはマシン実行可能命令が、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、もしくは、命令、データ構造またはプログラム文の任意の組合せを表わしてもよい。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡し、および／または受信することによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む任意の好適な手段を介して渡され、発送され、または送信されてもよい。
【００１３】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実現されてもよい。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実現される場合、必要なタスクを行なうためのプログラムコードまたはコードセグメントが、マシン読取可能媒体に格納されてもよい。プロセッサが、必要なタスクを行なってもよい。
【００１４】
ウェブサイト、インターネットポータル、イントラネットなどは、ユーザがクエリを入力することを可能にする検索能力を有していてもよい。製品、製品名、または他のクエリタームに関する質問を含み得るクエリは、クエリに関連する情報または情報へのリンクをユーザに提供するように、処理されて既存のコンテンツと比較されてもよい。
【００１５】
たとえば、検索機能性は、コンピュータ製品製造業者のウェブサイト上に含まれてもよい。検索機能性は、ユーザがクエリタームを入力することを可能にするテキスト入力ボックスであってもよい。クエリタームは、製造業者のある製品についての質問、ある製品に関する技術的問題についてのより多くの情報の要求などを含んでいてもよい。クエリは、クエリタームに関連するウェブサイトからコンテンツへのリンクまたはコンテンツをユーザに返すように処理されてもよい。
【００１６】
いくつかの実施形態では、クエリタームは、ウェブサイトにおける、またはコンテンツ管理システムにおけるワードまたはテキストと比較されてもよい。クエリのワードとマッチングするコンテンツの部分が、クエリによって返されてもよい。検索システムは、検索結果の所望の精度に基づいて、検索タームをコンテンツテキストとマッチングさせるための異なる方法を有していてもよい。場合によっては、結果の精度を向上させるために、コンテンツおよびクエリの言語分析が使用されてもよい。
【００１７】
場合によっては、クエリタームとコンテンツとの直接マッチングが使用されてもよい。場合によっては、ユーザによって入力されたタームそのもののみが、コンテンツテキストとマッチングされる。検索システムは、クエリタームとぴったりマッチングする結果のみを返してもよい。直接マッチングは良好な精度を提供し得るが、それは多くの用途にとって不適切であるかもしれない。ユーザは、コンテンツにおいて使用されるワードまたはフレーズを組込む完全文または質問を入力する場合がある。ユーザは、コンテンツにおいて使用されるワードの変化形を入力する場合がある。ワードのわずかな変化形により、ユーザに結果が提示されない場合がある。たとえば、ある製造業者のウェブサイトは、その製造業者の製品についての情報を含み得る。ウェブサイト上の製品の正式名称は、たとえば「Computec X 1000」および「Computec V」などの名称を含み得る。「Where can I buy the ComputecX」（私はどこでComputecXを購入できますか）というタームを有するクエリを入力するユーザは、結果をまったく受信しないかもしれない。
【００１８】
他の場合では、部分文字列検索が使用されてもよい。場合によっては、入力されたクエリタームの変化形または部分文字列が、コンテンツテキストの部分文字列にマッチングされてもよい。部分文字列検索は、より低い精度を提供するかもしれず、より多くの結果を返すかもしれない。多くの場合、部分文字列検索は、無関係の結果を返すかもしれない。上述の例を続けると、ユーザが「Computec 1000」というタームを有するクエリを入力する場合、システムはコンテンツを、双方の製品「Computec X 1000」および「Computec V」についての文字列とマッチングし得る部分文字列「Computec」および「1000」とマッチングさせようとするかもしれない。
【００１９】
ユーザから入力を受け取る検索システムは、返された結果の精度と返された結果の数とのバランスをとるべきである。直接検索タームマッピングは、少なすぎるクエリ結果をもたらすかもしれず、よくある変化形を見逃すかもしれない。一方、部分文字列検索は、無関係の製品または概念に向けられた多すぎる結果をもたらすかもしれない。
【００２０】
精度と無関係の結果の数との間のバランスを提供する検索システムが提示される。実施形態では、検索システムは、コンテンツの特定の部分に関連付けられ得る、製品名などの予約フレーズのリストを受信する。検索システムは、コンテンツに関連する予約フレーズのリストにおける各ワードについて、同義語のリストを生成してもよい。各予約フレーズの同義語は、あらゆる重複を除去するために、互いに比較されてもよい。重複が除去された後で、各予約キーワードは、独特の同義語に関連付けられるであろう。同義語は、文脈において、ユーザが入力したクエリテキストとマッチングされてもよい。マッチングするクエリテキストは、マッチングされた各同義語の関連付けられた予約フレーズに変換されてもよく、予約フレーズに関連するコンテンツがユーザに返されてもよい。
【００２１】
システムは、予約フレーズのリストを受信してもよい。予約フレーズのリストは、ウェブサイトまたは他の検索コンテンツに関連する重要なターム、製品、場所などのリストであってもよい。予約フレーズのリストは、たとえば、製造業者のウェブサイト上にリストされた製品に対応していてもよい。予約フレーズのリストは、ユーザによって手動で判断されてもよい。いくつかの実施形態では、予約フレーズのリストは、ウェブサイトまたは他のコンテンツをスキャンすることによって自動的に判断されてもよい。予約フレーズのリストは、コンテンツにおけるワードの頻度を判断することによって決定されてもよい。ありふれたワードでないものの、コンテンツにおいて高い頻度で現れるワードが、予約フレーズとして選択されてもよい。
【００２２】
予約フレーズのリストは、コンテンツで見つかるワードを含んでいてもよい。予約フレーズのリストは、コンテンツの特定の一部または部分に対応していてもよい。たとえば、コンピュータ製品製造業者のウェブサイトについては、予約フレーズのリストは製品名を含んでいてもよい。製造業者のウェブサイトは、各製品についてのウェブページ、文書などを含んでいてもよく、各製品名に関連付けられてもよい。
【００２３】
予約フレーズのリストは、各予約ワードに関連付けられ得る可能な代替的なタームまたは同義語を決定するために処理されてもよい。各予約フレーズは、追加の同義語に関連付けられてもよい。各予約ワードについて、ユーザによって手動で、および／またはシステムによって自動的に、同義語が決定され、予約フレーズに関連付けられてもよい。ユーザは、各予約ワードについて、よく使用されるリスト、または使用される代替的なワードを入力または提供してもよい。
【００２４】
いくつかの実施形態では、システムは、予約フレーズの各々について、部分文字列変化形を自動的に生成してもよい。場合によっては、各予約フレーズの２文字または３文字よりも長いすべての可能な部分文字列が、同義語として使用され、予約ワードに関連付けられてもよい。いくつかの実施形態では、部分文字列同義語を生成するための追加のルールが定義されてもよい。たとえば、場合によっては、予約フレーズから数を除去する部分文字列が生成されてもよい。製品名の場合、ユーザは、番号を記憶することが難しいと感じるかもしれず、製品を単にそれらの最初のワードまたは最初の番号で参照するかもしれない。たとえば、予約製品名「Computec X 1000」は、トークン化後に「Computec X」、「Computec」、および「Computec 1000」などの同義語を生成するように処理されてもよい。
【００２５】
予約フレーズの部分文字列に基づいて同義語を定義するための多くの異なるルールおよび方法が使用されてもよく、文脈、用途、および他の設定に依存してもよい。
【００２６】
いくつかの実施形態では、システムは、予約フレーズに関連付けられた代替的なワードを判断するために、他の内部または外部コンテンツをスキャンしてもよい。使用された、または予約フレーズに関連付けられた代替的なワードを判断するために、たとえば、ブログ、レビューサイト、オンラインフォーラムなどの追加のウェブサイトが、スキャンされ分析されてもよい。
【００２７】
いくつかの実施形態では、予約フレーズは、品詞または他のカテゴリーで注釈を付けられてもよい。予約フレーズが名詞、製品、場所、動詞などであるかどうかを示し得る各予約フレーズに、識別子が関連付けられてもよい。各予約フレーズについて決定された同義語は、予約ワードの指定された品詞または他のカテゴリーを継承してもよい。
【００２８】
実施形態では、各予約フレーズに関連付けられた同義語のリストは、重複を除去するために、比較され、または分析されてもよい。２つ以上の予約フレーズに関連付けられると分かった同義語は、各同義語が１つの予約ワードにのみ関連付けられるように、除去されてもよい。重複は、さまざまな検索およびマッチングアルゴリズムによって除去されてもよい。
【００２９】
予約フレーズのリストは、異なる品詞または他のグルーピングに分類されてもよい。たとえば、いくつかの予約フレーズは名詞として分類され、一方、他の予約フレーズは動詞として分類されてもよい。いくつかの実施形態では、同義語の重複が異なるグループからの予約フレーズに関連付けられている場合、同義語の重複はそのままにしておかれてもよい。たとえば、予約フレーズ「bicycling」は同義語「bike」を有するかもしれない。別の予約ワード「bicycle」は同じ同義語「bike」を有するかもしれない。bicyclingは動詞、bicycleは名詞であるため、２つの同義語「bike」は、各予約ワードの同義語リストにおいてそのままにしておかれてもよい。
【００３０】
さらに別の実施形態では、同義語重複が決定されると、リコール問題を引き起こす曖昧性を回避するために、同義語はすべて除去されてもよい。いくつかの実施形態では、１つの予約フレーズのみが同義語に関連付けられるように、同義語の１つのコピーのすべてが除去されてもよい。一実施形態では、最高ランクの予約フレーズに関連付けられた重複同義語がそのままにしておかれ、他のすべてが除去されてもよい。予約フレーズは、たとえば、それらがコンテンツに現れる回数といった１つ以上の要因に基づいてランク付けされてもよい。予約フレーズの頻度が多くなるにつれて、予約フレーズのランクはより高くなってもよい。いくつかの実施形態では、重複同義語は、それらの関連付けられた予約フレーズと比較されてもよい。予約フレーズに対する同義語の類似性は、編集距離または他の尺度に基づいて計算されてもよい。一実施形態では、編集距離は１文字ごとに適用可能であり、別の実施形態では、それは１トークンごとに適用可能である。
【００３１】
同義語のリストは、より多くの同義語を除去し得る追加のワードフィルタによって処理されてもよい。ワードフィルタは、たとえば２文字または３文字未満の同義語を除去してもよい。ワードフィルタは、フィルタ辞書またはフィルタリング用のワードのリストを含んでいてもよい。フィルタ辞書は、不快なワード、競合企業の製品名などを含んでいてもよい。
【００３２】
予約フレーズのリストおよび同義語のリストは、ユーザからのクエリ要求を処理するために使用されてもよい。ユーザがクエリ文字列を入力すると、文字列は、１つ以上の予約フレーズまたは同義語がクエリの部分とマッチングするかどうかを判断するために、分析されてもよい。いくつかの実施形態では、同義語、予約フレーズ、およびクエリ文字列間のマッチングは、品詞または他の言語特性を分析しマッチングさせることを含んでいてもよい。クエリ文字列のワードは、それらの文脈を判断し、ワードが名詞、動詞、場所などとして使用されているかどうかを決定するために、分析されてもよい。クエリ文字列におけるワードは、品詞および他のグルーピングがマッチングする場合のみ、同義語および／または予約フレーズにマッチングされてもよい。予約フレーズまたは同義語とマッチングしない、クエリ文字列におけるワードも、検索システムによって使用可能である。すなわち、クエリは複雑な場合があり、単なる予約フレーズよりも多くの情報を含むかもしれず、この情報も良好な検索結果の取得に関連し得る。
【００３３】
クエリ文字列の一部が予約フレーズのうちの１つとマッチングする場合、次に、マッチングする予約ワードを含むコンテンツに対して検索が行なわれてもよい。クエリ文字列の一部が同義語のうちの１つとマッチングする場合、次に、関連付けられた予約フレーズを含むコンテンツに対して検索が行なわれてもよい。場合によっては、各予約フレーズは、何らかのトピックとともに、コンテンツの特定の部分に索引付けまたはマッピングされてもよい。ユーザが予約フレーズまたはその同義語のうちの１つを含むクエリ文字列を入力すると、クエリがトピックとマッチングする場合には、索引付けされたコンテンツまたはコンテンツへのリンクがユーザに提示されてもよい。ユーザが「my Computec X 1000 is broken」（私のComputec X 1000が故障した）というクエリタームを入力する場合、トピックは、故障した何かに関するものであり、マッチングされた製品は「Computec X 1000」であり、ユーザには、故障した「Computec X 1000」をどうするかについてのコンテンツが提示され得る。
【００３４】
実施形態では、各予約フレーズの同義語のリストは、連続的におよび／または定期的に更新されてもよい。新しい予約フレーズが追加されるかまたは予約フレーズのリストから除去される際、各予約フレーズの同義語のリストは再計算されてもよい。新しい予約フレーズが追加される場合、新しい予約フレーズの同義語が判断され、重複同義語を除去するためにワードの既存のリストと比較されてもよい。予約フレーズがリストから除去される場合、残りの予約フレーズのうちのいくつかについての同義語のリストに、以前なら重複していたかもしれない同義語が追加されてもよい。
【００３５】
いくつかの実施形態では、ユーザのクエリ文字列におけるワードが記録されてもよい。コンテンツにおけるどのタームともマッチングしなかった、または結果をユーザに返さなかった、クエリ文字列におけるワードは、記録され保存されてもよい。システムは、結果を返さなかった特定のワードがユーザによって何回入力されたかを監視してもよい。マッチングしなかったワードおよびそれらの頻度のリストが、検討のために管理者に提供されてもよい。オペレータは、マッチングしなかったワードのうちの１つ以上を選択し、それらを予約ワードの同義語のリストに追加してもよい。いくつかの実施形態では、ユーザのクエリ文字列における特定のワードが、予め定められたしきい値を上回ってマッチングしなかった場合、管理者アラートがトリガされてもよい。場合によっては、あるワードが５回または１０回以上マッチングしなかった場合、電子メールまたはアラートなどの管理者通知がもたらされてもよい。本発明の実施形態のさまざまな追加の詳細を、図面を参照して以下に説明する。
【００３６】
図１は、本発明のさまざまな実施形態が実現され得る例示的な分散型システムのコンポーネントを示すブロック図である。図示された実施形態では、分散型システム１００は１つ以上のクライアントコンピューティング装置１０２、１０４、１０６、および１０８を含み、それらは、１つ以上のネットワーク１１０を通して、ウェブブラウザ、専用クライアント（たとえば、オラクル・フォームズ（Oracle Forms））などのクライアントアプリケーションを実行し、動作させるように構成される。サーバ１１２は、ネットワーク１１０を介して、リモートのクライアントコンピューティング装置１０２、１０４、１０６、および１０８と通信可能に結合されてもよい。
【００３７】
さまざまな実施形態では、サーバ１１２は、システムのコンポーネントのうちの１つ以上によって提供される１つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。いくつかの実施形態では、これらのサービスは、ウェブベースのサービスまたはクラウドサービスとして、もしくはソフトウェア・アズ・ア・サービス（Software as a Service：ＳａａＳ）モデルの下で、クライアントコンピューティング装置１０２、１０４、１０６、および／または１０８のユーザに提供されてもよい。クライアントコンピューティング装置１０２、１０４、１０６、および／または１０８を動作させるユーザは次に、これらのコンポーネントによって提供されるサービスを利用するためにサーバ１１２とやりとりするために、１つ以上のクライアントアプリケーションを利用してもよい。
【００３８】
図に示す構成では、システム１００のソフトウェアコンポーネント１１８、１２０および１２２は、サーバ１１２上で実現されるとして図示されている。他の実施形態では、システム１００のコンポーネントおよび／またはこれらのコンポーネントによって提供されるサービスのうちの１つ以上も、クライアントコンピューティング装置１０２、１０４、１０６、および／または１０８のうちの１つ以上によって実現されてもよい。クライアントコンピューティング装置を動作させるユーザは次に、これらのコンポーネントによって提供されるサービスを使用するために、１つ以上のクライアントアプリケーションを利用してもよい。これらのコンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せで実現されてもよい。分散型システム１００とは異なり得るさまざまな異なるシステム構成が可能であることが理解されるべきである。図に示す実施形態はこのため、実施形態システムを実現するための分散型システムの一例であり、限定的であるよう意図されてはいない。
【００３９】
クライアントコンピューティング装置１０２、１０４、１０６、および／または１０８は、携帯型ハンドヘルド装置（たとえば、ｉＰｈｏｎｅ（登録商標）、携帯電話、ｉＰａｄ（登録商標）、コンピューティングタブレット、携帯情報端末（ＰＤＡ））、またはウェアラブル装置（たとえば、グーグル・グラス（Google Glass）（登録商標）頭部装着型ディスプレイ）であってもよく、マイクロソフト・ウィンドウズ・モバイル（Microsoft Windows Mobile）（登録商標）などのソフトウェア、および／または、ｉＯＳ、ウィンドウズ（登録商標）フォン、アンドロイド（登録商標）、ブラックベリー（登録商標）１０、パームＯＳなどのさまざまなモバイルオペレーティングシステムを実行し、インターネット、電子メール、ショートメッセージサービス（short message service：ＳＭＳ）、ブラックベリー（登録商標）、または他の通信プロトコルに対応している。クライアントコンピューティング装置は、マイクロソフト・ウィンドウズ（登録商標）、アップル・マッキントッシュ（登録商標）、および／またはＬｉｎｕｘ（登録商標）オペレーティングシステムのさまざまなバージョンを実行するパーソナルコンピュータおよび／またはラップトップコンピュータを例として含む、汎用パーソナルコンピュータであり得る。クライアントコンピューティング装置は、たとえばグーグル・クローム（Google Chrome）ＯＳなどのさまざまなＧＮＵ／Ｌｉｎｕｘオペレーティングシステムを何ら限定されることなく含む、商業的に入手可能なさまざまなＵＮＩＸ（登録商標）またはＵＮＩＸ様オペレーティングシステムのうちのいずれかを実行するワークステーションコンピュータであり得る。それに代えて、またはそれに加えて、クライアントコンピューティング装置１０２、１０４、１０６、および１０８は、ネットワーク１１０を通して通信可能である、シンクライアントコンピュータ、インターネット対応ゲーミングシステム（たとえば、Ｋｉｎｅｃｔ（登録商標）ジェスチャー入力装置を有する、または有さない、マイクロソフトＸｂｏｘゲーミングコンソール）、および／またはパーソナルメッセージング装置といった、任意の他の電子装置であってもよい。
【００４０】
例示的な分散型システム１００は４つのクライアントコンピューティング装置を有して図示されているが、任意の数のクライアントコンピューティング装置がサポートされてもよい。センサを有する装置などの他の装置が、サーバ１１２とやりとりしてもよい。
【００４１】
分散型システム１００におけるネットワーク１１０は、ＴＣＰ／ＩＰ（transmission control protocol/Internet protocol：伝送制御プロトコル／インターネットプロトコル）、ＳＮＡ（systems network architecture：システムネットワークアーキテクチャ）、ＩＰＸ（Internet packet exchange：インターネットパケット交換）、アップル・トーク（Apple Talk）などを何ら限定されることなく含む、商業的に入手可能なさまざまなプロトコルのうちのいずれかを使用してデータ通信をサポートできる、当業者にはよく知られた任意のタイプのネットワークであってもよい。単なる例として、ネットワーク１１０は、イーサネット（登録商標）、トークンリング（Token-Ring）などに基づくものといった、ローカルエリアネットワーク（local area network：ＬＡＮ）であり得る。ネットワーク１１０は、ワイドエリアネットワークおよびインターネットであり得る。それは、仮想プライベートネットワーク（virtual private network：ＶＰＮ）を何ら限定されることなく含む仮想ネットワーク、イントラネット、エクストラネット、公衆交換電話網（public switched telephone network：ＰＳＴＮ）、赤外線ネットワーク、無線ネットワーク（たとえば、電気電子技術者協会（the Institute of Electrical and Electronics：ＩＥＥＥ）８０２．１１プロトコルスイート、Bluetooth（登録商標）、および／または任意の他の無線プロトコルのうちのいずれかの下で動作するネットワーク）、ならびに／もしくは、これらのおよび／または他のネットワークの任意の組合せを含み得る。
【００４２】
サーバ１１２は、１つ以上の汎用コンピュータ、専用サーバコンピュータ（ＰＣ（パーソナルコンピュータ）サーバ、ＵＮＩＸ（登録商標）サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウントサーバなどを例として含む）、サーバファーム、サーバクラスタ、もしくは任意の他の適切な構成および／または組合せで構成されてもよい。さまざまな実施形態では、サーバ１１２は、前述の開示で説明された１つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合されてもよい。たとえば、サーバ１１２は、本開示の一実施形態に従った上述の処理を行なうためのサーバに対応していてもよい。
【００４３】
サーバ１１２は、上述のもののうちのいずれかを含むオペレーティングシステム、および商業的に入手可能な任意のサーバオペレーティングシステムを実行してもよい。サーバ１１２はまた、さまざまな追加のサーバアプリケーションおよび／または中間層アプリケーションのうちのいずれかを実行してもよく、ＨＴＴＰ（hypertext transport protocol：ハイパーテキスト伝送プロトコル）サーバ、ＦＴＰ（file transfer protocol：ファイル転送プロトコル）サーバ、ＣＧＩ（common gateway interface：コモンゲートウェイインターフェイス）サーバ、ＪＡＶＡ（登録商標）サーバ、データベースサーバなどを含む。例示的なデータベースサーバは、オラクル、マイクロソフト、サイベース（Sybase）、ＩＢＭ（International Business Machines：インターナショナル・ビジネス・マシーンズ）などから商業的に入手可能なものを何ら限定されることなく含む。
【００４４】
いくつかの実現化例では、サーバ１１２は、クライアントコンピューティング装置１０２、１０４、１０６、および１０８のユーザから受信されたデータフィードおよび／またはイベント更新を分析して統合するための１つ以上のアプリケーションを含んでいてもよい。一例として、データフィードおよび／またはイベント更新は、センサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール（たとえば、ネットワーク監視およびトラフィック管理アプリケーション）、クリックストリーム分析ツール、自動車交通監視などに関連するリアルタイムイベントを含み得る、１つ以上の第三者情報源および連続データストリームから受信されたツイッター（登録商標）フィード、フェースブック（登録商標）更新またはリアルタイム更新を含んでいてもよいが、それらに限定されない。サーバ１１２はまた、クライアントコンピューティング装置１０２、１０４、１０６、および１０８の１つ以上の表示装置を介してデータフィードおよび／またはリアルタイムイベントを表示するための１つ以上のアプリケーションを含んでいてもよい。
【００４５】
分散型システム１００はまた、１つ以上のデータベース１１４および１１６を含んでいてもよい。データベース１１４および１１６は、さまざまな位置に存在していてもよい。例として、データベース１１４および１１６のうちの１つ以上は、サーバ１１２に対してローカルな（および／または、サーバ１１２内にある）非一時的記憶媒体上に存在していてもよい。それに代えて、データベース１１４および１１６は、サーバ１１２からリモートであってもよく、ネットワークベースの接続または専用接続を介してサーバ１１２と通信してもよい。一組の実施形態では、データベース１１４および１１６は、ストレージエリアネットワーク（storage-area network：ＳＡＮ）に存在していてもよい。同様に、サーバ１１２に帰する機能を行なうための任意の必要なファイルが適宜、サーバ１１２上にローカルに格納されてもよく、および／またはリモートに格納されてもよい。一組の実施形態では、データベース１１４および１１６は、ＳＱＬフォーマットのコマンドに応答してデータを格納し、更新し、検索するように適合された、オラクルによって提供されるデータベースなどのリレーショナルデータベースを含んでいてもよい。
【００４６】
図２は、本発明の実施形態によって提供されるサービスをクラウドサービスとして提供し得るシステム環境のコンポーネントを示すブロック図である。図示された実施形態では、システム環境２００は、クラウドサービスを提供するクラウドインフラストラクチャシステム２０２とやりとりするためにユーザによって使用され得る１つ以上のクライアントコンピューティング装置２０４、２０６、および２０８を含む。クライアントコンピューティング装置は、クラウドインフラストラクチャシステム２０２によって提供されるサービスを使用するためにクラウドインフラストラクチャシステム２０２とやりとりするためにクライアントコンピューティング装置のユーザによって使用され得る、ウェブブラウザ、専用クライアントアプリケーション（たとえば、オラクル・フォームズ）、または何らかの他のアプリケーションといったクライアントアプリケーションを動作させるように構成されてもよい。
【００４７】
図に示すクラウドインフラストラクチャシステム２０２は、図示されたもの以外のコンポーネントを有していてもよい、ということが理解されるべきである。また、図に示す実施形態は、この発明の一実施形態を取入れ得るクラウドインフラストラクチャシステムの単なる一例である。いくつかの他の実施形態では、クラウドインフラストラクチャシステム２０２は、図に示すものよりも多い、または少ないコンポーネントを有していてもよく、２つ以上のコンポーネントを組合せてもよく、もしくは、異なる構成または配置のコンポーネントを有していてもよい。
【００４８】
クライアントコンピューティング装置２０４、２０６、および２０８は、１０２、１０４、１０６、および１０８について上述したものと同様の装置であってもよい。
【００４９】
例示的なシステム環境２００は３つのクライアントコンピューティング装置を有して図示されているが、任意の数のクライアントコンピューティング装置がサポートされてもよい。センサを有する装置などの他の装置が、クラウドインフラストラクチャシステム２０２とやりとりしてもよい。
【００５０】
ネットワーク２１０は、クライアント２０４、２０６、および２０８とクラウドインフラストラクチャシステム２０２との間のデータの通信および交換を容易にしてもよい。各ネットワークは、ネットワーク１１０について上述したものを含む、商業的に入手可能なさまざまなプロトコルのうちのいずれかを使用してデータ通信をサポートできる、当業者にはよく知られた任意のタイプのネットワークであってもよい。
【００５１】
クラウドインフラストラクチャシステム２０２は、サーバ１１２について上述したものを含み得る１つ以上のコンピュータおよび／またはサーバを含んでいてもよい。
【００５２】
ある実施形態では、クラウドインフラストラクチャシステムによって提供されるサービスは、オンラインデータストレージおよびバックアップソリューション、ウェブベースの電子メールサービス、ホスト型オフィススイートおよび文書コラボレーションサービス、データベース処理、管理された技術サポートサービスといった、クラウドインフラストラクチャシステムのユーザにとってオンデマンドで利用可能にされる多数のサービスを含んでいてもよい。クラウドインフラストラクチャシステムによって提供されるサービスは、そのユーザの必要性を満たすために動的にスケール変更され得る。クラウドインフラストラクチャシステムによって提供されるサービスの特定のインスタンス化は、ここに「サービスインスタンス」と呼ばれる。一般に、クラウドサービスプロバイダのシステムから、インターネットなどの通信ネットワークを介してユーザに利用可能とされる任意のサービスは、「クラウドサービス」と呼ばれる。典型的には、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを作り上げるサーバおよびシステムは、顧客自身の業務用サーバおよびシステムとは異なっている。たとえば、クラウドサービスプロバイダのシステムは、アプリケーションをホストしてもよく、ユーザは、インターネットなどの通信ネットワークを介してオンデマンドでアプリケーションをオーダーし、使用してもよい。
【００５３】
いくつかの例では、コンピュータネットワーククラウドインフラストラクチャにおけるサービスは、クラウドベンダーによってユーザに提供されるかまたは当該技術分野において他の態様で公知であるようなストレージ、ホスト型データベース、ホスト型ウェブサーバ、ソフトウェアアプリケーション、もしくは他のサービスへの、保護されたコンピュータネットワークアクセスを含んでいてもよい。たとえば、サービスは、インターネットを通した、クラウド上のリモートストレージへの、パスワードで保護されたアクセスを含み得る。別の例として、サービスは、ネットワーク化された開発者による私的使用のための、ウェブサービスベースのホスト型リレーショナルデータベースおよびスクリプト言語ミドルウェアエンジンを含み得る。別の例として、サービスは、クラウドベンダーのウェブサイト上でホストされる電子メールソフトウェアアプリケーションへのアクセスを含み得る。
【００５４】
ある実施形態では、クラウドインフラストラクチャシステム２０２は、セルフサービスで、サブスクリプションベースで、弾力的にスケーラブルで、信頼でき、高可用性で、かつ安全な態様で顧客に配信される、アプリケーション、ミドルウェアおよびデータベースサービス提供物一式を含んでいてもよい。そのようなクラウドインフラストラクチャシステムの一例は、本譲受人によって提供されるオラクル・パブリック・クラウド（Oracle Public Cloud）である。
【００５５】
さまざまな実施形態では、クラウドインフラストラクチャシステム２０２は、クラウドインフラストラクチャシステム２０２によって提供されるサービスに顧客のサブスクリプションを自動的にプロビジョニングし、管理し、追跡するように適合されてもよい。クラウドインフラストラクチャシステム２０２は、異なるデプロイメントモデルを介してクラウドサービスを提供してもよい。たとえば、サービスは、クラウドインフラストラクチャシステム２０２がクラウドサービスを販売する組織によって所有され（たとえば、オラクルによって所有され）、サービスが一般大衆または異なる産業企業にとって利用可能とされる、パブリッククラウドモデルの下で提供されてもよい。別の例として、サービスは、クラウドインフラストラクチャシステム２０２が単一の組織のためにのみ動作され、その組織内の１つ以上のエンティティのためのサービスを提供し得る、プライベートクラウドモデルの下で提供されてもよい。クラウドサービスはまた、クラウドインフラストラクチャシステム２０２、およびクラウドインフラストラクチャシステム２０２によって提供されるサービスが、関連するコミュニティにおけるいくつかの組織によって共有される、コミュニティクラウドモデルの下で提供されてもよい。クラウドサービスはまた、２つ以上の異なるモデルの組合せであるハイブリッドクラウドモデルの下で提供されてもよい。
【００５６】
いくつかの実施形態では、クラウドインフラストラクチャシステム２０２によって提供されるサービスは、ソフトウェア・アズ・ア・サービス（ＳａａＳ）カテゴリー、プラットフォーム・アズ・ア・サービス（Platform as a Service：ＰａａＳ）カテゴリー、インフラストラクチャ・アズ・ア・サービス（Infrastructure as a Service：ＩａａＳ）カテゴリー、または、ハイブリッドサービスを含むサービスの他のカテゴリーの下で提供される、１つ以上のサービスを含んでいてもよい。顧客は、クラウドインフラストラクチャシステム２０２によって提供される１つ以上のサービスを、サブスクリプションオーダーを介してオーダーしてもよい。クラウドインフラストラクチャシステム２０２は次に、顧客のサブスクリプションオーダーにおけるサービスを提供するために処理を行なう。
【００５７】
いくつかの実施形態では、クラウドインフラストラクチャシステム２０２によって提供されるサービスは、アプリケーションサービス、プラットフォームサービス、およびインフラストラクチャサービスを、何ら限定されることなく含んでいてもよい。いくつかの例では、アプリケーションサービスは、ＳａａＳプラットフォームを介して、クラウドインフラストラクチャシステムによって提供されてもよい。ＳａａＳプラットフォームは、ＳａａＳカテゴリーに該当するクラウドサービスを提供するように構成されてもよい。たとえば、ＳａａＳプラットフォームは、統合された開発およびデプロイメントプラットフォーム上にオンデマンドアプリケーション一式を構築し、配信するための能力を提供してもよい。ＳａａＳプラットフォームは、ＳａａＳサービスを提供するための基本ソフトウェアおよびインフラストラクチャを管理し、制御してもよい。ＳａａＳプラットフォームによって提供されるサービスを利用することにより、顧客は、クラウドインフラストラクチャシステム上で実行されるアプリケーションを利用できる。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、アプリケーションサービスを取得できる。さまざまな異なるＳａａＳサービスが提供されてもよい。例は、大型組織のための販売実績管理、企業統合、およびビジネス柔軟性についてのソリューションを提供するサービスを、何ら限定されることなく含む。
【００５８】
いくつかの実施形態では、プラットフォームサービスは、ＰａａＳプラットフォームを介して、クラウドインフラストラクチャシステムによって提供されてもよい。ＰａａＳプラットフォームは、ＰａａＳカテゴリーに該当するクラウドサービスを提供するように構成されてもよい。プラットフォームサービスの例は、（オラクルなどの）組織が共有の共通アーキテクチャ上で既存のアプリケーションを統合できるようにするサービスと、プラットフォームによって提供される共有のサービスを活用する新しいアプリケーションを構築するための能力とを、何ら限定されることなく含んでいてもよい。ＰａａＳプラットフォームは、ＰａａＳサービスを提供するための基本ソフトウェアおよびインフラストラクチャを管理し、制御してもよい。顧客は、顧客が別々のライセンスおよびサポートを購入する必要なく、クラウドインフラストラクチャシステムによって提供されるＰａａＳサービスを取得できる。プラットフォームサービスの例は、オラクルＪａｖａ（登録商標）クラウドサービス（Java Cloud Service：ＪＣＳ）、オラクル・データベース・クラウド・サービス（Database Cloud Service：ＤＢＣＳ）などを、何ら限定されることなく含む。
【００５９】
ＰａａＳプラットフォームによって提供されるサービスを利用することにより、顧客は、クラウドインフラストラクチャシステムによってサポートされるプログラミング言語およびツールを採用するとともに、デプロイメントされたサービスを制御することができる。いくつかの実施形態では、クラウドインフラストラクチャシステムによって提供されるプラットフォームサービスは、データベースクラウドサービス、ミドルウェアクラウドサービス（たとえば、オラクル・フュージョン・ミドルウェア（Oracle Fusion Middleware）サービス）、およびＪａｖａクラウドサービスを含んでいてもよい。一実施形態では、データベースクラウドサービスは、組織がデータベースリソースをプールし、データベースクラウドの形をしたデータベース・アズ・ア・サービスを顧客に提供することを可能にする共有のサービスデプロイメントモデルをサポートしてもよい。ミドルウェアクラウドサービスは、顧客がさまざまなビジネスアプリケーションを開発してデプロイメントするためのプラットフォームを提供してもよく、Ｊａｖａクラウドサービスは、顧客がクラウドインフラストラクチャシステムにおいてＪａｖａアプリケーションをデプロイメントするためのプラットフォームを提供してもよい。
【００６０】
クラウドインフラストラクチャシステムにおいて、さまざまな異なるインフラストラクチャサービスが、ＩａａＳプラットフォームによって提供されてもよい。これらのインフラストラクチャサービスは、ＳａａＳプラットフォームおよびＰａａＳプラットフォームによって提供されるサービスを利用する顧客のための、ストレージ、ネットワーク、ならびに他の基礎的コンピューティングリソースなどの基本コンピューティングリソースの管理および制御を容易にする。
【００６１】
ある実施形態では、クラウドインフラストラクチャシステム２０２はまた、クラウドインフラストラクチャシステムの顧客にさまざまなサービスを提供するために使用されるリソースを提供するためのインフラストラクチャリソース２３０を含んでいてもよい。一実施形態では、インフラストラクチャリソース２３０は、ＰａａＳプラットフォームおよびＳａａＳプラットフォームによって提供されるサービスを実行するために、サーバ、ストレージ、およびネットワーキングリソースなどのハードウェアの予め統合され最適化された組合せを含んでいてもよい。
【００６２】
いくつかの実施形態では、クラウドインフラストラクチャシステム２０２におけるリソースは、複数のユーザによって共有され、要望ごとに動的に再割当てされてもよい。加えて、リソースは、異なる時間帯におけるユーザに割当てられてもよい。たとえば、クラウドインフラストラクチャシステム２３０は、第１の時間帯における第１の一組のユーザが、特定数の時間、クラウドインフラストラクチャシステムのリソースを利用することを可能にし、次に、異なる時間帯に位置する別の一組のユーザへの同じリソースの再割当てを可能にして、それによりリソースの利用を最大化してもよい。
【００６３】
ある実施形態では、クラウドインフラストラクチャシステム２０２の異なるコンポーネントまたはモジュールによって、およびクラウドインフラストラクチャシステム２０２によって提供されるサービスによって共有される、多くの内部共有サービス２３２が提供されてもよい。これらの内部共有サービスは、セキュリティおよびアイデンティティサービス、統合サービス、企業リポジトリサービス、企業マネージャサービス、ウィルススキャニングおよびホワイトリストサービス、高可用性、バックアップおよび復元サービス、クラウドサポートを可能にするためのサービス、電子メールサービス、通知サービス、ファイル転送サービスなどを、何ら限定されることなく含んでいてもよい。
【００６４】
ある実施形態では、クラウドインフラストラクチャシステム２０２は、クラウドインフラストラクチャシステムにおけるクラウドサービス（たとえば、ＳａａＳ、ＰａａＳ、およびＩａａＳサービス）の包括的管理を提供してもよい。一実施形態では、クラウド管理機能性は、クラウドインフラストラクチャシステム２０２によって受信された顧客のサブスクリプションをプロビジョニングし、管理し、追跡するための能力などを含んでいてもよい。
【００６５】
一実施形態では、図に示すように、クラウド管理機能性は、オーダー管理モジュール２２０、オーダーオーケストレーションモジュール２２２、オーダープロビジョニングモジュール２２４、オーダー管理および監視モジュール２２６、ならびにアイデンティティ管理モジュール２２８などの１つ以上のモジュールによって提供されてもよい。これらのモジュールは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、もしくは任意の他の適切な構成および／または組合せであり得る、１つ以上のコンピュータおよび／またはサーバを含んでいてもよく、もしくはそれらを使用して提供されてもよい。
【００６６】
例示的な動作２３４では、クライアント装置２０４、２０６または２０８などのクライアント装置を使用する顧客は、クラウドインフラストラクチャシステム２０２によって提供される１つ以上のサービスを要求し、クラウドインフラストラクチャシステム２０２によって提供される１つ以上のサービスについてサブスクリプションオーダーを出すことにより、クラウドインフラストラクチャシステム２０２とやりとりしてもよい。ある実施形態では、顧客は、クラウドユーザインターフェイス（User Interface：ＵＩ）であるクラウドＵＩ２１２、クラウドＵＩ２１４および／またはクラウドＵＩ２１６にアクセスし、これらのＵＩを介してサブスクリプションオーダーを出してもよい。顧客がオーダーを出したことに応答してクラウドインフラストラクチャシステム２０２が受信したオーダー情報は、顧客と、顧客が申し込むつもりである、クラウドインフラストラクチャシステム２０２によって提供される１つ以上のサービスとを識別する情報を含んでいてもよい。
【００６７】
顧客によってオーダーが出された後で、オーダー情報がクラウドＵＩ２１２、２１４および／または２１６を介して受信される。
【００６８】
動作２３６で、オーダーがオーダーデータベース２１８に格納される。オーダーデータベース２１８は、クラウドインフラストラクチャシステム２０２によって動作され、他のシステム要素とともに動作される、いくつかのデータベースのうちの１つであり得る。
【００６９】
動作２３８で、オーダー情報はオーダー管理モジュール２２０に発送される。場合によっては、オーダー管理モジュール２２０は、オーダーを検証し、検証後にオーダーを予約するといった、オーダーに関連する請求および課金機能を行なうように構成されてもよい。
【００７０】
動作２４０で、オーダーに関する情報がオーダーオーケストレーションモジュール２２２に通信される。オーダーオーケストレーションモジュール２２２は、顧客によって出されたオーダーのためのサービスおよびリソースのプロビジョニングをオーケストレーションするために、オーダー情報を利用してもよい。場合によっては、オーダーオーケストレーションモジュール２２２は、オーダープロビジョニングモジュール２２４のサービスを使用して、申し込まれたサービスをサポートするようにリソースのプロビジョニングをオーケストレーションしてもよい。
【００７１】
ある実施形態では、オーダーオーケストレーションモジュール２２２は、各オーダーに関連付けられたビジネスプロセスの管理を可能にし、オーダーがプロビジョニングに進むべきか否かを判断するためにビジネス論理を適用する。動作２４２で、新規サブスクリプションのオーダーを受信すると、オーダーオーケストレーションモジュール２２２は、リソースを割当ててサブスクリプションオーダーを遂行するために必要とされるリソースを構成するようにという要求を、オーダープロビジョニングモジュール２２４に送信する。オーダープロビジョニングモジュール２２４は、顧客によってオーダーされたサービスのためのリソースの割当てを可能にする。オーダープロビジョニングモジュール２２４は、クラウドインフラストラクチャシステム２０２によって提供されるクラウドサービスと、要求されたサービスを提供するためのリソースをプロビジョニングするために使用される物理的実装層との間の抽象化のレベルを提供する。オーダーオーケストレーションモジュール２２２はこのため、サービスおよびリソースが実際にオンザフライでプロビジョニングされるか否か、または予めプロビジョニングされて要求時にのみ割当てられるか否かといった実装詳細から切り離されてもよい。
【００７２】
動作２４４で、サービスおよびリソースが一旦プロビジョニングされると、提供されるサービスの通知が、クラウドインフラストラクチャシステム２０２のオーダープロビジョニングモジュール２２４によって、クライアント装置２０４、２０６および／または２０８上の顧客に送信されてもよい。
【００７３】
動作２４６で、顧客のサブスクリプションオーダーが、オーダー管理および監視モジュール２２６によって管理され、追跡されてもよい。場合によっては、オーダー管理および監視モジュール２２６は、使用されるストレージの量、転送されるデータの量、ユーザの数、システムアップタイムおよびシステムダウンタイムの量といった、サブスクリプションオーダーにおけるサービスについての使用統計を収集するように構成されてもよい。
【００７４】
ある実施形態では、クラウドインフラストラクチャシステム２０２は、アイデンティティ管理モジュール２２８を含んでいてもよい。アイデンティティ管理モジュール２２８は、クラウドインフラストラクチャシステム２０２においてアクセス管理および認証サービスなどのアイデンティティサービスを提供するように構成されてもよい。いくつかの実施形態では、アイデンティティ管理モジュール２２８は、クラウドインフラストラクチャシステム２０２によって提供されるサービスを利用したい顧客についての情報を制御してもよい。そのような情報は、そのような顧客のアイデンティティを認証する情報と、さまざまなシステムリソース（たとえば、ファイル、ディレクトリ、アプリケーション、通信ポート、メモリセグメントなど）に対してそれらの顧客がどのアクションを行なうことが認可されているかを記述する情報とを含み得る。アイデンティティ管理モジュール２２８はまた、各顧客についての記述的情報と、その記述的情報が誰によってどのようにアクセスされ、修正され得るかについての記述的情報との管理を含んでいてもよい。
【００７５】
図３は、本発明の実施形態が実現され得る例示的なコンピュータシステムを示すブロック図である。システム３００は、上述のコンピュータシステムのうちのいずれかを実現するために使用されてもよい。図に示すように、コンピュータシステム３００は、バスサブシステム３０２を介して多くの周辺サブシステムと通信する処理部３０４を含む。これらの周辺サブシステムは、処理加速部３０６と、Ｉ／Ｏサブシステム３０８と、記憶サブシステム３１８と、通信サブシステム３２４とを含んでいてもよい。記憶サブシステム３１８は、有形のコンピュータ読取可能記憶媒体３２２と、システムメモリ３１０とを含む。
【００７６】
バスサブシステム３０２は、コンピュータシステム３００のさまざまなコンポーネントおよびサブシステムを意図されるように互いに通信させるためのメカニズムを提供する。バスサブシステム３０２は単一のバスとして概略的に図示されているが、バスサブシステムの代替的な実施形態は複数のバスを利用してもよい。バスサブシステム３０２は、さまざまなバスアーキテクチャのうちのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む、いくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、そのようなアーキテクチャは、ＩＥＥＥ  Ｐ１３８６．１規格で製造されるメザニンバスとして実現可能な、産業標準アーキテクチャ（Industry Standard Architecture：ＩＳＡ）バス、マイクロチャネルアーキテクチャ（Micro Channel Architecture：ＭＣＡ）バス、強化ＩＳＡ（ＥＩＳＡ）バス、ビデオエレクトロニクス標準組織（Video Electronics Standards Association：ＶＥＳＡ）ローカルバス、および周辺コンポーネント相互接続（Peripheral Component Interconnect：ＰＣＩ）バスを含んでいてもよい。
【００７７】
１つ以上の集積回路（たとえば、従来のマイクロプロセッサまたはマイクロコントローラ）として実現され得る処理部３０４は、コンピュータシステム３００の動作を制御する。処理部３０４には、１つ以上のプロセッサが含まれていてもよい。これらのプロセッサは、シングルコアまたはマルチコアプロセッサを含んでいてもよい。ある実施形態では、処理部３０４は、各処理部にシングルまたはマルチコアプロセッサが含まれた、１つ以上の独立した処理部３３２および／または３３４として実現されてもよい。他の実施形態では、処理部３０４はまた、２つのデュアルコアプロセッサをシングルチップへと集積することによって形成されるクアッドコア処理部として実現されてもよい。
【００７８】
さまざまな実施形態では、処理部３０４は、プログラムコードに応答してさまざまなプログラムを実行でき、同時に実行される複数のプログラムまたはプロセスを維持できる。任意の所与の時間において、実行されるべきプログラムコードのうちのいくつかまたはすべては、プロセッサ３０４に、および／または記憶サブシステム３１８にあり得る。好適なプログラミングを通して、プロセッサ３０４は、上述のさまざまな機能性を提供できる。コンピュータシステム３００は加えて処理加速部３０６を含んでいてもよく、それは、デジタル信号プロセッサ（digital signal processor：ＤＳＰ）、専用プロセッサなどを含み得る。
【００７９】
Ｉ／Ｏサブシステム３０８は、ユーザインターフェイス入力装置と、ユーザインターフェイス出力装置とを含んでいてもよい。ユーザインターフェイス入力装置は、キーボード、マウスまたはトラックボールなどのポインティング装置、ディスプレイに組込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイヤル、ボタン、スイッチ、キーパッド、音声コマンド認識システム付き音声入力装置、マイクロホン、および他のタイプの入力装置を含んでいてもよい。ユーザインターフェイス入力装置は、たとえば、ジェスチャーおよび口頭コマンドを使用したナチュラルユーザインターフェイスを通して、マイクロソフトＸｂｏｘ（登録商標）３６０ゲームコントローラなどの入力装置をユーザが制御し、それとやりとりすることを可能にする、マイクロソフトＫｉｎｅｃｔ（登録商標）運動センサなどの運動感知および／またはジェスチャー認識装置を含んでいてもよい。ユーザインターフェイス入力装置はまた、ユーザから目の活動（たとえば、写真撮影中および／またはメニュー選択中の「まばたき」）を検出し、アイジェスチャーを入力装置（たとえば、グーグル・グラス（登録商標））への入力として変換する、グーグル・グラス（登録商標）まばたき検出器などのアイジェスチャー認識装置を含んでいてもよい。加えて、ユーザインターフェイス入力装置は、ユーザが音声コマンドを通して音声認識システム（たとえば、Ｓｉｒｉ（登録商標）ナビゲータ）とやりとりできるようにする音声認識感知装置を含んでいてもよい。
【００８０】
ユーザインターフェイス入力装置はまた、３次元（３Ｄ）マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびに、スピーカ、デジタルカメラ、デジタルビデオカメラ、携帯型メディアプレイヤー、ウェブカメラ、画像スキャナ、指紋スキャナ、バーコードリーダ３Ｄスキャナ、３Ｄプリンタ、レーザー測距器、および視線追跡装置などの音声／視覚装置を、何ら限定されることなく含んでいてもよい。加えて、ユーザインターフェイス入力装置は、たとえば、コンピュータ断層撮影装置、磁気共鳴撮像装置、ポジトロン放出断層撮影装置、医療用超音波検査装置などの医療用撮像入力装置を含んでいてもよい。ユーザインターフェイス入力装置はまた、たとえば、ＭＩＤＩキーボード、デジタル楽器などの音声入力装置を含んでいてもよい。
【００８１】
ユーザインターフェイス出力装置は、表示サブシステム、表示灯、または、音声出力装置などの非視覚的ディスプレイを含んでいてもよい。表示サブシステムは、陰極線管（cathode ray tube：ＣＲＴ）、液晶ディスプレイ（liquid crystal display：ＬＣＤ）またはプラズマディスプレイを使用するものなどのフラットパネル装置、投影装置、タッチスクリーンなどであってもよい。一般に、「出力装置」という用語の使用は、コンピュータシステム３００からユーザまたは他のコンピュータに情報を出力するためのあらゆる可能なタイプの装置およびメカニズムを含むよう意図されている。たとえば、ユーザインターフェイス出力装置は、モニタ、プリンタ、スピーカ、ヘッドホン、自動車ナビゲーションシステム、プロッタ、音声出力装置、およびモデムといった、テキスト、グラフィックスおよび音声／映像情報を視覚的に伝えるさまざまな表示装置を、何ら限定されることなく含んでいてもよい。
【００８２】
コンピュータシステム３００は、現在システムメモリ３１０内に位置するとして図示されたソフトウェア要素を含む記憶サブシステム３１８を含んでいてもよい。システムメモリ３１０は、処理部３０４上でロード可能および実行可能なプログラム命令と、これらのプログラムの実行中に生成されたデータとを格納してもよい。
【００８３】
コンピュータシステム３００の構成およびタイプに依存して、システムメモリ３１０は揮発性（ランダムアクセスメモリ（random access memory：ＲＡＭ）など）であってもよく、および／または不揮発性（読出専用メモリ（read-only memory：ＲＯＭ）、フラッシュメモリなど）であってもよい。ＲＡＭは典型的には、処理部３０４に直ちにアクセス可能であり、および／または処理部３０４によって現在動作および実行中のデータおよび／またはプログラムモジュールを含む。いくつかの実現化例では、システムメモリ３１０は、スタティックランダムアクセスメモリ（static random access memory：ＳＲＡＭ）またはダイナミックランダムアクセスメモリ（dynamic random access memory：ＤＲＡＭ）などの複数の異なるタイプのメモリを含んでいてもよい。いくつかの実現化例では、起動中などにコンピュータシステム３００内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入力／出力システム（basic input/output system：ＢＩＯＳ）が、典型的にはＲＯＭに格納されていてもよい。限定のためではなく例として、システムメモリ３１０はまた、クライアントアプリケーション、ウェブブラウザ、中央層アプリケーション、リレーショナルデータベース管理システム（relational database management system：ＲＤＢＭＳ）などを含み得るアプリケーションプログラム３１２と、プログラムデータ３１４と、オペレーティングシステム３１６とを示す。例として、オペレーティングシステム３１６は、マイクロソフト・ウィンドウズ（登録商標）、アップル・マッキントッシュ（登録商標）、および／またはＬｉｎｕｘオペレーティングシステムのさまざまなバージョン、商業的に入手可能なさまざまなＵＮＩＸ（登録商標）またはＵＮＩＸ様オペレーティングシステム（さまざまなＧＮＵ／Ｌｉｎｕｘオペレーティングシステム、グーグル・クローム（登録商標）ＯＳなどを何ら限定されることなく含む）、および／または、ｉＯＳ、ウィンドウズ（登録商標）フォン、アンドロイド（登録商標）ＯＳ、ブラックベリー（登録商標）１０ＯＳ、パーム（登録商標）ＯＳオペレーティングシステムなどのモバイルオペレーティングシステムを含んでいてもよい。
【００８４】
記憶サブシステム３１８はまた、いくつかの実施形態の機能性を提供する基本プログラミングおよびデータ構造を格納するための有形のコンピュータ読取可能記憶媒体を提供してもよい。プロセッサによって実行されると上述の機能性を提供するソフトウェア（プログラム、コードモジュール、命令）が、記憶サブシステム３１８に格納されてもよい。これらのソフトウェアモジュールまたは命令は、処理部３０４によって実行されてもよい。記憶サブシステム３１８はまた、本発明に従って使用されるデータを格納するためのリポジトリを提供してもよい。
【００８５】
記憶サブシステム３００はまた、コンピュータ読取可能記憶媒体３２２にさらに接続され得るコンピュータ読取可能記憶媒体リーダ３２０を含んでいてもよい。システムメモリ３１０とともに、およびオプションでシステムメモリ３１０と組合わされて、コンピュータ読取可能記憶媒体３２２は、リモート、ローカル、固定および／またはリムーバブルの記憶装置に加えて、コンピュータ読取可能情報を一時的におよび／またはより永続的に含み、格納し、送信し、検索するための記憶媒体を包括的に表わしてもよい。
【００８６】
コードまたはコードの一部を含むコンピュータ読取可能記憶媒体３２２はまた、情報の格納および／または送信のためのあらゆる方法または技術で実現される揮発性および不揮発性でリムーバブルおよび非リムーバブルの媒体を含むがそれらに限定されない記憶媒体および通信媒体を含む、当該技術分野において公知であるかまたは使用されるあらゆる適切な媒体を含み得る。これは、ＲＡＭ、ＲＯＭ、電子的消去可能プログラマブルＲＯＭ（electronically erasable programmable ROM：ＥＥＰＲＯＭ）、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（digital versatile disk：ＤＶＤ）または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、もしくは他の有形のコンピュータ読取可能媒体といった、有形のコンピュータ読取可能記憶媒体を含み得る。これは、所望の情報を送信するために使用可能であり、コンピューティングシステム３００によってアクセスされ得るデータ信号、データ送信、または任意の他の媒体といった、非有形のコンピュータ読取可能媒体も含み得る。
【００８７】
例として、コンピュータ読取可能記憶媒体３２２は、非リムーバブルで不揮発性の磁気媒体から読出し、またはそれに書込むハードディスクドライブ、リムーバブルで不揮発性の磁気ディスクから読出し、またはそれに書込む磁気ディスクドライブ、ならびに、ＣＤ  ＲＯＭ、ＤＶＤ、およびＢｌｕ−Ｒａｙ（登録商標）ディスク、または他の光学媒体といった、リムーバブルで不揮発性の光ディスクから読出し、またはそれに書込む光ディスクドライブを含んでいてもよい。コンピュータ読取可能記憶媒体３２２は、Ｚｉｐ（登録商標）ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス（universal serial bus：ＵＳＢ）フラッシュドライブ、セキュアデジタル（secure digitalＳＤ）カード、ＤＶＤディスク、デジタルビデオテープなどを含んでいてもよいが、それらに限定されない。コンピュータ読取可能記憶媒体３２２はまた、フラッシュメモリベースのソリッドステートドライブ（solid-state drive：ＳＳＤ）、企業フラッシュドライブ、ソリッドステートＲＯＭといった、不揮発性メモリに基づいたＳＳＤ、ソリッドステートＲＡＭ、ダイナミックＲＡＭ、スタティックＲＡＭ、ＤＲＡＭベースのＳＳＤ、磁気抵抗ＲＡＭ（ＭＲＡＭ）ＳＳＤといった、揮発性メモリに基づいたＳＳＤ、および、ＤＲＡＭベースのＳＳＤとフラッシュメモリベースのＳＳＤとの組合せを使用するハイブリッドＳＳＤを含んでいてもよい。ディスクドライブおよびそれらの関連付けられたコンピュータ読取可能媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュールおよび他のデータの不揮発性ストレージをコンピュータシステム３００に提供してもよい。
【００８８】
通信サブシステム３２４は、他のコンピュータシステムおよびネットワークへのインターフェイスを提供する。通信サブシステム３２４は、コンピュータシステム３００とは別のシステムからデータを受信し、別のシステムにデータを送信するためのインターフェイスとして機能する。たとえば、通信サブシステム３２４は、コンピュータシステム３００がインターネットを介して１つ以上の装置に接続できるようにしてもよい。いくつかの実施形態では、通信サブシステム３２４は、（たとえば、３Ｇ、４Ｇ、またはＥＤＧＥ（enhanced data rates for global evolution：エンハンスト・データレート・フォー・グローバル・エボリューション）、ＷｉＦｉ（ＩＥＥＥ８０２．１１ファミリー規格）、または他の移動通信技術、またはそれらの任意の組合せといった携帯電話技術、高度なデータネットワーク技術を使用した）無線音声および／またはデータネットワークにアクセスするための無線周波数（radio frequency：ＲＦ）トランシーバコンポーネント、全地球測位システム（global positioning system：ＧＰＳ）受信機コンポーネント、および／または他のコンポーネントを含み得る。いくつかの実施形態では、通信サブシステム３２４は、無線インターフェイスに加えて、またはその代わりに、有線ネットワーク接続（たとえば、イーサネット）を提供できる。
【００８９】
いくつかの実施形態では、通信サブシステム３２４はまた、コンピュータシステム３００を使用し得る１人以上のユーザのために、構造化および／または非構造化データフィード３２６、イベントストリーム３２８、イベント更新３３０などの形をした入力通信を受信してもよい。
【００９０】
例として、通信サブシステム３２４は、ツイッター（登録商標）フィード、フェースブック（登録商標）更新、リッチ・サイト・サマリー（Rich Site Summary：ＲＳＳ）フィードなどのウェブフィード、および／または１つ以上の第三者情報源からのリアルタイム更新といった、ソーシャルネットワークおよび／または他の通信サービスのユーザからのデータフィード３２６をリアルタイムで受信するように構成されてもよい。
【００９１】
加えて、通信サブシステム３２４はまた、リアルタイムイベントのイベントストリーム３２８および／またはイベント更新３３０を含み得る、明確な終わりがなく本質的に連続的または無限であり得る連続データストリームの形をしたデータを受信するように構成されてもよい。連続データを生成するアプリケーションの例は、たとえば、センサデータアプリケーション、金融ティッカー、ネットワーク性能測定ツール（たとえば、ネットワーク監視およびトラフィック管理アプリケーション）、クリックストリーム分析ツール、自動車交通監視などを含んでいてもよい。
【００９２】
通信サブシステム３２４はまた、構造化および／または非構造化データフィード３２６、イベントストリーム３２８、イベント更新３３０などを、コンピュータシステム３００に結合された１つ以上のストリーミングデータソースコンピュータと通信し得る１つ以上のデータベースに出力するように構成されてもよい。
【００９３】
コンピュータシステム３００は、ハンドヘルド携帯装置（たとえば、ｉＰｈｏｎｅ（登録商標）携帯電話、ｉＰａｄ（登録商標）コンピューティングタブレット、ＰＤＡ）、ウェアラブル装置（たとえば、グーグル・グラス（登録商標）頭部装着型ディスプレイ）、ＰＣ、ワークステーション、メインフレーム、キオスク、サーバラック、または任意の他のデータ処理システムを含む、さまざまなタイプのうちの１つであり得る。
【００９４】
コンピュータおよびネットワークの絶えず変化する性質により、図に示すコンピュータシステム３００の説明は、単に特定の一例として意図される。図に示すシステムよりも多い、または少ないコンポーネントを有する多くの他の構成が可能である。たとえば、カスタマイズされたハードウェアも使用されてもよく、および／または、特定の要素が、ハードウェア、ファームウェア、ソフトウェア（アプレットを含む）、または組合せで実現されてもよい。また、ネットワーク入力／出力装置などの他のコンピューティング装置への接続が採用されてもよい。ここに提供される開示および教示に基づいて、当業者であれば、さまざまな実施形態を実現するための他のやり方および／または方法を理解するであろう。
【００９５】
図４は、本発明の一実施形態に従った文脈検索システムの要素を示すブロック図である。システム４００は、予約フレーズのリストの同義語を決定し、および／または同義語および予約フレーズを使用して、ユーザクエリを処理するために使用されてもよい。システムは、ウェブサイト、文書、および／または他のコンテンツを含み得るコンテンツリポジトリ４０６を含んでいてもよい。コンテンツリポジトリは、たとえば、製品製造業者のウェブサイトであってもよい。システムは、予約フレーズ４０４の１つ以上のリストを含んでいてもよい。システムは、予約フレーズ４０４に関連付けられた同義語４１６の１つ以上のリストを含んでいてもよい。予約フレーズ４０４および同義語４１６のリストは生成されてもよく、または特にコンテンツ４０６に関連していてもよい。場合によっては、予約フレーズ４０４のリストは、外部ソースから、またはユーザから、システムによって受信されてもよい。場合によっては、コンテンツ分析エンジン４１２が、予約フレーズを決定するためにコンテンツ４０６をスキャンまたは処理するように構成されてもよい。システム４００は、同義語エンジン４０８をさらに含んでいてもよい。同義語エンジンは、予約フレーズの各々について同義語を自動的に生成するように構成されてもよい。予約フレーズ４０４の同義語４１６は、予約フレーズの独特の部分文字列を受け取ることにより、同義語エンジン４０８によって生成されてもよい。いくつかの実施形態では、同義語エンジン４０８は、コンテンツ分析エンジン４１２を利用することによってコンテンツにおける関連ワードを分析し、外部コンテンツを分析し、および／またはユーザクエリを監視することにより、同義語を生成してもよい。
【００９６】
ユーザインターフェイス４１４は、クエリを入力するためにユーザによって使用されてもよい。クエリは、コンテンツ４０６に関連する質問または検索であってもよい。これらの検索のゴールは、クエリのトピックを決定すること、および、クエリに存在する予約フレーズまたは同義語を決定することであるべきである。一実施形態では、ユーザインターフェイス４１４は、ウェブブラウザに表示されたウェブページ、もしくは、ユーザのコンピュータまたはモバイルコンピューティング装置上に表示されたアプリケーションであってもよい。ユーザインターフェイスは、検索またはクエリを入力するためのテキストボックスまたは他の入力エリアを含んでいてもよい。ユーザインターフェイス４１４からのクエリは、クエリ処理エンジン４０２に送信されてもよい。ユーザインターフェイス４１４がクエリ処理エンジン４０２から遠隔にある場合、ユーザインターフェイス４１４からのクエリは、ネットワーク４１０を介して送信されてもよい。クエリ処理エンジン４０２は、クエリ、クエリの文脈を分析し、クエリのワードのうちのいずれかが予約フレーズ４０４および同義語４１６とマッチングするかどうかを決定してもよい。クエリ処理エンジン４０２は、同義語４１６とマッチングするクエリワードを、関連付けられた予約フレーズにマッピングしてもよい。クエリ処理エンジンは、関連する予約フレーズを、コンテンツ４０６の特定のエリアにマッピングしてもよい。関連するコンテンツまたは関連するコンテンツへのリンクが、ユーザインターフェイス４１４に返され、送信されてもよい。
【００９７】
いくつかの実施形態では、クエリ処理エンジン４０２は、ユーザクエリを監視および記録するとともに、ユーザクエリがコンテンツ４０６のエリアに順調にマッピングされたかどうかを監視および記録してもよい。クエリ処理エンジン４０２は、ユーザクエリにおけるマッチングしなかったワードの各々が何回入力されたかを記録してもよい。クエリの履歴およびそれらのコンテンツ４０６への順調なマッピングが、システムが使用する同義語４１６および予約フレーズ４０４を改良するために使用されてもよい。
【００９８】
図５は、本発明の実施形態に従った同義語エンジンの要素の追加の詳細を示すブロック図である。同義語エンジン４０８は、予約フレーズのリストの同義語を決定するために使用されてもよい。同義語エンジン４０８は、予約フレーズ４０４の同義語のリストを自動的に生成するために、予約フレーズ４０４およびコンテンツを処理するためのさまざまなモジュールを含んでいてもよい。同義語エンジンは、部分文字列分析モジュール５０２と、言語分析モジュール５０４と、ワードフィルタ５０６と、コンテンツマッチングモジュール５０８と、重複検出モジュール５１０と、さまざまな辞書５１２とを含んでいてもよい。実施形態では、さまざまなモジュールの機能性は組合せられてもよく、または異なる数のモジュールに分割されてもよく、同義語エンジン４０８のいくつかの実施形態は、ここに説明された機能性の部分集合を含む。
【００９９】
予約フレーズ４０４の１つ以上のリストが、同義語エンジン４０８によって受信されてもよい。予約フレーズ４０４のリストは、グルーピングまたは言語指示子を含んでいてもよい。グルーピングは、予約フレーズが名詞、場所、動詞などであるかどうか、といった指示子を含んでいてもよい。指示子が予約フレーズのために利用できない場合、言語分析モジュール５０４が、予約フレーズの言語特性を決定するために使用されてもよい。場合によっては、たとえば、予約フレーズが名詞または動詞であるかどうか、といった言語特性は、予約ワードから直接判断されてもよい。場合によっては、予約フレーズは単独では曖昧すぎるかもしれない。いくつかの実施形態では、言語分析モジュール５０４は、コンテンツ分析エンジン４１２から、予約フレーズを含むコンテンツを要求してもよい。コンテンツ分析エンジン４１２は、予約フレーズを含む、コンテンツの完全な文、段落、または他の部分を返してもよい。コンテンツにおける予約フレーズの使い方に基づいて、言語分析モジュール５０４は、予約フレーズの言語特性を判断してもよい。言語分析モジュール５０４は、予約フレーズが名詞、動詞などとして一貫して使用されているかどうかを判断してもよい。予約フレーズのグルーピングおよび言語特性は、各予約フレーズ、および各予約ワードについて判断された同義語に関連付けられてもよい。
【０１００】
部分文字列分析モジュール５０２は、各予約ワードの可能な部分文字列のリストを生成するために使用されてもよい。部分文字列分析モジュール５０２は、予約フレーズを、同義語として使用するためのさまざまな部分文字列へと分解してもよい。場合によっては、部分文字列分析モジュール５０２は、部分文字列同義語を生成するための一組のルールを含んでいてもよい。たとえば、部分文字列モジュールは、少なくとも３文字の長さの部分文字列を生成することに限定されてもよい。追加のルールは、部分文字列が予約ワードと同じ文字で始まることを含んでいてもよい。部分文字列同義語を生成するためのルールの別の例では、モジュール５０２は、数字を除去し英字のみを残すことによって部分文字列を生成するように構成されてもよい。
【０１０１】
類語辞典、辞書などを含み得る辞書５１２は、予約フレーズの追加の同義語を判断するために使用されてもよい。辞書５１２は、関連ワードのリストおよび／または言語特性を判断するために使用されてもよい。
【０１０２】
いくつかの実施形態では、コンテンツマッチングモジュール５０８は、予約フレーズの同義語をコンテンツから直接判断するために使用されてもよい。コンテンツマッチングモジュール５０８は、予約フレーズと交換可能に使用されるワードを決定するために、コンテンツを分析してもよい。
【０１０３】
同義語エンジン４０８のモジュールによる生成された同義語のリストは、重複検出モジュール５１０によって処理されてもよい。重複検出モジュール５１０は、２つ以上の予約ワードについて同義語として決定されたかもしれないワードを決定するように構成されてもよい。重複検出モジュール５１０は、重複同義語を決定し、重複を除去してもよい。場合によっては、重複検出モジュール５１０は、重複同義語を決定し、１つの重複以外のすべてを削除してもよい。重複入力の除去は、各重複同義語に関連付けられた予約フレーズの重要性またはランキングに基づいていてもよい。最高ランクの予約フレーズに関連付けられた重複同義語は同義語のリストに残され、一方、他の重複同義語はすべて除去されてもよい。
【０１０４】
実施形態では、ワードフィルタモジュール５０６は、同義語のリストをさらに処理するために使用されてもよい。フィルタモジュール５０６は、同義語のリストを禁止ワードのリストと比較し、および／または、ルールを使用して同義語を分析してもよい。禁止ワードのうちのいずれかとマッチングする同義語は、フィルタモジュール５０６によってフィルタリングまたは除去されてもよい。１つ以上のルールにマッチングする同義語も、フィルタリングまたは除去されてもよい。ルールは、たとえば、同義語は少なくとも３文字の長さであること、または、同義語は予約ワードと同じ文字で始まることを含んでいてもよい。
【０１０５】
図６は、本発明の一実施形態に従った、予約フレーズの同義語を判断するためのプロセスを示すフローチャートである。方法６００は、前述のシステムを使用して行なわれてもよい。たとえば、図５の同義語エンジン４０８または図４のシステム４００が使用されてもよい。そのようなシステムのコンポーネントは、ハードウェア、ソフトウェア、および／またはファームウェアを使用して実現されてもよい。
【０１０６】
ステップ６０２で、システムは、予約フレーズの１つ以上のリストを受信してもよい。予約フレーズは、ユーザ、またはシステムの異なる部分から受信されてもよい。予約フレーズのリストは、ウェブサイトなどのコンテンツで見つけることができる名称または製品またはワードを含んでいてもよい。予約フレーズは、コンテンツの特定の部分に関連付けられ、またはリンクされてもよい。ステップ６０４で、予約フレーズの文脈が決定されてもよい。文脈は、予約ワードから判断されてもよい。予約フレーズの言語特性を判断するために、辞書および他の参考資料が使用されてもよい。場合によっては、予約フレーズが使用されるコンテンツが、予約フレーズの文脈を決定するために検索されてもよい。予約フレーズが使用される文が、それらの言語特性、関連するトピックなどを含み得るそれらの文脈を判断するために分析されてもよい。
【０１０７】
ステップ６０６で、システムは、予約フレーズの判断された文脈を少なくとも部分的に使用して、予約フレーズの同義語を判断してもよい。同義語は、参考資料、コンテンツ分析、部分文字列分析などを介して判断されてもよい。ステップ６０８で、望ましくない同義語がフィルタリングされてもよい。望ましくない同義語は、２つ以上の予約ワード、競合企業製品名などに関連付けられる重複同義語を含んでいてもよい。ステップ６１０で、残された同義語は、関連付けられた予約フレーズの文脈を継承してもよい。
【０１０８】
図７は、本発明の一実施形態に従った、予約フレーズおよびそれらの同義語を使用したユーザクエリの処理の追加の詳細を示すフローチャートである。方法７００は、前述のシステムを使用して行なわれてもよい。たとえば、図５の同義語エンジン４０８または図４のシステム４００が使用されてもよい。そのようなシステムのコンポーネントは、ハードウェア、ソフトウェア、および／またはファームウェアを使用して実現されてもよい。
【０１０９】
ステップ７０２で、クエリ文字列が受信されてもよい。クエリは、ユーザインターフェイスを介してユーザから受信され、ネットワークを介してクエリシステムに送信されてもよい。場合によっては、クエリは、システムの異なる部分または異なるシステムから受信されてもよい。ステップ７０４で、クエリ文字列は、任意の予約フレーズまたは予約フレーズの同義語がクエリ文字列の一部であるかどうかを決定するために、分析され処理されてもよい。ステップ７０６で、決定された同義語および／または予約フレーズの位置および文脈が決定されてもよい。クエリ文字列における位置、クエリ文字列の構造などに少なくとも部分的に基づいて、クエリ文字列におけるマッチングワードの言語特性といった特性が、システムによって判断されてもよい。クエリ文字列におけるワードの文脈を、予約フレーズおよび同義語の文脈と比較して、それらがマッチングするかどうかを判断してもよい。文脈がマッチングする場合、クエリ文字列の同義語および／または予約フレーズは、マッチングと考えられてもよい。クエリ文字列がマッチング同義語を含む場合、ステップ７０８で、同義語は、関連付けられた予約フレーズにマッピングされてもよい。ステップ７１０で、マッピングされた予約フレーズは、クエリ文字列を処理するために使用されてもよい。予約フレーズは、コンテンツの特定の部分またはコンテンツへのリンクに関連付けられてもよい。クエリ文字列において決定された予約フレーズに関連付けられたコンテンツまたはコンテンツへのリンクは、ユーザに返されてもよい。
【０１１０】
図８は、本発明の一実施形態に従った、予約フレーズの同義語を判断するためのプロセスを示すフローチャートである。方法８００は、前述のシステムを使用して行なわれてもよい。たとえば、図５の同義語エンジン４０８または図４のシステム４００が使用されてもよい。そのようなシステムのコンポーネントは、ハードウェア、ソフトウェア、および／またはファームウェアを使用して実現されてもよい。
【０１１１】
ステップ８０２で、予約フレーズが受信されてもよい。予約フレーズは、予約ワードの同義語を生成するための１つ以上のステップを使用して処理されてもよい。いくつかの実施形態では、ステップ８０４で、予約フレーズは、予約フレーズの部分文字列を潜在的な同義語として決定するために処理されてもよい。部分文字列生成は、文字の最小および／または最大数といったルールを含んでいてもよい。場合によっては、部分文字列は、元の予約ワードの一部ではない追加の語尾を含んでいてもよい。代替的な語尾、接尾辞、および／または接頭辞を有する部分文字列が、潜在的な同義語として使用されるように生成されてもよい。たとえば「ed」または「ing」といった接尾辞は、いくつかの予約フレーズにとって適切かもしれない。
【０１１２】
いくつかの実施形態では、ステップ８０６で、予約フレーズは、予約ワードの一般的なまたは周知の同義語を決定するために、辞書、類語辞典などを使用して処理されてもよい。いくつかの実施形態では、ステップ８０８で、予約フレーズは、ターゲットコンテンツを使用して処理されてもよい。予約ワードと交換可能に使用されるワードを判断するために、コンテンツのテキストが分析されてもよい。交換可能なワードは、予約ワードの同義語の潜在的な候補としてマーキングされてもよい。ステップ８１０で、決定された同義語はさらに処理され、同義語ルールおよび／または禁止ワードのリストと比較されてもよい。同義語ルールは、同義語の文字の最小または最大数、非英字の数などを決定するルールを含んでいてもよい。ステップ８１２で、ルールにマッチングしない、または禁止ワードのリストの一部であるあらゆる同義語がフィルタリングされてもよい。
【０１１３】
前述の説明では、例示のために、方法は特定の順序で説明された。代替的な実施形態では、方法は、説明されたものとは異なる順序で行なわれてもよい、ということが理解されるべきである。上述の方法はハードウェアコンポーネントによって行なわれてもよく、もしくは、汎用または専用プロセッサ、もしくは命令でプログラミングされた論理回路といったマシンに方法を行なわせるために使用され得るマシン実行可能命令のシーケンスで具現化されてもよい、ということも理解されるべきである。これらのマシン実行可能命令は、１つ以上のマシン読取可能媒体またはメモリ装置、たとえば、ＣＤ−ＲＯＭまたは他のタイプの光ディスク、フロッピー（登録商標）ディスケット、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カードまたは光カード、フラッシュメモリ、もしくは、電子命令を格納するのに好適である他のタイプのマシン読取可能媒体またはメモリ装置上に格納されてもよい。それに代えて、方法は、ハードウェアとソフトウェアとの組合せによって行なわれてもよい。
【０１１４】
この発明の例示的で現在好ましい実施形態がここに詳細に説明されてきたが、発明の概念は他のやり方でさまざまに具現化され採用されてもよいこと、および、添付された請求項は、先行技術によって限定される場合を除き、そのような変更を含むと解釈されるよう意図されていることが理解されるべきである。
【図１】
0006439043.tif 000002
【図２】
0006439043.tif 000003
【図３】
0006439043.tif 000004
【図４】
0006439043.tif 000005
【図５】
0006439043.tif 000006
【図６】
0006439043.tif 000007
【図７】
0006439043.tif 000008
【図８】
0006439043.tif 000009