(57)【特許請求の範囲】
【請求項１】
コンピュータに、
情報処理装置に対して行う設定の手順を記述した既存の手順書の各々に含まれる複数の処理の各々を抽出し、手順書に含まれる複数の処理の各々を複数のコマンドに変換した自動化ソフトウェアの各々に含まれる複数のコマンドの各々を抽出し、前記既存の手順書の各々から抽出した複数の処理の各々と、前記自動化ソフトウェアの各々から抽出した複数のコマンドの各々とを、順序性を保持したまま比較することにより、前記既存の手順書の各々と前記自動化ソフトウェアの各々とを対応付けて記憶部に記憶し、
自動化ソフトウェアを作成する対象の手順書から、前記複数の処理の各々を抽出し、
前記記憶部に記憶された複数の既存の手順書の各々に含まれる複数の処理の各々と、前記対象の手順書から抽出した複数の処理の各々とを、順序性を保持したまま比較することにより、前記既存の手順書の各々と前記対象の手順書との手順書類似度を算出し、
算出した前記手順書類似度に基づいて、前記対象の手順書に類似する既存の手順書と、該既存の手順書に対応付けて前記記憶部に記憶された自動化ソフトウェアとを検索する
ことを含む処理を実行させるための検索プログラム。
【請求項２】
前記手順書類似度を、前記既存の手順書に含まれる複数の処理の各々と、前記対象の手順書に含まれる複数の処理の各々との処理類似度が所定の閾値以上で最大となる処理同士であって、処理の順序性が保持された処理同士を紐付け、前記既存の手順書及び前記対象の手順書の少なくとも一方に含まれる処理数に対する紐付けられた処理数の割合に基づいて算出する請求項１記載の検索プログラム。
【請求項３】
前記既存の手順書の各々から抽出した複数の処理の各々と、前記自動化ソフトウェアの各々から抽出した複数のコマンドの各々とを比較する際、前記複数のコマンドの各々のうち、処理をコマンドに変換する際に、文字列から変数への変換が行われる場合には、前記自動化ソフトウェアから抽出したコマンドの変数部分を、変換前の文字列に変換してから比較するか、または前記既存の手順書から抽出した処理の文字列部分を変数に変換してから比較する請求項１又は請求項２記載の検索プログラム。
【請求項４】
前記既存の手順書の各々と前記自動化ソフトウェアとを対応付ける際、前記既存の手順書に含まれる複数の処理の各々と、前記自動化ソフトウェアに含まれる複数のコマンドの各々との処理類似度が所定の閾値以上で最大となる処理及びコマンドであって、処理及びコマンドの順序性が保持された処理とコマンドとを紐付け、前記既存の手順書に含まれる処理数、及び前記自動化ソフトウェアに含まれるコマンド数の少なくとも一方に対する、紐付けられた処理とコマンド数の割合に基づいて、対応付ける請求項１〜請求項３のいずれか１項記載の検索プログラム。
【請求項５】
情報処理装置に対して行う設定の手順を記述した既存の手順書の各々に含まれる複数の処理の各々を抽出し、手順書に含まれる複数の処理の各々を複数のコマンドに変換した自動化ソフトウェアの各々に含まれる複数のコマンドの各々を抽出し、前記既存の手順書の各々から抽出した複数の処理の各々と、前記自動化ソフトウェアの各々から抽出した複数のコマンドの各々とを、順序性を保持したまま比較することにより、前記既存の手順書の各々と前記自動化ソフトウェアの各々とを対応付けて記憶部に記憶する記憶制御部と、
自動化ソフトウェアを作成する対象の手順書から、前記複数の処理の各々を抽出する抽出部と、
前記記憶部に記憶された複数の既存の手順書の各々に含まれる複数の処理の各々と、前記対象の手順書から抽出した複数の処理の各々とを、順序性を保持したまま比較することにより、前記既存の手順書の各々と前記対象の手順書との手順書類似度を算出する算出部と、
算出した前記手順書類似度に基づいて、前記対象の手順書に類似する既存の手順書と、該既存の手順書に対応付けて前記記憶部に記憶された自動化ソフトウェアとを検索する検索部と、
を含む検索装置。
【請求項６】
コンピュータに、
情報処理装置に対して行う設定の手順を記述した既存の手順書の各々に含まれる複数の処理の各々を抽出し、手順書に含まれる複数の処理の各々を複数のコマンドに変換した自動化ソフトウェアの各々に含まれる複数のコマンドの各々を抽出し、前記既存の手順書の各々から抽出した複数の処理の各々と、前記自動化ソフトウェアの各々から抽出した複数のコマンドの各々とを、順序性を保持したまま比較することにより、前記既存の手順書の各々と前記自動化ソフトウェアの各々とを対応付けて記憶部に記憶し、
自動化ソフトウェアを作成する対象の手順書から、前記複数の処理の各々を抽出し、
前記記憶部に記憶された複数の既存の手順書の各々に含まれる複数の処理の各々と、前記対象の手順書から抽出した複数の処理の各々とを、順序性を保持したまま比較することにより、前記既存の手順書の各々と前記対象の手順書との手順書類似度を算出し、
算出した前記手順書類似度に基づいて、前記対象の手順書に類似する既存の手順書と、該既存の手順書に対応付けて前記記憶部に記憶された自動化ソフトウェアとを検索する
ことを含む処理を実行させる検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索プログラム、検索装置、及び検索方法に関する。
【背景技術】
【０００２】
システム内の複数の情報処理装置に対して、例えば、ソフトウェアのインストールや各種設定及び設定の変更等、同じ所定の設定を行う場合がある。従来、情報処理装置に対する設定は、各情報処理装置に対して行う設定を手順化した手順書を参照し、作業者が手順書に従って順次複数の情報処理装置に所定の設定を行っている。
【０００３】
しかしながら、システムが大規模化してきたため、作業者が各情報処理装置の設置場所に出向いて、手順書に基づいて所定の設定を行う場合は、作業コストが膨大になるという問題があった。そこで、最近では、手順書に記述された処理を自動化するための自動化ソフトウェアを手順書から作成し、設定対象の情報処理装置において、自動化ソフトウェアを実行することで、情報処理装置に自動的に設定が行われている。自動化ソフトウェアは、手順書に記述された処理の各々を実行するための複数の命令文（コマンド）を含み、自動化ソフトウェアの簡単な説明と共に記憶される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１９０２８４号公報
【特許文献２】特開２０１３−１９６４６８号公報
【特許文献３】特開２０００−２２２２１５号公報
【特許文献４】特開２０１３−１９６００６号公報
【特許文献５】特開２００８−１１７０２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
新たな手順書から自動化ソフトウェアを作成する場合、過去に作成された自動化ソフトウェアを参考にすることで、自動化にかかる工数を削減することができる。
【０００６】
しかしながら、作成者や適用対象が異なる自動化ソフトウェアを適切に分類して管理することは困難である。そのため、新たな手順書から自動化ソフトウェアを作成する際に参考となる既存の自動化ソフトウェアを検索することはできないか、または、検索のための無駄な工数を要してしまう。
【０００７】
また、参考となる自動化ソフトウェアとして、新たな手順書に類似する自動化ソフトウェアを検索することも考えられる。しかし、手順書と自動化ソフトウェアとでは記述形式が異なるため、単純な文字列の比較により、新たな手順書に類似する自動化ソフトウェアを検索することはできない。
【０００８】
本発明は、一つの側面として、手順書を自動化する際に参考となる既存の自動化ソフトウェアを検索することを目的とする。
【課題を解決するための手段】
【０００９】
一つの態様では、情報処理装置に対して行う設定の手順を記述した既存の手順書の各々に含まれる複数の処理の各々を抽出し、手順書に含まれる複数の処理の各々を複数のコマンドに変換した自動化ソフトウェアの各々に含まれる複数のコマンドの各々を抽出し、前記既存の手順書の各々から抽出した複数の処理の各々と、前記自動化ソフトウェアの各々から抽出した複数のコマンドの各々とを、順序性を保持したまま比較することにより、前記既存の手順書の各々と前記自動化ソフトウェアの各々とを対応付けて記憶部に記憶し、自動化ソフトウェアを作成する対象の手順書から、前記複数の処理の各々を抽出し、前記記憶部に記憶された複数の既存の手順書の各々に含まれる複数の処理の各々と、前記対象の手順書から抽出した複数の処理の各々とを、順序性を保持したまま比較することにより、前記既存の手順書の各々と前記対象の手順書との手順書類似度を算出し、算出した前記手順書類似度に基づいて、前記対象の手順書に類似する既存の手順書と、該既存の手順書に対応付けて前記記憶部に記憶された自動化ソフトウェアとを検索する。
【発明の効果】
【００１０】
一つの側面として、手順書を自動化する際に参考となる既存の自動化ソフトウェアを検索することができる、という効果を有する。
【図面の簡単な説明】
【００１１】
【図１】手順書の一例を示す図である。
【図２】手順書の自動化を説明するための図である。
【図３】自動化スクリプトの一例を示す図である。
【図４】自動化スクリプトの検索を説明するための概略図である。
【図５】自動化スクリプトの検索を説明するための概略図である。
【図６】第１実施形態に係る検索装置の機能ブロック図である。
【図７】手順書データベース（ＤＢ）の一例を示す図である。
【図８】第１実施形態における自動化スクリプトＤＢの一例を示す図である。
【図９】手順書からのコマンドの抽出を説明するための図である。
【図１０】手順書コマンドＤＢの一例を示す図である。
【図１１】コマンド類似度の算出を説明するための図である。
【図１２】コマンド同士の紐付けを説明するための図である。
【図１３】コマンド同士の紐付けを説明するための図である。
【図１４】ファイル類似度の算出を説明するための図である。
【図１５】第１及び第２実施形態に係る検索装置として機能するコンピュータの概略を示すブロック図である。
【図１６】第１実施形態における検索処理の一例を示すフローチャートである。
【図１７】第２実施形態に係る検索装置の機能ブロック図である。
【図１８】第２実施形態における自動化スクリプトＤＢの一例を示す図である。
【図１９】自動化スクリプトからのコマンドの抽出を説明するための図である。
【図２０】自動化スクリプトの変換定義を説明するための図である。
【図２１】自動化スクリプトコマンドＤＢの一例を示す図である。
【図２２】対応付情報ＤＢの一例を示す図である。
【図２３】紐付けられたコマンドの提示を説明するための図である。
【図２４】既存手順書と自動化スクリプトとの紐付処理の一例を示すフローチャートである。
【図２５】既存手順書と自動化スクリプトとの紐付処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明に係る実施形態の一例を詳細に説明する。
【００１３】
まず、各実施形態の詳細を説明する前に、本実施形態で想定している手順書、及びその手順書から作成される自動化スクリプトの一例、並びに本実施形態の概要について説明する。なお、自動化スクリプトは、本発明の自動化ソフトウェアの一例である。
【００１４】
手順書は、自動化の対象となる情報処理装置に対して行われる設定の手順を記述したものである。情報処理装置に対して行われる設定とは、例えば、情報処理装置の増設作業や機能追加に伴う更新作業、不具合の修正作業などである。手順書は、１つの作業群に対して、テキスト形式の１つのファイルとして作成されているものとする。
【００１５】
図１に、本実施形態における手順書の一例を示す。手順書１００には、手順書の概要説明１０１、作業者操作１０２、コマンド列１０３、及びＧＵＩ（graphical user interface）操作１０４が含まれる。概要説明１０１は、情報処理装置に対して行われる設定の各手順を記述した作業者操作１０２、コマンド列１０３、及びＧＵＩ操作１０４とは異なり、手順書全体の説明や注意事項等の記述である。従って、概要説明１０１の記述自体は自動化の対象ではない。
【００１６】
作業者操作１０２は、「サーバにログイン」など、作業者が行う操作を表す自然言語による記述である。コマンド列１０３は、情報処理装置で実行される処理を表す複数の命令文（コマンド）の記述である。なお、図１では、コマンド列１０３に含まれる各コマンドを「＃」で開始する１行毎に区切って記述している。ＧＵＩ操作１０４は、「Ｗｅｂブラウザ経由でファイルをアップロード」など、ＧＵＩを利用した操作を表す自然言語による記述である。なお、作業者操作１０２、コマンド列１０３、及びＧＵＩ操作１０４は、本発明の「複数の処理」の一例である。特に、本実施形態では、コマンド列１０３に含まれる複数のコマンドを、本発明の「複数の処理」として扱う場合について説明する。
【００１７】
自動化スクリプトの作成担当者は、図２に示すように、自動化スクリプト２００の作成に当たって、手順書１００内の作業者操作１０２、コマンド列１０３、及びＧＵＩ操作１０４のそれぞれについて、次のように自動化を行う。まず、コマンド列１０３については、自動化スクリプト２００の形式に沿ったコマンド列２０２に変換する。次に、作業者操作１０２については、同等の処理を実行可能な自動化スクリプト形式のコマンド列２０２に変換する。また、ＧＵＩ操作１０４については、ＡＰＩ（Application Programming Interface）等を利用することにより同等の処理を実行可能な自動化スクリプト形式のコマンド列２０２に変換する。自動化スクリプト形式のコマンド列２０２に変換できない場合は、その箇所で自動化スクリプトを分割、または入力待ち状態とし、その箇所の操作のみ人手で実行するように自動化スクリプト２００を作成する。
【００１８】
図３に、作成された自動化スクリプト２００の一例を示す。自動化スクリプト２００には、手順書１００の記述を自動化スクリプト２００に沿った形式に変換するための変換定義２０１、及び手順書１００の記述をコマンド化したコマンド列２０２が含まれる。手順書１００では、人がそのままコマンドを実行するために変数化が行われていないのが一般的だが、自動化スクリプト２００では、メンテナンス性を考慮して、変数化されていることが多い。従って、変換定義２０１には、例えば、手順書１００においては具体的な文字列で記述されている箇所を、一般化した変数に変換するための規則が定義される。
【００１９】
ここで、図４に示すように、自動化対象の手順書１００（以下、「対象手順書１００Ａ」）から自動化スクリプト２００Ａを作成する場合を考える。また、既に自動化スクリプトを作成済みの手順書１００（以下、「既存手順書１００Ｂ」）と、対象手順書１００Ａとが類似するとする。この場合、対象手順書１００Ａから作成しようとする自動化スクリプト２００Ａは、既存手順書１００Ｂから既に作成済みの自動化スクリプト２００Ｂに類似する可能性が高い。従って、手順書１００Ａから自動化スクリプト２００Ａを作成する際に、自動化スクリプト２００Ｂ内の流用可能な箇所を新たに作成する自動化スクリプト２００Ａに流用することで、自動化スクリプト２００Ａの作成のための作業工数を削減できる。
【００２０】
そこで、本実施形態では、図５に示すように、既存手順書１００Ｂと、各既存手順書１００Ｂから作成された自動化スクリプト２００Ｂとを対応付けて記憶しておく。そして、自動化担当者により対象手順書１００Ａが入力された際に、対象手順書１００Ａと既存手順書１００Ｂとの類似度を算出する。そして、対象手順書１００Ａに類似する既存手順書１００Ｂを検索し、検索された既存手順書１００Ｂに対応付けられた自動化スクリプト２００Ｂを、自動化担当者に提示する。
【００２１】
以下、各実施形態について詳述する。なお、以下では、対象手順書１００Ａと既存手順書１００Ｂとを区別なく説明する場合には、単に「手順書１００」と記述する。また、自動化スクリプト２００Ａと自動化スクリプト２００Ｂとを区別なく説明する場合には、単に「自動化スクリプト２００」と記述する。
【００２２】
＜第１実施形態＞
図６に示すように、第１実施形態に係る検索装置１０は、コマンド抽出部２１と、コマンド紐付部２２と、ファイル類似度算出部２３と、検索部２４とを含む。また、検索装置１０の所定の記憶領域には、手順書データベース（ＤＢ）３１と、自動化スクリプトＤＢ３２と、手順書コマンドＤＢ３３とが記憶される。
【００２３】
手順書ＤＢ３１には、例えば図７に示すように、既存手順書１００Ｂを示す各ファイルに、既存手順書１００Ｂを識別するための手順書ＩＤが付与されて記憶される。また、自動化スクリプトＤＢ３２には、例えば図８に示すように、自動化スクリプト２００Ｂを示す各ファイルに、自動化スクリプト２００Ｂを識別するための自動化スクリプトＩＤが付与されて記憶される。また、各自動化スクリプト２００Ｂの作成元である既存手順書１００Ｂの手順書ＩＤが記憶される。これにより、既存手順書１００Ｂと、その既存手順書１００Ｂから作成された自動化スクリプト２００Ｂとの対応付けが特定される。なお、第１実施形態では、説明を簡単にするため、既存手順書１００Ｂと自動化スクリプト２００Ｂとが、１対１で対応している場合について説明する。
【００２４】
コマンド抽出部２１は、図９に示すように、入力された対象手順書１００Ａ及び手順書ＤＢ３１に記憶された既存手順書１００Ｂの各々に含まれるコマンド列１０３から、各コマンドを抽出する。コマンドの抽出は、手順書の記述形式に応じて、コマンドの記述を特定する規則を予め定めておき、その規則に従って抽出することができる。例えば、上述したように、コマンド列１０３に含まれる各コマンドを「＃」で開始する１行毎に区切って記述している場合には、「＃」の次の文字から行末までを１つのコマンドとして抽出することができる。コマンド抽出部２１は、例えば図１０に示すように、抽出した各コマンドに、手順書１００内での出現順にコマンドＩＤを付与し、コマンドの抽出元の手順書１００の手順書ＩＤと対応付けて、手順書コマンドＤＢ３３に記憶する。
【００２５】
コマンド紐付部２２は、対象手順書１００Ａと既存手順書１００Ｂの各々との類似度を求めるために、対象手順書１００Ａから抽出されたコマンドの各々と、各既存手順書１００Ｂから抽出されたコマンドの各々との紐付けを行う。紐付けの対象となるコマンド同士は、コマンド間のコマンド類似度が所定の閾値ＴＨｃ以上で、かつコマンド類似度が最大のコマンド同士で、さらに、コマンド列の順序性が保持されたコマンド同士とする。
【００２６】
具体的には、コマンド紐付部２２は、手順書コマンドＤＢ３３から、対象手順書１００Ａから抽出されたコマンド列、及び既存手順書１００Ｂから抽出されたコマンド列を取得する。そして、コマンド紐付部２２は、図１１に示すように、各コマンド同士のコマンド類似度を算出する。コマンド類似度は、コマンドの文字列を比較して数値化したものとすることができる。例えば、比較する２つのコマンド間のレーベンシュタイン距離を、長い方（文字数が多い方）のコマンド列の文字数で割り、１から引いた値をコマンド類似度とすることができる。なお、レーベンシュタイン距離とは、２つの文字列がどの程度異なるかを表す値であり、文字の挿入、削除、置換によって、ある文字列を別の文字列に変換するのに必要な手数の最小値を表す。このレーベンシュタイン距離を長い方のコマンド列の文字数で割ることにより、コマンド類似度を０〜１に正規化できる。なお、コマンド類似度は、本発明の「処理類似度」の一例である。
【００２７】
また、コマンド紐付部２２は、図１２に示すように、対象手順書１００Ａから抽出された先頭のコマンドから順に、そのコマンドとのコマンド類似度が所定の閾値ＴＨｃ以上で、かつ最大の既存手順書１００Ｂのコマンドとの紐付けを行う。なお、図１２の例は、対象手順書１００Ａから抽出されたコマンド列に５個のコマンドが含まれ、既存手順書１００Ｂから抽出されたコマンド列にも５個のコマンドが含まれる場合である。また、図１２において、コマンド間を結ぶ矢印に併記した数値がコマンド類似度である。コマンド類似度が所定の閾値ＴＨｃ以上の場合に紐付けを行うのは、コマンド類似度が最大のコマンド同士であっても、実際には全く異なるコマンドである可能性がある。そのため、コマンド類似度が閾値ＴＨｃ未満であれば、コマンド同士の紐付けを行わないようにするためである。閾値ＴＨｃは、本装置に求められる精度等に応じて、予め設定しておく。
【００２８】
図１２の例では、対象手順書１００Ａのコマンド１とのコマンド類似度が最大の既存手順書１００Ｂのコマンドはコマンド２で、そのコマンド類似度は０．９である。０．９が、コマンド類似度の閾値ＴＨｃ以上であれば、対象手順書１００Ａのコマンド１と既存手順書１００Ｂのコマンド２とを紐付ける。より具体的には、対象手順書１００Ａの手順書ＩＤとコマンド１のコマンドＩＤとのペアと、既存手順書１００Ｂの手順書ＩＤとコマンド２のコマンドＩＤとのペアとを紐付けて、所定の記憶領域に一旦記憶しておく。
【００２９】
コマンド紐付部２２は、対象手順書１００Ａにおける次のコマンドについて、同様に既存手順書１００Ｂのコマンドとの紐付けを行う。この際、コマンド列の順序性を保持するため、既存手順書１００Ｂのコマンドのうち、既に対象手順書１００Ａのコマンドと紐付けられたコマンド以前のコマンドは紐付けの対象から除外する。手順書１００においては、ＩＦ文のような条件分岐はほとんどなく、情報処理装置に対して行う設定の手順が、実行順に上から下にシーケンシャルに記述されている場合が多く、各コマンドの実行順序は通常変化しないと考えられるためである。
【００３０】
例えば、上記の図１２の例の場合、対象手順書１００Ａのコマンド１と既存手順書１００Ｂのコマンド２とが紐付けられたため、図１３に示すように、対象手順書１００Ａの次のコマンド２の紐付け対象は、既存手順書１００Ｂのコマンド３、４、５となる。これにより、コマンド列の順序性を保持したコマンド間の紐付けが行えると共に、コマンド間の比較（コマンド類似度の算出）回数を減らし、処理速度を上げることができる。
【００３１】
ファイル類似度算出部２３は、コマンド紐付部２２によるコマンド同士の紐付け結果に基づいて、対象手順書１００Ａと、既存手順書１００Ｂの各々とのファイル類似度を算出する。なお、対象手順書１００Ａと既存手順書１００Ｂとのファイル類似度は、本発明の「手順書類似度」の一例である。ファイル類似度は、対象手順書１００Ａと既存手順書１００Ｂとの間で紐付けられたコマンド数が多いほど高くなる値とすることができる。例えば、対象手順書１００Ａと既存手順書１００Ｂとの間で紐付けられたコマンド数を、対象手順書１００Ａに含まれるコマンド数、または既存手順書１００Ｂに含まれるコマンド数の多い方で割った値を、ファイル類似度とすることができる。
【００３２】
例えば、図１４に示すように、対象手順書１００Ａに対して、コマンド同士が紐付けられた既存手順書１００Ｂ１、１００Ｂ２、１００Ｂ３、１００Ｂ４があったとする。図１４において、手順書１００内の各ブロックは１つのコマンドを表し、同じ模様のブロックが示すコマンド同士が紐付けられていることを表す。また、白いブロックが示すコマンドは、紐付けが行われていないコマンドを表す。また、いずれの手順書１００も、含まれるコマンド数は５個である。この場合、対象手順書１００Ａと既存手順書１００Ｂ１とでは、４個のコマンドが紐付けられているため、対象手順書１００Ａと既存手順書１００Ｂ１とのファイル類似度は、４／５＝０．８となる。ファイル類似度算出部２３は、同様に、対象手順書１００Ａと各既存手順書１００Ｂとのファイル類似度を算出する。
【００３３】
ファイル類似度算出部２３は、算出したファイル類似度を、対象手順書１００Ａの手順書ＩＤ及び既存手順書１００Ｂの手順書ＩＤと対応付けて、所定の記憶領域に一旦記憶する。
【００３４】
検索部２４は、ファイル類似度算出部２３で算出されたファイル類似度が、所定の閾値ＴＨｆ１以上の既存手順書１００Ｂを、対象手順書１００Ａに類似する既存手順書１００Ｂとして検索する。具体的には、閾値ＴＨｆ１以上のファイル類似度に対応付けられた既存手順書１００Ｂの手順書ＩＤに基づいて、手順書ＤＢ３１から該当の既存手順書１００Ｂを検索する。
【００３５】
ファイル類似度が所定の閾値ＴＨｆ１以上の既存手順書１００Ｂを選択するのは、ファイル類似度が最大の既存手順書１００Ｂであっても、実際には対象手順書１００Ａと全く類似しない可能性がある。そのため、ファイル類似度が閾値ＴＨｆ１未満であれば、対象手順書１００Ａに類似する既存手順書１００Ｂとして検索しないようにするためである。閾値ＴＨｆ１は、本装置に求められる精度等に応じて、予め設定しておく。
【００３６】
対象手順書１００Ａに類似する既存手順書１００Ｂは、１つであってもよいし、複数であってもよい。例えば、ファイル類似度が所定の閾値ＴＨｆ１以上で、かつ最大の既存手順書１００Ｂを１つ検索してもよいし、ファイル類似度が所定の閾値ＴＨｆ１以上の既存手順書１００Ｂを全て検索してもよい。また、ファイル類似度が所定の閾値ＴＨｆ１以上で、かつ上位Ｎ件までの既存手順書１００Ｂを検索してもよい。例えば、図１４の例で、閾値を０．６、Ｎ＝３とすると、既存手順書１００Ｂ１、１００Ｂ２が検索される。
【００３７】
検索部２４は、検索した対象手順書１００Ａに類似する既存手順書１００Ｂに対応付けられた自動化スクリプト２００Ｂを、自動化スクリプトＤＢ３２から検索する。具体的には、検索部２４は、自動化スクリプトＤＢ３２の「手順書ＩＤ」の項目に、検索した既存手順書１００Ｂの手順書ＩＤが記憶されている自動化スクリプト２００Ｂを検索する。図１４の例で、対象手順書１００Ａに類似する既存手順書１００Ｂとして既存手順書１００Ｂ１が検索されたとする。この場合、既存手順書１００Ｂ１から作成され、既存手順書１００Ｂ１の手順書ＩＤと対応付けて自動化スクリプトＤＢ３２に記憶されている自動化スクリプト２００Ｂ１が検索される。
【００３８】
検索装置１０は、例えば図１５に示すコンピュータ４０で実現することができる。コンピュータ４０はＣＰＵ４１、一時記憶領域としてのメモリ４２、及び不揮発性の記憶部４３を備える。また、コンピュータ４０は、入出力装置４８が接続される入出力インターフェース（Ｉ／Ｆ）４４を備える。また、コンピュータ４０は、記録媒体４９に対するデータの読み込み及び書き込みを制御するｒｅａｄ／ｗｒｉｔｅ（Ｒ／Ｗ）部４５、及びインターネット等のネットワークに接続されるネットワークＩ／Ｆ４６を備える。ＣＰＵ４１、メモリ４２、記憶部４３、入出力Ｉ／Ｆ４４、Ｒ／Ｗ部４５、及びネットワークＩ／Ｆ４６は、バス４７を介して互いに接続される。
【００３９】
記憶部４３はＨＤＤ（Hard Disk Drive）、ＳＳＤ（solid state drive）、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部４３には、コンピュータ４０を検索装置１０として機能させるための検索プログラム５０が記憶される。また、記憶部４３は、手順書ＤＢ３１を構成する情報が記憶される手順書記憶領域６１と、自動化スクリプトＤＢ３２を構成する情報が記憶される自動化スクリプト記憶領域６２と、手順書コマンドＤＢ３３を構成する情報が記憶される手順書コマンド記憶領域６３とを有する。
【００４０】
ＣＰＵ４１は、検索プログラム５０を記憶部４３から読み出してメモリ４２に展開し、検索プログラム５０が有するプロセスを順次実行する。また、ＣＰＵ４１は、手順書記憶領域６１に記憶された情報を読み出して、例えば図７に示すような手順書ＤＢ３１としてメモリ４２に展開する。また、ＣＰＵ４１は、自動化スクリプト記憶領域６２に記憶された情報を読み出して、例えば図８に示すような自動化スクリプトＤＢ３２としてメモリ４２に展開する。また、ＣＰＵ４１は、手順書コマンド記憶領域６３に記憶された情報を読み出して、例えば図１０に示すような手順書コマンドＤＢ３３としてメモリ４２に展開する。
【００４１】
検索プログラム５０は、コマンド抽出プロセス５１と、コマンド紐付プロセス５２と、ファイル類似度算出プロセス５３と、検索プロセス５４とを有する。ＣＰＵ４１は、コマンド抽出プロセス５１を実行することで、図６に示すコマンド抽出部２１として動作する。また、ＣＰＵ４１は、コマンド紐付プロセス５２を実行することで、図６に示すコマンド紐付部２２として動作する。また、ＣＰＵ４１は、ファイル類似度算出プロセス５３を実行することで、図６に示すファイル類似度算出部２３として動作する。ＣＰＵ４１は、検索プロセス５４を実行することで、図６に示す検索部２４として動作する。これにより、検索プログラム５０を実行したコンピュータ４０が、検索装置１０として機能することになる。
【００４２】
なお、検索装置１０は、例えば半導体集積回路、より詳しくはＡＳＩＣ（Application Specific Integrated Circuit）等で実現することも可能である。
【００４３】
次に、第１実施形態に係る検索装置１０の作用について説明する。手順書ＤＢ３１に複数の既存手順書１００Ｂが記憶され、自動化スクリプトＤＢ３２に、手順書ＤＢ３１に記憶された既存手順書１００Ｂの各々に対応する自動化スクリプトが記憶された状態とする。この状態で、自動化担当者が対象手順書１００Ａを検索装置１０に入力すると、検索装置１０において、図１６に示す検索処理が実行される。
【００４４】
なお、以下では、手順書ＤＢ３１に記憶された既存手順書１００Ｂには、１，２，・・・と連番で手順書ＩＤが付与されているものとし、手順書ＩＤ＝ｉの既存手順書１００Ｂを「既存手順書Ｐｉ」と表記する。また、既存手順書Ｐｉから作成された自動化スクリプトを「自動化スクリプトＳｉ」と表記し、対象手順書１００Ａは「対象手順書ＰＴ」と表記する。また、対象手順書ＰＴ及び既存手順書Ｐｉの各々から抽出されたコマンドには、手順書毎に、１，２，・・・と連番でコマンドＩＤが付与されるものとする。また、対象手順書ＰＴから抽出されたコマンドＩＤ＝ｊのコマンドを「コマンドｃＴ，ｊ」と表記し、既存手順書Ｐｉから抽出されたコマンドＩＤ＝ｍのコマンドを「コマンドｃｉ，ｍ」と表記する。
【００４５】
図１６に示す検索処理のステップＳ１１で、コマンド抽出部２１が、入力された対象手順書ＰＴに含まれるコマンド列１０３から、各コマンドを抽出する。また、コマンド抽出部２１は、手順書ＤＢ３１に記憶された既存手順書Ｐｉの各々に含まれるコマンド列１０３から、各コマンドを抽出する。そして、コマンド抽出部２１は、抽出した各コマンドに、手順書１００内での出現順にコマンドＩＤを付与し、コマンドの抽出元の手順書１００の手順書ＩＤと対応付けて、手順書コマンドＤＢ３３に記憶する。
【００４６】
次に、ステップＳ１２で、コマンド紐付部２２が、処理対象の既存手順書Ｐｉを特定するための変数ｉに１を設定する。変数ｉは、ｉ＝１，２，・・・，Ｉであり、Ｉは手順書ＤＢ３１に記憶された既存手順書１００Ｂの総数である。次に、ステップＳ１３で、コマンド紐付部２２が、対象手順書ＰＴに含まれるコマンドのうち、処理対象のコマンドｃＴ，ｊを特定するための変数ｊに１を設定する。変数ｊは、ｊ＝１，２，・・・，Ｊであり、Ｊは対象手順書ＰＴに含まれるコマンドの総数である。
【００４７】
次に、ステップＳ１４で、コマンド紐付部２２が、対象手順書ＰＴのコマンドｃＴ，ｊと、既存手順書Ｐｉの各コマンドｃｉ，ｍ’とのコマンド類似度を算出する。ここで、ｍは、ｍ＝１，２，・・・，Ｍ（ｉ）であり、Ｍ（ｉ）は、既存手順書Ｐｉに含まれるコマンドの総数である。また、ｍ’は、ｍのうち、対象手順書ＰＴのコマンドｃＴ，ｊと紐付済みのコマンド以前のコマンドを除外した各コマンドを表す。例えば、ｍ＝１，２，・・・，５で、対象手順書ＰＴのコマンドｃＴ，ｊと紐付済みのコマンドで、コマンドＩＤが最大のコマンドがコマンドｃｉ，２の場合、ｍ’は、ｍ’＝３，４，５である。
【００４８】
次に、ステップＳ１５で、コマンド紐付部２２が、上記ステップＳ１４で算出したコマンド類似度の最大値が閾値ＴＨｃ以上か否かを判定する。コマンド類似度の最大値が閾値ＴＨｃ以上の場合には、処理はステップＳ１６へ移行する。ステップＳ１６では、コマンド紐付部２２が、対象手順書ＰＴの手順書ＩＤとコマンドｃＴ，ｊのコマンドＩＤ（ｊ）とのペアと、既存手順書Ｐｉの手順書ＩＤ（ｉ）とコマンド類似度が最大となるコマンドｃｉ，ｍ’のコマンドＩＤとのペアとを紐付ける。そして、コマンド紐付部２２は、紐付結果を所定の記憶領域に一旦記憶して、ステップＳ１７へ移行する。一方、上記ステップＳ１５で、コマンド類似度の最大値が閾値ＴＨｃ未満と判定された場合には、処理はステップＳ１６をスキップして、ステップＳ１７へ移行する。
【００４９】
ステップＳ１７では、変数ｊがＪに達したか否かを判定することにより、対象手順書ＰＴに含まれる全てのコマンドについて、既存手順書Ｐｉに含まれるコマンドとの紐付処理を行ったか否かを判定する。変数ｊがＪに達していない場合には、処理はステップＳ１８へ移行し、コマンド紐付部２２が、変数ｊを１インクリメントして、処理はステップＳ１４に戻る。変数ｊがＪに達した場合には、処理はステップＳ１９へ移行する。
【００５０】
ステップＳ１９では、ファイル類似度算出部２３が、コマンド紐付部２２によるコマンド同士の紐付け結果に基づいて、対象手順書ＰＴと既存手順書Ｐｉとのファイル類似度を算出する。例えば、対象手順書ＰＴと既存手順書Ｐｉとの間で紐付けられたコマンド数を、対象手順書Ｐｉに含まれるコマンド数、及び既存手順書Ｐｉに含まれるコマンド数の多い方で割った値を、ファイル類似度として算出する。ファイル類似度算出部２３は、算出したファイル類似度を、対象手順書ＰＴの手順書ＩＤ及び既存手順書Ｐｉの手順書ＩＤ（ｉ）と対応付けて、所定の記憶領域に一旦記憶する。
【００５１】
次に、ステップＳ２０で、ファイル類似度算出部２３が、変数ｉがＩに達したか否かを判定することにより、手順書ＤＢ３１に記憶された全ての既存手順書Ｐｉについて、対象手順書ＰＴとのファイル類似度を算出する処理を行ったか否かを判定する。変数ｉがＩに達していない場合には、処理はステップＳ２１へ移行し、ファイル類似度算出部２３が、変数ｉを１インクリメントして、処理はステップＳ１３に戻る。変数ｉがＩに達した場合には、処理はステップＳ２２へ移行する。
【００５２】
ステップＳ２２では、検索部２４が、上記ステップＳ１９で算出されたファイル類似度のうち、閾値ＴＨｆ１以上のファイル類似度に対応付けられた既存手順書Ｐｉの手順書ＩＤ（ｉ）に基づいて、手順書ＤＢ３１から該当の既存手順書Ｐｉを検索する。例えば、ファイル類似度が閾値ＴＨｆ１以上で、かつ最大の既存手順書Ｐｉを１つ検索してもよいし、ファイル類似度が閾値ＴＨｆ１以上の既存手順書Ｐｉを全て検索してもよいし、ファイル類似度が閾値ＴＨｆ１以上で、かつ上位Ｎ件までの既存手順書Ｐｉを検索してもよい。
【００５３】
また、検索部２４は、検索した既存手順書Ｐｉの手順書ＩＤと対応付けて自動化スクリプトＤＢ３２に記憶された自動化スクリプトＳｉを検索する。そして、検索部２４は、検索した既存手順書Ｐｉ及び自動化スクリプトＳｉを、表示装置に表示するなどして、自動化担当者に提示し、検索処理を終了する。
【００５４】
以上説明したように、第１実施形態に係る検索装置１０によれば、既存手順書とその既存手順書から作成した自動化スクリプトとを対応付けて記憶しておく。そして、自動化の対象手順書が入力された際に、手順書に含まれる複数の処理に相当するコマンド列の順序性を保持したまま、コマンド間の紐付けを行い、紐付結果に基づいて、対象手順書に類似する既存手順書を検索する。そして、検索された既存手順書に対応付けられた自動化スクリプトと共に提示する。手順書と自動化スクリプトとでは記述形式が異なるため、単純な文字列の比較では、手順書と自動化スクリプトとの類似度を精度よく算出することができないが、本実施形態では、上記のように、まず、記述形式が同様の手順書同士で類似度を算出する。そして、対象手順書に類似した既存手順書を検索した上で、その既存手順書に対応付けられた自動化スクリプトを検索する。このため、対象手順書と既存の自動化スクリプトとの単純な文字列の比較では検索できない、手順書を自動化する際に参考となる既存の自動化スクリプトを検索することができる。
【００５５】
なお、第１実施形態では、既存手順書と、その既存手順書から作成された自動化スクリプトとを１対１で予め対応付けておく場合について説明したが、１対Ｎ、Ｎ対１、Ｎ対Ｎの関係で対応付けておいてもよい。１つの既存手順書に対して複数の自動化スクリプトが対応付けられている場合には、自動化スクリプトＤＢ３２において、検索された対象手順書に類似する既存手順書の手順書ＩＤに対応付けられた全ての自動化スクリプトを検索するようにすればよい。
【００５６】
＜第２実施形態＞
次に、第２実施形態について説明する。第１実施形態では、予め既存手順書１００Ｂと、その既存手順書１００Ｂから作成された自動化スクリプト２００Ｂとが対応付けて記憶されている場合について説明した。しかし、自動化された作業に対して手順書を参照する必要性がないことや、管理工数などを考慮すると、既存手順書１００Ｂと自動化スクリプト２００Ｂとが対応付けて管理されている場合は少ないと考えられる。そこで、第２実施形態では、既存手順書１００Ｂと自動化スクリプト２００Ｂとの対応付けも行う場合について説明する。
【００５７】
なお、第１実施形態に係る検索装置１０と同一の部分については、同一符号を付して詳細な説明を省略する。
【００５８】
図１７に示すように、第２実施形態に係る検索装置２１０は、コマンド抽出部２２１と、コマンド紐付部２２２と、ファイル類似度算出部２２３と、検索部２２４とを含む。また、検索装置２１０の所定の記憶領域には、手順書ＤＢ３１と、自動化スクリプトＤＢ２３２と、手順書コマンドＤＢ３３と、自動化スクリプトコマンドＤＢ３４と、対応付情報ＤＢ３５とが記憶される。
【００５９】
自動化スクリプトＤＢ２３２には、例えば図１８に示すように、自動化スクリプト２００Ｂを示す各ファイルに、自動化スクリプト２００Ｂを識別するための自動化スクリプトＩＤが付与されて記憶される。第１実施形態における自動化スクリプトＤＢ３２とは異なり、各自動化スクリプト２００Ｂの作成元である既存手順書１００Ｂの手順書ＩＤの項目はない。
【００６０】
コマンド抽出部２２１は、第１実施形態におけるコマンド抽出部２１と同様に、入力された対象手順書１００Ａ及び手順書ＤＢ３１に記憶された既存手順書１００Ｂの各々に含まれるコマンド列１０３から、各コマンドを抽出する。
【００６１】
さらに、コマンド抽出部２２１は、図１９に示すように、自動化スクリプトＤＢ２３２に記憶された自動化スクリプト２００Ｂの各々に含まれるコマンド列２０２から、各コマンドを抽出する。自動化スクリプト２００からのコマンドの抽出は、自動化スクリプトの言語に応じて、コマンドの記述を特定する規則を予め定めておき、その規則に従って抽出することができる。例えば、図１９の例のように、「ｒｕｎ」という制御文に、設定対象の情報処理装置で実行する処理が記述されている場合には、「ｒｕｎ」で指定された制御文を１つのコマンドとして抽出することができる。
【００６２】
コマンド抽出部２２１は、自動化スクリプト２００の変換定義２０１を参照して、手順書から自動化スクリプトを作成する際に、具体的な文字列部分を変数に変換した箇所を、変換前の文字列に変換し直す。例えば、図２０に示すような変換定義２０１が自動化スクリプト２００に含まれていたとする。この例では、例えば、手順書１００内の「／ｅｔｃ／〜／」という記述は、自動化スクリプト２００を作成する際に、「ｔａｒｇｅｔ＿ｐａｔｈ」に変換されることを定義している。なお、変換定義２０１における「〜」は、実際の手順書１００では、サーバ名、ソフトウェア名、ファイル名等の具体的な情報が特定されている箇所である。従って、図２０に示すように、例えば、自動化スクリプト２００から抽出された「ｍｖ”＋ｔａｒｇｅｔ＿ｐａｔｈ＋ｔａｒｇｅｔ＿ｆｉｌｅ」というコマンドは、「ｍｖ／ｅｔｃ／〜／〜．ｃｏｎｆ」というコマンドに変換し直す。
【００６３】
コマンド抽出部２２１は、例えば図２１に示すように、自動化スクリプト２００から抽出した各コマンド、または変換定義２０１に基づいて変換し直した場合には変換し直したコマンドに、自動化スクリプト２００内での出現順にコマンドＩＤを付与する。そして、コマンドの抽出元の自動化スクリプト２００の自動化スクリプトＩＤと対応付けて、自動化スクリプトコマンドＤＢ３４に記憶する。
【００６４】
コマンド紐付部２２２は、第１実施形態におけるコマンド紐付部２２と同様に、対象手順書１００Ａと既存手順書１００Ｂの各々との類似度を求めるために、コマンド間のコマンド類似度を算出し、コマンド同士の紐付けを行う。
【００６５】
さらに、コマンド紐付部２２２は、既存手順書１００Ｂと既存の自動化スクリプト２００Ｂの各々との類似度を求めるために、既存手順書１００Ｂから抽出されたコマンドの各々と、各自動化スクリプト２００Ｂから抽出されたコマンドの各々との紐付けを行う。具体的な方法は、対象手順書１００Ａから抽出されたコマンドの各々と、各既存手順書１００Ｂから抽出されたコマンドの各々との紐付けと同様であるため、説明を省略する。
【００６６】
ファイル類似度算出部２２３は、第１実施形態におけるファイル類似度算出部２３と同様に、コマンド紐付部２２２によるコマンド同士の紐付け結果に基づいて、対象手順書１００Ａと既存手順書１００Ｂの各々とのファイル類似度を算出する。
【００６７】
さらに、ファイル類似度算出部２２３は、コマンド紐付部２２２によるコマンド同士の紐付け結果に基づいて、既存手順書１００Ｂと、既存の自動化スクリプト２００Ｂの各々とのファイル類似度を算出する。ファイル類似度の算出方法は、対象手順書１００Ａと既存手順書１００Ｂの各々とのファイル類似度の算出方法と同様であるため、説明を省略する。
【００６８】
また、ファイル類似度算出部２２３は、算出した既存手順書１００Ｂと自動化スクリプト２００Ｂの各々とのファイル類似度が、所定の閾値ＴＨｆ２以上となる既存手順書１００Ｂと自動化スクリプト２００Ｂとのペアを抽出する。ファイル類似度が所定の閾値ＴＨｆ２以上のペアを抽出するのは、ファイル類似度が最大のペアであっても、実際には全く類似しない可能性がある。そのため、ファイル類似度が閾値ＴＨｆ２未満であれば、既存手順書１００Ｂと自動化スクリプト２００Ｂとの対応付けを行わないようにするためである。閾値ＴＨｆ２は、本装置に求められる精度等に応じて、予め設定しておく。
【００６９】
既存手順書１００Ｂと自動化スクリプト２００Ｂとの対応付けは、１対１、１対Ｎ、Ｎ対１、Ｎ対Ｎのいずれの関係であってもよい。例えば、ファイル類似度が所定の閾値ＴＨｆ２以上で、かつ最大となるペアを抽出してもよいし、１つの既存手順書１００Ｂに対して、ファイル類似度が所定の閾値ＴＨｆ２以上となる全ての自動化スクリプト２００Ｂを抽出してもよい。また、１つの既存手順書１００Ｂに対して、ファイル類似度が所定の閾値ＴＨｆ２以上で、かつ上位Ｎ件までの自動化スクリプト２００Ｂを抽出してもよい。
【００７０】
ファイル類似度算出部２２３は、例えば図２２に示すように、抽出したペアの既存手順書１００Ｂの手順書ＩＤと、自動化スクリプト２００Ｂの自動化スクリプトＩＤとを対応付けて、対応付情報ＤＢ３５に記憶する。また、ファイル類似度算出部２２３は、対応付けられた既存手順書１００Ｂと自動化スクリプト２００Ｂとの間で紐付けられているコマンドの情報をあわせて記憶する。例えば、紐付けられたコマンド同士のコマンドＩＤを連結した表記を列挙して、既存手順書１００Ｂの手順書ＩＤ及び自動化スクリプト２００Ｂの自動化スクリプトＩＤと対応付けて記憶しておくことができる。
【００７１】
検索部２２４は、第１実施形態における検索部２４と同様に、対象手順書１００Ａと既存手順書１００Ｂとのファイル類似度に基づいて、対象手順書１００Ａに類似する既存手順書１００Ｂを検索する。そして、検索した既存手順書１００Ｂに対応付けられた自動化スクリプト２００Ｂを検索する。第１実施形態のように、自動化スクリプトＤＢ３２から直接検索するのではなく、検索部２２４は、対応付情報ＤＢ３５に記憶された情報に基づいて、対象手順書１００Ａに類似する既存手順書１００Ｂに対応付けられた自動化スクリプト２００Ｂを検索する。
【００７２】
具体的には、検索部２４は、対応付情報ＤＢ３５の「手順書ＩＤ」の項目に、検索した既存手順書１００Ｂの手順書ＩＤが記憶されている行の自動化スクリプトＩＤを取得する。そして、検索部２４は、取得した自動化スクリプトＩＤに基づいて、自動化スクリプトＤＢ２３２から、該当の自動化スクリプト２００Ｂを検索する。
【００７３】
また、検索部２２４は、検索した既存手順書１００Ｂ及び自動化スクリプト２００Ｂを提示する際、例えば図２３に示すように、既存手順書１００Ｂと自動化スクリプト２００Ｂとで紐付けられたコマンドもあわせて提示する。図２３の例では、一重下線で示された既存手順書１００ＢのコマンドＢと、自動化スクリプト２００Ｂのコマンドｂとが紐付いていることを表している。また、二重下線で示された既存手順書１００ＢのコマンドＤと、自動化スクリプト２００Ｂのコマンドｄとが紐付いていることを表している。
【００７４】
第２実施形態では、既存手順書１００Ｂと自動化スクリプト２００Ｂとは、上述したように、コマンド同士の紐付けに基づくファイル類似度に従って対応付けられている。すなわち、必ずしも、既存手順書１００Ｂと、その既存手順書１００Ｂから作成された自動化スクリプト２００Ｂとが対応付いているわけではない。従って、既存手順書１００Ｂと自動化スクリプト２００Ｂとの間で紐付けが行われていないコマンドは、対象手順書１００Ａから自動化スクリプト２００Ａを作成する際に流用できない場合もある。そこで、既存手順書１００Ｂと自動化スクリプト２００Ｂとで紐付けられたコマンドもあわせて提示することで、自動化担当者が、提示された自動化スクリプト２００Ｂを参考にする際に、各コマンドが流用可能か否かの判断を支援することができる。
【００７５】
検索装置２１０は、例えば図１５に示すコンピュータ４０で実現することができる。記憶媒体としての記憶部４３には、コンピュータ４０を検索装置２１０として機能させるための検索プログラム２５０が記憶される。また、記憶部４３は、手順書記憶領域６１と、自動化スクリプトＤＢ２３２を構成する情報が記憶される自動化スクリプト記憶領域２６２と、手順書コマンド記憶領域６３とを有する。また、記憶部４３は、自動化スクリプトコマンドＤＢ３４を構成する情報が記憶される自動化スクリプトコマンド記憶領域６４と、対応付情報ＤＢ３５を構成する情報が記憶される対応付情報記憶領域６５とを有する。
【００７６】
ＣＰＵ４１は、検索プログラム５０を記憶部４３から読み出してメモリ４２に展開し、検索プログラム２５０が有するプロセスを順次実行する。また、また、ＣＰＵ４１は、自動化スクリプト記憶領域２６２に記憶された情報を読み出して、例えば図１８に示すような自動化スクリプトＤＢ２３２としてメモリ４２に展開する。また、ＣＰＵ４１は、自動化スクリプトコマンド記憶領域６４に記憶された情報を読み出して、例えば図２１に示すような自動化スクリプトコマンドＤＢ３４としてメモリ４２に展開する。また、ＣＰＵ４１は、対応付情報記憶領域６５に記憶された情報を読み出して、例えば図２２に示すような対応付情報ＤＢ３５としてメモリ４２に展開する。その他のＤＢについては第１実施形態と同様である。
【００７７】
検索プログラム２５０は、コマンド抽出プロセス２５１と、コマンド紐付プロセス２５２と、ファイル類似度算出プロセス２５３と、検索プロセス２５４とを有する。ＣＰＵ４１は、コマンド抽出プロセス２５１を実行することで、図１７に示すコマンド抽出部２２１として動作する。また、ＣＰＵ４１は、コマンド紐付プロセス２５２を実行することで、図１７に示すコマンド紐付部２２２として動作する。また、ＣＰＵ４１は、ファイル類似度算出プロセス２５３を実行することで、図１７に示すファイル類似度算出部２２３として動作する。ＣＰＵ４１は、検索プロセス２５４を実行することで、図１７に示す検索部２２４として動作する。これにより、検索プログラム２５０を実行したコンピュータ４０が、検索装置２１０として機能することになる。
【００７８】
なお、検索装置２１０は、例えば半導体集積回路、より詳しくはＡＳＩＣ等で実現することも可能である。
【００７９】
次に、第２実施形態に係る検索装置２１０の作用について説明する。第２実施形態では、第１実施形態で説明した検索処理に先立って、検索装置２１０において、図２４及び図２５に示す既存手順書と自動化スクリプトとの対応付処理が実行される。なお、以下では、自動化スクリプトＤＢ３２に記憶された自動化スクリプト手順書２００Ｂには、１，２，・・・と連番で自動化スクリプトＩＤが付与されているものとする。また、自動化スクリプトＩＤ＝ｋの自動化スクリプト２００Ｂを「自動化スクリプトＳｋ」と表記する。自動化スクリプトＳｋの各々から抽出されたコマンドには、自動化スクリプト毎に、１，２，・・・と連番でコマンドＩＤが付与されるものとする。また、自動化スクリプトＳｋから抽出されたコマンドＩＤ＝ｎのコマンドを「コマンドｃｋ，ｎ」と表記する。また、第１実施形態における検索処理と同様の処理については、詳細な説明を省略する。
【００８０】
図２４に示す既存手順書と自動化スクリプトとの対応付処理のステップＳ３１で、コマンド抽出部２２１が、処理対象の自動化スクリプトＳｋを特定するための変数ｋに１を設定する。変数ｋは、ｋ＝１，２，・・・，Ｋであり、Ｋは自動化スクリプトＤＢ２３２に記憶された自動化スクリプト２００Ｂの総数である。
【００８１】
次に、ステップＳ３２で、コマンド抽出部２２１が、自動化スクリプトＳｋに含まれるコマンド列２０２から、各コマンドを抽出する。次に、ステップＳ３２で、コマンド抽出部２２１は、自動化スクリプトＳｋの変換定義２０１を参照して、手順書から自動化スクリプトを作成する際に、具体的な文字列部分を変数に変換した箇所が存在するか否かを判定する。存在する場合には、処理はステップＳ３４へ移行し、コマンド抽出部２２１が、変数に変換された箇所を文字列に変換し直して、処理はステップＳ３５へ移行する。一方、変数に変換した箇所が存在しない場合には、処理はステップＳ３４をスキップして、ステップＳ３５へ移行する。
【００８２】
ステップＳ３５では、コマンド抽出部２２１が、自動化スクリプト２００から抽出した各コマンド、または変換定義２０１に基づいて変換し直した場合には変換し直したコマンドに、自動化スクリプト２００内での出現順にコマンドＩＤを付与する。そして、コマンドの抽出元の自動化スクリプト２００の自動化スクリプトＩＤと対応付けて、自動化スクリプトコマンドＤＢ３４に記憶する。
【００８３】
次に、ステップＳ３６で、変数ｋがＫに達したか否かを判定することにより、自動化スクリプトＤＢ２３２に含まれる全ての自動化スクリプトＳｋについて、コマンドを抽出する処理を行ったか否かを判定する。変数ｋがＫに達していない場合には、処理はステップＳ３７へ移行し、コマンド抽出部２２１が、変数ｋを１インクリメントして、処理はステップＳ３２に戻る。変数ｋがＫに達した場合には、処理は図２５に示すステップＳ３８へ移行する。
【００８４】
ステップＳ３８では、コマンド抽出部２２１が、手順書ＤＢ３１に記憶された既存手順書Ｐｉの各々に含まれるコマンド列１０３から、各コマンドを抽出する。そして、コマンド抽出部２１は、抽出した各コマンドに、既存手順書Ｐｉ内での出現順にコマンドＩＤを付与し、コマンドの抽出元の既存手順書Ｐｉの手順書ＩＤ（ｉ）と対応付けて、手順書コマンドＤＢ３３に記憶する。
【００８５】
次に、ステップＳ３９で、コマンド紐付部２２２が、処理対象の既存手順書Ｐｉを特定するための変数ｉに１を設定する。次に、ステップＳ４０で、コマンド紐付部２２２が、処理対象の自動化スクリプトＳｋを特定するための変数ｋに１を設定する。次に、ステップＳ４１で、コマンド紐付部２２２が、既存手順書Ｐｉに含まれるコマンドのうち、処理対象のコマンドｃｉ，ｍを特定するための変数ｍに１を設定する。
【００８６】
次に、ステップＳ４２で、コマンド紐付部２２２が、既存手順書Ｐｉのコマンドｃｉ，ｍと、自動化スクリプトＳｋの各コマンドｃｋ，ｎ’とのコマンド類似度を算出する。ここで、ｎは、ｎ＝１，２，・・・，Ｎ（ｉ）であり、Ｎ（ｉ）は、自動化スクリプトＳｋに含まれるコマンドの総数である。また、ｎ’は、ｎのうち、既存手順書Ｐｉのコマンドｃｉ，ｍと紐付済みのコマンド以前のコマンドを除外した各コマンドを表す。
【００８７】
次に、ステップＳ４３で、コマンド紐付部２２２が、上記ステップＳ４２で算出したコマンド類似度の最大値が閾値ＴＨｃ以上か否かを判定する。コマンド類似度の最大値が閾値ＴＨｃ以上の場合には、処理はステップＳ４４へ移行する。ステップＳ４４では、コマンド紐付部２２２が、既存手順書Ｐｉの手順書ＩＤ（ｉ）とコマンドｃｉ，ｍのコマンドＩＤ（ｍ）とのペアと、自動化スクリプトＳｋの自動化スクリプトＩＤ（ｋ）とコマンド類似度が最大となるコマンドｃｋ，ｎ’のコマンドＩＤとのペアとを紐付ける。そして、コマンド紐付部２２２は、紐付結果を所定の記憶領域に一旦記憶して、ステップＳ４５へ移行する。一方、上記ステップＳ４３で、コマンド類似度の最大値が閾値ＴＨｃ未満と判定された場合には、処理はステップＳ４４をスキップして、ステップＳ４５へ移行する。
【００８８】
ステップＳ４５では、変数ｍがＭ（ｉ）に達したか否かを判定することにより、既存手順書Ｐｉに含まれる全てのコマンドについて、自動化スクリプトＳｋに含まれるコマンドとの紐付処理を行ったか否かを判定する。変数ｍがＭ（ｉ）に達していない場合には、処理はステップＳ４６へ移行し、コマンド紐付部２２２が、変数ｍを１インクリメントして、処理はステップＳ４２に戻る。変数ｍがＭ（ｉ）に達した場合には、処理はステップＳ４７へ移行する。
【００８９】
ステップＳ４７では、ファイル類似度算出部２２３が、コマンド紐付部２２２によるコマンド同士の紐付け結果に基づいて、既存手順書Ｐｉと自動化スクリプトＳｋとのファイル類似度を算出する。ファイル類似度算出部２２３は、算出したファイル類似度を、既存手順書Ｐｉの手順書ＩＤ（ｉ）及び自動化スクリプトＳｋの自動化スクリプトＩＤ（ｋ）と対応付けて、所定の記憶領域に一旦記憶する。
【００９０】
次に、ステップＳ４８で、ファイル類似度算出部２２３が、変数ｋがＫに達したか否かを判定する。これにより、自動化スクリプトＤＢ３２に記憶された全ての自動化スクリプトＳｋについて、既存手順書Ｐｉとのファイル類似度を算出する処理を行ったか否かを判定する。変数ｋがＫに達していない場合には、処理はステップＳ４９へ移行し、ファイル類似度算出部２２３が、変数ｋを１インクリメントして、処理はステップＳ４１に戻る。変数ｋがＫに達した場合には、処理はステップＳ５０へ移行する。
【００９１】
ステップＳ５０では、ファイル類似度算出部２２３が、変数ｉがＩに達したか否かを判定する。これにより、手順書ＤＢ３１に記憶された全ての既存手順書Ｐｉについて、自動化スクリプトＤＢ３２に記憶された全ての自動化スクリプトＳｋとのファイル類似度を算出する処理を行ったか否かを判定する。変数ｉがＩに達していない場合には、処理はステップＳ５１へ移行し、ファイル類似度算出部２２３が、変数ｉを１インクリメントして、処理はステップＳ４０に戻る。変数ｉがＩに達した場合には、処理はステップＳ５２へ移行する。
【００９２】
ステップＳ５２では、ファイル類似度算出部２２３が、算出した既存手順書Ｐｉの各々と自動化スクリプトＳｋの各々とのファイル類似度が、所定の閾値ＴＨｆ２以上となる既存手順書Ｐｉと自動化スクリプトＳｋとのペアを抽出する。そして、ファイル類似度算出部２２３は、抽出したペアの既存手順書Ｐｉの手順書ＩＤ（ｉ）と、自動化スクリプトＳｋの自動化スクリプトＩＤ（ｋ）とを対応付けて、対応付情報ＤＢ３５に記憶する。また、ファイル類似度算出部２２３は、対応付けられた既存手順書Ｐｉと自動化スクリプトＳｋとの間で紐付けられているコマンドの情報をあわせて記憶し、既存手順書と自動化スクリプトとの対応付処理を終了する。
【００９３】
検索処理については、第１実施形態と同様に実行することができる。なお、第２実施形態では、既存手順書と自動化スクリプトとの対応付処理において、既存手順書からコマンドを抽出する処理を行っている。そのため、第２実施形態における検索処理では、図１６のステップＳ１１において、既存手順書からコマンドを抽出する処理は省略することができる。また、図１６に示す検索処理のステップＳ２２で、検索した既存手順書と自動化スクリプトとを提示する際に、紐付けられたコマンドもあわせて提示する。
【００９４】
以上説明したように、第２実施形態に係る検索装置２１０では、既存手順書及び自動化スクリプトの各々に含まれるコマンド列の順序性を保持したまま、コマンド間の紐付けを行い、紐付結果に基づいて、既存手順書と自動化スクリプトとの対応付けを行う。そのうえで、第１実施形態と同様に、対象手順書に類似する既存手順書、及びその既存手順書に対応付けられた自動化スクリプトを検索する。従って、第１実施形態の効果に加え、既存手順書と自動化スクリプトとの対応付けも自動で行うことができる。
【００９５】
なお、上記各実施形態では、コマンド同士の紐付結果に基づいて、ファイル類似度を算出する場合について説明したが、これに限定されない。例えば、手順書や自動化スクリプトを作成した担当者が同一であるといった情報や、作成日時が近いといった情報を用いて、関連性が高いと判定される場合には、ファイル類似度が高くなるようにしてもよい。
【００９６】
また、提示した既存手順書及び自動化スクリプトが、対象手順書から自動化スクリプトを作成する際の参考になったか否かの情報をフィードバックし、次回以降算出されるファイル類似度及びコマンド類似度に反映するようにしてもよい。
【００９７】
なお、上記では、検索プログラム５０、２５０が記憶部４３に予め記憶（インストール）されている態様を説明したが、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ等の記録媒体に記録された形態で提供することも可能である。
【００９８】
以上の各実施形態に関し、更に以下の付記を開示する。
【００９９】
（付記１）
コンピュータに、
情報処理装置に対して行う設定の手順を記述した手順書に含まれる複数の処理の各々を複数のコマンドに変換した自動化ソフトウェアを作成する対象の手順書から、前記複数の処理の各々を抽出し、
既存の手順書と、前記既存の手順書から作成された自動化ソフトウェアとを対応付けて複数記憶した記憶部に記憶された複数の既存の手順書の各々に含まれる複数の処理の各々と、前記対象の手順書から抽出した複数の処理の各々とを、順序性を保持したまま比較することにより、前記既存の手順書の各々と前記対象の手順書との手順書類似度を算出し、
算出した前記手順書類似度に基づいて、前記対象の手順書に類似する既存の手順書と、該既存の手順書に対応付けて前記記憶部に記憶された自動化ソフトウェアとを検索する
ことを含む処理を実行させるための検索プログラム。
【０１００】
（付記２）
前記手順書類似度を、前記既存の手順書に含まれる複数の処理の各々と、前記対象の手順書に含まれる複数の処理の各々との処理類似度が所定の閾値以上で最大となる処理同士であって、処理の順序性が保持された処理同士を紐付け、前記既存の手順書及び前記対象の手順書の少なくとも一方に含まれる処理数に対する紐付けられた処理数の割合に基づいて算出する付記１記載の検索プログラム。
【０１０１】
（付記３）
前記コンピュータに、
前記既存の手順書の各々に含まれる複数の処理の各々を抽出し、
前記自動化ソフトウェアの各々に含まれる複数のコマンドの各々を抽出し、
前記既存の手順書の各々から抽出した複数の処理の各々と、前記自動化ソフトウェアの各々から抽出した複数のコマンドの各々とを、順序性を保持したまま比較することにより、前記既存の手順書の各々と前記自動化ソフトウェアとを対応付ける
ことをさらに含む処理を実行させるための付記１または付記２記載の検索プログラム。
【０１０２】
（付記４）
前記既存の手順書の各々から抽出した複数の処理の各々と、前記自動化ソフトウェアの各々から抽出した複数のコマンドの各々とを比較する際、前記複数のコマンドの各々のうち、処理をコマンドに変換する際に、文字列から変数への変換が行われる場合には、前記自動化ソフトウェアから抽出したコマンドの変数部分を、変換前の文字列に変換してから比較するか、または前記既存の手順書から抽出した処理の文字列部分を変数に変換してから比較する付記３記載の検索プログラム。
【０１０３】
（付記５）
前記既存の手順書の各々と前記自動化ソフトウェアとを対応付ける際、前記既存の手順書に含まれる複数の処理の各々と、前記自動化ソフトウェアに含まれる複数のコマンドの各々との処理類似度が所定の閾値以上で最大となる処理及びコマンドであって、処理及びコマンドの順序性が保持された処理とコマンドとを紐付け、前記既存の手順書に含まれる処理数、及び前記自動化ソフトウェアに含まれるコマンド数の少なくとも一方に対する、紐付けられた処理とコマンド数の割合に基づいて、対応付ける付記３または付記４記載の検索プログラム。
【０１０４】
（付記６）
情報処理装置に対して行う設定の手順を記述した手順書に含まれる複数の処理の各々を複数のコマンドに変換した自動化ソフトウェアを作成する対象の手順書から、前記複数の処理の各々を抽出する抽出部と、
既存の手順書と、前記既存の手順書から作成された自動化ソフトウェアとを対応付けて複数記憶した記憶部に記憶された複数の既存の手順書の各々に含まれる複数の処理の各々と、前記対象の手順書から前記抽出部により抽出された複数の処理の各々とを、順序性を保持したまま比較することにより、前記既存の手順書の各々と前記対象の手順書との手順書類似度を算出する算出部と、
前記算出部により算出された前記手順書類似度に基づいて、前記対象の手順書に類似する既存の手順書と、該既存の手順書に対応付けて前記記憶部に記憶された自動化ソフトウェアとを検索する検索部と、
を含む検索装置。
【０１０５】
（付記７）
前記算出部は、前記手順書類似度を、前記既存の手順書に含まれる複数の処理の各々と、前記対象の手順書に含まれる複数の処理の各々との処理類似度が所定の閾値以上で最大となる処理同士であって、処理の順序性が保持された処理同士を紐付け、前記既存の手順書及び前記対象の手順書の少なくとも一方に含まれる処理数に対する紐付けられた処理数の割合に基づいて算出する付記６記載の検索装置。
【０１０６】
（付記８）
前記抽出部は、前記既存の手順書の各々に含まれる複数の処理の各々を抽出し、前記自動化ソフトウェアの各々に含まれる複数のコマンドの各々を抽出し、
前記算出部は、前記既存の手順書の各々から抽出した複数の処理の各々と、前記自動化ソフトウェアの各々から抽出した複数のコマンドの各々とを、順序性を保持したまま比較することにより、前記既存の手順書の各々と前記自動化ソフトウェアとを対応付ける
付記６または付記７記載の検索装置。
【０１０７】
（付記９）
前記算出部は、前記既存の手順書の各々から抽出した複数の処理の各々と、前記自動化ソフトウェアの各々から抽出した複数のコマンドの各々とを比較する際、前記複数のコマンドの各々のうち、処理をコマンドに変換する際に、文字列から変数への変換が行われる場合には、前記自動化ソフトウェアから抽出したコマンドの変数部分を、変換前の文字列に変換してから比較するか、または前記既存の手順書から抽出した処理の文字列部分を変数に変換してから比較する付記８記載の検索装置。
【０１０８】
（付記１０）
前記算出部は、前記既存の手順書の各々と前記自動化ソフトウェアとを対応付ける際、前記既存の手順書に含まれる複数の処理の各々と、前記自動化ソフトウェアに含まれる複数のコマンドの各々との処理類似度が所定の閾値以上で最大となる処理及びコマンドであって、処理及びコマンドの順序性が保持された処理とコマンドとを紐付け、前記既存の手順書に含まれる処理数、及び前記自動化ソフトウェアに含まれるコマンド数の少なくとも一方に対する、紐付けられた処理とコマンド数の割合に基づいて、対応付ける付記８または付記９記載の検索装置。
【０１０９】
（付記１１）
コンピュータに、
情報処理装置に対して行う設定の手順を記述した手順書に含まれる複数の処理の各々を複数のコマンドに変換した自動化ソフトウェアを作成する対象の手順書から、前記複数の処理の各々を抽出し、
既存の手順書と、前記既存の手順書から作成された自動化ソフトウェアとを対応付けて複数記憶した記憶部に記憶された複数の既存の手順書の各々に含まれる複数の処理の各々と、前記対象の手順書から抽出した複数の処理の各々とを、順序性を保持したまま比較することにより、前記既存の手順書の各々と前記対象の手順書との手順書類似度を算出し、
算出した前記手順書類似度に基づいて、前記対象の手順書に類似する既存の手順書と、該既存の手順書に対応付けて前記記憶部に記憶された自動化ソフトウェアとを検索する
ことを含む処理を実行させる検索方法。
【０１１０】
（付記１２）
前記手順書類似度を、前記既存の手順書に含まれる複数の処理の各々と、前記対象の手順書に含まれる複数の処理の各々との処理類似度が所定の閾値以上で最大となる処理同士であって、処理の順序性が保持された処理同士を紐付け、前記既存の手順書及び前記対象の手順書の少なくとも一方に含まれる処理数に対する紐付けられた処理数の割合に基づいて算出する付記１１記載の検索方法。
【０１１１】
（付記１３）
前記コンピュータに、
前記既存の手順書の各々に含まれる複数の処理の各々を抽出し、
前記自動化ソフトウェアの各々に含まれる複数のコマンドの各々を抽出し、
前記既存の手順書の各々から抽出した複数の処理の各々と、前記自動化ソフトウェアの各々から抽出した複数のコマンドの各々とを、順序性を保持したまま比較することにより、前記既存の手順書の各々と前記自動化ソフトウェアとを対応付ける
ことをさらに含む処理を実行させる付記１１または付記１２記載の検索方法。
【０１１２】
（付記１４）
前記既存の手順書の各々から抽出した複数の処理の各々と、前記自動化ソフトウェアの各々から抽出した複数のコマンドの各々とを比較する際、前記複数のコマンドの各々のうち、処理をコマンドに変換する際に、文字列から変数への変換が行われる場合には、前記自動化ソフトウェアから抽出したコマンドの変数部分を、変換前の文字列に変換してから比較するか、または前記既存の手順書から抽出した処理の文字列部分を変数に変換してから比較する付記１３記載の検索方法。
【０１１３】
（付記１５）
前記既存の手順書の各々と前記自動化ソフトウェアとを対応付ける際、前記既存の手順書に含まれる複数の処理の各々と、前記自動化ソフトウェアに含まれる複数のコマンドの各々との処理類似度が所定の閾値以上で最大となる処理及びコマンドであって、処理及びコマンドの順序性が保持された処理とコマンドとを紐付け、前記既存の手順書に含まれる処理数、及び前記自動化ソフトウェアに含まれるコマンド数の少なくとも一方に対する、紐付けられた処理とコマンド数の割合に基づいて、対応付ける付記１３または付記１４記載の検索方法。
【符号の説明】
【０１１４】
１０、２１０  検索装置
２１、２２１  コマンド抽出部
２２、２２２  コマンド紐付部
２３、２２３  ファイル類似度算出部
２４、２２４  検索部
４０   コンピュータ
４１   ＣＰＵ
４２   メモリ
４３   記憶部
５０、２５０  検索プログラム
１００Ａ      対象手順書
１００Ｂ      既存手順書
２００ 自動化スクリプト
２５０ 検索プログラム
３１   手順書ＤＢ
３２、２３２  自動化スクリプトＤＢ
３３   手順書コマンドＤＢ
３４   自動化スクリプトコマンドＤＢ
３５   対応付情報ＤＢ
【図１】
0006365070.tif 000002
【図２】
0006365070.tif 000003
【図３】
0006365070.tif 000004
【図４】
0006365070.tif 000005
【図５】
0006365070.tif 000006
【図６】
0006365070.tif 000007
【図７】
0006365070.tif 000008
【図８】
0006365070.tif 000009
【図９】
0006365070.tif 000010
【図１０】
0006365070.tif 000011
【図１１】
0006365070.tif 000012
【図１２】
0006365070.tif 000013
【図１３】
0006365070.tif 000014
【図１４】
0006365070.tif 000015
【図１５】
0006365070.tif 000016
【図１６】
0006365070.tif 000017
【図１７】
0006365070.tif 000018
【図１８】
0006365070.tif 000019
【図１９】
0006365070.tif 000020
【図２０】
0006365070.tif 000021
【図２１】
0006365070.tif 000022
【図２２】
0006365070.tif 000023
【図２３】
0006365070.tif 000024
【図２４】
0006365070.tif 000025
【図２５】
0006365070.tif 000026