JP4911594B2 - 対話形式処理における入力値及び入力操作の提示・制限方法、並びにその装置 - Google Patents

対話形式処理における入力値及び入力操作の提示・制限方法、並びにその装置 Download PDF

Info

Publication number
JP4911594B2
JP4911594B2 JP2006302754A JP2006302754A JP4911594B2 JP 4911594 B2 JP4911594 B2 JP 4911594B2 JP 2006302754 A JP2006302754 A JP 2006302754A JP 2006302754 A JP2006302754 A JP 2006302754A JP 4911594 B2 JP4911594 B2 JP 4911594B2
Authority
JP
Japan
Prior art keywords
input
value
constraint
values
presenting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006302754A
Other languages
English (en)
Other versions
JP2008123022A (ja
Inventor
健 増田
中島  一
晴夫 大石
晴久 野末
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2006302754A priority Critical patent/JP4911594B2/ja
Publication of JP2008123022A publication Critical patent/JP2008123022A/ja
Application granted granted Critical
Publication of JP4911594B2 publication Critical patent/JP4911594B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • User Interface Of Digital Computer (AREA)

Description

本発明は、オペレータが計算機端末を介した対話(形式)処理によって複数種類のデータ項目の値を入力・変更するシステムにおいて、複数のデータ項目の値同士が既定の整合性を維持すること等を目的として、入力・変更される値及び入力・変更する操作の実行順序を該対話処理の中で適切に提示・制限する技術に関する。
業務システムのIT化に伴い、オペレータの業務習熟度に対する要件は急速に厳しくなりつつある。ここでの要件とは、オペレータの対応能力(対象業務の複雑化・多様化への適応性、作業自体の迅速性・正確性、臨機応変なフロー変更の許容性、他の部署との連携の綿密性など)を指す。その一方で、社会的要因により、オペレータの習熟度向上に際しての外部状況(規模の増大による良質な人材確保の困難化、研修期間・雇用期間の短期化など)は一層厳しくなりつつある。このような状勢下において、業務システムの対話処理上でオペレータの負荷を軽減し、能力を支援する機能は特に重要である。このような観点から、代表的な背景技術として4件(ミドルウェア分野から2件、問題解決器分野から2件)を挙げる。
(ミドルウェア・ワークフローエンジン)
従来より、ワークフローエンジンやそれを適用して開発されたワークフロー管理システム(WFMS)において、条件分岐や合流などを含むワークフロー記述として予め指定した通りに対話処理を実行する機能が実現されている。一般に、データ項目の値同士が既定の整合性を維持するような入力操作を複数段階に亘って行う際、無駄なやり直しを少なくするという観点でヒューリスティック(経験則的)に最適とされる入力順序が存在する。上記対話機能によって、このような最適な順序に従った進め方となるように、システムがオペレータに対して次の操作を提示・制限する処理(公知例1)が実現されている(非特許文献1参照)。
(ミドルウェア・ビジネスルールエンジン)
また、従来より、ビジネスルールエンジンやそれを適用して開発されたビジネスルール管理システム(BRMS)において、複数のデータ項目の値に対するIF−THENルールを実行する機能が実現されている。この機能によって、値の整合性をチェックする、あるいは整合性を維持するための値の伝播を行う、あるいは所定の操作の実行を禁止する、あるいは当該の対話処理場面で推奨される操作を提示する、等の処理が一般に実現されている(非特許文献2参照)。
(問題解決器・制約ソルバ)
また、従来より、複数のデータ項目の値同士が満たすべき整合性を、制約条件として予め定義しておき、データ項目が取り得る値の侯補を指定することで、それら候補の中から整合性を満たす値の組み合わせを列挙するコンピュータプログラムとして「制約ソルバ(または制約充足ソルバ)」と呼ばれるものが、一般に実現されている。
制約ソルバは、前掲の対話処理への適用はまだ一般的ではないが、処理対象領域が整合性に関して複雑な構造を有する場合については既に広く用いられている。なお、制約ソルバとしては、フリーで利用可能なものや商用で利用可能なものなど複数存在し、例えば、Cream、iZ−C(非特許文献3参照)、ILOG Solver、Chocoなどがある。
(問題解決器・プランナー)
また、従来より、ある操作を実行するに際しての事前条件と事後条件を、操作の種類毎に予め定義しておき、それら操作の対象領域について初期状態と目標状態を指定することで、初期状態から目標状態に至る操作の順序を求めるコンピュータプログラムとして「プランナー」と呼ばれるものが、一般に実現されている(非特許文献4参照)。
プランナーは、実用的なシステムへの適用技術として、まだ一般的ではないが、専門性の高い問題領域の計画立案システムや、複数のサービスの連携処理の技術分野における動作原理の検証やプロトタイプシステムの開発等の手段として、既に使われ始めている。
K.Tayama, T.Maruyama, H.Uno, and T.Inoue, "An Operation Support System Architecture for Network Provisioning of Optical Access Networks", IEEE NOMS2002, Florence Italy, S24.1, April 2002, pp.829-842 "ILOG JRules 6"、[online]、アイログ株式会社、[平成18年10月26日検索]、インターネット<URL:http://www.ilog.co.jp./products/jrules/whatsnew/index.cfm> "iZ:Constraint Programing 制約プログラミング入門"、[online]、株式会社NTTデータセキスイシステムズ、[平成18年5月29日検索]、インターネット<URL:http://www.isac.co.jp/iz/tutorial.html> A.Gerevini and D.Long, "Plan Constraints and Preference in PDDL3", Technical Report, Department of Electronics for Automation, University of Brescia, Italy, Augsut 2005 <URL:http://cs-www.cs.yale.edu/homes/dvm/papers/pddl-ipc5.pdf> 増田 健、他「柔軟なシステムを実現するプロセス制御技術」NTT技術ジャーナル、第18巻、第9号、2006年9月、pp.50−54 H.Oishi, T.Nakatani, K.Tayama, S.Ogasawara, T.Yamamura, "OSS Architecture for Flexible and Efficient Process Control", IEEE NOMS2006, April 2006, pp.1-13
(ミドルウェア・ワークフローエンジンの問題)
一般に、オペレータとの複数段階に及ぶ対話処理を経て、トランザクション単位で処理を遂行する業務システムが多く存在する。対話処理の流れが単純な場合、即ちシステム開発時に処理の流れの分岐を全て列挙することが容易で、フロー記述として定義できる場合は、ワークフローエンジンが有効である。
しかしながら、対話処理の流れが複雑な場合には、処理の流れの分岐数が指数関数的に多くなるために全て列挙することが困難で、フロー記述として定義することが現実的でなくなってしまうという問題がある。近年、業務システムの多様化に従い、このような場合が増えており、特に、データ項目の値同士が既定の整合性を維持するような入力操作を複数段階に亘って行うような業務、例えば、設備選定、旅行予約、人員配置計画、スケジューリング、などのリソース割り当て問題(=制約充足問題)を扱う業務では、この傾向が顕著である。
また、リソース割り当て問題に限らず、処理順序の自由度が本来的に高い業務システムでは、外部的要因により処理の実行順序に部分的に制限がつく場合がある。例えば、変数V1が予め定められた値以上になるならば、処理A1を実行しなければならないという制限がつく場合、あるいはまた、処理A2を実行するためには、別の処理A3を先行して実行していなければならない場合、等である。このような場合に、本来の処理順序の自由度を失うことなく、これら部分的制限を満足するような順序を、ワークフロー記述として予めシステムに与えることは、同じようにパターン数が指数関数的に多くなるために現実的ではないという問題がある。
一方、一般に、リソース割り当てに際し、無駄なやり直しを少なくするという観点でヒューリスティック(経験則的)に最適とされる入力順序が存在する。実際的観点から、トランザクションのうちの多くの割合がこれらの順序で実行されるようにワークフローを作成し、例外的なフローのトランザクションをシステムで扱わない形で開発する方針が考えられるが、意図したような効率化を達成できない場合がある。なぜならば、これらヒューリスティックは処理対象となるリソースの種類と量の配分、並びに制約の内容に大きく依存するため、想定した条件から外れると有効に働かないからである。そのため、処理対象が多様で長期間・複数回に亘って業務が行われる場合には、例外的なフローの発生は避けられないという問題がある。特に、部門問のシステム連携が広く行われる等により、フローのステップ数やリードタイムが長く、やり直しコストが高いなどの状況が広まると、この問題によって起こる非効率性が、全体の業務の効率を平均的に落としてしまうため、システム運用上の大きな障害となる。
(ミドルウェア・ビジネスルールエンジンの問題)
上記問題を解決する手段として、ビジネスルールエンジンを使用することが考えられる。ビジネスルールエンジンはワークフロー記述と異なり、複雑な条件判断に基づいた変数値の変更や処理の起動が可能となる。
しかしながら、ビジネスルールエンジンにおけるIF−THENルールの処理内容が、意図した通りの整合性維持を行うかどうか確認・修正する作業は、一般に複雑で膨大になる。特に、システムが大規模になるとルールの間違いが生じ易い。その要因は、データ項目の値が他のルールによって、対話処理中の任意の時点で別の値に上書きされる可能性があること、並びにルールの優先順位によって、上書きの発生する順序が異なってくるために、最終的な結果も異なってくる等、IF−THENルールの処理動作の特徴に由来している。即ち、当該処理動作を整合性保証のしくみとしてみた場合、ルール記述上に表現された通りに、最終的なデータの整合性が担保されないために、動作の確認・修正の作業が複雑になる。また、ルールの実行順序の全ての順列組み合わせについて実際に動作をシミュレートする必要があり、考慮すべき場合の数が指数関数的に増大するために、動作の確認・修正の作業が膨大になる。以上の理由により、ルールの作成とデバッグが難しいという問題がある。
(問題解決器・制約ソルバの問題)
上記問題を解決する手段として、制約ソルバを使用することが考えられる。制約ソルバはIF−THENルールと異なり、制約条件として与えた整合性が、途中の処理経過に関係なく、最終的に得られる解において満たされることが保証される。但し、制約ソルバの基本的な動作は、制約条件と変数を一括して与えるとそれを満足する解を列挙する形の関数型動作であるために、対話処理にそのまま適用することはできない。そこで、例えば、対話処理においてオペレータから入力された値を、同値制約や非同値制約や不等号制約等の形で順次追加し、入力段階毎に制約ソルバに制約充足問題を解かせる方法(公知例2)が考えられる(非特許文献5,6参照)。得られた解は、次の入力画面においてオペレータに対する他のデータ項目の値の選択候補の提示あるいは値の範囲チェックによる制限等に使用することができる。
しかしながら、この方法は操作の実行順序に関する提示・制限については何も機能していない。即ち、制約条件を追加する順序は、最終的な解の内容に影響しないため、値を入力・修正する操作の実行順序は完全に自由である。そしてまた同時に、何の推奨情報も提示しない。一見するとこれは、当該システム上での業務に習熟したオペレータにとって良いことであるが、無駄なやり直しを少なくするという観点では、システム側では何もせず、単にオペレータに全ての処理を委譲しているにすぎない。つまり、業務に習熟していないオペレータにとって操作が事実上不可能になるのはもちろんのこと、状況が複雑になると、習熟オペレータにとっても業務の遂行が困難になる場合があることを意味する。公知例2では、このような課題に対して、前述した公知例1にある、非習熟オペレータ向けワークフローを提示する機能(推奨フロー提示機能)を付加することで、一応の解決を図っている。しかし、前記ワークフローから外れる状況(例外フロー)になった場合には効果がない。即ち、公知例2は値の内容について適切に提示・制限する技術を実現してはいるが、操作の実行順序に関する技術の面では、公知例1と同等の効果しかない(公知例2では、実行時に動的に2つのモードを切り替えられるが、問題の本質は依然として解決されない)。
以上のように、制約ソルバの処理動作を対話処理の中で利用する場合、操作の実行順序に関する制御を全く行わないため、非習熟オペレータに対して、もしくは複雑な状況下においては、業務遂行が著しく困難になるという問題がある。あるいはまた、推奨フロー提示機能を適用した場合でも、従来通りの固定的順序による制御しか行わないため、従来のワークフロー管理システムと同様、例外フローに対応不可能になるという問題がある。
以上は、制約ソルバを対話処理に適用する場合の処理方式上の問題であったが、公知例2においては、他にも処理効率上の問題がある。
前記処理方式では、入力段階毎に制約ソルバに制約充足問題を解かせる必要があるが、これには大きな計算コストがかかる。ここで、注意すべきなのは、ただ単に入力済みの変数の値を確定し(値についての制約を追加するか、もしくは値ドメインを入力値に変更する)、未入力の変数への制約伝播を発生させて値ドメインを絞り込むだけでは、データ項目の値の選択候補を得られたことにはならない点である。これによって得られる値ドメインは、ある制約に着目した場合の局所的整合性を保証しているだけで、全ての値を確定した時の大域的整合性までは保証しない。つまり、ある場面における入力値として、「その値を採用した後の最終的な解が少なくとも1つ存在するもの」を全て列挙したり、「その値を採用した解が1つも存在せず、途中で選択肢なしとなることが論理的に明らかなもの」を全て列挙したり、といったことは直接的にはできない。そのため、入力済みの変数がまだ少ない状態、即ち解が十分絞り込まれない状態であっても、最終的に全ての変数が入力済みとなった場合の全ての解(膨大な数に上る)を列挙しなければならない。このように、値ドメインの範囲が大きい場合や、制約による矛盾が発生し難い場合は、値の提示・制限を行う際、非常に大きい計算コストがかかるという問題がある。
(問題解決器・プランナーの問題)
上記、制約ソルバの処理方式上の問題を解決する手段として、プランナーを使用することが考えられる。プランナーは、目標状態に至る実行順序を、任意の時点での状態と各種操作毎の事前条件/事後条件の情報をもとに計算し、いずれか1つを提示する機能を有する。即ち、プランナーの出力を利用することにより、対話処理上で適切な実行順序を提示することができる。
しかしながら一方で、オペレータが次に実行する操作を対話処理上で提示・制限することは、プランナーの機能をもってしても直接的にはできない。つまり、ある場面における次の操作として、目標状態に至る実行順序が少なくとも1つ存在するものを全て列挙したり、そのような実行手順が1つも存在せず途中で手詰まりとなることが論理的に明らかなものを全て列挙したりすることは直接的にはできないという問題がある。これは、現在提案されているプランナーのいずれにおいても、ある場面から目標状態に至る実行順序をいずれか1つ挙げるか、もしくは目標状態に至る実行順序が1つも存在しないと回答する機能を基本としており、全ての実行順序を調べようとすると、実行時間が指数関数的なオーダーとなることから実質的に処理が不可能になることに起因する。
この問題が解決できなければ、最終的に目標状態に到達できるかどうかという大域的観点において、次に実行すべきではない操作を判別し、オペレータが対話処理上でそれと気づかずに実行することのないよう制限をかけることができない。特に大規模なシステムにおいて、操作の多様性や状態の複雑性が増大すると、大域的な状況の把握が困難になる。即ち、プランナーを用いたとしても、オペレータの負荷を軽減し、能力を支援する機能を提供するという観点での効果が、相対的に小さくなってしまう。
さらにまた他方で、プランナーと制約ソルバ(2つは問題解決器と総称される)は、扱う問題をどのように内部表現するか、あるいはどのようなイベントによってどのように処理を進めるか、という観点で本来的に異なる動作方式である。これら2つの問題解決器を、特定の問題領域についてハードコーディングされたプログラムから呼び出し利用するシステムは容易に実現できるが、汎用的な方法で連携させることができないという問題がある。特に、データ内部表現、並びにイベント処理の両面について連携動作を実現することが重要である。
例えば内部表現について言えば、プランナーにおける内部表現は、プランニング対象となる外部世界における行動を「アクション」というデータで表し、外部世界の「状態」や「アクションの事前条件/事後条件」を述語論理上の式の集合で表す。実際にオペレータから入力された値はデータ項目(の種類)とその値に関する述語として内部表現される。一方、制約ソルバにおける内部表現は、制約変数、値ドメイン、制約条件によって表し、ある操作画面でオペレータが入力することのできる値の候補(実際には、前述の通り大域的な整合性を満足できない値も含まれる)は、制約変数がとる値ドメインとして表す。実際にオペレータから入力された値は、制約変数を当該値に束縛する制約条件として内部表現される。このように、同じ値に対して、計算機内部でのデータ表現方法に差異があるために、2つの間の相互変換を行う必要がある。
そのほか、例えばイベントについて言えば、プランナーでは、オペレータによるデータの入力(より具体的には入力画面の「OK(確定)」ボタン押下に相当)がアクションの実行に相当し、データの値の変化が「状態(述語集合)」の変化に相当する。これによって、次に実行可能なアクションを再計算する必要が生じる。一方、制約ソルバでは、オペレータによるデータの入力が制約条件の追加に相当し、データの値の変化が値ドメインの変化に相当する。これによって、他の変数の値ドメインの変化を再計算する必要が生じる。このように同じイベントに対して、計算機内部での動作内容に差異があるために、2つの間の相互伝達を行う必要がある。
(本発明の課題)
以上説明したように、「入力・変更される値の内容」と「入力・変更する操作の実行順序」のどちらか一方を提示・制限する技術は、従来の技術(即ち、前者は制約ソルバ、後者は汎用プランナー)を応用することによって実現可能であるが、2つの問題解決器を同時に利用して、両方の要件を満足する技術はまだ存在しない。
前記の課題を解決するために、制約ソルバとプランナーを連携動作させる手段を提供する。
(基本構成)
図1は本発明の対話形式処理を実行する装置の概要を示す。図中、1は電子計算機(コンピュータ,サーバ)、2は操作端末、3はディスプレイ(表示装置)、4はキーボード、5はポインティングデバイス(マウス)であり、これらはハードウェアを構成する。なお、電子計算機1と操作端末2との間はLAN6等の通信回線によって接続されている。また、電子計算機1と操作端末2は同一のコンピュータでも良い。また、キーボード4及びマウス5は合わせて入力装置を構成する。
また、ソフトウェア構成は以下の通りである。即ち、10は本発明の対話形式処理実行プログラムであり、リレーションマネージャ11、データマネージャ12、プランマネージャ13から構成され、相互にメソッドの呼び出しを行う。また、リレーションマネージャ11は内部に後述する関係表14を有し、データマネージャ12は公知の汎用制約ソルバ(プログラム)15を有し、プランマネージャ13は公知の汎用プランナー(プログラム)16を有する。なお、対話形式処理実行プログラム10は、所定のアプリケーションプログラム内に組み込まれる形で実現しても良く、また、所定のアプリケーションプログラムとは別個の単体の形で実現しても良い。
図2は本発明を実行する装置のソフトウェア構成の詳細を示すもので、図中、11はリレーションマネージャ、17はデータベースマネージャ、20はアプリケーション(プログラム)である。また、121はデータコントローラ、122はベリファイアであり、これらは前述したデータマネージャ12を構成する。また、131はプランコントローラ、132はプランナーであり、これらは前述したプランマネージャ13を構成する。なお、これらの各ソフトウェアの詳細については後述する。
前述した各ソフトウェア要素は、適切な通信路で相互に接続された複数のハードウェア上に分散して存在し、相互に通信し合いながら実行することもできる。例えば、アプリケーション20は、他のソフトウェアと同じ電子計算機1上で実行し、操作端末2へはWebサービスを介してWWWブラウザプログラムの形態でオペレータに画面と入出力手段を提供しても良いし、アプリケーション20だけ操作端末2上で実行し、電子計算機1上で実行される他のソフトウェアとの間でLAN6を介して連携動作しても良い。
(制約ソルバとプランナーを連携させる手段の概要)
[入力からデータコントローラ・プランコントローラへの値の内容の変換・実行イベントの伝達]
適切に「入力・変更される値」と「入力操作の実行順序」の提示・制限を行うため、データコントローラ121が保持する制約充足問題(とその解)及びプランコントローラ131が保持するプランニング問題を、オペレータの入力操作に応じて変更する。つまり、入力操作の実行によりオペレータが入力した値をもとに、制約充足問題の制約の追加・削除を行い、また、プランニング問題の状態を表す述語集合の追加・削除を行う。
例えば、オペレータがアプリケーション20のデータ投入画面で、投入欄Aに0という値を入力する操作を考える。この場合、これに対応する制約として、投入欄Aに対応する制約充足問題の変数がαなら、「α=0」という制約を制約充足問題に付加し、更新された制約充足問題を制約ソルバに解かせて、保持している解を更新する。また、対応する述語が、「(a inputed)」であるならば、それまでのプランニング問題の状態にこの述語「(a inputed)」を追加し、新しいプランニング問題に更新する。
[データコントローラからプランコントローラへの値の内容の変換・実行イベントの伝達]
さらに、制約充足問題の更新により保持している解が変化した場合、それによって連鎖的にプランニング問題の更新を行う。ここでの解とは、当該制約充足問題が複数の解を有する場合、解集合のことを意味する。解が変化した場合とは、制約変数が解として取り得る値の侯補が変化した場合に相当する。
例えば、制約充足問題として変数がxとy、ドメインがともに{0,1}、制約がx≠yを有するものを考える(このときの充足解は、(x=0,y=1)もしくは(x=1,y=0)である。)。ここで、アプリケーション20から値投入の操作が起こり、「x=0」という制約が付加されたとすると、充足解はx=0,y=1となる。もし、yの値が1つに定まって、その値が確定したということに対応する(y inputed)という述語としてプランニング問題で内部表現される場合は、これをプランニング問題の状態を表す述語集合に追加する。
(制約ソルバとプランナーを連携させる手段の具体的実現方法)
[連携のための値/イベントの対応関係表]
以上の問題更新機能は、データコントローラ121、プランコントローラ131及びリレーションマネージャ11が連携して行う。データコントローラ121は、制約充足問題とその解を保持し、さらに入力操作の内容とそれに対応する制約追加・削除の関係を保持する。同様に、プランコントローラ131は、プランニング問題を保持し、入力操作の内容と対応する述語との関係及びデータコントローラ121が保持する制約充足問題の解と対応する述語との関係を保持する。
注意されたいのは、データコントローラ121及びプランコントローラ131が保持する関係は、あらゆる操作に対して制約の追加・削除や述語の追加・削除が定義されている必要はない。また同様に、あらゆる制約充足問題の解に対して述語の追加・削除を定義する必要もない。
これらの関係を管理するため、リレーションマネージャ11は、データコントローラ121やプランコントローラ131が対象とする入力操作名(アクション名)を含む関係表14を保持する。問題の更新処理では、始めにリレーションマネージャ11がアプリケーション20から、入力操作が行われたことを表すイベント通知を受け取る。このイベント通知にはアクション名が含まれている。リレーションマネージャ11は、関係表14中の入力操作名と受けとったアクション名とを比較し、制約充足問題とプランニング問題のそれぞれについて更新すべきか否かを決定する。
図3に基本的な関係表を示す。関係表14は、イベントの内容を表すアクション名が格納されたカラムと、制約充足問題(制約ソルバ)への変更内容を表すカラムと、プランニング問題(プランナー)への変更内容を表すカラムとで構成される。
関係表14から、イベントに応じた動作の伝達方法、問題解決器間の値の内部表現の変換方法を述べる。図4に入力操作の内容に対応する動作を示す。
まず、オペレータによって入力された入力欄のID(データ項目の種類を表す)と関係表の「入力操作の内容」カラムの値とが一致する行を検索する(201)。次に当該行の「制約充足問題への変更」カラムを参照し、制約変数IDに対応する変数の値を当該入力欄の値と同値であるとする制約条件を制約充足問題に追加する(202)。次に当該行の「プランニング問題への変更」カラムを参照し、そこに保持されている述語をプランニング問題の状態(述語集合)として追加する(203)。
なお、この過程において、制約伝播により他の変数の値が確定した場合、それに対応するプランニング問題の状態追加が行われる。図5に制約伝播による二次的なプランニング問題変更の動作を示す。まず、制約伝播によって値が確定した変数を抽出する(204)。その後、当該行の「プランニング問題への変更」カラムを参照し、そこに保持されている述語をプランニング問題の状態(述語集合)として追加する(205)。
[伝達パターン(3通り存在する)に応じた動作の切り替えとそれぞれの流れ]
以上示した方法により、リレーションマネージャ11は、データコントローラ121とプランコントローラ131のそれぞれにおける値の内部表現とイベント毎の動作の関係を知ることができる。その結果、更新すべき問題の組み合わせによって処理手順が3つに分岐する。各々の処理の流れを図6から図8に示す。
(パターン1)
更新すべき問題が制約充足問題のみの場合(図6)、リレーションマネージャ11は、入力操作の内容をデータコントローラ121に送信する(図6−(2))。データコントローラ121は、保持している操作内容と制約との関係をもとに受け取った操作内容を変換し、制約の追加または削除を行い、制約充足問題を更新する(図6−(3))。最後に、データコントローラ121は、更新した制約充足問題を汎用制約ソルバ15へ送信し、その解を汎用制約ソルバ15から取得する(図6−(4)(5)(6))。
(パターン2)
更新すべき問題がプランニング問題のみの場合(図7)、リレーションマネージャ11は、操作内容をプランコントローラ131に送信する(図7−(2))。プランコントローラ131は、保持している操作内容と事後条件との関係をもとに受け取った操作内容を変換し、事後条件を状態に反映させ、保持していたプランニング問題を更新する(図7−(3))。
(パターン3)
更新すべき問題が、制約充足問題・プランニング問題両方の場合(図8)、このとき、リレーションマネージャ11は、始めに操作内容をデータコントローラ121に送信する。受け取ったデータコントローラ121は上記1の処理を行う(図8−(2)(3)(4)(5)(6))。その後、リレーションマネージャ11は、更新された制約充足問題の解もしくは解の一部を取得し、プランコントローラ131に送信する(図8−(7)(8))。プランコントローラ131は、受け取った解もしくは解の一部を事後条件に変換し、それを状態に反映させ、保持していたプランニング問題を更新する(図8−(9))。
以上の処理を行うことによって、入力・変更される値や操作の実行順序に関する、提示や制限が動的に行われ、オペレータを適切に支援することが可能になる。
前述した分岐処理を含む本発明による対話形式処理全体のフローチャートを図9に示す。
(入力・制限する際の値の候補を提示・制限する手段の詳細な説明)
前述の「問題解決器・制約ソルバの問題」でも指摘したが、対話処理上の操作画面における入力値の候補を提示・制限することは、単純に制約ソルバの機能からは実現できない。そこで、データコントローラ131は、制約ソルバ15と連携をとることでこれを達成する。この機能は、対応する制約変数の値ドメインの中から、他の変数に対応する値ドメインの範囲、並びにそのステップまでに入力された他の変数の値に対して不整合が起きないような値を抽出することで実現する。データコントローラ131は、アプリケーション20の要求に応じて、この機能を実行し、入力データ項目毎にその操作画面において入力できる(推奨される)値をアプリケーション20に提示する。
図10、図11にこの機能を実現する具体的なフローチャートを示す。当該機能は処理上の性質が異なる2つの方法がある。
図10はそのうちの一方の方法を示す。データコントローラ131は、まず、初期化処理として、操作画面を表示しようとしている時点において保持している制約充足問題(その時点までにオペレータが入力した値が値制約として追加されているもの)を基に全ての解を求める(301)。そして、始めに推奨値を求めたい制約変数を外部から受け取る(なお、この時、リストや配列などの引数として外部から求めたい制約変数を一度に受け取り、その中から1つを選び出すという方法でも本質的に違いはない。)(302)。次に、集合Aを空集合とし、解集合の各要素について以下の処理を繰り返す(303)。
1.前記解において前記変数がとる値を集合Aに重複を避けて加える(304,305)。
その後、集合Aの内容を推奨値集合として外部へ提示する(なお、この時、リストや配列などの返却用一時変数に対して、外部へ返したい制約変数を一旦蓄積しても本質的な違いはない。)(306)。操作画面で表示しようとする制約変数の全てについて、以上の処理を繰り返し実行する(307)。
この方法を手法Aと呼ぶ、手法Aは、全ての解を求めるため計算コストが大きいが、調べたい変数が多数ある場合でも、1回制約充足問題を解けば済むという特徴がある。
図11は他の方法を示す。データコントローラ131は、始めに、操作画面において表示したい変数を外部から受け取る(401)。次に、集合Aを空集合とし、前記変数の値ドメインのそれぞれの値について以下の処理を繰り返す(402)。
1.前記値の値制約を追加し(あるいは新たな値ドメインとし)制約充足問題を解き、解が1つ以上有る場合、当該値を集合Aに加える(403,404)。
その後、集合Aの内容を推奨値集合として外部へ提示する(405)。操作画面で表示しようとする制約変数の全てについて、以上の処理を繰り返し実行する(406)。
この方法を手法Bと呼ぶ、手法Bは、調べたい変数毎に制約充足問題を解かなければならないが、解が1つ発見できれば制約ソルバでの計算を中断して良いので、1回当たりの計算コストは小さく抑えられるという特徴がある。
以上2つの方法について、対象とする制約充足問題の傾向を考慮すると、手法Aは、問題の大きさに対する解の数が比較的少ない場合、並びに保持する制約充足問題の変更頻度に対する推奨値の問い合わせ頻度が比較的多い場合に有効であり、また、手法Bは、問題の大きさに対する解の数が比較的多い場合、並びに保持する制約充足問題の変更頻度に対する推奨値の問い合わせ頻度が比較的少ない場合に有効である、と考えられる。
このように、手法Aは、調べたい変数が多数ある場合について、小さい計算コストで値候補を求めることができる。また、手法Bは、制約による解の絞り込みが緩やかで矛盾が発生し難く、最終的な解の数が膨大になる場合について、小さい計算コストで値候補を求めることができる。
汎用性を高めるため、上記2つの方法を、扱う制約充足問題の性質に従って切り替える方法が考えられる。最も簡単な方法としては、システムプログラム起動時の引数や、コンフィギュレーションファイルによって、手動で切り替える方法である。
一方、自動的に切り替える方法として、制約充足問題の解の数を見積もる方法がある。具体的には、制約充足問題を構成する変数の個数、制約条件の数、値ドメインの範囲から、問題の大きさ(解の数に比例するとみなす)の見積もりを計算し、別途、事前に設定した値を超えるかどうかで判定する。解を求める必要はないため、この計算にかかるコストが対話処理に支障を与えることはない。
一般に、制約充足問題の解は、各変数の値ドメインの大きさや変数の数が大きければ多くなり、制約条件の数が多ければ少なくなる傾向にある。従って、問題の大きさを見積もるために、各変数の値ドメインの大きさと変数の数が大きいほど大きくなり、制約条件の数が多いほど小さくなるような値を定義し、その値に応じて適切に閾値を定義すれば良い。
例えば、具体的には、問題の大きさの見積値(Ed)として、以下の数式を使用する。絞り込み係数Crは、0から1までの実数であって、問題に応じて、制約が強いために解の絞り込みが大きい場合に小さな値を設定する。制約条件の個数が0の場合は、Edは変数の値の組み合わせ数を表す。この見積値が設定値を超えない場合には全ての解を求める計算コストが基準を超えないと判断して手法Aを適用し、超える場合には手法Bを適用する。
制約変数の数:Nv
制約条件の数:Nc
値ドメインの要素の平均個数:Nd
絞り込み係数:Cr
問題の大きさの見積値:Ed=CrNc・NdNv
なお、この数式を基本に、1つの制約条件が拘束する変数の平均個数や、個々の制約条件が解を絞り込む強度などを考慮することにより、見積モデルの詳細化が可能である。
さらに、操作画面毎の特性によって自動的に切り替える方法として、操作画面における入力データ項目の集合について調査する方法がある。具体的には、入力データ項目数と値ドメインの大きさから、問い合わせ回数の見積もりを計算し、別途、事前に設定した値を超えるかどうかで判定する。操作画面について予めわかっている数値をもとにした簡易な処理であるため、この計算にかかるコストは対話処理に支障を与えることがない。
具体的には、問い合わせ回数の見積値(Rf)として、以下の数式を使用する。
当該操作画面の入力データ項目の個数:Ni
値ドメインの要素の平均個数:Nd
問い合わせ回数の見積値:Rf=Ni・Nd
この見積値が設定した閾値を超える問題には手法Aを適用し、超えない場合には手法Bを適用する。閾値としては、全ての解を列挙する計算(手法Aに相当)が、解の有無を判定する計算(手法Bの内側ループ1回に相当)の何回に相当するか、の回数を設定する。問題領域に応じて、後者の計算コストが小さいと予想される場合には、大きな値を設定する。
以上、手法Aと手法Bの併用方法として、制約充足問題の大きさ・性質や、操作画面の内容に応じて適応的に処理内容を切り替えることで、幅広い性質の制約充足問題に対して偏りなく計算コストを抑えることができる。
(入力操作の実行順序を提示・制限する手段の詳細な説明)
前述の「問題解決器・プランナーの問題」でも指摘したが、端末における操作(プランナーの内部表現で言うところの「アクション」に相当)の対話処理上の実行順序を提示・制限することは、単純に汎用プランナー16の機能からは実現できない。そこでプランコントローラ131は、プランナー132と連携をとることで課題を解決する。この機能は、現在の状態で事前条件が満たされ実行可能な操作の中から、その操作の実行後、目標状態へ達する実行順序が存在するものを抽出することで実現する。プランコントローラ131は、アプリケーション20の要求に応じて、この機能を実行し、次に実行すべきアクションをアプリケーション20に提示する。
図12にこの機能を実現する具体的なフローチャートを示す。始めに、求めるアクションの集合をACTとし、初期値に空集合を設定する(501)。ついで、以下の処理をプランコントローラ131は保持しているアクション全体集合Oの各アクションに対して行う(502)。
1.未処理の操作をOから取り出し、それをoとする(503)。
2.操作oの事前条件が現在の状態で満たされているか判定し、満たしているなら3.へ処理を進める。満たしていないなら1.へ戻り、他の未処理の操作に対して処理を行う(504)。
3.操作oの事後条件を現在の状態に適用し、状態を更新する。この更新された状態をsとする(505)。
4.状態sから目標状態への操作順序をプランナー132で求める(506)。
5.実行順序が存在すれば、6.へ処理を進める。存在しないなら1.へ戻り、他の未処理の操作に対して処理を行う(507)。
6.ACTに操作oを加える。1.へ戻る(508)。
このように、1.から6.の処理を各入力操作に対して施すことで、ACTに次に実行すべき操作が加えられていくことになる。
本発明によれば、リレーションマネージャを介してプランナーと制約ソルバを連携させることにより、対話処理上の各場面で入力されたデータ項目の値に応じ、予め定義されたアクション集合の各要素について、次アクションとしての可否を動的に計算することができ、次に選択可能な操作をオペレータに提示・制限できるという効果を生じる。また、制約ソルバにおける制約伝播によって制約変数の値が絞り込まれた場合についても、必要に応じて次アクションとしての可否を動的に計算することができ、次に選択可能な操作をオペレータに提示・制限できるという効果を生じる。
以上示したように、「入力・変更される値」と「入力・変更する操作の実行順序」の両方について、問題解決器としての汎用性を維持しつつ、内部表現や動作の違いを吸収し、プランナーと制約ソルバを連携させることができる。
また、本発明により、業務上の目的(値の整合性を確保すること、無駄なやり直しを少なくすること、の両方を指す)を達成するという観点で、対話処理上発生しうる全ての場面において適切にオペレータを支援することができる。これによって、例外的フローの発生が不可避であるという、ワークフローエンジンの問題を解決することができる。
また、本発明により、対話処理上発生し得る場面の指数関数的な増大に関係なく、最終的に必要な値の整合性の内容や、ある操作についてどの場面でも常に成立する事前条件・事後条件として、直接的表現によって記述し、所望の支援内容を実行させることができる。これによって、ワークフロー・ビジネスルールの作成およびデバッグが難しいという、ワークフローエンジンやビジネスルールエンジンの問題を解決することができる。
また、本発明により、制約ソルバに問題を解かせて推薦値を求めるアルゴリズムをデータコントローラ上に2通り用意し、問題に応じて使い分けることができる。これによって、幅広い性質の問題に対し計算コストを偏りなく抑えることができ、ある性質の問題に対して計算コストが増大するという、制約ソルバーの問題を解決することができる。
また、本発明により、目標状態に至る操作や手詰まりになる操作の列挙を、プランコントローラが主体となり、プランナーに適した計算(順序をいずれか1つ挙げる)を複数回呼び出すことで計算できる。これによって、全ての順序を列挙しようとすると実行時間が指数関数的オーダーになるという、プランナーの問題を解決することができる。
以上示したように、ワークフローエンジン、ビジネスルールエンジン、制約ソルバー、プランナーが抱えるそれぞれの問題を解決し、業務システムの対話処理上でオペレータの負荷を軽減し、能力を支援する機能を提供することができる。
前述した図2を用いて本発明の対話形式処理を実行する装置の実施の形態について説明する。
まず、図2における各ソフトウェア要素の機能について説明する。
リレーションマネージャ11は、アプリケーション20においてオペレータが行った操作を受け付け、その内容をデータコントローラ121やプランコントローラ131に送信する機能を有する。また、リレーションマネージャ11は、連携動作を規程する関係表14をファイルシステム等から読み込み、これに基づいて処理を行う。
データコントローラ121は、制約充足問題(変数、制約、変数のドメインの集合)とその解を保持する。また、データコントローラ121は、アプリケーション20で行われた操作の内容に応じて、制約を更新する機能を有する。また、データコントローラ121は、保持している制約充足問題を汎用制約ソルバ15に解かせて解を取得することにより、アプリケーション20に対して、入力・変更される値の内容を提示・制限する機能を提供する。
ベリファイア122は、汎用制約ソルバ15のラッパー(あるいはアダプター)である。汎用制約ソルバ15としては、市中にフリーで公開されている汎用目的のソフトウェアが存在する。これを利用する場合に、ベリファイア122はデータコントローラ121からの処理依頼を受け取り、当該汎用制約ソルバ15のインターフェイスや機能に適合した形で、依頼内容の変換や補足的な処理を行う。汎用制約ソルバ15に与える定義123は、制約充足問題を内部表現したものである。この定義123の内容に従って、制約変数や値ドメインをデータベースマネージャ17から読み込み、制約充足ネットワークが作成される。
処理に必要なデータを直接、制約充足問題として定義・付与する通常の方法は、特定の最適化問題を解く設計業務には十分である。しかし、本発明で解決しようとする業務システムのように、複数のトランザクションを扱う場合には、トランザクション毎に定義を用意することは現実的ではなく、別途、技術的解決を図る必要がある。本実施の形態のようにデータベースを参照し、動的に制約充足問題を付与する形態をとることで、本発明の適用領域が広がり、大きな効果を発揮できる。
プランコントローラ131は、プランニング問題(現在の状態・操作全体の集合・目標状態)を保持する。また、プランコントローラ131は、アプリケーション20で行われた操作の内容に応じて、現在の状態を更新する機能を有する。また、プランコントローラ131は、保持しているプランニング問題を汎用プランナー16に解かせることで、アプリケーション20に対して、操作の実行順序を提示・制限する機能を提供する。
プランナー132は、汎用プランナー16のラッパー(あるいはアダプター)である。汎用プランナー16としては、市中にフリーで公開されている汎用目的のソフトウェアが存在する。これを利用する場合に、プランナー132はプランコントローラ131からの処理依頼を受け取り、当該汎用プランナー16のインターフェイスや機能に適合した形で、依頼内容の変換や補足的な処理を行う。汎用プランナー16に与える定義133は、プランニング問題を内部表現したものである。この定義133の内容に従って、プランニング問題の内部表現が作成される。
次に、図13に関係表の実施の形態を示す。図3からの拡張部分として、以下2点がある。
(拡張1)
ある入力欄について入力された値の内容により動作を変えたい場合は、値の内容に対する条件式を記述することで実現する。この場合、「入力操作の内容」カラムの入力欄から「制約充足問題への変更」カラムの変数への値の確定は、前者が真の場合、後者が真となるように制約条件が追加される意味となる。
(拡張2)
上記条件式が、ブール値を返すメソッド名や任意の値を返すメソッド名を含むことができるように拡張する。これによって、アプリケーション内の任意の処理を呼び出してアプリケーションの様々な状態を取得できるため、高い拡張性が得られる。なお、この実現に当たっては、当該の条件式やメソッド名を解釈・実行する機能をリレーションマネージャ11が具備するものとする。
(アプリケーションの実施例)
対話処理における入力値および入力操作の提示・制限の機能を備えたアプリケーションを実行した場合の動作を説明する。
図14は画面の構成例を示すもので、同図(a)は入力操作画面の一例を示す。1つの入力操作画面上に表示された2以上のデータ項目については、その操作順序に制限はなく、画面上から複数のデータ項目を同時に入力できる。GUI上で入力した値をシステムに反映させるために「OK」ボタンを押す。入力された値を無視して前画面に戻るために「キャンセル(戻る)」ボタンを押す。図14(b)は次操作選択画面を示すもので、画面には次に実行可能な操作に遷移するためのボタンが複数配置され、例えば「入力操作02」ボタンを押すことにより当該入力操作画面に遷移する。図14(c)は入力と選択を順次行うことにより発生する画面遷移履歴を示すもので、入力操作画面と次操作選択画面は交互に遷移する。
図15は図14(a)(b)に示した二種類の画面を1つの画面に統合し、オペレータが次の操作選択肢を確認しながらデータの入力を可能とする拡張を行った応用例である(この場合の遷移履歴は図14(c)のように交互にはならず、図15と同じ構成でデータ項目の種類や操作選択ボタンの異なる画面が連なる形になる。)。
一方、アプリケーションの内部構成は、図2のアプリケーションとリレーションマネージャ、プランコントローラ、データコントローラの構成に従う。
アプリケーション20は、プランコントローラ131から、次に実行可能(目標状態に到達可能)な入力画面の種類を問い合わせる。これをもとに、図14(b)もしくは図15下部のボタンを表示する。なお、実行しても目標状態に到達できないことが明らかな入力画面へは遷移しないように(遷移を制限)、当該のボタンは表示しない。このように、操作に関して、対話処理の場面に応じたオペレータ支援を行う。
また、アプリケーション20は、プランコントローラ131へOKボタンが押下されたことを通知する。プランコントローラ131は、直前の(これまで表示されていた)入力画面にて操作を実行したことを記憶する。この情報は、図12の502の条件分岐で、ある操作が処理を行ったかどうかを判定する際に参照される。
アプリケーション20は、データコントローラ121から、データ項目に入力可能(最終的に値の整合性を満足可能)な値を問い合わせる。これをもとに、図14(a)もしくは図15のデータ項目毎の入力用コンボボックスの選択肢を表示する。なお、入力しても値の整合性を満足できないことが明らかな値は入力できないように(値を制限)、当該の選択肢は表示しない。このように、入力値に関して、対話処理の場面に応じたオペレータ支援を行う。
また、アプリケーション20は、リレーションマネージャ11へOKボタンが押下されたことを通知する。同時に、オペレータによって入力された値とデータ項目の名前(入力欄を表すID)の組がリレーションマネージャ11に送付される。リレーションマネージャ11は、図3の関係表と図4、図5のフローチャートと基づいて処理を行う。
(制約充足問題、プランニング問題の具体例)
上記で示した装置ならびにアプリケーションにおいて、制約充足問題・プランニング問題についての具体的な動作例を説明する。
図16は6個以上の変数からなる制約充足問題である。各変数は「1〜4」等の値ドメインを有する。変数の間には3個以上の制約条件が存在する。図17は4個以上の入力操作をアクションとして表現したプランニング問題である。初期状態として述語が何もない状態を指定し、目標状態として変数の全てが“inputed”となる状態を指定する。
V1,V2,V3の部分について説明を行う。A1はV1の入力画面である。同様にA2はV2、A3はV3、A4はV4の入力画面である。対話処理の最初の段階ではV1〜V3は「inputed」ではないため、図12の処理によって、目標状態に至るためにA1〜A3の実行が必要であることが計算される。A4は事前条件が存在し、「(V3 inputed)」がまだ成立していないため、次の操作としては実行できないことが計算される。これによって、最初の段階ではV1〜V3のいずれの入力操作も選択でき、一方でV4の入力操作はまだ選択できない状態になる。
ここで、ユーザが入力操作A1を選択したとする。制約充足問題に図10又は図11の処理を適用することで、制約条件C12から解がないことが明らかな値ドメインD1の要素「4」が除去され、「1,2,3」が入力値の選択肢となる。これによって、値の提示・制限が実現される。
ここで仮に、A1でV1=1を入力したとする。図9の処理s1において関係表が参照され、処理s2,s3によって、制約充足問題に「V1=1」の制約条件が追加される。図9の処理s4,s5によって、制約伝播が発生しV2=1,V3=1が確定する。図9の処理s6によって、関係表が再び参照され、プランニング問題の状態に「(V2 inputed)」、「(V3 inputed)」が追加される。次に、図9の処理s8,s9によって、図12の処理が実行される。既に目標状態の「(V2 inputed)」「(V3 inputed)」の部分は満足されているため、次に選択できる操作としてA2,A3は表示されなくなる。一方で、A4の事前条件が満足されるため、A4が新たに表示される。
ここで他の可能性として、A1でV1=2を入力したとする。制約伝播によりV2=2は確定する。V3は「2もしくは3」に絞り込まれるが確定はしない。その結果、次に実行可能な操作としてA2は表示されなくなり、A3は依然として表示され、新たにA4が表示される。
このように、入力する値によって対話処理の動的な適応が実現される。最初にA2やA3を実行した場合も、上記同様に値が確定した場合は操作画面が割愛され、あるいは事前条件が満足されたときに操作画面が表示される。
以上の説明は、1つのアクションで1つの変数を入力する場合を仮定している。しかし、実際の操作画面では多数の変数を一括して入力させる操作画面も必要である。また、値ドメインとしても数個の値候補しかとらない場合を仮定している。しかし、値ドメインが「1〜100」のように非常に多い値候補から入力させる操作画面も必要である。このような操作画面に対しては図11の手法Bの処理は計算コストが大きい。そこで、手法Aを適宜用いることでこの問題を解決することができる。
また、以上の説明は、処理上の操作対象として入力データ項目を扱い、処理上の特定の状態として入力済みか否か(“inputed”)を扱っている。ここで、拡張2、拡張3を実施した図13の関係表を用いることでアプリケーションの様々な状態を表す内部変数“alpha”や、値の内容を表す“one”,“greater−than−one”などの別の状態を扱うことができる。
また、以上の説明は、目標状態として全てのデータ項目の入力完了を扱っているが、上記拡張により、多用な目標状態を扱うことができる。例えば、必須項目を限定したり、あるデータ項目の値によって必須項目を変えたり、データ項目以外の操作対象の特定の状態を条件とする、などの実際的な応用が考えられる。
本発明における効果、即ちデータ項目の値の内容及び入力・変更する操作の実行順序を対話処理の中で適切に提示・制限するという機能は、システムがオペレータに対して実施する支援機能を仮定している。しかしながら、システム同士の連携、あるいは1対多の連携においても容易に適用可能である。即ち、本発明はEAI、SOAなどの技術分野で利用が可能である。
本発明を実行する装置の概要を示す構成図 本発明を実行する装置のソフトウェア構成の詳細を示す構成図 基本的な問題変更対応関係表の一例を示す説明図 入力操作の内容を制約充足問題及びプランニング問題の変更内容に変換する処理のフローチャート 制約伝播をプランニング問題の変更内容に変換する処理のフローチャート 入力操作に伴う問題の更新手順の一例を示す説明図 入力操作に伴う問題の更新手順の他の例を示す説明図 入力操作に伴う問題の更新手順の更に他の例を示す説明図 本発明による対話形式処理全体のフローチャート 入力・変更値の候補を提示・制限する一の処理のフローチャート 入力・変更値の候補を提示・制限する他の処理のフローチャート 入力操作の実行順序を提示・制限する処理のフローチャート 問題変更対応関係表の実施の形態の一例を示す説明図 アプリケーションにおける画面構成の一例を示す説明図 アプリケーションにおける画面構成の他の例を示す説明図 制約充足問題の具体例を示す説明図 プランニング問題の具体例を示す説明図
符号の説明
1:電子計算機、2:操作端末、3:ディスプレイ、4:キーボード、5:ポインティングデバイス(マウス)、6:LAN、10:対話形式処理実行プログラム、11:リレーションマネージャ、12:データマネージャ、13:プランマネージャ、14:関係表、15:汎用制約ソルバ、16:汎用プランナー、17:データベースマネージャ、20:アプリケーションプログラム、121:データコントローラ、122:ベリファイア、131:プランコントローラ、132:プランナー、123,133:定義。

Claims (10)

  1. 任意のコンピュータ上で動作する所定のアプリケーションプログラムに対し、当該任意のコンピュータもしくは当該任意のコンピュータにネットワークを介して接続された他のコンピュータの表示装置にデータ項目に対する入力・変更欄を少なくとも1つ含む入力操作画面を表示するとともに、前記任意のコンピュータもしくは当該任意のコンピュータにネットワークを介して接続された他のコンピュータの入力装置からオペレータの操作に基づいて前記入力・変更欄におけるデータ項目の値を入力・変更し、これを種類の異なるデータ項目に対応する入力・変更欄を含む2以上の入力操作画面について当該画面を切り替えて行うことにより、対話形式で複数種類のデータ項目の値を入力・変更する際、各データ項目の値同士が既定の整合性を満たすように、前記入力・変更欄に入力・変更される値と、前記入力操作画面を通じて入力・変更する操作の実行順序とを提示・制限する方法であって、
    前記任意のコンピュータもしくは当該任意のコンピュータにネットワークを介して接続された他のコンピュータ上で動作する制約ソルバ及びプランナーと、
    前記任意のコンピュータもしくは当該任意のコンピュータにネットワークを介して接続された他のコンピュータの記憶装置に記憶された、変数と当該変数の値ドメインと制約条件とからなり、前記複数種類のデータ項目の値を変数とし該複数種類のデータ項目の値同士が満たすべき既定の整合性を制約条件とする制約充足問題と、目標状態と現在の状態と事前条件及び事後条件を含む操作の集合とからなり、処理上の操作対象と当該操作対象に対する処理上の特定の状態との組よりなる集合を目標状態とし、前記処理上の操作対象を特定する主部とその状態を示す述部とよりなる述語により現在の状態と事前条件及び事後条件を表すプランニング問題と、入力・変更されたデータ項目の種類とその値に対応する制約充足問題における制約条件の変更内容及びプランニング問題における述語の変更内容を記述してなる関係表とを用い、
    前記任意のコンピュータもしくは当該任意のコンピュータにネットワークを介して接続された他のコンピュータが、
    入力装置から入力・変更されたデータ項目の種類とその値を、前記関係表を参照して前記制約充足問題における制約条件の変更内容、または前記プランニング問題における述語の変更内容に変換し、
    制約条件の変更内容に従って制約条件の追加・削除を行い、前記制約充足問題を更新し、または述語の変更内容に従って述語の追加・削除を行い、前記プランニング問題を更新し、
    更新した制約充足問題を制約ソルバに送信してその解を取得し、または更新したプランニング問題をプランナーに送信してその解を取得し、
    更新した制約充足問題の解から前記入力・変更欄に入力・変更可能な値を決定し、または更新したプランニング問題の解から前記入力操作画面を通じて入力・変更可能な操作を決定する
    ことを特徴とする対話形式処理における入力値及び入力操作の提示・制限方法。
  2. 請求項1に記載の対話形式処理における入力値及び入力操作の提示・制限方法において、
    前記プランニング問題の目標状態は、前記複数種類のデータ項目を処理上の操作対象とし、前記複数種類のデータ項目のうち必須項目が入力された状態を処理上の特定の状態とする
    ことを特徴とする対話形式処理における入力値及び入力操作の提示・制限方法。
  3. 請求項1に記載の対話形式処理における入力値及び入力操作の提示・制限方法において、
    前記制約ソルバは、一のデータ項目に対する入力・変更可能な値として、該一のデータ項目に対応する変数の値ドメインの中から、他のデータ項目に対応する値ドメインの範囲、並びにそれまでに入力された他のデータ項目に対応する変数の値に対して不整合が起きないような値を抽出する
    ことを特徴とする対話形式処理における入力値及び入力操作の提示・制限方法。
  4. 請求項3に記載の対話形式処理における入力値及び入力操作の提示・制限方法において、
    制約充足問題の全ての解を制約ソルバによって計算し、各々の解の中で前記変数がとる値を要素とする集合を生成する第1のアルゴリズムと、前記変数の値ドメインの各値について、当該変数が当該値をとる新たな制約充足問題を生成し、制約ソルバによって解を有すると判定できた値を抽出対象とし、そうでない値を除去する第2のアルゴリズムとを用意し、
    入力操作画面および操作対象データ項目の定量的特徴から、当該入力操作画面における入力値の提示・制限の計算量の指標を計算し、この計算値を予め指定した基準値と比較することによって、前記第1または第2のアルゴリズムのうち計算量が低いと期待される方を選択して実行する
    ことを特徴とする対話形式処理における入力値及び入力操作の提示・制限方法。
  5. 請求項1に記載の対話形式処理における入力値及び入力操作の提示・制限方法において、
    前記プランナーは、その時点で入力操作画面を通じて入力・変更可能な操作として、現在の状態で事前条件が満たされ実行可能な入力操作の中から、その操作を実行し、事後条件に従って状態が更新された後に、目標状態に達する実行順序が存在する操作を抽出する
    ことを特徴とする対話形式処理における入力値及び入力操作の提示・制限方法。
  6. 任意のコンピュータ上で動作する所定のアプリケーションプログラムに対し、当該任意のコンピュータもしくは当該任意のコンピュータにネットワークを介して接続された他のコンピュータの表示装置にデータ項目に対する入力・変更欄を少なくとも1つ含む入力操作画面を表示するとともに、前記任意のコンピュータもしくは当該任意のコンピュータにネットワークを介して接続された他のコンピュータの入力装置からオペレータの操作に基づいて前記入力・変更欄におけるデータ項目の値を入力・変更し、これを種類の異なるデータ項目に対応する入力・変更欄を含む2以上の入力操作画面について当該画面を切り替えて行うことにより、対話形式で複数種類のデータ項目の値を入力・変更する際、各データ項目の値同士が既定の整合性を満たすように、前記入力・変更欄に入力・変更される値と、前記入力操作画面を通じて入力・変更する操作の実行順序とを提示・制限する装置であって、
    前記任意のコンピュータもしくは当該任意のコンピュータにネットワークを介して接続された他のコンピュータ上で動作する制約ソルバ及びプランナーと、
    変数と当該変数の値ドメインと制約条件とからなり、前記複数種類のデータ項目の値を変数とし該複数種類のデータ項目の値同士が満たすべき既定の整合性を制約条件とする制約充足問題と、目標状態と現在の状態と事前条件及び事後条件を含む操作の集合とからなり、処理上の操作対象と当該操作対象に対する処理上の特定の状態との組よりなる集合を目標状態とし、前記処理上の操作対象を特定する主部とその状態を示す述部とよりなる述語により現在の状態と事前条件及び事後条件を表すプランニング問題と、入力・変更されたデータ項目の種類とその値に対応する制約充足問題における制約条件の変更内容及びプランニング問題における述語の変更内容を記述してなる関係表とを記憶した前記任意のコンピュータもしくは当該任意のコンピュータにネットワークを介して接続された他のコンピュータの記憶装置とともに、
    前記任意のコンピュータもしくは当該任意のコンピュータにネットワークを介して接続された他のコンピュータ上に設けられた次の手段、即ち、
    入力装置から入力・変更されたデータ項目の種類とその値を、前記関係表を参照して前記制約充足問題における制約条件の変更内容、または前記プランニング問題における述語の変更内容に変換する手段と、
    制約条件の変更内容に従って制約条件の追加・削除を行い、前記制約充足問題を更新し、または述語の変更内容に従って述語の追加・削除を行い、前記プランニング問題を更新する手段と、
    更新した制約充足問題を制約ソルバに送信してその解を取得し、または更新したプランニング問題をプランナーに送信してその解を取得する手段と、
    更新した制約充足問題の解から前記入力・変更欄に入力・変更可能な値を決定し、あるいは更新したプランニング問題の解から前記入力操作画面を通じて入力・変更可能な操作を決定する手段とからなる
    ことを特徴とする対話形式処理における入力値及び入力操作の提示・制限装置。
  7. 請求項6に記載の対話形式処理における入力値及び入力操作の提示・制限装置において、
    前記プランニング問題の目標状態は、前記複数種類のデータ項目を処理上の操作対象とし、前記複数種類のデータ項目のうち必須項目が入力された状態を処理上の特定の状態とする
    ことを特徴とする対話形式処理における入力値及び入力操作の提示・制限装置。
  8. 請求項6に記載の対話形式処理における入力値及び入力操作の提示・制限装置において、
    前記制約ソルバは、一のデータ項目に対する入力・変更可能な値として、該一のデータ項目に対応する変数の値ドメインの中から、他のデータ項目に対応する値ドメインの範囲、並びにそれまでに入力された他のデータ項目に対応する変数の値に対して不整合が起きないような値を抽出する
    ことを特徴とする対話形式処理における入力値及び入力操作の提示・制限装置。
  9. 請求項8に記載の対話形式処理における入力値及び入力操作の提示・制限装置において、
    制約充足問題の全ての解を制約ソルバによって計算し、各々の解の中で前記変数がとる値を要素とする集合を生成する第1のアルゴリズムと、前記変数の値ドメインの各値について、当該変数が当該値をとる新たな制約充足問題を生成し、制約ソルバによって解を有すると判定できた値を抽出対象とし、そうでない値を除去する第2のアルゴリズムとを用意し、
    入力操作画面および操作対象データ項目の定量的特徴から、当該入力操作画面における入力値の提示・制限の計算量の指標を計算し、この計算値を予め指定した基準値と比較することによって、前記第1または第2のアルゴリズムのうち計算量が低いと期待される方を選択して実行する
    ことを特徴とする対話形式処理における入力値及び入力操作の提示・制限装置。
  10. 請求項6に記載の対話形式処理における入力値及び入力操作の提示・制限装置において、
    前記プランナーは、その時点で入力操作画面を通じて入力・変更可能な操作として、現在の状態で事前条件が満たされ実行可能な入力操作の中から、その操作を実行し、事後条件に従って状態が更新された後に、目標状態に達する実行順序が存在する操作を抽出する
    ことを特徴とする対話形式処理における入力値及び入力操作の提示・制限装置。
JP2006302754A 2006-11-08 2006-11-08 対話形式処理における入力値及び入力操作の提示・制限方法、並びにその装置 Expired - Fee Related JP4911594B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006302754A JP4911594B2 (ja) 2006-11-08 2006-11-08 対話形式処理における入力値及び入力操作の提示・制限方法、並びにその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006302754A JP4911594B2 (ja) 2006-11-08 2006-11-08 対話形式処理における入力値及び入力操作の提示・制限方法、並びにその装置

Publications (2)

Publication Number Publication Date
JP2008123022A JP2008123022A (ja) 2008-05-29
JP4911594B2 true JP4911594B2 (ja) 2012-04-04

Family

ID=39507751

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006302754A Expired - Fee Related JP4911594B2 (ja) 2006-11-08 2006-11-08 対話形式処理における入力値及び入力操作の提示・制限方法、並びにその装置

Country Status (1)

Country Link
JP (1) JP4911594B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2017179540A1 (ja) * 2016-04-12 2019-02-21 日本電気株式会社 タイムスロット設計装置、タイムスロット設計方法およびタイムスロット設計プログラムを格納する記憶媒体
JP7302344B2 (ja) * 2019-07-10 2023-07-04 富士通株式会社 メンテナンス支援プログラム、メンテナンス支援方法及びメンテナンス支援装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3703616B2 (ja) * 1998-01-09 2005-10-05 株式会社東芝 エージェントシステム、情報処理方法及び情報処理用プログラムを記録した記録媒体

Also Published As

Publication number Publication date
JP2008123022A (ja) 2008-05-29

Similar Documents

Publication Publication Date Title
US8005779B2 (en) System and method for designing a workflow
Lu et al. On managing business processes variants
US9390375B2 (en) Reuse of on-demand enterprise system customization knowledge utilizing collective experience
US8560636B2 (en) Methods and systems for providing a virtual network process context for network participant processes in a networked business process
CN102982396B (zh) 通用过程建模框架
R-Moreno et al. Integrating planning and scheduling in workflow domains
EP2423863A1 (en) Methods and systems for managing quality of services for network participants in a networked business process
Hussain et al. Integrated AHP-IOWA, POWA framework for ideal cloud provider selection and optimum resource management
JP2011204228A (ja) 学習メカニズムを用いたマッシュアップインフラストラクチャ
US20130159909A1 (en) Virtual business object node associations
Beloglazov et al. Improving productivity in design and development of information technology (IT) service delivery simulation models
US9240965B2 (en) Methods and systems for business interaction monitoring for networked business process
JP2012118572A (ja) コンテンツ推薦システム、コンテンツ推薦装置、推薦方式制御方法、及び推薦方式制御プログラム
JPWO2011135733A1 (ja) Webページの制御方法、計算機システム及びプログラム
EP1936494B1 (en) Method for runtime execution of one or more tasks defined in a workflow process language
Aljallabi et al. Enhancement approach for non-functional requirements analysis in agile environment
Elfirdoussi et al. An integrated approach towards service composition life cycle: a transportation process case study
Benabbou et al. On possibly optimal tradeoffs in multicriteria spanning tree problems
CN115170048A (zh) 基于模型和规则的工作流实现方法、系统和介质
JP4911594B2 (ja) 対話形式処理における入力値及び入力操作の提示・制限方法、並びにその装置
JP3726903B2 (ja) 情報処理システムおよび情報処理システムによる作業の流れ管理方法
US20120096057A1 (en) Default object fragments
Han et al. An approach towards user interface derivation from business process model
US20110093421A1 (en) Dynamic constraint satisfaction problem solver with sub-problem placeholder
KR101286284B1 (ko) 온 더 플라이 학습 기반 검색을 이용한 큐 오 에스 인식 웹 서비스 구성방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090114

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110613

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110614

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110615

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110616

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120112

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120112

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150127

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees