JP6102594B2 - データ出力方法及びデータ出力プログラム - Google Patents

データ出力方法及びデータ出力プログラム Download PDF

Info

Publication number
JP6102594B2
JP6102594B2 JP2013147970A JP2013147970A JP6102594B2 JP 6102594 B2 JP6102594 B2 JP 6102594B2 JP 2013147970 A JP2013147970 A JP 2013147970A JP 2013147970 A JP2013147970 A JP 2013147970A JP 6102594 B2 JP6102594 B2 JP 6102594B2
Authority
JP
Japan
Prior art keywords
data
condition
node
graph
common
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.)
Active
Application number
JP2013147970A
Other languages
English (en)
Other versions
JP2015022375A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013147970A priority Critical patent/JP6102594B2/ja
Priority to US14/308,738 priority patent/US9727662B2/en
Publication of JP2015022375A publication Critical patent/JP2015022375A/ja
Application granted granted Critical
Publication of JP6102594B2 publication Critical patent/JP6102594B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Description

本発明は、データ出力方法及びデータ出力プログラムに関する。
従来、データの集合の中から所定の条件を満たすデータの組み合わせを検索する場合、複数のデータの組み合わせを全通り作成し、その中から所定の条件を満たす組み合わせを見つけ、出力する方法が一般的に用いられる。
なお、構造化文書を検索する技術として、木構造を利用する方法が知られている(例えば、特許文献1参照)。また、グラフ理論に従って作成されるグラフを用いたデータの解析方法が知られている(例えば、特許文献2,3参照)。
特開2001−167087号公報 特開2011−128748号公報 特開2009−176072号公報
データ検索においては、多数のデータの中から、n個(nは3以上の整数)のデータの属性に共通要素が存在するという共通要素条件を満たすデータの組み合わせを検索する場合がある。このような検索において、上述したように全通りの組み合わせについて共通要素条件を満たすか否かを検証することとすると、処理に長時間を要するおそれがある。
1つの側面では、本発明は、n個のデータそれぞれの属性に共通する要素が存在するという共通要素条件を満たすデータの組み合わせを短時間で出力することが可能なデータ出力方法及びデータ出力プログラムを提供することを目的とする。
一つの態様では、データ出力方法は、第1、第2、…、第n(nは3以上の整数)のデータそれぞれの属性に共通する要素が存在するという共通要素条件に基づいて、該共通要素条件を満たすデータの組み合わせを出力するデータ出力方法であって、前記共通要素条件を順序づけて分割し、第mのデータと第(m+1)のデータ(mは1以上(n−1)以下の整数)の2つのデータの属性に共通要素が存在するという2つのデータ間に関する条件を(n−1)個生成する工程と、所定条件の下、前記第1〜第nのデータそれぞれになりうるデータを抽出してノードとし、前記2つのデータ間に関する条件に基づいて前記ノード間をリンクで連結したグラフを作成する工程と、前記順序の一方向に関し、各ノードの属性に含まれる要素のうち、前記2つのデータ間に関する条件を満たす可能性のある要素の第1集合を求める処理と、前記順序の他方向に関し、各ノードの属性に含まれる要素のうち、前記2つのデータ間に関する条件を満たす可能性のある要素の第2集合を求める処理と、前記第1集合と前記第2集合に共通する要素が存在しないノードを前記グラフから削除する処理と、を削除するノードが無くなるまで繰り返す工程と、前記繰り返す工程が終了した後のグラフから、データの組み合わせの候補を決定する工程と、前記決定する工程で決定された前記組み合わせの候補から、入力された前記共通要素条件に基づいて、前記共通要素条件を満たすデータの組み合わせを出力する工程と、をコンピュータが実行するデータ出力方法である。
一つの態様では、データ出力プログラムは、第1、第2、…、第n(nは3以上の整数)のデータそれぞれの属性に共通する要素が存在するという共通要素条件に基づいて、該共通要素条件を満たすデータの組み合わせを出力するデータ出力プログラムであって、前記共通要素条件を順序づけて分割し、第mのデータと第(m+1)のデータ(mは1以上(n−1)以下の整数)の2つのデータの属性に共通要素が存在するという2つのデータ間に関する条件を(n−1)個生成し、所定条件の下、前記第1〜第nのデータそれぞれになりうるデータを抽出してノードとし、前記2つのデータ間に関する条件に基づいて前記ノード間をリンクで連結したグラフを作成し、前記順序の一方向に関し、各ノードの属性に含まれる要素のうち、前記2つのデータ間に関する条件を満たす可能性のある要素の第1集合を求める処理と、前記順序の他方向に関し、各ノードの属性に含まれる要素のうち、前記2つのデータ間に関する条件を満たす可能性のある要素の第2集合を求める処理と、前記第1集合と前記第2集合に共通する要素が存在しないノードを前記グラフから削除する処理と、を削除するノードが無くなるまで繰り返し、前記繰り返す処理が終了した後のグラフから、データの組み合わせの候補を決定し、決定された前記組み合わせの候補から、入力された前記共通要素条件に基づいて、前記共通要素条件を満たすデータの組み合わせを出力する、処理をコンピュータに実行させるデータ出力プログラムである。
n個のデータそれぞれの属性に共通する要素が存在するという共通要素条件を満たすデータの組み合わせを短時間で出力することができる。
一実施形態に係るデータ検索システムの構成を概略的に示す図である。 図2(a)は、処理サーバのハードウェア構成を示す図であり、図2(b)は、クライアントのハードウェア構成を示す図である。 処理サーバ及びクライアントの機能ブロック図である。 処理サーバが実行する処理を示すフローチャートである。 図5(a)、図5(b)は、検索条件を示す図である。 変換後の検索条件を示す図である。 データ読み取り部が読み込んだデータの一例を示す図である。 図8(a)、図8(b)は、図4のステップS16を説明するための図である。 図9(a)〜図9(c)は、図4のステップS18、S20を説明するための図である。 図10(a)〜図10(c)は、図4のステップS22を説明するための図である。 図11(a)〜図11(c)は、図4のステップS24を説明するための図である。 グラフ格納部に格納されるグラフのデータ形式を示す図である。 図13(a)〜図13(c)は、図4のステップS26〜S32のループを説明するための図(その1)である。 図14(a)〜図14(c)は、図4のステップS26〜S32のループを説明するための図(その2)である。 図15(a)、図15(b)は、図4のステップS26〜S32のループを説明するための図(その3)である。 図4のステップS36を説明するための図である。
以下、データ検索システムの一実施形態について、図1〜図16に基づいて詳細に説明する。図1には、一実施形態に係るデータ検索システム100の構成が概略的に示されている。
データ検索システム100は、図1に示すように、処理サーバ10と、クライアント50と、データサーバ80と、を備えている。処理サーバ10、クライアント50及びデータサーバ80は、インターネットやLAN(Local Area Network)などのネットワーク60に接続されている。データ検索システム100では、クライアント50から入力されたデータの検索条件(本実施形態ではデータの組み合わせに関する条件)に基づいて、処理サーバ10がデータサーバ80内のデータからデータの検索条件に合致するデータの組み合わせを検索し、クライアント50に対して出力するものとする。データ検索システム100は、具体的には、データベース中の異常値を発見するためや、人材配置、部品調達を行うため、joinを含む一般的なバッチ処理を行うためなどに利用される。
処理サーバ10は、図2(a)に示すようなハードウェア構成を有する。図2(a)に示すように、処理サーバ10は、CPU90、ROM92、RAM94、記憶部(ここではHDD(Hard Disk Drive))96、ネットワークインタフェース97及び可搬型記憶媒体用ドライブ99等を備えており、処理サーバ10の構成各部は、バス98に接続されている。処理サーバ10では、ROM92あるいはHDD96に格納されているプログラム(データ出力プログラム)、或いは可搬型記憶媒体用ドライブ99が可搬型記憶媒体91から読み取ったプログラム(データ出力プログラム)をCPU90が実行することにより、図3に示す各部の機能が実現される。
クライアント50は、図2(b)に示すようなハードウェア構成を有する。図2(b)に示すように、クライアント50は、CPU190、ROM192、RAM194、記憶部(HDD)196、ネットワークインタフェース197、可搬型記憶媒体用ドライブ199、ディスプレイ193及び入力部195等を備えており、クライアント50の構成各部は、バス198に接続されている。ディスプレイ193は、液晶ディスプレイ等であり、入力部195は、キーボードやマウス等を含む。クライアント50では、ROM192あるいはHDD196に格納されているプログラム、或いは可搬型記憶媒体用ドライブ199が可搬型記憶媒体191から読み取ったプログラムをCPU190が実行することにより、図3に示す各部の機能が実現される。
図3には、クライアント50及び処理サーバ10の機能ブロック図が示されている。
図3に示すように、クライアント50は、入力処理部52と表示処理部54を有する。入力処理部52は、入力部195から入力された情報(クライアント50のユーザによって入力された情報)を処理サーバ10に送信する機能を有する。表示処理部54は、処理サーバ10からの指示に基づいて、ディスプレイ193上に情報を表示する。
処理サーバ10は、図3に示すように、条件読み取り部12、条件変換部14、データ読み取り部18、グラフ生成部20、グラフ保存部22、到達可能集合計算部28、ノード削除部24、出力生成部26を有する。
条件読み取り部12は、クライアント50(入力処理部52)から入力されてくるデータの検索条件を読み取り、条件変換部14に入力する。条件変換部14は、条件読み取り部12から入力されたデータの検索条件の中に共通要素条件(詳細については後述する)がある場合には、当該共通要素条件を変換する。また、条件変換部14は、変換後の条件及び変換の必要のない条件のそれぞれをグラフ生成部20に入力する。
データ読み取り部18は、データサーバ80から検索対象のデータ(イベントやレコード)の集合を読み取り、グラフ生成部20に入力する。グラフ生成部20は、データ読み取り部18から入力されたデータと、条件変換部14から入力された条件とを用いて、グラフ理論に基づき、ノードとリンクを有するグラフを生成する。グラフ生成部20は、生成したグラフをグラフ保存部22に入力する。
到達可能集合計算部28は、グラフ生成部20で生成されたグラフを用いて各ノードの到達可能集合を計算し、グラフ保存部22に入力する。なお、到達可能集合については、後述する。
グラフ保存部22は、グラフ生成部20から入力されたグラフ及び到達可能集合計算部28から入力された到達可能集合をグラフ格納部30に格納する。ノード削除部24は、グラフ格納部30に格納されているグラフ及び到達可能集合を検証して、不要なノードを削除する。
出力生成部26は、ノード削除部24による処理が終了したグラフをグラフ格納部30から読み出し、読み出したグラフから検索条件を満たすデータの組み合わせ候補を決定する。また、出力生成部26は、組み合わせ候補と検索条件とを照合し、検索条件を満足するデータの組み合わせをクライアント50(表示処理部54)に対して出力する。
図1に戻り、データサーバ80は、各種データを格納する。本実施形態では、例えば、図7に示すようなデータベースを格納しているものとする。図7のデータベースは、HDD、CPU、MEM(memory)などの部品の製造メーカと製造拠点を格納するデータベースであり、「ID」、「種類」、「メーカ」、「販売拠点」の各フィールドを有している。「ID」のフィールドには、データの通し番号が格納され、「種類」のフィールドには部品の名称が格納される。また、「メーカ」のフィールドには、部品を製造するメーカの名称が格納され、「製造拠点」のフィールドには、部品を製造している工場の所在地(所在地域)が格納されている。
次に、処理サーバ10による処理について、図4のフローチャートに沿って、その他図面を適宜参照しつつ、詳細に説明する。なお、図4の処理は、クライアント50(入力処理部52)から検索条件が入力された段階で実行される処理である。
図4の処理では、まず、処理サーバ10の条件読み取り部12が、ステップS10において、クライアント50(入力処理部52)から入力された検索条件を読み込む。本実施形態では、条件読み取り部12は、図5(a)に示すような検索条件を読み込んだものとする。本実施形態では、処理サーバ10は、図5(a)の検索条件を満足するx、y、zのデータの組み合わせを検索し、クライアント50に対して出力するものとする。なお、図5(a)の検索条件は、図5(b)に示すように、(1)〜(3)の条件が単項の条件(1つのデータに関する条件)であり、(4)の条件が2項間の条件(2つのデータ間に関する条件)である。また、(5)の条件が3項間の条件(第1のデータ(x)、第2のデータ(y)、第3のデータ(z)それぞれの属性(製造拠点)に共通する要素が存在するという共通要素条件)である。
次いで、ステップS12では、条件変換部14が、共通要素条件を一連の2項間の条件に変換する。例えば、共通要素条件「(5)x、y、zの製造拠点に共通の場所がある」の場合、第1データ(x)と第2データ(y)の2つのデータの属性に共通要素が存在するという2項間の条件と、第2データ(y)と第3データ(z)の2つのデータの属性に共通要素が存在するという2項間の条件に変換(順序付けて分割)する。本実施形態では、共通要素条件がn項間の条件である場合、(n−1)個の条件に変換(分割)される。なお、図6においては、変換後の2項間の条件を、「共通(x−y製造拠点)」、「共通(y−z製造拠点)」と示している。
次いで、ステップS14では、データ読み取り部18が、データ読み込みを実行する。ここでは、データ読み取り部18は、データサーバ80から図7のデータベースのデータを読み込んだものとする。
次いで、ステップS16では、グラフ生成部20が、単項の条件を満たすデータを抽出してノードとする。ここでは、図8(a)に太字にて示す単項の条件「(1)xの種類はCPU」、「(2)yの種類はMEM」、「(3)zの種類はHDD」を満たすデータ(x、y、zの候補)を図7のデータベースから抽出してノードとする。図8(b)に示すように、本実施形態では、xの候補として、データID=2,6が抽出され、yの候補として、データID=3,4,8が抽出され、zの候補として、データID=1,5,7が抽出され、ノードとして設定される。
次いで、ステップS18では、グラフ生成部20が、2項間の条件((5)の条件は除く)を満たすノード間に辺(リンク)を作成する。すなわち、2項間の条件を満たすノード間を辺で連結する。ここでは、グラフ生成部20は、図9(a)に太字にて示す2項間の条件「(4)xとyは同じメーカ」を満たすノード間を辺で繋ぐ。なお、図9(b)には、ノードを実線の辺で繋いだ状態(グラフ)が示されている。
次いで、ステップS20では、グラフ生成部20が、共通要素条件に関係するノード間に辺を作成する。ここでは、グラフ生成部20は、変換後の共通要素条件に関係するノード(xとy、yとz)の間に辺を作成する。図9(c)には、xとyの間を破線の辺で繋ぎ、yとzの間を一点鎖線の辺で繋いだ状態(グラフ)が示されている。
次いで、ステップS22では、到達可能集合計算部28が、共通要素条件に関係するノードの逆方向到達可能集合を計算する。ここで、逆方向到達可能集合とは、各ノードの属性(製造拠点)に含まれる要素のうち、変換前の条件を満たす可能性のある要素の集合を共通要素条件を分割した順序の逆方向に関して求めたものを意味する。具体的には、到達可能集合計算部28は、逆方向到達可能集合として、自身のノードにリンクされている1ステップ前のノードの逆方向到達可能集合の和集合と自身のノードの要素集合との積集合を求める。ステップS22では、具体的には、図10(a)に示すように、到達可能集合計算部28は、まず、xのノード(データID=2,6)の製造拠点に含まれる要素全てを逆方向到達可能集合とする。図10(a)では、データID=2のノードの逆方向到達可能集合が「関東、中部」となり、データID=6のノードの逆方向到達可能集合が「中部、九州」となっている。
次いで、到達可能集合計算部28は、yのノード(データID=3,4,8)の製造拠点のうち、xのノード(データID=2,6)の逆方向到達可能集合のいずれかと一致するものを、yのノードそれぞれの逆方向到達可能集合とする。具体的には、図10(b)に示すように、データID=3のノードであれば、データID=3の製造拠点(東北、九州)のうち、データID=2の逆方向到達可能集合(関東、中部)及びデータID=6の逆方向到達可能集合(中部、九州)のいずれかと一致する「九州」が、データID=3の逆方向到達可能集合となる。データID=4,8の逆方向到達可能集合についても同様である。
更に、到達可能集合計算部28は、zのノード(データID=1,5,7)の製造拠点のうち、yのノード(データID=3,4,8)の逆方向到達可能集合のいずれかと一致するものを、zのノードそれぞれの逆方向到達可能集合とする。この場合、zのノードそれぞれの逆方向到達可能集合は、図10(c)のようになる。
図4に戻り、次のステップS24では、到達可能集合計算部28は、共通要素条件に関係するノードの順方向到達可能集合を計算する。ここでは、まず、図11(a)に示すように、到達可能集合計算部28は、zのノード(データID=1,5,7)の製造拠点に含まれる要素全てを順方向到達可能集合とする。次いで、到達可能集合計算部28は、yのノード(データID=3,4,8)の製造拠点のうち、zのノード(データID=1,5,7)の順方向到達可能集合のいずれかと一致するものを、yのノードそれぞれの順方向到達可能集合とする。具体的には、図11(b)に示すように、データID=3のノードであれば、データID=3の製造拠点(東北、九州)のうち、データID=1の順方向到達可能集合(東北、中部、九州)と、データID=5の順方向到達可能集合(関東、近畿)と、データID=7の順方向到達可能集合(東北、中部)のいずれかと一致するもの(東北、九州)が、データID=3の順方向到達可能集合となる。データID=4,8の順方向到達可能集合についても同様である。更に、到達可能集合計算部28は、xのノード(データID=2,6)の製造拠点のうち、yのノード(データID=3,4,8)の順方向到達可能集合のいずれかと一致するものを、xのノードそれぞれの順方向到達可能集合とする。この場合、xのノードそれぞれの順方向到達可能集合は、図11(c)のようになる。
ここで、図11(c)のようなグラフ及び逆方向・順方向到達可能集合が作成(計算)された段階で、グラフ保存部22は、グラフ及び逆方向・順方向到達可能集合をグラフ格納部30に格納する。この場合、グラフ保存部22は、一例として、図11(c)のグラフ及び逆方向・順方向到達可能集合を図12に示すようなデータ構造で保存する。本実施形態では、後述するようにグラフからノードを削除する処理を実行するため、ノードを削除する場合に、関連する辺の情報と削除するノードと辺で接続されているノードの情報とに効率よくアクセスできるようなデータ構造としている。具体的には、図12のように、各ノードのデータには、0x1、0x2…のようなアドレスが付与されている。また、各ノードのデータは、要素ID、データID、リスト実線、リスト破線、リスト一点鎖線、逆、順の各項目を有している。要素IDには、x、y、zのいずれかが格納され、データIDには、データ自身のIDが格納される。また、リスト実線、破線、一点鎖線には、辺で接続されているノードのアドレスが格納される。更に、「逆」の項目には逆方向到達可能集合が格納され、「順」の項目には順方向到達可能集合が格納される。
図4に戻り、次のステップS26では、ノード削除部24が、通常の2項間条件(本実施形態では、(4)の条件)に関して条件の全てを満たさないノードがあるか否かを判断する。ここでの判断が否定された場合には、ステップS28に移行し、ノード削除部24は、順方向到達可能集合と逆方向到達可能集合に共通要素が無いノードがあるか否かを判断する。ステップS26、S28のいずれかの判断が肯定された場合には、ステップS30、S32を実行し、ステップS26に戻る。すなわち、ステップS26、S28のいずれかの判断が肯定されている間は、ステップS30、S32を繰り返す。
ここで、ステップS30では、ノード削除部24は、該当するノード(ステップS26、S28で判断が肯定された要因であるノード)を削除する。また、ステップS32では、到達可能集合計算部28が、到達可能集合を再計算する。
以下、ステップS26、S28、S30、S32の具体的な処理について、図13〜図15に基づいて詳細に説明する。
図11(c)のグラフの場合、図13(a)に破線枠で示すように、データID=4のノードには実線の辺が接続されていない。すなわち、データID=4のノードは、(4)の条件を満たしていないので(S26:肯定)、ノード削除部24は、図13(b)に示すように、データID=4のノードを削除する(S30)。そして、到達可能集合計算部28は、到達可能集合を再計算する(S32)。これらの処理では、実際には、ノード削除部24は、図12のアドレス0x4のノードのデータを削除するとともに、他のノードのリストからアドレス0x4を削除する。また、到達可能集合計算部28は、グラフからデータID=4のノードを削除することにより影響を受ける他のノードの逆方向到達可能集合と順方向到達可能集合を更新する。これにより、図13(c)に示すように到達可能集合が再計算されることになる。
ところで、図13(c)の状態では、図14(a)に破線枠にて示すように、データID=2のノードの順方向到達可能集合と逆方向到達可能集合に共通要素が無い(S28:肯定)。このため、ノード削除部24は、図14(b)に示すように、データID=2のノードを削除し(S30)、到達可能集合計算部28は、到達可能集合を再計算する(S32)。
また、図14(b)の状態では、データID=8のノードに実線の辺が無い(S26:肯定)ので、ノード削除部24は、データID=8のノードを削除する(S30)。また、到達可能集合計算部28は、到達可能集合を再計算する(S32、図14(c)参照)。
また、図14(c)の状態では、データID=7のノードの順方向到達可能集合と逆方向到達可能集合に共通要素が無いので(S28:肯定)、ノード削除部24は、データID=7のノードを削除する(S30)。また、到達可能集合計算部28は、到達可能集合を再計算する(S32、図15(a)参照)。
更に、図15(a)の状態では、データID=5のノードの順方向到達可能集合と逆方向到達可能集合に共通要素が無いので(S28:肯定)、ノード削除部24は、データID=5のノードを削除する(S30)。また、到達可能集合計算部28は、到達可能集合を再計算する(S32、図15(b)参照)。
グラフ及び到達可能集合が図15(b)のようになった段階では、図4のステップS26、S28のいずれも否定されることになる。これにより、図4の処理は、ステップS34に移行し、出力生成部26は、グラフ格納部30に格納されているグラフ(ノードの削除が完了したグラフ)に基づいてデータの組み合わせの候補を列挙する。ここでは、図15(b)のグラフに残っている組み合わせ(一通りの組み合わせ(x,y,z)=(6,3,1))を条件を満たす組み合わせの候補として列挙する。
次いで、ステップS36では、出力生成部26は、列挙した組み合わせの候補のうち、検索条件を全て満たす組み合わせをクライアント50(表示処理部54)に対して出力する。具体的には、出力生成部26は、組み合わせ候補が(1)〜(5)の全条件を満たすか否かを判断し、満たしていれば、その組み合わせを出力する。本実施形態では、検索条件を満たす組み合わせの候補(6,3,1)は、全ての検索条件を満たしているので、出力生成部26は、該組み合わせ(6,3,1)を表示処理部54に出力する。なお、表示処理部54は、出力生成部26からデータの組み合わせを受信すると、クライアント50のディスプレイ193上に検索結果として、(x,y,z)=(6,3,1)を表示する。
以上、詳細に説明したように、本実施形態によると、条件変換部14は、共通要素条件(「x,y,zの製造拠点に共通の場所がある」という条件)を順序づけて分割することで、xとy、yとzの属性に共通要素が存在するという2項間の条件を生成し(S12)、グラフ生成部20は、単項の条件及び2項間の条件に基づいてグラフを作成する(S16〜S20)。そして、到達可能集合計算部28による逆方向到達可能集合と順方向到達可能集合の計算(S22、S24、S32)と、ノード削除部24による逆方向到達可能集合と順方向到達可能集合に共通する要素が存在しないノードの削除(S30)と、を削除するノードが無くなるまで繰り返し行った後のグラフに基づいて、出力生成部26は、データの組み合わせの候補を決定し(S34)、該候補から、共通要素条件に基づいて、共通要素条件を満たす組み合わせをクライアント50(表示処理部54)に対して出力する(S36)。このように、本実施形態では、逆方向到達可能集合と順方向到達可能集合に共通する要素が存在しないノードの削除を実行し、ノードが削除されたグラフにおいて逆方向到達可能集合と順方向到達可能集合の再計算を行い、ノードを削除し…、という処理を繰り返すことで、データの組み合わせの候補を絞り込むことができる。そして、出力生成部26は、絞り込んだ後の組み合わせの候補の中から条件を満たす組み合わせを見つけ出し、出力するので、データの全通りの組み合わせの中から条件を満たすデータの組み合わせを検索する場合と比べて、短時間で条件を満たすデータの組み合わせを見つけ出すことができる。
また、本実施形態では、検索条件に含まれる通常の2項間の条件(本実施形態では、図5(a)の(4)のような条件)を満たさないノードが含まれる場合(S28:肯定)に、ノード削除部24は、当該ノードを削除するので、この点からも、検索条件を満たすデータの組み合わせを絞り込むことができる。
なお、上記実施形態では、図9(b)に示すように、実線の辺が接続されないノード(データID=4)が存在する場合にも、当該ノードの逆方向到達可能集合や順方向到達可能集合を計算する場合について説明したが、これに限られるものではない。例えば、実線の辺が接続されないノード(データID=4)が存在する場合には、当該ノードを削除し、削除後のグラフにおいて各ノードの逆方向到達可能集合や順方向到達可能集合を計算するようにしてもよい。
なお、上記実施形態では、検索条件に、例えば「x、y、zの販売店は同じ」のような3項間の条件が含まれる場合もある。このような場合には、条件変換部14が、「xとyの販売店は同じ」、「yとzの販売店は同じ」、「zとxの販売店は同じ」という2項間の条件に変換するようにしてもよい。また、条件変換部14は、変換後の2項間の条件に冗長な条件(推移的な条件や重複する条件)が含まれている場合には、削除することとしてもよい。例えば、条件変換部14は、「xとyの販売店は同じ」、「yとzの販売店は同じ」、「zとxの販売店は同じ」のうちのいずれかを削除するようにしてもよい。
なお、上記実施形態では、共通要素条件が3項間の条件である場合について説明したが、これに限らず、共通要素条件は、n項間(nは3以上)の条件であればよい。
なお、上記実施形態では、図5(a)の検索条件に単項の条件が含まれる場合について説明したが、これに限られるものではなく、検索条件には単項の条件が含まれない場合もある。このような場合には、x、y、zのノードとして、全てのデータが設定されることになる。
なお、上記実施形態では、検索条件に複数の共通要素条件が含まれる場合もある。このような場合には、順序付けて分割した条件を複数組作るようにすればよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体(ただし、搬送波は除く)に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
なお、以上の実施形態の説明に関して、更に以下の付記を開示する。
(付記1) 第1、第2、…、第n(nは3以上の整数)のデータそれぞれの属性に共通する要素が存在するという共通要素条件に基づいて、該共通要素条件を満たすデータの組み合わせを出力するデータ出力方法であって、
前記共通要素条件を順序づけて分割し、第mのデータと第(m+1)のデータ(mは1以上(n−1)以下の整数)の2つのデータの属性に共通要素が存在するという2つのデータ間に関する条件を(n−1)個生成する工程と、
所定条件の下、前記第1〜第nのデータそれぞれになりうるデータを抽出してノードとし、前記2つのデータ間に関する条件に基づいて前記ノード間をリンクで連結したグラフを作成する工程と、
前記順序の一方向に関し、各ノードの属性に含まれる要素のうち、前記2つのデータ間に関する条件を満たす可能性のある要素の第1集合を求める処理と、前記順序の他方向に関し、各ノードの属性に含まれる要素のうち、前記2つのデータ間に関する条件を満たす可能性のある要素の第2集合を求める処理と、前記第1集合と前記第2集合に共通する要素が存在しないノードを前記グラフから削除する処理と、を削除するノードが無くなるまで繰り返す工程と、
前記繰り返す工程が終了した後のグラフから、データの組み合わせの候補を決定する工程と、
前記決定する工程で決定された前記組み合わせの候補から、入力された前記共通要素条件に基づいて、前記共通要素条件を満たすデータの組み合わせを出力する工程と、
をコンピュータが実行することを特徴とするデータ出力方法。
(付記2) 前記所定条件が、前記共通要素条件を分割して生成した2つのデータ間に関する条件とは異なる他の2つのデータ間に関する条件を含んでいる場合、
前記繰り返す工程では、ノードが満たすべき前記他の2つのデータ間に関する条件を満たさないノードを前記グラフから削除する処理も実行することを特徴とする付記1に記載のデータ出力方法。
(付記3) 前記所定条件が、前記共通要素条件を分割して生成した2つのデータ間に関する条件とは異なる他の2つのデータ間に関する条件を含んでいる場合、
前記グラフを作成する工程では、ノードが満たすべき前記他の2つのデータ間に関する条件を満たさないノードには前記リンクを連結しないことを特徴とする付記1又は2に記載のデータ出力方法。
(付記4) 第1、第2、…、第n(nは3以上の整数)のデータそれぞれの属性に共通する要素が存在するという共通要素条件に基づいて、該共通要素条件を満たすデータの組み合わせを出力するデータ出力プログラムであって、
前記共通要素条件を順序づけて分割し、第mのデータと第(m+1)のデータ(mは1以上(n−1)以下の整数)の2つのデータの属性に共通要素が存在するという2つのデータ間に関する条件を(n−1)個生成し、
所定条件の下、前記第1〜第nのデータそれぞれになりうるデータを抽出してノードとし、前記2つのデータ間に関する条件に基づいて前記ノード間をリンクで連結したグラフを作成し、
前記順序の一方向に関し、各ノードの属性に含まれる要素のうち、前記2つのデータ間に関する条件を満たす可能性のある要素の第1集合を求める処理と、前記順序の他方向に関し、各ノードの属性に含まれる要素のうち、前記2つのデータ間に関する条件を満たす可能性のある要素の第2集合を求める処理と、前記第1集合と前記第2集合に共通する要素が存在しないノードを前記グラフから削除する処理と、を削除するノードが無くなるまで繰り返し、
前記繰り返す処理が終了した後のグラフから、データの組み合わせの候補を決定し、
決定された前記組み合わせの候補から、入力された前記共通要素条件に基づいて、前記共通要素条件を満たすデータの組み合わせを出力する、処理をコンピュータに実行させることを特徴とするデータ出力プログラム。
(付記5) 前記所定条件が、前記共通要素条件を分割して生成した2つのデータ間に関する条件とは異なる他の2つのデータ間に関する条件を含んでいる場合、
前記繰り返す処理では、ノードが満たすべき前記他の2つのデータ間に関する条件を満たさないノードを前記グラフから削除する処理も実行することを特徴とする付記4に記載のデータ出力プログラム。
(付記6) 前記所定条件が、前記共通要素条件を分割して生成した2つのデータ間に関する条件とは異なる他の2つのデータ間に関する条件を含んでいる場合、
前記グラフを作成する処理では、ノードが満たすべき前記他の2つのデータ間に関する条件を満たさないノードには前記リンクを連結しないことを特徴とする付記4又は5に記載のデータ出力プログラム。
90 CPU(コンピュータ)
12 条件読み取り部
14 条件変換部
20 グラフ生成部
24 ノード削除部
26 出力生成部
28 到達可能集合計算部

Claims (4)

  1. 第1、第2、…、第n(nは3以上の整数)のデータそれぞれの属性に共通する要素が存在するという共通要素条件に基づいて、該共通要素条件を満たすデータの組み合わせを出力するデータ出力方法であって、
    前記共通要素条件を順序づけて分割し、第mのデータと第(m+1)のデータ(mは1以上(n−1)以下の整数)の2つのデータの属性に共通要素が存在するという2つのデータ間に関する条件を(n−1)個生成する工程と、
    所定条件の下、前記第1〜第nのデータそれぞれになりうるデータを抽出してノードとし、前記2つのデータ間に関する条件に基づいて前記ノード間をリンクで連結したグラフを作成する工程と、
    前記順序の一方向に関し、各ノードの属性に含まれる要素のうち、前記2つのデータ間に関する条件を満たす可能性のある要素の第1集合を求める処理と、前記順序の他方向に関し、各ノードの属性に含まれる要素のうち、前記2つのデータ間に関する条件を満たす可能性のある要素の第2集合を求める処理と、前記第1集合と前記第2集合に共通する要素が存在しないノードを前記グラフから削除する処理と、を削除するノードが無くなるまで繰り返す工程と、
    前記繰り返す工程が終了した後のグラフから、データの組み合わせの候補を決定する工程と、
    前記決定する工程で決定された前記組み合わせの候補から、入力された前記共通要素条件に基づいて、前記共通要素条件を満たすデータの組み合わせを出力する工程と、
    をコンピュータが実行することを特徴とするデータ出力方法。
  2. 前記所定条件が、前記共通要素条件を分割して生成した2つのデータ間に関する条件とは異なる他の2つのデータ間に関する条件を含んでいる場合、
    前記繰り返す工程では、ノードが満たすべき前記他の2つのデータ間に関する条件を満たさないノードを前記グラフから削除する処理も実行することを特徴とする請求項1に記載のデータ出力方法。
  3. 前記所定条件が、前記共通要素条件を分割して生成した2つのデータ間に関する条件とは異なる他の2つのデータ間に関する条件を含んでいる場合、
    前記グラフを作成する工程では、ノードが満たすべき前記他の2つのデータ間に関する条件を満たさないノードには前記リンクを連結しないことを特徴とする請求項1又は2に記載のデータ出力方法。
  4. 第1、第2、…、第n(nは3以上の整数)のデータそれぞれの属性に共通する要素が存在するという共通要素条件に基づいて、該共通要素条件を満たすデータの組み合わせを出力するデータ出力プログラムであって、
    前記共通要素条件を順序づけて分割し、第mのデータと第(m+1)のデータ(mは1以上(n−1)以下の整数)の2つのデータの属性に共通要素が存在するという2つのデータ間に関する条件を(n−1)個生成し、
    所定条件の下、前記第1〜第nのデータそれぞれになりうるデータを抽出してノードとし、前記2つのデータ間に関する条件に基づいて前記ノード間をリンクで連結したグラフを作成し、
    前記順序の一方向に関し、各ノードの属性に含まれる要素のうち、前記2つのデータ間に関する条件を満たす可能性のある要素の第1集合を求める処理と、前記順序の他方向に関し、各ノードの属性に含まれる要素のうち、前記2つのデータ間に関する条件を満たす可能性のある要素の第2集合を求める処理と、前記第1集合と前記第2集合に共通する要素が存在しないノードを前記グラフから削除する処理と、を削除するノードが無くなるまで繰り返し、
    前記繰り返す処理が終了した後のグラフから、データの組み合わせの候補を決定し、
    決定された前記組み合わせの候補から、入力された前記共通要素条件に基づいて、前記共通要素条件を満たすデータの組み合わせを出力する、処理をコンピュータに実行させることを特徴とするデータ出力プログラム。
JP2013147970A 2013-07-16 2013-07-16 データ出力方法及びデータ出力プログラム Active JP6102594B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013147970A JP6102594B2 (ja) 2013-07-16 2013-07-16 データ出力方法及びデータ出力プログラム
US14/308,738 US9727662B2 (en) 2013-07-16 2014-06-19 Data output method, computer-readable recording medium storing data output program and data output system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013147970A JP6102594B2 (ja) 2013-07-16 2013-07-16 データ出力方法及びデータ出力プログラム

Publications (2)

Publication Number Publication Date
JP2015022375A JP2015022375A (ja) 2015-02-02
JP6102594B2 true JP6102594B2 (ja) 2017-03-29

Family

ID=52344474

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013147970A Active JP6102594B2 (ja) 2013-07-16 2013-07-16 データ出力方法及びデータ出力プログラム

Country Status (2)

Country Link
US (1) US9727662B2 (ja)
JP (1) JP6102594B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897446A (zh) * 2017-03-02 2017-06-27 中国农业银行股份有限公司 一种数据流可视化方法及装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201046A (en) * 1990-06-22 1993-04-06 Xidak, Inc. Relational database management system and method for storing, retrieving and modifying directed graph data structures
JP2710548B2 (ja) * 1993-03-17 1998-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション データを検索する方法およびブール代数文表現と図形表現を互いに変換する方法
US6092064A (en) * 1997-11-04 2000-07-18 International Business Machines Corporation On-line mining of quantitative association rules
JP4004619B2 (ja) * 1998-01-08 2007-11-07 富士通株式会社 自動在庫引当が可能な在庫管理装置
JP2001167087A (ja) 1999-12-14 2001-06-22 Fujitsu Ltd 構造化文書検索装置,構造化文書検索方法,構造化文書検索用プログラム記録媒体および構造化文書検索用インデックス作成方法
JP3513562B2 (ja) * 2000-04-20 2004-03-31 インターナショナル・ビジネス・マシーンズ・コーポレーション 形状解析システム、3次元形状モデルの差分検出システム、類似形状検索システム、形状解析方法及び記憶媒体
JP3908090B2 (ja) 2002-05-30 2007-04-25 日本電信電話株式会社 情報検索システムおよび情報検索方法、情報検索プログラム並びにそのプログラムを記録した記録媒体
JP4298333B2 (ja) * 2003-03-17 2009-07-15 株式会社アライドエンジニアリング 充足可能解列挙システム
JP4825712B2 (ja) * 2007-03-22 2011-11-30 株式会社東芝 クエリ処理装置、プログラムおよびクエリ処理方法
JP2009176072A (ja) 2008-01-24 2009-08-06 Nec Corp 要素集団抽出システム、要素集団抽出方法およびプログラム
JP2009205269A (ja) 2008-02-26 2009-09-10 Osaka Univ 頻出変化パターン抽出装置
JP2009208904A (ja) 2008-03-05 2009-09-17 Meidensha Corp 流通履歴管理システムおよび流通履歴の管理/検索方法
JP5407169B2 (ja) * 2008-04-11 2014-02-05 富士通株式会社 クラスタリングプログラム、検索プログラム、クラスタリング方法、検索方法、クラスタリング装置および検索装置
US8539035B2 (en) * 2008-09-29 2013-09-17 Fujitsu Limited Message tying processing method and apparatus
JP2010152748A (ja) 2008-12-25 2010-07-08 Nec Corp グラフ変換支援システム、グラフ変換支援方法、及びプログラム
JP5278535B2 (ja) * 2009-03-19 2013-09-04 富士通株式会社 データベース検索プログラムを記録するコンピュータ読取可能な記憶媒体、データベース検索装置、および、データベース検索方法
JP5534167B2 (ja) 2009-12-16 2014-06-25 日本電気株式会社 グラフ作成装置、グラフ作成方法およびグラフ作成プログラム
JP5544571B2 (ja) 2010-09-06 2014-07-09 国立大学法人佐賀大学 階層構造管理装置、その方法、及びプログラム
JP2012128479A (ja) 2010-12-13 2012-07-05 Fuji Xerox Co Ltd 検索装置及びプログラム
JP5745932B2 (ja) * 2011-05-20 2015-07-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation グラフデータに写像の像であるオブジェクトに対する操作を反映する方法、プログラム、および、システム
JP5705788B2 (ja) * 2012-06-05 2015-04-22 株式会社日立製作所 アセンブリモデル類似構造検索システム、及びアセンブリモデル類似構造検索方法
US20140324503A1 (en) * 2013-04-30 2014-10-30 Microsoft Corporation Multi-source data subscriptions

Also Published As

Publication number Publication date
JP2015022375A (ja) 2015-02-02
US20150026217A1 (en) 2015-01-22
US9727662B2 (en) 2017-08-08

Similar Documents

Publication Publication Date Title
JP5705788B2 (ja) アセンブリモデル類似構造検索システム、及びアセンブリモデル類似構造検索方法
JP7171471B2 (ja) 学習モデル生成支援装置、及び学習モデル生成支援方法
JP6155833B2 (ja) 伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラム
JP6906477B2 (ja) データ処理装置およびデータ処理方法
US9652495B2 (en) Traversal-free updates in large data structures
US9864802B2 (en) Rules-based knowledge-driven search filters
JP6102594B2 (ja) データ出力方法及びデータ出力プログラム
JP2015108983A (ja) アイテム推薦装置、アイテム推薦方法、およびアイテム推薦プログラム
US20190243811A1 (en) Generation method, generation device, and computer-readable recording medium
US20140136155A1 (en) Analyzing hardware designs based on component re-use
JP6977565B2 (ja) 検索結果出力プログラム、検索結果出力装置および検索結果出力方法
US20230335230A1 (en) Information processing apparatus, information processing method, and information processing program
JP2012221489A (ja) 効率的にクエリを処理する方法及び装置
EP3021234A1 (en) Conceptualization and search of block diagram based models
JP6136685B2 (ja) データ抽出方法及びデータ抽出プログラム
JP6442864B2 (ja) ソフトウェア選択装置、ソフトウェア選択方法、及びソフトウェア選択プログラム
JP2019197465A (ja) シミュレーション制御方法及び計算機システム
JP2010186296A (ja) 画像検索装置
JP2009134511A (ja) サイジング装置、サイジング方法、サイジング用プログラム及び記録媒体
JP2020160854A (ja) コード管理システム、及びコード管理方法
JP5417359B2 (ja) 文書評価支援システム、及び文書評価支援方法
JP2021184147A (ja) データ変換プログラム、データ変換装置、及びデータ変換方法
JP7176434B2 (ja) 情報処理システム、情報処理装置及びデータ記憶プログラム
JP5316256B2 (ja) ソフトウェア開発支援装置および方法
Demian et al. 3DIR: exploiting topological relationships in three-dimensional information retrieval from BIM environments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160405

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: 20170131

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170131

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170213

R150 Certificate of patent or registration of utility model

Ref document number: 6102594

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150