(57)【要約】【課題】データ取込み時のエラー検出率を高め、エントリされたデータのエラーを自動修正する。【解決手段】このデータ入力システムは入力部１からアプリ２０が取込んだ取込みデータと取込みデータの構成情報を取得し、ＤＢ１０より構成が一致、類似する処理済みデータとこのデータの構成情報を取得するレイアウト取得エージェント３１と、処理済みデータの構成情報と取込みデータの構成情報を比較し互いのデータの整合性をチェックするエラー検出エージェント３２と、過去に修正でデータを修正した修正履歴が記憶された学習履歴テーブル１２ａ〜１２ｃと、エラーが検出された場合、そのエラー検出ヵ所の情報に基づいて学習履歴テーブル１２ａ〜１２ｃより修正方法の情報を読み出し、修正した修正案をアプリ２０に渡し、データ可否の指示の入力を促し、修正を許可する指示により一時保持していた修正案をＤＢ１０へ格納する自動修正エージェント３３とを備える。【選択図】図１
2006344012.tif 000002
【特許請求の範囲】
【請求項１】
入力部から取込んだ取込みデータに対してエラー訂正を行った後、データベースへ格納するアプリケーションソフトウェアを備えたデータ入力装置において、
前記入力部からアプリケーションソフトウェアが取込んだ取込みデータとこの取込みデータの構成情報を取得する取込みデータ取得手段と、
前記取込みデータ取得手段により取得された取込みデータの構成情報を用いて、前記データベースより構成が一致または類似する構成情報を持つ処理済みデータを取得する処理済みデータ取得手段と、
前記処理済みデータ取得手段により取得された処理済みデータと前記取込みデータ取得手段により取得された取込みデータとを比較して互いのデータの整合性をチェックしエラーを検出するエラー検出手段と、
過去に取込みデータに対してエラー訂正を行ったときの、エラー検出ヵ所のデータに対するエラー修正方法の情報が記憶された学習履歴記憶部と、
前記エラー検出手段によりエラーが検出された場合、そのエラー検出ヵ所の情報に基づいて、前記学習履歴記憶部を検索し、一致または類似するエラー修正方法の情報を読み出し、前記エラー修正方法により該当データを修正した修正案、エラーヵ所の情報、修正方法の情報を前記アプリケーションソフトウェアに渡し、前記修正案によるデータ修正可否の指示の入力を促すエラー修正手段と、
前記入力部より修正案を許可する指示が入力された場合、前記エラー修正手段により作成された修正案を処理済みデータとして前記データベースへ格納する手段と
具備したことを特徴とするデータ入力システム。
【請求項２】
請求項１記載のデータ入力システムにおいて、
前記エラー修正手段により前記学習履歴記憶部に記憶されたエラー修正方法の情報が利用される度に、当該エラー修正方法の情報に利用回数の情報を加算する手段を具備したことを特徴とするデータ入力システム。
【請求項３】
請求項２記載のデータ入力システムにおいて、
前記エラー修正手段は、前記学習履歴記憶部に記憶されたエラー修正方法の情報のうち、利用回数の情報に基づいてユーザが利用頻度の高い修正履歴情報を読み出する手段を具備したことを特徴とするデータ入力システム。
【請求項４】
請求項１記載のデータ入力システムにおいて、
前記学習履歴記憶部に記憶されるエラー修正方法の情報をキーワード毎またはユーザ毎にグループ分けして管理するための学習履歴管理テーブルを備え、前記エラー修正手段は、前記学習履歴管理テーブルを参照してエラー修正に適したエラー修正方法の情報を読み出すことを特徴とするデータ入力システム。
【請求項５】
請求項１記載のデータ入力システムにおいて、
ユーザによりキー入力操作で取込みデータに対するエラー修正が行われるたびに、ユーザ操作ログを記録し、取込みデータの保存操作により、新たなエラー修正方法の情報を生成し前記データベースに記憶する手段を具備したことを特徴とするデータ入力システム。
【請求項６】
請求項４、５いずれか記載のデータ入力システムにおいて、
新たなエラー修正方法の情報をユーザ操作ログから抽出し、キーワード毎またはユーザ毎にグループ分けして前記学習履歴管理テーブルに登録する手段を具備したことを特徴とするデータ入力システム。
【請求項７】
入力部から取込んだ取込みデータに対してエラー訂正を行った後、データベースへ格納するアプリケーションソフトウェアを備えたデータ入力装置に処理を実行させるデータ入力プログラムにおいて、
前記データ入力装置を、
前記入力部からアプリケーションソフトウェアが取込んだ取込みデータとこの取込みデータの構成情報を取得する取込みデータ取得手段と、
前記取込みデータ取得手段により取得された取込みデータの構成情報を用いて、前記データベースより構成が一致または類似する構成情報を持つ処理済みデータを取得する処理済みデータ取得手段と、
前記処理済みデータ取得手段により取得された処理済みデータと前記取込みデータ取得手段により取得された取込みデータとを比較して互いのデータの整合性をチェックしエラーを検出するエラー検出手段と、
過去に取込みデータに対してエラー訂正を行ったときの、エラー検出ヵ所のデータに対するエラー修正方法の情報が記憶された学習履歴記憶部と、
前記エラー検出手段によりエラーが検出された場合、そのエラー検出ヵ所の情報に基づいて、前記学習履歴記憶部を検索し、一致または類似するエラー修正方法の情報を読み出し、前記エラー修正方法により該当データを修正した修正案、エラーヵ所の情報、修正方法の情報を前記アプリケーションソフトウェアに渡し、前記修正案によるデータ修正可否の指示の入力を促すエラー修正手段と、
前記入力部より修正案を許可する指示が入力された場合、前記エラー修正手段により作成された修正案を処理済みデータとして前記データベースへ格納する手段
として機能させることを特徴とするデータ入力プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＣＳＶ形式やテキスト形式などのデータファイルを取込み、データベースへ格納するデータ入力システム、データ入力プログラムに関する。
【背景技術】
【０００２】
コンピュータで動作する、例えばデータベースソフトウェアなどのアプリケーションソフトウェア（以下「アプリケーション」と称す。）の画面で、ユーザが「インポート」などの操作を行い、処理対象のデータを外部から取込む場合、アプリケーション側で予め定められたレイアウト（情報の形式、並び方）に従ってＣＳＶやテキスト等といった形式のデータファイルを取込む。
【０００３】
この種のソフトウェア（装置）の公知技術としては、必要に応じてシステムにロ−ドされた構成情報を実際の構成に合った構成情報に自動的に修正することにより、修正にかかるオペレータの手間をなくし、かつシステム構成不一致によるトラブルを防止する「誤システム構成情報入力時における自動修正方式」等がある（例えば特許文献１参照）。
【０００４】
こうしたデータ取込みの仕組みにおいて取込み用データファイルは、レイアウトに従って作成されているだけでなく、取込むデータがデータベースの正しい格納場所に挿入できるように作成されていることが重要である。
【０００５】
また、アプリケーションの１つの機能として、データファイルのエラー検出機能を組み込むため、アプリケーション開発者（以下、「開発者」と称す。）は、ユーザがアプリケーションに取込んだデータファイルのエラーを高い検出率で検知し、エラーの内容および発生箇所をユーザに詳細に指摘するようなガイド機能を開発する必要がある。
【０００６】
しかしながら、従来の多くのアプリケーションは、データファイル取込み時の様々なエラーに対してユーザに内容および発生箇所を詳細に指摘できておらず、エラー検出率も決して高いとはいえない。
【０００７】
また、エラーの修正は、アプリケーションのエラーメッセージに従ってユーザ自身が一つ一つ手作業で行うため、エラーメッセージの内容が曖昧な場合やエラー数が多い場合はユーザの負担が大きい。
【０００８】
一方、開発者側では、低コスト短納期が要求される中でアプリケーション開発時に十分なエラー検出機能を開発することは作業負担が非常に大きい。
【特許文献１】特願平２−２１６２５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、各々のアプリケーションごとにデータファイル取込み時のエラー検出処理を開発するのではなく、多くのアプリケーションに組み込むことが可能な高い汎用性を持たせ、ユーザや開発者の負担を軽減することが必要になる。
【００１０】
本発明はこのような課題を解決するためになされたもので、データ取込み時のエラー検出率を高め、またエントリされたデータのエラーを自動修正することができる汎用性の高いデータ入力システム、データ入力プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１１】
上記した目的を達成するために、本発明のデータ入力システムは、入力部から取込んだ取込みデータに対してエラー訂正を行った後、データベースへ格納するアプリケーションソフトウェアを備えたデータ入力装置において、前記入力部からアプリケーションソフトウェアが取込んだ取込みデータとこの取込みデータの構成情報を取得する取込みデータ取得手段と、前記取込みデータ取得手段により取得された取込みデータの構成情報を用いて、前記データベースより構成が一致または類似する構成情報を持つ処理済みデータを取得する処理済みデータ取得手段と、前記処理済みデータ取得手段により取得された処理済みデータと前記取込みデータ取得手段により取得された取込みデータとを比較して互いのデータの整合性をチェックしエラーを検出するエラー検出手段と、過去に取込みデータに対してエラー訂正を行ったときの、エラー検出ヵ所のデータに対するエラー修正方法の情報が記憶された学習履歴記憶部と、前記エラー検出手段によりエラーが検出された場合、そのエラー検出ヵ所の情報に基づいて、前記学習履歴記憶部を検索し、一致または類似するエラー修正方法の情報を読み出し、前記エラー修正方法により該当データを修正した修正案、エラーヵ所の情報、修正方法の情報を前記アプリケーションソフトウェアに渡し、前記修正案によるデータ修正可否の指示の入力を促すエラー修正手段と、前記入力部より修正案を許可する指示が入力された場合、前記エラー修正手段により作成された修正案を処理済みデータとして前記データベースへ格納する手段と具備したことを特徴とする。
【００１２】
本発明のデータ入力プログラムは、入力部から取込んだ取込みデータに対してエラー訂正を行った後、データベースへ格納するアプリケーションソフトウェアを備えたデータ入力装置に処理を実行させるデータ入力プログラムにおいて、前記データ入力装置を、前記入力部からアプリケーションソフトウェアが取込んだ取込みデータとこの取込みデータの構成情報を取得する取込みデータ取得手段と、前記取込みデータ取得手段により取得された取込みデータの構成情報を用いて、前記データベースより構成が一致または類似する構成情報を持つ処理済みデータを取得する処理済みデータ取得手段と、前記処理済みデータ取得手段により取得された処理済みデータと前記取込みデータ取得手段により取得された取込みデータとを比較して互いのデータの整合性をチェックしエラーを検出するエラー検出手段と、過去に取込みデータに対してエラー訂正を行ったときの、エラー検出ヵ所のデータに対するエラー修正方法の情報が記憶された学習履歴記憶部と、前記エラー検出手段によりエラーが検出された場合、そのエラー検出ヵ所の情報に基づいて、前記学習履歴記憶部を検索し、一致または類似するエラー修正方法の情報を読み出し、前記エラー修正方法により該当データを修正した修正案、エラーヵ所の情報、修正方法の情報を前記アプリケーションソフトウェアに渡し、前記修正案によるデータ修正可否の指示の入力を促すエラー修正手段と、前記入力部より修正案を許可する指示が入力された場合、前記エラー修正手段により作成された修正案を処理済みデータとして前記データベースへ格納する手段として機能させることを特徴とする。
【００１３】
本発明では、入力部からアプリケーションソフトウェアが取込んだ取込みデータとこの取込みデータの構成情報を取得すると、取込みデータの構成情報を用いて、データベースより構成が一致または類似する構成情報を持つ処理済みデータを取得する。
そして、処理済みデータと取込みデータとを比較して互いのデータの整合性をチェックし、このチェックの結果、エラーが検出された場合、そのエラー検出ヵ所の情報に基づいて、学習履歴記憶部より一致または類似するエラー修正方法の情報を読み出し、このエラー修正方法により該当データを修正した修正案、エラーヵ所の情報、修正方法の情報をアプリケーションソフトウェアに渡し、修正案によるデータ修正可否の指示の入力を促す。入力部より修正案を許可する指示が入力された場合、作成した修正案を処理済みデータとしてデータベースへ格納する。
【発明の効果】
【００１４】
以上説明したように本発明によれば、データ取込み時のエラー検出率を高め、またエントリされたデータのエラーを自動修正することができる汎用性の高いデータ入力システム、データ入力プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を図面を参照して詳細に説明する。図１は本発明に係る一つの実施形態のデータ入力システムの構成を示す図である。
【００１６】
図１に示すように、このデータ入力システムは、データファイルを取込むための入力部１、ディスプレイなどの表示部２などを接続したＰＣ本体３とから構成されている。
入力部１は、キーボードやマウスなどのユーザが入力データの編集操作や、編集データの確定やキャンセルなどの指示操作を行うための入力装置（図示せず）、外部記憶装置や他のコンピュータを接続するＬＡＮインターフェースなどを含む。
【００１７】
ＰＣ本体３には、ＣＰＵ、メモリ、ハードディスク装置などのハードウェアと、ハードディスク装置にインストールされたオペレーティングシステム（以下、「ＯＳ」と称す。）などの基本ソフトウェアと、例えばデータベースソフトウェアなどのアプリケーションソフトウェア２０（以下、「アプリ２０」と称す。）と、エラー検出・修正部３０としてのエラー検出・修正ソフトウェアなどのソフトウェアと、アプリ２０により構築され、アクセスされるデータベース１０（以下、「ＤＢ１０」と称す。）とが備えられており、これらソフトウェアは、ＣＰＵによりメモリに読み込まれて協動し、本発明の機能を実現する。
アプリ２０には、複数の処理機能があり、その中の１つが人事管理機能であり、この実施形態は、アプリ２０の人事管理機能を動作させているときに、人事データファイルを取込むものとして説明する。エラー検出・修正部３０は、アプリ２０とは別に開発され、アプリ２０の付加機能（１つの機能モジュール）として組込まれて提供される。
【００１８】
ＤＢ１０は、メモリまたはハードディスク装置により実現される。ＤＢ１０には、アプリ２０により処理された既に修正済みのデータ（以下、「処理済みデータ１１ａ〜１１ｃ」と称す。）、学習履歴記憶部としての学習履歴テーブル１２ａ〜１２ｃ、これら学習履歴テーブル１２ａ〜１２ｃを管理するための学習履歴管理テーブル１３など登録されている。ＤＢ１０は、アプリ２０が処理した処理済みデータを格納および読み出すことが可能な格納手段（データ蓄積手段）である。
【００１９】
学習履歴テーブル１２ａ〜１２ｃには、過去に取込みデータに対してエラー訂正を行ったときの、エラー検出ヵ所のデータに対する修正方法の情報、この修正方法でデータを修正した修正履歴の情報が記憶されている。つまり学習履歴テーブル１２ａ〜１２ｃには、ユーザが取込みデータに対して行った修正操作の内容が履歴として記憶されている。
例えば学習履歴テーブル１２ａには、図２に示すように、アプリ２０の機能名として「人事管理」、修正方法として「会社名カラムと社員名カラムのデータを入替え」、このテーブルの利用回数として「５」などが記憶されている。
【００２０】
例えば学習履歴テーブル１２ｂには、図３に示すように、機能名として「人事管理」、修正方法として「年齢カラムのデータを漢字から英数字へ変換」、このテーブルの利用回数として「３」などが記憶されている。
例えば学習履歴テーブル１２ｃには、図４に示すように、機能名として「人事管理」、修正方法として「年齢カラムのデータを大文字から小文字へ変換」、このテーブルの利用回数として「２」などが記憶されているものとする。なお各テーブルの利用回数は、エラー検出・修正部３０の自動修正エージェント３３がテーブルを利用する度に加算される。
【００２１】
図５に示すように、学習履歴管理テーブル１３には、グループ名、キーワード、テーブル［優先度］などが管理されている。グループ名は、例えばＡＡＡやＢＢＢなどといったキーワードが一致または類似するテーブルのグループを特定する名称である。グループ名は、キーワードと一致させても良い。キーワードは、学習履歴テーブル１２ａ〜１２ｃの修正方法に含まれるキーワードであり、例えば「入替」、「変換」などといった用語である。
【００２２】
テーブル［優先度］は、学習履歴テーブル１２ａ〜１２ｃを特定する情報と、その時点での優先度を番号（順位）で示したものであり、優先度［１］が設定されているテーブルは最優先で参照される。
【００２３】
入力部１により取込まれるデータファイルとは、アプリ２０で処理されるデータである。アプリ２０が取込むデータを取込みデータ、アプリ２０において処理された後にＤＢ１０へ登録されたデータを処理済データとする。
データファイルの形式としては、例えば.CSVファイル(＊.csv)、テキストファイル(＊.txt)、表形式ファイル(＊.xls)などがある。これらデータファイルの利用元のアプリケーション毎にレイアウトが定められている。
【００２４】
レイアウトとしては、例えばデータのサイズ、データの型（VARCHAR型、NUMBER型など）、必須項目、NULL項目、入力形式（西暦、和暦）などが定められている。
具体的な取込みデータは、図６に示すように、例えば会社名、社員名称、年齢、役職などといった人事管理用の表形式のデータなどである。
【００２５】
この例では、一行目の年齢データが「二十四」となっており、このカラムに入るデータとしては、英数字が正しく、エラーとして検出すべきものである。また、二行目では、社員名称と会社名のデータが入れ違っており、これもエラーとして検出すべきものである。
図７はＤＢ１０の側に既に登録済みの処理済みデータ１１ａ〜１１ｃの中の１つ、例えば処理済みデータ１１ａを示すものであり、会社名、社員名称、年齢、役職などの各カラムに正しいデータが格納されている。
【００２６】
アプリ２０は、ＰＣ本体３上で下記の処理を実行するプログラムである。アプリ２０には、インポート機能が備えられている。インポート機能は、入力部１より入力されたデータ、例えばＣＳＶ形式などのデータファイルをＤＢ１０のデータとして一括登録するためのデータ形式の変換処理を行う機能である。
【００２７】
この他、アプリ２０は、入力されたデータを基に処理を行う機能、ＤＢ１０にアクセスし、データの保存・修正・削除等を行う機能、処理中のデータおよび処理したデータを出力、つまり表示部２へ表示する機能などを有している。
【００２８】
エラー検出・修正部３０は、レイアウト取得エージェント３１、エラー検出エージェント３２、自動修正エージェント３３、学習エージェント３４などを有している。エージェントは、与えられたルールを基にして自立的に自分自身の動作を決定できるようなソフトウェアである。
【００２９】
レイアウト取得エージェント３１は、アプリ２０を監視し、入力部１よりアプリ２０がデータファイルを取込むと、取込んだデータとこの取込みデータの構成情報（レイアウト、形式など）を取得する取込みデータ取得手段として機能する。
【００３０】
エラー検出エージェント３２は、レイアウト取得エージェント３１が取得した取込みデータの構成情報を基に、ＤＢ１０より該当処理済みデータ１１ａ〜１１ｃの中でレイアウト図一致または類似する構成情報を持つ処理済みデータを読出し、読出した処理済みデータと取込みデータとを比較して互いのデータの整合性をチェックしエラーを検出するエラー検出手段として機能する。
【００３１】
自動修正エージェント３３は、エラー検出エージェント３２によりエラーが検出された場合、そのエラー検出ヵ所の情報に基づいて、学習履歴管理テーブル１３から適切なエラー修正情報を持つ学習履歴テーブル１２ａ〜１２ｃのいずれかを検索し、一致または類似するエラー修正方法の情報を読み出し、エラー修正方法により該当データを修正した修正案を作成し、作成した修正案を取込みデータとは別のファイル名でメモリに一時保持すし、その修正案、エラーヵ所の情報、修正方法の情報をアプリ２０に渡し、修正案によるデータ修正可否の指示の入力を促すエラー修正手段として機能する。
自動修正エージェント３３は、入力部１より修正案を許可する指示が入力された場合、メモリに一時保持しておいた修正案を処理済みデータとしてＤＢ１０へ格納する手段として機能する。
自動修正エージェント３３は、エラー修正方法の情報である学習履歴テーブル１２ａ〜１２ｃのうち、利用回数の情報に基づいてユーザが利用頻度の高い修正履歴情報を読み出する手段として機能する。
自動修正エージェント３３は、学習履歴管理テーブル１３を参照してエラー修正に適したエラー修正方法の情報を持つ学習履歴テーブル１２ａ〜１２ｃを選定しエラー修正方法の情報を読み出す。学習履歴管理テーブル１３は、学習履歴テーブル１２ａ〜１２ｃに記憶されるエラー修正方法の情報をキーワード毎またはユーザ毎にグループ分けして管理するためのテーブルであり、ＤＢ１０に備えられている。
自動修正エージェント３３は、学習履歴テーブル１２ａ〜１２ｃに記憶されたエラー修正方法の情報を利用する度に、当該学習履歴テーブル（エラー修正方法の情報）に利用回数の情報を加算する手段として機能する。
【００３２】
学習エージェント３４は、ユーザによりキー入力操作で取込みデータに対するエラー修正が行われるたびに、ユーザ操作ログをメモリに記録し、取込みデータの保存操作により、新たな学習履歴テーブルを生成しＤＢ１０に記憶する。この際、学習エージェント３４は、新たな学習履歴テーブルの情報を、ユーザ操作ログからエラー修正方法の情報を抽出し、キーワード毎またはユーザ毎にグループ分けして学習履歴管理テーブル１３に登録する。
【００３３】
すなわち、このエラー検出・修正部３０は、アプリ２０がデータファイルを取込む際に、データファイルの形式・内容についてのエラーチェック、自動修正、ユーザによる修正結果の学習などを行い、ユーザにその結果を示すことで取込みデータファイルの作成を支援する機能である。
【００３４】
以下、図８〜図１３を参照してこのデータ入力システムの動作を説明する。まずアプリ２０とエラー検出・修正部３０との処理について説明する。
【００３５】
このデータ入力システムにおいて、ＰＣ本体３上でアプリ２０が起動し、アプリ２０のデータ編集画面が表示部２に表示されているものとする。
【００３６】
エラー検出・修正部３０は、アプリ２０の動作を監視しており（図８のステップＳ１０１）、ユーザによりデータ編集画面からのインポート操作で、入力部１よりデータファイルをアプリ２０が取り込むと（ステップＳ１０２）、エラー検出・修正部３０は、アプリ２０に対して取込みデータの情報を要求する（ステップＳ１０３）。
【００３７】
アプリ２０は、要求に応じてその取込みデータの情報（データ自体とレイアウト、形式など）をエラー検出・修正部３０へ渡す（ステップＳ１０４）。これにより、エラー検出・修正部３０は取込みデータの情報を取得し（ステップＳ１０５）、メモリなどの一時保持領域に記憶する。
【００３８】
取込みデータの情報を取得したエラー検出・修正部３０では、レイアウト取得エージェント３１が、ＤＢ１０より該当する処理済みデータの情報（処理済みデータ自体とレイアウト、形式など）を取得し（ステップＳ１０６）、メモリなどの一時保持領域に記憶する。
【００３９】
続いて、エラー検出エージェント３２は、メモリに記憶した処理済みデータと取込みデータのレイアウトを比較して、互いのデータの整合性（適合性）をチェックし、エラーの有無をチェックする（ステップＳ１０７）。
【００４０】
エラーの有無のチェックについて説明する。例えば処理済みデータに、例えば６桁の数値が格納されているカラムがあるとすると、このカラムに該当する取込みデータのカラムに、数値以外のデータや桁数の異なる数値、例えば１桁などの数値データが挿入されていた場合は、明らかな差異、つまり外れ値と判定してエラーありと判定する。
また、処理済みデータのカラムと取込みデータのカラムに桁数の同じ数値や同じ文字種（英数字どうし）のデータが挿入されていた場合はレイアウト、形式のエラーが無いものとする。
【００４１】
エラー検出エージェント３２は、エラーチェックの結果、処理済みデータと取込みデータとの整合が取れている場合、エラーなしと判定し（ステップＳ１０８のＮｏ）、チェック結果（エラーなしの旨の情報）をアプリ２０へ渡す（ステップＳ１０９）。
【００４２】
また、エラー検出エージェント３２は、エラーチェックの結果、処理済みデータに対して取込みデータが異なる場合、エラーありと判定する（ステップＳ１０８のＹｅｓ）。
すると、自動修正エージェント３３は、ＤＢ１０の学習履歴管理テーブル１３へアクセスし、既に登録されている学習履歴テーブル１２ａ〜１２ｃ…のうち、ユーザの利用頻度が高い修正方法の情報を持つ学習履歴テーブル、つまり修正履歴を選定する（ステップＳ１１０）。
【００４３】
そして、自動修正エージェント３３は、選定した学習履歴テーブルの修正方法の情報（修正情報）によって、メモリに記憶していた取込みデータを修正して修正案を作成し、取込みデータとは別ファイルにしてメモリに一時記憶し、作成した修正案やエラー検出エージェント３２により検出されたエラーヵ所をアプリ２０へ渡す（ステップＳ１１１）。
【００４４】
アプリ２０は、上記ステップＳ１０９の処理でエラーなしのチェック結果、またはステップＳ１１１の処理でのエラーヵ所、修正案などを受け取ると（ステップＳ１１２）、その内容がエラーありの場合（ステップＳ１１３のＹｅｓ）、エラーヵ所、修正案、この修正案でよいかどうかをユーザに選択させるボタン（「ＯＫ」と「キャンセル」のボタン）からなるホップアップ画面を表示部２に表示し、ユーザに指示を促す（ステップＳ１１４）。
【００４５】
表示部２の表示を見たユーザが「キャンセル」ボタンをクリック操作すると、アプリ２０は、手動修正のために、修正案ではなく、メモリに保持しておいた取込みデータ、つまりデータファイルを開き、表示部２に表示する。
【００４６】
アプリ２０により開かれたデータファイルには、エラーヵ所のカラムまたはセルが例えば赤色などで色を変えて表示されており、ユーザはその色の欄を修正すればよい。
【００４７】
ユーザがキーボードなどによるキー入力で、赤色の欄のエラーヵ所をすべて訂正し、「保存」ボタンをクリック操作すると、アプリ２０は、修正終了と判定し（ステップＳ１１５のＹｅｓ）、「名前を付けて保存」などといったダイアログボックスを表示部２に表示する。
なお、このステップＳ１１５の判定処理においてアプリ２０がエラーヵ所の修正を終了したと判定する条件は、「保存」ボタンのクリック操作、つまり修正終了のトリガだけでなく、赤色の欄のエラーヵ所すべてに対してキー入力によるデータの変更操作が行われたかどうかということが条件となる。
【００４８】
学習エージェント３４は、アプリ２０の動作を監視しつつユーザの訂正操作のログをとっており、アプリ２０が修正終了と判定すると、ユーザにより入力された修正内容のログをＤＢ１０に新たに学習履歴テーブルとして追加する（ステップＳ１１６）。
【００４９】
学習エージェント３４は、新たな学習履歴テーブルをＤＢ１０に追加すると、その学習履歴テーブルの修正方法の情報欄から、所定のルールに従ってキーワードを抽出し、学習履歴管理テーブル１３の該当グループに学習履歴テーブルを登録する。所定のルールとは修正方法の情報を構文解析や語彙解析などを行って単語に分割したときの品詞（主語、述語、動詞）のうち、例えば動詞などを抽出する、など行ったルールである。
【００５０】
ユーザは、表示部２に表示されたダイアログボックスのファイル名入力欄にファイル名を入力し、ＤＢ１０の所望保存場所を指定し「ＯＫ」ボタンをクリック操作すると、処理済みデータがＤＢ１０に格納される（ステップＳ１１７）。
【００５１】
また、ステップＳ１１４の処理において、表示部２の表示を見たユーザが「ＯＫ」ボタンをクリック操作すると、アプリ２０は、ユーザが修正案を了承したものと判定し、修正案をメモリより読み出して処理済みデータとして上記ダイアログボックスを開くので、上記同様の操作を行うことにより、処理済みデータをＤＢ１０へ格納できる。
【００５２】
アプリ２０は、処理済みデータをＤＢ１０へ格納すると、処理完了を表示し（ステップＳ１１８）、取込みデータの処理を終了する。
【００５３】
次に、エラー検出・修正部３０の各エージェントの詳細動作を説明する。
（1.エラー検出エージェント３２の動作）
エラー検出エージェント３２は、アプリ２０が入力部１からデータファイルを取込んだときに、取込みデータにエラーがあるかどうかをチェックし、エラーを検出する。
【００５４】
図９に示すように、エラー検出エージェント３２は、まず、取込みデータのレイアウト情報と処理済みデータのレイアウト情報との適合性をチェックする（ステップＳ２０１）。
エラー検出エージェント３２は、例えばＤＢ１０の処理済みデータの挿入先カラムの定義及びカラム内のデータを比較し、カラムの条件を満たし、かつカラム内のデータと明らかな差異がないにエラーなしと判定する。
【００５５】
このレイアウト情報の適合性のチェックにより得られるエラー情報は、エラー原因、エラー発生件数、エラー発生箇所などの具体的なエラー内容であり、ユーザに対してエラーの内容を詳細に示すものであり、これはエラー・異常などの個所へユーザをナビゲートするためである。
【００５６】
レイアウト情報の適合性をチェックした結果、互いの情報にエラー・異常がない場合（ステップＳ２０１のＮｏ）、エラー検出エージェント３２は、続いて取込みデータとＤＢ１０から読み出した処理済みデータとを比較して互いのデータ自体の整合性をチェックする（ステップＳ２０２）。
【００５７】
データ自体の整合性をチェックする場合、エラー検出エージェント３２は、取込みデータと処理済みデータとを比較し、それぞれのカラムの入力条件を満たさない場合、取込みデータが異常であるものと判定し、エラーの内容をアプリ２０へ渡し、ユーザへ警告するためのメッセージ表示を行う（ステップＳ２０３）。
【００５８】
具体的には、図６の取込みデータと、図７の処理済みデータとを比較したとき、エラー検出エージェント３２は、数値で入力しなければならない年齢の列に漢数字が含まれていることをエラーと判定する。
【００５９】
また、エラー検出エージェント３２は、会社名の列のデータに全て「株式会社」が含まれていることや、社員名称の列のデータに全て「スペース」が含まれていることを統計データとして保持しており、この統計データを基に取込みデータにエラーがあるかどうかを判定し、エラーが検出された場合、エラーの内容をアプリ２０へ渡し、ユーザへ警告する。
【００６０】
（２.自動修正エージェント３３の動作）
自動修正エージェント３３は、データ取込み時のエラーを、学習履歴テーブルを参照して自動的に修正を行う機能である。
【００６１】
図１０に示すように、自動修正エージェント３３は、メモリに設定されているエラー件数のカウンタを監視している。エラー検出エージェント３２により取込みデータのエラーが検出されて、エラー検出エージェント３２がエラー修正のためのエラー件数のカウンタの値を１つ加算すると、自動修正エージェント３３は、カウンタのエラー件数の値が０を越えたことを検知して（ステップＳ３０１）、ＤＢ１０の学習履歴管理テーブル１３を参照し、発生したエラー・異常に対して自動修正が可能かどうかを判定する（ステップＳ３０２）。
【００６２】
なお、自動修正が可能かどうかの判定は、発生したエラー・異常に対して、学習履歴管理テーブル１３に登録されているグループの中に、有効な修正情報を持つ学習履歴テーブル１２ａ〜１２ｃ…が存在するかどうかで判定される。「有効」とは、エラーヵ所に対して学習履歴テーブル内の修正情報のような修正が可能な場合に有効と判定する。
【００６３】
自動修正エージェント３３は、判定の結果、自動修正が可能な場合（ステップＳ３０２のＹｅｓ）、学習履歴管理テーブル１３から導き出した該当学習履歴テーブルより、エラー・異常に対して最適な修正方法の情報を読み出してエラー・異常を修正した修正案を作成してアプリ２０へ渡し、表示部２に、ダイアログボックスをポップアップ表示することで、ユーザに最適な修正方法を提示する（ステップＳ３０３）。
【００６４】
ダイアログボックスには、最適な修正方法の修正案とこれに同意するか否かの指示（「ＯＫ」ボタンかキャンセルボタンを押す）を促すメッセージが表示される。
表示部２に表示されたダイアログボックスにて最適な修正方法の修正案を確認したユーザが、「ＯＫ」ボタンをクリック操作し、ユーザの同意が得られた場合（ステップＳ３０４のＹｅｓ）、自動修正エージェント３３は、ユーザが同意した修正案をメモリから読み出してＤＢ１０に処理済みデータとして格納し（ステップＳ３０５）、メモリに保持していた元の取込みデータを削除する。
【００６５】
ＤＢ１０に処理済みデータを格納した後、自動修正エージェント３３は、最適な修正方法の修正案の作成元の該当学履履歴テーブルの回数をインクリメント（＋１）する（ステップＳ３０６）。
【００６６】
ここで、自動修正の具体列を説明する。ステップＳ３０２の判定処理において自動修正が可能な場合に、例えば図６の取込みデータを修正する場合、自動修正エージェント３３は、取込みデータに対して、エラー検出エージェント３２により取込みデータに検出されたエラーヵ所のうち、例えば年齢の欄の漢数字の「二十四」を英数字の「２４」に変換する。
また、自動修正エージェント３３は、会社名の列（カラム）の２行目の「山田  一郎」と社員名称の列（カラム）の「ABC株式会社」を入れ替える。このようにして取込みデータを自動修正した修正案を生成すると、取込みデータとは別ファイル（別名のファイル）としてメモリに一時記憶し、ユーザにより修正案が了承された場合にこのメモリの別ファイルを修正済みデータとしてＤＢ１０へ格納する。
【００６７】
一方、自動修正が不可能な場合（ステップＳ３０２のＮｏ）およびユーザの同意が得られなかった場合（ステップＳ３０４のＮｏ）、自動修正エージェント３３は、取込みデータについては手動修正するものと判定し、ＤＢ１０の学習履歴管理テーブル１３を参照して、発生したエラーヵ所に対して有効な修正情報を持つ学習履歴テーブルのグループを特定し、エラーの内容を修正するのに適当な修正方法の情報を個々の学習履歴テーブルより読み出してユーザの使用頻度が多い順にした修正方法のリストをアプリ２０へ渡し、表示部２に一覧表示する（ステップＳ３０７）。
【００６８】
「有効」とは、エラーヵ所に対して学習履歴テーブル内の修正情報のような修正が可能な場合に有効と判定する。
エラー検出の際にエラー検出エージェント３２は、例えばＤＢ１０の処理済みデータの挿入先カラムの定義及びカラム内のデータを比較し、カラムの条件を満たし、かつカラム内のデータと明らかな差異がないに、エラーなしと判定するので、これと類似する判定ルールを用いる。
【００６９】
表示部２に一覧表示（リスト表示）された中から、ユーザが所望のエラー修正方法を選択操作し、この方法でのエラー修正に同意する操作（「ＯＫ」ボタンをクリックするなど操作）を行うと（ステップＳ３０８のＹｅｓ）、自動修正エージェント３３は、ユーザが同意した修正方法でエラーヵ所のエラーを修正した後、ＤＢ１０に処理済みデータとして格納し（ステップＳ３０９）、メモリに保持していた元の取込みデータを削除する。
【００７０】
図１１に、図６の取込みデータを自動修正したデータを示す。
ＤＢ１０に処理済みデータを格納後、自動修正エージェント３３は、今回適用した修正方法の作成元の該当学習履歴テーブルの回数をインクリメント（＋１）する（ステップＳ３０６）。
【００７１】
また、表示部２に表示したリストの中からユーザが所望のエラー修正方法を選択操作せずに、これらの方法でのエラー修正には同意しない操作（「キャンセル」ボタンをクリックするなど操作）を行うと（ステップＳ３０８のＮｏ）、自動修正エージェント３３は、ユーザが自身のキー入力でエラーヵ所のエラーを修正するものと判定し、学習エージェント３４に通知して自動学習のモードにすると共に（ステップＳ３１０）、メモリの取込みデータを開くようアプリ２０に指示し、アプリ２０が該当データファイル（取込みデータ）を開く。この際、エラーヵ所には、正常なデータとは異なる例えば赤などの色変え表示が行われる。
【００７２】
ユーザは、アプリ２０により開かれた取込みデータの該当箇所をキー入力操作などで修正した後、保存ボタン押下して保存操作を行うことで、取込みデータを処理済みデータとしてＤＢ１０へ格納する。
【００７３】
（３.学習エージェント３４の動作）
学習エージェント３４は、データ取込み時に発生したエラーに対してユーザが行った修正方法の情報をログとして自動的に記録し学習履歴テーブルを作成しＤＢ１０へ記憶する。
【００７４】
上記ステップＳ３１０の学習モードにおいて、取込みデータをアプリ２０で開いてそのエラーヵ所をユーザ自身が修正する場合、図１２に示すように、学習エージェント３４は、アプリの動作を監視する。
【００７５】
そして、取込みデータに変更操作があった場合（ステップＳ４０１のＹｅｓ）、学習エージェント３４は、メモリ上において、ユーザ操作ログの記録を開始し、エラー・異常に対してユーザが行った操作ログ（以下、「ユーザ操作ログ」と称す。）を記録する（ステップＳ４０２）。
ユーザ操作ログの記録は、保存ボタン押下または再度データが取込まれるまで行われる。
【００７６】
保存ボタン押下または再度データ取込みが行われた場合（ステップＳ４０３のＹｅｓ）、学習エージェント３４は、メモリに記録したユーザ操作ログを保存するか否かを確認するための画面（ログ保存確認画面）を表示部２に表示し（ステップＳ４０４）、ユーザの指示操作を待つ。
【００７７】
ログ保存確認画面には、「ユーザ操作ログを保存しますか？保存する場合は、ＯＫボタンを押してください。」などのメッセージと、「ＯＫ」ボタン、「キャンセル」ボタンなどが表示される。
【００７８】
表示部２に表示されたログ保存確認画面において、「ＯＫ」ボタンが操作された場合、学習エージェント３４は、保存が指示されたものと判定し（ステップＳ４０５のＹｅｓ）、メモリよりユーザ操作ログを読み出して、読み出したユーザ操作ログの中から予め設定されたルールに従ってキーワードおよび修正方法の情報を抽出して新たな学習履歴テーブルに入力してＤＢ１０へ保存する（ステップＳ４０６）。予め設定されたルールとは、例えば「変換」、「入替」、「置換」などのキーワードの他、ログの内容を構文解析や語彙解析して得られる主語、目的語、動詞などを抽出する。
【００７９】
例えばユーザが図１１のような取込みデータの「社員名称」の列（カラム）のそれぞれの名前の苗字と名前の間の空欄（スペース）を削除した場合、学習エージェント３４は、「削除」というキーワードと「社員名称のカラムのスペースを削除」などといった修正方法の情報を記録する。図１３に、作成された修正済みデータを示す。
【００８０】
つまり、学習エージェント３４は、ユーザがデータの修正を行う際に逐一その操作ログを記録し、データの保存操作により、記録した修正方法の情報を保存するか否かの確認をユーザに行い、ユーザが同意操作を行った場合、新たな学習履歴テーブルをＤＢ１０に書き込む。
【００８１】
また、学習エージェント３４は、修正方法の情報を保存した学習履歴テーブルの情報を学習履歴管理テーブル１３へ登録し管理する。学習した修正方法は、次回同種のエラーが発生した場合に、自動修正エージェント３３が使用することになる。
【００８２】
このようにこの実施形態のデータ入力システムによれば、データファイル取込み時のエラー・異常を自動修正することで、ユーザの作業負担を軽減することができる。
また、データファイル取込み時のエラー検出件数を多くし、エラー検出率を高めることで、今まで検出ができなかったエラー・異常が検出できる。
さらに、汎用性を持ったアプリケーション組み込み型のエラーチェック機能を開発することで、開発者の作業負担を軽減することができる。
【００８３】
すなわち、アプリ２０が取込んだデータファイルに対して能動的にエラー検出・修正動作を行う各種エージェントを有するエラー検出・修正部３０を備えたことで、データ取込み時のエラー検出率を高め、またエントリされたデータのエラーを自動修正することができる。
【００８４】
また、エラー検出・修正部３０をアプリ２０から分離してアプリ２０を監視させて能動的に動作させることで、高い汎用性を持たせることができ、エラー検出・修正機能を多くのアプリケーションへ組み込むことが可能となり、ユーザと開発者の負担を軽減することができる。
【図面の簡単な説明】
【００８５】
【図１】本発明の一つの実施形態のデータ入力システムの構成を示す図。
【図２】図１のデータ入力システムのＤＢに記憶された学習履歴テーブルを示す図。
【図３】図１のデータ入力システムのＤＢに記憶された学習履歴テーブルを示す図。
【図４】図１のデータ入力システムのＤＢに記憶された学習履歴テーブルを示す図。
【図５】図１のデータ入力システムのＤＢに記憶された学習履歴管理テーブルを示す図。
【図６】取込みデータの一例を示す図。
【図７】修正済みデータを示す図。
【図８】このデータ入力システムの動作を示すフローチャート。
【図９】エラー検出エージェントの動作を示すフローチャート。
【図１０】自動修正エージェントの動作を示すフローチャート。
【図１１】自動修正済みのデータを示す図。
【図１２】学習エージェントの動作を示すフローチャート。
【図１３】修正後のデータを示す図。
【符号の説明】
【００８６】
１…入力部、２…表示部、３…ＰＣ本体、１０…データベース（ＤＢ）、１２ａ〜１２ｃ…学習履歴テーブル、１３…学習履歴管理テーブル、２０…アプリケーションソフトウェア（アプリ）、３０…エラー検出・修正部、３１…レイアウト取得エージェント、３２…エラー検出エージェント、３３…自動修正エージェント、３４…学習エージェント。
【図１】
2006344012.tif 000003
【図２】
2006344012.tif 000004
【図３】
2006344012.tif 000005
【図４】
2006344012.tif 000006
【図５】
2006344012.tif 000007
【図６】
2006344012.tif 000008
【図７】
2006344012.tif 000009
【図８】
2006344012.tif 000010
【図９】
2006344012.tif 000011
【図１０】
2006344012.tif 000012
【図１１】
2006344012.tif 000013
【図１２】
2006344012.tif 000014
【図１３】
2006344012.tif 000015