(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-11
(45)【発行日】2024-03-19
(54)【発明の名称】抽出プログラム、抽出方法および情報処理装置
(51)【国際特許分類】
G06Q 10/06 20230101AFI20240312BHJP
【FI】
G06Q10/06
(21)【出願番号】P 2020025210
(22)【出願日】2020-02-18
【審査請求日】2022-10-06
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】堀田 勇次
【審査官】小山 和俊
(56)【参考文献】
【文献】特開2015-148982(JP,A)
【文献】特開2009-301231(JP,A)
【文献】特開2005-258981(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
複数のコマンドおよび前記複数のコマンドの実行結果を含む作業履歴を基にして、前記複数のコマンドを、コマンドの実行順に並べた作業手順であって、一つのコマンドから2つ以上のコマンドに分岐する条件分岐部分を含む
複数の作業手順を抽出し、
前記
複数の作業手順に含まれる前記複数のコマンドに対して、コマンドの実行結果をそれぞれ対応付け、
前記複数の作業手順に含まれるコマンドの実行結果であって、前記条件分岐部分のコマンドに対応付けられたコマンドの実行結果を収集し、
収集したコマンドの実行結果を基にして、前記条件分岐部分の分岐条件を抽出する
処理をコンピュータに実行させることを特徴とする抽出プログラム。
【請求項2】
前記コマンドの実行結果を収集する処理は、前記条件分岐部分のコマンドの実行結果と、前記作業手順を識別する識別情報とを対応付けることを特徴とする請求項1に記載の抽出プログラム。
【請求項3】
前記分岐条件を抽出する処理は、前記識別情報に対応付けられたコマンドの実行結果を複数の特徴に分割し、分割した特徴のうち、前記識別情報によって識別される作業手順の要因となる特徴を、前記分岐条件として抽出することを特徴とする請求項2に記載の抽出プログラム。
【請求項4】
前記収集する処理によって収集されたコマンドの実行結果を整形する処理を更に実行し、前記分岐条件を抽出する処理は、整形されたコマンドの実行結果を基にして、前記条件分岐部分の分岐条件を抽出することを特徴とする請求項1、2または3に記載の抽出プログラム。
【請求項5】
前記条件分岐部分のコマンドを基準とした対象範囲を設定し、対象範囲に含まれる複数のコマンドと、前記作業履歴の複数のコマンドの一致率を基にして、前記作業履歴に含まれる複数のコマンドのうち、前記条件分岐部分のコマンドに対応するコマンドを特定する処理を更に実行することを特徴とする請求項1~4のいずれか一つに記載の抽出プログラム。
【請求項6】
コンピュータが実行する抽出方法であって、
複数のコマンドおよび前記複数のコマンドの実行結果を含む作業履歴を基にして、前記複数のコマンドを、コマンドの実行順に並べた作業手順であって、一つのコマンドから2つ以上のコマンドに分岐する条件分岐部分を含む
複数の作業手順を抽出し、
前記
複数の作業手順に含まれる前記複数のコマンドに対して、コマンドの実行結果をそれぞれ対応付け、
前記複数の作業手順に含まれるコマンドの実行結果であって、前記条件分岐部分のコマンドに対応付けられたコマンドの実行結果を収集し、
収集したコマンドの実行結果を基にして、前記条件分岐部分の分岐条件を抽出する
処理を実行することを特徴とする抽出方法。
【請求項7】
複数のコマンドおよび前記複数のコマンドの実行結果を含む作業履歴を基にして、前記複数のコマンドを、コマンドの実行順に並べた作業手順であって、一つのコマンドから2つ以上のコマンドに移行する条件分岐部分を含む
複数の作業手順を抽出する手順抽出部と、
前記
複数の作業手順に含まれる前記複数のコマンドに対して、コマンドの実行結果をそれぞれ対応付ける対応付け部と、
前記複数の作業手順に含まれるコマンドの実行結果であって、前記条件分岐部分のコマンドに対応付けられたコマンドの実行結果を収集し、収集したコマンドの実行結果を基にして、前記条件分岐部分の分岐条件を抽出する分岐条件抽出部と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、抽出プログラム等に関する。
【背景技術】
【0002】
作業者は、コンピュータのアプリケーションプログラムを実行し、各種のコマンドを入力することで、様々な作業を行っている。アプリケーションプログラムは、作業者によって入力されたコマンドや、コマンドによる実行結果を作業履歴として蓄積している。
【0003】
ここで、所定の作業内容に関連した複数の作業履歴に対してプロセスマイニングを実行し、各作業履歴について、共通の作業手順を抽出することが行われている。たとえば、共通の作業手順は、作業者が所定の作業内容を行う場合の参考として用いることができる。
【0004】
なお、故障原因毎の作業手順をDB(Data Base)に格納しておき、故障原因毎の固有の作業列と、故障原因に依存しない作業列に分類する従来技術もある。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2016-122317号公報
【文献】特開2016-110304号公報
【文献】特開2019-124988号公報
【非特許文献】
【0006】
【文献】「復旧コマンド列自動生成技術」、NTT技術ジャーナル、2019年5月、[令和2年1月15日検索]インターネット<URL:https://www.ntt.co.jp/journal/1905/files/pdf/JN20190519.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した従来技術では、作業履歴から分岐条件込みの作業手順を抽出することができないという問題がある。
【0008】
たとえば、作業者が実行する作業手順には、前のコマンドの実行結果によって、次のコマンドが分岐する部分(分岐部分)が発生する場合がある。プロセスマイニングでは、分岐部分が存在する場合、各分岐先に移行する確率を算出することは可能であるが、分岐先へ移行するための分岐条件を特定することは難しい。
【0009】
1つの側面では、本発明は、作業履歴から分岐条件込みの作業手順を抽出することができる抽出プログラム、抽出方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
第1の案では、コンピュータに次の処理を実行させる。コンピュータは、複数のコマンドおよび複数のコマンドの実行結果を含む作業履歴を基にして、複数のコマンドを、コマンドの実行順に並べた作業手順であって、一つのコマンドから2つ以上のコマンドに分岐する条件分岐部分を含む作業手順を抽出する。コンピュータは、作業手順に含まれる複数のコマンドに対して、コマンドの実行結果をそれぞれ対応付ける。コンピュータは、条件分岐部分のコマンドに対応付けられたコマンドの実行結果を収集する。コンピュータは、収集したコマンドの実行結果を基にして、条件分岐部分の分岐条件を抽出する。
【発明の効果】
【0011】
作業履歴から分岐条件込みの作業手順を抽出することができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、本実施例1に係る情報処理装置の処理を説明するための図である。
【
図2】
図2は、手順データのデータ構造の一例を示す図である。
【
図3】
図3は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。
【
図4】
図4は、本実施例1に係る作業履歴DBのデータ構造の一例を示す図である。
【
図5】
図5は、本実施例1に係る対応付けデータのデータ構造の一例を示す図である。
【
図6】
図6は、本実施例1に係る分岐条件付き手順データの一例を示す図である。
【
図7】
図7は、本実施例1に係る手順抽出部の処理を説明するための図である。
【
図8】
図8は、本実施例1に係る対応付け部の処理を説明するための図(1)である。
【
図9】
図9は、本実施例1に係る対応付け部の処理を説明するための図(2)である。
【
図10】
図10は、本実施例1に係る分岐条件抽出部の処理を説明するための図(1)である。
【
図11】
図11は、本実施例1に係る分岐条件抽出部の処理を説明するための図(2)である。
【
図12】
図12は、特徴抽出に関する戦略を説明するための図である。
【
図13】
図13は、本実施例1に係る情報処理装置の処理手順を示すフローチャートである。
【
図14】
図14は、対応付け処理の処理手順を示すフローチャートである。
【
図15】
図15は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。
【
図22】
図22は、実施例2に係る集約データの一例を示す図である。
【
図23】
図23は、整形処理の処理手順を示すフローチャートである。
【
図24】
図24は、実施例の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0013】
以下に、本願の開示する抽出プログラム、抽出方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例1】
【0014】
図1は、本実施例1に係る情報処理装置の処理を説明するための図である。作業員は、PC(Personal Computer)等にインストールされたアプリケーションプログラムを実行し、各種のコマンドを入力して、作業を行う。アプリケーションプログラムは、作業員から入力されたコマンドと、コマンドの実行結果とを作業履歴W1,W2として保存しておくものとする。ここでは、情報処理装置が、作業履歴W1,W2に対して行う処理の一例について説明する。
【0015】
作業履歴W1において、「$」が付与された「ls stat.txt」、「grep status stat.txt」、「service start」が、作業員に入力されたコマンドである。「stat.txt」は、コマンド「ls stat.txt」の実行結果である。「status=not_start」は、コマンド「grep status stat.txt」の実行結果である。
【0016】
作業履歴W2において、「$」が付与された「ls stat.txt」、「grep status stat.txt」、「service restart」が、作業員に入力されたコマンドである。「stat.txt」は、コマンド「ls stat.txt」の実行結果である。「status=stuck」は、コマンド「grep status stat.txt」の実行結果である。
【0017】
情報処理装置は、作業履歴W1,W2に対してプロセスマイニングを実行して手順を抽出し、手順データ142を生成する。ここでは、手順データ142を、プロセスツリーの形態によって示す。手順データ142には、作業履歴W1,W2のコマンドに対応するノードが含まれる。たとえば、ノードn1は、作業履歴W1,W2のコマンド「ls stat.txt」に対応する。ノードn2は、作業履歴W1,W2のコマンド「grep status stat.txt」に対応する。ノードn3は、作業履歴W1のコマンド「service start」に対応する。ノードn4は、作業履歴W2のコマンド「service restart」に対応する。
【0018】
作業履歴W1では、コマンド「grep status stat.txt」に続くコマンドが「service start」である。一方、作業履歴W2では、コマンド「grep status stat.txt」に続くコマンドが「service restart」である。このように、コマンド「grep status stat.txt」に続く次のコマンドが作業履歴W1,W2で異なっている場合、情報処理装置は、コマンド「grep status stat.txt」を、「条件分岐部分」に対応するコマンドであると判定する。以下の説明では、条件分岐部分に対応するコマンドを「分岐コマンド」と表記する。
【0019】
ところで、
図1では、手順データ142を、プロセスツリーの形態で示したが、手順データ142のデータ構造は、たとえば、
図2に示すものとなる。
図2は、手順データ142のデータ構造の一例を示す図である。
図2に示すように、手順データは、識別情報と、手順とを対応付ける。識別情報は、手順を一意に識別する情報である。手順は、プロセスマイニングによって抽出される手順である。識別情報は、手順が識別できれば、どのようなものを用いてもよい。
【0020】
たとえば、識別情報「a」に対応する手順は、コマンド[ls stat.txt]>コマンド[grep status stat.txt]>コマンド[service start]の手順となる。識別情報「b」に対応する手順は、コマンド[ls stat.txt]>コマンド[grep status stat.txt]>コマンド[service restart]の手順となる。
図2に示す識別情報「a」の手順と、識別情報「b」の手順において、重複するコマンドを一つのノードで表すことで、
図1に示すような、プロセスツリー形態の手順データ142が生成される。
【0021】
図1の説明に戻る。情報処理装置は、分岐コマンド「grep status stat.txt」と、作業履歴W1,W2とを比較する。情報処理装置は、作業履歴W1における分岐コマンドのコマンド実行結果「status=not_start」と、作業履歴W2における分岐コマンドのコマンド実行結果「status=stuck」を集約(収集)する。収集したコマンド実行結果を、手順毎に分類することで、集約データ15を生成する。
【0022】
集約データ15は、手順を識別するための識別情報と、コマンド実行結果とを対応付ける。たとえば、情報処理装置は、コマンド実行結果「status=not_start」の次に、コマンド「service start」が実行され、識別情報「a」の手順に対応するため、識別情報「a」と、コマンド実行結果「status=not_start」とを対応付ける。
【0023】
情報処理装置は、コマンド実行結果「status=stuck」の次に、コマンド「service restart」が実行され、識別情報「b」の手順に対応するため、識別情報「b」と、コマンド実行結果「status=stuck」とを対応付ける。
【0024】
情報処理装置は、集約データ15を基にして、分岐条件を抽出し、分岐条件データ20を生成する。分岐条件データ20に示すように、コマンド実行結果「status=not_start」によって、コマンド「service start」に至る手順(コマンド[ls stat.txt]>コマンド[grep status stat.txt]>コマンド[service start])が実行されたことが示される。コマンド実行結果「status=stuck」によって、コマンド「service restart」に至る手順(コマンド[ls stat.txt]>コマンド[grep status stat.txt]>コマンド[service restart])が実行されたことが示される。
【0025】
上記のように、情報処理装置は、作業履歴W1,W2から作業手順を抽出してコマンド実行結果を対応付け、作業手順の条件分岐部分に対応付けられたコマンド実行結果を集約し、集約した集約データ15を基にして分岐条件データ20を抽出する。これによって、分岐コマンドが存在する場合に、分岐コマンドのコマンド実行結果に応じたコマンドの手順(分岐条件込みの作業手順)を抽出することができる。作業員は、分岐条件データ20を参照することで、どのようなコマンド実行結果により、どのような手順がなされたのかを参照することができ、作業の効率化を図ることができる。
【0026】
次に、本実施例1に係る情報処理装置の構成の一例について説明する。
図3は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。
図3に示すように、この情報処理装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
【0027】
通信部110は、ネットワークを介して、図示しない外部装置とデータ通信を実行する処理部である。たとえば、外部装置は、作業履歴のデータを管理する装置である。通信部110は、NIC(Network Interface Card)等の通信装置に対応する。後述する制御部150は、通信部110を介して、外部装置から、作業履歴のデータを取得する。
【0028】
入力部120は、情報処理装置100に各種のデータを入力するための入力装置である。入力部120は、キーボードやマウス、タッチパネル等の入力装置に対応する。
【0029】
表示部130は、制御部150から出力される情報を表示する表示装置である。表示部130は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ、タッチパネル等に対応する。
【0030】
記憶部140は、作業履歴DB141、手順データ142、対応付けデータ143、分岐条件付き手順データ144を有する。記憶部140は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
【0031】
作業履歴DB141は、複数の作業履歴のデータを蓄積するデータベースである。
図4は、本実施例1に係る作業履歴DBのデータ構造の一例を示す図である。
図4に示すように、この作業履歴DB141は、作業履歴識別情報と、作業履歴のデータとを対応付ける。作業履歴識別情報は、作業履歴のデータを一意に識別する情報である。作業履歴のデータは、複数のコマンドと、複数の実行結果を含むデータである。以下の説明では、作業履歴識別情報Wnの作業履歴のデータを「作業履歴Wn」と表記する。
【0032】
手順データ142は、作業履歴DB141に蓄積された作業履歴Wnを基にして生成される手順データである。手順データ142のデータ構造は、
図2で説明したように、識別情報と、手順とが対応付けられる。
【0033】
対応付けデータ143は、手順データ142に含まれるコマンドのうち、分岐コマンドと、分岐コマンドのコマンド実行結果とを対応付けたデータである。
図5は、本実施例1に係る対応付けデータのデータ構造の一例を示す図である。
図5に示すように、対応付けデータ143は、識別情報と、手順とを対応付ける。識別情報は、手順を一意に識別する情報である。手順は、プロセスマイニングによって抽出される手順である。なお、手順に含まれる複数のコマンドのうち、分岐コマンドには、係る分岐コマンドのコマンド実行結果を結合されている。
【0034】
識別情報「a」の手順において、分岐コマンド「grep status stat.txt」に、係る分岐コマンドのコマンド実行結果「status=not_start」が結合されている。識別情報「b」の手順において、分岐コマンド「grep status stat.txt」に、係る分岐コマンドのコマンド実行結果「status=stuck」が結合されている。
【0035】
図3の説明に戻る。分岐条件付き手順データ144は、手順データ142と、分岐条件とを組み合わせたデータである。
図6は、本実施例1に係る分岐条件付き手順データの一例を示す図である。
図6に示す例では、ノードn2において、分岐が発生しており、分岐条件(コマンド実行結果)「status=not_start」によって、ノードn3に移行し、分岐条件(コマンド実行結果)「status=stuck」によって、ノードn4に移行することが示されている。
【0036】
図3の説明に戻る。制御部150は、取得部151と、手順抽出部152と、対応付け部153と、分岐条件抽出部154と、出力制御部155とを有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部14は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
【0037】
取得部151は、ネットワークを介して、外部装置から作業履歴Wnを取得する処理部である。取得部151は、取得した作業履歴Wnを、作業履歴DB141に格納する。
【0038】
手順抽出部152は、作業履歴DB141に格納された作業履歴Wnを基にして、作業手順を抽出することで、手順データ142を生成する処理部である。手順抽出部152は、プロセスマイニングなどの手法を用いて、手順を抽出する。手順抽出部152は、作業履歴Wnから手順を抽出する前に、作業履歴Wnに含まれるコマンドをイベント名として抽出するような前処理を実行する。また、手順抽出部152は、イベント名を抽象化する前処理を実行してもよい。
【0039】
図7は、本実施例1に係る手順抽出部の処理を説明するための図である。たとえば、手順抽出部152は、作業履歴DB141から、作業履歴W1,W2,W3,W4を抽出し、プロセスマイニングを実行することで、手順データ142を生成する。作業履歴W1,W3に関する説明は、
図1で説明した、作業履歴W1に関する説明と同様である。作業履歴W2,W4に関する説明は、
図1で説明した、作業履歴W2に関する説明と同様である。
【0040】
手順データ142には、識別情報「a」で識別される手順「コマンド[ls stat.txt]>コマンド[grep status stat.txt]>コマンド[service start]」が含まれる。また、識別情報「b」で識別される手順「[ls stat.txt]>コマンド[grep status stat.txt]>コマンド[service restart]」が含まれる。
【0041】
図3の説明に戻る。対応付け部153は、手順データ142に含まれる複数の手順を比較して、複数のコマンドのうち、分岐コマンドを特定する。対応付け部153は、特定した分岐コマンドと、作業履歴Wnとを基にして、分岐コマンドによるコマンド実行結果を特定する。対応付け部153は、分岐コマンドと、コマンド実行結果とを対応付けることで、対応付けデータ143を生成する。以下において、対応付け部153が、分岐コマンドを特定する処理、分岐コマンドに対応するコマンドラインを特定する処理、分岐コマンドとコマンド実行結果とを対応付ける処理について説明する。
【0042】
対応付け部153が実行する「分岐コマンドを特定する処理」の一例について説明する。
図7を用いて、対応付け部153の処理を説明する。対応付け部153は、識別情報「a」の手順の各コマンドと、識別情報「b」の手順の各コマンドとを先頭から比較する。そうすると、1番目と2番目のコマンド「[ls stat.txt]、[grep status stat.txt]」までは一致するが、3番目のコマンドが一致しておらず、分岐が発生している。対応付け部153は、一致する各コマンドのうち、最後のコマンド[grep status stat.txt]を分岐コマンドとして特定する。
【0043】
なお、対応付け部153は、手順データ142のプロセスツリーを辿って、分岐しているノードを検出し、分岐コマンドを特定してもよい。
【0044】
対応付け部153が実行する「分岐コマンドに対応するコマンドラインを特定する処理」について説明する。コマンドラインは、作業履歴Wnの行に対応するものである。
図8は、本実施例1に係る対応付け部の処理を説明するための図(1)である。
図3では一例として、作業履歴W5,W6を用いて説明を行う。作業履歴W5のコマンドラインをそれぞれ5-1~5-7とする。作業履歴W6のコマンドラインをそれぞれ6-1~6-7とする。
【0045】
上記の手順抽出部152が、作業履歴W5,W6に対してプロセスマイニングを実行することで生成される手順データ142を、手順データ142aとする。ここでは、手順データ142aをプロセスツリーによって示す。たとえば、手順データ142aには、ノードn1-1~n1-6が含まれる。また、分岐コマンドを[grep status stat.txt]とし、分岐コマンドに対応するノードを、ノード1-4とする。
【0046】
対応付け部153は、分岐コマンドに対応するノードn1-4を選択し、分岐コマンド[grep status stat.txt]と、作業履歴W5の各コマンドとを比較する。対応付け部153は、分岐コマンド[grep status stat.txt]に対応するコマンドは、コマンドライン5-2,5-5のコマンドに対応し、1対1の対応ではないと判定する。
【0047】
対応付け部153は、1対1の対応ではない場合、比較対象(対象範囲)を拡大する。たとえば、対応付け部153は、ノード1-4を基準として、ノードn1-3、n1-4、n1-5を対象範囲として選択する。これに対して、作業履歴W5の候補には、5-1~5-3のコマンドと、5-4~5-6のコマンドとの候補がある。
【0048】
対応付け部153は、ノードn1-3、n1-4、n1-5に対応するコマンドと、5-1~5-3のコマンドとを比較すると、一致率が66.7%となる。対応付け部153は、ノードn1-3、n1-4、n1-5に対応する各コマンドと、5-4~5-6の各コマンドとを比較すると、一致率が100%となる。対応付け部153は、一致率が大きい5-4~5-6の各コマンドのうち、分岐コマンドに対応するコマンドの「コマンドライン5-5」を特定する。
【0049】
同様に、対応付け部153は、分岐コマンドに対応するノードn1-4を選択し、分岐コマンド[grep status stat.txt]と、作業履歴W6の各コマンドとを比較する。対応付け部153は、分岐コマンド[grep status stat.txt]に対応するコマンドは、コマンドライン6-2,6-5のコマンドに対応し、1対1の対応ではないと判定する。
【0050】
対応付け部153は、1対1の対応ではない場合、比較対象を拡大する。たとえば、対応付け部153は、ノード1-4を基準として、ノードn1-3、n1-4、n1-5を選択する。これに対して、作業履歴W6の候補には、6-1~6-3のコマンドと、6-4~6-6のコマンドとの候補がある。
【0051】
対応付け部153は、ノードn1-3、n1-4、n1-5に対応するコマンドと、6-1~6-3のコマンドとを比較すると、一致率が66.7%となる。対応付け部153は、ノードn1-3、n1-4、n1-5に対応する各コマンドと、6-4~6-6の各コマンドとを比較すると、一致率が100%となる。対応付け部153は、一致率が大きい6-4~6-6の各コマンドのうち、分岐コマンドに対応するコマンドの「コマンドライン6-5」を特定する。
【0052】
対応付け部153は、上記の処理を実行することで、分岐コマンドに対応するコマンドライン5-5、6-5を特定する。
【0053】
対応付け部153が実行する「分岐コマンドとコマンド実行結果とを対応付ける処理」について説明する。
図9は、本実施例1に係る対応付け部の処理を説明するための図(2)である。なお、上述した分岐コマンドに対応するコマンドラインを特定する処理によって、分岐コマンド[grep status stat.txt]と、作業履歴W1~W4のコマンドラインとが対応付けられているものとする。たとえば、分岐コマンドと、作業履歴W1のコマンドライン1-3とが対応付けられる。分岐コマンドと、作業履歴W2のコマンドライン2-3とが対応付けられる。分岐コマンドと、作業履歴W3のコマンドライン3-3とが対応付けられる。分岐コマンドと、作業履歴W4のコマンドライン4-3とが対応付けられる。
【0054】
対応付け部153は、作業履歴W1のコマンドライン1-3のコマンド「grep status stat.txt」のコマンド実行結果「status=not_start」を抽出する。対応付け部153は、作業履歴W1に対応する手順が、識別情報「a」に対応する手順であるため、識別情報「a」の手順に含まれる分岐コマンド[grep status stat.txt]に、コマンド実行結果(status=not_start)を対応付ける。
【0055】
対応付け部153は、作業履歴W2のコマンドライン2-3のコマンド「grep status stat.txt」のコマンド実行結果「status=not_start」を抽出する。対応付け部153は、作業履歴W2に対応する手順が、識別情報「b」に対応する手順であるため、識別情報「a」の手順に含まれる分岐コマンド[grep status stat.txt]に、コマンド実行結果(status=stuck)を対応付ける。
【0056】
対応付け部153は、作業履歴W3のコマンドライン3-3のコマンド「grep status stat.txt」のコマンド実行結果「status=not_start」を抽出する。対応付け部153は、作業履歴W3に対応する手順が、識別情報「a」に対応する手順であるため、識別情報「a」の手順に含まれる分岐コマンド[grep status stat.txt]に、コマンド実行結果(status=not_start)を対応付ける。ただし、上述した作業履歴W1に対する処理結果と同様となるため、作業履歴W3に関して、対応付ける処理はスキップされる。
【0057】
対応付け部153は、作業履歴W4のコマンドライン4-3のコマンド「grep status stat.txt」のコマンド実行結果「status=not_start」を抽出する。対応付け部153は、作業履歴W4に対応する手順が、識別情報「b」に対応する手順であるため、識別情報「b」の手順に含まれる分岐コマンド[grep status stat.txt]に、コマンド実行結果(status=stuck)を対応付ける。ただし、上述した作業履歴W2に対する処理結果と同様となるため、作業履歴W4に関して、対応付ける処理はスキップされる。
【0058】
図3の説明に戻る。分岐条件抽出部154は、対応付けデータ143を基にして分岐条件を抽出し、分岐条件付き手順データ144を生成する処理部である。分岐条件抽出部154は、集約データを生成する処理、コマンド実行結果を分割する処理、分岐条件を抽出する処理、分岐条件付き手順データを生成する処理を実行する。
【0059】
分岐条件抽出部154が実行する「集約データを生成する処理」について説明する。分岐条件抽出部154は、対応付けデータ143を参照し、分岐コマンドに対応付けられたコマンド実行結果を集約(収集)することで、集約データ15を生成する。
図1で説明したように、集約データ15には、識別情報と、分岐コマンドのコマンド実行結果とが対応付けられる。
【0060】
分岐条件抽出部154が実行する「コマンド実行結果を分割する処理」について説明する。分岐条件抽出部154は、字句解析、自然言語処理等を実行し、記号、文字列のかたまり毎に、コマンド実行結果を分割する。
図10は、本実施例1に係る分岐条件抽出部の処理を説明するための図(1)である。分割する処理を実行した集約データ15を、分割データ16とする。
【0061】
たとえば、分岐条件抽出部154は、識別情報「a」に対応するコマンド実行結果「status=not_start」を、「status」、「=」、「not_start」に分割する。分岐条件抽出部154は、識別情報「b」に対応するコマンド実行結果「status=stuck」を、「status」、「=」、「stuck」に分割する。分割した記号、文字列のかたまりを「特徴」と表記する。たとえば、識別情報「a」に対応する各特徴は、column1の「status」、column2の「=」、column3の「not_start」となる。識別情報「b」に対応する各特徴は、column1の「status」、column2の「=」、column3の「stuck」となる。
【0062】
分岐条件抽出部154が実行する「分岐条件を抽出する処理」について説明する。分岐条件抽出部154は、分割データ16を基にして、各手順の要因となる特徴を、分割したコマンド実行結果から抽出することで、分岐条件を抽出する。たとえば、
図10で説明したように、識別情報a,bにおいて、特徴「status」、「=」が共通である。このため、分岐条件抽出部154は、識別情報「a」の手順の要因となる特徴として、特徴「not_start」を抽出する。分岐条件抽出部154は、識別情報「b」の手順の要因となる特徴として、特徴「status」を抽出する。
【0063】
図11は、本実施例1に係る分岐条件抽出部の処理を説明するための図(2)である。
図11に示すように、分割データ16を基にして、分岐条件データ17が生成される。分岐条件データ17の「column3==not_start→a」は、column3の「not_start」が、識別情報「a」の手順を選択する要因であることを示している。分岐条件データ17の「column3==status→b」は、column3の「status」が、識別情報「b」の手順を選択する要因であることを示している。
【0064】
ところで、分岐条件抽出部154は、各手順を選択する要因となる特徴を、分割したコマンド実行結果の各特徴から抽出する場合、決定木やクラスタリング等の分類技術を使用してもよい。分岐条件抽出部154が、決定木を使用して、各手順を選択する要因となる特徴を抽出する場合、
図12に示すような戦略を用いてもよい。
【0065】
図12は、特徴抽出に関する戦略を説明するための図である。分岐条件抽出部154は、各特徴を基にして決定木を生成し、葉に至る決定木のノード(特徴)の数が最小となる特徴を、手順を選択する要因となる特徴として選択する。
図12に示す例では、決定木T1は、ノードn1-1,n2-1,n2-2,n3-1,n3-2,n3-3,n4-1,n4-2が含まれ、各ノードはそれぞれ特徴に対応する。葉L3-1、L4-1、L4-2が含まれる。葉は、手順の識別情報を示すものである。
図12に示す例では、各葉のうち、葉L3-1に至るノードの数が最小となる。このため、分岐条件抽出部154は、葉L3-1に至るノードn1-1,n2-1に対応する特徴を、葉L3-1の識別情報の手順を選択する要因となる特徴として抽出する。
【0066】
なお、特徴抽出に関する戦略は、
図12で説明したものに限られない。たとえば、多くのノード(90%以上のノード)が最小の条件判定で済むような特徴を選択してもよいし、どの条件分岐を辿っても最長の条件判定の数が一定の数に収まるような特徴群を抽出してもよい。
【0067】
分岐条件抽出部154が実行する「分岐条件付き手順データを生成する処理」について説明する。分岐条件抽出部154は、分岐条件を抽出する処理で抽出した分岐条件データ17を、分岐コマンドと対応付けて、関係を保持する。たとえば、分岐条件抽出部154は、分岐条件データ17と、手順データ142のブロックツリーとを基にして、
図6で説明した分岐条件付き手順データ144を生成する。
【0068】
図3の説明に戻る。出力制御部155は、分岐条件付き手順データ144を、出力する処理部である。たとえば、出力制御部155は、入力部120を操作するユーザから、手順出力の要求を受け付けた場合、分岐条件付き手順データ144を、表示部130に出力して表示させる。
【0069】
次に、本実施例1に係る情報処理装置100の処理手順の一例について説明する。
図13は、本実施例1に係る情報処理装置の処理手順を示すフローチャートである。
図13に示すように、情報処理装置100の取得部151は、作業履歴Wnを取得し、作業履歴DB141に格納する(ステップS101)。
【0070】
情報処理装置100の手順抽出部152は、作業履歴DB141に蓄積された作業履歴Wnを基にしてプロセスマイニングを実行し、手順データ142を生成する(ステップS102)。情報処理装置100の対応付け部153は、分岐コマンドを特定する(ステップS103)。
【0071】
情報処理装置100は、未選択の分岐コマンドがある場合には(ステップS104,Yes)、ステップS105に移行する。情報処理装置100は、未選択の分岐コマンドがない場合には(ステップS104,No)、出力制御部155が、分岐条件付き手順データ144を出力する(ステップS111)。
【0072】
対応付け部153は、未選択の分岐コマンドを選択する(ステップS105)。対応付け部153は、対応付け処理を実行する(ステップS106)。情報処理装置の分岐条件抽出部154は、集約データを生成する(ステップS107)。分岐条件抽出部154は、集約データに含まれるコマンド実行結果を分割する(ステップS108)。分岐条件抽出部154は、分岐条件を抽出する(ステップS109)。分岐条件抽出部154は、分岐条件付き手順データ144を生成し(ステップS110)、ステップS104に移行する。
【0073】
次に、
図13のステップS106に示した対応付け処理の処理手順について説明する。
図14は、対応付け処理の処理手順を示すフローチャートである。
図14に示すように、情報処理装置100の対応付け部153は、未対応の分岐コマンドのノードがない場合には(ステップS201,No)、対応付け処理を終了する。
【0074】
一方、対応付け部153は、未対応の分岐コマンドのノードがある場合には(ステップS201,Yes)、対象のノードを取り出す(ステップS202)。対応付け部153は、対応が一意に特定できる作業履歴が無い場合には(ステップS203,No)、ステップS205に移行する。
【0075】
一方、対応付け部153は、対応が一意に特定できない作業履歴がない場合には(ステップS205,No)、ステップS201に移行する。対応付け部153は、対応が一意に特定できない作業履歴がある場合には(ステップS205,Yes)、ステップS206に移行する。
【0076】
対応付け部153は、比較対象が拡大可能でない場合(ステップS206,No)、対応付け処理を終了する。一方、対応付け部153は、比較対象が拡大可能である場合には(ステップS206,Yes)、比較対象を拡大し(ステップS207)、ステップS203に移行する。
【0077】
次に、本実施例1に係る情報処理装置100の効果について説明する。情報処理装置100は、作業履歴Wnから作業手順を抽出してコマンド実行結果を対応付け、作業手順の分岐コマンドに対応付けられたコマンド実行結果を集約した集約データを生成する。情報処理装置100は、集約データを基にして分岐条件データを抽出する。これによって、分岐コマンドが存在する場合に、分岐コマンドのコマンド実行結果に応じたコマンドの手順(分岐条件込みの作業手順)を抽出することができる。作業員は、分岐条件データを参照することで、どのようなコマンド実行結果により、どのような手順がなされたのかを参照することができ、作業の効率化を図ることができる。
【0078】
情報処理装置100は、作業履歴Wnから複数の作業手順を抽出し、作業手順の識別情報と、分岐コマンドのコマンド実行結果とを対応付ける処理を実行する。これによって、作業手順毎に、分岐コマンドにより実行されたコマンド実行結果を特定することが可能となる。
【0079】
情報処理装置100は、識別情報に対応付けられたコマンドの実行結果を複数の特徴に分割し、分割した特徴のうち、識別情報によって識別される作業手順の要因となる特徴を、分岐条件として抽出する。これによって、不要な特徴を除いて、作業手順が選択された要因となる特徴のみを、抽出することができる。
【0080】
情報処理装置100は、分岐コマンドを基準とした対象範囲を設定し、対象範囲に含まれる複数のコマンドと、作業履歴の複数のコマンドの一致率を基にして、作業履歴に含まれる複数のコマンドのうち、分岐コマンドに対応するコマンドを特定する。これによって、作業履歴に含まれる複数のコマンドのうち、分岐コマンドに対応するコマンドを一意に対応付けることができる。
【実施例2】
【0081】
次に、本実施例2に係る情報処理装置について説明する。実施例1で説明した情報処理装置100の説明では、コマンドに対応するコマンド実行結果が、1行のパターンであったが、コマンド実行結果のパターンが複雑になる場合がある。本実施例2に係る情報処理装置は、複雑なパターンのコマンド実行結果を、整形する処理を実行する。
【0082】
図15は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。
図15に示すように、この情報処理装置200は、通信部210、入力部220、表示部230、記憶部240、制御部250を有する。
【0083】
通信部210、入力部220、表示部230に関する説明は、実施例1の通信部110、入力部120、表示部130に関する説明と同様である。
【0084】
記憶部240は、作業履歴DB241、手順データ242、対応付けデータ243、分岐条件付き手順データ244を有する。記憶部240は、RAM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
【0085】
作業履歴DB241は、複数の作業履歴のデータを蓄積するデータベースである。作業履歴DB241のデータ構造は、
図4で説明した作業履歴DB141のデータ構造に対応する。
【0086】
手順データ242は、作業履歴DB241に蓄積された作業履歴Wnを基にして生成される手順データである。手順データ242には、識別情報と、手順とが対応付けられる。
【0087】
対応付けデータ243は、手順データ242に含まれるコマンドのうち、分岐コマンドと、分岐コマンドのコマンド実行結果とを対応付けたデータである。
【0088】
分岐条件付き手順データ244は、手順データ242と、分岐条件とを組み合わせたデータである。
【0089】
制御部250は、取得部251と、手順抽出部252と、対応付け部253と、分岐条件抽出部254と、出力制御部255とを有する。制御部250は、CPUやMPUなどによって実現できる。また、制御部250は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
【0090】
取得部251は、ネットワークを介して、外部装置から作業履歴Wnを取得する処理部である。取得部251は、取得した作業履歴Wnを、作業履歴DB241に格納する。
【0091】
手順抽出部252は、作業履歴DB241に格納された作業履歴Wnを基にして、作業手順を抽出することで、手順データ242を生成する処理部である。手順抽出部252は、プロセスマイニングなどの手法を用いて、手順を抽出する。手順抽出部252の処理は、実施例1の手順抽出部152の処理に対応する。
【0092】
対応付け部253は、手順データ242に含まれる複数の手順を比較して、複数のコマンドのうち、分岐コマンドを特定する。対応付け部253は、特定した分岐コマンドと、作業履歴Wnとを基にして、分岐コマンドによるコマンド実行結果を特定する。対応付け部253は、分岐コマンドと、コマンド実行結果とを対応付けることで、対応付けデータ243を生成する。対応付け部253の処理は、実施例1の対応付け部153の処理に対応する。
【0093】
分岐条件抽出部254は、対応付けデータ243を基にして、分岐条件を抽出し、分岐条件付き手順データ244を生成する処理部である。分岐条件抽出部254は、整形処理、集約データを生成する処理、分岐条件を抽出する処理、分岐条件付き手順データを生成する処理を実行する。
【0094】
分岐条件抽出部254が実行する「整形処理」について説明する。分岐条件抽出部254は、対応付けデータ243を参照し、コマンド実行結果に対応する分岐コマンドが、所定のコマンドパターンであるか否かを判定する。所定のコマンドパターンには「ps-fe」、「du-s」、「sort」、「ps」、「grep」等が含まれる。
【0095】
分岐条件抽出部254は、分岐コマンドが所定のコマンドパターンに対応する場合、コマンド実行結果に対して、第1整形処理を実行する。
【0096】
分岐条件抽出部254は、分岐コマンドが所定のコマンドパターンに対応しない場合、コマンド実行結果が、定型か不定型かを判定する。分岐条件抽出部254は、コマンド実行結果の各行を走査し、各行が共通性を有している場合に、コマンド実行結果が定型であると判定する。
【0097】
たとえば、分岐条件抽出部254は、各行の文字列または数字(以下、単に文字列)が、カンマあるいは、スペース(以下単に、「区切り」と表示する)で区切られており、区切りの数が、各行で同一である場合に、コマンド実行結果が定型であると判定する。分岐条件抽出部254は、コマンド実行結果の行数が所定の行数である場合に、定型と判定してもよい。また、分岐条件抽出部254は、各コマンド実行結果の最上行の文字列が一致する場合に、定型と判定してもよい。
【0098】
分岐条件抽出部254は、コマンド実行結果の各行の区切りが同一でない場合、行数が所定の行数でない場合、または、最上行の文字列が一致しない場合に、不定型と判定する。
【0099】
分岐条件抽出部254は、コマンド実行結果が定型である場合、第2整形処理を実行する。分岐条件抽出部254は、コマンド実行結果が不定型である場合、第3整形処理、第4整形処理、第5整形処理、第6整形処理のうち、いずれか一つの整形処理を実行する。
【0100】
分岐条件抽出部254が実行する「第1整形処理」について説明する。
図16は、第1整形処理を説明するための図である。ここでは、コマンド実行結果C1-1を用いて説明する。分岐条件抽出部254は、コマンド実行結果C1-1を整形することで、コマンド実行結果C1-2を生成する。
【0101】
コマンド実行結果C1-1の0行目(最上行)は、ヘッダ行となる。分岐条件抽出部254は、コマンド実行結果C1-1のヘッダ行の各文字列「Filesys」、「Use%」、「Mounted」に、予め定められたファイルシステム名を追記した文字列を、コマンド実行結果C1-2の1行目に設定する。たとえば、分岐条件抽出部254は、ファイルシステム名が「udev」、「tmpfs」である場合、「Filesys-udev,Use%-udev,Mounted-udev,Filesys-tmpfs,Use%-tmpfs,Mounted-tmpfs」を、コマンド実行結果C1-2の0行目に設定する。
図16に示すように、ファイルシステム名と、ヘッダ行の各文字列「Filesys」、「Use%」、「Mounted」との組み合わせが、コマンド実行結果C1-2の0行目に設定される。
【0102】
分岐条件抽出部254は、コマンド実行結果C1-1の1行目の文字列、2行目の文字列、3行目の文字列を、1行の文字列に整形し、コマンド実行結果C1-2の1行目に設定する。各文字列は、カンマで区切られる。たとえば、コマンド実行結果C1-1の1行目の文字列を「udev 0% /dev」、2行目の文字列を「tmpfs 1% /run」、3行目の文字列を「/dev/sda1 66% /」とする。そうすると、コマンド実行結果C1-2の1行目には「udev,0%,/dev,tmpfs,1%,/run,/dev/sda1,66%,/」が設定される。
【0103】
分岐条件抽出部254が実行する「第2整形処理」について説明する。
図17は、第2整形処理を説明するための図である。ここでは、コマンド実行結果C2-1を用いて説明する。分岐条件抽出部254は、コマンド実行結果C2-1を整形することで、コマンド実行結果C2-2を生成する。
【0104】
コマンド実行結果C2-1の0行目(最上行)は、ヘッダ行となる。分岐条件抽出部254は、コマンド実行結果C2-1のヘッダ行の各文字列「Filesystem」、「1K-blocks」、「Used」、「Available」、「Use%」、「Mounted on」に、行の数値を追記した文字列を、コマンド実行結果C1-2の0行目に設定する。たとえば、コマンド実行結果C2-1には、ヘッダ行を除いて、1行目~2行目が含まれる。分岐条件抽出部254は、「Filesystem-1,1K-blocks-1,Used-1,Available-1,Use%-1,Mounted on-1,Filesystem-2,1K-blocks-2,Used-2,Available-2,Use%-2,Mounted on-2」を、コマンド実行結果C2-2の0行目に設定する。
【0105】
分岐条件抽出部254は、コマンド実行結果C2-1の1行目の文字列、2行目の文字列、1行の文字列に整形し、コマンド実行結果C2-2の1行目に設定する。各文字列は、カンマで区切られる。たとえば、コマンド実行結果C2-1の1行目の文字列を「udev 4062036 0 4062036 0% /dev」、2行目の文字列を「tmpfs 816844 2932 813912 1% /run」とする。そうすると、コマンド実行結果C2-2の1行目には「udev,4062036,0,4062036,0%,/dev,tmpfs,816844,2932,813912,1%,/run」が設定される。
【0106】
分岐条件抽出部254が実行する「第3整形処理」について説明する。
図18は、第3整形処理を説明するための図である。ここでは、コマンド実行結果C3-1を用いて説明する。分岐条件抽出部254は、コマンド実行結果C3-1を整形することで、コマンド実行結果C3-3を生成する。
【0107】
分岐条件抽出部254は、コマンド実行結果C3-1の文字列から、「Key=value」の部分だけを抽出することで、中間データC3-2を生成する。
図18に示す例では、「Memsize=512」、「BW=10」が、中間データC3-2に設定されている。
【0108】
分岐条件抽出部254は、中間データC3-2に含まれる各「Key=value」の「Kye」部分を、順に、コマンド実行結果C3-3の0行目に設定する。各Kyeは、カンマで区切られる。分岐条件抽出部254は、中間データC3-2に含まれる各「Key=value」の「value」部分を、順に、コマンド実行結果C3-3の1行目に設定する。各valueは、カンマで区切られる。
【0109】
分岐条件抽出部254が実行する「第4整形処理」について説明する。
図19は、第4整形処理を説明するための図である。ここでは、コマンド実行結果C4-1,C5-1を用いて説明する。たとえば、コマンド実行結果C4-1は、作業履歴W12に含まれる、分岐コマンドのコマンド出力結果とする。コマンド実行結果C5-1は、作業履歴W13に含まれる、分岐コマンド(作業履歴W12の分岐コマンドと同一)のコマンド実行結果とする。
【0110】
分岐条件抽出部254は、コマンド実行結果C4-1を整形することで、コマンド実行結果C4-3を生成する。分岐条件抽出部254は、コマンド実行結果C5-1を整形することで、コマンド実行結果C5-3を生成する。
【0111】
分岐条件抽出部254は、コマンド実行結果C4-1の文字列を単語に切って、出現順に並べることで、中間データC4-2を生成する。分岐条件抽出部254は、コマンド実行結果C5-1の文字列を単語に切って、出現順に並べることで、中間データC5-2を生成する。
【0112】
分岐条件抽出部254は、中間データC4-2の各単語と、中間データC5-2の各単語とを先頭から順に比較し、同一の単語は一つの単語に統合し、異なる単語は、各単語を設定することで、ヘッダ情報H1を生成する。たとえば、中間データC4-2の各単語と、中間データC3-2の各単語とが、先頭から、N番目まで同一で、N+1番目において相互に異なるものとする。この場合、分岐条件抽出部254は、中間データC4-2の各単語の1番目からN番目の各単語を、ヘッダ情報H1に設定する。分岐条件抽出部254は、ヘッダ情報H1のN+1番目の単語に、中間データC4-2のN+1番目の単語を設定し、ヘッダ情報H1のN+2番目の単語に、中間データC5-2のN+1番目の単語を設定する。分岐条件抽出部254は、ヘッダ情報H1の各単語に、昇順で番号を割り振る。
【0113】
分岐条件抽出部254は、ヘッダ情報H1を、コマンド実行結果C4-3の0行目に設置する。分岐条件抽出部254は、コマンド実行結果C4-3の0行目の各単語(番号を除いた)と、中間データC4-2の各単語とを比較し、一致する単語については「1」を1行目に設定し、一致しない単語については「0」を1行目に設定する。分岐条件抽出部254は、一致しない単語を検出した場合、一致しない単語(0行目の単語)の次の単語から、比較を再開する。分岐条件抽出部254は、係る処理を実行することで、コマンド実行結果C4-3を生成する。
【0114】
分岐条件抽出部254は、ヘッダ情報H1を、コマンド実行結果C5-3の0行目に設置する。分岐条件抽出部254は、コマンド実行結果C5-3の0行目の各単語(番号を除いた)と、中間データC5-2の各単語とを比較し、一致する単語については「1」を1行目に設定し、一致しない単語については「0」を1行目に設定する。分岐条件抽出部254は、一致しない単語を検出した場合、一致しない単語(0行目の単語)の次の単語から、比較を再開する。分岐条件抽出部254は、係る処理を実行することで、コマンド実行結果C5-3を生成する。
【0115】
分岐条件抽出部254が実行する「第5整形処理」について説明する。
図20は、第5整形処理を説明するための図である。ここでは、コマンド実行結果C6-1,C7-1を用いて説明する。たとえば、コマンド実行結果C6-1は、作業履歴W12に含まれる、分岐コマンドのコマンド出力結果とする。コマンド実行結果C7-1は、作業履歴W13に含まれる、分岐コマンド(作業履歴W12の分岐コマンドと同一)のコマンド実行結果とする。
【0116】
分岐条件抽出部254は、コマンド実行結果C6-1を整形することで、コマンド実行結果C6-3を生成する。分岐条件抽出部254は、コマンド実行結果C7-1を整形することで、コマンド実行結果C7-3を生成する。
【0117】
分岐条件抽出部254は、コマンド実行結果C6-1の文字列を単語に切って、辞書順に並べることで、中間データC6-2を生成する。分岐条件抽出部254は、コマンド実行結果C7-1の文字列を単語に切って、辞書順に並べることで、中間データC7-2を生成する。
【0118】
分岐条件抽出部254は、中間データC6-2の各単語と、中間データC7-2の各単語とを先頭から順に比較し、同一の単語は一つの単語に統合し、異なる単語は、各単語を設定することで、ヘッダ情報H2を生成する。たとえば、中間データC6-2の各単語と、中間データC7-2の各単語とが、先頭から、N番目まで同一で、N+1番目において相互に異なるものとする。この場合、分岐条件抽出部254は、中間データC6-2の各単語の1番目からN番目の各単語を、ヘッダ情報H2に設定する。分岐条件抽出部254は、ヘッダ情報H2のN+1番目の単語に、中間データC6-2のN+1番目の単語を設定し、ヘッダ情報H2のN+2番目の単語に、中間データC7-2のN+1番目の単語を設定する。分岐条件抽出部254は、ヘッダ情報H2の各単語に、昇順で番号を割り振る。
【0119】
分岐条件抽出部254は、ヘッダ情報H2を、コマンド実行結果C6-3の0行目に設置する。分岐条件抽出部254は、コマンド実行結果C6-3の0行目の各単語(番号を除いた)と、中間データC6-2の各単語とを比較し、一致する単語については「1」を1行目に設定し、一致しない単語については「0」を1行目に設定する。分岐条件抽出部254は、一致しない単語を検出した場合、一致しない単語(0行目の単語)の次の単語から、比較を再開する。分岐条件抽出部254は、係る処理を実行することで、コマンド実行結果C6-3を生成する。
【0120】
分岐条件抽出部254は、ヘッダ情報H2を、コマンド実行結果C7-3の0行目に設置する。分岐条件抽出部254は、コマンド実行結果C7-3の0行目の各単語(番号を除いた)と、中間データC7-2の各単語とを比較し、一致する単語については「1」を1行目に設定し、一致しない単語については「0」を1行目に設定する。分岐条件抽出部254は、一致しない単語を検出した場合、一致しない単語(0行目の単語)の次の単語から、比較を再開する。分岐条件抽出部254は、係る処理を実行することで、コマンド実行結果C7-3を生成する。
【0121】
分岐条件抽出部254が実行する「第6整形処理」について説明する。
図21は、第6整形処理を説明するための図である。ここでは、コマンド実行結果C8-1,C9-1を用いて説明する。たとえば、コマンド実行結果C8-1は、作業履歴W12に含まれる、分岐コマンドのコマンド出力結果とする。コマンド実行結果C9-1は、作業履歴W13に含まれる、分岐コマンド(作業履歴W12の分岐コマンドと同一)のコマンド実行結果とする。
【0122】
分岐条件抽出部254は、コマンド実行結果C8-1を整形することで、コマンド実行結果C8-4を生成する。分岐条件抽出部254は、コマンド実行結果C9-1を整形することで、コマンド実行結果C9-4を生成する。
【0123】
分岐条件抽出部254は、コマンド実行結果C8-1の文字列を単語に切って、辞書順に並べることで、中間データC8-2を生成する。分岐条件抽出部254は、コマンド実行結果C9-1の文字列を単語に切って、辞書順に並べることで、中間データC9-2を生成する。
【0124】
分岐条件抽出部254は、中間データC8-2の同一の単語をカウントし、単語と、カウントした数と対応付けることで、中間データC8-3を生成する。分岐条件抽出部254は、同一の単語を、一つの単語にまとめる。
【0125】
分岐条件抽出部254は、中間データC9-2の同一の単語をカウントし、単語と、カウントした数と対応付けることで、中間データC9-3を生成する。分岐条件抽出部254は、同一の単語を、一つの単語にまとめる。
【0126】
分岐条件抽出部254は、分岐条件抽出部254は、中間データC8-3の各単語(数値を除く)と、中間データC9-3の各単語(数値を除く)とを比較し、同一の単語は一つの単語に統合し、異なる単語は、各単語を設定することで、ヘッダ情報H3を生成する。
【0127】
分岐条件抽出部254は、ヘッダ情報H3を、コマンド実行結果C8-4の0行目に設置する。分岐条件抽出部254は、コマンド実行結果C8-4の0行目の各単語と、中間データC8-3の各単語とを順に比較し、一致する単語に対応付けられた数値を、コマンド実行結果C8-4の1行目に設置する処理を行う。分岐条件抽出部254は、コマンド実行結果C8-4の0行目の単語に一致する単語が、中間データC8-3に存在しない場合、0を設定する。分岐条件抽出部254は、係る処理を実行することで、コマンド実行結果C8-4を生成する。
【0128】
分岐条件抽出部254は、ヘッダ情報H3を、コマンド実行結果C9-4の0行目に設置する。分岐条件抽出部254は、コマンド実行結果C9-4の0行目の各単語と、中間データC9-3の各単語とを順に比較し、一致する単語に対応付けられた数値を、コマンド実行結果C9-4の1行目に設置する処理を行う。分岐条件抽出部254は、コマンド実行結果C9-4の0行目の単語に一致する単語が、中間データC9-3に存在しない場合、0を設定する。分岐条件抽出部254は、係る処理を実行することで、コマンド実行結果C9-4を生成する。
【0129】
上記のように、分岐条件抽出部254は、上記の整形処理を実行することで、複数行のコマンド実行結果を、1行のコマンド実行結果に整形することができる。
【0130】
分岐条件抽出部254が実行する「集約データを生成する処理」について説明する。分岐条件抽出部254は、対応付けデータ243を参照し、分岐コマンドに対応付けられたコマンド実行結果を集約(収集)することで、集約データを生成する。集約データは、実施例1で説明したように、識別情報と、分岐コマンドの実行結果とが対応付けられる。
【0131】
たとえば、
図19で説明したコマンド実行結果C4-3、C5-3に基づく集約データは、
図22に示すものとなる。
図22は、実施例2に係る集約データの一例を示す図である。
図22に示すように、整形されたコマンド実行結果が、手順を識別する識別情報に対応付けられる。
【0132】
図15の説明に戻る。分岐条件抽出部254が実行する「分岐条件を抽出する処理」について説明する。分岐条件抽出部254は、集約データを基にして、各手順の要因となる特徴を、分割したコマンド実行結果から抽出することで、分岐条件を抽出する。分岐条件抽出部254が、分岐条件を抽出する処理は、実施例1の分岐条件抽出部154と同様である。
【0133】
分岐条件抽出部254が実行する「分岐条件付き手順データを生成する処理」について説明する。分岐条件抽出部254は、分岐条件を抽出する処理で抽出した分岐条件データを、分岐コマンドと対応付けて、関係を保持する。たとえば、分岐条件抽出部254は、分岐条件データと、手順データ242のブロックツリーとを基にして、分岐コマンドに対応するノードの分岐と、コマンド実行結果とを対応付けることで、分岐条件付き手順データ244を生成する。
【0134】
出力制御部255は、分岐条件付き手順データ244を、出力する処理部である。たとえば、出力制御部255は、入力部220を操作するユーザから、手順出力の要求を受け付けた場合、分岐条件付き手順データ244を、表示部230に出力して表示させる。
【0135】
次に、本実施例2に係る情報処理装置200の処理手順の一例について説明する。ここでは、情報処理装置200の分岐条件抽出部254が、整形処理を実行する処理手順について説明する。その他の処理手順は、実施例1の情報処理装置100の処理手順と同様である。
【0136】
図23は、整形処理の処理手順を示すフローチャートである。
図23に示すように、情報処理装置200の分岐条件抽出部254は、分岐コマンドが所定のコマンドパターンと一致するか否かを判定する(ステップS301)。分岐条件抽出部254は、分岐コマンドが所定のコマンドパターンと一致する場合(ステップS301,Yes)、コマンド実行結果に対して第1整形処理を実行し(ステップS302)、整形処理を終了する。
【0137】
一方、分岐条件抽出部254は、分岐コマンドが所定のコマンドパターンと一致しない場合(ステップS301,No)、コマンド実行結果が定型か否かを判定する(ステップS303)。分岐条件抽出部254は、コマンド実行結果が定型である場合(ステップS303,Yes)、コマンド実行結果に対して第2整形処理を実行し(ステップS304)、整形処理を終了する。
【0138】
一方、分岐条件抽出部254は、コマンド実行結果が定型でない場合(ステップS303,No)、不定型の整形処理(第3、4、5、6整形処理のうちいずれか一つの整形処理)を実行し(ステップS305)、整形処理を終了する。
【0139】
次に、本実施例2に係る情報処理装置200の効果について説明する。情報処理装置200は、集約されたコマンド実行結果に対して整形処理を実行することで、コマンド実行結果の形式が複雑な場合であっても、手順の要因となる分岐条件を抽出することができる。
【0140】
次に、上記実施例に示した情報処理装置100(200)と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。
図24は、実施例の情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
【0141】
図24に示すように、コンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る読み取り装置304と、有線または無線ネットワークを介して、外部装置との間でデータの授受を行う通信装置305とを有する。また、コンピュータ300は、各種情報を一時記憶するRAM306と、ハードディスク装置307とを有する。そして、各装置301~307は、バス308に接続される。
【0142】
ハードディスク装置307は、取得プログラム307a、手順抽出プログラム307b、対応付けプログラム307c、分岐条件抽出プログラム307d、出力制御プログラム307eを有する。また、CPU301は、各プログラム307a~307eを読み出してRAM306に展開する。
【0143】
取得プログラム307aは、取得プロセス306aとして機能する。手順抽出プログラム307bは、手順抽出プロセス306bとして機能する。対応付けプログラム307cは、対応付けプロセス306cとして機能する。分岐条件抽出プログラム307dは、分岐条件抽出プロセス306dとして機能する。出力制御プログラム307eは、出力制御プロセス306eとして機能する。
【0144】
取得プロセス306aの処理は、取得部151,251の処理に対応する。手順抽出プロセス306bの処理は、手順抽出部152,252の処理に対応する。対応付けプロセス306cは、対応付け部153,253の処理に対応する。分岐条件抽出プロセス306dは、分岐条件抽出部154,254の処理に対応する。出力制御プロセス306eは、出力制御部155,255の処理に対応する。
【0145】
なお、各プログラム307a~307eについては、必ずしも最初からハードディスク装置307に記憶させておかなくても良い。例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD-ROM、DVD、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム307a~307eを読み出して実行するようにしてもよい。
【0146】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0147】
(付記1)複数のコマンドおよび前記複数のコマンドの実行結果を含む作業履歴を基にして、前記複数のコマンドを、コマンドの実行順に並べた作業手順であって、一つのコマンドから2つ以上のコマンドに分岐する条件分岐部分を含む作業手順を抽出し、
前記作業手順に含まれる前記複数のコマンドに対して、コマンドの実行結果をそれぞれ対応付け、
前記条件分岐部分のコマンドに対応付けられたコマンドの実行結果を収集し、
収集したコマンドの実行結果を基にして、前記条件分岐部分の分岐条件を抽出する
処理をコンピュータに実行させることを特徴とする抽出プログラム。
【0148】
(付記2)前記作業手順を抽出する処理は、複数の作業手順を抽出し、前記コマンドの実行結果を収集する処理は、前記条件分岐部分のコマンドの実行結果と、前記作業手順を識別する識別情報とを対応付けることを特徴とする付記1に記載の抽出プログラム。
【0149】
(付記3)前記分岐条件を抽出する処理は、前記識別情報に対応付けられたコマンドの実行結果を複数の特徴に分割し、分割した特徴のうち、前記識別情報によって識別される作業手順の要因となる特徴を、前記分岐条件として抽出することを特徴とする付記2に記載の抽出プログラム。
【0150】
(付記4)前記収集する処理によって収集されたコマンドの実行結果を整形する処理を更に実行し、前記分岐条件を抽出する処理は、整形されたコマンドの実行結果を基にして、前記条件分岐部分の分岐条件を抽出することを特徴とする付記1、2または3に記載の抽出プログラム。
【0151】
(付記5)前記条件分岐部分のコマンドを基準とした対象範囲を設定し、対象範囲に含まれる複数のコマンドと、前記作業履歴の複数のコマンドの一致率を基にして、前記作業履歴に含まれる複数のコマンドのうち、前記条件分岐部分のコマンドに対応するコマンドを特定する処理を更に実行することを特徴とする付記1~4のいずれか一つに記載の抽出プログラム。
【0152】
(付記6)コンピュータが実行する抽出方法であって、
複数のコマンドおよび前記複数のコマンドの実行結果を含む作業履歴を基にして、前記複数のコマンドを、コマンドの実行順に並べた作業手順であって、一つのコマンドから2つ以上のコマンドに分岐する条件分岐部分を含む作業手順を抽出し、
前記作業手順に含まれる前記複数のコマンドに対して、コマンドの実行結果をそれぞれ対応付け、
前記条件分岐部分のコマンドに対応付けられたコマンドの実行結果を収集し、
収集したコマンドの実行結果を基にして、前記条件分岐部分の分岐条件を抽出する
処理を実行することを特徴とする抽出方法。
【0153】
(付記7)前記作業手順を抽出する処理は、複数の作業手順を抽出し、前記コマンドの実行結果を収集する処理は、前記条件分岐部分のコマンドの実行結果と、前記作業手順を識別する識別情報とを対応付けることを特徴とする付記6に記載の抽出方法。
【0154】
(付記8)前記分岐条件を抽出する処理は、前記識別情報に対応付けられたコマンドの実行結果を複数の特徴に分割し、分割した特徴のうち、前記識別情報によって識別される作業手順の要因となる特徴を、前記分岐条件として抽出することを特徴とする付記7に記載の抽出方法。
【0155】
(付記9)前記収集する処理によって収集されたコマンドの実行結果を整形する処理を更に実行し、前記分岐条件を抽出する処理は、整形されたコマンドの実行結果を基にして、前記条件分岐部分の分岐条件を抽出することを特徴とする付記6、7または8に記載の抽出方法。
【0156】
(付記10)前記条件分岐部分のコマンドを基準とした対象範囲を設定し、対象範囲に含まれる複数のコマンドと、前記作業履歴の複数のコマンドの一致率を基にして、前記作業履歴に含まれる複数のコマンドのうち、前記条件分岐部分のコマンドに対応するコマンドを特定する処理を更に実行することを特徴とする付記6~9のいずれか一つに記載の抽出方法。
【0157】
(付記11)複数のコマンドおよび前記複数のコマンドの実行結果を含む作業履歴を基にして、前記複数のコマンドを、コマンドの実行順に並べた作業手順であって、一つのコマンドから2つ以上のコマンドに移行する条件分岐部分を含む作業手順を抽出する手順抽出部と、
前記作業手順に含まれる前記複数のコマンドに対して、コマンドの実行結果をそれぞれ対応付ける対応付け部と、
前記条件分岐部分のコマンドに対応付けられたコマンドの実行結果を収集し、収集したコマンドの実行結果を基にして、前記条件分岐部分の分岐条件を抽出する分岐条件抽出部と
を有することを特徴とする情報処理装置。
【0158】
(付記12)前記手順抽出部は、複数の作業手順を抽出し、前記コマンドの実行結果を収集する処理は、前記条件分岐部分のコマンドの実行結果と、前記作業手順を識別する識別情報とを対応付けることを特徴とする付記11に記載の情報処理装置。
【0159】
(付記13)前記分岐条件抽出部は、前記識別情報に対応付けられたコマンドの実行結果を複数の特徴に分割し、分割した特徴のうち、前記識別情報によって識別される作業手順の要因となる特徴を、前記分岐条件として抽出することを特徴とする付記12に記載の情報処理装置。
【0160】
(付記14)前記分岐条件抽出部は、収集したコマンドの実行結果を整形する処理を更に実行し、整形したコマンドの実行結果を基にして、前記条件分岐部分の分岐条件を抽出することを特徴とする付記11、12または13に記載の情報処理装置。
【0161】
(付記15)前記対応付け部は、前記条件分岐部分のコマンドを基準とした対象範囲を設定し、対象範囲に含まれる複数のコマンドと、前記作業履歴の複数のコマンドの一致率を基にして、前記作業履歴に含まれる複数のコマンドのうち、前記条件分岐部分のコマンドに対応するコマンドを特定する処理を更に実行することを特徴とする付記11~14のいずれか一つに記載の情報処理装置。
【符号の説明】
【0162】
100,200 情報処理装置
110,210 通信部
120,220 入力部
130,230 表示部
140,240 記憶部
141,241 作業履歴DB
142,242 手順データ
143,243 対応付けデータ
144,244 分岐条件付き手順データ
150,250 制御部
151,251 取得部
152,252 手順抽出部
153,253 対応付け部
154,254 分岐条件抽出部
155,255 出力制御部