(57)【特許請求の範囲】
【請求項１】
任意のコンピュータ上で動作する所定のアプリケーションプログラムに対するオペレータ操作の実行順序を、当該所定のアプリケーションプログラムの実行中に前記任意のコンピュータもしくは当該任意のコンピュータにネットワークを介して接続された他のコンピュータの表示装置に提示する方法であって、
前記任意のコンピュータもしくは当該任意のコンピュータにネットワークを介して接続された他のコンピュータが、
入力装置から入力された前記所定のアプリケーションプログラムの操作の集合および当該所定のアプリケーションプログラムにおける目標状態から可到達状態の集合を求め、記憶装置に出力して記憶させる可到達状態導出ステップと、
入力装置から入力された前記所定のアプリケーションプログラムの現在の状態と、記憶装置に記憶された可到達状態の集合とを参照して、入力装置から入力された前記所定のアプリケーションプログラムの操作の集合から、前記現在の状態において前記目標状態に到達し得る操作のみを要素とする次に実行すべき操作候補の集合を求め、表示装置に出力して表示する操作候補提示ステップとを実行する
ことを特徴とするオペレータ操作の動的ナビゲーション方法。
【請求項２】
請求項１記載の操作候補提示ステップは、
入力装置から所定のアプリケーションプログラムの現在の状態および操作の集合が入力される第１のステップと、
次に実行すべき操作候補の集合を空集合に設定する第２のステップと、
前記操作の集合から操作を１つ取り出し、前記現在の状態から実行可能かどうかを判定する第３のステップと、
実行可能な操作に対しその操作の効果に基づいて実行後の状態を求める第４のステップと、
前記実行後の状態が記憶装置に記憶された可到達状態の集合に含まれるかどうかを判定する第５のステップと、
前記実行後の状態が可到達状態の集合に含まれる場合に前記取り出した操作を操作候補の集合に追加する第６のステップとを少なくとも含む
ことを特徴とするオペレータ操作の動的ナビゲーション方法。
【請求項３】
コンピュータに請求項１または２記載の各ステップを実行させるためのプログラム。
【請求項４】
任意のコンピュータ上で動作する所定のアプリケーションプログラムに対するオペレータ操作の実行順序を、当該所定のアプリケーションプログラムの実行中に前記任意のコンピュータもしくは当該任意のコンピュータにネットワークを介して接続された他のコンピュータの表示装置に提示する装置であって、
前記任意のコンピュータもしくは当該任意のコンピュータにネットワークを介して接続された他のコンピュータ上に設けられた次の装置、即ち
可到達状態の集合を記憶するための記憶装置と、
入力装置から入力された前記所定のアプリケーションプログラムの操作の集合および当該所定のアプリケーションプログラムにおける目標状態から可到達状態の集合を求め、記憶装置に出力して記憶させる前処理装置と、
入力装置から入力された前記所定のアプリケーションプログラムの現在の状態と、記憶装置に記憶された可到達状態の集合とを参照して、入力装置から入力された前記所定のアプリケーションプログラムの操作の集合から、前記現在の状態において前記目標状態に到達し得る操作のみを要素とする次に実行すべき操作候補の集合を求め、表示装置に出力して表示する操作候補提示装置とを備えた
ことを特徴とするオペレータ操作の動的ナビゲーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレータが計算機端末を介した対話形式処理によって複数種類のデータ項目の値を入力・変更する所定のアプリケーションプログラム（業務アプリケーション）において、入力・変更するオペレータ操作の実行順序を該対話形式処理の中で適切に提示・制限する技術に関する。
【背景技術】
【０００２】
企業は、事業活動における業務の複雑化に伴い、ＩＴ化によって業務効率を高める試みを行っている。業務は、「誰がどのような操作をどのような順番で行うか」という観点で規定できる。一般的には業務マニュアルとしてこの規約を定め、これに従ってオペレータは業務を進めていた。しかしながら、事業の拡大などによるこの規約の複雑化は、オペレータに対して業務マニュアルの熟知を強要するものになり、雇用状況（良質な人材確保の困難化、研修や雇用期間の短縮化など）を鑑みると、企業活動の大きな障害となる。
【０００３】
これを解決するために、「操作に対する実行権限の管理」、「操作の（半）自動化」および「操作の順番の制御」を業務アプリケーションに担わせることが考えられる。オペレータがこのような業務アプリケーションを使って業務を進めた場合、業務アプリケーションは、実行可能な操作を順次提示し、さらに各操作も可能な限り自動で処理する。このように対話的な業務アプリケーションを構築することで、業務知識の少ないオペレータでも業務アプリケーションの提示に従って効率良く業務を進めることが可能になる。
【０００４】
＜従来技術＞
上記対話的処理を行う業務アプリケーションを開発するツールの１つとしてフレキシブルプロセス制御エンジンが提案されている（非特許文献１、２参照）。フレキシブルプロセス制御エンジンの特徴の１つは「操作の順番の制御」を動的なナビゲーションによって実現する点である。動的なナビゲーションとは、業務を完了させるために、次に実行しなければならないオペレータ操作の候補を現状の業務の進捗に応じてオペレータに提示することを指す。
【０００５】
フレキシブルプロセス制御エンジンは、この動的ナビゲーションを実現するために、プランナと呼ばれる問題解決器を保持する。プランナは人工知能分野のプランニング問題と呼ばれる探索問題に対する解探索コンピュータプログラムである（非特許文献３参照）。
【０００６】
プランナを利用する場合、業務アプリケーションの対象領域の状態空間に対して、各操作を実行する場合の前提条件と、その操作の実行後に状態に与える効果を予め定義しておき、さらに対象領域の初期状態（業務の進捗における現在の状態）と目標状態（業務終了の状態）を指定する。この操作（前提条件・効果）の集合と、初期状態と、目標状態との組をプランニング問題と呼ぶ。これらをプランナに与えると、初期状態から目標状態に至る操作順序（プラン）を求めることができる。
【０００７】
フレキシブルプロセス制御エンジンは、プランナを利用して、前提条件が初期状態に合致している実行可能な操作の中から目標状態へ到達可能な全ての操作を求める機能を具備する。この機能によって求めた操作を操作候補と呼ぶことにする。
【０００８】
この操作候補を求める機能を利用して業務アプリケーションを開発すれば、オペレータに対する前記の動的なナビゲーションを容易に実現することができる。具体的には次のような処理方式で、動的なナビゲーションを実現できる。
【０００９】
(1)オペレータが行った実操作によって変化した業務アプリケーションの状態をフレキシブルプロセス制御エンジンに通知する。
【００１０】
(2)フレキシブルプロセス制御エンジンに、通知された状態における操作候補の集合を求めさせる。
【００１１】
(3)求めた操作候補の集合をオペレータに提示し、集合の中から実際に行う操作を選択・実行させる。
【００１２】
この(1)から(3)の処理を業務終了まで繰り返す。
【００１３】
このとき、(2)の操作候補の集合を求める機能は、複数回プランニング問題を解くことにより実現される（非特許文献２の図２参照〉。ある実行可能な操作が操作候補であることを判定するには、その操作を実行した後の状態においてプランが存在することを調べる必要がある。よって、操作候補の集合は、(1)で通知された状態から実行可能な操作の数だけプランニング問題を解くことで求めることができる。
【非特許文献１】野末、中島、大石、増田、山村、「プランニングと制約充足を利用した業務の多様性に対応する制御技術」、電子情報通信学会第４３回テレコミュニケーションマネージメント研究会、信学技報、Ｖｏｌ．１０６、Ｎｏ．６００、２００６、ｐｐ．７１−７６、
【非特許文献２】H. Nozue, H. Nakajima, H. Oishi, T. Masuda, and T. Yamamura, "Process Control Technique Using Planning and Constraint Satisfaction", In Proc. of the 10th Asia-Pacific Network Operations and Management Symposium (APNOMS 2007), LNCS, Vol.4773, 2007, pp. 62-71.
【非特許文献３】インターネット＜ＵＲＬ：http://www.cs.rochester.edu/u/kautz/satplanfblackbox/index.html＞
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、上記の処理方式では、業務アプリケーションの実行速度に関して課題が生じる。
【００１５】
前述したように、現状のフレキシブルプロセス制御エンジンが求める操作候補の集合は、プランナによってプランを求めることで実現される。このプランを求めるときの計算量は、対象領域の状態の数に比例することが知られている。上記処理方式では、オペレータが業務アプリケーションを使用しているとき、その操作毎に(2)の処理が実行される。このため、大規模な業務を対象とする業務アプリケーションでは、オペレータが操作を行ってから、オペレータに操作候補を提示するまでの応答に時間がかかり、その応答性が悪化することになる。
【課題を解決するための手段】
【００１６】
このため、本発明では、前処理として目標状態への可到達状態の集合を求めることで、業務アプリケーションの実行中は業務アプリケーションの状態数に対して対数オーダーの計算量で操作候補を求めることを可能とする動的ナビゲーションの処理方式を実現する。
【００１７】
「可到達状態」とは、目標状態へ到達可能な状態のことである。よって、ある状態が可到達状態であれば、その状態から目標状態に到達するプランが必ず存在することになる。フレキシブルプロセス制御エンジンが扱うプランニング問題は、図１に示すように、有限状態遷移システムにおける初期状態から目標状態への遷移列を求める問題と考えることができる。図１における可到達状態を図２に示す。
【００１８】
ある状態が可到達状態であることと、その状態から目標状態へのプランが存在することとは同義である。よって、従来技術の操作候補の集合を求める処理において、プランニング問題を解いていた部分は、事前に可到達状態の集合を求めておけば、状態がその可到達状態の集合に含まれるか否かを判定する処理に置き換えることができる。
【００１９】
この方式により、コンピュータを用いてオペレータ操作の実行順序を求めて提示する方法を図３，４に従って説明する。
【００２０】
まず、業務アプリケーションの実行前に、前処理として目標状態への可到達状態の集合を求める可到達状態導出ステップは図３のように実行する。
【００２１】
業務アプリケーションに対して予め定義されているプランニング問題の操作（前提条件・効果）の集合および目標状態が入力装置からコンピュータに入力される（図３；ｓ１）と、これらから可到達状態の集合Ｒを求め（図３；ｓ２）、これを記憶装置に出力して記憶させる（図３；ｓ３）。
【００２２】
図３；ｓ２の可到達状態の集合Ｒを求める処理を実現する技術としては、J. R. Burch, E. M. Clarke, K. L. McMillan, D. L. Dill, and J. Hwang, "Symbolic model checking: 10E20 states and beyond", In proc. of The International Conference on Logic in Computer. Science, 1990などが知られており、これらを利用することができる。図３の処理は、その業務アプリケーションに変更がない、即ち操作（前提条件・効果）の集合および目標状態が変更されない限り、ただ一度だけ行えば良い。
【００２３】
次に、業務アプリケーションの実行中に、オペレータに提示する操作候補の集合を求める操作候補提示ステップは図４のように実行する。
【００２４】
まず、業務アプリケーションの（現在の）状態ｓと、当該業務アプリケーションに対して予め定義されているプランニング問題の操作の集合Ｏとが入力装置からコンピュータに入力される（図４；ｓ１１）と、次に実行すべき操作候補の集合Ｃを空集合に設定する（図４；ｓ１２）。
【００２５】
次に、操作の集合Ｏから操作を１つ取り出し（図４；ｓ１３）、その操作ｏが前記状態ｓで実行可能かどうかを判定する（図４；ｓ１４）。実行不能であればｓ１３の処理に戻り、実行可能であれば状態ｓから操作ｏを実行した後の状態ｓ’を求め（図４；ｓ１５）、さらにその状態ｓ’が記憶装置に記憶された可到達状態の集合Ｒに含まれるかどうか調べる（図４；ｓ１６）。含まれていなければｓ１３の処理に戻り、含まれていれば操作ｏを操作候補の集合Ｃに追加する（図４；ｓ１７）。
【００２６】
図４；ｓ１３から図４；ｓ１７までの処理を全ての操作に対して、即ち操作の集合Ｏから操作ｏを取り除いた集合が空集合となるまで行い（図４；ｓ１８）、得られた操作候補の集合Ｃを表示装置に出力して表示する（図４；ｓ１９）。
【００２７】
従来技術においては、図４；ｓ１６の処理がプランを求める処理となり、この処理は状態数に対して比例する計算量が必要であった。しかしながら、本発明の可到達状態の集合Ｒに状態ｓ’が含まれていることの判定は、可到達状態の集合Ｒを二分決定木やＯｒｄｅｒｅｄ  Ｂｉｎａｒｙ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍ（R. E. Bryant, "Graph-based algorithms for boolean function manipulation", IEEE Transactions on Computers, C-35(8), pp.677-691.参照）などのデータ構造で表現することで、集合Ｒの状態数に対して対数オーダーの計算量で判定可能な手法が知られている。これによって、従来技術よりもアプリケーションの応答性を高め、動的なナビゲーションを行うことができる。
【発明の効果】
【００２８】
本発明によれば、フレキシブルプロセス制御技術を用いて構築された業務アプリケーションにおいて、実行中のプロセスナビゲーションを従来技術よりも高速に行うことができ、業務アプリケーションの応答性が向上させることが可能になる。
【発明を実施するための最良の形態】
【００２９】
図５は本発明のオペレータ操作の動的ナビゲーション方法を実施する装置の一例、ここでは周知のコンピュータ上に実現した例を示すもので、図中、１は入力装置、２は表示装置、３はコンピュータである。
【００３０】
入力装置１は、キーボード、マウス等からなり、コンピュータ３に所定の情報、ここではプランニング問題や業務アプリケーションの状態を入力するためのものである。表示装置２は、液晶ディスプレイ、ＣＲＴ等画像表示装置からなり、コンピュータ３の所定の処理結果、ここでは操作候補の集合を提示するためのものである。
【００３１】
コンピュータ３は、図３乃至図４に示した処理フローに対応する所定のプログラムに従い、各装置を制御するとともに、この際、記憶装置４、前処理装置５、操作候補提示装置６を構成する。
【００３２】
記憶装置４は、前処理装置５から出力される可到達状態の集合を記憶し、操作候補提示装置６の求めに応じてその情報を提示する。
【００３３】
前処理装置５は、図３に示した可到達状態導出ステップに従い、入力装置１から入力された業務アプリケーションに対して予め定義されているプランニング問題の操作（前提条件・効果）の集合および目標状態から可到達状態の集合を求め、それを記憶装置４に出力して記憶させる。
【００３４】
操作候補提示装置６は、図４に示した操作候補提示ステップに従い、入力装置１から入力された業務アプリケーションの現在の状態と、記憶装置４に記憶された可到達状態の集合とを参照して、入力装置１から入力された前記業務アプリケーションに対して予め定義されているプランニング問題の操作（前提条件・効果）の集合から次に実行すべき操作候補の集合を求め、表示装置２に出力して表示する。
【００３５】
本装置により、フレキシブルプロセス制御技術により構築された業務アプリケーションにおいて、実行中のプロセスナビゲーションを従来技術よりも高速に行うことができ、業務アプリケーションの応答性が向上させることが可能になる。
【００３６】
なお、前述した実施の形態では、記憶装置４、前処理装置５、操作候補提示装置６をコンピュータ上で実現した例を示したが、ハードウェアで実現しても良い。またこれら各装置が、適切な通信路で相互に接続された複数のハードウェア上に分散して存在し、相互に通信し合いながら実行することもできる。
【実施例１】
【００３７】
本発明による動的ナビゲーションついて例を挙げて説明する。
【００３８】
まず、業務アプリケーションに対して以下のようなプランニング問題が定義されているとする。但し、ここでは業務アプリケーションの状態は、Ｉｎ−１，Ｉｎ−２，Ｉｎ−３の項からなる集合で表現されるものとする。
【００３９】
初期状態  ｛｝
目標状態  ｛Ｉｎ−１，Ｉｎ−２，Ｉｎ−３｝
操作      ａｃｔ１（前提条件なし，効果Ｉｎ−１）
ａｃｔ２（前提条件¬Ｉｎ−３，効果Ｉｎ−２）
ａｃｔ３（前提条件Ｉｎ−１，効果Ｉｎ−３）
ａｃｔ４（前提条件Ｉｎ−２，Ｉｎ−３，効果Ｉｎ−１）
なお、「¬」は「否定」を表す。
【００４０】
ある操作ｏが（現在の）状態ｓに対して実行可能であるとは、
●操作ｏの前提条件に出現する全ての項が状態ｓの項の集合の要素となっている、
かつ、
●操作ｏの前提条件に出現する全ての否定の項が状態ｓの項の集合の要素になっていない、
という条件を満たす場合のことを言う。
【００４１】
前者の条件は、例えば状態｛Ｉｎ−１｝において操作ａｃｔ３は実行できるが、操作ａｃｔ４は実行できないことを意味している。後者の条件は、状態｛Ｉｎ−１｝の場合には操作ａｃｔ２が実行可能で、状態｛Ｉｎ−３｝の場合には操作ａｃｔ２は実行できないことを意味している。
【００４２】
ある状態ｓから操作ｏが実行可能であるとき、操作ｏの効果に基づいて状態ｓを更新することができる。ここでは以下のように状態が更新される。
【００４３】
●操作ｏの効果に出現する全ての項を、状態ｓの項の集合に追加する、
●操作ｏの効果に出現する全ての否定の項を、状態ｓの項の集合から取り去る。
【００４４】
前者の更新では、例えば状態｛Ｉｎ−１｝から操作ａｃｔ２を実行後の状態は、効果のＩｎ−２が追加され、｛Ｉｎ−１，Ｉｎ−２｝となることを意味している。一方、後者は、状態｛Ｉｎ−１｝から効果¬Ｉｎ−１を持つ操作を実行すると、状態は｛｝となることを意味している。
【００４５】
この定義のもとで、前記プランニング問題の状態遷移システムは図１に示すようになる。
【００４６】
本発明では、業務アプリケーションの実行前、例えば業務アプリケーションの作成時に、前記プランニング問題の操作の集合および目標状態を入力装置１から入力し、前処理装置５により図２に示す可到達状態の集合を求め、記憶装置４に記憶させておく。
【００４７】
次に、実際にオペレータが業務アプリケーションを操作しているときの動的ナビゲーション、つまり操作候補の集合の提示の例を示す。
【００４８】
例えば、現在の業務アプリケーションの状態が図１における初期状態｛｝で、オペレータが、その状態からａｃｔ１に対応する操作を業務アプリケーション上で実行したとする。すると業務アプリケーションの状態は｛Ｉｎ−１｝に遷移する。このとき、業務アプリケーションは状態の遷移に対して、遷移後の状態｛Ｉｎ−１｝とプランニング問題の操作の集合を本発明の入力装置１より入力する。これにより、本発明の操作候補提示装置６は、図４の操作候補提示ステップに従い、求める操作候補の集合の初期値として空集合を設定する（図４；ｓ１２）。
【００４９】
次に、入力された操作ａｃｔ１，ａｃｔ２，ａｃｔ３，ａｃｔ４から１つ、例えば操作ａｃｔ２を取り出し、該操作ａｃｔ２が実行可能かを判定する（図４；ｓ１３，ｓ１４）。
【００５０】
ａｃｔ２の前提条件は¬Ｉｎ−３で実行可能であるため、操作ａｃｔ２実行後の状態｛Ｉｎ−１，Ｉｎ−２｝を求める（図４；ｓ１５）。そして、記憶装置４に記憶されている可到達状態の集合（図２）を参照し、状態｛Ｉｎ−１，Ｉｎ−２｝がその集合に含まれるかどうかを判定する（図４；ｓ１６）。
【００５１】
今、この状態は可到達状態の集合に含まれるため、操作ａｃｔ２を操作候補の集合に追加する（図４；ｓ１７）。これを残りの操作ａｃｔ１，ａｃｔ３，ａｃｔ４に対して実行する。この場合、操作ａｃｔ２以外に操作候補の集合への追加はなく、結果として操作候補の集合は｛ａｃｔ２｝となり、これを表示装置１に出力して表示する。
【００５２】
このように、オペレータは表示された操作候補の集合から操作を選択して業務アプリケーションを実行していくことができる。
【図面の簡単な説明】
【００５３】
【図１】プランニング問題の状態遷移システムの一例を示す説明図
【図２】図１の状態遷移システムにおける可到達状態を示す説明図
【図３】本発明のオペレータ操作の動的ナビゲーション方法の可到達状態導出ステップの処理フローを示す図
【図４】本発明のオペレータ操作の動的ナビゲーション方法の操作候補提示ステップの処理フローを示す図
【図５】本発明のオペレータ操作の動的ナビゲーション装置の実施の形態の一例を示す構成図
【符号の説明】
【００５４】
１：入力装置、２：表示装置、３：コンピュータ、４：記憶装置、５：前処理装置、６：操作候補提示装置。
【図１】
0004959599.tif 000002
【図２】
0004959599.tif 000003
【図３】
0004959599.tif 000004
【図４】
0004959599.tif 000005
【図５】
0004959599.tif 000006