(57)【要約】  複数のデータフローから抽出されたグループ毎に圧縮価値記憶部が圧縮価値を記憶する。そして、グループ抽出部がリネージュ対象のデータフローからグループを抽出し、圧縮価値取得部がリネージュ対象のグループの圧縮価値を圧縮価値記憶部から取得する。そして、プロジェクト作成部がリネージュ対象のデータフローから圧縮価値が所定値より大きいグループを大きい順にプロジェクトにまとめてデータフローを圧縮し、表示部が、圧縮されたデータフローを表示する。
2020110239.tif 000002
【特許請求の範囲】
【請求項１】
データフローにおいて複数の処理と該複数の処理の先頭処理の入力データから最終処理の出力データまでのデータとを含む部分データフローをグループとして、グループに含まれる複数の処理を１つのまとめ処理に圧縮する価値を示す圧縮価値をグループ毎に管理する圧縮価値情報を記憶する圧縮価値記憶部と、
前記圧縮価値記憶部に記憶された圧縮価値情報に基づいて、リネージュ対象のデータフローにおいて圧縮価値が所定値より大きいグループの複数の処理を１つのまとめ処理にまとめる圧縮部と、
前記圧縮部により複数の処理が１つのまとめ処理にまとめられた圧縮データフローを表示する表示部と
を有することを特徴とする情報処理装置。
【請求項２】
前記表示部は、表示した圧縮データフローに含まれるまとめ処理の選択を受け付け、受け付けたまとめ処理について、前記圧縮部によりまとめられる前の処理又はまとめ処理を複数含む部分データフローを階層的に表示することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
複数のデータフローからグループを抽出してグループ毎に他のグループとの類似度を計算し、該類似度とグループに含まれる処理の数に基づいて前記圧縮価値を計算して前記圧縮価値記憶部に格納する圧縮価値計算部をさらに有することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記圧縮価値計算部は、処理の入力データと出力データの統計的な差異、及び、該統計的な差異を生み出したアルゴリズムに基づいて、前記類似度を計算することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記圧縮価値計算部は、前記統計的な差異が特定できない処理を含むグループの圧縮価値を０とし、
前記圧縮部は、リネージュ対象のデータフローから圧縮価値が０より大きいグループの複数の処理を１つのまとめ処理にまとめることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記統計的な差異には、行数の減少、行数の増加、値の数の増加、値の数の減少、値の範囲の減少、値の範囲の増加、値の種類の減少、値の種類の増加が含まれ、前記アルゴリズムには、削除、補間、正規化、名寄せが含まれることを特徴とする請求項４に記載の情報処理装置。
【請求項７】
コンピュータに、
データフローにおいて複数の処理と該複数の処理の先頭処理の入力データから最終処理の出力データまでのデータとを含む部分データフローをグループとして、グループに含まれる複数の処理を１つのまとめ処理に圧縮する価値を示す圧縮価値をグループ毎に管理する圧縮価値情報を圧縮価値記憶部に記憶し、
前記圧縮価値記憶部に記憶された圧縮価値情報に基づいて、リネージュ対象のデータフローにおいて圧縮価値が所定値より大きいグループの複数の処理を１つのまとめ処理にまとめ、
リネージュ対象のデータフローにおいて圧縮価値が所定値より大きいグループの複数の処理が１つのまとめ処理にまとめられた圧縮データフローを表示する
処理を実行させることを特徴とするリネージュプログラム。
【請求項８】
前記表示する処理は、表示した圧縮データフローに含まれるまとめ処理の選択を受け付け、受け付けたまとめ処理について、まとめられる前の処理又はまとめ処理を複数含む部分データフローを階層的に表示することを特徴とする請求項７に記載のリネージュプログラム。
【請求項９】
前記コンピュータに、
複数のデータフローからグループを抽出してグループ毎に他のグループとの類似度を計算し、該類似度とグループに含まれる処理の数に基づいて前記圧縮価値を計算して前記圧縮価値記憶部に格納する処理をさらに実行させることを特徴とする請求項７又は８に記載のリネージュプログラム。
【請求項１０】
前記圧縮価値を計算する処理は、処理の入力データと出力データの統計的な差異、及び、該統計的な差異を生み出したアルゴリズムに基づいて、前記類似度を計算することを特徴とする請求項９に記載のリネージュプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びリネージュプログラムに関する。
【背景技術】
【０００２】
近年、データの信頼性を判断するため、あるいは、データの使用先を把握するために、データの来歴と影響範囲をグラフ表示するリネージュ機能が使われている。図１２は、リネージュ機能により表示されるデータフローの一例を示す図である。図１２では、データはｃｓｖ（comma-separated  values）ファイルであり、「品切れ．ｃｓｖ」が対象として選択されている。楕円のアイコンはプロセス（処理）を表す。カードのアイコンはデータを表す。「Ｐｙｔｈｏｎ」は、プログラミング言語であり、楕円の中の「Ｐｙｔｈｏｎ」は、プロセスが「Ｐｙｔｈｏｎ」で作成されていることを示す。【０００３】
「品切れ．ｃｓｖ」より左が「品切れ．ｃｓｖ」の来歴を示し、「品切れ．ｃｓｖ」より右が「品切れ．ｃｓｖ」の影響範囲を示す。すなわち、「売り上げ．ｃｓｖ」と「商品マスター．ｃｓｖ」から２つのプロセスにより「中間．ｃｓｖ」が作成され、「中間．ｃｓｖ」と「在庫．ｃｓｖ」から１つのプロセスにより「品切れ．ｃｓｖ」が作成される。また、「品切れ．ｃｓｖ」から２つのプロセスにより「需要予測．ｃｓｖ」が作成される。【０００４】
なお、有向グラフに関する従来技術として、有向グラフに含まれるノードについて関心の指定を受け取って、関心のないノードを要約する計算を行う技術がある。また、メタデータオブジェクトを特徴づける要約データを計算し、メタデータオブジェクトをノードで表しノード間の関係を線で表す視覚的表現において、要約データをノードの近傍に重ねる技術がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１７−５３０４４０号公報
【特許文献２】特表２０１２−５１０６８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
リネージュ機能で表示されるデータフローには、データとプロセスの数が多くなると全体像の把握が困難になるという問題がある。図１３は、全体像の把握が困難なデータフローの一例を示す図である。図１３では、対象として選択されたｃｓｖファイルの来歴に含まれるプロセス及びｃｓｖファイルの数が、全体像の把握が困難なほど多い。【０００７】
本発明は、１つの側面では、データフローの全体像の把握を容易にすることを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、情報処理装置は、圧縮価値記憶部と圧縮部と表示部とを有する。前記圧縮価値記憶部は、グループに含まれる複数の処理を１つのまとめ処理に圧縮する価値を示す圧縮価値をグループ毎に管理する圧縮価値情報を記憶する。ここで、グループは、データフローにおいて複数の処理と該複数の処理の先頭処理の入力データから最終処理の出力データまでのデータとを含む部分データフローである。前記圧縮部は、前記圧縮価値記憶部に記憶された圧縮価値情報に基づいて、リネージュ対象のデータフローにおいて圧縮価値が所定値より大きいグループの複数の処理を１つのまとめ処理にまとめる。前記表示部は、前記圧縮部により複数の処理が１つのまとめ処理にまとめられた圧縮データフローを表示する。
【発明の効果】
【０００９】
本発明は、１つの側面では、データフローの全体像の把握を容易にすることができる。
【図面の簡単な説明】
【００１０】
【図１Ａ】図１Ａは、圧縮価値の計算に用いられる複数のデータフローを示す図である。
【図１Ｂ】図１Ｂは、データフローから抽出されたグループの例を示す図である。
【図１Ｃ】図１Ｃは、異なるグループとして判定される例を示す図である。
【図１Ｄ】図１Ｄは、異なるグループとして判定される他の例を示す図である。
【図１Ｅ】図１Ｅは、リネージュ対象のデータフローのグループの例を示す第１の図である。
【図１Ｆ】図１Ｆは、リネージュ対象のデータフローのグループの例を示す第２の図である。
【図１Ｇ】図１Ｇは、リネージュ対象のデータフローのグループの例を示す第３の図である。
【図１Ｈ】図１Ｈは、リネージュ対象のデータフローのグループの例を示す第４の図である。
【図１Ｉ】図１Ｉは、複数のプロセスを１つのプロジェクトにまとめる例を示す第１の図である。
【図１Ｊ】図１Ｊは、複数のプロセスを１つのプロジェクトにまとめる例を示す第２の図である。
【図１Ｋ】図１Ｋは、複数のプロセスを１つのプロジェクトにまとめる例を示す第３の図である。
【図１Ｌ】図１Ｌは、図１Ｅに示したデータフローの圧縮データフローを示す図である。
【図２】図２は、実施例に係る情報処理装置の機能構成を示す図である。
【図３】図３は、データフロー記憶部の一例を示す図である。
【図４】図４は、グループ記憶部の一例を示す図である。
【図５】図５は、圧縮価値記憶部の一例を示す図である。
【図６】図６は、リネージュ記憶部の一例を示す図である。
【図７】図７は、グループグラフ記憶部の一例を示す図である。
【図８】図８は、取得結果記憶部の一例を示す図である。
【図９】図９は、プロジェクト記憶部の一例を示す図である。
【図１０】図１０は、情報処理装置による処理のフローを示すフローチャートである。
【図１１】図１１は、実施例に係るリネージュプログラムを実行するコンピュータのハードウェア構成を示す図である。
【図１２】図１２は、リネージュ機能により表示されるデータフローの一例を示す図である。
【図１３】図１３は、全体像の把握が困難なデータフローの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する情報処理装置及びリネージュプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１２】
まず、実施例に係る情報処理装置がリネージュ機能により表示するデータフローを図１Ａ〜図１Ｌを用いて説明する。実施例に係る情報処理装置は、図１Ａ〜図１Ｄに示すように、複数のデータフローを用いて、複数のプロセスを含む部分データフローの圧縮価値を計算して、圧縮価値記憶部に記憶する。ここで、圧縮価値とは、部分データフローの複数のプロセスをまとめて１つに圧縮する価値を示す値である。なお、圧縮価値の詳細については後述する。そして、実施例に係る情報処理装置は、図１Ｅ〜図１Ｌに示すように、リネージュ対象のデータフローを圧縮価値に基づいて圧縮して、圧縮データフローを表示する。【００１３】
図１Ａは、圧縮価値の計算に用いられる複数のデータフローを示す図である。ここでは、データフローＡ〜データフローＤで表される４つのデータフローが圧縮価値の計算に用いられる。実施例に係る情報処理装置は、データフローＡにおいて、「Ｄａｔａ２．ｃｓｖ」と「Ｄａｔａ１．ｃｓｖ」の統計的な差異として「行数の減少」を特定する。また、実施例に係る情報処理装置は、データフローＡにおいて、「Ｄａｔａ３．ｃｓｖ」と「Ｄａｔａ２．ｃｓｖ」の統計的な差異として「値の数の増加」を特定する。統計的な差異としては、他に「行数の増加」、「値の数の減少」、「値の範囲の減少」、「値の範囲の増加」、「値の種類の減少」、「値の種類の増加」等がある。実施例に係る情報処理装置は、これらの統計的な差異を、入力データと出力データを比較することで特定する。【００１４】
そして、実施例に係る情報処理装置は、「Ｄａｔａ２．ｃｓｖ」と「Ｄａｔａ１．ｃｓｖ」の統計的な差異「行数の減少」を生み出すプロセス「Ｐｙｔｈｏｎ１」のアルゴリズムとして「削除」を特定する。特定されたアルゴリズムは、プロセスの下に表示される。統計的な差異「行数の減少」を生み出すプロセスのアルゴリズムとしては、「削除」の他に「外れ値除外」がある。「削除」であるか「外れ値除外」であるかは、入力データと出力データを比較することで特定される。また、実施例に係る情報処理装置は、「Ｄａｔａ３．ｃｓｖ」と「Ｄａｔａ２．ｃｓｖ」の統計的な差異「値の数の増加」を生み出すプロセス「Ｐｙｔｈｏｎ２」のアルゴリズムとして「補間」を特定する。【００１５】
同様に、実施例に係る情報処理装置は、「Ｄａｔａ４．ｃｓｖ」と「Ｄａｔａ３．ｃｓｖ」の統計的な差異を生み出すプロセス「Ｐｙｔｈｏｎ３」のアルゴリズムとして「正規化」を特定する。また、実施例に係る情報処理装置は、「Ｄａｔａ５．ｃｓｖ」と「Ｄａｔａ４．ｃｓｖ」の統計的な差異を生み出すプロセス「Ｐｙｔｈｏｎ４」のアルゴリズムとして「重回帰分析」を特定する。【００１６】
ただし、「重回帰分析」については、入力データと出力データを比較することで特定されるのではなく、データフロー作成時に部品として用意されたプロセスに付加されたアルゴリズムとして特定される。このように、実施例に係る情報処理装置は、入力データと出力データの差異を生み出すプロセスのアルゴリズムを、入力データと出力データを比較することで特定する以外に、部品として用意されたプロセスに付加されたアルゴリズムを用いて特定する。【００１７】
また、実施例に係る情報処理装置は、データフローＢにおいて、アルゴロズムとして「名寄せ」を特定する。また、実施例に係る情報処理装置は、データフローＣにおいて、「独自アルゴリズム」を特定する。ここで、「独自アルゴリズム」は、入力データと出力データを比較することで特定されず、部品として用意されたプロセスでない場合に、プロセスに付加されるアルゴリズムである。【００１８】
実施例に係る情報処理装置は、２つ以上のプロセスと２つ以上のプロセスの先頭のプロセスの入力データから最後のプロセスの出力データまでのデータとを含む部分データフローをグループとして全てのデータフローから全て抽出する。そして、実施例に係る情報処理装置は、異なるデータフローに含まれる２つのグループについて、統計的な差異とアルゴリズムを特定し、対応する統計的な差異と、対応するアルゴリズムが一致するか否かを判定する。そして、対応する統計的な差異と、対応するアルゴリズムが一致する場合に、実施例に係る情報処理装置は、２つのグループは同一であると判定し、グループの類似度に１を加える。また、実施例に係る情報処理装置は、２つのグループが同一であるか否かの判定をグループの全ての組み合わせについて行う。【００１９】
例えば、実施例に係る情報処理装置は、図１Ｂに示すように、データフローＡから、「Ｄａｔａ１．ｃｓｖ→Ｐｙｔｈｏｎ１→Ｄａｔａ２．ｃｓｖ→Ｐｙｔｈｏｎ２→Ｄａｔａ３．ｃｓｖ」をグループＡ１として抽出する。ここで、「グループＡ１」は、グループを識別するグループ番号が「Ａ１」であるグループである。また、実施例に係る情報処理装置は、データフローＢから、「Ｄａｔａ１．ｃｓｖ→Ｐｙｔｈｏｎ１→Ｄａｔａ２．ｃｓｖ→Ｐｙｔｈｏｎ２→Ｄａｔａ３．ｃｓｖ」をグループＢ１として抽出する。【００２０】
そして、実施例に係る情報処理装置は、グループＡ１において、「Ｄａｔａ２．ｃｓｖ」と「Ｄａｔａ１．ｃｓｖ」の統計的な差異として「行数の減少」を特定する。また、実施例に係る情報処理装置は、グループＡ１において、「Ｄａｔａ３．ｃｓｖ」と「Ｄａｔａ２．ｃｓｖ」の統計的な差異として「値の数の増加」を特定する。また、実施例に係る情報処理装置は、統計的な差異「行数の減少」を生み出すアルゴリズムとして「削除」を特定し、統計的な差異「値の数の増加」を生み出すアルゴリズムとして「補間」を特定する。【００２１】
同様に、実施例に係る情報処理装置は、グループＢ１において、「Ｄａｔａ２．ｃｓｖ」と「Ｄａｔａ１．ｃｓｖ」の統計的な差異として「行数の減少」を特定する。また、実施例に係る情報処理装置は、グループＢ１において、「Ｄａｔａ３．ｃｓｖ」と「Ｄａｔａ２．ｃｓｖ」の統計的な差異として「値の数の増加」を特定する。また、実施例に係る情報処理装置は、統計的な差異「行数の減少」を生み出すアルゴリズムとして「削除」を特定し、統計的な差異「値の数の増加」を生み出すアルゴリズムとして「補間」を特定する。【００２２】
グループＡ１とグループＢ１では、対応する統計的な差異が「行数の減少」と「値の数の増加」で同じであり、対応するアルゴリズムも「削除」と「補間」で同じである。したがって、実施例に係る情報処理装置は、アルゴリズムが「削除→補間」であり、統計的な差異が「行数の減少→値の数の増加」で表されるグループの類似度に１を加える。【００２３】
図１Ｃは、異なるグループとして判定される例を示す図である。図１Ｃにおいて、グループＡ１とグループＢ２はアルゴリズムの数が異なるので、異なるグループと判定される。図１Ｄは、異なるグループとして判定される他の例を示す図である。図１Ｄにおいて、データフローＣから抽出されたグループＣ６とデータフローＤから抽出されたグループＤ３は、少なくともアルゴリズムが異なるので、異なるグループと判定される。【００２４】
図１Ｂに示したグループＡ１を「削除」→「補間」で表すと、データフローＡからは、「削除」を先頭のアルゴリズムとするグループとして、「削除」→「補間」→「正規化」、「削除」→「補間」→「正規化」→「重回帰分析」が抽出される。また、「補間」を先頭のアルゴリズムとするグループとして、「補間」→「正規化」、「補間」→「正規化」→「重回帰分析」が抽出される。また、「正規化」を先頭のアルゴリズムとするグループとして、「正規化」→「重回帰分析」が抽出される。したがって、データフローＡからは、６個のグループが抽出される。同様に、データフローＢからは、「削除」→「補間」のグループＢ１等の１５個のグループが抽出される。【００２５】
実施例に係る情報処理装置は、グループの組み合わせの全てについて、２９７回判定を行い、グループ「削除→補間」の類似度を５とする。また、実施例に係る情報処理装置は、グループ「正常化→重回帰分析」の類似度を１、グループ「削除→補間→名寄せ」の類似度を１、グループ「補間→名寄せ」の類似度を１、その他のグループの類似度を０とする。【００２６】
そして、実施例に係る情報処理装置は、圧縮価値を類似度とアルゴリズムの数に基づいてグループ毎に計算する。例えば、実施例に係る情報処理装置は、圧縮価値＝類似度×係数＾５、により計算する。ここで、係数はアルゴリズム数に基づく値であり、例えば、アルゴリズム数である。「＾」はベキ乗を示す。【００２７】
類似度が大きいことはグループの出現頻度が高いことを示し、グループの圧縮価値は大きい。また、アルゴリズム数が多いグループは圧縮率が大きいので、グループの圧縮価値は大きい。【００２８】
実施例に係る情報処理装置は、例えば、グループ「削除→補間」の圧縮価値を５×２＾５＝１６０、グループ「正常化→重回帰分析」の圧縮価値を１×２＾５＝３２、グループ「削除→補間→名寄せ」の圧縮価値を１×３＾５＝２４３とする。同様に、実施例に係る情報処理装置は、例えば、グループ「補間→名寄せ」の類似度を１×２＾５＝３２とし、その他のグループの圧縮価値を０とする。【００２９】
そして、実施例に係る情報処理装置は、計算した圧縮価値をグループに対応付けて圧縮価値記憶部に記憶する。なお、ここでは、４つのデータフローから圧縮価値を計算したが、実施例に係る情報処理装置は、より多くのデータフローからグループの圧縮価値を計算し、様々な部分データフローの圧縮価値を記憶する。【００３０】
そして、実施例に係る情報処理装置は、リネージュ対象のデータフローから全てのグループを抽出し、各グループの統計的な差異とアルゴリズムを特定する。そして、実施例に係る情報処理装置は、各グループの圧縮価値を圧縮価値記憶部を参照して取得する。【００３１】
図１Ｅ〜図１Ｈは、リネージュ対象のデータフローのグループの例を示す図である。図１Ｅの例では、実施例に係る情報処理装置は、「Ｄａｔａ２．ｃｓｖ」と「Ｄａｔａ１．ｃｓｖ」の統計的な差異として「行数の減少」を特定し、「Ｄａｔａ３．ｃｓｖ」と「Ｄａｔａ２．ｃｓｖ」の統計的な差異として「値の数の増加」を特定する。そして、実施例に係る情報処理装置は、統計的な差異「行数の減少」を生み出すアルゴリズムとして「削除」を特定し、統計的な差異「値の数の増加」を生み出すアルゴリズムとして「補間」を特定する。そして、実施例に係る情報処理装置は、グループ「削除→補間」の圧縮価値として１６０を取得する。【００３２】
また、図１Ｆの例では、実施例に係る情報処理装置は、「Ｄａｔａ４．ｃｓｖ」と「Ｄａｔａ３．ｃｓｖ」の統計的な差異として「値の種類の減少」を特定する。そして、実施例に係る情報処理装置は、統計的な差異「値の種類の減少」を生み出すアルゴリズムとして「名寄せ」を特定する。そして、実施例に係る情報処理装置は、グループ「削除→補間→名寄せ」の圧縮価値として２４３を取得する。【００３３】
また、図１Ｇの例では、実施例に係る情報処理装置は、「Ｄａｔａ７．ｃｓｖ」と「Ｄａｔａ４．ｃｓｖ」及び「Ｄａｔａ６．ｃｓｖ」との統計的な差異として「値の範囲の変更」を特定する。また、実施例に係る情報処理装置は、「Ｄａｔａ６．ｃｓｖ」と「Ｄａｔａ５．ｃｓｖ」の統計的な差異として「独自」を特定する。そして、実施例に係る情報処理装置は、統計的な差異「値の範囲の変更」を生み出すアルゴリズムとして「正規化」を特定し、統計的な差異「独自」を生み出すアルゴリズムとして「独自アルゴリズム」を特定する。そして、実施例に係る情報処理装置は、グループに「独自アルゴリズム」が含まれているので、圧縮価値を０とする。【００３４】
また、図１Ｈの例では、実施例に係る情報処理装置は、「Ｄａｔａ８．ｃｓｖ」と「Ｄａｔａ７．ｃｓｖ」の統計的な差異として「流用部品（重回帰分析）」を特定する。そして、実施例に係る情報処理装置は、統計的な差異「流用部品（重回帰分析）」を生み出すアルゴリズムとして「重回帰分析」を特定する。そして、実施例に係る情報処理装置は、グループ「正規化→重回帰分析」について圧縮価値として３２を取得する。【００３５】
そして、実施例に係る情報処理装置は、圧縮価値が大きいグループから順番に複数のプロセスを１つのまとめプロセスとしてのプロジェクトにまとめる。そして、実施例に係る情報処理装置は、グループに含まれる先頭のプロセスの入力データをプロジェクトの入力データとし、最後のプロセスの出力データをプロジェクトの出力データとする。図１Ｉ〜図１Ｋは、複数のプロセスを１つのプロジェクトにまとめる例を示す図である。【００３６】
図１Ｉでは、圧縮価値が２４３で最大のグループ「削除→補間→名寄せ」が「Ｐｒｏｊｅｃｔ１」にまとめられる。また、先頭の「削除」の入力データ「Ｄａｔａ１．ｃｓｖ」が「Ｐｒｏｊｅｃｔ１」の入力データとされ、最後の「名寄せ」の出力データ「Ｄａｔａ４．ｃｓｖ」が「Ｐｒｏｊｅｃｔ１」の出力データとされる。なお、図１Ｉにおいて、「グループＮｏ．２」は、圧縮価値記憶部においてグループ「削除→補間→名寄せ」を識別する番号が「２」であることを示す。【００３７】
図１Ｊでは、次に圧縮価値（１６０）が大きいグループ「削除→補間」が「Ｐｒｏｊｅｃｔ２」にまとめられる。また、先頭の「削除」の入力データ「Ｄａｔａ１．ｃｓｖ」が「Ｐｒｏｊｅｃｔ２」の入力データとされ、最後の「補間」の出力データ「Ｄａｔａ３．ｃｓｖ」が「Ｐｒｏｊｅｃｔ２」の出力データとされる。【００３８】
図１Ｋでは、次に圧縮価値（３２）が大きいグループ「正規化→重回帰分析」が「Ｐｒｏｊｅｃｔ３」にまとめられる。また、先頭の「正常化」の入力データ「Ｄａｔａ４．ｃｓｖ」と「Ｄａｔａ６．ｃｓｖ」が「Ｐｒｏｊｅｃｔ３」の入力データとされ、最後の「重回帰分析」の出力データ「Ｄａｔａ８．ｃｓｖ」が「Ｐｒｏｊｅｃｔ３」の出力データとされる。【００３９】
そして、実施例に係る情報処理装置は、リネージュ対象のデータフローをプロジェクトに置き換えられた圧縮データフローとして表示する。図１Ｌは、図１Ｅに示したデータフローの圧縮データフローを示す図である。図１Ｌに示すように、まとめられた処理のアルゴリズムは、プロジェクトの下にまとめて表示される。図１Ｅのデータフローと比較して、図１Ｌの圧縮データフロー１では、プロセス数及びデータ数が少なくなり、全体の把握が容易になっている。【００４０】
また、図１Ｌにおいて、ユーザによりプロジェクトがマウスで選択されると、実施例に係る情報処理装置は、プロジェクトにまとめられる前のプロセス又はプロジェクトを吹き出しで表示する。また、吹き出しの中のプロジェクトがマウスで選択されると、実施例に係る情報処理装置は、吹き出し中のプロジェクトにまとめられる前のプロセス又はプロジェクトを別の吹き出しで表示する。【００４１】
このように、プロジェクトにまとめられる前のプロセス又はプロジェクトを階層的に表示することで、実施例に係る情報処理装置は、データフローの全体から詳細への把握を支援することができる。【００４２】
次に、実施例に係る情報処理装置の機能構成について説明する。図２は、実施例に係る情報処理装置の機能構成を示す図である。図２に示すように、実施例に係る情報処理装置１０は、データフロー記憶部１１と、グループ抽出部１２と、グループ記憶部１３と、圧縮価値計算部１４と、圧縮価値記憶部１５とを有する。また、実施例に係る情報処理装置１０は、リネージュ記憶部１６と、リネージュグループ記憶部１７と、グループグラフ記憶部１８と、圧縮価値取得部１９と、取得結果記憶部２０と、プロジェクト作成部２１と、プロジェクト記憶部２２と、表示部２３とを有する。【００４３】
データフロー記憶部１１は、複数のデータフローのグラフ構造の情報を記憶する。情報処理装置１０は、例えば、ユーザがマウスを用いて行った指示を受け付けてファイルからデータフローのグラフ構造の情報を読み出してデータフロー記憶部１１に格納したり追加したりする。【００４４】
図３は、データフロー記憶部１１の一例を示す図である。図３に示すように、データフロー記憶部１１は、データフローを識別するデータフロー名とデータフローのグラフ構造の情報を対応付けて記憶する。データフロー記憶部１１は、例えば、データフローＡについて、「Ｄａｔａ１．ｃｓｖ→Ｐｙｔｈｏｎ１→Ｄａｔａ２．ｃｓｖ」、「Ｄａｔａ２．ｃｓｖ→Ｐｙｔｈｏｎ２→Ｄａｔａ３．ｃｓｖ」を記憶する。また、データフロー記憶部１１は、データフローＡについて、「Ｄａｔａ３．ｃｓｖ→Ｐｙｔｈｏｎ３→Ｄａｔａ４．ｃｓｖ」、「Ｄａｔａ４．ｃｓｖ→Ｐｙｔｈｏｎ４→Ｄａｔａ５．ｃｓｖ」を記憶する。【００４５】
グループ抽出部１２は、データフロー記憶部１１が記憶する情報を用いて全てのグループを抽出し、各グループについて、統計的な差異とアルゴリズムを特定して、グループ記憶部１３に格納する。【００４６】
グループ記憶部１３は、グループの情報を記憶する。図４は、グループ記憶部１３の一例を示す図である。図４に示すように、グループ記憶部１３は、グループを識別するグループＮｏ.に対応付けて、アルゴリズムを識別するアルゴリズム名と統計的な差異とを記憶する。例えば、グループ記憶部１３は、グループＡ１について、アルゴリズム名として「削除→補間」を記憶し、統計的な差異として「行数の減少→値の数の増加」を記憶する。【００４７】
圧縮価値計算部１４は、グループの類似度を計算し、類似度をアルゴリズムの数に基づいて、圧縮価値＝類似度×係数＾５を計算し、圧縮価値記憶部１５に格納する。【００４８】
圧縮価値記憶部１５は、圧縮価値をグループ毎に管理する圧縮価値情報を記憶する。図５は、圧縮価値記憶部１５の一例を示す図である。図５に示すように、圧縮価値記憶部１５は、アルゴリズム名と、統計的な差異と、アルゴリズム数と、類似度と、圧縮価値をグループ毎に記憶する。例えばアルゴリズム名が「削除→補間」であり、統計的な差異が「行数の減少→値の数の増加」であるグループのアルゴリズム数は「２」であり、類似度は「５」であり、圧縮価値は「１６０」である。【００４９】
リネージュ記憶部１６は、リネージュ対象のデータフローのグラフ構造の情報を記憶する。情報処理装置１０は、例えば、ユーザがマウスを用いて行った指示を受け付けてファイルからリネージュ対象のデータフローのグラフ構造の情報を読み出してリネージュ記憶部１６に格納する。【００５０】
図６は、リネージュ記憶部１６の一例を示す図である。図６に示すように、リネージュ記憶部１６は、リネージュ対象のデータフローのグラフ構造の要素を識別する番号であるＮｏ．と要素のグラフ構造とを対応付けて記憶する。ここで、要素は１つのプロセスとその入力データ及び出力データのグラフ構造である。例えば、識別する番号が「１」である要素のグラフ構造は「Ｄａｔａ１．ｃｓｖ→Ｐｙｔｈｏｎ１→Ｄａｔａ２．ｃｓｖ」である。【００５１】
グループ抽出部１２は、リネージュ記憶部１６が記憶する情報を用いてリネージュ対象のデータフローから全てのグループを抽出し、各グループについて、統計的な差異とアルゴリズムを特定して、リネージュグループ記憶部１７に格納する。リネージュグループ記憶部１７は、リネージュ対象のデータフローから抽出されたグループの情報を記憶する。また、グループ抽出部１２は、抽出したグループのグラフ構造を作成し、グループグラフ記憶部１８に格納する。【００５２】
グループグラフ記憶部１８は、リネージュ対象のデータフローのグループのグラフ構造の情報を記憶する。図７は、グループグラフ記憶部１８の一例を示す図である。図７に示すように、グループグラフ記憶部１８は、グループＮｏ．とグループのグラフ構造を対応付けて記憶する。例えば、識別する番号が「１」であるグループのグラフ構造は「Ｄａｔａ１．ｃｓｖ→Ｐｙｔｈｏｎ１→Ｄａｔａ２．ｃｓｖ」と「Ｄａｔａ２．ｃｓｖ→Ｐｙｔｈｏｎ２→Ｄａｔａ３．ｃｓｖ」である。【００５３】
圧縮価値取得部１９は、リネージュグループ記憶部１７が情報を記憶するグループについて、圧縮価値記憶部１５から圧縮価値を取得し、グループの情報とともに取得結果記憶部２０に格納する。圧縮価値取得部１９は、圧縮価値記憶部１５に圧縮価値が記憶されていないグループについては、圧縮価値を０として取得結果記憶部２０に格納する。【００５４】
取得結果記憶部２０は、リネージュグループ記憶部１７が記憶する情報に圧縮価値が付加された情報をグループ毎に記憶する。図８は、取得結果記憶部２０の一例を示す図である。図８に示すように、取得結果記憶部２０は、グループを識別するグループＮｏ．とアルゴリズム名と統計的な差異と圧縮価値をグループ毎に記憶する。例えば、取得結果記憶部２０は、「１」で識別されるグループについて、アルゴリズム名として「削除→補間」を記憶し、統計的な差異として「行数の減少→値の数の増加」を記憶し、圧縮価値として「１６０」を記憶する。【００５５】
プロジェクト作成部２１は、取得結果記憶部２０から圧縮価値が０でないグループを圧縮価値が大きい順に特定し、特定したグループの複数のプロセスを１つのプロジェクトにまとめて、プロジェクトの情報をプロジェクト記憶部２２に格納する。ここで、プロジェクトは、複数のプロセスがまとめられたプロセスである。プロジェクトの入力データは、まとめられた複数のプロセスの先頭のプロセスの入力データであり、プロジェクトの出力データは、まとめられた複数のプロセスの最後のプロセスの出力データである。なお、プロジェクト作成部２１は、圧縮価値が所定の値以上のグループをプロジェクトにまとめてもよい。【００５６】
プロジェクト記憶部２２は、プロジェクトの情報を記憶する。プロジェクトの情報には、プロジェクトにまとめられる前のグループの情報が含まれる。図９は、プロジェクト記憶部２２の一例を示す図である。図９に示すように、プロジェクト記憶部２２は、グループＮｏ．とアルゴリズム名と統計的な差異と圧縮価値とプロジェクト名と階層をプロジェクト毎に記憶する。【００５７】
グループＮｏ．とアルゴリズム名と統計的な差異と圧縮価値は、まとめられる前のグループの情報である。プロジェクト名は、プロジェクトを識別する名前である。階層は、プロジェクトの階層である。他のプロジェクトに含まれないプロジェクトの階層は「１」である。階層が「１」のプロジェクトに含まれ、他のプロジェクトに含まれないプロジェクトの階層は「２」である。一般に、階層がｎのプロジェクトは、階層が「１」、階層が「２」、・・・、階層が「ｎ−１」のプロジェクトに含まれる。【００５８】
例えば、プロジェクト記憶部２２は、「Ｐｒｏｊｅｃｔ１」で識別されるプロジェクトについて、「２」で識別されるグループの情報と階層が「１」であることを記憶する。【００５９】
表示部２３は、プロジェクト記憶部２２とグループグラフ記憶部１８を参照し、リネージュ対象のデータフローについて、最上位階層のプロジェクトを含むデータフローを圧縮データフロー１として表示する。ここで、最上位階層のプロジェクトとは、階層が「１」のプロジェクトである。【００６０】
また、表示部２３は、プロセスアイコンにはアルゴリズム名を添えて表示する。また、表示部２３は、まとめられたプロセスのアルゴリズム名をプロジェクトアイコンに添えて表示する。【００６１】
そして、表示部２３は、プロジェクトアイコンに合わせられたマウスカーソルを検出すると、プロジェクトにまとめられたプロセス又は次の下の階層のプロジェクトを含む部分データフローを表示する。また、表示部２３は、部分データフローに含まれるプロジェクトアイコンに合わせられたマウスカーソルを検出すると、プロジェクトにまとめられたプロセス又は次の下の階層のプロジェクトを含む部分データフローを表示する。一般に、表示部２３は、階層が「ｎ」のプロジェクトのアイコンにマウスカーソルが合わせられると、階層が「ｎ」のプロジェクトにまとめられた階層が「ｎ＋１」のプロジェクトを含む部分データフローを表示する。【００６２】
次に、情報処理装置１０による処理のフローについて説明する。図１０は、情報処理装置１０による処理のフローを示すフローチャートである。図１０において、ステップＳ１〜ステップＳ６は、グループの圧縮価値を算出する処理であり、ステップＳ７〜ステップＳ１４は、圧縮価値に基づいてリネージュ対象のデータフローを表示する処理である。【００６３】
図１０に示すように、情報処理装置１０は、２つのデータフローの連続する部分をグルーピングする（ステップＳ１）。ここで、グループには、２つ以上のプロセスと２つ以上のプロセスの先頭のプロセスの入力データから最後のプロセスの出力データまでのデータとが含まれる。【００６４】
そして、情報処理装置１０は、２つのグループに含まれる全プロセスについて、入力データと出力データの統計的な差異を特定する（ステップＳ２）。そして、情報処理装置１０は、２つのグループに含まれる全プロセスについて、差異を生み出しうるアルゴリズムの中から、該当するアルゴリズムを探してアルゴリズム名を特定する（ステップＳ３）。【００６５】
そして、情報処理装置１０は、２つのグループの対応する統計的な差異及びアルゴリズムが一致していれば、グループの類似度を＋１する（ステップＳ４）。なお、対応する統計的な差異及びアルゴリズムが一致すれば、アルゴリズムの数も一致する。そして、情報処理装置１０は、全てのデータフローと全てのグルーピングの組み合わせで類似度を求めたか否かを判定し（ステップＳ５）、類似度を求めていない組み合せがある場合には、ステップＳ１に戻る。【００６６】
一方、全てのデータフローと全てのグルーピングの組み合わせで類似度を求めた場合には、情報処理装置１０は、類似度にアルゴリズム数に関係する係数を掛けて圧縮価値を求める（ステップＳ６）。圧縮価値は圧縮価値記憶部１５に記憶され、リネージュ対象のデータフローを表示する場合に利用される。【００６７】
リネージュ対象のデータフローを表示する処理では、情報処理装置１０は、リネージュ対象のデータフローの連続する部分をグルーピングする（ステップＳ７）。そして、グループに含まれるプロセスについて、情報処理装置１０は、入力データと出力データの統計的な差異を求め、差異を生み出すアルゴリズムの名前を特定する（ステップＳ８）。【００６８】
そして、情報処理装置１０は、統計的な差異とアルゴリズムに基づいて、圧縮価値記憶部１５から、グループの圧縮価値を取得し（ステップＳ９）、全てのグループで圧縮価値を取得したか否かを判定する（ステップＳ１０）。そして、圧縮価値を取得していないグループがある場合には、情報処理装置１０は、ステップＳ７に戻る。【００６９】
一方、全てのグループで圧縮価値を取得した場合には、情報処理装置１０は、圧縮価値が大きい順にグループをプロジェクトとして階層的にまとめ上げる（ステップＳ１１）。そして、情報処理装置１０は、リネージュ対象のデータフローについて、最上位階層のプロジェクトを含む圧縮データフロー１を表示する（ステップＳ１２）。そして、情報処理装置１０は、プロジェクトアイコンに合わせられたマウスカーソルを検出すると、プロジェクトの中身の詳細な部分データフローを表示する（ステップＳ１３）。【００７０】
そして、情報処理装置１０は、終了か否かを判定し（ステップＳ１４）、終了でない場合には、ステップＳ１３に戻り、終了と判定した場合には、表示処理を終了する。【００７１】
このように、情報処理装置１０は、圧縮価値に基づいてプロジェクトを作成し、プロジェクトにまとめられた部分データフローを階層的に表示するので、データフローの段階的な把握を支援することができる。【００７２】
上述してきたように、実施例では、圧縮価値をグループ毎に管理する圧縮価値情報を圧縮価値記憶部１５が記憶する。そして、グループ抽出部１２がリネージュ対象のデータフローからグループを抽出し、圧縮価値取得部１９がリネージュ対象のグループの圧縮価値を圧縮価値記憶部１５から取得する。そして、プロジェクト作成部２１がリネージュ対象のデータフローから圧縮価値が０より大きいグループを大きい順にプロジェクトにまとめてデータフローを圧縮し、表示部２３が、圧縮されたデータフローを表示する。したがって、情報処理装置１０は、データフローの全体像の把握を容易にすることができる。【００７３】
また、実施例では、表示部２３は、プロジェクトアイコンにマウスカーソルが合わされたことを検出すると、プロジェクトにまとめられる前のグループの部分データフローを階層的に表示する。したがって、情報処理装置１０は、データフローの一部の詳細の把握を容易にすることができる。【００７４】
また、実施例では、グループ抽出部１２が複数のデータフローからグループを抽出し、圧縮価値計算部１４が他のグループとの類似度とグループに含まれるプロセスの数に基づいて、グループ毎に圧縮価値を計算して圧縮価値記憶部１５に格納する。したがって、情報処理装置１０は、出現頻度が高くプロセス数の多い部分データフローを圧縮することができ、適切な圧縮を行うことができる。【００７５】
また、実施例では、圧縮価値計算部１４は、プロセスの入力データと出力データの統計的な差異、及び、統計的な差異を生み出したアルゴリズムに基づいて、類似度を計算するので、グループ間の類似度を適切に計算することができる。【００７６】
なお、実施例では、情報処理装置１０について説明したが、情報処理装置１０が有する構成をソフトウェアによって実現することで、同様の機能を有するリネージュプログラムを得ることができる。そこで、リネージュプログラムを実行するコンピュータについて説明する。【００７７】
図１１は、実施例に係るリネージュプログラムを実行するコンピュータのハードウェア構成を示す図である。図１１に示すように、コンピュータ５０は、メインメモリ５１と、ＣＰＵ（Central  Processing  Unit）５２と、ＬＡＮ（Local  Area  Network）インタフェース５３と、ＨＤＤ（Hard  Disk  Drive）５４とを有する。また、コンピュータ５０は、スーパーＩＯ（Input  Output）５５と、ＤＶＩ（Digital  Visual  Interface）５６と、ＯＤＤ（Optical  Disk  Drive）５７とを有する。【００７８】
メインメモリ５１は、プログラムやプログラムの実行途中結果等を記憶するメモリである。ＣＰＵ５２は、メインメモリ５１からプログラムを読み出して実行する中央処理装置である。ＣＰＵ５２は、メモリコントローラを有するチップセットを含む。【００７９】
ＬＡＮインタフェース５３は、コンピュータ５０をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。ＨＤＤ５４は、プログラムやデータを格納するディスク装置であり、スーパーＩＯ５５は、マウスやキーボード等の入力装置を接続するためのインタフェースである。ＤＶＩ５６は、液晶表示装置を接続するインタフェースであり、ＯＤＤ５７は、ＤＶＤ、ＣＤ−Ｒの読み書きを行う装置である。【００８０】
ＬＡＮインタフェース５３は、ＰＣＩエクスプレス（ＰＣＩｅ）によりＣＰＵ５２に接続され、ＨＤＤ５４及びＯＤＤ５７は、ＳＡＴＡ（Serial  Advanced  Technology  Attachment）によりＣＰＵ５２に接続される。スーパーＩＯ５５は、ＬＰＣ（Low  Pin  Count）によりＣＰＵ５２に接続される。【００８１】
そして、コンピュータ５０において実行されるリネージュプログラムは、コンピュータ５０により読み出し可能な記録媒体の一例であるＣＤ−Ｒに記憶され、ＯＤＤ５７によってＣＤ−Ｒから読み出されてコンピュータ５０にインストールされる。あるいは、リネージュプログラムは、ＬＡＮインタフェース５３を介して接続された他のコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてコンピュータ５０にインストールされる。そして、インストールされたリネージュプログラムは、ＨＤＤ５４に記憶され、メインメモリ５１に読み出されてＣＰＵ５２によって実行される。【００８２】
また、実施例では、プロセスが処理を行う場合について説明したが、データフローに含まれる処理はタスク、モジュール等の他の処理でもよい。
【符号の説明】
【００８３】
１    圧縮データフロー
１０    情報処理装置
１１    データフロー記憶部
１２    グループ抽出部
１３    グループ記憶部
１４    圧縮価値計算部
１５    圧縮価値記憶部
１６    リネージュ記憶部
１７    リネージュグループ記憶部
１８    グループグラフ記憶部
１９    圧縮価値取得部
２０    取得結果記憶部
２１    プロジェクト作成部
２２    プロジェクト記憶部
２３    表示部
５０    コンピュータ
５１    メインメモリ
５２    ＣＰＵ
５３    ＬＡＮインタフェース
５４    ＨＤＤ
５５    スーパーＩＯ
５６    ＤＶＩ
５７    ＯＤＤ
【図１Ａ】
2020110239.tif 000003
【図１Ｂ】
2020110239.tif 000004
【図１Ｃ】
2020110239.tif 000005
【図１Ｄ】
2020110239.tif 000006
【図１Ｅ】
2020110239.tif 000007
【図１Ｆ】
2020110239.tif 000008
【図１Ｇ】
2020110239.tif 000009
【図１Ｈ】
2020110239.tif 000010
【図１Ｉ】
2020110239.tif 000011
【図１Ｊ】
2020110239.tif 000012
【図１Ｋ】
2020110239.tif 000013
【図１Ｌ】
2020110239.tif 000014
【図２】
2020110239.tif 000015
【図３】
2020110239.tif 000016
【図４】
2020110239.tif 000017
【図５】
2020110239.tif 000018
【図６】
2020110239.tif 000019
【図７】
2020110239.tif 000020
【図８】
2020110239.tif 000021
【図９】
2020110239.tif 000022
【図１０】
2020110239.tif 000023
【図１１】
2020110239.tif 000024
【図１２】
2020110239.tif 000025
【図１３】
2020110239.tif 000026
【手続補正書】
【提出日】令和3年4月6日(2021.4.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データフローにおいて複数の処理と該複数の処理の先頭処理の入力データから最終処理の出力データまでのデータとを含む部分データフローをグループとして、グループに含まれる複数の処理を１つのまとめ処理に圧縮する価値を示す圧縮価値をグループ毎に管理する圧縮価値情報を記憶する圧縮価値記憶部と、
前記圧縮価値記憶部に記憶された圧縮価値情報に基づいて、リネージュ対象のデータフローにおいて圧縮価値が所定値より大きいグループの複数の処理を１つのまとめ処理にまとめる圧縮部と、
前記圧縮部により複数の処理が１つのまとめ処理にまとめられた圧縮データフローを表示する表示部と
を有することを特徴とする情報処理装置。
【請求項２】
前記表示部は、表示した圧縮データフローに含まれるまとめ処理の選択を受け付け、受け付けたまとめ処理について、前記圧縮部によりまとめられる前の処理又はまとめ処理を複数含む部分データフローを階層的に表示することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
複数のデータフローからグループを抽出してグループ毎に他のグループとの類似度を計算し、該類似度とグループに含まれる処理の数に基づいて前記圧縮価値を計算して前記圧縮価値記憶部に格納する圧縮価値計算部をさらに有することを特徴とする請求項１又は２に記載の情報処理装置。 
【請求項４】
前記圧縮価値計算部は、処理の入力データと出力データの統計的な差異、及び、該統計的な差異を生み出したアルゴリズムに基づいて、前記類似度を計算することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記圧縮価値計算部は、前記統計的な差異が特定できない処理を含むグループの圧縮価値を０とし、
前記圧縮部は、リネージュ対象のデータフローから圧縮価値が０より大きいグループの複数の処理を１つのまとめ処理にまとめることを特徴とする請求項４に記載の情報処理装置。 
【請求項６】
前記統計的な差異には、行数の減少、行数の増加、値の数の増加、値の数の減少、値の範囲の減少、値の範囲の増加、値の種類の減少、値の種類の増加が含まれ、前記アルゴリズムには、削除、補間、正規化、名寄せが含まれることを特徴とする請求項４に記載の情報処理装置。
【請求項７】
コンピュータに、
データフローにおいて複数の処理と該複数の処理の先頭処理の入力データから最終処理の出力データまでのデータとを含む部分データフローをグループとして、グループに含まれる複数の処理を１つのまとめ処理に圧縮する価値を示す圧縮価値をグループ毎に管理する圧縮価値情報を圧縮価値記憶部に記憶し、
前記圧縮価値記憶部に記憶された圧縮価値情報に基づいて、リネージュ対象のデータフローにおいて圧縮価値が所定値より大きいグループの複数の処理を１つのまとめ処理にまとめ、
リネージュ対象のデータフローにおいて圧縮価値が所定値より大きいグループの複数の処理が１つのまとめ処理にまとめられた圧縮データフローを表示する
処理を実行させることを特徴とするリネージュプログラム。
【国際調査報告】
2020110239.tif 000027
2020110239.tif 000028