(57)【特許請求の範囲】
【請求項１】
データを含んだレコードより、レイアウトの候補を求める第１のレイアウト処理手段と、
データを含んだ複数個のレコードに基づいて、前記第１のレイアウト処理手段で求めた複数種類のレイアウト候補の検証処理を行うレイアウト検証手段と、
前記レイアウト検証手段の結果により、前記第１のレイアウト処理手段で求めたレイアウトの候補と一致しないレコードに対して、第１のレイアウト処理手段を行う第２のレイアウト処理手段と
を備えたことを特徴とするレイアウト分析装置。
【請求項２】
前記レイアウト検証手段は、第１のレイアウト処理手段で求めたレイアウトの候補毎に、該レイアウト候補と一致したレコードの数量または割合を記憶し、
前記第２のレイアウト処理手段は、第１のレイアウト処理手段で求めたレイアウト候補と一致しないレコードがなくなった場合に、複数のレイアウト候補と、各レイアウト候補が実際のレコードと一致した数量または割合を合わせて出力することを特徴とする請求項２記載のレイアウト分析装置。
【請求項３】
前記第１のレイアウト処理手段は、複数種類のレイアウト候補を算出するものであり、
前記第２のレイアウト処理手段は、複数種類のレイアウト候補毎の、前記レイアウト検証手段で一致したレコードの数量または割合を使用してレイアウト候補を出力することを特徴する請求項１記載のレイアウト分析装置。
【請求項４】
前記第２のレイアウト処理手段は、複数のレイアウト候補と実際のレコードとの一致した割合を合わせて出力することを特徴とする請求項４記載のレイアウト分析装置。
【請求項５】
前記第１のレイアウト処理手段は、複数バイトの規定の長さを有するデータタイプについて、各データタイプの開始位置に基づいて、レイアウト候補を算出することを特徴とする請求項１記載のレイアウト分析装置。
【請求項６】
データを含んだレコードよりレコードのレイアウトの候補を求めるためのプログラムを格納した記憶媒体であって、
コンピュータを、
データを含んだレコードより、レイアウトの候補を求めさせる第１のレイアウト処理手段、
データを含んだ複数個のレコードに基づいて、前記第１のレイアウト処理手段で求めた複数種類のレイアウト候補の検証処理を行うレイアウト検証手段、
前記レイアウト検証手段の結果により、前記第１のレイアウト処理手段で求めたレイアウトの候補と一致しないレコードに対して、第１のレイアウト処理手段を行う第２のレイアウト処理手段、
として機能させるためのプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
システムの保守には、プログラムの他、プログラムについて説明したドキュメントが必要である。しかし、古いシステムの場合、ドキュメントと実際のプログラム（実行システム）の同期がずれていることが多い。本発明は、ドキュメントが整備されていないシステムにおける、ファイルのレイアウトを求めるレイアウト分析装置に関する。
【０００２】
【従来の技術】
従来のファイルレイアウト特定方法は、該当データファイルをアクセスするプログラムの記述を解析し、ファイルレイアウトを求める装置、手法が中心である。
また、データファイルからレイアウトを求めるものとしては、次のようになものがある。例えば、１００個のレコード（データを含んでいる）を有するファイルのファイルレイアウトを求める場合について説明する。
【０００３】
まず、各レコードの一バイトづつその値を判定し、それが、日付項目か数字項目かバイナリーか等、データタイプを判定していき、１つのファイルレイアウト候補を作成する。１００個のレコードの場合には、１００個のファイルレイアト候補を作成することになる。
そして、作成された１００個のファイルレイアウトの候補から、各バイト位置で最も頻度の高いデータタイプを選択するようにしていた。この際に、データタイプ毎に重み付けを行うようにすることで、より正確にしようとするものがあった。
【０００４】
【発明が解決しようとする課題】
データファイルからレイアウトを生成する場合、従来は、データタイプ候補にそれぞれ人為的に重み付けとして重み値を設定し、その集計結果からファイルレイアウトを検出していたので、データタイプ毎の重み値の設定が必要であり、かつデータタイプの候補数が多い場合には、重み値の設定じたいが困難でもあった。また、重み値は人為的な値のため、それを元に検出されるファイルレイアウトの正確性の確保に問題があった。
【０００５】
また、従来の方法では、レイアウトの候補順位を検出できるのみで、マルチレイアウトなど複数のレイアウトパターンが存在する場合、複数レイアウトを判別することができないという問題も大きかった。
本発明は、実際のデータを含んだファイルより、そのファイルのレイアウトの分析の効率を上げ、複数パターンのレイアウトを有するファイルの分析を可能することを目的にする。
【０００６】
【課題を解決するための手段】
上記の課題は、データを含んだレコードより、レイアウトの候補を求める第１のレイアウト処理手段と、データを含んだ複数個のレコードに基づいて、前記第１のレイアウト算出手段で求めた複数種類のレイアウト候補の検証処理を行うレイアウト検証手段と、前記レイアウト検証手段の結果により、レコードのレイアウトの候補を求めるための処理を行う第２のレイアウト処理手段とを備えることで解決される。
【０００７】
【発明の実施の形態】
図１に本発明の論理構成を図示する。
図中、解析データファイル１には、ファイルレイアウトを分析する対象となるレコード群が格納され、データ入力装置２を通して処理される。
データタイプ判定手段３は、データタイプの属性情報を管理するデータタイプ判定情報ファイル４をもとに、各データのカラムに該当するデータタイプを特定する。前記のように判定された情報を入力として、判定集計手段５は実行され、データタイプ判定情報ファイル４のデータ項目の指定順序に従い、ファイルのレイアウトの候補であるレイアウト候補ファイル６が生成される。
【０００８】
次に、レイアウト候補ファイル６と解析データファイル１を入力として、レイアウト検証手段７が実行される。レイアウト候補ファイル６に蓄積されたファイルレイアウト候補毎に、解析データファイル１のレコードが、各データタイプのデータ範囲として設定した値に含まれるかどうかが検出される。
解析データファイル１のレコードの各カラムが、全てデータ範囲に含まれるレコードは、一致データとして、データ範囲に該当しないカラムが存在するレコードは、不一致データとして、レイアウト検証結果ファイル１０に集計される。
【０００９】
また、不一致データとなったレコードは、不一致データファイル８として格納され、新たな解析対象となる解析データファイルα９として位置づけられる。その後、解析データファイルα９を新たな入力として、一連の処理を不一致データファイル８に蓄積されるデータが０件になるまで、繰り返し行い、それに従い各ファイルの内容が更新されていく。
【００１０】
そして、不一致データが検出されなくなったら、レイアウト検証結果ファイル１０の値にもとづき、最終的なファイルレイアウトの候補として、レイアウト出力装置１１により、分析結果が出力される。
ここで、図１で実現される本発明、ファイルレイアウト分析装置の機能は、具体的にはプログラムで実現されるものであり、このプログラムは、媒体で提供され、前記ファイルレイアウト分析装置にインストールされてメモリ上で動作することで、本発明を実現することとなる。
【００１１】
このように、本発明では、解析データファイルからファイルレイアウトを分析し、自動生成することで、迅速に所望のファイルレイアウトを検出できるようになる。
以下、図２を解析対象データファイルとした実施の形態に従って、本発明を詳細に説明する。
【００１２】
まず、図３に示すように、解析すべきデータのファイルレイアウトに含まれるデータ項目を選定し、「データタイプ判定情報」を作成する。この「データタイプ判定情報」は、各データ項目の任意に設定した優先度を示す「指定順序」領域、各データのタイプを示した「データタイプ」領域、各データの長さを示した「タイプ長」領域、各データの識別子を示した「タイプ識別」領域、各データの範囲として想定される値を示した「値域情報」領域とからなる。
【００１３】
次に、図２に示すファイルレイアウト分析の対象となるファイルから、解析データをファイルが終了するまで、１件ずつ入力し、各データとデータタイプ判定情報を突き合わせ、タイプ長、値域領域から、入力したデータの各カラムがどのデータタイプに該当するか、あるいは、該当しないのかを判定する。そして、図４に示すように、その結果を各データタイプ毎に分け、何件の解析データがそのデータタイプに該当したかを集計し、データタイプの先頭カラムの位置に該当件数として示す。
【００１４】
続いて、データタイプの集計結果から、ファイルレイアウトとして、各カラムにどのデータタイプがあり得るのかを図３に示すデータタイプの指定順序の順番に従い分析し、レイアウトの候補を自動生成する。以下、図４に示す集計結果を例として、その手順を示す。
まず、任意に設定した指定順序が１番目であるデータタイプの「日付」の場合、１カラム目、３カラム目、１５カラム目に該当件数が発生しているので、１カラム目、３カラム目、１５カラム目から「日付」が始まることとなり、「日付」は、タイプ長が６カラムなので、１カラム目から６カラム目まで、３カラム目から８カラム目まで、１５カラム目から２０カラム目までのレイアウトの候補が、「日付」となる。
【００１５】
その際、３カラム目から６カラム目までのように、重複が発生する場合は、レイアウトの候補が重複分あり得るとして、複数指定される。この場合は、１カラム目から６カラム目までと１５カラム目から２０カラム目までのデータタイプが「日付」となるレイアウト１と３カラム目から８カラム目までと１５カラム目から２０カラム目までのデータタイプが「日付」となるレイアウト２が指定される。
【００１６】
次に、「日付」の指定がなかったカラムについて、指定順序が２番目の「数字」について同様に見ていくと、レイアウト１については、７カラム目から９カラム目まで、１２カラム目から１４カラム目まで、２１カラム目が、「数字」として指定される。レイアウト２については、１カラム目、２カラム目、９カラム目、１２カラム目から１４カラム目まで、２１カカラ目に、「数字」が指定される。
【００１７】
同じように、「英数字」、「日本語」の順で各カラムを見ていくと、レイアウト１、レイアウト２ともに、１０カラム目、１１カラム目、２２カラム目から３０カラム目までに「英数字」が指定され、３１カラム目から３４カラム目までに「日本語」が指定される。このようにして、図５に示すように、各カラムのレイアウトの候補が、レイアウト１、レイアウト２として自動生成される。
【００１８】
次に、もとの解析データである図２のデータを使って、生成されたレイアウトの検証を行う。
図２に示すファイルレイアウト分析の対象となるファイルから、解析データをファイルが終了するまで、１件ずつ入力し、図５の自動生成されたレイアウト候補と一致するかどうかを突き合わせる。この場合、入力データの各カラムの値が、図３に示す「値域情報」の範囲に含まれるかどうかを分析し、図６に示すように、全てのカラムが「値域情報」の範囲に含まれる場合は、データとレイアウト候補は一致しているとして判定し、「値域情報」の範囲に含まれないカラムが存在するデータは不一致であるとして集計する。そして、一致したレコード数をもとに、図７に示す「該当率」を算出する。
【００１９】
また、解析データとレイアウト候補を突き合わせて、不一致となったデータは、図８に示すように、不一致のレコード群として格納される。そして、新たな解析データとして位置づけられ、次の分析対象ファイルとなる。
不一致レコード群として上記ファイルが存在する場合には、上記ファイルを入力とした、レイアウト候補の生成、レイアウトの検証という一連の処理を繰り返し、レイアウトの検証結果が蓄積される。そして、不一致データが発生しなくなったら、図９に示すように、レイアウトと該当率を出力し、全体の処理が終了となる。このレイアウトと該当率のリストにより、分析者は複数種類のレイアウトの関連を把握することができる。
【００２０】
【発明の効果】
以上説明したように、本発明では、実ファイルデータからレイアウト情報が解析できるため、プログラムとファイルレイアウトの整合性の確認ができる。そして、分析時に、データタイプの人為的な重み付けの設定が不要となるため、分析結果に人為的要素が含まれないため、結果の正確性が向上し、複数種類のレイアウトの確実な抽出ができる。また、ファイルレイアウトの候補をファイルデータの実データで検証することで、その精度がさらに増す。従って、本発明により、大幅なシステム変更のための保守情報、例えば年号データの情報の獲得および、機種リプレース時にドキュメントの無い保存データの継続利用が可能となる。
【図面の簡単な説明】
【図１】    論理構成図
【図２】    解析データ
【図３】    データタイプ判定情報
【図４】    データタイプ別該当件数
【図５】    レイアウト候補
【図６】    検証集計
【図７】    検証結果
【図８】    不一致レコード
【図９】    レイアウト検証結果
【図１０】  処理フロー
【符号の説明】
１  解析データファイル
２  データ入力装置
３  データタイプ判定手段
４  データタイプ判定情報ファイル
５  判定情報集計手段
６  レイアウト候補ファイル
７  レイアウト検証手段
８  不一致データファイル
９  解析データファイルα
１０  レイアウト検証結果ファイル
１１  レイアウト出力装置
【図１】
0003692768.tif 000002
【図２】
0003692768.tif 000003
【図３】
0003692768.tif 000004
【図４】
0003692768.tif 000005
【図５】
0003692768.tif 000006
【図６】
0003692768.tif 000007
【図７】
0003692768.tif 000008
【図８】
0003692768.tif 000009
【図９】
0003692768.tif 000010
【図１０】
0003692768.tif 000011