(57)【要約】      （修正有）【課題】複数のデータソースから得られたデータが統合されたデータを格納するデータベースから、クエリにおいて指定されたデータに対応するデータを適切に抽出する。【解決手段】データ抽出方法は、第１の属性について複数の属性値を含むクエリを取得し、検索対象のレコードを格納するデータベースから、複数の属性値のうちいずれかの属性値に一致する属性値を含むレコードを特定し、複数の属性値のうちいずれかの属性値に一致する属性値の属性が同じであるレコードが同じグループに属するように、特定されたレコードをグループ化し、グループ化により得られたレコードの集合のうち少なくともいずれかの集合を特定し、特定された当該集合に含まれるレコード又は当該レコードの識別情報を含む検索結果を出力する処理を含む。【選択図】図２
2014194609.tif 000002
【特許請求の範囲】
【請求項１】
第１の属性について複数の属性値を含むクエリを取得し、
検索対象のレコードを格納するデータベースから、前記複数の属性値のうちいずれかの属性値に一致する属性値を含むレコードを特定し、
前記複数の属性値のうちいずれかの属性値に一致する属性値の属性が同じであるレコードが同じグループに属するように、特定された前記レコードをグループ化し、
グループ化により得られたレコードの集合のうち少なくともいずれかの集合を特定し、特定された当該集合に含まれるレコード又は当該レコードの識別情報を含む検索結果を出力する
処理をコンピュータが実行するデータ抽出方法。
【請求項２】
前記検索結果を出力する処理において、
前記グループ化により得られたレコードの集合のうち、当該集合に含まれる複数のレコードが特定の属性において同じ属性値を有する集合を特定する
ことを特徴とする請求項１記載のデータ抽出方法。
【請求項３】
前記検索結果を出力する処理において、
グループ化により得られた複数の集合の包含関係に基づき、当該複数の集合のうち他の集合に包含される集合を特定し、特定された当該集合に含まれるレコードを除去する
ことを特徴とする請求項１記載のデータ抽出方法。
【請求項４】
第１の属性について複数の属性値を含むクエリを取得する第１処理部と、
検索対象のレコードを格納するデータベースから、前記複数の属性値のうちいずれかの属性値に一致する属性値を含むレコードを特定すると共に、前記複数の属性値のうちいずれかの属性値に一致する属性値の属性が同じであるレコードが同じグループに属するように、特定された前記レコードをグループ化する第２処理部と、
グループ化により得られたレコードの集合のうち少なくともいずれかの集合を特定する第３処理部と、
特定された当該集合に含まれるレコード又は当該レコードの識別情報を含む検索結果を出力する第４処理部と、
を有するデータ抽出装置。
【請求項５】
第１の属性について複数の属性値を含むクエリを取得し、
検索対象のレコードを格納するデータベースから、前記複数の属性値のうちいずれかの属性値に一致する属性値を含むレコードを特定し、
前記複数の属性値のうちいずれかの属性値に一致する属性値の属性が同じであるレコードが同じグループに属するように、特定された前記レコードをグループ化し、
グループ化により得られたレコードの集合のうち少なくともいずれかの集合を特定し、特定された当該集合に含まれるレコード又は当該レコードの識別情報を含む検索結果を出力する
処理をコンピュータに実行させるためのデータ抽出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、名寄せに関する。
【背景技術】
【０００２】
名寄せとは、同じ対象を表す複数のレコードを統合する技術である。複数のレコードが同じ対象を表しているか否かは、例えば、レコードに含まれる特定の属性の属性値が一致するか否かによって判定される。
【０００３】
但し、レコード間で属性の名称が異なるような場合には、上記のような判定を簡単には行うことはできない。例えば図１に示すように、同じ対象を表す２つのレコードが存在し、一方のレコードにおける特定の属性の名称が「都市」であり、もう一方のレコードにおける特定の属性の名称が「市」であるとする。単純に属性の名称だけを見ると、両者は同じ属性ではないため、上記のような属性値の対応付けを行うことはできない。
【０００４】
また、同じ対象を表す２つのレコードのうち一方のレコードに、複数の属性に関連し得る、属性が不明な値が含まれる場合がある。例えば「千葉」という値は、「都道府県」という属性、「都市」という属性、「市」という属性又は「名字」という属性の属性値である可能性がある。このような場合には、もう一方のレコードにおけるどの属性の属性値に「千葉」を対応付ければよいかがわからない。
【０００５】
異なる複数のデータソースから得られたデータを統合するような場合には、本来単一の属性とすべき複数の属性がそのまま残り、また、属性値が同じであっても意味が異なるものが発生しやすいため、上記のような問題が起こりやすい。なお、複数のデータソースから得られたデータを統合したデータとは、例えば、複数の企業或いは官公庁が保有するデータを統合したようなデータである。
【０００６】
上で述べたような問題に関して、以下のような技術が存在する。具体的には、属性毎に属性データの特徴を抽出し、属性データの特徴の類似度に基づき、属性を分類する。これにより、名称が異なっていたとしても実質的に同一である属性を検出する。
【０００７】
この技術においては、少なくとも属性データの特徴を抽出するのに十分な量のデータを要するが、複数のデータソースから得られたデータを統合したデータにはデータの欠損が多く、十分な量のデータを得られないことがある。また、複数のデータソースから得られたデータを統合したデータからデータを抽出する際、クエリには、ユーザの事情（例えば情報漏洩の防止）により最低限のデータしか含ませないことがあるため、クエリに含まれるデータの量も十分でない場合がある。
【０００８】
また、以下のような技術が存在する。具体的には、データベースにおけるカラム毎に、レコード間の第１のデータ類似度を算出し、カラムの組合せの各々について第１のデータ類似度の相関係数を算出する。また、注目レコード内のデータに類似する又は類似するとされるデータを有するレコードを特定し、注目レコードと特定されたレコードとの間の各々における、カラム毎の第２のデータ類似度を算出又は特定する。そして、注目カラムと他のカラムとの組合せの各々について第２のデータ類似度の相関係数を近傍相関係数として算出し、正の相関係数が算出され且つ所定の有意水準を超える正の近傍相関係数又はデータ欠損が発生していないレコードの割合が乗じられた正の近傍相関係数が算出されたカラムの組合せを抽出する。
【０００９】
しかし、この技術は、名寄せの対象となるデータが、例えば企業リスト同士であるなど、同質である（例えば、同じ属性について属性値が含まれる）場合に有効である。従って、名寄せの対象となるデータが同質ではない場合には有効ではない。また、この技術は、クエリに含まれる属性値の属性が分からない場合或いはクエリに含まれる属性の属性値がデータベースへの問い合わせ毎に異なるような場合には有効ではない。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００６−９９２３６号公報
【特許文献２】特開２０１２−１４６８４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
従って、本発明の目的は、１つの側面では、複数のデータソースから得られたデータが統合されたデータを格納するデータベースから、クエリにおいて指定されたデータに対応するデータを適切に抽出するための技術を提供することである。
【課題を解決するための手段】
【００１２】
本発明に係るデータ抽出方法は、第１の属性について複数の属性値を含むクエリを取得し、検索対象のレコードを格納するデータベースから、複数の属性値のうちいずれかの属性値に一致する属性値を含むレコードを特定し、複数の属性値のうちいずれかの属性値に一致する属性値の属性が同じであるレコードが同じグループに属するように、特定されたレコードをグループ化し、グループ化により得られたレコードの集合のうち少なくともいずれかの集合を特定し、特定された当該集合に含まれるレコード又は当該レコードの識別情報を含む検索結果を出力する処理を含む。
【発明の効果】
【００１３】
複数のデータソースから得られたデータが統合されたデータを格納するデータベースから、クエリにおいて指定されたデータに対応するデータを適切に抽出できるようになる。
【図面の簡単な説明】
【００１４】
【図１】図１は、属性の名称が異なる場合における問題について説明するための図である。
【図２】図２は、本実施の形態に係る情報処理装置の機能ブロック図である。
【図３】図３は、統合データ格納部に格納されるデータの一例を示す図である。
【図４】図４は、メインの処理フローを示す図である。
【図５】図５は、クエリの一例を示す図である。
【図６】図６は、クエリによって特定されるレコードの一例を示す図である。
【図７】図７は、追加処理の処理フローを示す図である。
【図８】図８は、第１候補データ格納部に格納されるデータの一例を示す図である。
【図９】図９は、判定処理の処理フローを示す図である。
【図１０】図１０は、除去処理の処理フローを示す図である。
【図１１】図１１は、第２候補データ格納部に格納されるデータの一例を示す図である。
【図１２】図１２は、出力されるデータの一例を示す図である。
【図１３】図１３は、統合データ格納部に格納されるデータの一例を示す図である。
【図１４】図１４は、入力データ格納部に格納されるデータの一例を示す図である。
【図１５】図１５は、統合データ格納部におけるレコードに含まれる属性値のうちクエリに含まれる属性値に角括弧を付した図である。
【図１６】図１６は、統合データ格納部から抽出されたレコードの一例を示す図である。
【図１７】図１７は、第１候補データ格納部に格納されるデータの一例を示す図である。
【図１８】図１８は、第２候補データ格納部に格納されるデータの一例を示す図である。
【図１９】図１９は、出力されるデータの一例を示す図である。
【図２０】図２０は、統合データ格納部に格納されるデータの一例を示す図である。
【図２１】図２１は、統合データ格納部に格納されるデータの一例を示す図である。
【図２２】図２２は、入力データ格納部に格納されるデータの一例を示す図である。
【図２３】図２３は、クエリによって特定されるレコードの一例を示す図である。
【図２４】図２４は、第１候補データ格納部に格納されるデータの一例を示す図である。
【図２５】図２５は、第１候補データ格納部におけるレコードに含まれる属性値のうち一部の属性値に山括弧を付した図である。
【図２６】図２６は、第２候補データ格納部に格納されるデータの一例を示す図である。
【図２７】図２７は、出力されるデータの一例を示す図である。
【図２８】図２８は、出力されるデータが評価値を含む例を示す図である。
【図２９】図２９は、第２候補データ格納部に格納されるデータの一例を示す図である。
【図３０】図３０は、出力されるデータが評価値を含む例を示す図である。
【図３１】図３１は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１５】
図２に、本実施の形態における情報処理装置１の機能ブロック図を示す。情報処理装置１は、入力部１０１と、入力データ格納部１０２と、第１候補抽出部１０３と、統合データ格納部１０４と、第１候補データ格納部１０５と、第２候補抽出部１０６と、第２候補データ格納部１０７と、出力部１０８とを含む。
【００１６】
入力部１０１は、複数の属性値を含むクエリの入力を受け付け、クエリを入力データ格納部１０２に格納する。第１候補抽出部１０３は、入力データ格納部１０２に格納されているデータ及び統合データ格納部１０４に格納されているデータを用いて処理を行い、処理結果を第１候補データ格納部１０５に格納する。第２候補抽出部１０６は、第１候補データ格納部１０５に格納されているデータを用いて処理を行い、処理結果を第２候補データ格納部１０７に格納する。出力部１０８は、第２候補データ格納部１０７に格納されているデータを、図示しない表示装置等に出力する。
【００１７】
図３に、統合データ格納部１０４に格納されるデータの一例を示す。図３の例では、複数の企業或いは官公庁が保有する複数のデータソースから得られたデータを統合したデータが格納されている。具体的には、ＩＤが００００から０００５までのレコードと、ＩＤが１０００から１００４までのレコードと、ＩＤが２０００から２００４までのレコードとは、データソースが異なる。そのため、統合データ格納部１０４に格納されるデータは、通常のデータと比較して属性の数が多く、また、属性値の欠損が多い。さらに、同じ属性値が複数のカラムに格納される場合がある。図３の例では、「千葉」という属性値が、「市」という属性のカラムと、「都道府県」という属性のカラムと、「港海岸」という属性のカラムと、「氏」という属性のカラムとに含まれる。なお、ハイフンはデータが欠損していることを表す。
【００１８】
次に、図４乃至図３０を用いて、情報処理装置１の動作について説明する。入力部１０１は、特定の企業における従業員等であるユーザから、検索処理の開始指示を受け付けると、入力データ格納部１０２に格納されているデータ、第１候補データ格納部１０５に格納されているデータ及び第２候補データ格納部１０７に格納されているデータを削除する（図４：ステップＳ１）。すなわち、初期化を実行する。
【００１９】
入力部１０１は、ユーザから、特定の属性について複数の属性値を含むクエリの入力を受け付け（ステップＳ３）、入力データ格納部１０２に格納する。ステップＳ３において入力を受け付けるクエリは、例えば図５に示すようなデータである。図５の例では、「市」という属性について、「甲府」、「岐阜」、「三崎」、「焼津」及び「松本」という属性値が含まれる。このように、本実施の形態においては、クエリに含まれる複数の属性値の間には何らかの共通性（ここでは、街の名前であるという共通性）があるとする。
【００２０】
例えば、ユーザが、各取引企業について自社からの総購入高を知っている状態において、各取引企業について従業員一人あたりの自社からの購入高を計算するため、各取引企業の従業員数を知りたいとする。この場合、各取引企業のレコードを統合データ格納部１０４から抽出するため、ユーザは、クエリに「Ａ社」、「Ｂ社」、「Ｃ社」及び「Ｄ社」という属性値を含ませる。このような場合には、複数の属性値の間には「企業の名前」に関する属性の値であるという共通性を有する。
【００２１】
なお、ユーザは、情報漏洩防止等の観点から、保有する属性値の全てをクエリに含ませるわけではない。ユーザは、例えば企業名或いは企業の所在地など、対応付けに寄与する可能性が高いと考えられる属性値をクエリに含ませる。
【００２２】
そして、本実施の形態においては、統合データ格納部１０４に格納されるデータとクエリに含まれるデータとの間に以下のような関係があるとする。（１）同一の対象を表すレコードであることを特定するためのＩＤは無い。よって、同一の対象を表すレコードをＩＤの対応付けによって抽出することはできない。（２）クエリに含まれる属性値に対応するレコードが、統合データ格納部１０４に含まれていない場合がある。
【００２３】
図４の説明に戻り、第１候補抽出部１０３は、入力データ格納部１０２に格納されている複数の属性値の各々について、その属性値と一致する属性値を有するレコードを統合データ格納部１０４から特定し（ステップＳ５）、メインメモリ等の記憶装置に格納する。
【００２４】
図６に、ステップＳ５の処理によって特定されるレコードの一例を示す。図６に示したレコードは、「甲府」、「岐阜」、「三崎」、「焼津」又は「松本」という属性値のうち少なくともいずれかを含む。図を見やすくするため、これらの属性値には角括弧を付している。
【００２５】
第１候補抽出部１０３は、複数の属性値のいずれも、特定されたレコードの数が１以下であるか判定する（ステップＳ７）。すなわち、１対１の対応付けができたか、又は、１対１の対応付けができた属性値と対応するレコードが特定されなかった属性値とが混在するか判定する。
【００２６】
複数の属性値のいずれも、特定されたレコードの数が１以下である場合（ステップＳ７：Ｙｅｓルート）、第１候補抽出部１０３は、追加処理を実行する（ステップＳ９）。追加処理については、図７及び図８を用いて説明する。
【００２７】
まず、第１候補抽出部１０３は、クエリに含まれる属性値に一致する属性値の属性を特定する（図７：ステップＳ２１）。例えば図６に示したレコードがステップＳ５の処理によって特定された場合、ステップＳ２１において特定される属性は「市」、「都道府県」及び「港海岸」である。
【００２８】
第１候補抽出部１０３は、特定された属性毎にレコードを分類する（ステップＳ２３）。図８に、ステップＳ２３の処理によって生成されるレコードの集合を示す。図８の例では、ＩＤが「０００３」であるレコード及びＩＤが「０００５」であるレコードを含む集合（以下、集合１とする）と、ＩＤが「０００５」であるレコードを含む集合（以下、集合２とする）と、ＩＤが「１００２」であるレコード及びＩＤが「１００５」であるレコードを含む集合（以下、集合３とする）とが含まれる。図８の例では、ＩＤが「０００５」であるレコードが集合１及び集合２のいずれにも含まれる。これは、ＩＤが「０００５」であるレコードには、クエリに含まれる属性値が２つ含まれているからである。このように、本実施の形態においては、レコードの重複を許容するようにレコードの分類を行う。
【００２９】
第１候補抽出部１０３は、ステップＳ２３の処理によって分類されたレコードを第１候補データ格納部１０５に格納する（ステップＳ２５）。第１候補データ格納部１０５には、図８に示したようなデータが格納される。そして元の処理に戻る。
【００３０】
以上のような処理を実行すれば、クエリに含まれる属性値に対応するレコードを属性毎に整理することができるようになる。
【００３１】
図４の説明に戻り、ステップＳ９の処理が終了すると、ステップＳ１５の処理に移行する。
【００３２】
一方、複数の属性値のいずれかが、特定されたレコードの数が２以上である場合（ステップＳ７：Ｎｏルート）、第１候補抽出部１０３は、追加処理を実行する（ステップＳ１１）。追加処理については、図７及び図８を用いて説明したとおりである。第１候補抽出部１０３は、追加処理が終了すると、第２候補抽出部１０６に処理の実行を要求する。
【００３３】
第２候補抽出部１０６は、判定処理を実行する（ステップＳ１３）。判定処理については、図９を用いて説明する。
【００３４】
まず、第２候補抽出部１０６は、ステップＳ２１において特定された属性のうち未処理の属性（以下、処理対象の属性と呼ぶ）を１つ特定する（図９：ステップＳ３１）。
【００３５】
第２候補抽出部１０６は、第１候補データ格納部１０５における、処理対象の属性の属性値がクエリに含まれる属性値と一致するレコードの集合において、その属性以外の属性において属性値が共通しているか判断する（ステップＳ３３）。処理対象の属性が例えば「市」である場合、集合１において、「市」以外のいずれかの属性において属性値が共通しているか判断する。ここでは、「市種類」及び「地方」という属性において属性値が共通していると判断される。なお、ステップＳ３３における「共通している」とは、集合に含まれる全てのレコードの属性値が同じであることを意味する。
【００３６】
共通していないと判断された場合（ステップＳ３５：Ｎｏルート）、ステップＳ３９の処理に移行する。一方、共通していると判断された場合（ステップＳ３５：Ｙｅｓルート）、第２候補抽出部１０６は、処理対象の属性の属性値がクエリに含まれる属性値と一致するレコードの集合を第２候補データ格納部１０７に格納する（ステップＳ３７）。処理対象の属性が例えば「市」である場合、集合１を第２候補データ格納部１０７に格納する。
【００３７】
第２候補抽出部１０６は、未処理の属性が有るか判断する（ステップＳ３９）。未処理の属性が有る場合（ステップＳ３９：Ｙｅｓルート）、次の属性について処理をするため、ステップＳ３１の処理に戻る。一方、未処理の属性が無い場合（ステップＳ３９：Ｎｏルート）、元の処理に戻る。
【００３８】
以上のような処理を実行すれば、属性毎に分類されたレコードの集合のうち、集合に含まれるレコードが共通性を有している集合のみに絞り込むことができる。このように、包含するレコードが共通性を有している集合のみに絞り込むのは、クエリにおいて指定された属性値は上で述べたように共通性を有しているため、属性値に対応するレコード同士も共通性を有していると考えられるからである。
【００３９】
図４の説明に戻り、ステップＳ１３の処理が終了すると、ステップＳ１５の処理に移行する。第２候補抽出部１０６は、除去処理を実行する（ステップＳ１５）。除去処理については、図１０及び図１１を用いて説明する。
【００４０】
まず、第２候補抽出部１０６は、第２候補データ格納部１０７から、集合の組合せのうち未処理の組合せを１つ特定する（図１０：ステップＳ４１）。ステップＳ４１においては、２つの集合からなる組合せを特定する。例えば図８に示したデータが第２候補データ格納部１０７に格納されている場合、集合１及び集合２という組合せと、集合２及び集合３という組合せと、集合１及び集合３という組合せとがある。
【００４１】
なお、判定処理を実行していない（すなわち、ステップＳ７のＹｅｓルートを進んだ）には、第２候補データ格納部１０７にはデータが格納されていない。そこで、第２候補抽出部１０６は、第１候補データ格納部１０５に格納されているデータを読み出し、第２候補データ格納部１０７に格納する。その後、第２候補抽出部１０は、ステップＳ１５の処理を実行する。
【００４２】
第２候補抽出部１０６は、特定された組合せに含まれる一方の集合が他方の集合を包含するか判断する（ステップＳ４３）。ステップＳ４３においては、ＩＤの包含関係等に基づき集合の包含関係を特定する。なお、ステップＳ４３における「包含」とは、一部を包含することではなく完全に包含することを意味する。
【００４３】
一方の集合が他方の集合を包含していない場合（ステップＳ４３：Ｎｏルート）、ステップＳ４７の処理に移行する。一方の集合が他方の集合を包含する場合（ステップＳ４３：Ｙｅｓルート）、包含される集合を第２候補データ格納部１０７から除去する（ステップＳ４５）。
【００４４】
第２候補抽出部１０６は、第２候補データ格納部１０７に未処理の組合せが有るか判断する（ステップＳ４７）。未処理の組合せが有る場合（ステップＳ４７：Ｙｅｓルート）、次の組合せについて処理するため、ステップＳ４１の処理に戻る。一方、未処理の組合せが無い場合（ステップＳ４７：Ｎｏルート）、元の処理に戻る。
【００４５】
以上のような処理を実行すれば、複数の集合に重複して含まれる、ユーザに提示しなくてもよい冗長なレコードを検索結果から除去できるようになる。
【００４６】
図１１に、除去処理の後に第２候補データ格納部１０７に格納されるデータの一例を示す。図１１の例では、図８における集合１と集合３とが格納される。集合２は集合１に包含されるため、ステップＳ４５の処理によって除去される。
【００４７】
図４の説明に戻り、出力部１０８は、第２候補データ格納部１０７に格納されているレコード又はレコードのＩＤを図示しない表示装置等に出力する（ステップＳ１７）。そして処理を終了する。
【００４８】
図１２に、出力されるデータの一例を示す。図１２の例では、出力されるデータには、クエリに含まれる属性値と、レコードのＩＤとが含まれる。レコードのＩＤは、属性毎にまとめて出力される。ＩＤ「０００３」及びＩＤ「０００５」は、「市」という属性についてまとめられたＩＤである。ＩＤ「１００２」及び「１００５」は、「港海岸」という属性についてまとめられたＩＤである。「甲府」という属性値にはＩＤが「０００３」であるレコードが対応付けられており、「岐阜」という属性値にはＩＤが「０００５」であるレコードが対応付けられており、「三崎」という属性値にはＩＤが「１００２」であるレコードが対応付けられており、「焼津」という属性値にはＩＤが「１００５」であるレコードが対応付けられており、「松本」という属性値に対応付けられているレコードは無い。なお、図１２に示したように、クエリに含まれる属性値を出力する場合、出力部１０８は、入力データ格納部１０２に格納されているデータを利用する。
【００４９】
以上のような処理を実行すれば、クエリに含まれる複数の属性値に対応する可能性があるレコードを、属性毎に整理したうえで出力できるようになる。これにより、対応する属性の組を予め把握していない場合であっても、複数のデータソースから得られたデータを格納するデータベースから、対応するレコードを適切に抽出できるようになる。
【００５０】
図１３乃至図２７に、本実施の形態の処理に関係するデータの具体例を示す。
【００５１】
図１３に、統合データ格納部１０４に格納されるデータの他の例を示す。図１３の例では、複数のデータソースから得られたデータを統合したデータが格納されている。具体的には、ＩＤが００００から０００５までのレコードと、ＩＤが００２０であるレコード及びＩＤが００２１であるレコードと、ＩＤが１００４であるレコード及びＩＤが１００５であるレコードとは、データソースが異なる。
【００５２】
図１４に、入力データ格納部１０２に格納されるデータの他の例を示す。図１４の例では、「千葉」という属性値、「名古屋」という属性値、「長崎」という属性値及び「宮崎」という属性値が入力データ格納部１０２に格納される。
【００５３】
図１３に示したデータにおいて、図１４に示したクエリに含まれる４つの属性値のうちいずれかに一致する属性値に角括弧を付すと、図１５に示すようになる。図１５の例においては、ＩＤが「０００２」であるレコードに含まれる属性値と、ＩＤが「０００４」であるレコードに含まれる属性値と、ＩＤが「００２０」であるレコードに含まれる属性値と、ＩＤが「００２１」であるレコードに含まれる属性値とに角括弧が付されている。
【００５４】
図１５に示したデータから、ステップＳ５の処理によって特定されるレコードのみを抽出すると、図１６に示すようなデータになる。図１６に示したデータには、ＩＤが「０００２」であるレコードと、ＩＤが「０００４」であるレコードと、ＩＤが「００２０」であるレコードと、ＩＤが「００２１」であるレコードとが含まれる。
【００５５】
図１６に示したデータに対して追加処理を実行すると、図１７に示すようなデータが第１候補データ格納部１０５に格納される。図１７の例では、ＩＤが「０００２」であるレコード、ＩＤが「０００４」であるレコード、ＩＤが「００２０」であるレコード及びＩＤが「００２１」であるレコードを含む集合（以下、集合４とする）と、ＩＤが「０００２」であるレコード、ＩＤが「００２０」であるレコード及びＩＤが「００２１」であるレコードを含む集合（以下、集合５とする）と、ＩＤが「０００２」であるレコード、ＩＤが「０００４」であるレコード、ＩＤが「００２０」であるレコード及びＩＤが「００２１」であるレコードを含む集合（以下、集合６とする）とが含まれる。
【００５６】
判定処理を実行すると、いずれの集合も第２候補データ格納部１０７に格納される。しかし、集合５は集合４及び集合６に包含されるため、除去処理において除去される。また、集合４と集合６とは同一であるため、除去処理においていずれかの集合が除去される。
【００５７】
その結果、最終的に図１８に示すようなデータが第２候補データ格納部１０７に格納される。図１８の例では、ＩＤが「０００２」であるレコードと、ＩＤが「０００４」であるレコードと、ＩＤが「００２０」であるレコードと、ＩＤが「００２１」であるレコードとが含まれる。
【００５８】
図１９に、図１８に示したデータが第２候補データ格納部１０７に格納されている場合に出力されるデータの一例を示す。図１９の例では、ＩＤ「０００２」、ＩＤ「０００４」、ＩＤ「００２０」及びＩＤ「００２１」は、「市」又は「港海岸」という属性についてまとめられたＩＤである。「千葉」という属性値にはＩＤが「０００２」であるレコードが対応付けられており、「名古屋」という属性値にはＩＤが「０００４」であるレコードが対応付けられており、「長崎」という属性値にはＩＤが「００２０」であるレコードが対応付けられており、「宮崎」という属性値にはＩＤが「００２１」であるレコードが対応付けられている。
【００５９】
図２０及び図２１に、統合データ格納部１０４に格納されるデータの他の例を示す。図２０及び図２１の例では、複数のデータソースから得られたデータを統合したデータが格納されている。具体的には、ＩＤが００００から０００５までのレコード、ＩＤが００２０であるレコード及びＩＤが００２１であるレコードと、ＩＤが１０００から１００８までのレコードと、ＩＤが２０００から２００６までのレコードとは、データソースが異なる。なお、図２０に示したデータと図２１に示したデータとは連結されるものであるが、紙面の都合上分割されている。
【００６０】
図２２に、入力データ格納部１０２に格納されるデータの他の例を示す。図２２の例では、「千葉」という属性値、「名古屋」という属性値、「長崎」という属性値、「宮崎」という属性値及び「松本」という属性値が入力データ格納部１０２に格納される。
【００６１】
図２０及び図２１に示したデータから、図２２に示したクエリを用いてレコードを特定すると、図２３に示すようになる。図２３に示したデータには、ＩＤが「０００２」であるレコードと、ＩＤが「０００４」であるレコードと、ＩＤが「００２０」であるレコードと、ＩＤが「００２１」であるレコードと、ＩＤが「１００４」であるレコードと、ＩＤが「１００６」であるレコードと、ＩＤが「１００７」であるレコードと、ＩＤが「１００８」であるレコードと、ＩＤが「２０００」であるレコードと、ＩＤが「２００３」であるレコードと、ＩＤが「２００４」であるレコードと、ＩＤが「２００６」であるレコードとが含まれる。なお、図２２に示したクエリに含まれる５つの属性値のうちいずれかに一致する属性値には、角括弧が付されている。
【００６２】
図２３に示したデータに対して追加処理を実行すると、図２４に示すようなデータが第１候補データ格納部１０５に格納される。図２４の例では、ＩＤが「０００２」であるレコード、ＩＤが「０００４」であるレコード、ＩＤが「００２０」であるレコード及びＩＤが「００２１」であるレコードを含む集合（以下、集合７とする）と、ＩＤが「０００２」であるレコード、ＩＤが「００２０」であるレコード、ＩＤが「００２１」であるレコード、ＩＤが「１００４」であるレコード、ＩＤが「１００７」であるレコード及びＩＤが「１００８」であるレコードを含む集合（以下、集合８とする）と、ＩＤが「１００４」であるレコード、ＩＤが「１００６」であるレコード、ＩＤが「１００７」であるレコード及びＩＤが「１００８」であるレコードを含む集合（以下、集合９とする）と、ＩＤが「２０００」であるレコード、ＩＤが「２００３」であるレコード、ＩＤが「２００４」であるレコード及びＩＤが「２００６」であるレコードを含む集合（以下、集合１０とする）とが含まれる。
【００６３】
図２４に示したデータにおいて、クエリに含まれる属性値と一致する属性値を含む属性のカラム以外から、属性値が共通する属性のカラムを特定し、特定されたカラムにおける属性値に山括弧を付すと、図２５に示すようになる。図２５の例では、集合７における「市種類」という属性の属性値と、集合９における「種類」という属性及び「港種類」という属性の属性値とに山括弧が付されている。
【００６４】
判定処理を実行すると、集合７及び集合９が第２候補データ格納部１０７に格納される。そして、集合７と集合９との間に包含関係は無いため、除去処理において集合７及び集合９が除去されることはない。
【００６５】
その結果、最終的に図２６に示すようなデータが第２候補データ格納部１０７に格納される。図２６の例では、集合７と、集合９とが含まれる。
【００６６】
図２７に、図２６に示したデータが第２候補データ格納部１０７に格納されている場合に出力されるデータの一例を示す。図２７の例では、ＩＤ「０００２」、ＩＤ「０００４」、ＩＤ「００２０」及びＩＤ「００２１」は、「市種類」という属性についてまとめられたＩＤであり、ＩＤ「１００４」、ＩＤ「１００６」、ＩＤ「１００７」及びＩＤ「１００８」は、「種類」及び「港種類」という属性についてまとめられたＩＤである。「千葉」という属性値にはＩＤが「０００２」であるレコード及びＩＤが「１００４」であるレコードが対応付けられており、「名古屋」という属性値にはＩＤが「０００４」であるレコード及びＩＤが「１００６」であるレコードが対応付けられており、「長崎」という属性値にはＩＤが「００２０」であるレコード及びＩＤが「１００７」であるレコードが対応付けられており、「宮崎」という属性値にはＩＤが「００２１」であるレコード及びＩＤが「１００８」であるレコードが対応付けられており、「松本」という属性値に対応付けられているレコードは無い。
【００６７】
図２７に示したように、１つの属性値に対して複数のレコードが対応付けられた場合には、例えば、ユーザが出力されたデータを確認することにより、複数のレコードのうちいずれのレコードが最も確からしいかを確認すればよい。
【００６８】
なお、１つの属性値に対して複数のレコードが対応付けられた場合には、各集合について評価値を算出することにより、複数のレコードのうちいずれのレコードが最も確からしいかをユーザが確認すればよい。評価値として、例えば以下のような値を用いることができる。（１）集合に含まれるレコードの数。（２）ステップＳ３３の処理において属性値が共通していると判断された属性の数。（３）クエリに含まれる属性値と一致する属性値のうち他の集合におけるレコードに含まれていない属性値の数。
【００６９】
例えば図２６に示したデータについて（２）の方法で評価値を算出すると、集合７は「市種類」という属性のみであるから評価値は１であり、集合９は「種類」及び「港種類」という属性があるので評価値は２である。従って、例えば図２８に示すようなデータを出力する。このようなデータを出力すれば、ユーザは、集合９の方が評価値が高いため好ましいと判断できるようになる。
【００７０】
また、図２９に示したデータが第２候補データ格納部１０７に格納されている場合に（３）の方法で評価値を算出することを考える。図２９の例では、集合２９１と、集合２９２と、集合２９３とが含まれる。クエリに含まれる属性値と一致する属性値には角括弧が付されている。クエリに含まれる属性値と一致する属性値は、集合２９１においては「千葉」、「甲府」、「京都」及び「宮崎」であり、集合２９２においては「川崎」、「千葉」及び「釧路」であり、集合２９３においては「宮崎」、「甲府」及び「京都」である。集合２９１の評価値は、「千葉」、「甲府」、「京都」及び「宮崎」が集合２９２と集合２９３との和集合に含まれるため、評価値は４−４＝０である。集合２９２の評価値は、「千葉」が集合２９１に含まれるため、評価値は３−１＝２である。集合２９３の評価値は、「宮崎」、「甲府」及び「京都」が集合２９１に含まれるため、評価値は３−３＝０である。従って、例えば図３０に示すような出力データを提示すれば、ユーザは、集合２９２の評価値が最も高いため集合２９２が最も好ましいと判断できるようになる。
【００７１】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した情報処理装置１の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００７２】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００７３】
なお、上ではスタンドアローン型のシステムを示したが、クライアントサーバ型のシステムによって本実施の形態の処理を実行してもよい。
【００７４】
なお、上で述べた例においては、説明を簡単にするため属性値の一致のみを対象としたが、属性値の類似についても同様の処理によって実現することができる。属性値が類似するか否かを判定する技術は、よく知られているので、ここでは詳細な説明を省略する。
【００７５】
また、（１）から（３）の方法で求めた評価値を単独で用いるのではなく、複数の評価値を組み合わせて新たな評価値を算出してもよい。
【００７６】
なお、上で述べた情報処理装置１は、コンピュータ装置であって、図３１に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００７７】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００７８】
本実施の形態に係るデータ抽出方法は、（Ａ）第１の属性について複数の属性値を含むクエリを取得し、（Ｂ）検索対象のレコードを格納するデータベースから、複数の属性値のうちいずれかの属性値に一致する属性値を含むレコードを特定し、（Ｃ）複数の属性値のうちいずれかの属性値に一致する属性値の属性が同じであるレコードが同じグループに属するように、特定されたレコードをグループ化し、（Ｄ）グループ化により得られたレコードの集合のうち少なくともいずれかの集合を特定し、特定された当該集合に含まれるレコード又は当該レコードの識別情報を含む検索結果を出力する処理を含む。
【００７９】
このようにすれば、クエリに含まれる複数の属性値に対応する可能性があるレコードを、属性毎に整理したうえで出力できるようになる。これにより、複数のデータソースから得られたデータを格納するデータベースから、対応するレコードを適切に抽出できるようになる。
【００８０】
また、上で述べた検索結果を出力する処理において、（ｄ１）グループ化により得られたレコードの集合のうち、当該集合に含まれる複数のレコードが特定の属性において同じ属性値を有する集合を特定してもよい。ユーザは、何らかの共通性を想定してクエリに含まれる複数の属性値を指定すると考えられる。そこで、上で述べたようにすれば、共通性があるレコードを含む集合を特定できるので、指定に対応するレコードを抽出する可能性が高くなる。
【００８１】
また、上で述べた検索結果を出力する処理において、（ｄ２）グループ化により得られた複数の集合の包含関係に基づき、当該複数の集合のうち他の集合に包含される集合を特定し、特定された当該集合に含まれるレコードを除去してもよい。このようにすれば、複数の集合に重複して含まれる、ユーザに提示しなくてもよいレコードを検索結果から除外できるようになる。
【００８２】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００８３】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００８４】
（付記１）
第１の属性について複数の属性値を含むクエリを取得し、
検索対象のレコードを格納するデータベースから、前記複数の属性値のうちいずれかの属性値に一致する属性値を含むレコードを特定し、
前記複数の属性値のうちいずれかの属性値に一致する属性値の属性が同じであるレコードが同じグループに属するように、特定された前記レコードをグループ化し、
グループ化により得られたレコードの集合のうち少なくともいずれかの集合を特定し、特定された当該集合に含まれるレコード又は当該レコードの識別情報を含む検索結果を出力する
処理をコンピュータが実行するデータ抽出方法。
【００８５】
（付記２）
前記検索結果を出力する処理において、
前記グループ化により得られたレコードの集合のうち、当該集合に含まれる複数のレコードが特定の属性において同じ属性値を有する集合を特定する
ことを特徴とする付記１記載のデータ抽出方法。
【００８６】
（付記３）
前記検索結果を出力する処理において、
グループ化により得られた複数の集合の包含関係に基づき、当該複数の集合のうち他の集合に包含される集合を特定し、特定された当該集合に含まれるレコードを除去する
ことを特徴とする付記１記載のデータ抽出方法。
【００８７】
（付記４）
第１の属性について複数の属性値を含むクエリを取得する第１処理部と、
検索対象のレコードを格納するデータベースから、前記複数の属性値のうちいずれかの属性値に一致する属性値を含むレコードを特定すると共に、前記複数の属性値のうちいずれかの属性値に一致する属性値の属性が同じであるレコードが同じグループに属するように、特定された前記レコードをグループ化する第２処理部と、
グループ化により得られたレコードの集合のうち少なくともいずれかの集合を特定する第３処理部と、
特定された当該集合に含まれるレコード又は当該レコードの識別情報を含む検索結果を出力する第４処理部と、
を有するデータ抽出装置。
【００８８】
（付記５）
第１の属性について複数の属性値を含むクエリを取得し、
検索対象のレコードを格納するデータベースから、前記複数の属性値のうちいずれかの属性値に一致する属性値を含むレコードを特定し、
前記複数の属性値のうちいずれかの属性値に一致する属性値の属性が同じであるレコードが同じグループに属するように、特定された前記レコードをグループ化し、
グループ化により得られたレコードの集合のうち少なくともいずれかの集合を特定し、特定された当該集合に含まれるレコード又は当該レコードの識別情報を含む検索結果を出力する
処理をコンピュータに実行させるためのデータ抽出プログラム。
【符号の説明】
【００８９】
１  情報処理装置    １０１  入力部
１０２  入力データ格納部    １０３  第１候補抽出部
１０４  統合データ格納部    １０５  第１候補データ格納部
１０６  第２候補抽出部    １０７  第２候補データ格納部
１０８  出力部
【図１】
2014194609.tif 000003
【図２】
2014194609.tif 000004
【図３】
2014194609.tif 000005
【図４】
2014194609.tif 000006
【図５】
2014194609.tif 000007
【図６】
2014194609.tif 000008
【図７】
2014194609.tif 000009
【図８】
2014194609.tif 000010
【図９】
2014194609.tif 000011
【図１０】
2014194609.tif 000012
【図１１】
2014194609.tif 000013
【図１２】
2014194609.tif 000014
【図１３】
2014194609.tif 000015
【図１４】
2014194609.tif 000016
【図１５】
2014194609.tif 000017
【図１６】
2014194609.tif 000018
【図１７】
2014194609.tif 000019
【図１８】
2014194609.tif 000020
【図１９】
2014194609.tif 000021
【図２０】
2014194609.tif 000022
【図２１】
2014194609.tif 000023
【図２２】
2014194609.tif 000024
【図２３】
2014194609.tif 000025
【図２４】
2014194609.tif 000026
【図２５】
2014194609.tif 000027
【図２６】
2014194609.tif 000028
【図２７】
2014194609.tif 000029
【図２８】
2014194609.tif 000030
【図２９】
2014194609.tif 000031
【図３０】
2014194609.tif 000032
【図３１】
2014194609.tif 000033