(57)【特許請求の範囲】
【請求項１】
フォルダそれぞれに割り当てたプログラムの実行制御を行うフォルダ割当プログラム実行制御装置であって、
前記フォルダの名称およびこのフォルダの階層関係を示したフォルダ情報と、前記フォルダの名称ごとに、この名称のフォルダに入力されたデータに対し実行するプログラムを示した名称管理データベースとを記憶する記憶部と、
前記フォルダ情報を参照して前記フォルダの階層関係を判断するファイル管理部と、
前記フォルダに入力するデータを受け付けるデータ受付部と、
前記名称管理データベースと、前記データが入力されたフォルダの名称とを参照して、前記入力されたデータに対し実行するプログラムを選択するフォルダ割当処理管理部と、
前記フォルダ割当処理管理部により選択されたプログラムを、前記入力されたデータに対し実行する処理実行部と、
前記ファイル管理部により、当該フォルダの下位フォルダがあると判断されたとき、当該フォルダに割り当てられたプログラムの実行結果である処理結果データを、前記下位フォルダに入力し、さらに、前記ファイル管理部により、当該フォルダの下に複数の下位フォルダがあると判断されたとき、当該フォルダに割り当てられたプログラムの実行結果である処理結果データを、前記下位フォルダそれぞれに入力する下位フォルダデータ投入部とを備え、
前記フォルダ割当処理管理部、前記処理実行部および前記下位フォルダデータ投入部により、前記入力されたデータまたは前記処理結果データに対し、当該データが入力されたフォルダの下位に連なるフォルダそれぞれに割り当てられたプログラムを、前記フォルダが連なる順に実行させることを特徴とするフォルダ割当プログラム実行制御装置。
【請求項２】
前記フォルダ割当プログラム実行制御装置は、前記フォルダ情報を表示する表示処理部をさらに備え、
前記ファイル管理部は、
前記表示処理部に、前記フォルダ情報に示される前記フォルダの階層関係および前記フォルダの名称をツリー構造で表示させることを特徴とする請求項１に記載のフォルダ割当プログラム実行制御装置。
【請求項３】
前記処理実行部において、当該フォルダの下位フォルダに割り当てられたプログラムの実行に失敗したとき、前記ファイル管理部に、当該下位フォルダに入力しようとした前記処理結果データを当該フォルダに格納させる処理結果管理部と、
前記処理実行部における処理結果を出力する結果通知部とを備えることを特徴とする請求項１または請求項２に記載のフォルダ割当プログラム実行制御装置。
【請求項４】
前記下位フォルダデータ投入部は、
前記ファイル管理部により、前記複数の下位フォルダの中に、if文を含む名称のフォルダがあると判断されたとき、前記if文に示される条件を満たす前記処理結果データを、当該if文を含む名称のフォルダへ入力することを特徴とする請求項１ないし請求項３のいずれか１項に記載のフォルダ割当プログラム実行制御装置。
【請求項５】
前記下位フォルダデータ投入部は、
前記ファイル管理部により、前記複数の下位フォルダの中に、if文を含む名称のフォルダがあると判断されたとき、前記処理結果データが、いずれの当該フォルダにおいても、前記if文に示される条件を満たさない場合に、当該処理結果データを前記複数の下位フォルダの１つとして設けたelseフォルダへ入力することを特徴とする請求項１ないし請求項４のいずれか１項に記載のフォルダ割当プログラム実行制御装置。
【請求項６】
前記フォルダ割当プログラム実行制御装置は、全体制御部をさらに備え、
前記名称管理データベースは、
前記フォルダに入力されたデータに対し実行するプログラムごとに、このプログラムの実行条件を含み、
前記全体制御部は、
前記入力されたデータが、前記フォルダに割り当てられたプログラムの実行条件を満たすデータであるか否かを判断し、前記入力されたデータが、前記フォルダに割り当てられたプログラムの実行条件を満たすデータであると判断したとき、
前記処理実行部に、前記入力されたデータに対し、前記プログラムの実行処理を行わせることを特徴とする請求項１ないし請求項５のいずれか１項に記載のフォルダ割当プログラム実行制御装置。
【請求項７】
前記フォルダに割り当てられたプログラムの実行条件が、複数の所定データの入力である場合において、
前記全体制御部は、
前記実行条件に示される複数の所定データのうち、当該フォルダにまだ入力されていないデータがあるか否かを判断し、当該フォルダにまだ入力されていないデータがあると判断したとき、
前記ファイル管理部に、前記フォルダに入力したデータをこのフォルダ以外のフォルダに保持させ、
前記実行条件に示される前記複数の所定データがすべてそろったと判断したとき、前記処理実行部に、前記プログラムの実行処理を行わせることを特徴とする請求項６に記載のフォルダ割当プログラム実行制御装置。
【請求項８】
前記処理実行部は、
前記フォルダの名称にパラメータが含まれていたとき、そのパラメータを用いて前記フォルダの名称に割り当てられたプログラムの実行処理を行うことを特徴とする請求項１ないし請求項７のいずれか１項に記載のフォルダ割当プログラム実行制御装置。
【請求項９】
前記フォルダ割当管理部において、前記名称管理データベースを参照して、前記データが入力されたフォルダの名称に対応するプログラムがないと判断されたとき、
前記ファイル管理部は、
前記入力されたデータを当該フォルダに格納することを特徴とする請求項１ないし請求項８のいずれか１項に記載のフォルダ割当プログラム実行制御装置。
【請求項１０】
前記下位フォルダは、当該フォルダの直下に格納されるフォルダからリンクされるリンク先フォルダを含むことを特徴とする請求項１ないし請求項９のいずれか１項に記載のフォルダ割当プログラム実行制御装置。
【請求項１１】
フォルダの名称およびこのフォルダの階層関係を示したフォルダ情報と、前記フォルダの名称ごとに、この名称のフォルダに入力されたデータに対し実行するプログラムを示した名称管理データベースを記憶する記憶部を備え、前記フォルダそれぞれに割り当てたプログラムの実行制御を行うフォルダ割当プログラム実行制御装置が、
前記フォルダへ入力するデータを受け付けるステップと、
前記名称管理データベースと、前記データが入力されたフォルダの名称とを参照して、前記入力されたデータに対し実行するプログラムを選択するステップと、
前記選択したプログラムの実行処理を行うステップと、
前記フォルダ情報を参照して、当該フォルダの下位フォルダがあるか否かを判断するステップと、
当該フォルダの下位フォルダがあると判断されたとき、当該フォルダに割り当てられたプログラムの実行結果である処理結果データを、前記下位フォルダに入力し、さらに、当該フォルダの下に複数の下位フォルダがあると判断されたとき、当該フォルダに割り当てられたプログラムの実行結果である処理結果データを、前記下位フォルダそれぞれに入力するステップと、
を繰り返すことで、前記入力されたデータまたは前記処理結果データに対し、当該データが入力されたフォルダの下位に連なるフォルダそれぞれに割り当てられたプログラムを、前記フォルダが連なる順に実行することを特徴とするフォルダ割当プログラム実行制御方法。
【請求項１２】
請求項１１に記載のフォルダ割当プログラム実行制御方法を、コンピュータである前記フォルダ割当プログラム実行制御装置に実行させるためのフォルダ割当プログラム実行制御プログラム。
【請求項１３】
請求項１２に記載のフォルダ割当プログラム実行制御プログラムを記憶したコンピュータに読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラミング技術に関する。
【背景技術】
【０００２】
従来から、ＧＵＩ（Graphical User Interface）を用いて、Ｗｅｂ上に提供されている情報やサービス等を組み合わせ、新しいソフトウェアやサービス、データベース等を作る（マッシュアップする）技術がある（非特許文献１参照）。また、フォルダに、このフォルダに入力されたファイル（データ）に対し実行する処理を割り当て、このフォルダに入力されたファイルの処理を自動化する技術がある（非特許文献２参照）。
【非特許文献１】Yahoo Pipes、Yahoo! Inc.、[online]、[平成20年1月31日検索]、インターネット、<URL:http://pipes.yahoo.com/pipes/>
【非特許文献２】AppleScript 、Apple Inc.、[online]、[平成20年1月31日検索]、インターネット、<URL:http://docs.info.apple.com/article.html?artnum=58106-ja>
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、非特許文献１に記載の技術は、独自のＧＵＩであり、技術の習得に時間を要する。また、この非特許文献１に記載の技術は、ＸＭＬ（Extensible Markup Language）データや、ＲＳＳ（Rich Site Summary）のマッシュアップに特化しており、記述内容に様々な制限があった。さらに、非特許文献２に記載の技術は、事前に固定した内容でしか処理の流れを作成できないという問題があった。本発明は、前記した問題を解決し、ユーザにとって好適なプログラミング環境を提供することを目的とする。
【課題を解決するための手段】
【０００４】
前記した課題を解決するため、請求項１に記載の発明は、フォルダそれぞれに割り当てたプログラムの実行制御を行うフォルダ割当プログラム実行制御装置であって、前記フォルダの名称およびこのフォルダの階層関係を示したフォルダ情報と、前記フォルダの名称ごとに、この名称のフォルダに入力されたデータに対し実行するプログラムを示した名称管理データベースとを記憶する記憶部と、前記フォルダ情報を参照して前記フォルダの階層関係を判断するファイル管理部と、前記フォルダに入力するデータを受け付けるデータ受付部と、前記名称管理データベースと、前記データが入力されたフォルダの名称とを参照して、前記入力されたデータに対し実行するプログラムを選択するフォルダ割当処理管理部と、前記フォルダ割当処理管理部により選択されたプログラムを、前記入力されたデータに対し実行する処理実行部と、前記ファイル管理部により、当該フォルダの下位フォルダがあると判断されたとき、当該フォルダに割り当てられたプログラムの実行結果である処理結果データを、前記下位フォルダに入力し、さらに、前記ファイル管理部により、当該フォルダの下に複数の下位フォルダがあると判断されたとき、当該フォルダに割り当てられたプログラムの実行結果である処理結果データを、前記下位フォルダそれぞれに入力する下位フォルダデータ投入部とを備え、前記フォルダ割当処理管理部、前記処理実行部および前記下位フォルダデータ投入部により、前記入力されたデータまたは前記処理結果データに対し、当該データが入力されたフォルダの下位に連なるフォルダそれぞれに割り当てられたプログラムを、前記フォルダが連なる順に実行させることを特徴とするフォルダ割当プログラム実行制御装置とした。
【０００５】
請求項１１に記載の発明は、フォルダの名称およびこのフォルダの階層関係を示したフォルダ情報と、前記フォルダの名称ごとに、この名称のフォルダに入力されたデータに対し実行するプログラムを示した名称管理データベースを記憶する記憶部を備え、前記フォルダそれぞれに割り当てたプログラムの実行制御を行うフォルダ割当プログラム実行制御装置が、前記フォルダへ入力するデータを受け付けるステップと、前記名称管理データベースと、前記データが入力されたフォルダの名称とを参照して、前記入力されたデータに対し実行するプログラムを選択するステップと、前記選択したプログラムの実行処理を行うステップと、前記フォルダ情報を参照して、当該フォルダの下位フォルダがあるか否かを判断するステップと、当該フォルダの下位フォルダがあると判断されたとき、当該フォルダに割り当てられたプログラムの実行結果である処理結果データを、前記下位フォルダに入力し、さらに、当該フォルダの下に複数の下位フォルダがあると判断されたとき、当該フォルダに割り当てられたプログラムの実行結果である処理結果データを、前記下位フォルダそれぞれに入力するステップと、を繰り返すことで、前記入力されたデータまたは前記処理結果データに対し、当該データが入力されたフォルダの下位に連なるフォルダそれぞれに割り当てられたプログラムを、前記フォルダが連なる順に実行することを特徴とするフォルダ割当プログラム実行制御方法とした。
【０００６】
このようにすることで、フォルダ割当プログラム実行制御装置（プログラム実行制御装置）は、データが入力されたフォルダの下位に、入れ子のように連なるフォルダそれぞれに、このフォルダそれぞれに割り当てられたプログラムを実行させることができる。つまり、このプログラム実行制御装置のユーザは、プログラムを実行させたい順に入れ子のように階層構造を持たせてフォルダを作成し、このフォルダそれぞれに実行させたいプログラムを示す名称（または識別情報）を入力していくことで、様々なプログラムを簡単に組み立てることができる。
また、プログラム実行制御装置は、下位フォルダが複数あれば、その下位フォルダそれぞれにプログラムの処理結果データを受け渡すので、複数のプログラムを並列実行させることができる。つまり、このプログラム実行制御装置のユーザは、複数のプログラムを並列実行させるプログラムを組み立てたいとき、それらのプログラムを割り当てるフォルダを同じ階層に並列して作成すればよい。
【０００７】
請求項２に記載の発明は、請求項１に記載の前記フォルダ割当プログラム実行制御装置において、前記フォルダ情報を表示する表示処理部をさらに備え、前記ファイル管理部は、前記表示処理部に、前記フォルダ情報に示される前記フォルダの階層関係および前記フォルダの名称をツリー構造で表示させることを特徴とする。
【０００８】
このようにすることで、このプログラム実行制御装置のユーザは、組み立てたプログラムの流れを視覚的に把握しやすくなる。例えば、プログラム実行制御装置は、フォルダ情報に示されるフォルダの名称やそのフォルダの階層構造をWindows（登録商標）のエクスプローラ（登録商標）のようなツリー構造で表示することができる。
【０００９】
請求項３に記載の発明は、請求項１または請求項２に記載のフォルダ割当プログラム実行制御装置において、前記処理実行部が、当該フォルダの下位フォルダに割り当てられたプログラムの実行に失敗したとき、前記ファイル管理部に、当該下位フォルダに入力しようとした前記処理結果データを当該フォルダに格納させる処理結果管理部と、前記処理実行部における処理結果を出力する結果通知部とを備えることを特徴とする。
【００１０】
このようにすることで、実行制御装置のユーザは、組み立てたプログラムに不具合があったとき、どのフォルダに割り当てられたプログラムに不具合があるのかを把握しやすくなる。
【００１３】
請求項４に記載の発明は、請求項１ないし請求項３のいずれか１項に記載のフォルダ割当プログラム実行制御装置において、前記ファイル管理部により、前記複数の下位フォルダの中に、if文を含む名称のフォルダがあると判断されたとき、前記下位フォルダデータ投入部は、前記if文に示される条件を満たす前記処理結果データを、当該if文を含む名称のフォルダへ入力することを特徴とする。
【００１４】
このようにすることで、プログラム実行制御装置は、条件分岐を用いたプログラムを実行させることができる。つまり、このプログラム実行制御装置のユーザは、フォルダの名称にif文を含む名称を設定することで、条件分岐を用いたプログラムを容易に組み立てることができる。
【００１５】
請求項６に記載の発明は、請求項１ないし請求項５のいずれか１項に記載のフォルダ割当プログラム実行制御装置において、前記フォルダ割当プログラム実行制御装置が、全体制御部をさらに備え、前記名称管理データベースが、前記フォルダに入力されたデータに対し実行するプログラムごとに、このプログラムの実行条件を含み、前記全体制御部は、前記入力されたデータが、前記フォルダに割り当てられたプログラムの実行条件を満たすデータであるか否かを判断し、前記入力されたデータが、前記フォルダに割り当てられたプログラムの実行条件を満たすデータであると判断したとき、前記処理実行部に、前記入力されたデータに対し、前記プログラムの実行処理を行わせることを特徴とする。
【００１６】
このようにすることで、プログラム実行制御装置は、入力されたデータが当該フォルダに割り当てられたプログラムの実行条件を満たすときに、プログラムを実行するようにできる。つまり、このプログラム実行制御装置のユーザは、当該プログラムの実行条件を含むようなプログラムも容易に組み立てることができる。
【００１７】
請求項７に記載の発明は、請求項６に記載のフォルダ割当プログラム実行制御装置において、前記フォルダに割り当てられたプログラムの実行条件が、複数の所定データの入力である場合において、前記全体制御部は、前記実行条件に示される複数の所定データのうち、当該フォルダにまだ入力されていないデータがあるか否かを判断し、当該フォルダにまだ入力されていないデータがあると判断したとき、前記ファイル管理部に、前記フォルダに入力したデータをこのフォルダ以外のフォルダに保持させ、前記実行条件に示される前記複数の所定データがすべて揃ったと判断したとき、前記処理実行部に、前記プログラムの実行処理を行わせることを特徴とする。
【００１８】
このようにすることで、プログラム実行制御装置は、フォルダに複数の所定データがすべて入力されるまで待ち、その所定データがすべて入力されたときに、このデータに対しフォルダに割り当てられたプログラムを実行するようにできる。つまり、このプログラム実行制御装置のユーザは、所定データがすべて入力されたときに実行するようなプログラムも容易に組み立てることができる。
【００１９】
請求項８に記載の発明は、請求項１ないし請求項７のいずれか１項に記載のフォルダ割当プログラム実行制御装置において、前記フォルダの名称にパラメータが含まれていたとき、前記処理実行部が、そのパラメータを用いて前記フォルダの名称に割り当てられたプログラムの実行処理を行うことを特徴とする。
【００２０】
このようにすることで、プログラム実行制御装置は、フォルダの名称にプログラムのパラメータが含まれていたとき、このパラメータを設定したプログラム実行処理を行うことができる。よって、このプログラム実行制御装置のユーザは、このフォルダにパラメータを含めた名称の設定をすることで、このフォルダに割り当てたプログラムのパラメータの設定も容易に行うことができる。
【００２１】
請求項９に記載の発明は、請求項１ないし請求項８のいずれか１項に記載のフォルダ割当プログラム実行制御装置において、前記フォルダ割当管理部が、前記名称管理データベースを参照して、前記データが入力されたフォルダの名称に対応するプログラムがないと判断されたとき、前記ファイル管理部は、前記入力されたデータを当該フォルダに格納することを特徴とする。
【００２２】
このようにすることで、プログラム実行制御装置は、プログラムが割り当てられていないフォルダについて通常のフォルダのように用いることができる。
【００２３】
請求項１０に記載の発明は、請求項１ないし請求項９のいずれか１項に記載のフォルダ割当プログラム実行制御装置において、前記下位フォルダは、当該フォルダの直下に格納されるフォルダからリンクされるリンク先フォルダを含むことを特徴とする。
【００２４】
このようにすることで、プログラム実行制御装置は、リンクを用いることで下位フォルダとして様々なフォルダを用いることができる。なお、リンク先は、例えば、そのリンク先フォルダのＵＲＩ（Uniform Resource Identifier）により記述される。
【００２５】
請求項１２に記載の発明は、請求項１１に記載のフォルダ割当プログラム実行制御方法を、コンピュータである前記フォルダ割当プログラム実行制御装置に実行させるためのフォルダ割当プログラム実行制御プログラムとした。
【００２６】
このようなプログラムによれば、一般的なコンピュータに請求項１１に記載のフォルダ割当プログラム実行制御方法を実行させることができる。
【００２７】
請求項１３に記載に発明は、請求項１２に記載のフォルダ割当プログラム実行制御プログラムを記憶したコンピュータに読み取り可能な記憶媒体とした。
【００２８】
このような記憶媒体によれば、一般的なコンピュータに、この記憶媒体を読み込ませることで、請求項１２に記載のフォルダ割当プログラム実行制御プログラムを実行させることができる。
【発明の効果】
【００２９】
本発明によれば、ユーザにとって好適なプログラミング環境を提供することができる。
【発明を実施するための最良の形態】
【００３０】
≪第１の実施の形態≫
以下、本発明を実施するための最良の形態（以下、実施の形態という）を第１の実施の形態ないし第４の実施の形態に分けて説明する。まず、図１および図２を用いて各実施の形態のフォルダ割当プログラム実行制御装置（プログラム実行制御装置）の概要を説明する。図１および図２は、各実施の形態のプログラム実行制御装置の動作概要を説明した図である。なお、以下の説明において、フォルダの下位とは、そのフォルダの直下を意味するものとする。つまり、そのフォルダの１つ下の階層のことを意味するものとする。また、フォルダの上位とは、そのフォルダの１つ上の階層のことを意味するものとする。
【００３１】
ここでは、画像の特徴量を抽出する簡単な処理である「プログラム例１」について説明する。図１に示すように、「プログラム例１」フォルダの下位には「映像形式統一  ｍｐｅｇ２」フォルダがあり、その下位には「映像カット内代表図画像抽出」フォルダがある。そして、この「映像カット内代表図画像抽出」フォルダの下位には「画像内顔検出」フォルダおよび「景観中文字認識」フォルダがある。
【００３２】
プログラム実行制御装置は、このようなフォルダの階層構造をファイル管理部（詳細は後記）により管理している。つまり、プログラム実行制御装置は、どのフォルダの下位にどのフォルダがあるかや、それぞれのフォルダの名称（フォルダ名）は何か等を、フォルダ情報（詳細は後記）として管理している。また、プログラム実行制御装置は、プログラムの名称と、その名称のフォルダに割り当てられる処理（具体的には、その処理を実行するためのプログラムの格納場所）とを示した名称管理データベース（ＤＢ）１３２を備える。
【００３３】
階層構造を持つフォルダ群のうち、最上位のフォルダ（例えば、図１の「プログラム例１」フォルダ）に、データが入力されると、プログラム実行制御装置は、このデータが入力されたフォルダの名称と、名称管理ＤＢ１３２とを参照して以下のような処理を行う。
【００３４】
すなわち、まず、「プログラム例１」フォルダに割り当てられた処理（「/folderprog/through」）に従いスルーし、入力されたデータに、その下位にある「映像形式統一  ｍｐｅｇ２」フォルダに割り当てられた処理（「/local/bin/convert」に格納されるプログラム）を実行する。次に、プログラム実行制御装置は、この処理の実行結果（処理結果データ）を、「映像カット内代表図画像抽出」フォルダに受け渡す。そして、この「映像カット内代表図画像抽出」フォルダに割り当てられた処理（「/local/bin/cut」に格納されるプログラム）を実行する。そして、ここでの処理結果データを、「画像内顔検出」フォルダと、「景観中文字認識」フォルダとに受け渡す。次に、「画像内顔検出」フォルダに割り当てられた処理（「/local/bin/face-detect」に格納されるプログラム）と、「景観中文字認識」フォルダに割り当てられた処理（「/local/bin/letter-detect」に格納されるプログラム）とを実行する。そして、プログラム実行制御装置は、「画像内顔検出」フォルダに割り当てられた処理の処理結果データを、「画像内顔検出」フォルダに格納し、「景観中文字認識」フォルダに割り当てられた処理の処理結果データを、「景観中文字認識」フォルダに格納する。
【００３５】
つまり、これらのフォルダの最上位のフォルダにデータが入力されると、プログラム実行制御装置は、このデータに対しフォルダの階層構造にしたがい、各フォルダに連なる下位フォルダそれぞれに割り当てられた処理を次々に実行する。そして、プログラム実行制御装置は、その最終的な処理結果データをその最下位のフォルダに格納する。
【００３６】
なお、ユーザが、このプログラム実行制御装置により実行される「プログラム例１」を組み立てるときは、例えば、図２に示すようになる。ここでは、既に「プログラム例１」の下位に「映像形式統一  ｍｐｅｇ２」フォルダが作成されているものとして説明する。また、以下の説明において、フォルダは、プログラム実行制御装置により作成される場合を例に説明するが、外部の装置で作成されたフォルダであってもよい。
【００３７】
プログラム実施制御装置は、図２の表示画面１０１に示すように、ユーザからの指示入力に基づき作成されたフォルダを、その名称とともに表示させる。そして、現在着目しているフォルダ（例えば、「映像形式統一  ｍｐｅｇ２」フォルダ）の下位のフォルダの作成指示を、符号１０４に示す画面で受け付ける。
【００３８】
なお、このときのフォルダの作成は、新規フォルダの作成指示と、その新規フォルダに割り当てるプログラムの名称の入力により行われる。このようにすることで、ユーザは、通常のフォルダ作成と同じ感覚でプログラムの組み立てを行うことができる。また、このフォルダの作成は、プログラム実行制御装置が、プログラム選択画面１０３を表示させ、この中から、ユーザに選択されたフォルダ名を元に作成するようにしてもよい。
【００３９】
例えば、プログラム実行制御装置が、このプログラム選択画面１０３から選択されたフォルダがフォルダ作成領域１０４にコピーされたことを検知すると、当該名称のフォルダを作成するようにしてもよい。
【００４０】
以上のようして、「映像形式統一  ｍｐｅｇ２」フォルダの下位に「映像カット内代表図画像抽出」フォルダが作成されると、表示画面１０２に示すようになる。つまり、「映像形式統一  ｍｐｅｇ２」フォルダの下位に「映像カット内代表図画像抽出」フォルダが追加され、「映像形式統一  ｍｐｅｇ２」→「映像カット内代表図画像抽出」という処理が組み上がる。すなわち、「プログラム例１」へのデータ入力時、下位の「映像形式統一  ｍｐｅｇ２」フォルダに割り当てられた処理が実行された後、その処理結果データを用いて「映像カット内代表図画像抽出」フォルダに割り当てられた処理が実行される、という一連の処理が組みあがる。
【００４１】
＜構成＞
次に、本実施の形態のプログラム実行制御装置の構成を説明する。図３は、本実施の形態のプログラム実行制御装置の構成を示したブロック図である。
【００４２】
このプログラム実行制御装置１０は、入出力部１１と、処理部１２と、記憶部１３とを備えるコンピュータにより実現される。この入出力部１１は、各種データの入出力を司る。処理部１２は、記憶部１３の名称管理ＤＢ１３２を参照して、フォルダに入力されたデータに対し、このフォルダに割り当てられた処理を実行し、その処理結果データを下位フォルダに受け渡す。記憶部１３は、処理部１２がフォルダに割り当てられた処理を実行するために参照する名称管理ＤＢ１３２等を格納する。なお、プログラム実行制御装置１０Ａについては、第３の実施の形態で述べる。
【００４３】
この入出力部１１は、入出力インタフェースや通信インタフェースから構成される。また、処理部１２は、このプログラム実行制御装置１０が備えるＣＰＵ（Central Processing Unit）によるプログラム実行処理や、専用回路等により実現される。さらに、記憶部１３は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ等の記憶媒体から構成される。なお、プログラム実行制御装置１０をプログラム実行処理により実現する場合、記憶部１３には、このプログラム実行制御装置１０の機能を実現するためのプログラム（図示省略）が格納される。また、このプログラム実行制御装置１０には、キーボードやマウス等の入力装置や、液晶モニタ等の出力装置が接続されていてもよい。
【００４４】
＜入出力部＞
入出力部１１は、ファイル管理部１２１へのフォルダ作成指示等、各種データの入力を受け付けたり、表示画面のデータを出力したりする。
【００４５】
＜処理部＞
処理部１２は、前記したとおり、フォルダに入力されたデータに対し、このフォルダに割り当てられた処理を実行し、その実行結果を下位フォルダに受け渡す。このような処理部１２は、表示処理部１２０と、ファイル管理部１２１と、データ受付部１２２と、結果通知部１２３と、下位フォルダデータ投入部１２４と、結果受信部１２５と、フォルダ割当処理管理部１２６と、処理実行部１２７と、処理結果管理部１２８と、全体制御部１２９とを含んで構成される。
【００４６】
表示処理部１２０は、ファイル管理部１２１により管理されるフォルダ情報１３１（詳細は後記）を、表示画面として外部の表示装置等へ表示させる。例えば、フォルダ情報１３１に示されるフォルダの階層関係およびフォルダの名称を、Windows（登録商標）のエクスプローラ（登録商標）のようなツリー構造で表示する。
【００４７】
ファイル管理部１２１は、フォルダ情報１３１を参照して、フォルダの名称およびフォルダの階層関係を判断する。そして、その判断結果を全体制御部１２９経由でフォルダ割当処理管理部１２６等へ出力する。また、入出力部１１経由でフォルダ作成指示の入力を受け付けたとき、この指示に基づきフォルダを作成し、名称を付与し、この作成したフォルダと他のフォルダとの階層関係およびフォルダの名称をフォルダ情報１３１（詳細は後記）に記録するようにしてもよい。なお、このファイル管理部１２１の機能は、公知のファイル管理技術を用いて実現してよい。
【００４８】
データ受付部１２２は、フォルダ情報１３１に示される各フォルダに入力されるデータを受け付ける。なお、ここで入力されるデータは、単一のファイルでもよいし複数のファイル（データ）でもよい。また、これらのファイルを格納したフォルダでもよいし、空の状態のフォルダでもよい。さらに、このフォルダも複数であってもよい。なお、このように複数のデータやフォルダが入力されたとき、全体制御部１２９は、このデータやフォルダの持つタイムスタンプを参照して、時系列に処理を実行するよう制御してもよい。また、全体制御部１２９は、これらのデータやフォルダに対し並列に処理を実行するよう制御してもよい。
【００４９】
結果通知部１２３は、各フォルダに割り当てられた処理の実行結果を通知（出力）する。例えば、結果通知部１２３は、当該フォルダに割り当てられた処理に失敗したことを通知する。
【００５０】
下位フォルダデータ投入部１２４は、このフォルダに割り当てられた処理の実行結果である処理結果データを、このフォルダの下位フォルダに入力（投入）する。当該フォルダの下位フォルダがどのフォルダかは、ファイル管理部１２１からの回答結果を元に判断する。これにより、フォルダの下位に連なる各フォルダに、当該フォルダに割り当てられた処理の処理結果データが入力されることになる。なお、データの投入先となる下位フォルダが複数あるとき、この下位フォルダそれぞれにデータを投入する。例えば、図１に示すように「映像のカット内代表画面抽出」フォルダの下位に、「画像内顔検出」フォルダおよび「景観中文字認識」フォルダがある場合、下位フォルダデータ投入部１２４は、この「映像のカット内代表画面抽出」フォルダにおける処理結果データを「画像内顔検出」フォルダおよび「景観中文字認識」フォルダへ投入する。
【００５１】
結果受信部１２５は、当該フォルダに割り当てられた処理の実行結果（例えば、このフォルダに割り当てられた処理が失敗したこと）を受信する。これにより、ユーザは当該フォルダに割り当てられた処理が実行できているか否かをすぐに確認できる。
【００５２】
フォルダ割当処理管理部１２６は、名称管理ＤＢ１３２と、データが入力されたフォルダのフォルダ名とを参照して、このフォルダに入力されたデータに対し実行する処理（ｌプログラム）を選択する。また、フォルダ割当処理管理部１２６は、このフォルダ名がパラメータを含むものである場合、まずその中から、処理名（プログラム名）を示す部分をピックアップする。そして、フォルダ割当処理管理部１２６は、この処理名のキーとして名称管理ＤＢ１３２から処理内容を選択する。
【００５３】
例えば、フォルダ名が図１に示す「映像形式統一  ｍｐｅｇ２」であった場合、フォルダ割当処理管理部１２６は、「ｍｐｅｇ２」をパラメータとみなし、「映像形式統一」の部分をキーとして名称管理ＤＢ１３２からこの名称に対応する処理内容を選択する。なお、フォルダ名がパラメータを含むか否かは、フォルダ名の中に空白があるか否かや、フォルダ名に「（  ）」でくくられた部分があるか否か等により判別する。フォルダ名がパラメータを含む場合、フォルダ割当処理管理部１２６は、名称管理ＤＢ１３２に定義されているものと同じ名称を持つ部分を処理名（プログラム名）、それ以外の部分をパラメータと判断する。そして、フォルダ割当処理管理部１２６は、選択した処理（より具体的には、その処理を実行するためのプログラムの格納領域）と、その処理に用いるパラメータとを処理実行部１２７に出力する。
【００５４】
処理実行部１２７は、フォルダ割当処理管理部１２６により選択された処理を、当該フォルダに入力されたデータに対し実行する。なお、フォルダ名にパラメータが含まれていたとき、処理実行部１２７は、そのパラメータを用いてこのフォルダの名称に割り当てられた処理の実行を行う。例えば、フォルダ名が「映像形式統一  ｍｐｅｇ２」であるとき、フォルダ割当処理管理部１２６から出力された「/local/bin/convert」という情報を元に、プログラム記憶部１３３から「映像形式統一」のプログラムを読み出し、「ｍｐｅｇ２」というパラメータを用いて処理を実行する。つまり、処理実行部１２７は、「ｍｐｅｇ２への映像形式統一」という処理を行う。
【００５５】
このようにフォルダ割当処理管理部１２６は、フォルダ名がパラメータを含むものについて、処理の名称を示す部分とパラメータ部分とを判別し、処理を選択する。また、処理実行部１２７において、フォルダ名に含まれるパラメータを適用して処理を実行するので、プログラムの組み立てを行うユーザは、このパラメータをフォルダ名の入力時にあわせて設定できるので、大変便利である。
【００５６】
なお、下位フォルダデータ投入部１２４により複数のフォルダにデータが投入された場合、処理実行部１２７は、そのそれぞれのフォルダに割り当てられた処理を、並列して実行してもよいし、所定の順番で実行するようにしてもよい。つまり、ユーザは、同じ処理結果データを用いて複数の処理を並列して（または所定の順番で）実行させたい場合、それぞれの処理が割り当てられたフォルダを同じ階層に作成すればよい。
【００５７】
処理結果管理部１２８は、各フォルダに割り当てられた処理の実行結果（処理に成功したか、失敗したか）や、この処理結果データの出力先や格納先をファイル管理部１２１に通知する。
【００５８】
全体制御部１２９は、表示処理部１２０、ファイル管理部１２１、データ受付部１２２、結果通知部１２３、下位フォルダデータ投入部１２４、結果受信部１２５、フォルダ割当処理管理部１２６、処理実行部１２７および処理結果管理部１２８の制御を行う。例えば、処理実行部１２７において、当該フォルダに割り当てられたプログラムの実行に失敗したとき、全体制御部１２９は、ファイル管理部１２１に、当該データを当該フォルダの上位フォルダに格納させる。
【００５９】
＜記憶部＞
記憶部１３は、フォルダ情報１３１と、名称管理ＤＢ１３２と、プログラム記憶部１３３とを備える。
【００６０】
このフォルダ情報１３１は、フォルダ名、このフォルダの階層関係、各フォルダに格納されるデータ等を示した情報である。このフォルダ情報１３１は、ファイル管理部１２１により更新され、読み出される。
【００６１】
名称管理ＤＢ１３２は、プログラムの名称ごとに、この名称のプログラムの格納領域を示した情報を示した情報である（図１参照）。この名称管理ＤＢ１３２は、フォルダ割当処理管理部１２６が当該フォルダに割り当てられている処理（プログラム）を選択するときに参照される。例えば、フォルダ割当処理管理部１２６は、図１に示す「映像カメラワーク情報抽出」フォルダに割り当てられた処理を実行するプログラムとしてプログラム記憶部１３３の「/local/bin/camwork」というディレクトリに格納されているプログラムを選択する。そして、処理実行部１２７は、この選択された「/local/bin/camwork」というディレクトリに格納されるプログラムを実行する。なお、この名称管理ＤＢ１３２の情報は、入出力部１１経由で入力や書き換えが可能である。また、この名称管理ＤＢ１３２において、プログラムの格納領域を示した情報を保持することとしたが、プログラム本体を保持するようにしてもよい。
【００６２】
なお、このような名称管理ＤＢ１３２を用いることで、プログラム実行制御装置１０は、各フォルダに割り当てられた処理のパス名が長くても、その処理を実行できる。つまり、プログラム実行制御装置１０は、フォルダ名に、直接、そのフォルダに割り当てる処理のパス名を記載して処理の割り当てをするようにしてもよいが、公知のファイル管理システムによりファイル管理部１２１を実現する場合、このファイル管理部１２１はフォルダ名の長さを制限する仕様こともある。そのような場合、フォルダには比較的短い名称（プログラム名やプログラムの識別情報）を割り当てておき、プログラム実行制御装置１０は、そのフォルダ名と名称管理ＤＢ１３２とを参照して、そのフォルダに割り当てられた処理のパス名を読み出すようにする。このようにすることで、プログラム実行制御装置１０は、当該フォルダに対する処理が長いパス名で示されるものについても、その処理も実行できる。なお、名称管理ＤＢ１３２Ａについては、第３の実施の形態の項で述べる。
【００６３】
プログラム記憶部１３３は、処理実行部１２７により実行される各種プログラムを格納する。
【００６４】
このような構成によりプログラム実行制御装置１０は、入力されたデータまたは処理結果データに対し、当該データが入力されたフォルダの下位に連なるフォルダそれぞれに割り当てられたプログラムを、このフォルダが連なる順に実行させることができる。
【００６５】
＜動作手順＞
次に、プログラム実行制御装置１０の動作手順を説明する。図４および図５は、図３のプログラム実行制御装置の動作手順を示したフローチャートである。
【００６６】
ここでは、様々な階層のフォルダのうち、上位フォルダ側からみた視点を中心に説明する。まず、図３のデータ受付部１２２においてフォルダへのデータ入力を受け付ける（Ｓ１０１）。このＳ１０１のサブルーチンについては、第３の実施の形態において図１１を参照して後記する。
【００６７】
次に、フォルダ割当処理管理部１２６は、このデータが入力されたフォルダ名から実行すべき処理を選択する（Ｓ１０２）。つまり、フォルダ割当処理管理部１２６は、名称管理ＤＢ１３２を参照して、このデータが入力されたフォルダのフォルダ名をキーとして、このフォルダに割り当てられた処理を選択する。
【００６８】
ここで、フォルダ割当処理管理部１２６が、このフォルダに割り当てられた処理を選択できたとき（Ｓ１０３のＹｅｓ）、つまり、名称管理ＤＢ１３２において、当該名称に対応する処理があったとき、処理実行部１２７は、入力データに対して、このフォルダに割り当てられた処理を実行し（Ｓ１０４）、処理結果データを作成する。
【００６９】
一方、フォルダ割当処理管理部１２６が、このデータが入力されたフォルダに割り当てられた処理を選択できなかったとき（Ｓ１０３のＮｏ）、つまり、名称管理ＤＢ１３２において、当該名称に対応する処理がなかったとき、全体制御部１２９は、Ｓ１０１で受け付けた入力データを、そのまま当該フォルダに格納する（Ｓ１０７）。つまり、通常のフォルダと同様にデータを格納する。そして、処理を終了する。
【００７０】
Ｓ１０４の後、結果通知部１２３は、Ｓ１０４の処理結果（つまり、フォルダに割り当てられた処理に成功した旨）を通知する（Ｓ１０５）。この処理結果の通知先は、このデータの入力元であるフォルダ（上位フォルダ）または外部プロセス等である。
【００７１】
次に、全体制御部１２９は、当該フォルダの下位フォルダがあるか否かを判断する（Ｓ１０６）。このときの判断は、全体制御部１２９が、ファイル管理部１２１に当該フォルダの下位フォルダがあるか否かを問い合わせることにより行われる。問い合わせを受けたファイル管理部１２１は、フォルダ情報１３１を参照して、その判断結果を全体制御部１２９へ返す。
【００７２】
ここで、当該フォルダの下位フォルダがあると判断されたとき（Ｓ１０６のＹｅｓ）、全体制御部１２９は、下位フォルダデータ投入部１２４に、Ｓ１０４における処理結果データを投入させ、下位フォルダへの処理を実行する（Ｓ１０８）。そして、当該フォルダの下位フォルダへの処理を終了すると、本処理を終了する。なお、Ｓ１０８の下位フォルダへの処理の詳細は、図５を用いて後記する。
【００７３】
一方、当該フォルダの下位フォルダがないと判断されたとき（Ｓ１０６のＮｏ）、全体制御部１２９は、ファイル管理部１２１に、Ｓ１０４で作成された処理結果データを当該フォルダに格納させる（Ｓ１０９）。そして、処理を終了する。つまり、全体制御部１２９は、一連の処理の流れの末端にあるフォルダにおいて、処理結果データを保持するようにする。
【００７４】
次に、図５を用いて、図４のＳ１０８の下位フォルダへの処理を詳細に説明する。
【００７５】
まず、図４のＳ１０６において当該フォルダの下位フォルダがあることを確認できたとき（Ｓ１０６のＹｅｓ）、下位フォルダデータ投入部１２４は、Ｓ１０４で作成した処理結果データを、この下位フォルダへ入力する（図５のＳ２０１）。
【００７６】
そして、この下位フォルダについて、プログラム実行制御装置１０は、前記したＳ１０１〜Ｓ１０９と同様の処理を実行する（Ｓ２０２）。つまり、プログラム実行制御装置１０は、当該フォルダの下位フォルダ、そのさらに下位フォルダ、というように、各フォルダにおける処理結果データを下位フォルダに受け渡していく。そして、結果通知部１２３は、この処理結果を結果受信部１２５へ通知する。
【００７７】
結果受信部１２５は、下位フォルダにおける処理結果を受け取り（Ｓ２０３）、この受け取った処理結果が成功を示すものであるとき（Ｓ２０４のＹｅｓ）、処理を終了する。一方、受け取った処理結果が失敗を示すものであるとき（Ｓ２０４のＮｏ）、処理結果管理部１２８は、ファイル管理部１２１に、下位フォルダへ入力しようとした処理結果データを当該フォルダに格納するよう指示する（Ｓ２０５）。つまり、下位フォルダにおいて処理に失敗したデータを、このデータの入力元である当該フォルダへ戻すようにする。また、この処理結果管理部１２８は、ファイル管理部１２１に、この処理結果（処理に失敗した旨を示す情報）を含む情報も当該フォルダに格納させる（Ｓ２０６）。そして、処理を終了する。
【００７８】
なお、各フォルダに格納された処理結果（処理に失敗した旨を示す情報）や戻ってきた処理結果データ等を表示処理部１２０により表示させることで、ユーザは組み立てたプログラムのそれぞれの実行結果を確認することができる。つまり、ユーザは、組み立てた一連の処理のデバッグを行うとき、どの部分の処理に問題があったのかを確認しやすくなる。さらに、ユーザは、このようなデバッグにおいて画面の切り替えを行う必要もなくなる。また、このような機能を用いることで、ユーザは、確認したい処理付きフォルダにデータをドロップ（入力）してみて、期待する処理結果データがそのフォルダの中に生成されているか否かをすぐに確認できる。このようにすることで、例えば、ユーザがプログラムの組み立て時その処理付きフォルダを用いるか否か選択に迷ったときにも、判断しやすくなり、大変便利である。
【００７９】
また、前記したとおり、ファイル管理部１２１は、データとプログラム（処理付きフォルダ）とを同じフォルダという形で統一的に管理するので、ユーザがあとで、作成したプログラムの検索等も行いたい場合も、検索しやすくなる。
【００８０】
＜第１の実施の形態の例＞
次に、再び図２を参照しつつ、図１を用いて、プログラム実行制御装置１０の処理手順をさらに詳細に説明する。
【００８１】
例えば、図１に示す「プログラム例１」フォルダに、「News20070601.wmv」というデータが入力されると、プログラム実行制御装置１０は、名称管理ＤＢ１３２の「プログラム例１」に対応する「/folderprog/through」を参照して、この「News20070601.wmv」に対して、処理を行わず、入力されたものと同じ処理結果データを得る。
【００８２】
次に、下位フォルダデータ投入部１２４は、この「プログラム例１」フォルダの処理結果データ（「News20070601.wmv」）をさらに下位の「映像形式統一  ｍｐｅｇ２」フォルダに入力する。フォルダ割当処理管理部１２６は、名称管理ＤＢ１３２を参照してこの「映像形式統一」フォルダの処理割当存在（「/local/bin/convert」）を確認する。そして、処理実行部１２７は、この「/local/bin/convert」から読み出したプログラムにより、「News20070601.wmv」のフォーマットを「ｍｐｅｇ２」に変換した処理結果データを作成する。
【００８３】
そして、下位フォルダデータ投入部１２４は、この処理結果データをさらに下位の「映像のカット内代表画像抽出」フォルダに入力する。フォルダ割当処理管理部１２６は、名称管理ＤＢ１３２を参照して、この「映像カット内代表画像抽出」フォルダの、処理割当存在（「/local/bin/cut」）を確認する。そして、処理実行部１２７は、この「/local/bin/cut」から読み出したプログラムにより、カット内代表画像として、News20070601.-001jpeg、News20070601.-002jpegおよびNews20070601.-003jpegの３つの画像ファイルを処理結果データとして作成する。下位フォルダデータ投入部１２４は、この処理結果データをさらに下位の「画像内顔検出処理」フォルダと「景観中文字認識」フォルダとに入力する。
【００８４】
フォルダ割当処理管理部１２６は、名称管理ＤＢ１３２を参照して、「画像内顔検出処理」フォルダの処理割当存在（「/local/bin/face-detect」）を確認し、News20070601.-001jpeg、News20070601.-002jpegおよびNews20070601.-003jpegそれぞれの入力に対して、処理実行部１２７は、「/local/bin/face-detect」から読み出したプログラムにより、News20070601.-001.-face.xml、News20070601.-002.-face.xmlおよびNews20070601.-003.-face.xmlという処理結果データを作成する。下位フォルダデータ投入部１２４は、その処理結果データを、これ以上、下位の処理付きフォルダに渡すことができないため、この「画像内顔検出処理」フォルダの中にその処理結果データを格納する。
【００８５】
同様に、フォルダ割当処理管理部１２６は、名称管理ＤＢ１３２を参照して、「景観中文字認識」フォルダの処理割当存在（「/local/bin/letter-detect」）を確認し、News20070601.-001jpeg、News20070601.-002jpegおよびNews20070601.-003jpegのそれぞれの入力に対して、処理実行部１２７は、「/local/bin/letter-detect」から読み出したプログラムにより、News20070601.-001.-letter.xml、News20070601.-002.-letter.xmlおよびNews20070601.-003.-letter.xmlという処理結果データを作成する。下位フォルダデータ投入部１２４は、その処理結果データを、これ以上、下位の処理付きフォルダに渡すことができないため、この「景観中文字認識」フォルダの中にその処理結果データを格納する。このようにすることで、プログラム実行制御装置１０は、フォルダの作成処理により組み立てられたプログラムについて、そのフォルダの階層構造に従った一連の処理を実行することができる。
【００８６】
＜第１の実施の形態の例＞
なお、前記した第１の実施の形態のプログラム実行制御装置１０を、ＵＮＩＸ（登録商標）によるプログラムの実行処理に適用するようにしてもよい。図６は、第１の実施の形態のプログラム実行制御装置の応用例を説明するために引用した図である。
【００８７】
ここでは、プログラム実行制御装置１０が、ＵＮＩＸ（登録商標）のＰＩＰＥを使って、符号１２０１に示すような、「FILE1.c」というファイルの中に含まれるセミコロンの行数をカウントするスクリプトを実行する場合を例に説明する。符号１２０２に示すフォルダ群は、符号１２０１に示すスクリプトを、フォルダ階層化によって組み立てた場合の例を示したものである。また、プログラム実行制御装置１０は、図６に示す名称管理ＤＢ１３２を参照して処理を実行する場合を例に説明する。
【００８８】
この名称管理ＤＢ１３２において、「grep」は、ＵＮＩＸ（登録商標）の「/bin/grep (文字列探索処理)」を示し、「wc」は、ＵＮＩＸ（登録商標）の「/usr/bin/wc (「-|」オプションを付けることよる行数のカウント処理)」を示し、「プログラム例２」は、ＵＮＩＸ（登録商標）の「/bin/cat (ファイルをそのまま次に渡す処理)」を示す。
【００８９】
例えば、符号１２０２に示す「プログラム例２」フォルダに、Ｃ言語で記述されたソースファイル(例えば、FILE1.c)が入力されると、下位フォルダデータ投入部１２４は、この「FILE1.c」をそのまま「プログラム例２」フォルダに入力する。つまり、フォルダ割当処理管理部１２６は、この「プログラム例２」フォルダの処理割当存在（「/bin/cat」）を確認し、処理実行部１２７は、この「FILE1.c」に「/bin/cat(ファイルをそのまま次に渡す処理)」を行い、その処理結果データを得る。つまり、処理実行部１２７は、処理結果データとして「FILE1.c」を得る。そして、下位フォルダデータ投入部１２４は、その処理結果データをさらに、下位の「grep‘；’」フォルダに入力する。フォルダ割当処理管理部１２６は、この「grep」フォルダの処理割当存在（「/usr/grep」）を確認し、「grep‘；’」フォルダに割り当てられた処理が「/usr/grep(文字列探索処理)」であると確認する。そして、処理実行部１２７は、「FILE1.c」に対し、パラメータ「‘；’」を設定した「/usr/grep(文字列探索処理)」を実行する。すると、処理実行部１２７は、処理結果データとして、「FILE1.c」中の「；」を含む行を抽出したデータを得る。
【００９０】
下位フォルダデータ投入部１２４は、その処理結果データ（「FILE1.c」中の「；」を含む行を抽出したデータ）をさらに、下位の「wc -|」フォルダに入力する。フォルダ割当処理管理部１２６は、名称管理ＤＢ１３２を参照して、この「wc」フォルダの処理割当存在（「/usr/bin/wc」）を確認し、このフォルダに割り当てられた処理が「/usr/bin/wc (「-|」オプションを付けることよる行数のカウント処理)」であると確認する。そして、処理実行部１２７は、この「-|」オプションを付けることよる行数のカウント処理にパラメータ「-|」を付けて、「FILE1.c」中の「；」を含む行数をカウントする。この後、下位フォルダデータ投入部１２４は、この処理結果データを、これ以上、下位の処理付きフォルダに渡すことができないため、この「wc -|」フォルダの中にその処理結果データを格納する。
【００９１】
つまり、ユーザがこの「wc -|」フォルダ内のファイルをあけると、一連の処理の処理結果データを確認できる。なお、この処理結果データの名称は、例えば「FILE1.c.+grep.+wc」というように、最初の入力データの名称（ファイル名）、経由してきたフォルダ名を列記したものであってもよい。このようにすることで、ユーザは、処理結果データの名称を見ることで、処理結果データが、どのような処理付きフォルダを経由して得られた結果かが分かりやすくなる。
【００９２】
≪第２の実施の形態≫
次に、本発明の第２の実施の形態を説明する。第２の実施の形態のプログラム実行制御装置は、条件分岐を示すフォルダ名のフォルダがあったとき、この条件に従って処理を実行することを特徴とする。例えば、if文を含むフォルダ名のフォルダがあるとき、プログラム実行制御装置は、このif文を含む名称のフォルダへこのif文に示される条件を満たすデータを入力する。
【００９３】
つまり、第２の実施の形態のプログラム実行制御装置は、前記した図５のＳ２０１において、処理結果データを下位フォルダに入力するとき、この下位フォルダそれぞれのフォルダ名にif文を含むフォルダがあるか否かを調査する。そして、プログラム実行制御装置は、このif文に示される条件を満たすデータを、このif文を含むフォルダ名のフォルダへ入力する。この第２の実施の形態のプログラム実行制御装置の基本的構成は、図３に示したプログラム実行制御装置１０と同様なので、構成の説明を省略する。
【００９４】
まず、本実施の形態のプログラム実行制御装置１０による処理例を、図７を用いて説明する。図７は、第２の実施の形態のプログラム実行制御装置の処理例を説明した図である。
【００９５】
例えば、プログラム実行制御装置１０は、図７に示すような名称管理ＤＢ１３２を備え、フォルダ情報１３１（図３参照）には、符号６０１に示すようなフォルダが登録されていたとき、プログラム実行制御装置１０は、この「プログラム例３」フォルダにデータが入力されると、この名称管理ＤＢ１３２を参照して、以下のような処理を行う。
【００９６】
まず、図７に示す「プログラム例３」フォルダに、「DataFolder301」データが入力されると、図２のプログラム実行制御装置１０は、名称管理ＤＢ１３２の「/folderprog/through」を参照して、このデータに処理は行わず、入力されたものと同じ処理結果データを得る。
【００９７】
次に、下位フォルダデータ投入部１２４は、この処理結果データを「プログラム例３」フォルダのさらに下位の「処理３−１」フォルダに入力する。そして、フォルダ割当処理管理部１２６は、名称管理ＤＢ１３２を参照して、この「処理３−１」フォルダの処理割当存在（「usr/local/proc31」）を確認する。そして、処理実行部１２７は、この「usr/local/proc31」から読み出したプログラムにより、処理結果データを作成する。
【００９８】
ここで、下位フォルダデータ投入部１２４は、この処理結果データをさらに、下位の処理付きフォルダに投入しようとするが、そこには、「else」フォルダ、「if(100＜val(*.result)and  val(*fesult)＜200))」フォルダおよび「if(val(*.result)≧200))」フォルダの３つのフォルダがある。
【００９９】
そこで、下位フォルダデータ投入部１２４は、else以外のフォルダに対して、各々フォルダへ「DataFolder302」の入力を試みる。なお、「val(*.result)」は、入力されたデータ内の拡張子がresultであるファイル内に書かれた先頭の数値を取得する命令である。２つのif文のフォルダは排他的な条件を持っていることになり、先の数値が、「１００を超え、２００未満」の場合、下位フォルダデータ投入部１２４は「DataFolder302」を「処理３−２１」フォルダに入力する。そして、下位フォルダデータ投入部１２４は、その処理結果データはこれ以上、下位の処理付きフォルダに渡すことができないため、この「処理結果３−２１」フォルダの中にその処理結果データを格納する。
【０１００】
一方、先の数値が「２００以上」の場合には、下位フォルダデータ投入部１２４は「DataFolder302」を、「処理３−２２」フォルダに投入する。そして、下位フォルダデータ投入部１２４は、その処理結果はこれ以上、下位の処理付きフォルダに渡すことができないため、この「処理結果３−２２」フォルダの中にその処理結果データを格納する。
【０１０１】
この２つのいずれのフォルダにも投入されなかった場合（つまり、先の数値が「１００」以下の場合）には、下位フォルダデータ投入部１２４は「DataFolder302」フォルダを、「else」フォルダに入力する。フォルダ割当処理管理部１２６は、「else」フォルダに割り当てられた処理を確認し、処理実行部１２７は、その「DataFolder302」に処理を加えない。そして、フォルダ割当処理管理部１２６は、「DataFolder302」は、その下位の「処理３−２３」フォルダにデータを投入し、その処理結果はこれ以上、下位の処理付きフォルダに渡すことができないため、「処理結果３−２３」フォルダの中にその処理結果データを格納する。
【０１０２】
例えば、「DataFolder302」フォルダ内の「a.result」がval()で参照されるとして、
この「a.result」の中身が「５０」なら、下位フォルダデータ投入部１２４は、この「DataFolder302」フォルダを「処理３−２３」フォルダへ入力する。また、「a.result」の中身が「１５０」なら、下位フォルダデータ投入部１２４は、この「DataFolder302」フォルダを、「処理３−２１」フォルダへ入力する。さらに「a.result」の中身が「３００」なら、下位フォルダデータ投入部１２４は、この「DataFolder302」フォルダを「処理３−２２」フォルダへ入力する。このようにして、プログラム実行制御装置１０は、条件分岐が設定されたプログラムについて処理を実行することができる。そして、その処理結果データを各フォルダに格納することができる。
【０１０３】
すなわち、ユーザは、このようにフォルダ名にif文を含めることで、条件分岐のあるプログラムを簡単に組み立てることができる。
【０１０４】
＜第２の実施の形態の応用例  その１＞
また、第２の実施の形態において、プログラム実行制御装置１０は、if文を、複数のデータの到着を待ってから行う処理に応用してもよい。図８は、第２の実施の形態のプログラム実行制御装置の応用例を説明した図である。この第２の実施の形態のプログラム実行制御装置１０は、図８に示す名称管理ＤＢ１３２を参照して、「２つの乱数値の加算結果に２を足した値を画面出力する」という処理を実行する場合を例に説明する。
【０１０５】
この名称管理ＤＢ１３２において、「random」は、０から第１引数で指定された数値までの整数値の乱数を生成する処理（「/bin/random」）を示し、「計算」は、第１引数として与えられた計算式を評価する処理（「usr/local/bin/calculate」）を示し、「画面出力」は、入力されたファイルを表示する処理（「/bin/print-message」）を示す。さらに、「プログラム例４」や「合流先」は、何もしないという処理（「/folderprog/through」）を示す。なお、「none」フォルダは、処理付きフォルダではないものとする。
【０１０６】
例えば、符号１３０２に示す「プログラム例４」フォルダに、中身が空のフォルダからなるデータ(例えば、「DataFolder401」)等が入力されると、フォルダ割当処理管理部１２６は、この「プログラム例４」フォルダに割り当てられた処理割当存在（「/folderprog/through」）を確認し、処理実行部１２７は「DataFolder401」に対して、特に何もせず、入力されたものと同じ処理結果データを得る。下位フォルダデータ投入部１２４は、その処理結果データをさらに、下位の処理付きフォルダに投入しようとするが、そこには、「random 6 ＞ cy1.num」フォルダと、「random 6 ＞ cy2.num」フォルダとの２つの処理付きフォルダがある。
【０１０７】
そこで、下位フォルダデータ投入部１２４は、この２つのフォルダヘ「DataFolder401」の入力を試みる。まず、処理実行部１２７は、「random 6 ＞ cy1.num」フォルダに割り当てられた処理（「/bin/random」）を実行し、０〜６までの乱数値を作成する。ここでは、処理実行部１２７が作成した乱数「cy1.num」を「DataFolder401」フォルダに格納し、処理結果データとして「DataFolder401/cy1.num」を得る。
【０１０８】
次に、下位フォルダデータ投入部１２４は、処理結果データ「DataFolder401/cy1.num」を下位の処理付きフォルダに入力しようとするが、そこにはリンク「link/プログラム例4/none/合流先」がある。このため下位フォルダデータ投入部１２４は、その処理結果データを、そのリンク先である「合流先」フォルダに入力する。前記したとおり、この「合流先」フォルダに割り当てられた処理は「何もしない」というものなので、下位フォルダデータ投入部１２４は、さらにその下位フォルダに処理結果データ「DataFolder401/cy1.num」を受け渡す。
【０１０９】
ここで、下位フォルダデータ投入部１２４は、「if(exist(cy1.num)and exist(cy2.num))」へ、処理結果データ「DataFolder401/cy1.num」の入力を試みる。しかし、この「DataFolder401」フォルダ内には「cy1.num」は存在するものの、「cy2.num」は存在しない。つまり、「if (exist(cy1.num)and exist(cy2.num))」という条件を満足しない。また、「else」フォルダも存在しない。このため、全体制御部１２９は、「DataFolder401/cy1.num」をそのまま「if (exist(cy1.num)and exist(cy2.num))」フォルダと同じ階層にフォルダごと保持する。
【０１１０】
一方、処理実行部１２７は、「random 6 ＞ cy2.num」フォルダに割り当てられた処理（「/bin/random」）を実行し、０〜６までの乱数値を作成する。そして、処理実行部１２７が作成した乱数を「DataFolder401」（乱数「cy1.num」を格納したフォルダと同じ名称のフォルダ）に格納し「DataFolder401/cy2.num」として得る。
【０１１１】
次に、下位フォルダデータ投入部１２４は、前記した「DataFolder401/cy1.num」を得た場合と同様に、処理結果データ「DataFolder401/cy2.num」を下位の処理付きフォルダに入力しようとする。しかし、そこにはフォルダのリンク「link/プログラム例4/none/合流先」がある。このため下位フォルダデータ投入部１２４は、処理結果データをそのリンク先である「合流先」フォルダへ入力する。
【０１１２】
前記したとおり、この「合流先」フォルダに割り当てられた処理は「何もしない」というものなので、下位フォルダデータ投入部１２４は、処理結果データをさらにその下位フォルダ「if(exist(cy1.num)and exist(cy2.num))」へ入力しようとする。ここで、このフォルダと同じ階層には、同じ名称の「DataFolder401」フォルダが存在する。このため、全体制御部１２９は、「DataFolder401/cy2.num」と、「DataFolder401/cy1.num」とマージし、「DataFolder401」に「cy1.num」と「cy2.num」の両方が存在するようにする。そして、下位フォルダデータ投入部１２４はこのデータがマージされた「DataFolder401」を、「if(exist(cy1.num)and exist(cy2.num))」フォルダへ入力する。ここで、「if(exist(cy1.num)and exist(cy2.num))」フォルダは、「cy1.num」と「cy2.num」の両方が存在する、という条件を満足するため、下位フォルダデータ投入部１２４は、さらにその下の「計算  "val(cy1.num)＋val(cy2.num)＋2"」フォルダヘの入力を行う。「val(Y)」が、入力されたデータＹの先頭の数値を取得する命令であるとすると、処理実行部１２７は、それぞれの処理結果データの先頭の数値を足し、さらに乱数の値域を補正する「＋２」を実行し、その処理結果データを下位の「画面出力」フォルダヘ入力する。
【０１１３】
処理実行部１２７は、入力された処理結果データに対し、「画面出力」フォルダに割り当てられた処理（「/bin/print-message」）を実行する。下位フォルダデータ投入部１２４は、この処理結果データを、これ以上、下位の処理付きフォルダに渡すことができないため、「画面出力」フォルダの中にその処理結果データを格納する。なお、もし画面出力後にファイルを削除したければ画面出力フォルダの中にゴミ箱フォルダヘのリンクを置けばよい。このようにすることで画面出力後の処理結果データは削除される。
【０１１４】
このようにすることで。プログラム実行制御装置１０は、２つの乱数値の加算結果に２を足した値を画面出力するという処理を実行できる。
【０１１５】
＜第２の実施の形態の応用例  その２＞
また、第２の実施の形態において、プログラム実行制御装置１０は、if文を用いて条件分岐を設定できることとしたが、この条件分岐を使った繰り返し処理に応用にしてもよい。図９は、第２の実施の形態のプログラム実行制御装置１０の応用例を説明した図である。また、ここではプログラム実行制御装置１０は、図９に示す名称管理ＤＢ１３２を参照して処理を実行する場合を例に説明する。
【０１１６】
この名称管理ＤＢ１３２において、「カウンタ追加」は、フォルダ内に繰り返し用のカウンタを格納するファイル「cnt」を生成する処理（「/folderprog/init-loop-cnt」）を示し、「計算」は、第１引数として与えられた計算式を評価する処理（「usr/local/bin/calculate」）を示し、「画面出力」は、入力されたファイルを画面表示する処理（「/bin/print-message」）を示す。
【０１１７】
例えば、符号１４０１に示す「プログラム例５」フォルダに、中身が空のフォルダ(例えば、「DataFolder501」)等が入力されると、フォルダ割当処理管理部１２６は、この「プログラム例５」フォルダに割り当てられた処理割当存在（「/folderprog/through」）を確認し、処理実行部１２７は「DataFolder501」に対して、特に何もせず、入力されたものと同じ処理結果データを得る。下位フォルダデータ投入部１２４は、その処理結果データをさらに、下位の「カウンタ追加 0 ＞ cnt」フォルダに入力する。処理実行部１２７は、この「カウンタ追加 O ＞ cnt」フォルダに割り当てられた処理（「/folderprog/init-loop-cnt」）を実行し、「０」の値を持つcntファイルを作成する。そして、処理実行部１２７は、この「０」の値を持つcntファイルを「DataFolder501」フォルダに格納する。そして、このフォルダを処理結果データとする。
【０１１８】
そして、下位フォルダデータ投入部１２４は、処理結果データ（「DataFolder501」フォルダ）をさらに、下位の処理付きフォルダに入力しようとするが、そこには、「else」フォルダと「if(val(cnt)10)」フォルダとがある。
【０１１９】
そこで、下位フォルダデータ投入部１２４は、「if(val(cnt)<10)」フォルダに対して、この「DataFolder501」フォルダの入力を試みる。この「val(cnt)」は、入力されたフォルダ内の「cnt」ファイル内に書かれた先頭の数値を取得する命令である。ここで最初は、この「cnt」ファイルに記載された値は「０」であるので、「if(val(cnt)<10)」フォルダのフォルダ名に含まれるif文（「if(val(cnt)<10)」）の条件を満たす。よって、下位フォルダデータ投入部１２４は、この「DataFolder501」フォルダを、さらにその下位の「画面出力cnt」フォルダへ入力する。
【０１２０】
処理実行部１２７は、この「画面出力」フォルダに割り当てられた画面表示処理（「/bin/print-message」）を実行する。つまり、処理実行部１２７は、「cnt」ファイルの内容を画面表示する。そして、下位フォルダデータ投入部１２４は、ここでの処理結果データを、さらにその下位の「計算“cnt++”」フォルダへ受け渡す。この処理実行部１２７は、この処理結果データに対し、「計算“cnt++”」フォルダに割り当てられた処理を実行する。つまり、処理実行部１２７は、「cnt」ファイルの内容の値をインクリメントする処理を実行する。
【０１２１】
そして、下位フォルダデータ投入部１２４は、さらにその下位の処理付きフォルダへ処理結果データを入力するが、そこにはフォルダのリンク「カウンタ追加 0 ＞cnt」がある。そのため、下位フォルダデータ投入部１２４は、処理結果データをそのリンク先である「カウンタ追加 0 ＞ cnt」フォルダへ入力する。
【０１２２】
以下、「cnt」の値が「１０」になるまで、if条件に従い、画面出力（「/bin/print-message」）が繰り返されるが、「cnt」の値が「１０」になった時点で、if条件を満たさなくなる。よって、その処理結果データは、同じ階層にある「else」フォルダに入力される。この「else」フォルダは、入力されたデータに処理を加えるものではないので、処理実行部１２７は、処理を実行せず、下位フォルダデータ投入部１２４は、処理結果データをこの「画面出力“ループ終了"」フォルダに入力する。これにより、処理実行部１２７は、「画面出力“ループ終了"」フォルダに割り当てられた処理（「/bin/print-message」）を実行し、画面に“ループ終了"メッセージを表示する。ここで下位フォルダデータ投入部１２４は、これ以上、処理結果データを下位の処理付きフォルダに渡すことができないため、「画面出力“ループ終了"」フォルダの中にその処理結果データを格納する。
【０１２３】
このようにすることで、プログラム実行制御装置１０は、条件を満たすまで繰り返し処理を実行することができる。
【０１２４】
≪第３の実施の形態≫
次に、本発明の第３の実施の形態を説明する。このプログラム実行制御装置は、フォルダにデータが入力されたとき、名称管理ＤＢを参照して、このデータが予めフォルダに割り当てられた実行条件（例えば、所定のデータ型であること）を満たすデータであるか否かを判断する。そして、このデータが実行条件を満たさないと判断したとき、このフォルダに割り当てられた処理を実行しないことを特徴とする。なお、前記した実施の形態と同様の構成要素は、同じ符号を付して説明を省略する。このようなプログラム実行制御装置１０Ａは、名称管理ＤＢ１３２Ａを備える（図３参照）。
【０１２５】
図１０は、第３の実施の形態のプログラム実行制御装置の名称管理ＤＢを例示した図である。図１０に示すように、名称管理ＤＢ１３２Ａは、プログラムの名称と、その名称のフォルダに入力されたデータ対する処理に加え、このフォルダに割り当てられた処理の実行条件（このフォルダで受け付けるデータ形式の条件等）をさらに含む。
【０１２６】
例えば、図１０に示す名称管理ＤＢ１３２Ａにおいて、「Proc-Jpeg重ね合わせ」に割り当てられた処理（「/usr/bin/merge-jpeg」）は、入力データ「A.jpg」および「B.jpg」が揃ったときに実行されることを示す。つまり、処理実行部１２７（図３参照）は、入力データ「A.jpg」および「B.jpg」が入力されるのを待って「Proc-Jpeg重ね合わせ」に割り当てられた処理を実行することを示す。
【０１２７】
また、図１０に示す「プログラム例６」に割り当てられた処理（「/folderprog/through」）の実行条件は、「NULL（入力されたフォルダが空でも受け付ける）」であり、「if」に割り当てられた処理（/folderprog/eval-if」の実行条件は、「ALL（何でも受け付ける）」であることを示す。さらに、この条件には「*（ワイルドカード）」等を用いてもよく、例えば、「Proc-映像内テロップ挿入」に割り当てられた処理（「usr/bin/telop-insert」）の実行条件は、入力データが「mpegファイル」または「txtファイル」であることを示す。
【０１２８】
また、図１０に示す「Proc-アニメGif作成」に割り当てられた処理（「usr/bin/merge-gif」）の実行条件は、「*.gif[ ](可変個のgifファイルを受け付ける)」と「start」とが揃ったときであることを示す。つまり、「Proc-アニメGif作成」フォルダにおいて、可変個のgifファイルの入力を受け付け、startファイルが入力されたときに、処理実行部１２７が、この「Proc-アニメGif作成」を実行することを示す。例えば、処理実行部１２７は、入力された複数個のgifファイルをファイルのＩＤ順に並べてアニメーションを作成する。このような実行条件に基づき、各処理付きフォルダに割り当てられた処理を実行するか否かの判断は、前記した図３の全体制御部１２９において行われる。
【０１２９】
このようなプログラム実行制御装置１０Ａの動作手順を、図４を参照しつつ、図１１および図１２を用いて説明する。図１１および図１２は、第３の実施の形態のプログラム実行制御装置の動作手順における特徴的部分に示したフローチャートである。
【０１３０】
このプログラム実行制御装置１０Ａは、前記した図４および図５に示した手順と同様の手順で処理を実行するが、データ入力を受け付ける処理（図４のＳ１０１）およびフォルダに割り当てられた処理を実行する処理（Ｓ１０４）が異なる。まず、図１１を用いてデータ入力受け付け処理を説明する。
【０１３１】
すなわち、図４のＳ１０１におけるデータ入力受け付けステップにおいて、データ受付部１２２（図３参照）は、フォルダに格納されたデータ入力を受け付ける(図１１のＳ３０１：フォルダ入力受け付け)。つまり、データ受付部１２２（図３参照）は、フォルダごとデータ入力を受け付ける。全体制御部１２９は、このフォルダの入力先フォルダと同じ階層に、Ｓ３０１で入力されたフォルダと同じ名称のフォルダがあるか否かを判断する（Ｓ３０２）。
【０１３２】
例えば、全体制御部１２９は、「Proc-Jpeg重ね合わせ」（図１０参照）フォルダへ入力されたフォルダが「Data Folder99」フォルダであるとき、この「Proc-Jpeg重ね合わせ」フォルダと同じ階層に、同じ名称（「Data Folder99」）のフォルダがあるか否かを判断する。
【０１３３】
ここで、全体制御部１２９が、入力先フォルダと同じ階層に、Ｓ３０１で入力されたフォルダと同じ名称のフォルダがあると判断したとき（Ｓ３０２のＹｅｓ）、この同じ名称のフォルダのデータ同士をまとめて受け付けデータとする（Ｓ３０３）。
【０１３４】
例えば、全体制御部１２９は、この「Proc-Jpeg重ね合わせ」フォルダと同じ階層に「Data Folder99」フォルダがあるとき、これらのフォルダ内のデータをまとめて、この「Proc-Jpeg重ね合わせ」フォルダの受付データとする。
【０１３５】
一方、全体制御部１２９が、このデータ入力先フォルダと同じ階層に、Ｓ３０１で入力されたフォルダと同じ名称のフォルダはないと判断したとき（Ｓ３０２のＮｏ）、Ｓ３０１に戻る。
【０１３６】
このような処理をした後、プログラム実行制御装置１０Ａは、図４のＳ１０２以降の処理を実行する。
【０１３７】
次に、図１２を用いて、図４のＳ１０４における、フォルダに割り当てられた処理を実行するステップについて説明する。図４のＳ１０３において、フォルダ割当処理管理部１２６は、名称管理ＤＢ１３２Ａ（図１０参照）を参照して、処理が選択できたとき（Ｓ１０３のＹｅｓ）、以下のような処理を行う。
【０１３８】
すなわち、プログラム実行制御装置１０Ａの全体制御部１２９（図３参照）は、名称管理ＤＢ１３２Ａを参照して、入力されたフォルダ（具体的には、このフォルダ内のデータ）が、入力先フォルダに割り当てられた処理を実行する実行条件を満たすか否かを判断する（図１２のＳ４０１）。
【０１３９】
ここで、全体制御部１２９が、この入力先フォルダに入力されたデータが、このフォルダ（入力先フォルダ）に割り当てられた処理の実行条件を満たすと判断したとき（Ｓ４０１のＹｅｓ）、処理実行部１２７は、入力データに対して、このフォルダ（入力先フォルダ）に割り当てられた処理を実行し、処理結果データを作成する（Ｓ４０２）。そして、図４のＳ１０５以降の処理を実行する。
【０１４０】
一方、全体制御部１２９が、名称管理ＤＢ１３２Ａを参照して、当該フォルダに入力されたデータが、このフォルダ（入力先フォルダ）に割り当てられた処理の実行条件を満たさないと判断したとき（Ｓ４０１のＮｏ）、当該フォルダ（入力先フォルダ）における受け入れを拒否する。そして、全体制御部１２９が、当該フォルダと同じ階層に、フォルダごと退避させておく（Ｓ４０３）。つまり、全体制御部１２９は、いったん入力先フォルダに入力されたデータを元に戻し、入力先フォルダと同じ階層にフォルダごと退避させておく。そして、図４のＳ１０５以降の処理を実行する。
【０１４１】
このプログラム実行制御装置１０Ａの動作手順を、具体例を用いて説明する。図１３は、第３の実施の形態のプログラム実行制御装置の動作手順を概念的に説明した図である。ここで、プログラム実行制御装置１０Ａは、図１０に例示した名称管理ＤＢ１３２Ａを参照するものとして説明する。
【０１４２】
ここでは、「Proc-Jpeg重ね合わせ」フォルダへの入力データとして「A.jpg」と「B.jpg」とが揃ったとき、処理実行部１２７は、この「A.jpg」と「B.jpg」とに対し「Proc-Jpeg重ね合わせ」フォルダに割り当てられた処理を実行する場合を例に説明する。なお、図１３において「プログラム例６」に入力されるデータ（「A.jpg」や「B.jpg」、または「A.jpg」や「B.jpg」を格納した「Data Folder99」）は、図示しない他の処理付きフォルダにより処理された後の処理結果データであってもよい。つまり、プログラム実行制御装置１０Ａは、図１３（１）〜（４）に示す処理の前または後に、他の処理付きフォルダによる処理を実行してもよい。
【０１４３】
（１）まず、「プログラム例６」フォルダに、「Data Folder99」フォルダに格納された「B.jpg」が入力されると、処理実行部１２７は、この「Data Folder99」フォルダに対して、処理を行わず、入力されたものと同じ処理結果データを得る。よって、下位フォルダデータ投入部１２４は、「Data Folder99」フォルダをそのまま「Proc-Jpeg重ね合わせ」フォルダへ入力する。ここで、「Proc-Jpeg重ね合わせ」フォルダと同じ階層に、今回入力された「Data Folder99」フォルダと同じ名称のフォルダがないので、全体制御部１２９は、データ同士をまとめない。
【０１４４】
（２）次に、全体制御部１２９は、「A.jpg」がまだ入力されていないので、この「B.jpg」が格納される「Data Folder99」フォルダを「Proc-Jpeg重ね合わせ」フォルダと同じ階層に保持する（退避させておく）。つまり、全体制御部１２９は、「Proc-Jpeg重ね合わせ」フォルダに「A.jpg」が入力されるのを待つ。
【０１４５】
（３）次に、「プログラム例６」フォルダに、「Data Folder99」フォルダに格納された「A.jpg」が入力されると、下位フォルダデータ投入部１２４は、「Data Folder99」フォルダごと「Proc-Jpeg重ね合わせ」フォルダへ入力する。ここで、全体制御部１２９は、「Proc-Jpeg重ね合わせ」フォルダと同じ階層にも「Data Folder99」フォルダがあることを確認すると、これらのフォルダ内のデータ（つまり、「A.jpg」と「B.jpg」）をまとめて、「Proc-Jpeg重ね合わせ」フォルダの受付データとする。
【０１４６】
（４）この（３）における「A.jpg」の入力により、名称管理ＤＢ１３２Ａに示される「Proc-Jpeg重ね合わせ」フォルダに割り当てられた処理の実行条件が揃ったことになる。よって、全体制御部１２９は、処理実行部１２７に「A.jpg」と「B.jpg」に対し、この「Proc-Jpeg重ね合わせ」フォルダに割り当てられた処理の実行と、その処理結果データを作成とを行わせる。つまり、全体制御部１２９は、処理実行部１２７に、この「Proc-Jpeg重ね合わせ」フォルダに割り当てられた処理（「usr/bin/merge-jpeg」）を実行させる。
【０１４７】
このようにすることでプログラム実行制御装置１０Ａは、複数の所定データが揃ったときに、当該フォルダに割り当てられた処理を実行することができる。例えば、プログラム実行制御装置１０Ａにおいてフォルダが受け付けるデータが、ＨＴＴＰ（HyperText Transfer Protocol）のように連続するデータを１つ１つ受け取るプロトコルにより送信されるデータの場合でも、一連のデータが揃うのを待って、当該フォルダに割り当てられた処理を実行することができる。
【０１４８】
また、このように名称管理ＤＢ１３２Ａに、その処理付きフォルダで受け付け可能なファイル形式、スキーマ等も設定することで、プログラム実行制御装置１０Ａは、各処理付きフォルダごとに、そのフォルダに割り当てられた処理の対象となるデータを定義できる。
【０１４９】
≪第４の実施の形態≫
次に、第４の実施の形態を説明する。第４の実施の形態は、各プログラム実行制御装置内の名称管理ＤＢやプログラム記憶部の情報を、サーバで管理することを特徴とする。つまり、プログラム実行制御装置は、ネットワーク経由で、名称管理ＤＢの情報と、その名称のプログラムとをサーバからダウンロードするようにしてもよい。図１４は、第４の実施の形態のプログラム実行制御装置を含むシステムを例示した図である。
【０１５０】
図１４に示すように、システムは、１以上のプログラム実行制御装置１０Ｂと、ネットワーク３０経由でプログラム実行制御装置１０Ｂに接続されるサーバ２０とを含んで構成される。システムを構成するプログラム実行制御装置１０Ｂおよびサーバ２０の数は、図１４に示す数に限定されない。このネットワーク３０は、例えば、インターネットやＬＡＮ（Local Area Network）である。プログラム実行制御装置１０Ｂは、このようなネットワーク３０経由で通信を行うための通信インタフェースを備えるものとする。また、サーバ２０もこのネットワーク３０経由で通信を行うための通信インタフェースを備えるものとする。このサーバ２０は、プログラムの名称ごとに、この名称のプログラムの格納領域を示した情報を名称管理ＤＢ２３２と、各種プログラムを格納するプログラム記憶部２３３とを備える。その詳細は、前記したプログラム実行制御装置１０（１０Ａ）と同様なので説明を省略する。
【０１５１】
このサーバ２０は、このプログラム実行制御装置１０Ｂからの要求に応じて、ネットワーク３０経由で、名称管理ＤＢ２３２の情報およびこのプログラム記憶部２３３に格納されるプログラムを送信する。
【０１５２】
例えば、サーバ２０は、名称管理ＤＢ２３２にされるプログラム一覧を、ネットワーク３０経由で、プログラム実行制御装置１０Ｂの表示装置等に図２の符号１０３に示すようなプログラム選択画面として表示させる。つまり、フォルダそれぞれにプログラムの名称を付けた状態で画面上に表示させる。そして、サーバ２０は、このプログラム選択画面１０３からプログラムの選択情報を受信すると、その名称のフォルダと、その名称のプログラムとをプログラム実行制御装置１０Ｂへ送信する。このようにして受信したフォルダを、プログラム実行制御装置１０Ｂのファイル管理部１２１は、フォルダ情報１３１に格納する。また、受信したプログラムをプログラム記憶部１３３に格納する。
【０１５３】
このようにすることで、プログラム実行制御装置１０Ｂは、サーバ２０により公開されている様々なプログラムをフォルダに割り当てることができる。なお、サーバ２０は、プログラム実行制御装置１０Ｂへ、プログラムの名称（フォルダに割り当てる名前）と、そのプログラムの格納領域を送信し、プログラム自体はサーバ２０側で持つようにしてもよい。つまり、プログラムはサーバ２０側で実行するようにしてもよい。
【０１５４】
なお、前記した各実施の形態において、一連のプログラムを実行するためのフォルダ群はすべてプログラム実行制御装置１０，１０Ａ，１０Ｂで保持することとしたが、これに限定されない。例えば、フォルダ群の一部のフォルダをプログラム実行制御装置１０，１０Ａ，１０Ｂで保持し、それ以外のフォルダについては、外部の装置のフォルダやＷｅｂＤＡＶ（Distributed Authoring and Versioning protocol for the WWW）のＷｅｂフォルダで保持するようにしてもよい。
【０１５５】
図１５は、本実施の形態において、画像の特徴量を抽出する処理を実行するためのフォルダ群と、プログラム実行制御装置が参照する名称管理ＤＢとを例示した図である。なお、名称管理ＤＢ１３２において、名称管理ＤＢ１３２Ａにおける実行条件の欄の記載は省略している。
【０１５６】
例えば、図１５に示すように、符号１６０１に示すフォルダ群により組み立てられている場合、このうち符号１６０２に示すフォルダ群、つまり、名称管理ＤＢ１３２の符号１３２１に示すプログラムが割り当てられたフォルダについては、外部の装置の処理付きフォルダを用いるようにしてもよい。この場合、フォルダ同士をネットワーク３０越しに接続した関係ならば、このリンク先の情報としてフォルダ名にＵＲＩやＵＲＬ（Uniform Resource Locator）等を記載すればよい。
【０１５７】
以上説明したプログラム実行制御装置１０，１０Ａ，１０Ｂによれば、ユーザが、Ｗｅｂサーバや、各地点に設置されたセンサ等、様々なデータに対し、そのデータに応じた様々なプログラムの組み立てたいとき、簡単にプログラムを組み立てられるので大変便利である。
【０１５８】
また、前記した各実施の形態のプログラム実行制御装置１０，１０Ａ，１０Ｂの表示処理部１２０は、表示画面上で、処理付きフォルダを、通常のフォルダとは異なる色で表示してもよい。さらに、表示処理部１２０は、フォルダ群のうち、そのフォルダ内にデータ（処理結果データ）が残っているものについては、異なる色で表示してもよい。このようにすることで、ユーザは、表示画面上で処理付きフォルダや、フォルダ内に処理結果データが残っているフォルダを識別しやすくなる。
【０１５９】
さらに、プログラム実行制御装置１０，１０Ａ，１０Ｂは、フォルダ情報１３１に示されるフォルダの階層構造をＸＭＬデータに変換して出力したり、またＸＭＬデータで入力されたデータをフォルダの階層構造を示すデータに変換したりしてもよい。このようにすることで、プログラム実行制御装置１０，１０Ａ，１０Ｂが格納するフォルダ情報１３１を他のシステム等でも使いやすくなる。
【０１６０】
また、プログラム実行制御装置１０，１０Ａ，１０Ｂのフォルダ割当処理管理部１２６は、当該フォルダが処理の割り当てられたフォルダか否かを、名称管理ＤＢ１３２を参照して判断することとしたが、このフォルダ名に含まれる識別子等で判断するようにしてもよい。例えば、フォルダ割当処理管理部１２６は、フォルダ名の先頭に「処理：」や「＠」等の識別子となる文字や記号が入っていれば、このフォルダを、処理の割り当てられたフォルダ（処理付きフォルダ）と判断し、これらの文字や記号が入っていなければ通常フォルダと判断するようにしてもよい。このようにすることで、フォルダ割当処理管理部１２６は、フォルダが処理付きフォルダか通常フォルダか名称管理ＤＢ１３２を参照せずに判断できる。
【０１６１】
さらに、このフォルダ割当処理管理部１２６が、データの入力先フォルダのフォルダ名と、名称管理ＤＢ１３２とを参照して、この入力先フォルダに割り当てられた処理を判断するとき、その判断結果をキャッシュとして記憶部１３に記憶しておき、同じフォルダ名に関する問い合わせを受けたとき、このキャッシュを用いて返事を返してもよい。このようにすることで、フォルダ割当処理管理部１２６は、同じフォルダ名に関する問い合わせを高速に処理できる。
【０１６２】
なお、前記した実施の形態においてプログラム実行制御装置１０，１０Ａ，１０Ｂにおいて、処理付きフォルダに対しそのフォルダに割り当てられた処理（フォルダ名の一部にパラメータが含まれていた場合には、そのパラメータを設定した処理）を実行し、その処置付きフォルダの下位にフォルダがあった場合でも、その下位のフォルダに処理結果データを入力しないようにしてもよい。つまり、図３に示したプログラム実行制御装置１０１０Ａ，１０Ｂにおいて、下位フォルダデータ投入部１２４を含まない構成としてもよい。
【０１６３】
本実施の形態に係るプログラム実行制御装置１０，１０Ａ，１０Ｂは、前記したような処理を実行させるプログラムによって実現することができ、そのプログラムをコンピュータに読み取り可能な記憶媒体（ＣＤ−ＲＯＭ等）に記憶して提供することが可能である。また、そのプログラムを、インターネット等のネットワークを通して提供することも可能である。
【図面の簡単な説明】
【０１６４】
【図１】各実施の形態のプログラム実行制御装置の概要を説明した図である。
【図２】各実施の形態のプログラム実行制御装置の概要を説明した図である。
【図３】本実施の形態のプログラム実行制御装置の構成を示したブロック図である。
【図４】図３のプログラム実行制御装置の動作手順を示したフローチャートである。
【図５】図３のプログラム実行制御装置の動作手順を示したフローチャートである。
【図６】第１の実施の形態のプログラム実行制御装置の応用例を説明するために引用した図である。
【図７】第２の実施の形態のプログラム実行制御装置の処理例を説明した図である。
【図８】第２の実施の形態のプログラム実行制御装置の応用例を説明した図である。
【図９】第２の実施の形態のプログラム実行制御装置の応用例を説明した図である。
【図１０】第３の実施の形態のプログラム実行制御装置の名称管理ＤＢを例示した図である。
【図１１】第３の実施の形態のプログラム実行制御装置の動作手順における特徴的部分に示したフローチャートである。
【図１２】第３の実施の形態のプログラム実行制御装置の動作手順における特徴的部分に示したフローチャートである。
【図１３】第３の実施の形態のプログラム実行制御装置の動作手順における特徴的部分に示したフローチャートである。
【図１４】第４の実施の形態のプログラム実行制御装置を含むシステムを例示した図である。
【図１５】本実施の形態において、画像の特徴量を抽出する処理を実行するためのフォルダ群と、プログラム実行制御装置が参照する名称管理ＤＢとを例示した図である。
【符号の説明】
【０１６５】
１０，１０Ａ，１０Ｂ  プログラム実行制御装置
１１    入出力部
１２    処理部
１３    記憶部
２０    サーバ
３０    ネットワーク
１２０  表示処理部
１２１  ファイル管理部
１２２  データ受付部
１２３  結果通知部
１２４  下位フォルダデータ投入部
１２５  結果受信部
１２６  フォルダ割当処理管理部
１２７  処理実行部
１２８  処理結果管理部
１２９  全体制御部
１３１  フォルダ情報
１３２，１３２Ａ，２３２  名称管理ＤＢ（データベース）
１３３，２３３  プログラム記憶部
【図１】
0004902574.tif 000002
【図２】
0004902574.tif 000003
【図３】
0004902574.tif 000004
【図４】
0004902574.tif 000005
【図５】
0004902574.tif 000006
【図６】
0004902574.tif 000007
【図７】
0004902574.tif 000008
【図８】
0004902574.tif 000009
【図９】
0004902574.tif 000010
【図１０】
0004902574.tif 000011
【図１１】
0004902574.tif 000012
【図１２】
0004902574.tif 000013
【図１３】
0004902574.tif 000014
【図１４】
0004902574.tif 000015
【図１５】
0004902574.tif 000016