[情報処理システムの構成]
図1は、情報処理システム10の構成を示す図である。図1に示す情報処理システム10には、例えば、情報処理装置1(以下、抽出装置1とも呼ぶ)と、記憶部2とを有する。そして、図1に示す情報処理装置1は、複数の利用者端末11に接続している。
利用者端末11は、利用者が使用する端末である。利用者は、利用者端末11を介して、内容の整合性等の確認を行う入力データを情報処理装置1に送信する。利用者が送信する入力データは、例えば、内容の正確性が要求される財務情報等を含むデータである。なお、利用者が送信するデータは、例えば、XBRL(eXtensible Business Reporting Language)の形式に従ったデータである。
情報処理装置1は、利用者端末11から送信した入力データを受信した場合、記憶部2に記憶された複数の検証ルール131(以下、検証ルール情報131とも呼ぶ)を取得する(図1の(1)及び(2))。この検証ルール131は、利用者端末11から送信された入力データの内容を検証するために予め定められたルールである。検証ルール131は、例えば、XBRLデータの内容の検証や計算を行うためのルールを定義する記述言語であるXBRLフォーミュラによって記述されたルールである。
そして、情報処理装置1は、入力データの内容が、複数の検証ルール131のそれぞれに従っているか否かをそれぞれ検証する(図1の(3))。その後、情報処理装置1は、入力データに対する検証結果を、入力データを送信した利用者端末11に送信する。
[検証対象データの抽出]
次に、入力データに対して行われる検証対象データの抽出について説明を行う。図1に示す情報処理装置1は、利用者端末11から入力データを受信した場合、例えば、入力データから検証対象データの抽出を行う。これにより、情報処理装置1は、入力データの内容の検証に伴う処理量を抑制することが可能になる。以下、入力データの具体例について説明を行う。
[入力データの具体例]
図2は、入力データの具体例を説明する図である。図2に示す入力データは、情報処理装置1が利用者端末11から受信した入力データの具体例である。図2に示す入力データは、入力データに含まれる各情報を識別する「項番」と、入力データに含まれる各データの種別を示す「科目」と、「科目」に設定された情報に対応して設定された値である「値」とを項目として有する。
具体的に、図2に示す入力データにおいて、「項番」が「1」である情報には、「科目」として「売上」が設定され、「値」として「10000000」が設定されている。また、図2に示す入力データにおいて、「項番」が「4」である情報には、「科目」として「売上原価」が設定され、「値」として「5000000」が設定されている。図2に含まれる他の情報については説明を省略する。なお、以下、図2で説明した入力データに含まれる「項番」が「1」から「6」である情報を、それぞれデータ1、データ2、データ3、データ4、データ5及びデータ6とも呼ぶ。
そして、情報処理装置1は、例えば、入力データから検証対象データの抽出を行う場合、入力データから検証ルール131毎の抽出条件を満たすデータを、検証ルール131毎の検証対象データとして抽出する。そして、情報処理装置1は、検証ルール131毎に抽出された検証対象データに対して、各検証ルール131に含まれる検証式による内容の検証を行う。以下、検証ルール131の具体例について説明を行う。
[検証ルールの具体例]
図3は、複数の検証ルール131のうちのある1つの検証ルール131を説明する図である。図3に示す検証ルール131には、抽出条件(1)と、抽出条件(2)と、抽出条件(3)と、検証式とが含まれている。検証ルール131に含まれる検証式は、例えば、入力データにおいて設定された異常な値を検知するための式である。
具体的に、図3に示す検証ルール131に含まれる検証式は、入力データに含まれる内容のうち、アメリカでのハードウエアの売上が0ドル以上であるか否かを検証するための式である。これにより、情報処理装置1は、例えば、アメリカでのハードウエアの売上として0ドル以上の金額が設定されることが明らかである場合において、0ドル未満の金額が設定されている場合に、入力データに異常な値が設定されていることを検知することが可能になる。
ここで、図3に示す検証式において検証されるデータは、アメリカでのハードウエアの売上に関するデータのみである。すなわち、情報処理装置1は、図3に示す検証式によって、アメリカでのハードウエアの売上に関するデータ以外のデータについての検証を行う必要がない。そのため、情報処理装置1は、図3に示すように、検証式による検証を行う前に、検証ルール131に含まれる抽出条件によって、アメリカでのハードウエアの売上に関するデータのみを抽出して検証対象データとする。そして、情報処理装置1は、抽出した検証対象データについて、検証式による検証を行う。
具体的に、図3に示す例において、情報処理装置1は、利用者端末11から入力データを受信した場合、抽出条件(1)の内容を参照し、各データに対応する属性のうちの「項目名」が「売上」であるデータを抽出する。そして、情報処理装置1は、抽出条件(2)の内容を参照し、抽出条件(1)によって抽出されたデータから、各データに対応する属性のうちの「製品カテゴリ」が「ハードウエア」であるデータを抽出する。さらに、情報処理装置1は、抽出条件(3)の内容を参照し、抽出条件(3)によって抽出されたデータから、各データに対応する属性のうちの「地域カテゴリ」が「アメリカ」であるデータを抽出する。
その後、情報処理装置1は、検証式によって、抽出条件(3)によって抽出されたデータのそれぞれにおいて、アメリカでのハードウエアの売上が0ドル以上であるか否かを検証する。そして、情報処理装置1は、例えば、検証結果を利用者端末11に送信する。これにより、情報処理装置1は、検証式による入力データの内容の検証を効率的に行うことが可能になる。
なお、情報処理装置1は、例えば、検証式に複数の変数が含まれている場合、抽出条件(1)から(3)によって抽出されたデータに対し、検証式に含まれる変数毎の個別の抽出条件による更なる抽出を行うものであってもよい。
[検証対象データの抽出の詳細]
次に、検証対象データの抽出の詳細について説明を行う。情報処理装置1は、検証ルール131毎の検証対象ルールの抽出を行う場合、入力データそれぞれに対応する属性を示す情報であるアスペクト情報と、各検証ルール131において抽出条件として含まれる属性(以下、抽出属性とも呼ぶ)を示す情報である抽出アスペクト情報との比較を行う。
すなわち、事業者は、例えば、入力データから検証対象データの抽出を行う前に、入力データの内容に対する検証方法を予め決定する。そして、事業者は、予め定めた検証方法による入力データの内容の検証を行うために、抽出アスペクト情報を含む複数の検証ルール131を作成する。そして、情報処理装置1は、利用者端末11から入力データを受信した場合に、入力データに含まれる各データに対応するアスペクト情報と、各検証ルール131に含まれる抽出アスペクト情報とを比較することにより、検証ルール131毎の検証対象データの抽出を行う。以下、入力データに含まれる各データに対応するアスペクト情報及び検証ルール131に含まれる抽出アスペクト情報の具体例について説明を行う。
なお、以下、アスペクト情報は、アスペクト情報の種別と、各種別に対応する値(各種別に対応する条件)とを含むものとして説明を行う。また、以下、抽出アスペクト情報は、抽出アスペクト情報の種別(以下、抽出種別とも呼ぶ)と、抽出種別に対応する値(以下、抽出値とも呼ぶ)とを含むものとして説明を行う。
[アスペクト情報の具体例]
図4及び図5は、入力データに含まれる各データ対応するアスペクト情報の具体例を説明する図である。図4(A)から(C)及び図5(A)から(C)に示す各アスペクト情報は、図2で説明したデータ1からデータ6にそれぞれ対応するアスペクト情報である。
図4(A)に示すデータ1のアスペクト情報は、データ1のアスペクト情報に含まれる各情報を識別する「項番」と、データ1のアスペクト情報の種別が設定される「種別」と、「種別」に設定された情報に対応する値が設定される「値」とを項目として有する。
具体的に、図4(A)に示すデータ1のアスペクト情報において、「項番」が「1」である情報には、「種別」として「項目名」が設定され、「値」として「売上」が設定されている。また、図4(A)に示すデータ1のアスペクト情報において、「項番」が「2」である情報には、「種別」として「製品カテゴリ」が設定され、「値」として「ハードウエア」が設定されている。さらに、図4(A)に示すデータ1のアスペクト情報において、「項番」が「3」である情報には、「種別」として「地域カテゴリ」が設定され、「値」として「アメリカ」が設定されている。
また、図4(B)、図4(C)及び図5(A)から(C)に示す各アスペクト情報は、図4(A)に示す各アスペクト情報と同じ項目を有している。図4(B)、図4(C)及び図5(A)から(C)に示す各アスペクト情報については説明を省略する。
なお、図4及び図5において、「種別」として「項目名」、「製品カテゴリ」及び「地域カテゴリ」を有するアスペクト情報について説明を行ったが、各アスペクト情報は、例えば、「期間」や「単位」等、他の「種別」に対応する情報を有するものであってもよい。
[抽出アスペクト情報の具体例]
次に、抽出アスペクト情報の具体例について説明を行う。図6は、抽出アスペクト情報の具体例を説明する図である。以下、検証ルール131として、検証ルール131aから131gが記憶部2に記憶されているものとして説明を行う。また、検証ルール131aから131fには、抽出アスペクト情報141aから141fがそれぞれ含まれるものとして説明を行う。さらに、検証ルール131gには、抽出アスペクト情報が含まれていない(検証式のみが含まれる)ものとして説明を行う。なお、抽出アスペクト情報141aから141fを総称して抽出アスペクト141とも呼ぶ。
図6(A)から(F)に示す抽出アスペクト情報141は、図4及び図5で説明したアスペクト情報と同一の項目を有している。具体的に、図6(A)に示す抽出アスペクト情報141aにおいて、「項番」が「1」である情報には、「種別」として「項目名」が設定され、「値」として「売上」が設定されている。また、図6(A)に示す抽出アスペクト情報141aにおいて、「項番」が「1」である情報には、「種別」として「製品カテゴリ」が設定され、「値」として「ソリューション」が設定されている。すなわち、図6(A)に示す抽出アスペクト情報141aは、「項目名」が「売上」であり、「製品カテゴリ」が「ソリューション」であるアスペクト情報に対応するデータを抽出するための抽出アスペクト情報141である。
また、図6(B)に示す抽出アスペクト情報141bにおいて、「項番」が「1」である情報には、「種別」として「項目名」が設定され、「値」として「売上」が設定されている。また、図6(B)に示す抽出アスペクト情報141bにおいて、「項番」が「2」である情報には、「種別」として「製品カテゴリ」が設定され、「値」として「ハードウエア」が設定されている。そして、図6(B)に示す抽出アスペクト情報141bにおいて、「項番」が「3」である情報には、「種別」として「地域カテゴリ」が設定され、「値」として「アメリカ」が設定されている。すなわち、図5(B)に示す抽出アスペクト情報141bは、「項目名」が「売上」であり、「製品カテゴリ」が「ハードウエア」であり、「地域カテゴリ」が「アメリカ」であるアスペクト情報に対応するデータを抽出するための抽出アスペクト情報141である。
さらに、図6(F)に示す抽出アスペクト情報141fにおいて、「項番」が「1」である情報には、「種別」として「地域カテゴリ」が設定され、「値」として「アメリカ」以外の全ての値を示す「Not アメリカ」が設定されている。すなわち、図6(F)に示す抽出アスペクト情報141fは、「地域カテゴリ」に「アメリカ」以外の値が設定されたアスペクト情報に対応するデータを抽出するための抽出アスペクト情報141である。
[抽出結果情報の具体例]
次に、抽出アスペクト情報141による検証対象データの抽出結果(以下、抽出結果情報135とも呼ぶ)の具体例について説明を行う。図7は、抽出結果情報135の具体例を説明する図である。
図7に示す抽出結果情報135は、抽出結果情報135に含まれる各情報を識別する「項番」と、検証ルール131を識別する情報が設定される「検証ルール」と、入力データに含まれる各データを示す情報が設定される「入力データ」とを項目として有している。
具体的に、図4(A)から(C)及び図5(A)から(C)に示すアスペクト情報における「種別」が「項目名」である情報の「値」には、ぞれぞれ「売上」、「売上」、「売上」、「売上原価」、「売上原価」及び「売上原価」が設定されている。また、図4(A)から(C)及び図5(A)から(C)に示すアスペクト情報における「種別」が「製品カテゴリ」である情報の「値」には、ぞれぞれ「ハードウエア」、「ソフトウエア」、「ソリューション」、「ハードウエア」、「ソフトウエア」及び「ソリューション」が設定されている。そして、図6(A)で説明した抽出アスペクト情報141aには、「種別」として「項目名」が設定され、「値」として「売上」が設定されている抽出属性が含まれている。また、図6(A)で説明した抽出アスペクト情報141aには、「種別」として「製品カテゴリ」が設定され、「値」として「ソリューション」が設定されている抽出属性が含まれている。
そのため、図6(A)で説明した抽出アスペクト情報141aは、図4(C)に示すアスペクト情報のみと合致する。したがって、情報処理装置1は、図7に示すように、「項番」が「1」である情報の「検証ルール」に、図6(A)で説明した抽出アスペクト情報141aを含む検証ルール131aを示す「131a」を設定する。そして、情報処理装置1は、「項番」が「1」である情報の「入力データ」に、図4(C)で説明したアスペクト情報に対応するデータを示す「データ3」等を設定する。
なお、検証ルール131gには、抽出アスペクト情報141が含まれていない。そのため、図2で説明した入力データに対して、検証ルール131gによるデータの抽出が行われた場合、入力データに含まれる全てのデータが抽出される。したがって、情報処理装置1は、図7に示すように、「検証ルール」が「131g」である情報の「入力データ」に、入力データに含まれる全てのデータを示す「全データ」を設定する。図7に含まれる他の情報については説明を省略する。
ここで、利用者から受信した入力データのデータ量が膨大である場合、検証対象データを抽出する際の情報処理装置1の処理負担が大きくなる。そのため、情報処理装置1は、例えば、各検証ルール131に対応する抽出属性が複数存在する場合、より少ないデータを抽出することができる抽出属性(以下、高効率な抽出属性とも呼ぶ)を、他の抽出属性よりも先に用いて検証対象データの抽出を行う。これにより、情報処理システムは、検証対象データを抽出する際の処理負担を抑制することが可能になる。以下、高効率な抽出属性について説明を行う。
[高効率な抽出属性]
図8は、各アスペクト情報によって抽出される検証対象データの件数の具体例を説明する図である。図8に示す情報は、図6で説明した抽出アスペクト情報141と同じ項目を有している。また、図8に示す情報は、抽出アスペクト情報に含まれる各抽出属性によって入力データから抽出されるデータの件数が設定される「件数」を項目として有する。なお、図8に示す例では、入力データに10000件のデータが含まれているものとして説明を行う。
具体的に、図8に示す情報において、「種別」が「項目名」であって「値」が「売上」である情報(「項番」が「1」である情報)の「件数」には、「6000(件)」が設定されている。すなわち、図8に示す情報における「項番」が「1」である情報は、「種別」が「項目名」であって「値」が「売上」である抽出属性によって入力データの抽出を行った場合、6000(件)のデータが抽出されることを示している。
そのため、図6(B)で説明した抽出アスペクト情報141bによってデータの抽出を行う場合において、「種別」が「項目名」であって「値」が「売上」である抽出属性によるデータの抽出を最初に行った場合、情報処理装置1は、例えば、6000(件)のデータを抽出する。そのため、この場合、他の抽出属性によるデータの抽出は、6000(件)のデータに対して行われる。
これに対し、図6(B)で説明した抽出アスペクト情報141bによってデータの抽出を行う場合において、「種別」が「地域カテゴリ」であって「値」が「アメリカ」である抽出属性によるデータの抽出を最初に行った場合、情報処理装置1は、例えば、2000(件)のデータを抽出する。そのため、この場合、他の抽出属性によるデータ抽出は、2000(件)のデータに対して行われる。
すなわち、情報処理装置1は、入力データに対して検証ルール131によるデータの抽出を行う場合、高効率な抽出属性による抽出を先に行うことにより、入力データから検証対象データを抽出する際の処理負担を抑制することが可能になる。図8に含まれる他の情報については説明を省略する。
しかしながら、各検証ルール131において高効率な抽出属性が存在しない場合、情報処理装置1は、検証対象データを抽出する際の処理負担を抑制することができない。そのため、情報処理装置1は、この場合、入力データの内容の検証に伴う処理負担を抑制することができない。
そこで、本実施の形態における情報処理装置1は、検証ルール131に含まれる抽出属性のうち、入力データ(以下、複数のデータとも呼ぶ)に含まれる各データの属性それぞれと一致する抽出属性と、各抽出属性を含む検証ルール情報131とを対応付けた対応情報を参照し、入力データ毎であって属性毎に、各データの属性それぞれが各抽出属性と一致するか否かを判定する。そして、情報処理装置1は、入力データ毎に、各データの属性それぞれと一致すると判定された各抽出属性を含む検証ルール情報(以下、共通検証ルール情報とも呼ぶ)を特定する。その後、情報処理装置1は、検証ルール情報131毎に、各検証ルール情報131が共通検証ルール情報として特定されたデータを抽出する。
すなわち、情報処理装置1は、予め対応情報を作成することにより、入力データに対応するアスペクト情報と検証ルール131に含まれる抽出アスペクト情報141とを直接比較することなく、各検証ルール情報131に対応するデータの抽出を行うことが可能になる。そのため、情報処理装置1は、入力データの件数に応じた安定的な処理量によってデータの抽出を行うことが可能になる。
これにより、情報処理装置1は、高効率な抽出属性が存在しない検証ルール情報131が存在する場合であっても、入力データからのデータの抽出を効率的に行うことが可能になる。
[情報処理装置のハードウエア構成]
次に、情報処理装置1のハードウエア構成について説明する。図9は、情報処理装置1のハードウエア構成の一例を示す図である。
情報処理装置1は、プロセッサであるCPU101と、メモリ102と、外部インターフェース(I/Oユニット)103と、記憶媒体104とを有する。各部は、バス105を介して互いに接続される。
記憶媒体104は、例えば、記憶媒体104内のプログラム格納領域(図示しない)に、入力データから検証対象データを抽出する処理(以下、抽出処理とも呼ぶ)を行うためのプログラム110を記憶する。また、記憶媒体104は、例えば、抽出処理を行う際に用いられる情報を記憶する情報格納領域130(以下、記憶部130とも呼ぶ)を有する。なお、情報格納領域130は、図1等で説明した記憶部2に対応する。
CPU101は、図9に示すように、プログラム110の実行時に、プログラム110を記憶媒体104からメモリ102にロードし、プログラム110と協働して抽出処理を行う。また、外部インターフェース103は、例えば、イントラネットやインターネット等からなるネットワークNWを介して利用者端末11と通信を行う。
[情報処理装置の機能]
次に、情報処理装置1の機能について説明する。図10は、情報処理装置1の機能ブロック図である。
情報処理装置1のCPU101は、プログラム110と協働することにより、例えば、情報送受信部111と、対応情報作成部112(以下、単に作成部112とも呼ぶ)と、情報特定部113(以下、単に特定部113とも呼ぶ)として動作する。また、情報処理装置1のCPU101は、プログラム110と協働することにより、例えば、データ抽出部114(以下、単に抽出部114とも呼ぶ)と、処理量算出部115と、データ検証部116として動作する。さらに、情報格納領域130には、検証ルール情報131と、対応情報132と、特定候補情報133と、共通検証ルール情報134と、抽出結果情報135と、再利用情報136と、前提情報137と、処理量情報138と、データ群情報139とが記憶されている。
情報送受信部111は、利用者が利用者端末11を介して送信した入力データを受信する。また、情報送受信部111は、データ検証部116が検証対象データに対して行った検証結果を利用者端末11に送信する。
対応情報作成部112は、例えば、利用者端末11から入力データを受信する前に、対応情報132を作成する。対応情報132は、入力データに含まれる各データの属性それぞれと一致する抽出属性と、各抽出属性含む検証ルール情報131とを対応付けた情報である。具体的に、対応情報132は、入力データに含まれると想定される各データの属性それぞれの値の状態と、各値の状態を許容する抽出属性(抽出アスペクト情報に含まれる個々の条件)を含む検証ルール情報131とを対応づけた情報である。そして、対応情報作成部112は、例えば、作成した対応情報132を情報格納領域130に記憶する。
情報特定部113は、入力データからデータの抽出を行う際に、対応情報132を参照し、各データの属性それぞれと一致する抽出属性を含む検証ルール情報131を、入力データ毎であって属性毎に特定する。そして、情報特定部113は、特定した検証ルールのうち共通する共通検証ルール情報134を、入力データ毎に特定する。さらに、情報特定部113は、例えば、特定した共通検証ルール情報134として情報格納領域130に記憶する。
データ抽出部114は、入力データから検証ルール情報131に含まれる抽出属性によるデータの抽出を行う。具体的に、データ抽出部114は、情報格納領域130に記憶された共通検証ルール情報134を参照し、検証ルール情報131毎に、各検証ルール情報131が共通検証ルール情報134として特定されたデータを抽出する。そして、データ抽出部114は、例えば、入力データから抽出された検証対象データを示す情報を、抽出結果情報135として情報格納領域130に記憶する。
処理量算出部115は、情報格納領域130に記憶された対応情報132に、他の検証ルール情報131に含まれる抽出属性の全てを含む検証ルール情報131の情報が存在するか否かを判定する。そして、処理量算出部115は、存在すると判定した検証ルール情報131に含まれる抽出属性のうち、他の検証ルール情報131に含まれない抽出属性によって、入力データが抽出されるか否かを判定するために要する処理量(以下、処理量情報138とも呼ぶ)を算出する。処理量算出部115による処理の詳細については後述する。
データ検証部116は、入力データから抽出した検証対象データに対して、例えば、各検証ルール情報131に含まれる検証式による検証を行う。そして、データ検証部116は、検証式による検証結果を作成する。なお、データ検証部116は、作成した検証結果を情報格納領域130に記憶するものであってもよい。特定候補情報133、再利用情報136、前提情報137及びデータ群情報139については後述する。
[第1の実施の形態]
次に、第1の実施の形態について説明する。図11から図13は、第1の実施の形態における抽出処理の概略を説明するフローチャート図である。また、図14から図16は、第1の実施の形態における抽出処理の概略を説明する図である。図14から図16を参照しながら図11から図13の抽出処理の概略について説明する。
情報処理装置1は、図11に示すように、対応情報作成タイミングまで待機する(S1のNO)。対応情報作成タイミングは、例えば、事業者が対応情報132を作成する旨の入力を情報処理装置1に行ったタイミングであってよい。
そして、対応情報作成タイミングになった場合(S1のYES)、情報処理装置1は、入力データに含まれる各データの属性それぞれと一致する抽出属性と、抽出属性を含む検証ルール情報131とを対応付けた対応情報132を作成する(S2)。具体的に、対応情報132は、入力データに含まれると想定される各データの属性それぞれの値の状態と、各値の状態を許容する抽出属性を含む検証ルール情報131とを対応づけた情報である。
以下、S2の処理の詳細について説明を行う。
[S2の処理の詳細]
図13は、対応情報132を作成する処理(以下、対応情報作成処理とも呼ぶ)について説明するフローチャート図である。
情報処理装置1は、図13に示すように、情報格納領域130に記憶された各検証ルール情報131に含まれる抽出属性を全て取得する(S101)。具体的に、情報処理装置1は、例えば、図6で説明した抽出アスペクト情報141aから141fにおける「種別」に設定された情報と「値」に設定された情報とを対応付けて取得する。そして、情報処理装置1は、S101の処理で特定した抽出属性それぞれを示す情報と、各抽出属性が含まれる検証ルール情報131を示す情報とを対応付けた対応情報132を情報格納領域130に記憶する(S102)。具体的に、対応情報132は、入力データに含まれると想定される各データの属性それぞれの値の状態と、各値の状態を許容する抽出属性(抽出アスペクト情報に含まれる個々の条件)を含む検証ルール情報131とを対応づけた情報である。以下、対応情報作成処理によって作成された対応情報132の具体例について説明を行う。
[対応情報の具体例]
図14は、対応情報132の具体例を説明する図である。図14に示す対応情報132は、対応情報132に含まれる各情報を識別する「項番」と、抽出アスペクト情報141の抽出種別が設定される「種別」と、全抽出属性から抽出した値のバリエーションが設定される「値」と、検証ルールが設定される「検証ルール」とを項目として有する。以下、図2で説明した入力データに対して、図6で説明した抽出アスペクト情報141aから141fをそれぞれ含む検証ルール情報131aから131fと、抽出アスペクト情報141を含まない検証ルール情報131gとによってデータの抽出が行われる場合について説明を行う。
なお、図6で説明した抽出アスペクト情報141における「種別」が「項目名」である情報の「値」には、「売上」以外について言及する抽出属性は存在しない。しかし、実際の入力データには「売上」以外の値が存在することが考えられる。そのため、以下、抽出アスペクト情報141で明示的に言及されない値をまとめて扱うための「上記以外の値」という特別な値を導入する。また、以下、アスペクト情報の種別によっては当該のアスペクト情報がそもそも存在しない場合もあるため、「値なし」という特別な値も導入する。
具体的に、図6で説明した抽出アスペクト情報141のうち、抽出アスペクト情報141a、141b、141c及び141eには、「種別」が「項目名」であって「値」が「売上」である情報が設定されている。そして、抽出アスペクト情報141a、141b、141c及び141eは、検証ルール情報131a、131b、131c及び131eにそれぞれ含まれる。そのため、情報処理装置1は、図14に示すように、「種別」が「項目名」であって「値」が「売上」である情報の「検証ルール」に、検証ルール情報131a、131b、131c及び131eをそれぞれ示す「131a」、「131b」、「131c」及び「131e」を設定する。
また、図6で説明した抽出アスペクト情報141において、抽出アスペクト情報141a、141b、141c及び141eには、「種別」が「項目名」である情報の「値」に「売上」以外の情報が設定されていない。そのため、情報処理装置1は、図14に示すように、「上記以外の値」の定義から、「種別」が「項目名」であって「値」が「上記以外の値」である情報の「検証ルール」に、検証ルール情報131a、131b、131c及び131eをそれぞれ示す「131a」、「131b」、「131c」及び「131e」を設定しない。さらに、図6に示す抽出アスペクト情報141において、検証ルール情報131a、131b、131c及び131eには、「種別」が「項目名」であって「値」が「売上」である情報が設定されている。そのため、情報処理装置1は、図14に示すように、「値なし」の定義から、「種別」が「項目名」であって「値」が「値なし」である情報の「検証ルール」に、検証ルール情報131a、131b、131c及び131eをそれぞれ示す「131a」、「131b」、「131c」及び「131e」を設定しない。
一方、図6で説明した抽出アスペクト情報141において、抽出アスペクト情報141d、141fには、「種別」が「項目名」である情報が存在しない。また、検証ルール情報131gには、抽出アスペクト情報141が含まれていない。すなわち、情報処理装置1は、検証ルール情報131d、131fまたは131gによって入力データからデータの抽出を行う場合、「項目名」に設定された情報の内容に依らずにデータの抽出を行う。そのため、情報処理装置1は、図14に示すように、「種別」が「項目名」である各情報(「項番」が「1」から「3」である情報)の「検証ルール」に、検証ルール情報131d、131f及び131gをそれぞれ示す「131d」、「131f」及び「131g」を設定する。図14に示す他の情報については説明を省略する。
図12に戻り、情報処理装置1は、データ抽出タイミングまで待機する(S3のNO)。データ抽出タイミングは、例えば、情報処理装置1が利用者端末11から入力データを受信したタイミングであってよい。そして、データ抽出タイミングになった場合(S3のYES)、情報処理装置1は、入力データからデータの抽出を行う際に、対応情報132を参照し、各データの属性それぞれと一致する抽出属性を含む検証ルール情報131(各データの属性それぞれを満たす抽出属性を含む検証ルール情報131)を、入力データ毎であって属性毎に特定する(S4)。具体的に、情報処理装置1は、各データの属性それぞれが各抽出属性と一致するか否か示す特定候補情報133を作成し、情報格納領域130に記憶する。以下、特定候補情報133の具体例について説明を行う。
[特定候補情報の具体例]
図15、図16、図22及び図23は、特定候補情報133の具体例を説明する図である。図15(A)から(C)及び図16(A)から(C)に示す特定候補情報133aから133fは、図2で説明した入力データに含まれるデータ1からデータ6のそれぞれに対応する情報である。また、図22(A)から(C)及び図23(A)から(C)に示す特定候補情報133aから133fは、図15(A)から(C)及び図16(A)から(C)に示す特定候補情報133aから133fそれぞれの作成途中の状態を示す情報である。なお、図22及び図23の説明については後述する。
図15(A)に示す特定候補情報133aは、図4及び図5で説明した入力データに含まれる各データに対応するアスペクト情報と同じ項目を有している。また、図15(A)に示す特定候補情報133aは、共通検証ルール情報134の候補となる検証ルール情報131が設定される「候補」を項目として有している。
具体的に、情報処理装置1は、S4の処理において、図15(A)に示す特定候補情報133aの「種別」及び「値」に、図4(A)で説明したアスペクト情報の「種別」及び「値」に設定された情報と同じ情報を設定する。すなわち、情報処理装置1は、「項番」が「1」である情報に、「種別」として「項目名」を設定し、「値」として「売上」を設定する。また、情報処理装置1は、「項番」が「2」である情報に、「種別」として「製品カテゴリ」を設定し、「値」として「ハードウエア」を設定する。さらに、情報処理装置1は、「項番」が「3」である情報に、「種別」として「地域カテゴリ」を設定し、「値」として「アメリカ」を設定する。
その後、情報処理装置1は、図14で説明した対応情報132において、図15(A)に示す特定候補情報133aにおける「種別」及び「値」に設定された情報と同じ情報の「検証ルール」に設定された情報を特定する。そして、情報処理装置1は、図15(A)に示す特定候補情報133aにおける「候補」に、特定した情報を設定する。
すなわち、図15(A)に示す特定候補情報133aにおいて、「項番」が「1」である情報の「種別」及び「値」には、「項目名」及び「売上」が設定されている。そのため、情報処理装置1は、図14で説明した対応情報132において、「種別」及び「値」が設定された情報(「項番」が「1」である情報)の「検証ルール」に設定された情報である「131a」から「131g」を特定する。そして、情報処理装置1は、図15(A)に示すように、特定した情報である「131a」から「131g」を、「項番」が「1」である情報の「候補」に設定する。図15(A)に含まれる他の情報については説明を省略する。
また、図15(B)、図15(C)及び図16(A)から(C)に示す特定候補情報133bから131fは、図15(A)に示す特定候補情報133aと同じ項目を有している。図15(B)、図15(C)及び図16(A)から(C)に示す特定候補情報133aに含まれる各情報については説明を省略する。
図12に戻り、情報処理装置1は、S4の処理で特定した検証ルール情報131のうち、共通する検証ルール情報131である共通検証ルール情報134を、入力データ毎に特定する(S5)。そして、情報処理装置1は、例えば、特定した共通検証ルール情報134を情報格納領域130に記憶する。以下、共通検証ルール情報134の具体例について説明を行う。
[共通検証ルール情報の具体例]
図17及び図24は、共通検証ルール情報134の具体例を説明する図である。図17に示す共通検証ルール情報134は、共通検証ルール情報134に含まれる各情報を識別する「項番」と、入力データに含まれる各データを示す「入力データ」と、共通検証ルール情報134が設定される「共通検証ルール」とを項目として有する。また、図24に示す共通検証ルール情報134は、図17に示す共通検証ルール情報134の作成途中の状態を示す情報である。なお、図24の説明については後述する。
具体的に、図15(A)に示す特定候補情報133aにおいて、「項番」が「1」から「3」である情報の「候補」にそれぞれ設定された情報のうち、共通する情報は、131b、131d及び131gである。そのため、情報処理装置1は、図17に示すように、「入力データ」が「データ1」である情報(「項番」が「1」である情報)の「共通検証ルール」に、「131b」、「131d」及び「131g」を設定する。
すなわち、図4(A)で説明したアスペクト情報は、図6で説明した抽出アスペクト情報141b、141d及び141gにそれぞれ合致する情報である。そして、抽出アスペクト情報141b、141d及び141gは、検証ルール情報131b、131d及び131gに含まれる情報である。そのため、図17に示す共通検証ルール情報134における「項番」が「1」である情報は、図2で説明したデータ1が、図6で説明した検証ルール情報131b、131d及び131gによって抽出されることを示している。図17に含まれる他の情報については説明を省略する。
図12に戻り、情報処理装置1は、検証ルール情報131毎に、各検証ルール情報131が共通検証ルール情報134として特定されたデータを抽出する(S6)。すなわち、情報処理装置1は、各検証ルール情報131が共通検証ルール情報134として特定されたデータを示す抽出結果情報135を作成する。そして、情報処理装置1は、例えば、作成した抽出結果情報135を情報格納領域130に記憶する。以下、抽出結果情報135の具体例について説明を行う。
[抽出結果情報の具体例]
図18及び図25は、抽出結果情報135の具体例を説明する図である。図18に示す抽出結果情報135は、抽出結果情報135に含まれる各情報を識別する「項番」と、検証ルール情報131を設定する「検証ルール」と、入力データに含まれる各データを識別する「入力データ」とを項目として有する。また、図25に示す抽出結果情報135は、図18に示す抽出結果情報135の作成途中の状態を示す情報である。なお、図25の説明については後述する。
具体的に、図17で説明した共通検証ルール情報134において、「共通検証ルール」として「131a」が設定されている情報の「入力データ」に設定された情報は、「項番」が「3」に設定された情報のみである。そのため、情報処理装置1は、図18に示すように、「検証ルール」が「131a」である情報(「項番」が「1」である情報)の「入力データ」に「データ3」等を設定する。すなわち、情報処理装置1は、図2で説明した入力データのうち検証ルール情報131aによって抽出されるデータがデータ3であると特定する。図18に含まれる他の情報については説明を省略する。
このように、本実施の形態における情報処理装置1は、入力データに含まれる各データの属性それぞれと一致する抽出属性と、各抽出属性を含む検証ルール情報131とを対応付けた対応情報132を作成する。そして、情報処理装置1は、入力データからデータの抽出を行う際に、対応情報132を参照し、入力データ毎であって属性毎に、各データの属性それぞれが各抽出属性と一致するか否かを判定する。さらに、情報処理装置1は、入力データ毎に、各データの属性それぞれと一致すると判定された各抽出属性を含む共通検証ルール情報134を特定する。その後、情報処理装置1は、検証ルール情報131毎に、各検証ルール情報131が共通検証ルール情報134として特定されたデータを抽出する。
すなわち、情報処理装置1は、予め対応情報132を作成することにより、入力データに対応するアスペクト情報と検証ルール131に含まれる抽出アスペクト情報141とを直接比較することなく、各検証ルール情報131に対応するデータの抽出を行うことが可能になる。そのため、情報処理装置1は、入力データのデータ件数に応じた安定的な処理量によってデータの抽出を行うことが可能になる。
これにより、情報処理装置1は、高効率な抽出属性が存在しない検証ルール情報131が存在する場合であっても、入力データからのデータの抽出を効率的に行うことが可能になる。
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。図19から図21は、第1の実施の形態における抽出処理の詳細を説明するフローチャート図である。また、図22から図25は、第1の実施の形態における抽出処理の詳細を説明する図である。図22から図25を参照しながら、図19から図21の抽出処理の詳細を説明する。なお、以下、入力データの件数が10000件であるものとして説明を行う。また、図6で説明した抽出アスペクト情報141を含む検証ルール情報131及び図14で説明した対応情報132が、情報格納領域130に予め記憶されているものとして説明を行う。
情報処理装置1の情報特定部113は、情報格納領域130から検証ルール情報131を1つ取得し、取得した検証ルール情報131の抽出アスペクト情報141に含まれる抽出属性の情報を取得する(S11)。その後、情報特定部113は、S11の処理において抽出属性の取得に成功したか否かを判定する(S12)。
そして、S11の処理において抽出属性の取得に成功した場合(S12のYES)、情報特定部113は、対応情報132を参照し、S11の処理で取得した検証ルール情報131が、全ての抽出属性を含む他の検証ルール情報131が存在するか否かを判定する(S14)。
その結果、抽出属性の全てを含む他の検証ルール情報131が存在すると判定した場合(S14のYES)、情報処理装置1の処理量算出部115は、データの抽出に伴う処理量情報138を算出する(S15)。この場合、処理量算出部115は、例えば、入力データのうちの他の検証ルール情報131に含まれる抽出属性によって抽出されることが予測されるデータの件数を特定する。そして、処理量算出部115は、例えば、特定したデータに対して、S11の処理で取得した検証ルール情報131に含まれる抽出属性のうちの他の検証ルール情報131に含まれない抽出属性によってデータの抽出を行うために要する処理量情報138を算出する。
すなわち、S11の処理で取得した検証ルール情報131に、他の検証ルール情報131に含まれる抽出属性の全てが含まれる場合において、他の検証ルール情報131の抽出アスペクト情報141による入力データに対するデータの抽出が既に行われている場合がある。そして、情報処理装置1のデータ抽出部114は、図11等で説明した対応情報132を参照して行うデータの抽出よりも、他の検証ルール情報131によるデータの抽出結果を再利用してデータの抽出を行った方が、データの抽出に伴う処理量が少ない場合がある。そのため、処理量算出部115は、S15の処理において、他の検証ルール情報131によるデータの抽出結果を再利用してデータの抽出を行う場合の処理量情報138を算出する。これにより、情報特定部113は、後述するように、図11等で説明した対応情報132を参照してデータの抽出を行うか否か(他の検証ルール情報131の抽出アスペクト情報141によるデータの抽出結果を再利用してデータの抽出を行うか否か)について判定を行うことが可能になる。
具体的に、処理量算出部115は、例えば、S15の処理において、入力データのうちの他の検証ルール情報131に含まれる抽出属性によって抽出されることが予測されるデータの件数を特定する。また、処理量算出部115は、S11の処理で取得した検証ルール情報131に含まれる抽出属性であって、他の検証ルール情報131に含まれない抽出属性のうち、抽出するデータの割合が最も小さい抽出属性によって抽出されることが予測されるデータの件数を特定する。
そして、処理量算出部115は、特定したデータの件数のうちの小さい方のデータの件数に、S11の処理で取得した検証ルール情報131に含まれる抽出属性のうち、他の検証ルール情報131に含まれない抽出属性の数から1を減算した値を乗算する。さらに、処理量算出部115は、乗算して取得した値に、他の検証ルール情報131に含まれる抽出属性によって抽出されるデータの件数を加算したデータの値を、処理量情報138として算出する。
すなわち、処理量算出部115は、入力データのうちの他の検証ルール情報131に含まれる抽出属性によって抽出が予想されるデータの件数を特定する。そして、処理量算出部115は、特定したデータそれぞれについて、S11の処理で取得した検証ルール情報131に含まれる抽出属性のうち、他の検証ルール情報131に含まれない抽出属性それぞれによって抽出されるデータであるか否を判定する回数の上限を算出する。S15の処理の具体例については後述する。
なお、S14の処理において、他の検証ルール情報131が複数存在する場合、情報特定部113は、抽出されるデータ件数が最も小さくなると予想される他の検証ルール情報131を選択するものであってよい。
その後、情報特定部113は、図20に示すように、S15の処理で算出した処理量情報138が所定の閾値以下であるか否かを判定する(S21)。所定の閾値は、例えば、入力データの件数である。また、所定の閾値は、例えば、入力データの件数と所定の係数とを乗算して算出された値であってもよい。
そして、S15の処理で算出した処理量情報138が所定の閾値以下であると判定した場合(S21のYES)、情報特定部113は、入力データから抽出を行う検証ルール情報131の抽出アスペクト情報141を、S14の処理で存在すると判定した他の検証ルール情報131の抽出アスペクト情報141に決定する(S22)。すなわち、情報特定部113は、この場合、他の検証ルール情報131の抽出アスペクト情報141によるデータの抽出結果を再利用してデータの抽出を行うことを決定する。
一方、S14の処理において、抽出属性の全てを含む他の検証ルール情報131が存在しないと判定した場合(S14のNO)、処理量算出部115は、S11の処理で取得した検証ルール情報131の抽出アスペクト情報141によってデータを抽出するために要する処理量情報138を算出する(S16)。
すなわち、S11の処理で取得した検証ルール情報131に、他の検証ルール情報131に含まれる抽出属性の全てが含まれていない場合であっても、図11等で説明した対応情報132を参照せずにデータの抽出を行った方が有利な場合がある。具体的に、図11等で説明した対応情報132を参照してデータの抽出を行うよりも、S11の処理で抽出した検証ルール情報131に含まれる抽出属性によって順にデータの抽出を行った方が、データの抽出に伴う処理量を抑えることができる場合がこれに該当する。そのため、処理量算出部115は、S15の処理において、S11の処理で抽出した検証ルール情報131に含まれる各抽出属性によってデータの抽出を順に行う場合の処理量を算出する。これにより、情報特定部113は、後述するように、図11等で説明した対応情報132を参照してデータの抽出を行うか否か(S11の処理で抽出した検証ルール情報131に含まれる各抽出属性によってデータの抽出を順に行うか否か)についての判定を行うことが可能になる。
そして、情報特定部113は、図20に示すように、S16の処理で算出した処理量情報138が所定の閾値以下であるか否かを判定する(S23)。その結果、S16の処理で算出した処理量情報138が所定の閾値以下であると判定した場合(S23のYES)、情報特定部113は、入力データから抽出を行う検証ルール情報131の抽出アスペクト情報141を、S11の処理で取得した検証ルール情報131の抽出アスペクト情報141に決定する(S24)。すなわち、情報特定部113は、この場合、S11の処理で抽出した検証ルール情報131に含まれる抽出属性によってデータの抽出を順に行うことを決定する。
その後、S22の処理またはS24の処理の後、データ抽出部114は、S22の処理またはS24の処理で決定した検証ルール情報131の抽出アスペクト情報141によって既に抽出されたデータ(抽出結果)が存在するか否かを判定する(S25)。その結果、既に抽出されたデータが存在しないと判定した場合(S25のNO)、データ抽出部114は、入力データから、S22の処理またはS24の処理で決定した検証ルール情報131の抽出アスペクト情報141によるデータの抽出を行い、情報格納領域130に記憶する(S26)。その後、データ抽出部114は、S25以降の処理を再度実行する。
すなわち、データ抽出部114は、検証ルール情報131において抽出アスペクト情報141の包含関係がある場合、データ抽出部114は、いずれの検証ルール情報131が先に評価されても、含まれる側の抽出アスペクト情報141によるデータの抽出を行う。これにより、データ抽出部114は、検証ルール情報131の抽出アスペクト情報141によるデータの抽出を行う際に、他の検証ルール情報131の抽出アスペクト情報141によるデータの抽出結果を再利用できる確率を高めることが可能になる。
一方、既に抽出されたデータが存在すると判定した場合(S25のYES)、データ抽出部114は、S25の処理で存在したデータ(抽出結果)を情報格納領域130から取得する(S27)。その後、データ抽出部114は、S27の処理で取得したデータから、S11の処理で取得した検証ルール情報131に含まれる抽出属性のうち、S22の処理またはS24の処理で決定した検証ルール情報131に含まれない抽出属性によってデータを抽出する(S28)。
すなわち、S22の処理が実行された場合、データ抽出部114は、S28の処理において、S11の処理で取得した検証ルール情報131に含まれる抽出属性のうち、S22の処理で決定した検証ルール情報131に含まれない抽出属性によるデータの抽出を行う。これにより、データ抽出部114は、S22の処理において、入力データから抽出を行う検証ルール情報131の抽出アスペクト情報141が他の検証ルール情報131の抽出アスペクト情報141に決定された場合であっても、S11の処理で取得した検証ルール情報131に含まれる全ての抽出属性によるデータの抽出を行うことが可能になる。
なお、データ抽出部114は、他の検証ルール情報131の抽出アスペクト情報141の抽出結果の再利用を行った場合、他の検証ルール情報131と、他の検証ルール情報131の抽出アスペクト情報141の抽出結果を再利用してデータの抽出を行った検証ルール情報131とを対応付けた再利用情報136を作成するものであってよい。具体的に、データ抽出部114は、この場合、S11の処理で取得した検証ルール情報131を示す情報と、S22の処理で決定した検証ルール情報131を示す情報とを対応付けた再利用情報136を作成する。そして、データ抽出部114は、例えば、作成した再利用情報136を情報格納領域130に記憶する。これにより、情報処理装置1は、抽出結果の再利用を行った検証ルール情報131の管理を行うことが可能になる。
その後、データ抽出部114は、図21に示すように、情報格納領域130に記憶された全ての検証ルール情報131について抽出済であるか否かを判定する(S34)。そして、全ての検証ルール情報131について抽出済であると判定した場合(S34のYES)、データ抽出部114は、S4及びS5の処理を終了する。一方、全ての検証ルール情報131について抽出済でないと判定した場合(S34のNO)、データ抽出部114は、S11以降の処理を再度行う。
また、S21の処理において、S15の処理で算出した処理量情報138が所定の閾値以下でないと判定した場合(S21のNO)、情報特定部113は、図21に示すように、対応情報132を参照し、各データの属性それぞれと一致する抽出属性を含む検証ルール情報131(各データの属性それぞれを満たす抽出属性を含む検証ルール情報131)を、入力データ毎であって属性毎に特定する(S31)。続いて、情報特定部113は、S31の処理で特定した検証ルール情報131のうち共通する共通検証ルール情報134を、入力データ毎に特定する(S32)。
そして、データ抽出部114は、入力データのうち、S11の処理で取得した検証ルール情報131を共通検証ルール情報134として特定されたデータを抽出する(S33)。その後、データ抽出部114は、S34以降の処理を行う。なお、S16の処理で算出した処理量情報138が所定の閾値以下でないと判定した場合も同様に(S21のNO)、情報特定部113は、S31以降の処理を行う。
すなわち、情報特定部113は、S21またはS23の処理において、図11等で説明した対応情報132を参照せずにデータの抽出を行う場合の処理量が所定の閾値よりも大きい場合、図11等で説明した対応情報132を参照してデータの抽出を行う。これにより、データ抽出部114は、各検証ルール131aによる入力データに対するデータの抽出に伴う処理量に応じて、データの抽出に伴う処理負担の抑制を行うことが可能になる。
また、S12の処理において、S11の処理において抽出属性の取得に成功しなかった場合(S12のNO)、データ抽出部114は、入力データに含まれる全てのデータを抽出する(S13)。すなわち、S11の処理において抽出属性の取得に成功しなかった場合とは、S11の処理で取得した検証ルール情報131に抽出属性が含まれていない場合である。そのため、データ抽出部114は、この場合、入力データに含まれる全てのデータを抽出する。そして、データ抽出部114は、S34以降の処理を行う。
なお、情報特定部113は、S21の処理またはS23の処理からS31の処理に分岐する検証ルール情報131について、検証ルールリスト(図示しない)に保存しておくものであってもよい。そして、情報特定部113は、S34の処理において、全ての検証ルール情報131が抽出されたと判定した後に、検証ルールリストに含まれる検証ルール情報131に対してまとめてS31からS33の処理に相当する処理を行ってもよい。また、S31及びS32の処理は、いずれも入力データ毎の処理であるため、情報特定部113は、入力データ毎に、S31及びS32の処理を順次実施して共通検証ルール情報134を求めた後、共通検証ルール情報134に含まれる検証ルールリストの検証ルールの全てを、入力データに対する検証対象ルールとするものであってもよい。これにより、情報特定部113は、S31の処理の実行において入力データを一巡するだけでよく、各入力データの属性を抽出する処理の回数の削減も可能である。
[S4及びS5の処理の具体例(1)]
次に、S4及びS5の処理の具体例について説明を行う。初めに、S11の処理において、図6(D)で説明した抽出アスペクト情報141dを含む検証ルール情報131dが取得された場合について説明を行う。
具体的に、検証ルール情報131dには、抽出属性を全て含む他の検証ルール情報131が存在しない(S14のNO)。そのため、情報特定部113は、S16以降の処理を行う。
ここで、図6(D)で説明した抽出アスペクト情報141dには、「種別」が「製品カテゴリ」であって「値」が「ハードウエア」である抽出属性のみが含まれる。そして、データ抽出部114は、この場合、入力データ(10000(件))に対して、「種別」が「製品カテゴリ」であって「値」が「ハードウエア」である抽出属性のみによるデータの抽出を行う。そのため、データ抽出部114は、S16の処理において、処理量情報138として「10000(件)」を算出する。
そして、例えば、所定の閾値が「13000(件)」である場合、処理量情報138である「10000(件)」は、所定の閾値よりも小さい(S23のYES)。そのため、処理量算出部115は、入力データに対して抽出を行う検証ルール情報131の抽出アスペクト情報141を、検証ルール情報131dの抽出アスペクト情報141dに決定する(S24)。その後、データ抽出部114は、入力データに対して検証ルール情報131dの抽出アスペクト情報141dによるデータの抽出を行い、情報格納領域130に記憶する(S25のNO、S26)。
なお、S11の処理において検証ルール情報131dが取得された場合、情報特定部113は、S22の処理を実行しない。そのため、データ抽出部114は、S28の処理において更なるデータの抽出を行わない。
次に、S11の処理において、図6(C)で説明した抽出アスペクト情報141cを含む検証ルール情報131cが取得された場合について説明を行う。この場合、検証ルール情報131cには、抽出属性を全て含む他の検証ルール情報131が存在しない(S14のNO)。そのため、情報特定部113は、S16以降の処理を行う。
ここで、図8で説明した情報において、抽出アスペクト情報141cに含まれる抽出属性である情報のうち、「種別」が「項目名」であって「値」が「売上」である情報の「件数」には、「6000(件)」が設定されている。また、図8で説明した情報において、抽出アスペクト情報141cに含まれる抽出属性である情報のうち、「種別」が「製品カテゴリ」であって「値」が「ソフトウエア」である情報の「件数」には、「2000(件)」が設定されている。そのため、抽出アスペクト情報141cに含まれる抽出属性において、「種別」が「製品カテゴリ」であって「値」が「ソフトウエア」である情報に対応する抽出属性は、「種別」が「項目名」であって「値」が「売上」である情報に対応する抽出属性と比較して、高効率な抽出属性である。したがって、処理量算出部115は、「種別」が「製品カテゴリ」であって「値」が「ソフトウエア」である抽出属性による抽出を先に行うことにより、抽出アスペクト情報141cによってデータを抽出する際に要する処理量情報138を抑えることが可能になる。
具体的に、データ抽出部114は、全ての入力データ(10000(件))に対して、「種別」が「製品カテゴリ」であって「値」が「ソフトウエア」である抽出属性によるデータの抽出を行う。そして、この場合、データ抽出部114は、入力データから2000(件)のデータを抽出すると予測される。さらに、データ抽出部114は、「製品カテゴリ」であって「値」が「ソフトウエア」である抽出属性によって抽出されたデータ(2000(件))に対して、「種別」が「項目名」であって「値」が「売上」である抽出属性によるデータの抽出を行う。
したがって、処理量算出部115は、この場合、処理量情報138として、「10000(件)」と「2000(件)」とを加算した件数である「12000(件)」を算出する(S16)。
そして、例えば、所定の閾値が「13000(件)」である場合、処理量情報138である「12000(件)」は、所定の閾値よりも小さい(S23のYES)。そのため、処理量算出部115は、入力データに対して抽出を行う検証ルール情報131を、検証ルール情報131cに決定する(S24)。その後、データ抽出部114は、入力データに対して検証ルール情報131cによるデータの抽出を行い、情報格納領域130に記憶する(S25のNO、S26)。
なお、S11の処理において検証ルール情報131cが取得された場合、情報特定部113は、S22の処理を実行しない。そのため、データ抽出部114は、S28の処理において更なるデータの抽出を行わない。
続いて、S11の処理において、図6(B)で説明した抽出アスペクト情報141bを含む検証ルール情報131bが取得された場合について説明を行う。
図6(B)で説明した抽出アスペクト情報141bには、「種別」が「項目名」であって「値」が「売上」である抽出属性と、「種別」が「製品カテゴリ」であって「値」が「ハードウエア」である抽出属性とが含まれている。さらに、図6(B)で説明した抽出アスペクト情報141bには、「種別」が「地域カテゴリ」であって「値」が「アメリカ」である抽出属性が含まれている。すなわち、図6(B)で説明した検証ルール情報131には、図6(D)で説明した抽出アスペクト情報141に含まれる抽出属性の全て(「種別」が「製品カテゴリ」であって「値」が「ハードウエア」である検証ルール)が含まれている(S14のYES)。そのため、処理量算出部115は、S15以降の処理を行う。
具体的に、図8で説明した情報において、「種別」が「製品カテゴリ」であって「値」が「ハードウエア」である情報の「件数」には、「7500(件)」が設定されている。そのため、処理量算出部115は、S15の処理において、入力データのうちの他の検証ルール情報131に含まれる抽出属性によって抽出されることが予測されるデータの件数として「7500(件)」を特定する。
また、図8で説明した情報において、「種別」が「項目名」であって「値」が「売上」である情報の「件数」には、「6000(件)」が設定されている。さらに、図8で説明した情報において、「種別」が「地域カテゴリ」であって「値」が「アメリカ」である情報の「件数」には、「2000(件)」が設定されている。そのため、処理量算出部115は、この場合、S11の処理で取得した検証ルール情報131に含まれる抽出属性であって他の検証ルール情報131に含まれない抽出属性のうち、抽出するデータの割合が最も小さい抽出属性によって抽出されるデータの件数として「2000(件)」を特定する。したがって、処理量算出部115は、特定したデータの件数のうちの小さい方のデータの件数である「2000(件)」を特定する。
さらに、図6(B)で説明した抽出アスペクト情報141bに含まれる抽出属性の数が「3」であるのに対し、図6(D)の抽出アスペクト情報141dに含まれる抽出属性の数は、「1」である。そのため、処理量算出部115は、抽出アスペクト情報141bに含まれる抽出属性のうち、抽出アスペクト情報141dに含まれない抽出属性の数から1を減算した数として「1」を特定する。したがって、処理量算出部115は、「2000(件)」に「1」を乗算した件数である「2000(件)」を算出する。
そして、処理量算出部115は、算出した「2000(件)」に、検証ルール情報131dに含まれる抽出属性によって抽出されたデータの件数として特定した「7500(件)」を加算して算出した「9500(件)」を、処理量情報138として算出する。ここで、例えば、所定の閾値が「8000(件)」である場合、処理量情報138である「9500(件)」は、所定の閾値よりも大きい(S21のNO)。そのため、S31以降の処理を行う。
具体的に、情報特定部113は、図22及び図23に示すように、検証ルール情報131bに対応する情報が設定された特定候補情報133(図15及び図16で説明した特定候補情報133の作成途中の状態)を作成する(S31)。そして、情報特定部113は、図24に示すように、検証ルール情報131bに対応する情報が設定された共通検証ルール情報134(図17で説明した共通検証ルール情報134の作成途中の状態)を作成する(S32)。さらに、データ抽出部114は、図25に示すように、検証ルール情報131bに対応する情報が設定された抽出結果情報135(図18で説明した抽出結果情報135の作成途中の状態)を作成する(S33)。
一方、S11の処理において、検証ルール情報131bが取得された場合であって、例えば、所定の閾値が「13000(件)」であり、処理量情報138である「9500(件)」よりも大きい場合(S21のYES)、情報特定部113は、S22以降の処理を行う。すなわち、情報特定部113は、この場合、入力データから抽出を行う検証ルール情報131を、他の検証ルール情報131である検証ルール情報131dに決定する(S22)。
そして、この場合、検証ルール情報131dによる抽出結果が既に存在するため(S25のYES)、データ抽出部114は、S27以降の処理を行う。すなわち、情報特定部113は、検証ルール情報131dによって抽出されたデータに対し、検証ルール情報131bに含まれる抽出属性のうちの検証ルール情報131dに含まれない抽出属性によるデータの抽出を行う(S28)。
具体的に、検証ルール情報131bに含まれる抽出属性のうち、検証ルール情報131dに含まれない抽出属性は、「種別」が「項目名」であって「値」が「売上」である抽出属性と、「種別」が「地域カテゴリ」であって「値」が「アメリカ」である抽出属性である。そして、図8で説明した情報において、「種別」が「項目名」であって「値」が「売上」である情報の「件数」には、「6000(件)」が設定されている。また、図8で説明した情報において、「種別」が「地域カテゴリ」であって「値」が「アメリカ」である情報の「件数」には、「2000(件)」が設定されている。そのため、データ抽出部114は、検証ルール情報131dによって抽出されたデータに対して、例えば、「種別」が「地域カテゴリ」であって「値」が「アメリカ」である抽出属性を、「種別」が「項目名」であって「値」が「売上」である抽出属性よりも優先してデータの抽出を行う。
このように、本実施の形態における情報処理装置1は、入力データに含まれる各データの属性それぞれと一致する抽出属性と、各抽出属性を含む検証ルール情報131とを対応付けた対応情報132を作成する。そして、情報処理装置1は、入力データからデータの抽出を行う際に、対応情報132を参照し、入力データ毎であって属性毎に、各データの属性それぞれが各抽出属性と一致するか否かを判定する。さらに、情報処理装置1は、入力データ毎に、各データの属性それぞれと一致すると判定された各抽出属性を含む共通検証ルール情報134を特定する。その後、情報処理装置1は、検証ルール情報131毎に、各検証ルール情報131が共通検証ルール情報134として特定されたデータを抽出する。
これにより、情報処理装置1は、高効率な抽出属性が存在しない検証ルール情報131が存在する場合であっても、入力データからのデータの抽出を効率的に行うことが可能になる。
なお、検証ルール情報131に前提情報137が存在する場合、かつ、その前提情報137がデータの抽出結果に依存しない場合、データの抽出処理前に、当該の検証ルール情報131をデータの抽出対象とすべきか否かを前もって判断しても良い。前提情報137とは、抽出されたデータに対して実際に検証ルール情報131を実施するかどうかを判定する条件式である。前提情報137が抽出データに依存しないとは、前提情報137の条件式において抽出結果が格納される変数が参照されない場合が該当する。データの抽出処理の前に、データ抽出した後に実施されることの無い検証ルール情報131を排除することで、情報処理装置1は、S4及びS5の処理をより効率的に行うことが可能になる。
[第2の実施の形態の詳細]
次に、第2の実施の形態の詳細について説明する。図26から図28は、第2の実施の形態における抽出処理の詳細を説明するフローチャート図である。
第1の実施の形態における抽出処理では、他の検証ルール情報131の抽出属性を全て含む検証ルール情報131が存在する場合、対応情報132を参照して行うデータの抽出に代えて、他の検証ルール情報131による抽出結果を再利用するデータの抽出を行うか否かの判定を行う。これに対し、第2の実施の形態における抽出処理では、対応情報132を参照して行うデータの抽出に代えて、検証ルール情報131に高効率な抽出属性(以下、有効抽出属性とも呼ぶ)が含まれている場合、有効抽出属性による抽出を優先させたデータの抽出を行うか否かの判定を行う。
これにより、データ抽出部114は、有効抽出属性を含む検証ルール情報131に含まれる抽出属性によるデータの抽出を効率的に行うことが可能になる。以下、第2の実施の形態の詳細について説明を行う。
情報特定部113は、情報格納領域130から検証ルール情報131を1つ取得し、検証ルール情報131に含まれる抽出属性の情報を取得する(S41)。その後、情報特定部113は、S41の処理において抽出属性の取得に成功したか否かを判定する(S42)。
そして、S41の処理において抽出属性の取得に成功した場合(S42のYES)、情報特定部113は、対応情報132を参照し、S41の処理で取得した検証ルール情報131に含まれる抽出属性のうち、抽出する情報の割合が所定の閾値以下である有効抽出属性を含むか否かを判定する(S44)。
その結果、抽出する情報の割合が所定の閾値以下である有効抽出属性を含むと判定した場合(S44のYES)、処理量算出部115は、データの抽出に伴う処理量情報138を算出する(S45)。この場合、処理量算出部115は、入力データのうちの有効抽出属性によって抽出されることが予測されるデータの件数を特定する。そして、処理量算出部115は、特定したデータの件数に対して、S41の処理で取得した検証ルール情報131に含まれる抽出属性のうちの有効抽出属性以外の抽出属性によってデータの抽出を行うために要する処理量情報138を算出する。
すなわち、S41の処理で取得した検証ルール情報131に有効抽出属性が含まれる場合、対応情報132を参照して行うデータの抽出よりも、検証ルール情報131に含まれる抽出属性によって順にデータの抽出を行った方が、データの抽出に伴う処理量が少ない場合がある。そのため、処理量算出部115は、S45の処理において、S41の処理で取得した検証ルール情報131に含まれる抽出属性によって順にデータの抽出を行う場合の処理量情報138を算出する。これにより、情報特定部113は、後述するように、対応情報132を参照してデータの抽出を行うか否か(検証ルール情報131に含まれる抽出属性によって順にデータの抽出を行うか否か)について判定を行うことが可能になる。
具体的に、処理量算出部115は、S45の処理において、入力データのうちの有効抽出属性によって抽出されることが予測されるデータの件数を特定する。そして、処理量算出部115は、S41の処理で取得した検証ルール情報131に含まれる抽出属性であって有効抽出属性以外の抽出属性のうち、抽出するデータの割合が最も小さい抽出属性によって抽出されることが予測されるデータの件数を特定する。
そして、処理量算出部115は、特定したデータの件数のうちの小さい方のデータの件数に、S41の処理で取得した検証ルール情報131に含まれる抽出属性のうち、有効抽出属性以外の抽出属性の数から1を減算した値を乗算する。さらに、処理量算出部115は、乗算することにより取得した値に、有効抽出属性によって抽出されるデータの件数を加算した値を、処理量情報138として算出する。
すなわち、処理量算出部115は、入力データのうちの有効抽出属性によって抽出されたデータそれぞれが、S41の処理で取得した検証ルール情報131に含まれる抽出属性のうち、有効抽出属性以外の抽出属性それぞれによって抽出されるデータであるか否かを判定する回数の上限を算出する。
その後、情報特定部113は、図27に示すように、S45の処理で算出した処理量情報138が所定の閾値以下であるか否かを判定する(S51)。
そして、S45の処理で算出した処理量情報138が所定の閾値以下であると判定した場合(S51のYES)、情報特定部113は、入力データから抽出を行う抽出属性(最初にデータの抽出を行う抽出属性)を、S44の処理で存在すると判定した有効抽出属性に決定する(S52)。すなわち、情報特定部113は、この場合、検証ルール情報131に含まれる抽出属性(有効抽出属性を含む)によって、抽出するデータの割合が小さい順にデータの抽出を行うことを決定する。
一方、S44の処理において、有効抽出属性が存在しないと判定した場合(S44のNO)、処理量算出部115は、S41の処理で取得した抽出属性によってデータを抽出するために要する処理量情報138を算出する(S46)。
すなわち、S41の処理で取得した検証ルール情報131に、有効抽出属性が含まれていない場合であっても、図11等で説明した対応情報132を参照せずにデータの抽出を行った方が有利な場合がある。具体的に、図11等で説明した対応情報132を参照してデータの抽出を行うよりも、S41の処理で抽出した検証ルール情報131に含まれる抽出属性によって、抽出するデータの割合が小さい順にデータの抽出を行った方が、データの抽出に伴う処理量を抑えることができる場合がこれに該当する。そのため、処理量算出部115は、S46の処理において、S41の処理で抽出した検証ルール情報131に含まれる各抽出属性によってデータの抽出を行う場合の処理量情報138を算出する。
そして、情報特定部113は、図27に示すように、S46の処理で算出した処理量情報138が所定の閾値以下であるか否かを判定する(S53)。その結果、S53の処理で算出した処理量情報138が所定の閾値以下であると判定した場合(S53のYES)、情報特定部113は、入力データから抽出を行う検証ルール情報131の抽出アスペクト情報141を、S41の処理で取得した検証ルール情報131の抽出アスペクト情報141に決定する(S54)。すなわち、情報特定部113は、この場合、S41の処理で抽出した検証ルール情報131に含まれる抽出属性によってデータの抽出を行うことを決定する。
その後、S52の処理またはS54の処理の後、データ抽出部114は、S41の処理で取得した検証ルール情報131に含まれる抽出属性のうち、S52の処理またはS54の処理で決定した抽出属性に含まれない抽出属性によってデータを抽出する(S55)。
その後、データ抽出部114は、図28に示すように、情報格納領域130に記憶された全ての検証ルール情報131について抽出済であるか否かを判定する(S64)。そして、全ての検証ルール情報131について抽出済であると判定した場合(S64のYES)、データ抽出部114は、S4及びS5の処理を終了する。一方、全ての検証ルール情報131について抽出済でないと判定した場合(S64のNO)、データ抽出部114は、S41以降の処理を再度行う。
また、S51の処理において、S46の処理で算出した処理量情報138が所定の閾値以下でないと判定した場合(S51のNO)、情報特定部113は、図28に示すように、対応情報132を参照し、各データの属性それぞれと一致する抽出属性を含む検証ルール情報131を、入力データ毎に特定する(S61)。続いて、情報特定部113は、S61の処理で特定した検証ルール情報131のうち共通する共通検証ルール情報134を、入力データ毎に特定する(S62)。そして、データ抽出部114は、入力データのうち、S41の処理で取得した検証ルール情報131を共通検証ルール情報134として特定されたデータを抽出する(S63)。その後、データ抽出部114は、S64以降の処理を行う。なお、S46の処理で算出した処理量情報138が所定の閾値以下でないと判定した場合も同様に(S51のNO)、情報特定部113は、S61以降の処理を行う。
一方、S41の処理において抽出属性の取得に成功しなかった場合(S42のNO)、データ抽出部114は、入力データに含まれる全てのデータを抽出する(S43)。すなわち、S41の処理において抽出属性の取得に成功しなかった場合とは、S41の処理で取得した検証ルール情報131に抽出属性が含まれていない場合である。そのため、データ抽出部114は、この場合、入力データに含まれる全てのデータを抽出する。そして、データ抽出部114は、S64以降の処理を行う。
[S4及びS5の処理の具体例(2)]
次に、S4及びS5の処理の具体例について説明を行う。以下、S41の処理において、図6(C)で説明した抽出アスペクト情報141cを含む検証ルール情報131cが取得された場合について説明を行う。
図8で説明した情報において、抽出アスペクト情報141cに含まれる抽出属性である情報のうち、「種別」が「項目名」であって「値」が「売上」である情報の「件数」には、「6000(件)」が設定されている。また、図8で説明した情報において、抽出アスペクト情報141cに含まれる抽出属性である情報のうち、「種別」が「製品カテゴリ」であって「値」が「ソフトウエア」である情報の「件数」には、「2000(件)」が設定されている。そのため、S44の処理における所定の閾値が「25(%)」である場合、「種別」が「製品カテゴリ」であって「値」が「ソフトウエア」である抽出属性は、有効抽出属性である(S44のYES)。そのため、処理量算出部115は、S45の処理を行う。
具体的に、図8で説明した情報において、「種別」が「製品カテゴリ」であって「値」が「ソフトウエア」である情報の「件数」には、「2000(件)」が設定されている。そのため、処理量算出部115は、S45の処理において、入力データのうちの有効抽出属性によって抽出されることが予測されるデータの件数として「2000(件)」を特定する。
また、図8で説明した情報において、「種別」が「項目名」であって「値」が「売上」である情報の「件数」には、「6000(件)」が設定されている。そのため、処理量算出部115は、この場合、S41の処理で取得した検証ルール情報131に含まれる抽出属性であって有効抽出属性以外の抽出属性のうち、抽出するデータの割合が最も小さい抽出属性によって抽出されるデータの件数として「6000(件)」を特定する。したがって、処理量算出部115は、特定したデータの件数のうちの小さい方のデータの件数である「2000(件)」を特定する。
さらに、図6(C)で説明した抽出アスペクト情報141cに含まれる抽出属性の数が「2」であるため、抽出アスペクト情報141cに含まれる抽出属性のうち、有効抽出属性以外の抽出属性の数から1を減算した数は、「0」である。そのため、処理量算出部115は、「2000(件)」に「0」を乗算した件数である「0(件)」を算出する。
そして、処理量算出部115は、乗算することにより算出した「0(件)」に、有効抽出属性によって抽出されたデータの件数として特定した「2000(件)」を加算して算出した「2000(件)」を、処理量情報138として算出する。ここで、例えば、所定の閾値が「13000(件)」である場合、処理量情報138として算出した「2000(件)」は、所定の閾値よりも小さい(S51のYES)。そのため、S52以降の処理を行う。
具体的に、情報特定部113は、入力データから抽出を行う抽出属性を、有効抽出属性(「種別」が「製品カテゴリ」であって「値」が「ソフトウエア」である抽出属性)に決定する(S52)。その後、データ抽出部114は、有効抽出属性によって抽出したデータから、検証ルール情報131cに含まれる抽出属性のうち、有効抽出属性に含まれない抽出属性(「種別」が「項目名」であって「値」が「売上」である抽出属性)によってデータを抽出する(S55)。
これにより、情報特定部113は、検証ルール131に有効抽出属性が含まれているか否かに応じて、データの抽出に伴う処理量を抑えながらデータの抽出を行うことが可能になる。
[S31及びS32の処理の詳細]
次に、S31及びS32の処理(S61及びS62の処理)の詳細について説明を行う。図29及び図30は、S31及びS32の処理の詳細を説明するフローチャート図である。なお、以下、複数の属性を単に属性群とも呼ぶ。
情報特定部113は、例えば、入力データにおいて、同一の属性群を含む複数のデータ(以下、データ群とも呼ぶ)が存在するか否かを判定する(S71)。そして、同一の属性群を含むデータ群が存在する場合(S71のYES)、情報特定部113は、対応情報132を参照し、S71の処理で存在したデータ群に含まれる同一の属性群に含まれる属性それぞれと一致する抽出属性を含む検証ルール情報131を、同一の属性群毎に特定する(S72)。さらに、情報特定部113は、S71の処理で存在したデータ群に含まれる同一の属性群それぞれに対応する検証ルール情報131において共通する共通検証ルール情報134aを、同一の属性群毎に特定する(S73)。そして、情報特定部113は、S73の処理において、データ群情報139を作成して情報格納領域130に記憶する。以下、データ群情報139の具体例について説明を行う。
[データ群情報の具体例]
図31は、データ群情報139の具体例を説明する図である。図31に示すデータ群情報139は、データ群情報139に含まれる各情報を識別する「項番」と、入力データに含まれる各データを識別する「入力データ」と、入力データに含まれる各データの種別が設定される「種別」とを項目として有している。また、図31に示すデータ群情報139は、入力データに含まれる各データの値が設定される「値」と、S73の処理で特定された共通検証ルール情報134が設定される「共通検証ルール」とを項目として有している。
具体的に、例えば、図4(A)で説明したアスペクト情報と、図5(A)で説明したアスペクト情報とにおいて、「種別」が「製品カテゴリ」であって「値」が「ハードウエア」であるアスペクト情報(それぞれ「項番」が「2」であるアスペクト情報)が同一である。また、例えば、図4(A)で説明したアスペクト情報と、図5(A)で説明したアスペクト情報とにおいて、「種別」が「地域カテゴリ」であって「値」が「アメリカ」であるアスペクト情報(それぞれ「項番」が「3」であるアスペクト情報)が同一である。そのため、情報特定部113は、S71の処理において、図4(A)で説明したアスペクト情報に対応するデータと、図5(A)で説明したアスペクト情報に対応するデータとを、データ群として判定する。
そして、情報特定部113は、S72の処理において、図14で説明した対応情報132を参照し、「種別」が「製品カテゴリ」であって「値」が「ハードウエア」である情報の「検証ルール」に設定された情報である「131b」、「131d」、「131e」、「131f」及び「131g」を特定する。また、情報特定部113は、「種別」が「地域カテゴリ」であって「値」が「アメリカ」である情報の「検証ルール」に設定された情報である「131a」、「131b」、「131c」、「131d」及び「131g」を特定する。そして、情報特定部113は、S73の処理において、それぞれ特定した情報に共通する情報である「131b」、「131d」及び「131g」を、共通検証ルール情報134aとして特定する。
そのため、情報特定部113は、図31に示すように、「項番」が「1」である情報において、「入力データ」として「データ1」及び「データ4」を設定し、「種別」として「製品カテゴリ」を設定し、「製品カテゴリ」に対応する「値」として「ハードウエア」を設定する。また、情報特定部113は、「項番」が「1」である情報において、「種別」として「地域カテゴリ」を設定し、「地域カテゴリ」に対応する「値」として「アメリカ」を設定する。さらに、情報特定部113は、「項番」が「1」である情報において、「共通検証ルール」として「131b」、「131d」及び「131g」を設定する。図31に含まれる他の情報については説明を省略する。
すなわち、情報特定部113は、共通する属性を含む入力データに対応する共通検証ルール情報134の特定を行う前に、共通検証ルール情報134aの特定を行う。これにより、情報特定部113は、入力データにおいて、共通する属性を含む複数のデータ(データ群)が存在する場合、共通検証ルール情報134aの特定を複数回行う必要がなくなる。そのため、情報特定部113は、データの抽出に伴う処理負担を軽減することが可能になる。
図29に戻り、情報特定部113は、対応情報132を参照し、各データの属性のうちの同一の属性群に含まれない属性と一致する抽出属性を含む検証ルール情報131を特定する(S74)。この場合、情報特定部113は、入力データ毎であって同一の属性群に含まれない属性毎に、検証ルール情報131の特定を行う。そして、情報特定部113は、同一の属性群に対応するデータ群に含まれるデータそれぞれについて、各データの属性のうちの同一の属性群に含まれない属性それぞれに対応する検証ルール情報131と、S73の処理で特定した共通検証ルール情報134aとにおいて共通する共通検証ルール情報134を特定する(S75)。この場合、情報特定部113は、同一の属性群に対応するデータ群に含まれるデータ毎に共通検証ルール情報134を特定する。
具体的に、例えば、図4(A)で説明したアスペクト情報と、図5(A)で説明したアスペクト情報とにおいて、「種別」が「項目名」であるアスペクト情報(それぞれ「項番」が「1」であるアスペクト情報)は同一でない。そのため、情報特定部113は、S74の処理において、図14で説明した対応情報132を参照し、「種別」が「項目名」であって「値」が「売上」である情報の「検証ルール」に設定された情報である「131a」、「131b」、「131c」、「131d」、「131e」、「131f」及び「131g」を特定する。
その後、情報特定部113は、S75の処理において、図31で説明したデータ群情報139を参照し、図4(A)で説明したデータ1のアスペクト情報に対応する共通検証ルール情報134aを取得する。そして、情報特定部113は、取得した共通検証ルール情報134aと、S74の処理で特定した検証ルール情報131とにおいて共通する共通検証ルール情報134を特定する。すなわち、情報特定部113は、この場合、「131b」、「131d」及び「131g」を共通検証ルール情報134として特定する。
一方、同一の属性群を含むデータ群が存在しない場合(S71のNO)、情報特定部113は、図30に示すように、対応情報132を参照し、各データの属性それぞれと一致する抽出属性を含む検証ルール情報131を、入力データ毎であって属性毎に特定する(S81)。そして、情報特定部113は、S81の処理で特定した検証ルール情報131のうち共通する共通検証ルール情報134を、入力データ毎に特定する(S82)。すなわち、S71の処理において、同一の属性群を含むデータ群が存在しない場合、情報特定部113は、図21等で説明したS32及びS33の処理と同じ処理を行う。
これにより、情報特定部113は、共通する属性を含むデータ群が存在する場合、共通検証ルール情報134aの特定を複数回行う必要がなくなる。そのため、情報特定部113は、データの抽出に伴う処理負担を抑制することが可能になる。
以上の実施の形態をまとめると、以下の付記のとおりである。
(付記1)
コンピュータに、
検証ルールに含まれる抽出属性のうち、複数のデータに含まれる各データの属性それぞれと一致する抽出属性と、該抽出属性を含む検証ルールとを対応付けた対応情報を記憶する記憶部を参照して、前記複数のデータ毎であって前記属性毎に、各属性と一致する前記抽出属性を含む前記検証ルールを特定し、
前記複数のデータ毎に、各データの属性それぞれに対応する前記検証ルールにおいて共通する共通検証ルールを特定し、
前記検証ルール毎に、各検証ルールが前記共通検証ルールとして特定されたデータを抽出する、
処理を実行させることを特徴とする抽出プログラム。
(付記2)
付記1において、
前記抽出属性は、前記抽出属性の種別を示す抽出種別と、前記抽出種別に対応する値である抽出値とを含み、
前記検証ルールを特定する処理では、各データの属性の種別及び前記種別に対応する値と一致する前記抽出種別及び前記抽出値を含む前記抽出属性を含む前記検証ルールを特定する、
ことを特徴とする抽出プログラム。
(付記3)
付記1において、
前記検証ルールを特定する処理では、含まれる前記抽出属性が同一である複数の検証ルールが存在する場合、前記複数の検証ルールのうちのいずれかの検証ルールの情報のみが前記対応情報に含まれるものとして処理を行い、
前記データを抽出する処理では、前記いずれかの検証ルールが前記共通検証ルールとして特定されたデータが、前記複数の検証ルールそれぞれが前記共通検証ルールとして特定されたデータであるものとして処理を行う、
ことを特徴とする抽出プログラム。
(付記4)
付記1において、さらに、
前記対応情報に、他の検証ルールに含まれる抽出属性の全てを含む特定の検証ルールの情報が含まれる場合、前記複数のデータのうちの前記他の検証ルールに含まれる抽出属性によって抽出されるデータから、前記特定の検証ルールに含まれる抽出属性のうちの前記他の検証ルールに含まれない抽出属性によってデータを抽出するために要する処理量を、前記特定の検証ルール毎に算出し、
算出した前記処理量が所定の閾値以下である前記特定の検証ルールが存在する場合、前記複数のデータのうちの前記他の検証ルールに含まれる抽出属性によって抽出されるデータから、前記特定の検証ルールに含まれる抽出属性のうちの前記他の検証ルールに含まれない抽出属性によってデータを抽出する、
処理をコンピュータに実行させ、
前記検証ルールを特定する処理では、前記対応情報に含まれる情報にうち、存在した前記特定の検証ルールに対応する情報以外の情報を参照する、
ことを特徴とする抽出プログラム。
(付記5)
付記4において、
前記処理量は、前記複数のデータのうちの前記他の検証ルールに含まれる抽出属性によって抽出されるデータそれぞれが、前記特定の検証ルールに含まれる抽出属性のうち、前記他の検証ルールに含まれない抽出属性それぞれによって抽出されるデータであるか否かを判定する回数である、
ことを特徴とする抽出プログラム。
(付記6)
付記4において、
前記所定の閾値は、前記複数のデータの件数である、
ことを特徴とする抽出プログラム。
(付記7)
付記4において、
前記所定の閾値は、前記複数のデータの件数と、所定の係数とを乗算した値である、
ことを特徴とする抽出プログラム。
(付記8)
付記5において、
前記処理量は、前記複数のデータのうちの前記他の検証ルールに含まれる抽出属性によって抽出されるデータの件数と、前記特定の検証ルールに含まれる抽出属性であって前記他の検証ルールに含まれない抽出属性のうち、抽出するデータの割合が最も小さい抽出属性によって抽出されるデータの件数とのうちの小さい方のデータの件数と、前記特定の検証ルールに含まれる抽出属性のうち、前記他の検証ルールに含まれない抽出属性の数から1を減算した値とを乗算して算出した値に、前記他の検証ルールに含まれる抽出属性によって抽出されるデータの件数を加算した値である、
ことを特徴とする抽出プログラム。
(付記9)
付記1において、さらに、
前記データを抽出する処理における処理結果に依存しない前提抽出属性が存在する場合、前記検証ルールを特定する処理の前に、前記前提抽出属性によって前記複数のデータからデータの抽出を行う、
処理をコンピュータに実行させ、
前記検証ルールを特定する処理及び前記共通検証ルールを特定する処理では、前記複数のデータのうちの前記前提抽出属性によって抽出されたデータについて処理を行う、
ことを特徴とする抽出プログラム。
(付記10)
付記1において、さらに、
前記対応情報に、抽出するデータの割合が所定の閾値以下である有効抽出属性を含む特定の検証ルールの情報が含まれる場合、前記複数のデータのうちの前記有効抽出属性によって抽出されるデータから、前記特定の検証ルールに含まれる抽出属性のうちの前記有効抽出属性以外の抽出属性によってデータを抽出するために要する処理量を、前記特定の検証ルール毎に算出し、
算出した前記処理量が所定の閾値以下である前記特定の検証ルールが存在する場合、前記複数のデータのうちの前記有効抽出属性によって抽出されるデータから、前記特定の検証ルールに含まれる抽出属性のうちの前記有効抽出属性以外の抽出属性によってデータを抽出する、
処理をコンピュータに実行させ、
前記検証ルールを特定する処理では、前記対応情報に含まれる情報にうち、存在した前記特定の検証ルールに対応する情報以外の情報を参照する、
ことを特徴とする抽出プログラム。
(付記11)
付記1において、さらに、
前記複数のデータにおいて、同一の属性群をそれぞれ含む特定のデータ群が存在する場合、前記同一の属性群毎に、各同一の属性群に含まれる属性それぞれと一致する前記抽出属性を含む前記検証ルールを特定し、前記同一の属性群毎に、各同一の属性群に含まれる属性それぞれに対応する前記検証ルールにおいて共通する特定の検証ルールを特定し、
前記特定のデータ群に含まれるデータ毎であって前記属性のうちの前記同一の属性群に含まれない属性毎に、各属性と一致する前記抽出属性を含む前記検証ルールを特定し、前記特定のデータ群に含まれるデータ毎に、各データの属性のうちの前記同一の属性群に含まれない属性それぞれに対応する前記検証ルールと、前記特定の検証ルールとにおいて共通する検証ルールを、前記共通検証ルールとして特定する、
処理をコンピュータに実行させ、
前記検証ルールを特定する処理及び前記共通検証ルールを特定する処理では、前記複数のデータのうち、前記特定のデータ群に含まれるデータ以外のデータについて処理を行う、
ことを特徴とする抽出プログラム。
(付記12)
検証ルールに含まれる抽出属性のうち、複数のデータに含まれる各データの属性それぞれと一致する抽出属性と、該抽出属性を含む検証ルールとを対応付けた対応情報を記憶する記憶部を参照して、前記複数のデータ毎であって前記属性毎に、各属性と一致する前記抽出属性を含む前記検証ルールを特定し、前記複数のデータ毎に、各データの属性それぞれに対応する前記検証ルールにおいて共通する共通検証ルールを特定する特定部と、
前記検証ルール毎に、各検証ルールが前記共通検証ルールとして特定されたデータを抽出する抽出部と、を有する、
ことを特徴とする抽出装置。
(付記13)
検証ルールに含まれる抽出属性のうち、複数のデータに含まれる各データの属性それぞれと一致する抽出属性と、該抽出属性を含む検証ルールとを対応付けた対応情報を記憶する記憶部を参照して、前記複数のデータ毎であって前記属性毎に、各属性と一致する前記抽出属性を含む前記検証ルールを特定し、
前記複数のデータ毎に、各データの属性それぞれに対応する前記検証ルールにおいて共通する共通検証ルールを特定し、
前記検証ルール毎に、各検証ルールが前記共通検証ルールとして特定されたデータを抽出する、
ことを特徴とする抽出方法。