(57)【特許請求の範囲】
【請求項１】
インテリジェント・イベント・ベース・データ・マイニングの方法であって、コンピュータ・システムが、
アプリケーションから、一組のプロパティを有するイベントを受け取るステップと、
前記プロパティのそれぞれに、個別のプロパティ加重を付与するステップと、
前記プロパティ加重に基づき、前記プロパティからクエリを構築するステップと、
一組の検索エンジンのそれぞれに、個別の検索エンジン加重を付与するステップと、
前記検索エンジン加重に基づき、前記検索エンジンのうちの少なくともいくつかを選択するステップと、
前記選択された検索エンジンに前記クエリを送るステップと、
前記選択された検索エンジンからクエリ結果を受け取るステップと、
前記クエリ結果を知識リポジトリに記憶するステップと、
前記クエリ結果に基づき前記プロパティ加重及び前記検索エンジン加重を調節するステップと
を実行することを含み、
前記プロパティ加重及び前記検索エンジン加重を調節するステップは、
個別のクエリ結果に関して検索結果の関連性を計算するステップと、
前記検索結果の関連性を使用して、前記プロパティ加重及び前記検索エンジン加重を調節するステップと
を含み、
前記個別のクエリ結果に関して検索結果の関連性を計算するステップは、前記クエリ結果のそれぞれに関して、
前記クエリ及び前記個別のクエリ結果の両方において出現する共通テキスト・サブストリングの数を特定するステップと、
共通テキスト・サブストリングの前記数を使用して、前記個別のクエリ結果に関して前記検索結果の関連性を計算するステップと
を含み、
共通テキスト・サブストリングの前記数を使用して、前記個別のクエリ結果に関して前記検索結果の関連性を計算するステップは、
次式：
【数１】
0005497185.tif 000008
を使用して、前記結果の関連性を計算するステップ
を含み、
式中、
ｍｎは、第ｎの一致内のワードの数であり、
Ｎは、前記クエリ内のワードの数であり、
ｎは、一致した部分列の数である、
前記方法。
【請求項２】
前記プロパティ加重に基づき、前記プロパティからクエリを構築するステップは、
定義されている値を超えるプロパティ加重を有する前記プロパティのそれぞれを選択するステップと、
前記選択されたプロパティから前記クエリを構築するステップと、
を含む、請求項１に記載の方法。
【請求項３】
前記検索エンジン加重に基づき、前記検索エンジンのうちの少なくともいくつかを選択するステップは、
定義されている値を超える検索エンジン加重を有する前記検索エンジンのそれぞれを選択するステップ
を含む、請求項１又は２に記載の方法。
【請求項４】
前記クエリ及び前記個別のクエリ結果の両方において出現する共通テキスト・サブストリングの前記数を特定するステップは、
前記クエリ及び前記個別のクエリ結果の両方における最長共通サブストリングを特定するステップと、
変更されたクエリを得るために、前記最長共通サブストリングを前記クエリから削除するステップと、
前記変更されたクエリ及び前記クエリ結果の両方における最長共通サブストリングを特定するステップと
を含む、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
前記クエリ及び前記個別のクエリ結果の両方において出現する共通テキスト・サブストリングの前記数を特定するステップは、
一組の前記共通テキスト・サブストリングを形成するステップと、
特定組のテキスト・サブストリングのうちのいずれかの出現それぞれを、前記一組から削除するステップであって、トリミングされた一組の共通サブストリングを形成する、前記削除するステップと
を含む、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記プロパティ加重及び前記検索エンジン加重を調節するステップは、
総関連性スコアを得るために、前記クエリのそれぞれの前記検索結果の関連性を合計するステップ
を含む、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
前記プロパティ加重及び前記検索エンジン加重を調節するステップは、
前記クエリ結果のそれぞれに対する、前記選択されたプロパティのそれぞれの寄与を計算するステップ
を含む、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
インテリジェント・イベント・ベース・データ・マイニングの装置であって、
アプリケーションから、一組のプロパティを有するイベントを受け取る手段と、
前記プロパティのそれぞれに、個別のプロパティ加重を付与する手段と、
前記プロパティ加重に基づき、前記プロパティからクエリを構築する手段と、
一組の検索エンジンのそれぞれに、個別の検索エンジン加重を付与する手段と、
前記検索エンジン加重に基づき、前記検索エンジンのうちの少なくともいくつかを選択する手段と、
前記選択された検索エンジンに前記クエリを送る手段と、
前記選択された検索エンジンからクエリ結果を受け取る手段と、
前記クエリ結果を知識リポジトリに記憶する手段と、
前記クエリ結果に基づき前記プロパティ加重及び前記検索エンジン加重を調節する手段と、
を含み、前記装置。
前記プロパティ加重及び前記検索エンジン加重を調節する前記手段は、
個別のクエリ結果に関して検索結果の関連性を計算する手段と、
前記検索結果の関連性を使用して、前記プロパティ加重及び前記検索エンジン加重を調節する手段と
を含み、
前記個別のクエリ結果に関して検索結果の関連性を計算する前記手段は、前記クエリ結果のそれぞれに関して、
前記クエリ及び前記個別のクエリ結果の両方において出現する共通テキスト・サブストリングの数を特定する手段と、
共通テキスト・サブストリングの前記数を使用して、前記個別のクエリ結果に関して前記検索結果の関連性を計算する手段と
を含み、
共通テキスト・サブストリングの前記数を使用して、前記個別のクエリ結果に関して前記検索結果の関連性を計算する前記手段は、
次式：
【数２】
0005497185.tif 000009
を使用して、前記結果の関連性を計算する手段
を含み、
式中、
ｍｎは、第ｎの一致内のワードの数であり、
Ｎは、前記クエリ内のワードの数であり、
ｎは、一致した部分列の数である、
前記装置。
【請求項９】
前記クエリを構築する前記手段は、
定義されている値を超えるプロパティ加重を有する前記プロパティのそれぞれを選択する手段と、
前記選択されたプロパティから前記クエリを構築する手段と、
を含む、請求項８に記載の装置。
【請求項１０】
前記検索エンジンのうちの少なくともいくつかを選択する前記手段は、
定義されている値を超える検索エンジン加重を有する前記検索エンジンのそれぞれを選択する手段
を含む、請求項８又は９に記載の装置。
【請求項１１】
前記クエリ及び前記個別のクエリ結果の両方において出現する共通テキスト・サブストリングの前記数を特定する前記手段は、
前記クエリ及び前記個別のクエリ結果の両方における最長共通サブストリングを特定する手段と、
変更されたクエリを得るために、前記最長共通サブストリングを前記クエリから削除する手段と、
前記変更されたクエリ及び前記クエリ結果の両方における最長共通サブストリングを特定する手段と
を含む、請求項８〜１０のいずれか一項に記載の装置。
【請求項１２】
前記クエリ及び前記個別のクエリ結果の両方において出現する共通テキスト・サブストリングの前記数を特定する前記手段は、
一組の前記共通テキスト・サブストリングを形成する手段と、
特定組のテキスト・サブストリングのうちのいずれかの出現それぞれを、前記一組から削除する手段であって、トリミングされた一組の共通サブストリングを形成する、前記削除する手段と
を含む、請求項８〜１１のいずれか一項に記載の装置。
【請求項１３】
前記プロパティ加重及び前記検索エンジン加重を調節する前記手段は、
総関連性スコアを得るために、前記クエリのそれぞれの前記検索結果の関連性を合計する手段
を含む、請求項８〜１２のいずれか一項に記載の装置。
【請求項１４】
前記プロパティ加重及び前記検索エンジン加重を調節する前記手段は、
前記クエリ結果のそれぞれに対する、前記選択されたプロパティのそれぞれの寄与を計算する手段
を含む、請求項８〜１３のいずれか一項に記載の装置。
【請求項１５】
インテリジェント・イベント・ベース・データ・マイニングのためのコンピュータ・プログラムであって、コンピュータ・システムに請求項１〜７のいずれか一項に記載の方法の各ステップを実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インテリジェント・イベント・ベース・データ・マイニング（ｉｎｔｅｌｌｉｇｅｎｔ  ｅｖｅｎｔ−ｂａｓｅｄ  ｄａｔａ  ｍｉｎｉｎｇ）に関し、特に、非構造化ソースから情報を収集して、迅速な問題判別及び解決においてユーザを支援する知識リポジトリを作成及び維持することに関する。
【背景技術】
【０００２】
問題判別は、環境内で生じるイベントの分析を使用して問題を診断し、ユーザに適切なソリューションを提供すること、又は自動ソリューションを提供することを含む。これらのタスク、すなわち、ソリューション又は自動回復の提供のいずれにも、システム及びその仕組みをよく理解することが必須要件である。これは一般に、問題の原因及びそのソリューションに関する症状データベース又はその他のストレージ・ソースを使用して行われ、問題が生じるたびにこのソースと対照して分析が実行されて、ソリューションが決定される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、実際のシナリオを考慮すると、実時間環境は、ともに稼働する多数の異なるベンダからの多数の異なるアプリケーションを含むと考えられる。例えば、顧客は、ＩＢＭ  Ｗｅｂｓｐｈｅｒｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｅｒ上にビジネス・パートナーのウェブ・アプリケーションを展開させると同時に、データベースとしてＯｒａｃｌｅ（Ｒ）を使用することもあるであろう（ＩＢＭ及びＷｅｂＳｐｈｅｒｅは、インターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である）。このシナリオは、異なる３つのベンダからの異なる３つのコンポーネント（アプリケーション）を有する：Ｗｅｂｓｐｈｅｒｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｅｒ（ＩＢＭ）、ウェブ・アプリケーション（ＩＢＭビジネス・パートナー）、及びデータベース（Ｏｒａｃｌｅ）。
【０００４】
このシナリオを考慮すると、そのようなシステムの完全な問題判別分析には、３つのコンポーネントすべての深い理解が必要であることが分かる。実際には、任意のベンダが、他のベンダ（例えばＯｒａｃｌｅ）のアプリケーションについてソリューション及びインテリジェンスを提供及び維持することは、当該アプリケーションがこのベンダの製品とともに使用されていても、不可能であろう。これは、環境内で実行される一部のアプリケーションについてサポート・エンジニアが十分な情報又は知識を有しない、情報の「ブラック・ボックス」につながる。
【０００５】
上記の例から、ビジネス・パートナーはそのアプリケーションの情報及び症状／ソリューションの詳細を提供するであろうことを考えると、ＩＢＭが、Ｏｒａｃｌｅデータベースに関連する問題のソリューションを提供したい場合に必要となる作業を想像することは容易であろう。これは、Ｏｒａｃｌｅ用にソリューション・データベースを作成及び維持するために、エキスパートのチームを持つことを必要とするであろう。これが行われなければ、この環境に関して実行される問題判別分析におけるブラック・ボックスにつながると考えられる。すなわち、システム内で生じる任意の問題は、それがデータベースに関係ないとき且つそのときに限り、診断可能であると考えられ、データベースに関係する任意の問題は、ＳＭＥの／専門のアドミニストレータの助けによって解決されなければならないことになる。
【課題を解決するための手段】
【０００６】
一実施形態では、本開示は、インテリジェント・イベント・ベース・データ・マイニングのための方法、システム、及びコンピュータ・プログラム・プロダクトを提供する。本方法は、一組のプロパティを有するイベントをアプリケーションから受け取るステップと、前記プロパティのそれぞれに、個別のプロパティ加重（ｐｒｏｐｅｒｔｙ  ｗｅｉｇｈｔ）を付与するステップと、プロパティ加重に基づき前記プロパティからクエリを構築するステップと、一組の検索エンジンのそれぞれに、個別の検索エンジン加重（ｓｅａｒｃｈ  ｅｎｇｉｎｅ  ｗｅｉｇｈｔ）を付与するステップとを含む。本方法は、検索エンジン加重に基づき検索エンジンのうちの少なくともいくつかを選択するステップと、選択された検索エンジンにクエリを送るステップと、選択された検索エンジンからクエリ結果を受け取るステップと、クエリ結果を知識リポジトリに記憶するステップと、クエリ結果に基づきプロパティ加重及び検索エンジン加重を調節するステップとをさらに含む。
【０００７】
本発明の実施形態は、問題判別分析における上述のブラック・ボックスをなくすために使用されるとよく、問題についての何らかの情報を用いて分析を提供し、問題判別に使用可能なソリューション情報データベースを管理する。これは、実行時にオンライン・ソースから任意の時点で最新且つ有効な情報である関連情報を収集する、低コスト・ソリューションである。
【０００８】
インターネットは、最も大きく最も包括的な情報ソースの１つである。本発明は、インターネット上で入手可能な情報を活用して、問題判別ソリューションをユーザに提供する。本発明は、ブログ、フォーラムなどの非構造化ソースから情報を収集することによって、迅速な問題判別及び解決においてユーザを支援する知識リポジトリを作成及び維持できる。
【０００９】
理想的な問題判別／解決シナリオでは、各サポート・エンジニアが、様々なアプリケーションの問題の解決法を、経験から知っている。しかし、ソリューションはすぐに利用可能でないことが非常に多い。エキスパートに相談すること、又は問題を上位レベルの処理事項とすること、又は問題追跡ウェブサイト若しくはフォーラムなどの既知の場所を手動で検索することも必要となることもある。
【００１０】
本発明で採用される戦略は、非構造化情報についての分析を実行し、ユーザからの介入をほとんど又は全く伴わずに、ソリューションを発見する。イベントの形式の問題が発生すると、イベントの様々なフィールド（メッセージｉｄ、メッセージ・テキスト、コンポーネント名など）を使用して検索が実行される。検索は、例えば一般的なインターネット検索、ブログ、ウィキページ、又はフォーラムなど、任意の情報ソースに対するものとすることができる。検索結果は、関連性に関して処理され、フォーマットされ、ユーザに対して表示される。システムは、関連性値及び使用されたクエリを使用して、どのクエリ及びどの検索ソースが、最善且つ最も関連性のある情報ソースを返すかを学習することができる。その後の実行では、システムには、どのプロパティ及び検索ソースが、種々の製品の最善の情報を提供するかが分かる。
【００１１】
上記で説明した問題に対処するもう１つの方法は、ベンダ・アプリケーションを扱うよう、対象のエキスパート又は専門アドミニストレータを採用することである。この手法に関連する問題の１つは、専門家の採用に伴うコストである。専門家であるという性質により、専門家は、環境内の特定のコンポーネントのサポートを提供できると考えられる（この例ではＯｒａｃｌｅデータベース）。その結果、専門家は、関連性のある問題が発生するまで、すなわち、その専門家が専門に扱う問題が発生したときしか、作業をしないということになる。この状況での重大問題は、専門家が組織を去るときに失われる知識である。専門家が、経験から有し、使用するソリューション及び知識は、すべて失われる。対照的に、本発明の自律ソリューション（ａｕｔｏｎｏｍｉｃ  ｓｏｌｕｔｉｏｎ）を使用すると、新たな問題のソリューションが発見されるたびに、ソリューションが知識リポジトリに記憶される。これは、知識が組織内に保持されることを意味し、新たなサポート・エンジニアが、ソリューションを提供できるようにし、専門家を採用する必要性をなくす可能性もある。これにより、サポート・エンジニアは、より広い範囲の問題を扱うことができるようになる。
【００１２】
本発明の好適な実施形態を詳細に記述して示す添付の図面を参照して以下の詳細な説明について考慮することで、本発明のさらなる利益及び利点が明らかになる。
【図面の簡単な説明】
【００１３】
【図１】本発明による、インテリジェント・イベント・ベース・データ・マイニング・システムのための例示のアーキテクチャを示す。
【図２】図１のシステムの全般的な動作を示す。
【図３】図１のシステムにおいて取得された検索結果をランク付けする例示の手順を示す。
【図４】データ・マイニング・システムの知識バンクを更新する例示の手順を示す。
【図５】図１のシステムにおいて使用されるプロパティ及び検索エンジン加重を更新する例示の手順を示す。
【図６】本発明を実践するために使用され得る例示のコンピューティング・システムを示す。
【発明を実施するための形態】
【００１４】
当業者であれば当然のことであるが、本発明は、システム、方法又はコンピュータ・プログラム製品として具現化され得る。したがって、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、又は本願明細書においてすべて概して「回路」、「モジュール」若しくは「システム」と呼ばれることもある、ソフトウェア及びハードウェアの側面を兼ね備えた実施形態の形態をとり得る。さらに、本発明は、任意の有形の表現媒体において具現化されたコンピュータ使用可能プログラム・コードを有する該媒体において具現化されたコンピュータ・プログラム製品の形態をとることもできる。
【００１５】
１つ以上のコンピュータ使用可能又はコンピュータ可読媒体（単数又は複数）の任意の組み合わせが利用され得る。コンピュータ使用可能又はコンピュータ可読媒体は、例えば、限定はされないが、電子、磁気、光学、電磁気、赤外線、又は半導体システム、装置、デバイス、又は伝播媒体とすることもできる。コンピュータ可読媒体のより具体的な例（包括的でないリスト）には、１つ以上のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）若しくはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、光学式記憶デバイス、インターネット若しくはイントラネットをサポートするものなどの伝送媒体、又は磁気記憶デバイスがあると考えられる。なお、プログラムは、例えば紙又は他の媒体の光学式走査により電子的に獲得され、続いて必要に応じコンパイル、解釈、又は適切な方法により別の形で処理され、続いてコンピュータ・メモリに記憶されることが可能なため、コンピュータ使用可能又はコンピュータ可読媒体は、プログラムが印刷される紙又は別の適切な媒体とすることさえもできる。この文書の文脈では、コンピュータ使用可能又はコンピュータ可読媒体は、命令実行システム、装置若しくはデバイスによって、又はそれに関連して使用されるプログラムを含むこと、記憶すること、伝達すること、伝播させること、又は搬送することができる任意の媒体であればよい。コンピュータ使用可能媒体は、ベースバンドにおいて、又は搬送波の一部として伝播データ信号を用いて具現化されたコンピュータ使用可能プログラム・コードを備える該伝播データ信号を含むこともできる。コンピュータ使用可能プログラム・コードは、次に限定はされないが、ワイヤレス、有線、光ファイバ・ケーブル、ＲＦなどを含め、任意の適切な媒体を使用して伝送されることもできる。
【００１６】
本発明の動作を実行するコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋又は同様のものなどのオブジェクト指向プログラミング言語、及び「Ｃ」プログラミング言語若しくは同様のプログラミング言語などの従来の手続きプログラミング言語を含む、１つ以上のプログラミング言語の任意の組み合わせで書かれていてよい。プログラム・コードは、スタンド・アロン・ソフトウェア・パッケージとして、完全にユーザのコンピュータ上で実行されること、部分的にユーザのコンピュータ上で実行されること、又は部分的にユーザのコンピュータ上で、且つ部分的にリモート・コンピュータ上で実行されること、又は完全にリモート・コンピュータ若しくはサーバ上で実行されることもできる。後者のシナリオでは、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）若しくは広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）を含む任意の種類のネットワークを介してリモート・コンピュータがユーザのコンピュータに接続されてもよく、又は、外部コンピュータに接続されてもよい（例えば、インターネット・サービス・プロバイダを使用しインターネットを介して）。
【００１７】
本発明は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図若しくはブロック図又はその両方を参照して、以下に記載される。当然のことながら、フローチャート図若しくはブロック図又はその両方の各ブロック、及びフローチャート図若しくはブロック図又はその両方の複数ブロックの組み合わせは、コンピュータ・プログラム命令により実装可能である。マシンを生じるよう、当該コンピュータ・プログラム命令が、汎用コンピュータ、専用コンピュータ、又はその他のプログラム可能データ処理装置のプロセッサに提供されて、この命令が、コンピュータ又はその他のプログラム可能データ処理装置のプロセッサにより実行されて、フローチャート若しくはブロック図又はその両方のブロック若しくは複数ブロックにおいて指定された機能／動作を実装する手段を作り出すようにすることもできる。さらに、特定の形で機能するようコンピュータ又はその他のプログラム可能データ処理装置に指示することができる当該コンピュータ・プログラム命令は、コンピュータ可読媒体に記憶されて、コンピュータ可読媒体に記憶されたこの命令が、フローチャート若しくはブロック図又はその両方のブロック若しくは複数ブロックにおいて指定された機能／動作を実装する命令手段を含む製品を生じるようにすることもできる。
【００１８】
さらに、コンピュータ・プログラム命令は、コンピュータ又はその他のプログラム可能データ処理装置にロードされて、コンピュータ又はその他のプログラム可能装置上で一連の動作ステップが実行されるようにしてコンピュータに実装されるプロセスを生じさせ、コンピュータ又はその他のプログラム可能装置上で実行される命令が、フローチャート若しくはブロック図又はその両方のブロック若しくは複数ブロックにおいて指定された機能／動作を実装するためのプロセスを提供するようにすることもできる。
【００１９】
図１及び２を参照する。ステップ２０２にて、検索マネージャ１０２がＣＢＥイベントをアプリケーションから受け取り、その処理を開始する。ＣＢＥの様々なプロパティを使用して、検索のためのクエリが構築される。これらのクエリは、特定の製品のプロパティに付与された重要性又は加重に従い構築される。例えば、ＤＢ２（ＩＢＭ社の登録商標）の問題に関しては、メッセージｉｄを用いた検索の方が、メッセージ・テキストを用いた検索よりも良い結果を生じさせることもあると考えられ、Ｏｒａｃｌｅに関しては逆が当てはまることもあると考えられる。このプロパティに配慮するために、加重が製品毎に記憶される必要がある。最初に、第１の実行より前に、デフォルトの加重がプロパティに付与される。問題判別におけるいくらかの経験、すなわち、重要なプロパティ（例えばメッセージｉｄ）には大きな加重を、重要でないプロパティ（例えば作成時間）には小さな加重又はゼロの加重を付与するのに十分な経験があるユーザ又はサポート・エンジニアが、こうした加重を付与する。
【００２０】
以下は、見本の製品−プロパティ加重である。
ＤＢ２＿ｍｅｓｓａｇｅＩｄ＝９０
ＤＢ２＿ｍｅｓｓａｇｅＴｅｘｔ＝５０
ＤＢ２＿ｓｅｖｅｒｉｔｙ＝１０
ＤＢ２＿ｃｒｅａｔｉｏｎＴｉｍｅ＝０
【００２１】
このような加重は、重要性のランキングを提供し、より大きな値を備えるプロパティが、それを用いて検索されるとより良い結果を返すことを意味する。この例では、メッセージＩｄを用いた検索が最善の結果を与え、（ＣＢＥイベントの）作成時間は、問題のソリューションを検索する間、決して使用されるべきではない。
【００２２】
まず、検索エンジンのクエリを構築するために使用されるプロパティを表す組Ｐが作成される。検索のクエリを作成する間、どのプロパティが考慮に入れられるかの選択は、加重に従ったランキング及びプロパティのパーセンタイルの計算によって行われる。特定のパーセンタイル（例えば第５０パーセンタイル）以上のプロパティが、ステップ２０２において、クエリで使用されるよう選ばれる。上記のＤＢ２の例では、第５０パーセンタイルの使用により、「メッセージＩｄ」及び「メッセージ・テキスト」プロパティが与えられる。このように、最も関連性のあるプロパティが選択され、クエリが構築される。各クエリは、プロパティ値及びコンポーネント名（例えば、ＤＢ２  Ｕｎｉｖｅｒｓａｌ  Ｄａｔａｂａｓｅ（ＩＢＭ社の商標）には「ＤＢ２  ＵＤＢ」）を含む。ステップ２０６にて、検索クエリは、同様の形で選択された検索エンジン１０４に送られる。
【００２３】
利用可能な検索エンジン１０４には、特定の製品についての情報を検索するときにどの検索エンジンが最善の結果を返すかを（順番に）効果的に示す製品毎のランキングが与えられる。最初は、すべての検索エンジンに、１００の「製品対検索エンジン」加重が付与され、その結果、すべての検索エンジンが検索の実行に使用される。この値は、後の実行にわたって、特定の製品についてその検索エンジンが関連性のある結果を返す見込みを反映するよう更新される。製品プロパティ加重と同じように、ステップ２０４にて、使用される一組の検索エンジンＳが、所与のパーセンタイル以上のものを選ぶことによって選択される。
【００２４】
以下は、見本の製品−検索エンジン加重である。
ＤＢ２＿ｉｂｍＤＢ２ＩｎｆｏｒｍａｔｉｏｎＣｅｎｔｅｒ＝９０
ＤＢ２＿ｇｏｏｇｌｅ＝５０
ＤＢ２＿ｙａｈｏｏ＝１０
ＤＢ２＿ａｓｋ．ｃｏｍ＝０
【００２５】
検索エンジン加重の上記の例に関して、パーセンタイル・カットオフが５であれば、クエリは、最初の３つの検索エンジン（ＩＢＭ  ＤＢ２情報センタ、Ｇｏｏｇｌｅ、及びＹａｈｏｏ）に送られる。クエリは、準備が整うと、製品−検索エンジン加重の大きい順に検索エンジンに送られることが可能である。検索は、例えば一般的なインターネット検索、ブログ、ウィキページ、又はフォーラムなど、１０６で表されている任意の情報ソースに対するものとすることができる。検索結果は、関連性エンジン１１２によって関連性に関して処理され、フォーマットされて、１１４で表されているようにユーザに表示される。さらに、各検索エンジンから受け取られた結果は、ステップ２１０にて、Ｐ内のイベントのプロパティとの関連性に従ってランク付けされ、スコアを付与される。
【００２６】
クエリに対する検索結果の関連性の計算
図３は、検索結果をランク付けする手順を示す。検索結果と、それを生成するために使用されたクエリとの関連性を計算するために、検索結果のテキスト・コンテンツが取得され、ステップ３１０において、それとクエリ・テキストとの間の最長共通サブストリング（ｌｏｎｇｅｓｔ  ｃｏｍｍｏｎ  ｓｕｂｓｔｒｉｎｇ）が発見される。このプロセスは繰り返し実行され、一致が発見されなくなるまで、クエリから一致したサブストリングが削除される。
【００２７】
例えば、検索結果のテキスト・コンテンツが、以下であるとする。
【００２８】
【数１】
0005497185.tif 000002
【００２９】
さらに、クエリ（メッセージ・テキスト・プロパティから作成された）は以下の通りである。
Ｅｘｃｅｐｔｉｏｎ  ｏｃｃｕｒｒｅｄ  ｉｎ  ｔｈｅ  ＪＮＤＩ  ＮａｍｉｎｇＭａｎａｇｅｒ  ｗｈｉｌｅ  ｐｒｏｃｅｓｓｉｎｇ  ａ  ｊａｖａｘ．ｎａｍｉｎｇ．Ｒｅｆｅｒｅｎｃｅ  ｏｂｊｅｃｔ
【００３０】
その結果、最長共通サブストリングを繰り返し実行することで、次が与えられるはずである。
ｐｒｏｃｅｓｓｉｎｇ  ａ  ｊａｖａｘ．ｎａｍｉｎｇ．Ｒｅｆｅｒｅｎｃｅ  ｏｂｊｅｃｔ
ｔｈｅ  ＪＮＤＩ  ＮａｍｉｎｇＭａｎａｇｅｒ
Ｅｘｃｅｐｔｉｏｎ  ｏｃｃｕｒｒｅｄ
ｗｈｉｌｅ
【００３１】
これらのサブストリングを使用して、ステップ３２０にて、プロパティに対する結果の関連性を計算可能である。まず、製品又は問題に関係のない一般的な英語のワードが、一致したストリング及びクエリから除去される。上記の例から、最後の一致（ｗｈｉｌｅ）は、現在の文脈において実際にはまったく無関係であるため削除されるべきである。このようなワード（例えばｔｈｅ、ａｔ、ｉｎ、ｉｓ、ｆｏｒ）は、すべての一致したストリング及びクエリから削除される。
【００３２】
例えば、クエリ及び一致したストリングからワード｛“ｉｎ”，“ｔｈｅ”，“ｗｈｉｌｅ”，“ａ”｝を削除すると、次が残る。
【００３３】
クエリ：
Ｅｘｃｅｐｔｉｏｎ  ｏｃｃｕｒｒｅｄ  ＪＮＤＩ  ＮａｍｉｎｇＭａｎａｇｅｒ  ｐｒｏｃｅｓｓｉｎｇ  ｊａｖａｘ．ｎａｍｉｎｇ．Ｒｅｆｅｒｅｎｃｅ  ｏｂｊｅｃｔ
【００３４】
一致したストリング：
ｐｒｏｃｅｓｓｉｎｇ  ｊａｖａｘ．ｎａｍｉｎｇ．Ｒｅｆｅｒｅｎｃｅ  ｏｂｊｅｃｔ
ＪＮＤＩ  ＮａｍｉｎｇＭａｎａｇｅｒ
Ｅｘｃｅｐｔｉｏｎ  ｏｃｃｕｒｒｅｄ
【００３５】
ここで、このトリミング（ｔｒｉｍ）されたクエリ及び一致したストリングを使用して、関連性が計算される。Ｍ＝｛“ｐｒｏｃｅｓｓｉｎｇ  ｊａｖａｘ．ｎａｍｉｎｇ．Ｒｅｆｅｒｅｎｃｅ  ｏｂｊｅｃｔ”，“Ｅｘｃｅｐｔｉｏｎ  ｏｃｃｕｒｒｅｄ”，“ＪＮＤＩ  ＮａｍｉｎｇＭａｎａｇｅｒ”｝を一組の一致するサブストリングとして取得し、次式を用いて結果の関連性が計算される。
【００３６】
【数２】
0005497185.tif 000003
【００３７】
式中、
ｍｎは、第ｎの一致内のワードの数である
Ｎは、クエリ内のワードの数である
ｎは、一致した部分列の数である
【００３８】
上記の例から、結果の関連性は５７．１４％である。
【００３９】
同様に、ステップ３２４及び３２８にて表されているように、各結果に関して、Ｐ内のすべてのプロパティに対する関連性が計算されて、受け取られたＣＢＥイベントに対する検索結果の全般的な関連性が得られる。
【００４０】
ステップ３３０にて、これらの関連性値に対応するプロパティの加重を乗じ、０〜１００００の値が与えられ、合計されて検索結果の総スコアＳが与えられる。（５０の加重を備えるメッセージ・テキストを使用する上記のクエリの例から、メッセージ・テキスト・プロパティは、Ｓに２８５７．１４［５７．１４＊５０］寄与する）。
【００４１】
ステップ３３２において、最大スコアＳｍが計算されるが、これは、プロパティそれぞれに関して１００％の関連性を想定することによるということを除いては、同じ方法による。（同じ例では、メッセージ・テキスト・プロパティは、Ｓｍに５０００［１００＊５０］寄与する）。
【００４２】
ステップ３３４において計算される、結果の総関連性は、結果をランク付けするために使用され、Ｓｍと比べたＳの割合である。
【００４３】
【数３】
0005497185.tif 000004
【００４４】
続いて検索結果は、図２のステップ２１２において、フォーマットされて、結果の総関連性値とともにユーザに提示される。
【００４５】
収集された情報及び関連性値を使用して、ステップ２１４及び２１６において知識バンク１１０及び加重が更新され、サイクルの検索部分からの学習が反映される。結果情報は、ローカルに記憶されるよう知識バンクに送られるため、将来の実行では、外部検索を行わずに結果を発見可能である。知識バンクは、将来のイベントを照合するためのルールを構築して、関連性値とともに結果を提供できる必要がある。
【００４６】
知識バンクを更新する手順は、図４に示されている。ステップ４０２、４０４、４０６、４１０、４１２、及び４１４によって表されているように、各検索結果に関して、結果ＵＲＬ、結果の関連性、各プロパティに関する一致したサブストリングの順序付けられた（出現によって）リストを伴う寄与しているプロパティのリストが知識バンクに送られる。この例では、メッセージ・テキスト・プロパティが、次のサブストリングのリストとともに送られる：｛“Ｅｘｃｅｐｔｉｏｎ  ｏｃｃｕｒｒｅｄ”，“ｗｈｉｌｅ”，“ｐｒｏｃｅｓｓｉｎｇ  ａ  ｊａｖａｘ．ｎａｍｉｎｇ．Ｒｅｆｅｒｅｎｃｅ  ｏｂｊｅｃｔ”，“ｔｈｅ  ＪＮＤＩ  ＮａｍｉｎｇＭａｎａｇｅｒ”｝。これらのサブストリングは、クエリにおいて発見されるとおりの完全なものであり、無関係なワードの削除後ではない。削除されると、知識バンクは、プロパティに関して似た値を備える将来のイベントを照合するためのルールを構築できない。
【００４７】
続いて知識バンクは、供給されたプロパティ及び値を使用してイベントを照合するためのルールを構築した後に、結果ＵＲＬ及び関連性を記憶できる。これは、この情報を知識バンクがどのように記憶するかに応じ、例えば、正規表現又はＸｐａｔｈなどのルール構文を使用して行われることが可能であろう。
【００４８】
図２のステップ２１６において、プロパティ及び検索エンジン加重が更新される。図５は、これを行う手順を示す。
【００４９】
製品プロパティ加重は、ステップ５０２、５０４、５１０、５１２、５１４、５１６、及び５１８において、製品毎に、どのプロパティが最善の結果を与えるかを示すよう調節される。加重を調節するために、まずステップ５１０において、結果の関連性に対するプロパティの寄与が計算される。
【００５０】
【数４】
0005497185.tif 000005
【００５１】
式中、
Ｒｐは、プロパティに対する結果の関連性である
Ｗｐは、プロパティの現在の加重である
Ｓは、検索結果の総スコアである
【００５２】
上記の式がステップ５１２において使用されて、プロパティの加重モディファイア（ｗｅｉｇｈｔ  ｍｏｄｉｆｉｅｒ）が計算される。
【００５３】
新たな加重が、下記の平均化式を使用して計算される。平均を計算するために実行のサイクルの数を維持するのではなく、「過去Ｎ回の平均」がステップ５１４にて得られる。
【００５４】
Ｎは、新たな加重が既存の関連性に有することになる影響を決定することになる自然数であり、１から任意の数の範囲とされ得る。これは、加重が、使用されるべき最新の情報ソース及び最も関連性の高いクエリに反応して、それを反映することを保証する。例えば、特定のプロパティが、特定の製品に関する検索の間に有用でなくなる場合、加重は、この変化に迅速に適応できるべきである。標準の平均法では、時間がたつにつれて、変化に対する加重の反応が徐々に弱まると考えられる。
【００５５】
【数５】
0005497185.tif 000006
【００５６】
式中、
Ｗ’ｐは、プロパティの新たな加重である
Ｗｐは、プロパティの現在の加重である
Ｗｍは、プロパティの加重モディファイアである
Ｎは、加重影響係数（ｗｅｉｇｈｔ  ｉｍｐａｃｔ  ｆａｃｔｏｒ）である
【００５７】
製品−検索エンジン加重が、ステップ５２２、５２４、及び５２６において、当該検索エンジンに関する最も関連性の高い結果の加重を、特定のエンジンから結果が返されない場合は０を含めて使用して、更新される。現在の加重に対する更新は、同じ「過去Ｎ回の平均」を使用して行われる。
【００５８】
【数６】
0005497185.tif 000007
【００５９】
式中、
Ｗ’ｓは、検索エンジンの新たな加重である
Ｗｓは、検索エンジンの現在の加重である
Ｗｍは、最も関連性の高い結果の関連性である
Ｎは、加重影響係数である
【００６０】
加重検索のこのプロセスによって、システムは、時間がたつにつれて、後のサイクルにわたり学習することができる。システムは、加重を自己更新することによって、どのプロパティ／検索エンジンが無視される必要があるかを学習し、総合的で関連性のある結果を一貫して出すプロパティ／検索エンジンの重要性を高める。検索は、時間がたつにつれて、次第に焦点が合うようになり正確になる。システムは、ユーザを、独立して自動的に効果的な問題ソリューションへ誘導することができ、したがって、手動プロセスが大幅に削減又は最小化される。
【００６１】
このシステムは、例えば、ＩＢＭのＷｅｂｓｐｈｅｒｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｅｒ、ＩＢＭビジネス・パートナーのウェブ・アプリケーション、及びＯｒａｃｌｅ（サード・パーティ・ベンダ）のＯｒａｃｌｅデータベースなどを有するソフトウェア・インフラストラクチャのシナリオに組み入れることができる。
【００６２】
最初に、サポート・エンジニアがＯｒａｃｌｅのようなサード・パーティ製品を扱うための経験を有しない「ブラック・ボックス」問題を、Ｏｒａｃｌｅデータベースがもたらす。サード・パーティ製品が環境に持ち込まれると、新たな製品を扱うよう本発明のシステムが設定される必要がある。製品−プロパティ／検索エンジン加重が、初期の推定値にセットされる必要がある。システムは、受け取ったイベントのソリューションの検索を開始し、後のサイクルにわたって成熟状態に達する。この成熟状態では、システムは、どのプロパティ及びどの検索エンジンが、Ｏｒａｃｌｅデータベースに関して最善の検索結果を提供するかを知っている。
【００６３】
非構造化データからマイニングされた情報を知識バンクに維持することによって、システムは、それ自体をユーザの経験から独立させる。これは、この知識が組織内に維持され、問題が効率的且つ費用効果の高い形で解決されることを保証する。
【００６４】
各図面のフローチャート及びブロック図は、本発明の様々な実施形態によるシステム、方法及びコンピュータ・プログラム製品の考えられる実装のアーキテクチャ、機能性及び動作を示す。この関連で、フローチャート又はブロック図内の各ブロックは、指定の論理機能（単数又は複数）を実装する１つ以上の実行可能命令を含むモジュール、セグメント、又はコードの一部を表すこともできる。なお、さらに、いくつかの代わりの実装では、ブロック内に示されている機能が、図面に示されているのとは異なる順序で生じてもよいであろう。例えば、関連する機能性次第で、連続して示されている２つのブロックが実際には事実上同時に実行されてもよく、又は、各ブロックが逆順で実行されることがあってもよい。なお、さらに、ブロック図若しくはフローチャート図又はその両方の各ブロック、及びブロック図若しくはフローチャート図又はその両方の複数ブロックの組み合わせは、指定の機能若しくは動作を実行する専用ハードウェア・ベース・システム、又は専用ハードウェア及びコンピュータ命令の組み合わせにより実装することができる。
【００６５】
本発明の方法の実施形態が実行され得るコンピュータ・ベースのシステム６００が、図６に示されている。コンピュータ・ベースのシステム６００は、処理ユニット６０２を含み、これは、プロセッサ、メモリ、及びその他、汎用処理システム、すなわちコンピュータ・プログラム製品を実行するとよいコンピュータを実装するシステム・コンポーネント（図面には明確に示されていない）を格納している。コンピュータ・プログラム製品は、例えばコンパクト・ディスクなどのコンパクト記憶媒体などの媒体を含んでもよく、これは、ディスク・ドライブ６０４を介して処理ユニット６０２によって、又は汎用処理システムによる実行のためにコンピュータ・プログラム製品を汎用処理システムに提供するための当業者に既知の任意の手段によって、読み取られるとよい。
【００６６】
コンピュータ・プログラム製品は、本願明細書に記載された本発明の方法の実装を可能にする個別の特徴すべてを含んでもよく、これは、コンピュータ・システムにロードされると本方法を実行できる。コンピュータ・プログラム、ソフトウェア・プログラム、プログラム、又はソフトウェアは、現在の文脈では、情報処理能力を有するシステムに、直接、又は（ａ）別の言語、コード若しくは表記法への変換、若しくは（ｂ）異なる有形形態での複製のうちのいずれか又は両方の後に、特定の機能を実行させることを目的とした、一組の命令の任意の言語、コード若しくは表記法での任意の表現を意味する。
【００６７】
言及したように、コンピュータ・プログラム製品は、処理ユニット６０２内のハード・ディスク・ドライブに記憶されてもよく、又はイーサネット（Ｒ）インターフェイスなどのネットワーク・インターフェイスを介して処理ユニット６０２に結合されたサーバ６１４などのリモート・システム上に位置してもよい。モニタ６０６、マウス６１４、及びキーボード６０８が、処理ユニット６０２に結合されて、ユーザ対話を提供する。スキャナ６２４及びプリンタ６２２が、文書の入出力のために提供される。プリンタ６２２は、ネットワーク接続を介して処理ユニット６０２に結合されるよう示されているが、処理ユニットに直接結合されてもよい。スキャナ６２４は、処理ユニット６０２に直接結合されるよう示されているが、当然のことながら、周辺機器は、本発明の方法を実行する処理ユニット６０２の能力に影響することなく、ネットワーク結合されることも、又は直接結合されることもあるであろう。
【００６８】
本願明細書に開示された本発明が、上記に記載した目的を実現するよう十分に計画されていることは明らかであるが、当然のことながら、当業者によって、多数の変更及び実施形態が考案され得、添付の特許請求の範囲は、本発明の範囲内に入るそのような変更及び実施形態すべてを対象とするものとする。
【図１】
0005497185.tif 000010
【図２】
0005497185.tif 000011
【図３】
0005497185.tif 000012
【図４】
0005497185.tif 000013
【図５】
0005497185.tif 000014
【図６】
0005497185.tif 000015