JP6254302B2 - ルール整合性検証装置およびルール整合性検証方法 - Google Patents

ルール整合性検証装置およびルール整合性検証方法 Download PDF

Info

Publication number
JP6254302B2
JP6254302B2 JP2016568197A JP2016568197A JP6254302B2 JP 6254302 B2 JP6254302 B2 JP 6254302B2 JP 2016568197 A JP2016568197 A JP 2016568197A JP 2016568197 A JP2016568197 A JP 2016568197A JP 6254302 B2 JP6254302 B2 JP 6254302B2
Authority
JP
Japan
Prior art keywords
rule
clause
combination
consistency
consistency verification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2016568197A
Other languages
English (en)
Other versions
JPWO2016110946A1 (ja
Inventor
恭平 小山
恭平 小山
伊藤 信治
信治 伊藤
宮崎 邦彦
邦彦 宮崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2016110946A1 publication Critical patent/JPWO2016110946A1/ja
Application granted granted Critical
Publication of JP6254302B2 publication Critical patent/JP6254302B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、ソフトウェア開発を支援する技術に係り、特に、ルール整合性検証装置およびルール整合性検証方法に関する。
ソフトウェアは、処理対象となる製品、サービスを含む業務に関する法的な規制、種々の業務上の規則、基準に従って仕様が決定され、設計される。ソフトウェアの仕様を、IF−THEN形式で整理する場合がある。IF−THEN形式の仕様は、業務ルール、システムルール、チェックルールを含む利用するフェーズに応じて様々な呼び名がある。以下、IF−THENルール単体を「ルール」といい、複数のルールの集まりを「ルールセット」という。ルールは、(1)「もし〜ならば〜である」というように自然文で記述する。(2)条件と結果の対応関係を表形式で定義した決定表で記述する。などさまざまな形態で表現される。
特許文献1は、命題形式の記述と決定表とを連携させてルールを定義する方法を開示する。特許文献1では、2つの命題形式のルールの充足可能性を判定することで、ルールセットの整合性を検証する方法が開示されている。整合性を検証することで、ルールセットに矛盾が含まれるか否かを判定できる。
なお、ルールセットが整合している(矛盾がない)とは、「ルールセットの入力変数に任意の変数値が指定されたとき、IF節が真となる全てのルールのTHEN節を全て真とできる出力変数の値が存在する」という条件を満たすことである。特許文献1は、条件を満たしているか否かを判定するために、2つの命題形式のルールのIF節の充足可能性を判定する。充足可能な場合、さらに、ルールに対応するルールのTHEN節の充足可能性を判定する。充足不能な場合、矛盾ありと判定し、そうでない場合、矛盾なしと判定する。
特開2012−190203号公報
特許文献1で開示されている技術を用いることで、ルールセットの整合性を検証できる。ルールセットに含まれるルールの数が少数の場合、かつ、ルールのTHEN節に論理和および否定が含まれないシンプルな形式の場合、特許文献1の技術は、実用的な計算時間で整合性を検証でき、有用である。しかし、ルールセットに含まれるルールの数が膨大な場合、特許文献1の技術は、検証に多くの時間を要する。また、ルールのTHEN節に論理和または否定が含まれる複雑な場合、特許文献1の技術は、十分に手当てができない。
上記の課題に鑑み、本発明では、ルールのTHEN節に論理和または否定が含まれる複雑な場合に対処すると共に、ルールセットに含まれるルール数が膨大な場合においても短時間で検証できるようにする技術を提供することを目的とする。
上述した課題は、ソフトウェア開発におけるルールセットの整合性の検証をするルール整合性検証装置であって、ルールが成立するための条件の論理式を格納するIF節と条件が成立した場合の結果の論理式を格納するTHEN節とを含むルールを含むルールセットを受け付けるルール入力部と、ルールセットに含まれるルールが互いに矛盾しないかを判定するルール整合性検証部と、ルールセットに含まれるルールが互いに矛盾しないかを判定した結果を出力する矛盾出力部を備え、ルール入力部は、ルールを表示・選択・修正するルール一覧と、ルール一覧内のルールを削除するルール削除と、ルール一覧にルールを追加するルール追加と、ルール一覧をルールセットとし整合性検証を開始する検証開始と、ルール一覧に矛盾が存在する場合に、ルールの修正優先度を出力する修正優先度と、修正優先度でルール一覧のルールを並べ替える修正優先度並べ替えと、を備え、ルールのTHEN節の論理式の構造に基づき、ルールを分類し、分類結果を表すルールラベルをルールに付与し、ルール整合性検証部は、ルールラベルが2以上ある場合、THEN節を用いてルールをグルーピングし、グループ内のルールが同一のルールラベルをもつグループ同士で互いに矛盾しないかを判定し、グループ内のルールラベルが異なるグループ同士で互いに矛盾しないかを判定し、矛盾出力部は、ルール一覧に存在する矛盾を出力する矛盾リストを備え、矛盾リストは、ルール一覧内に存在する全ての矛盾を出力するか、ルール一覧の中で選択されたルールに含まれる矛盾を出力するルール整合性検証装置により、達成できる。
また、ルール整合性検証装置の各ブロックの動作に基づく、ルール整合性検証方法により、達成できる。
本発明によれば、ルールのTHEN節に論理和または否定が含まれる複雑な場合に対処できる共に、ルールセットに含まれるルール数が膨大な場合においても短時間で検証する技術を提供できる。
ルール整合性検証装置のブロック図である。 ルール記録部のデータ構造を説明する図である。 検証方式記録部のデータ構造を説明する図である。 整合性検証対象のルール入力画面および矛盾記録部出力画面を説明する図である。 ルール入力部のルール記録部へのルール記録方法を説明するフローチャートである。 整合性検証部の整合性検証方法を説明するフローチャートである。 決定ルール整合性検証モジュールの整合性検証方法を説明するフローチャートである。 非決定ルール整合性検証モジュールの整合性検証方法を説明するフローチャートである。 整合性検証部の異なるラベルを持つルール間の整合性検証方法を説明するフローチャートである。 整合性検証部の条件部充足可能性判定処理方法を説明するフローチャートである。 非決定ルール整合性検証モジュールの他の整合性処理方法を説明するフローチャートである。 決定ルール整合性検証モジュールの他の整合性処理方法を説明するフローチャートである。
以下、本発明について、その実施形態に則して、実施例を用い図面を参照しながら詳細に説明する。なお、以下に説明する実施例は、特許請求の範囲に係る発明を限定するものではない。また、実施例の中で説明されている諸要素およびその組合せの全てが発明の解決手段に必須とは限らない。
実施例1では、ユーザが定義したルール間の整合性の検証を支援するルール整合性検証装置を説明する。
図1を参照して、ルール整合性検証装置の構成を説明する。図1において、ルール整合性検証装置100は、ルール入力部101と、ルール記録部102と、ルール整合性検証部103と、検証方式記録部104と、学習節記録部105と、矛盾記録部106と、矛盾出力部107と、プロセッサ160と、メモリ170と、入出力装置180と、を含んで構成されている。ルール整合性検証装置100は、プロセッサ160とメモリ170と入出力装置180とを備えたコンピュータである。
プロセッサ160は、CPU(Central Processing Unit)を含む。メモリ170は、RAM(Random Access Memory)、ROM(Read Only Memory)を含む。入出力装置180は、キーボード、表示モニタを含む。
ルール整合性検証装置100は、ルール入力部101、整合性検証部103および矛盾出力部107の機能ロジックを備える。これらの機能ロジックは、コンピュータプログラムとして実現されており、メモリ170上でプロセッサ160により実行される。また、ルール整合性検証装置100は、ルール記録部102、検証方式記録部104、学習節記録部105および矛盾記録部106のデータを、図示を省略するハードディスクドライブを含む補助記憶装置またはメモリ170に保管している。これらのデータは、プロセッサ160が機能ロジックを実行する際に補助記憶装置またはメモリ170から読みだして使用する。
ルール入力部101は、IF節とTHEN節を含むルールを受け付ける。ルール入力部101は、ルールを分類してラベルを付与し、ルール記録部102に記録する。以下、ルールに付与したラベルを「ルールラベル」呼ぶ。ルールラベルを付与することで、ルール整合性検証装置100は、ルールラベルに応じた効率的な検証処理の適用が可能となる。なお、IF節およびTHEN節は、変数、比較演算子、変数値を含む組合せで構成される比較式と、論理積および論理和を含む論理演算子を0個以上含む論理式である。
ルール整合性検証部103は、ルール記録部102、検証方式記録部104、および学習節記録部105のデータに基づき、ルールセットの整合性を検証する。検証方式記録部104は、ルールラベルに対応した検証モジュールの情報を格納する。ルール整合性検証部103は、検証方式記録部104のデータに基づき、ルールラベルに応じた検証モジュールを読み込み、整合性を検証する。
ルールの整合性検証は、THEN節がシンプルな形式の場合、2つのルールの組合せをチェックすることで検証できる。しかし、THEN節が複雑な場合、任意のN個のルールの組合せのチェックが必要であり、検証処理時間が膨大となる。具体的には、THEN節に論理和または否定を含む非決定的な(論理式を満たす解が一意に定まらない)場合、2つのルールの組合せのチェックでは整合性を検証できない。
ルールラベルを利用することで、ルールの整合性検証問題を分割することができる。具体的には、2つのルールの組合せのみでチェック可能なものと、そうでないものを分割することで、それぞれに適した検証処理を行うことができる。
学習節記録部105は、ルールラベルに応じた各検証モジュールの中間処理の結果を格納する。ルール整合性検証部103は、学習節記録部105を利用することで、効率的な検証処理を実現できる。
矛盾出力部107は、矛盾記録部106のデータに基づき、矛盾しているルールの組合せを入力装置180の表示モニタの画面に表示する。矛盾しているルールの組合せがない場合、矛盾出力部107は、矛盾なしの旨のメッセージを表示する。これにより、ユーザは、ルールセットに矛盾が含まれるか否かを確認できる。ルールセットに矛盾が含まれている場合、ユーザは、矛盾しているルールの組合せを参考に、ルールの見直しができる。
図2を参照して、ルール記録部のデータ構造について説明する。図2において、ルール記録部102は、THEN節要素リスト210およびルールリスト220を含んで構成されている。
図2(a)において、THEN節要素リスト210は、ルールのTHEN節に関する情報を格納するテーブルである。THEN節要素とは、ルールのTHEN節の論理式の一部または全部をいう。THEN節要素リスト210は、ID211と、THEN節要素212と、ルールラベル213と、を含む。
ID211は、THEN節要素を一意に識別する。THEN節要素212は、THEN節が決定的なとき、個々の要素を格納する。一方、THEN節が非決定的なとき、THEN節要素212は、THEN節全体を格納する。ルールラベル213は、THEN節要素の特徴を表す。
ここで、THEN節要素リスト210の各行214、215および216は、THEN節要素情報という。ルールラベル213は、THEN節要素212の特徴をもとに、ルール入力部101が付与する。ルールラベル213としては、具体的には、「決定的」および「非決定的」がある。
ルール入力部101は、ルールのTHEN節が「変数=変数値」形式の論理式である場合、当該論理式をTHEN節要素212に記録し、ルールラベル213に「決定的」を記録する。ルールのTHEN節が、「変数=変数値」形式の論理式を論理積で結合した論理式の場合、ルール入力部101は、「変数=変数値」形式の論理式をそれぞれ異なるTHEN節要素情報として、THEN節要素212に記録し、ルールラベル213に「決定的」を記録する。それ以外の場合、ルール入力部101は、ルールのTHEN節全てをTHEN節要素212に記録し、ルールラベル213に「非決定的」を記録する。THEN節要素リスト210に記録する際、ルール入力部101は、THEN節要素リスト210内のTHEN節要素212が重複しないように処理を行う。
なお、THEN節要素情報に記録する論理式は、上記と異なっても良い。具体的には、「変数=変数値」形式の論理式を論理積で結合した論理式をそのままTHEN節要素情報として記録しても良い。ルール整合性検証部103で利用する検証モジュールにより、最適な記録方式は、異なる。また、THEN節要素212に含まれる「∨」は、命題論理のORである。
図2(b)において、ルールリスト220は、ID221と、IF節222と、THEN節223と、を含む。ID221は、ルールを一意に識別する。IF節222は、ルールのIF節自体を表す。THEN節223は、ルールのTHEN節自体を表す。
THEN節223は、対応するTHEN節要素リスト210のID211を記録する。ルールリスト220の各行224、225および226は、1つのルール情報を表す。具体的には、ルール情報226は、IF節222が「a<100∧b=20」であり、THEN節223がTHEN節要素情報214のTHEN節要素212(c=20)とTHEN節要素情報216のTHEN節要素212(e=20)を論理積で結合した論理式「c=20∧e=20」であることを表す。ここで、「∧」は、命題論理のANDである。
図3を参照して、検証方式記録部のデータ構造を説明する。図3において、検証方式記録部104は、検証モジュールリスト310を含んで構成されている。
図3において、検証モジュールリスト310は、実行順311と、ルールラベル312と、検証モジュール名313と、を含む。実行順311は、検証の実行順を表す。ルールラベル312は、整合性検証対象を表す。検証モジュール名313は、使用する整合性検証モジュールの名前を表す。検証モジュールリスト310の各行は、検証モジュール情報という。
ルール整合性検証部103は、検証モジュールリスト310から実行順311が小さい順に、検証モジュール情報を取得し、ルールラベル312に一致するルールをルール記録部102から読み込み、整合性の検証を行う。図3に基づけば、ルールラベル312が「決定」のルールを検証する場合、決定ルール検証モジュールを、「非決定」のルールを検証する場合、非決定ルール検証モジュールを、「決定」のルールと「非決定」のルールとの間のルール間の検証を行う場合、決定/非決定ルール間検証モジュールを、それぞれルール整合性検証部103が読み込む。
図4を参照して、ルール入力部101における業務ルール入力画面および矛盾出力部における矛盾結果を表示するルール整合性検証画面について説明する。図4において、ルール整合性検証画400は、ルール表示領域410と、矛盾表示領域420と、を含む。
ルール表示領域410は、ルールを追加、変更および削除をする領域である。ルール表示領域410は、ルールを表示するルール一覧411に加え、ルール削除ボタン412と、ルール追加ボタン413と、検証開始ボタン414と、を備える。ルール一覧411は、ID431と、ルール識別子並べ替え432と、修正優先度433と、修正優先度並べ替え434と、IF節435と、THEN節436と、を備える。ID431は、ルールを一意に識別する。ルール識別子並べ替え432は、ID431でルールを並び替える。修正優先度433は、矛盾が存在するとき修正するルールの優先度を表示する。修正優先度並べ替え434は、修正優先度433でルールを並び替える。IF節435は、ルールのIF節を表示する。THEN節436は、ルールのTHEN節を表示する。ルール一覧411の各行は、入力ルール情報という。
ユーザは、任意のIF節435またはTHEN節436を選択し、入出力装置180を用いて論理式を入力することで、任意のルールのIF節およびTHEN節を修正できる。
修正優先度433は、矛盾出力部107が、矛盾を解消する際の修正の優先度を表示する。修正優先度433として、具体的には、各ルールの矛盾リスト421に含まれる出現回数を表示する。この場合、優先度の高い入力ルール情報ほど、多くの矛盾に関係しており、ユーザは入力ルール情報を1つ修正するだけで、複数の矛盾を解消できる可能性があり、矛盾発生時のルールの修正作業を効率化できる。
ルール識別子並べ替え432は、ルール一覧411内のルールがルール識別子431に対して、大きい順と小さい順のどちらで並んでいるかを表しており、下向きの三角形ならば、大きい順、上向きの三角形ならば小さい順に、ルール一覧411内の入力ルール情報は並んでいる。このとき、下向きの三角形として画面に表示されている状態で、ルール識別子並べ替え432を押下することで、入力ルール情報をルール識別子431の小さい順に並べ替えることができる。このとき、ルール識別子並べ替え432の三角形の向きは下向きから上向きに変更される。また、ルール識別子並べ替え2112が上向きの三角形として画面に表示されている状態で、ルール識別子並べ替え2112を押下することで、入力ルール情報をルール識別子431の大きい順に並べ替えることができる。このとき、ルール識別子並べ替え432の三角形の向きは上向きから下向きに変更される。
修正優先度並べ替え434は、ルール一覧411内の入力ルール情報が修正優先度433に対して、大きい順と小さい順のどちらで並んでいるかを表している。三角形の方向と順序、順序の並べ替えは、ルール識別子並べ替え432と同様である。
ルール一覧411から入力ルール情報を選択した状態でルール削除ボタン412を押下することで、該当入力ルール情報をルール一覧411から除外することができる。次に、ルール追加ボタン413を押下することで、ルール一覧411に、修正優先度433、条件式435、結果式436が空欄となっている新たな入力ルール情報が追加される。また、ユーザが検証開始ボタン414を押下することで、ルール入力部101、整合性検証部103および矛盾出力部107が実行される。
矛盾表示領域420は、ルール一覧411に表示された入力ルール情報の検証結果を表示する領域である。矛盾表示領域420は、矛盾リスト421を備える。矛盾リスト421は、ID441と、矛盾ルールペア442と、を備える。ID441は、矛盾するルールのペアを一意に識別する。矛盾ルールペア442は、矛盾を構成する入力ルール情報のルール識別子431の組合せを表示する。矛盾リスト421は、具体的には、全ての矛盾ルールペアを表示しても、ルール一覧411上でユーザが選択した入力ルール情報が含まれる矛盾だけを出力してもよい。
図4では、ルール入力部101と矛盾出力部107とは、同一の画面を共有しているが、それぞれを独立した画面としてもよい。
図5を参照して、ルール入力部の処理について説明する。ここでは、ルールラベルとして「決定」「非決定」の2種類があるものとして説明する。なお、図中の符号Sはステップを表す(以下、本明細書中で同様)。
図5において、ルール入力部101は、ユーザがルール整合性検証画面400の検証開始414を押下することで、処理の実行を開始する。ルール入力部101は、ルール整合性検証画面400のルール一覧411に未取得の入力ルール情報R5(Rule of Fig. 5)が存在するか否かを確認する(S501)。ここで、R5が存在する場合、ルール入力部101は、R5を取得する(S502)。ステップ501でR5が存在しない場合、ルール入力部101は、処理を終了する。
ステップ502のあと、ルール入力部101は、R5からTHEN節R5_RESULTを取得する(S503)。ルール入力部101は、R5_RESULTが「変数=変数値」形式の論理式と論理積のみで構成されるか否かを確認する(S504)。R5_RESULTが「変数=変数値」形式の論理式と論理積のみで構成される場合、ルール入力部101は、ステップ505に進み、それ以外の場合は、ルール入力部101は、ステップ506に進む。
ステップ505では、ルール入力部101は、R5_RESULT内の「変数=変数値」形式の各論理式をTHEN節要素212としてTHEN節要素リスト210に記録する。このとき、ルール入力部101は、ルールラベル213として「決定的」を付与する。
ステップ506では、ルール入力部101は、R5_RESULT自身をTHEN節要素212としてTHEN節要素リスト210に記録する。このとき、ルール入力部101は、ルールラベル213として「非決定的」を付与する。
ステップ505、ステップ506ともに、THEN節要素リスト210に、記録しようとしているTHEN節要素212がTHEN節要素リスト210にすでに存在する場合、当該THEN節要素212のTHEN節要素リスト210への記録をしない。これにより、THEN節要素リスト210へのTHEN節要素の重複登録を避ける。
次に、ルール入力部101は、R5から条件式R5_CONDITIONを取得する(S507)。次に、ルール入力部101は、THEN節要素リスト210からR5_RESULTに対応するTHEN節要素情報のID211をすべて取得し、結果部識別子のリストRESULT_IDsに格納する(S508)。次に、ルール入力部101は、R5_CONDITIONをIF節222に、RESULT_IDsをTHEN節223にそれぞれ記録し(S509)、ステップ501に進む。
図6を参照して、ルール整合性検証部の処理について説明する。本実施形態では、前述の通り「決定」と「非決定」という2つのルールラベルを使用する。また、整合性検証モジュールとして、決定ルール検証モジュール、非決定ルール検証モジュールおよび決定/非決定ルール間整合性検証モジュールを使用する。
図6において、ルール整合性検証部103は、検証モジュールリスト310に未取得の検証モジュール情報が存在するか否か確認する(S511)。ここで、未取得の検証モジュール情報が存在する場合、ルール整合性検証部103は、ステップ512に進み、存在しない場合、ルール整合性検証部103は、処理を終了する。
ステップ512では、ルール整合性検証部103は、検証モジュールリスト310からルールラベル312と検証モジュール名313を取得する(S512)。ルール整合性検証部103は、検証モジュール名313に対応する整合性検証モジュールを読み込む(S513)。次に、ルール整合性検証部103は、整合性検証を実施し(S514)、ステップ511に戻る。
図7を参照して、整合性検証モジュールの1つである決定ルール検証モジュールの処理について説明する。図7において、ルール整合性検証部103は、THEN節要素リスト210内でルールラベル213として「決定」が付与されたTHEN節要素情報の組合せのうち、THEN節要素212の論理積が充足不能となるTHEN節要素情報の組合せ(以下、THEN節要素212の論理積が充足不能となるTHEN節要素情報の組合せを「充足不能THEN節組合せ」という)が存在するか否か確認する(S521)。充足不能THEN節組合せが存在する場合、ルール整合性検証部103はステップ522に進み、存在しない場合、ルール整合性検証部103は処理を終了する(リターンする)。
ステップ522では、ルール整合性検証部103は、充足不能THEN節組合せを生成する(S522)。具体的には、THEN節要素R1(Rule No. 1)、R2の変数名が一致し、かつ変数値が異なるようにTHEN節要素リスト210からTHEN節要素情報を2つ取得することで、ルール整合性検証部103は充足不能THEN節組合せを生成できる。次に、ルール整合性検証部103は、IF節充足可能性判定を実施し(S523)、ステップ521に進む。ここで、充足不能uとは、複数の論理式について、それらの論理式の真理値を同時に真にする真理値割り当てが存在しないということである。
図8を参照して、ルール整合性検証部におけるIF節充足可能性判定の処理について説明する。図8において、ルール整合性検証部103は、ルールリスト220から、充足不能THEN節組合せ内のTHEN節要素を含むルールのID221をルールリスト220から全て取得し、THEN節要素単位にルールのグループを作成する(S531)。次に、ルール整合性検証部103は、各グループからひとつずつルールを選ぶ組合せ(以下、「グループ間ルールペア」という)の内、未生成のものが存在するか否かを確認する(S532)。ここで、グループ間ルールペアが存在する場合、ルール整合性検証部103は、ステップ533に進み、存在しない場合、処理を終了する。
ステップ533では、ルール整合性検証部103は、グループ間ルールペアを生成する(S533)。次に、ルール整合性検証部103は、グループ間ルールペアに含まれるルールのIF節の論理積が充足可能か否かを確認する(S534)。充足可能か否かの判定には、SAT(SATisfiability problem、充足可能性問題)ソルバまたはSMT(Satisfiable Modulo Theories)ソルバを用いることができる。SATソルバとは、論理式の充足可能性問題を解くアルゴリズムを実装するツールの総称である。また、SMTソルバは、SATソルバの技術をベースとしつつ、より複雑な論理式の充足可能性問題を解くことが可能なツールである。本明細書の他の処理における充足可能性の判定においても、SATソルバまたはSMTソルバを用いてもよい。
ルール整合性検証部103は、充足可能な場合、ステップ535に進み、充足不能な場合、ステップ532に戻る。ステップ535では、ルール整合性検証部103は、グループ間ルールペアに含まれるルールのIDのペアを矛盾記録部106に記録し(S535)、ステップ532に戻る。
図8において、ルール整合性検証部103は、THEN節要素が共通しているルールをグルーピングする。これによって、ルール整合性検証部103は、各グループから1つのルールを取得する組合せだけを矛盾判定の対象とする。この処理は、全ての2つのルールペアの組合せを検証する場合と比較して、検証処理を高速化できる。
図9を参照して、整合性検証モジュールの1つである非決定ルール検証モジュールの処理について説明する。図9において、ルール整合性検証部103は、THEN節要素リスト210からルールラベル「非決定」を持つTHEN節要素情報を充足可能なTHEN節要素情報の組合せの集合に格納する(S541)。ルールラベル「非決定」を持つTHEN節要素情報を、以下、「非決定THEN節要素」という。充足可能なTHEN節要素情報の組合せの集合を、以下、「充足可能THEN節組合せ集合」という。
ルール整合性検証部103は、充足可能THEN節組合せ集合内の要素数を確認する(S542)。要素数が1以上の場合、ルール整合性検証部103は、ステップ543に進み、0の場合、ルール整合性検証部103は、処理を終了する(S542)。
ステップ543では、ルール整合性検証部103は、充足可能THEN節組合せ集合から充足可能なTHEN節要素の組合せSS(Satisfiable Set)をひとつ取得し、取得したTHEN節要素の組合せを充足可能THEN節組合せ集合から除外する(S543)。ルール整合性検証部103は、SSにTHEN節要素リスト210の非決定THEN節要素をひとつ追加した組合せのうち、学習節記録部105内の学習節を含まないTHEN節要素の未生成の組合せRS(Rule Set)が存在するか否かを確認する(S544)。具体的には、次の手順で確認できる。
まず、THEN節要素に対応する命題変数(THEN節要素有効フラグv_i;iはTHEN節要素のIDを表す)を導入する。次に、任意のTHEN節要素の組合せを含まない制約(ス―パーセット除去制約)を導入する。ス―パーセット除去制約は、THEN節要素の組合せにおいて、各THEN節要素のTHEN節要素有効フラグを論理積で結合した論理式を否定した論理式である。次の式がスーパーセット除去制約となる。
{THEN節要素i、THEN節要素j}のスーパーセット除去制約:
¬(v_i∧v_j)
ここで、「¬」は、命題論理のNOTである。任意のTHEN節要素の組合せを表す論理式(L1:Logic No. 1)を導入する。具体的には、THEN節要素有効フラグv_iを論理和で結合した式である。
次に、ルール整合性検証部103は、SSを表す論理式(L2)を導入する。具体的には、SS内のTHEN節要素のTHEN節要素有効フラグを論理積で繋いだ式である。ルール整合性検証部103は、SSに含まれないTHEN節要素をひとつだけ選択する制約(C1:Condition No. 1)を導入する。具体的には、SSに含まれないTHEN節要素のTHEN節有効フラグの集合に対して、THEN節要素に対応する命題変数の集合P_VS(Proposition Variable Set)において、唯一ひとつのみの命題変数が真となるONLY−ONE制約を導入する。これは、制約充足問題(Constraint Satisfaction Problem:CSP)におけるSAT符号化法の1つである直接符号化法(Direct Encording:DC)を利用できる。直接符号化法を用いた場合、AT−LEASTは、P_VS内の命題変数v_iを論理和で結合した式と、P_VS内の2つの命題変数の各組合せ{v_i、v_j}における命題変数の否定を論理和で結合した論理式を論理積で結合した論理式と、を論理積で結合した論理式として表現できる。具体的には、THEN節要素に対応する命題変数の数が3の場合、ONLY−ONEは、下式の通りとなる。
(v_1∨v_2∨v_3)∧(¬v_1∧¬v_2)∧(¬v_1∧¬v_3)∧(¬v_2∧¬v_3)
次に、ルール整合性検証部103は、学習節記録部105内の組合せを含まない制約(C2)を導入する。具体的には、C2は、各学習節のスーパーセット除去制約を論理積で結合した式である。ルール整合性検証部103は、同一のRSを生成しない制約(繰り返し防止制約)を導入する。具体的には、ステップ544によって追加された各THEN節要素のTHEN節要素有効フラグを否定した論理式である。
以上の制約および論理式を論理積で結合した式の充足可能性判定を行うことで、RSが存在するかを確認できる。具体的には、SS{r1、r2}、THEN節要素リスト210内の非決定結果式{r1、r2、r3、r4}、学習節記録部105内の学習節{r3、r4}、追加済のTHEN節要素{r3}の場合(r1、r2、r3、r4はそれぞれTHEN節要素有効フラグ)、次の式が、ステップ544におけるRSの存在確認を行う際に利用する論理式である。
(r1∨r2∨r3∨r4)∧(r1∧r2)∧(r3∨r4)∧(¬r3∨¬r4)∧(¬r3)
なお、上記論理式は充足解として{r1、r2、r4}が存在するため、RSが存在する。
ここで、RSが存在する場合、ルール整合性検証部103は、ステップ545に進み、存在しない場合、ステップ542に進む(S544)。
ステップ545では、ルール整合性検証部103は、RSを生成する(S545)。ルール整合性検証部103は、RSが充足可能かを確認する(S546)。ここで、RSが充足可能な場合、ルール整合性検証部103は、ステップ549に進む。RSが充足不能な場合、ルール整合性検証部103は、ステップ547に進む。
ステップ547では、ルール整合性検証部103は、RSを学習節記録部105に記録する(S547)。ルール整合性検証部103は、RSに対して、図8に示す条件式の充足可能性判定を実施し(S548)、ステップ544に戻る。ステップ549では、ルール整合性検証部103は、充足可能THEN節組合せ集合にRSを追加し(S549)、ステップ544に戻る。
ここでは、ルール整合性検証部103はTHEN節要素の組合せを生成する際、充足可能なTHEN節要素の組合せに対して新たな非決定THEN節要素を追加している。これにより、充足可能なTHEN節要素の組合せの最大の要素数がMAXの場合、最悪でもMAX個以下の非決定HEN節の組合せを網羅すれば良い。このため、MAXの値が非決定THEN節要素の数よりも小さければ、ルール整合性検証部103は処理を高速化できる。また、ステップ544において、学習節107内の学習節を含むRSを矛盾判定の対象外とすることで、ルール整合性検証部103の処理を高速化できる。
図10を参照して、整合性検証モジュールの1つである決定/非決定ルール間整合性検証モジュールの処理を説明する。図10において、ルール整合性検証部103は、THEN節要素リスト210のTHEN節要素の組合せのうち、充足可能な1つ以上の非決定THEN節要素の未生成組合せSS1が存在するかを確認する(S551)。ここで、SS1が存在する場合、ルール整合性検証部103は、ステップ552に進み、SS1が存在しない場合、ルール整合性検証部103は、処理を終了する。具体的には、図9のステップ543において、充足可能THEN節組合せ集合から除外されたTHEN節要素の組合せを充足可能THEN節組合せリストに保持して、そのリスト内に要素が存在するかを確認する。
ルール整合性検証部103は、SS1を生成する(S552)。具体的には、充足THEN節組合せリストをTHEN節要素組合せ内の要素数が少ない順に並べ替え、ルール整合性検証部103は、要素数が小さい方からTHEN節要素組合せを取得し、取得したTHEN節要素組合せを充足THEN節組合せリストから除外する。これにより、小さな学習節を早期に発見することができ、検証対象をより減らすことができる。ルール整合性検証部103は、THEN節要素リスト210の結果式の組合せのうち、充足可能な1つ以上のルールラベル「決定」が付与されたTHEN節要素(決定THEN節要素)の組合せSS2が存在するかを確認する。ここで、SS2が存在する場合、ルール整合性検証部103は、ステップ554に進み、SS2が存在しない場合、ルール整合性検証部103は、ステップ551に進む。具体的には、THEN節要素の組合せにおいて、各THEN節要素(「変数=変数値」)の変数が重複しない組合せをすべて生成したか確認する。
ステップ554では、ルール整合性検証部103は、SS2を生成する(S554)。具体的には、決定THEN節要素(「変数=変数値」)を、変数で分類する。分類された決定THEN節要素の集合をパーティションと呼ぶ。各パーティションから、1個以下ずつTHEN節要素を取得する組合せを網羅すれば良い。ここで、ルール整合性検証部103は、SS2内の決定THEN節要素の数が少ない順にSS2を生成する。これにより、小さな学習節を早期に発見することができ、検証対象をより減らすことができる。次に、ルール整合性検証部103は、SS1内の結果式で使用している変数の集合VS1(Variable Set No. 1)が、SS2内の結果式で使用している変数の集合VS2を含んでいるかを確認する(S555)。ここで、VS1がVS2を含んでいる場合、ルール整合性検証部103は、ステップ556に進む。VS1がVS2を含んでいない場合、ルール整合性検証部103は、ステップ553に進む。
ステップ556では、ルール整合性検証部103は、SS2とSS1のTHEN節要素をすべて含む結果式の組合せ(決定/非決定THEN節組合せ)が学習節記録部105内の学習節を含むかを確認する(S556)。ここで、決定/非決定THEN節組合せが学習節を含む場合、ルール整合性検証部103は、ステップ553に進み、決定/非決定THEN節組合せが学習節を含まない場合、ステップ557に進む。
ステップ557において、ルール整合性検証部103は、決定/非決定THEN節組合せが充足可能かを確認する(S557)。ここで、決定/非決定THEN節組合せが充足可能な場合、ルール整合性検証部103は、ステップ553に進む。RSが充足不能な場合、ルール整合性検証部103は、ステップ558に進む。
ステップ558において、ルール整合性検証部103は、決定/非決定THEN節組合せに対して、図8に示す条件式の充足可能性判定を行う(S558)。ルール整合性検証部103は、学習節記録部105に決定/非決定THEN節組合せを記録し(S559)、ステップ553に進む。
本実施例では、任意のRSにおいて、全決定結果式で使用している変数は、全非決定結果式で使用している変数のサブセットになっている。この条件を満たさない結果式の組合せを矛盾判定の対象外とすることで、ルール整合性検証部103の処理を高速化できる。
実施例2では、非決定ルール検証モジュールに別の形態を用いた業務ルール整合性検証装置を説明する。
図11を参照して、業務ルール整合性検証装置の他の非決定ルール検証モジュールの処理を説明する。図11において、ルール整合性検証部103Aは、THEN節要素の組合せの生成に関する制約リストCS(Condition Set)の制約を満たすTHEN節要素リスト210のTHEN節要素の組合せRS11が存在するかを確認する(S561)。ここで、RS11が存在する場合、ルール整合性検証部103Aは、ステップ562に進み、RS11が存在しない場合、ルール整合性検証部103Aは、処理を終了する(リターンする)。制約リストは、THEN節要素の組合せ生成に対する制約を論理式として記録する。ステップ561の具体的な手順として、非決定THEN節要素に対応する命題変数を論理和で結合した式にCS内の各制約を論理積で結合した式の充足可能性判定を実施し、充足解の存在を確認する。さらに具体的には、非決定THEN節要素としてR1、R2、R3が存在し、制約として組合せ{R2、R3}を含む組合せを生成しない場合、次の式の充足可能性を判定する。
RS11の存在判定式:
(R1∨R2∨R3)∧¬(R2∧R3)
このとき、{R1=真、R2=真、R3=偽}が充足解のひとつとなるため、RS11が存在する。なお、以降、任意の組合せRとR内の全ての要素を含む組合せR´において、R´をRのスーパーセットと呼称し、RをR´のサブセットと呼称する。
ステップ562では、ルール整合性検証部103Aは、RS11を生成する(S562)。具体的には、充足解において、真となっている命題変数に対応するTHEN節要素を持つ組合せが、RS11となる。次に、ルール整合性検証部103Aは、RS11が充足可能かを確認する(S553)。ここで、RS11が充足可能な場合、ルール整合性検証部103Aは、ステップ564に進み、RS11が充足不能な場合、ルール整合性検証部103Aは、ステップ568に進む。
ステップ564では、ルール整合性検証部103Aは、RS11から充足不能な最小のTHEN節要素の組合せMUS(Minimum Unsatisfiable Set)を生成する(S564)。ここで、MUSとは、MUSからいずれかのTHEN節要素を除外したとき、充足可能となるTHEN節要素の組合せのことである。充足不能なTHEN節要素の組合せUS(Unsatisfiable Set)からMUSを生成する方法として、具体的には、US内からTHEN節要素(以下、「除去THEN節要素」と呼ぶ)をひとつ除外した組合せUS´の充足可能性判定を行いUS´が充足不能であるならば、除去THEN節要素をUSから除外する処理をUS内のTHEN節要素に対して順番に実行することで、MUSを生成できる。次に、ルール整合性検証部103Aは、MUSのサブセットを生成しない制約C2をCSに追加する(S565)。具体的には、MUSに含まれていない非決定THEN節要素に対応する命題変数を論理和で結合した論理式が、MUSのサブセットを生成しない制約となる。具体的には、MUS{R1、R2}、THEN節要素リスト210の非決定THEN節要素{R1、R2、R3、R4}の場合、次の式がMUS{R1、R2}のサブセットを生成しない制約となる。
MUS{R1、R2}のサブセットを生成しない制約:
R1∨R2
次に、ルール整合性検証部103Aは、MUSのスーパーセットを生成しない制約C3をCSに追加する(S566)。具体的には、MUS内のルールに対応する命題変数を論理積で結合した論理式を否定した論理式が、MUSのスーパーセットを生成しない制約となる。具体的にはMUS{R1、R2、R3}の場合、次の式がMUS{R1、R2、R3}のスーパーセットを生成しない制約となる。
MUS{R1、R2、R3}のスーパーセットを生成しない制約:
¬(R1∧R2∧R3)。
次に、ルール整合性検証部103Aは、MUSに対して、図8に示す条件式の充足可能性判定を実施し、ステップ561に戻る(S567)。
ステップ568では、ルール整合性検証部103Aは、RS11のサブセットを生成しない制約C1をCSに追加し、ステップ561に戻る(S568)。
なお、実施例2においては、非決定ルール整合性検証モジュールの処理方式として示したが、本方式は、決定ルール整合性検証モジュールおよび決定/非決定ルール間検証モジュールとして利用しても良い。実施例2を適用することで、充足不能なTHEN節要素の組合せを効率的に見つけることができる。
実施例3は、他の決定ルール整合性検証モジュールを用いた業務ルール整合性検証装置を説明する。
まず、ルール入力部の処理について、図5を参照して、実施例1との違いを説明する。実施例3は、図5に示すステップ505の処理が、実施例1と異なる。実施例3では、R5_RESULTをそのままの形式でルール記録部102に記録する。実施例1では、「変数=変数値」形式単位に分解して記録しているが、実施例3ではそのような分解を行わない。
図12を参照して、実施例3に係る他の決定ルール整合性検証モジュールの処理について説明する。図12において、ルール整合性検証部103Bは、各ルールが有効であるか否かを示す命題変数であるルール有効フラグを活用して、ルールラベルが「決定」であるルールの集まりであるルールセット(以下、「決定ルールセット」と呼ぶ)の整合性を判定する式(以下、「決定ルールセット整合性判定式」と呼ぶ)を生成する(S571)。決定ルールセット整合性判定式は、具体的には、決定ルールセットがルール一覧411のID432が「0」および「2」の場合、以下の式の否定で表すことができる。
((Pc∧r0∧(a>20∧b=20)∧(c=20))∨((Pc∨Pe)∧r2∧(a<100∧b=20)∧(c=20∧e=20)))→(((Pc∧r0∧(a>20∧b=20))→((c=20)∧Pc))∧(((Pc∨Pe)∧r2∧(a<100∧b=20))→((c=20)∧Pc)∨((e=20)∧Pe)))
ここで、r0およびr2は、ルール有効フラグを表し、PcおよびPeは、出力変数が有効であるか否かを示す命題変数である出力変数有効フラグである。出力変数有効フラグは、いずれか1つのみが真となるように直接符号化法を用いて、出力変数有効フラグに関する制約を追加する。
ルール整合性検証部103Bは、決定ルールセット整合性判定式の充足可能性を判定する(S572)。充足可能性の判定には、SMTソルバを活用する。充足可能な場合は、ルール整合性検証部103Bは、ステップ573に進み、充足不能な場合は、処理を終了する。
ルール整合性検証部103Bは、矛盾となるルールの組合せを生成し、矛盾記録部106に記録する(S573)。ルール整合性検証部103Bは、SMTソルバの機能を利用して、充足可能と判定された際の各ルール有効フラグの真偽値、各IF節の真偽値、各THEN節の真偽値、および各出力変数有効フラグの真偽値を取得し、これらの真偽値情報を元に矛盾となるルールの組合せを生成する。具体的には、ルールαに対応するルール有効フラグとIF節の論理積が真、および、ルールβに対応するルール有効フラグとIF節の論理積が真で、他のルールに対応するルール有効フラグとIF節の論理積が偽の場合、ルールαとルールβが矛盾となる。各ルールに対応するルール有効フラグとIF節の論理積が真となるルールが3以上の場合は、これらのルールに対応するTHEN節と出力変数有効フラグの論理積の真偽値を取得し、真となるルールと偽となるルールの組合せが矛盾となる。
ルール整合性検証部103Bは、決定ルールセット整合性判定式にルール有効フラグの制約を追加する(S574)。ルール整合性検証部103Bは、ステップ573において、矛盾記録部106に記録した矛盾となるルールの組合せに基づき、当該矛盾となるルールの組合せが再び検出されないような制約を決定ルールセット整合性判定式に追加する。具体的には、r0とr1が矛盾している場合、¬(r0∧r1)を追加すれば良い。次に、ルール整合性検証部103Bは、ステップ572に進む。
SMTソルバは、過去に実行した充足可能性判定の処理の情報を記憶する機能がある。そのため、ステップ574において、決定ルールセット整合性判定式に制約を追加して、ステップ572において、充足可能性を行う場合、ゼロベースで充足可能性判定を行うのではなく、過去に実行した結果を再利用するため、効率的に検証可能である。
実施例3を適用することで、THEN節が複数の出力変数が含まれる場合においても、THEN節の分解処理が不要となる。また、実施例1の決定ルール整合性検証モジュールは、THEN節に含まれる出力変数が1つのみの場合に効率的に検証処理を実現できるのに対し、実施例3では、THEN節に複数の出力変数が含まれる場合に効率的に検証処理を実現できる。
実施例3によれば、結果式に否定または論理和を含むルールを含むルールセットにおける整合性を実用時間で検証することが可能な業務ルール整合性検証装置を提供することができる。
なお、本発明は、実施例に限定されるものではなく、様々な変形例が含まれる。具体的には、実施例は、本発明を分りやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成に他の構成を加えることも可能である。
100…ルール整合性検証装置、101…ルール入力部、102…ルール記録部、103…ルール整合性検証部、104…検証方式記録部、105…学習節記録部、106…矛盾記録部、107…矛盾出力部、160…プロセッサ、170…メモリ、180…入出力装置、210…THEN節要素リスト 、220…ルールリスト、310…検証モジュールリスト、400…ルール整合性検証画面。

Claims (10)

  1. ソフトウェア仕様の開発におけるルールの整合性を検証するルール整合性検証装置であって、
    前記ルールが成立するための条件の論理式を格納するIF節と前記条件が成立した場合の結果の論理式を格納するTHEN節とを含むルールを含むルールセットを受け付けるルール入力部と、前記ルールセットに含まれる前記ルールが互いに矛盾しないかを判定するルール整合性検証部と、前記ルールセットに含まれる前記ルールが互いに矛盾しないかを判定した結果を出力する矛盾出力部と、
    を備え、
    前記ルール入力部は、前記ルールのTHEN節の論理式の構造に基づき、前記ルールを分類し、分類結果を表すルールラベルを前記ルールに付与し、
    前記ルール整合性検証部は、前記ルールラベルが2以上ある場合、同一の前記ルールラベルを持つルール同士で互いに矛盾しないかを判定し、前記ルールラベルが異なるルール同士で互いに矛盾しないかを判定することを特徴とするルール整合性検証装置。
  2. 請求項1に記載のルール整合性検証装置であって、
    前記ルールラベルには、決定ラベルと非決定ラベルとの2種類があり、
    前記ルール入力部は、前記ルールのTHEN節の論理式が、変数と変数値の等式である論理式の場合、または、変数と変数値の等式を論理積で結合した論理式の場合に前記ルールに前記決定ラベルを付与し、そうでない場合に前記非決定ラベルを付与し、
    前記ルール整合性検証部は、前記決定ラベルが付与された前記ルール同士の整合性を検証する決定ルール検証手段と、前記非決定ラベルが付与された前記ルール同士の整合性を検証する非決定ルール検証手段と、前記決定ラベルが付与された前記ルールと前記非決定ラベルが付与された前記ルール同士の整合性を検証する決定/非決定ルール間検証手段と、を備えることを特徴とするルール整合性検証装置。
  3. 請求項2に記載のルール整合性検証装置であって、
    前記決定ルール検証手段は、前記決定ラベルが付与された前記ルールのルールセットから、前記ルールのTHEN節が充足不能となる2つのTHEN節の組合せである決定THEN節組合せを取得し、前記決定THEN節組合せを含むルールのIF節を取得し、同一のTHEN節を持つ前記ルールのIF節をグループ化し、各グループから1ずつIF節を取得し、取得したIF節の論理積の充足可能性を判定し、充足可能な場合、矛盾ありと判定し、充足不能な場合、矛盾なしと判定することを特徴とするルール整合性検証装置。
  4. 請求項3に記載のルール整合性検証装置であって、
    2以上の前記ルールのTHEN節の論理積が充足不能となる充足不能ルールTHEN節組合せを格納する学習節記録部をさらに備え、
    前記非決定ルール検証手段は、前記非決定ラベルが付与された前記ルールのTHEN節の論理積が充足可能となる前記ルールのTHEN節の組合せを格納する充足可能THEN節組合せ集合を有し、
    前記非決定ルール検証手段は、前記充足可能THEN節組合せ集合から、前記非決定ラベルが付与された前記ルールのTHEN節の論理積が充足可能となる前記ルールのTHEN節の組合せを取得し、取得した前記ルールのTHEN節の組合せに前記非決定ラベルが付与された前記ルールのTHEN節を追加し、前記ルールのTHEN節の組合せに前記充足不能ルールTHEN節組合せの部分集合を含むか否かを判定し、含まない場合に前記ルールのTHEN節の組合せに含まれるTHEN節の論理積の充足可能性を判定し、充足可能な場合に前記ルールのTHEN節の組合せを前記充足可能THEN節組合せ集合に追加し、充足不能な場合に前記ルールのTHEN節の組合せを前記学習節記録部に追加することを特徴とするルール整合性検証装置。
  5. 請求項4に記載のルール整合性検証装置であって、
    前記決定/非決定ルール間検証手段は、前記非決定ラベルが付与された前記ルールのTHEN節の論理積が充足可能となる非決定ルールTHEN節組合せを取得し、前記決定ラベルが付与された前記ルールのTHEN節の論理積が充足可能となる決定ルールTHEN節組合せを取得し、前記非決定ルールTHEN節組合せの各THEN節で使用されている変数の集合が前記決定ルールTHEN節組合せのTHEN節で使用している変数の集合を含むか否かを判定し、前記非決定ルールTHEN節組合せと前記決定ルールTHEN節組合せのTHEN節を全て含む決定/非決定THEN節組合せに前記学習節記録部のTHEN節の組合せを含むか否かを判定し、前記決定/非決定THEN節組合せのTHEN節の論理積の充足可能性を判定し、充足不能な場合に前記決定/非決定THEN節組合せを前記学習節記録部に追加することを特徴とするルール整合性検証装置。
  6. 請求項1に記載のルール整合性検証装置であって、
    前記ルール整合性検証部は、前記ルールのTHEN節の組合せの論理積が充足可能であるか否かを判定するTHEN節充足可能性判定手段と、前記ルールのTHEN節の組合せを生成する際の制約であるTHEN節組合せ生成制約式を格納するTHEN節組合せ生成制約式格納領域と、を有し、
    前記THEN節充足可能性判定手段は、前記THEN節組合せ生成制約式格納領域から前記THEN節組合せ生成制約式を読み込み、前記THEN節組合せ生成制約式を満たす前記ルールのTHEN節の組合せである充足可能THEN節組合せを生成し、前記充足可能THEN節組合せの論理積が充足可能であるかを判定し、充足不能である場合に前記充足可能THEN節組合せの論理積を充足不能にする最小の前記充足可能THEN節組合せを生成し、前記充足可能であるかの判定結果に基づき前記THEN節組合せ生成制約式を生成することを特徴とするルール整合性検証装置。
  7. 請求項2に記載のルール整合性検証装置であって、
    前記決定ルール検証手段は、前記決定ラベルが付与された前記ルールのルールセットから、前記各ルールが有効か否かを表すルール有効フラグを活用して、前記ルール間の整合性を判定する整合性判定式を生成し、前記整合性判定式の充足可能性を判定し、充足可能な場合に前記整合性判定式を充足にする解である充足解を取得し、前記充足解から矛盾となるルール組を特定し、前記矛盾となるルール組に対応するルール有効フラグから同じルール組が再度抽出されないようにするためのルール制約式を生成し、前記ルール制約式を追加した前記整合性判定式の充足可能性を判定することを特徴とするルール整合性検証装置。
  8. 請求項1に記載のルール整合性検証装置であって、
    前記矛盾出力部は、前記ルールセットに含まれる前記ルールが互いに矛盾しないかを判定した結果として、矛盾が含まれる場合、優先的に修正すべきルールの修正優先度を表示することを特徴とするルール整合性検証装置。
  9. 請求項3ないし請求項6のいずれか一つに記載のルール整合性検証装置であって、
    前記充足可能性の判定をSATソルバまたはSMTソルバにより判定することを特徴とするルール整合性検証装置。
  10. ソフトウェア仕様の開発におけるルールの整合性を検証するルール整合性検証方法であって、
    前記ルールが成立するための条件の論理式を格納するIF節と前記条件が成立した場合の結果の論理式を格納するTHEN節とを含むルールを含むルールセットを受け付けるルール入力のステップと、前記ルールセットに含まれる前記ルールが互いに矛盾しないかを判定するルール整合性検証のステップと、前記ルールセットに含まれる前記ルールが互いに矛盾しないかを判定した結果を出力する矛盾出力のステップと、
    を含み、
    前記ルール入力のステップは、前記ルールのTHEN節の論理式の構造に基づき、前記ルールを分類するステップと、分類結果を表すルールラベルを前記ルールに付与するステップと、を含み、
    前記ルール整合性検証のステップは、前記ルールラベルが2以上ある場合、同一の前記ルールラベルを持つルール同士で互いに矛盾しないかを判定するステップと、前記ルールラベルが異なるルール同士で互いに矛盾しないかを判定するステップと、を含むことを特徴とするルール整合性検証方法。
JP2016568197A 2015-01-06 2015-01-06 ルール整合性検証装置およびルール整合性検証方法 Expired - Fee Related JP6254302B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/050154 WO2016110946A1 (ja) 2015-01-06 2015-01-06 ルール整合性検証装置およびルール整合性検証方法

Publications (2)

Publication Number Publication Date
JPWO2016110946A1 JPWO2016110946A1 (ja) 2017-04-27
JP6254302B2 true JP6254302B2 (ja) 2017-12-27

Family

ID=56355671

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016568197A Expired - Fee Related JP6254302B2 (ja) 2015-01-06 2015-01-06 ルール整合性検証装置およびルール整合性検証方法

Country Status (2)

Country Link
JP (1) JP6254302B2 (ja)
WO (1) WO2016110946A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6904914B2 (ja) * 2018-02-02 2021-07-21 株式会社日立製作所 決定表生成装置、及び決定表生成方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4887985B2 (ja) * 2006-09-05 2012-02-29 日本電気株式会社 ポリシ検査システム、方法、及び、プログラム
JP5970292B2 (ja) * 2012-08-21 2016-08-17 株式会社日立製作所 ソフトウェア仕様開発支援方法及びソフトウェア仕様開発支援装置

Also Published As

Publication number Publication date
JPWO2016110946A1 (ja) 2017-04-27
WO2016110946A1 (ja) 2016-07-14

Similar Documents

Publication Publication Date Title
JP2017224184A (ja) 機械学習装置
JP6224811B1 (ja) ルールセットを選択可能な推論エンジンを有するプログラム、装置及び方法
JP6231944B2 (ja) 学習モデル作成装置、判定システムおよび学習モデル作成方法
JP6506360B2 (ja) 教師データを生成する方法、学習済みモデルを生成する方法、学習済みモデル、コンピュータおよびプログラム
de Faria et al. Evaluation of multiclass novelty detection algorithms for data streams
JP2019125319A (ja) 学習プログラム、学習方法および学習装置
JP2016018358A (ja) データ分類方法、データ分類プログラム、及び、データ分類装置
JP6254302B2 (ja) ルール整合性検証装置およびルール整合性検証方法
US20190205361A1 (en) Table-meaning estimating system, method, and program
JP6770709B2 (ja) 機械学習用モデル生成装置及びプログラム。
JP2020119101A (ja) テンソル生成プログラム、テンソル生成方法およびテンソル生成装置
JP6715487B1 (ja) メール分類装置、メール分類方法、およびコンピュータプログラム
JP2019028484A (ja) 属性識別装置、属性識別モデル学習装置、方法、及びプログラム
JP6317000B1 (ja) ラベリング装置およびプログラム
Lauffer et al. Learning deterministic finite automata decompositions from examples and demonstrations
JP2018169939A (ja) 学習装置、学習方法及び学習プログラム
Kumar et al. Sentimental analysis for E-commerce site
JP6007220B2 (ja) 複数入力変数に対する正常系テストデータ生成装置、方法、及びプログラム
WO2020017037A1 (ja) ログ分析装置、ログ分析方法、プログラム
CN110705256A (zh) 字符数量的统计方法、装置、设备及存储介质
JP2019021037A (ja) ソースコード評価装置、ソースコード評価方法及びソースコード評価プログラム
JP2014038392A (ja) スパムアカウントスコア算出装置、スパムアカウントスコア算出方法、及びプログラム
JP7230086B2 (ja) 多形式データ解析システムおよび多形式データ解析プログラム
JP2019008640A (ja) 類似度計算装置及び類似度計算方法
JP7456289B2 (ja) 判定プログラム、判定方法および情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170613

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170721

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171129

R150 Certificate of patent or registration of utility model

Ref document number: 6254302

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees