本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本発明の一実施形態に係る法令分析支援装置の機能構成図の一例である。
法令分析支援装置100は、例えば、少なくともCPU(Central Processing Unit)と記憶装置とを備えたコンピュータで構成され、機能ロジックとして、分析対象判定部101、要件抽出部102、要件分類部103、及び、要件抽出ルール更新部104を備える。また、法令分析支援装置100は、法令分析ファイル111、データ要件ファイル112、ユースケース要件ファイル113、用語定義ファイル114、パターン定義ファイル121、分析対象判定ルールファイル122、及び、要件抽出ルールファイル123を記憶装置(203、204)に記憶している。
分析対象判定部101は、分析対象判定ルールファイル122に基づき、法令条文の所定の単位(所定単位、以下「各条項」ともいう)について要件分析の対象であるか否かを判定する。ここで、所定単位とは、例えば、条、項、号の単位であり、法令条文の一の条が、下位の項目(項、号)を含んでいない場合には、対応する条の条文全体であり、条の構成が下位の項目を含んでいる場合には、それぞれの項目の最下層の記述部分(例えば、号があれば、号に対応する記述部分)と、上位の記述部分から下位の記述部分を除いた範囲の記述部分(例えば、号があれば、項の記述部分から号の記述部分を除いた、いわゆる柱書き部分)とのぞれぞれである。なお、所定単位としては、条の全体を単位としても良く、項であれば号を含めた項全体としても良い。
また、分析対象判定部101は、条、項、号の階層関係や条項号間の従属関係に基づき、各条項が分析対象であるか否かを判定する。
要件抽出部102は、要件抽出ルールファイル123に基づき、各条項に含まれる要件(法令要件)の候補を抽出する。また、要件抽出部102は、各条項からの法令要件抽出のモレを検証する。これにより、ユーザによる法令分析ファイル111の作成を支援する。
要件分類部103は、法令要件を、データに関する要件であるデータ要件、ユースケースに関する要件であるユースケース要件、及び、用語の定義に関する要件である用語定義に分類し、分類した法令要件を、それぞれデータ要件ファイル112、ユースケース要件ファイル113、及び、用語定義ファイル114に出力する。これにより、法律、政令、省令などに分散して規定されていた法令要件をデータ要件、ユースケース要件、及び、用語定義の観点で整理して可視化できる。
要件抽出ルール更新部104は、要件抽出ルールファイル123を更新する。更新抽出ルール更新部104は、要件抽出ルールファイル123に要件抽出ルールが追加、変更された場合、もしくは、法令分析ファイル111が更新された場合に、要件抽出ルールファイル123を更新する。
法令分析ファイル111は、法令要件と法令条文とを関連付けて記録したファイルである。法令分析ファイル111は、法令文書(法律、政令、省令など)のそれぞれを単位として作成される。例えば、関連する法令文書が、法律、政令、省令の3つである場合、法令分析ファイル111としては、法律、政令、省令のそれぞれの法令要件を記録する3つのファイルが作成される。なお、1つの法令分析ファイル111内で、法令文書を識別する情報(例えば、法令名など)を管理するなどして、1つの法令分析ファイル111に複数の法令文書の法令要件を管理するようにしても良い。
データ要件ファイル112は、法令に規定されているデータに関する要件を記録したファイルである。データ要件ファイル112に含まれる情報は、法令分析ファイル111に記録されているデータに関する要件の情報、ユーザが追加したデータに関する要件などが含まれる。なお、データ要件ファイル112は、対象とするシステム毎に作成される。
ユースケース要件ファイル113は、法令に規定されているユースケースに関する要件を記録したファイルである。ユースケース要件ファイル113に含まれる情報は、法令分析ファイル111に記録されているユースケースに関する要件の情報と、ユーザが追加したユースケースに関する要件などが含まれる。なお、ユースケース要件ファイル113は、対象とするシステム毎に作成される。
用語定義ファイル114は、法令に規定されている各種用語の定義に関する情報を記録したファイルである。用語定義ファイル114に含まれる情報は、法令分析ファイル111に記録されている用語定義に関する情報と、ユーザが追加した用語定義に関する情報などが含まれる。なお、用語定義ファイル114は、対象とするシステム毎に作成される。
パターン定義ファイル121は、分析対象判定ルールファイル122、及び、要件抽出ルールファイル123において利用する法令条文に含まれる文字列パターンを定義したファイルである。パターン定義ファイル121を利用することで、分析対象判定ルールファイル122、及び、要件抽出ルールファイル123のルールの記述を省力化できる。
分析対象判定ルールファイル122は、法令の各条項が分析対象であるか否かを判定するルール(分析対象判定ルール)を定義したファイルである。
要件抽出ルールファイル123は、法令に規定されている要件及びその要件の種別を判定するルール(要件抽出ルール)を定義したファイルである。
なお、本実施形態では、法令分析ファイル111、データ要件ファイル112、ユースケース要件ファイル113、用語定義ファイル114、パターン定義ファイル121、分析対象判定ルールファイル122、及び、要件抽出ルールファイル123をそれぞれ異なるファイルとして管理しているが、各ファイルで管理している情報を識別できるように管理できていれば、どのような構成であっても良く、例えば、データベースを利用して一元的に管理する構成としても良い。
図2は、本発明の一実施形態に係る法令分析支援装置を構成するコンピュータの構成図の一例である。
法令分析支援装置100を構成するコンピュータ201は、CPU202、主記憶装置203、補助記憶装置204、ネットワークインターフェース205、I/Oインターフェース206を備え、内部バス207によって相互に接続されることにより構成されている。なお、本明細書では、主記憶装置203と補助記憶装置204とを単に「記憶装置」と総称する場合がある。主記憶装置203は、例えば、RAM(Random Access Memory)である。補助記憶装置204は、例えば、ハードディスクドライブである。ネットワークインターフェース205は、ネットワークを介しての他の装置との通信を仲介する。I/Oインターフェース206は、例えば、ディスプレイ(表示装置)、マウス、キーボード等と接続され、これらの装置との間のデータの入出力を行う。
ここで、法令分析ファイル111、データ要件ファイル112、ユースケース要件ファイル113、用語定義ファイル114、パターン定義ファイル121、分析対象判定ルールファイル122、及び、要件抽出ルールファイル123は、記憶装置に記憶される。また、分析対象判定部101、要件抽出部102、要件分類部103、及び、要件抽出ルール更新部104は、CPU202が記憶装置に記憶された法令分析支援プログラムを実行して各部を制御することにより構成される。
ここで、特許請求の範囲にいう法令条文記憶手段、要件抽出ルール記憶手段、法令要件情報記憶手段、及び分析対象判定ルール記憶手段は、主に補助記憶装置204により構成され、要件判定手段、種別表示手段、要求受付手段、要件記憶制御手段、及び要件箇所受付手段は、要件抽出部102に相当し、条件受付手段、変更条件判定手段、法令要件判定手段、及び指標決定手段は、要件抽出ルール更新部104に相当し、分析対象判定手段及び分析対象表示手段は、分析対象判定部101に相当し、要件分類手段は、要件分類部103に相当する。
続いて、本発明の実施形態に係る法令分析ファイル111のデータ構造例について説明する。
図3は、本発明の一実施形態に係る法令分析ファイルのデータ構造例を示す図である。なお、本実施形態のデータ構造例を示す図面においては、各エンティティ(データの実体)を矩形で表しており、矩形中の上欄は、エンティティ名を示し、矩形中の下欄は、このエンティティの属性名を示す。また、エンティティ間の関連は、ひし形と実線を結んで表し、ひし形側のエンティティと実線側のエンティティとは、1対多の関係にあることを表す。
法令分析ファイル111は、エンティティとして、法令情報301、法令条文情報302、法令要件情報303、及び要件抽出ルールマッチ情報304を有する。
法令情報301は、法令分析ファイル111に1つあり、法令を識別する情報として、法令IDと法令名とを格納する。法令IDは、法令名の略称であり、法令分析支援装置100が管理する他の法令分析ファイル111の法令IDと重複しないように設定される。例えば、法令名が「住民基本台帳法」の場合、ユーザにより法令IDは「住法」と設定される。なお、法令分析支援装置100が、法令名から他の法令IDと重複しないように自動で設定しても良い。
法令条文情報302は、各条項の法令条文に関する情報として、条項番号、法令条文、及び、分析対象フラグを格納する。条項番号は、法令条文に対応する条や項や号の番号である。法令条文は、条項番号に対応する条、項、または、号に記述されている文(条文ともいう)である。分析対象フラグは、当該条項が対象とするシステム(対象システム)に関する要件を規定しているか否かを示す情報であり、TRUEまたはFALSEのいずれかが設定される。TRUEの場合、対象システムに関する要件を規定していることを意味し、FALSEの場合、対象システムに関する要件を規定していないことを意味する。
法令要件情報303は、法令要件に関する情報として、法令要件ID、従属先法令要件ID、種別、要件1、要件2、条文対応箇所(要件箇所情報)、及び、要件抽出ルールID901(図9参照)を格納する。法令要件IDは、法令要件を一意に識別する識別子を表す。従属先法令要件IDは、他の法令要件に従属している場合に、従属先の法令要件IDを表す。種別は、データ、ユースケース、用語定義などの法令要件の種別を表す。要件1及び要件2は、条文から抽出した要件であり、種別に応じて記載される。条文対応箇所は、法令要件に対応する条文内の記載個所を表す。例えば、条文対応箇所は、条文の先頭からの法令要件の記載開始位置と、当該記載開始位置から記載終了位置までの長さとにより表されている。要件抽出ルールIDは、法令要件を抽出する際に適用した要件抽出ルールファイル123で定義されている要件抽出ルールの識別子を表す。
要件抽出ルールマッチ情報304は、法令条文情報302の法令条文に適用可能な要件抽出ルールに関する情報として、要件抽出ルールID、種別、及び、ルールマッチ箇所を格納する。要件抽出ルールIDは、法令条文に適用可能な要件抽出ルールの識別子(要件抽出ルールID901)を表す。種別は、当該要件抽出ルールの種別903を表す。ルールマッチ箇所は、要件抽出ルールの要件抽出判定条件902に一致する条文の箇所を表す。例えば、条文対応箇所は、条文の先頭からの法令要件の記載開始位置と、当該記載開始位置から記載終了位置までの長さとにより表されている。
続いて、本発明の一実施形態に係るデータ要件ファイル112のデータ構造例について説明する。
図4は、本発明の一実施形態に係るデータ要件ファイルのデータ構造例を示す図である。
データ要件ファイル112は、エンティティとして、法令情報401、データ情報402、及び、データ要件情報403を有する。
法令情報401は、データ要件ファイル112に1つあり、データ要件ファイル112の入力情報となった法令を識別する情報として、法令名を格納する。法令名が複数ある場合は、カンマ(,)で区切るなどして格納される。法令名は、要件分類部103が、法令分析ファイル111の法令情報301から値を取得して設定する。なお、法令名は、法令分析ファイル111の法令IDでも良い。
データ情報402は、法令で規定されているデータを識別する情報として、データID、及び、データ名を格納する。データIDは、データ要件ファイル112において、データを一意に識別する識別子であり、要件分類部103が設定する。データ名は、データの名称を表し、要件分類部103が法令分析ファイル111の法令要件情報303の要件1の値を取得して設定する。データ情報402は、各ユースケースの入出力や、帳票を単位として設定される。
データ要件情報403は、データの要件に関する情報として、要件ID、データ要件、法令要件ID、及び、親要件IDを格納する。要件IDは、データ要件を一意に識別する識別子であり、要件分類部103が設定する。データ要件は、法令分析ファイル111で記載されている当該データに関する要件であり、要件分類部103が法令要件情報303の要件2の値を取得して設定する。法令要件IDは、データ要件の参照先の法令要件情報303の法令要件IDであり、要件分類部103が設定する。親要件IDは、データ要件が他のデータ要件情報403の下位の要件である場合における当該他のデータ要件情報403の要件IDであり、要件分類部103が設定する。親要件IDを利用することでデータ要件の階層関係を表現できる。
続いて、本発明の一実施形態に係るユースケース要件ファイル113のデータ構造例について説明する。
図5は、本発明の一実施形態に係るユースケース要件ファイルのデータ構造例を示す図である。
ユースケース要件ファイル113は、エンティティとして、法令情報501、ユースケース情報502、ユースケースタイプ情報503、及び、ユースケース要件情報504を有する。
法令情報501は、ユースケース要件ファイル113に1つあり、ユースケース要件ファイル113の入力情報となった法令を識別する情報として、法令名を格納する。法令名が複数ある場合は、カンマ(,)で区切るなどして定義される。法令名は、要件分類部103が法令分析ファイル111の法令情報301から値を取得して設定する。なお、法令名は、法令分析ファイル111の法令IDでも良い。
ユースケース情報502は、法令で規定されているユースケースを識別する情報として、ユースケースID、及び、ユースケース名を格納する。ユースケースIDは、ユースケース要件ファイル113において、ユースケースを一意に識別する識別子であり、要件分類部103が設定する。ユースケース名は、ユースケースの名称を表し、ユーザにより設定される。
ユースケースタイプ情報503は、基本シナリオ、代替シナリオ、または、例外シナリオのいずれであるかを識別する情報として、ユースケースタイプを格納する。ユースケースタイプは、法令分析支援装置100の設定画面において、ユーザがプルダウンメニュなどを利用して基本シナリオ、代替シナリオ、または、例外シナリオのいずれかから指定することができる。ここで、基本シナリオとは、通常の流れで使用されるケースを示し、代替シナリオとは、ある条件が存在し、別の処理を経て使用されるケースを示し、例外シナリオとは、異常な流れで使用されるケースを示している。例えば、住民票の作成依頼を受け付けた場合のユースケースの場合には、住民票の作成依頼が要件を満たし、住民票が作成されるケースが正常シナリオであり、住民票の作成依頼が要件を満たさないが、所定の条件を満たすために、他の処理を経て住民票が作成されるケースが代替シナリオであり、住民票の作成依頼が要件を満たさず、住民票が作成されないケースが例外シナリオである。
ユースケース要件情報504は、ユースケースの要件に関する情報として、要件ID、要件種別、ユースケース要件、参照元ID、及び、親要件IDを格納する。要件IDは、ユースケース要件を一意に識別する識別子であり、要件分類部103が設定する。要件種別は、入力、出力、事前条件、または、事後条件のいずれかの値であり、要件分類部103がユースケース要件の参照先から判定して設定する。ユースケース要件の参照先が法令要件情報303の要件1の場合、要件種別は事前条件となる。また、ユースケース要件の参照元が法令要件情報303の要件2の場合、要件種別は事後条件となる。また、ユースケース要件の参照元がデータ要件ファイル112のデータ情報402のデータ名の場合、要件種別は入力または出力となる。この場合、要件分類部103は入力または出力であるかを画面に表示し、ユーザにより入力または出力が選択されることで要件種別を決定する。ユースケース要件は、法令分析ファイル111、または、データ要件ファイル112で記載されている当該ユースケースに関する要件である。要件種別が、入力または出力の場合、要件分類部103は、ユースケース要件にデータ情報402のデータ名を設定し、その他の場合には、法令分析ファイル111の法令要件情報303の要件1または要件2の内容を設定する。参照先IDは、ユースケース要件の参照先である法令分析ファイル111の法令要件情報303の法令要件ID、または、データ要件ファイル112のデータ情報402のデータIDのいずれかの値であり、要件分類部103が設定する。親要件IDは、ユースケース要件が他のユースケース要件情報504の下位の要件である場合に、当該他のユースケース要件情報504の要件IDであり、要件分類部103が値を設定する。親要件IDを利用することでユースケース要件の階層関係を表現できる。
続いて、本発明の一実施形態に係る用語定義ファイル114のデータ構造例について説明する。
図6は、本発明の一実施形態に係る用語定義ファイルのデータ構造例を示す図である。
用語定義ファイル114は、エンティティとして、法令情報601、用語情報602、及び、用語定義情報603を有する。
法令情報601は、用語定義ファイル114に1つあり、用語定義ファイル114の入力情報となった法令を識別する情報として、法令名を格納する。法令名が複数ある場合は、カンマ(,)で区切るなどして格納される。法令名は、要件分類部103が、法令分析ファイル111の法令情報301から値を取得して設定する。なお、法令名は、法令情報301の法令IDでも良い。
用語情報602は、法令で規定されている用語を識別する情報として、用語ID、及び、用語名を格納する。
用語IDは、用語定義ファイル114において、用語を一意に識別する識別子であり、要件分類部103が設定する。用語名は、用語の名称を表し、要件分類部103が、法令分析ファイル111の法令要件情報303の要件1の値を取得して設定する。なお、用語名は、法令で規定されている用語以外の用語を設定しても良い。この場合、ユーザが用語名を設定する。
用語定義情報603は、用語の定義に関する情報として、定義ID、定義内容、法令要件ID、及び、親定義IDを格納する。定義IDは、定義内容を一意に識別する識別子であり、要件分類部103が設定する。定義内容は、法令分析ファイル111で記載されている当該用語に関する定義内容であり、要件分類部103が法令分析ファイル111の法令要件情報303の要件2の値を取得して設定する。なお、ユーザが法令で規定されている用語以外の用語を追加した場合には、定義内容はユーザが設定する。法令要件IDは、定義内容の参照先である法令分析ファイル111の法令要件情報303の法令要件IDであり、要件分類部103が設定する。親定義IDは、定義内容が他の用語定義情報603の下位の定義内容である場合に、当該他の用語定義情報603の定義IDであり、要件分類部103が値を設定する。親定義IDを利用することで定義内容の階層関係を表現できる。
続いて、本発明の一実施形態に係るパターン定義ファイル121について説明する。
図7は、本発明の一実施形態に係るパターン定義ファイルの一例を示す図である。
パターン定義ファイル121には、パターン名701、正規表現フラグ702、及び、パターン文字列703の項目がある。パターン名701は、パターンを識別する情報である。正規表現フラグ702は、TRUEまたはFALSEのいずれかの値であり、TRUEの場合には、パターン文字列703が正規表現を利用した文字列であることを示し、FALSEの場合には、パターン文字列703が正規表現を利用していない文字列であることを示す。パターン文字列703は、法令条文に含まれる特定の文字列を抽出するための検索文字列である。なお、同一のパターン名が複数ある場合、各パターンを「OR」で結合したものが1つのパターンとなる。例えば、図7では、パターン名「アクタ」は2つある。この場合、「アクタ」は「市町村長」または「市町村の執行機関」のいずれかの文字列であることを意味する。なお、パターン定義ファイル121のパターンは、分析対象判定ルールファイル122と要件抽出ルール123とで利用する文字列パターンを、ユーザが事前に洗い出して格納しておいたものである。
また、図7の「アクタ」は、対象システムの利用者を表すパターンである。住民基本台帳法に基づいた市町村で利用するシステムであれば、アクタは市町村の職員であり、それに対応する法令内の用語は、「市町村長」や「市町村の執行機関」となる。パターンの設定については、事前に、法令に目を通すことや、過去の知見などから判断する必要がある。市町村で利用するシステムのアクタを表す用語としては、他の法令を見た場合であっても「市町村長」と記述されており、他の法令でも図7に示した「アクタ」というパターンを利用することができる。
続いて、本発明の実施形態に係る分析対象判定ルールファイル122の例について説明する。
図8は、本発明の一実施形態に係る分析対象判定ルールファイルの一例を示す図である。
分析対象判定ルールファイル122には、分析対象判定ルールID801、分析対象判定条件802、分析対象フラグ803、及び、正規表現フラグ804の項目がある。なお、これらの4項目の1組のデータを「分析対象判定ルール」という。
分析対象判定ルールID801は、分析対象判定ルールを一意に識別する識別子である。分析対象判定条件802は、分析対象であるかを判定するための法令条文に含まれる文字列を検索するための条件である。分析対象フラグ803は、TRUEまたはFALSEのいずれかの値であり、TRUEの場合には、分析対象とすることを示し、FALSEの場合には、分析対象にしないことを示す。正規表現フラグ804は、TRUEまたはFALSEのいずれかの値であり、TRUEの場合には、分析対象判定条件802が正規表現を利用していることを示し、FALSEの場合には、分析対象判定条件802が正規表現を利用していないことを示す。
図8において、分析対象判定ルールID801が「AT001」の分析対象判定ルールは、正規表現フラグ804が「TRUE」であり、分析対象フラグ803が「TRUE」であることから、分析対象判定条件802は正規表現を用いて表現されており、法令条文が分析対象判定条件802を満たす場合、当該法令条文は分析対象であることを意味する。分析対象判定条件802の「%アクタ%(は|に対し)」は、「%アクタ%は」または「%アクタ%に対し」を意味する。「%」で挟まれた文字列は、パターン定義ファイル121に定義されたパターン名701を表す。
パターン定義ファイル121が図7に示す場合においては、アクタは「市町村長」「市町村の執行機関」の2つであることから、分析対象判定条件802の「%アクタ%(は|に対し)」は、実行時に、「市町村長は」「市町村長に対し」「市町村の執行機関は」「市町村の執行機関に対し」の4つの分析対象判定条件802に分解され、法令条文にいずれかの文字列を含む場合に分析対象と判定される。法令条文に「市町村長は」という文字列が含まれる場合、当該法令条文は市町村長に対する義務や権利を規定している。市町村長に対する義務や権利は、整備する必要のある業務である可能性が高く、「市町村長は」という文字列を含む場合には分析対象としている。
続いて、本発明の一実施形態に係る要件抽出ルールファイル123について説明する。
図9は、本発明の一実施形態に係る要件抽出ルールファイルの一例を示す図である。
要件抽出ルールファイル123には、要件抽出ルールID901、要件抽出判定条件902、種別903、優先度904、及び、正規表現フラグ905の項目がある。なお、これらの5項目の1組のデータを「要件抽出ルール」という。
要件抽出ルールID901は、要件抽出ルールを一意に識別する識別子である。要件抽出判定条件902は、法令要件を分類するためのルールであり、パターン定義ファイル121のパターン名701、法令条文の構成情報を利用して定義することができる。ここで、法令条文は、通常、「○○は(主部)、△△ときは(条件部)、□□しなければならない(述部)。」というように記載されている。法令条文の構成情報とは、このような法令条文の主部、条件部、述部等を指す。種別903は、法令条文が条件に一致した場合の法令分析ファイル111の法令要件情報303に指定する要件の種別である。
優先度904は、要件抽出ルールの確からしさを表す指標(優先度)であり、要件抽出判定条件902に一致した条項の数や、実際に当該要件抽出ルールに基づいて、法令要件として抽出された要件数などにより、要件抽出ルール更新部104が算出する。要件抽出ルールは、ユーザが定義する情報である。正しい要件抽出ルールもあれば、そうでない要件抽出ルールも存在する。優先度904を導入することで、要件抽出部102が候補として表示する法令要件の表示順序や法令要件の非表示などを制御することができる。
正規表現フラグ905は、TRUEまたはFALSEのいずれかの値であり、TRUEの場合には、要件抽出判定条件902が正規表現を利用していることを示し、FALSEの場合には、要件抽出判定条件902が正規表現を利用していないことを示す。
図9において、要件抽出ルールID901が「RE001」の要件抽出ルールは、正規表現フラグ905が「FALSE」であり、種別903が「ユースケース」であることから、要件抽出判定条件902は正規表現を用いずに表現されており、法令条文が要件抽出判定条件902に一致した場合、要件の種別が「ユースケース」と判定されることを意味する。要件抽出判定条件902の「(主部 like %アクタ%)AND(述部 like %アクション%しなければならない)」は、法令条文の主部に「%アクタ%」を含み、かつ、述部に「%アクション%しなければならない」を含むことを意味する。
パターン定義ファイル121が図7に示す場合においては、アクタは「市町村長」「市町村の執行機関」であり、また、アクションは「通知」「交付」であることから、要件抽出判定条件902は、「市町村長は〜通知しなければならない」「市町村長は〜交付しなければならない」「市町村の執行機関は〜通知しなければならない」「市町村の執行機関は〜交付しなければならない」の4つの要件抽出判定条件902に分解され、法令条文にいずれかの文字列を含む場合に「ユースケース」と判定される。本実施形態においては、対象システムが市町村の職員によって使用されることを想定し、システム化の可能性の高い「通知」「交付」などのアクションを含む法令条文がユースケースと判定されるような要件抽出ルールが設定されている。
続いて、本発明の実施形態に係る法令分析ファイル表示画面1300の例について説明する。
図13は、本発明の一実施形態に係る法令分析ファイルの表示画面例を示す図である。
法令分析ファイル表示画面1300は、「メニュ画面に戻る」ボタン1301、分析対象判定」ボタン1302、「要件抽出」ボタン1303を有する。ユーザにより「メニュ画面に戻る」ボタン1301が押下されると、メニュ画面に戻る。また、ユーザにより「分析対象判定」ボタン1302が押下されると、分析対象判定部101の処理が実行される。ユーザにより「要件抽出」ボタン1303が押下されると、要件抽出部102の処理が実行される。
また、法令分析ファイル表示画面1300には、法令分析ファイル111の法令情報301の法令名、法令条文情報302の法令条文及び分析対象フラグ、法令要件情報303の法令要件ID、種別、要件1及び要件2の各項目の値が表示される。なお、法令要件情報303の要件1と要件2とは、法令要件の種別によりその内容が異なるため、法令分析ファイル表示画面1300では、種別に応じて要件名を表示している。例えば、種別がデータの場合、要件1の要件名はエンティティ名であり、要件2の要件名はデータ要件となる。
続いて、本発明の一実施形態に係る分析対象判定部101の処理について説明する。
図10は、本発明の一実施形態に係る分析対象判定部の処理を示すフローチャートである。
分析対象判定部101は、ユーザによる法令分析ファイル表示画面1300の分析対象判定1302ボタンの押下、又はバッチ処理などにより処理の実行を開始する。
まず、分析対象判定部101は、法令分析ファイル111から法令条文情報302を読み込み(ステップS1001)、ステップS1002に進む。次に、分析対象判定部101は、法令条文情報302の分析対象フラグが設定済みであるか否か判定する(ステップS1002)。その結果、設定済みの場合(ステップS1002でYES)は、ステップS1007に進み、設定済みでない場合(ステップS1002でNO)は、ステップS1003に進む。本実施形態においては、ユーザが、法文条文情報302の分析対象フラグを設定することを許す仕様としており、ステップS1002の処理を行うことで、ユーザが設定した分析対象フラグの設定情報を優先する仕様としている。なお、変形例として、設定済みの分析対象フラグを無視して、再度、分析対象であるか否かを判定するようにしても良いが、この場合には、ステップS1002の処理を省略すれば良い。
次に、分析対象判定部101は、当該法令条文情報302の法令条文が、従属条項、または、号であるか否かを判定する(ステップS1003)。その結果、従属条項、または、号である場合(ステップS1003でYES)は、ステップS1004に進み、そうでない場合(ステップS1003でNO)は、ステップS1005に進む。なお、従属条項とは、法令条文に「第○条第△項に規定する□□は」というような他の条項への参照情報を含み、当該他の条項に制限を加えたり、補足していたりするなど、他の条項と密接に関係している条項のことである。また、号は、法令においては、事柄を列挙する場合に用いられ、項の一部(下位)である。
次に、分析対象判定部101は、従属先、または、上位の条項の分析対象フラグを取得する(ステップS1004)。当該法令条文情報302の法令条文が従属条項の場合、分析対象判定部101は、当該法令条文に含まれる他の条項への参照情報から従属先の条項を特定し、当該従属先の条項の法令条文情報302の分析対象フラグの値を取得する。また、当該法令条文情報302の法令条文が号の場合、分析対象判定部101は、号の上位にあたる条項を特定し、当該条項の法令条文情報302の分析対象フラグの値を取得する。分析対象判定部101は、分析対象フラグの値を取得した後、ステップS1006に進む。
一方、法令条文情報302の法令条文が、従属条項、または、号でない場合(ステップS1003でNO)は、分析対象判定部101は、分析対象判定ルールファイル122に基づき、対象の法令条文が分析対象の可否を判定する(ステップS1005)。具体的には、分析対象判定部101は、法令条文情報の法令条文に、分析対象判定ルールファイル122の分析対象判定条件802に一致する記述があるか否かを判定する。一致する記述ある場合には、分析対象判定部101は、分析対象判定ルールファイル122の分析対象フラグ803の値を取得する一方、一致する記述がない場合には、分析対象の可否の判定結果を「未設定(値なし)」とする。分析対象フラグ803の値を取得した後、ステップS1006に進む。
ステップS1006では、分析対象判定部101は、法令分析ファイル111の当該法令条文情報302の分析対象フラグの値を設定する(ステップS1006)。なお、ステップS1004にて取得した分析対象フラグの値が「未設定(値なし)」の場合や、ステップS1005の分析対象の可否の判定結果が「未設定(値なし)」の場合は、ステップS1006の処理をスキップする。
次に、分析対象判定部101は、法令分析ファイル111に未処理の法令条文(条項:法令条文情報302)があるか否かを判定する(ステップS1007)。判定の結果、未処理の法令条文(法令条件情報302)がある場合(ステップS1007でYES)、ステップS1001に戻り、ない場合(ステップS1007でNO)、処理を終了する。
なお、図10に示す例では、法令分析ファイル111の全ての法令条文情報302を対象にして、分析対象であるか否かを連続して判定するフローとしたが、ユーザ操作により法令条文情報302を1件毎に対話的に処理するようにしても良い。例えば、ユーザが選択した特定の法令条文情報302に対して、ユーザがボタンを押下するなどした際に当該1件の法令条文情報302について分析対象であるか否かの判定処理を行うようにしてもよい。この場合、ステップS1007の処理を省略すればよい。
また、別の例として、ステップS1002の処理を省略し、かつ、法令条文情報302の分析対象フラグが設定済みの場合において、ステップS1004、及び、ステップS1005の実行の結果得られた分析対象フラグの値と、設定済みの分析対象フラグの値とが一致しない場合に警告画面を表示するようにしても良い。
続いて、本発明の一実施形態に係る要件抽出部102の処理について説明する。
図11は、本発明の一実施形態に係る要件抽出部の処理を示すフローチャートである。
要件抽出部102は、ユーザが選択した法令条文情報302に対して、ユーザにより法令分析ファイル表示画面1300の要件抽出ボタン1303が押下されたことにより処理の実行を開始する。
要件抽出部102は、ユーザが選択した法令条文情報302と、当該法令条文情報302に対応する法令要件情報303と、要件抽出ルールマッチ情報304とを読み込む(ステップS1101)。読み込んだ後、ステップS1102に進む。
次に、要件抽出部102は、要件抽出ルールファイル123の要件抽出ルールに基づき、当該法令条文情報302の法令条文に規定されている要件を判定する(ステップS1102)。具体的には、要件抽出部102は、当該法令条文に要件抽出ルールファイル123の要件抽出判定条件902に一致するか否かを判定し、一致する場合には、当該要件抽出判定条件902の要件抽出ルールID901と種別903、及び、当該要件抽出判定条件902に一致した文字列の法令条文内での位置を、要件抽出ルールマッチ情報304の要件抽出ルールID、種別、ルールマッチ箇所にそれぞれ書き込む。なお、複数の要件抽出判定条件902に一致した場合、要件抽出部102は、一致したそれぞれの要件抽出判定条件902に対して、要件抽出ルールマッチ情報304を作成する。また、要件抽出ルールマッチ情報304にすでに情報が記録されている場合、すでにステップS1102の処理を実行したとみなし、ステップS1102の処理を省略しても良い。要件抽出ルールマッチ情報304に書き込んだ後、ステップS1103に進む。
次に、要件抽出部102は、当該法令条文情報302に対応する法令要件情報303と要件抽出ルールファイル123の優先度904に基づき、特定した要件を表示する(ステップS1103)。要件抽出部102は、当該法令条文情報302に対応する要件抽出ルールマッチ情報304のうち、要件抽出ルールマッチ情報304の要件抽出ルールIDが、当該法令条文情報302に対応する法令要件情報303の要件抽出ルールIDと一致しない要件抽出ルールマッチ情報304を特定する。続いて、要件抽出部102は、特定した要件抽出ルールマッチ情報304の要件抽出ルールIDから要件抽出ルールファイル123の優先度904を取得する。続いて、要件抽出部102は、優先度904の高い順に要件を並べ替え、要件抽出結果の画面を表示する。なお、要件抽出部102は、優先度904があるしきい値より低い場合には、画面に表示しないようにしたり、優先度の高い要件と表示領域を分けて表示したりしても良い。
ここで、本発明の実施形態に係る要件抽出部102の要件抽出結果の表示画面1400の例について説明する。
図14は、本発明の一実施形態に係る要件抽出部の要件抽出結果の表示画面例を示す図である。
要件抽出結果の表示画面1400には、要件候補、及び、しきい値(例えば、優先度“10”)以下の要件候補の2つの項目が表示される。要件候補の下には、優先度904がしきい値より大きい値を持つ要件抽出ルールが表示され、しきい値以下の要件候補の下には、それ以外の要件抽出ルールが表示される。要件抽出ルールとして表示する内容は、要件抽出ルールID901、種別903、優先度904である。また、要件抽出結果の表示画面1400には、OKボタンとキャンセルボタンの2つのボタンが表示される。ユーザにより、要件候補、または、しきい値以下の要件候補の下の要件抽出ルールのいずれかが選択されて、OKボタンが押下されると、要件抽出部102は、ユーザに選択された要件抽出ルールを取得する。また、ユーザによりキャンセルボタンが押下された場合、要件抽出部102は、要件抽出結果の表示画面1400を閉じる。
要件抽出部102は、要件抽出結果の表示画面1400を表示した後、ステップS1104に進む。要件抽出部102は、ユーザによる要件候補の選択を待つ(ステップS1104)。要件抽出部102は、ユーザにより要件抽出結果の表示画面1400に表示されている要件抽出ルールのいずれかが選択され、OKボタンが押下されるのを待つ。OKボタンが押下された後、ステップS1105に進む。なお、ユーザによりキャンセルボタンが押下された場合には、ステップS1106に進む。
要件抽出部102は、ユーザにより選択された要件抽出ルールに対応する法令条文の該当箇所を強調表示する(ステップS1105)。要件抽出部102は、法令要件入力画面1500を表示し、要件抽出ルールに対応する法令条文の該当箇所を、強調表示(例えば、下線と太字)する。
ここで、本発明の一実施形態に係る法令要件入力画面1500の一例について説明する。
図15は、本発明の一実施形態に係る法令要件入力画面例を示す図である。図15(a)は、画面を表示させた直後の法令要件入力画面1500の一例を示し、図15(b)は、ユーザにより要件が入力された後の法令要件入力画面1500の一例を示している。
法令要件入力画面1500は、法令条文、種別、従属先法令要件ID、要件1、要件2の各項目を入力及び表示する部分を有する。法令条文は、法令分析ファイル111の法令条文情報302の法令条文の値が表示される。種別には、ステップS1104にて、ユーザにより選択された要件抽出ルールの種別が表示される。従属先法令要件IDは、当該法令要件が他の法令要件に従属する場合に当該他の法令要件の法令要件IDをユーザが入力する部分である。要件1及び要件2は、ユーザが種別に応じて、要件を入力する部分である。なお、要件1及び要件2の横に()書きで、「データ名」「データ要件」と表記があるが、これらは、種別によって、要件抽出部102が値を設定する。図15(a)に示す法令要件入力画面1500では、種別が「データ」であり、「データ」という種別に対応して、要件1及び要件2にそれぞれ「データ名」「データ要件」という文字列が表示されている。
法令要件入力画面1500は、要件抽出結果の表示画面1400と同一の画面上に同時に表示するようにしても良い。この場合、要件抽出結果の表示画面1400において、ユーザにより選択された要件候補に応じて、要件抽出部102が法令要件入力画面1500の法令条文の強調表示の位置や種別を同期して表示するようにしてもよく、このようにすると、ユーザが要件候補と法令条文との対応箇所を見やすくなる。
要件抽出部102が、図15(a)に示す法令要件入力画面1500を表示した後、ステップS1106に進む。
次に、要件抽出部102は、ユーザによる法令要件入力画面1500に対する要件箇所のマーキングと要件の記述を待つ(ステップS1106)。ユーザは、ステップS1105にて、法令条文の強調表示箇所の前後を参考にし、要件が記述されている箇所を特定し、当該個所をマーキングする。法令抽出部102は、ユーザがマーキングした箇所を下線や太字など書式を変更することで、ユーザがマーキングした箇所がわかるように画面表示する。続いて、ユーザは、要件1及び要件2の項目に種別に対応する要件を入力する。図15(b)に示す法令要件入力画面1500では、ユーザは「他の市町村から当該市町村の・・・記載をした」及び「その旨を」の部分をマーキングしている。要件抽出ルールに対応する箇所は、「その旨を」のみであるが、ここでは、ユーザは「その」という代名詞に該当する部分も合わせてマーキングしている。また、要件1及び要件2は、マーキングした箇所の情報を参考にしてユーザにより入力されている。要件1(データ名)の内容は、同一の記述がマーキング箇所に含まれないが、データの名称をユーザが検討して入力している。法令要件入力画面1500のOKボタンが押された後、ステップS1107に進む。なお、法令要件入力画面1500のキャンセルボタンが押下された場合には、ステップS1103に進む。
次に、要件抽出部102は、抽出した法令要件及びユーザにより入力された各種情報を記録(格納)する(ステップS1107)。要件抽出部102は、法令要件入力画面1500の種別、従属先法令要件ID、要件1、要件2の値を、それぞれ法令分析ファイル111の法令要件情報303の対応する箇所に格納する。また、要件抽出部102は、法令要件入力画面1500において、ユーザがマーキングした箇所と、当該法令要件の抽出に適用した要件抽出ルールIDとを、法令要件情報303の条文対応箇所及び要件抽出ルールIDにそれぞれ格納する。なお、ユーザがマーキングした箇所は、例えば、法令条文の先頭からマーキング開始箇所(マーキング開始位置)までの文字数と、マーキング開始箇所からマーキング終了箇所までの文字数との組で表現される。法令要件情報303に各種情報を格納した後、ステップS1108に進む。
次に、要件抽出部102は、他の要件候補があるか否かを判定する(ステップS1108)。他の要件候補がある場合(ステップS1108でYES)、ステップS1103に戻り、ない場合(ステップS1108でNO)、ステップS1109に進む。なお、本実施形態では、他の要件候補は、要件抽出結果1400の要件候補(優先度がしきい値より大きいもの)を対象とする。これにより、優先度の高い要件についての抽出モレを適切に防止できる。
次に、要件抽出部102は、法令条文内にマーキングされていない箇所があるか否かを判定する(ステップS1109)。要件抽出部102は、当該法令条文に関連する全ての法令要件情報303の条文対応箇所の値を利用して、マーキングされていない箇所があるか否かを判定する。マーキングされていない箇所がある場合(ステップS1109でYES)、ステップS1106に戻り、ない場合(ステップS1109でNO)、要件抽出部102は処理を終了する。なお、ステップS1106に戻った場合には、法令要件入力画面1500の種別は、ユーザが指定することとなる。
続いて、本発明の一実施形態に係る要件分類部103の処理について説明する。
図12は、本発明の一実施形態に係る要件分類部の処理を示すフローチャートである。
要件分類部103は、ユーザによる操作、バッチ処理などにより処理の実行を開始する。要件分類部103は、法令分析ファイル111を読み込む(ステップS1201)。要件分類部103は、対象システムに関連する法令文書から要件を抽出した結果を記録した全ての法令分析ファイル111を読み込む。対象システムに関連するか否かは、例えば、特定のフォルダに格納されている法令分析ファイル111を対象としたり、ユーザが指定した法令分析ファイル111を対象としたりすることで判定する。法令分析ファイル111を読み込んだ後、ステップS1202に進む。
次に、要件分類部103は、読み込んだ法令分析ファイル111から用語定義に関する情報を抽出し、用語定義ファイル114を作成する(ステップS1202)。要件分類部103は、法令分析ファイル111から法令情報301、及び、法令条文情報302の分析対象フラグが「TRUE」であり、かつ、法令要件情報303の種別が「定義」である法令要件情報303を抽出する。続いて、要件分類部103は、法令情報301と法令要件情報303の情報を用語定義ファイル114の法令情報601、用語情報602、及び、用語定義情報603に書き込む。なお、作成済みの用語定義ファイル114がある場合、変更があった箇所のみ更新処理を行う。用語定義ファイル114を作成した後、ステップS1203に進む。
次に、要件分類部103は、法令分析ファイル111からデータ要件に関する情報を抽出し、データ要件ファイル112を作成する(ステップS1203)。要件分類部103は、法令分析ファイル111から法令情報301、及び、法令条文情報302の分析対象フラグが「TRUE」であり、かつ、法令要件情報303の種別が「データ」である法令要件情報303を抽出する。続いて、要件分類部103は、法令情報301と法令要件情報303の情報をデータ要件ファイル112の法令情報401、データ情報402、及び、データ要件情報403に書き込む。なお、作成済みのデータ要件ファイル112がある場合、変更があった箇所のみ更新処理を行う。データ要件ファイル112を作成した後、ステップS1204に進む。
次に、要件分類部103は、法令分析ファイル111からユースケース要件に関する情報を抽出し、ユースケース要件ファイル113を作成し(ステップS1204)、処理を終了する。要件分類部103は、法令分析ファイル111から法令情報301、及び、法令条文情報302の分析対象フラグが「TRUE」であり、かつ、法令要件情報303の種別が「ユースケース」である法令要件情報303を抽出する。続いて、要件分類部103は、法令情報301と法令要件情報303の情報をユースケース要件ファイル112の法令情報501、ユースケース情報502、ユースケースタイプ情報503、及び、ユースケース要件情報504に書き込む。なお、作成済みのユースケース要件ファイル113がある場合、変更があった箇所のみ更新処理を行う。
続いて、本発明の実施形態に係る要件抽出ルール更新部104の処理について説明する。
図16は、本発明の一実施形態に係る要件抽出ルール更新部の処理を示すフローチャートである。
要件抽出ルール更新部104は、要件抽出ルールファイル123の要件抽出ルールが追加、変更された場合に、処理の実行を開始する。要件抽出ルール更新部104は、法令分析ファイル111と要件抽出ルールファイル123とを読み込む(ステップS1601)。要件抽出ルール更新部104は、優先度904の更新対象である要件抽出ルールファイル123が適用されている法令分析ファイル111を読み込む。当該要件抽出ルールファイル123が適用されているか否かは、例えば、特定のフォルダに格納されている法令分析ファイル111を対象とすることで判定する。法令分析ファイル111と要件抽出ルールファイル123を読み込んだ後、ステップS1602に進む。
次に、要件抽出ルール更新部104は、要件抽出ルールファイル123に要件抽出ルールが追加されたか、または、要件抽出ルールファイル123の要件抽出判定条件902が変更されたか否かを判定する(ステップS1602)。要件抽出ルールの追加、または、要件抽出判定条件902の変更があった場合(ステップS1602でYES)、ステップS1603に進み、そうでない場合(ステップS1602でNO)、ステップS1604に進む。なお、そうでない場合とは、要件抽出ルール123の要件抽出判定条件902は変更せずに種別903を変更した場合である。
次に、要件抽出ルール更新部104は、主記憶装置203上に一時的な要件抽出ルールマッチ情報304を作成する(ステップS1603)。具体的には、要件抽出ルール更新部104は、法令分析ファイル111の法令条文情報302の法令条文が、要件抽出ルールファイル123に追加された要件抽出ルール、または、要件抽出ルールにおける変更された要件抽出判定条件902に一致するか否かを判定する。この判定においては、法令要件情報303を1以上持つ全ての法令条文情報302を対象にしている。この判定の結果、一致する部分がある場合、主記憶装置203上に一時的な要件抽出ルールマッチ情報304を作成する。要件抽出ルールマッチ情報304を作成した後、ステップS1604に進む。
次に、要件抽出ルール更新部104は、要件抽出ルールマッチ情報304に関する統計情報を表示する(ステップS1604)。要件抽出ルール更新部104は、主記憶装置203上に作成した要件抽出ルールマッチ情報304の数を取得する。続いて、要件抽出ルール更新部104は、当該要件抽出ルールマッチ情報304のルールマッチ箇所で指定される範囲が、法令要件情報303の条文対応箇所の一部であり、かつ、要件抽出ルールマッチ情報304と法令要件情報303の種別が一致する法令要件情報303の数を取得する。続いて、要件抽出ルール更新部104は、取得した要件抽出ルールマッチ情報304の数、取得した法令要件情報303の数、及び、取得した法令要件情報303の数を取得した要件抽出ルールマッチ情報304の数で除算した値をディスプレイに表示させる。ディスプレイに表示させた後、ステップS1605に進む。ユーザは、ディスプレイに表示された情報を見て、当該要件抽出ルールの追加、または、変更を確定させるか否かを判断することとなる。
次に、要件抽出ルール更新部104は、ユーザによる要件抽出ルールの追加、変更の確定についての判断を待つ(ステップS1605)。更新抽出ルール更新部104は、例えば、ユーザによりOKボタンやキャンセルボタンが押下されるなどの操作イベントを取得することで、要件抽出ルールの追加、変更の確定をユーザが了承するか否かの情報を取得する。ユーザの確定を了承する判断結果を取得した後、ステップS1606に進む。なお、ユーザによりキャンセルボタンが押下された場合など、要件抽出ルールの追加、変更の確定を了承しない場合は、本ステップ(ステップS1605)にて、要件抽出ルール更新部104は処理を終了する。
次に、要件抽出ルール更新部104は、当該要件抽出ルールの優先度904を計算する(ステップS1606)。要件抽出ルール更新部104は、ステップS1604で取得した法令要件情報303の数(A)と要件抽出ルールマッチ情報304の数(B)、及び、法令要件情報303の総数(C)などを利用して、優先度904を計算する。例えば、優先度904は、(A/B)×(B/C)と計算する。優先度904を計算した後、ステップS1607に進む。
次に、要件抽出ルール更新部104は、法令分析ファイル111と要件抽出ルールファイル123を更新する(ステップS1607)。要件抽出ルール更新部104は、ステップS1603にて一時的に主記憶装置203上に格納した要件抽出ルールマッチ情報304を法令分析ファイル111に追加する。続いて、要件抽出ルール更新部104は、追加、または、変更する要件抽出ルールの優先度904を要件抽出ルールファイル123に反映する。
上記処理の変形例としては、要件抽出ルール更新処理104が、法令分析ファイル111の法令要件情報303、または、要件抽出ルールマッチ情報304の追加、変更、削除が変更されたイベントを把握した際に、上記処理を実行するようにしても良い。なお、この場合には、ステップS1602、ステップS1604、及び、ステップS1605の各ステップを省略する。
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。