(57)【要約】  Ｋｓｔｏｒｅの更新方法であって、サブコンポーネントノードおよびルートノードを含むＫパスを含み、前記サブコンポーネントノードがルートノードを指し示すポインタを有し、ルートノードがサブコンポーネントノードを指し示すポインタを有し、決定されたＫパスを提供するために、変更されるシーケンスを代表するＫパスを決定するステップと、（ｉ）決定されたＫパスのサブコンポーネントノード、もしくは（ｉｉ）前記決定されたＫパスのサブコンポーネントノードを指し示すポインタを備えるルートノードのうち少なくとも一つを変更するステップとを含むことを特徴とする。変更するステップは、履歴のためのＫ構造を維持するステップ、またはＫパスの完全な削除をするステップを含むことがある。変更するステップは、決定されたＫパスのサブコンポーネントノードを変更するステップを含むことがある。ノードが完全に削除された場合、変更サブコンポーネントノードを保存するために割り当てられたメモリは、割当が解除されることがある。
2009512937.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのサブコンポーネントノードおよび少なくとも一つのルートノードを有する少なくとも一つのＫパスを含むＫＳｔｏｒｅの更新方法であって、前記少なくとも一つのサブコンポーネントノードおよび前記少なくとも一つのルートノードは双方向性のポインタを含み、前記方法は、
（ａ）決定されたＫパスを提供するために変更されるシーケンスを示すＫパスを決定するステップと、
（ｂ）前記決定されたＫパスを変更するステップとを含む、
ＫＳｔｏｒｅの更新方法。
【請求項２】
前記変更するステップは、前記決定されたＫパスのノードを変更するステップを含む、請求項１に記載のＫＳｔｏｒｅの更新方法。
【請求項３】
前記変更するステップは、前記決定されたＫパスのルートノードを変更するステップを含む、請求項２に記載のＫＳｔｏｒｅの更新方法。
【請求項４】
前記変更するステップは、前記決定されたＫパスのサブコンポーネントノードを変更するステップを含む、請求項２に記載のＫＳｔｏｒｅの更新方法。
【請求項５】
前記変更するステップは、削除するステップを含む、請求項１に記載のＫＳｔｏｒｅの更新方法。
【請求項６】
前記削除するステップは、変更ノードを提供するために前記決定されたＫパスのノードを変更するステップを含む、請求項５に記載のＫＳｔｏｒｅの更新方法。
【請求項７】
前記変更ノードが、前記変更ノードを保存するために割り当てられたメモリを備え、前記方法は、前記変更ノードを保存するために割り当てられた前記メモリの割当を解除するステップをさらに含む、請求項６に記載のＫＳｔｏｒｅの更新方法。
【請求項８】
前記変更ノードがノードカウントを備え、前記方法は、変更ノードカウントを提供するために前記ノードカウントを変更するステップをさらに含む、請求項７に記載のＫＳｔｏｒｅの更新方法。
【請求項９】
前記変更ノードは、前記変更ノードを保存するために割り当てられたメモリを備え、
前記変更ノードカウントと規定値とを比較することと、
前記変更ノードカウントの前記比較に従って、前記変更ノードの前記メモリの割当を解除するステップをさらに含む、請求項８に記載のＫＳｔｏｒｅの更新方法。
【請求項１０】
前記変更ノードは双方向性のリンクを備え、前記方法は、変更双方向性のリンクを提供するため前記双方向性のリンクを変更するステップをさらに含む、請求項２に記載のＫＳｔｏｒｅの更新方法。
【請求項１１】
前記変更サブコンポーネントノードは、双方向性のＲｅｓｕｌｔリンクを備え、前記方法は、変更双方向性のＲｅｓｕｌｔリンクを提供するため前記双方向性のＲｅｓｕｌｔリンクを変更するステップをさらに含む、請求項１０に記載のＫＳｔｏｒｅの更新方法。
【請求項１２】
前記変更双方向性のＲｅｓｕｌｔリンクが、前記変更サブコンポーネントノードを選択ルートノードに連結し、前記方法は、前記選択ルートノードのａｓＲｅｓｕｌｔポインタリストを変更するステップをさらに有する、請求項１１に記載のＫＳｔｏｒｅの更新方法
。
【請求項１３】
前記変更双方向性のＲｅｓｕｌｔリンク内にａｓＲｅｓｕｌｔポインタを維持するステップをさらに含み、前記維持されたａｓＲｅｓｕｌｔポインタが、維持されたａｓＲｅｓｕｌｔポインタを提供するために、前記変更サブコンポーネントノードを指し示すことを特徴とする、請求項１１に記載のＫＳｔｏｒｅの更新方法。
【請求項１４】
前記維持されたａｓＲｅｓｕｌｔポインタに従って、履歴を決定するステップをさらに含む、請求項１３に記載のＫＳｔｏｒｅの更新方法。
【請求項１５】
前記変更ノードはノードカウントを備え、前記方法は、変更ノードカウントを提供するため前記ノードカウントを変更するステップをさらに含む、請求項２に記載のＫＳｔｏｒｅの更新方法。
【請求項１６】
前記変更ノードカウントを提供するため、強度値に従って前記ノードカウントを変更するステップをさらに備える、請求項１５に記載のＫＳｔｏｒｅの更新方法。
【請求項１７】
前記変更ノードカウントに従って、履歴を決定するステップをさらに備える、請求項１６に記載のＫＳｔｏｒｅの更新方法。
【請求項１８】
変更ノードカウント判定を提供するため、前記変更ノードカウントが規定値を下回っているかどうかを決定するステップをさらに備える、請求項１６に記載のＫＳｔｏｒｅの更新方法。
【請求項１９】
前記変更ノードは、前記変更ノードを保存するために割り当てられたメモリを備え、前記方法は、前記変更ノードカウント判定に従って、前記メモリの割当を解除するステップをさらに含む、請求項１８に記載のＫＳｔｏｒｅの更新方法。
【請求項２０】
前記強度値に従って、前記ノードカウントがデクリメントするステップをさらに備える、請求項１６に記載のＫＳｔｏｒｅの更新方法。
【請求項２１】
前記強度値が値１をさらに備えることを特徴とする、請求項１６に記載のＫＳｔｏｒｅの更新方法。
【請求項２２】
（ａ）変更される前記シーケンスを取得するステップと、
（ｂ）分解されたシーケンスを提供するため、変更される前記シーケンスを分解するステップと、
（ｃ）Ｋロケーションを決定するステップとを
さらに備える、請求項１に記載のＫＳｔｏｒｅの更新方法。
【請求項２３】
前記Ｋロケーションに従って、前記Ｋパスを決定するステップをさらに備える、請求項２２に記載のＫＳｔｏｒｅの更新方法。
【請求項２４】
前記少なくとも一つのサブコンポーネントノードおよび前記少なくとも一つのルートノードのうちの一つに、少なくとも一つの双方向性のリンクが提供され、前記Ｋロケーションに従って、前記Ｋパスの決定が、前記少なくとも一つの双方向性のリンクに従って、前記ＫＳｔｏｒｅを全探索するステップをさらに備えることを特徴とする、請求項２３に記載のＫＳｔｏｒｅの更新方法。
【請求項２５】
前記双方向性のリンクが双方向性のＲｅｓｕｌｔリンクであり、前記方法は、前記双方
向性のＲｅｓｕｌｔリンクに従って、前記ＫＳｔｏｒｅを全探索するステップをさらに含む、請求項２４に記載のＫＳｔｏｒｅの更新方法。
【請求項２６】
前記双方向性のリンクが双方向性のＣａｓｅリンクであり、 前記方法は、前記双方向性のＣａｓｅリンクに従って、前記ＫＳｔｏｒｅを全探索するステップをさらに含む、 請求項２４に記載のＫＳｔｏｒｅの更新方法。
【請求項２７】
前記分解されたシーケンスがＫパスの一部を形成するシーケンスをさらに備えることを特徴とする、請求項２２に記載のＫＳｔｏｒｅの更新方法。
【請求項２８】
前記分解されたシーケンスが全Ｋパスをさらに決定するステップを特徴とする、請求項２２に記載のＫＳｔｏｒｅの更新方法。
【請求項２９】
前記全Ｋパスが完全思考をさらに備えることを特徴とする、請求項２８に記載のＫＳｔｏｒｅの更新方法。
【請求項３０】
前記ＫＳｔｏｒｅが、パス識別番号を有する前記複数パスの各パスである複数パスを代表し、前記方法は、選択パス識別番号に従って前記Ｋパスを決定するステップをさらに含む、請求項１に記載のＫＳｔｏｒｅの更新方法。
【請求項３１】
前記選択パス識別番号に従って変更するステップをさらに備える、請求項３０に記載のＫＳｔｏｒｅの更新方法。
【請求項３２】
（ａ）ルートノード検索値を取得するステップと、
（ｂ）前記検索値に従って、前記ルートノードを決定するステップとを
さらに備える、請求項１に記載のＫＳｔｏｒｅの更新方法。
【請求項３３】
前記Ｋが、少なくとも一つのルートノードをそれぞれ有する複数のパスを含むことを特徴とし、
（ａ）ルートノード特定検索判定を提供するため、特定ルートノード内に前記ルートノード検索値を決定するステップと、
（ｂ）前記ルートノード特定検索判定に従って、前記Ｋパスを決定するステップとをさらに備える、請求項３２に記載のＫＳｔｏｒｅの更新方法。
【請求項３４】
前記ルートノード特定検索判定に従って、前記ＫＳｔｏｒｅのノードを変更するステップをさらに備える、請求項３３に記載のＫＳｔｏｒｅの更新方法。
【請求項３５】
前記特定パスが、ルートノードに関連した少なくとも一つの有効値を含む特定パスの対応ルートノードに関連した値を有し、ルートノードおよび前記検索値に関連した少なくとも一つの無効値が前記特定パスの前記少なくとも一つの無効値をさらに含むことを特徴とする、請求項３３に記載のＫＳｔｏｒｅの更新方法。
【請求項３６】
前記無効ルートノード値が無効ルートノード値カウントを提供するために何度も決定されるステップをさらに備える、請求項３５に記載のＫＳｔｏｒｅの更新方法。
【請求項３７】
前記無効ルートノード値カウントに従って、前記決定されたＫパスを削除するステップをさらに備える、請求項３６に記載のＫＳｔｏｒｅの更新方法。
【請求項３８】
前記検索値に従って、前記Ｋパスが決定されるのを何度も数えるステップをさらに備える、請求項３２に記載のＫＳｔｏｒｅの更新方法。
【請求項３９】
前記検索値がパスの一部を形成するシーケンスをさらに備えることを特徴とする、請求項３２に記載のＫＳｔｏｒｅの更新方法。
【請求項４０】
ミススペル判定を提供するため、前記決定されたＫパスに従って、ミススペルを決定するステップをさらに備える、請求項１に記載のＫＳｔｏｒｅの更新方法。
【請求項４１】
前記ミススペルを修正するステップをさらに備える、請求項４０に記載のＫＳｔｏｒｅの更新方法。
【請求項４２】
ミススペルカウントを提供するため、ミススペルが何度発生したかを決定するステップをさらに備える、請求項４０に記載のＫＳｔｏｒｅの更新方法。
【請求項４３】
前記ミススペルカウントによって条件付きで決まる前記ミススペルを修正するステップをさらに備える、請求項４２に記載のＫＳｔｏｒｅの更新方法。
【請求項４４】
前記変更が更新されたシーケンスを学習するステップをさらに含むことを特徴とする、請求項５に記載のＫＳｔｏｒｅの更新方法。
【請求項４５】
前記更新されたシーケンスの学習に先立ち、前記削除をさらに備える、請求項４４に記載のＫＳｔｏｒｅの更新方法。
【請求項４６】
前記削除に先立ち更新されたシーケンスを学習するステップをさらに備える、請求項４４に記載のＫＳｔｏｒｅの更新方法。
【請求項４７】
シーケンスを更新することをさらに備え、前記変更が前記決定されたＫパスの一部を削除し、更新されたＫパスの一部を学習し前記決定されたＫパスのノードを変更するステップを含むことを特徴とする、請求項１に記載のＫＳｔｏｒｅの更新方法。
【請求項４８】
前記変更に従って、履歴を決定するステップをさらに備える、請求項１に記載のＫＳｔｏｒｅの更新方法。
【請求項４９】
ノードカウント値を使用した前記履歴を表示するステップをさらに備える、請求項４８に記載のＫＳｔｏｒｅの更新方法。
【請求項５０】
前記ＫＳｔｏｒｅ外部の前記履歴を保存するステップをさらに備える、請求項４８に記載のＫＳｔｏｒｅの更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の詳細な説明
１．   技術分野
本発明はデータ保存の分野に関し、さらに具体的には、インターロッキングツリーズデータストアの分野に関する。
【背景技術】
【０００２】
２．   背景技術
データベースのダーティーデータ（例：不正確なデータ、失効したデータ、冗長なデータ、不完全データ、または不正確にフォーマット化されたデータ）の検出および削除および／または訂正のプロセスは、「データ洗浄」として一般に知られており、またデータスクラビングとも称される。従来の関係データベース内のデータを洗浄するための方法は、当技術分野において非常に一般的である。例えば、「データベースコンテンツ管理におけるサポートの更新」と称される米国特許第６，５６４，２１５号は、データベース管理システム（ＤＢＭＳ）外部のデータ保存の中に保持されているデータオブジェクトを更新する方法を開示する。ＤＢＭＳは、通常、データが表の行と列がお互いに関連するように表として組織される環境を操作するコンピューターを提供する。「データ管理システム用のパラメトリックデータを更新する方法」と称される、米国特許第６，８４５，４３４号は、様々なパラメータを保存するための外部データ保存装置によって、同様の方法を提供する。要件もしくはパラメータが変わるとき、外部装置に保存されている対応パラメータは変更される可能性があり、その変更されたパラメータはトランザクションデータ保存装置に書き込まれる。
【０００３】
「継続的に動的データを更新するためのシステムおよび方法」と称された米国特許第６，８２３，３５９号は、既存方法または追加ソフトウェアによるリフレッシュを要求することなく、リアルタイムベースで更新されたウェブページ上の動的データに使用される同様の方法を開示する。
【０００４】
「ツリー構造データのためのクイック差別および更新」と称される米国特許第６，２６０，０４２号は、ツリー方式内に構造化されたデータの分化および更新に対する効率的なメカニズムを開示する。本発明は、ツリー構造化されたデータのバージョン管理に対する特別なアプリケーションを有するが、本発明におけるツリー分化プロセスは、それらが連続バージョンか否かに関わらず、任意の二つのツリーに分化することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
データ洗浄の上記方法にはいくつかの制限がある。次の実施例が多種のデータベース内の情報を更新および／または訂正するための方法を開示しているが、インターロッキングツリーズデータストアに見られる不正確または失効した情報の修正、更新および訂正のための方法は開示していない。
【０００６】
本発明で引用されるすべての参照は、それら全体で参照として組み込まれる。
【課題を解決するための手段】
【０００７】
発明の概要
ＫＳｔｏｒｅの更新方法は、少なくとも一つのサブコンポーネントノードおよび少なくとも一つのルートノードを有する少なくとも一つのＫパスを含み、ＫＳｔｏｒｅのルート
ノードを指し示すサブコンポーネントノードポインタを有する少なくとも一つのサブコンポーネントノードおよびＫＳｔｏｒｅのサブコンポーネントノードを指し示すルートノードポインタを有する少なくとも一つのルートノードは、決定されたＫパスを提供するために変更されたシーケンスを示すＫパスを決定するステップと決定されたＫパスのサブコンポーネントノードを指し示すルートノードポインタを有する、少なくとも一つの（ｉ）決定されたＫパスのサブコンポーネントノード、または（ｉｉ）ルートノードを変更するステップを含む。変更するステップは削除するステップを含んでいる可能性がある。削除するステップは 決定されたＫパスのサブコンポーネントノードを変更するステップを含み変更サブコンポーネントノードを提供する。メモリは変更ノード保存のために変更ノードに割り当てられ、 変更ノードを保存するために割り当てられたメモリは、割当が解除される可能性がある。変更ノードを指し示す選択ノードはノードカウントと共に提供され、ノードカウントは変更されて変更ノードカウントを提供する。選択ノードは選択ノードを保存するために割り当てられたメモリと共に提供され、変更ノードカウントは規定値と比較される。選択ノードのメモリは選択ノードカウントの比較に従って、割当が解除される。
【０００８】
変更サブコンポーネントノードが双方向性のＲｅｓｕｌｔリンクに提供され、双方向性のＲｅｓｕｌｔリンクが変更されて変更双方向性のＲｅｓｕｌｔリンクを提供する。変更双方向性のＲｅｓｕｌｔリンクは、変更サブコンポーネントノードをさらなる選択ノードと結び付け、選択ルートノードのａｓＲｅｓｕｌｔポインタが変更される。変更双方向性のＲｅｓｕｌｔリンク内の変更サブコンポーネントノードに対するポインタが 維持されａｓＲｅｓｕｌｔリストに維持変更サブコンポーネントノードポインタを提供する。維持Ｒｅｓｕｌｔポインタに従って履歴は決定される。
【０００９】
変更サブコンポーネントノードは、サブコンポーネントノードカウントに提供され、サブコンポーネントノードカウントは 変更され、変更サブコンポーネントノードカウントを提供する。サブコンポーネントノードカウントは 強度値に従って変更され、変更サブコンポーネントノードカウントを提供する。履歴は変更サブコンポーネントノードカウントに従って決定されてもよい。変更サブコンポーネントノードカウントが 規定値を下回っているかどうか判定がなされ、変更ノードカウント判定をくだす 。変更サブコンポーネントノードは、変更ノードカウント判定に従って割当が解除された変更サブコンポーネントノードを保存するために割り当てられたメモリと共に提供されてもよい。サブコンポーネントノードカウントは強度値に従って決定される。強度値は値１である可能性がある。
【００１０】
変更されるシーケンスが取得され、その変更されるシーケンスは分割され、分解されたシーケンスを提供し、分解されたシーケンスを使ってＫロケーションを決定する。分解されたシーケンスに従ってＫパスが決定される。ＫＳｔｏｒｅはそれぞれがパス識別番号を備える複数のパスを示すことができ、Ｋパスは選択パス識別番号に従って決定されてもよい。検索値が取得され、検索値に従ってＫパスが決定される。Ｋは、少なくとも一つのルートノードをそれぞれに備える複数のパスを示し、特定ルートノード範囲内の検索値が決定され、ルートノード特定検索判定を提供し、 Ｋパスがルートノード特定検索判定に従って決定される。特定ルートノードは少なくとも一つの有効関連値および少なくとも一つの無効関連値を備え、検索値はさらに特定ルートノードの少なくとも一つの無効関連値である可能性がある。少なくとも一つのノードは少なくとも一つの双方向性のリンクに提供され、Ｋロケーションに従ってＫパスを決定するステップは、少なくとも一つの双方向性のリンクに従ってＫＳｔｏｒｅを走査するステップを含む。双方向性のリンクは双方向性のＲｅｓｕｌｔリンクを含んでいてもよく、ＫＳｔｏｒｅの走査するステップは双方向性のＲｅｓｕｌｔリンクに従って実行される。双方向性のリンクは双方向性のＣａｓｅリンクであってもよく、双方向性のＣａｓｅリンクに従ってＫを走査するステップを含むこと
ができる。ＫＳｔｏｒｅはそれぞれがパス識別番号を備える複数のパスを示し、Ｋパスは選択パス番号に従って決定される。
【００１１】
本発明は、ＫＳｔｏｒｅインターロッキングツリーズデータストア内で更新されたデータを提供することによって、従来関連データベース内のデータ洗浄に関する従来技術に関連した生来の制限を克服する。本発明のシステムおよび方法は、インターロッキングツリーズデータストアおよび インターロッキングツリー型データストアの 多様な特徴を生み出し利用することができる。インターロッキングツリーズデータストアのインスタンス化は「ＫＳｔｏｒｅ」もしくは「Ｋ」といわれる。特に具体的には、これらの構造および方法は同時出願継続中の米国特許第１０／３８５，４２１号、（米国２００４０１８１５４７  Ａ１として出願）および第１０／６６６，３８２号で説明されており、両者ともＪａｎｅ  Ｍａｚｚａｇａｔｔｉ著のものである。
【００１２】
さらに、当該インターロッキングツリーズデータストアがさらに効率的に使用される可能性のあるシステムは、同じくＪａｎｅ  Ｍａｚｚａｇａｔｔｉ著の米国特許出願第１０／８７９，３２９号に記載される。本発明に記載されるシステおよび方法が、上記に参照された特許出願で記載されているインターロッキングツリーズデータストアのようなインターロッキングツリーズデータストアに特に関連すると同時に、本発明に記載されているシステムおよび方法もまたいずれのＫＳｔｏｒｅに適用されてもよいということが容易に理解できるものであるべきである。
【００１３】
これより以下に記載される本発明は、先行特許出願で記載される構造のインターロッキングツリーズデータストアに関連し、当該インターロッキングツリーズデータストアとの併用のための、「インターロッキングツリーズデータストアを保存および回復するステップ」と称される特許出願米国第１０／７５９，４６６号，（現在米国２００５０１６５７４９として出願）および「アプリケーションソフトウェアとの併用を可能にするためのインターロッキングツリーズデータストアへのアクセスおよび構築するための機能操作」と称される米国特許出願第１０／８７９，３２９号に記載される装置によって即座に使用され、適応させることができる。特に、本発明は操作方法、つまりは、インターロッキングツリーズデータストアにおいて以前は不可能であった方法での、データ変更方法を提供する。
【００１４】
一般に、ＫＳｔｏｒｅインターロッキングツリーズデータストアは、通常、分解されたデータをイベントとしてＫＳｔｏｒｅ内に記録するＫ  Ｅｎｇｉｎｅタスクをサポートするために分解されて送信されるデータに適用する小さな一連のルールを有する、ＫＳｔｏｒｅ  Ｅｎｇｉｎｅと呼ばれるリソースを使用してコンピューターシステムのメモリまたはコンピューターシステム内の構造に組み込まれている。ＫＳｔｏｒｅそのものは、好ましくはＡＰＩユーティリティと呼ばれるリソースを使用して、データに関するクエリーに答えるためにアクセス可能である。この詳細は上記に参照された特許文献に記載されている。
【００１５】
しかしながら、データに関するひとつの問題は、時には最終フォームで提出されず、また時には一部分を削除、変更もしくは訂正しなければならないことである。これを行う方法は多数存在する。例えば、データは新規データを追加イベントとして記録し、これらの新規イベントをある複雑な方法ですでに保存されているイベントに関連させることによって削除可能であり、そうすることで正確に構築されたクエリーは、この訂正データの含まれたＫＳｔｏｒｅを使用する際に、旧データおよび新規又は修復データを両方とも見ることができる。
【００１６】
しかしながら、当該スキームはコードの簡易性、使いやすさ、および多様な実社会の状
況での迅速な適応性といった面を満足させるものではない。 例えば、誤記録が前日のデータエントリでの誤植によるものであるといった金融取引ＫＳｔｏｒｅでの件が簡単な一例である。ユーザーは適切な権限が付与されていると思い、当該エラーをおそらく形跡を残すことなく訂正したいと思っているかもしれない。別の例は、単語がスペルミスのまま記録され、結果としてスペルの間違った単語を含む記録書類がＫＳｔｏｒｅの検索またはクエリーで発見されるはずであるにも関わらず、出現するが発見されていないという事実である。
【００１７】
また、 通常、現実とより良い関係にデータベースを保つために 抜け文字や入力エラー等が訂正されるという別の状況が発生する。本発明を使用するにあたって、ＫＳｔｏｒｅを変更または更新する目的は、以下に記載した本発明以前には不可能であった、現実とより良い関係にＫＳｔｏｒｅを保つことである。
【００１８】
データ変更操作が起動されうる方法は多様である。初期体験が記録された後にＫＳｔｏｒｅ構造を変更することで、特殊な問題が発生する。体験に関する知識を示すＫＳｔｏｒｅ構造内のノード間の複雑な関係連結により、この問題は解決が困難である。ＫＳｔｏｒｅ構造が変更された場合、この知識は危険に曝される。この場合、変化とは連結の破壊と回復はもとより、場合により、新規構造（例：ノード）の配置の解除および再配置を含むものである。
【００１９】
従って、ＫＳｔｏｒｅ構造の使用にあたり、原則的には構造には手をつけずにそのままの状態にしておく一方で、ＫＳｔｏｒｅ内の情報を安全に削除または訂正するための方法論を生み出すことが必要とされることは明白である。
【発明を実施するための最良の形態】
【００２０】
本発明を図示する目的で、本発明の典型的構成図を示す。しかしながら、本発明は開示された特定の方法および手段に限定されるものではない。本発明を以下の図面を参照に説明する。 図面中同様の参照数字が同様の要素を示し, 以下同様である。
【００２１】
発明の詳細な説明
プロセスおよびシステムは、インターロッキングツリーズデータストアに記録されているイベントを削除、訂正、修正もしくは置換するために考案された。どのデータ構造においても同様に、ＫＳｔｏｒｅに含まれている情報の削除、または何らかの方法での修正をする必要性がでてくるかもしれない。ある実施例において、削除またはその他の種類の修正の履歴は維持されうる 。他の実施例において、履歴は維持されない場合がある。変更が要求されるという判定は、当業者によって十分に知られたいずれかの試験技術を使って実行されてもよい。当該手順において、管理者、認定ユーザーもしくはある自動プロセスが、Ｋ構造に記録された情報は不正確である、失効している、またその他の理由で変更の必要があると判断することもある。
【００２２】
インターロッキングツリーズデータストアにおいて実行された当該いずれの操作も、広義にインターロッキングツリーズデータストアの変更と呼ばれる。インターロッキングツリーズデータストアの変更は、どのような方法であれ、Ｋパスを削除、追加、修復または修正するステップ、Ｋパスの一部を削除、追加、修復または修正するステップ、もしくはＫＳｔｏｒｅの一部を削除、追加、修復または修正するステップのような操作を含んでいてもよい。ＫＳｔｏｒｅ内でいずれの変更を実行する際、削除、追加、修復または修正されたパスもしくはそのパスの一部の、もしくはＫＳｔｏｒｅのその他の変更要素の履歴はすべて維持される。好ましい一実施例において、ＫＳｔｏｒｅの任意の変更履歴が提供される。履歴がまったく維持されていない変更は、完全な削除と呼ばれる。
【００２３】
前述のような変更を実行するため、変更されるシーケンスはＫをクエリーするために使用されてもよい。シーケンスは、どんな数のＫロケーションをも示すシーケンスであり、Ｋパスの一部または全Ｋパスを特定することができる。そのとき、変更が起こったＫパスに修復がなされる。シーケンス検索のために自動処理が使用されるにも関わらず、好適な実施例において、人によるデータのレビューは、構造内の情報が変更を必要としていることを決定するために使用される 。人によるインターベンションもしくはレビューは、トリガーの追加使用または試験に対する推定エラーもしくは通知をコンパイルできるＬｅａｒｎ  Ｅｎｇｉｎｅ内で場合により検索された他の方法によって促進されるかもしれない。プログラムのトリガーおよび関連するプロセスは、必要に応じて特定のエラータイプを自動的に訂正するために開発される。
【００２４】
ＫＳｔｏｒｅ構造を変更する必要性は、イベントもしくは入力におけるエラー訂正に対する／の中の実際の変更の結果であるかもしれない。ある場合において、修正は、完全なＫパスを形成するシーケンスを修正するように指示されている場合がある。シーケンスもしくはＫパスの部分的な訂正もまた可能であり、両者を実施する方法手順がここに記載されている。フィールド記録領域の範囲内において、シーケンスは、単語、熟語、カラム名もしくはフィールド値といったような記録もしくは関連する記録の一部を示していてもよい。典型的な目的のためにそのようなフィールド記録領域がここで参照されているが、組み込まれたアプリケーションにさらなる詳細が記載されているインターロッキングツリーズデータストアの中に保存されている可能性のあるいかなるタイプのデータにも本発明が適用されるということは理解される。例えば、イメージデータ領域においては、どのようにデータが組織されたかに従って、シーケンスは一連のピクセル、ピクセルのビデオ表示列、タイトル、もしくはその他変数となりうる。
【００２５】
情報を変更するには多数の方法がある。ひとつの方法は、既存シーケンスを削除することによるものであり、更新操作に対しては、新規シーケンスを学習することによるものである。もうひとつは、必要に応じて双方向性のノードポインタを変更することによって、既存ノードおよびモナドを変更するものである。双方向性のノードポインタは、双方向性のＲｅｓｕｌｔポインタおよび双方向性のＣａｓｅポインタを含むことができる。一般に、シーケンスの変更は：
●既存シーケンスの削除および更新されたシーケンスの学習
●ポインタの再配置
●上記の組み合わせ
によって実行される。
【００２６】
図１を参照すると、本発明のシステおよび方法の実行に適した好適な実施例ＫＳｔｏｒｅ環境１０が示されている。ＫＳｔｏｒｅ環境１０内にあるＫ  １４ａは、ＫＳｔｏｒｅ
Ｅｎｇｉｎｅ１１ａを介し、残りのＫＳｔｏｒｅ環境１０によってアクセスされる。特に、Ｋ  Ｅｎｇｉｎｅ  １１ａは、データソースアプリケーション８およびＡＰＩユーティリティ５を使用して、学習エンジン６と交信することができる。
【００２７】
この方法における好適な実施例は、Ｋ  １４ａのＫノード内にカウントフィールドを提供する。カウントフィールドが米国特許第１０／６６６，３８２号において検討されているが、ここでそれらを再検討することは有益であるかもしれない。他の特許に記載されてきているように、インターロッキングツリーズデータストアのＫノードはＫノードに関連した情報を示す追加フィールドを含んでいてもよい。しかしながら、いくつかの好適な実施例においては、データは要素ルートノードにのみ保存されているということを注目しなければならない。通常、追加フィールド（もしあれば）はカウントまたはおそらく必要に応じてノードタイプインジケータを保存するために使用される。
【００２８】
典型的なＫノード２０および２２が図２に示される。これらのＫノード２０および２２は、上記に記載の通り、カウントフィールド２１を含んでいてもよく、それは他の追加フィールドを備えて多くの用途を有していてもよく、Ｋノード２０および２２といったＫノードはひとつの追加フィールドに限定される必要がない。しかしながら、通常追加フィールドは文字列よりもカウントを含んでおり、二つ以上の追加フィールドがある可能性がある。追加フィールドの数および性質は、構築されたＫＳｔｏｒｅの性質によって様々である。
【００２９】
カウントフィールド２１は、システムの要件によって、いずれの値へも初期化される。好適な一実施例において、カウントは１に初期化され、強度変数を伴ってますますインクリメントされる。しかしながら、強度変数もしくは強度値は必ずしもひとつとは限らず、カウントフィールド２１が参照される際の条件や時間によって様々である。この時限を広範にすることによって、カウントフィールド２１によって投入された強度変数は、間違って記録されたデータを無視したり、どのエンティティが問い合わせをしているかを記録したり、現在使用されている問い合わせタイプを記録したり、データを使用する際に派生した他の興味あるプロセスを記録するステップを処理するプロセスに、Ｋ  １４ａの発明のインターロッキングツリー構造を適用するために使用される。
【００３０】
強度変数の単純例の形式は、ノードがアクセスしたり全探索してきた回数を記録するため、カウントフィールド２１を増加または減少させるのに使用される「１」のような単純序数フィールド値であるかもしれない。さらに、強度変数値は様々な度合と、様々な機能に応ずて方向を変化する。例えば、各クエリーがノードを全探索するたびに、強度は値＋１であり、特定ノード（もしくはノードの特定シーケンス）を含むＫＳｔｏｒｅパスが間違いと見なされた場合は、−１００の値となることがある。さらに、シーケンスは次のような場合に間違いがあったと見なされる。例えば、スペルミスのような間違いがあった場合、またはセンサーが危険な化学物質を含む区域を発見した場合、もしくは人間の子供のシミュレーターがシミュレーション内の加熱ストーブに「触れ」て「やけどした」場合等である。
【００３１】
このように、一実施例において、カウントフィールド２１は、新規データがインターロッキングツリーズデータストアに組み込まれる際に増加されるが、カウントフィールド２１を増加するステップは、インターロッキングツリーズデータストアが新規データに対するより大きな値を生み出しながらクエリーされ、クエリーに対する変更が一切ない時に、省略されてもよい。従って、この強度変数はＫＳｔｏｒｅ１４ａを使用して対応された問題への適切性に対して動的に選らばれる。
【００３２】
さらに、カウントフィールド２１がノード２０、２２に存在し、ノード２０、２２の頻度および強度に相当する場合、それらのノードのいずれもカウントフィールド２１にゼロ値を有する場合は削除される可能性があることを認識しておかなければならない。このヌル値ノードの削除もまた、適当なＫＳｔｏｒｅが置かれるところの使用に要素ルートノードが必要でないと決定された場合は、ゼロ値のカウントフィールド２１を伴った要素ルートノードに使用される場合がある。さらに、低値のカウントを備えたノードでさえも必要に応じて削除されることがある；それらはゼロ値と同等である必要はない。これは起こりえることであり、例えば、ＫＳｔｏｒｅ開発者が多数の粒子を保存してきたにも関わらず、さらなるデータが収集されると有用でないとこを発見した場合である。さらに、カウントフィールド２１の値から引かれるアプリケーションにおいて、エラーまたはスペルミスなどを示すため、当該Ｋノードもまた削除される場合がある。いくつかの状況において、いずれのＫノードの削除も許可されない場合がある。これらの状況下では、ＫＳｔｏｒｅ１４ａの履歴を維持するために、カウントフィールド２１内のヌル値を備えたＫノードでさえも保存される可能性がある。
【００３３】
このように、ＫＳｔｏｒｅに対する変更の履歴はＫＳｔｏｒｅに維持される。さらに、そのような履歴は、前記実施例において記載の通り、ＫＳｔｏｒｅのノード内に、またはＫＳｔｏｒｅそのものに保存される必要がないことが理解される。ＫＳｔｏｒｅ変更の履歴は、ログ、別のＫＳｔｏｒｅまたは当業者に周知のその他のデータ構造や保存装置に保存される。
【００３４】
図３に示されている５つの架空の記録の一式３０は、ＫＳｔｏｒｅ１４ａのようなＫＳｔｏｒｅ内の情報を更新するための方法に関するいくつかの好適な実施例を説明するために使用される。架空の記録３０は、Ｂｉｌｌという名前の家具屋の販売員に対する一定期間の販売を識別したものである。図４はＫＳｔｏｒｅノード図４０であり、ここで参照され組み込まれた先行する特許文献に記載されるように、図３の分解データを、１１ａに供給する通常の過程においてどのようにノードがＫＳｔｏｒｅ  １４ａの中に確立されるかを説明している。
【００３５】
既存シーケンスの除去および更新されたシーケンスの学習
既存シーケンスを削除し、不正確またはすでに必要とされないＫ  １４ａ内のシーケンスを変更するために使用される更新されたシーケンスを学習するための一方法は以下の通りである。この方法は、Ｋ  １４ａからの全シーケンスまたはパスを削除することによって実行される。新規シーケンスが学習されＫ  １４ａ内が置き換えられその位置が確保される 。そのような方法の好適な実施例は次の３つの一般的なステップから構成される：
●ＫＳｔｏｒｅパスもしくは変更されたパスの一部を検索する
●検索されたＫパスを削除する  
●更新されたデータを含む新規シーケンスを学習する。
【００３６】
変更または除去されるＫパスの決定
本発明の好適な一実施例において、変更されるＫＳｔｏｒｅ  １４ａ内にある粒子シーケンスは、変更されるシーケンスを分解し、Ｋ  Ｅｎｇｉｎｅ  １１ａを介してシーケンスを処理することによって特定されかつ検索され、その変更とは、更新、空のノードを残した削除、完全削除もしくはその他の変更のことである。このプロセスは、当業者によって知られる方法によってＫ  １４ａを全探索するステップを含む。Ｋ  Ｅｎｇｉｎｅ  １１ａから戻ったＫロケーションポインタは、決定されたＫパスを特定するために使われる。変更は、Ｋノードのポインタを変更するステップ、Ｋノードのカウントを変更するステップおよび／またはＫノードのポインタを変更するステップとＫノードのカウントを変更するステップの組み合わせを含むことができる。決定されたパスを変更するために、決定されたパスは、ＢＯＴノード、ＥＯＴノード、いずれのサブコンポーネントノード、もしくはその間にあるノードおよびいずれの要素ルートノードまたはルートノード（マルチレベルデータストアの様々なレベルに連結した任意のノードを含む）を含むことができる。
【００３７】
しかしながら、変更されるＫパスはＫＳｔｏｒｅ  １４ａ内のＫノードのシーケンスを検索するために有効な、当業者に周知のいずれの方法によっても検索されることに注目しなければならない。例えば、いくつかのアプリケーションにおいて、ＫＳｔｏｒｅ  １４ａを表示するために受け取った記録には記録識別番号が提供される。このように、その識別番号に従って、削除または変更される記録を検索することは可能である。さらに、以前に受信された識別番号を備えた記録が再び受信された場合、以前に受信された記録が、識別番号を使用して検索される可能性があるということが決定されるかもしれない。その以前に受信された記録は、アプリケーションに応じて、新規記録によって変更される可能性がある。
【００３８】
さらに、ひとつのフィールドの中で無効値が発見されたという判定に従って、記録は変
更のために検索される可能性がある。さらに別の本発明の典型的な実施例において、変更されるＫ  １４ａ内の記録は、その中に特定値を備える記録を検索することによって、検索される可能性がある。さらに、その中に特定変数を備えるすべての記録は検索される可能性がある。さらに、記録の特定フィールド内に特定値を備えるすべての記録は変更される場合がある。Ｋ  １４ａが例えば、画像データ、オーディオデータまたはアミノ酸データといったフィールド記録データ以外のデータを含むとき、 情報を変更するように当該データを検索するための適切な技術における当業者に周知のいずれの方法が使用される。
【００３９】
検索されたＫパスの削除
一旦シーケンスがいずれの適切な方法または基準によって特定されると、シーケンスは必要に応じてアプリケーションによって変更される。前項目が示すように、このタスクを果たすために採用される可能性のあるパスを検索するためには、多数の方法が挙げられる。当技術のうちのひとつがＫＳｔｏｒｅ  １４ａの特定要件に従って他の方法を決定するにも関わらず、これらの操作を実行するためのより一般的な方法のいくつかは、上記に参照された特許出願に記載されている。
【００４０】
図５Ａの実施例に示すように、特定シーケンスまたはＫパス５０のようなＫパスに沿ったＫノードは、ノードに関連したメモリの割当を解除することによって、完全に削除される可能性がある。さらに、Ｋパス５０内のいずれのノードのａｓＲｅｓｕｌｔリストおよびａｓＣａｓｅリストは変更される可能性がある。さらに、これらのノードが変更されるとａｓＲｅｓｕｌｔリストまたはａｓＣａｓｅリストがもはやＫパス５０から削除されたノードに対するポインタを含まないという事実が反映される。関連したＫノードがカウントを持つならば、そのカウントもまた変更される。
【００４１】
Ｋ内にパスの履歴がない場合があるため、Ｋパス内のそのようなノードの変更はＫからの物理的削除または完全削除と称される。しかしながら、パスの記録は依然として例えば、ログやＫ外部の他位置に存在している。そのような完全削除が実行されると、もう必要でないＫパス５０内にあるＫノードのポインタおよびカウントの保存のために割り当てられたメモリは解除できる。
【００４２】
図５Ｃは、図３に示され、Ｋパス５０として表示されたテーブルの最初の記録が変更されるＫＳｔｏｒｅノード図を示す。しかしながら、パス５０は図５Ａの実施例に示されるように、完全には削除されていない。本発明のこの実施例において、Ｋパス５０内にある各ノードのカウントフィールド２１はそれによって決定され、その記録が変更されたことを表示する。この場合、ひとつの記録のみがパス５０によって示されたため、いくつかのノードは０に減少する。
【００４３】
しかしながら、Ｋパス５０内にあるＫノードのカウントフィールド２１はゼロになっているにも関わらず、Ｋパス５０の構造は図５Ｃに維持される。Ｋパス構造を維持しながらこの種のノードの論理的削除によって、Ｋ  １４ａで発生する変更の履歴の維持が可能となる。
【００４４】
ノードがカウントフィールド２１を含む好適な実施例において、特定されたＫパスが全探索され、Ｋパス内の各ノードに対するカウントフィールド２１は好ましい強度に従って変更される。以前に説明したとおり、カウントフィールド２１がゼロ（もしくは低いカウント）に減少し、ノードが削除されたという表示がある場合、ノードおよび関連ポインタはデータストア構造から削除される。特殊な記録を備えたフィールド記録領域において、各レコードシーケンスに対するカウントは１であり、よってこの動作によって０まで減少される特定されたＫパスに沿ったノードが存在するようになる。
【００４５】
一旦ゼロ（または低い）カウントノードが発見されると、即座に削除される場合がある。一方、独立または別のメンテナンスアルゴリズムによって、場合によっては、例えば、タイムスタンプまたはその他時間を示す装置を参照することによってＫＳｔｏｒｅ構造から段階的に取り除かれる場合がある。もうひとつ別の実施例において、当該ノードはＫ  １４ａに示された構造の履歴を維持することを目的として維持される場合がある。完全に削除されておらず、ゼロカウントでデータストアに残っているにも関わらず、このように削除されたものとして扱われることがある。それらはまた定期的に徐々に取り除かれていく可能性がある。さらに、特定の条件、トリガー、ユーザー入力またはその他インジケータに応答して削除される可能性がある。必要であれば、これを促進するため、追加フィールドがＫ  １４ａのＫノードに追加される。
【００４６】
Ｋノードを完全に削除するステップの別の代替方法は、変更または削除されたという理由で構造内の削除されたノードを維持し、いくつかの手段でＫノードを特定することである。Ｋノードがカウントフィールド２１を含むＫ構造に関して、カウントフィールド２１はシーケンスが変更されたということを表示するために使用される場合がある。変化を表示するために定義された０（または低い）カウント値もしくは規定値を備えたノードは、ＫＳｔｏｒｅ構造内にそのノードによって示されたイベントが発生し、変更されたという事象の参照として残されている可能性がある。
【００４７】
低カウントを備えたノードを維持するための判定は、スイッチ、分離手順要求、もしくは 低カウントまたは規定値を持つノードが維持されるべきであることを表示するのに好ましいその他の方法を使って実現できる。例えば、「ＴＲＩＡＬ」という語がミススペルであるということを知るのは重要なことである。また、「ＴＲＩＡＬ」を何度誤って綴ったかを知ることも重要である。カウントフィールド２１が、例えばゼロに設定されたという判定がされた場合、誤ったスペルがあったこととそれが削除されたということは周知である。しかしながら、特定のミススペルが何度発生したかということは周知ではない。考えられる解決策は、ネガティブカウントを使って、誤った値が見られた回数を表示することである。例えば、スペルの間違った語「ＴＲＩＬ」に対するエンド生成ノード内の−５は、その語がこの手段において５回スペルが間違っていたということを示す。別の実施例において、削除の為にカウントをし続けるだけのために追加フィールドが各ノードに提供される。
【００４８】
カウントフィールド２１を備えた、または備えていないＫ構造に同等に適用する方法は、ノードをシーケンスに追加して、変更された、もしくは「削除された」ことを表示することである。この追加ノードはまた何回シーケンスが変更されたかを表示し、おそらく日付もしくはタイムスタンプといった変更に関する追加情報を持つものである。別の方法は、シーケンスを「エラー」もしくは「削除済」ＥＯＴノードに接続することである。
【００４９】
更新されたデータを含む新規シーケンスの学習
これが更新操作である場合、更新されたシーケンスはすべての利用可能な学習方法を利用して、Ｋに組み込まれる。更新操作に関して、新規シーケンスを学習するためのＬｅａｒｎ  Ｅｎｇｉｎｅを介した一般的に提供された方法を使用することで、更新されたシーケンスをＫに取り込むことができる。当該取り込みは、上記参照により引用され組み込まれた特許に記載の通りに行われる。このように、更新は、一般に、Ｋにおけるイベントのシーケンスとして記録されるために、入力を受信し、それを調整し、それを分解し、ＫＳｔｏｒｅ  Ｅｎｇｉｎｅに付与するステップと考えられる。上述の通り、シーケンスを変更するステップは、部分的シーケンスまたはＫＳｔｏｒｅパスのちょうど一つもしくはそれ以上のブランチを変更するために行われる。
【００５０】
状況によっては、既存シーケンスを削除する以前に変更シーケンスを学習することがよ
り効率的であるかもしれない。プロセスが低カウントを備えたノードの破壊に関わる場合にはこれが特によく当てはまる。既存シーケンスを削除する以前に新規シーケンスを処理することで、変更シーケンスによって再利用されるノードの破壊と作成を保存できる。
【００５１】
図５Ｂは、図３の最初の記録を示すための、Ｋ  １４ａ内の構造の「Ｂｉｌｌ  Ｔｕｅｓｄａｙ  ｓｏｌｄ  ＰＡ」パス５０から「Ｂｉｌｌ  Ｍｏｎｄａｙ  ｔｒｉａｌ  ＰＡ」５２への変更を示している。この実施例において、Ｋパス５０は図５Ａについて示されるように完全に削除される可能性があり、従って、パス５０の変更履歴は図５Ｂに示されるように維持されない。さらに、パス５２のノードのカウントは増加することができ、パス５２によって示される新規記録「Ｂｉｌｌ  Ｍｏｎｄａｙ  ｔｒｉａｌ  ＰＡ」を反映する。
【００５２】
従って、図５Ｂのノード図は、新規データまたは更新されたデータを盛り込むために図３の最初の記録が変更されたときに発生したごとく、データストア構造を示す。具体的には、週間フィールドの日は「ＴＵＥＳＤＡＹ」から「ＭＯＮＤＡＹ」へと変更され、トランザクションフィールドは「ＳＯＬＤ」から「ＴＲＩＡＬ」へと変更される。Ｋパス５２のカウントフィールド２１内の値は、図４が以下の通り図５Ｂと比較された時の変更を反映する。Ｋパス５２のエンドプロダクトノードのカウントフィールド２１は３から４に増加している。さらに、サブコンポーネントノードのカウントフィールド２１およびＫパス５２内の要素ルートノードもまた強度１まで増加する。
【００５３】
同様に、図５Ｄは図５Ｂに示された変更を示し、パス５０の構造および履歴は、更新された記録が学習されたときに維持されることを示す。
【００５４】
ポインタの再配置
別の実施例において、ポインタ値のみを変えることによって、変更の実現が可能となる場合がある。小さな区分またはただの単一サブコンポーネントノードまたはルートノードでさえ、変更を完了するために修正することができた。この場合、必須ノードはすでに存在し、 ＣａｓｅおよびＲｅｓｕｌｔ双方向性のリンクとカウントフィールド２１は、もし存在するならば，必要に応じて変更される。
【００５５】
例えば、図６Ａおよび６Ｂにおいて、Ｋ  １４ａ内で発生した「ＳＯＬＥ」のインスタンスがすべて「ＳＯＬＤ」に変更されたと仮定する。「ＳＯＬＥ」を削除し、その後「ＳＯＬＤ」を学習する代わりに、図６Ａの６０にあるノードＢＯＴ−Ｓ−Ｏ−Ｌ−ＥのＲｅｓｕｌｔリンクをＥ要素ルートノードを指し示すステップ６１から  Ｄ要素ルートノードを指し示すステップ６２へと変更することが可能である。ノード６０はそこでＥ要素ルートノード６１のａｓＲｅｓｕｌｔリストおよび１まで減少したノード６１のカウントフィールド２１から削除される。Ｄ要素ルートノード６２のａｓＲｅｓｕｌｔリストは、ノード６２の存在が１まで増加する可能性がある場合、そこで更新され、ノード６０およびカウントフィールド２１を盛り込む。変更の最終結果は図６Ｂに見られる。ノード６１、６２および６３にある情報のみが更新されたということに注目すること。前述の変更はいずれの順序でも実行可能であることもまた注目されなければいけない。
【００５６】
複合アプローチ
同様の問題一式を解決するために複合アプローチを使用する別の方法もまた記載される。この方法は、Ｋ  １４ａからのシーケンスもしくはシーケンスの一部を削除するステップ、および代替シーケンスを追加するステップ、さらに訂正されたシーケンスを変更されないＫパスの一部へと接続するためにノードポインタを再配置するステップを含む。別の代替実施例は、既存シーケンスから別の既存シーケンスにポインタを変更するステップと、その後必要に応じて新規構造を追加するステップとを含む。この変更はＫＳｔｏｒｅのい
ずれのレベルにおいても実行される。
【００５７】
ＫＳｔｏｒｅが配置されたフィールドにある無効または不正確な値を備えたフィールド変数を有し、その値がすべての同一フィールド変数に対して変更されなければならない場合、それを可能にするには有用であると考えられる。図７には、一つの変数名から別のものに切り替えるための別の方法が描かれている。ここで、本来、正確であっても不正確であっても「ＳＯＬＤ」を示す記録として受信されたにも関わらず、「ＳＯＬＤ」という単語は「ＢＯＵＧＨＴ」に変更されている。
【００５８】
図７は、前述の変更の後に記録がどのように見えるかということを示している。サブコンポーネントノード７５のポインタはルートノード「ＳＯＬＤ」７６からルートノード「ＢＯＵＧＨＴ」７８へと変更される。このように、図７の図面は、サブコンポーネントノード「ＢＯＵＧＨＴ」から、以前に指し示した空のルートノードＳＯＬＤ７６までを指している薄い点線７０を示している。濃い点線は、ルートノード「ＢＯＵＧＨＴ」７５およびルートノード「ＢＯＵＧＨＴ」７８間の双方向性のＲｅｓｕｌｔリンクを図示している。この手段において、「ＳＯＬＤ」の存在が「ＢＯＵＧＨＴ」へと変更することができる。一実施例において、「ＳＯＬＤ」を削除し、すでに存在している場合は、「ＢＯＵＧＨＴ」を学習することが可能である。この実施例において、ＳＯＬＤに対するフィードエンドプロダクトノードからの取り除かれるポインタは、ＢＯＵＧＨＴに導入されたばかりの新規のものに変更され、必要に応じてカウントフィールド２１を更新する。
【００５９】
別の場合において、構造内のすべてのインスタンスではなく、単一インスタンスに対してのみシーケンスの変更が必要な場合がある。例えば、記録が「ＰＡ」であるべきときに「ＮＪ」用に対して来てしまった場合、ひとつの誤った記録は「ＰＡ」に変更される。この場合、「ＮＪ」用に対するシーケンスは残されなければならず、そのカウントは変更された。シーケンス「ＰＡ」はその後もうひとつの出現に対して処理される。記録レベルでサブコンポーネントノードが１のカウントを含む場合、その記録は、ＰＡエンドプロダクトノード、ＮＪエンドプロダクトノードおよび記録サブコンポーネントノードに対する双方向性のポインタを更新することによって変更される可能性がある。カウントが１でない場合、新規構造はＮＪに対するサブコンポーネントノードより前のサブコンポーネントノードから作成されなければならない。
【００６０】
図８を参照する。「Ｂｉｌｌ  Ｍｏｎｄａｙ  ｔｒｉａｌ  ＰＡ」の一つの出現が「Ｂｉｌｌ  Ｍｏｎｄａｙ  ｔｒｉａｌ  ＮＪ」に変更されなければいけないと仮定する。「ＴＲＩＡＬ」を示すノード８０３である選択Ｋパス内の最後の適合ノードが検索される。エンドプロダクトノード８０５からのパスにある各サブコンポーネントノードのカウントは再び減少するが、ノード８０３は含まない。新規データストア構造ノードＮＪおよびエンドオフ思考ノード８０７はノード８０３の後から追加され、完全思考の終了を表示するものである。
【００６１】
先行出願米国特許第１０／８７９，３２９号に詳細に記載されているように、上記の方法はＫＳｔｏｒｅシステムの設備を使用することで成就する。先行の参照例で開示されるようにＫＥｎｇｉｎｅ、Ｕｔｉｌｉｔｉｅs またはＬｅａｍ  Ｅｎｇｉｎｅ内の様々な手順は、新規情報の保存、もしくは既存情報の更新のために提供される。さらに、米国特許第１０／６６６，３８２号（米国２００５００７６０１１として出願）に記載されるようなＫＳｔｏｒｅ手順は、必要に応じてカウントフィールド２１を増加および減少させる。具体的には、フィールド／記録領域実行に対するカウントから１を差し引く手順があるとよい。
【００６２】
一実施例において、カウントは「量」もしくは「強度」に対するパラメータによって変
更のために調節できる。強度のネガティブ値は、変更されているシーケンスに沿ったノード内のカウント値を減少するために発行される。追加コンポーネントもしくは既存コンポーネントの修正は、Ｋ  １４ａ内の以前のデータの履歴が維持されていない限り、カウントフィールド２１を含まないインスタンス内のノード、またはカウントフィールド２１がゼロまたはその他有効値未満のカウント値に対して存在する場合に対するノードを取り除くために遂行される。
【００６３】
従って、ＫＳｔｏｒｅを更新する方法は、少なくとも一つのサブコンポーネントノードおよび少なくとも一つのルートノードを有する少なくとも一つのＫパスを含み、双方向性のポインタを含む前記少なくとも一つのサブコンポーネントノードおよび前記少なくとも一つのルートノード。その方法は、決定されたＫパスを提供するために変更されるシーケンスを示すＫパスを決定するステップと、前記決定されたＫパスを変更するステップとを含む。変更するステップはルートノード、サブコンポーネントノードを含むいずれのタイプのノードであってもよい前記決定されたＫパスのノードを変更するステップを含む。変更するステップは、削除するステップを含み、ノードカウントは変更できる。
【図面の簡単な説明】
【００６４】
【図１】図１は、本発明のデータ修正システムが実現されうるＫＳｔｏｒｅ環境のブロック説明図である。
【図２】図２は、カウント領域を含むＫＳｔｏｒｅ内の典型的なノードである。
【図３】図３は、発見的目的に有用な架空組織からの販売活動に対する記録表である。
【図４】図４は、図３に示した販売記録に基づいた典型的なＫＳｔｏｒｅノード図である。
【図５Ａ】図５Ａは、シーケンスの変更を描いた典型的なＫＳｔｏｒｅノード図である。
【図５Ｂ】図５Ｂは、シーケンスの変更を描いた典型的なＫＳｔｏｒｅノード図である。
【図５Ｃ】図５Ｃは、シーケンスの変更を描いた典型的なＫＳｔｏｒｅノード図である。
【図５Ｄ】図５Ｄは、シーケンスの変更を描いた典型的なＫＳｔｏｒｅノード図である。
【図６Ａ】図６Ａは、「ＳＯＬＤ」を示すデータストア構造に変更された「ＳＯＬＥ」を示すデータストア構造を描いているノード図である。
【図６Ｂ】図６Ｂは、「ＳＯＬＤ」を示すデータストア構造に変更された「ＳＯＬＥ」を示すデータストア構造を描いているノード図である。
【図７】図７は、Ｋ内のすべての実例「ＳＯＬＤ」に対して、「ＳＯＬＤ」から「ＢＯＵＧＨＴ」を示す構造へと変化した構造を備えたデータストアを示している。
【図８】図８は、 更新されたイベントの追加、その後の 変数「ＰＡ」を示す構造から変数「ＮＪ」を示す構造への変化を描いている典型的なＫＳｔｏｒｅノード図である。
【図１】
2009512937.tif 000003
【図２】
2009512937.tif 000004
【図３】
2009512937.tif 000005
【図４】
2009512937.tif 000006
【図５Ａ】
2009512937.tif 000007
【図５Ｂ】
2009512937.tif 000008
【図５Ｃ】
2009512937.tif 000009
【図５Ｄ】
2009512937.tif 000010
【図６Ａ】
2009512937.tif 000011
【図６Ｂ】
2009512937.tif 000012
【図７】
2009512937.tif 000013
【図８】
2009512937.tif 000014
【国際調査報告】
2009512937.tif 000015