JPH0293937A - エキスパート・システム - Google Patents

エキスパート・システム

Info

Publication number
JPH0293937A
JPH0293937A JP1155973A JP15597389A JPH0293937A JP H0293937 A JPH0293937 A JP H0293937A JP 1155973 A JP1155973 A JP 1155973A JP 15597389 A JP15597389 A JP 15597389A JP H0293937 A JPH0293937 A JP H0293937A
Authority
JP
Japan
Prior art keywords
rule
data
display
window
command
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.)
Pending
Application number
JP1155973A
Other languages
English (en)
Inventor
Michael J Darnell
マイケル・ジヨン・ダーネリー
Joseph M Hary
ジヨセフ・マイケル・ハリー
Robert J Quinn
ロバート・ジヨン・クイン
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0293937A publication Critical patent/JPH0293937A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明はコンピュータ・ソフトウェアに関するものであ
る。さらに具体的には、人工知能を示すエキスパート・
システム等の規則依存型エキスパート・システムに関す
るものである。
B、従来技術 エキスパート・システムは、人工知能を考えればわかる
ようにコンピュータをプログラミングするために広く使
用されている。これらのシステムは、結果を得るための
手順を規定するのではなく、意図された結果を記述する
ので、手順プログラムに対立するものとしての宣言プロ
グラムであると考えられる。エキスパート・システムに
は、規則を使ってデータから結論を引き出す順方向連鎖
システムと、規則をデータに適用して目標を達成する逆
方向連鎖システムがある。順方向連鎖システムは規則、
データ及び制御プログラムから成る。
逆方向連鎖システムは1つまたは複数の目標をさらに含
む。
規則は「推論」とも呼ばれ、形式rIF条件、THEN
処置」の形のステートメントである。これは推論システ
ムにおける知識を表わす。規則の条件部分は、適用され
る規則にとって真でなければならない1つまたは複数の
事実を述べる。処置部分は、規則が適用されたときに取
られる処置を述べる。データは推論システムにおける事
実を示す。
制御プログラムは、規則をデータに適用するための手順
である。制御プログラムは1.制御サイクルを反復して
実行することにより働く。制御サイクルは幾つかのフェ
ーズから成り、フェーズの数及び性質は制御プログラム
に応じて変わる。通常は、順方向連鎖システムの制御サ
イクルは3つのフェーズを含む。
順方向連鎖制御サイクルのフェーズ1は、すべての規則
事例のセットから発動適格な規則事例のセットを選択す
るものである。このフェーズは、部分的にどの規則がデ
ータに適合するかに基づいている。規則は、その規定さ
れた条件のすべてがデータに関して真であるとき、デー
タに適合する。
規則は2つ以上の方法でデータに適合することが可能で
ある。各方法は規則の「事例」と呼ばれる。
したがって、事例とは規則と適合データの組合せである
発動適格規則事例セットとは、発動されていないすべて
の規則事例である。発動適格規則事例セットは、発動す
べきただ1つの発動適格事例のみを選択する際に競合を
伴うため、「競合セット」という華やかな名前を与えら
れている。
フェーズ2は、発動適格規則事例セットから発動すべき
次の規則事例を選択するものである。このフェーズは、
部分的に、複数の規則事例が発動適格である場合に発動
すべき1つの規則事例を選択する、競合解決手順に基づ
いている。発動すべき次の規則事例を選ぶために使用さ
れる厳密な基準は競合解決手順によって変わることがあ
る。
フェーズ3では、選択された規則事例が発動される。事
例(または規則)を「発動する」とは、規則の処置部分
で指定された処置が実行されることを意味する。発動に
よって、通常事例中のデータが変更(作成、更新または
削除)され、それによって、次の制御サイクルでどの規
則が発動適格であるかが影響を受ける。制御サイクルは
、発動適格な規則がなくなるまで繰り返される。
規則の発動は、規則を数組の事実に適用して推論的結論
を引き出す、人間の推論過程に類似している。引き出さ
れた結論は追加の事実として働き、別の規則が適用され
てさらに別の結論が引き出される。それに対して推論過
程は、新しい結論をさらに引き出すことができなくなる
まで続行する。
C1発明が解決しようとする問題点 エキスパート・システム用の使用し易いデバッグ・プロ
グラムが必要とされている。デバッグ・プログラムとは
、別の「目標」コンピュータ・プログラムのエラーをデ
バッグする、すなわち、発見して訂正する方法を実現す
るコンピュータ・プログラムである。システム中のエラ
ーをデバッグする、すなわち、発見して訂正するタスク
は、システムの挙動を監視することができることに基づ
いている。デバッグ・プログラムは、情報の表示、ユー
ザ・コマンドの解釈、及び目標プログラムの実行を調整
する。
エキスパート・システム用の使用し易いデバッグ・プロ
グラムは、単一のコマンドで制御サイクルを実行すると
共に関連情報を自動的に表示することが可能なものでな
ければならない。現在のところ、ユーザは、制御サイク
ルを実行し、関連情報を表示するために、種々の異なる
コマンドを習得して使用しなければならない。
デバッグ・プログラムは、各規則事例が発動される前に
ユーザが各規則事例を観察できるようにしなければなら
ない。この「発動前」情報は、ユーザが正しい事例が発
動すべく選択されたかどうかを判定できるようにするた
めのものである。事例が正しいかどうか判定するため、
ユーザは、競合セット、規則のテキスト、及び発動すべ
き次の事例中のデータを調べる必要がある。これらの情
報源は、相互に関連づけて表示すべきである。現在のと
ころ、発動前情報は自動的に表示されない。
ユーザは、各サイクルの前に、競合セット及びデータの
表示を別々のコマンドを使って明示的に要求しなければ
ならない。これらの表示は、コンピュータ画面に上から
下に順次書かれ、しかも画面よりも大きいことがしばし
ばであり、関連情報を画面上で同時に見える状態に保つ
ことが困難である。
デバッグ・プログラムはまた、事例が発動された後、ユ
ーザが、データに対して加えられた変更を観察できるよ
うにすべきである。この「発動後」情報は、ユーザがデ
ータに対して正しい変更が加えられたかどうかを判定で
きるようにするためのものである。正しい変更が加えら
れたかどうが判定するため、ユーザは、規則のテキスト
に関連して変更されたデータ、及び発動されたばがりの
事例中のデータを調べる必要がある。現在のところ、発
動後情報の自動表示を前もって要求しなければならない
。また、上述のように、変更されたデータ、及び発動さ
れたばかりの事例中のデータの発動後の表示はコンピュ
ータ画面に順次書がれ、関連情報を画面上で同時に見え
る状態に保つことが困難である。
D1問題点を解決するための手段 本発明はエキスパート・システム用の2段デバッグ・プ
ログラムを含む。システムは、データ及び規則を記憶す
る記憶手段を備える。システムはまた、1つまたは複数
の発動適格規則をデータに基づいて識別し、それらの規
則の1つを選択し、選択された規則を実行してデータを
変更する実行手段を備える。本発明のデバッグ・プログ
ラムは、発動適格規則の少なくとも1つを表示する手段
と、発動すべく選択された規則を表示する手段と、デー
タの少なくとも一部分を表示する手段と、ステッピング
手段から成る。ステッピング手段は、制御サイクルを進
め、選択された規則が実行される前の発、動前状態と、
選択された規則が実行され、変更されたデータに基づい
て新たな発動適格規則が識別された後の発効後状態を交
互に取る。ステッピング手段は、発動旧表示及び発動後
表示を自動的に提示する。好ましい実施例では、発動旧
表示には、実行前状態の間、発動適格規則の少なくとも
1つ、選択された規則、及びデータの少なくとも一部分
が含まれる。好ましい実施例の発動後表示には、新たに
識別された発動適格規則の少なくとも1つ、発動された
ばかりの選択された規則、及び変更されたデータの少な
くとも一部分が含まれる。
本発明は従来技術を以下の点で改良する。制御サイクル
を実行し、発動前情報及び発動後情報を表示するために
1つのコマンドのみを習得して使用するだけでよい。競
合セット、規則のテキスト、及び発動すべき次の規則中
のデータが、自動的に各発動旧表示で提示され、そのた
め、ユーザが正しい事例が発動すべく選択されたがどう
がを判定することが容易になる。規則のテキスト、発動
されたばかりの事例中のデータ、及び発動されたばかり
の規則によって変更されたデータが、自動的に各発動後
表示で提示され、そのため、データが正しく変更された
かどうか判定することが容易になる。好ましい実施例で
は、競合セット、規則テキスト及びデータがコンピュー
タ画面の別々のウィンドウに同時に表示され、関連情報
を画面上で同時に見える状態に保つことが容易になる。
本発明のその他の特徴及び利点は、添付の図面を参照し
た現時点で好ましい実施例についての以下の詳細な説明
から明らかになるはずである。
E、実施例 本発明の好ましい実施例は、制御サイクルを実行し、別
々の発動旧表示及び発動後表示を自動的に提示するため
の単一の制御コマンド(rSTEPJ)を提供する。こ
の好ましい実施例はまた、競合セット、規則テキスト、
及゛びデータ用に別々のウィンドウを使った上記の表示
を提供する。
本発明は推論システム・デバッグ・プログラムとして実
施される。このデバッグ・プログラムは、本発明の範囲
を超える大きな一群の機能をユーザに提供する。したが
って、以下では、3つの機能、すなわち、5TEPコマ
ンド、発動旧表示、及び発動後表示の実施態様のみに重
点を置いて説明する。
5TEPコマンドは、制御プログラムに制御すィクルを
実行させ、選択された規則が識別され発動の準備が行な
われる発動前状態と、選択された規則が発動されたばか
りの発効後状態を交互に取らせる。5TEPコマンドを
反復使用すると、ユーザは順方向連鎖推論システムのス
テップごとの挙動を監視することができる。
発動旧表示は、現在の競合セット、発動すべき次の事例
中の規則(選択された規則)のテキスト、及び選択され
た規則用のデータを示す。発動機表示は現在の競合セッ
ト、発動されたばかりの事例中の規則のテキスト、発動
されたばかりの事例中のデータ、及び発動されたばかり
の規則によって変更(更新、削除または新たに作成)さ
れたデータを示す。
第1図の流れ図は、本発明の2段デバッグ・プログラム
の好ましい実施例の動作の概略図である。
デバッグ・プログラム10は、基本的にループ12から
成り、ループ12は競合セット、選択された規則、及び
その規則用のデータを示し、次にコマンドを待つ。コマ
ンドを受は取るとコマンドが実行され、ループ12が繰
り返されて、表示を更新シ、次のコマンドを待つ。5T
EPコマンド以外のコマンドは、デバッグ・プログラム
の他の部分または制御プログラムに適宜波される。
14でデバッグ・プログラム10が初期設定されると、
競合セットを識別し、発動すべき規則を選択する制御プ
ログラムの最初のフェーズが実行される。デバッグ・プ
ログラム10は次に「発動前」状態になり、規則事例が
発動される準備ができていることを示す。次に、ループ
12に入り、競合セット、選択された規則、及びデータ
が表示される。
16で現在の競合セットが発動前状態及び発効後状態の
両方で表示される。次に、デバッグ・プログラムが発動
前状態の場合は、18で発動すべく選択された規則、そ
の規則に関連するデータ、及びデバッグ・プログラムの
発動前状態の状況標識が表示される。そうでない場合、
すなわち、デバッグ・プログラムが発効後状態(選択さ
れた規則の発動直後)の場合は、20で発動されたばか
りの規則によって変更されたデータが、デバッグ・プロ
グラムの発動後吠態を表わす状況標識と共に表示される
発動旧表示または発動機表示が行なわれた後、22でデ
バッグ・プログラム10はユーザからのコマンドを待つ
。ユーザが5TEPコマンド24を出した場合、デバッ
グ・プログラムの応答は、デバッグ・プログラムが発動
前状態かそれとも発効後状態かによって異なる。デバッ
グ・プログラム10が発動前状態にあり、選択された事
例が発動される準備ができている場合は、ユーザが5T
EPコマンド24を出したとき、26でデバッグ・プロ
グラムは制御プログラムに、選択された規則を発動させ
、発動されたばかりの規則によって更新されたデータに
基づいて新しい競合セットを識別させ、発動すべき次の
規則を選択させる。デバッグ・プログラムは次に発効後
状態になり、主ループ12が繰り返されて16.20で
発動機表示を示し、22で次のコマンドを待つ。
ユーザが5TEPコマンド24を出し、デバッグ・プロ
グラムが発効後状態にある場合は、28でデバッグ・プ
ログラムの状態は発動前にセットされ、主ループ12が
、競合セットが再表示されない意思外は上記と同様に繰
り返される。
ユーザが5TEP以外のデバッグ・プログラム・コマン
ド(制御プログラムに影響を及ぼさないコマンド)を入
力した場合は、30でコマンドがただちに実行され、次
に22でデバッグ・プログラム10は次のコマンドを待
つ。ユーザが制御プログラム・コマンド(制御プログラ
ムに影響を及ぼすデバッグ・プログラム・コマンド)を
入力した場合は、32でコマンドがただちに実行される
この実行により、新しい競合セットが識別され、発動す
べき規則が選択される。この後、デバッグ・プログラム
の状態は発動前にセットされ、主ループエ2が繰り返さ
れて18.18で発動旧表示を表示する。
次に、下記の例1に示す5TEPコマンドの疑似コード
による実施態様について考察する。例1の一部の行番号
が、迅速に参照できるように第1図の流れ図に含めであ
ることに留意されたい。
5TEPコマンド 5TEPコマンドは単一制御コマンドであり、これを使
うと、デバッグ・プログラムに制御サイクルを実行させ
、発動旧表示及び発動後表示を自動的に提示させること
ができる。5TEPコマンドを反復して使用すると、ユ
ーザは順方向連鎖推論(エキスパート)システムのステ
ップごとの挙動を監視することができる。本節では、5
TEPコマンドがどのように制御サイクルと発動旧表示
及び発動後表示を調整するかについて説明する。
デバッグ・プログラムは、情報の表示、ユーザ・コマン
ドの解釈及び制御プログラムを調整する。
制御プログラムとは、規則をデータに適用し、推論シス
テムの制御サイクルを具体化する手順である。5TEP
コマンドは、デバッグ・プログラムによって解釈される
コマンドの1つである。例1の疑似コードは、5TEP
コマンドがどのようにして、制御サイクルと発動旧表示
及び発効後表示提示を調整するかを示す。
例1 疑似コードによる5TEPコマンドの実現100 状態
=発動前 /傘状態度数を発動前にセットする6/102  RE
ADソース・コード /傘ファイルからソース・コードを読み出す6/104
  DISPLAYソース・ウィンドウ内のソース・コ
ード /掌つィンドウを表示する8/ 106  CALL制御プログラム 108    /”サイクルのフェーズ1及び2を実行
する寥/110  GET競合セット /宰制御プログラムからゲットする6/112  CL
EAR競合セット・ウィンドウ10ウインドウを消去す
る0/ 114  DISPLAY競合セット・ウィンドウに競
合セット /*ウィンドウを表示する$/ 11E!  GET発動前規則名 /8制御プログラムからゲットする11/118  G
ET発動前データ 120    /’制御プログラムからゲットする寥/
122  IF状態=発動前THEN  DO/6発動
前状態6/ 124    PO8ITION発動前規則テキストを
ソース・ウィンドウの上端に /1規則テキストを見えるようにするm112e   
 CLEARクラス・ウィンドウ10ウインドウを消去
する6/ 128    DISPLAY発動前データをクラス・
ウィンドウに /6ウインドウを表示する*/ 130    DISPLAYr発動前」状況標識をソ
ース・ウィンドウに 132    DISPLAYr発動前」状況標識をク
ラス・ウィンドウに 134    END 136  ELSE  D。
10発動後状態”/ CLEARクラス・ウィンドウ /6ウインドウを消去する*/ DISPLAY発動後データ発動子データィンドウに 10ウインドウを表示する0/ DISPLAYr発動後」状況標識をソース・ウィンド
ウに DISPLAYr発動後」状況標識をクラス・ウィンド
ウに ND 150  WAITコマンドを 戸ユーザ・コマンドヲ待つ0/ 152  IF:+マント=exit  THEN  
EXIT/*デバッグ・プログラムから出る61154
  IF:+マント=step  THEN  D。
/宰指定されたコマンドを5TEPする”/158  
  IF状態=発動前THEN  D。
711発動前状態”/ 158      CALL制御プログラム/*現在の
制御サイクルのフェーズ3と次の制御サイクルのフェー
ズ1及び2 を実行する8/ GET発動発動−デ ータ制御プログラムからゲットする0/状態=発動後 /*状態変数を発動後にセットする6/GOTO110 ND ELSE  D。
/”発動筏状m”/ 状態=発動前 /6状態変数を発動前にセットする傘/GOTO122 ND ND IFコマンド=制御プログラム・コマンドTHEN  
DO /6コマンドが制御プログラムに影響を及ぼす傘/18
2    CALL制御プログラム/6コマンドを実行
するため制御プログラムを呼び出す9/ 184   状態=発動前 15状態を発動前にセットする8/ 186    GOTO110 188END 190  ELSE  D。
/3コマンドが制御プログラムに影響を及ぼさない*/ 192    CALLサブルーチン 戸適当なデバッグ・サブ・レーチンを呼び出す0/ 194    GOTO150 196END 例1の疑似コード・プログラム・フラグメントは、次の
ように動作する。デバッグ・プログラムが最初に起動さ
れると、状態変数が発動前にセットされ(行100)、
推論システム・ソース・コードがファイルから読み出さ
れ(行102)、画面上のソース・ウィンドウに表示さ
れる(行104)。
次に、制御サイクルのフェーズ1及び2を実行するため
に制御プログラムが呼び出される(行106)。上述の
ように、制御サイクルのフェーズ1では、すべての規則
事例のセットから発動適格規則事例セット(競合セット
)を識別する。フェーズ2で、発動すべき次の規則事例
が発動適格規則事例セットから選択される。デバッグ・
プログラムは、得られた競合セットを制御プログラムか
らゲットしく行110)、画面の競合セット・ウィンド
ウに表示する(行112−114)。デバッグ・プログ
ラムはまた、規則名及び発動すべき次の事例中のデータ
を制御プログラムからゲットする(行116−118)
次に、デバッグ・プログラムは、状態変数が発動前にセ
ットされているのか、それとも発動後にセットされてい
るのか判定するために検査を行なう(行122)。発動
前の場合は、発動すべき次の事例中の規則のテキストを
示すため、ソース・コードがソース・ウィンドウに置か
れる(行124)。発動すべき次の事例中のデータがク
ラス・ウィンドウに表示される(行128−128)。
「発動前」状況標識がソース・ウィンドウ及びクラス・
ウィンドウに示される(行130−132)。
状態変数が発動後にセットされている場合は(行138
)、デバッグ・プログラムは、発動されたばかりの事例
中のデータ、及び発動されたばかりの規則によって変更
されたデータをクラス・ウィンドウに表示する(行13
8−140)。
「発動後」状況標識がソース・ウィンドウ及びクラス・
ウィンドウに示される(行142−144)。
次に、デバッグ・プログラムは、ユーザがコマンドを指
是するのを待つ(行150)。2つのコマンド(STE
PとEXIT)がデバッグ・プログラムの表示を制御し
、例1に示すプログラムによって処理される。他のすべ
てのデバッグ・プログラム・コマンドは実行のためデバ
ッグ・プログラムの他の部分に渡される。制御プログラ
ム用のコマンド(たとえば、ALLOCATElUPD
ATE、DELETE、RUN等)が制御プログラムに
送られる。デバッグ・プログラム・コマンドまたは制御
プログラム・コマンドが実行された後、例1のプログラ
ム・フラグメントが実行を再開する。
ユーザがコマンドを指定すると、デバッグ・プログラム
は、コマンドがEXITかどうか調べる(行152)。
コマンドがEXITである場合、デバッグ・プログラム
は終了する(行152)。
コマンドがEXITでない場合は、プログラムは、コマ
ンドが5TEPかどうか調べる(行154)。
コマンドが5TEPである場合、プログラムは、状態変
数が発動前かどうか調べる(行156)。
発動前である場合は、現在の制御サイクルのフェーズ3
と次の制御サイクルのフェーズ1及び2を実行するため
に制御プログラムが呼び出される(行158)。フェー
ズ3で、選択された規則事例が発動され、データを変更
する。制御サイクルのフェーズ1及び2は例1の行10
6について上記で説明した通りである。デバッグ・プロ
グラムは、得られた発動後データ(発動されたばかりの
事例中のデータ、及び発動されたばかりの規則によって
変更されたデータ)を制御プログラムからゲットする(
行160)。状態変数が発動後に変更され(行IE32
)、プログラムは分岐して行110に戻り(行164)
表示を再生する。コマンドが5TEPであり、状態変数
が発動後である場合は(行188)、状態変数が発動前
に変更され(行170)、プログラムは分岐して行12
2に戻り(行172)表示を再生する。
コマンドが5TEPでない場合、プログラムは、コマン
ドが、制御プログラムに影響を及ぼす他のコマンドの1
つであるかどうか調べ(行180)、そうである場合、
コマンドを実行するために制御プログラムが呼び出され
る(行182)。コマンドが実行された後、状態変数が
発動前にセットされ(行184)、デバッグ・プログラ
ムは分岐して行110に戻り(行186)表示を再生す
る。
コマンドが、制御プログラムに影響を及ぼすコマンドの
1つでない場合は(行190)、コマンドを実行するた
めに適当なデバッグ・プログラム・サブルーチンが呼び
出される(行192)。コマンドが実行された後、デバ
ッグ・プログラムは分岐して行150に戻り(行194
)次のコマンドを待つ。
又■旦皇丞 発動旧表示を用いると、正しい事例が発動すべく選択さ
れたかどうか判定するために、ユーザが各事例を発動さ
れる前に監視することができる。
事例が正しいかどうか判定するため、ユーザは、競合セ
ット、規則のテキスト、及び発動すべき次の事例中のデ
ータを相互の関連で調べる必要がある。発動旧表示は、
競合セット、規則のテキスト、及び発動すべき次の事例
中のデータを提示する。
これらの情報源は同じ表示の別々のウィンドウに提示さ
れる。
発動旧表示のサンプルを第2図に示す。表示34はソー
ス、競合セット、及びクラス用の別々の3つのウィンド
ウを含む。ウィンドウとは、関連情報を表示するために
使用されるコンピュータ画面の区域である。ウィンドウ
は一般に矩形であり、明確な境界で区切られている。ウ
ィンドウに表示される情報がウィンドウよりも大きいこ
とがある。
したがって、情報がウィンドウに表示されるとき、−時
に情報の一部分しか見えないことがある。情報のどの部
分もウィンドウ内で見ることができるように、ウィンド
ウに対して情報の位置を変える機能が備えられている。
ソース・ウィンドウ36は、発動すべき次の事例中の規
則のテキストを表示する。第2図のソース・ウィンドウ
は、発動すべき次の規則がFEVERRULEという名
前であることを示す。規則のテキストは、基礎となる推
論システム言語で現われる。この規則は、日本語に直す
とrIF患者の体温が105度を超えた場合THEN治
療は氷と液体の使用を含む」ということになる。競合セ
ット・ウィンドウ38は、発動される資格がある規則事
例セットを示す。第2図の発動前表示のサンプルは、3
つの事例が発動される資格があることを示していること
に留意されたい。
クラス・ウィンドウ40は、発動すべき次の事例中のデ
ータ要素の値を示す。第2図では、発動すべき次の事例
中のデータは、患者の体温が106度であるという事実
を表わしている。以下の諸節では、ウィンドウの内容に
ついてさらに詳細に説明する。
ソース・ウィンドウ36の上部境界に、現在実行中の推
論システムのソース・コードを示ス「5OURCEJと
いうタイトルが提示される。規則テキストはソース・コ
ードの一部分を含む。第2図ではソース・コードがソー
ス・ウィンドウよりも大きいことに留意されたい。ソー
ス・コードは、発動すべき次の事例中の規則(たとえば
、FEVERRULE)のテキストを表示するように、
ウィンドウ内で自動的に位置変更される。ソース・ウィ
ンドウの最初の行は、ソース・コード(たとえば、ME
DICAL  5OURCE  A)及び発動前状況標
識46を含むファイルを示す。
競合セット・ウィンドウ38の上部境界に、現在の競合
セットを示すタイトルrcONFL I CT  5E
TJが提示される。競合セット内の各事例ごとに1行の
テキスト42が表示される。各行は、その事例を含む規
則手順の名前(たとえば、ACUTE) 、事例中の規
則の名前(たとえば、FEVERRULE)、及び事例
中のクラス・メンバーの時間タグ(たとえば、16)を
含む。
規則手順とは、ユーザが定義するソース・コード内の関
連規則のグループである。ソース・コードは1つまたは
複数の規則手順を含むことができる。
この好ましい実施例では、データ要素は、各要素がユー
ザが定義するクラスまたはデータ・タイプに属するので
、「クラス・メンバー」と呼ばれる。
各クラスは名前(たとえば、TEMPERATURE)
 、及びデータの異なる面を示す1つまたは複数の属性
(たとえば、CURRENT)を有する。同じクラスの
すべてのメンバーは同じ名前と属性を存するが、異なる
属性値を有することができる。たとえば、クラスTEM
PERATUREの1つのメンバーはCURRENT値
が106、別のメンバーはCURRENT値が107で
ある。
このため、同じ形式の複数のデータ要素、または複数の
同じデータ要素を表わすことができる。
各データ要素(クラス・メンバー)は、時間タグと呼ば
れる一義的な数字で識別される。データ要素は、作成時
に時間タグを割り当てられる。データ要素が変更される
たびに、新しい時間タグを割り当てられる。時間タグは
、最近に変更されたデータ要素が最大の時間タグをもつ
ように割り当てられる。競合解決手段で時間タグを使っ
て、どの事例を次に発動すべく選択すべきかを決定する
ことができる。これは、問題を解決する際に新しい情報
に注意を集中するという人間の問題解決戦略に類似して
いる。
事例は、制御プログラムの一部である競合解決手順に基
づいて、発動される資格が高い順に上から下に、競合セ
ット・ウィンドウ38に提示される。競合解決手順は、
発動すべき競合解決の1つのメンバーを選択する。競合
解決手順の詳細は本発明を理解するのに不可欠ではなく
、かつ当技術では周知であるので、これ以上は考察しな
い。発動される次の事例44(たとえば、ACUTEl
FEVERRULE(1B))が一番上に提示される。
競合セット・ウィンドウ38の最初の行はサイクル標識
「C」、及び競合セブ) rIJ中の事例の数を示す。
サイクル標識は、推論システムが起動されて以降に発動
された規則の数を示す。
クラス・ウィンドウ40の上部境界に、タイトルrcL
AssJが示される。クラス・ウィンドウの最初の行は
発動前標1i46を示す。発動旧表示34では、クラス
・ウィンドウは、発動される次の事例中のデータ要素4
8(クラス・メンバー)を示す。クラスの名前(たとえ
ば、TEMPERATURE)及びデータ要素の時間タ
グ(たとえば、16)を示すヘッダ行が、各データ要素
ごとに表示される。各ヘッダに続いて、データ要素内の
各属性値対(たとえば、TEMPERATURE  C
URRENT=106)を表わす行49が提示される。
データ要素の順序は、発動される次の規則のテキスト中
の条件の順序と一致する。
ウィンドウ及びその内容は本発明の重要な部分であるが
、画面上にウィンドウを構成するための手順の詳細は重
要ではない。画面上にウィンドウを構成するための手順
は多数あり、当技術で周知である。
発動旧表示34を用いると、正しい事例が発動すべく選
択されたかどうか判定するために、発動される前にユー
ザが各規則事例を監視することができる。事例が正しい
かどうか判定するため、ユーザは、競合セット、発動す
べき次の事例の規則のテキスト、及びその規則中のデー
タを相互の関連で調べる必要がある。本発明のデバッグ
・プログラムの発動旧表示34は、この情報を同じ表示
の別々のウィンドウ3B、38.40に提示し、エキス
パート・システムをデバッグするジョブを簡単にする。
一穴ai*丞 発効後表示を用いると、データに対して正しい変更が加
えられたかどうか判定するために、ユーザが、事例が発
動された後にデータに対して加えられた変更(更新、削
除、新たに作成されたデータ)を監視することができる
。それを判定するために、ユーザは、変更されたデータ
を、発動されたばかりの事例中の規則のテキスト及びデ
ータとの関連で調べる必要がある。発効後表示は、競合
セット、規則のテキスト、及び発動されたばかりの事例
中のデータを、発動されたばかりの規則によって変更さ
れたデータと共に提示する。これらの情報源は同じ表示
の別々のウィンドウに提示される。
発効後表示のサンプルを第3図に示す。この例は、第2
図の発動旧表示に示された規則事例が発動された直後に
出る発効後表示を示す。発効後表示50は、発動旧表示
と同じ別々の3つのウィンドウ、すなわち、ソース・ウ
ィンドウ36、競合ウィンドウ38及びクラス・ウィン
ドウ40を含む。発効後表示50の上述の発動旧表示3
4とは異なる点についてのみ以下で考察する。
ソース・コードは、発動されたばかりの事例中の規則の
テキストを表示するように、ソース・ウィンドウ3θ内
で位置決めされる。ソース・ウィンドウの最初の行は発
動後標?a52を示す。第2図の発動旧表示34に示さ
れた事例44の発動後、同じ規則テキスト(たとえば、
FEVERRULE)が発効後表示50のソース・ウィ
ンドウに引き続き示されることに留意されたい。
現在の競合セットが競合セット・ウィンドウ38に提示
される。競合セットの様式は発動旧表示と同じである。
第2図の発動旧表示34に示された事例44の発動後、
今度は「現在の」競合セットが違っていることに留意さ
れたい。発効後表示50は、発動旧表示に示された事例
を発動した効果によって生じる競合セットを示す。同じ
発効後表示のサンプル50で、発動されたばかりの事例
rACUTE、FEVERRULE (16)Jはもは
や競合セット中にはない。
クラス・ウィンドウ40の最初の行は発動後標識52を
示す。クラス・ウィンドウは、発動されたばかりの規則
によって変更されたデータ要素(クラス・メンバー)を
示す。発動されたばかりの規則によって変更されなかっ
た、発動されたばかりの事例中のデータも示される。第
3図は、選択された事例rAcUTE、FEVERRU
LE(16)Jを発動した結果、VALUE r氷及び
液体の使用」を持つクラスTREATMENTの新しい
データ要素が作成されたことを示す。
発動後表示50中のデータは発動旧表示と同じ様式で提
示される。しかし、それらは変更の樺順に応じてまとめ
られる。各グループの前に、そのグループに対して加え
られた変更の種類を記述する行がくる。グループは、変
更されたデータが未変更データの前にくるように分類さ
れる。
発効後表示50を用いると、ユーザが事例44の後でデ
ータに対して加えられた変更を監視することができる。
正しい変更が加えられたかどうか判定するため、ユーザ
は、変更されたデータを、発動されたばかりの事例中の
規則のテキスト及びデータとの関連で調べる必要がある
。発動後表示は、この情報を同じ表示の別々のウィンド
ウ36.38.40に提示し、エキスパート・システム
をデバッグするジョブを簡単にする。
デバッグ・プログラムの 以下に、医療用推論システムのサンプルにおける5TE
Pコマンドの使用を示す。このシステムの目的は、シス
テム内の規則と、システムに対する一組の徴候(データ
)入力に基づいて、治療を処方することである。徴候(
データ)はすでにシステムに入力されているものとし、
ユーザは、どの治療を処方すべきか決定する際にシステ
ムのステップごとの挙動を調べようとする。
デバッグ・プログラムが起動された後、第2図に示すよ
うな最初の(発動前)表示34が、自動的に提示される
。競合セット・ウィンドウ38は、システム内の規則及
びデータに基づいて3つの事例42が発動される資格が
あることを示す。発動される次の事例44が競合セット
・ウィンドウにR初の事例(ACUTE、FEVERR
ULE(16))として提示される。
ソース・ウィンドウ36は、発動される次の事例44中
の規則(Dyキス)(FEVERRULE)を示す。こ
の規則は、日本語に直すとrIF患者の体温が105度
を超えた場合THEN治療は氷及び液体の使用を含む」
ということになる。
クラス・ウィンドウ40は、発動される次の事例44中
のデータ要素を自動的に示す。このデータ要素は、患者
の体温が106度であるという事実を示している。
ユーザは、規則を発動させ、5TEPコマンドを指定し
て、第3図に示すような発動後表示50を表示させる。
競合セット・ウィンドウ38は、このとき2つの事例4
2が発動される資格があることを示す。発動される次の
事例44が競合セット・ウィンドウに最初の事例(AC
UTElMILD  C0UGHRULE (7))と
して提示される。ソース・ウィンドウ36は、発動され
たばかりの事例中の規則のテキスト(FEVERRUL
E)を自動的に示す。
クラス・ウィンドウ40は、発動されたばかりの事例に
よって新たに作成されたデータ要素を自動的に示す。こ
のデータ要素は、患者の治療が氷と液体の使用を含むべ
きことを示している。規則の処置部分をクラス・ウィン
ドウ中の新しいデータ要素と比較することにより、ユー
ザは、規則の処置部分が正しく実行されたことを認める
ことができる。
ユーザは、次に5TEPコマンドを再び指定して、次の
発動旧表示34°を提示させる。この発動旧表示を第4
図に示す。競合セット・ウィンドウ38は、前と同じ競
合セットを引き続き示す。
ソース・ウィンドウ36は、発動される次の事例中ノ規
則のチーt−スト44(MILD  C0UGHRUL
E)を自動的に示す。この規則は、日本語に直すとrI
F患者が軽いせきを少しする場合THEN治療はせき止
めドロップを含む」ということになる。クラス・ウィン
ドウ40は、発動される次の事例44中のデータ要素を
自動的に示す。
そのデータ要素は、患者が軽いせきを少しするという事
実を示している。
ユーザは、5TEPコマンドを再び指定して、規則を発
動させ、第5図に示すような発動後表示50’を表示さ
せる。競合セット・ウィンドウ38は、このとき1つの
事例42 (ACUTE、C0NGESTION  R
ULE(13))のみが発動される資格があることを示
す。ソース・ウィンドウ36は、発動されたばかりの事
例中の規則のテキスト(MILD  C0UGHRUL
E)を自動的に示す。クラス・ウィンドウ40は、発動
されたばかりの事例によって新たに作成されたデータ要
素を自動的に示す。このデータ要素は、患者の治療はせ
き止めドロップの使用を含むべきことを示している。規
則の処置部分をクラス・ウィンドウ40中の新しいデー
タ要素と比較することにより、ユーザは、規則の処置部
分が正しく実行されたことを再び認めることができる。
以上概略を述べた方式で5TEPコマンドを引き続き使
用することにより、ユーザはこの医療用推論(エキスパ
ート)システムのサンプルのステップごとの挙動を監視
することができる。システムの実際の挙動を意図した挙
動と比較することにより、ユーザはシステムのエラーを
発見して訂正する、すなわち、システムをデバッグする
ことができる。
本発明で記述したデバッグの方法は、オーバーラツプ・
ウィンドウまたはタイル式ウィンドウを使用して実現す
ることができる。ウィンドウ式表示は一般に、画面上の
ウィンドウの位置及び大きさを相対的に変更する機能を
備えている。オーバーラツプ・ウィンドウは、1つのウ
ィンドウが部分的または完全に別のウィンドウと重なる
ことができる。これは、机の上で紙を散らかして重ねる
ことに似ている。タイル式ウィンドウは、ウィンドウが
重なることができない。これは、紙の端が互いに重なら
ない、ように机の上で紙をきちんと並べることに似てい
る。オーバーラツプ・ウィンドウの場合は、ウィンドウ
が画面上に表示される順序が重要である。なぜならば、
それによって、どのウィンドウが別のウィンドウに重な
るかが決まるからである。タイル式ウィンドウの場合は
、ウィンドウは重ならないので、ウィンドウが表示され
る順序は重要でない。例1に示した5TEPコマンドの
疑似コードでは、ウィンドウが常に同じ一定した順序で
表示されるので、タイル式ウィンドウを想定している。
これは、ウィンドウの表示順を任意の順序にすることに
より、オーバーラツプ方式に適合するように容易に変更
することができる。そして、もちろん、本発明で記述し
たデバッグ方法は任意の順方向連鎖推論システムに適用
することができる。
F4発明の詳細 な説明したように本発明によれば、制御サイクルを実行
し、発動前情報及び発動後情報を表示するために1つの
コマンドのみを習得して使用するだけでよい−。競合セ
ット、規則のテキスト、及び発動すべき次の規則中のデ
ータが、自動的に各発動旧表示で提示され、そのため、
ユーザが正しい事例が発動すべく選択されたかどうかを
判定することが容易になる。規則のテキスト、発動され
たばかりの事例中のデータ、及び発動されたばかりの規
則によって変更されたデータが、自動的に各発動機表示
で提示され、そのため、データが正しく変更されたかど
うか判定することが容易になる。好ましい実施例では、
競合セット、規則テキスト及びデータがコンピュータ画
面の別々のウィンドウに同時に表示され、関連情報を画
面上で同時に見える状態に保つことが容易になる。
【図面の簡単な説明】
第1図は、順方向連鎖エキスパート・システムで使用さ
れる本発明の好ましい実施例の方法の概略説明図である
。 第2図は、医療用順方向連鎖エキスパート・システム用
の本発明の好ましい実施例による発動旧表示の画面イメ
ージである(英文仕様のアプリケーシヨンであるから日
本語への翻訳は不可能ないし無意味である。第3図〜第
5図も同様である)。 第3図は、第2図の5TEPコマンドが出された直後の
発動機表示の画面イメージである。 第4図は、第3図の5TEPコマンドが出された直後の
第2図の医療用システムの発動旧表示の画面イメージで
ある。 第5図は、第4図の5TEPコマンドが出された直後の
発動機表示の画面イメージである。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 復代理人 弁理士  澤  1) 俊  夫第12

Claims (1)

  1. 【特許請求の範囲】 データ及び規則を記憶する記憶手段と、データに基づい
    て適格な規則を特定し、適格な規則の1つを選択して発
    動しデータを修正する実行手段とを含むエキスパート・
    システムにおいて、 上記適格な規則のうちの少なくとも1つを表示する手段
    と、 上記データの少なくとも一部を表示する手段と、ユーザ
    の入力に応じて、 (i)選択された規則の発動に先立って、上記適格な規
    則のうちの少なくとも1つ及び上記データの少なくとも
    一部を表示する処理と、 (ii)選択された規則の発動ののちに、新たに特定さ
    れた適格な規則のうちの少なくとも1つ及び修正された
    データの少なくとも一部を表示する処理とを交互に実行
    する手段とを有することを特徴とするエキスパート・シ
    ステム。
JP1155973A 1988-09-16 1989-06-20 エキスパート・システム Pending JPH0293937A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/245,475 US4941102A (en) 1988-09-16 1988-09-16 Two-step debugger for expert systems
US245475 1994-05-18

Publications (1)

Publication Number Publication Date
JPH0293937A true JPH0293937A (ja) 1990-04-04

Family

ID=22926813

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1155973A Pending JPH0293937A (ja) 1988-09-16 1989-06-20 エキスパート・システム

Country Status (4)

Country Link
US (1) US4941102A (ja)
EP (1) EP0359726B1 (ja)
JP (1) JPH0293937A (ja)
DE (1) DE68921122D1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2066724C (en) * 1989-09-01 2000-12-05 Helge Knudsen Operating system and data base
US5164912A (en) * 1989-11-17 1992-11-17 Westinghouse Electric Corp. Expert system tester
US5119470A (en) * 1990-04-27 1992-06-02 Ibm Corporation Computer based inference engine device and method thereof for integrating backward chaining and forward chaining reasoning
US5293629A (en) * 1990-11-30 1994-03-08 Abraxas Software, Inc. Method of analyzing computer source code
JPH0695879A (ja) * 1992-05-05 1994-04-08 Internatl Business Mach Corp <Ibm> コンピュータシステム
CA2105055C (en) * 1993-01-05 1998-06-16 Jeffrey Scott Boston Window restoration methods for halted debuggee window applications
GB9519677D0 (en) * 1995-09-27 1995-11-29 Philips Electronics Nv Data processing apparatus event cause determination
US6125359A (en) * 1997-09-23 2000-09-26 Unisys Corporation Method and apparatus for identifying the coverage of a test sequence in a rules-based expert system
US6542880B2 (en) * 1998-12-22 2003-04-01 Indeliq, Inc. System, method and article of manufacture for a goal based system utilizing a table based architecture
US6782374B2 (en) * 1998-12-22 2004-08-24 Accenture Global Services Gmbh System, method and article of manufacturing for a runtime program analysis tool for a simulation engine
US7240334B1 (en) 2000-06-29 2007-07-03 International Business Machines Corporation Methods, systems, and computer program products for deferred computer program tracing
US7020869B2 (en) * 2000-12-01 2006-03-28 Corticon Technologies, Inc. Business rules user interface for development of adaptable enterprise applications
US7284274B1 (en) * 2001-01-18 2007-10-16 Cigital, Inc. System and method for identifying and eliminating vulnerabilities in computer software applications

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01277941A (ja) * 1988-04-30 1989-11-08 Meidensha Corp 推論ステップ方式

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4591983A (en) * 1984-07-09 1986-05-27 Teknowledge, Inc. Hierarchical knowledge system
JPH0614320B2 (ja) * 1984-10-17 1994-02-23 株式会社日立製作所 図式プログラム・テスト方法
US4809219A (en) * 1985-06-26 1989-02-28 International Business Machines Corporation Method for processing an expert system rulebase on a system having limited memory
US4713775A (en) * 1985-08-21 1987-12-15 Teknowledge, Incorporated Intelligent assistant for using and operating computer system capabilities to solve problems
US4696003A (en) * 1986-03-10 1987-09-22 International Business Machines Corporation System for testing interactive software
US4752889A (en) * 1986-08-18 1988-06-21 Neuron Data, Inc. Dynamic, interactive display system for a knowledge base
US4819234A (en) * 1987-05-01 1989-04-04 Prime Computer, Inc. Operating system debugger

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01277941A (ja) * 1988-04-30 1989-11-08 Meidensha Corp 推論ステップ方式

Also Published As

Publication number Publication date
EP0359726B1 (en) 1995-02-15
US4941102A (en) 1990-07-10
EP0359726A2 (en) 1990-03-21
EP0359726A3 (en) 1991-06-12
DE68921122D1 (de) 1995-03-23

Similar Documents

Publication Publication Date Title
Oppermann Adaptively supported adaptability
JPH0293937A (ja) エキスパート・システム
US6833847B1 (en) Visual wizard launch pad
US8429605B2 (en) Finite state machine architecture for software development
US6016146A (en) Method and apparatus for enhancing template creation and manipulation in a graphical user interface
JPH07168710A (ja) プログラムを構成するためのシステム及び方法
JPH0827774B2 (ja) 修正可能な機能をサーバ上で実行する方法
JPH01147627A (ja) 質問応答装置
JPS63118841A (ja) 計算装置
US5781905A (en) Program generating method combining data item part with database manipulation part
EP0696771A2 (en) A method for programming a data processing system
Anderson et al. The RAND intelligent terminal agent (RITA) as a network access aid
JPH09231061A (ja) プログラミング支援装置および方法
Frankel et al. An on-line assistance system for the simulation model development environment
JP2000231480A (ja) ソフトウェアの自動生成装置および方法、画面生成装置、記録媒体
JPH08101766A (ja) 計算機の操作方法および操作装置
JPH0778215A (ja) 業務プログラムの実行方法
Leipert The Tree Interface—Version 1.0 User Manual
JP3635583B2 (ja) 情報処理装置におけるユーザインタフェースの制御装置、及び情報処理方法
JPH01243113A (ja) 木構造データの表示選択方法
Krasner The Smalltalk-80 System: Applying the Object-Oriented Principle Throughout the Environment
Morgado et al. Using Excel as a Database Repository
Morgado et al. Creating and Setting a Worksheet Database Class
JPH064390A (ja) 情報処理システム
Broome et al. User’s Guide to the GMU Version of ISM for Windows