(57)【要約】【課題】様々な出力を持つジョブ群から選択されたジョブとそのジョブの出力を入力とするジョブとを簡便な操作で接続して実行可能とする。【解決手段】実施形態のジョブ実行制御装置は、ユーザ操作を受け付けるＵＩ画面の表示を制御する表示制御部と、ＵＩ画面を利用したユーザ操作に応じてジョブを実行するとともに、ジョブ実行履歴を記録するジョブ実行部とを備える。表示制御部は、ＵＩ画面にジョブ定義一覧を表示させ、該ジョブ定義一覧からいずれかのジョブ定義が選択されると、選択されたジョブ定義に従って実行するジョブの入力として利用可能な１つ以上の実行済みジョブを入力候補としてＵＩ画面に表示させる。ジョブ実行部は、入力候補から実行済みジョブが選択されると、選択された実行済みジョブの出力を入力として、ジョブ定義一覧から選択されたジョブ定義に従ってジョブを実行する。【選択図】図１
2018206315.tif 000002
【特許請求の範囲】
【請求項１】
ジョブ定義により定義されたジョブの実行を制御するジョブ実行制御装置であって、
ユーザ操作を受け付けるＵＩ画面の表示を制御する表示制御部と、
前記ＵＩ画面を利用したユーザ操作に応じてジョブを実行するとともに、ジョブ実行履歴を記録するジョブ実行部と、を備え、
前記表示制御部は、前記ＵＩ画面にジョブ定義一覧を表示させ、該ジョブ定義一覧からいずれかのジョブ定義が選択されると、選択されたジョブ定義に従って実行するジョブの入力として利用可能な１つ以上の実行済みジョブを入力候補として前記ＵＩ画面に表示させ、
前記ジョブ実行部は、前記入力候補から実行済みジョブが選択されると、選択された実行済みジョブの出力を入力として、前記ジョブ定義一覧から選択されたジョブ定義に従ってジョブを実行する
ジョブ実行制御装置。
【請求項２】
前記表示制御部は、前記ジョブ定義一覧から選択されたジョブ定義に従って実行するジョブの出力を入力として利用可能な１つ以上のジョブ定義を第１の後続ジョブ候補として前記ＵＩ画面にさらに表示させ、
前記ジョブ実行部は、前記第１の後続ジョブ候補からジョブ定義がさらに選択された場合、前記ジョブ定義一覧から選択されたジョブ定義に従ってジョブを実行した後に、該ジョブの出力を入力として、前記第１の後続ジョブ候補から選択されたジョブ定義に従ってジョブを実行する
請求項１に記載のジョブ実行制御装置。
【請求項３】
前記ジョブ実行部は、実行済みジョブのジョブ定義に対して、該実行済みジョブの入力として利用した他の実行済みジョブのジョブ定義と、ジョブの実行が成功したか否かを表す情報とを対応付けた入力ジョブ定義履歴をさらに記録し、
前記表示制御部は、前記入力ジョブ定義履歴に基づいて、前記ジョブ定義一覧から選択されたジョブ定義に従って実行したジョブが成功したときの入力として利用した実績のあるジョブ定義を特定し、特定したジョブ定義に従って実行された実行済みジョブを前記入力候補として前記ＵＩ画面に表示させる
請求項１または２に記載のジョブ実行制御装置。
【請求項４】
前記ジョブ実行部は、実行済みジョブの出力の質を表すスコアを含む前記ジョブ実行履歴を記録し、
前記表示制御部は、前記入力候補となる実行済みジョブを前記スコアに応じた表示形態で前記ＵＩ画面に表示させる
請求項１乃至３のいずれか一項に記載のジョブ実行制御装置。
【請求項５】
前記表示制御部は、前記入力候補のうち前記スコアが基準値に満たない実行済みジョブが選択された場合に警告を表示させる
請求項４に記載のジョブ実行制御装置。
【請求項６】
前記ジョブ実行部は、前記入力候補のうち複数の実行済みジョブが選択された場合、選択された複数の実行済みジョブの出力を各々入力として、前記ジョブ定義一覧から選択されたジョブ定義に従ってジョブの実行を複数回繰り返す
請求項１乃至５のいずれか一項に記載のジョブ実行制御装置。
【請求項７】
前記ジョブ実行部は、複数回繰り返して実行したジョブの出力のうち、出力の質を表すスコアが最も高い出力をジョブの出力として採用する
請求項６に記載のジョブ実行制御装置。
【請求項８】
前記表示制御部は、実行中もしくは実行待ちのジョブを含む複数の実行済みジョブをノードとし、各ノードを前記複数の実行済みジョブの間の入出力関係を表すエッジで接続したジョブ履歴グラフを前記ＵＩ画面に表示させ、該ジョブ履歴グラフのノードとして表示されたいずれかの実行済みジョブが選択されると、選択された実行済みジョブの出力を入力として利用可能な１つ以上のジョブ定義を第２の後続ジョブ候補として前記ＵＩ画面に表示させ、
前記ジョブ実行部は、前記第２の後続ジョブ候補からジョブ定義が選択された場合、前記ジョブ履歴グラフから選択された実行済みジョブの出力を入力として、前記第２の後続ジョブ候補から選択されたジョブ定義に従ってジョブを実行する
請求項１乃至７のいずれか一項に記載のジョブ実行制御装置。
【請求項９】
前記ジョブ履歴グラフの一部の範囲が指定された場合に、指定された範囲に含まれる各ノードに対応する複数のジョブ定義と各ジョブ定義の入出力関係とを表すジョブ定義グラフを作成するジョブ定義グラフ作成部をさらに備え、
前記表示制御部は、前記ジョブ定義グラフが作成されると、前記ジョブ定義一覧を前記ＵＩ画面に表示させる際に、前記ジョブ定義グラフを含む前記ジョブ定義一覧を表示させ、
前記ジョブ実行部は、前記ジョブ定義一覧から前記ジョブ定義グラフが選択された場合は、該ジョブ定義グラフおよび該ジョブ定義グラフに含まれる複数のジョブ定義に従って複数のジョブを順次実行する
請求項８に記載のジョブ実行制御装置。
【請求項１０】
前記ジョブ実行履歴に基づいて、順次実行された複数のジョブに対応するジョブ定義群のパターンを所定の基準に従って抽出し、抽出したパターンに含まれる複数のジョブ定義と各ジョブ定義の入出力関係とを表すジョブ定義グラフを作成するジョブ定義グラフ作成部をさらに備え、
前記表示制御部は、前記ジョブ定義グラフが作成されると、前記ジョブ定義一覧を前記ＵＩ画面に表示させる際に、前記ジョブ定義グラフを含む前記ジョブ定義一覧を表示させ、
前記ジョブ実行部は、前記ジョブ定義一覧から前記ジョブ定義グラフが選択された場合は、該ジョブ定義グラフおよび該ジョブ定義グラフに含まれる複数のジョブ定義に従って複数のジョブを順次実行する
請求項１乃至８のいずれか一項に記載のジョブ実行制御装置。
【請求項１１】
前記ジョブ定義グラフ作成部は、頻出する前記ジョブ定義群のパターンを抽出して前記ジョブ定義グラフを作成する
請求項１０に記載のジョブ実行制御装置。
【請求項１２】
前記ジョブ実行部は、実行済みジョブの出力の質を表すスコアを含む前記ジョブ実行履歴を記録し、
前記ジョブ定義グラフ作成部は、順次実行された複数のジョブのスコア平均が基準値以上となる前記ジョブ定義群のパターンを抽出して前記ジョブ定義グラフを作成する
請求項１０に記載のジョブ実行制御装置。
【請求項１３】
前記ジョブ定義グラフ作成部は、順次実行された複数のジョブの数が基準値以上となる前記ジョブ定義群のパターンを抽出して前記ジョブ定義グラフを作成する
請求項１０に記載のジョブ実行制御装置。
【請求項１４】
前記ジョブ実行部は、実行済みジョブの実行を指示したユーザの情報を含む前記ジョブ実行履歴を記録し、
前記ジョブ定義グラフ作成部は、特定のユーザの指示に応じて順次実行された複数のジョブに対応する前記ジョブ定義群のパターンを抽出して前記ジョブ定義グラフを作成する
請求項１０に記載のジョブ実行制御装置。
【請求項１５】
ジョブ定義により定義されたジョブの実行を制御するジョブ実行制御装置により実行されるジョブ実行制御方法であって、
ユーザ操作を受け付けるＵＩ画面にジョブ定義一覧を表示し、
該ジョブ定義一覧からいずれかのジョブ定義が選択されると、選択されたジョブ定義に従って実行するジョブの入力として利用可能な１つ以上の実行済みジョブを入力候補として前記ＵＩ画面に表示し、
前記入力候補から実行済みジョブが選択されると、選択された実行済みジョブの出力を入力として、前記ジョブ定義一覧から選択されたジョブ定義に従ってジョブを実行するとともに、ジョブ実行履歴を記録する
ジョブ実行制御方法。
【請求項１６】
コンピュータを、ジョブ定義により定義されたジョブの実行を制御するジョブ実行制御装置として機能させるためのプログラムであって、
前記コンピュータに、
ユーザ操作を受け付けるＵＩ画面の表示を制御する表示制御部の機能と、
前記ＵＩ画面を利用したユーザ操作に応じてジョブを実行するとともに、ジョブ実行履歴を記録するジョブ実行部の機能と、を実現させ、
前記表示制御部は、前記ＵＩ画面にジョブ定義一覧を表示させ、該ジョブ定義一覧からいずれかのジョブ定義が選択されると、選択されたジョブ定義に従って実行するジョブの入力として利用可能な１つ以上の実行済みジョブを入力候補として前記ＵＩ画面に表示させ、
前記ジョブ実行部は、前記入力候補から実行済みジョブが選択されると、選択された実行済みジョブの出力を入力として、前記ジョブ定義一覧から選択されたジョブ定義に従ってジョブを実行する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ジョブ実行制御装置、ジョブ実行制御方法およびプログラムに関する。
【背景技術】
【０００２】
従来、アプリケーションに応じて実行される複数の処理とその実行順を示すジョブフローを登録し、登録したジョブフローが選択されると、そのジョブフローに従って複数の処理を順次実行することにより、操作性の向上を実現する技術が知られている。しかし、従来のジョブフローは、先に実行される処理の結果を次に実行される処理の入力として用いることを固定的に定めたものであるため、複数の処理の結果のいずれかを選択して次の処理の入力とすることができず、改善が求められる。なお、本明細書においては、ある入力を受け付けて所定の処理を行い、その処理の結果を出力する処理単位を「ジョブ」と呼ぶ。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４８６１８７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、様々な出力を持つジョブ群から選択されたジョブとそのジョブの出力を入力とするジョブとを簡便な操作で接続して実行可能とするジョブ実行制御装置、ジョブ実行制御方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態のジョブ実行制御装置は、ジョブ定義により定義されたジョブの実行を制御するジョブ実行制御装置であって、ユーザ操作を受け付けるＵＩ画面の表示を制御する表示制御部と、前記ＵＩ画面を利用したユーザ操作に応じてジョブを実行するとともに、ジョブ実行履歴を記録するジョブ実行部と、を備える。前記表示制御部は、前記ＵＩ画面にジョブ定義一覧を表示させ、該ジョブ定義一覧からいずれかのジョブ定義が選択されると、選択されたジョブ定義に従って実行するジョブの入力として利用可能な１つ以上の実行済みジョブを入力候補として前記ＵＩ画面に表示させる。前記ジョブ実行部は、前記入力候補から実行済みジョブが選択されると、選択された実行済みジョブの出力を入力として、前記ジョブ定義一覧から選択されたジョブ定義に従ってジョブを実行する。
【図面の簡単な説明】
【０００６】
【図１】図１は、ジョブ実行制御装置の機能的な構成例を示すブロック図である。
【図２】図２は、関連文書登録ジョブのジョブ定義を示す図である。
【図３】図３は、ユーザ単語作成ジョブのジョブ定義を示す図である。
【図４】図４は、辞書精度評価ジョブのジョブ定義を示す図である。
【図５】図５は、辞書作成ジョブのジョブ定義を示す図である。
【図６】図６は、ジョブ実行履歴の一例を示す図である。
【図７】図７は、関連文書登録ジョブにおける入力例を示す図である。
【図８】図８は、辞書精度評価ジョブにおける入力例を示す図である。
【図９】図９は、辞書精度評価ジョブにおける出力例を示す図である。
【図１０】図１０は、ジョブ実行時の処理手順の一例を示すフローチャートである。
【図１１】図１１は、ジョブ定義一覧ＵＩの一例を示す図である。
【図１２】図１２は、ジョブ実行ＵＩの一例を示す図である。
【図１３】図１３は、ジョブ実行ＵＩの一例を示す図である。
【図１４】図１４は、ジョブ実行ＵＩの一例を示す図である。
【図１５】図１５は、ジョブ履歴ＵＩの一例を示す図である。
【図１６】図１６は、ジョブを実行する際のユーザの操作手順の一例を示すフローチャートである。
【図１７】図１７は、ジョブ詳細ＵＩの一例を示す図である。
【図１８】図１８は、後続ジョブ実行ＵＩの一例を示す図である。
【図１９】図１９は、ジョブ履歴グラフの一部の範囲が選択された状態のジョブ履歴ＵＩを示す図である。
【図２０】図２０は、ジョブ定義グラフのデータ構造の一例を示す図である。
【図２１】図２１は、ジョブ定義グラフを含むジョブ定義一覧を表示するジョブ定義一覧ＵＩの一例を示す図である。
【図２２】図２２は、ジョブ定義グラフが選択された場合に表示されるジョブ実行ＵＩの一例を示す図である。
【図２３】図２３は、入力ジョブ定義履歴の一例を示す図である。
【図２４】図２４は、ジョブ実行成否履歴の一例を示す図である。
【図２５】図２５は、スコアを算出可能なジョブ定義の一例を示す図である。
【図２６】図２６は、スコアを含むジョブ実行履歴の一例を示す図である。
【図２７】図２７は、ジョブ実行ＵＩの一例を示す図である。
【図２８】図２８は、警告ＵＩの一例を示す図である。
【図２９】図２９は、ジョブ実行履歴から把握される実行済みジョブ群の入出力関係をグラフ化して示す図である。
【図３０】図３０は、ジョブフロー系列の一例を示す図である。
【図３１】図３１は、ジョブ実行制御装置のハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【０００７】
以下、実施形態のジョブ実行制御装置、ジョブ実行制御方法およびプログラムについて、図面を参照して詳細に説明する。
【０００８】
＜実施形態の概要＞
実施形態のジョブ実行制御装置は、一例として、ネットワークを利用したサーバ・クライアントシステムのサーバとして実現することができる。この場合、ジョブ実行制御装置は、ユーザが利用するクライアント端末に搭載されたブラウザを介して、ユーザ操作を受け付けるＵＩ（User  Interface）画面をクライアント端末の表示部に表示させ、このＵＩ画面を利用したユーザ操作に応じてジョブを実行する。
【０００９】
実施形態のジョブ実行制御装置が実行するジョブの処理内容は、ジョブ定義に記述されている。ジョブ定義は、ジョブに付加される識別子であるジョブタイプ、外部から入力を受け取る入力引数、処理内容を示すスクリプトなどから構成される。ジョブの処理結果は、実行されたジョブごとに個別に用意されるディレクトリ（ワークディレクトリ）にファイルとして出力される。入力引数は、ＵＩ画面を利用したユーザ操作に応じて与えられる。入力引数の種別としては、他の実行済みジョブの出力、もしくは、文字列やファイルパスなどの具体的な値がある。入力引数が他のジョブの出力である場合、スクリプトにはそのジョブのワークディレクトリが渡される。
【００１０】
実施形態のジョブ実行制御装置は、ＵＩ画面を利用したユーザ操作に応じて与えられる入力引数および指定されたジョブ定義のスクリプトを用いてジョブを実行して、出力をワークディレクトリに格納するとともに、ジョブ実行履歴を記録する。ジョブ実行履歴は、実行済みジョブ（実行待ちや実行中のジョブを含む）のジョブ定義、入力として与えられた引数、出力結果、完了時間、そのジョブの状態（実行不可、実行待ち、実行中、中止、完了、失敗など）などを含む。ジョブ実行履歴は、上述のワークディレクトリおよびそれに含まれるファイル群とは別に、データベース上に記録されて蓄積される。
【００１１】
以下では、音声認識用の辞書の作成や評価などを行う一連のジョブを題材として、実施形態のジョブ実行制御装置の構成および動作の具体例について説明する。音声認識用の辞書は、音響に関する特徴量を解析する音響モデルや、発話されたテキスト内に含まれる固有の名詞などを表すユーザ単語などから作成され、音声認識エンジンが音声をテキスト化するために用いられる。ユーザ単語は必須ではなく、作成済みの辞書に対してユーザ単語を後から追加してもよい。
【００１２】
音響モデルは、音声とそれを人手でテキストに変換した書き起こしの組を元に作成される。ユーザ単語は、音声に関連する文書から自然言語解析によって抽出された固有表現を元に作成される。音声と書き起こしの組は、辞書の性能評価用データとしても用いられ、音声認識結果と書き起こしの文字正解率が評価結果として使われる。なお、実施形態のジョブ実行制御装置が扱うことができるジョブは、以下の説明で例示するものに限らない。
【００１３】
＜第１の実施形態＞
図１は、本実施形態のジョブ実行制御装置１０の機能的な構成例を示すブロック図である。ジョブ実行制御装置１０は、図１に示すように、表示制御部１１と、ジョブ実行部１２と、ジョブ実行履歴検索部１３と、ジョブ定義グラフ作成部１４と、ジョブ定義蓄積部１５と、ジョブ実行履歴蓄積部１６と、ジョブ結果蓄積部１７とを備える。
【００１４】
表示制御部１１は、ユーザ操作を受け付けるＵＩ画面の表示を制御する。ＵＩ画面の具体例については、詳細を後述する。また、表示制御部１１は、ＵＩ画面を利用したユーザ操作に応じた操作情報をジョブ実行部１２やジョブ定義グラフ作成部１４に受け渡す機能を持つ。
【００１５】
ジョブ実行部１２は、ＵＩ画面を利用したユーザ操作に応じてジョブを実行するとともに、ジョブ実行履歴を記録してジョブ実行履歴蓄積部１６に格納する。
【００１６】
ジョブ実行履歴検索部１３は、ＵＩ画面で後述のジョブ履歴グラフを表示したり、入力候補となる実行済みジョブを表示したりするために、ジョブ実行履歴蓄積部１６に蓄積されたジョブ実行履歴を検索する。
【００１７】
ジョブ定義グラフ作成部１４は、ＵＩ画面で表示されるジョブ履歴グラフからユーザが一部の範囲を指定した場合に、その範囲に含まれる実行済みジョブに対応するジョブ定義群と各ジョブ定義の入出力関係を表すジョブ定義グラフを作成する。
【００１８】
ジョブ定義蓄積部１５は、事前に作成されたジョブ定義を蓄積する。また、ジョブ定義グラフ作成部１４によってジョブ定義グラフが作成されると、そのジョブ定義グラフもジョブ定義蓄積部１５に格納される。
【００１９】
ジョブ定義の一例を図２に示す。この図２に示すジョブ定義は、関連文書登録ジョブのジョブ定義である。ジョブ定義は、主に、‘type’、‘input’、‘script’の３つの情報を含む。‘type’以下に、ジョブに付加される識別子の情報として識別子そのものを表す‘name’と、ＵＩ画面上での表示名である‘description’が記述されている。‘input’以下に、入力として与える引数として、引数名である‘documents_dir’と、その引数の情報として引数のタイプを表す‘type’およびＵＩ画面上での表示名である’description‘が記述されている。引数の‘type’には、ファイルのパスを入力とする‘path’、他のジョブの出力（処理結果）を入力とする‘job’、文字列を入力とする‘string’などが存在する。‘script’以下に、そのジョブで実行する処理が記述されている。図２のジョブ定義では、ｂａｓｈで記述されたコマンドで‘script’が記述されている。‘$documents_dir’や‘$workdir’などは変数であり、対応する入力引数、そのジョブのワークディレクトリのパスで置換されてから実行が行われる。
【００２０】
図３にユーザ単語作成ジョブのジョブ定義を示す。ユーザ単語作成ジョブの‘documents_data_job’引数の‘type’は‘job’であり、他のジョブの出力を入力として受け取ることが示されている。また、その際に受け取ることが可能なジョブタイプを指定するための‘job_type’の記述がある。
【００２１】
図４に辞書精度評価ジョブのジョブ定義を示す。このジョブ定義では、複数の入力引数が‘input’として記述してある。また、‘type’が‘job’の引数が複数のジョブタイプを受け取ることが可能な場合、それらの配列が記述される。また、‘output’以下に、そのジョブの処理結果を出力するためのｂａｓｈスクリプトが記述されている。‘output’の記述を持つジョブ定義に従ってジョブを実行した場合、‘output’内のスクリプトを実行した標準出力結果がそのジョブの出力として記録される。この図４のジョブ定義では、‘script’内のｅｖａｌコマンドが出力するファイル‘precision.json’を標準出力に出力することを示している。
【００２２】
図５に辞書作成ジョブのジョブ定義を示す。辞書作成ジョブは、辞書精度評価ジョブと同様に複数の入力を受け付けるジョブである。図５に示すジョブ定義では、‘user_words_data_job’引数には‘optional：true’という指定がされており、これによりこの引数は任意の引数であり、入力を与えなくてもジョブの実行が可能であることを示している。
【００２３】
ジョブ実行部１２は、以上のようなジョブ定義に‘input’として記述された入力引数が入力として与えられると、そのジョブ定義に従ってジョブを実行することができる。
【００２４】
ジョブ実行履歴蓄積部１６は、上述のジョブ実行履歴を蓄積する。ジョブ実行履歴蓄積部１６に蓄積されるジョブ実行履歴の一例を図６に示す。ジョブ実行履歴は、例えば図６に示すように、実行済みジョブ（実行待ちや実行中のジョブを含む）を一意に特定するＩＤ（ジョブＩＤ）、その実行済みジョブのジョブ定義、入力、出力、完了時間、状態などを含む。
【００２５】
ジョブ定義は、そのジョブ定義に記述された‘type’の‘name’で識別される。完了時間はジョブの完了日時が記録されるが、図６では日付部分だけを示している。状態は、ジョブの状態を表し、ジョブの入力が揃わないために実行できないことを示す実行不可、ジョブの実行を待機していることを示す実行待ち、ジョブの実行が開始されたが完了していないことを示す実行中、ジョブの実行を中止したことを示す中止、ジョブの実行が完了したことを示す完了、ジョブの実行に失敗したことを示す失敗などがある。
【００２６】
入力は、各入力引数の値をＪＳＯＮで示したものである。図７に関連文書登録ジョブにおける入力例を示す。この図７の例では、‘documents_dir’引数に対して‘/work/marketing/meetings/’というpathが指定されている。図８に辞書精度評価ジョブにおける入力例を示す。この図８の例では、‘type’が‘job’の各引数に対して、ジョブＩＤで入力が指定されている。
【００２７】
出力は、ジョブ定義に‘output’が記述されている場合にその‘output’から出力される標準出力結果であり、入力と同様にＪＳＯＮで表される。図９に辞書精度評価ジョブにおける出力例を示す。この図９の例では、文字正解率が‘precision’というプロパティ名で示されている。
【００２８】
ジョブ結果蓄積部１７は、ジョブ実行部１２により実行されたジョブの処理結果（出力）を蓄積する。ジョブの処理結果は、ジョブ結果蓄積部１７に作成されたワークディレクトリにファイルとして出力され、ジョブ結果蓄積部１７に蓄積される。
【００２９】
次に、本実施形態のジョブ実行制御装置１０の動作を説明する。本実施形態のジョブ実行制御装置１０は、上述のように、ＵＩ画面を利用したユーザ操作に応じてジョブを実行する。ジョブの実行は、入力が揃った実行待ち状態のジョブから順次実行される。ジョブの入力として他のジョブの出力を利用する場合、他のジョブの実行が完了するまではそのジョブは実行不可状態となる。以下では、実行待ち状態のジョブが他のジョブの出力を入力として利用する場合を想定し、ジョブ実行時におけるジョブ実行制御装置１０の動作を説明する。
【００３０】
図１０は、本実施形態のジョブ実行制御装置１０によるジョブ実行時の処理手順の一例を示すフローチャートである。この図１０のフローチャートで示す一連の処理は、ジョブ実行制御装置１０のジョブ実行部１２により一定時間ごとに繰り返し実行される。
【００３１】
図１０のフローチャートで示す処理が開始されると、ジョブ実行部１２は、まずジョブ実行履歴蓄積部１６に蓄積されたジョブ実行履歴を参照し、実行待ち状態のジョブ（実行待ちジョブ）があるかどうかを確認する（ステップＳ１０１）。そして、実行待ちジョブがなければ（ステップＳ１０１：Ｎｏ）、ジョブ実行履歴内で実行不可状態となっているジョブを実行待ち状態に変更し（ステップＳ１０２）、処理を終了する。
【００３２】
一方、実行待ちジョブがある場合は（ステップＳ１０１：Ｙｅｓ）、ジョブ実行部１２は、その実行待ちジョブの入力に使われる他のジョブ（入力ジョブ）が完了状態かどうかを確認する（ステップＳ１０３）。そして、入力ジョブが完了していなければ（ステップＳ１０３：Ｎｏ）、実行待ちジョブの状態を実行不可に変更し（ステップＳ１０４）、ステップＳ１０１に戻って以降の処理を繰り返す。
【００３３】
一方、入力ジョブが完了している場合は（ステップＳ１０３：Ｙｅｓ）、ジョブ実行部１２は、実行待ちジョブの状態を実行中に変更し（ステップＳ１０５）、ジョブ結果蓄積部１７内にワークディレクトリを作成する（ステップＳ１０６）。そして、ジョブ実行部１２は、ジョブの実行に必要な入力を取得し（ステップＳ１０７）、ジョブ定義に記述されたスクリプト中の入力変数をステップＳ１０７で取得した値に置き換える（ステップＳ１０８）。その後、ジョブ実行部１２は、スクリプトを実行し（ステップＳ１０９）、出力を取得する必要がある場合は取得動作を行う（ステップＳ１１０）。
【００３４】
その後、ジョブ実行部１２は、ジョブの状態を完了に変更し（ステップＳ１１１）、ステップＳ１０１に戻って以降の処理を繰り返す。なお、スクリプトの実行に失敗した場合は、ジョブの状態を失敗に変更する。ジョブの入力や出力は、必要に応じてジョブ実行履歴に反映される。スクリプトの実行に関しては、この図１０のフローチャートで示す処理と並行に実行することで、同時に複数のスクリプトを実行してもよい。
【００３５】
次に、ジョブの実行に関わるユーザ操作を受け付けるＵＩ画面と、ＵＩ画面を利用したユーザ操作の具体例について説明する。ＵＩ画面の表示は、上述のように、表示制御部１１によって制御される。本実施形態では、表示制御部１１により表示制御されるＵＩ画面として、ジョブ定義一覧ＵＩ、ジョブ実行ＵＩ、ジョブ履歴ＵＩ、ジョブ詳細ＵＩ、後続ジョブ実行ＵＩなどを想定する。
【００３６】
図１１は、ジョブ定義一覧ＵＩ２０の一例を示す図である。ジョブ定義一覧ＵＩ２０では、図１１に示すように、ジョブ定義一覧、具体的には、ジョブ定義蓄積部１５に蓄積されたジョブ定義の‘type’の‘description’の一覧が表示される。
【００３７】
図１１に示すジョブ定義一覧ＵＩ２０で表示されているジョブ定義のうち、関連文書登録は、認識を行う対象の音声に関連する発表資料などの文書を登録するジョブ（関連文書登録ジョブ）のジョブ定義である。関連文書は、音声認識精度の向上に必要な固有表現の抽出のために用いられる。音声登録は、音響モデル作成や評価データに必要となる音声を登録するジョブ（音声登録ジョブ）のジョブ定義である。書き起こし登録は、登録された音声とそれに対応する書き起こしテキストの組みを登録するジョブ（書き起こし登録ジョブ）のジョブ定義である。ユーザ単語登録は、辞書の作成時や評価時に使うユーザ単語を登録するジョブ（ユーザ単語登録ジョブ）のジョブ定義である。ユーザ単語は、標準単語辞書に含まれない固有表現からなる。
【００３８】
書き起こし作成は、音声を入力として音声認識を用いて対応するテキストを作成しそれと音声の組みを書き起こしとするジョブ（書き起こし作成ジョブ）のジョブ定義である。ユーザ単語作成は、関連文書からの固有表現抽出を用いてユーザ単語を作成するジョブ（ユーザ単語作成ジョブ）のジョブ定義である。音響モデル作成は、書き起こしを入力として音響モデルを作成するジョブ（音響モデル作成ジョブ）のジョブ定義である。辞書作成は、音響モデルおよびユーザ単語を入力として音声認識用の辞書を作成するジョブ（辞書作成ジョブ）のジョブ定義である。
【００３９】
辞書精度評価は、辞書および書き起こしを入力として精度評価を行うジョブ（辞書精度評価ジョブ）のジョブ定義である。精度は、書き起こし中の音声を辞書を用いて音声認識した結果と書き起こしテキストを比較することで算出される。辞書配備は、入力された辞書を特定のサーバへ配備するジョブ（辞書配備ジョブ）のジョブ定義である。配備状況テストは、配備された辞書を用いた音声認識動作が行えるかをテストするジョブ（配備状況テストジョブ）のジョブ定義である。評価レポート作成は、辞書精度評価ジョブの結果を入力としユーザが見やすい形のレポートを作成するジョブ（評価レポート作成ジョブ）のジョブ定義である。評価レポート送付は、レポートを特定のユーザへメールなどを用いて送付するジョブ（評価レポート送付ジョブ）のジョブ定義である。
【００４０】
ジョブ定義一覧ＵＩ２０では、例えば図１１に示すように、各ジョブ定義に対応するノードが表示され、ユーザがいずれかのノードをクリックするとそのノードに対応するジョブ定義が選択される。そして、選択されたジョブ定義に従ってジョブを実行するためのジョブ実行ＵＩへと画面遷移する。
【００４１】
図１２は、ジョブ実行ＵＩ３０の一例を示す図であり、図１１のジョブ定義一覧ＵＩ２０からユーザ単語作成ジョブのジョブ定義が選択された場合の例を示している。ジョブ実行ＵＩ３０では、図１２に示すように、ジョブ定義一覧ＵＩ２０から選択されたジョブ定義のノードとともに、このジョブ定義に従って実行するジョブの入力として利用可能な実行済みジョブ群が入力候補３１として表示される。図１２に示すジョブ実行ＵＩ３０では、ユーザ単語作成ジョブの入力引数として必要な文書データジョブを選択するために、実行済みの関連文書登録ジョブが入力候補３１として表示されている。入力候補３１に含まれる各実行済みジョブは、ジョブ定義一覧ＵＩ２０から選択されたジョブ定義と同様に、ノードによって示される。
【００４２】
入力候補３１として表示される実行済みジョブは、ジョブ実行履歴検索部１３がジョブ実行履歴蓄積部１６を検索することで得られる。検索により、入力ジョブの‘job_type’をフィルタとして完了日時が新しい順に規定数分だけのジョブ実行履歴が取得され、そのジョブ実行履歴によって示される実行済みジョブが入力候補３１としてジョブ実行ＵＩ３０上に表示される。規定数分よりも古い実行済みジョブを表示するためのボタンなどを備えていてもよい。なお、‘type’が‘job’以外の入力が必要な場合は、‘path’に対してはファイル選択フォーム、‘string’に対してはテキストボックスなど、それら入力を行うためのＵＩが別途表示される。
【００４３】
また、ジョブ実行ＵＩ３０では、ジョブ定義一覧ＵＩ２０から選択されたジョブ定義に従って実行したジョブの出力を入力として利用可能なジョブ定義群が、後続ジョブ候補３２（第１の後続ジョブ候補）として表示される。図１２に示すジョブ実行ＵＩ３０では、ユーザ単語作成ジョブの出力を入力として利用可能なジョブ定義である辞書精度評価と辞書作成とが後続ジョブ候補３２として表示されている。後続ジョブ候補３２に含まれるジョブ定義は、ジョブ定義一覧ＵＩ２０から選択されたジョブ定義や、入力候補３１に含まれる各実行済みジョブと同様に、ノードによって示される。
【００４４】
ユーザはこのジョブ実行ＵＩ３０上で、例えばマウスを用いたドラッグ＆ドロップ操作などにより、入力候補３１に含まれるいずれかの実行済みジョブのノードと、ジョブ定義一覧ＵＩ２０から選択されたジョブ定義のノードとを接続することにより、ジョブ定義一覧ＵＩ２０から選択されたジョブ定義の入力を設定することができる。また、後続ジョブを実行したい場合には、同様の操作により、ジョブ定義一覧ＵＩ２０から選択されたジョブ定義のノードと後続ジョブ候補３２に含まれるいずれかのジョブ定義のノードとを接続することにより、実行する後続ジョブを選択してその入力を設定することができる。
【００４５】
図１３は、入力候補３１に含まれる2017-1-10に完了した関連文書登録ジョブのノードと、ジョブ定義一覧ＵＩ２０から選択されたジョブ定義（ユーザ単語作成）のノードと、後続ジョブ候補３２に含まれる辞書精度評価のノードとを接続した状態のジョブ実行ＵＩ３０を示している。後続ジョブとして選択した辞書精度評価は、ユーザ単語作成ジョブの出力のほかに辞書データジョブと評価データジョブの２つの引数が必要とされるため、後続ジョブの入力候補３３ａ，３３ｂとして、実行済みの辞書作成ジョブ群と実行済みの書き起こし登録ジョブ群とが新たに表示されている。
【００４６】
図１４は、入力候補３３ａに含まれる2017-1-11に完了した辞書作成ジョブのノードおよび入力候補３３ｂに含まれる2016-12-26に完了した書き起こし登録のノードを、後続ジョブとして選択した辞書精度評価のノードに接続した状態のジョブ実行ＵＩ３０を示している。この状態では、ユーザ単語作成ジョブの入力の設定と後続ジョブである辞書精度評価ジョブの入力の設定とがすべて完了したため、ジョブ実行ＵＩ３０上で表示される「実行」ボタン３５をクリックすると、設定された入力を用いてユーザ単語作成ジョブおよび辞書精度評価ジョブが順次実行されることになる。
【００４７】
ジョブ履歴ＵＩは、ジョブ履歴グラフを表示するＵＩである。ジョブ履歴グラフとは、入出力関係を持つ複数の実行済みジョブ（実行中もしくは実行待ちのジョブを含む）をノードとし、各ノードをエッジで接続したグラフである。各ノード間のエッジは、それらのノードに対応する実行済みジョブ間の入出力関係を表す。
【００４８】
図１５は、ジョブ履歴ＵＩ４０の一例を示す図である。ジョブ履歴ＵＩ４０では、図１５に示すように、ジョブ履歴グラフ４１が表示される。ジョブ履歴グラフ４１の各ノードには、対応する実行済みジョブの‘type’の‘description’および完了時間が表示される。ノードに対応するジョブが実行中もしくは実行待ちの場合は、完了時間に代えてそのジョブの状態が表示される。
【００４９】
ジョブ履歴ＵＩ４０は、例えば、ユーザがログインした後に最初に表示されるＵＩ画面として利用できる。この場合、ジョブ履歴グラフ４１に含まれる各ノードは、例えば、ジョブ実行履歴の完了時間が最新の実行済みジョブを一つ取得し、その実行済みジョブの入力として利用した他の実行済みジョブを取得し、さらにその実行済みジョブの入力として利用した他の実行済みジョブを取得するという動作を、画面内にノードを配置するスペースがなくなるまで行うことで決定される。また、画面のドラッグなどで表示範囲を変更し、完了時間がさらに古い過去のノードを表示させることもできる。また、ユーザによる日時の指定を受け付けて、完了時間が指定された日時に最も近い実行済みジョブのノードを中央に表示するよう調整できる構成としてもよい。また、ジョブ履歴ＵＩ４０では、ジョブ履歴グラフ４１のほかに「ジョブ実行」ボタン４２が表示され、「ジョブ実行」ボタン４２をクリックすることでジョブ定義一覧ＵＩ２０を呼び出すことができる。
【００５０】
図１６は、ジョブ履歴ＵＩ４０、ジョブ定義一覧ＵＩ２０およびジョブ実行ＵＩ３０を利用してジョブを実行する際のユーザの操作手順の一例を示すフローチャートである。本実施形態のジョブ実行制御装置１０は、ユーザがアカウント情報を用いてログインすることで使用が開始される。
【００５１】
ユーザがログインすると（ステップＳ２０１）、まず、ジョブ履歴ＵＩ４０が表示される（ステップＳ２０２）。このジョブ履歴ＵＩ４０上でユーザが「ジョブ実行」ボタン４２をクリックすると、ジョブ定義一覧ＵＩ２０が呼び出される（ステップＳ２０３）。
【００５２】
次に、ジョブ定義一覧ＵＩ２０に表示されたジョブ定義一覧からユーザが任意のジョブ定義を選択すると（ステップＳ２０４）、ジョブ実行ＵＩ３０が表示される（ステップＳ２０５）。そして、ユーザがこのジョブ実行ＵＩ３０上で必要な入力を選択して「実行」ボタン３５をクリックすると（ステップＳ２０６）、ジョブが実行される（ステップＳ２０７）。このように、ジョブ実行ＵＩ３０上でのユーザ操作に応じてジョブが実行される場合、ジョブの実行開始とともにジョブ履歴ＵＩ４０の表示に戻り、このジョブ履歴ＵＩ４０で、実行中もしくは実行待ちのジョブを起点としたジョブ履歴グラフ４１が表示される。
【００５３】
本実施形態のジョブ実行制御装置１０は、上述のように、クライアント端末に搭載されたブラウザ上で動作することを想定している。したがって、ユーザが任意のタイミングでブラウザを閉じる操作を行うことで、本実施形態のジョブ実行制御装置１０の使用を中止することができる。
【００５４】
ジョブ履歴ＵＩ４０上のジョブ履歴グラフ４１に含まれるいずれかのノードがクリックされた場合は、そのノードに対応する実行済みジョブの入力やワークディレクトリなどを確認できるジョブ詳細ＵＩへと画面遷移する。ジョブ詳細ＵＩの一例を図１７に示す。図１７に示すジョブ詳細ＵＩ５０は、図１５に示したジョブ履歴ＵＩ４０上のジョブ履歴グラフ４１から2017-1-6に完了した書き起こし登録ジョブのノードが選択された場合に表示されるジョブ詳細ＵＩの例である。
【００５５】
ジョブ詳細ＵＩ５０では、図１７に示すように、ジョブ履歴グラフ４１から選択された実行済みジョブの入力やワークディレクトリに加え、「後続ジョブ実行」ボタン５１が表示される。この「後続ジョブ実行」ボタン５１がクリックされると、ジョブ詳細ＵＩ５０で表示した実行済みジョブの出力を入力として利用して他のジョブを実行するための後続ジョブ実行ＵＩに画面遷移する。
【００５６】
図１８は、後続ジョブ実行ＵＩ６０の一例を示す図である。後続ジョブ実行ＵＩ６０では、図１８に示すように、ジョブ履歴グラフ４１から選択された実行済みジョブのノードとともに、その実行済みジョブの出力を入力として利用可能なジョブ定義群が、後続ジョブ候補６１（第２の後続ジョブ候補）として表示される。図１８に示す後続ジョブ実行ＵＩ６０では、書き起こし登録ジョブの出力を入力として利用可能なジョブ定義である音響モデル作成と辞書精度評価とが後続ジョブ候補６１として表示されている。
【００５７】
後続ジョブ候補６１に含まれるジョブ定義は、ジョブ履歴グラフ４１から選択された実行済みジョブと同様に、ノードによって示される。ユーザはこの後続ジョブ実行ＵＩ６０上で、例えばマウスを用いたドラッグ＆ドロップ操作などにより、ジョブ履歴グラフ４１から選択された実行済みジョブのノードと、後続ジョブ候補６１に含まれるいずれかのジョブ定義のノードとを接続することで、実行する後続ジョブを選択してその入力を設定することができる。そして、後続ジョブの入力が設定されると「実行」ボタン６２の操作が可能となり、「実行」ボタン６２をクリックすると後続ジョブが実行される。
【００５８】
また、ジョブ履歴ＵＩ４０上でジョブ履歴グラフ４１の一部の範囲を選択する操作が行われた場合、ジョブ定義グラフ作成部１４により、選択された範囲に対応するジョブ定義グラフが作成される。ジョブ定義グラフは、一連のジョブ群を一回のジョブ実行操作で実行するためのものであり、ジョブ履歴グラフ４１の選択された範囲に含まれる各ノードに対応するジョブ定義群と、各ジョブ定義の入出力関係とを表している。
【００５９】
図１９は、ジョブ履歴グラフ４１の一部の範囲が選択された状態のジョブ履歴ＵＩ４０を示している。ユーザは、例えばマウスを用いたドラッグ操作によりジョブ履歴グラフ４１の所望の範囲（例えば図１９の破線で囲まれた領域）を選択することができる。ジョブ履歴グラフ４１の一部の範囲を選択する操作は、例えばキーボードのシフトキーを押しながら複数のノードをクリックするなど、他の方法を用いてもよい。ジョブ履歴グラフ４１の一部の範囲が選択されると、ジョブ履歴ＵＩ４０上に「ジョブ定義グラフ作成」ボタン４３が表示される。そして、この「ジョブ定義グラフ作成」ボタン４３がクリックされると、選択された範囲に含まれる各ノードに対応するジョブ定義群とそれらの入出力関係とを表すジョブ定義グラフが作成される。
【００６０】
ジョブ定義グラフのデータ構造の一例を図２０に示す。ジョブ定義グラフは、ジョブ履歴グラフ４１から選択された範囲に含まれる各ノードに対応するジョブ定義群のリストとして定義される。ジョブ定義グラフのデータは、例えば図２０に示すように、各ノードに対応するジョブ定義と、そのノードへの入力に利用されるノードのＩＤの配列と、そのノードからの出力を利用するノードのＩＤの配列とを含む。
【００６１】
ジョブ定義グラフが作成されると、そのジョブ定義グラフのデータがジョブ定義蓄積部１５に格納される。その後、上述のジョブ定義一覧ＵＩ２０を表示する際は、ジョブ定義蓄積部１５からジョブ定義グラフのデータが読み出され、ジョブ定義一覧ＵＩ２０上で、ジョブ定義グラフを含むジョブ定義一覧が表示される。ジョブ定義グラフを含むジョブ定義一覧を表示するジョブ定義一覧ＵＩ２０の一例を図２１に示す。この図２１に示すジョブ定義一覧ＵＩ２０では、ジョブ定義のほかに、ジョブ定義グラフ作成部１４により作成されたジョブ定義グラフが選択できるようになっている。
【００６２】
ジョブ定義一覧ＵＩ２０からジョブ定義グラフが選択された場合に表示されるジョブ実行ＵＩ３０の一例を図２２に示す。この図２２に示すジョブ実行ＵＩ３０は、ジョブ定義一覧ＵＩ２０からジョブ定義が選択された場合に表示されるジョブ実行ＵＩ３０（図１２参照）と同様であるが、ジョブ定義グラフの各ノードに対して入力として利用可能な実行済みジョブ群のノードが、それぞれ入力候補３１ａ，３１ｂ，３１ｃ，３１ｄとして表示される。入力候補３１ａは音響モデル作成ジョブの入力として利用可能な実行済みジョブ群、入力候補３１ｂは辞書作成ジョブの入力として利用可能な実行済みジョブ群、入力候補３１ｃおよび入力候補３１ｄは辞書精度評価ジョブの入力として利用可能な実行済みジョブ群をそれぞれ示している。
【００６３】
また、ジョブ定義グラフの末尾のノードの出力を入力として利用可能なジョブ定義グラフがある場合、そのジョブ定義グラフが後続ジョブ候補３２として表示される。図２２に示すジョブ実行ＵＩ３０では、辞書精度評価ジョブの出力を入力として利用可能な２つのジョブ定義グラフが、後続ジョブ候補３２として表示されている。このジョブ実行ＵＩ３０上で上述した方法によりノード間を接続することにより、一連のジョブを順次実行することが可能となる。
【００６４】
以上、具体的な例を挙げながら詳細に説明したように、本実施形態のジョブ実行制御装置１０は、ジョブ定義一覧ＵＩ２０によりジョブ定義一覧を表示し、ジョブ定義一覧ＵＩ２０からジョブ定義が選択されると、選択されたジョブ定義の入力として利用可能な実行済みジョブ群を入力候補３１としてジョブ実行ＵＩ３０により表示する。そして、入力候補３１からいずれかの実行済みジョブが選択されると、その実行済みジョブの出力を入力として、ジョブ定義一覧ＵＩ２０から選択されたジョブ定義に従ってジョブを実行する。したがって、本実施形態のジョブ実行制御装置１０によれば、様々な出力を持つジョブ群から選択されたジョブとそのジョブの出力を入力とするジョブとを簡便な操作で接続して実行することができる。
【００６５】
また、本実施形態のジョブ実行制御装置１０は、ジョブ定義一覧ＵＩ２０から選択されたジョブ定義に従って実行するジョブの出力を入力として利用可能なジョブ定義群を、ジョブ実行ＵＩ３０上で後続ジョブ候補３２として表示する。そして、後続ジョブ候補３２からいずれかのジョブ定義が選択されると、ジョブ定義一覧ＵＩ２０から選択されたジョブ定義に従ってジョブを実行した後、そのジョブの出力を入力として後続ジョブ候補３２から選択されたジョブ定義に従ってジョブを実行する。したがって、本実施形態のジョブ実行制御装置１０によれば、連続した複数のジョブを効率よく実行することができる。
【００６６】
また、本実施形態のジョブ実行制御装置１０は、ジョブ履歴ＵＩ４０によりジョブ履歴グラフ４１を表示し、ジョブ履歴グラフ４１のいずれかのノードが選択されると、そのノードに対応する実行済みジョブの詳細をジョブ詳細ＵＩ５０により表示し、その実行済みジョブの出力を入力として利用可能なジョブ定義群を、後続ジョブ実行ＵＩ６０上で後続ジョブ候補６１として表示する。そして、後続ジョブ候補６１からいずれかのジョブ定義が選択されると、ジョブ履歴グラフ４１から選択された実行済みジョブの出力を入力として後続ジョブ候補６１から選択されたジョブ定義に従ってジョブを実行する。したがって、本実施形態のジョブ実行制御装置１０によれば、実行済みジョブ群の入出力関係をユーザに的確に把握させながら、いずれかの実行済みジョブに対して後続ジョブを簡便な操作で接続して実行することができる。
【００６７】
また、本実施形態のジョブ実行制御装置１０は、ジョブ履歴ＵＩ４０上で表示したジョブ履歴グラフ４１から一部の範囲が選択されると、その範囲に対応するジョブ定義グラフを生成し、ジョブ定義一覧ＵＩ２０上でジョブ定義グラフを含むジョブ定義一覧を表示する。そして、ジョブ定義一覧ＵＩ２０からジョブ定義グラフが選択されると、ジョブ定義が選択された場合と同様にジョブ実行ＵＩ３０上でのユーザ操作を通じて、ジョブ定義グラフに従った一連のジョブを実行する。したがって、本実施形態のジョブ実行制御装置１０によれば、連続した複数のジョブを効率よく実行することができる。
【００６８】
＜第２の実施形態＞
次に、第２の実施形態について説明する。上述の第１の実施形態では、あるジョブの入力として利用可能な実行済みジョブを判断するために、ジョブ定義の‘input’で‘type’が‘job’の引数についてその‘job_type’を指定する必要があった。これに対し本実施形態では、ジョブ実行履歴とともに入力ジョブ定義履歴を記録しておき、この入力ジョブ定義履歴を用いて入力として利用可能な実行済みジョブを判断することで、ジョブ定義において‘job_type’の明示的な指定を不要とする。
【００６９】
入力ジョブ定義履歴は、実行済みジョブのジョブ定義に対して、その実行済みジョブの入力として利用した他の実行済みジョブのジョブ定義と、ジョブの実行が成功したか否かを表す情報とを対応付けたものである。入力ジョブ定義は、ジョブ実行部１２により記録されてジョブ実行履歴蓄積部１６に蓄積される。
【００７０】
図２３は、ジョブ実行履歴蓄積部１６に蓄積される入力ジョブ定義履歴の一例を示す図である。入力ジョブ定義履歴は、例えば図２３に示すように、実行済みジョブの各ジョブ定義および‘type’が‘job’の入力引数に対し、ジョブ実行成否履歴のＩＤの配列を対応付けたデータ構造とすることができる。ジョブ実行成否履歴は、実際に入力として利用された実行済みジョブとその入力を利用して実行された実行済みジョブとの組み合わせごとに、ジョブの実行が成功したか否かを表した情報である。
【００７１】
ジョブ実行成否履歴の一例を図２４に示す。ジョブ実行成否履歴は、例えば図２４に示すように、入力として利用された実行済みジョブのＩＤである入力ジョブＩＤと、その実行済みジョブのジョブタイプと、その実行済みジョブを入力として実行した実行済みジョブのＩＤである実行ジョブＩＤと、実行に成功したか失敗したかを示す実行結果とを含む。なお、図２４に例示するジョブ実行成否履歴は、入力ジョブのジョブタイプおよび実行ジョブの実行結果を含む構成であるが、これらの情報はジョブ実行履歴から取得可能なため、必ずしもジョブ実行成否履歴に含まれていなくてもよい。
【００７２】
入力ジョブ定義履歴を用いることで、ジョブ定義一覧ＵＩ２０から選択されたジョブ定義の入力引数に対応するジョブタイプを推定し、ジョブ実行ＵＩ３０上で入力候補３１として表示する実行済みジョブ群を判断できる。例えば、入力ジョブ定義履歴から対応するジョブ実行成否履歴を検索し、ジョブ実行成否履歴の中の最新の履歴を一定数取得する。そして、取得した履歴の中で実行に成功した実績のあるジョブタイプを、ジョブ定義一覧ＵＩ２０から選択されたジョブ定義の入力引数に対応するジョブタイプと判断する。そして、このジョブタイプに該当するジョブ定義に従って実行された実行済みジョブ群を入力候補３１として、ジョブ実行ＵＩ３０上で表示する。
【００７３】
なお、最新の履歴から推定する以外の方法として、ジョブ実行成否履歴全体での特定のジョブタイプにおける実行成功率を算出し、その数値が一定数以上のものを、ジョブ定義一覧ＵＩ２０から選択されたジョブ定義の入力引数に対応するジョブタイプと判断してもよい。また、対応するジョブ実行成否履歴が存在していない場合は、ジョブタイプでのフィルタリングはせずに、ジョブ実行履歴から最新の実行済みジョブ数件を入力候補３１として表示してもよい。
【００７４】
本実施形態によれば、ジョブ定義の‘input’で‘type’が‘job’の引数について、その‘job_type’をジョブ定義上で明示的に指定していなくても、あるジョブの入力として利用可能な実行済みジョブを適切に判断することができるので、ジョブ定義を事前に作成する際の手間を軽減しながら、上述の第１の実施形態と同様の効果を得ることができる。
【００７５】
＜第３の実施形態＞
次に、第３の実施形態について説明する。本実施形態では、ジョブ実行ＵＩ３０上の入力候補３１から実行済みジョブを選択するための補助情報として、実行済みジョブの処理結果（出力）の質を表すスコアの概念を導入する。そして、入力候補３１となる実行済みジョブ群を各実行済みジョブのスコアに応じた表示形態でジョブ実行ＵＩ３０上に表示する。
【００７６】
図２５は、スコアを算出可能なジョブ定義の一例を示す図であり、辞書精度評価ジョブのジョブ定義を示している。この図２５に例示するジョブ定義では、‘score’で出力ＪＳＯＮ中のどのプロパティ名の内容をそのジョブのスコアとして採用するかを指定している。また、そのスコアが各引数の入力からどの程度由来するものかを示す‘score_impact’を入力の引数内に記述できる。ある実行済みジョブを入力として実行したジョブからスコアが算出された場合、そのスコアに対して‘score_impact’内の数値を乗算したものが、入力として利用した実行済みジョブのスコアとなる。ある実行済みジョブに対し、そのジョブのジョブ定義内の‘score’からも、その実行済みジョブを入力とする他のジョブのジョブ定義内の‘score_impact’からもスコアが算出可能な場合は、‘score’から算出されるスコアを優先する。
【００７７】
実行済みジョブに対して算出されたスコアは、例えば、ジョブ実行履歴に付加して記録することができる。図２６は、スコアを含むジョブ実行履歴の一例を示す図であり、図６に示したジョブ実行履歴に対してスコアが付加された例を示している。なお、図２６では、入力、出力、完了時間および状態の記載は省略している。
【００７８】
実行済みジョブに対してスコアが算出される場合、ジョブ実行ＵＩ３０上で入力候補３１として表示される実行済みジョブ群を各実行済みジョブのスコアに応じた表示形態で表示することができる。この場合のジョブ実行ＵＩ３０の一例を図２７に示す。この図２７に例示するジョブ実行ＵＩ３０は、図２２に示したジョブ実行ＵＩ３０と同様の構成であるが、音響モデル作成ジョブの入力候補３１ａ内の実行済みジョブ群、辞書作成ジョブの入力候補３１ｂ内の実行済みジョブ群、辞書精度評価ジョブの入力候補３１ｃ内の実行済みジョブ群および入力候補３１ｄ内の実行済みジョブ群が、それぞれ、スコアが高い実行済みジョブが右、スコアが低い実行済みジョブが左となるように配置されている。なお、スコアに応じた表示形態は、図２７に示すような表示位置を用いるものに限らず、色や濃度や明るさなどの他の表示形態によってスコアを表すものであってもよい。
【００７９】
また、入力候補３１の中で他の実行済みジョブと比較してスコアが低いものをユーザが入力として選択した場合に、図２８に示すような警告ＵＩ７０を表示してもよい。以上のように、実行済みジョブ群のスコアを認識できるジョブ実行ＵＩ３０を表示したり、スコアが低い実行済みジョブが選択された場合に警告ＵＩ７０を表示したりすることで、作業に不慣れなユーザが、新たに実行するジョブの入力として質の悪い実行済みジョブを選択してしまうリスクを低減することができる。
【００８０】
また、スコアが算出可能なジョブに対する入力として、同じ入力候補３１内の複数の実行済みジョブを同時に選択できるようにしてもよい。図２７では、辞書精度評価ジョブの入力候補３１ｃに含まれる２つの実行済みジョブがともに、辞書精度評価ジョブの入力として選択された例を示している。スコアが算出可能なジョブに対する入力として複数の実行済みジョブが同時に選択された場合は、それぞれを入力としてジョブの実行が複数回繰り返される。そして、例えばスコアが最も高い処理結果がジョブの出力として採用される。あるいは、入力が異なるジョブを複数のジョブとして別々に扱うようにしてもよい。
【００８１】
本実施形態によれば、ジョブ実行ＵＩ３０を表示する際に、入力候補３１となる実行済みジョブ群を各実行済みジョブのスコアに応じた表示形態で表示するので、入力として利用する実行済みジョブをより的確に選択させることができる。
【００８２】
＜第４の実施形態＞
次に、第４の実施形態について説明する。上述の第１の実施形態では、ジョブ履歴ＵＩ４０上で表示されるジョブ履歴グラフ４１からジョブ定義グラフとして切り出す範囲をユーザが指定する構成であったが、本実施形態では、ジョブ定義グラフ作成部１４がジョブ実行履歴に基づいてジョブ定義グラフを自動で作成する。すなわち、本実施形態のジョブ定義グラフ作成部１４は、ジョブ実行履歴蓄積部１６を参照して、順次実行された複数のジョブに対応するジョブ定義群のパターンを所定の基準に従って抽出し、抽出したパターンに含まれる複数のジョブ定義と各ジョブ定義の入出力関係とを表すジョブ定義グラフを作成する。
【００８３】
図２９は、ジョブ実行履歴から把握される実行済みジョブ群の入出力関係をグラフ化して示す図であり、辞書精度評価ジョブに繋がる実行済みジョブ群の入出力関係を表す３つのグラフを例示している。本実施形態では、ジョブ定義グラフを作成するにあたり、まず、図２９に例示するような実行済みジョブ群の入出力関係を表すグラフから、順次実行された実行済みジョブのジョブ定義の系列をジョブフロー系列として抽出する。図２９に例示したグラフから抽出されたジョブフロー系列を図３０に示す。図３０において、ＩＤ＝１のジョブフロー系列とＩＤ＝２のジョブフロー系列は、図２９の左側のグラフから抽出されたジョブフロー系列であり、ＩＤ＝３のジョブフロー系列とＩＤ＝４のジョブフロー系列は、図２９の中央のグラフから抽出されたジョブフロー系列であり、ＩＤ＝５のジョブフロー系列とＩＤ＝６のジョブフロー系列は、図２９の右側のグラフから抽出されたジョブフロー系列である。
【００８４】
本実施形態では、以上のように抽出されたジョブフロー系列から、例えば既存の頻出部分系列パターン抽出手法を用いて、系列内に頻出するジョブ定義群のパターンを抽出する。図３０に示すジョブフロー系列から得られる最も頻度が高いパターンは、「音響モデル作成→辞書作成→辞書精度評価」であり、６つのジョブフロー系列のうちの３つの系列において出現しており、出現確率は５０％である。抽出対象となるパターンの閾値として例えば出現確率５０％以上が規定されていた場合、このパターンが抽出対象となり、ジョブ定義グラフとして自動的に登録される。
【００８５】
ジョブ定義グラフとして登録するジョブ定義群のパターンの抽出には、出現確率以外の条件を用いてもよい。例えば、上述の第３実施形態のように実行済みジョブに対してスコアを算出する場合は、順次実行された実行済みジョブのスコア平均が基準値以上となるジョブ定義群のパターンを抽出してもよい。また、順次実行された実行済みジョブの数（グラフとして表したときのノードの数）が基準値以上となるジョブ定義群のパターンを抽出してもよい。また、一連の実行済みジョブ群の実行を指示したユーザの情報を含めてジョブ実行履歴を記録する構成とした場合には、操作に熟練した特定のユーザの指示に応じて順次実行された実行済みジョブ群を表すジョブ定義群のパターンを抽出してもよい。
【００８６】
なお、上述したジョブフロー系列からジョブ定義グラフとして登録するジョブ定義群のパターンを抽出する方法では、ジョブ定義が直列に並ぶジョブ定義グラフしか作成できないが、図２９に例示したようなグラフから既存のグラフマイニング手法を用いて頻出する部分グラフを見つけてそれをジョブ定義グラフとしてもよい。この場合は、１つのジョブ定義の入力として複数のジョブ定義が繋がるジョブ定義グラフを作成することも可能となる。
【００８７】
本実施形態によれば、ジョブ実行履歴をもとにジョブ定義グラフが自動的に作成されるので、ユーザの操作負担を軽減することができる。
【００８８】
＜補足説明＞
上述した実施形態のジョブ実行制御装置１０は、例えば、一般的なコンピュータを構成するハードウェアと、コンピュータで実行されるプログラム（ソフトウェア）との協働により実現することができる。例えば、コンピュータが所定のプログラムを実行することによって、上述した表示制御部１１、ジョブ実行部１２、ジョブ実行履歴検索部１３、ジョブ定義グラフ作成部１４などの機能的な構成要素を実現することができる。また、コンピュータが備えるストレージデバイスを用いて、上述したジョブ定義蓄積部１５、ジョブ実行履歴蓄積部１６、ジョブ結果蓄積部１７などを実現することができる。
【００８９】
図３１は、実施形態のジョブ実行制御装置１０のハードウェア構成例を示すブロック図である。実施形態のジョブ実行制御装置１０は、例えば図３１に示すように、ＣＰＵ（Central  Processing  Unit）やＧＰＵ（Graphics  Processing  Unit）などのプロセッサ１０１と、ＲＡＭ（Random  Access  Memory）やＲＯＭ（Read  Only  Memory）などの内部メモリ１０２と、ＨＤＤ（Hard  Disk  Drive）やＳＤＤ（Solid  State  Drive）などのストレージデバイス１０３と、入力デバイス１０６やディスプレイ１０７などの周辺機器を接続するための入出力Ｉ／Ｆ１０４と、クライアント端末などの外部機器と通信を行う通信Ｉ／Ｆ１０５と、を備えた通常のコンピュータのハードウェア構成を有する。そして、例えば、プロセッサ１０１が内部メモリ１０２を利用しながら、ストレージデバイス１０３や内部メモリ１０２などに格納されたプログラムを実行することで、上述の機能的な構成要素を実現することができる。
【００９０】
すなわち、実施形態のジョブ実行制御装置１０の機能的な構成要素として示した各部は、コンピュータにより実行されるプログラムに含まれ、コンピュータが備える１以上のプロセッサ（図３１のプロセッサ１０１）がこのプログラムを実行することにより、上述した各部がＲＡＭなどの主記憶（図３１の内部メモリ１０２）上に作成される。
【００９１】
コンピュータにより実行される上記プログラムは、例えば、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ±ＲＷ、Ｂｌｕ−ｒａｙ（登録商標）Ｄｉｓｃなど）、半導体メモリ、またはこれに類する記録媒体に記録されて提供される。なお、プログラムを記録する記録媒体は、コンピュータが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。また、上記プログラムを、コンピュータに予めインストールするように構成してもよいし、ネットワークを介して配布される上記のプログラムをコンピュータに適宜インストールするように構成してもよい。
【００９２】
なお、実施形態のジョブ実行制御装置１０は、上述した機能的な構成要素の一部または全部を、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field-Programmable  Gate  Array）などの専用のハードウェアにより実現する構成であってもよい。
【００９３】
また、実施形態のジョブ実行制御装置１０は、複数台のコンピュータを通信可能に接続したネットワークシステムとして構成し、上述した機能的な構成要素を複数台のコンピュータに分散して実現する構成であってもよい。また、実施形態のジョブ実行制御装置１０は、クラウドシステム上で動作する仮想マシンであってもよい。また、実施形態のジョブ実行制御装置１０は、ネットワークを利用したサーバ・クライアントシステムのサーバとして実現する例に限らず、ユーザが利用するパーソナルコンピュータなどの情報処理装置により実現してもよい。
【００９４】
以上、本発明の実施形態を説明したが、この実施形態は例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９５】
１０  ジョブ実行制御装置
１１  表示制御部
１２  ジョブ実行部
１３  ジョブ実行履歴検索部
１４  ジョブ定義グラフ作成部
１５  ジョブ定義蓄積部
１６  ジョブ実行履歴蓄積部
１７  ジョブ結果蓄積部
【図１】
2018206315.tif 000003
【図２】
2018206315.tif 000004
【図３】
2018206315.tif 000005
【図４】
2018206315.tif 000006
【図５】
2018206315.tif 000007
【図６】
2018206315.tif 000008
【図７】
2018206315.tif 000009
【図８】
2018206315.tif 000010
【図９】
2018206315.tif 000011
【図１０】
2018206315.tif 000012
【図１１】
2018206315.tif 000013
【図１２】
2018206315.tif 000014
【図１３】
2018206315.tif 000015
【図１４】
2018206315.tif 000016
【図１５】
2018206315.tif 000017
【図１６】
2018206315.tif 000018
【図１７】
2018206315.tif 000019
【図１８】
2018206315.tif 000020
【図１９】
2018206315.tif 000021
【図２０】
2018206315.tif 000022
【図２１】
2018206315.tif 000023
【図２２】
2018206315.tif 000024
【図２３】
2018206315.tif 000025
【図２４】
2018206315.tif 000026
【図２５】
2018206315.tif 000027
【図２６】
2018206315.tif 000028
【図２７】
2018206315.tif 000029
【図２８】
2018206315.tif 000030
【図２９】
2018206315.tif 000031
【図３０】
2018206315.tif 000032
【図３１】
2018206315.tif 000033