(57)【要約】      （修正有）【課題】効率的にワークフローを作成、編集する情報処理装置を提供する。【解決手段】ワークフロー編集アプリケーションは、ワークフローに配置された新たなノードより前に配置済みのワークフローを構成する配置済みノードと配置済みノードの入力文書とを含むノード情報を検索クエリとして送信しＳ９０４、検索クエリに対応する検索結果として受信した複数のノード情報に基づいて、新たなノードと配置済みノードとの組み合わせが適切か否か判定しＳ９０８、適切でないと判定された場合、配置済みノードが新たなノードとの組み合わせとして適切でないノードである可能性がある旨を表示するＳ９０９。【選択図】図９
2018181057.tif 000002
【特許請求の範囲】
【請求項１】
ワークフローに配置された新たなノードより前に配置済みの前記ワークフローを構成する配置済みノードと前記配置済みノードの入力文書とを含むノード情報を検索クエリとし、前記検索クエリを送信する送信手段と、
前記検索クエリに対応する検索結果として受信した複数のノード情報に基づいて、前記新たなノードと前記配置済みノードとの組み合わせが適切か否かを判定する第１の判定手段と、
前記第１の判定手段で適切でないと判定された場合、前記配置済みノードが前記新たなノードとの組み合わせとして適切でないノードである可能性がある旨を表示する表示手段と、
を有し、
前記送信手段により送信される前記検索クエリは、前記ワークフローに配置済みの複数のノードそれぞれについて生成される情報処理装置。
【請求項２】
前記表示手段は、前記配置済みノードが適切でない可能性があることを示すマークを表示することで、適切でないノードである可能性がある旨を表示する請求項１記載の情報処理装置。
【請求項３】
前記表示手段は、前記配置済みノードが適切でない可能性があることを示すメッセージを表示することで、適切でないノードである可能性がある旨を表示する請求項１又は２記載の情報処理装置。
【請求項４】
前記受信した複数のノード情報に基づいて、前記新たなノードと前記配置済みノードとの組み合わせにおいて、出現頻度の高い他のノードが存在するか否かを判定する第２の判定手段と、
前記第２の判定手段により存在すると判定された場合、前記表示手段は、前記出現頻度の高い他のノードを前記ワークフローに追加するノードの候補として表示する請求項１乃至３何れか１項記載の情報処理装置。
【請求項５】
前記新たなノードのプロパティに基づき、前記ワークフローに配置済みの複数のノードのうち、確認すべき配置済みノードを決定し、前記送信手段により送信される前記検索クエリは、前記確認すべき配置済みノードそれぞれについて生成される請求項１乃至４何れか１項記載の情報処理装置。
【請求項６】
前回確認を行ったノードの確認を行わない設定がされているか否かに基づき、前記ワークフローに配置済みの複数のノードのうち、確認すべき配置済みノードを決定し、前記送信手段により送信される前記検索クエリは、前記確認すべきノードそれぞれについて生成される請求項１乃至５何れか１項記載の情報処理装置。
【請求項７】
前記検索クエリを送信するか否かを判定する第３の判定手段を更に有し、
前記第３の判定手段により前記検索クエリを送信すると判定された場合、前記送信手段は、前記検索クエリを送信する請求項１乃至６何れか１項記載の情報処理装置。
【請求項８】
前記第３の判定手段は、前記新たなノードが前記ワークフローの特定のノードである場合、前記検索クエリを送信すると判定する請求項７記載の情報処理装置。
【請求項９】
前記第３の判定手段は、前記新たなノードが配置されたことにより前記ワークフローのノード数が一定数を超えた場合、前記検索クエリを送信すると判定する請求項７記載の情報処理装置。
【請求項１０】
前記第３の判定手段は、前記新たなノードが配置され、ユーザーが明示的に確認を実行するよう指示した場合、前記検索クエリを送信すると判定する請求項７記載の情報処理装置。
【請求項１１】
情報処理装置が実行する情報処理方法であって、
ワークフローに配置された新たなノードより前に配置済みの前記ワークフローを構成する配置済みノードと前記配置済みノードの入力文書とを含むノード情報を検索クエリとし、前記検索クエリを送信する送信工程と、
前記検索クエリに対応する検索結果として受信した複数のノード情報に基づいて、前記新たなノードと前記配置済みノードとの組み合わせが適切か否かを判定する第１の判定工程と、
前記第１の判定工程で適切でないと判定された場合、前記配置済みノードが前記新たなノードとの組み合わせとして適切でないノードである可能性がある旨を表示する表示工程と、
を含み、
前記送信工程で送信される前記検索クエリは、前記ワークフローに配置済みの複数のノードそれぞれについて生成される情報処理方法。
【請求項１２】
コンピュータを、請求項１乃至１０何れか１項記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
ワークフローシステム（ジョブフローシステム）は、ワークフローを構成するノードに設定された処理（例えば、イメージ文書に対する画像処理やＰＤＦ変換等）を順番に遂行する。ワークフローは、ワークフロー編集アプリケーション等を用いて、複数のノードが配置され、ノードを組み合わせることで作成される。特許文献１には、ワークフローを作成、編集するときに、ユーザーが新しく配置したノード（特許文献１ではタスクと表記）に対して、そのノードに入力されるデータが不足しているかどうかチェックを行う方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−４７８６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１では、配置したノードに入力されるデータを出力する直前のノードについてチェックを行うのみである。すなわち、特許文献１では、ワークフローを構成する全体のノード（直前以外のノードを含む複数のノード）に対して、新しく配置したノードと組み合わせて使用するにあたって適切かどうかチェックが行われない。そのため、実際にワークフローを動作させてみるまでワークフロー全体として適切な組み合わせでノードを配置したかどうか分からず、効率的にワークフローを作成、編集することができなかった。
【課題を解決するための手段】
【０００５】
本発明は、ワークフローに配置された新たなノードより前に配置済みの前記ワークフローを構成する配置済みノードと前記配置済みノードの入力文書とを含むノード情報を検索クエリとし、前記検索クエリを送信する送信手段と、前記検索クエリに対応する検索結果として受信した複数のノード情報に基づいて、前記新たなノードと前記配置済みノードとの組み合わせが適切か否かを判定する第１の判定手段と、前記第１の判定手段で適切でないと判定された場合、前記配置済みノードが前記新たなノードとの組み合わせとして適切でないノードである可能性がある旨を表示する表示手段と、を有し、前記送信手段により送信される前記検索クエリは、前記ワークフローに配置済みの複数のノードそれぞれについて生成される、ことを特徴とする。
【発明の効果】
【０００６】
本発明によれば、効率的にワークフローを作成、編集することができる。
【図面の簡単な説明】
【０００７】
【図１】情報処理システムのシステム構成の一例を示す図である。
【図２】クライアントのハードウェア構成の一例を示す図である。
【図３】サーバーのハードウェア構成の一例を示す図である。
【図４】レコメンドサーバーのソフトウェア構成等の一例を示す図である。
【図５】ワークフローサーバーのソフトウェア構成等の一例を示す図である。
【図６】クライアントのソフトウェア構成等の一例を示す図である。
【図７】ワークフローの実行に係る情報処理の一例を示すフローチャートである。
【図８】ワークフローの情報の一例を示す図である。
【図９】ノードの確認を行う情報処理の一例を示すフローチャートである。
【図１０】ワークフロー編集アプリケーションの画面の一例を示す図である。
【図１１】ノード情報及びノード情報一覧の一例を示す図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜実施形態１＞
本実施形態においては複数の処理を連結した処理をワークフローと呼び、連結される個々の処理をノードと呼ぶものとする。
図１は、情報処理システムのシステム構成の一例を示す図である。本システムはネットワーク１００を介して接続されるクライアント１０１と、レコメンドサーバー１０２と、ワークフローサーバー１０３と、から構成される。ネットワーク１００は各装置間で通信を行うための基盤であって、イントラネット、インターネット若しくはその他のネットワークシステムであってもよい。
クライアント１０１は、ローカルなＩＰアドレスで管理されていてもよい。その場合、ネットワーク１００とクライアント１０１との間にゲートウェイが存在し、ゲートウェイはアドレス変換を行う。例えばゲートウェイにはルーターが含まれる。また、ゲートウェイやクライアント１０１がファイアウォール機能を備えていてもよい。
レコメンドサーバー１０２は、ワークフローサーバー１０３に格納されているコンテンツから抽出したキーワードやコンテンツのメタデータを当該コンテンツの格納先情報と関連付けてＤＢに格納する機能を有する。コンテンツとは、ワークフローとワークフローに属するノードとの設定、ワークフロー実行時の入力文書、ワークフローの実行結果、等を指す。更に、レコメンドサーバー１０２は、そのＤＢの情報とクライアント１０１から受信した情報とを比較することで当該受信した情報と類似するコンテンツを検索し、類似コンテンツ情報群を列挙する機能を有する。
ワークフローサーバー１０３は、ワークフローを実行する機能と、コンテンツを保存する機能と、を有する。
【００１０】
図２は、クライアント１０１のハードウェア構成の一例を示す図である。クライアント１０１は、ハードウェア構成として、ＣＰＵ２０１、ＲＡＭ２０２、記憶装置２０３、ネットワーク装置２０４、入出力Ｉ／Ｆ２０５、メインバス２００を有する。ＣＰＵ２０１は、クライアント１０１の全体を制御する。ＲＡＭ２０２は、ＣＰＵ２０１がプログラムに基づき処理を実行する際のワークエリアを提供する。記憶装置２０３は、クライアント上で動作するプログラム、設定情報等を記憶する。ネットワーク装置２０４は、他機器とネットワーク１００による通信を行う。入出力Ｉ／Ｆ２０５は、例えばＰＳ／２、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ  Ｉ／Ｆ）、アナログ、デジタルのディスプレイＩ／Ｆを備える。入出力装置２０６は、キーボードやマウス、ＣＲＴや液晶ディスプレイであり、入出力Ｉ／Ｆ２０５を介してクライアント１０１と接続することができる。ＣＰＵ２０１がメインバス２００を介してＲＡＭ２０２、記憶装置２０３、ネットワーク装置２０４、入出力Ｉ／Ｆ２０５を制御する。
ＣＰＵ２０１が記憶装置２０３に記憶されたプログラムに基づき処理を実行することによって、後述する図６のクライアント１０１のソフトウェア構成及び図９のクライアント１０１に係るフローチャートの処理が実現される。
【００１１】
図３は、レコメンドサーバー１０２及びワークフローサーバー１０３等のサーバーのハードウェア構成の一例を示す図である。サーバーは、ハードウェア構成として、ＣＰＵ３０１、ＲＡＭ３０２、記憶装置３０３、ネットワーク装置３０４、メインバス３００を有する。ＣＰＵ３０１は、サーバーの全体を制御する。ＲＡＭ３０２は、ＣＰＵ３０１がプログラムに基づき処理を実行する際のワークエリアを提供する。記憶装置３０３は、サーバー上で動作するプログラム、設定情報等を記憶する。ネットワーク装置３０４は、他機器とネットワーク１００による通信を行う。ＣＰＵ３０１がメインバス３００を介してＲＡＭ３０２、記憶装置３０３、ネットワーク装置３０４、入出力Ｉ／Ｆ３０５を制御する。
レコメンドサーバー１０２のＣＰＵ３０１がレコメンドサーバー１０２の記憶装置３０３に記憶されたプログラムに基づき処理を実行することによって、後述する図４のレコメンドサーバー１０２のソフトウェア構成等が実現される。また、レコメンドサーバー１０２のＣＰＵ３０１がレコメンドサーバー１０２の記憶装置３０３に記憶されたプログラムに基づき処理を実行することによって、後述する図９のレコメンドサーバー１０２に係るフローチャートの処理が実現される。
また、ワークフローサーバー１０３のＣＰＵ３０１がワークフローサーバー１０３の記憶装置３０３に記憶されたプログラムに基づき処理を実行することによって、後述する図５のワークフローサーバー１０３のソフトウェア構成等が実現される。また、ワークフローサーバー１０３のＣＰＵ３０１がワークフローサーバー１０３の記憶装置３０３に記憶されたプログラムに基づき処理を実行することによって、後述する図７のフローチャートの処理が実現される。
【００１２】
図４は、レコメンドサーバー１０２のソフトウェア構成等の一例を示す図である。レコメンドサーバー１０２は、ソフトウェア構成として、通信部４０１、クローラー部４０２、クロール結果処理部４０３を有する。また、レコメンドサーバー１０２は、ソフトウェア構成として、リクエスト受付処理部４０４、コンテンツ検索制御部４０５、キーワード抽出部４０６、コンテンツ検索部４０７、コンテンツ情報ＤＢ部４０８を有する。
クローラー部４０２は、通信部４０１を介して、定期的にワークフローサーバー１０３に格納されているコンテンツを収集する。ここでいうコンテンツとは、ワークフローサーバー１０３の後述するコンテンツ保存部５０３に保存されたワークフローの各ノード情報（ノードに関わる情報、入力文書）を含む。ノード情報の詳細は後述する。これらのコンテンツは、新規に実行されたワークフローを対象に収集が行われる。また、クローラー部４０２は、レコメンドサーバー１０２の構成外に存在してもよい。レコメンドサーバー１０２の構成外に存在する場合、クローラー部４０２は、ワークフローサーバー１０３から収集した情報を、レコメンドサーバー１０２へリクエストとして送信する。そして、収集された情報は、リクエスト受付処理部４０４を介して、クロール結果処理部４０３に渡される。
クロール結果処理部４０３は、クローラー部４０２から受け取ったコンテンツを、キーワード抽出部４０６に渡し、レスポンスとして、コンテンツから抽出したキーワード（コンテンツの特徴情報）を受け取る。そして、クロール結果処理部４０３は、抽出キーワードとコンテンツ格納先情報とを関連付けて、コンテンツ情報ＤＢ部４０８に保存する。
【００１３】
一方、リクエスト受付処理部４０４は、通信部４０１を介して、クライアント１０１から、関連コンテンツの検索リクエストを受け付ける。リクエストで受信する検索クエリとして、ワークフローのノードと入力文書等とを受け取ることができる。また、リクエスト受付処理部４０４は、後述するコンテンツ検索制御部４０５が処理したレコメンド結果を、クライアント１０１にレスポンスとして送信する処理も行う。
コンテンツ検索制御部４０５は、リクエスト受付処理部４０４が受信したクエリデータを、キーワード抽出部４０６に渡し、レスポンスとして、クエリデータから抽出したキーワード（クエリデータの特徴情報）を受け取る。更に、コンテンツ検索制御部４０５は、抽出したキーワードとノードの情報を使用して、コンテンツ検索部４０７を介して、コンテンツ情報ＤＢ部４０８に格納されている類似コンテンツを検索する。
キーワード抽出部４０６は、コンテンツからキーワード情報を抽出する処理を行う。このとき、キーワード抽出部４０６は、コンテンツ内のすべての単語をキーワードとして抽出してもよいし、特徴的な単語をキーワードと抽出してもよい。また、キーワード抽出部４０６は、コンテンツ内の図形や構成を読み取り、関係のあるキーワードを発行してもよい。更に、キーワード抽出部４０６は、キーワードの出現回数や予め設定した計算式により、キーワードに対する重み付け情報を算出してもよい。
コンテンツ検索部４０７は、受け取ったキーワード等の情報を使用してコンテンツ情報ＤＢ部４０８からコンテンツ情報を検索する処理を行う。このとき、コンテンツ検索部４０７は、キーワードに一致するキーワード・メタデータ数を使用して類似度値を算出し、一定の閾値を超えた類似度値のコンテンツ情報を類似コンテンツとして返す。
コンテンツ情報ＤＢ部４０８は、ワークフローサーバー１０３から収集したコンテンツに関する情報が格納されている。コンテンツ情報として、"ＩＤ"、"コンテンツ名"、"コンテンツ格納先"、"コンテンツ抽出キーワード"、"コンテンツメタデータ"の少なくとも一つの情報が格納されている。
【００１４】
図５は、ワークフローサーバー１０３のソフトウェア構成等の一例を示す図である。
ワークフローサーバー１０３は、ソフトウェア構成として、通信部５０１、コンテンツ処理部５０２、コンテンツ保存部５０３を有する。
コンテンツ処理部５０２は、通信部５０１を介して、クライアント１０１やレコメンドサーバー１０２からリクエストを受け付ける。受け付けるリクエストの種類は、コンテンツ保存部５０３へのコンテンツ格納要求やコンテンツ保存部５０３に保存されているコンテンツの取得要求等である。また、コンテンツ処理部５０２は、受け付けたリクエストに従い、コンテンツ保存部５０３へコンテンツを保存したり、コンテンツ保存部５０３からコンテンツを取得したりする。更に、コンテンツ処理部５０２は、コンテンツ保存部５０３に保存されたワークフローを実行し、その結果をコンテンツ保存部５０３へ保存する。コンテンツ処理部５０２によるワークフロー実行に係る情報処理に関しては、図７を用いて後述する。
コンテンツ保存部５０３は、コンテンツ処理部５０２の指示に従い、ワークフローとワークフローに属するノードとの設定、ワークフロー実行時の入力文書データ、ワークフローの実行結果等を保持する役割を果たす。
【００１５】
図６は、クライアント１０１のソフトウェア構成等の一例を示す図である。
クライアント１０１は、ソフトウェア構成として、関連コンテンツ検索アプリケーション６００、ワークフロー編集アプリケーション６０４を有する。
関連コンテンツ検索アプリケーション６００は、通信部６０１、処理部６０２、入出力部６０３を有する。
処理部６０２は、通信部６０１を介して、レコメンドサーバー１０２及びワークフローサーバー１０３と通信を行う。また、処理部６０２は、入出力部６０３を介してワークフロー編集アプリケーション６０４からコンテンツ情報を取得する。そして、処理部６０２は、取得したコンテンツ情報を、通信部６０１を介してレコメンドサーバー１０２に送信し、そのレスポンスとして検索結果を、通信部６０１を介して受け取る。最後に、処理部６０２は、入出力部６０３を介して、受け取った検索結果をワークフロー編集アプリケーション６０４に出力する処理を行う。
入出力部６０３は、ワークフロー編集アプリケーション６０４との情報の入出力処理を行う。
【００１６】
ワークフロー編集アプリケーション６０４は、ユーザーの入力によってノードを配置・設定することで、ワークフローを作成、編集するアプリケーションである。ワークフロー編集アプリケーション６０４は、処理部６０５、入出力部６０６を有する。
処理部６０５は、ワークフロー編集時のノード配置処理や関連コンテンツ検索アプリケーション６００から受け取った検索結果のチェック処理等を行う。
入出力部６０６は、関連コンテンツ検索アプリケーション６００との情報の入出力処理を行う。
ワークフロー編集アプリケーション６０４、及びの関連コンテンツ検索アプリケーション６００の詳細と一連の情報処理に関しては、図９、及び図１０を用いて後述する。
【００１７】
図７と図８とを用いて、ワークフローサーバー１０３のコンテンツ処理部５０２によるワークフローの実行を説明する。図７は、コンテンツ処理部５０２によるワークフローの実行に係る情報処理の一例を示すフローチャートである。図８は、コンテンツ処理部５０２はコンテンツ保存部５０３から取得するワークフローの情報と、コンテンツ保存部５０３に保存するワークフローの情報と、を説明するための図である。
Ｓ７０１において、コンテンツ処理部５０２は、コンテンツ保存部５０３に保存されているワークフローの起動条件を確認する。ワークフローの起動条件は、例えば、設定されたフォルダーに新しくファイルが格納されたこと、設定された時刻になったこと、設定されたデバイスで紙原稿を電子文書として読み取り開始されたこと等の条件を含む。
Ｓ７０２において、コンテンツ処理部５０２は、Ｓ７０１において起動条件を満たすワークフローがあったかどうかを確認する。起動条件を満たすワークフローが存在すれば以降の処理がそのワークフローを対象に実行される。即ち、コンテンツ処理部５０２は、起動条件を満たすワークフローが存在すると判定すると、Ｓ７０３に進み、起動条件を満たすワークフローが存在しないと判定すると、Ｓ７０１に戻る。
Ｓ７０３において、コンテンツ処理部５０２は、コンテンツ保存部５０３から起動条件を満たしたワークフローの情報を取得する。より具体的には、コンテンツ処理部５０２は、図８（Ａ）のようにワークフロー８０１を取得する。
Ｓ７０４において、コンテンツ処理部５０２は、コンテンツ保存部５０３からワークフローの入力文書を取得する。より具体的には、コンテンツ処理部５０２は、図８（Ａ）のようにワークフロー８０１に入力する入力文書８０２を取得する。ワークフローに入力される文書としては、複合機でスキャンして作成したイメージ文書データやＰＤＦ文書データ、クライアントの任意のアプリケーションで作成したテキストデータ等が使用される。
【００１８】
Ｓ７０５において、コンテンツ処理部５０２は、ワークフローの各ノードに設定された処理をそれぞれのノードの入力文書に対して実行する。より具体的には、コンテンツ処理部５０２は、Ｓ７０４で取得した入力文書８０４に対して、図８（Ｂ）の各ノードに対応する処理を先頭のノードから順に実行する。この入力文書８０４とは、ワークフローの先頭のノード８０３においてはワークフロー実行時の入力文書８０２と同じものであり、それ以外のノードにおいては、前のノードの処理によって得られた文書である。各ノードに設定される処理は、例えば、イメージ文書に対する傾き補正やノイズ除去処理、光学文字認識による所定領域の文字列抽出処理、ファイル形式の変換処理、ファイルサーバーへの格納といった処理を含む。各ノードにはこれらのノードに設定された処理を識別するためのノード処理名が与えられている。ノード８０３以降のノードの入力文書は各ノードが処理した結果の文書が保持され、その文書が入力文書として使用される。
Ｓ７０６において、コンテンツ処理部５０２は、Ｓ７０５で実行したノードとその入力文書とを関連付けてノード情報８０５としてコンテンツ保存部５０３へ保存する。より具体的には、コンテンツ処理部５０２は、図８（Ｂ）のノード８０３の情報と入力文書８０４の情報とをノード情報８０５として紐付けて保存する。ノード情報には、入力文書８０４以外にノード８０３の情報として、ノードを一意に特定するためのノードＩＤ、ノード処理名、ノード表示名、ノードのプロパティを含む。更に、ノード情報８０５は、ノードが属するワークフローの情報（その他のノードＩＤ、その他のノードのノード処理名、ノード表示名等）を含む。
Ｓ７０７において、コンテンツ処理部５０２は、ワークフローの終端ノードの処理を完了したかどうかを判定する。コンテンツ処理部５０２は、ワークフローの終端ノードの処理を完了したと判定した場合、図７に示すフローチャートの処理を終了し、ワークフローの終端ノードの処理を完了していないと判定した場合、Ｓ７０５に戻って次のノードの処理を実行する。
【００１９】
図７と図８とで示された一連の処理でワークフローをノードに分けてコンテンツ保存部５０３に保存する。このことで、レコメンドサーバー１０２のクローラー部４０２は、ノード情報８０５（ノードとその入力文書）ごとにクロール結果をコンテンツ情報ＤＢ部４０８に保存する。コンテンツ情報ＤＢ部４０８に保存されたワークフローの各ノード情報８０５は、レコメンドサーバー１０２が類似ノード情報を検索する際に使用される。この検索、及び検索結果は、後述するワークフロー編集アプリケーション６０４でのワークフロー作成、編集時にノードごとに類似ノード情報を検索する際に使用される。
図９は、ワークフロー編集アプリケーション６０４が、ユーザーが新しく配置したノードより前に配置した複数のノードの確認を行う情報処理の一例を示すフローチャートである。ワークフロー編集アプリケーション６０４は、新しく配置したノードより前に配置したノードが、新しく配置したノードと組み合わせて使用するにあたって適切かどうか、前に配置したノードに関連するコンテンツの検索を行う。そして、ワークフロー編集アプリケーション６０４は、その検索結果を用いてノードの確認を行う。ワークフロー編集アプリケーション６０４が、関連コンテンツの検索と確認とを、前に配置したノード１つ１つに対して順に行う。ユーザーが新しいノードを配置したところから処理の詳細を説明する。
【００２０】
Ｓ９０１において、ワークフロー編集アプリケーション６０４は、ユーザーが新しく配置したノードとそのノードが使用する入力文書とを取得する。ワークフロー編集アプリケーション６０４は、それ以前に配置されたノードの情報は、ワークフローの作成過程でユーザーが配置した時点で取得を行い、保持しているものとする。より具体的には、ワークフロー編集アプリケーション６０４は、図１０のワークフロー編集アプリケーションの画面１００１において、ユーザーがノード一覧１００２からワークフロー編集領域１００３に新しくノード１００８を配置した場合に、ノード１００８の情報とノード１００８への入力文書１０１２との情報を取得する。合わせて、ワークフロー編集アプリケーション６０４は、それ以前に配置したノード１００４、１００５、１００６と入力文書１００９、１０１０、１０１１とを取得する。ノード１００４、１００５、１００６は、それぞれ配置済みノードの例である。入力文書１００９、１０１０、１０１１は、それぞれ配置済みノードの入力文書の例である。入力文書１０１０はノード１００４が出力した文書、入力文書１０１１はノード１００５が出力した文書、入力文書１０１２はノード１００６が出力した文書であり、それぞれワークフローサーバー１０３が仮実行して取得した結果である。ワークフローの最初のノードで使用する入力文書１００９は、ワークフロー作成時にこのワークフローで使用するサンプル入力文書を予めユーザーが指定している。また、ワークフロー編集アプリケーション６０４は、途中経過の入力文書１０１０、１０１１を画面に表示しないことも可能である。
Ｓ９０２において、ワークフロー編集アプリケーション６０４は、Ｓ９０１で取得した新しく配置したノード、及びワークフローの状態の確認を行う。ワークフロー編集アプリケーション６０４は、確認では、特定のノード（ワークフローの終端に使用されるノード等）を配置したかどうか、配置したノード数が一定数を超えたかどうか、ユーザーが明示的に確認を実行するよう指示したかどうか、それぞれ確認する。そして、ワークフロー編集アプリケーション６０４は、それぞれ確認条件を満たしているか確認を行う。また、後述する適切ではないノードであることを画面に表示した結果に対して、ユーザーが適切ではないノードの入れ替えを行った場合、ワークフロー編集アプリケーション６０４は、その新しく配置したノードに対して適切かどうかの確認を行う必要はない。そのため、このノードの入れ替え操作を行った場合、ワークフロー編集アプリケーション６０４は、確認を行う条件を満たさないこととする。例えば、ワークフロー編集アプリケーション６０４は、図１０の画面１００１において、新しくノード１００８が配置され、ユーザーが検索開始に係る所定の操作を行ったことを検知した場合、ユーザーが明示的に確認を実行するよう指示したと判断する。Ｓ９０２の処理は、ワークフローを構成するノードのうち、確認すべきノードを決定する処理の一例である。
Ｓ９０３において、ワークフロー編集アプリケーション６０４は、Ｓ９０２の確認の結果、確認を行う条件を満たしている場合、Ｓ９０４に進み、確認を行う条件を満たしていない場合、図９に示すフローチャートの処理を終了する。ワークフロー編集アプリケーション６０４は、上述した確認条件を全て満たした場合、確認を行う条件を満たしていると判定してもよいし、何れか任意の２つの組み合わせの条件を満たしている場合、確認を行う条件を満たしていると判定してもよい。また、ワークフロー編集アプリケーション６０４は、上述した確認条件のうち、何れか１つの条件を満たしている場合、確認を行う条件を満たしていると判定してもよい。
【００２１】
Ｓ９０４において、ワークフロー編集アプリケーション６０４は、関連コンテンツ検索アプリケーション６００を使用して、レコメンドサーバー１０２に検索リクエストを送信する。このとき、ワークフロー編集アプリケーション６０４は、Ｓ９０１で取得した以前に配置したノードの中から１つ前のノードとその入力文書とを使用して検索クエリを生成し、送信する。より具体的には、ワークフロー編集アプリケーション６０４は、図１０の現在編集中のワークフローにおいて、ユーザーが新しく配置したノード１００８より１つ前のノード１００６とその入力文書１０１１とを検索クエリとして、検索を行う。以降に説明するＳ９０５〜Ｓ９１４までの処理を実施後にＳ９０４に戻ってＳ９０４の処理を実行する場合、ワークフロー編集アプリケーション６０４は、更に１つ前のノードであるノード１００５とその入力文書１０１０とを検索クエリとして、検索を行う。このように、ワークフロー編集アプリケーション６０４は、１つ前のノードとその入力文書とを検索クエリとして検索を行う処理を順に１つ前のノードにさかのぼって実施し、検索を行うたびに後述する確認を行う。
【００２２】
Ｓ９０５において、レコメンドサーバー１０２は、受信した検索クエリデータ（例えば、１つ前のノード１００６とその入力文書１０１１）を使用して、コンテンツ情報ＤＢ部４０８から関連するノード情報を検索する。レコメンドサーバー１０２は、１つ前のノード１００６と同じノードであり、かつ、入力文書１０１１に類似する文書を処理対象としているノードを検索することになる。
Ｓ９０６において、レコメンドサーバー１０２は、Ｓ９０５で実行した検索の結果として、ノード情報とその類似度値とをクライアント１０１の関連コンテンツ検索アプリケーション６００に送信する。ここで、レコメンドサーバー１０２から送信される検索結果のノード情報は、類似度の高いものから順に所定数送信されるものとする。ワークフロー編集アプリケーション６０４は、送信した検索クエリに対応する検索結果とその類似度値とを、関連コンテンツ検索アプリケーション６００を介して受信する。
【００２３】
Ｓ９０７において、ワークフロー編集アプリケーション６０４は、関連コンテンツ検索アプリケーション６００から受け取った検索結果の複数のノード情報の中から、ユーザーが新しく配置したノード１００８を含むノード情報を抽出する。各ノード情報には、そのノードの情報だけでなく、そのノードが属するワークフローの情報として、属するワークフローを構成するその他のノードに関する情報も含まれている。そのため、ワークフロー編集アプリケーション６０４は、検索結果のノード情報の中から、その他のノードに関する情報として当該新しく配置したノード１００８を含んでいるノード情報を抽出する。
Ｓ９０８において、ワークフロー編集アプリケーション６０４は、Ｓ９０７で抽出したノード情報の中に、Ｓ９０６における検索結果の類似度値が所定の閾値以上のノード情報が存在するか否かを判定し、存在しないと判定した場合、Ｓ９０９に進む。類似度値が閾値以上のノード情報がない場合、他のワークフローで同様の組み合わせで使用していないと考えられる。つまり、ノード１００６とノード１００８とは適切な組み合わせではない可能性が高い。また、ワークフロー編集アプリケーション６０４は、Ｓ９０７で取得したノード情報の中に検索結果の類似度値が所定の閾値以上のノード情報が存在するとＳ９０８で判定した場合、閾値以上のノード情報のみに対象を絞り込んで、Ｓ９１０に進む。Ｓ９０６〜Ｓ９０８の処理により、１つ前のノード１００６とその入力文書１０１１とに対して所定の閾値以上の類似度となったノード情報であって、かつ、該ノード情報内に含まれている他のノードに関する情報として新しく配置したノード１００８が含まれているノード情報があると判定されるので、他のワークフローでも同様の組み合わせで使用していると考えられる。つまり、ノード１００６とノード１００８とは適切な組み合わせである可能性が高い。なお、本実施形態では、ワークフロー編集アプリケーション６０４が、Ｓ９０８で所定の閾値以上の類似度値を有するノード情報に絞り込みを行ったが、この手順に限るものではない。レコメンドサーバー１０２がＳ９０６で検索結果を送信する際に該所定の閾値以上の類似度値を有するノード情報のみ送信するような形態にしてもよい。
【００２４】
これらの一連の処理に関して、図１１を用いてより具体的に説明する。ユーザーが新しく配置したノード１１０１が特定のファイルサーバーへの格納処理を実行するノード、その前のノード１１０２がＰＤＦ変換処理を実行するノード、そのノードの入力文書１１０３が仕様書だった場合を例に記載する。ワークフロー編集アプリケーション６０４は、ユーザーが新しくノードを配置した後に、ノード１１０２（ＰＤＦ変換処理）とその入力文書１１０３（仕様書関連）とを含むノード情報１１０４を検索クエリとして、レコメンドサーバーに検索を依頼する。ワークフロー編集アプリケーション６０４は、検索結果として、ノード１１０２（ＰＤＦ変換処理）とその入力文書１１０３（仕様書関連）とに類似する複数のノード情報についての一覧１１０５を検索結果として受信する。ワークフロー編集アプリケーション６０４は、ノード情報の一覧１１０５の各ノード情報に含まれるその他のノードに関する情報１１０６、１１０７、１１０８を確認する。そして、ワークフロー編集アプリケーション６０４は、特定のファイルサーバーへの格納処理を実行するノード１１０１と同様のノードがその他のノードに関する情報の中に含まれているノード情報を、検索結果の中から抽出する。抽出した検索結果の中に類似度値が閾値以上のノード情報が存在する場合、あるファイルサーバーへの格納する状況において、仕様書をＰＤＦ変換する処理を他のワークフローでも使用していると考えられる。そのため、ノード１１０２（ＰＤＦ変換処理）とノード１１０１（特定のファイルサーバーへの格納処理を実行するノード）とを組み合わせて使用することは適切である可能性がある。その反対に、抽出した検索結果の中に類似度値が閾値以上のノード情報が存在しない場合、特定のファイルサーバーへの格納する状況において、仕様書をＰＤＦ変換する処理を他のワークフローでは使用していないと考えられる。そのため、ノード１１０２（ＰＤＦ変換処理）とノード１１０１（特定のファイルサーバーへの格納処理を実行するノード）とを組み合わせて使用することは適切ではない可能性がある。
【００２５】
Ｓ９０９において、ワークフロー編集アプリケーション６０４は、以前に配置したノード１００６は新しく配置したノード１００８と組み合わせて使用するにあたって適切でない可能性があることを入出力装置２０６の画面１００１に表示する。ワークフロー編集アプリケーション６０４は、対象のノード上（図１１の例ではノード１１０２上）に適切ではない可能性があることを示す特定のマーク（△や※等）を表示する。ワークフロー編集アプリケーション６０４は、マーク表示とあわせて、適切でない可能性があることを示すメッセージを表示してもよい。また、ワークフロー編集アプリケーション６０４は、マークは表示せず、適切でない可能性があることを示すメッセージだけを表示するようにしてもよい。
Ｓ９１０において、ワークフロー編集アプリケーション６０４は、以前に配置したノード１００６と新しく配置したノード１００８とを使用している他のワークフローの中で、出現頻度の高いその他のノード（同時によく使用されているノード）が存在するか確認を行う。Ｓ９０８で絞り込まれた複数のノード情報それぞれには、そのノードの情報だけでなく、そのノードが属するワークフローの情報として、属するワークフローのその他のノードに関する情報も含まれている。そのため、ワークフロー編集アプリケーション６０４は、その他のノードに関する情報の中に、出現頻度が所定の値より高いノードがあるか確認を行う。
Ｓ９１１において、ワークフロー編集アプリケーション６０４は、Ｓ９１０の確認の結果に基づき、出現頻度が所定値より高いノードが存在するか否か判断し、存在する場合、Ｓ９１２に進み、存在しない場合、Ｓ９１３に進む。
Ｓ９１２において、ワークフロー編集アプリケーション６０４は、その出現頻度の高いノードに関する情報（すなわち、同時によく使用されているノードの情報）を、ワークフロー編集アプリケーションの画面１００１に表示する。すなわち、他のワークフローでノード１００６及びノード１００８と組み合わせてよく使用されている他のノードがある場合、そのノードは、現在作成中又は編集中のワークフローにおいても有用なノードである可能性がある。そのため、ワークフロー編集アプリケーション６０４は、そのノードを、組み合わせてよく使用されている有用なノードとして、画面に候補表示する。より具体的には、ワークフロー編集アプリケーション６０４は、図１０のワークフロー編集領域１００３に有用なノードに関する情報を表示する。ユーザーは、表示されたノードを選択、配置することでワークフローにノードを追加することも可能である。有用なノードは、ワークフローに追加するノードの候補の一例である。なお、有用なノードに関する情報の表示位置は、ワークフロー編集領域１００３に限るものではなく、ノード一覧１００２の上部や下部に識別可能に表示するようにしてもよい。
【００２６】
Ｓ９１３において、ワークフロー編集アプリケーション６０４は、以前に配置したノード１００６よりさらに１つ前のノードで確認するべきノードが存在するか確認を行う。まず、ワークフロー編集アプリケーション６０４は、新しく配置したノード１００８のプロパティにいくつ前のノードまで確認を行うか設定されているか確認を行う。例えば、新しく配置したノード１００８のプロパティに確認を行うノードは２つ前のノードまでという設定がされていた場合、ノード１００５より前のノードの確認は行わないため、他に確認するべきノードは存在しないこととなる。
次に、ワークフロー編集アプリケーション６０４は、新しく配置したノードのプロパティに前回確認を行ったノードの確認を行わない設定がされているか確認を行う。前回確認を行ったノードの確認を行わない設定となっていた場合、ワークフロー編集アプリケーション６０４は、ノード１００６より前のノードが、前回新しくノードを配置したときに図９のフローチャートの処理において確認したノードかどうか確認を行う。ノード１００４、ノード１００５が過去に既に確認済みのノードであった場合、他に確認するべきノードは存在しないこととなる。新しく配置したノードと以前に確認したノードとの組み合わせを毎回確認する場合、ワークフロー編集アプリケーション６０４は、この設定をオフにする。以前に確認が行われているノードに対して新しく配置したノードとの組み合わせの確認を行わない場合、ワークフロー編集アプリケーション６０４は、この設定をオンにする。
本実施形態では、ワークフロー編集アプリケーション６０４は、新しく配置したノード１００８のプロパティと、前回確認を行ったノードの確認を行うか否かの設定と、に基づいて、確認すべきさらに１つ前のノードが存在するか否かを判定した。しかしながら、ワークフロー編集アプリケーション６０４は、何れか一方のみに基づき、確認すべき１つ前のノードが存在するか否かを判定するようにしてもよい。
【００２７】
Ｓ９１４において、ワークフロー編集アプリケーション６０４は、Ｓ９１３の確認の結果、確認するべきさらに１つ前のノードが存在するか否かを判定する。ワークフロー編集アプリケーション６０４は、確認するべきさらに１つ前のノードが存在する場合、そのノードのノード情報を使用して、Ｓ９０４〜Ｓ９１４を再度実行する。より具体的には、ワークフロー編集アプリケーション６０４は、以前のノード１００５と入力文書１０１０とを使用して検索を行い、検索結果を基に確認を実行する。ワークフロー編集アプリケーション６０４は、確認するべき以前のノードが存在する分だけ、そのノードごとにそのノードと入力文書とを使用して確認を行う。確認するべきノードが存在しない場合、ワークフロー編集アプリケーション６０４は、図９に示すフローチャートの処理を終了する。
新しく配置したノードと以前に配置したノードとを個別に確認することで、新しく配置したノードと組み合わせて使用するのに適切なノードかどうか確認を行うと共に、不足しているノードがないか確認を行うことができる。その結果、効率的にワークフローを作成、編集することができる。
【００２８】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００２９】
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
例えば、上述した装置のソフトウェア構成の一部又は全てをハードウェアとして装置に実装してもよい。また、上述した各装置は、１つのＣＰＵが記憶装置に記憶されたプログラムに基づき処理を実行するものとして説明を行った。しかし、各装置は、複数のＣＰＵや複数のメモリ、ＨＤＤ等を有していてもよい。そして、複数のＣＰＵがプログラムに基づき、複数のメモリやＨＤＤ等を使用しながら処理を実行するようにしてもよい。
【符号の説明】
【００３０】
１０１  クライアント
１０２  リコメンドサーバー
１０３  ワークフローサーバー
２０１  ＣＰＵ
３０１  ＣＰＵ
【図１】
2018181057.tif 000003
【図２】
2018181057.tif 000004
【図３】
2018181057.tif 000005
【図４】
2018181057.tif 000006
【図５】
2018181057.tif 000007
【図６】
2018181057.tif 000008
【図７】
2018181057.tif 000009
【図８】
2018181057.tif 000010
【図９】
2018181057.tif 000011
【図１０】
2018181057.tif 000012
【図１１】
2018181057.tif 000013