(57)【特許請求の範囲】
【請求項１】
フォルダそれぞれに割り当てたプログラムを、前記フォルダにデータが入力されることにより実行する処理付フォルダを用いて、データ処理を制御する処理付フォルダ実行制御装置に用いられる処理付フォルダ実行制御方法であって、
前記処理付フォルダ実行制御装置は、
前記処理付フォルダの名称および当該処理付フォルダの階層関係を示したフォルダ情報と、前記処理付フォルダの名称ごとに、当該名称の処理付フォルダに入力された前記データに対し実行するプログラムを示す名称管理データベースとを記憶する記憶部を備え、
前記フォルダへ入力するデータを受け付けるステップと、
前記受け付けたデータが入力されたフォルダの名称をキーとして、前記フォルダ情報を参照し、当該フォルダの名称が前記処理付フォルダの名称であると判定した場合に、当該処理付フォルダの名称が、前記処理付フォルダを用いた処理により生成した処理結果データを所定の格納場所を集約させる処理を実行するプログラムが割り当てられた前記処理付フォルダの名称を示す集約処理名称を含むか否かを判定するステップと、
前記処理付フォルダの名称が前記集約処理名称を含むと判定された場合に、当該集約処理名称の処理付フォルダの格納場所を示すパスを、前記フォルダ情報を参照して取得し、前記取得したパスを前記処理結果データの格納場所である結果集約先パスとして生成するステップと、
前記データが入力されたフォルダの名称をキーとして、前記名称管理データベースを参照し、前記入力されたデータに対し実行する前記プログラムを選択するステップと、
前記選択したプログラムの実行処理を行うステップと、
前記フォルダ情報を参照して、当該処理付フォルダの下位に他の処理付フォルダがあるか否かを判定するステップと、
当該処理付フォルダの下位に前記他の処理付フォルダがあると判定された場合に、当該処理付フォルダに割り当てられたプログラムの実行結果である前記処理結果データを、前記他の処理付フォルダに入力するステップと、
を繰り返すことで、前記入力されたデータまたは前記処理結果データに対し、当該データが入力されたフォルダの下位に連なる処理付フォルダそれぞれに割り当てられたプログラムを、前記処理付フォルダが連なる順に実行する処理付フォルダ階層実行処理ステップと、
前記フォルダ情報を参照して、当該処理付フォルダの下位に他の処理付フォルダがあるか否かを判定するステップにおいて、当該処理付フォルダの下位に前記他の処理付フォルダがないと判定された場合に、
前記処理付フォルダに割り当てられたプログラムの処理結果データを、前記結果集約先パスの直下に移動するステップと、
を実行することを特徴とする処理付フォルダ実行制御方法。
【請求項２】
前記処理付フォルダの名称が前記集約処理名称を含むか否かを判定するステップにおいて、前記処理付フォルダの名称が前記集約処理名称を含むと判定された場合に、
前記処理付フォルダの名称に、前記結果集約先パスの代わりに前記処理結果データを集約する格納場所として設定される修正結果集約先パスが含まれるか否かを判定するステップと、
前記修正結果集約先パスが含まれている場合に、前記処理結果データを、前記修正結果集約先パスが示す格納場所に転送するステップと、
を実行することを特徴とする請求項１に記載の処理付フォルダ実行制御方法。
【請求項３】
前記処理付フォルダの名称が前記集約処理名称を含むか否かを判定するステップにおいて、前記処理付フォルダの名称が前記集約処理名称を含まないと判定された場合に、
前記処理付フォルダの名称に、サブルーチンの呼出しを示す外部呼出処理の名称および当該外部呼出処理の呼出先の識別子である呼出先名称が含まれるか否かを判定するステップと、
前記処理付フォルダの名称に、前記外部呼出処理の名称および前記呼出先名称が含まれると判定された場合に、
前記呼出先名称を用いて、前記外部呼出処理を行う前記処理付フォルダを特定し、前記特定した処理付フォルダに、処理対象となるデータを入力するステップと、
当該入力されたデータに対し、前記処理付フォルダ階層実行処理ステップを実行することにより得られた前記処理結果データを、前記外部呼出処理の呼出元のフォルダに移動するステップと、
を実行することを特徴とする請求項１に記載の処理付フォルダ実行制御方法。
【請求項４】
前記結果集約先パスを生成するステップにおいて、前記結果集約先パスが生成されると、当該結果集約先パスの生成時刻と、前記処理付フォルダが受け付けたデータに付された、プロセス番号、ジョブ番号、若しくはスレッド番号とを含む前記結果集約先パス毎の固有のＩＤを生成し、前記生成したＩＤと当該結果集約先パスとを対応付けて前記結果集約先パスＩＤ情報を作成し、前記記憶部に格納するステップと、
前記処理結果データを、前記下位の他の処理付フォルダに入力するステップにおいて、前記処理結果データに前記ＩＤを付して前記下位の他の処理付フォルダに入力するステップと、
前記処理結果データを、前記結果集約先パスに移動するステップにおいて、前記処理結果データに付された前記ＩＤを用いて、前記結果集約先パスＩＤ情報を参照することにより、前記結果集約先パスを取得し、前記取得した結果集約先パスに、前記処理結果データを移動するステップと、
を実行することを特徴とする請求項１乃至請求項３のいずれか１項に記載の処理付フォルダ実行制御方法。
【請求項５】
フォルダそれぞれに割り当てたプログラムを、前記フォルダにデータが入力されることにより実行する処理付フォルダを用いて、データ処理を制御する処理付フォルダ実行制御装置であって、
前記処理付フォルダの名称および当該処理付フォルダの階層関係を示したフォルダ情報と、前記処理付フォルダの名称ごとに、当該名称の処理付フォルダに入力された前記データに対し実行するプログラムを示す名称管理データベースとを記憶する記憶部と、
前記フォルダへ入力するデータを受け付けるデータ受付部と、
前記受け付けたデータが入力されたフォルダの名称をキーとして、前記フォルダ情報を参照し、当該フォルダの名称が前記処理付フォルダの名称であると判定した場合に、当該処理付フォルダの名称が、前記処理付フォルダを用いた処理により生成した処理結果データを所定の格納場所を集約させる処理を実行するプログラムが割り当てられた前記処理付フォルダの名称を示す集約処理名称を含むか否かを判定し、
前記フォルダ情報を参照して、当該処理付フォルダの下位に他の処理付フォルダがあるか否かを判定するフォルダ判定部と、
前記フォルダ判定部が、前記処理付フォルダの名称が前記集約処理名称を含むと判定した場合に、当該集約処理名称の処理付フォルダの格納場所を示すパスを、前記フォルダ情報を参照して取得し、前記取得したパスを前記処理結果データの格納場所である結果集約先パスとして生成する結果集約先パス生成部と、
前記データが入力されたフォルダの名称をキーとして、前記名称管理データベースを参照し、前記入力されたデータに対し実行する前記プログラムを選択するフォルダ割当処理管理部と、
前記フォルダ割当処理管理部が選択したプログラムの実行処理を行う処理実行部と、
前記フォルダ判定部が、当該処理付フォルダの下位に前記他の処理付フォルダがあると判定した場合に、当該処理付フォルダに割り当てられたプログラムの実行結果である前記処理結果データを、前記他の処理付フォルダに入力する下位フォルダデータ投入部と、
前記入力されたデータまたは前記処理結果データに対し、当該データが入力されたフォルダの下位に連なる処理付フォルダそれぞれに割り当てられたプログラムを、前記処理付フォルダが連なる順に実行する処理付フォルダ階層実行処理を繰り返し、
前記フォルダ判定部が、前記フォルダ情報を参照して、当該処理付フォルダの下位に他の処理付フォルダがないと判定した場合に、前記処理付フォルダに割り当てられたプログラムの処理結果データを、前記結果集約先パスの直下に移動する処理結果データ移動部と、
を備えることを特徴とする処理付フォルダ実行制御装置。
【請求項６】
前記フォルダ判定部は、
前記処理付フォルダの名称が前記集約処理名称を含むと判定した場合に、
前記処理付フォルダの名称に、前記結果集約先パスの代わりに前記処理結果データを集約する格納場所として設定される修正結果集約先パスが含まれるか否かを判定し、
前記処理結果データ移動部は、
前記フォルダ判定部が前記処理付フォルダの名称に前記修正結果集約先パスが含まれていると判定した場合に、前記処理結果データを、前記修正結果集約先パスが示す格納場所に転送すること、
を特徴とする請求項５に記載の処理付フォルダ実行制御装置。
【請求項７】
前記フォルダ判定部が、前記処理付フォルダの名称が前記集約処理名称を含まないと判定した場合に、前記処理付フォルダの名称に、サブルーチンの呼出しを示す外部呼出処理の名称および当該外部呼出処理の呼出先の識別子である呼出先名称が含まれるか否かを判定する外部呼出処理名称判定部と、
前記外部呼出処理名称判定部が、前記処理付フォルダの名称に、前記外部呼出処理の名称および前記呼出先名称が含まれると判定した場合に、前記呼出先名称を用いて、前記外部呼出処理を行う前記処理付フォルダを特定し、前記特定した処理付フォルダに、処理対象となるデータを入力する外部呼出処理部と、
当該入力されたデータに対し、前記処理付フォルダ階層実行処理を行うことにより得られた前記処理結果データを、前記外部呼出処理の呼出元のフォルダに移動する呼出元フォルダ移動部と、
を備えることを特徴とする請求項５に記載の処理付フォルダ実行制御装置。
【請求項８】
前記結果集約先パス生成部が前記結果集約先パスを生成すると、当該結果集約先パスの生成時刻と、前記処理付フォルダが受け付けたデータに付された、プロセス番号、ジョブ番号、若しくはスレッド番号とを含む前記結果集約先パス毎の固有のＩＤを生成し、前記生成したＩＤと当該結果集約先パスとを対応付けて結果集約先パスＩＤ情報を作成して前記記憶部に格納する結果集約先パスＩＤ管理部をさらに備え、
前記下位フォルダデータ投入部は、
前記処理結果データに前記ＩＤを付して前記下位の他の処理付フォルダに入力し、
前記処理結果データ移動部は、
前記処理結果データに付された前記ＩＤを用いて、前記結果集約先パスＩＤ情報を参照することにより、前記結果集約先パスを取得し、前記取得した結果集約先パスに、前記処理結果データを移動すること、
を特徴とする請求項５乃至請求項７のいずれか１項に記載の処理付フォルダ実行制御装置。
【請求項９】
請求項１乃至請求項４のいずれか１項に記載の処理付フォルダ実行制御方法を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理付フォルダ実行制御方法、処理付フォルダ実行制御装置およびプログラムに関するものである。
【背景技術】
【０００２】
従来技術として、ＧＵＩ（Graphical User Interface）を用いて、Ｗｅｂ上に提供されている情報やサービス等を組み合わせ、新しいソフトウェアやサービス、データベース等を構築する技術がある（非特許文献１参照）。また、フォルダに、このフォルダに入力されたファイル（データ）に対し実行する処理を割り当て、このフォルダに入力されたファイルの処理を自動化する技術がある（非特許文献２参照）。これらの技術は、独自のＧＵＩを用いているため、ユーザが技術の習得に時間を要したり、事前に固定した内容でしか処理の流れを作成できないという問題があった。
【０００３】
この問題を解決するため、ユーザがフォルダにＤＲＡＧ＆ＤＲＯＰしたデータ、または、フォルダにユーザプログラムがＰＵＴ（書き込み）したデータに対して、フォルダ名に対応した処理を実行し、その結果を当該フォルダ内に格納するという機能を有する処理付フォルダを用いる技術がある。この処理付フォルダを用いるプログラム実行制御装置では、処理付フォルダを階層的に配置した入れ子構造を作成し、上位の処理付フォルダの処理結果が直下の処理付フォルダへの再投入（ＤＲＯＰまたはＰＵＴ）となって、入力データに対する処理が連鎖していく技術が開示されている（特許文献１参照）。
【０００４】
特許文献１に記載のプログラム実行制御装置は、次のような特徴がある。（１）多くのユーザが通常のコンピュータ画面上の操作に用いるフォルダというメタファを活用するため、ＧＵＩの操作の学習が容易である。（２）フォルダの入れ子構造によって、ＵＮＩＸ（登録商標）のパイプ（あるプロセスの出力を次のプロセスの入力に割り当てる）のような、処理構成が可能となる。（３）木（ツリー）状にフォルダを構成することで、１つの処理に対して、多数の処理の適用が可能となる。例えば、下位フォルダが複数あれば、その下位フォルダそれぞれに上位のフォルダによる処理結果データを入力させ、並行処理することができる。また、フォルダの名称にｉｆ文等を含む名称を設定することで、条件分岐を用いた処理を実行させることができる。
【０００５】
また、特許文献１に記載のプログラム実行制御装置による処理が、ネットワーク上で動作するネットワーク・フォルダとして実装されれば、インターネット経由で、遠隔処理を容易に実行することが可能となる（非特許文献３参照）。よって、ユーザは、フォルダを使った操作さえ理解していれば、新たなユーザ・インタフェースの知識がなくても、遠隔地のサーバ等に存在する処理部品（プログラム）を、あたかもユーザ自身のコンピュータ上にその機能が存在するような感覚で実行することができる。そして、ユーザは、処理付フォルダの入れ子構造を用いた処理の連鎖や、木状の仕組みを用いた並列処理や条件分岐処理等を組み合わせることで、多様な処理を実行させることが可能となる。
【０００６】
このネットワーク・フォルダの仕組みとしてＨＴＴＰ（HyperText Transfer Protocol
）の拡張であるＷｅｂＤＡＶ（Web-based Distributed Authoring and Versioning）を用いた場合には、このプログラム実行制御装置による機能を、そのままプログラムＡＰＩとして利用することも可能である。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Yahoo Pipes、Yahoo! Inc.、[online]、[平成22年7月21日検索]、インターネット、<URL:http://pipes.yahoo.com/pipes/>
【非特許文献２】AppleScript 、Apple Inc.、[online]、[平成22年7月21日検索]、インターネット、<URL:http://docs.info.apple.com/article.html?artnum=58106-ja>
【非特許文献３】赤間浩樹，他、「フォルダ・プログラミング環境『ＰＯＬＤＥＲ』」、情報処理学会論文誌、社団法人情報処理学会、平成２１年８月、第５０巻、第８号、p.1798-1809
【特許文献】
【０００８】
【特許文献１】特開２００９−１９９５５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
前記したように、従来技術に比べ、特許文献１に記載のプログラム実行制御装置は、従来のプログラミングユーザよりも、より幅広い（高度なプログラミング技術を習得していない）ユーザに多様な処理を実行する環境を提供するものである。しかし、特許文献１に記載のプログラム実行制御装置では、処理付フォルダが階層構造を有する場合、入力したデータが処理される毎に、その処理結果が下位のフォルダに移動する。よって、最終的な処理結果データは末端のフォルダに格納されることになる。その場合、処理結果を得るために、ＧＵＩを使った場合は、フォルダを下位の階層に向かって何層も開く必要が生じる。また、プログラムＡＰＩ（Application Program Interface）でアクセスする場合には、指定パス長が増えることになる。
【００１０】
また、特許文献１に記載のプログラム実行処理装置では、処理付フォルダが同一階層に複数存在する場合には、それらの処理付フォルダのすべてに対してデータの再投入が実行される（並列処理）。この場合、処理結果のデータは木状に分散して格納される。よって、すべての処理結果データを得るために複数の箇所にアクセスする必要がある。
【００１１】
このような課題を解決するため本発明がなされたのであり、本発明は、ユーザにとって好適なプログラミング環境を提供することができる、処理付フォルダ実行制御方法、処理付フォルダ実行制御装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
前記した課題を解決するため、請求項１に記載の発明は、フォルダそれぞれに割り当てたプログラムを、前記フォルダにデータが入力されることにより実行する処理付フォルダを用いて、データ処理を制御する処理付フォルダ実行制御装置に用いられる処理付フォルダ実行制御方法であって、前記処理付フォルダ実行制御装置が、前記処理付フォルダの名称および当該処理付フォルダの階層関係を示したフォルダ情報と、前記処理付フォルダの名称ごとに、当該名称の処理付フォルダに入力された前記データに対し実行するプログラムを示す名称管理データベースとを記憶する記憶部を備え、前記フォルダへ入力するデータを受け付けるステップと、前記受け付けたデータが入力されたフォルダの名称をキーとして、前記フォルダ情報を参照し、当該フォルダの名称が前記処理付フォルダの名称であると判定した場合に、当該処理付フォルダの名称が、前記処理付フォルダを用いた処理により生成した処理結果データを所定の格納場所を集約させる処理を実行するプログラムが割り当てられた前記処理付フォルダの名称を示す集約処理名称を含むか否かを判定するステップと、前記処理付フォルダの名称が前記集約処理名称を含むと判定された場合に、当該集約処理名称の処理付フォルダの格納場所を示すパスを、前記フォルダ情報を参照して取得し、前記取得したパスを前記処理結果データの格納場所である結果集約先パスとして生成するステップと、前記データが入力されたフォルダの名称をキーとして、前記名称管理データベースを参照し、前記入力されたデータに対し実行する前記プログラムを選択するステップと、前記選択したプログラムの実行処理を行うステップと、前記フォルダ情報を参照して、当該処理付フォルダの下位に他の処理付フォルダがあるか否かを判定するステップと、当該処理付フォルダの下位に前記他の処理付フォルダがあると判定された場合に、当該処理付フォルダに割り当てられたプログラムの実行結果である前記処理結果データを、前記他の処理付フォルダに入力するステップと、を繰り返すことで、前記入力されたデータまたは前記処理結果データに対し、当該データが入力されたフォルダの下位に連なる処理付フォルダそれぞれに割り当てられたプログラムを、前記処理付フォルダが連なる順に実行する処理付フォルダ階層実行処理ステップと、前記フォルダ情報を参照して、当該処理付フォルダの下位に他の処理付フォルダがあるか否かを判定するステップにおいて、当該処理付フォルダの下位に前記他の処理付フォルダがないと判定された場合に、前記処理付フォルダに割り当てられたプログラムの処理結果データを、前記結果集約先パスの直下に移動するステップと、を実行することを特徴とする処理付フォルダ実行制御方法とした。
【００１３】
また、請求項５に記載の発明は、フォルダそれぞれに割り当てたプログラムを、前記フォルダにデータが入力されることにより実行する処理付フォルダを用いて、データ処理を制御する処理付フォルダ実行制御装置であって、前記処理付フォルダの名称および当該処理付フォルダの階層関係を示したフォルダ情報と、前記処理付フォルダの名称ごとに、当該名称の処理付フォルダに入力された前記データに対し実行するプログラムを示す名称管理データベースとを記憶する記憶部と、前記フォルダへ入力するデータを受け付けるデータ受付部と、前記受け付けたデータが入力されたフォルダの名称をキーとして、前記フォルダ情報を参照し、当該フォルダの名称が前記処理付フォルダの名称であると判定した場合に、当該処理付フォルダの名称が、前記処理付フォルダを用いた処理により生成した処理結果データを所定の格納場所を集約させる処理を実行するプログラムが割り当てられた前記処理付フォルダの名称を示す集約処理名称を含むか否かを判定し、前記フォルダ情報を参照して、当該処理付フォルダの下位に他の処理付フォルダがあるか否かを判定するフォルダ判定部と、前記フォルダ判定部が、前記処理付フォルダの名称が前記集約処理名称を含むと判定した場合に、当該集約処理名称の処理付フォルダの格納場所を示すパスを、前記フォルダ情報を参照して取得し、前記取得したパスを前記処理結果データの格納場所である結果集約先パスとして生成する結果集約先パス生成部と、前記データが入力されたフォルダの名称をキーとして、前記名称管理データベースを参照し、前記入力されたデータに対し実行する前記プログラムを選択するフォルダ割当処理管理部と、前記フォルダ割当処理管理部が選択したプログラムの実行処理を行う処理実行部と、前記フォルダ判定部が、当該処理付フォルダの下位に前記他の処理付フォルダがあると判定した場合に、当該処理付フォルダに割り当てられたプログラムの実行結果である前記処理結果データを、前記他の処理付フォルダに入力する下位フォルダデータ投入部と、前記入力されたデータまたは前記処理結果データに対し、当該データが入力されたフォルダの下位に連なる処理付フォルダそれぞれに割り当てられたプログラムを、前記処理付フォルダが連なる順に実行する処理付フォルダ階層実行処理を繰り返し、前記フォルダ判定部が、前記フォルダ情報を参照して、当該処理付フォルダの下位に他の処理付フォルダがないと判定した場合に、前記処理付フォルダに割り当てられたプログラムの処理結果データを、前記結果集約先パスの直下に移動する処理結果データ移動部と、を備えることを特徴とする処理付フォルダ実行制御装置とした。
【００１４】
このようにすることで、処理付フォルダ実行制御装置は、フォルダにデータが入力されると、データ入力されたフォルダの名称が、処理付フォルダの名称であり、処理結果データを集約して格納する処理を行う集約処理名称であるか否かを判定する。そして、処理付フォルダ実行制御装置が、データ入力されたフォルダの名称が、集約処理名称であると判定した場合に、そのフォルダのパスを結果集約先パスとして生成する。続いて、処理付フォルダ実行制御装置は、フォルダに割り当てられた処理を行い、その処理結果データを、下位の処理付フォルダに受け渡し、その下位のフォルダに割り当てられた処理を実行し、この処理を下位の処理付フォルダがなくなるまで繰り返す。そして、処理付フォルダ実行制御装置は、得られた処理結果データを、結果集約先パスに移動し格納する。
【００１５】
よって、本発明によれば、処理付フォルダ実行制御装置が処理した処理結果データを、集約処理名称の処理付フォルダのパスに集約して格納することができる。このことにより、ユーザは、処理結果データを得るため、下位の処理付フォルダまでアクセスする必要がなくなる。さらに、１箇所に集約されて処理結果データが格納されるため、アクセス回数を低減することができる。
【００１６】
請求項２に記載の発明は、前記処理付フォルダの名称が前記集約処理名称を含むか否かを判定するステップにおいて、前記処理付フォルダの名称が前記集約処理名称を含むと判定された場合に、前記処理付フォルダの名称に、前記結果集約先パスの代わりに前記処理結果データを集約する格納場所として設定される修正結果集約先パスが含まれるか否かを判定するステップと、前記修正結果集約先パスが含まれている場合に、前記処理結果データを、前記修正結果集約先パスが示す格納場所に転送するステップと、を実行することを特徴とする請求項１に記載の処理付フォルダ実行制御方法とした。
【００１７】
また、請求項６に記載の発明は、前記フォルダ判定部が、前記処理付フォルダの名称が前記集約処理名称を含むと判定した場合に、前記処理付フォルダの名称に、前記結果集約先パスの代わりに前記処理結果データを集約する格納場所として設定される修正結果集約先パスが含まれるか否かを判定し、前記処理結果データ移動部が、前記フォルダ判定部が前記処理付フォルダの名称に前記修正結果集約先パスが含まれていると判定した場合に、前記処理結果データを、前記修正結果集約先パスが示す格納場所に転送すること、を特徴とする請求項５に記載の処理付フォルダ実行制御装置とした。
【００１８】
このような構成にすることで、ユーザは、ユーザが指定する格納場所に、処理付フォルダ実行制御装置が実行した処理結果データを、集約して格納することができる。よって、ユーザによる処理結果データへのアクセスが容易となる。
【００１９】
請求項３に記載の発明は、前記処理付フォルダの名称が前記集約処理名称を含むか否かを判定するステップにおいて、前記処理付フォルダの名称が前記集約処理名称を含まないと判定された場合に、前記処理付フォルダの名称に、サブルーチンの呼出しを示す外部呼出処理の名称および当該外部呼出処理の呼出先の識別子である呼出先名称が含まれるか否かを判定するステップと、前記処理付フォルダの名称に、前記外部呼出処理の名称および前記呼出先名称が含まれると判定された場合に、前記呼出先名称を用いて、前記外部呼出処理を行う前記処理付フォルダを特定し、前記特定した処理付フォルダに、処理対象となるデータを入力するステップと、当該入力されたデータに対し、前記処理付フォルダ階層実行処理ステップを実行することにより得られた前記処理結果データを、前記外部呼出処理の呼出元のフォルダに移動するステップと、を実行することを特徴とする請求項１に記載の処理付フォルダ実行制御方法とした。
【００２０】
また、請求項７に記載の発明は、前記フォルダ判定部が、前記処理付フォルダの名称が前記集約処理名称を含まないと判定した場合に、前記処理付フォルダの名称に、サブルーチンの呼出しを示す外部呼出処理の名称および当該外部呼出処理の呼出先の識別子である呼出先名称が含まれるか否かを判定する外部呼出処理名称判定部と、前記外部呼出処理名称判定部が、前記処理付フォルダの名称に、前記外部呼出処理の名称および前記呼出先名称が含まれると判定した場合に、前記呼出先名称を用いて、前記外部呼出処理を行う前記処理付フォルダを特定し、前記特定した処理付フォルダに、処理対象となるデータを入力する外部呼出処理部と、当該入力されたデータに対し、前記処理付フォルダ階層実行処理を行うことにより得られた前記処理結果データを、前記外部呼出処理の呼出元のフォルダに移動する呼出元フォルダ移動部と、を備えることを特徴とする請求項５に記載の処理付フォルダ実行制御装置とした。
【００２１】
このような構成とすることで、サブルーチン（外部呼出処理）として、処理付フォルダの階層を用いた処理を利用する場合に、最下位の各処理付フォルダに、さらに、returnフォルダを作成する等の処理を行う必要をなくすことができる。つまり、本発明の処理付フォルダ実行制御装置によれば、構築されている処理付フォルダの階層をそのまま利用して、サブルーチン（外部呼出処理）として利用することができる。
【００２２】
請求項４に記載の発明は、前記結果集約先パスを生成するステップにおいて、前記結果集約先パスが生成されると、当該結果集約先パスの生成時刻と、前記処理付フォルダが受け付けたデータに付された、プロセス番号、ジョブ番号、若しくはスレッド番号とを含む前記結果集約先パス毎の固有のＩＤを生成し、前記生成したＩＤと当該結果集約先パスとを対応付けて前記結果集約先パスＩＤ情報を作成し、前記記憶部に格納するステップと、前記処理結果データを、前記下位の他の処理付フォルダに入力するステップにおいて、前記処理結果データに前記ＩＤを付して前記下位の他の処理付フォルダに入力するステップと、前記処理結果データを、前記結果集約先パスに移動するステップにおいて、前記処理結果データに付された前記ＩＤを用いて、前記結果集約先パスＩＤ情報を参照することにより、前記結果集約先パスを取得し、前記取得した結果集約先パスに、前記処理結果データを移動するステップと、を実行することを特徴とする請求項１乃至請求項３のいずれか１項に記載の処理付フォルダ実行制御方法とした。
【００２３】
また、請求項８に記載の発明は、前記結果集約先パス生成部が前記結果集約先パスを生成すると、当該結果集約先パスの生成時刻と、前記処理付フォルダが受け付けたデータに付された、プロセス番号、ジョブ番号、若しくはスレッド番号とを含む前記結果集約先パス毎の固有のＩＤを生成し、前記生成したＩＤと当該結果集約先パスとを対応付けて結果集約先パスＩＤ情報を作成して前記記憶部に格納する結果集約先パスＩＤ管理部をさらに備え、前記下位フォルダデータ投入部が、前記処理結果データに前記ＩＤを付して前記下位の他の処理付フォルダに入力し、前記処理結果データ移動部が、前記処理結果データに付された前記ＩＤを用いて、前記結果集約先パスＩＤ情報を参照することにより、前記結果集約先パスを取得し、前記取得した結果集約先パスに、前記処理結果データを移動すること、を特徴とする請求項５乃至請求項７のいずれか１項に記載の処理付フォルダ実行制御装置とした。
【００２４】
このような構成とすることで、下位の処理付フォルダに引数として、結果集約先パスを付与する代わりに、結果集約先パス毎の固有のＩＤを用いることができる。よって、結果集約先パスそのものを利用する場合に比べて、データ量を低減でき、特殊文字の使用等のプログラム上の制限を考慮することなく、結果集約先パスを下位の処理付フォルダに受け渡すことができる。
【００２５】
請求項９に記載の発明は、請求項１乃至請求項４のいずれか１項に記載の処理付フォルダ実行制御方法を、一般的なコンピュータに実行するためのプログラムとした。
【００２６】
このようなプログラムによれば、請求項１乃至請求項４に記載の処理付フォルダ実行制御方法を、一般的なコンピュータで実行させることができる。
【発明の効果】
【００２７】
本発明によれば、ユーザにとって好適なプログラミング環境を提供することができる、処理付フォルダ実行制御方法、処理付フォルダ実行制御装置およびプログラムを提供することができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の第１の実施形態に係る処理付フォルダ実行制御装置の構成例を示す機能ブロック図である。
【図２】本発明の第１の実施形態に係る処理付フォルダ実行制御装置による処理の流れを示すフローチャートである。
【図３】本発明の第２の実施形態に係る処理付フォルダ実行制御装置の構成例を示す機能ブロック図である。
【図４】本発明の第２の実施形態に係る処理付フォルダ実行制御装置による処理の流れを示すフローチャートである。
【図５】本発明の第２の実施形態に係るサブルーチン処理の流れを示すフローチャートである。
【図６】本発明の第３の実施形態に係る処理付フォルダ実行制御装置の構成例を示す機能ブロック図である。
【図７】従来技術におけるプログラム実行制御装置の動作概要を説明するための図である。
【図８】本発明の実施形態に係る処理付フォルダを説明するための図である。
【発明を実施するための形態】
【００２９】
次に、本発明を実施するための形態（「実施形態」という）について、適宜図面を参照しながら詳細に説明する。まず、本実施形態に係る処理付フォルダ実行制御装置１が行う処理の前提となる、前記説明した特許文献１に係るプログラム実行制御装置が行う処理について具体的に説明する。なお、本実施形態に係る処理付フォルダ実行制御装置１は、以下に説明するプログラム実行制御装置の構成を含んだ上で、後記する構成をさらに追加したものである。
【００３０】
＜プログラム実行制御装置（フォルダ割当プログラム実行制御装置）の動作概要＞
図７は、従来技術におけるプログラム実行制御装置の動作概要を説明するための図である。ここでは、プログラム実行制御装置が、画像の特徴量を抽出する処理である「プログラム例１」を行うものとして説明する。図７に示すように、「プログラム例１」フォルダの下位には「映像形式統一 ｍｐｅｇ２」フォルダがあり、その下位には「映像カット内代表図画像抽出」フォルダがある。そして、この「映像カット内代表画像抽出」フォルダの下位には「画像内顔検出」フォルダおよび「景観中文字認識」フォルダがある。
【００３１】
プログラム実行制御装置は、このようなフォルダの階層構造を管理する。つまり、プログラム実行制御装置は、どのフォルダの下位にどのフォルダがあるかや、それぞれのフォルダの名称（フォルダ名）は何か等を、フォルダ情報として管理している。また、プログラム実行制御装置は、プログラムの名称と、その名称のフォルダに割り当てられる処理（具体的には、その処理を実行するためのプログラムの格納場所）とを示した名称管理データベース（ＤＢ）３０２を備える。
【００３２】
階層構造を持つフォルダ群のうち、最上位のフォルダ（例えば、図７の「プログラム例１」フォルダ）に、データが入力されると、プログラム実行制御装置は、このデータが入力されたフォルダの名称と、名称管理ＤＢ３０２とを参照して以下のような処理を行う。
【００３３】
まず「プログラム例１」フォルダに割り当てられた処理（「/folderprog/through」）に従いスルーし、入力されたデータに、その下位にある「映像形式統一 ｍｐｅｇ２」フォルダに割り当てられた処理（「/local/bin/convert」に格納されるプログラム）を実行する。次に、プログラム実行制御装置は、この処理の実行結果（処理結果データ）を、「映像カット内代表図画像抽出」フォルダに受け渡す。そして、この「映像カット内代表図画像抽出」フォルダに割り当てられた処理（「/local/bin/cut」に格納されるプログラム）を実行する。そして、ここでの処理結果データを、「画像内顔検出」フォルダと、「景観中文字認識」フォルダとに受け渡す。次に、「画像内顔検出」フォルダに割り当てられた処理（「/local/bin/face-detect」に格納されるプログラム）と、「景観中文字認識」フォルダに割り当てられた処理（「/local/bin/letter-detect」に格納されるプログラム）とを実行する。そして、プログラム実行制御装置は、「画像内顔検出」フォルダに割り当てられた処理の処理結果データを、「画像内顔検出」フォルダに格納し、「景観中文字認識」フォルダに割り当てられた処理の処理結果データを、「景観中文字認識」フォルダに格納する。
【００３４】
つまり、これらのフォルダの最上位のフォルダにデータが入力されると、プログラム実行制御装置は、このデータに対しフォルダの階層構造にしたがい、各フォルダに連なる下位フォルダそれぞれに割り当てられた処理を次々に実行する。そして、プログラム実行制御装置は、その最終的な処理結果データをその最下位のフォルダに格納する。
【００３５】
ユーザは、このプログラム実行制御装置により、フォルダの階層構造を構築するだけで、様々な処理を連続して実行（マッシュアップ）することが容易となる。なお、図７においては、木状（ツリー構造）として階層を表現しているが、ユーザが実際に処理を実行する場合は、最上位の処理付フォルダだけが表示され、その処理付フォルダに、データをＤＲＡＧ＆ＤＲＯＰすることにより、処理結果をより下位の階層のフォルダに連鎖して投入する処理を行うようにすることもできる。また、前記したように、同一階層に複数の処理付フォルダが存在する場合には、それらの複数の処理付フォルダへのデータ投入となる。さらに、処理付フォルダのフォルダ名にｉｆ文等を含む名称を設定することにより、条件分岐を用いた処理を実行させることができる。例えば、入力しようとする処理結果データが、ｉｆ文に示される条件を満足する場合に、その処理付フォルダに投入され、ｉｆ文の条件を満足しない場合には、その処理付フォルダにデータを投入しないようにすることができる。
【００３６】
＜本実施形態に係る処理付フォルダ＞
次に、本実施形態に係る処理付フォルダについて、具体的に説明する。
本実施形態に係る処理付フォルダは、データのフォルダへの入力（ＤＲＯＰやＰＵＴ）によって、その処理付フォルダの名称（フォルダ名）に対応した処理を実行する。本実施形態に係る処理付フォルダでは、フォルダ名の前半（最初に出現する空白以前）が処理名として処理全体の指定に使われる。そして、ファイル名の残りの部分については、処理全体に渡すパラメータとして利用することができる。
【００３７】
例えば、図８に示すように、textGrep というフォルダ名（処理名）に、テキストファイルからパラメータで指定される特定文字列を含む行を抽出する処理/bin/grep/が割り当てられているとする。このとき、フォルダ名「textGrep 'ＡＢＣ'」は、パラメータを'ＡＢＣ' として/bin/grep/を実行する処理となり、このフォルダにＤＲＯＰされたデータの処理結果データ（ファイル）は、「textGrep 'ＡＢＣ'」内に生成される。
つまり、処理付フォルダのフォルダ名は、処理名だけでなくパラメータを含むことができる。よって、ユーザは、データ入力すると、その処理名に対応した処理を、フォルダ名で示されるパラメータを設定した状態で実行させることができる。
【００３８】
また、本実施形態に係る処理付フォルダ実行制御装置１は、従来技術におけるプログラム実行制御装置の処理では、最下位の各フォルダに格納されていた最終的な処理結果データを移動し、所定の格納場所に集約する処理を行う（詳細は後記）。この処理を集約処理と呼び、集約処理が割り当てられたフォルダのフォルダ名を集約処理名称と呼ぶ。この集約処理名称を、本実施形態では、poldef という処理名とし、このpoldefの処理名が付されたフォルダの直下に、処理結果データを集約して格納する処理を行うものとして説明する。
【００３９】
≪第１の実施形態≫
図１は、本発明の第１の実施形態に係る処理付フォルダ実行制御装置１の構成例を示す機能ブロック図である。
【００４０】
この処理付フォルダ実行制御装置１は、入出力部１０と、処理部２０と、記憶部３０とを備えるコンピュータにより実現される。
【００４１】
入出力部１０は、各種データの入出力を司り、ユーザによりフォルダに投入（ＤＲＯＰやＰＵＴ）された処理対象となるデータの入力を受け付けたり、処理結果データや表示画面のデータを出力したりする。この入出力部１０は、入出力インタフェースや通信インタフェースから構成される。
【００４２】
処理部２０は、フォルダに入力されたデータに対し、そのフォルダに割り当てられた処理を実行し、その処理結果データを下位のフォルダに受け渡す。また、処理部２０は、データが入力されたフォルダが処理付フォルダでありそのフォルダ名が集約処理名称であるか否かを判定することにより、その処理結果データを結果集約先パスで指定される格納場所に移動する。
【００４３】
この処理部２０は、フォルダ管理部２０１と、データ出力部２０２と、データ受付部２０３と、フォルダ判定部２０４と、結果集約先パス生成部２０５と、下位フォルダデータ投入部２０６と、フォルダ割当処理管理部２０７と、処理実行部２０８と、処理結果データ移動部２０９と、全体制御部２１０とを含んで構成される。そして、この処理部２０は、処理付フォルダ実行制御装置１が備えるＣＰＵ（Central Processing Unit）によるプログラム実行処理や、専用回路により実現される。なお、処理付フォルダ実行制御装置１をプログラム実行処理により実現する場合、記憶部３０には、この処理付フォルダ実行制御装置１の機能を実現するためのプログラム（図示省略）が格納される。
【００４４】
フォルダ管理部２０１は、後記する記憶部３０内のフォルダ情報３０１を参照して、フォルダの名称（フォルダ名）およびフォルダの階層関係に関する情報を取得する。そして、その取得した情報を、フォルダ判定部２０４、結果集約先パス生成部２０５、下位フォルダデータ投入部２０６等へ出力する。また、フォルダ管理部２０１は、入出力部１０経由で、フォルダの作成指示を受け付け、その指示に基づき、フォルダを作成し、名称を付与し、この作成したフォルダと他のフォルダとの階層関係およびフォルダの名称をフォルダ情報３０１に記憶する。
【００４５】
データ出力部２０２は、フォルダ管理部２０１により管理されるフォルダ情報３０１を、入出力部１０を介して出力したり、処理付フォルダ実行制御装置１が処理した処理結果データを入出力部１０を介して出力したりする。
【００４６】
データ受付部２０３は、フォルダ情報３０１に示される各処理付フォルダに入力されるデータを受け付ける。このデータ受付部２０３は、入出力部１０を介して、ユーザによりフォルダに投入されたデータを受け付ける。また、下位の処理付フォルダに入力される処理結果データの入力を受け付ける。
【００４７】
フォルダ判定部２０４は、入出力部１０を介して受信したデータが入力されたフォルダのフォルダ名の全部または一部が処理付フォルダのフォルダ名（処理付フォルダ名）であるか否かを判定する。つまり、入力されたフォルダが処理付フォルダであり、フォルダ名に処理付フォルダ名が含まれているか否かを判定する。そして、フォルダ判定部２０４は、フォルダ名の全部または一部が処理付フォルダ名である場合に、その処理付フォルダ名の一部が、集約処理名称であるか否かを判定する。また、フォルダ判定部２０４は、フォルダ名の全部または一部が処理付フォルダ名でない場合に、そのデータを、全体制御部２１０に出力する。そして、フォルダ判定部２０４は、フォルダ管理部２０１を介して、フォルダ情報３０１を参照し、処理対象の処理付フォルダの下位に、さらに処理付フォルダがあるか否かを判定する。
【００４８】
結果集約先パス生成部２０５は、フォルダ判定部２０４が、処理付フォルダ名の一部が、集約処理名称であると判定した場合に、その処理付フォルダのパスを、フォルダ管理部２０１を介してフォルダ情報３０１から取得し、結果集約先パスとして生成する。
【００４９】
下位フォルダデータ投入部２０６は、フォルダに割り当てられた処理の実行結果である処理結果データを、そのフォルダの下位のフォルダに入力（投入）する。当該フォルダの下位フォルダがどのフォルダかは、フォルダ管理部２０１を介してフォルダ情報３０１から取得する。そして、下位フォルダデータ投入部２０６は、そのフォルダの下位に連なる各フォルダに、当該フォルダに割り当てられた処理の処理結果データを入力する。なお、前記したように、データの投入先となる下位フォルダが複数あるとき、その下位フォルダそれぞれにデータを投入する。また、下位フォルダデータ投入部２０６は、下位フォルダのフォルダ名がｉｆ文等を含む名称が設定されている場合には、そのｉｆ文等に示される条件を満足する場合に、その下位フォルダにデータを投入する。
【００５０】
フォルダ割当処理管理部２０７は、名称管理ＤＢ３０２と、データが入力されたフォルダのフォルダ名とを参照して、そのフォルダに入力されたデータに対し実行する処理（プログラム）を選択する。
【００５１】
処理実行部２０８は、フォルダ割当処理管理部２０７により選択された情報に基づき、プログラム記憶部３０３からそのフォルダが行うプログラムを読み出して、フォルダに入力されたデータの処理を実行する。
【００５２】
処理結果データ移動部２０９は、フォルダ判定部２０４が、データ処理を行ったフォルダ直下に、処理付フォルダがないと判定した場合に、処理実行部２０８が実行した処理結果データを、結果集約先パス生成部２０５が生成した結果集約先パスが示す格納場所に移動する。
【００５３】
全体制御部２１０は、処理部２０全般の制御を司る。また、全体制御部２１０は、データ入力されたフォルダが処理付フォルダでない場合に、その入力データをそのままフォルダ内に格納する処理等を行う。
【００５４】
次に、記憶部３０は、フォルダ情報３０１と、名称管理ＤＢ３０２と、プログラム記憶部３０３とを備え、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ等の記憶手段から構成される。
【００５５】
フォルダ情報３０１は、フォルダ名（処理付フォルダ名）、フォルダの階層関係、各フォルダに格納されるデータ等を示した情報である。このフォルダ情報３０１は、フォルダ管理部２０１により、更新され、読み出される。
【００５６】
名称管理ＤＢ３０２は、フォルダ名に示されるプログラムの名称ごとに、そのプログラムの格納領域を示した情報である（図７参照）。この名称管理ＤＢ３０２は、フォルダ割当処理管理部２０７が当該フォルダに割り当てられている処理（プログラム）を選択するときに参照される。
【００５７】
プログラム記憶部３０３は、処理実行部２０８により実行される各種プログラムを格納する。処理実行部２０８は、名称管理ＤＢ３０２からフォルダ割当処理管理部２０７が選択したプログラムの格納領域を示した情報に基づき、このプログラム記憶部３０３からプログラムを読み出して、処理を行う。
【００５８】
（動作手順）
次に本発明の第１の実施形態に係る処理付フォルダ実行制御装置１の動作手順について、図１を参照しつつ、図２を用いて詳細に説明する。図２は、本発明の第１の実施形態に係る処理付フォルダ実行制御装置１の処理の流れを示すフローチャートである。
【００５９】
まず、処理付フォルダ実行制御装置１の入出力部１０が、フォルダへのデータ入力を受け付ける（ステップＳ１０１）。具体的には、フォルダへのユーザによるデータの投入（ＤＲＯＰ）や、ユーザプログラムの処理によりフォルダにデータ送信（ＰＵＴ）されることにより、データが入力される。
【００６０】
そして、処理部２０内のデータ受付部２０３が、入出力部１０からデータを受信し受け付ける（ステップＳ１０２）。また、データ受付部２０３は、受け付けたデータと共に引数として結果集約先パスが含まれているか否かを判定し、含まれている場合には、その結果集約先パスを受け付ける（ステップＳ１０３）。
【００６１】
次に、フォルダ判定部２０４は、データが入力されたフォルダのフォルダ名の全部または一部が処理付フォルダ名であるか否かを判定する（ステップＳ１０４）。
【００６２】
ここで、フォルダ名の全部または一部が処理付フォルダ名でない場合は（ステップＳ１０４→Ｎｏ）、全体制御部２１０は、受け付けた入力データを、そのまま当該フォルダに格納する（ステップＳ１０５）。つまり、通常のフォルダと同様にデータを格納する。そして処理を終了する。
【００６３】
一方、フォルダ名の全部または一部が処理付フォルダ名である場合は（ステップＳ１０４→Ｙｅｓ）、フォルダ判定部２０４は、さらに、処理付フォルダ名の一部が、集約処理名称であるか否かを判定する（ステップＳ１０６）。
【００６４】
そして、処理付フォルダ名の一部が集約処理名称である場合には（ステップＳ１０６→Ｙｅｓ）、結果集約先パス生成部２０５が、フォルダ管理部２０１を介して、フォルダ情報３０１から、その処理付フォルダのパスを取得し、結果集約先パスとして生成する（ステップＳ１０７）。そして、次のステップＳ１０８へ進む。
【００６５】
次に、処理付フォルダ名の一部が集約処理名称でない場合（ステップＳ１０６→Ｎｏ）、または、ステップＳ１０７の結果集約先パスの生成処理を終えた後に、フォルダ割当処理管理部２０７および処理実行部２０８は、入力データに対して、フォルダに割り当てられた処理を実行する（ステップＳ１０８）。
【００６６】
具体的には、フォルダ割当処理管理部２０７が、名称管理ＤＢ３０２を参照して、このデータが入力されたフォルダのフォルダ名（処理付フォルダ名）をキーとして、このフォルダに割り当てられた処理を選択する。そして、処理実行部２０８が、入力データに対して、フォルダ割当処理管理部２０７が選択した処理（プログラム）を、プログラム記憶部３０３を参照して実行し、その処理結果データを、処理結果ファイルとしてそのまま当該フォルダ内に格納する。
【００６７】
続いて、フォルダ判定部２０４は、フォルダ管理部２０１に問い合わせることにより、当該フォルダの直下に、処理付フォルダがあるか否かを判定する（ステップＳ１０９）。ここで、フォルダ管理部２０１は、フォルダ情報３０１を参照し、当該フォルダの直下のフォルダに関する情報をフォルダ判定部２０４に出力する。
【００６８】
そして、当該フォルダの直下に、処理付フォルダがある場合には（ステップＳ１０９→Ｙｅｓ）、下位フォルダデータ投入部２０６は、ステップＳ１０８で作成した処理結果データを、そのフォルダ直下の処理付フォルダに投入して（ステップＳ１１０）、ステップＳ１０２へ戻る。つまり、上位の処理付フォルダの処理結果データを、直下の処理付フォルダに再投入することを行って、ステップＳ１０２〜Ｓ１１０までの処理（以下、「処理付フォルダ階層実行処理」とよぶ）を実行する。
【００６９】
このとき、下位フォルダデータ投入部２０６は、下位の処理付フォルダの処理対象となる処理結果データと、ステップＳ１０７で、結果集約先パス生成部２０５が生成した結果集約先パスとを、引数として、処理付フォルダ階層実行処理の再帰的な呼出しを行う。
【００７０】
一方、ステップＳ１０９において、フォルダ判定部２０４が、当該フォルダ直下に、処理付フォルダがないと判定した場合は（ステップＳ１０９→Ｎｏ）、処理結果データ移動部２０９は、ステップＳ１０７で生成した結果集約先パスに、ステップＳ１０８で作成した処理結果データ（ファイル）を移動する（ステップＳ１１１）。このとき、下位の処理付フォルダへの投入が再帰的に実行されて、複数の処理結果データが生成されている場合には、処理結果データ移動部２０９は、その各処理結果データを、結果集約先パスに移動する。
【００７１】
（第１の実施形態の具体例）
次に、本発明の第１の実施形態に係る処理付フォルダ実行制御装置１の処理を、具体例を用いて詳細に説明する。
【００７２】
なお、以下の説明において、各フォルダの階層構造（入れ子構造）をインデント（字下げ）として表記する。また、空白を含むことを明確にするため、フォルダ名は「 」で囲み、文字列は"  "で囲んで表記する。
【００７３】
まず、本実施形態で利用する各処理付フォルダ名とその処理付フォルダが行う処理の具体例を、処理付フォルダの一例として説明する。なお、この各処理付フォルダ名の処理内容を説明した後、この処理付フォルダを用いた、本発明の第１の実施形態に係る処理付フォルダ実行制御装置１の処理の流れを説明する。
【００７４】
・処理付フォルダ名「label  ＵＲＬ関連情報入手」および「through」
label, through で示される処理は、いずれも、入力データをそのまま受け付け、何も処理せず格納する。また、label は、フォルダ名中に引数を持ち、その引数は、この label の名称であるラベル名を表す。このラベル名は、例えば、"ＵＲＬ関連情報入手" のように、下位の処理内容全体を示すものが付される。
・処理付フォルダ名「ＵＲＬページダウンロード」
「ＵＲＬページダウンロード」で示される処理は、入力されたＵＲＬファイルのＵＲＬにしたがって、htmlファイルをダウンロードする。
・処理付フォルダ名「link  '／label  ＵＲＬ関連情報入手／result'」
link で示される処理は、結果を引数"／label  ＵＲＬ関連情報入手／result" に再投入する。
・処理付フォルダ名「形態素解析」
「形態素解析」で示される処理は、入力された txt や html について形態素解析を行う。
・処理付フォルダ名「代表語抽出  ５」
「代表語抽出  ５」で示される処理は、形態素解析およびそれに含まれる単語出現頻度情報から代表語を引数で指定される個数（この例では、５）だけ抽出する。
・処理付フォルダ名「ＵＲＬページのサムネイル画像作成」
「ＵＲＬページのサムネイル画像作成」で示される処理は、入力されたＵＲＬファイルのＵＲＬにしたがって、そのページのサムネイル画像を、bmp で作成する。
・処理付フォルダ名「poldef  ＵＲＬ関連情報入手」
poldef は、本実施形態における集約処理名称であり、この集約処理名称で示される処理は、label と同様に、入力データをそのまま受け付け、何も処理せず格納する。そして、このpoldefの処理名が付されたフォルダの直下に、最終的な処理結果データを集約して格納する処理を行う。なお、poldef は、フォルダ名中に引数を持ち、その引数は、この poldef の下位の処理内容全体を示す名称として例えば "ＵＲＬ関連情報入手"が付される。
【００７５】
（処理内容）
次に、処理付フォルダの階層構造を利用した処理として、以下に示すプログラムを実行させることとして、具体的な処理を説明する。
「ＵＲＬファイルを入力して、そのＵＲＬページのサムネイル画像、Ｗｅｂページ代表キーワードリスト、ページの実体（ＵＲＬページそのものの情報）を取得するプログラム」
【００７６】
まず、従来技術である特許文献１のプログラム実行制御装置でのプログラム処理をフォルダの階層構造として説明する。
【００７７】
【表１】
0005438621.tif 000002
【００７８】
この（従来例１−１）は、プログラムとして６行とシンプルであるが、以下に示すように、処理結果データが最下位のフォルダの３箇所に分散する。よって、処理結果データを取得するため、３箇所の異なるフォルダへのアクセスが必要となる。
【００７９】
get  "／label  ＵＲＬ関連情報入手／ＵＲＬページダウンロード／through／A-download.mht"
get  "／label  ＵＲＬ関連情報入手／ＵＲＬページダウンロード／形態素解析／代表語抽出  ５／A-download-parse-keyword.txt"
get  "／label  ＵＲＬ関連情報入手／ＵＲＬページのサムネイル画像作成／A-thumb.bmp"
【００８０】
【表２】
0005438621.tif 000003
【００８１】
この（従来例１−２）では、処理結果データは、以下に示すように、単一フォルダの「label  ＵＲＬ関連情報入手／result」に集約されるため、処理結果データへのアクセスは同一フォルダとなる。しかし、プログラムとしては、１０行となり、複雑化してしまう。
【００８２】
get  "／label  ＵＲＬ関連情報入手／result／A-download.mht"
get  "／label  ＵＲＬ関連情報入手／result／A-download-parse-keyword5.txt"
get  "／label  ＵＲＬ関連情報入手／result／A-thumb.bmp"
【００８３】
次に、本発明の第１の実施形態におけるプログラムを、集約処理名称が poldef であるとして説明する。
【００８４】
【表３】
0005438621.tif 000004
【００８５】
この（本発明例１）では、プログラムとして６行であり、シンプルである。そして、処理結果データが、「poldef  ＵＲＬ関連情報入手」に集約されるため、以下に示すように、処理結果データへのアクセスは一箇所の同一フォルダとなる。
【００８６】
get  "／poldef  ＵＲＬ関連情報入手／result／A-download.mht"
get  "／poldef  ＵＲＬ関連情報入手／result／A-download-parse-keyword5.txt"
get  "／poldef  ＵＲＬ関連情報入手／result／A-thumb.bmp"
【００８７】
次に、この（本発明例１）の具体的な処理の流れを、図１および図２を参照しつつ説明する。
【００８８】
[処理付フォルダ名「poldef  ＵＲＬ関連情報入手」の処理]
まず、ユーザにより、「poldef  ＵＲＬ関連情報入手」フォルダに入力データとして、A.url が入力される（図２のステップＳ１０１）。そして、データ受付部２０３がデータを受け付ける（ステップＳ１０２）。ここでは、受け付けたデータに引数として結果集約先パスが含まれていないので、そのままステップＳ１０４へ進む。
【００８９】
次に、フォルダ判定部２０４は、フォルダ名「poldef  ＵＲＬ関連情報入手」の全部または一部が処理付フォルダ名であるか否かの判定を行い（ステップＳ１０４）、ここでは、poldef が処理付フォルダ名であるので、さらに、処理付フォルダの一部が集約処理名称であるか否かを判定する（ステップＳ１０６）。そして、フォルダ判定部２０４は、フォルダ名の空白の区切りより前部分が「poldef」であり、集約処理名称であると判定する（ステップＳ１０６→Ｙｅｓ）。
【００９０】
続いて、結果集約先パス生成部２０５は、この時の処理付フォルダのパス "／poldef  ＵＲＬ関連情報入手" を結果集約先パスとして生成する（ステップＳ１０７）。そして、フォルダ割当処理管理部２０７および処理実行部２０８により、「poldef」に対応した処理として、その入力データ A.urlを、処理結果データとしてそのままフォルダ内に格納する（ステップＳ１０８）。
【００９１】
次に、フォルダ判定部２０４は、フォルダ管理部２０１を介して、他の処理付フォルダが「poldef  ＵＲＬ関連情報入手」フォルダの直下に存在するか判定する（ステップＳ１０９）。この場合は、「ＵＲＬページダウンロード」と「ＵＲＬページのサムネイル画像作成」が存在する。よって、下位フォルダデータ投入部２０６が、処理結果データ A.url を「ＵＲＬページダウンロード」フォルダと「ＵＲＬページのサムネイル画像作成」フォルダに投入する処理を行う（ステップＳ１１０）。
【００９２】
この処理結果データの下位のフォルダへの投入により、データ受付部２０３がデータを受け付ける処理（ステップＳ１０２）に戻る。この下位のフォルダへの処理結果データ A.url の下位フォルダへの投入に際して、結果集約先パス生成部２０５が生成した結果集約先パス "／poldef  ＵＲＬ関連情報入手" を、その処理結果データ A.url の引数として、再入力を行う。
【００９３】
[処理付フォルダ名「ＵＲＬページのサムネイル画像作成」の処理]
次に、「ＵＲＬページダウンロード」フォルダと「ＵＲＬページのサムネイル画像作成」フォルダへの投入処理を行うが、この実行順序は問わないため、以下、「ＵＲＬページのサムネイル画像作成」フォルダへの投入処理について説明する。
【００９４】
まず、上位階層の処理結果データとして A.url をデータ受付部２０３が受け付ける（ステップＳ１０２）。このとき、処理結果データ A.url の引数として、 "／poldef  ＵＲＬ関連情報入手／ＵＲＬページのサムネイル画像作成／A.url" と、結果集約先パス "／poldef  ＵＲＬ関連情報入手" とが渡される。よって、データ受付部２０３は、この結果集約先パスも受け付ける（ステップＳ１０３）。
【００９５】
次に、フォルダ判定部２０４は、フォルダ名の全部が「ＵＲＬページのサムネイル画像作成」であるため処理付フォルダと判定し（ステップＳ１０４→Ｙｅｓ）、集約処理名称でないと判定する（ステップＳ１０６→Ｎｏ）。
【００９６】
続いて、フォルダ割当処理管理部２０７および処理実行部２０８により、「ＵＲＬページのサムネイル画像作成」に対応した処理を実行する（ステップＳ１０８）。つまり、入力データ A.urlを用いて、当該ページ情報をダウンロードし、それを仮想プリンタに出力して、その結果をビットマップ画像 A-thumb.bmp とし、その画像を処理結果データとしてフォルダ内に格納する。
【００９７】
次に、フォルダ判定部２０４は、フォルダ管理部２０１を介して、フォルダ情報３０１を参照し、他の処理付フォルダが「ＵＲＬページのサムネイル画像作成」フォルダの直下に存在するか判定する（ステップＳ１０９）。この場合は、「ＵＲＬページのサムネイル画像作成」フォルダの直下に、処理付フォルダは存在しない（ステップＳ１０９→Ｎｏ）。したがって、処理結果データ移動部２０９は、ステップＳ１０３で受け付けた、結果集約先パス "／poldef  ＵＲＬ関連情報入手" の直下に、処理結果である A-thumb.bmp を移動する（ステップＳ１１１）。
【００９８】
同様に、「ＵＲＬページダウンロード」フォルダに対しても、処理結果データ A.url を投入する処理を行い、処理結果データを得る。そして、その処理結果データについて、結果集約先パス "／poldef  ＵＲＬ関連情報入手" を引数とした再入力を、さらに下位の「through」および「形態素解析」フォルダに対して行う。そして、「形態素解析」フォルダについては、さらに下位の処理付フォルダである「代表語抽出  ５」に処理結果データを再入力する処理を行う。
【００９９】
ここで「through」フォルダには、直下に処理付フォルダが存在しないので、処理結果データ移動部２０９は、「through」フォルダの処理結果データである A-download.mht を、結果集約先パス "／poldef  ＵＲＬ関連情報入手" の直下に、移動する（ステップＳ１１１）。また、「代表語抽出  ５」フォルダについても、直下に処理付フォルダが存在しないので、処理結果データ移動部２０９は、「代表語抽出  ５」フォルダの処理結果データである A-download-parse-keyword5.txt を、結果集約先パス"／poldef  ＵＲＬ関連情報入手" の直下に、移動する（ステップＳ１１１）。
【０１００】
このように、処理付フォルダの階層的な処理によって得られた以下に示す処理結果データが、結果集約先パス"／poldef  ＵＲＬ関連情報入手" 内に集約されて格納される。
"A- download.mht" 
"A-download-parse-keyword5.txt"
"A-thumb.bmp"
【０１０１】
≪第２の実施形態≫
次に、本発明の第２の実施形態に係る処理付フォルダ実行制御装置１（１Ａ）について説明する。第２の実施形態に係る処理付フォルダ実行制御装置１Ａは、第１の実施形態に係る処理付フォルダ実行制御装置１の機能に加えて、他のフォルダ・プログラム中のフォルダの階層構造をサブルーチン（外部呼出処理）として利用することを可能にするものである。
【０１０２】
従来技術である特許文献１に記載のプログラム実行処理装置において、ユーザが他のフォルダの処理連鎖（フォルダ・プログラム）を、サブルーチン（またはモジュール）として利用する場合には、次のような課題があった。
【０１０３】
（ａ）ユーザが作成したフォルダ・プログラム（フォルダ階層による処理連鎖）をそのまま変更せず利用したい。つまり、サブルーチンを実行させるためには、一般的なプログラム言語において使われているreturn文と同様に、処理の末端にreturnフォルダを追加して作成しなければならない。このようなreturnフォルダを追加したフォルダ・プログラムを、別途用意することは冗長なため避けたい。
（ｂ）処理結果データが階層の末端である各リーフに分散されるので、returnフォルダを入れる場所が複数になる。また、処理結果データが分散して格納されるので、すべての結果を一括して戻す処理を行うためには、処理結果データを１つの場所に収集する処理が必要となり冗長となる。
【０１０４】
このような課題を解決するため、本発明の第２の実施形態に係る処理付フォルダ実行制御装置１Ａは、図３に示すような構成とした。図３は、本発明の第２の実施形態に係る処理付フォルダ実行制御装置１Ａの構成例を示す機能ブロック図である。図１に示した第１の実施形態に係る処理付フォルダ実行制御装置１との違いは、処理部２０に、外部呼出処理名称判定部２１１と外部呼出処理部２１２と呼出元フォルダ移動部２１３とをさらに備えていることである。なお、図１に示した本発明の第１の実施形態に係る処理付フォルダ実行制御装置１と同じ構成については、同一の符号を付し、説明を省略する。
【０１０５】
外部呼出処理名称判定部２１１は、処理付フォルダ名の一部が、集約処理名称でない場合に、その処理付フォルダ名に、外部呼出処理名称および呼出先名称が含まれているか否かを判定する。なお、外部呼出処理名称はサブルーチン処理を示す名称であり、呼出先名称は、そのサブルーチンの呼出先となる処理のフォルダ名を示す（詳細は後記する）。
【０１０６】
外部呼出処理部２１２は、処理付フォルダ名の一部に、外部呼出処理名称および呼出先名称が含まれている場合に、その呼出先名称から外部呼出処理の呼出先となるフォルダを特定する。そして、外部呼出処理部２１２は、その特定したフォルダに、処理対象となるデータを投入し、処理付フォルダ階層的実行処理（図２のステップＳ１０２〜Ｓ１１０）を行う。
【０１０７】
呼出元フォルダ移動部２１３は、処理付フォルダ階層的実行処理の結果ファイルを、外部呼出処理の呼出元のフォルダに移動する。
【０１０８】
（動作手順）
次に、本発明の第２の実施形態に係る処理付フォルダ実行制御装置１Ａの動作手順について、図３を参照しつつ、図４および図５を用いて詳細に説明する。図４は、本発明の第２の実施形態に係る処理付フォルダ実行制御装置１Ａによるサブルーチン処理を含んだ全体の処理の流れを示すフローチャートである。図５は、本発明の第２の実施形態に係る処理付フォルダ実行制御装置１Ａのサブルーチン処理の流れを示すフローチャートである。図２に示した処理付フォルダ実行制御装置１の処理と図４に示す処理との違いは、ステップＳ１０６の後に、その処理付フォルダ名に、外部呼出処理名称および呼出先名称が含まれているか否かを判定し（後記するステップＳ２０１）、そして、サブルーチン処理（ステップＳ２０２）を行うことである。以下、具体的に説明する。
【０１０９】
まず、図４において、ステップＳ１０１〜Ｓ１０６の処理を行い、フォルダ判定部２０４により、フォルダ名が処理付フォルダ名であり（ステップＳ１０４→Ｙｅｓ）、かつ、集約処理名称でない（ステップＳ１０６→Ｎｏ）と判定されたものとする。
【０１１０】
次に、外部呼出処理名称判定部２１１は、その処理付フォルダ名に、外部呼出処理名称および呼出先名称が含まれているか否かを判定する（図４のステップＳ２０１）。例えば、後記において例示するように、"call"が、外部呼出処理（サブルーチン）の実行を示す外部呼出処理名称であり、"ＵＲＬ関連情報入手" が呼出名称であると判定する。
【０１１１】
続いて、外部呼出処理部２１２は、処理付フォルダ名に、外部呼出処理名称および呼出先名称が含まれていると判定された場合に、その呼出先名称から外部呼出処理の呼出先となるフォルダを特定し、処理対象となるデータ（ファイル）を投入し、サブルーチン処理を実行する（ステップＳ２０２）。そして、ステップＳ１０９の処理に戻ることにより、サブルーチンの処理を行った上で、全体の処理を行う。
【０１１２】
次に、図５を用いて、図４のステップＳ２０２におけるサブルーチン処理を説明する。
【０１１３】
まず、図４のステップＳ２０１において、外部呼出処理名称判定部２１１が、その処理付フォルダ名に、外部呼出処理名称および呼出先名称が含まれていると判定すると、外部呼出処理部２１２は、その呼出先名称から外部呼出処理の呼出先となるフォルダを特定する（図５のステップＳ２０２１）。そして、外部呼出処理部２１２は、その特定したフォルダに、処理対象となるファイルを投入する（ステップＳ２０２２）。
【０１１４】
このステップＳ２０２２のファイルの投入により、処理付フォルダ階層実行処理（図２のステップＳ１０２〜Ｓ１１０）が行われ、その処理結果データ（群）が結果集約先パス（集約処理名称）の直下の格納場所に生成される（ステップＳ２０２３）。
【０１１５】
そして、呼出元フォルダ移動部２１３は、外部呼出処理（サブルーチン）の呼出元のフォルダに、その処理結果データ（群）を移動する（ステップＳ２０２４）。
【０１１６】
そして、図４のステップＳ１０９に戻り、サブルーチン処理を行ったファイルの直下に、処理付フォルダがあるか否かを判定し（ステップＳ１０９）、処理を続ける。
【０１１７】
（第２の実施形態の具体例）
次に、本発明の第２の実施形態に係る処理付フォルダ実行制御装置１（１Ａ）の処理を、具体例を用いて詳細に説明する。
【０１１８】
まず、本実施形態で利用する各処理付フォルダ名とその処理付フォルダが行う処理の具体例を、処理付フォルダの一例として説明する。
【０１１９】
・処理付フォルダ名「poldef  使ってみる１」
poldef は、本実施形態における集約処理名称であり、この集約処理名称で示される処理は、前記したlabel と同様に、入力データをそのまま受け付け、何も処理せず格納する。そして、このpoldefの処理名が付されたフォルダの直下に、最終的な処理結果データを集約して格納する処理を行う。なお、poldef は、引数として  "使ってみる１"が付されるものとする。
・処理付フォルダ名「call  ＵＲＬ関連情報入手」
call は、サブルーチン処理（外部呼出処理）を示す外部呼出処理名称であり、「ＵＲＬ関連情報入手」は、サブルーチン処理の呼出し先となるフォルダの呼出先名称である。
・処理付フォルダ名「rename  C.url」および「rename  D.url」
rename で示される処理は、入力されたファイル名を引数で与えられたファイル名に変更する。
【０１２０】
（処理内容）
次に、処理付フォルダの階層構造を利用したサブルーチン処理として、以下に示すプログラムを実行させることとして、具体的な処理を説明する。なお、ここで、入力データは、B.url として説明する。
【０１２１】
【表４】
0005438621.tif 000005
【０１２２】
まず、ユーザにより、「poldef  使ってみる１」フォルダに入力データとして、B.url が入力される（図４のステップＳ１０１）。そして、データ受付部２０３がデータを受け付ける（ステップＳ１０２）。ここでは、入力データに結果集約先パスが含まれていないので、そのままステップＳ１０４へ進む。
【０１２３】
次に、フォルダ判定部２０４は、フォルダ名の全部または一部が処理付フォルダ名であるか否かの判定を行う（ステップＳ１０４）。ここでは、フォルダ名の空白の区切りより前部分が処理付フォルダ名「poldef」であり、さらに、集約処理名称であると判定する（ステップＳ１０６→Ｙｅｓ）。
【０１２４】
続いて、結果集約先パス生成部２０５は、この時の処理付フォルダのパス "／poldef  使ってみる１" を結果集約先パスとして生成する（ステップＳ１０７）。そして、フォルダ割当処理管理部２０７および処理実行部２０８により、「poldef」に対応した処理として、その入力データ B.urlを、処理結果データとしてそのままフォルダ内に格納する（ステップＳ１０８）。
【０１２５】
次に、フォルダ判定部２０４は、フォルダ管理部２０１を介して、フォルダ情報３０１を参照し、他の処理付フォルダが「poldef  使ってみる１」フォルダの直下に存在するか判定する（ステップＳ１０９）。この場合は、「rename  C.url」と「rename  D.url」が存在する。よって、下位フォルダデータ投入部２０６が、結果集約先パス "／poldef  使ってみる１" を引数として、処理結果データ B.url を「rename  C.url」フォルダと「rename  D.url」フォルダに投入する処理を行う（ステップＳ１１０）。
【０１２６】
次に、処理結果データB.url が「rename  C.url」に投入されることにより、「rename」フォルダの処理により、入力データである B.url が、C.url に名称変更される。そして、さらに直下の「call  ＵＲＬ関連情報入手」フォルダに再投入される。
【０１２７】
[処理付フォルダ「call  ＵＲＬ関連情報入手」の処理]
「call  ＵＲＬ関連情報入手」フォルダには、入力データとして、C.url が入力される（図４のステップＳ１０２）。そして、入力データに付された結果集約先パス"／poldef  使ってみる１"を取得する（ステップＳ１０３）。
【０１２８】
次に、フォルダ判定部２０４は、フォルダ名「call  ＵＲＬ関連情報入手」の全部または一部が処理付フォルダ名であるか否かの判定を行い（ステップＳ１０４）、ここでは、フォルダ名の空白の区切りより前部分が処理付フォルダ名「call」であり、「call」は集約処理名称でないと判定する（ステップＳ１０６→Ｎｏ）。
【０１２９】
次に、外部呼出処理名称判定部２１１は、その処理付フォルダ名に、外部呼出処理名称および呼出先名称が含まれているか否かを判定する（ステップＳ２０１）。ここでは、外部呼出処理名称として call、呼出先名称として「ＵＲＬ関連情報入手」が抽出される（ステップＳ２０１→Ｙｅｓ）。
【０１３０】
続いて、外部呼出処理部２１２は、その呼出先名称「ＵＲＬ関連情報入手」から外部呼出処理の呼出先となるフォルダを特定する（図５のステップＳ２０２１）。具体的には、外部呼出処理部２１２は、「poldef  ＵＲＬ関連情報入手」を特定する。
【０１３１】
次に、外部呼出処理部２１２は、特定したフォルダ「poldef  ＵＲＬ関連情報入手」に、処理対象となるファイル C.urlを投入し（ステップＳ２０２２）、処理付フォルダ階層実行処理を行う（ステップＳ２０２３）。そして、処理結果が、以下のように、結果集約先パス"／poldef  ＵＲＬ関連情報入手" 内に、生成される。
【０１３２】
"／poldef  ＵＲＬ関連情報入手／C-download.mht"
"／poldef  ＵＲＬ関連情報入手／C-download-parse-keyword5.txt"
"／poldef  ＵＲＬ関連情報入手／C-thumb.bmp"
【０１３３】
そして、呼出元フォルダ移動部２１３は、callの処理によって、呼出元のフォルダである「call  ＵＲＬ関連情報入手」内に処理結果データを移動する（図５のステップＳ２０２４）。
【０１３４】
次に、フォルダ判定部２０４が、「call  ＵＲＬ関連情報入手」の直下に処理付フォルダがあるかを判定する（図４のステップＳ１０９）。ここでは、直下に処理付フォルダが存在しないので、処理結果データ移動部２０９が、処理結果データを、結果集約先パス"／poldef  使ってみる１" に移動する（ステップＳ１１１）。以上の処理によって、次の３つの処理結果データが作成される。
【０１３５】
"／poldef  使ってみる１／C-download.mht"
"／poldef  使ってみる１／C-download-parse-keyword5.txt"
"／poldef  使ってみる１／C-thumb.bmp"
【０１３６】
同様に、「rename  D.url」フォルダの処理により、
"／poldef  使ってみる１／D-download.mht"
"／poldef  使ってみる１／D-download-parse-keyword5.txt"
"／poldef  使ってみる１／D-thumb.bmp"
が生成され、６つの結果ファイルを得ることが可能となる。
【０１３７】
以上のように、本発明の第２の実施形態に係る処理付フォルダ実行制御装置１Ａによれば、サブルーチン処理（外部呼出処理）において、returnフォルダを用いることなく、すべての処理結果データを一括して呼出元のフォルダに戻す処理を行うことができる。
【０１３８】
≪第３の実施形態≫
次に、本発明の第３の実施形態に係る処理付フォルダ実行制御装置１（１Ｂ）について説明する。図６は、本発明の第３の実施形態に係る処理付フォルダ実行制御装置１Ｂの構成例を示す機能ブロック図である。図１に示した第１の実施形態に係る処理付フォルダ実行制御装置１との違いは、図６に示すように、処理部２０に、結果集約先パスＩＤ管理部２１４をさらに備えていること、また、記憶部３０に、結果集約先パスＩＤ情報３０４が記憶されていることである。第３の実施形態に係る処理付フォルダ実行制御装置１Ｂは、第１の実施形態に係る処理付フォルダ実行制御装置１の機能に加えて、下位のフォルダに処理結果データを投入する際に、結果集約先パスをそのものを引数として付加するのではなく、その処理付フォルダ階層実行処理ごとに結果集約先パスに固有のＩＤを生成して、そのＩＤを結果集約先パスの代わりに処理結果データの引数としてとして付与することを特徴とする。なお、図１に示した第１の実施形態に係る処理付フォルダ実行制御装置１と同じ構成については、同一の符号を付し、説明を省略する。
【０１３９】
結果集約先パスＩＤ管理部２１４は、結果集約先パス生成部２０５により、結果集約先パスが生成されると、その結果集約先パスの生成時刻と、処理付フォルダが受け付けたデータに付された、プロセス番号、ジョブ番号、若しくはスレッド番号とを含む結果集約先毎の固有のＩＤを生成する。そして、結果集約先パスＩＤ管理部２１４は、その生成したＩＤと結果集約先パスとを対応付けた結果集約先パスＩＤ情報３０４を記憶部３０に記憶する。
【０１４０】
例えば、結果集約先パスＩＤ管理部２１４は、プロセス番号（9999）と、結果集約先パスの生成時刻の時刻情報（TimeStamp：20100528t013310）を含むＩＤ（例：20100528t013310p9999）を生成する。そして、このＩＤ（20100528t013310p9999）と結果集約先パスとを対応付けて、結果集約先パスＩＤ情報３０４に記憶する。
【０１４１】
本発明の第３の実施形態に係る下位フォルダデータ投入部２０６は、フォルダに割り当てられた処理の実行結果である処理結果データを、下位のフォルダに投入する際に、その処理結果データに、引数として結果集約先パスを付与する代わりに、結果集約先パスＩＤ管理部２１４が生成したＩＤを付して、データを受け渡す。
【０１４２】
また、本発明の第３の実施形態に係る処理結果データ移動部２０９は、処理結果データの格納先となる結果集約先パスを、結果集約先パスＩＤ管理部２１４が生成したＩＤを用いて、結果集約先パスＩＤ情報３０４を参照することにより取得する。
【０１４３】
このような構成にするのは、次のような効果を得ることができるからである。
（１）結果集約先パスそのものを利用する場合に比べ、引数として渡される文字を短くすることができる。また、固定長とすることも可能となる。
（２）引数として渡される文字に空白等の特殊文字が含まれるか否かを考慮する必要がなくなる。
（３）引数として渡される文字に使用制限が規定された文字を用いる必要がなくなり、サニタイジング（文字列の入れ替え）等の手順が不要となる。
（４）複数のプログラムが連携して構築されたプログラムにおいて、複数の集約処理「poldef」フォルダを用いることが可能となるが、その場合に、処理結果データに複数の結果集約先パスを付すことが考えられる。そのような場合でも、結果集約先パスをＩＤ情報として付すことにより、データ量を減らした処理を行うようにできる。
【０１４４】
以上のように、本発明の第３の実施形態に係る処理付フォルダ実行制御装置１Ｂによれば、結果集約先パスを下位のフォルダに受け渡す際の処理負荷を低減することができる。
【０１４５】
≪本発明の実施形態の適用例１≫
本発明の第１〜３の実施形態では、集約処理名称「poldef」を用いて、処理結果データの個数や、処理結果データの格納場所、ファイル名等が、予め予測可能な例を用いて説明した。ここでは、（ａ）処理結果データが動的に複数個生成されるケース、（ｂ）処理付フォルダが受付条件を持つケース、（ｃ）フォルダ名が動的に生成されるケース、についても、本実施形態に係る処理付フォルダ実行制御装置１により適用可能であることを説明する。
【０１４６】
まず、本発明の実施形態で利用する各処理付フォルダ名とその処理付フォルダが行う処理の具体例を説明する。
【０１４７】
・処理付フォルダ名「label  ＵＲＬ関連情報入手」および「through」
前記において説明した処理と同様、入力データをそのまま受け付け、何も処理せず格納する。
・処理付フォルダ名「count-face」
count-face で示される処理は、入力画像中に存在する顔画像を判定し、その顔画像の個数を含む faces.txt を生成する。
・処理付フォルダ名「extract-face」
extract-face で示される処理は、入力画像中に存在する顔画像を判定し、顔部分を画像として抽出し、抽出した各顔画像に顔番号を付与した画像群を生成する。
・処理付フォルダ名「else」
else で示される処理は、同一階層において、他の処理付フォルダのいずれにも投入されなかった場合に、この「else」フォルダに入力データが投入される。
・処理付フォルダ名「fname-match」
fname-match で示される処理は、入力ファイル名が第１引数にマッチングする場合にのみ、ファイルを受け付ける。
【０１４８】
「extract-face」フォルダの処理では、処理結果により生成されるデータの個数の予測が難しい。また、「fname-match」フォルダや「else」フォルダでは、処理結果データが生成されること自体を予測することが難しいものである。これらの処理付フォルダを含んだ処理例について、以下に示すプログラムを実行させることとして、具体的な処理を説明する。
「入力された画像ファイルについて jpg の場合には、画像内の顔数をカウントしその結果を得る。bmp の場合には、画像内の顔画像自体を抽出する。このとき顔が複数あれば複数の画像を得る。その他のファイルの場合には、else フォルダ内に蓄積するプログラム」
【０１４９】
【表５】
0005438621.tif 000006
【０１５０】
上記の（適用例１の従来例）の場合は、bmp の場合に、何個の顔画像が生成されるかが不明であるので、その結果を例えば  call の処理により、元に戻す処理が複雑になる。
【０１５１】
【表６】
0005438621.tif 000007
【０１５２】
上記の（本発明の適用例１）のように、本発明に係る集約処理名称「poldef」を用いれば、処理結果データは、「poldef  分岐サンプル１」フォルダの直下に集約されることが分かっている。よって、その集約された処理結果データを、例えば、OUTRETURN.${TSP} というファイル内に一覧として収集することにすれば、例えば、「call  分岐サンプル」は、その処理結果データの個数や場所、動的に生成された下位フォルダのフォルダ名等に依存せず、処理結果を取得することが可能となる。
【０１５３】
≪本発明の実施形態の適用例２≫
本発明の第１〜３の実施形態では、集約処理名称「poldef」のフォルダの格納位置を示すパスを、結果集約先パス生成部２０５が結果集約先パスとして生成することにより、「poldef」フォルダの直下を、処理結果データの格納位置として設定した。
このような設定方法以外にも、ユーザが処理結果データの格納位置を指定する方法として、処理付フォルダ名に処理結果データの移動先（修正結果集約先パス）を指定することにより、その格納場所に転送するようにすることもできる。
【０１５４】
【表７】
0005438621.tif 000008
【０１５５】
上記の（本発明の適用例２）のように、「poldef」フォルダのフォルダ名に、処理結果データの転送先として ／tmp  を修正結果集約先パスとして指定する。このようにすることで、処理付フォルダ実行制御装置１の処理結果データ移動部２０９が、処理結果データを結果集約先パスに移動する代わりに、／tmp（修正結果集約先パス）に移動させることができる。ユーザが指定した格納場所に結果処理データを集めることで、ユーザは、処理結果データへのアクセスがさらに容易となる。
【０１５６】
なお、処理付フォルダに対して、引数を渡す方法は、ファイル名の一部の文字列であっても構わないし、その処理付フォルダ内に生成されたデータフォルダ内のファイルによって指示されても構わない。たとえば、「poldef」フォルダにおいて、前記した本発明の適用例２のように、「poldef  分岐サンプル２  ／tmp」と指定する方法に代えて、処理付フォルダの中に、「conf」フォルダを設け、「conf」フォルダが処理の連鎖に影響を与えないことを利用して、以下のように、設定する。
【０１５７】
【表８】
0005438621.tif 000009
【０１５８】
このようにすることで、return.cfg 内に、／tmp と記載するようにしてもよい。この場合は、詳細な引数が他の利用者から隠蔽可能になる点、ファイルシステムの文字コード制限を受けなくなる点でメリットがある。
【０１５９】
≪本発明の実施形態の適用例３≫
次に、本発明の実施形態に係る集約処理名称「poldef」を用いて、クイックソートを実行する処理について説明する。クイックソートは、中間の値を決めて、左右から入れ替えていき、分割を繰り返してソートを行うアルゴリズムである。
【０１６０】
【表９】
0005438621.tif 000010
【０１６１】
この例では、入力データとして、１行に数字が１つ書かれている行が、複数行からなるファイルを想定し、これを「poldef  qsort」フォルダに投入することで、数字のソートを実施することを示している。
まず、if  [｀sh  wc  -|  *｀  ＜  １] で、条件処理ifを用いた判定を実施する。if ではテスト条件[ ] で、UNIX（登録商標）やLinux （登録商標）のシェルshの呼出しを行い、" wc  -|  *"で、入力されたデータの行数をカウントしている。その結果が１より少ない場合に、テスト条件は真を返し、ifが成功し、その結果その下位のthrough（何もしない）が実行される。ここで、BOTTOM状態（下位に処理付フォルダが存在しない状態）と判定され、その結果は、「poldef  qsort」の結果として、呼出元の「call  qsort」に戻される。
一方、ifが偽であった場合、つまり、入力ファイルの行が複数存在した場合には、「divByPivot  pivot  left  right」によって、leftファイルとrightファイルに分割される。分割する値をpivotとするが、ここではdivByPivotが適当に（例えば、先頭行に）決定するものとし、それより小さい値を持つ行をleftファイルに、それ以上の値を持つ行をrightファイルに、各々追加作成する。ここで、生成されたleftファイルは、「fname-match  left」にマッチするので、その下位の「call  qsort」が実行され、「poldef  qsort」が再帰的に呼び出される。再帰呼出しの結果得られたファイルをleftに再度名称変更し、「link  '／poldef  qsort／DATA／concat  left  right'」によってファイルを"／poldef  qsort／DATA／concat  left  right"に投入する。rightフォルダについても同様である。
「cancat  left  right」は、合流を実現したフォルダで、leftとrightのファイルが揃った時点で、そのファイルを統合する。その結果、例えばmergeというファイルになる。さらに、「through」によって、その下位のフォルダに入る。ここでBOTTOM状態と判定され、その結果が呼出元の「call  qsort」に戻される。
以上より、「poldef」フォルダを用いて、クイックソートを実行することができる。
【０１６２】
以上のように、本発明に係る処理付フォルダ実行制御方法、処理付フォルダ実行制御装置およびプログラムによれば、処理付フォルダ実行制御装置１が処理した処理結果データを、集約して格納することができる。このことにより、ユーザは、処理結果データを得るため、下位の処理付フォルダまでアクセスする必要がなくなる。１箇所に集約されて処理結果データが格納されるため、アクセス回数を低減することができる。また、たとえ処理付フォルダで動的にフォルダ名が生成されても、処理結果データの格納場所が予測可能なため、処理結果データへのアクセスが容易となる。さらに、サブルーチン処理（外部呼出処理）もretaurnフォルダ等の設定をすることなく、容易に利用することができる。つまり、ユーザにとって好適なプログラミング環境を提供することができる。
【符号の説明】
【０１６３】
１，１Ａ，１Ｂ  処理付フォルダ実行制御装置
１０    入出力部
２０    処理部
３０    記憶部
２０１  フォルダ管理部
２０２  データ出力部
２０３  データ受付部
２０４  フォルダ判定部
２０５  結果集約先パス生成部
２０６  下位フォルダデータ投入部
２０７  フォルダ割当処理管理部
２０８  処理実行部
２０９  処理結果データ移動部
２１０  全体制御部
２１１  外部呼出処理名称判定部
２１２  外部呼出処理部
２１３  呼出元フォルダ移動部
２１４  結果集約先パスＩＤ管理部
３０１  フォルダ情報
３０２  名称管理ＤＢ
３０３  プログラム記憶部
３０４  結果集約先パスＩＤ情報
【図１】
0005438621.tif 000011
【図２】
0005438621.tif 000012
【図３】
0005438621.tif 000013
【図４】
0005438621.tif 000014
【図５】
0005438621.tif 000015
【図６】
0005438621.tif 000016
【図７】
0005438621.tif 000017
【図８】
0005438621.tif 000018