処理中

しばらくお待ちください...

設定

設定

出願の表示

1. WO2020110239 - 情報処理装置及びリネージュプログラム

Document

明 細 書

発明の名称 情報処理装置及びリネージュプログラム

技術分野

0001  

背景技術

0002   0003   0004  

先行技術文献

特許文献

0005  

発明の概要

発明が解決しようとする課題

0006   0007  

課題を解決するための手段

0008  

発明の効果

0009  

図面の簡単な説明

0010  

発明を実施するための形態

0011  

実施例

0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082  

符号の説明

0083  

請求の範囲

1   2   3   4   5   6   7   8   9   10  

図面

1A   1B   1C   1D   1E   1F   1G   1H   1I   1J   1K   1L   2   3   4   5   6   7   8   9   10   11   12   13  

明 細 書

発明の名称 : 情報処理装置及びリネージュプログラム

技術分野

[0001]
 本発明は、情報処理装置及びリネージュプログラムに関する。

背景技術

[0002]
 近年、データの信頼性を判断するため、あるいは、データの使用先を把握するために、データの来歴と影響範囲をグラフ表示するリネージュ機能が使われている。図12は、リネージュ機能により表示されるデータフローの一例を示す図である。図12では、データはcsv(comma-separated values)ファイルであり、「品切れ.csv」が対象として選択されている。楕円のアイコンはプロセス(処理)を表す。カードのアイコンはデータを表す。「Python」は、プログラミング言語であり、楕円の中の「Python」は、プロセスが「Python」で作成されていることを示す。
[0003]
 「品切れ.csv」より左が「品切れ.csv」の来歴を示し、「品切れ.csv」より右が「品切れ.csv」の影響範囲を示す。すなわち、「売り上げ.csv」と「商品マスター.csv」から2つのプロセスにより「中間.csv」が作成され、「中間.csv」と「在庫.csv」から1つのプロセスにより「品切れ.csv」が作成される。また、「品切れ.csv」から2つのプロセスにより「需要予測.csv」が作成される。
[0004]
 なお、有向グラフに関する従来技術として、有向グラフに含まれるノードについて関心の指定を受け取って、関心のないノードを要約する計算を行う技術がある。また、メタデータオブジェクトを特徴づける要約データを計算し、メタデータオブジェクトをノードで表しノード間の関係を線で表す視覚的表現において、要約データをノードの近傍に重ねる技術がある。

先行技術文献

特許文献

[0005]
特許文献1 : 特表2017-530440号公報
特許文献2 : 特表2012-510688号公報

発明の概要

発明が解決しようとする課題

[0006]
 リネージュ機能で表示されるデータフローには、データとプロセスの数が多くなると全体像の把握が困難になるという問題がある。図13は、全体像の把握が困難なデータフローの一例を示す図である。図13では、対象として選択されたcsvファイルの来歴に含まれるプロセス及びcsvファイルの数が、全体像の把握が困難なほど多い。
[0007]
 本発明は、1つの側面では、データフローの全体像の把握を容易にすることを目的とする。

課題を解決するための手段

[0008]
 1つの態様では、情報処理装置は、圧縮価値記憶部と圧縮部と表示部とを有する。前記圧縮価値記憶部は、グループに含まれる複数の処理を1つのまとめ処理に圧縮する価値を示す圧縮価値をグループ毎に管理する圧縮価値情報を記憶する。ここで、グループは、データフローにおいて複数の処理と該複数の処理の先頭処理の入力データから最終処理の出力データまでのデータとを含む部分データフローである。前記圧縮部は、前記圧縮価値記憶部に記憶された圧縮価値情報に基づいて、リネージュ対象のデータフローにおいて圧縮価値が所定値より大きいグループの複数の処理を1つのまとめ処理にまとめる。前記表示部は、前記圧縮部により複数の処理が1つのまとめ処理にまとめられた圧縮データフローを表示する。

発明の効果

[0009]
 本発明は、1つの側面では、データフローの全体像の把握を容易にすることができる。

図面の簡単な説明

[0010]
[図1A] 図1Aは、圧縮価値の計算に用いられる複数のデータフローを示す図である。
[図1B] 図1Bは、データフローから抽出されたグループの例を示す図である。
[図1C] 図1Cは、異なるグループとして判定される例を示す図である。
[図1D] 図1Dは、異なるグループとして判定される他の例を示す図である。
[図1E] 図1Eは、リネージュ対象のデータフローのグループの例を示す第1の図である。
[図1F] 図1Fは、リネージュ対象のデータフローのグループの例を示す第2の図である。
[図1G] 図1Gは、リネージュ対象のデータフローのグループの例を示す第3の図である。
[図1H] 図1Hは、リネージュ対象のデータフローのグループの例を示す第4の図である。
[図1I] 図1Iは、複数のプロセスを1つのプロジェクトにまとめる例を示す第1の図である。
[図1J] 図1Jは、複数のプロセスを1つのプロジェクトにまとめる例を示す第2の図である。
[図1K] 図1Kは、複数のプロセスを1つのプロジェクトにまとめる例を示す第3の図である。
[図1L] 図1Lは、図1Eに示したデータフローの圧縮データフローを示す図である。
[図2] 図2は、実施例に係る情報処理装置の機能構成を示す図である。
[図3] 図3は、データフロー記憶部の一例を示す図である。
[図4] 図4は、グループ記憶部の一例を示す図である。
[図5] 図5は、圧縮価値記憶部の一例を示す図である。
[図6] 図6は、リネージュ記憶部の一例を示す図である。
[図7] 図7は、グループグラフ記憶部の一例を示す図である。
[図8] 図8は、取得結果記憶部の一例を示す図である。
[図9] 図9は、プロジェクト記憶部の一例を示す図である。
[図10] 図10は、情報処理装置による処理のフローを示すフローチャートである。
[図11] 図11は、実施例に係るリネージュプログラムを実行するコンピュータのハードウェア構成を示す図である。
[図12] 図12は、リネージュ機能により表示されるデータフローの一例を示す図である。
[図13] 図13は、全体像の把握が困難なデータフローの一例を示す図である。

発明を実施するための形態

[0011]
 以下に、本願の開示する情報処理装置及びリネージュプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
実施例
[0012]
 まず、実施例に係る情報処理装置がリネージュ機能により表示するデータフローを図1A~図1Lを用いて説明する。実施例に係る情報処理装置は、図1A~図1Dに示すように、複数のデータフローを用いて、複数のプロセスを含む部分データフローの圧縮価値を計算して、圧縮価値記憶部に記憶する。ここで、圧縮価値とは、部分データフローの複数のプロセスをまとめて1つに圧縮する価値を示す値である。なお、圧縮価値の詳細については後述する。そして、実施例に係る情報処理装置は、図1E~図1Lに示すように、リネージュ対象のデータフローを圧縮価値に基づいて圧縮して、圧縮データフローを表示する。
[0013]
 図1Aは、圧縮価値の計算に用いられる複数のデータフローを示す図である。ここでは、データフローA~データフローDで表される4つのデータフローが圧縮価値の計算に用いられる。実施例に係る情報処理装置は、データフローAにおいて、「Data2.csv」と「Data1.csv」の統計的な差異として「行数の減少」を特定する。また、実施例に係る情報処理装置は、データフローAにおいて、「Data3.csv」と「Data2.csv」の統計的な差異として「値の数の増加」を特定する。統計的な差異としては、他に「行数の増加」、「値の数の減少」、「値の範囲の減少」、「値の範囲の増加」、「値の種類の減少」、「値の種類の増加」等がある。実施例に係る情報処理装置は、これらの統計的な差異を、入力データと出力データを比較することで特定する。
[0014]
 そして、実施例に係る情報処理装置は、「Data2.csv」と「Data1.csv」の統計的な差異「行数の減少」を生み出すプロセス「Python1」のアルゴリズムとして「削除」を特定する。特定されたアルゴリズムは、プロセスの下に表示される。統計的な差異「行数の減少」を生み出すプロセスのアルゴリズムとしては、「削除」の他に「外れ値除外」がある。「削除」であるか「外れ値除外」であるかは、入力データと出力データを比較することで特定される。また、実施例に係る情報処理装置は、「Data3.csv」と「Data2.csv」の統計的な差異「値の数の増加」を生み出すプロセス「Python2」のアルゴリズムとして「補間」を特定する。
[0015]
 同様に、実施例に係る情報処理装置は、「Data4.csv」と「Data3.csv」の統計的な差異を生み出すプロセス「Python3」のアルゴリズムとして「正規化」を特定する。また、実施例に係る情報処理装置は、「Data5.csv」と「Data4.csv」の統計的な差異を生み出すプロセス「Python4」のアルゴリズムとして「重回帰分析」を特定する。
[0016]
 ただし、「重回帰分析」については、入力データと出力データを比較することで特定されるのではなく、データフロー作成時に部品として用意されたプロセスに付加されたアルゴリズムとして特定される。このように、実施例に係る情報処理装置は、入力データと出力データの差異を生み出すプロセスのアルゴリズムを、入力データと出力データを比較することで特定する以外に、部品として用意されたプロセスに付加されたアルゴリズムを用いて特定する。
[0017]
 また、実施例に係る情報処理装置は、データフローBにおいて、アルゴロズムとして「名寄せ」を特定する。また、実施例に係る情報処理装置は、データフローCにおいて、「独自アルゴリズム」を特定する。ここで、「独自アルゴリズム」は、入力データと出力データを比較することで特定されず、部品として用意されたプロセスでない場合に、プロセスに付加されるアルゴリズムである。
[0018]
 実施例に係る情報処理装置は、2つ以上のプロセスと2つ以上のプロセスの先頭のプロセスの入力データから最後のプロセスの出力データまでのデータとを含む部分データフローをグループとして全てのデータフローから全て抽出する。そして、実施例に係る情報処理装置は、異なるデータフローに含まれる2つのグループについて、統計的な差異とアルゴリズムを特定し、対応する統計的な差異と、対応するアルゴリズムが一致するか否かを判定する。そして、対応する統計的な差異と、対応するアルゴリズムが一致する場合に、実施例に係る情報処理装置は、2つのグループは同一であると判定し、グループの類似度に1を加える。また、実施例に係る情報処理装置は、2つのグループが同一であるか否かの判定をグループの全ての組み合わせについて行う。
[0019]
 例えば、実施例に係る情報処理装置は、図1Bに示すように、データフローAから、「Data1.csv→Python1→Data2.csv→Python2→Data3.csv」をグループA1として抽出する。ここで、「グループA1」は、グループを識別するグループ番号が「A1」であるグループである。また、実施例に係る情報処理装置は、データフローBから、「Data1.csv→Python1→Data2.csv→Python2→Data3.csv」をグループB1として抽出する。
[0020]
 そして、実施例に係る情報処理装置は、グループA1において、「Data2.csv」と「Data1.csv」の統計的な差異として「行数の減少」を特定する。また、実施例に係る情報処理装置は、グループA1において、「Data3.csv」と「Data2.csv」の統計的な差異として「値の数の増加」を特定する。また、実施例に係る情報処理装置は、統計的な差異「行数の減少」を生み出すアルゴリズムとして「削除」を特定し、統計的な差異「値の数の増加」を生み出すアルゴリズムとして「補間」を特定する。
[0021]
 同様に、実施例に係る情報処理装置は、グループB1において、「Data2.csv」と「Data1.csv」の統計的な差異として「行数の減少」を特定する。また、実施例に係る情報処理装置は、グループB1において、「Data3.csv」と「Data2.csv」の統計的な差異として「値の数の増加」を特定する。また、実施例に係る情報処理装置は、統計的な差異「行数の減少」を生み出すアルゴリズムとして「削除」を特定し、統計的な差異「値の数の増加」を生み出すアルゴリズムとして「補間」を特定する。
[0022]
 グループA1とグループB1では、対応する統計的な差異が「行数の減少」と「値の数の増加」で同じであり、対応するアルゴリズムも「削除」と「補間」で同じである。したがって、実施例に係る情報処理装置は、アルゴリズムが「削除→補間」であり、統計的な差異が「行数の減少→値の数の増加」で表されるグループの類似度に1を加える。
[0023]
 図1Cは、異なるグループとして判定される例を示す図である。図1Cにおいて、グループA1とグループB2はアルゴリズムの数が異なるので、異なるグループと判定される。図1Dは、異なるグループとして判定される他の例を示す図である。図1Dにおいて、データフローCから抽出されたグループC6とデータフローDから抽出されたグループD3は、少なくともアルゴリズムが異なるので、異なるグループと判定される。
[0024]
 図1Bに示したグループA1を「削除」→「補間」で表すと、データフローAからは、「削除」を先頭のアルゴリズムとするグループとして、「削除」→「補間」→「正規化」、「削除」→「補間」→「正規化」→「重回帰分析」が抽出される。また、「補間」を先頭のアルゴリズムとするグループとして、「補間」→「正規化」、「補間」→「正規化」→「重回帰分析」が抽出される。また、「正規化」を先頭のアルゴリズムとするグループとして、「正規化」→「重回帰分析」が抽出される。したがって、データフローAからは、6個のグループが抽出される。同様に、データフローBからは、「削除」→「補間」のグループB1等の15個のグループが抽出される。
[0025]
 実施例に係る情報処理装置は、グループの組み合わせの全てについて、297回判定を行い、グループ「削除→補間」の類似度を5とする。また、実施例に係る情報処理装置は、グループ「正常化→重回帰分析」の類似度を1、グループ「削除→補間→名寄せ」の類似度を1、グループ「補間→名寄せ」の類似度を1、その他のグループの類似度を0とする。
[0026]
 そして、実施例に係る情報処理装置は、圧縮価値を類似度とアルゴリズムの数に基づいてグループ毎に計算する。例えば、実施例に係る情報処理装置は、圧縮価値=類似度×係数^5、により計算する。ここで、係数はアルゴリズム数に基づく値であり、例えば、アルゴリズム数である。「^」はベキ乗を示す。
[0027]
 類似度が大きいことはグループの出現頻度が高いことを示し、グループの圧縮価値は大きい。また、アルゴリズム数が多いグループは圧縮率が大きいので、グループの圧縮価値は大きい。
[0028]
 実施例に係る情報処理装置は、例えば、グループ「削除→補間」の圧縮価値を5×2^5=160、グループ「正常化→重回帰分析」の圧縮価値を1×2^5=32、グループ「削除→補間→名寄せ」の圧縮価値を1×3^5=243とする。同様に、実施例に係る情報処理装置は、例えば、グループ「補間→名寄せ」の類似度を1×2^5=32とし、その他のグループの圧縮価値を0とする。
[0029]
 そして、実施例に係る情報処理装置は、計算した圧縮価値をグループに対応付けて圧縮価値記憶部に記憶する。なお、ここでは、4つのデータフローから圧縮価値を計算したが、実施例に係る情報処理装置は、より多くのデータフローからグループの圧縮価値を計算し、様々な部分データフローの圧縮価値を記憶する。
[0030]
 そして、実施例に係る情報処理装置は、リネージュ対象のデータフローから全てのグループを抽出し、各グループの統計的な差異とアルゴリズムを特定する。そして、実施例に係る情報処理装置は、各グループの圧縮価値を圧縮価値記憶部を参照して取得する。
[0031]
 図1E~図1Hは、リネージュ対象のデータフローのグループの例を示す図である。図1Eの例では、実施例に係る情報処理装置は、「Data2.csv」と「Data1.csv」の統計的な差異として「行数の減少」を特定し、「Data3.csv」と「Data2.csv」の統計的な差異として「値の数の増加」を特定する。そして、実施例に係る情報処理装置は、統計的な差異「行数の減少」を生み出すアルゴリズムとして「削除」を特定し、統計的な差異「値の数の増加」を生み出すアルゴリズムとして「補間」を特定する。そして、実施例に係る情報処理装置は、グループ「削除→補間」の圧縮価値として160を取得する。
[0032]
 また、図1Fの例では、実施例に係る情報処理装置は、「Data4.csv」と「Data3.csv」の統計的な差異として「値の種類の減少」を特定する。そして、実施例に係る情報処理装置は、統計的な差異「値の種類の減少」を生み出すアルゴリズムとして「名寄せ」を特定する。そして、実施例に係る情報処理装置は、グループ「削除→補間→名寄せ」の圧縮価値として243を取得する。
[0033]
 また、図1Gの例では、実施例に係る情報処理装置は、「Data7.csv」と「Data4.csv」及び「Data6.csv」との統計的な差異として「値の範囲の変更」を特定する。また、実施例に係る情報処理装置は、「Data6.csv」と「Data5.csv」の統計的な差異として「独自」を特定する。そして、実施例に係る情報処理装置は、統計的な差異「値の範囲の変更」を生み出すアルゴリズムとして「正規化」を特定し、統計的な差異「独自」を生み出すアルゴリズムとして「独自アルゴリズム」を特定する。そして、実施例に係る情報処理装置は、グループに「独自アルゴリズム」が含まれているので、圧縮価値を0とする。
[0034]
 また、図1Hの例では、実施例に係る情報処理装置は、「Data8.csv」と「Data7.csv」の統計的な差異として「流用部品(重回帰分析)」を特定する。そして、実施例に係る情報処理装置は、統計的な差異「流用部品(重回帰分析)」を生み出すアルゴリズムとして「重回帰分析」を特定する。そして、実施例に係る情報処理装置は、グループ「正規化→重回帰分析」について圧縮価値として32を取得する。
[0035]
 そして、実施例に係る情報処理装置は、圧縮価値が大きいグループから順番に複数のプロセスを1つのまとめプロセスとしてのプロジェクトにまとめる。そして、実施例に係る情報処理装置は、グループに含まれる先頭のプロセスの入力データをプロジェクトの入力データとし、最後のプロセスの出力データをプロジェクトの出力データとする。図1I~図1Kは、複数のプロセスを1つのプロジェクトにまとめる例を示す図である。
[0036]
 図1Iでは、圧縮価値が243で最大のグループ「削除→補間→名寄せ」が「Project1」にまとめられる。また、先頭の「削除」の入力データ「Data1.csv」が「Project1」の入力データとされ、最後の「名寄せ」の出力データ「Data4.csv」が「Project1」の出力データとされる。なお、図1Iにおいて、「グループNo.2」は、圧縮価値記憶部においてグループ「削除→補間→名寄せ」を識別する番号が「2」であることを示す。
[0037]
 図1Jでは、次に圧縮価値(160)が大きいグループ「削除→補間」が「Project2」にまとめられる。また、先頭の「削除」の入力データ「Data1.csv」が「Project2」の入力データとされ、最後の「補間」の出力データ「Data3.csv」が「Project2」の出力データとされる。
[0038]
 図1Kでは、次に圧縮価値(32)が大きいグループ「正規化→重回帰分析」が「Project3」にまとめられる。また、先頭の「正常化」の入力データ「Data4.csv」と「Data6.csv」が「Project3」の入力データとされ、最後の「重回帰分析」の出力データ「Data8.csv」が「Project3」の出力データとされる。
[0039]
 そして、実施例に係る情報処理装置は、リネージュ対象のデータフローをプロジェクトに置き換えられた圧縮データフローとして表示する。図1Lは、図1Eに示したデータフローの圧縮データフローを示す図である。図1Lに示すように、まとめられた処理のアルゴリズムは、プロジェクトの下にまとめて表示される。図1Eのデータフローと比較して、図1Lの圧縮データフロー1では、プロセス数及びデータ数が少なくなり、全体の把握が容易になっている。
[0040]
 また、図1Lにおいて、ユーザによりプロジェクトがマウスで選択されると、実施例に係る情報処理装置は、プロジェクトにまとめられる前のプロセス又はプロジェクトを吹き出しで表示する。また、吹き出しの中のプロジェクトがマウスで選択されると、実施例に係る情報処理装置は、吹き出し中のプロジェクトにまとめられる前のプロセス又はプロジェクトを別の吹き出しで表示する。
[0041]
 このように、プロジェクトにまとめられる前のプロセス又はプロジェクトを階層的に表示することで、実施例に係る情報処理装置は、データフローの全体から詳細への把握を支援することができる。
[0042]
 次に、実施例に係る情報処理装置の機能構成について説明する。図2は、実施例に係る情報処理装置の機能構成を示す図である。図2に示すように、実施例に係る情報処理装置10は、データフロー記憶部11と、グループ抽出部12と、グループ記憶部13と、圧縮価値計算部14と、圧縮価値記憶部15とを有する。また、実施例に係る情報処理装置10は、リネージュ記憶部16と、リネージュグループ記憶部17と、グループグラフ記憶部18と、圧縮価値取得部19と、取得結果記憶部20と、プロジェクト作成部21と、プロジェクト記憶部22と、表示部23とを有する。
[0043]
 データフロー記憶部11は、複数のデータフローのグラフ構造の情報を記憶する。情報処理装置10は、例えば、ユーザがマウスを用いて行った指示を受け付けてファイルからデータフローのグラフ構造の情報を読み出してデータフロー記憶部11に格納したり追加したりする。
[0044]
 図3は、データフロー記憶部11の一例を示す図である。図3に示すように、データフロー記憶部11は、データフローを識別するデータフロー名とデータフローのグラフ構造の情報を対応付けて記憶する。データフロー記憶部11は、例えば、データフローAについて、「Data1.csv→Python1→Data2.csv」、「Data2.csv→Python2→Data3.csv」を記憶する。また、データフロー記憶部11は、データフローAについて、「Data3.csv→Python3→Data4.csv」、「Data4.csv→Python4→Data5.csv」を記憶する。
[0045]
 グループ抽出部12は、データフロー記憶部11が記憶する情報を用いて全てのグループを抽出し、各グループについて、統計的な差異とアルゴリズムを特定して、グループ記憶部13に格納する。
[0046]
 グループ記憶部13は、グループの情報を記憶する。図4は、グループ記憶部13の一例を示す図である。図4に示すように、グループ記憶部13は、グループを識別するグループNo.に対応付けて、アルゴリズムを識別するアルゴリズム名と統計的な差異とを記憶する。例えば、グループ記憶部13は、グループA1について、アルゴリズム名として「削除→補間」を記憶し、統計的な差異として「行数の減少→値の数の増加」を記憶する。
[0047]
 圧縮価値計算部14は、グループの類似度を計算し、類似度をアルゴリズムの数に基づいて、圧縮価値=類似度×係数^5を計算し、圧縮価値記憶部15に格納する。
[0048]
 圧縮価値記憶部15は、圧縮価値をグループ毎に管理する圧縮価値情報を記憶する。図5は、圧縮価値記憶部15の一例を示す図である。図5に示すように、圧縮価値記憶部15は、アルゴリズム名と、統計的な差異と、アルゴリズム数と、類似度と、圧縮価値をグループ毎に記憶する。例えばアルゴリズム名が「削除→補間」であり、統計的な差異が「行数の減少→値の数の増加」であるグループのアルゴリズム数は「2」であり、類似度は「5」であり、圧縮価値は「160」である。
[0049]
 リネージュ記憶部16は、リネージュ対象のデータフローのグラフ構造の情報を記憶する。情報処理装置10は、例えば、ユーザがマウスを用いて行った指示を受け付けてファイルからリネージュ対象のデータフローのグラフ構造の情報を読み出してリネージュ記憶部16に格納する。
[0050]
 図6は、リネージュ記憶部16の一例を示す図である。図6に示すように、リネージュ記憶部16は、リネージュ対象のデータフローのグラフ構造の要素を識別する番号であるNo.と要素のグラフ構造とを対応付けて記憶する。ここで、要素は1つのプロセスとその入力データ及び出力データのグラフ構造である。例えば、識別する番号が「1」である要素のグラフ構造は「Data1.csv→Python1→Data2.csv」である。
[0051]
 グループ抽出部12は、リネージュ記憶部16が記憶する情報を用いてリネージュ対象のデータフローから全てのグループを抽出し、各グループについて、統計的な差異とアルゴリズムを特定して、リネージュグループ記憶部17に格納する。リネージュグループ記憶部17は、リネージュ対象のデータフローから抽出されたグループの情報を記憶する。また、グループ抽出部12は、抽出したグループのグラフ構造を作成し、グループグラフ記憶部18に格納する。
[0052]
 グループグラフ記憶部18は、リネージュ対象のデータフローのグループのグラフ構造の情報を記憶する。図7は、グループグラフ記憶部18の一例を示す図である。図7に示すように、グループグラフ記憶部18は、グループNo.とグループのグラフ構造を対応付けて記憶する。例えば、識別する番号が「1」であるグループのグラフ構造は「Data1.csv→Python1→Data2.csv」と「Data2.csv→Python2→Data3.csv」である。
[0053]
 圧縮価値取得部19は、リネージュグループ記憶部17が情報を記憶するグループについて、圧縮価値記憶部15から圧縮価値を取得し、グループの情報とともに取得結果記憶部20に格納する。圧縮価値取得部19は、圧縮価値記憶部15に圧縮価値が記憶されていないグループについては、圧縮価値を0として取得結果記憶部20に格納する。
[0054]
 取得結果記憶部20は、リネージュグループ記憶部17が記憶する情報に圧縮価値が付加された情報をグループ毎に記憶する。図8は、取得結果記憶部20の一例を示す図である。図8に示すように、取得結果記憶部20は、グループを識別するグループNo.とアルゴリズム名と統計的な差異と圧縮価値をグループ毎に記憶する。例えば、取得結果記憶部20は、「1」で識別されるグループについて、アルゴリズム名として「削除→補間」を記憶し、統計的な差異として「行数の減少→値の数の増加」を記憶し、圧縮価値として「160」を記憶する。
[0055]
 プロジェクト作成部21は、取得結果記憶部20から圧縮価値が0でないグループを圧縮価値が大きい順に特定し、特定したグループの複数のプロセスを1つのプロジェクトにまとめて、プロジェクトの情報をプロジェクト記憶部22に格納する。ここで、プロジェクトは、複数のプロセスがまとめられたプロセスである。プロジェクトの入力データは、まとめられた複数のプロセスの先頭のプロセスの入力データであり、プロジェクトの出力データは、まとめられた複数のプロセスの最後のプロセスの出力データである。なお、プロジェクト作成部21は、圧縮価値が所定の値以上のグループをプロジェクトにまとめてもよい。
[0056]
 プロジェクト記憶部22は、プロジェクトの情報を記憶する。プロジェクトの情報には、プロジェクトにまとめられる前のグループの情報が含まれる。図9は、プロジェクト記憶部22の一例を示す図である。図9に示すように、プロジェクト記憶部22は、グループNo.とアルゴリズム名と統計的な差異と圧縮価値とプロジェクト名と階層をプロジェクト毎に記憶する。
[0057]
 グループNo.とアルゴリズム名と統計的な差異と圧縮価値は、まとめられる前のグループの情報である。プロジェクト名は、プロジェクトを識別する名前である。階層は、プロジェクトの階層である。他のプロジェクトに含まれないプロジェクトの階層は「1」である。階層が「1」のプロジェクトに含まれ、他のプロジェクトに含まれないプロジェクトの階層は「2」である。一般に、階層がnのプロジェクトは、階層が「1」、階層が「2」、・・・、階層が「n-1」のプロジェクトに含まれる。
[0058]
 例えば、プロジェクト記憶部22は、「Project1」で識別されるプロジェクトについて、「2」で識別されるグループの情報と階層が「1」であることを記憶する。
[0059]
 表示部23は、プロジェクト記憶部22とグループグラフ記憶部18を参照し、リネージュ対象のデータフローについて、最上位階層のプロジェクトを含むデータフローを圧縮データフロー1として表示する。ここで、最上位階層のプロジェクトとは、階層が「1」のプロジェクトである。
[0060]
 また、表示部23は、プロセスアイコンにはアルゴリズム名を添えて表示する。また、表示部23は、まとめられたプロセスのアルゴリズム名をプロジェクトアイコンに添えて表示する。
[0061]
 そして、表示部23は、プロジェクトアイコンに合わせられたマウスカーソルを検出すると、プロジェクトにまとめられたプロセス又は次の下の階層のプロジェクトを含む部分データフローを表示する。また、表示部23は、部分データフローに含まれるプロジェクトアイコンに合わせられたマウスカーソルを検出すると、プロジェクトにまとめられたプロセス又は次の下の階層のプロジェクトを含む部分データフローを表示する。一般に、表示部23は、階層が「n」のプロジェクトのアイコンにマウスカーソルが合わせられると、階層が「n」のプロジェクトにまとめられた階層が「n+1」のプロジェクトを含む部分データフローを表示する。
[0062]
 次に、情報処理装置10による処理のフローについて説明する。図10は、情報処理装置10による処理のフローを示すフローチャートである。図10において、ステップS1~ステップS6は、グループの圧縮価値を算出する処理であり、ステップS7~ステップS14は、圧縮価値に基づいてリネージュ対象のデータフローを表示する処理である。
[0063]
 図10に示すように、情報処理装置10は、2つのデータフローの連続する部分をグルーピングする(ステップS1)。ここで、グループには、2つ以上のプロセスと2つ以上のプロセスの先頭のプロセスの入力データから最後のプロセスの出力データまでのデータとが含まれる。
[0064]
 そして、情報処理装置10は、2つのグループに含まれる全プロセスについて、入力データと出力データの統計的な差異を特定する(ステップS2)。そして、情報処理装置10は、2つのグループに含まれる全プロセスについて、差異を生み出しうるアルゴリズムの中から、該当するアルゴリズムを探してアルゴリズム名を特定する(ステップS3)。
[0065]
 そして、情報処理装置10は、2つのグループの対応する統計的な差異及びアルゴリズムが一致していれば、グループの類似度を+1する(ステップS4)。なお、対応する統計的な差異及びアルゴリズムが一致すれば、アルゴリズムの数も一致する。そして、情報処理装置10は、全てのデータフローと全てのグルーピングの組み合わせで類似度を求めたか否かを判定し(ステップS5)、類似度を求めていない組み合せがある場合には、ステップS1に戻る。
[0066]
 一方、全てのデータフローと全てのグルーピングの組み合わせで類似度を求めた場合には、情報処理装置10は、類似度にアルゴリズム数に関係する係数を掛けて圧縮価値を求める(ステップS6)。圧縮価値は圧縮価値記憶部15に記憶され、リネージュ対象のデータフローを表示する場合に利用される。
[0067]
 リネージュ対象のデータフローを表示する処理では、情報処理装置10は、リネージュ対象のデータフローの連続する部分をグルーピングする(ステップS7)。そして、グループに含まれるプロセスについて、情報処理装置10は、入力データと出力データの統計的な差異を求め、差異を生み出すアルゴリズムの名前を特定する(ステップS8)。
[0068]
 そして、情報処理装置10は、統計的な差異とアルゴリズムに基づいて、圧縮価値記憶部15から、グループの圧縮価値を取得し(ステップS9)、全てのグループで圧縮価値を取得したか否かを判定する(ステップS10)。そして、圧縮価値を取得していないグループがある場合には、情報処理装置10は、ステップS7に戻る。
[0069]
 一方、全てのグループで圧縮価値を取得した場合には、情報処理装置10は、圧縮価値が大きい順にグループをプロジェクトとして階層的にまとめ上げる(ステップS11)。そして、情報処理装置10は、リネージュ対象のデータフローについて、最上位階層のプロジェクトを含む圧縮データフロー1を表示する(ステップS12)。そして、情報処理装置10は、プロジェクトアイコンに合わせられたマウスカーソルを検出すると、プロジェクトの中身の詳細な部分データフローを表示する(ステップS13)。
[0070]
 そして、情報処理装置10は、終了か否かを判定し(ステップS14)、終了でない場合には、ステップS13に戻り、終了と判定した場合には、表示処理を終了する。
[0071]
 このように、情報処理装置10は、圧縮価値に基づいてプロジェクトを作成し、プロジェクトにまとめられた部分データフローを階層的に表示するので、データフローの段階的な把握を支援することができる。
[0072]
 上述してきたように、実施例では、圧縮価値をグループ毎に管理する圧縮価値情報を圧縮価値記憶部15が記憶する。そして、グループ抽出部12がリネージュ対象のデータフローからグループを抽出し、圧縮価値取得部19がリネージュ対象のグループの圧縮価値を圧縮価値記憶部15から取得する。そして、プロジェクト作成部21がリネージュ対象のデータフローから圧縮価値が0より大きいグループを大きい順にプロジェクトにまとめてデータフローを圧縮し、表示部23が、圧縮されたデータフローを表示する。したがって、情報処理装置10は、データフローの全体像の把握を容易にすることができる。
[0073]
 また、実施例では、表示部23は、プロジェクトアイコンにマウスカーソルが合わされたことを検出すると、プロジェクトにまとめられる前のグループの部分データフローを階層的に表示する。したがって、情報処理装置10は、データフローの一部の詳細の把握を容易にすることができる。
[0074]
 また、実施例では、グループ抽出部12が複数のデータフローからグループを抽出し、圧縮価値計算部14が他のグループとの類似度とグループに含まれるプロセスの数に基づいて、グループ毎に圧縮価値を計算して圧縮価値記憶部15に格納する。したがって、情報処理装置10は、出現頻度が高くプロセス数の多い部分データフローを圧縮することができ、適切な圧縮を行うことができる。
[0075]
 また、実施例では、圧縮価値計算部14は、プロセスの入力データと出力データの統計的な差異、及び、統計的な差異を生み出したアルゴリズムに基づいて、類似度を計算するので、グループ間の類似度を適切に計算することができる。
[0076]
 なお、実施例では、情報処理装置10について説明したが、情報処理装置10が有する構成をソフトウェアによって実現することで、同様の機能を有するリネージュプログラムを得ることができる。そこで、リネージュプログラムを実行するコンピュータについて説明する。
[0077]
 図11は、実施例に係るリネージュプログラムを実行するコンピュータのハードウェア構成を示す図である。図11に示すように、コンピュータ50は、メインメモリ51と、CPU(Central Processing Unit)52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
[0078]
 メインメモリ51は、プログラムやプログラムの実行途中結果等を記憶するメモリである。CPU52は、メインメモリ51からプログラムを読み出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
[0079]
 LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボード等の入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVD、CD-Rの読み書きを行う装置である。
[0080]
 LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
[0081]
 そして、コンピュータ50において実行されるリネージュプログラムは、コンピュータ50により読み出し可能な記録媒体の一例であるCD-Rに記憶され、ODD57によってCD-Rから読み出されてコンピュータ50にインストールされる。あるいは、リネージュプログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてコンピュータ50にインストールされる。そして、インストールされたリネージュプログラムは、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
[0082]
 また、実施例では、プロセスが処理を行う場合について説明したが、データフローに含まれる処理はタスク、モジュール等の他の処理でもよい。

符号の説明

[0083]
  1  圧縮データフロー
 10  情報処理装置
 11  データフロー記憶部
 12  グループ抽出部
 13  グループ記憶部
 14  圧縮価値計算部
 15  圧縮価値記憶部
 16  リネージュ記憶部
 17  リネージュグループ記憶部
 18  グループグラフ記憶部
 19  圧縮価値取得部
 20  取得結果記憶部
 21  プロジェクト作成部
 22  プロジェクト記憶部
 23  表示部
 50  コンピュータ
 51  メインメモリ
 52  CPU
 53  LANインタフェース
 54  HDD
 55  スーパーIO
 56  DVI
 57  ODD

請求の範囲

[請求項1]
 データフローにおいて複数の処理と該複数の処理の先頭処理の入力データから最終処理の出力データまでのデータとを含む部分データフローをグループとして、グループに含まれる複数の処理を1つのまとめ処理に圧縮する価値を示す圧縮価値をグループ毎に管理する圧縮価値情報を記憶する圧縮価値記憶部と、
 前記圧縮価値記憶部に記憶された圧縮価値情報に基づいて、リネージュ対象のデータフローにおいて圧縮価値が所定値より大きいグループの複数の処理を1つのまとめ処理にまとめる圧縮部と、
 前記圧縮部により複数の処理が1つのまとめ処理にまとめられた圧縮データフローを表示する表示部と
 を有することを特徴とする情報処理装置。
[請求項2]
 前記表示部は、表示した圧縮データフローに含まれるまとめ処理の選択を受け付け、受け付けたまとめ処理について、前記圧縮部によりまとめられる前の処理又はまとめ処理を複数含む部分データフローを階層的に表示することを特徴とする請求項1に記載の情報処理装置。
[請求項3]
 複数のデータフローからグループを抽出してグループ毎に他のグループとの類似度を計算し、該類似度とグループに含まれる処理の数に基づいて前記圧縮価値を計算して前記圧縮価値記憶部に格納する圧縮価値計算部をさらに有することを特徴とする請求項1又は2に記載の情報処理装置。
[請求項4]
 前記圧縮価値計算部は、処理の入力データと出力データの統計的な差異、及び、該統計的な差異を生み出したアルゴリズムに基づいて、前記類似度を計算することを特徴とする請求項3に記載の情報処理装置。
[請求項5]
 前記圧縮価値計算部は、前記統計的な差異が特定できない処理を含むグループの圧縮価値を0とし、
 前記圧縮部は、リネージュ対象のデータフローから圧縮価値が0より大きいグループの複数の処理を1つのまとめ処理にまとめることを特徴とする請求項4に記載の情報処理装置。
[請求項6]
 前記統計的な差異には、行数の減少、行数の増加、値の数の増加、値の数の減少、値の範囲の減少、値の範囲の増加、値の種類の減少、値の種類の増加が含まれ、前記アルゴリズムには、削除、補間、正規化、名寄せが含まれることを特徴とする請求項4に記載の情報処理装置。
[請求項7]
 コンピュータに、
 データフローにおいて複数の処理と該複数の処理の先頭処理の入力データから最終処理の出力データまでのデータとを含む部分データフローをグループとして、グループに含まれる複数の処理を1つのまとめ処理に圧縮する価値を示す圧縮価値をグループ毎に管理する圧縮価値情報を圧縮価値記憶部に記憶し、
 前記圧縮価値記憶部に記憶された圧縮価値情報に基づいて、リネージュ対象のデータフローにおいて圧縮価値が所定値より大きいグループの複数の処理を1つのまとめ処理にまとめ、
 リネージュ対象のデータフローにおいて圧縮価値が所定値より大きいグループの複数の処理が1つのまとめ処理にまとめられた圧縮データフローを表示する
 処理を実行させることを特徴とするリネージュプログラム。
[請求項8]
 前記表示する処理は、表示した圧縮データフローに含まれるまとめ処理の選択を受け付け、受け付けたまとめ処理について、まとめられる前の処理又はまとめ処理を複数含む部分データフローを階層的に表示することを特徴とする請求項7に記載のリネージュプログラム。
[請求項9]
 前記コンピュータに、
 複数のデータフローからグループを抽出してグループ毎に他のグループとの類似度を計算し、該類似度とグループに含まれる処理の数に基づいて前記圧縮価値を計算して前記圧縮価値記憶部に格納する処理をさらに実行させることを特徴とする請求項7又は8に記載のリネージュプログラム。
[請求項10]
 前記圧縮価値を計算する処理は、処理の入力データと出力データの統計的な差異、及び、該統計的な差異を生み出したアルゴリズムに基づいて、前記類似度を計算することを特徴とする請求項9に記載のリネージュプログラム。

図面

[ 図 1A]

[ 図 1B]

[ 図 1C]

[ 図 1D]

[ 図 1E]

[ 図 1F]

[ 図 1G]

[ 図 1H]

[ 図 1I]

[ 図 1J]

[ 図 1K]

[ 図 1L]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]

[ 図 10]

[ 図 11]

[ 図 12]

[ 図 13]