(57)【特許請求の範囲】
【請求項１】
コンピュータが、
条件を表す項目と前記条件を満たす場合のアクションを表す項目とを列とし、各項目の値の組合せを行とする表形式で記述された第１のルール表と第２のルール表とを取得し、
条件またはアクションのいずれを表す項目であるかを区別する項目種別が前記第１のルール表から選択した第１の列と同一であり、前記第１の列の値を全て含む第２の列が前記第２のルール表に存在するか否かを判定し、
前記第２の列が存在する場合に、前記第１の列と前記第２の列とを一致列として記録する、
処理を実行することを特徴とするルール表確認支援方法。
【請求項２】
前記コンピュータが、
前記第２の列が存在する場合に、前記第２の列の値の中に、前記第１の列のいずれの値とも一致しない値が存在するか否かを判定し、
一致しない値が存在する場合には、当該一致しない値を含む前記第２のルール表の行を不一致行として記録する、
処理を実行することを特徴とする請求項１に記載のルール表確認支援方法。
【請求項３】
前記コンピュータが、
前記第２の列が存在しない場合には、前記第１の列を不一致列として記録する、処理を実行することを特徴とする請求項１または２に記載のルール表確認支援方法。
【請求項４】
前記コンピュータが、
複数の一致列を記録した場合、前記第１のルール表のうちの一致列として記録した複数の列についての各行の値が、前記第２のルール表のうちの一致列として記録した複数の列についての少なくともいずれかの行の値と一致するか否かを判定し、
一致しないと判定した場合には、前記第１のルール表の一致列として記録した複数の列を不一致列として記録する、
処理を実行することを特徴とする請求項２または３に記載のルール表確認支援方法。
【請求項５】
前記コンピュータが、
前記第１のルール表のうちの一致列として記録した列を除く残余の列から、前記項目種別が同一の第１の列集合を抽出し、
前記第２のルール表のうちの一致列として記録した列を除く残余の列から、抽出した前記第１の列集合と前記項目種別が同一の第２の列集合を抽出し、
抽出した前記第２の列集合の不一致行として記録した行を除く残余の行の値に基づいて、前記第２の列集合の行の値として取り得る他のケースが存在するか否かを判定し、
前記他のケースが存在しない場合に、前記第１の列集合と前記第２の列集合とを一致候補列として記録する、
処理を実行することを特徴とする請求項４に記載のルール表確認支援方法。
【請求項６】
前記コンピュータが、
前記第１のルール表と前記第２のルール表との間で対応する項目間の対応関係を示す補助情報を取得し、
取得した前記補助情報を参照して、前記第１のルール表から選択した第１の列に対応する第２の列が前記第２のルール表に存在するか否かを判定する、
処理を実行することを特徴とする請求項１〜５のいずれか一つに記載のルール表確認支援方法。
【請求項７】
コンピュータに、
条件を表す項目と前記条件を満たす場合のアクションを表す項目とを列とし、各項目の値の組合せを行とする表形式で記述された第１のルール表と第２のルール表とを取得し、
条件またはアクションのいずれを表す項目であるかを区別する項目種別が前記第１のルール表から選択した第１の列と同一であり、前記第１の列の値を全て含む第２の列が前記第２のルール表に存在するか否かを判定し、
前記第２の列が存在する場合に、前記第１の列と前記第２の列とを一致列として記録する、
処理を実行させることを特徴とするルール表確認支援プログラム。
【請求項８】
条件を表す項目と前記条件を満たす場合のアクションを表す項目とを列とし、各項目の値の組合せを行とする表形式で記述された第１のルール表と第２のルール表とを取得し、
条件またはアクションのいずれを表す項目であるかを区別する項目種別が前記第１のルール表から選択した第１の列と同一であり、前記第１の列の値を全て含む第２の列が前記第２のルール表に存在するか否かを判定し、
前記第２の列が存在する場合に、前記第１の列と前記第２の列とを一致列として記録する、
制御部を有することを特徴とするルール表確認支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルール表確認支援方法、ルール表確認支援プログラム、およびルール表確認支援装置に関する。
【背景技術】
【０００２】
近年、コンピュータシステムの発達により、世の中の様々な場面でコンピュータシステムが活用されるようになっている。一度構築したコンピュータシステムでも歳月を経ることで、改良を行う必要性や、システム全体を見直す必要性が生じることがある。このとき、既に作成したソフトウェアの一部に修正を行う場合には、既存のシステムの仕様を理解する必要がある。
【０００３】
しかし、ソフトウェアは大規模になるとその仕様は複雑なものとなり、仕様の把握や変更は容易ではない。このため、ＢＲＭＳ（Ｂｕｓｉｎｅｓｓ  Ｒｕｌｅｓ  Ｍａｎａｇｅｍｅｎｔ  Ｓｙｓｔｅｍ）製品を業務システムに利用するケースが増えている。ＢＲＭＳ製品は、業務を進める際に守るべき規定や約束ごとを「もし…ならば〜せよ」という形で表したビジネスルールを実行する製品である。
【０００４】
ＢＲＭＳ製品では、アプリケーションがルールに基づいて処理を実行するため、ルールの変更によって、アプリケーションの処理を変更することが可能となり保守が容易である。しかし、ＢＲＭＳ製品を利用するには、製品が指定する形式に従って、必要なルールを記述することが前提である。例えば、「もし…ならば〜せよ」から、「…」の部分を「条件」、「〜」の部分を「アクション」として取り出し、一つのケースを行、そのケースに対応する条件やアクションを列とする表形式でルール表を記述する。
【０００５】
また、既存のアプリケーションに実装しているルールをＢＲＭＳ化する際には、既存のアプリケーションに実装しているルールを漏らしていないかを確認したい。そのため、人手により作成したＢＲＭＳのルール表と、既存のアプリケーションに実装しているルール（ソースの情報）とが一致するか確認することが求められる。
【０００６】
先行技術としては、例えば、情報処理システムの仕様設計書より、設計仕様の一貫性と整合性を検証するための技術がある。また、記憶部に記憶されたチェックルールに基づいて、ソースプログラムが、フレームワーク仕様に則って作成されているか否かをチェックするための技術がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−０７２９４４号公報
【特許文献２】特開２００９−０９９１１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来技術では、人手により作成したルール表が、既存のアプリケーションに実装しているルールを漏らしていないかを確認することが困難な場合がある。
【０００９】
一つの側面では、本発明は、ルール表の確認作業を支援するルール表確認支援方法、ルール表確認支援プログラム、およびルール表確認支援装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一側面によれば、条件を表す項目と前記条件を満たす場合のアクションを表す項目とを列とし、各項目の値の組合せを行とする表形式で記述された第１のルール表と第２のルール表とを取得し、前記第１のルール表から選択した第１の列と項目種別が同一であり、前記第１の列の値を全て含む第２の列が前記第２のルール表に存在するか否かを判定し、前記第２の列が存在する場合に、前記第１の列と前記第２の列とを一致列として記録するルール表確認支援方法、ルール表確認支援プログラム、およびルール表確認支援装置が提案される。
【発明の効果】
【００１１】
本発明の一態様によれば、ルール表の確認作業を支援することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１にかかるルール表確認支援方法の一実施例を示す説明図である。
【図２】図２は、ルール表確認支援装置１０１のハードウェア構成例を示すブロック図である。
【図３】図３は、人手作成表Ｔ１の具体例を示す説明図である。
【図４】図４は、ソース生成表Ｔ２の具体例を示す説明図である。
【図５】図５は、一対一記述一致列テーブル５００の記憶内容の一例を示す説明図である。
【図６】図６は、不一致行テーブル６００の記憶内容の一例を示す説明図である。
【図７】図７は、ルール表確認支援装置１０１の機能的構成例を示すブロック図である。
【図８】図８は、二つのルール表Ｔ１，Ｔ２の列同士の比較例を示す説明図（その１）である。
【図９】図９は、二つのルール表Ｔ１，Ｔ２の列同士の比較例を示す説明図（その２）である。
【図１０】図１０は、二つのルール表Ｔ１，Ｔ２の列同士の比較例を示す説明図（その３）である。
【図１１】図１１は、一対一記述一致列テーブル５００の記憶内容の変遷例を示す説明図である。
【図１２】図１２は、不一致行テーブル６００の記憶内容の変遷例を示す説明図である。
【図１３】図１３は、第１の列集合および第２の列集合の抽出例を示す説明図である。
【図１４】図１４は、他のケースの存否の判定例を示す説明図である。
【図１５】図１５は、一致候補となる値の判定例を示す説明図である。
【図１６】図１６は、記述一致案１６００の具体例を示す説明図である。
【図１７】図１７は、不一致行案１７００の具体例を示す説明図である。
【図１８】図１８は、複数列一致候補案１８００の具体例を示す説明図である。
【図１９】図１９は、実施の形態１にかかるルール表確認支援装置１０１のルール表確認支援処理手順の一例を示すフローチャートである。
【図２０】図２０は、不一致行登録処理の具体的処理手順の一例を示すフローチャート（その１）である。
【図２１】図２１は、不一致行登録処理の具体的処理手順の一例を示すフローチャート（その２）である。
【図２２】図２２は、不一致行登録処理の具体的処理手順の一例を示すフローチャート（その３）である。
【図２３】図２３は、一致候補登録処理の具体的処理手順の一例を示すフローチャート（その１）である。
【図２４】図２４は、一致候補登録処理の具体的処理手順の一例を示すフローチャート（その２）である。
【図２５】図２５は、人手作成表Ｔ１およびソース生成表Ｔ２の具体例を示す説明図である。
【図２６】図２６は、補助情報２６００の具体例を示す説明図である。
【図２７】図２７は、実施の形態２にかかるルール表確認支援装置１０１のルール表確認支援処理手順の一例を示すフローチャートである。
【図２８】図２８は、第２の不一致行登録処理の具体的処理手順の一例を示すフローチャート（その１）である。
【図２９】図２９は、第２の不一致行登録処理の具体的処理手順の一例を示すフローチャート（その２）である。
【図３０】図３０は、第２の不一致行登録処理の具体的処理手順の一例を示すフローチャート（その３）である。
【発明を実施するための形態】
【００１３】
以下に図面を参照して、本発明にかかるルール表確認支援方法、ルール表確認支援プログラム、およびルール表確認支援装置の実施の形態を詳細に説明する。
【００１４】
（実施の形態１）
図１は、実施の形態１にかかるルール表確認支援方法の一実施例を示す説明図である。図１において、ルール表確認支援装置１０１は、ルール表の確認作業を支援するコンピュータである。ルール表は、「条件」を表す項目と「アクション」を表す項目とを列とし、各項目の値の組合せを行とする表形式で記述された情報である。
【００１５】
「条件」と「アクション」は、アプリケーションなどのソフトウェアの処理を定義するものである。「条件」は、例えば、アプリケーションが処理を実行するための条件を表す。また、「アクション」は、例えば、「条件」を満たす場合にアプリケーションが実行する処理の内容を表す。
【００１６】
ルール表の一例としては、例えば、仕様書などを基に人手により作成されるＢＲＭＳのルール表がある。既存のアプリケーションに実装しているルールをＢＲＭＳ化する際には、人手により作成したＢＲＭＳのルール表と、既存のアプリケーションに実装しているルールとが一致するか確認することが求められる。
【００１７】
ところが、既存のアプリケーションに実装しているルールは、ソースコード上にプログラミング言語のロジックとして記述されており、人手により作成したルール表と記述が大きく異なることが多い。このため、人手により作成したルール表が、既存のアプリケーションに実装しているルールと一致しているかの確認を行うことが難しい。
【００１８】
このため、ソースコードの記述を変換する技術を利用して、既存のアプリケーションに実装しているルールを、条件とアクションとを表形式で記述したルール表として取得して、人手により作成したルール表と比較することが考えられる。なお、ソースコードの記述を変換する技術としては、例えば、特開平０５−０４０６１６号公報を参照することができる。
【００１９】
しかし、人手により作成したルール表と、既存のアプリケーションのソースコードから自動生成したルール表とが、同一の記述とは限らないため、二つのルール表の一致、不一致を確認することが困難な場合がある。二つのルール表の一致、不一致を確認することが困難な場合としては、例えば、以下の（ケース１）および（ケース２）が挙げられる。
【００２０】
（ケース１）同じ処理ではないため、同一の記述ではない。なお、「同じ処理」とは、入出力が一致する処理であり、例えば、条件とアクションが一致する処理である。
【００２１】
（ケース２）同じ処理でも、異なる記述（項目名（変数名）、値（リテラル））を利用しているため、同一の記述ではない。
【００２２】
（ケース１）の具体例としては、人手により作成したルール表と、自動生成したルール表とで記述している範囲が異なり、条件やアクション（項目名や値（リテラル））が、一致しない場合がある。この場合は、元々同じ処理ではないため、不一致であると確認できるとよい。
【００２３】
（ケース２）の具体例としては、例えば、人手により作成したルール表の項目の名称（日本語等）と、自動生成したルール表の項目の名称とが異なる場合がある。さらに、人手により作成したルール表の項目と、自動生成したルール表の項目との関係が一対一ではない場合がある。
【００２４】
項目と項目との関係が一対一ではない場合の例としては、真偽値の判定に対して、整数値の０，１を用いたり、フラグ（Ｂｏｏｌｅａｎなど）のＴｒｕｅ／Ｆａｌｓｅを用いたりすることがある。他の例では、一つの項目に対して、複数の役割が与えられることがある。より詳細に説明すると、値が０と０以外で、一つの判断（例えば、有効・無効）を行う場合がある。さらに、同じ値が０以外の閾値で、二つ目の判断（例えば、数値、日付の判断）を行う場合がある。
【００２５】
なお、「項目の名称が異なる」場合については、辞書を用意することで、項目の表記上の違いを解決することが考えられる。しかし、予め辞書を作成することになり手間がかかる。さらに、項目と項目との関係が一対一でない場合は容易に判断がつかない。例えば、部分的に一致する部分があったとしても、残りの部分については、容易に同じ処理、同じ処理ではない判断がつかない。
【００２６】
そこで、実施の形態１では、二つのルール表で意味的に同じ項目に対して互いに異なる名称が使われていても、意味的に同じである可能性が高い項目間の対応関係を把握可能にしてルール表の確認作業を支援するルール表確認支援方法について説明する。以下、ルール表確認支援装置１０１の処理例について説明する。
【００２７】
（１）ルール表確認支援装置１０１は、第１のルール表１１０と第２のルール表１２０とを取得する。ここで、二つのルール表１１０，１２０は、条件を表す項目と、条件を満たす場合のアクションを表す項目とを列とし、各項目の値の組合せを行とする表形式でそれぞれ記述されたルール表である。
【００２８】
より具体的には、例えば、二つのルール表１１０，１２０のうちの一方のルール表は、例えば、仕様書などを基に人手により作成したＢＲＭＳのルール表である。また、二つのルール表１１０，１２０のうちの他方のルール表は、例えば、既存のアプリケーションのソースコードから条件とアクションとを抽出して自動生成したルール表である。
【００２９】
図１の例では、第１のルール表１１０を、人手により作成したＢＲＭＳのルール表とし、第２のルール表１２０を、既存のアプリケーションのソースコードから自動生成したルール表とする。第１のルール表１１０は、条件を表す項目１，２と、アクションを表す項目３とを列とし、各項目１〜３の値の組合せを行とするルール表である。第２のルール表１２０は、条件を表す項目ａ，ｂ，ｃと、アクションを表す項目ｄとを列とし、各項目ａ〜ｄの値の組合せを行とするルール表である。
【００３０】
（２）ルール表確認支援装置１０１は、第１のルール表１１０から選択した第１の列と項目種別が同一であり、第１の列の値を全て含む第２の列が第２のルール表１２０に存在するか否かを判定する。ここで、項目種別とは、ルール表の項目の種類を区別するためのものであり、ここでは「条件」または「アクション」である。また、列の値とは、項目の値（項目値）としてルール表に記述される数値、数式、文字列などである。
【００３１】
具体的には、例えば、ルール表確認支援装置１０１は、第１のルール表１１０から選択されていない未選択の列を、第１の列として選択する。図１の例では、第１のルール表１１０から項目１の列を、第１の列として選択した場合を想定する。この場合、ルール表確認支援装置１０１は、選択した項目１の列の値「１，２（ただし、重複なし）」と、第２のルール表１２０の項目種別が「条件」の列の値とを比較する。
【００３２】
図１の例では、第２のルール表１２０の項目ａの値「１，２，３（ただし、重複なし）」が、項目１の列の値「１，２」を全て含む。このため、ルール表確認支援装置１０１は、項目種別が「条件」であり、項目１の列の値「１，２（重複なし）」を全て含む第２の列として、第２のルール表１２０に項目ａの列が存在すると判定する。
【００３３】
（３）ルール表確認支援装置１０１は、第２の列が存在する場合に、第１の列と第２の列とを一致列として記録する。ここで、第２の列は、第１の列の値を含まない他の列に比べて、第１の列の項目に対応する項目、すなわち、第１の列の項目と意味的に同じ項目を表している可能性が高い。
【００３４】
このため、ルール表確認支援装置１０１は、第２の列が存在する場合に、第１の列と第２の列とを一致列として記録する。図１の例では、ルール表確認支援装置１０１は、例えば、第１のルール表１１０の項目１の列と、第２のルール表１２０の項目ａの列とを一致列として記録する。
【００３５】
このように、実施の形態１にかかるルール表確認支援装置１０１によれば、第１のルール表１１０の第１の列と、第２のルール表１２０のうちの第１の列の値を全て含む第２の列とを一致列として記録することができる。これにより、ユーザは、二つのルール表１１０，１２０で意味的に同じ項目に対して互いに異なる名称が使われていても、意味的に同じである可能性が高い項目間の対応関係が把握可能となり、二つのルール表１１０，１２０の一致、不一致の確認作業が容易になる。
【００３６】
なお、以下の説明では、既存のアプリケーションに実装しているルールをＢＲＭＳ化する場合を想定し、二つのルール表１１０，１２０の一例として、人手により作成したＢＲＭＳのルール表と、既存のアプリケーションのソースコードから自動生成したルール表とを例に挙げて説明する。また、人手により作成したＢＲＭＳのルール表を「人手作成表Ｔ１」と表記し、既存のアプリケーションのソースコードから自動生成したルール表を「ソース生成表Ｔ２」と表記する場合がある。
【００３７】
（ルール表確認支援装置１０１のハードウェア構成例）
図２は、ルール表確認支援装置１０１のハードウェア構成例を示すブロック図である。図２において、ルール表確認支援装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メモリ２０２と、ディスクドライブ２０３と、ディスク２０４と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０５と、ディスプレイ２０６と、入力装置２０７と、を有する。また、各構成部はバス２００によってそれぞれ接続される。
【００３８】
ここで、ＣＰＵ２０１は、ルール表確認支援装置１０１の全体の制御を司る。メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２０１のワークエリアとして使用される。メモリ２０２に記憶されるプログラムは、ＣＰＵ２０１にロードされることで、コーディングされている処理をＣＰＵ２０１に実行させる。
【００３９】
ディスクドライブ２０３は、ＣＰＵ２０１の制御に従ってディスク２０４に対するデータのリード／ライトを制御する。ディスク２０４は、ディスクドライブ２０３の制御で書き込まれたデータを記憶する。ディスク２０４としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【００４０】
Ｉ／Ｆ２０５は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他の装置に接続される。そして、Ｉ／Ｆ２０５は、ネットワーク２１０と内部のインターフェースを司り、他の装置からのデータの入出力を制御する。ネットワーク２１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。
【００４１】
ディスプレイ２０６は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ２０６は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、液晶ディスプレイ、有機ＥＬ（Ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイなどを採用することができる。
【００４２】
入力装置２０７は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置２０７は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
【００４３】
なお、ルール表確認支援装置１０１は、上述した構成部のうち、例えば、ディスプレイ２０６や入力装置２０７を有さないことにしてもよい。また、ルール表確認支援装置１０１は、上述した構成部のほか、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、スキャナ、プリンタなどを有することにしてもよい。
【００４４】
（人手作成表Ｔ１の具体例）
つぎに、人手作成表Ｔ１の具体例について説明する。人手作成表Ｔ１は、例えば、仕様書などを基に人手により作成したＢＲＭＳのルール表である。
【００４５】
図３は、人手作成表Ｔ１の具体例を示す説明図である。図３の上段において、人手作成表Ｔ１は、条件を表す項目と、条件を満たす場合のアクションを表す項目とを列とし、各項目の値の組合せを行とする表形式で記述されたルール表である。
【００４６】
人手作成表Ｔ１において、条件を表す項目は、「区分」と「変更の有無」と「変更年月日」である。また、人手作成表Ｔ１において、アクションを表す項目は、「出力区分」である。また、人手作成表Ｔ１において、「項番」は、人手作成表Ｔ１の行を識別するための識別子である。
【００４７】
なお、人手作成表Ｔ１は、具体的には、例えば、図３の下段に示すように、ツール（本ルール表確認支援プログラム）で処理できるように、ＣＳＶ（Ｃｏｍｍａ−Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅ）等の表形式で記述した文字列である。「ｎｕｍ」は項番に対応し、「ｃｏｎｄ」は条件に対応し、「ｏｕｔ」はアクションに対応している。
【００４８】
また、人手作成表Ｔ１とソース生成表Ｔ２とのフォーマットの違いは、予め辞書や既存技術などを利用して同じフォーマットに変換されている。例えば、日付等のフォーマットの違いは、既存技術などを利用して対応し、日付の「以前」や「以後」の記述は、既存技術などで、不等号に変換されている。
【００４９】
（ソース生成表Ｔ２の具体例）
つぎに、ソース生成表Ｔ２の具体例について説明する。ソース生成表Ｔ２は、例えば、既存のアプリケーションのソースコードから自動生成したルール表である。
【００５０】
図４は、ソース生成表Ｔ２の具体例を示す説明図である。図４の上段において、ソース生成表Ｔ２は、条件を表す項目と、条件を満たす場合のアクションを表す項目とを列とし、各項目の値の組合せを行とする表形式で記述されたルール表である。
【００５１】
ソース生成表Ｔ２において、条件を表す項目は、「ＫＵＢＵＮ」と「ＨＥＮＫＯＢＩ」と「ＨＥＮＫＯＢＩ２」である。また、ソース生成表Ｔ２において、アクションを表す項目は、「ＯＵＴ−ＫＵＢＵＮ」と「ＥＲＲ」である。また、ソース生成表Ｔ２において、「項番」は、ソース生成表Ｔ２の行を識別するための識別子である。
【００５２】
（一対一記述一致列テーブル５００の記憶内容）
つぎに、ルール表確認支援装置１０１が用いる一対一記述一致列テーブル５００の記憶内容について説明する。一対一記述一致列テーブル５００は、例えば、図２に示したメモリ２０２、ディスク２０４などの記憶装置により実現される。
【００５３】
図５は、一対一記述一致列テーブル５００の記憶内容の一例を示す説明図である。図５において、一対一記述一致列テーブル５００は、条件用の一対一記述一致列テーブル５１０と、アクション用の一対一記述一致列テーブル５２０と、を含む。
【００５４】
条件用の一対一記述一致列テーブル５１０は、項目種別「条件」について、二つのルール表Ｔ１，Ｔ２の項目間（列間）の一致または不一致の対応関係を記憶する。ただし、図５では、初期状態のため、二つのルール表Ｔ１，Ｔ２の全ての項目間（列間）の対応関係が空白となっている。
【００５５】
また、アクション用の一対一記述一致列テーブル５２０は、項目種別「アクション」について、二つのルール表Ｔ１，Ｔ２の項目間（列間）の一致または不一致の対応関係を記憶する。ただし、図５では、初期状態のため、二つのルール表Ｔ１，Ｔ２の全ての項目間（列間）の対応関係が空白となっている。
【００５６】
（不一致行テーブル６００の記憶内容）
つぎに、ルール表確認支援装置１０１が用いる不一致行テーブル６００の記憶内容について説明する。不一致行テーブル６００は、例えば、図２に示したメモリ２０２、ディスク２０４などの記憶装置により実現される。
【００５７】
図６は、不一致行テーブル６００の記憶内容の一例を示す説明図である。図６において、不一致行テーブル６００は、二つのルール表Ｔ１，Ｔ２の行間の一致または不一致の対応関係を記憶する。ただし、図６では、初期状態のため、二つのルール表Ｔ１，Ｔ２の全ての行間の対応関係が空白となっている。
【００５８】
（ルール表確認支援装置１０１の機能的構成例）
つぎに、実施の形態１にかかるルール表確認支援装置１０１の機能的構成例について説明する。図７は、ルール表確認支援装置１０１の機能的構成例を示すブロック図である。図７において、ルール表確認支援装置１０１は、取得部７０１と、一致列判定部７０２と、記録部７０３と、不一致行判定部７０４と、一致列候補判定部７０５と、一致値候補判定部７０６と、出力部７０７と、を含む構成である。取得部７０１〜出力部７０７は制御部となる機能であり、具体的には、例えば、図２に示したメモリ２０２、ディスク２０４などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０５により、その機能を実現する。各機能部の処理結果は、例えば、メモリ２０２、ディスク２０４などの記憶装置に記憶される。
【００５９】
取得部７０１は、人手作成表Ｔ１とソース生成表Ｔ２とを取得する。具体的には、例えば、取得部７０１は、図２に示した入力装置２０７を用いたユーザの操作入力により、人手作成表Ｔ１とソース生成表Ｔ２とを取得する。また、取得部７０１は、例えば、図２に示したネットワーク２１０を介して、外部装置から人手作成表Ｔ１とソース生成表Ｔ２とを取得することにしてもよい。
【００６０】
一致列判定部７０２は、二つのルール表Ｔ１，Ｔ２のうちの一方の表を選択する。具体的には、例えば、一致列判定部７０２は、二つのルール表Ｔ１，Ｔ２のうちの列数が少ない人手作成表Ｔ１を、一方の表として選択する。つぎに、一致列判定部７０２は、一方の表から第１の列を選択する。具体的には、例えば、一致列判定部７０２は、一方の表から選択されていない未選択の列を、第１の列として選択する。そして、一致列判定部７０２は、一方の表から選択した第１の列と項目種別が同一であり、第１の列の値を全て含む第２の列が他方の表に存在するか否かを判定する。
【００６１】
ここで、図８〜図１０を用いて、一致列判定部７０２の具体的な処理例について説明する。なお、以下の説明では、二つのルール表Ｔ１，Ｔ２の列のうち、項目種別が「条件」の列を「条件列」と表記し、項目種別が「アクション」の列を「出力列」と表記する場合がある。
【００６２】
図８〜図１０は、二つのルール表Ｔ１，Ｔ２の列同士の比較例を示す説明図である。図８の例では、第１の列として、人手作成表Ｔ１から項目名が「区分」の条件列が選択された場合を想定する。ここで、人手作成表Ｔ１の条件列「区分」の値は「１０，２０」である（ただし、重複なし）。
【００６３】
この場合、一致列判定部７０２は、条件列「区分」の値「１０，２０」を全て含む条件列がソース生成表Ｔ２に存在するか否かを判定する。具体的には、例えば、まず、一致列判定部７０２は、ソース生成表Ｔ２から選択されていない未選択の条件列を選択する。ここでは、ソース生成表Ｔ２から項目名が「ＫＵＢＵＮ」の条件列が選択された場合を想定する。
【００６４】
この場合、一致列判定部７０２は、条件列「区分」の値「１０，２０」と、条件列「ＫＵＢＵＮ」の値「１０，２０，ＮＯＴ（１０  ＯＲ  ２０）」とを比較して、条件列「区分」の値「１０，２０」を全て含むか否かを判定する。ここで、条件列「ＫＵＢＵＮ」の値「１０，２０，ＮＯＴ（１０  ＯＲ  ２０）」は、条件列「区分」の値「１０，２０」を全て含む。
【００６５】
このため、一致列判定部７０２は、条件列「区分」の値「１０，２０」を全て含む条件列として、ソース生成表Ｔ２に条件列「ＫＵＢＵＮ」が存在すると判定する。なお、ソース生成表Ｔ２の条件列「ＨＥＮＫＯＢＩ」と条件列「ＨＥＮＫＯＢＩ２」は、条件列「区分」の値「１０，２０」を含まない。
【００６６】
図９の例では、第１の列として、人手作成表Ｔ１から項目名が「変更の有無」の条件列が選択された場合を想定する。ここで、人手作成表Ｔ１の条件列「変更の有無」の値は「あり，なし」である（ただし、重複なし）。この場合、一致列判定部７０２は、条件列「変更の有無」の値「あり，なし」を全て含む条件列がソース生成表Ｔ２に存在するか否かを判定する。
【００６７】
ここでは、ソース生成表Ｔ２のいずれの条件列も、条件列「変更の有無」の値「あり，なし」を含まない。このため、一致列判定部７０２は、条件列「変更の有無」の値「あり，なし」を全て含む条件列がソース生成表Ｔ２に存在しないと判定する。
【００６８】
なお、図示は省略するが、ソース生成表Ｔ２のいずれの条件列も、条件列「変更年月日」の値「１９９９０３３１以前，１９９９０４０１以降」を含まない。このため、一致列判定部７０２は、条件列「変更年月日」の値「１９９９０３３１以前，１９９９０４０１以降」を全て含む条件列がソース生成表Ｔ２に存在しないと判定する。
【００６９】
図１０の例では、第１の列として、人手作成表Ｔ１から項目名が「出力区分」の出力列が選択された場合を想定する。ここで、人手作成表Ｔ１の出力列「出力区分」の値は「１，２，３，１０」である。この場合、一致列判定部７０２は、出力列「出力区分」の値「１，２，３，１０」を全て含む出力列がソース生成表Ｔ２に存在するか否かを判定する。
【００７０】
ここでは、出力列「ＯＵＴ−ＫＵＢＵＮ」の値「０，１，２，３，１０」は、出力列「出力区分」の値「１，２，３，１０」を全て含む。このため、一致列判定部７０２は、出力列「出力区分」の値「１，２，３，１０」を全て含む出力列として、ソース生成表Ｔ２に出力列「ＯＵＴ−ＫＵＢＵＮ」が存在すると判定する。
【００７１】
図７の説明に戻り、記録部７０３は、第２の列が存在すると判定された場合に、第１の列と第２の列とを一致列として記録する。例えば、図８に示したように、条件列「区分」の値「１０，２０」を全て含む条件列として、ソース生成表Ｔ２に条件列「ＫＵＢＵＮ」が存在する。この場合、記録部７０３は、条件列「区分」と条件列「ＫＵＢＵＮ」とを一致列として記録する。
【００７２】
また、例えば、図１０に示したように、出力列「出力区分」の値「１，２，３，１０」を全て含む出力列として、ソース生成表Ｔ２に出力列「ＯＵＴ−ＫＵＢＵＮ」が存在する。この場合、記録部７０３は、出力列「出力区分」と出力列「ＯＵＴ−ＫＵＢＵＮ」とを一致列として記録する。
【００７３】
なお、第１の列と項目種別が同一であり、第１の列の値を全て含む列が他方の表に複数存在する、すなわち、第２の列となり得る列が複数存在する場合がある。この場合、記録部７０３は、例えば、第１の列と、第１の列の値を全て含む複数の列のいずれかの列とを一致列として記録することにしてもよい。また、第１の列の値を全て含む列が複数存在する場合に、例えば、一致列判定部７０２が、行単位で他の値（一致列として記録された他の列の値）を比較し、より多くの値が一致する列を第２の列として選択することにしてもよい。
【００７４】
また、記録部７０３は、第２の列が存在しないと判定された場合には、第１の列を不一致列として記録することにしてもよい。すなわち、第２の列が存在しない場合には、記録部７０３は、第１の列を、他方の表のいずれの列とも一致しない不一致列として記録する。
【００７５】
不一致行判定部７０４は、第２の列が存在すると判定された場合に、第２の列の値の中に、第１の列のいずれの値とも一致しない値が存在するか否かを判定する。ここで、第１の列を人手作成表Ｔ１の条件列「区分」とし、第２の列をソース生成表Ｔ２の条件列「ＫＵＢＵＮ」とする（図８参照）。
【００７６】
この場合、不一致行判定部７０４は、条件列「ＫＵＢＵＮ」の値「１０，２０，ＮＯＴ（１０  ＯＲ  ２０）」の中に、条件列「区分」のいずれの値とも一致しない値が存在するか否かを判定する。ここでは、条件列「ＫＵＢＵＮ」は、条件列「区分」のいずれの値とも一致しない値「ＮＯＴ（１０  ＯＲ  ２０）」を含む。このため、不一致行判定部７０４は、条件列「ＫＵＢＵＮ」の値「１０，２０，ＮＯＴ（１０  ＯＲ  ２０）」の中に、条件列「区分」のいずれの値とも一致しない値が存在すると判定する。
【００７７】
また、第１の列を人手作成表Ｔ１の出力列「出力区分」とし、第２の列をソース生成表Ｔ２の出力列「ＯＵＴ−ＫＵＢＵＮ」とする（図１０参照）。この場合、不一致行判定部７０４は、出力列「ＯＵＴ−ＫＵＢＵＮ」の値「０，１，２，３，１０」の中に、出力列「出力区分」のいずれの値とも一致しない値が存在するか否かを判定する。
【００７８】
ここでは、出力列「ＯＵＴ−ＫＵＢＵＮ」は、出力列「出力区分」のいずれの値とも一致しない値「０」を含む。このため、不一致行判定部７０４は、出力列「ＯＵＴ−ＫＵＢＵＮ」の値「０，１，２，３，１０」の中に、出力列「出力区分」のいずれの値とも一致しない値が存在すると判定する。
【００７９】
また、記録部７０３は、一致しない値が存在すると判定された場合には、当該一致しない値を含む第２のルール表の行を不一致行として記録することにしてもよい。例えば、図８に示したように、条件列「ＫＵＢＵＮ」の値「１０，２０，ＮＯＴ（１０  ＯＲ  ２０）」の中に、条件列「区分」のいずれの値とも一致しない値「ＮＯＴ（１０  ＯＲ  ２０）」が存在する。この場合、記録部７０３は、一致しない値「ＮＯＴ（１０  ＯＲ  ２０）」を含むソース生成表Ｔ２の項番７の行を不一致行として記録する。
【００８０】
また、例えば、図１０に示したように、出力列「ＯＵＴ−ＫＵＢＵＮ」の値「０，１，２，３，１０」の中に、出力列「出力区分」のいずれの値とも一致しない値「０」が存在する。この場合、記録部７０３は、一致しない値「０」を含むソース生成表Ｔ２の項番７の行を不一致行として記録する。
【００８１】
また、一致列判定部７０２は、複数の一致列（第１の列と第２の列とのペアが複数）が記録された場合、一致列の範囲で、一方の表の各行の値が、他方の表の少なくともいずれかの行の値と一致するか否かを判定することにしてもよい。ここで、一致列の範囲とは、各ルール表Ｔ１，Ｔ２のうちの一致列として記録された複数の列である。
【００８２】
例えば、ルール表Ｔ１の一致列の範囲は、条件列「区分」と出力列「出力区分」となる（図８、図１０参照）。また、ルール表Ｔ２の一致列の範囲は、条件列「ＫＵＢＵＮ」と出力列「ＯＵＴ−ＫＵＢＵＮ」となる（図８、図１０参照）。以下、具体的な判定例について説明する。
【００８３】
まず、ルール表Ｔ１の一致列の範囲の項番１の行を例に挙げると、行の値は「（区分，出力区分）＝（１０，１）」である。この場合、一致列判定部７０２は、ルール表Ｔ１の項番１の行の値（１０，１）が、ルール表Ｔ２の一致列の範囲の少なくともいずれかの行の値と一致するか否かを判定する。ここでは、ルール表Ｔ１の項番１の行の値（１０，１）が、ルール表Ｔ２の項番１，３の行の値と一致する。このため、一致列判定部７０２は、一致列の範囲で、ルール表Ｔ１の項番１の行の値（１０，１）が、ルール表Ｔ２の項番１，３の行の値と一致すると判定する。
【００８４】
つぎに、ルール表Ｔ１の一致列の範囲の項番２の行を例に挙げると、行の値は「（区分，出力区分）＝（１０，２）」である。この場合、一致列判定部７０２は、ルール表Ｔ１の項番２の行の値（１０，２）が、ルール表Ｔ２の一致列の範囲の少なくともいずれかの行の値と一致するか否かを判定する。ここでは、ルール表Ｔ１の項番２の行の値（１０，２）が、ルール表Ｔ２の項番２，４の行の値と一致する。このため、一致列判定部７０２は、一致列の範囲で、ルール表Ｔ１の項番２の行の値（１０，２）が、ルール表Ｔ２の項番２，４の行の値と一致すると判定する。
【００８５】
つぎに、ルール表Ｔ１の一致列の範囲の項番３の行を例に挙げると、行の値は「（区分，出力区分）＝（１０，３）」である。この場合、一致列判定部７０２は、ルール表Ｔ１の項番３の行の値（１０，３）が、ルール表Ｔ２の一致列の範囲の少なくともいずれかの行の値と一致するか否かを判定する。ここでは、ルール表Ｔ１の項番３の行の値（１０，３）が、ルール表Ｔ２の項番５の行の値と一致する。このため、一致列判定部７０２は、一致列の範囲で、ルール表Ｔ１の項番３の行の値（１０，３）が、ルール表Ｔ２の項番５の行の値と一致すると判定する。
【００８６】
つぎに、ルール表Ｔ１の一致列の範囲の項番４の行を例に挙げると、行の値は「（区分，出力区分）＝（２０，１０）」である。この場合、一致列判定部７０２は、ルール表Ｔ１の項番４の行の値（２０，１０）が、ルール表Ｔ２の一致列の範囲の少なくともいずれかの行の値と一致するか否かを判定する。ここでは、ルール表Ｔ１の項番４の行の値（２０，１０）が、ルール表Ｔ２の項番６の行の値と一致する。このため、一致列判定部７０２は、一致列の範囲で、ルール表Ｔ１の項番４の行の値（２０，１０）が、ルール表Ｔ２の項番６の行の値と一致すると判定する。
【００８７】
ここで、二つのルール表Ｔ１，Ｔ２の間で、列単位で値が一致していても、複数の列の行単位では値が不一致となる場合は、列単位で値が偶然一致した可能性がある。このため、記録部７０３は、一致列の範囲で一方の表の行の値が他方の表のいずれの行の値とも一致しないと判定された場合には、一方の表の一致列として記録した複数の列を不一致列として記録することにしてもよい。この場合、他方の表の一致列として記録した複数の列についても、一致列とは見なさない。
【００８８】
また、記録部７０３は、一致列の範囲で一方の表の各行の値が他方の表の少なくともいずれかの行の値と一致すると判定された場合には、記録した複数の一致列を、図５に示した一対一記述一致列テーブル５００に登録することにしてもよい。この際、記録部７０３は、記録した不一致列を、一対一記述一致列テーブル５００に登録することにしてもよい。
【００８９】
ここで、一対一記述一致列テーブル５００の記憶内容の変遷例について説明する。
【００９０】
図１１は、一対一記述一致列テーブル５００の記憶内容の変遷例を示す説明図である。図１１の（１１−１）において、条件用の一対一記述一致列テーブル５１０に、項目種別「条件」について、二つのルール表Ｔ１，Ｔ２の項目間（列間）の一致または不一致の対応関係が記憶されている。
【００９１】
また、図１１の（１１−１）において、アクション用の一対一記述一致列テーブル５２０に、項目種別「アクション」について、二つのルール表Ｔ１，Ｔ２の項目間（列間）の一致または不一致の対応関係が記憶されている。
【００９２】
図７の説明に戻り、記録部７０３は、他方の表のうち条件列と出力列の両方で不一致行となる行を、図６に示した不一致行テーブル６００に登録することにしてもよい。ソース生成表Ｔ２の例では、項番７の行が条件列（ＫＵＢＵＮ）と出力列（ＯＵＴ−ＫＵＢＵＮ）の両方で不一致行として記録されている。この場合、記録部７０３は、ソース生成表Ｔ２の項番７の行を、不一致行テーブル６００に登録する。
【００９３】
ここで、不一致行テーブル６００の記憶内容の変遷例について説明する。
【００９４】
図１２は、不一致行テーブル６００の記憶内容の変遷例を示す説明図である。図１２において、不一致行テーブル６００には、ソース生成表Ｔ２の項番７が不一致行として記憶されている。また、不一致行テーブル６００には、人手作成表Ｔ１の項番１〜４と、ソース生成表Ｔ２の項番１〜６とが一致行として記憶されている。
【００９５】
なお、図１２の例では、各ルール表Ｔ１，Ｔ２のうちのどの項番の行が一致行であるかを示す場合を例に挙げて説明したが、これに限らない。例えば、記録部７０３は、二つのルール表Ｔ１，Ｔ２において、一致列の範囲で行の値が一致する行同士の対応関係を記録することにしてもよい。一例を挙げると、上述したように、一致列の範囲で、ルール表Ｔ１の項番１の行の値（１０，１）は、ルール表Ｔ２の項番１，３の行の値と一致する。この場合、記録部７０３は、ルール表Ｔ１の項番１の行と、ルール表Ｔ２の項番１，３の行との対応関係を記録することにしてもよい。
【００９６】
図７の説明に戻り、一致列候補判定部７０５は、一方の表のうちの一致列として記録した列を除く残余の列から、項目種別が同一の第１の列集合を抽出する。また、一致列候補判定部７０５は、他方の表のうちの一致列として記録した列を除く残余の列から、第１の列集合と項目種別が同一の第２の列集合を抽出する。
【００９７】
そして、一致列候補判定部７０５は、抽出した第２の列集合の不一致行として記録した行を除く残余の行の値に基づいて、第２の列集合の行の値として取り得る他のケースが存在するか否かを判定する。具体的には、例えば、一致列候補判定部７０５は、第２の列集合の残余の行の値を条件とし、全ての条件をＯＲ条件で組み合わせた結果に対して否定を取ったものが充足不可であれば、他のケースが存在しないと判定する。
【００９８】
なお、充足不可（あるいは、充足可能）を確認する技術としては、例えば、ＳＡＴソルバやＳＭＴソルバなどの既存技術を用いることができる。
【００９９】
ここで、図１３および図１４を用いて、一致列候補判定部７０５の具体的な処理例について説明する。ここでは、第１の列集合および第２の列集合として、項目種別が「条件」の列集合を例に挙げて説明する。
【０１００】
図１３は、第１の列集合および第２の列集合の抽出例を示す説明図である。図１３において、一致列候補判定部７０５は、人手作成表Ｔ１のうちの一致列として記録した列（区分、出力区分）を除く残余の列から、項目種別が「条件」の第１の列集合１３０１を抽出する。第１の列集合１３０１は、条件列「変更の有無」と条件列「変更年月日」とからなる。
【０１０１】
また、一致列候補判定部７０５は、ソース生成表Ｔ２のうちの一致列として記録した列（ＫＵＢＵＮ、ＯＵＴ−ＫＵＢＵＮ）を除く残余の列から、項目種別が「条件」の第２の列集合１３０２を抽出する。第２の列集合１３０２は、条件列「ＨＥＮＫＯＢＩ」と条件列「ＨＥＮＫＯＢＩ２」とからなる。
【０１０２】
そして、一致列候補判定部７０５は、第２の列集合１３０２の不一致行として記録した行（項番７の行）を除く残余の行の値に基づいて、第２の列集合１３０２の行の値として取り得る他のケースが存在するか否かを判定する。以下、図１４を用いて、他のケースの存否の判定例について説明する。
【０１０３】
図１４は、他のケースの存否の判定例を示す説明図である。図１４において、第２の列集合１３０２の各列の値を条件１４０１〜１４１０と表記する。ただし、ソース生成表Ｔ２の項番６の行については、条件列「ＨＥＮＫＯＢＩ」と条件列「ＨＥＮＫＯＢＩ２」それぞれの値が空白のため除外する。
【０１０４】
一致列候補判定部７０５は、第２の列集合１３０２の各行（項番１〜５の行）の値を条件とし、全ての条件をＯＲ条件で組み合わせた結果に対して否定を取ったものが充足不可であるか否かを判断する。例えば、第２の列集合１３０２の項番１の条件は、（条件１４０１  ＡＮＤ  条件１４０６）となる。
【０１０５】
また、全ての条件をＯＲ条件で組み合わせた結果は、（条件１４０１  ＡＮＤ  条件１４０６）ＯＲ（条件１４０２  ＡＮＤ  条件１４０７）ＯＲ（条件１４０３  ＡＮＤ  条件１４０８）ＯＲ（条件１４０４  ＡＮＤ  条件１４０９）ＯＲ（条件１４０５  ＡＮＤ  条件１４１０）となる。
【０１０６】
一致列候補判定部７０５は、上記結果に対して否定を取ったものが充足不可であるか否かを判断する。ここでは、上記結果に対して否定を取ったものが充足不可となる。このため、一致列候補判定部７０５は、第２の列集合１３０２の行の値として取り得る他のケースが存在しないと判定する。
【０１０７】
なお、ソース生成表Ｔ２の出力列「ＥＲＲ」については、人手作成表Ｔ１に対応する列が存在しない（すなわち、二つのルール表Ｔ１，Ｔ２の間で対応する列集合が存在しない）。このため、記録部７０３は、ソース生成表Ｔ２の出力列「ＥＲＲ」を不一致列として記録することにしてもよい。
【０１０８】
図７の説明に戻り、記録部７０３は、他のケースが存在しないと判定された場合に、第１の列集合と第２の列集合とを一致候補列として記録する。具体的には、例えば、記録部７０３は、第１の列集合１３０１と第２の列集合１３０２とを一致候補列として、一対一記述一致列テーブル５００に登録することにしてもよい。
【０１０９】
図１１の例では、図１１の（１１−２）において、条件用の一対一記述一致列テーブル５１０に、人手作成表Ｔ１の条件列「変更の有無」および条件列「変更年月日」と、ソース生成表Ｔ２の条件列「ＨＥＮＫＯＢＩ」および条件列「ＨＥＮＫＯＢＩ２」とが、二項目で一致する候補として記憶されている。
【０１１０】
一致値候補判定部７０６は、第１の列集合のうち複数行で値が同一となる列を特定する。以下の説明では、第１の列集合のうち複数行で値が同一となる列を「対象列」と表記する場合がある。また、第１の列集合の対象列の値のうちの複数行で同一となる値を「対象値」と表記する場合がある。
【０１１１】
そして、一致値候補判定部７０６は、一方の表から、第１の列集合の対象列の対象値を取得する。つぎに、一致値候補判定部７０６は、一致列の範囲で、一方の表の対象値を含む各行と値が一致する他方の表の行を特定する。そして、一致値候補判定部７０６は、対象値の一致候補となる値として、特定した行の第２の列集合の値を他方の表から取得する。つぎに、一致値候補判定部７０６は、対象値の一致候補となる値を条件としてＯＲ条件で連結した式を作成する。そして、一致値候補判定部７０６は、作成した式を簡単化する。
【０１１２】
これにより、対象値の一致候補として、理解しやすいように簡単化した式を得ることができる。なお、式の簡単化の方法としては、乗法標準形（ＣＮＦ）などの連言節を取り、強い条件だけを残すことで、必要な条件のみを残す方法を用いることができる。
【０１１３】
例えば、「条件Ａかつ条件Ｂ」で、条件Ａが条件Ｂに含まれれば、条件Ａのみを残すという方法である。式は加法標準形（ＤＮＦ）であるため、否定を取ることで、ドモルガンの法則により、乗法標準形（ＣＮＦ）に変換し、式を簡単化して、最後に再度否定を取ることになる。例えば、「条件Ａまたは条件Ｂ」の否定は、「条件Ａの否定かつ条件Ｂの否定」となる。
【０１１４】
ここで、図１５を用いて、一致値候補判定部７０６の具体的な処理例について説明する。ここでは、第１の列集合の一例として、第１の列集合１３０１（例えば、図１３参照）を例に挙げて説明する。
【０１１５】
図１５は、一致候補となる値の判定例を示す説明図である。第１の列集合１３０１を例に挙げると、条件列「変更の有無」は、項番１，２の複数行で同じ値「あり」を取る。この場合、一致値候補判定部７０６は、第１の列集合１３０１のうちの条件列「変更の有無」を対象列として特定する。
【０１１６】
そして、一致値候補判定部７０６は、人手作成表Ｔ１から、第１の列集合１３０１の対象列「変更の有無」の対象値「あり」を取得する。つぎに、一致値候補判定部７０６は、一致列の範囲で、人手作成表Ｔ１の対象値「あり」を含む項番１の行と値が一致するソース生成表Ｔ２の行の項番１，３を特定する。また、一致値候補判定部７０６は、一致列の範囲で、人手作成表Ｔ１の対象値「あり」を含む項番２の行と値が一致するソース生成表Ｔ２の行の項番２，４を特定する。
【０１１７】
そして、一致値候補判定部７０６は、人手作成表Ｔ１の対象値「あり」の一致候補となる値として、ソース生成表Ｔ２の項番１，３の行の値「（ＨＥＮＫＯＢＩ＞００００００００  ＡＮＤ  ＜＝  １９９９０３３１）ＡＮＤ（ＨＥＮＫＯＢＩ＞ＨＥＮＫＯＢＩ２）」、「（ＨＥＮＫＯＢＩ  ＮＯＴ  ＞  ＨＥＮＫＯＢＩ２）ＡＮＤ（ＨＥＮＫＯＢＩ２＞００００００００  ＡＮＤ  ＨＥＮＫＯＢＩ２＜＝１９９９０３３１）」を取得する。
【０１１８】
さらに、一致値候補判定部７０６は、人手作成表Ｔ１の対象値「あり」の一致候補となる値として、ソース生成表Ｔ２の項番２，４の行の値「（ＨＥＮＫＯＢＩ＞１９９９０３３１  ＡＮＤ  ＨＥＮＫＯＢＩ＞ＨＥＮＫＯＢＩ２）」、「（ＨＥＮＫＯＢＩ  ＮＯＴ  ＞  ＨＥＮＫＯＢＩ２）ＡＮＤ（ＨＥＮＫＯＢＩ２＞１９９９０３３１）」を取得する。
【０１１９】
以下の説明では、取得されたソース生成表Ｔ２の項番１，３の行の値をＯＲ条件で連結したものを「条件Ｘ」と表記し、取得されたソース生成表Ｔ２の項番２，４の行の値をＯＲ条件で連結したものを「条件Ｙ」と表記する場合がある。
【０１２０】
つぎに、一致値候補判定部７０６は、条件Ｘと条件ＹをＯＲ条件で連結した式「条件Ｘ  ＯＲ  条件Ｙ」を作成する。そして、一致値候補判定部７０６は、作成した式「条件Ｘ  ＯＲ  条件Ｙ」を簡単化する。ここでは、式「条件Ｘ  ＯＲ  条件Ｙ」を簡単化した式として、「ＨＥＮＫＯＢＩ＞０  ＯＲ  ＨＥＮＫＯＢＩ２＞０」が得られる。
【０１２１】
図７の説明に戻り、記録部７０３は、簡単化した式を対象値の一致候補として記録する。図１５の例では、記録部７０３は、人手作成表Ｔ１の条件列「変更の有無」の値「あり」の一致候補として、「ＨＥＮＫＯＢＩ＞０  ＯＲ  ＨＥＮＫＯＢＩ２＞０」を記録する。
【０１２２】
ここで、上記条件Ｘは、人手作成表Ｔ１の条件列「変更の有無」の値「あり」、かつ、条件列「変更年月日」の値「１９９９０３３１以前」に対応している。また、人手作成表Ｔ１の条件列「変更の有無」の値「あり」の一致候補は、「ＨＥＮＫＯＢＩ＞０  ＯＲ  ＨＥＮＫＯＢＩ２＞０」である。
【０１２３】
そこで、記録部７０３は、上記条件Ｘから「ＨＥＮＫＯＢＩ＞０  ＯＲ  ＨＥＮＫＯＢＩ２＞０」を削除した削除後の値を、人手作成表Ｔ１の条件列「変更年月日」の値「１９９９０３３１以前」の一致候補として記録することにしてもよい。上記条件Ｘから「ＨＥＮＫＯＢＩ＞０  ＯＲ  ＨＥＮＫＯＢＩ２＞０」を削除した削除後の値は以下の通りである。
【０１２４】
「（ＨＥＮＫＯＢＩ＜＝１９９９０３３１）ＡＮＤ（ＨＥＮＫＯＢＩ＞ＨＥＮＫＯＢＩ２）」ＯＲ「（ＨＥＮＫＯＢＩ  ＮＯＴ  ＞  ＨＥＮＫＯＢＩ２）ＡＮＤ（ＨＥＮＫＯＢＩ２＜＝１９９９０３３１）」
【０１２５】
出力部７０７は、記録された一致列を出力する。また、出力部７０７は、記録された不一致列を出力する。また、出力部７０７は、記録された一致候補列を出力することにしてもよい。具体的には、例えば、出力部７０７は、一対一記述一致列テーブル５００を参照して、後述の図１６に示すような記述一致案１６００を出力することにしてもよい。
【０１２６】
なお、出力部７０７の出力形式としては、例えば、ディスプレイ２０６への表示、不図示のプリンタへの印刷出力、Ｉ／Ｆ２０５による外部装置への送信、メモリ２０２やディスク２０４などの記憶装置への記憶がある。
【０１２７】
また、出力部７０７は、記録された不一致行を出力する。また、出力部７０７は、二つのルール表Ｔ１，Ｔ２において、一致列の範囲で行の値が一致する行同士の対応関係を出力することにしてもよい。具体的には、例えば、出力部７０７は、不一致行テーブル６００を参照して、後述の図１７に示すような不一致行案１７００を出力することにしてもよい。
【０１２８】
また、出力部７０７は、一致候補列として記録した第１の列集合の値の一致候補となる値を出力することにしてもよい。具体的には、例えば、出力部７０７は、後述の図１８に示すような複数列一致候補案１８００を出力することにしてもよい。
【０１２９】
（記述一致案１６００の具体例）
図１６は、記述一致案１６００の具体例を示す説明図である。図１６において、記述一致案１６００は、記述一致条件案１６１０と、記述一致アクション案１６２０とを含む。記述一致条件案１６１０は、項目種別「条件」について、二つのルール表Ｔ１，Ｔ２の項目間（列間）の一致または不一致の対応関係を示す。また、記述一致アクション案１６２０は、項目種別「アクション」について、二つのルール表Ｔ１，Ｔ２の項目間（列間）の一致または不一致の対応関係を示す。
【０１３０】
記述一致条件案１６１０によれば、ユーザは、人手作成表Ｔ１の項目「区分」とソース生成表Ｔ２の項目「ＫＵＢＵＮ」とが意味的に同じ可能性が高いと認識することができる。また、記述一致条件案１６１０によれば、ユーザは、人手作成表Ｔ１の項目「変更の有無」および「変更年月日」と、ソース生成表Ｔ２の項目「ＨＥＮＫＯＢＩ」および「ＨＥＮＫＯＢＩ２」とが二項目で意味的に同じである可能性が高いと認識することができる。
【０１３１】
また、記述一致アクション案１６２０によれば、ユーザは、人手作成表Ｔ１の項目「出力区分」とソース生成表Ｔ２の項目「ＯＵＴ−ＫＵＢＵＮ」とが意味的に同じ可能性が高いと認識することができる。なお、記述一致案１６００は、具体的には、例えば、図１６の下段に示すように、ＣＳＶ等の表形式で記述した文字列として出力される。
【０１３２】
（不一致行案１７００の具体例）
図１７は、不一致行案１７００の具体例を示す説明図である。図１７において、不一致行案１７００は、二つのルール表Ｔ１，Ｔ２の行同士の一致または不一致の対応関係を示す。不一致行案１７００によれば、ユーザは、人手作成表Ｔ１の項番１，２，３，４の行が、ソース生成表Ｔ２のいずれかの行と一致している可能性が高いと認識することができる。
【０１３３】
また、不一致行案１７００によれば、ユーザは、ソース生成表Ｔ２の項番１，２，３，４，５，６の行が、人手作成表Ｔ１のいずれかの行と一致している可能性が高いと認識することができる。また、不一致行案１７００によれば、ユーザは、ソース生成表Ｔ２の項番７の行が、人手作成表Ｔ１のいずれの行とも一致していない不一致行である可能性が高いと認識できる。なお、不一致行案１７００は、具体的には、例えば、図１７の下段に示すように、ＣＳＶ等の表形式で記述した文字列として出力される。
【０１３４】
（複数列一致候補案１８００の具体例）
図１８は、複数列一致候補案１８００の具体例を示す説明図である。図１８において、複数列一致候補案１８００は、一致候補列として記録した第１の列集合１３０１（図１３参照）の値の一致候補となる値を示す。ただし、条件列「変更年月日」の値の一致候補となる値は参考情報として提示する。
【０１３５】
複数列一致候補案１８００によれば、ユーザは、人手作成表Ｔ１の項目「変更の有無」の値「あり」の一致候補となる値が、「ＨＥＮＫＯＢＩ＞０  ＯＲ  ＨＥＮＫＯＢＩ２＞０」である可能性が高いと認識できる。また、ユーザは、人手作成表Ｔ１の項目「変更の有無」の値「なし」の一致候補となる値が、「ＨＥＮＫＯＢＩ  ＮＯＴ＞０  ＡＮＤ  ＨＥＮＫＯＢＩ２  ＮＯＴ＞０」である可能性が高いと認識できる。
【０１３６】
また、ユーザは、人手作成表Ｔ１の項目「変更年月日」の値「１９９９０３３１以前」の一致候補となる値が、「（ＨＥＮＫＯＢＩ＜＝１９９９０３３１）ＡＮＤ（ＨＥＮＫＯＢＩ＞ＨＥＮＫＯＢＩ２）」ＯＲ「（ＨＥＮＫＯＢＩ  ＮＯＴ  ＞  ＨＥＮＫＯＢＩ２）ＡＮＤ（ＨＥＮＫＯＢＩ２＜＝１９９９０３３１）」である可能性があると認識できる。
【０１３７】
また、ユーザは、人手作成表Ｔ１の項目「変更年月日」の値「１９９９０４０１以降」の一致候補となる値が、「（ＨＥＮＫＯＢＩ＞１９９９０３３１）ＡＮＤ（ＨＥＮＫＯＢＩ＞ＨＥＮＫＯＢＩ２）」ＯＲ「（ＨＥＮＫＯＢＩ  ＮＯＴ  ＞  ＨＥＮＫＯＢＩ２）ＡＮＤ（ＨＥＮＫＯＢＩ２＞１９９９０３３１）」である可能性があると認識できる。
【０１３８】
（ルール表確認支援装置１０１のルール表確認支援処理手順）
つぎに、実施の形態１にかかるルール表確認支援装置１０１のルール表確認支援処理手順について説明する。
【０１３９】
図１９は、実施の形態１にかかるルール表確認支援装置１０１のルール表確認支援処理手順の一例を示すフローチャートである。図１９のフローチャートにおいて、まず、ルール表確認支援装置１０１は、人手作成表Ｔ１とソース生成表Ｔ２とを取得したか否かを判断する（ステップＳ１９０１）。ここで、ルール表確認支援装置１０１は、人手作成表Ｔ１とソース生成表Ｔ２とを取得するのを待つ（ステップＳ１９０１：Ｎｏ）。
【０１４０】
そして、ルール表確認支援装置１０１は、人手作成表Ｔ１とソース生成表Ｔ２とを取得した場合（ステップＳ１９０１：Ｙｅｓ）、不一致行登録処理を実行する（ステップＳ１９０２）。なお、不一致行登録処理の具体的な処理手順については、図２０〜図２２を用いて後述する。
【０１４１】
つぎに、ルール表確認支援装置１０１は、一致候補登録処理を実行する（ステップＳ１９０３）。なお、一致候補登録処理の具体的な処理手順については、図２３および図２４を用いて後述する。
【０１４２】
そして、ルール表確認支援装置１０１は、記述一致案１６００、不一致行案１７００および複数列一致候補案１８００（例えば、図１６〜図１８参照）を出力して（ステップＳ１９０４）、本フローチャートによる一連の処理を終了する。これにより、二つのルール表Ｔ１，Ｔ２の一致、不一致の確認作業を支援することができる。
【０１４３】
＜不一致行登録処理の具体的処理手順＞
つぎに、図１９のステップＳ１９０２に示した不一致行登録処理の具体的な処理手順について説明する。
【０１４４】
図２０〜図２２は、不一致行登録処理の具体的処理手順の一例を示すフローチャートである。図２０のフローチャートにおいて、まず、ルール表確認支援装置１０１は、二つのルール表Ｔ１，Ｔ２のうちの列数が少ない一方の表を選択する（ステップＳ２００１）。
【０１４５】
つぎに、ルール表確認支援装置１０１は、一方の表から選択されていない未選択の条件列を選択する（ステップＳ２００２）。以下の説明では、ステップＳ２００２において選択された条件列を「該当列」と表記する場合がある。そして、ルール表確認支援装置１０１は、一方の表から該当列の値を取得する（ステップＳ２００３）。
【０１４６】
つぎに、ルール表確認支援装置１０１は、他方の表に該当列の値を全て含む条件列があるか否かを判定する（ステップＳ２００４）。ここで、他方の表に該当列の値を全て含む条件列がある場合（ステップＳ２００４：Ｙｅｓ）、ルール表確認支援装置１０１は、該当列と他方の条件列とを一致列として記録する（ステップＳ２００５）。
【０１４７】
そして、ルール表確認支援装置１０１は、他方の条件列の値の中に、該当列のいずれの値とも一致しない値があるか否かを判定する（ステップＳ２００６）。ここで、一致しない値がない場合（ステップＳ２００６：Ｎｏ）、ルール表確認支援装置１０１は、ステップＳ２００８に移行する。
【０１４８】
一方、一致しない値がある場合（ステップＳ２００６：Ｙｅｓ）、ルール表確認支援装置１０１は、一致しない値を含む他方の表の行を不一致行として記録する（ステップＳ２００７）。つぎに、ルール表確認支援装置１０１は、一方の表から選択されていない未選択の条件列があるか否かを判断する（ステップＳ２００８）。
【０１４９】
ここで、未選択の条件列がある場合（ステップＳ２００８：Ｙｅｓ）、ルール表確認支援装置１０１は、ステップＳ２００２に戻る。一方、未選択の条件列がない場合（ステップＳ２００８：Ｎｏ）、ルール表確認支援装置１０１は、図２１に示すステップＳ２１０１に移行する。
【０１５０】
また、ステップＳ２００４において、他方の表に該当列の値を全て含む条件列がない場合（ステップＳ２００４：Ｎｏ）、ルール表確認支援装置１０１は、該当列を不一致列として記録して（ステップＳ２００９）、ステップＳ２００８に移行する。
【０１５１】
図２１のフローチャートにおいて、まず、ルール表確認支援装置１０１は、一方の表から選択されていない未選択の出力列を選択する（ステップＳ２１０１）。以下の説明では、ステップＳ２１０１において選択された出力列を「該当列」と表記する場合がある。そして、ルール表確認支援装置１０１は、一方の表から該当列の値を取得する（ステップＳ２１０２）。
【０１５２】
つぎに、ルール表確認支援装置１０１は、他方の表に該当列の値を全て含む出力列があるか否かを判定する（ステップＳ２１０３）。ここで、他方の表に該当列の値を全て含む出力列がある場合（ステップＳ２１０３：Ｙｅｓ）、ルール表確認支援装置１０１は、該当列と他方の出力列とを一致列として記録する（ステップＳ２１０４）。
【０１５３】
そして、ルール表確認支援装置１０１は、他方の出力列の値の中に、該当列のいずれの値とも一致しない値があるか否かを判定する（ステップＳ２１０５）。ここで、一致しない値がない場合（ステップＳ２１０５：Ｎｏ）、ルール表確認支援装置１０１は、ステップＳ２１０７に移行する。
【０１５４】
一方、一致しない値がある場合（ステップＳ２１０５：Ｙｅｓ）、ルール表確認支援装置１０１は、一致しない値を含む他方の表の行を不一致行として記録する（ステップＳ２１０６）。つぎに、ルール表確認支援装置１０１は、一方の表から選択されていない未選択の出力列があるか否かを判断する（ステップＳ２１０７）。
【０１５５】
ここで、未選択の出力列がある場合（ステップＳ２１０７：Ｙｅｓ）、ルール表確認支援装置１０１は、ステップＳ２１０１に戻る。一方、未選択の出力列がない場合（ステップＳ２１０７：Ｎｏ）、ルール表確認支援装置１０１は、図２２に示すステップＳ２２０１に移行する。
【０１５６】
また、ステップＳ２１０３において、他方の表に該当列の値を全て含む出力列がない場合（ステップＳ２１０３：Ｎｏ）、ルール表確認支援装置１０１は、該当列を不一致列として記録して（ステップＳ２１０８）、ステップＳ２１０７に移行する。
【０１５７】
図２２のフローチャートにおいて、まず、ルール表確認支援装置１０１は、一致列の範囲で、一方の表の各行の値が、他方の表の少なくともいずれかの行の値と一致するか否かを判定する（ステップＳ２２０１）。ここで、一致する場合（ステップＳ２２０１：Ｙｅｓ）、ルール表確認支援装置１０１は、記録した一致列を一対一記述一致列テーブル５００に登録する（ステップＳ２２０２）。
【０１５８】
つぎに、ルール表確認支援装置１０１は、他方の表のうち条件列と出力列の両方で不一致行となる行があるか否かを判断する（ステップＳ２２０３）。ここで、不一致行となる行がない場合（ステップＳ２２０３：Ｎｏ）、ルール表確認支援装置１０１は、不一致行登録処理を呼び出したステップに戻る。一方、不一致行となる行がある場合（ステップＳ２２０３：Ｙｅｓ）、ルール表確認支援装置１０１は、条件列と出力列の両方で不一致行となる行を不一致行テーブル６００に登録して（ステップＳ２２０４）、不一致行登録処理を呼び出したステップに戻る。
【０１５９】
また、ステップＳ２２０１において、一致しない場合（ステップＳ２２０１：Ｎｏ）、ルール表確認支援装置１０１は、一方の表の一致列として記録した列を不一致列として記録して選択対象から除外する（ステップＳ２２０５）。
【０１６０】
そして、ルール表確認支援装置１０１は、一方の表に一致列の候補となる列があるか否かを判断する（ステップＳ２２０６）。一致列の候補となる列とは、一方の表の不一致列として記録された列のうち選択対象から除外された列以外の列である。
【０１６１】
ここで、一致列の候補となる列がない場合（ステップＳ２２０６：Ｎｏ）、ルール表確認支援装置１０１は、ステップＳ２２０３に移行する。一方、一致列の候補となる列がある場合（ステップＳ２２０６：Ｙｅｓ）、ルール表確認支援装置１０１は、図２０に示したステップＳ２００２に戻る。ただし、この場合の選択対象となる条件列は、一致列の候補となる列となる。
【０１６２】
これにより、二つの表Ｔ１，Ｔ２の一致列を一対一記述一致列テーブル５００に登録することができる。また、他方の表の不一致行を不一致行テーブル６００に登録することができる。なお、ステップＳ２２０１、ステップＳ２２０５およびステップＳ２２０６の処理は省略することにしてもよい。
【０１６３】
＜一致候補登録処理の具体的処理手順＞
つぎに、図１９のステップＳ１９０３に示した一致候補登録処理の具体的な処理手順について説明する。
【０１６４】
図２３および図２４は、一致候補登録処理の具体的処理手順の一例を示すフローチャートである。図２３のフローチャートにおいて、まず、ルール表確認支援装置１０１は、他方の表から不一致行を除外する（ステップＳ２３０１）。
【０１６５】
つぎに、ルール表確認支援装置１０１は、二つの表Ｔ１，Ｔ２の一致列を特定する（ステップＳ２３０２）。そして、ルール表確認支援装置１０１は、二つの表Ｔ１，Ｔ２の一致列の中に項目種別「アクション」の一致列があるか否かを判断する（ステップＳ２３０３）。
【０１６６】
ここで、項目種別「アクション」の一致列がない場合（ステップＳ２３０３：Ｎｏ）、ルール表確認支援装置１０１は、二つの表Ｔ１，Ｔ２を不一致の表として出力して（ステップＳ２３０４）、一連の処理を終了する。すなわち、二つの表Ｔ１，Ｔ２の一致列として出力列が一列もない場合には、ルール表確認支援装置１０１は、二つの表Ｔ１，Ｔ２を不一致の表として出力する。
【０１６７】
一方、項目種別「アクション」の一致列がある場合（ステップＳ２３０３：Ｙｅｓ）、ルール表確認支援装置１０１は、項目種別を「条件」に設定する（ステップＳ２３０５）。そして、ルール表確認支援装置１０１は、一方の表のうちの一致列として記録した列を除く残余の列から第１の列集合を抽出する（ステップＳ２３０６）。
【０１６８】
ただし、第１の列集合の項目種別は、ステップＳ２３０５またはステップＳ２３１１において設定された項目種別である。
【０１６９】
つぎに、ルール表確認支援装置１０１は、他方の表のうちの一致列として記録した列を除く残余の列から第２の列集合を抽出する（ステップＳ２３０７）。そして、ルール表確認支援装置１０１は、第１の列集合および第２の列集合が抽出されたか否かを判断する（ステップＳ２３０８）。
【０１７０】
ここで、第１の列集合および第２の列集合が抽出されなかった場合（ステップＳ２３０８：Ｎｏ）、ルール表確認支援装置１０１は、一対一記述一致列テーブル５００に抽出列を不一致列として登録する（ステップＳ２３０９）。なお、抽出列は、ステップＳ２３０６またはステップＳ２３０７において抽出された列である。
【０１７１】
つぎに、ルール表確認支援装置１０１は、項目種別が「出力」に設定されているか否かを判断する（ステップＳ２３１０）。ここで、項目種別が「条件」の場合（ステップＳ２３１０：Ｎｏ）、ルール表確認支援装置１０１は、項目種別を「出力」に設定して（ステップＳ２３１１）、ステップＳ２３０６に戻る。
【０１７２】
一方、項目種別が「出力」の場合（ステップＳ２３１０：Ｙｅｓ）、ルール表確認支援装置１０１は、一致候補登録処理を呼び出したステップに戻る。
【０１７３】
また、ステップＳ２３０８において、第１の列集合および第２の列集合が抽出された場合（ステップＳ２３０８：Ｙｅｓ）、ルール表確認支援装置１０１は、第２の列集合の行の値として取り得る他のケースが存在するか否かを判定する（ステップＳ２３１２）。ここで、他のケースが存在する場合（ステップＳ２３１２：Ｙｅｓ）、ルール表確認支援装置１０１は、ステップＳ２３１０に移行する。
【０１７４】
一方、他のケースが存在しない場合（ステップＳ２３１２：Ｎｏ）、ルール表確認支援装置１０１は、一対一記述一致列テーブル５００に第１の列集合と第２の列集合とを一致候補列として登録して（ステップＳ２３１３）、図２４に示すステップＳ２４０１に移行する。
【０１７５】
図２４のフローチャートにおいて、まず、ルール表確認支援装置１０１は、第１の列集合のうち複数行で値が同一となる列があるか否かを判断する（ステップＳ２４０１）。ここで、複数行で値が同一となる列がある場合（ステップＳ２４０１：Ｙｅｓ）、一方の表から、対象列の対象値（以下、「対象値Ａ」）を取得する（ステップＳ２４０２）。
【０１７６】
つぎに、ルール表確認支援装置１０１は、他方の表から、対象値Ａの一致候補となる値を取得する（ステップＳ２４０３）。なお、対象値Ａの一致候補となる値とは、一致列の範囲で一方の表の対象値Ａを含む行と値が一致する他方の表の行の第２の列集合の値である。
【０１７７】
そして、ルール表確認支援装置１０１は、対象値Ａの一致候補となる値を条件としてＯＲ条件で連結した式を作成する（ステップＳ２４０４）。つぎに、ルール表確認支援装置１０１は、作成した式を簡単化する（ステップＳ２４０５）。そして、ルール表確認支援装置１０１は、簡単化した式を対象値Ａの一致候補として記録して（ステップＳ２４０６）、ステップＳ２４０１に戻る。
【０１７８】
また、ステップＳ２４０１において、対象列となっていない列であって、複数行で値が同一となる列がない場合（ステップＳ２４０１：Ｎｏ）、ルール表確認支援装置１０１は、第１の列集合の全ての値に一致候補があるか否かを判断する（ステップＳ２４０７）。
【０１７９】
ここで、第１の列集合のいずれかの値に一致候補がない場合（ステップＳ２４０７：Ｎｏ）、一方の表から第１の列集合の一致候補がない値（以下、「対象値Ｂ」）を取得する（ステップＳ２４０８）。
【０１８０】
そして、ルール表確認支援装置１０１は、他方の表から、対象値Ｂの一致候補となる値を取得する（ステップＳ２４０９）。なお、対象値Ｂの一致候補となる値とは、一致列の範囲で一方の表の対象値Ｂを含む行と値が一致する他方の表の行の第２の列集合の値である。
【０１８１】
つぎに、ルール表確認支援装置１０１は、対象値Ｂの一致候補となる値から既知の一致候補を削除する（ステップＳ２４１０）。なお、既知の一致候補とは、ステップＳ２４０６において対象値Ａの一致候補として記録した値（簡単化した式）である。
【０１８２】
そして、ルール表確認支援装置１０１は、削除後の値を対象値Ｂの一致候補として記録して（ステップＳ２４１１）、ステップＳ２４０７に戻る。また、ステップＳ２４０７において、第１の列集合の全ての値に一致候補がある場合（ステップＳ２４０７：Ｙｅｓ）、ルール表確認支援装置１０１は、一致候補登録処理を呼び出したステップに戻る。
【０１８３】
これにより、二つの表Ｔ１，Ｔ２の一致列候補を一対一記述一致列テーブル５００に登録することができる。また、一致列候補として登録した第１の列集合の値の一致候補となる値を記録することができる。
【０１８４】
以上説明したように、実施の形態１にかかるルール表確認支援装置１０１によれば、一方の表から選択した第１の列と項目種別が同一であり、第１の列の値を全て含む第２の列が他方の表に存在するか否かを判定することができる。そして、ルール表確認支援装置１０１によれば、第２の列が存在する場合に、第１の列と第２の列とを一致列として記録することができる。
【０１８５】
これにより、二つのルール表Ｔ１，Ｔ２で意味的に同じ項目に対して互いに異なる名称が使われていても、意味的に同じである可能性が高い項目のペアを自動抽出することができる。このため、ユーザは、各項目の記述上の意味を調査するなどの作業を行うことなく、二つのルール表Ｔ１，Ｔ２で意味的に同じである可能性が高い項目のペアを把握して、項目間の一致、不一致の確認を行うことができる。
【０１８６】
また、ルール表確認支援装置１０１によれば、第２の列が存在する場合に、第２の列の値の中に、第１の列のいずれの値とも一致しない値が存在するか否かを判定することができる。そして、ルール表確認支援装置１０１によれば、一致しない値が存在する場合に、当該一致しない値を含む第２のルール表の行を不一致行として記録することができる。
【０１８７】
これにより、ユーザは、二つのルール表Ｔ１，Ｔ２で意味的に同じである可能性が高い項目について、どちらかの表にしか記述されていない値を特定でき、ルール表に記述すべき値の漏れ、あるいは、不要な値の記述を発見しやすくなる。
【０１８８】
また、ルール表確認支援装置１０１によれば、第２の列が存在しない場合には、第１の列を不一致列として記録することができる。これにより、ユーザは、二つのルール表Ｔ１，Ｔ２のどちらかにしか記述されていない項目を特定でき、ルール表に記述すべき項目の漏れ、あるいは、不要な項目の記述を発見しやすくなる。
【０１８９】
また、ルール表確認支援装置１０１によれば、複数の一致列が記録された場合、一致列の範囲で、一方の表の各行の値が、他方の表の少なくともいずれかの行の値と一致するか否かを判定することができる。そして、ルール表確認支援装置１０１によれば、他方の表のいずれの行の値とも一致しない場合には、一方の表の一致列として記録した複数の列を不一致列として記録することができる。これにより、互いに意味が異なる項目同士が、列単位の値が偶然一致したために一致列として扱われることを防ぐことができる。
【０１９０】
また、ルール表確認支援装置１０１によれば、一方の表のうちの一致列として記録した列を除く残余の列から、項目種別が同一の第１の列集合を抽出することができる。また、ルール表確認支援装置１０１によれば、他方の表のうちの一致列として記録した列を除く残余の列から、第１の列集合と項目種別が同一の第２の列集合を抽出することができる。また、ルール表確認支援装置１０１によれば、第２の列集合の不一致行として記録した行を除く残余の行の値に基づいて、第２の列集合の行の値として取り得る他のケースが存在するか否かを判定することができる。そして、ルール表確認支援装置１０１によれば、他のケースが存在しない場合に、第１の列集合と第２の列集合とを一致候補列として記録することができる。
【０１９１】
これにより、二つのルール表Ｔ１，Ｔ２で意味的に同じ項目が一対一でない場合であっても、意味的に同じである可能性がある項目の集合を自動抽出することができる。このため、ユーザは、二つのルール表Ｔ１，Ｔ２で意味的に同じである可能性がある項目の集合を把握して、項目間の一致、不一致の確認を行うことができる。
【０１９２】
また、ルール表確認支援装置１０１によれば、二つのルール表Ｔ１，Ｔ２において、一致列の範囲で行の値が一致する行同士の対応関係を記録することができる。これにより、ユーザは、二つのルール表Ｔ１，Ｔ２で対応している可能性が高い行のペアを把握することができる。
【０１９３】
これらのことから、ルール表確認支援装置１０１によれば、二つのルール表Ｔ１，Ｔ２で意味的に同じ項目や値に異なる記述が使われていても、対応する項目や値を特定しやすくして、二つのルール表Ｔ１，Ｔ２の一致、不一致の確認を容易にすることができる。これにより、ユーザは、既存のアプリケーションに実装しているルールをＢＲＭＳ化する際などに、人手により作成したＢＲＭＳのルール表に漏れがないかどうかを確認しやすくなる。
【０１９４】
（実施の形態２）
つぎに、実施の形態２にかかるルール表確認支援装置１０１について説明する。なお、実施の形態１で説明した箇所と同一箇所については、同一符号を付して図示および説明を省略する。
【０１９５】
ここで、二つのルール表Ｔ１，Ｔ２において、ある項目の値として、意味的に同じ値を表していても、互いに異なる値が用いられている場合がある。この場合、実施の形態１では、一致列となる列（第１の列と第２の列）が存在する場合であっても記録されないことになる。一方で、例えば、人手作成表Ｔ１のある項目については、ソース生成表Ｔ２のどの項目と対応しているのかが予め分かっている場合がある。
【０１９６】
そこで、実施の形態２では、二つのルール表Ｔ１，Ｔ２の項目間の対応関係が既知のものについては、補助情報（例えば、後述の図２６に示す補助情報２６００）としてルール表確認支援装置１０１に与えることで、二つのルール表Ｔ１，Ｔ２において一致列となる列の記録漏れを防ぐルール表確認支援方法について説明する。
【０１９７】
（人手作成表Ｔ１およびソース生成表Ｔ２の具体例）
つぎに、人手作成表Ｔ１およびソース生成表Ｔ２の具体例について説明する。
【０１９８】
図２５は、人手作成表Ｔ１およびソース生成表Ｔ２の具体例を示す説明図である。図２５において、人手作成表Ｔ１は、条件を表す項目と、条件を満たす場合のアクションを表す項目とを列とし、各項目の値の組合せを行とする表形式で記述されたルール表である。また、ソース生成表Ｔ２は、条件を表す項目と、条件を満たす場合のアクションを表す項目とを列とし、各項目の値の組合せを行とする表形式で記述されたルール表である。
【０１９９】
ここでは、人手作成表Ｔ１の項目「区分」については、ソース生成表Ｔ２の項目「ＫＵＢＵＮ」と対応しているのかが予め分かっている場合を想定する。また、人手作成表Ｔ１の項目「出力区分」については、ソース生成表Ｔ２の項目「ＯＵＴ−ＫＵＢＵＮ」と対応しているのかが予め分かっている場合を想定する。
【０２００】
ただし、人手作成表Ｔ１の項目「区分」の値「１０」とソース生成表Ｔ２の項目「ＫＵＢＵＮ」の値「１」とは、意味的に同じ値を表しているが、互いに異なる値が用いられている。同様に、人手作成表Ｔ１の項目「区分」の値「２０」とソース生成表Ｔ２の項目「ＫＵＢＵＮ」の値「２」とは、意味的に同じ値を表しているが、互いに異なる値が用いられている。
【０２０１】
また、人手作成表Ｔ１の項目「出力区分」の値「１」とソース生成表Ｔ２の項目「ＯＵＴ−ＫＵＢＵＮ」の値「１０」とは、意味的に同じ値を表しているが、互いに異なる値が用いられている。同様に、人手作成表Ｔ１の項目「出力区分」の値「２」とソース生成表Ｔ２の項目「ＯＵＴ−ＫＵＢＵＮ」の値「２０」とは、意味的に同じ値を表しているが、互いに異なる値が用いられている。
【０２０２】
同様に、人手作成表Ｔ１の項目「出力区分」の値「３」とソース生成表Ｔ２の項目「ＯＵＴ−ＫＵＢＵＮ」の値「３０」とは、意味的に同じ値を表しているが、互いに異なる値が用いられている。同様に、人手作成表Ｔ１の項目「出力区分」の値「１０」とソース生成表Ｔ２の項目「ＯＵＴ−ＫＵＢＵＮ」の値「１００」とは、意味的に同じ値を表しているが、互いに異なる値が用いられている。
【０２０３】
（補助情報２６００の具体例）
つぎに、補助情報２６００の具体例について説明する。
【０２０４】
図２６は、補助情報２６００の具体例を示す説明図である。図２６において、補助情報２６００は、人手作成表Ｔ１とソース生成表Ｔ２との間で対応する項目間の対応関係を示す。具体的には、補助情報２６００は、人手作成表Ｔ１の項目「区分」と、ソース生成表Ｔ２の項目「ＫＵＢＵＮ」との対応関係を示している。また、補助情報２６００は、人手作成表Ｔ１の項目「出力区分」と、ソース生成表Ｔ２の項目「ＯＵＴ−ＫＵＢＵＮ」との対応関係を示している。
【０２０５】
（ルール表確認支援装置１０１の機能的構成例）
つぎに、実施の形態２にかかるルール表確認支援装置１０１の機能的構成例について説明する。ただし、実施の形態２にかかるルール表確認支援装置１０１の機能的構成例は、実施の形態１にかかるルール表確認支援装置１０１の機能的構成例と同様のため図示を省略する（図７参照）。以下、実施の形態１にかかるルール表確認支援装置１０１と異なる機能部について説明する。
【０２０６】
取得部７０１は、補助情報を取得する。ここで、補助情報は、人手により作成される情報であり、二つのルール表Ｔ１，Ｔ２の間で対応する項目間の対応関係を示す情報である。具体的には、例えば、取得部７０１は、入力装置２０７を用いたユーザの操作入力により、補助情報２６００を取得する。また、取得部７０１は、例えば、ネットワーク２１０を介して、外部装置から補助情報２６００を取得することにしてもよい。
【０２０７】
一致列判定部７０２は、取得された補助情報を参照して、一方の表から選択した第１の列に対応する第２の列が他方の表に存在するか否かを判定する。例えば、第１の列として、人手作成表Ｔ１から項目名が「区分」の条件列が選択されたとする。この場合、一致列判定部７０２は、例えば、補助情報２６００を参照して、条件列「区分」に対応する条件列がソース生成表Ｔ２に存在するか否かを判定する。
【０２０８】
図２６に示した補助情報２６００の例では、人手作成表Ｔ１の項目「区分」と、ソース生成表Ｔ２の項目「ＫＵＢＵＮ」との対応関係が示されている。このため、一致列判定部７０２は、補助情報２６００を参照して、条件列「区分」に対応する条件列がソース生成表Ｔ２に存在すると判定する。
【０２０９】
また、例えば、第１の列として、人手作成表Ｔ１から項目名が「出力区分」の条件列が選択されたとする。この場合、一致列判定部７０２は、例えば、補助情報２６００を参照して、条件列「出力区分」に対応する条件列がソース生成表Ｔ２に存在するか否かを判定する。
【０２１０】
図２６に示した補助情報２６００の例では、人手作成表Ｔ１の項目「出力区分」と、ソース生成表Ｔ２の項目「ＯＵＴ−ＫＵＢＵＮ」との対応関係が示されている。このため、一致列判定部７０２は、補助情報２６００を参照して、条件列「出力区分」に対応する条件列がソース生成表Ｔ２に存在すると判定する。
【０２１１】
（ルール表確認支援装置１０１のルール表確認支援処理手順）
つぎに、実施の形態２にかかるルール表確認支援装置１０１のルール表確認支援処理手順について説明する。
【０２１２】
図２７は、実施の形態２にかかるルール表確認支援装置１０１のルール表確認支援処理手順の一例を示すフローチャートである。図２７のフローチャートにおいて、まず、ルール表確認支援装置１０１は、人手作成表Ｔ１とソース生成表Ｔ２と補助情報２６００とを取得したか否かを判断する（ステップＳ２７０１）。ここで、ルール表確認支援装置１０１は、人手作成表Ｔ１とソース生成表Ｔ２と補助情報２６００とを取得するのを待つ（ステップＳ２７０１：Ｎｏ）。
【０２１３】
そして、ルール表確認支援装置１０１は、人手作成表Ｔ１とソース生成表Ｔ２と補助情報２６００とを取得した場合（ステップＳ２７０１：Ｙｅｓ）、第２の不一致行登録処理を実行する（ステップＳ２７０２）。なお、第２の不一致行登録処理の具体的な処理手順については、図２８〜図３０を用いて後述する。
【０２１４】
つぎに、ルール表確認支援装置１０１は、一致候補登録処理を実行する（ステップＳ２７０３）。なお、一致候補登録処理の具体的な処理手順については、図２３および図２４に示した処理手順と同様のため、図示および説明を省略する。
【０２１５】
そして、ルール表確認支援装置１０１は、記述一致案１６００、不一致行案１７００および複数列一致候補案１８００（例えば、図１６〜図１８参照）を出力して（ステップＳ２７０４）、本フローチャートによる一連の処理を終了する。これにより、二つのルール表Ｔ１，Ｔ２の一致、不一致の確認作業を支援することができる。
【０２１６】
＜第２の不一致行登録処理の具体的処理手順＞
つぎに、図２７のステップＳ２７０２に示した第２の不一致行登録処理の具体的な処理手順について説明する。
【０２１７】
図２８〜図３０は、第２の不一致行登録処理の具体的処理手順の一例を示すフローチャートである。図２８のフローチャートにおいて、まず、ルール表確認支援装置１０１は、二つのルール表Ｔ１，Ｔ２のうちの列数が少ない一方の表を選択する（ステップＳ２８０１）。
【０２１８】
つぎに、ルール表確認支援装置１０１は、一方の表から選択されていない未選択の条件列を選択する（ステップＳ２８０２）。以下の説明では、ステップＳ２８０２において選択された条件列を「該当列」と表記する場合がある。そして、ルール表確認支援装置１０１は、一方の表から該当列の値を取得する（ステップＳ２８０３）。
【０２１９】
つぎに、ルール表確認支援装置１０１は、他方の表に該当列の値を全て含む条件列があるか否かを判定する（ステップＳ２８０４）。ここで、他方の表に該当列の値を全て含む条件列がある場合（ステップＳ２８０４：Ｙｅｓ）、ルール表確認支援装置１０１は、該当列と他方の条件列とを一致列として記録する（ステップＳ２８０５）。
【０２２０】
そして、ルール表確認支援装置１０１は、他方の条件列の値の中に、該当列のいずれの値とも一致しない値があるか否かを判定する（ステップＳ２８０６）。ここで、一致しない値がない場合（ステップＳ２８０６：Ｎｏ）、ルール表確認支援装置１０１は、ステップＳ２８０８に移行する。
【０２２１】
一方、一致しない値がある場合（ステップＳ２８０６：Ｙｅｓ）、ルール表確認支援装置１０１は、一致しない値を含む他方の表の行を不一致行として記録する（ステップＳ２８０７）。つぎに、ルール表確認支援装置１０１は、一方の表から選択されていない未選択の条件列があるか否かを判断する（ステップＳ２８０８）。
【０２２２】
ここで、未選択の条件列がある場合（ステップＳ２８０８：Ｙｅｓ）、ルール表確認支援装置１０１は、ステップＳ２８０２に戻る。一方、未選択の条件列がない場合（ステップＳ２８０８：Ｎｏ）、ルール表確認支援装置１０１は、図２９に示すステップＳ２９０１に移行する。
【０２２３】
また、ステップＳ２８０４において、他方の表に該当列の値を全て含む条件列がない場合（ステップＳ２８０４：Ｎｏ）、ルール表確認支援装置１０１は、補助情報２６００を参照して、他方の表に該当列に対応する条件列があるか否かを判断する（ステップＳ２８０９）。
【０２２４】
ここで、該当列に対応する条件列がある場合（ステップＳ２８０９：Ｙｅｓ）、ルール表確認支援装置１０１は、ステップＳ２８０５に移行する。一方、該当列に対応する条件列がない場合（ステップＳ２８０９：Ｎｏ）、ルール表確認支援装置１０１は、該当列を不一致列として記録して（ステップＳ２８１０）、ステップＳ２８０８に移行する。
【０２２５】
図２９のフローチャートにおいて、まず、ルール表確認支援装置１０１は、一方の表から選択されていない未選択の出力列を選択する（ステップＳ２９０１）。以下の説明では、ステップＳ２９０１において選択された出力列を「該当列」と表記する場合がある。そして、ルール表確認支援装置１０１は、一方の表から該当列の値を取得する（ステップＳ２９０２）。
【０２２６】
つぎに、ルール表確認支援装置１０１は、他方の表に該当列の値を全て含む出力列があるか否かを判定する（ステップＳ２９０３）。ここで、他方の表に該当列の値を全て含む出力列がある場合（ステップＳ２９０３：Ｙｅｓ）、ルール表確認支援装置１０１は、該当列と他方の出力列とを一致列として記録する（ステップＳ２９０４）。
【０２２７】
そして、ルール表確認支援装置１０１は、他方の出力列の値の中に、該当列のいずれの値とも一致しない値があるか否かを判定する（ステップＳ２９０５）。ここで、一致しない値がない場合（ステップＳ２９０５：Ｎｏ）、ルール表確認支援装置１０１は、ステップＳ２９０７に移行する。
【０２２８】
一方、一致しない値がある場合（ステップＳ２９０５：Ｙｅｓ）、ルール表確認支援装置１０１は、一致しない値を含む他方の表の行を不一致行として記録する（ステップＳ２９０６）。つぎに、ルール表確認支援装置１０１は、一方の表から選択されていない未選択の出力列があるか否かを判断する（ステップＳ２９０７）。
【０２２９】
ここで、未選択の出力列がある場合（ステップＳ２９０７：Ｙｅｓ）、ルール表確認支援装置１０１は、ステップＳ２９０１に戻る。一方、未選択の出力列がない場合（ステップＳ２９０７：Ｎｏ）、ルール表確認支援装置１０１は、図３０に示すステップＳ３００１に移行する。
【０２３０】
また、ステップＳ２９０３において、他方の表に該当列の値を全て含む出力列がない場合（ステップＳ２９０３：Ｎｏ）、ルール表確認支援装置１０１は、補助情報２６００を参照して、他方の表に該当列に対応する出力列があるか否かを判断する（ステップＳ２９０８）。
【０２３１】
ここで、該当列に対応する出力列がある場合（ステップＳ２９０８：Ｙｅｓ）、ルール表確認支援装置１０１は、ステップＳ２９０４に移行する。一方、該当列に対応する出力列がない場合（ステップＳ２９０８：Ｎｏ）、ルール表確認支援装置１０１は、該当列を不一致列として記録して（ステップＳ２９０９）、ステップＳ２９０７に移行する。
【０２３２】
図３０のフローチャートにおいて、まず、ルール表確認支援装置１０１は、一致列の範囲で、一方の表の各行の値が、他方の表の少なくともいずれかの行の値と一致するか否かを判定する（ステップＳ３００１）。ここで、一致する場合（ステップＳ３００１：Ｙｅｓ）、ルール表確認支援装置１０１は、記録した一致列を一対一記述一致列テーブル５００に登録する（ステップＳ３００２）。
【０２３３】
つぎに、ルール表確認支援装置１０１は、他方の表のうち条件列と出力列の両方で不一致行となる行があるか否かを判断する（ステップＳ３００３）。ここで、不一致行となる行がない場合（ステップＳ３００３：Ｎｏ）、ルール表確認支援装置１０１は、第２の不一致行登録処理を呼び出したステップに戻る。一方、不一致行となる行がある場合（ステップＳ３００３：Ｙｅｓ）、ルール表確認支援装置１０１は、条件列と出力列の両方で不一致行となる行を不一致行テーブル６００に登録して（ステップＳ３００４）、第２の不一致行登録処理を呼び出したステップに戻る。
【０２３４】
また、ステップＳ３００１において、一致しない場合（ステップＳ３００１：Ｎｏ）、ルール表確認支援装置１０１は、一方の表の一致列として記録した列を不一致列として記録して選択対象から除外する（ステップＳ３００５）。
【０２３５】
そして、ルール表確認支援装置１０１は、一方の表に一致列の候補となる列があるか否かを判断する（ステップＳ３００６）。一致列の候補となる列とは、一方の表の不一致列として記録された列のうち選択対象から除外された列以外の列である。
【０２３６】
ここで、一致列の候補となる列がない場合（ステップＳ３００６：Ｎｏ）、ルール表確認支援装置１０１は、ステップＳ３００３に移行する。一方、一致列の候補となる列がある場合（ステップＳ３００６：Ｙｅｓ）、ルール表確認支援装置１０１は、図２８に示したステップＳ２８０２に戻る。ただし、この場合の選択対象となる条件列は、一致列の候補となる列となる。
【０２３７】
これにより、二つのルール表Ｔ１，Ｔ２で意味的に同じ列（項目）の値に対して異なる記述が使われていても、意味的に同じである可能性が高い列同士を一致列として一対一記述一致列テーブル５００に登録することができる。なお、ステップＳ３００１、ステップＳ３００５およびステップＳ３００６の処理は省略することにしてもよい。
【０２３８】
以上説明したように、実施の形態２にかかるルール表確認支援装置１０１によれば、補助情報２６００を参照して、一方の表から選択した第１の列に対応する第２の列が他方の表に存在するか否かを判定することができる。そして、ルール表確認支援装置１０１によれば、第２の列が存在する場合に、第１の列と第２の列とを一致列として記録することができる。
【０２３９】
これにより、二つのルール表Ｔ１，Ｔ２で意味的に同じ項目の値に対して異なる記述が使われていても、意味的に同じである可能性が高い項目のペアを自動抽出することができる。このため、ユーザは、二つのルール表Ｔ１，Ｔ２で意味的に同じである可能性が高い項目のペアを把握して、項目間の一致、不一致の確認を行うことができる。
【０２４０】
なお、本実施の形態で説明したルール表確認支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ルール表確認支援プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本ルール表確認支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【０２４１】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０２４２】
（付記１）コンピュータが、
条件を表す項目と前記条件を満たす場合のアクションを表す項目とを列とし、各項目の値の組合せを行とする表形式で記述された第１のルール表と第２のルール表とを取得し、
前記第１のルール表から選択した第１の列と項目種別が同一であり、前記第１の列の値を全て含む第２の列が前記第２のルール表に存在するか否かを判定し、
前記第２の列が存在する場合に、前記第１の列と前記第２の列とを一致列として記録する、
処理を実行することを特徴とするルール表確認支援方法。
【０２４３】
（付記２）前記コンピュータが、
前記第２の列が存在する場合に、前記第２の列の値の中に、前記第１の列のいずれの値とも一致しない値が存在するか否かを判定し、
一致しない値が存在する場合には、当該一致しない値を含む前記第２のルール表の行を不一致行として記録する、
処理を実行することを特徴とする付記１に記載のルール表確認支援方法。
【０２４４】
（付記３）前記コンピュータが、
前記第２の列が存在しない場合には、前記第１の列を不一致列として記録する、処理を実行することを特徴とする付記１または２に記載のルール表確認支援方法。
【０２４５】
（付記４）前記コンピュータが、
複数の一致列を記録した場合、前記第１のルール表のうちの一致列として記録した複数の列についての各行の値が、前記第２のルール表のうちの一致列として記録した複数の列についての少なくともいずれかの行の値と一致するか否かを判定し、
一致しないと判定した場合には、前記第１のルール表の一致列として記録した複数の列を不一致列として記録する、
処理を実行することを特徴とする付記２または３に記載のルール表確認支援方法。
【０２４６】
（付記５）前記コンピュータが、
前記第１のルール表のうちの一致列として記録した列を除く残余の列から、項目種別が同一の第１の列集合を抽出し、
前記第２のルール表のうちの一致列として記録した列を除く残余の列から、抽出した前記第１の列集合と項目種別が同一の第２の列集合を抽出し、
抽出した前記第２の列集合の不一致行として記録した行を除く残余の行の値に基づいて、前記第２の列集合の行の値として取り得る他のケースが存在するか否かを判定し、
前記他のケースが存在しない場合に、前記第１の列集合と前記第２の列集合とを一致候補列として記録する、
処理を実行することを特徴とする付記４に記載のルール表確認支援方法。
【０２４７】
（付記６）前記コンピュータが、
前記第１のルール表と前記第２のルール表との間で一致列として記録した各列の値の組合せが一致する行同士の対応関係を記録する、処理を実行することを特徴とする付記５に記載のルール表確認支援方法。
【０２４８】
（付記７）前記コンピュータが、
前記第１のルール表と前記第２のルール表との間で対応する項目間の対応関係を示す補助情報を取得し、
取得した前記補助情報を参照して、前記第１のルール表から選択した第１の列に対応する第２の列が前記第２のルール表に存在するか否かを判定する、
処理を実行することを特徴とする付記１〜５のいずれか一つに記載のルール表確認支援方法。
【０２４９】
（付記８）コンピュータに、
条件を表す項目と前記条件を満たす場合のアクションを表す項目とを列とし、各項目の値の組合せを行とする表形式で記述された第１のルール表と第２のルール表とを取得し、
前記第１のルール表から選択した第１の列と項目種別が同一であり、前記第１の列の値を全て含む第２の列が前記第２のルール表に存在するか否かを判定し、
前記第２の列が存在する場合に、前記第１の列と前記第２の列とを一致列として記録する、
処理を実行させることを特徴とするルール表確認支援プログラム。
【０２５０】
（付記９）条件を表す項目と前記条件を満たす場合のアクションを表す項目とを列とし、各項目の値の組合せを行とする表形式で記述された第１のルール表と第２のルール表とを取得し、
前記第１のルール表から選択した第１の列と項目種別が同一であり、前記第１の列の値を全て含む第２の列が前記第２のルール表に存在するか否かを判定し、
前記第２の列が存在する場合に、前記第１の列と前記第２の列とを一致列として記録する、
制御部を有することを特徴とするルール表確認支援装置。
【０２５１】
（付記１０）コンピュータに、
条件を表す項目と前記条件を満たす場合のアクションを表す項目とを列とし、各項目の値の組合せを行とする表形式で記述された第１のルール表と第２のルール表とを取得し、
前記第１のルール表から選択した第１の列と項目種別が同一であり、前記第１の列の値を全て含む第２の列が前記第２のルール表に存在するか否かを判定し、
前記第２の列が存在する場合に、前記第１の列と前記第２の列とを一致列として記録する、
処理を実行させるルール表確認支援プログラムを記録したことを特徴とする前記コンピュータに読み取り可能な記録媒体。
【符号の説明】
【０２５２】
１０１  ルール表確認支援装置
１１０  第１のルール表
１２０  第２のルール表
５００  一対一記述一致列テーブル
６００  不一致行テーブル
７０１  取得部
７０２  一致列判定部
７０３  記録部
７０４  不一致行判定部
７０５  一致列候補判定部
７０６  一致値候補判定部
７０７  出力部
１６００  記述一致案
１７００  不一致行案
１８００  複数列一致候補案
２６００  補助情報
Ｔ１  人手作成表
Ｔ２  ソース生成表
【図１】
0006394283.tif 000002
【図２】
0006394283.tif 000003
【図３】
0006394283.tif 000004
【図４】
0006394283.tif 000005
【図５】
0006394283.tif 000006
【図６】
0006394283.tif 000007
【図７】
0006394283.tif 000008
【図８】
0006394283.tif 000009
【図９】
0006394283.tif 000010
【図１０】
0006394283.tif 000011
【図１１】
0006394283.tif 000012
【図１２】
0006394283.tif 000013
【図１３】
0006394283.tif 000014
【図１４】
0006394283.tif 000015
【図１５】
0006394283.tif 000016
【図１６】
0006394283.tif 000017
【図１７】
0006394283.tif 000018
【図１８】
0006394283.tif 000019
【図１９】
0006394283.tif 000020
【図２０】
0006394283.tif 000021
【図２１】
0006394283.tif 000022
【図２２】
0006394283.tif 000023
【図２３】
0006394283.tif 000024
【図２４】
0006394283.tif 000025
【図２５】
0006394283.tif 000026
【図２６】
0006394283.tif 000027
【図２７】
0006394283.tif 000028
【図２８】
0006394283.tif 000029
【図２９】
0006394283.tif 000030
【図３０】
0006394283.tif 000031