JPS62169235A - エキスパート・システムにおける情報収集方法 - Google Patents

エキスパート・システムにおける情報収集方法

Info

Publication number
JPS62169235A
JPS62169235A JP61299040A JP29904086A JPS62169235A JP S62169235 A JPS62169235 A JP S62169235A JP 61299040 A JP61299040 A JP 61299040A JP 29904086 A JP29904086 A JP 29904086A JP S62169235 A JPS62169235 A JP S62169235A
Authority
JP
Japan
Prior art keywords
node
rule
class
procedure
attribute
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.)
Granted
Application number
JP61299040A
Other languages
English (en)
Other versions
JPH0630064B2 (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.)
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 JPS62169235A publication Critical patent/JPS62169235A/ja
Publication of JPH0630064B2 publication Critical patent/JPH0630064B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

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

Description

【発明の詳細な説明】 以下の順序で本発明を説明する。
A、産業上の利用分野 B、従来技術 B−1,エキスパート・システム対問題解決システム B−2,エキスパート・システムに関係する人間 B−3,エンド・ユーザー B−4,専門家 B−5,知識エンジニア B−6,推論ルール B−7,推論方法 B−8,確信度 B−9,既存のエキスパート・システムC0発明が解決
しようとする問題点 り0問題点を解決するための手段 E、実施例 E −1、シx−rb、ノ’f)AtAE−2,スーパ
バイザ E−3#ユーザー・インタフェース E−40手続きノード・インタフェースE−5,ルール
・ベース E−6,推論機構 E−7,単純なルール・ベースW造 E−8,確信度の計算 E−9,属性 E−1,0,ルール・ベース間での情報の受は渡し E−11,グローバル・リスト E−12,クラス・セツション E−1,3,パラメータ・セクション E−14,手続きセクション E−15,ルール・セクション E−16,記号セクション E−17,結論された目標のリスト E−18.データ構造の概観 E−19,リンク・リスト E−20,クラス・レコード E−21,手続きリスト・レコード E−22,パラメータ・リスト・レコードE−23,属
性リスト E−24,ハツシュ表 E−25,メンバーシップ・リンク・リストE−26.
パラメータ・リンク・リストの構成E−27.ルール・
リスト E−28,システムの動作 F0発明の効果 A、産業上の利用分野 本発明は一般にエキスパート・システム・特にユーザー
に対して要求される質問に対する答が、以前システムに
よって集められた関連情報から間接的に得られるように
したエキスパート・システムに関する。
B、従来技術 エキスパート・システムとは、ある特殊な種類の問題解
決コンピュータ・プログラムである。エキスパート・シ
ステムの一般的な機能は、高度の訓練を受は且つ経験の
ある専門家によって通常は解答されるような問題を解決
する(又はその解決を援助する)事である。これは新規
な目標ではない、事実、多くの成功したコンピュータ・
プログラムは、ある特定の問題領域において専門家レベ
ルの性能を提供するという点で顕著な成功を収めている
。エキスパート・システム型のプログラムに関して何が
相違しているかというと、それはプログラムの結果物で
はなく、取られたアプローチである。
B−1,エキスート・システム対uM迩冨靴ト221人 エキスパート・システムと従来の問題解決プログラムと
の間の主要な相違点は、その問題に関係した専門知識が
コード化される方式である。従来のアプリケーション・
プログラムでは、問題についての専門知識は、プログラ
ムとデータ構造との両者にコード化された。このような
構造は、いくつかの不幸な結果をもたらす。即ち。
1、コード化された専門知識は、プログラマでない、問
題の専門家にとって、明瞭でない。
2、プログラムは変更が鬼しい。
3、プログラムは他の目的のために使えない。
エキスパート・システ11のアプローチにおいては、問
題に関係した専門知識の全てがデータ構造の形だけでコ
ード化される。プログラム中には何も存在しない。この
構造から直ちに、いくつかの利点が得られる。
従来の問題解決プログラムとエキスパート・システムの
アプローチとを対比するのに、例が役立つであろう。こ
の例は税金についての助言の問題である。従来のアプロ
ーチでは、データ構造が納税者及び税金の表を記述し、
一方例えば納税者に対する税金表の選択についての情報
に関係した記述等の専門家の税金コンサルタントの知識
を表わす記述はプログラム中に存在する6税金の専門家
にとって理解し又は修正する事が困難なのは、税金専門
家の知識についてのこの表現である。
エキスパート・システムのアプローチでは、納税者及び
税金の計算についての情報は同様にデータ構造中に見い
出されるが、それらの間の関係を記述した知識もまた。
ここではデータ構造中にコード化されている。エキスパ
ート・システムのプログラムは問題領域(税金)から独
立であり、それらが記述する問題領域の性質に無関係に
データ構造を処理するのに役立つ。例えば、ユーザーと
の対話を通じてデータ値を取得するプログラム、記述の
特別な構成を表現し処理するプログラム、そして処理シ
ーケンス及び焦点を制御するアルゴリズム並びに問題領
域内の意味論的関係を表現する宣言を処理するプログラ
ムが存在する。
エキスパート・システムのアプローチの他の利点を説明
する。このプログラムは問題領域に独立なので、新しい
問題領域について記述した知識宣言を新たに収集し、そ
れらを処理するために古いプログラムを用いた場合、も
し新しい問題領域が古い問題領域で使用したデータ構造
で記述可能であれば、(そのときに限って)、これはう
まく働く。従って、プログラミング・ベースがすでに存
在していれば、システムを構築するのに必要な時間は大
幅に減少される。
エキスパート・システムは一般的に、2個の主要な構成
部品からできている。即ち、知識ベース又はルール・ベ
ースと呼ばれる、問題に依存する、データ宣言の組、そ
して推論エンジンと呼ばれる、問題から独立した(但し
データ構造には高度に依存的な)プログラムである。
B−2,エキスパート・システムに 能を五Δ里一般に
、エキスパート・システムに関係する人間が3人存在す
る。最初の人物はエンド・ユーザーである。これは問題
解決の援助のためのシステムを使用する人間である6シ
ステムの構築及び保守において、他に2つの役割が存在
する。1つは知識ベースを作成する問題領域の専門家で
あり、もう1つは知識の表現を決定する時に専門家を援
助し且つ有用な問題解決能力を得るために必要な推論技
術を定義する知識エンジニアである。
B−3,エンド・ユーザー エンド・ユーザーは、通常対話式にエキスパート・シス
テムを使用する。下記にその1例を示す。
Q、あなたは自分がどこのレストランに行きたいか知っ
ていますか? A、いいえ Q、あなたが特に好きな食べ物がありますか?A、わか
りません Q、あなたはスパイスのきいた食べ物が好きですか? A、いいえ Q、あなたは雪道、食事と一緒にワインを飲みますか? A、はい Q、あなたがワインを飲む時、それはフランスのワイン
ですか? A、何故(そのような事を聞くの)ですがこの対話から
れかるように、システムは一組の質問を通じてユーザー
を先導する。その目的は、推薦すべき適当なレストラン
の組を決定する事である。この対話は、ユーザーが既に
レストランの選択を知っているかどうかをシステムが尋
ねる事から開始する(エキスパート・システムの共通の
特徴)。これはエキスパート・システムの特性を直接的
に示している。ユーザーは質問に応答しないという選択
をしてもよい。エキスパー1−・システムにおいては、
対話は事前に計画されてぃず。
何の固定的な制御構造も存在しない。対話は、現在の情
報と知識ベースの内容とから合成される。
従って、特定の質問に答を与える事ができなくても、コ
ンサルテーションは停止しない。
エキスパート・システムと従来のシステムとの間のもう
1つの主要な相違点は、上記の例で行なわれたような質
問にユーザーが質問で答えた時にシステムによって与え
られる下記の答によって示されている。
A、私は提案すべきレストランの種類を決定しようと試
みています、今の所、中華料理は適当な選択ではありま
せん、フランス料理は適当な選択である可能性がありま
す、私は、もし食事をする人がワインを飲むならば、そ
して好きなワインがフランスのものであれば、レストラ
ンの選択はフランス料理のレストランを含むべきである
という強い証拠がある事を知っています。
従来のシステムでは、(「何故Jとかrどうして」とか
いう質問に答える)一般的な説明システムを実現する事
は非常に困難である。質問「何故」に対するエキスパー
ト・システムの応答は、鋸礎を成す知識構造の開示であ
る。それは、もしそれが真であれば結論を出す事を可能
にする先行条件の組;及びルールである。ルールは値を
参照し、それらを種々の拘束条件に対してテストし、又
はそれらに対する拘束条件を出す。これは、事実上、知
識構造の重要な部分である。ある組織化エンテイテイー
に関係付けられる事のできる数値が存在する。例えば、
夕食は、食事をする人がワインを飲むかどうか及びワイ
ンの種類等の種々の属性(値)を有するエンテイテイー
である。また、ある属性の現在知られている値を、他の
属性について行なう事のできる主張に関係付けるルール
も存在する。対話自体を指令するのは、それらのルール
の順序立った処理である。
B−4,専ツ家 エキスパート もし先程の対話が1組のレストランの選択で終了し、そ
れが専門家の推薦と一致しなかったとすると、その分野
の専門家と仮説的なシステムとの対話を説明できるにの
時、専門家は説明機構を利用して、システムによって行
なわれた理由付けを明らかにし、誤った点を発見する。
この過程は。
部分的には、基礎をなしている知識の宣言(ルール及び
値)を理解する専門家の能力によって可能になっている
。この例では、専門家は人が食事をする時にはいくつか
の異なった場合が存在する事に気付いているがシステム
はそうでないという理由で、専門家の選択がシステムの
選択と違ったと仮定する。特に、専門家は下記の3つの
違った場合を考慮しているものとする。
1、業務 2、社交 3、私的交際 さらに、専門家はこの情報を利用して、提案するレスト
ランの選択を改善するのに役立たせる。1つのルールは
次のようなものであろう。
もしレストランの選択がフランス料理店を含み且つ場合
が私的交際であれば、レストランの選 択は確定的にr
Jacques in le BoxJである。
B−511エンジニア 良い知識表現に関して行なう事のできるいくつかの観察
事項が存在する。
1、良い知識表現は、数値的知識と共に記号的知識をと
らえなければならない。
2、良い知識表現は、プログラミングに習熟していない
、その分野の専門家にとっても明ら か(透明)でなけ
ればならない。
3、良い知識表現は、問題分野の完全な記述を可能にし
なければならない。
知識エンジニアは、専門家の知識の記述のために選択さ
れる表現及びその知識を処理するために使われる推論エ
ンジンに関与する。良い推論技術に適している事が知ら
れているいくつかの性質が存在する。
1、良い推論技術は問題分野に独立である。
新しい問題分野におけるプログラムの再利用可能性、知
識の透明性、及び説明の利点を実現するために、推論エ
ンジンは分野に特有の専門知識を含んではならない。
2、推論技術は特定のタスク、例えば、ハードウェア構
成の診断に特有のものでも良い。
他の技術は、特定の処理技術に対してのみ省略してもよ
い。
3、推論技術は常に、知識構造に特有のものである。
4、ルール処理技術の成功した例は下記のものを含む: (a)前向き推論 (b)後向き推論 B−6,推論ルール 「推論ルール」の概念を理解する事は、エキスパート・
システムの理解に重要である。推論ルールとは、if節
とthen節との2つの部分を有する文である。推論ル
ールの1例は次のものである。
If  レストランの選択がフランス料理店を含み且つ
その場合が私的交際である、 T hen  レストランの選択は確定的にrPaul
BocuseJである。
エキスパート・システムのルール・ベースは多くのその
ような推論ルールから成立している。それらは別々のル
ールとして入力され、結論を引き出すためにそれらを一
緒にして用いるのは推論エンジンである。各々のルール
は1単位なので、ルールは他のルールに影響を与える事
なく削除又は追加することができる。(但しそれは、ど
の結論が得られるかに影響するであろう。)従来のプロ
グラミングを上回る推論ルールの1つの利点は、推論ル
ールが人間の推論過程によく似た推論過程を用いる事で
ある。
従って、結論が導き出された時、いかにしてこの結論が
得られたかを理解する事が可能である。
さらに、エキスパート・システムは専門家に似た形式で
知識を使用するので、この情報を専門家から得るのがよ
り容易である。
B−7,推論方′− 推論ルールを用いる時、2つの主要な推論方法が存在す
る。後向き推論と前向き推論である。
前向き推論は、利用可能なデータから出発し、所望の目
標に到達するまで、推論ルールを用いてより多くのデー
タを導き出す、前向き推論を用いた推論エンジンは、(
if節が真である事が知られている〕ルールを見い出す
まで、推論ルールを探索する。次に推論エンジンはth
en節を結論とし、この情報をデータに付は加える。そ
して目標に到達するまで、この処理を続行する。利用可
能なデータが、どの推論ルールが使われるかを決定する
ので、この方法は「データ駆動jとも呼ばれる。
後向き推論は、目標のリストから出発し、それらの目標
のどれかを結論付ける事を可能にするデータが存在する
かどうかを見るために後向きに動作する。後向き推論を
用いた推論エンジンは、所望の目標と一致するthan
節を有するルールを見つけるまで、推論ルールを探索す
る。もしその推論ルールのif節が真である事が知られ
ていなければ、それは目標のリストに付は加えられる。
例えば。
ルール・ベースは下記の2つのルールを含んであるもの
と仮定する。
(1)Ifフリツツが緑であるthenフリツツは蛙で
ある。
(2)Ifフリツツが蛙であるthenフリツツは跳ぶ
目標は「フリッノは跳ぶ」事を結論付ける事であると仮
定する。ルール・ベースが探索され、ルール(Z)が、
その結論が目標に一致するので、選択される。「フリッ
ノが蛙である」事は知られていないので、このステート
メントが目標リストに付は加えられる。再びルール・ベ
ースが探索され。
今度はルール(1)が選択される。というのは、そのt
he口節が、リストにちょうど付は加えられた新しい目
標に一致するからである。この時、if節は真である事
が知られているので、目標の「フリッノは跳ぶ」事が結
論付けられる。どのルールが選択されそして使用される
かを目標のリストが決定するので、この方法は「目標駆
動」とも呼ばれる。
l二炙ユ産仮巖 従来のプログラミングの方法を上回るエキスパート・シ
ステムの他の利点は、確信度の使用が可能な事である。
人が推論する時、彼は常に100%の確信度を持って物
事を結論付ける事はしない。
彼はおそらく、「もしフリッノが緑ならば、それは多分
、蛙だろう」 (結局、それはカメレオンかもしれない
)とか、「もしフリッノが蛙ならば、それは多分、跳ぶ
だろう」 (フリッノは足を怪我しているかもしれない
)と言うであろう。この型の推論は、確信度と呼ばれる
数値を用いる事によって模倣できる。例えば、フリッノ
が緑である事が知られているならば、0.85の確信度
で彼は蛙であると結論付けられ、又彼が蛙である事が知
られていれば、0.95の確信度で彼が跳ぶと結論付け
られるであろう、それらの数値は、性質が確率に似てい
るが、同じものではない。それらは。
確率を計算する時に使われる数学的な定義に従うよりは
むしろ、推論過程において人間が使う確信度を模倣しよ
うとしている。
エキスパート・システム及びそのアーキテクチャに関す
る一般的な点について下記に示す。
1、結論に至るまでに取られるステップの系列は、各々
の新しいケース毎に動的に合成される。それは、システ
ムが作成される時に明示的にプログラムされるのではな
い。
2、エキスパート・システムは、任意の問題パラメータ
に関して複数の値を処理できる。
従って2系統以上の推論過程を追う事ができ、そして不
完全な(完全には決定されていない)推論の結果が提供
できる。
3、問題解決は、特定の技術ではなく特定の知識を適用
する事によって行なわれる。これはエキスパート・シス
テム技術における最も重要な考えである。これは人間の
専門家は異なった知識を持ってはいるが、彼らの知識を
他とは違ったふうに処理しないという信念を反映してい
る。このフィロソフィーに従えば、エキスパート・シス
テムが所望の結果を出さない事が判明した時には、手続
きのプログラムのやり直しではなく知識ベースの拡張の
作業が始まる事になる。
B−9,・存のエキスパート・システム従来技術は、人
間の専門家が問題を解析し結論に到達する時に行なう推
論過程を「ルール・ベース」及び「推論エンジン」が協
動してシミュレートする種々のエキスパート・システム
を開示している。これらの従来技術のシステムにおいて
、人間の推論過程をシミュレートするために、知識ベー
ス中に大規模な知識が記憶されなければならない、一般
に、従来のエキスパート・システムの知識ベースは、比
較的多数のrif thenJ型のステートメン!・か
ら成っていて、それらは人間の推論過程において関与し
ている心的過程の系列に似た(少なくとも理論上は)方
式で相互に関係付けられていた。
大きな記憶装置容量の必要性及びルール・ベースを記憶
するための関連プログラムの必要性により、多くのエキ
スパート・システムは、過去において、大型の情報処理
システム上でしか動作していなかった。最近、パーソナ
ル・コンピュータの記憶容量は、ある型の単純なエキス
パート・システムをパーソナル・コンピュータ上で動作
させる事を考慮し得るようになる点にまで増加してきた
多くのそのようなプログラム及びその応用が。
1985年4月16日発行のPCMagazine誌、
第108頁に説明されている。またrArtifici
alIntalligence Jと題する別の記事が
、1984年1月発行のPCWorld Magazi
ne誌、第2巻、第1号の第34頁に掲載されている。
本発明によって代表される型のエキスパート・システム
について説明した刊行物には例えば下記のものがある。
1 、  rA User’s Manual for
 Con5truct andConsult  in
  the  GPSI  Environa+ant
ノPaul N1clsen著。これはイリノイ大学K
BPAプロジェクトから入手可能。
2 、 Gordon Robert K、著、 rA
 Ru1e Editor foran  Exper
t  system  Environment : 
 TowardsAutomating Knowoe
dge AcquisitionJ修士論文、イリノイ
大学、1984年。
3 、1larandi Mchdi T、著、 rA
 Gencral Purposasystem fo
r InfarcncingJ 、Proceedin
gsof the l13M University 
5tudy ConferenceRa;cigh、 
NC11983年10月。
4 、LaursCn、Andrcw  L、著、  
rGPSI : An  ExpertSystem 
to Aid in Program Dcbuggi
ngJ +修士論文、イリノイ大学、1981年。
エキスパート・システムのあるアプリケーションにおい
ては、そのアプリケーションのために人間の推論過程を
シミュレートするのに必要な記憶情報の量及びアプリケ
ーションの性質が、コンピュータの活性メモリに記憶さ
せるには大きすぎるようになっている。エキスパート・
システムの他のアプリケーションでは、推論過程で常に
全ての情報が必要とされるわけではない、この後者の型
のアプリケーションの1例は、多くの別個の構成要素(
その一部はオプション)から成るデータ処理システムを
診断するためのエキスパート・システムである。この型
のエキスパート・システムが最小のシステム構成のデー
タ処理システムを診断するために単一の一体化されたル
ール・ベースを用いる時、ルール・ベースの多くは不必
要なものである。というのはシステムのオプション的な
ユニットである多くの構成要素はシステムに存在してい
ないからである。にもかかわらず、従来技術のエキスパ
ート・システムはルール・ベース全体が記憶される事を
必要としていた。これは全てのルールが、ルール・ベー
スの構造によって事実上一体的に結合されていたからで
ある。
本発明の関連出願である特願昭61−140407号は
、ルール・ベースがセグメント、好ましくは文脈的セグ
メントに分割されたエキスパート・システムに係るもの
である。ルール・ベースがセグメント化されると、特定
のアプリケーションに必要のないデータ又は知識を含む
ルール・ベースの部分を消去する事が可能になる。ルー
ル・ベースのセグメント化を行なえば、ルール・ベース
の各セグメントが必要に応じてシステムにページ・イン
及びページ・アウトできるので、従来技術の植成で可能
であったよりも小さなメモリ容量を有するシステムでエ
キスパート・システムを動作させる事が可能になる。
ルール・ベースを文脈的セグメントに分割すると、プロ
グラムの実行中にセグメントがメモリへページ・イン及
びページ・アウトされる時に種々のセグメント間の関係
をエキスパート・システムが管理する必要が生じる。シ
ステムは第1のルール・ベースのセグメントの処理中に
任意の時点で第2のルール・ベースのセグメントが呼び
出され実行される事を許すので、処理中の後の時刻に、
システムが第1のセグメントに戻った時、処理されてい
た最後の地点又はルールからシステムが処理を続行でき
るために、その時点までに蓄積されたデータを記憶する
機構が必要である。また、ルール・ベースの第2のセグ
メントがシステムにページ・インされた後に、その時点
までにシステムによって収集されていたデータを第2の
セグメントに渡すことができ、且つ第2のセグメントの
処理中に収集されたデータを、システムが第1のセグメ
ントの処理を終えるために戻った時に、第1のセグメン
トに渡すことのできる機構が設けられなければならない
本発明の関連出願である特願昭61−140407号は
パーソナル・コンピュータ等のデータ処理システムのハ
ードウェアの故障を診断する事を主な目的として作成さ
れたセグメント化ルール・ベースを用いている。従って
、その全体的な目的は、問題の原因となっている可能性
が最も高い「現場で取り換え可能なユニット(FUR)
Jを識別する事である。
また特願昭61−140406号は、特定の部品に対す
るテスト・ユニット又は外部の手続きであって結論が得
られた時にエキスパート・システムに結果を返すような
ものをシステムが起動できるため、システム自身のハー
ドウェアに対してシステムが自己診断を行なう事ができ
るエキスパート・システムが示されている。従って情報
は、ユーザーに質問するか又はいわゆるテスト・ユニッ
トもしくは外部プロセスを実行する事によって収集され
る。
ユーザー・インタフェース及び手続きインタフェースは
上記関連出願に記載されたシステムの情報収集プロセス
における2つの重要な機能である。
ユーザー・インタフェース: ユーザー・インタフェースの機能は、操作者に情報及び
質問を与え、そして操作者の応答を推論エンジンに伝え
る事である。
ユーザーにより入力された値はユーザー・インタフェー
スにより受理され解釈されなければならない、応答のあ
るものは1組の可能な許された答に限定される。ユーザ
ー・インタフェースは全ての応答を検査して、それらが
正しいデータ型である事を保証する。許される答の組が
制限された応答は、許された答と比較される。ユーザー
が許されない答を入力する毎に、ユーザー・インタフェ
ースはユーザーに彼の答が無効な事を知らせ且つそれを
訂正するように促す、上記関連出願に示すように、ユー
ザー・インタフェースと推論エンジンとの間の通信は、
ユーザー・インタフェース制御ブロック(UICB)を
用いて行なわれる。
手続きノード・インタフェース: 手続きノード・インタフェースの機能は、手続き呼び出
し調整機構から情報を受は取り、適切な手続き呼び出し
を形成する事である。手続を呼び出しそしてその手続き
から情報を受は取る能力は、単に外部世界からの入力の
一般化とみなす事ができる。ある従来技術のエキスパー
ト・システムでは、手続きから情報が得られていたが、
その情報は、実際にはある特定の情報しか取得できない
ような前もって定められた方式でしか得られなかった。
上記関連出願のエキスパート・システムは、ホスト・シ
ステム上で許されている任意の手続きを、知識ベースを
経由して、起動する事が可能である。従って、外部アク
セスができないか又は外部アクセスが制限された場合よ
りも、エキスパート・システムはより広いクラスの知識
領域で有用になる。
エキスパート・システムを用いた機械の診断の分舒にお
いて特に自己診断のアプリケーションにおいて、ある種
の情報なしには機械の現在の「健康状態」について結論
付ける事はできない、最良の情報源は機械そのものであ
る。というのはそれは、操作する人によって妥当に与え
られるよりもずっと詳細な情報を含んでいるからである
従来技術で説明されているように、システムにおいて表
現されている知識はルール・ベース中に現れる。上記関
連出願に記載されているルール・ベースでは、基本的に
4つの違った型のオブジェクトが存在する。
1、クラス−これはユーザーに対して行なわれる質問で
ある。
2、パラメーターこれはパラメータが位置する質問中の
地点においてクラスの質問中 に挿入され得る変数である、文字列 の保持場所である。
3.1駿l−これは外部手続きに対する呼び出しの定義
である。
4、ルール・ノード−システムに−おける推論は。
人間の推論過程を模倣するルール又 は論理を示す木構造によって行なわ れる。これらの木のノードはルール・ ノードと呼ばれる。ルール・ノード にはいくつかの違った型が存在する。
ルール・ベースは多数の木の森から構成される。
木の頂上のノードは目標ノードと呼ばれる。これはそれ
が結論を含んでいるからである。森の中の各々の木は異
なった目標ノードを有している。木の葉はルール・ノー
ド又はルール・ノードの型の1つと呼ばれる。葉はEV
IDENCEノード。
EXTERNAL/−ド又はREFERENCEノード
である。
EVIDENCEノードは、特定の質問を行なう事によ
って操作者から情報を得るように機能する。EVIDE
NCEノードによって与えられる質問に応答して、操作
者は一般に数値1及びOによって表わされるryasJ
又はrnoJの答をするか又はOと1との間の数値r 
maybe Jを与えるように指示される。
yesもしくはno、又はOと1との間の数値以外の、
操作者からの応答を必要とする質問は別の方式で処理さ
れる。
EXTERNALノードの葉は、手続き呼び出しから得
られたデータが使用される事を示す。
REFERENCEノードは、他の木又は部分木を参照
するように機能する。
木は目標ノードと葉ノードとの間に中間ノードを含む事
もある。中間ノードはAND又はOR等の論理演算を表
わし得る。
推論論理は2つの機能を有する。それはトレースするた
めの木を選択し、次にその木をトレースする。木が選択
されると、その木は深さ優先で。
左から右ヘトレースされる。
用語「トレース」は、システムが木を走査し。
クラス(質問)を尋ね9手続きを呼び出し、そして確信
度を計算する動作を言う。
上記関連出願に説明されているように、木の選択は木の
順序に依存する。木の本来の順序は、それらがルール・
ベース中に現れる順序である。この順序は、EVIDE
NCEノードに属性「初期」を割り当てる事によって変
更できる。取るべき最初の動作は、[初期J属性を割り
当てられた全てのEVIDENCEノードについて値を
得る事である。これらの初期の証拠に対する答のみを用
いて、最も成功しそうなルールが最初に評価されるよう
にルールが配列される。木は、選択された木がトレース
されると共に定常的に更新されているので、さらに再配
列する事ができる。
質問又はクラスによってシステムがユーザーに要求する
情報の型は、ユーザーは知識レベルに応じて調整される
べき事が明らかになっている。多くのアプリケーション
において、ユーザーとして予想される群は正確に定義さ
れ、一般に平均的ユーザーに対応するレベルで質問が与
えられるように知識レベルを評価する事ができる。しか
しながら、他のアプリケーションにおいては、エキスパ
ート・システムの特定の領域の知識は、ユーザーとして
予想される群の間でかなり変動する可能性がある。
この事が特に良くあてはまる1つのアプリケーションは
、パーソナル・コンピュータの操作者がハードウェア又
はソフトウェアの故障又はエラーの原因を診断するのを
援助するためにパーソナル・コンピュータ上で自己診断
モードで動作するエキスパート・システムである。一般
に、操作者に情報を求める事はエキスパート・システム
が情報を収集するための最も直接的な方法である。但し
、当然、その情報は操作者の理解しうる事柄に属してい
なければならない。例えば、パーソナル・コンピュータ
を診断する時に、エキスパート・システムはシステムの
主要な機能部品を知らなければならない。エキスパート
・システムは例えば表示装置がモノクロームか又はカラ
ーかを操作者に質問する事もできる。操作者は確実に正
しい答を与える事ができなければらなない。一方、エキ
スパート・システムは、表示装置の型を判定するために
テスト・ユニットを走行させる事もできる。この場合は
いずれの方式によって収集されたデータの正確度も相違
ないであろうから、知識エンジニアは診断の精度に影響
を与える事なくいずれの方式を採用する事もできる。し
かし、多くの場合、必要な情報の性質により、操作者に
質問するよりはシステムから情報を得た方が良い、とい
うのは操作者により与えられるデータの正確度は、シス
テムがそれを有効に処理して有意義な結論を出す事がで
きない程度に低いからである。
C0発明が解決しようとする問題点 多くの状況において、情報は既にシステム中に存在し、
それから帰納的又は演株的な推論のプロセスにより、質
問に対する正しい答を得る事ができる事が明らかになっ
ている。システムにより以前に収集されたデータは、別
の理由により行なわれたより複雑度の低い質問に対する
ユーザーの答。
あるいは、以前に走行させたテスト・ユニットから返さ
れた結果である。
例えばディスケット・ドライブをテストする時、ディス
ケット・ドライブAにスクラッチ・ディスケットが存在
する事が必要なある種のテストがある。
それらのテストは、データをディスケットに書込み又は
ディスケットを再フォ−マツトする事がある。そのディ
スケット上のデータは破壊される可能性があるので、診
断ルーチンを有するディスケットはドライブAに入れな
い事が絶対必要である。
スクラッチ・ディスケットが存在する事を確認するのを
ユーザーに頼らずに、その事をシステムに示し得るもの
が存在する。もしドライブAが低容量ディスケット・ド
ライブであってディスケットが存在していれば、そのデ
ィスケットはスクラッチ・ディスケットのはずである。
もしドライブが大容量ディスケット・ドライブであって
手続きREAD−VOLUME! LABELが非ゼロ
のリターン・コードを返していれば1診断ディスケット
はドライブA中に存在せず、スクラッチ・ディスケット
が存在しているはずである。又ドライブが大容量でRE
AD−VOLUME LABELがゼロのリターン・コ
ードを返すと、ユーザーはスクラッチ・ディスケットを
ドライブAに入れる様に指示されなければならない。
D0問題点を解決するための手段 エキスパート・システムのルール・ベースにおいて、と
のノードにも活動属性を与える事ができる。それらの活
動の1つSET活動は、このノードが真であると評価さ
れると特定の質問に対する答が特定の値にセットできる
事を示す。このようにして、質問に対する答は、質問を
ユーザーに直接行なう事なしに得る事ができる。もし活
動属性を有するノードが無効化されると、その活動属性
において指定された質問は何の影響も受けない。
これらのSET活動は、下記のようなIF・・・・T 
HE Nルールに似たルールをルール・ベースにつけ加
えるのと等価である。
IF  ドライブAが低容量 AND  ディスケットが存在 THEN rスクラッチ・ディスケットがAに存在する
か?」に対する答はr’jf3sJIF  ドライブA
が大容量 A N D  RIEAD VOLUME LABEL
のリターン・コードが非0 AND  ディスケットが存在 THEN rスクラッチ・ディスケットがAに存在する
か?」に対する答はryasJ 従って、本発明によればエキスパート・システムにおい
て、情報を収集する改良された方法が提供される。
E、実施例 これから説明する本発明の良好な実施例は、パーソナル
・コンピュータ等のデータ処理システムのハードウェア
の故障を診断する事を主な目的として作成されたセグメ
ント化ルール・ベースを用いている。従って、実施例の
全体的な目的は、問題の原因となっている可能性が最も
高い[現場で取り換え可能なユニット(FUR)Jを識
別する事である。本発明の関連出願の技術思想に従って
セグメント化されたルール・ベースを用い、且つエキス
パート・システムで使用されるデータを収集する為の手
続きが行われるエキスパート・システムのアプリケーシ
ョンは、この型のエキスパート・システムのアプリケー
ションの1例でしかない。
ルール・ノードに活動属性を与える能力は、上記関連出
願に一般的に説明されているが、本発明では特別な活動
属性「5ETC」が、いつもはユーザーに提示されるク
ラス質問に対して答をセットする事を可能にするような
形で用いられている。
E−1,システムの 観 第1図に図示されているエキスパート・システムの主な
構成要素は、推論エンジンIEIO及びルール・ベース
・ファイル11である。推論エンジン10は、スーパバ
イザ・プログラム12、推論機構13.及び手続き呼出
し調整機構14を含んでいる。手続A−Nは、手続きノ
ード・インタフェース15を経由してWa整機構14に
インタフェースされる。操作者は、ユーザー・インタフ
ェース・ブロック16を経由してスーパバイザとインタ
フェースする。コンパイルされたルール・ベースによっ
て表現された知識はルール作成者からのルール入力に基
きルール・コンパイラ17によって生成される。
E−2,スーパバイザ スーパバイザ・プログラム12はルール・ベース呼び出
しの流れを制御する。そのジョブは、休止が起きた時に
現在のルール・ベースを記憶する事、呼び出されたルー
ル・ベースを読み込む事、1つのルール・ベースが使用
し尽された時に次にどのルール・ベースをロードすべき
かを知る事、及び全てのルール・ベースが使用し尽され
た時を認識する事を含む。適当なルール・ベースが読み
込まれた時、スーパーバイザ12は推論機構13を呼び
出してルール・ベースを走査する。ルール・ベース呼び
出しにより又はルール・ベースが使い尽された事により
、走査が休止すると、制御がスーパバイザ12に戻され
る。ここでスーパバイザは取るべき適当な動作を決定す
る。ルールベースの読み込み及び情報を取得すべき場所
の決定もスーパバイザによって処理される。
E−3,ユーザー・インタフェース ユーザー・インタフェース16の機能は、ユーザーに質
問及び情報を与え、且つユーザーの応答を推論エンジン
10に伝える事である。
エキスパート・システムは、一般に、質問応答セツショ
ン、結論の提示、ヘルプ機能、及びエラーの表示等を通
じてユーザと頻繁な対話を必要とする。この対話を提供
するために使用される方法は、使用されるシステムの型
によって変化し得る。
ユーザー・インタフェースは一般に、ホスト計算機の構
成で使われているハードウェア及びオペレ−ティング・
システムに依存する6 全ての、計算機及びアプリケーションに依存するコード
を、異なった計算4!&構成又はアプリケーションに関
して置き換える事ができる別個のモジュールの形に分離
するために、本発明の実施例では、従来の技術のエキス
パート・システムでは推論エンジン10の中に埋め込ま
れていた人出カル−チンと全て抽出し、汎用のユーザー
・インタフェース・モジュール16の中に組み込んだ。
ユーザー・インタフェース16は、以前に推論エンジン
内で処理されていた全ての人出カ機能を実行する能力を
有する。それらの機能は下記の通りである。
1、キーボードを調べて、操作者が入力したキー゛スト
ロークを返す。
2、エラー・メツセージを表示する。
3、表示スクリーンをクリアする。
4、テキストを提示し、特定の範囲内に入り且つ特定の
データ型を有しなければならない、キーボード入力を要
求する。
5、テキストを提示し、1組以上の特定の文字列でなけ
ればならないキーボード入力を要求する。
6、テキストを提示し、特定のデータ型の任意の値で良
い入力を要求する。
7、テキストを提示し、即座に推論エンジンに戻る。(
ユーザからの応答は必要ない。)8、テキストを提示し
、操作者がキーボード上の[入力」キーを押すまで待機
する。
ユーザーにより入力されたあらゆる値はユーザ・インタ
フェース16によって受は取られ解釈されなければなら
ない。ある種の応答は、1組の可能な正当な答だけに限
定され、他のものは不可である。ユーザー・インタフェ
ース16は、全ての応答を検査し、それらが正しいデー
タ型を持つ事を保証する。正当な1組の答しか許されな
い応答は、それらの正当な答の組と比較される。ユーザ
ーが正当でない答を入力すると、ユーザー・インタフェ
ース16はユーザーに彼の答が正当でない旨を告げ、そ
れを訂正するように促す。質問に応答して、ユーザーは
エキスパート・システムからのヘルプを要求してもよい
。これは説明、コンサルテーションのレビュー、又は処
理されたルール木のトレースの形で与えられる。さらに
、ユーザーは処理を全面的に中断するように要求しても
よい。この場合、ユーザ・インタフェース16はこれを
認識してその事実を推論エンジンに伝達しなければなら
ない。ユーザ・インタフェース16と推論エンジン10
との間の通信は1両者の間で伝達されるユーザ・インタ
フェース制御ブロック(UICB)を介して行なわれる
UICBは下記のフィールドを含んでいる。
A、活動フラグ。このフィールドは、ユーザ・インタフ
ェースによって取られるべき活動を示すために用いられ
る。
B、ステータスフラグ。このフィールドは、システムに
よって取られるべき活動を示す。
C0応答番号。これは要求された応答の番号を示す値で
ある。
D、応答ポインタ。これは可能な正当な答の長さリスト
を指す。
E、高フィールド。これは範囲応答に関する上限を含む
。データ値は応答値活動フラグに依存する。
F、低フィールド、これは範囲応答に関する下限を含む
。データ値は応答値活動フラグに依存する。
G、答ポインタ。このフィールドはユーザによって与え
られる答の長さリストに対するポインタを含む。
H,ファイル名、このフィールドはテキスト及び文字列
値を含むファイルの名前を含む。
■、ファイル・インデックス、これは表示すべきレコー
ドのテキスト・ファイル中の論理レコード番号を含む。
ユーザ・インタフェース16及び推論エンジン10によ
って行なわれる動作を列挙する事により。
推論エンジン10のコードに影響を与えずにユーザ・イ
ンタフェース・モジュール16全体を置き換える事が可
能になる。その結果、ユーザ・インタフエースの方法、
オペレーティング・システムの表示ルーチン、又は表示
ハードウェアのいかなる変更も推論エンジンに対して透
明になる。
E−4,手続きノード・インタフェース手続きノード・
インタフェース15の機能は、手続き呼び出し調整機構
14から情報を受は取り。
適切な手続き呼び出しを形成する事である。手続を呼び
出しそしてその手続きから情報を受は取る能力は、単に
外部世界からの入力の一般化とみなす事ができる。ある
従来技術のエキスパート・システムでは1手続きから情
報が得られていたが、その情報は、実際にはある特定の
情報しか取得できないような前もって定められた方式で
しか得られなかった。本発明の実施例のエキスパート・
システムは、ホスト・システム上で許されている任意の
手続きを、知識ベースを経由して、起動する事が可能で
ある。この方式は直接的なように見えるが、ルール・ベ
ースのプログラミングの性質は。
これがいくらか異質で且つ困難であるようなものである
。任意の手続きを実行させるためのリンケージ機構を作
る事は、エキスパート・システムが知識ベースから真に
独立的である事を可能にする。
従ってエキスパート・システムは、外部へのアクセスが
存在しないか又は限られた外部へのアクセスしかできな
い場合よりも、遥かに広い類の知識領域で有用になる。
そのような機能の有用性の1例を次に示す。航空機を利
用する旅行者について最適な巡回路を決定するという問
題を考える。最適な選択を行なうには、出発地と到着地
との間の航空路の時間表に関するかなりの情報が必要で
あろう。操作する人がその情報を入力する事も可能であ
るが、それは全く合理的なやり方ではない。もしもそう
ならば、操作する人が自分で決定を行なう方がより容易
であろう、また、情報はエキスパート・システムの知識
ベースの中にコード化する事ができる。しかし不幸な事
に、運航情報は急に変化するので、これも実際的ではな
い。その代りに、航空機の運航に関する必要な情報は、
手続きを呼び出す事により、データ・ベースを参照する
事によって解決すべきである。これは推論過程ではない
が、推論過程はこの情報なしには行なう事ができない。
同様に、エキスパート・システムを用いた機械の診断の
分野においても、ある種の情報なしには機械の現在の「
健康状態」について結論付ける事はできない。最良の情
報源は機械そのものである6というのはそれは、操作す
る人によって妥当に与えられるよりもずっと詳細な情報
を含んでいるからである。
外部の手続きを呼び出す能力は、知識ベースの制御に下
に且つ基本的なエキスパート・システムを特別に修正す
る事なしに、高度にフォーマット化された表示装置にメ
ツセージを送ったり又は特)311な情報を与えるため
にも有用である。また、ホスト上で許されたいかなる動
作も引き起こすことができる。特にシステムは、別の手
続きのローディング及び既存のルーチンに対するそれら
の動的束縛、ハードウェアの練習、並びにメツセージの
表示を可能としている。いかにして手続きを呼び出すか
についてインプリメンテーションの詳細は。
本明細書中で後述する。
E −5、ルール システムの中で表現された知識はルール・ベース11の
中に存在する。このエキスパート・システムのルール・
ベース11の中に存在する関連した情報ともに,基本的
には4つの異なった型のオブジェクトが存在する。
1、クラス−これはユーザにされる質問である。
クラスに関連する情報は、その名前、答又はユーザが質
問に対して与える答、及びその答に伴なう確信度である
。確信度は,Oと1との間の数字であって、答がどの程
度圧しいかを示すものである。
2、パラメーターこれは、文字列に関する場所を保持す
るものである。これはクラスの質問中の適当な場所に挿
入できる変数でもある得る。変数のデータは、ユーザに
質問をする事によって得る事もできる。例えば、パラメ
ータ「υser NaneJはユーザの名前を表わし、
ユーザに「あなたの名前は何ですか?Jと質間する事に
よって得る事ができる。システムによって使われる情報
はパラメータ名及び関連する文字列である。ユーザーに
よって与えられた応答は、クラスが表示される時にその
中に変数として挿入される。
3、手続き−これは外部手続きに対する呼び出しの定義
である6手続きに関する情報は2手続き定義の名前、渡
される値、及び返される値である。ルール・ベースのこ
の領域は、操作者以外の外部データ源からデータを収集
するための基礎を提供する。
4、ルール・ノード−システムにおける推論は、人間の
推論過程を模倣するルール又は論理を示す木構造によっ
て行なわれる。これらの木のノードはルール・ノードと
呼ばれる。いくつかの異なった型のルール・ノードが存
在するが、その詳細は明細書中で後述する。外部(EX
TERNAL)と表示されたノードは手続き呼び出しを
指定するために用いられる。
第2図は大幅に単純化されたサンプルのルール木を示し
ている。ルール・ベースは多数のそのようなn進水の森
から成り立っている。木の一番上のノード21は目W 
(GOAL)ノードと呼ばれる。これはそれが結論を含
んでいるからである。
森の中の各々の木は異なった根ノードを有している。木
の葉もまたルール・ノード又はルール・ノードの型の1
つと呼ばれる1葉は証拠(EVIDENCE)/−ド、
外部(EXTERNAL)ノード又は参照(REFER
ENCE)ノードである得る。
証拠ノードは、証拠ノード22のような特定の質問をす
る事によって操作者から情報を得るように機能する。証
拠ノードによって与えられる質問に応答して、操作者は
一般に、数字の1及びOによって表わされる「イエス」
又は「ノー」の答をするか、又は「多分」を表現する0
と1との間の数字を与えるように指示される。操作者か
らイエスもしくはノー又はOと1との間の数値以外の応
答を必要とする質問は、明細書中で後述する別の方法に
よって取り扱われる。ノード23等の外部ノードである
葉は、手続き呼び出しから得られたデータが使われる事
を示す。診断のアプリケーションの良好な実施例におい
ては1例えば手続き呼び出しは、特定のデータ・パター
ンをディスケットに書き込み、そしてエラーが検出され
た否かの表示を与えるためにそれを読取るという動作を
起こさせる。ノード24等の参照ノードは別の木又は部
分木を参照するように機能する。また、木は目標ノード
と葉ノードとの間に中間のノードを含んでいてもよい。
中間ノードは第2図のノード27及び28のような論理
演算を表現する事ができる。
もしノードBがノードAの直下にあれば、ノードBはA
の子であり、ノードAはノードBの親であると呼ばれる
。この場合、Bが1番上のノードあるような木はAの部
分木と呼ばれる。部分木は単一のノードだけでもよいの
で、Aは2つの子を持っていると言う事は、Aは2つの
部分木を持っていると言う事と等価である。
ルール・コンパイラ17はルール作成者が与えたルール
入力を受は取り、それをコンパイルしてルール・ベース
・ファイル11に入れる。これは推論エンジン10が使
用する入力として役立つ。
この入力は手続き呼び出しに関する定義及びルール論理
を含んでいる。
E−6,推論機構 第1図の推論機構(CONSUCTと呼ぶ)は2つの機
能を持っている。それはトレースすべき木を選択し1次
にその木をトレースする。推論機構がどのようにして木
を選択するかは、後述する。
木が選択されると、推論機構はその木を深さ優先で、左
から右ヘトレースする。
「トレース」という用語は、システムが木を辿りながら
、クラス(質問)を尋ね1手続きを呼び出し、そして確
信度を計算する活動を言う。例えば、ノードBに関する
確信度を得るために、システムはBが一番上になる部分
木をトレースする。
種々の型のノードの各々はそれに関連する確信度を有し
ている。確信度が得られる方法は、ノードの型に依存し
ている。外部ノードに関する確信度は、呼び出された手
続きによって返された値に依存する。証拠ノードに関す
る確信度は、操作者に与えた質問に対する回答に基いて
いる。また参照ノードは、それが参照している木の確信
度に基く確信度を有する。
あるノードの確信度が更新されると、推論機構は全ての
木を調べ、更新されたノードを参照するノード又は更新
されたノードによって得られた証拠に依存しているノー
ドの確信度を変更する。また推論機構は、評価されてい
ないノードを見つける前にできる限りの木の上方までこ
の新しい確信度を即座に伝播させる。これが終了すると
、推論機構は選択された木のトレースを続行する。推論
機構は、その目標ノードの確信度が計算されるまで、3
2!l択された木をトレースし続ける。そしてそれが終
ると、次の木を選択しトレースする。
木の選択体木の順序に依存する。木の本来の順序は、そ
れがルール・ベース中に現れる順序である。しかし、こ
の順序は、証拠ノードに後述の[初期」属性を割り当て
る事によって変更可能である。推論機構が行なう最初の
動作は、「初期」属性を割り当てられた全ての証拠ノー
ドの値を得る事である。これらの初期の証拠に対する答
だけを使って、推論機構は、最も成功しそうなものが最
初に評価されるようにルールを配列する。これは、これ
らの初期の証拠だけに基いて計算された確信度を木まで
伝播させる事によって行なわれる。
次の目標ノードについて計算された確信度を、その木が
成功するかどうかの尺度として用いる。木は1選択され
た木がトレースされる毎に更新されるので、さらに配列
しなおす事ができる。
E−7,ルール・ベース構 第1図のルール・コンパイラ17 (CONSTRUC
Tとも呼ばれる)は、ルール作成者によって提供される
ファイルを入力として受は取る。この入力ファイルから
ルール・コンパイラはルールとして使用される木を構成
する。推論機構はこれらのルール木を辿って、調査され
る問題について演絆を行なう、最初にルール・ベースを
概観し次に例を見るのが、本発明の理解に役立つであろ
う。
従って、ルール・ベースに関するサンプル入力が下記に
、そしてこの入力によって生成されたルール木が第3図
及び第4図に示されている。また。
入力の構文についての簡単な説明も提供する。
CLΔ5SES PRINTER TEXT=2問題点はプリンタに関係しているように思
いますか? VALUES=lOF (’YES”No’ )PRE
DEFINED  WEIGHT=1xxxxxxx TEXT= ’XXXXXXXプリンタを使用していま
すか?′ VALUES=10F (’YES”No’ )PRE
DEFINED  WEIGHT=ISYMPTOM TEXT= ’次の症状のどれに気付きましたか: (1)文字が印字されない (2)文字が間違って印字される (3)文字が汚れている (4)紙が曲って送られる (5)上記のどれでもない′ VALUES=10F1 : 5 PREDEFINED  WEIGHT=IPRINT
ERLITE TEXT= ’プリンタの前面で灯が明滅していますか
?′ VALUES=10F (’YES”NO’ )PRE
DEFINED  WEIGHT=IPROCEDUR
ES PRINTERTEST NAME=PRINTERTU PASS  32767 %SVCNUMBER% RETURN  5TATUSBIT HEX (1) ND PARAMETR8 PRINTERNUMBER TEXT= ’あなたのプリンタ番号は何ですか?′ DEFAULT= ’XXX’ − ULES % RULE  TREEI  % l   GOAL TEXT=’新しい部品又はリボンを 取り付けて下さい′ NAME=GOALL   0R NAME=LEVEL20R AND NAME=RIBBON 4  EVIDENCE NAME=PRINTERI CLASS= (’YES’ )OF PRINTER 4EVIDENCE NAME=YES5215 CLASS= (’YES’ )OF ××××××× 3   EVIDENCE NAME=SYMPTOMI CLASS=l   OF   SYMPTOM% R
ULE   TEEE   2%I   GOAL TEXT=’  $PRINTERNUMBERプリン
タについてサービス要求番号151018を報告して下
さい′   AND   N0T 4  REFERENCE NAME=RIBBON   0R 4EXTERNAL PROC=PRINTERTEST STATUSBIT  NE  ’00’B 4  EVIDENCE CLASS= (’YES’ )OF  FRINTE
RLITE 3   EVIDENCE CLASS=2  0F   SYMPTOM最初に、
rRULESJ という語で始まるルール・ベースの部
分を見る。テキスト[% RULE  TREE  1
  %」は註釈である。ルール1に関する入力はこの註
釈に続いている。ルール1に対応する木は第3図に示さ
れている。
第3図に示す構造は、上記の入力の順序及びその左側の
数字によって示されている。これらの数はノードのレベ
ルを示している。例えば目標ノードはこの木の1番上の
ノードであり、この事はテキストrl  GOALJに
よって示されている。
数字に続く語はノードの型、例えば目fi (GOAL
)、AND、OR1証拠(EVIDENCE)等を特定
している。ノードは深さ優先によって定義される順序、
即ち左から右への木を辿る順序に現れる。この例では、
各ノードは木の構造と入力ファイル中のノードの配列と
の間の関係が明瞭になるように名前(rNAME=Jに
よって表示)が与えられている。
GOALノードの直後には、もしこの目標が結論付けら
れた場合にユーザに提示されるテキストが示されている
。これはrTEXT=Jによって示されている。テキス
ト自体は単一引用符号で囲まれている。
第3図に示す木には3つの証拠ノードが存在している。
証拠ノードは、それに関して2つのものが定義されてい
なければならない、即ち、ユーザに与えられる質問、及
びこの証拠を真にするような答である。この情報は例え
ば下記の行に含まれている。
CLASS= (’YES’ )O・F  PR丁NT
R rYEsJは、この証拠を真にする1つの答である。質
問は、ルール・ベースのクラス(CLASS)部分の項
目の1つを参照する事によって特定される。この場合、
クラスはr’PRINTERJと名付けられている。
この例では、クラスの定義はルール・ベース入カフアイ
ルの最初の部分に位置している。この部分は語rcLA
ssEsJで始まっている。定義される最初のクラスは
rPRINTERJと名付けられたクラスである。クラ
スの名前に続くのは、このクラスに関係した質問のテキ
ストである。これはrTEXT=Jによって示されてい
る。単−引用符内の文字列がユーザに示され、ユーザは
それに答える事ができる。
行: rVALUE=1 0F (’ES”No’)は
2つの情報を与えている0語句rl  OFJはユーザ
からの正確に1つだけの答が受理される事を示している
。また括弧内には、ユーザが応答し得る全ての可能な答
が列挙されている。この場合、rYEsJ及び「NO」
が2つだけの許された答である。
同じ質問をする多数の証拠ノードをルール・ベースが含
む可能性が高いので、クラス項目の機能は明白である。
質問は単にクラス部分に1回だけ含まれていてその質問
をする必要がある証拠ノードによって参照できる適当な
名前を有していれば良いのである。
上記rPROcEDUREsJと題する部分は手続き呼
び出しを定義している。この例では。
rPRINTERTESTJというIDを有する1つの
手続き呼び出しの定義が存在している。この定義は、手
続きがrPRINTERTUJと呼ばれ、1つの値(3
2767)が渡され、そしてrSTATUSBITJと
呼ばれる1つの変数が返される事を特定している。外部
ノードは手続き呼び出しから得られた情報を使用する。
第4図に示す第2のルール木において、ORノードの下
に外部ノードが存在している。これはそのIDがrPR
INTERTEsTJである手続き呼び出しを参照する
。このノードは、それが指定する比較が真であれば、即
ち返された変数rSTATUSBITJがゼロでなけれ
ば、真と評価される。
このサンプル・ルール・ベースにはもう1つの部分が存
在する。即ちパラメータ(PARAMETER8)部分
である。この例では、1つのパラメータrPRINTE
RNUMBERJが存在する。このパラメータは、第4
図に示すルール木2の目標に関するテキスト中にr$P
RINTERNUMBERJとして現れている。目標テ
キストがユーザに提示される時、パラメータ名は、ユー
ザが与えた文字列によって置き換えられる。その文字列
はユーザにrWHAT  IS  THE  NtJM
BEROF  YOURPRINTER?(あなたのプ
リンタの番号は何ですか?)」と質問する事によって得
られる。この質問文はパラメータの定義中に与えられて
いる。もしユーザによって答が与えられなければ、デフ
オールドの答rIBMJが代入される。
簡単に言えば、ルール部分はルール木を記述している。
EVIDENCEノードは、質問及びそれに対する可能
な答を特定したクラスを参照している。パラメータは、
テキストがユーザに示される前にテキスト中で文字列が
置き換えられる事を可能にする6ルール・ベースの詳細
の多くは、明細書で後述されている。
E −8,の  。
上述のように、システムは多数の異なったノード型をサ
ポートしている。これらのノードは目的及び評価法が異
なっている。全てのノードは、木の葉に見られるものを
除いて、その子から渡された確信度を有している。ノー
ドは子ノードの確信度を用いて、それ自身の確信度を計
算する。この確信度を親ノードに渡す前に、計算された
確信度に対してさらに調整を行なう事もある。確信度及
びしきい値の一般的な性質並びにそれらがいかにして作
用するかについて最初に説明する6次に。
ノードが親ノードに渡す確信度に影響する。ノードに関
して特定され得る属性又は性質について説明する。また
種々の異なったノード型及びそれらがその確信度をどの
ように計算するかについても説明する。
ルール木がトレースされる時、各ノードに確信度が付与
される。その値は−1及び1を含めてその間の値であっ
て、そのノードが真である事がどれ位もつともらしいか
を表示するものである。
これらの確信度は、人間が行なう1種のヒユーリスティ
ックな推論を模倣するのに役立つ。例えば、[・・・す
る可能性が高い。」という陳述は、「・・・する可能性
はいくらかある。」という陳述よりも高い確信度を伴な
っている。異った証拠及び推論に異なった確信度を付随
させる事によって、異なった重みを有する異なった目標
が結論付けられる。
従って、ルール・ベースがトレースされる時1丁度1つ
だけの目標が真であるとして結論付けられるのではなく
て1種々の確信度を有するいくつかのルールが結論付け
られるのであろう、確信度により与えられる柔軟性及び
能力は、従来のプログラムミング方式を上回るエキスパ
ート・システムの1つの利点である。
証拠に関する確信度: 証拠ノードには2つの方法で確信度が付与できる。ユー
ザが確信度を与えるか又はルール・ベースがそれを与え
るかのいずれかである。ユーザが確信度を与える場合、
ユーザは質問に答えた後にその答に付随する確信度を与
えるように促される。
ルール・ベースが確信度を与える時、ルール・ベース中
にはデフオールド値が与えられている。ユーザが質問に
答え、ルール・ベース中に記述された確信度がその答に
付与される。
外部ノードに関する確信度: 外部ノードに与えられる確信度は、ルール・ベースによ
って与えられる。これは明細書中で後述する重み属性を
用いて行なわれる。
ルール・ファイルには4つの主要な部分、クラス、手続
き、パラメータ及びルールが存在するが。
必要な部分はルールだけである。
しきい値: 各ノードは、多数の属性を含む、ノードに関するデータ
を含む特性リストを有している。各ノードには2つのし
きい値属性、即ち高しきい値及び低しきい値が付随して
いる。もしルール・ベース中に高しきい値及び低しきい
値が措定されていなければ、それらは各々1及びOのデ
フオールド値が与えられる。もしあるノードに関して計
算された確信度が高しきい値よりも高くなれば、そのノ
ードは真即ち結論されたと考えられる。もしあるノード
に関して計算された確信度が低しきい値以下になったと
すれば、そのノードは偽又は排斥されたものと考えられ
る。これらのしきい値はいくつかの目的のために有用で
ある。もし目標ノードが結論付けられたならば、その目
標はユーザに提示される。真であると結論付けられたか
否かを決定するのは高しきい値である。しきい値はノー
ドに関して正規化機能を実行するために使用される。
この機能は次に説明する。
正規化機能: どのノードも「正規」の属性を与える事ができる。もし
ノードがこの属性を持っていると、その確信度はそれが
親のノードに渡される前に正規化される。もしそのノー
ドに関して定義された低しきい値がLOWで、そのノー
ドに関して定義された高しきい値がHI G Hで、且
つそのノードに関して計算された確信度がCならば、正
規化機能は下記の通りである。
i  f   C>=HI GH t h s n   NORMAL I ZE(C)=
 1else  if  C<”LOW t h e n   NORMAL I ZE(C)=
Olse NORMARI ZE(C)=(C−LOW)/(HI
GH−LOW) 関連因子: ノードは、ルール・ベース中で明示的に設定されていな
ければLのデフオールド値を有する関連因子が割り当て
られている。関連因子はノードとその親との間にどの程
度強い関連があるかを示している。あるノードに関して
確信度が計算された後、この確信度は関連因子を乗算さ
れ、その積が親ノードに渡される。例えば、もしノード
が0.9の確信度を有し且つ関連因子が0.8であれば
、0.72が親ノードに渡される。
E−9,属性 一般に、クラス又はノードの定義内の属性の順序には特
に意味はない。各々の型のノードに関して記述されただ
けのものが存在できそれらはどの順序でもよい6以下、
属性の使用法及び機能について説明する。
週1−(ASSOCIATION) 使用法:関連属性はどのルール・ノードでも使用できる
機能二関連屈性は上記の関連因子に関する値を指定する
ために使われる。ノードに関する確信度が得られると、
確信度は上記のように親ノードに渡される前に関連因子
を乗算さ九る。もし関連属性が指定されていなければ、
それは1のデフオールド値を得る。即ちそれはそのノー
ドの確信度に影響を与えない。関連因子は、ノードがそ
の最終的な重みを受は取ったあとに乗算される。それは
受は取った親ノードの重みに影響を与えるが、与えられ
たノードの重みには影響を与えない、もし参照ノードが
関連属性を有するノードを参照すれば、参照ノードに与
えられる値は関連因子による乗算の前の重みである。
6び出しくCALL) 使用法:呼び出し属性はどのルール・ノートでも使用で
きる。これは必要なものではない。
機能:呼び出し属性は「活動」属性である。これは別の
ルール・ベースが呼び出される原因になる。
この動作は、ノードの重みがそのノードに関する高しき
い値に等しいか又はそれより大きいと評価された場合に
だけ起きる。もし他のルール・ベースが呼び出されると
、現在トレースされているルール・ベースは記憶され、
新しいルール・ベースの実行が開始する。呼び出された
ルール・ベースは既にコンパイルされているものと仮定
する。呼び出されたルール・ベースが終了すると、制御
は児のルール・ベースに戻り、システムは残された所か
らこのルール・ベースの処理を続行する。
クラス(CLASS) 使用法二クラス属性は証拠ノードでしか使用されない。
これは必要なものではない。
機能二クラス属性は証拠ノードによって参照されるクラ
スを指定する。これはクラスの名前を告げ、またそのク
ラスに対するどの答えが証拠ノードを真に評価させるか
も知らせる。証拠ノードについては以前に述べた。
デフオールド(DEFAULT) 使用法:デフォールト属性はパラメータと共にしか使用
されない。
機能:デフォールト属性はパラメータに関するテキスト
文字列を指定する。もしユーザによって他の文字列が与
えられなければ、このデフオールド文字列がパラメータ
の値として使用される。
Ji、、DELETE) 使用法:削除属性は手続き呼び出しの定義と共にしか使
用されない。これは必ずしも必要でない。
機能(実行、ロード又は削除)がどれも指定されていな
ければ、デフオールドは「実行」である。
機能:削除属性は、手続きをメモリから削除するために
手続きノード定義に関して指定される。もし削除属性が
指定されれば、PASS及びRETURN居性は不要で
ある。
行  EXECUTE) 使用法:実行属性は手続き呼び出しの定義と共にしか用
いられない。これは必ずしも必要でない。
もし機能(実行、ロード又は削除)が指定されていなけ
れば、デフオールドは「実行」である。削除及びロード
の属性も参照されたい。
機能:実行属性は、手続きが(ロード又は削除ではなく
)実行れるべき時に手続きノードの定義に関して指定さ
れる。
説明(EXPLANATION 使用法:説明属性はクラス、パラメータ又は証拠ノード
と共にしか使用できない、これは必ずしも必要でない。
機能:説明属性はテキスト文字列を指定する。その目的
はユーザを援助するために説明文を提供する事である。
もしユーザが彼に与えられた質問を理解できなければ、
彼は「?C」を入力する事によってさらに説明を要求し
てもよい。この時、説明凡作によって与えられた説明文
がユーザに提供される。もし「?C」が入力された時に
クラスの質問が行なわれているならば、ユーザはそのク
ラスによって与えられる説明文を提示される。もしパラ
メータの質問が行なわれているならば、F2O」はパラ
メータの説明文を提示させる。もし証拠ノードが(クラ
スを参照せずに)ノードにおいて質問をしていれば、r
?e」はそのノードに与えられた説明文を提示させる。
いずれの場合も、説明属性が存在しない時に「?e」ユ
ーザによって入力されると2システムは「説明文は与え
られていません。」と応答し、質問を繰り返す。
グローバル GLOBAL) 1つのセツションの間に別のセグメント化ルール・ベー
スの間で、又はセツションが中断された場合同じルール
・ベース間で、収集されたデータを受は渡すためにこの
システムによって用いられている主な手段の1つは、各
ノードへのグローバル又はローカルの属性の割り当てに
関係している。
グローバル属性はルール木の中のどのノードに割り当て
てもよい6例えば、システムにより実行される最初のル
ール・ベースがあるテスト・ユニットを動作させる事に
よってハードウェア構成を決定するものと仮定する。も
し操作者がシステムのいくつかの構成要素、即ちプリン
タ、ディスク・ドライブ及びキーボードを診断しようと
すると。
各構成要素毎に新しいセツションを行なう事もあり得る
。もちろん、全てのセツションのために1回だけの構成
テストを行ない次にその情報を種々のセグメント化され
たルール・ベースに渡す方がより効率的である。同様に
、テストされる各構成要素が別々のルール・ベースを必
要にするならば、構成情報は全てのルール・ベースに渡
されなければならない、以前に述べたように、どのノー
ドにもグローバル属性を与える事ができる。もし証拠ノ
ードがグローバルであれば、質問は複数のセツションの
間に1回だけしか行なわれない。操作者が与える答は全
セツションにわたって、その値として保持される。同様
に、手続き又はテスト・ユニットは複数のセツションの
間に1度だけ実行される。パラメータはグローバル証拠
ノードと同じように評価される。グローバル属性を割り
当てられたノードは複数のセツションの間、その重み又
は値を保持する6もし証拠ノード又は外部ノードがグロ
ーバルであれば、それが参照する質問又は手続きは行な
われ得るが、そのノードは更新又は再評価されない、も
しく rANDloRJ又はrNOTJ等の)中間ノー
ドにグローバル属性が割り当てられたならば、その下の
木は複数のセツション間に再評価されない。
またグローバル属性は、複数のルール・ベースが同じセ
ツション中に実行される時に、ルール・ベース間で値を
受は渡すためにも使われる。1つのセツションは、1つ
の問題に対する解を決定するためのルール・ベースの実
行と定義される。
またグローバル属性は、複数のルール・ベースが実行さ
れる時に、ルール・ベース間で値を受は渡すためにも使
われる。もし証拠ノード、パラメータ、又はテスト・ユ
ニットの結果に関するいずれかの値が複数ルール・ベー
ス間で必要であれば、その答、テスト・ユニット、手続
き、又はパラメータは両方のルール・ベース中でグロー
バル属性を与えられる。グローバル属性を有するノード
に1つのルール・ベース中で値が与えられると、その値
は両方のルール・ベース中に保持される。
グローバル属性を与えられた複数のノードは再質問又は
再実行されないが、同じ値を与えられる。
ルール木の中のノードは参照ノードを用いれば別の木を
参照する事ができる。参照されるノードには、一意的な
名前属性が与えられる。参照する側のノードは、その名
前のノードを参照し、その参照されたノードの値が与え
られる。参照ノード及び参照する側のノードの両者にグ
ローバル属性を与える事によって別のルール・ベース中
のノードを参照する事が可能である。
要約すると、グローバル属性は、複数のセツション間で
ルール・ノード、パラメータ、手続き又は質問の値をシ
ステムが保持し、且つルール・ノードに割り当てられた
値を複数のルール・ベースの間で受は渡す事を可能にす
る。これらの能力の両者は、文脈的ユニットにセグメン
ト化されたルール・ベースを有するエキスパート・シス
テムに必要である。
ローカル LOCAL ローカル属性は、コンサルテーション・セツションの間
にデータが変化する時、データ及び証拠ノードをシステ
ムが連続的に更新する事を可能にする。システムは静的
又は動的なデータを収集し且つこの2つの型の情報を区
別する能力を有している。
もし証拠ノードにおける質問が毎回行なわれるべきであ
れば、その質問はローカル属性が与えられなLすればな
らない。同様に、もしテスト・ユニットが毎回実行され
るならば、それは外部ノードにおいて参照され且つロー
カル属性が与えられなければならない、ローカル属性は
後述する再質問属性とは違っている。再質問属性は、再
質問属性を有するノードが評価される時にだけクラスが
再質問される事を指定する。一方、ローカル属性は、そ
れが、証拠ノード巾で参照される毎に質問が再び行なわ
れる事を指示する。この同じ相違点が。
手続きノードに対するローカル属性と後述する再実行属
性の割り当ての間にも存在する。
もし証拠ノード又は外部ノードにローカル属性が与えら
れたならば、そのノードは、それが参照しているテスト
・ユニット又は質問が別のノードから尋ねられるか又は
実行された時に、更新されない。その代りに、そのノー
ドはシステムによって選択された時にだけ更新される。
ローカル属性は、例えば、プリンタの診断中に操作者に
多数回質問する為に使用される。もしシステムが連続的
にユーザにハードウェアを調整する様に指示する場合、
ユーザがハードウェアの調整を終える毎にユーザに同じ
質問「テスト行がプリンタに印字されていますか?」を
行なう必要がある。この時、答はユーザが取ったステッ
プにより変化する可能性がある。この場合証拠ノード又
は質問がローカル属性を割り当てられるであろう。
高/低()iIGH/LOW) 使用法:高及び低の属性はルール・ノードに関して使用
される。これらは必ずしも必要なものではない。もし指
定されていなければ。
各々デフオールド値は1及びOになる。
機能:各々、高及び低の属性を用いて、ノードに関する
高しきい値及び低しきい値が指定される。あるノードに
関して計算された確信度が高しきい値以上であれば、そ
のノードは頁であると考えられる。もし確信度が低しき
い値以下であれば、そのノードは偽であると考えられる
。しきい値は、正規属性を適用する時にも重要である。
これらのしきい値及びそれらの作用のし方は。
以前に説明した。
j  (INITIAL 使用法:初期属性はクラス、パラメータ、手続き呼び出
し、又は、ルール・ノードに指定できる。これは必ずし
も必要なものではない。
機能:通常のルール処理が開始する前に、初期属性が与
えられたオブジェクトが評価される。初期属性の与えら
れた手続きが最初に実行され1次に初期属性の与えられ
たルール・ノードが評価され、3番目に初期属性の与え
られたクラスが評価され、最後に初期属性の与えられた
パラメータが評価される。初期属性を有する全ての初期
オブジェクトが評価された後、ルール・ベースの残りが
処理される。
ロード(LOAD 使用法二ロード属性は手続き呼び出しの定義と共にしか
使用されない。これは必ずしも必要なものではない6機
能(実行、ロード又は削除)が指定されていなければ、
デフオールドは「実行」である。
機能二ロード属性は、手続きが(実行又は削除ではなく
)ロードされるべき時に、手続き呼び出し定義に関して
指定される。
各且A星人並旦と 使用法:名前属性はルール・ノード又は、手続き呼び出
し定義のいずれかに与える事ができる。これは2つの場
合に明白に異なった機能を有する。ルール・ノードの場
合これは必ずしも必要なものではない。一方手続き呼び
出し定義の場合、これは必要な属性である。
機能:ルール・ノードの場合、名前属性はノードに名前
を与える事を可能にする。この名前は、その名前を有す
るノードが頭に来る部分木を参照ノードによって参照す
る事を可能にする。参照ノードにおける名前属性は、ど
のノードが参照されるかを指定する。
ノードに名前を与える事は、ルール・ファイルをデバッ
グする時にも有用である。一方1手続き呼び出し定義に
おける名前属性は呼び出される手続きの名前を指定する
正  (NORMAL 使用法:正規属性はルール・ノードと共にしか使用でき
ない。これは必ずしも必要なものではない0機能:正規
属性が、あるノードに指定されると、ノードの確信度は
それがその親ノードに渡される前に正規化される。
正規化機能については、以前に説明した。
正規化機能は必ずしも高及び低のしきい値を必要としな
いが、しきい値に関してデフオールド値が仮定された場
合そのノードの正規化は何の影響も与えない。正規化機
能はノードの値を計算する時の最後のステップである。
もし他のノードが、正規属性を有するノードを参照する
と、それは正規化された値を受は取る。
仏i遵已A唱遺り− 使用法:伝達属性は手続き呼び出し定義と共にしか使用
されない、これは必ずしも必要なものではない。
機能:伝達属性は5手続きが呼び出された時にそれに渡
すべきものを指定する。伝達属性は、実際に渡される値
、クラス名、別の手続きから返される値、又は渡される
値の型を指定できる。もし型だけが指定されたならば、
値は外部ノード中にセットされなければならない。渡さ
れるパラメータは、フルワードの整数、16進数、実数
、2進数又は文字列が可能である。
電゛オフ POWEROFF 使用法:電源オフ属性はクラスと共にしか使用されない
。電源オフ属性有するクラスは値属性を持つべきもので
はない。
機能:電源オフ属性は、このクラスのテキストがユーザ
に機械の電源オフを要求する事を示す、この属性は、そ
のテキストが表示される前にルール・ベースの状態を保
存しなければならない事をエキスパート・システムに知
らせるために含まれなければならない。電源オフ属性を
持つクラスは値属性を持つべきではないが、これは機械
の電源がオフにされるので、ユーザがこのクラスに与え
られる答はエキスパート・システムによって保存されな
いからである。
ROC 使用法:PROCM性は外部ノードでしか使用されない
機能:外部ノートは手続き呼び出し定義を指定しなけれ
ばならない。これはPROC属性を用いて行なわれる。
指定されたIDは。
手続自体の名前に対立するものとして手続き呼び出し定
義の名前である。
リ   RETURN 使用法:戻り属性は手続き呼び出し定義と共にしか用い
られない。これは必ずしも必要ものではない。
機能:戻り属性は、手続きが呼び出された時に返される
変数を指定するために使われる。
各変数毎に1名前が指定される。これは外部ノードがこ
の返された変数を参照する事を可能にする。また各変数
毎に、フルワード整数、実数、2進数、16進数、又は
文字列等の変数の型が指定される。
5ECT/5TEP 使用法:5ECT又は5ETP属性はルール・ノードと
共に使用できる。これらは必ずしも必要なものではない
。ルール・)°−ドには複数の5ECT及び5ETP属
性が存在してもよい。しかしながら、単一のノードには
、与えられたクラスに関して1つだけの5ETC属性が
、また与えられたパラメータに関して1つだけの5FT
P属性が存在し得る。
機能:5ETC及び5ETPの属性は「活動」属性であ
る。5ETC属性はクラスを特定の値にセットさせ、そ
してSETPMc性はパラメータを特定の値にセットさ
せる。この動作は、ノードがそのノードに関する高しき
い値以上の重みを有すると評価された場合にだけ起きる
。クラスは定数値にセットできる。また、5ETC属性
が外部ノード中にあれば、クラスはこの外部ノードによ
って起動された手続きから返された値にセットできる。
パラメータは文字列にセットできる。また、5ETP属
性が外部ノード中にあれば、パラメータは、この外部ノ
ードによって起動された手続きから返された文字列にセ
ットできる。
テキスト(TEXT 使用法:テキスト属性はクラス、パラメータ、手続き呼
び出し定義、又は目標、仮説もしくは証拠のルール・ノ
ードと共に使用できる。もしクラス又はパラメータがユ
ーザに質問をする事によって評価されるならば、そのク
ラス又はパラメータに関してテキスト属性が必要である
。もしクラス又はパラメータが常に内部的にセットされ
るならばそれは必要ない。
クラス、パラメータ又は証拠ノードに関する機能: この場合、テキスト属性はユーザに提示されるべき質問
を供給する。クラスに関するテキストは、そのクラスに
関する値を得るために提示される。パラメータに関する
テキストはパラメータに与えられるテキスト文字列値を
得るために使われる。証拠ノードの場合、もしノードが
クラスを参照しなければ、それはテキスト属性を用いて
質問を与えなればならない。
目標ノード、仮説ノード、又は手続き呼び出し定義に関
する機能:この場合、テキスト属性はユーザのために情
報を与えるが、応答は期待されない。目標ノード又は仮
説ノードに関するテキストはその木に関する結論を述べ
たものである。このテキス1へは。
目標又は仮説が真と評価された場合、即ちそのノードに
関して計算された確信度が高しきい値以上になった場合
に、与えられる。
手続き呼び出し定義のために与えられるテキストは、手
続きが呼び出された時に提示される。これは何が起きて
いるかをユーザに知らせるものである。例えば、「ディ
スケットのテストが行なわれています、」とか[お待ち
ください・・・これは約5分かかります。」というテキ
ストが表示される。
葱−い7ALU)リー 使用法:値属性はクラスと共にしか用いられない。多く
の目的にとって、これは必要な属性であるが、ユーザか
らの応答が期待されないならば、これは省略してもよい
機能:値属性はクラスのために2つの型の情報を提供す
る。1つはそのクラスに関する許される答を示し、1つ
はどれ位多くの答が期待されるかを示す。
特定される値は3つの形式の1つを取り得る。
1、個別的な文字列値のリスト。
(rYesJ  rNoJ  rmaybsJ )2、
数字の範囲。数字は整数、実数又は2進数が可能である
(1:15) (2,2: 4.3) (’00’ xb:  ’FF’  xb)範囲を指定
する時、端のない区間は「申」を用いて示される。
(1: *) (申:lO,O) 最初の例は任意の正整数(即ち1以上の任意の整数)を
許す。
3、型。この形式は、クラスが常に、ルール・ノード中
の5ETC属性を用いて内部的にセットされる時に使用
される。クラスは内部的にセットされるので、ユーザは
質問をされない。指定する必要のあるのは答の型だけで
ある。有効な型は、整数、実数、2進数、16進数、又
は文字列である。
値属性によって与えられる他の情報は、クラスの質問に
関して許された答の数である。この数は正整数又は「任
意(A N Y )によって示される。
これはユーザに答を入力するように促す回数をシステム
に知らせる。もし「任意」が指定されると、システムは
、ユーザが空行を入力するまでユーザに答を入力するよ
うに促し続ける。もし許された答の数が指定されていな
ければ、デフオールドは1になる。
クラスは値属性を全面的に消去してもよい。これは特別
な値がユーザによって入力されない事を示す。その代り
に、ユーザは単に入力(ENTER)キーを押す。この
オプションは、テキストが表示される必要があるが答は
期待されない時に使われる。例えば、ユーザは「プリン
タのプラグが入っている事をチェックして下さい。チェ
ックしたら入カキ−を押して下さい6」という表示を示
される事がある。この場合、ユーザからの答は期待され
ない、クラスが値属性を持たない時、そのクラスを使用
する証拠ノードはクラスの重みに等しい確信度を受は取
る。(即ち、それらは1−重みは受は取らない。) 使用法:重み又は定義済み重みの属性はクラス。
手続き呼び出し定義、又は証拠ノードと共に使用し得る
。これは必ずしも必要ではない、これが指定されていな
ければ、デフオールドは1である。
クラスに関する機能:あらゆるクラスはそれに付随する
重みを有している。この重みは−1と1との間の数であ
り、そのクラスに関して与えられた答にどれ位の確信度
が伴うべきかを示す。重み又は定義済み重みの属性はこ
の重みをセットするために使われる。もし単なる重み属
性がノードに与えられたならば、ユーザは最初に重みを
入力するように要求される。ユーザがそれを断った場合
に限って1重み属性によって指定された値が使われる。
もし定義済み重みの属性がノードに与えられていれば、
ユーザは重みについて質問される事はない6その時は定
義済み重みによって定義された値が使われる。
手続きに関する機能:各手続き呼び出し定義はそれに付
随する重みを有する。この重みは−1と1との間の数字
であって、返された値にどの位の確信度を与えるべきか
を示す。重み又は定義済み重みの属性はこの重みをセッ
トするために使われる。もしいずれの属性も使われてい
なければ、重みのデフオールド値は1である。ノードに
重み又は定義済みの重みの属性が与えられていれば、こ
の属性によって定義される値が手続き呼び出し定義に与
えられる。ユーザは手続き呼び出し定義のための重みを
与えらるようには要求されない。
証拠ノードに関する機能:もし証拠ノードがクラスを参
照せず、それ自身の質問をするならば、それは重み又は
定義済み重みのいずれかの属性を持ち得る。もしどの属
性も指定されていなければ、ユーザはOlOと1゜0と
の間の数字を入力するように促される。
もし定義済み重みが使用されると、ユーザはrYesJ
又はrNoJを答えるように促される。ユーザがrYe
sJと答えると定義済みの重みがそのノードに与えられ
る。
もしユーザが「NO」と答えると、1から定義済み重み
を引いた値がそのノードに与えられる。もし重み属性が
指定されていれば、ユーザはrYasJ  rNoJ又
は0゜0と1.0との間の重みを入力するように促され
る。もしrYesJと入力すれば、ノードは上記重みを
与えられる。rNoJと入力すれば、ノードに1=重み
が与えられる。もし数字を入力すれば、ノードはその重
みが与えられる。
再質問及び再実行の属性は、操作者又はハードウェアか
ら集めたデータ及び証拠をシステムが連続的に更新する
能力をシステムに提供する6例えばハードウェアの診断
中に、条件が変化すると、証拠も変化する可能性がある
。従って、目標は最も最近の利用可能な証拠に基いて到
達される。
選択的に操作者へ再質問するか又はハードウェア上のテ
スト・ユニットを選択的に再実行する事が必要な事があ
る。例えば、ケーブル接続をテストするテスト・ユニッ
トが実行される事があるかもしれない、もしテストが最
初失敗したならば、操作者は新しいケーブルを取り付け
るように要求されるであろう。そして次にテスト・ユニ
ットは接続を確認するために2番目のテストを実行する
また同様に、システムはユーザに「プリンタのスイツチ
が入っていますか?」と尋ねる事があるかもしれない。
もし入っていなければ、ユーザはスイッチを入れるよう
に要求され、質問が繰り返されるであろう。もし質問が
再度行なわれるのであればその質問への参照を含む証拠
ノードに再質問の属性が与えられる。同様に、テスト・
ユニットが再実行されるならば、そのテスト・ユニット
への参照を含む外部ノードに再実行の属性が与えられる
。質問が行なわれる最初の時、同じ質問を参照するが再
質問属性を持たない証拠ノードのみが。
答に依存して、評価され「真」又は「偽」に更新される
。システムが再質問属性を有する証拠ノードを選択した
時、たとえ以前に質問がされていたとしても、質問が再
び行なわれる。再実行属性を有する外部ノードは、再質
問属性を有する証拠ノードと同様に評価される。
E−10,ルール・ベース間での  のハけ゛ しルー
ル・ベースがセグメント化されている時。
ルール・ベース間で情報を受は渡す事の必要性は明白で
ある0例えば、ルール・ベースを呼び出す時、呼び出さ
れたルール・ベースに、クラスへの値又はパラメータへ
の答等の何らかの初期情報を渡す必要性がある。また、
同じ項目を複数回テストするために、同じルール・ベー
スを複数回呼び出す事もある。これは1例えば、同じシ
ステム上にあるディスク・ドライブを数回テストするた
めに行なわれるであろう。この時、呼び出されたルール
・ベースが正しい装置を正しい方法でテストするために
、ドライブ速度等のあるクラスが最初にセットされなけ
ればならない。1つのルール・ベースからの結論が他の
ルール・ベースの結論に影響を与える事もある。従って
、1つのルール・ベース中のノードが他のルール・ベー
ス中のノードを参照する事が必要である。ある手続きは
1度しか実行されないが、それらの手続きによって返さ
れた値はいくつかのルール・ベースによって使用される
事がある。従ってルール・ベース間で手続き情報を受は
渡す方法が存在しなければならない。良好な実施例の診
断のアプリケーションの場合、いくらかの情報が、エキ
スパート・システムの呼び出される前に、ユーザから集
められる。この質問を繰り返さないですむように、この
情報をシステムに渡す方法が必要である。
何らかのオブジェクトに付随する情報がルール・ベース
間で受は渡される必要がある場合、そのオブジェクトに
は「グローバル」の属性が与えられる。これは、それが
1つ以上のルール・ベースで使用されているかもしれな
い情報である事をシステムに知らせる。グローバル属性
については以前に説明した。
E−11,グローバル・リスト 第1図のスーパバイザ・プログラム12は、グローバル
・オブジェクトのリストを保持し、そのリストを最新の
値を用いて維持し、そしてこのリストから得た値を用い
てルール・ベースを更新するように機能する。グローバ
ルであると定義された任意の型のオブジェクトに関する
情報を記憶する単一リンクのリストが保持される。この
リストはグローバル・リストと呼ばれる。長さリストの
各レコードは下記の情報を保持する。
1、オブジェクトの名前。
2.オブジェクトの型、例えばクラス、手続き、パラメ
ータ、又はルール・ノード。これは正しいオブジェクト
が置かれている事を2重チェックする為に使われ、又異
なった型のオブジェクトに同じ名前を与える事を可能に
する。
3、プール変数IN−CURRENT−RULEBAS
E、これは現在のルール・ベース中にグローバルなオブ
ジェクトが在存すれば真になる。
4、クラス又はパラメータが質問されたか否か。
又は手続きが実行されたか否かを示すために使われるプ
ール変数。
S、クラス、ルール・ノード又は手続きに付随する確信
度。
6、クラスに関する答、又はパラメータ、又は手続きに
関して返される値を保持する応答リストへのポインタ。
7、リストをリンクされたリストにする、次のグローバ
ル・レコードへのポインタ。
スーパバイザ・プログラム12は下記のようにしてグロ
ーバル・リストを維持する。ルール・ベースが読み込ま
れる時、グローバル属性を有するオブジェクトに出会う
と、そのオブジェクトがリスト上にあるかどうかを見る
ためにグローバル・リストのサーチが行なわれる。もし
それがリスト上にあれば、グローバル・リスト上に存在
する情報がスーパバイザから得られ、残りの情報がディ
スケットから読み取られる。もし、そのオブジェクトが
グローバル・リスト上になければ、それはディスケット
からリストに付は加えられる。そのオブジェクトに関す
る全ての情報はディスケットから読み取られる。いずれ
の場合にも、プール変数IN−CURRENT−RUL
EBASEは真にセットされる。
ルール・ベースが読み込まれた後、推論機構13が起動
される。他のルール・ベースが呼び出されるか又は現在
のルール・ベースが使い尽された時、制御はスーパバイ
ザ12に戻される。現在のルール・ベースをディスケッ
ト・ファイルに記憶する前に、そこで得られた情報を用
いてグローバル・リストを更新しなければならない、グ
ローバル・リストは、プール変数IN−CURRENT
−RULEBASEが真にセットされたオブジェクトを
サーチされる。そのようなオブジェクトは、現在の情報
を用いて更新され、上記プール変数は偽にリセットされ
る。
従って、この時点で、グローバル・リストは更新され、
次のルール・ベストの読み込みは最新の情報を用いて行
なわれる。システムへの情報の伝達のうち最も複雑なケ
ースの1つは、1つのルール・ベース中のノードが別の
ルール・ベース中のノードを参照する時である。グロー
バル・オブジェクトのリストは、この機能に関しても使
用される。通常の場合、ノードが同じルール・ベース中
の別のノードを参照する時、参照するノードは参照され
るノードに対するポインタを有している。
従ってそれは位置を見い出す事及び確信度を得る事が可
能である。現在のルール・ベース中のノードが別のルー
ル・ベース中のノードを参照する時。
参照されるノードは現行のルール・ベース中はもとより
メモリ中にも存在しないので、それに対するポインタは
有りえない、この障害はグローバル・リストを用いて克
服される。参照するノードにはグローバル属性が与えら
れるので、その確信度はグローバル・リスト上に記憶さ
れている。スーパバイザは、メモリ中にないノードを参
照しているルール・ベースが読取られる時を認識する。
その時スーパバイザは現行のルール・ベースに関するダ
ミー・ノードを作成し、グローバル・リスト上に記憶さ
れた参照ノードの名前及び確信度をそのダミー・ノード
に与える。現行のルール・ベースにおいて、メモリ外の
ノードに対する参照は、このダミー・ノードを現行のル
ール・ベース中のノードであるかのように同じ方法で指
示する。この時推論機構13はグローバルな参照を通常
の参照のように取り扱い、何の相違も認識しない。
また、グローバル・リストはシステムに値を渡すために
も使われる。呼び出された時にシステムに渡されるパラ
メータの1つは、グローバル・すストへのポインタであ
る。もし何の情報も渡されないならば、このポインタは
空白である。もし情報が渡される必要があれば、呼び出
し側のプログラムは、エキスパート・システムが呼び出
される前にグローバル・リスト上に情報を記入する。
グローバル・オブジェクト即ちグローバル属性を与えら
れたオブジェクトを使う事はシステムの柔軟性を増大さ
せる。情報は、システムが起動された時にシステムに渡
す事ができる。クラス及び”パラメータは1つのルール
・ベース中で評価され。
他のルール・ベース中で使用できる0手続きは、たとえ
2つの異なったルール・ベース中で使われていても、1
度実行されるだけでよい、これは値が記憶され、グロー
バル・リストを用いて渡されるからである。また別のル
ール・ベース中のノードを参照する事も可能である。グ
ローバル・オブジェクトは、単一ルール・ベース構造の
利点を失なう事なく、セグメント化ルール・ベースに多
くの利点を提供する。
以前に説明したように、ルール・ベース11は4つの主
な部分(セクション)、クラス、手続き。
パラメータ及びルールを有している。これらは集合的に
オブジェクトとも言う。これらのセクションの各々の概
略説明は以前に行なったが、サンプルを使った。より詳
細な説明を下記に行なう。
E−12,クラス・セクション クラス・セクションのサンプルは下記の通りである。
CLASSES PRINTER TEXT= ’問題点はプリンタに関係しているように
思えますか?′ VALUE=l  OF (’YES”N○′)PRE
DEFINED WEIGHT=0.8xxx xxx
x TEXT= ’XXXXXXXプリンタを使用していま
すか?′ EXPLANATION= ’機械の前面の右上の隅に
、IBMロゴの付いた銀色の金属の四角形があります。
この四角形の左下隅に4桁の数字があります。これが、
あなたの使っている×××プリンタの番号です。もしこ
の数字が5215ならば、それはxxx’xxXXプリ
ンタです。′VALUE= (’YES”No) INITIAL WE  I GHT= 1 LOBAL SYMPTOM TEXT= ’次の症状のどれに気付きましたか: (1)文字が印字されない (2)文字が間違って印字される (3)文字が汚れている (4)紙が曲って送られる (5)上記のどれでもない′ VALUE=ANY  OF (1: 5)PRINT
ER−LITE TEXT= ’プリンタの前面で灯が明滅していますか
?′ VALUE=10F (’YES”No)PREDEF
INED   WEIGHT=I0CAL 上記の例はクラス・セクションがどのように構成されて
いるかを説明している。最初のワードはCLASSES
である。この後にクラスが定義される。クラスの一般的
な形式は:識別子(これはクラス名である)及びそのク
ラスに関する属性が(例えばTEX’l INITIA
L等)続いたものである。この例では、クラスは、PR
INTER,xxxxxxx、SYMPTOM、PRI
NTERLITEである。クラスに関する属性はどの順
序で現れてもよい、クラスの定義は次のクラス名によっ
て終了する。他のセクションの開始はクラス・セクショ
ンを終了させる。
E−13,パラメータ・セクション パラメータは、以前に説明したように、テキスト文字列
値のための場所を保持するものとして使われる。この値
はユーザによって、又は手続き呼び出しから提供される
。パラメータがテキスト中で使用される時、パラメータ
名は、名前の始めに「$」記号を付けなければならない
。これは、それがパラメータ名として認識される事を可
能にする。パラメータは、テキストがユーザに表示され
る前に、それが表わしている文字列によって置き換えら
れなければならない。パラメータは任意のテキスト文字
列内で使用できる。
サンプルのパラメータ・セクションは下記の通りである
。但し、パラメータPRINTERNUMBERは、ク
ラスrPRINTERJ及びルール木1の目標テキスト
の中では$PRINTERNUMBERを使って参照さ
れている事に注意されたい。
CLASSES PRINTER TEXT= ’問題点は、$PRINTERNUMBE
Rに関係しているように思いますか?′VALUE=1
 0F (’YES”No)PREDEFIND  W
EIGHT=IPARAMETER8 PRINTERNUMBER TEXT=’プリンタの番号は何ですか?′EXPLA
NATION= ’あなたのプリンタの番号は4桁の数
字です。それは、あなたの機械の前面の右上隅に見つけ
る事ができます。′RLES % RULE  TREE  1% I  GOAL TEXT= ’$PRINTERNUMBERプリンタ
に関してサービス要求番号151018を報告して下さ
い′   AND 3  EVIDENCE CLASS= (’YES’ )OF  PRINTE
RLITE 3  EVIDENCE CLASS=2 0F  SYMPTOM上記例はパラ
メータ・セクションの構成を説明している。このセクシ
ョンの最初のワードはキニワードPARAMETER3
である。それにパラメータ名が続く、各はパラメータ名
の下に、そのパラメータに与えられる属性のキーワード
が来る。
属性には、その属性に関する値が続く。パラメータ定義
内の属性の配列は特に意味がない。パラメータ定義は次
のパラメータ名によって終端する。
パラメータ・セクションは別のセクションの開始によっ
て終端する。
一貌二14ユ」]「1土j」化1ンー ルール・ベースの手続きセクションは、手続き呼び出し
の定義を与える。それは、呼び出す手続き、渡す変数、
及び返される変数の名前と型等の情報を提供する。手続
きは外部ノードによって呼び出され、手続きから返され
る値はそのノードで使われる。手続きが呼び出される時
、その手続き呼び出し定義を参照する外部ノードは真又
は偽に評価されるにの評価は、手続きから返された値及
び外部ノードに与えられた比較に依存する。
手続きセクションのサンプルは下記の通りである。これ
は手続き呼び出し定義を有するルール・ベース・ファイ
ルを示している。これはまた、外部ノードでこの手続き
出び出しを参照するルール・ノードも含んでいる。
LASS PROCEDURES PRINTERTESTI NAME=PRINTERTU PASS  32767  %SVCNUMBER% RETURN  5TATUSBIT  HEXND PRINTERTEST2 NAME=PRINTERTU PASS  99999  %SVCNUMBER% RETURN  5TATUS  HEX (1)ER
RORNUMBERINTEGERND DISKETTETEST NAME=DI SKETTETU PAS8  666890 RETURN   ADDRESS   INTEGR 8TADTUS   HEX(1)    ENDUL
ES I   GOAL TEXT= ’あなたのプリンタに関してサービス要求
番号151018を報告して下さい′   0R 3EXTERNAL PROC=PRINTERTEST  REEXECU
TE STATUS  NE ’00’ XBERRORNU
M   LE  5 3  EVIDENCE CLASS=’YES’OF  PRENTRLITE 手続きセクションの最初のワードはPROCEDURE
Sである。その後に、定義された手続き呼び出しのID
(例えば、PRINTERTESTl、DISKETT
ETEST)が続く。6手続き呼び出しIDの後には、
定義された手続き呼び出しに関する属性が続く。手続き
呼び出し定義内の属性の配列は特に意味を持たない。手
続き呼び出し定義はワードENDで終了する。他のセク
ションの開始は手続きセクションを終了させる。
E−15,ルール・セクション ルールはルール木を定義するルール・ベース・ファイル
のセクションである。木毎に、木の各ノードが定義され
、それに関する属性が指定される。
ルール木に関する定義は次のルール木の開始によって終
端する。
サンプルのルール・セクションは次の通りである。
% RULE  TREE  1% I  GOAL TEXT= ’サービス要求番号151017を報告し
て下さい′ HIGH=0.7 NAME=GOALL 2   AND ASSO=0.8 3   AND NORMAL I ZE 4   EVIDENCE NAME=PRINTERI ASSO=0.9 CLASS=(’YES’JOF  PRITER4E
DVIDENCE NAME=RIBBONS CLASS=  (’No’  )OF  RIBBO
N3   EVIDENCE NAME=SYMPTOMI CLASS=1  0F   SYMPTOM% RU
LE  TREE   2% l   QOAL TEXT=  ’$PRINTERNtJMBERプリ
ンタに関してサービス要求番号151018を報告して
下さい′ 2   AND 3   N0T 4   REFERENCE NAME=RIBBON 3   EVIDENCE CLASS=  (’YES’  )OF   PRI
TER EVIDENCE CLASS=2  0F   SYMPTOM上記の例
は、ルール・セクションがどのように構成されているか
を説明する。ノードのレベルは。
ノード定義の始めの整数によって示されている。
ノードの順序は、深さ優先、左から右への探索によって
定められる。木が現れる順序は重要である。
というのはそれは木がトレースされる順序に影響するか
らである。
月二一り1エ」ζ艷土ノ聾仁ジツー 記号セクションは、クラス、パラメータ、手続き、及び
ルールのテキストの中で使われる記号を定義するルール
・ベースのセクションである。記号はテキスト文字列を
表わす、記号は、記号セクジョンにおいて、テキスト文
字列値を与えられる。
テキスト中の他の場所で、記号名は、テキスト文字列全
体をキー人力する代りに用いられる。記号は、テキスト
文字列が頻繁に変更されるか又は同じテキスト文字列が
多くの異なったテキスト中に現れる時に有用である。ま
た記号は、テキストがルール・ベース間で一致している
事を保証する事をより容易にする。ルール作成者はルー
ル・ペース中に記号セクションを含ませ、それらの記号
をテキスト中で使う事ができる。1人の人物が記号に関
するテキスト文字列を書く事について責任を与えられ、
テキストを矛盾のない状態に保ち、且つ変更を容易にす
る事ができる。
テキスト内で記号が使われる時、記号名は名前の始めに
「&」が付けられなければならない、これはシステムが
それを記号名として認識する事を可能にする。記号は、
テキストがユーザに表示される前に、それが表わしてい
る文字列で置き換えられる。
記号セクションのサンプルは下記の通りである。
SYMBOLS PRINTER=  ’XXXXXXXプリンタ′PA
RT2   = ″電子回路見板の裏側′FRU13 
  =’&PRINTER,・リボン′ SRN     = ” 010234” ’TOOL
S   = ’ (1)電圧計(2)ねじ回し く3)はんだ (4)はんだとて′ ULES I  GOAL TEXT= ’&PRINTERは故障しています、お
宮様サービス係に電話して1番号&SRN、をお知らせ
下さい。交換する必要のある&PART  は&FRU
13.です。′  0R 3EVIDENCE CLASS= (’YES’ )OF  BUZlNG 3   EXTERNAL PROC=PRINTERTEST RETURN  C0DE<>  ’00’  XB上
記の例は記号セクションがどのように構成されているか
を説明している。最初のワードはSYMBOLSである
。この後に、定義される記号名、PRINTER,PA
RT2、FRU13、SRN及びTOOLSが続く。各
記号名には1重引用符内の文字列が割り当てられる。引
用符内に含まれる全文字列がテキスト中の記号名と置き
換えられる。もしテキスト内で1重引用符が使われるな
らば、それは逆スラッシュ又はもう1つの1重引用符が
前に付かなければならない。他のセクションの開始は記
号セクションを終了させる。2以上の記号セクションが
存在する事も可能で、それらは任意の順序で他のルール
・ベースのセクションの間に分散配置できる。もしルー
ル作成者によって使用される記号のあるものが共通であ
れば、共通の「記号含有」ファイルを使ってもよい。こ
のファイルは」二連のような記号セクションを含んでい
る。このファイルはルール・ファイル開始部に含まれる
であろう。
テキスト中で記号を使うために、記号名の前には「&」
(アンパサンド)が付けられ、テキスト中の、置換され
るべき場所に挿入される。「&」は記号の定義の中では
使われていないが、記号が使われる時には存在する事に
注意されたい。記号名はブランク又はピリオドで終了す
る。記号名がブランクで終了したならば、ブランクは正
規の入力文字として扱われ、入力行中に残される。もし
記号がピリオドで終了するならば、その記号名は次の入
力文字と連結され、ピリオドは除去される。
(この特徴は日本語のテキストの場合は重要でない。)
上記例では、目標テキストは次のように表示される。
、xxxxxxxプリンタ は故障しています。
お宮様サービス係に電話して1番号’010234′を
お知らせ下さい。交換する必要のある&PARTはxx
xxxxxプリンタ・リボンです。
記号SRNは次の文字と連結され、記号PRINTER
は連結されず、ブランクが続く、もしも記号が定義され
ていないか又はテキスト中で使う時につづりが間違って
いたならば、置換は行なわれず、「&」が前に付いた記
号名がその代りに表示されるであろう。例えば、rPA
R’lに関する記号定義は存在しないので1文字列で置
換させずにr&PARTJがそのまま表示されている。
E−17,結論された 標のリスト 知識を、いくつかの文脈的ユニットに分割すると、1つ
ではなく複数のルール・ベースをトレースする必要が生
じる。また、同じ型の複数の装置について結論を引き出
すためには、同じルール・ベースを何回もトレースする
事もある。従って。
最終的な報告のためだけでなく、ルール・ベースのペー
ジ・イン及びページ・アウトのためのスタックの管理の
ために、ルール・ベースの名前を追跡しなければならな
い。
もう1つの要求は、呼び出された全てのルール・ベース
が完全にトレースされ全ての可能な目標が結論される事
であろう。
また、全ての結論された目標は記憶され、終了後に組織
化された方式でユーザに与えられなければならない。こ
れは目標を、内部的にリストの形で記憶する事を意味す
る。この結論された目標のリストは呼び出す側のプログ
ラムに戻されるので、それらを提示する前に結論をソー
ト及び編成する事ができる。
ルール・ベースは、制御ブロックのリンクされたリスト
を用いて追跡される。このリンクされたリストはRBC
Bリストと呼ばれる。各制御ブロックは、下記の5つの
フィールドを有するレコードである。
フィールドAはルール・ベース名である;フィールドB
はルール・ベースが成功的に実行された場合にゼロにな
るリターン・コードである。
フィールドCはルール・ベースが完全にトレースされた
時に真にセットされるプール変数である;フィールドD
は、スーパバイザに戻される。このルール・ベースに関
して結論された目標のリストに対するポインタである。
フィールドEは、リスト上の次の制御ブロックに対する
ポインタである。
スーパバイザ12が呼び出される時、RBCBリストに
対するポインタが渡される。この時点で。
リストは1つだけの制御ブロックしか持たず、この制御
ブロックは処理すべき最初のルール・ベースの名前を含
んでいるだけである。スーパバイザはこのリストを保持
し、終了時にそれを呼び出し側のプログラムに返す。こ
の時までに、リストはいくつかの制御ブロックを有して
いるであろう。
その制御ブロックの1つ1つは呼び出された各ルール・
ベースに対応している。もし同じルール・ベースが2回
以上呼び出されたならば、そのルール・ベースに関する
制御ブロックが複数個存在する事もある。
リスト上の各制御ブロックは、そのルール・ベースに関
して結論された目標のリストに対するポインタをフィー
ルドDに有している。個々の目標リスト中の各目標リス
ト・レコードは、下記のフィールドを有する。
1、結論された目標に関するテキスト。
2、その目標が結論された確信度。
3、次の目標へのポインタ。
メモリの制約により、システムによって使用される多く
のテキストはディスケット上に記憶されている。しかし
ながら、結論された目標リストは目標テキストを内部的
に保持しなければならない。
同じルール・ベースが2つの別の装置に関して実行され
る事があり、どの装置に対して11標が結論されたかを
示すために、目標テキストのフィールドAに文字列が代
入される。たとえルール・ベースが複数回呼び出された
としても、そのルール・ベースに関しては1つだけのテ
キスト・ファイルしかディスケット上に存在しない。も
し置き換えの行なわれた目標テキストがそのファイルに
書き戻されるならば、最後にテストされた′!A同しか
正しい目標情報を持たないであろう。また、特定のアプ
リケーションは2枚のディスケットが必要な位に大きい
かもしれない。もし目標テキスト・フィールドが現在ロ
ードされているディスケラ1−に書き戻されると、テキ
ストの一部が1つのディスケットに書かれ、一部が他の
ディスケットに書かれるであろう。システムはそれが呼
び出したルール・ベースを記憶しているという事実は、
全ての結論された目標と共に、その有用性を増大させる
これは、エキスパート・システムを呼び出し、次に処理
を続行する必要のあるアプリケーションに関してシステ
ムを有用なものにする。システムはそれが取得した知識
を記憶し、プログラムを呼び ゛出すためにそれをアク
セス可能にするので、それは他のエキスパート・システ
ムと違って、より大きな問題解決システムの一部分にな
る事ができる。
E−18,データ 造の 観 ルール、クラス、手続き及びパラメータをメモリに記憶
する事は、レコードの主リンク・リストを用いて行なわ
れる6主リンク・リストの詳細な構成は第9図、及び第
12図に示されている。これらの図面はオブジェクトに
関するリンク・リストの種々の関係を示している。
最初に、データ窮迫の一般的な概観を行なう。
第8図に示すような、ハツシュ表へのインデックスが、
オブジェクトの名前から計算されるような通常のハツシ
ュ表が使用される。ハツシュ表中の各項目は、ハツシュ
・パケットと呼ばれる、レコードのリンク・リストへの
ポインタである。その各々はハツシュ表中のその位置へ
ハツシングされるオブジェクトの名前を含んでいる。
各ハツシュ・パケットは、オブジェクトがルール・ノー
ド、パラメータ、手続き又はクラスのいずれであっても
、対応するオブジェクトへのポインタを有している。各
オブジェクトには、属性レコードのリンク・リストが付
随している。これは。
属性の名前とそのオブジェクトに関する値を保持してい
る。属性ノードに記憶されたデータの例は。
ルール・ノードに関する高及び低のしきい値、クラスの
質問又は目標のテキストに関するテキスト・ファイルへ
のインデックス、又はその属性を有するルール・ノード
が真であると評価された場合に呼び出されるルール・ベ
ースの名前を示す属性である。
各証拠ノードは、あるクラスのメンバーである。
ポインタは、ルール・ノードの属性リスト上に属性名「
証拠源(EVII)  5OURCE)J (7)下に
記憶されている。証拠源はソース・クラスの名前を含む
ハツシュ・パケットを指す。このハツシュ・バケツ1−
は、対応するクラス・ノードへのクラス参照(CLAS
SREF)ポインタも含んでいる。
クラスが評価される時、このクラスの全てのメンバーが
更新される。それらのメンバー(その全てが証拠ノード
である)は、次のようにデータ構造中に配置される。ク
ラス・ノードは、メンバーである最初のルール・ノード
へのルール・リンク・ポインタである。このルール・ノ
ードの属性リストには[メンバー(MEMBER)Jと
いう名前の属性が存在している。メンバー属性は、考察
されているクラスのメンバーである次のルール・ノード
を指す。そしてこの新しいルール・ノードの属性リスト
上には、クラスの次のメンバーを指すメンバー属性が存
在している。
最後のメンバーが見つかった時、そのメンバー属性は空
白ポインタを有する。従って、クラスのどのメンバーも
(証拠tJfXg性により)クラスへのポインタを有す
る。クラスの全てのメンバーは(メンバー属性により)
メンバーのリンク・リストによって一緒にリンクされて
いる。
外部ノード、それらのソース手続きに対する関係、及び
手続きに関するメンバー・リストは、証拠ノード及びク
ラスと同じ方法で扱われる。
参照ノードに出会う時、それが参照するノードは、その
確信度を得る事が可能な場所になければならない。参照
するノード及び参照されるノードは同じ名前を持たなけ
ればならない。従って、それらはハツシュ島の中の同じ
場所にハツシングされる。参照ノードは、そのノードの
名前を含むハツシュ・パケットを指す「名前」と呼ばれ
るポインタを有する。このハツシュ・パケットは、参照
されるルール・ノードを指すルール・リンク・ポインタ
を有する。ノードが評価されると、それを参照する全て
のノードが更新される。それらはル−ル・ノード中の「
いとこ」のポインタを用いて、共にリンクされている。
いとこポインタは、リストの先頭のルール・ノートを参
照する次のノートを指す。従って各参照ノードは、(ポ
インタ「名前Jを用いて)それが参照しているノードを
指し示す。与えられたノードを参照する全てのノードは
、ルール・ノード中で宣言されたいとこポインタによっ
てリンクされる。システムが参照ノードの位置を見つけ
る時、それは元のノードに対する名前ポインタに従う。
次にそれはこのノードを評価し、いとこリンク・リスト
に従ってこのノードに対する全ての参照を更新する。
E−19,リンク・リスト ルール・ベースは4つの主要なリンク・リスト及び複数
の副次的な関連リンク・リストより構成される。各々の
主要なリンク・リストは、ルール・ベースの4つのオブ
ジェクト型の1つに対応している。
第1の主要なリンク・リストはクラス・オブジェクトに
関するものであり、ルール・ベース中に含まれる各クラ
スに関する個別的にレコードを含んでいる。クラスのレ
コードは、第5図及び第6図に示すフィールド形式を有
している。
第5図及び第6図に示したレコードの一般的な形式は、
ある程度、ルール・ベースをコーディングするために用
いるプログラム言語に依存する。
クラス・セクション中の各レコードは固定長のレコード
であり、各々は同じ数のフィールドを有している。他の
セクションの中のレコードも固定長のレコードであるが
、長さは全てのセクションに関して必ずしも同じではな
い、主要なリンク・リストに付随する他の副次的なリン
ク・リスト例えば属性リンク・リスト中のレコードの一
般的な形式は、各レコード中のフィールド数が可変で、
各フィールドの文字数が可変である事を許すと仮定して
もよい。Pa5calプログラム言語は、第7図に例を
示すような可変レコード構造を有しており、これは他の
付随的リンク・リストに関する本発明の良好な実施例に
おいても用いられる。下記の説明中では、副次的リンク
・リストに関する全てのレコードは、特にことわらない
限り、可変レコード構造を用いているものと仮定する。
E −20,クラス・レコード 再び第6図を参照すると、クラス・レコードの形式は、
他のレコードに対するルール・ベース中のレコードの順
次的位置を識別する機能を有するファイル・インデック
ス(FILE  INDEX)・フィールドを含んでい
る。その次のフィールドはそのクラスに割り当てられた
初期の重み(PRIOR)であり、3番目のフィールド
は、そのクラスに割り当てられた現在の重み(WT)で
ある。
以前に説明したように、重みは、そのノードに関して確
信度が計算される方式に影響を与える、オブジェクトに
割り当てられた属性である。クラスに関するフラグ(F
LAGS)フィールドは、2進数の1−0で表現される
。多数の属性から成っている。各々の属性はフラグ・フ
ィールド中の所定のビット位置を割り当てられている。
それらの属性には、初期(INITIAL)属性、更新
(UPDATED)i性、電源オフ(POWER−OF
F)属性、ローカル(LOCAL)属性、グローバル(
GLOBAL)属性、5ETC属性。
及び再質問(RE−ASK)属性が含まれている。
次のフィールドMLPは、メンバー・リスト・ポインタ
を含んでいる。このポインタ゛の機能は。
ルール・ノードのリンク・リスト、即ちこの質問をする
証拠ノードにアクセスする手段を提供する事である。従
って、質問が最初に行なわれた時、答は他の全てのノー
ドに利用可能になる。クラスのメンバー・リンク・リス
ト(CMLL)がいかにして構成されるか、及びアクセ
スを得るためにMLPポインタがいかにして使用される
かの詳細は、ルール・ノード・オブジェクトに関するハ
ツシュ表及び属性リストの説明に関連して後述する。
クラス・レコード中の次のフィールドは、クラスに関す
る属性のリンク・リストを指す属性リスト・ポインタ(
PLP)である。以前に示したように、属性リストはル
ール・ベース中の各オブジェクトに付置しており、各リ
ストは同一ではないものの、それらを理解し相違点を対
比するためにそれらを−緒に説明する事を是認するのに
充分な類似性は存在している。その説明は明細書中に後
に行なわれる。
クラス・レコード中の最後のフィールドはNCPフィー
ルドである。これは続きのクラスを指す次クラス・ポイ
ンタを含んでいて、個々のレコードをリンク・リストの
形にリンクする作用をする。
クラス・セクションは、ルール・ベースの手続きセクシ
ョン(時に第5図の手続きセクションの最初のレコード
PRI)へのポインタを含む、最後のクラス・レコード
のNCPフィールドで終了する。
四二じしyユ」」を亀巴ノ、ヒL上S駈ニド手続きリス
ト・レコード中のいくつかのフィールドは、クラス・リ
スト・レコード中の同一の名前を持つフィールドと同じ
であり、それについては説明を繰り返さない、PFフィ
ールドは手続き機能フィールドであり、手続きのディス
ケットからシステムへのロード又は実行又はシステムの
メモリからの削除の可否について示すものである。
名前(NAME)フィールドは、この手続に割り当てら
れた名前を含んでいる。その次の5つのフィールド、P
RIOR,WT、FLAGS、MPL及びPLPのフィ
ールドはクラス・レコード中のフィールドと同一である
。APフィールドは、呼び出される手続きに渡される引
数のリス1へへのポインタを含んでいる。引数の各々は
、それが整数か又は文字列か、その大きさ1等のその変
数の性質を特徴付けるフィールド形式を有する別々のレ
コード中に含まれている。
さらに、手続きによって返される値の記憶位置へのポイ
ンタ用のフィールドが与えられている。
手続きレコード中の次のフィールドはRPフィールドで
ある。これは手続きによって生成され返された特定の値
を含むレコードのリンク・リストへのポインタを含んで
いる1手続きレコードの最後のフィールドはNPRPフ
ィールドであり、リンク・リスト中の次の手続きへのポ
インタを含んでいる。
E−22,パラメータ・リスト・レコードパラメータ・
リストは第6図に示す形式を有するレコードのリンク・
リストである。
パラメータ・レコードはインデックス・フィールド、名
前フィールド、フラグ・フィールド、riA性リスリス
トインタ(P L P)フィールド及び次パラメータ・
ポインタ (NPAP)フィールドを含んでいる。これ
らは前記のレコード中の対応物と同様に機能する。デフ
オールド(DEFAULT)フィールドはパラメータ・
レコードに特有である。パラメータによって行なわれる
質問にユーザが答を与えない場合に、システムによりデ
フオールドの答が与えられる事を可能にする。
E−23,属性リスト 属性リスト・ポインタ(PLP)は、そのオブジェクト
に関する属性のリストを指す6第5図及び第6図に示す
ように、PLPフィールドはクラス・レコード、手続き
レコード、パラメータ・レコード、及びルール・レコー
ドに含まれている。
そのオブジェクトと共に可変なテキストが使用される時
は、テキスト・パラメータ(TEXT  PARM)と
呼ばれる属性がそのオブジェクトに与えられる。可変な
テキストは、例えば、事前にユーザに「あなたの電話番
号は何番ですか?」といった質問をする事によって得ら
れる。質問は「電話番号」と名付けられたパラメータの
形を取り、答は「応答」と名付けられた属性の下にパラ
メータ・オブジェクトの属性リスト上に記憶される。
パラメータの名前「電話番号」も属性リストの名前フィ
ールド中にある。他のオブジェクト例えばクラス、手続
き又はパラメータが、「電話番号」と名付けられたパラ
メータによって与えられた応答を挿入する必要がある時
は、そのオブジェクトの属性リストにテキスト・パラメ
ータ属性が付加される。テキスト・パラメータ属性は、
可変テキスト中でその答が必要なパラメータ「電話番号
」に付随するパラメータ・リストを指す。テキスト・パ
ラメータ属性は、関連する属性リスト中の最初の名前を
指す。最初の名前は、「電話番号」という名のパラメー
タへのポインタを見い出すために(後述の)ハツシュ表
へのエントリーを与えるためにハツシングされる。「電
話番号」という名前のレコードがパラメータ・レコード
のリスト上に見い出されると、その属性リストが走査さ
れる。
そして、以前に質問がされていると仮定されているので
、属性「応答」が見つけられる。。
以前ユーザによって与えられたデータ(408−462
−4325)が、応答属性の下に属性リスト上に記憶さ
れている。記憶された応答、408−462−4325
は次にオブジェクトの可変テキスト中に挿入される。
属性リストの走査中に、システムがまだされていない質
問を見つけたとすると、このパラメータに関するテキス
ト・レコードのリストへのポインタを与えるテキスト属
性が見つけられる。テキス1−・レコードは、ルール・
ベース中で使用される全てのテキスト語句を含むレコー
ドのファイルであるメツセージ・ファイルへのメツセー
ジ・ポインタを含む。メツセージ・ポインタは、ユーザ
に提示される質問に関する適当なテキストを指す。
E −24,ハツシュ− 以前に言及したハツシュ表の詳細を、第8図を用いて説
明する。ハツシュ表80は、メモリの所定の領域に記憶
され、ポインタ82を記憶する一連の順次的記憶位置8
1から成る。各オブジェクト、例えばクラス、手続き、
パラメータ及びルール・ノードは例えば8文字の高さの
名前を有する事に注意されたい。ハツシング・アルゴリ
ズムは、各々の名前を、メモリのハツシュ表部分の中の
アドレスに変換するために用いられる。ハツシュ表は例
えば100個の異なったメモリ・アドレスを含んでいる
。ハツシング・アルゴリズムは例えば1000個の異な
ったオブジェクト名を上記アドレスに変換するように動
作する。従って2つ以上の名前が、与えられたハツシュ
表の位置に変換される。ハツシュ表中の各記憶位置は第
8図に示すようなフィールド形式を持つレコードの異な
ったりスト83へのポインタ82を含んでいる。ハツシ
ュ表に付随するレコードのリンク・リスト84はハツシ
ュ・パケットと呼ばれ、ハツシュ表80中のポインタ8
2はハツシュ・パケット・ポインタ (HBP)と呼ば
れる。レコード84は、ハツシュされた名前に関するフ
ィールド85、オブジエク1〜が記憶されたメモリ中の
位置を指すための一連のフィールド86、及びリスト上
の次のハツシュ・パケットへのポインタを記憶するフィ
ールド87を含んでいる。記憶位置を参照するポインタ
のフィールド86は、その名前がハツシュ表中の対応す
る項目にハツシングされたオブジェクトの型に依存して
、クラス、手続き、パラメタータ又はルールを参照する
ポインタを含んでいる。
ハツシュ表80の主な機能は、その目標が結論されるよ
うに選択されたルール・ベース中のルール本土の証拠ノ
ード又は外部ノードに割り当てられた名前をポインタに
関係付ける事である。ノードは名前を有しているので、
主要リンク・リストの1つの上にその名前を有している
オブジェクトの記憶位置は、ハツシング処理を経て、そ
のオブジェクトへの参照ポインタを得る事により得られ
る。ハツシュ表80は、後述する別の理由によリオブジ
ェクト名を用いてオブジェクトを見つけるようにも機能
する。
E−25,メンバーシップ・リンク・リスト第5図及び
第6図に示す主要クラス・リスト及び主要手続きリスト
に関するレコードは、メンバーシップ・リスト・ポイン
タMLPを記憶するためのフィールドMLPを含んでい
る。ルール・ベース全体の多くの異なったルール・ノー
ドにおいて同じ質問(クラス)が現れる事があるが、そ
れは証拠ノードで最初に参照された時に1度だけ質問す
ればよい事に注意されたい。その後、同じ質問をする他
の全てのノードは、システムによって自動的に更新され
る。同様の状況は手続きに関しても存在する。即ちその
手続き名及びグローバル属性を有する全てのノードは最
初に手続きを実行させた時に得られた結果を用いて更新
される6クラス・オブジェクト又は手続きオブジェクト
を更新するための手段は、クラス・オブジェクトに関し
てはクラスMLPポインタによって指される。メンバー
シップ・リンク・リストであり、手続きオブジェクトに
関しては手続きメンバーシップ・リンク・リストである
メンバーシップ・リスト−クラス クラス・オブジェクトのメンバーシップ・リンク・リス
ト・ポインタ、クラスのメンバーであるルール・ノード
との関係は第9図を参照すると理解できる。第9図にお
いて、主要クラス・リンク・リスト中の最初のレコード
90はMLPフィールド92にメンバーシップ・リスト
・ポインタ91を含んでいる。約91で表わされている
このポインタ91は[ルール参照(RULEREF)J
と呼ばれるハツシュ表中のフィールド93を指す。
ルール参照は、このクラスを使用するルール・ベース中
の最初のルール・ノードへのポインタ94を含んでいる
。そのルール・ノードは主要ルール・リンク・リスト中
にあり、PLPと呼ばれるフィールド96を有するレコ
ードによって表わされている。PLPフィールド96は
、ルール・ノード95に関する属性リスト98を指す属
性リスト・ポインタ97を含んでいる。ルール・ノード
95に関する属性リスト98は、属性名「メンバー(M
EMBER)J を有するレコード99を含んでいる。
レコード99は「次メンバー・ポインタ(NEXT  
MEMBER)J と呼ばれるフィールド100及び「
久居性ポインタ(NEXT  PROP)J と呼ばれ
るフィールド101を含んでいる。次メンバー・ポイン
タ102は、クラスの2番目のメンバーである主要ルー
ル・ノード・リンク・リスト中の(図示されていない)
ルール・ノードを指す、この2番目のルール・ノードも
属性リストを含み、これはさらに「メンバー」という名
のレコードを含み、このレコードは[次メンバー・ポイ
ンタ」と呼びれるフィールドを含んでいる。同様に、次
メンバー・ポインタ・フィールドは、3番目のルール んでいる。
上述のチェイニング過程は,クラスの最後のメンバーに
至るまで繰り返される.最後のメンバーは次メンバー属
性ポインタがヌル・ポインタである事によって示される
従って、クラス・オブジェクトに関するクラス・メンバ
ーシップ・リンク・リストは主要ルール・ノード・リン
ク・リストからのルール・ノード・オブジェクトの選択
された部分集合であって、部分集合の先頭のルール・ノ
ードはクラス・オブジェクト90からのメンバーシップ
・リスト・ポインタ91によってアドレスされるハツシ
ュ表中のルール参照ポインタ94によってその部分集合
に付いて選択されたものとみなすことができる。クラス
に属する後続するルール・ノードは、「メンバー」とい
う名のレコード99の中のルール・ノード95の属性リ
スト98にある次メンバー・ポインタ102によって部
分集合から選択される。
メンバーシップ・リスト−手続き 手続きオブジェクトに関するメンバーシップ・リンク・
リストは,上述のクラスに関するメンバーシップ・リン
ク・リストと同一の方式で,手続きオブジェクト、ハツ
シュ表、及びルール・ノードに関係している.第10図
に示すように、手続きオブジェクトの主要リンク・リス
ト中の最初の手続きレコード110は,メンバーシップ
・リスト・ポインタ・フィールドと呼ばれるフィールド
111を含んでいる。このフィールドは手続き110に
関係したハツシュ・パケットのルール参照フィールド1
13へのポインタ111を含んでいる.ルール参照フィ
ールドは、この手続きを使用する最初のルール・ノード
115を指すポインタ114を含んでいる.ルール・ノ
ード115は属性リスト・ポインタ117を含むフィー
ルド116を有する.ポインタ117は属性リスト11
8を指す。「メンバー(MEMBER)Jという名前の
属性119は,この手続きを使用する次の。
即ち2番目のルール・ノードを指すポインタ121を有
する次メンバー・フィールド120を含んでいる.上記
の連鎖の過程はメンバーである全てのルール・ノードが
識別されてしまうまで反復される。メンバーシップ・リ
ストの最後のルール・ノードは次メンバー・フィールド
120に空白ポインタを有している。
E−26.パラメータ・リンク・リストの構暖パラメー
タ・リンク・リストの構成並びにハツシュ表及びルール
・ノードへのパラメータの関係は第11図に示されてい
る。パラメータ・リスト132へのエンI−リーは主に
2つの異なった状況において必要である。その両方共が
、ノード133のような証拠ノード又は外部ノードのい
ずれかの処理中に生じる。属性リストに関連して説明し
たように、パラメータによって行なわれた質問に応答し
てユーザ(又は手続き)によって与えられた可変データ
を含むテキストを使用するオブジェクトには属性「テキ
スト・パラメータ (TXTPΔRM)Jが与えられる
。パラメータ名は、ルール・ノードに付随する手続き又
はクラスの属性リスト上に現れる。処理中のルール・ノ
ード33のテキスト中に挿入されるべき変数は、「応答
」フィールド中のポインタによって指される記憶位置に
以前に記憶されている。応答フィールドは、その答が変
数として挿入されるパラメータの属性リスト上にある。
問題は、現在処理中のノードによって表示されるテキス
ト中にパラメータの答を挿入できるように、リンク・リ
スト上のパラメータの位置を見つける事である。付随す
るパラメータ・リストは、パラメータからの答を必要と
するノードに関して形成される。このリストは、各エン
トリー毎に、パラメータの名前、パラメータの記憶位置
へのポインタ、及び(2以上のパラメータが必要な事も
あるので)次のエントリーへのポインタを含んでいる。
処理中のノードのTXTPARM属性135中のポイン
タを用いて、付随するパラメータ・リスト中の最初のエ
ントリーを指す事によって、システムは、挿入されるべ
きパラメータの位置を見い出す事ができる。
もう1つの状況が第11図に示されている。これは、応
答を得るために質問としてユーザに実際のテキストを与
える事のできるように名付けられたパラメータの位置を
見つける事に関係している。
質問のテキストはメツセージ・ファイル中に存在する。
このメツセージ・ファイルの記憶位置は、TEXTと呼
ばれる属性フィールド中のパラメータの属性リスト上に
あるメツセージ・ポインタによって指し示される。パラ
メータは、処理中のノード33から得られるパラメータ
の名前をハツシングする事によって見つけられるハツシ
ュ・バケツ1−中のAFRAREFポインタによって位
置が見つけられる。
E−27,ルール・リスト 説明すべきルール・ベースの最後の大きな部分は、第1
2図に示されるルール−リストである。
ルール・リストは基本的には、各ノード又はレコードが
後続のノードを指すという点で、ルール・ベース中の他
のリンク・リストと似ている。しかし、各ノードは一般
に、リスト中の1つ以上の他のノードを指すので、第1
2図に示すように、木型の構造と見る方が容易である。
第12図に示すように、各ノードはファイル・インデ’
77ス(FILE  INDEX)、ノード型(NOD
ETYPE)、関連(ASSOC)。
重み(WT)、フラグ(FLAGS)及び名前(NAM
E)に加えて、ルール・ベース中の他の関連ノードへの
ポインタに関するフィールの数を含む、これらのポイン
タは一番上のダミー・ノード120の次に示されており
、「ファミリー木」の規約に従って、他のノードに対す
る相対的関係を示すために、父(FATHER)、兄弟
(BROTHER)、いとこ(C:0USIN)、長子
(FIR8TSON)及び末子(LASTSON)等と
名付けられている。兄弟ポインタは、同じ父ノードを有
するノードを指し、ルール木の同じレベルに位置する。
いとこポインタは、参照されているノードを指す。また
各ノードは属性リス1−へのポインタも有する。これは
前述のような、他のリンク・リストに関連する属性リス
トと同じように機能する6 ルール木の各々の葉ノードは、クラス・リスト又は手続
きリスト中のノードに対して関係を有する。ノードが処
理される時、ノード型が識別される。証拠ノードが識別
されると、属性rEVIDSOURCEJがノードの属
性リスト上に位置付けらける。この属性はルール・ノー
ドが関係付けられるクラスの名前を含んでいる。この名
前はハツシングされ、ハツシュ表及びハツシュ・パケッ
トへのエントリーを与える。これは前述のようにクラス
のリンク・リスト上の関連クラス・オブジェクトの位置
を見つけるためのものである。
葉ノードが、呼び出すべき手続きを識別する外部ノード
と識別された場合、手続きのリンク・リスト上の関連手
続き定義の位置を見つけるために同様の一連のステップ
が取られる。
木の内部のノードは主に、確信度の論理的な計算及びそ
れらの計算された確信度値を所定のアルゴリズムに従っ
て目標ノードまで伝達する事に関係している。これらの
機能は、推論エンジンの一部である特別なプログラミン
グ・モジュールによって処理される。
E−28,システ11の1作 システムの動作の概要を第13図を参照しながら説明す
る。
第13図は前述のC0N5ULT機能に含まれる種々の
プログラミング・ルーチンの構成を示している。
C0N5ULTは、エキスパート・システムを呼び出す
プログラムに対するインタフェースを提供すると共に、
結論された目標のリストを返す5UPERVISOR(
スーパバイザ)ルーチンを有する。5UPERVISO
Rは、呼び出されたルール・ベースのリストを保持し、
且つそれらのルール・ベースの各々について結論された
目標のリストを保持する責任を有する。これは初期のル
ール・ベースをロードする。他のルール・ベースが呼び
出される時、これは呼び出しているルール・ベースを、
それまでに集められた情報(例えばクラス質問に対する
答、手続きから返された値、及び目標に関して得られた
確信度)と共に記憶し、呼び出されたルール・ベースを
ロードする。また、これはクラスに対する答又は手続き
から返された値等の情報をルール・ベース間で受は渡す
責任も有する。5UPERVISORは、推論機構を含
むルーチンINFERENCEを呼び出す、INFER
ENCEは主要なコンサルテーション・ルーチンを実行
する。それはテストすべき目標を選択し1次に選択され
た目標の下のノードを後向きにたどり、評価すべき証拠
ノード又は外部ノードを見い出す。INFERENCE
は、それが呼び出した手続きと共に、質問を行なわせ1
手続きを実行させ、そしてこの情報に基いて結論を引き
出す。目標が結論された時、ルール・ベースが使い尽さ
れた時、新しいルール・ベースが呼び出された時、重大
なエラーが起きた時、電源が遮断されかかった時、又は
ブレーク・キーが押された時には、INFERENCE
は5UPERVISORに制御を戻す。
INFERENCEが5UPERVISORにより呼び
出される時、その最初の動作は、トレースする目標を選
択するためにルーチンGOALSELECTORを実行
させる事である。その目標が根になっている木は1次に
、最初の質問されていない葉ノードが見つかるまで逆順
に探索される。
この探索はBACKCHAINルーチンによって行なわ
れる。証拠ノード又は外部ノードが見っがると、ルーチ
ンEVALEVID又はEVALEXTERNが実行さ
れ、属性名「証拠g(Evより5OURCE)Jが見つ
かるまで属性リストが走査される。この属性はハツシュ
表へのポインタを含む、ハツシュ表は、さらに、ASK
CLASSルーチン又はPNIルーチンを実行させる事
によってデータが得られる時、クラス・ノード(行なう
必要のある質問に関するもの)又は手続きリスト・エン
トリ(呼び出す必要のある手続きに関するもの)のいず
れかを指す。参照ノードが更新されると即座に、その重
みは、それが存在している木を可能な限り上方に伝達さ
れる。ノードに対する全ての参照が更新され伝達される
と1元の証拠又は外部ノードの重みが伝達される。全て
の伝達ルーチンの間、途中で確立されたノードへの参照
は更新され、再帰的に伝達される。最後に、同じクラス
又は手続き定義のメンバーである任意の他のノードはU
PDATEMEMBERルーチンによって同様に評価さ
れる。
この処理の間の任意の時刻に、ルール・ベースの呼び出
しに出会う可能性がある。呼び出されたルール・ベース
を使い尽した後に元のルール・ベースの処理を再開する
ために、いくつかの事項を決定する必要がある。最初に
1選択された目標又は木の位置が決定される必要がある
。第2に、質問又は実行された質問又は手続きが分離さ
れるべきである。第3に、質問又は実行された証拠ノー
ド又は外部ノードが分離されるべきである。最後に、そ
のノードへの全ての参照が更新され伝達されると、証拠
の上のノードが見つけられ調査されるべきである。最終
的には、ルール・ベース呼び出しが開始されたノードn
が見い出される。
以前に誘明したように、再開のためにノードにマークを
付けるために、各ノードに2つのプール値、「質問」フ
ラグ及び「更新」フラグが設けられる。各クラス、手続
き及びルール・ノードは。
それが質問されたか否かを示すフラグ、及びそれが更新
されたか否かを示すフラグを有する。またルール・ノー
ドは、それに関連するルール・ベース呼び出しが完了し
たか否かを示すフラグを有する。クラスは、それがユー
ザに提示されると即座に「質問された」というマークが
付けられる。手続きは、その手続き呼び出しが実行され
ると即座に「質問された」というマークが付けられる。
ルール・ノードは、その評価機能が実行されノードに重
みが与えらると即座に「質問された」というマークが付
けらける。「更新」フラグは進行中のノードを見つける
ために使われる。クラス又は手続は、このクラス又は手
続きのメンバーである全ての証拠又は外部ルール・ノー
ドが評価され、更新され、そして伝達されると即座に、
「更新された」というマークが付けられる。参照ノード
は。
その重みが木を可能な限り遠くまで伝達されると、「更
新された」というマークが付けられる。他の全てのルー
ル・ノードは、それらに対する全ての参照が更新され伝
達されると即座に「更新された」というマークが付けら
れる。ルール・ベースは同じノードから2度以上呼び出
されない事を保証する必要があるので、各ルール・ノー
ドは第3のプール・フラグを有している。ルール・ノー
ドは、その呼び出しが見い出され起動されると即座に「
報告された」というマークが付けられる。
機械の電源が遮断された後、又は他のルール・ベースへ
の呼び出しに続いて、ルール・ベースが再入される時、
5UPERVISORプログラムは、このルール・ベー
スに出会ったのはこれが最初ではないという事を示す1
つのプール値をINFERENCEルーチンに渡す。こ
のプール値が真であれば、クラスのリストを見て、「質
問された」のマークが付けらけているが「更新された」
のマークは付けられていないクラスを探すルーチンが呼
び出される。質問されているが更新されていないクラス
が見つかると、そのメンバーは、質問されているが更新
されていない証拠ノードの位置が見つかるまで調査され
る。この証拠ノードに対する参照は、全てが質問され更
新された事を見るために検査される。もしそうであれば
、その証拠ノードの上のノードが強査される。またそう
でなければ、質問されたが更新されていない参照ノード
の上のノードが調査される。最後に、質問されたが更新
されていないノードが見い出される。
これが、ルール・ベースのトレースが中断されたノード
である。質問されたが更新されていない質問が存在しな
ければ1手続き呼び出しのリストが。
質問されたが更新されていない手続き呼び出しを見つけ
るため同様の方法で調査される。最後には、割り込みの
原因となったノードの位置が分離され、処理が中断した
地点から処理を再開する事ができる。
下記に示すのは、偽似コード・プログラミング・ステー
トメントを含む、第13図に示したルーチンの簡単な説
明である。
プログラム: 5UPERVISOR 機   能:管理プログラム このプログラムINFERENCEを呼び出す。
これは複数のルール・ベース呼び出し及びルール・ベー
ス呼び出しの間の情報の伝達を取り扱う。これは初期リ
ンク・リストへのポインタを受は取る。
偽似コード: begin program 初期のルール・ベースを呼び比すために変数及びポイン
タを初期設定する; ” 1oopl :vhile (処理すべきルール・
ベースがある) d。
・・・1oop2:すhile (現行のルール・ベー
スに付き継続する) d。
” call  INFERENCE :・1case
 of ・・・・・(目標が結論された) ・・・・・・・目標をリストに付加する;・・・・・(
ルール・ベースが終了した)・・・・・・・実行すべき
ルール・ベースがこれ以上ない ・・・・・・・・then   1oop lを去る・
・−ψ1■else ・・・・・・・・・次のルール・ベースを見つけるため
にルール・ベース・スタックをポツプする:・・・・・
・・・・1oop 2を去る;・・・・・(新しいルー
ル・ベースを呼び出す)・・・・・・・将来使うため現
行のルール・ベースを記憶する; ・・・・・・・スタックに新しいルール・ベース名をブ
ツシュする; ・・・・・・・1oop 2を去る; ・・・・・(電源断) ・・・・・・・将来使うため現行のルール・ベースを記
憶する; ・・・・・・・ユーザに機械をオフにするように促す;
・・・・・・・ユーザがそうしない場合、動作を変更す
る; ”・end   1oop2 i ・・・スタック上の現行の場所から次のルール・ベース
に関する変数をセットする; ■end   1oopl ; end   program ; 入   カニ初期のルール・ベース名を含むシステム制
御ブロックへのポインタ。
出   カニ同じポインタ、但しリストは完備している
プログラム: INFERENCE 機   能:主推論エンジン この手続きは主コンサルテーション・ルーチンを実行す
る。これは、テストすべき目標を選択し、目標のノード
から後向き推論により、評価すべき証拠又は外部ノード
を見つけ出すにれは、ユーザからのリセットの後、又は
ルール・ベースが使い尽された時、目標リストから除去
すべき目標。
ルール・ベースの呼び出し、結論された目標を持って、
拡張されたスーパバイザに戻る。
偽似コード: firsttime   then ・手続呼び出し、ノード、クラスの重みをリセットし、
クラスの質問を行ない、初期と指定された手続きを実行
する。
・′else if 1ast action was
 not goalconclu−ded then ・−・CONTINUHPASSINGUPlwhil
e not timetoreturn than r
epeat”・GOALSELECTOR(curre
ntgoal)・11if goal asked t
han”・timetoreturn :: true
;・拳−■ action  =  rulcbase
exhaustcdΦ―・φ else ■1争 currcntnode =currentg
oal・・・・・BACKCHAIN(current
node)”争 case of currentno
da  、nodetype of”” avid  
 :  EVALEVID(currentnoda)
”” extern : EVALEXTERN(cu
rrentnode)”  until timato
return to 5ysteo+resetend
  ; 入カニルール・ベース・ポインタ、firsttime
(初回)及びresume (再開)に関するフラグ、
等。
出カニ 動作−スーパバイザにより行なわれる動作目標情報−結
論された目標のテキスト及び確信度ルールベース−呼び
出すルール・ベースのファイル名 モジュール名:ASKCLASS 機能二クラスの質問を行なう この手続は、入力として、現在興味のあるクラスへのポ
インタを受は取る。これはクラスの属性の現在の値に基
いて、そのクラスが質問又は再質問をされるか否かを判
定する。これは適当な時に質問をし、クラスのメンバー
であるノードを更新するためにUPDATECLASS
ESを呼び出す。
偽似コード: ifクラスが質問されるべきである。(ローカル、グロ
ーバル、及び再質問の属性に依存して)・then b
egin ・・ifテキスト中にパラメータが存在する。
・・・thenパラメータ・テキストを得て、質問のテ
キストと結合する; ・・・・答の属性を得る ・・・・選択の数の属性を得る ・・・・質問を表示し答を得るためにUIO(ユーザ、
インターフェース・ルーチン)を呼び出す ・・ifクラスがローカルでないthen asked
=true ; if  (クラスがローカル)or(クラスがセット可
能)orCクラスが更新されるべき)・・・・thsn
 UPDATEMEMBER(現行のクラス) ・・・・else UPDATECLASSES (現
行のクラス); 11end then ; ・else UPDATECLASSES (現行のク
ラス) 入カニ現行のクラスへのポインタ 現行のルール・ノードへのポインタ 出力ニス−パーバイザに制御が戻されるべき事を示すよ
うにtimetoreturnがtrueに変更され、
得る。
モジュール名: BACKCHAIN 機能:評価すべき次のノードを得るために木を逆順にた
どる。
この手続は現行のルール木の中の評価すべき次のノード
を返す、このノードは次のいずれかである。
1)マスクされていない証拠ノード 2)マスクされていないか又は再実行可能な外部ノード 3)他のルール・ベースの呼び出しからの再開後の、質
問されているが更新されていないノード偽似ノード: outoftree := falgo;−while
 not outoftrea and not fo
undnode d。
”if nodetype = alternate 
then RIEPORTALT”else if n
odetype = reference then 
5w1tchto roferrenced node
=else if unasked =then  if  firstson  =  n
11101then runtimerror(4);
 outoftree = true”else cu
rrant node = first 5on11e
lse if brother = nil”0the
n runtimerror(12); outoft
ree =trucΦ■1else currentn
ode := brother・end  while 入カニ GOALSELECTORによって見つけられ
た木の根へのポインタ 出現:元のノードを遠征するために評価すべき次のノー
ドへのポインタ モジュール飯:CO・NTINUEPASS INGP 機能:割り込みが発生した地点から重みを上方へ伝達し
続ける。
この手続は、新しいルール・ベースへの呼び出しに引き
続いて、スーパーバイザにより推論ルーチンが起動され
た後に、推論ルーチンから呼び出される。これは、ルー
ル・ベースの呼び出しが行なわれた地点からクラスの更
新、手続き、又は上方ノードへの伝達を再開させる。質
問されたクラス及び手続きノードは更新済又は未再新の
いずれかのマークが付けられている。
もしそれらが更新されていれば、そのクラス又は手続き
の全てのメンバーが評価され重みが木の上方へ伝達され
る。もし更新されていなければ、このクラスのメンバー
への通常の更新及び伝達及び伝達ルーチンへの割り込み
が発生する。
処理の割り込みは、特定のノードへの参照を更新してい
る間に起き得る。これが起きると、質問中のノードは質
問されるが、更新されない。もし非参照ノードが更新さ
れると、それに対する全ての参照が更新され重みは上方
へ伝達される6参照ノードはその重みが上方へ伝達され
ると即座に更新済とマークされる。
偽値コード: currentclass  =  classhea
dwhile  currentclass  <> 
 nil  and  not(currentcla
ss asked & not updated & 
notsettable) @currentclass = currentcl
ass−nextif currentclass <
) nil then・UPDATECLASSES 
(currentclass、 tia+atoret
urn)else 拳currentproc  =  prochead
owhile  prochead  <>  nil
  and  not  (currentproc 
asked and not updated) d。
”currentproc = eurrentpro
c −”nextlif currentproc <
> nil then+I+UPDATEPROC9(
currentproc、 timatoreturn
)else ”nodeinprogress = current
goal・・BACKCIIAIN (nodeinp
rogress)響・UPDATEREFS (nod
einprogress 、 timetoretur
n )”if  not  timetoreturn
  and  father  <>toprule 
 then ・1PASSINGUP (nodeinprogre
ss、 timetoreturn)入カニ curr
entgoal 、 classhead 、 pro
chead、及びtopruleへのポインタ 出カニ最後の証拠又は外部ノードを評価した後に可能な
限り更新されたルール・ベース。
timatoreturnは、上方への伝達の間に他の
ルール・ベースへの呼び出しに出会うと、真(true
)になる。
モジュール名: EVALEVID 機能:証拠ノードを評価する: 現在の証拠ノードがクラスのメンバーであれば。
EVALEVIDは、質問をするASKCLASSを呼
び出し、そのノードに関する重みをセットする。もしテ
キストが証拠ノード中にあれば、EVALEVIDは質
問を行ない、それ自身の重みを計算する。もしノードが
クラスのメンバーでないか又はノードにテキストが存在
しないならば、そのノードにはそれが以前に有していた
重みが与えられる。次にEVALEVIDは、ノードが
正規化属性を有していればそのノードを正規化し、質問
された時にノードにマークを付ける6次にEVALEV
IDはPASSINGUPを呼び出して、可能な限り木
の上方へ確信度を伝達する。PAsSINGUPから戻
った後、戻るべき時間でなければ、現在のノードに更新
済のマークを付ける。
偽値コード: if証拠ノードがクラスメンバーである拳then  
begin IIIIASKCLASS(curntclass、 
curntnode 。
ti+netoreturn) ; ”l1if  5ysten+reset  than
  return;・φ・and ・else if質問テキストが証拠ノード中にある@
then beg’in ・・・証拠ノードで質問を行なう; ・・・答に応じてそのノードに関する重みを計算する; ・・・end ”else curntnode、 weight =
 curntnode。
priorvei glt; if curntnode 、 nor++al = 
true then正規化;curntnode、 a
sked = true ;PASSINGUP (c
urntnode、 ti+oetoreturn);
if not ti+1etoreturnIlthe
n curntnode、 updated :” t
rue;入カニ 現在のノード(証拠ノード)へのポインタ出カニ 評価され、重みがセットされた証拠ノード;timet
oreturnは、さらに評価を行なう事なくスーパバ
イザに制御を戻すべきである事を示すために真(tru
e)に変更される事もある。
モジュール名: EVALEXTERN機能:外部ノー
ドを評価する 各外部ノードは名前によって手続きを参照する。
その外部ノードはこの手続きのメンバーであると言われ
る漬外部ノードは手続きに対して間接的な参照を行なう
事ができる。これは1手続きが既に実行されていなけれ
ば、この外部ノードはそれを実行させない事を意味する
。その代りに、それはその親ノードにwin%+eig
ht (又は偽)を伝達する。
手続きEVALEXTERN(7)機能は、現在の外部
ノードがメンバーになっている手続きを実行させる事で
ある。これは、それが間接的参照ではない事を仮定して
いる。この外部ノードがローカル又は再実行の属性を持
つか又はいずれかの親がローカルであれば、重みは現在
処理中の木の中だけを伝達される。それ以外の場合は、
この手続きのメンバーである外部ノードが更新される。
外部ノードが手続きに対して間接的参照を有するならば
、手続きは実行されず、ノードには許された最小の重み
が与えられ、その重みが木を上方へ伝達される。
偽値コード: whichproc = curntnode (現在
のノード)がそのメンバーである手続き if curntnodeが手続きへの間接的参照でな
い・then if  whichgrocが質問され
ていない) or(cutnnodeが再実行可能) 
or (whichprocがローカル) ■than begin ・・・関連のテキストを表示する; −−−ifxtraceがオン ・・・・then入カパシカパラメータする;・・・c
all PNI (whichproc) ; (即ち
手続きノード・インターフェース・ルーチン) ・−1f xtraceがオン ・・・・then リターン・パラメータを表示する;
”・if (vhichprocがローカル) or 
(curntnodeがローカル) or (curntnodeがローカルの父を有する)
Or(curntnodeが再実行された) −”then  UPDATEMEMBERPROC(
curntnode、  whichproc、  t
imetoreturn)−−−−−else  be
gin ・・・・・・whichprocに質問済み及び確証済
みのマークを付ける; ”・U P D AT E P ROCS (tzhi
chproc。
timetoreturn) ”・end dlsei O・・and l−else if (whichprocが質問済)
、and(whichprocがグローバル) ・・”then UPDATEPROC8(which
proc。
timet、oreturn) ; ・・else (curntnodeが手続きへの間接
参照である) ・1bcgin ・・・・curntnodeに質問済み及び確証済みの
マークを付る; ” ” ”curntnodeの重み= minwei
ght;・・” P A S S I N G U P
 (curntnode。
timetoreturn); 11111if  not  timetoretur
n01#then curntnodaに更新済みのマ
ークを付ける; ・・11end; 入カニ 現在のノード(外部ノード)へのポインタ出カニ 評価され且つ重みがセットされた外部ノード;time
toreturnは、さらに評価する事なしにスーパバ
イザに制御が戻されるべき事を示すように真に変更され
る事もある。
モジュール名: PASS INGUP機能: ノードを評価し、重みを木の上方へ伝達する(1)現在
のノードの値を、以前の値として保存する6 (2)新しい現在の重みを得るために、コード名に付随
する関数を評価するために手続きを呼び出す。
(3)もしノードが質問されないか又は既に質問されて
いて且つその重みが変化せず且つそれがグローバルでな
くて且つ既に更新されていれば、それ以上は継続しない
(4)もし現在のノードが質問され且つまだ報告されて
いなければ、そして重みが高しきい値以上であれば、こ
のノードに関して指定されたクラス又はパラメータをセ
ットする。
(5)もし現在のノードが質問され且つまだ報告されて
いなければ、そして重みが高しきい値以上であれば、ル
ール・ベースの呼び出しが行なわれるべきかどうかを見
る。
(6)ルール・ベース呼び出しがなかったならば、現在
のノードに対する参照を更新する。
(7)ルール・ベース呼び出しに出会わず且っノードが
木の頂点でなければ、親の調査を続行する。
偽値コード: continu  =  trueツ wasaskcd = curntnode−、ask
od;while continu d。
−priorweight  = curntnode
−、weight;中case  curntnode
−、nodetype  of・・goal:    
   EVALGOAL=hypothasis:  
EVALGOAL”evidence:    if 
 not  reported  thanwasas
ked  =  falses+external: 
   if  not  reported  the
nwasasked  =  falseland: 
        EVALAND・・or:     
     EVALOR・・not:        
EVALNOT・・wand:        EVA
LwANDlreference:   EVALRE
Flpand:       IEVALPAND”a
lternate:    EVALALT”pree
mpat:    EVALPREM壷end  ca
se; ・if  node  not  just  upd
ated  then  contlnu  :fal
se; −if  continu  and  not  r
eported”then  if  weight 
 >  threshoid−・・then 11set  classes; sat  parameters call  rulebascs; if  rulebase  to  call  t
hen  continu  =false; if  continu ■than UI’DATEREFS(curntno
de、  timetoreturn)Hoif  t
imatoreturn  or  curntnod
e at  top ofree 90then  continu  =  false
;0if  continu ”then  curntnode  −curntn
ode−、father;・end;  (申whil
e  continu  =  trueすcod  
procedure; 入カニ 現在のノードへのポインタ 出カニ スーパバイザに制御が戻されるべき事を示すようにti
s+atoreturnは真に変更される事がある。
モジュール名: UPDATEREFS機能:現在のノ
ードに対する参照を更新するこのモジュールは現在のノ
ードに対する全ての参照を更新し、更新された各ノード
毎にPAS 5INGUPを呼び出す。ノードに対する
参照は。
そのノードのいとこ(cousin)と呼ばれる。
偽値コード: if curntnodeが参照ノードでない) an
d (curntnodaが質問されていない) an
d (curntnod。
が名付けられている) and (curntnode
が更新されていない) ・then begin ・・eurntref = curntnodeのいと
こ”while (curntref < > n1l
) and (nottio+etoreturn) 
begin・・・if [(curntrefが質問さ
れていない)Or(curntref)が質問されてい
るが更新されていない) and (どの父もグローバルでない)]0...th
en bCgin 、、、、、PASSINGUP(Curntref、 
temotoreturn);、、、、+if  no
t  timatoreturn、、、、、、thcn
 curntref、updated = true;
0.、、and; 、、、curntrcf = curntref  、
cousin;、、、end  tzhila; 、、if [(not evidence node)
 and (not externalnode) a
nd (not tiietoreturn)]、、、
then curntnodc  、updatad 
= true;、、end  then 、else if (curntnodeが参照されて
いない) and(curntnode fJ”52間
されている)、、then curntnode +u
pdated = true;入カニ 現在のノードへのポインタ 出カニ timetoreturnは、スーツ(−)(イザ一番
こ制御が戻されるべき事を示すためにtrueに変更さ
れる事がある。
第13図に示されており、推論プログラムの一部である
下記のモジュールは、その全体的な機能と他のモジュー
ルに対する関係だけを説明する。
これらのモジュールに関する偽値コードは、自明なもの
と思われる。というのはその機能を実現するのは平均的
なプログラマの技量の範囲内にあるからである。
モジュール名: EVALALT 機能:この手続きは交替ノードを評価する。交替ノード
は2つの部分木を有していて、左側の部分木は証拠ノー
ドである。EVALALTは、その証拠ノードに関する
質問をユーザーに与える。EVALALTは、ユーザに
、質問に答える事ができるか否かを尋ねる。ユーザがr
 yesJと応答すると、質問が行なわれ、その答に関
して得られた確信度が、交替ノードに与えられる確信度
になる。
ユーザがrnoJと応答すると、その時に限って右側の
部分木がトレースされる。この場合、その部分木に関し
て計算された確認度が、交替ノードに与えられる確信度
になる。
モジュール名: EVALAND 機能: ANDノードを評価する。
この手続きはANDノードを評価する。これは、その子
ノードの確信度を検索し、それらの値から自分自身の確
信度を計算する。ANDノードは。
子ノードの最小の確信度を取る。
モジュール名: EVALGOAL 機能二目椋ノードを評価する この手続きは目標ノードを評価する。これは。
その子ノードの確信度を検索し、それから自分自身の確
信度を計算する。目標ノードは、その単一の子の重みを
有し、もしそれが目標ノードの上側のしきい値を越えれ
ば、目標は真であると結論され、その結論が目標リスト
に付加される。
モジュール名: EVALOR 機能二〇Rノードを評価する; この手続きはORノードを評価する。これは。
その子ノードの確信度を検索し、それらからそれ自身の
確信度を計算する。ORノードは、その子ノードの確信
度のうち最大値を取る。
モジュール名: EVALNOT 機能: NOTノードを評価する; この手続きはNOTノードを評価する。これはその子ノ
ードの確信度を検索し、それからそれ自身の確信度を計
算する。NOTノードは、1からその子ノードの重みを
引いた値を取る。
モジュール名: EVALPAND 機能: PANDノードを評価する; この手続きはPANDノードを評価する。これは、その
子ノードの確信度を検索し、それから自分自身の確信度
を計算する。PANDノードは。
その子ノードの重みの総和値を取る。
モジュール名: EVALPREM 機能: PREEMPTノードを評価する;この手続き
はPREEMPTノードを評価する。
PREEMPTノードは2つの部分木並びに上側及び下
側のしきい値を有している。左側部分木に関する確信度
が最初に得られる。それが上側しきい値以上か又は下側
しきい値以下であれば、右側の部分木はトレースされず
、PREEMPTノードには左側部分木の確信度の値が
与えられる。−方、左側部分木の確信度が上側と下側の
しきい値の間の値であれば右側部分木に関する確信度が
PRZ Z M、 P Tノードに与えられる。
モジュール名:EVALREF 機能:参照ノードを評価する; この手続きは参照ノードを評価する。参照ノートは木の
葉においてしか存在しない、参照ノードはそれが参照す
るノードの確信度の値を取る。
モジュール名: EVALWAMD 機能:WANDノードを評価する; この手続きはWANDノードを評価する。これは、その
子ノードの確信度を検索して、それからそれ自身の確信
度を計算する。WANDノードは。
その子ノードの重みの平均値を取る。
モジュール名: GOALSELEC:TOR機能二次
の目標を選択する; この手続き、ルール・ベース中の次の米質間の目標を選
択する。木の頂部にある仮説ノード又は目標ノードが返
される。全ての目標が既に質問されていれば、返された
目標には「質問済」のマークが付けられている。
モジュール名:PNI 機能二手続きノード・インタフェース 手続きが実行される時に、その手続ノードに対するポイ
ンタがPNIに渡される。この手続ノードにおける定義
から、PNIは、その手続きに渡すべき値を取得し、手
続きに対する呼び出しを形成する1手続きは、実行以前
にはこのシステムに束縛されていない。手続きがPNI
に制御を戻した後、I’NIはこの手続きから返された
値を取得し、それをこのシステムのデータ構造中の適切
な場所に配置する。
モジュール名: REPORTALT 機能:交替ノードを調査し報告する; この手続きは、後向き推論に関して部分木のどちらの枝
を使用すべきを判定するために、交替ノードを調査する
。その部分木の根であるノードが((1rntnode
として返される。このルーチンに渡されるノードは、交
替ノードである事が事前に判明していなければならない
モジュール名:UIO 機能:ユーザ入力/出力 インタフェース;ユーザ・イ
ンタフェース・ルーチンは、システム表示装置との間及
びシステムキーボードとの間の全ての相互作用を取り扱
う、これは、質問を表示し、ユーザ入力を処理し、(終
了又はエスケープ等の)特別なキーが押された時を認識
し、そして結論された目標を表示するために使用される
モジュール名:UPDATECLASSES   ゛機
能:現在のクラスのメンバーである全ての証拠ノードを
更新する; この手続きは、クラスが評価された後に呼び出される。
UPDATECLASSESは、このクラスのメンバー
である全ての証拠ノード(即ち、このクラスを参照する
全ての証拠ノード)を、UPDATEMEMBERを呼
び出す事によって。
更新する。但し、ノードは、(1)それがローカルでな
いか、(2)再質問属性を持たないか。
(3)ローカルの父を持たないならば、他のメンバーと
もに更新されない。
モジュール名: UPDATEMEMBER機能:現在
のクラスの1つのメンバーを更新する;クラスが評価さ
れると、そのクラスの1つのメンバーを更新するために
この手続きが呼び出される。次に手続きPASSING
UPが、そのノードに関して得られた確信度を木の上方
に伝達するために、呼び出される。
モジュール名: UPDATEMEMBEPROC機能
:現在の手続きの1つのメンバーを更新する;ルール・
ベースから手続き呼び出しが実行されると、その手続き
の1つのメンバーを更新するためにこの手続きが呼び出
される。次に、そのノードに関して得られた確信度を木
の上方に伝達するために手続きPASS I NGUP
が呼び出される。
モジュール名: UPDATERPRO8機能:現在の
手続きの全てのメンバーを更新する;ルール・ベースか
ら手続き呼び出しが実行されると、この手続きのメンバ
ーである全ての外部ノードが重みを更新され、木の上方
へ伝達される。
UPDATEPROC8は、この現在の手続きのメンバ
ーどある全ての外部ノードの位置を見つけ、各メンバー
毎に、UPDATEMEMBERPROCが呼び出され
る。
ルールベースのルール・ノードが、ユーザに質問がされ
る可能性があるデータを取得するように構成されている
方式を第14A図に示す。第14A図に示すルール・ノ
ードはプリンタをテストするためのプロセスの一部であ
る。システムによって多種類の異なったプリンタがサポ
ートされているが任意の与えられた時点では通常1つだ
けのプリンタがシステムに取り付けられているものと仮
定する。また、プリンタとシステムとの間のケーブルが
OKであれば、システムに取り付けられたプリンタの型
を判定する事のできるテスト手続きを走らせる事ができ
る事も仮定する。
第14Δ図に示すEXTERNAL/−ドにのrTEs
T52Jは、取り付けられたプリンタが×××モデ夾×
×××プリンタである場合にのみ実行されるので、プリ
ンタ型が必要である。型テストはノードFで実行され、
適切なF、G、H又はエノードが結論される。ノードF
、G及びHの各々は、テストの結論時にテス°ト・ユニ
ットから得られたリターン・コードに依存して活動属性
rsETcJを有する。ノード■はクラスrYTpHを
セットしない事に注意されたい。その結果、クラス型は
ノードCが偽即ちケーブルが不良。
又はノードエが真、即ちモデル5152.5219又t
txxxxxモデル××がこれらの条件の下でシステム
に取り付けられている場合はセットされない、ノードJ
におけるクラス質問が、従ってプリンタ型を得るために
ユーザーに行なわれる。
しかし、ノードFが取り付けられたプリンタは×xxx
xxxであったと判定しているので、活動属性rsET
cJ型は、このクラスの全てのノードをノードFにより
得られた答にセットさせる。
クラスrYTPEJを参照する全ての証拠ノードは答が
既に得られているのでユーザーへの質問を迂回する。
第14B図は本発明に従ってルール・ノードが構成され
る方式の別の実施例を示している。この例では表示装置
がテストされる。ノードCは表示装置のスクリーン上に
情報を表示するテスト・ユニットを実行させる外部テス
ト中にある0次にユーザーは事前に文書の形で提供され
ている既知の図形と表示内容とを比較するように求めら
れる。
ノードEにより表されるある状況において1表示装置の
個々のii!ii素がオン又はオフかを判定し且つそれ
らがある事前に定められた標準と正確に一致するか否か
を判定するようにテストが行なわれる。
もしその通りであれば、ノードEのrSETCJ屈性は
ノードHにおいてクラス「一致」を1に等しくセットす
る1図示するように、ノードHは目標ノードFを有する
ルール・ノードに属する。従って、1つの木のノードに
より行なわれたテストは、他の木の中の証拠ノードによ
って入力されるべきクラス質問に対する答をセットでき
る。
F0発明の効果 本発明によれば、既に収集したデータを利用する事が可
能になるので、ユーザーに余分の質問をする必要がなく
、迅速に結論を出す事ができる。
【図面の簡単な説明】
第1図はエキスパート・システムの構成要素の全体的な
機能的関係を示す図。 第2図はルール木の1例を示す図。 第3図はルール木の他の例を示す図。 第4図はルール木の他の例を示す図。 第5図及び第6図は主要リンク・リストのレコードを示
す図。 第7図は第5図及び第6図に示すレコードの可変フィー
ルドの一般的なフォーマットを示す図。 第8図はハツシュ表栂造に対するリンク・リストの関係
を示す図6 第9図はクラスのリンク・リスト、メンバー・リスト、
ハツシュ表、及びクラスのメンバーであるルール・ノー
ドの関係を示す図。 第10図は手続きのリンク・リスト、手続きオブジェク
トのメンバー・リスト、ハツシュ表、及び手続きオブジ
ェク1−のメンバーであるルール・ノードの関係を示す
図。 第11図はパラメータ・リンク・リストの構成を示す図
。 第12図はルール・ノード・リンク・リストの構成を示
す図。 第13A図及び第13B図はエキスパート・システムで
用いられる種々のプログラミング・モジュールの構成を
示す図、 第14A図及び第14B図はクラス質問に対する答がシ
ステムから得られ、従ってユーザーに質問が与えられな
いようなルール・ノードの例を示す図である。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝  −(外1名) ルーし水 ( 第3図 第14A図 第14Bλ

Claims (1)

  1. 【特許請求の範囲】 推論エンジン及びルール・ベースを有するエキスパート
    ・システムにおいて、 ユーザに質問を行ない且つ答を記憶する事により情報を
    取得するように機能する少なくとも1つの証拠ノードと
    目標ノードとを有するルール木と、少なくとも1つの独
    立なノードにより供給されたデータに従つて上記答を決
    定し、上記決定された答を上記証拠ノードに設定する事
    のできる他のノードとを上記ルール・ベースが含む事を
    特徴とするエキスパート・システム。
JP29904086A 1986-01-17 1986-12-17 エキスパート・システムにおける情報収集方法 Expired - Lifetime JPH0630064B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US819663 1986-01-17
US06/819,663 US4763277A (en) 1986-01-17 1986-01-17 Method for obtaining information in an expert system

Publications (2)

Publication Number Publication Date
JPS62169235A true JPS62169235A (ja) 1987-07-25
JPH0630064B2 JPH0630064B2 (ja) 1994-04-20

Family

ID=25228714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29904086A Expired - Lifetime JPH0630064B2 (ja) 1986-01-17 1986-12-17 エキスパート・システムにおける情報収集方法

Country Status (4)

Country Link
US (1) US4763277A (ja)
EP (1) EP0230349A3 (ja)
JP (1) JPH0630064B2 (ja)
BR (1) BR8700183A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0242535A (ja) * 1988-08-03 1990-02-13 Hitachi Ltd 知識ベース構築装置
JPH09297734A (ja) * 1995-11-15 1997-11-18 Microsoft Corp 質疑応答方法
JP2011086309A (ja) * 2000-07-28 2011-04-28 Ab Initio Technology Llc 条件成分を有するパラメータ化図形

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5062055A (en) * 1986-09-02 1991-10-29 Digital Equipment Corporation Data processor performance advisor
US4868743A (en) * 1986-11-25 1989-09-19 Hitachi, Ltd. Traversal method of processing tree structure information and apparatus using the same
CA1311852C (en) * 1987-01-09 1992-12-22 James R. Allard Knowledge acquisition tool for automated knowledge extraction
US4866634A (en) * 1987-08-10 1989-09-12 Syntelligence Data-driven, functional expert system shell
US4884218A (en) * 1987-10-01 1989-11-28 International Business Machines Corporation Knowledge system with improved request processing
US5023785A (en) * 1987-11-16 1991-06-11 Becton & Dickinson Co. Hematology - diagnosis apparatus employing expert system technology
JPH0619715B2 (ja) * 1987-12-03 1994-03-16 シャープ株式会社 質問応答装置
JPH01147628A (ja) * 1987-12-03 1989-06-09 Sharp Corp 質問応答装置
KR920003701B1 (ko) * 1988-03-17 1992-05-09 가부시끼가이샤 도시바 리얼타임 엑스파트 계산기 시스템
US5274801A (en) * 1988-04-29 1993-12-28 International Business Machines Corp. Artifical intelligence delivery system
JPH01309101A (ja) * 1988-06-08 1989-12-13 Hitachi Ltd 適応知識推定方法
US5228116A (en) * 1988-07-15 1993-07-13 Aicorp., Inc. Knowledge base management system
US5260883A (en) * 1988-07-21 1993-11-09 Daniel Flow Products, Inc. Interactive data entry system and method for the design, engineering and manufacture of meter tubes
US5121496A (en) * 1988-07-25 1992-06-09 Westinghouse Electric Corp. Method for creating, maintaining and using an expert system by recursively modifying calibration file and merging with standard file
JP2534360B2 (ja) * 1988-09-26 1996-09-11 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 接続方法、ノ―ド接続方法、デ―タ処理方法、及び木内にノ―ドを挿入する方法
US5067099A (en) * 1988-11-03 1991-11-19 Allied-Signal Inc. Methods and apparatus for monitoring system performance
US5099436A (en) * 1988-11-03 1992-03-24 Allied-Signal Inc. Methods and apparatus for performing system fault diagnosis
US4970657A (en) * 1989-01-06 1990-11-13 U.S. Advanced Technologies, N.V. Expert knowledge system development tool
JPH07107668B2 (ja) * 1989-01-25 1995-11-15 株式会社日立製作所 知識処理ツールの推論方法
US5081598A (en) * 1989-02-21 1992-01-14 Westinghouse Electric Corp. Method for associating text in automatic diagnostic system to produce recommended actions automatically
US5187788A (en) * 1989-05-01 1993-02-16 The United States Of America As Represented By The Secretary Of The Air Force Graphics system for automatic computer code generation
US4975865A (en) * 1989-05-31 1990-12-04 Mitech Corporation Method and apparatus for real-time control
US5159685A (en) * 1989-12-06 1992-10-27 Racal Data Communications Inc. Expert system for communications network
JPH0410047A (ja) * 1990-04-26 1992-01-14 Canon Inc 情報処理システム
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
US5226110A (en) * 1991-03-29 1993-07-06 The United States Of America As Represened By The Administrator Of The National Aeronautics And Space Administration Parallel inferencing method and apparatus for rule-based expert systems
EP0529130A1 (en) * 1991-08-28 1993-03-03 International Business Machines Corporation Expert system with explanation system
US5555346A (en) * 1991-10-04 1996-09-10 Beyond Corporated Event-driven rule-based messaging system
US5283856A (en) * 1991-10-04 1994-02-01 Beyond, Inc. Event-driven rule-based messaging system
US5627764A (en) * 1991-10-04 1997-05-06 Banyan Systems, Inc. Automatic electronic messaging system with feedback and work flow administration
US5835900A (en) * 1992-10-05 1998-11-10 Expert Systems Publishing Co. Computer-implemented decision management system with dynamically generated questions and answer choices
US5963931A (en) * 1992-10-05 1999-10-05 Expert Systems Publishing Co. Computer-assisted decision management system
JPH06231180A (ja) * 1993-02-02 1994-08-19 A T R Shichokaku Kiko Kenkyusho:Kk 検索データの評価支援方式
US5631970A (en) * 1993-05-21 1997-05-20 Hsu; Shin-Yi Process for identifying simple and complex objects from fused images and map data
US5765038A (en) * 1994-04-19 1998-06-09 International Business Machines Corporation Integration of groupware with the integrated quality control methodology via facilitated work sessions
US5664183A (en) * 1994-04-19 1997-09-02 International Business Machines Corporation Application of groupware to ISO 9000 registration via facilitated work sessions
US5687385A (en) * 1995-06-01 1997-11-11 Epi Data entry using linked lists
JP3455790B2 (ja) * 1995-06-30 2003-10-14 富士通株式会社 情報検索に利用するノウハウ管理装置
US5903453A (en) * 1996-01-19 1999-05-11 Texas Instruments Incorporated Method for estimating software operation and performance using a goal-question-metric paradigm
US5809492A (en) * 1996-04-09 1998-09-15 At&T Corp. Apparatus and method for defining rules for personal agents
DE19615693C1 (de) * 1996-04-19 1997-12-11 Siemens Ag Vorrichtung und Verfahren zur Aktionsermittlung
US5797135A (en) * 1996-05-01 1998-08-18 Serviceware, Inc. Software structure for data delivery on multiple engines
US6272481B1 (en) 1996-05-31 2001-08-07 Lucent Technologies Inc. Hospital-based integrated medical computer system for processing medical and patient information using specialized functional modules
US7555458B1 (en) 1996-06-05 2009-06-30 Fraud Control System.Com Corporation Method of billing a purchase made over a computer network
US20030195848A1 (en) 1996-06-05 2003-10-16 David Felger Method of billing a purchase made over a computer network
US8229844B2 (en) 1996-06-05 2012-07-24 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US5822743A (en) * 1997-04-08 1998-10-13 1215627 Ontario Inc. Knowledge-based information retrieval system
JP3790602B2 (ja) * 1997-04-25 2006-06-28 富士ゼロックス株式会社 情報共有装置
US8364578B1 (en) 1998-03-05 2013-01-29 Cgi Technologies And Solutions Inc. Simultaneous customer/account strategy execution in a decision management system
US6609120B1 (en) 1998-03-05 2003-08-19 American Management Systems, Inc. Decision management system which automatically searches for strategy components in a strategy
US6601034B1 (en) 1998-03-05 2003-07-29 American Management Systems, Inc. Decision management system which is cross-function, cross-industry and cross-platform
US6546545B1 (en) 1998-03-05 2003-04-08 American Management Systems, Inc. Versioning in a rules based decision management system
US6026393A (en) * 1998-03-31 2000-02-15 Casebank Technologies Inc. Configuration knowledge as an aid to case retrieval
US6477520B1 (en) * 1999-02-22 2002-11-05 Yatra Corporation Adaptive travel purchasing optimization system
US6421655B1 (en) * 1999-06-04 2002-07-16 Microsoft Corporation Computer-based representations and reasoning methods for engaging users in goal-oriented conversations
US6708155B1 (en) 1999-07-07 2004-03-16 American Management Systems, Inc. Decision management system with automated strategy optimization
US6876991B1 (en) 1999-11-08 2005-04-05 Collaborative Decision Platforms, Llc. System, method and computer program product for a collaborative decision platform
EP1122247A1 (de) 2000-02-07 2001-08-08 Degussa AG Verfahren zur Epoxidierung von Olefinen
EP1122248A1 (de) 2000-02-07 2001-08-08 Degussa AG Verfahren zur Epoxidierung von Olefinen
EP1122246A1 (de) 2000-02-07 2001-08-08 Degussa AG Verfahren zur Epoxidierung von Olefinen
DE50115570D1 (de) 2001-01-08 2010-09-09 Evonik Degussa Gmbh Verfahren zur Epoxidierung von Olefinen
JP2002222083A (ja) * 2001-01-29 2002-08-09 Fujitsu Ltd 事例蓄積装置および方法
US6596881B2 (en) 2001-06-13 2003-07-22 Degussa Ag Process for the epoxidation of olefins
US6608219B2 (en) 2001-06-13 2003-08-19 Degussa Ag Process for the epoxidation of olefins
US6600055B2 (en) 2001-06-13 2003-07-29 Degussa Ag Process for the epoxidation of olefins
US6749668B2 (en) 2001-06-18 2004-06-15 Degussa Ag Process for the recovery of combustible components of a gas stream
US7013457B2 (en) * 2001-07-26 2006-03-14 Springsoft, Inc. Prioritized debugging of an error space in program code
US6610865B2 (en) 2001-08-15 2003-08-26 Degussa Ag Process for the epoxidation of olefins
US6596883B2 (en) 2001-08-23 2003-07-22 Degussa Ag Process for the epoxidation of olefins
JP3576511B2 (ja) * 2001-09-19 2004-10-13 松下電器産業株式会社 音声対話装置
US20030069869A1 (en) * 2001-10-05 2003-04-10 Jane Gronau Computer aided strategic planning systems and methods
GB2384580A (en) * 2001-12-14 2003-07-30 Empiricom Technologies Ltd Knowledge acquisition in expert systems
US6720436B2 (en) 2002-03-18 2004-04-13 Degussa Ag Process for the epoxidation of olefins
US20030182177A1 (en) * 2002-03-25 2003-09-25 Gallagher March S. Collective hierarchical decision making system
US7141683B2 (en) 2002-05-02 2006-11-28 Degussa Ag Process for the epoxidation of olefins
US7722847B2 (en) 2002-09-30 2010-05-25 Evonik Degussa Gmbh Aqueous hydrogen peroxide solutions and method of making same
US6838572B2 (en) 2002-09-30 2005-01-04 Degussa Ag Process for the epoxidation of olefins
US7349888B1 (en) * 2003-11-10 2008-03-25 Zxibix, Inc. System and method to customize the facilitation of development of user thinking about and documenting of an arbitrary problem
WO2004044769A1 (en) * 2002-11-11 2004-05-27 Zxibix, Inc. System and method of facilitating and evaluating user thinking about an arbitrary problem
US7169945B2 (en) 2002-11-26 2007-01-30 Degussa Ag Process for the epoxidation of olefins
JP4344922B2 (ja) * 2003-01-27 2009-10-14 富士ゼロックス株式会社 評価装置およびその方法
US9367553B2 (en) * 2006-12-30 2016-06-14 Sap Se Computer file system traversal
US8271401B2 (en) * 2007-07-24 2012-09-18 Uop Llc Expert systems as a method of delivering diagnostic, problem solving, and training technical services to customers
US20100031137A1 (en) * 2008-02-13 2010-02-04 Rule Dynamics Inc. Method and system for authoring, publishing and rendering a dynamic interactive web page
US8082186B2 (en) * 2008-09-08 2011-12-20 Moshe Shuchman Method and a system for generating a custom itinerary according to user specifications
US8401855B2 (en) * 2009-02-06 2013-03-19 Robert Bosch Gnbh System and method for generating data for complex statistical modeling for use in dialog systems
US11069001B1 (en) 2016-01-15 2021-07-20 Intuit Inc. Method and system for providing personalized user experiences in compliance with service provider business rules
US11030631B1 (en) 2016-01-29 2021-06-08 Intuit Inc. Method and system for generating user experience analytics models by unbiasing data samples to improve personalization of user experiences in a tax return preparation system
US10824959B1 (en) * 2016-02-16 2020-11-03 Amazon Technologies, Inc. Explainers for machine learning classifiers
US10621597B2 (en) 2016-04-15 2020-04-14 Intuit Inc. Method and system for updating analytics models that are used to dynamically and adaptively provide personalized user experiences in a software system
US10621677B2 (en) 2016-04-25 2020-04-14 Intuit Inc. Method and system for applying dynamic and adaptive testing techniques to a software system to improve selection of predictive models for personalizing user experiences in the software system
US10943309B1 (en) 2017-03-10 2021-03-09 Intuit Inc. System and method for providing a predicted tax refund range based on probabilistic calculation
CN112929405B (zh) * 2021-01-05 2023-08-08 上海零数众合信息科技有限公司 一种区块链单链消息双分构建方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4479241A (en) * 1981-08-06 1984-10-23 Buckley Bruce S Self-organizing circuits for automatic pattern recognition and the like and systems embodying the same
US4593367A (en) * 1984-01-16 1986-06-03 Itt Corporation Probabilistic learning element
US4649515A (en) * 1984-04-30 1987-03-10 Westinghouse Electric Corp. Methods and apparatus for system fault diagnosis and control
US4648044A (en) * 1984-06-06 1987-03-03 Teknowledge, Inc. Basic expert system tool
US4658370A (en) * 1984-06-07 1987-04-14 Teknowledge, Inc. Knowledge engineering tool
US4591983A (en) * 1984-07-09 1986-05-27 Teknowledge, Inc. Hierarchical knowledge system
US4675829A (en) * 1984-07-27 1987-06-23 Intellicorp Corporation Method and apparatus for building knowledge-based systems
US4644479A (en) * 1984-07-31 1987-02-17 Westinghouse Electric Corp. Diagnostic apparatus
US4642782A (en) * 1984-07-31 1987-02-10 Westinghouse Electric Corp. Rule based diagnostic system with dynamic alteration capability

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0242535A (ja) * 1988-08-03 1990-02-13 Hitachi Ltd 知識ベース構築装置
JPH0748180B2 (ja) * 1988-08-03 1995-05-24 株式会社日立製作所 知識ベース構築装置
JPH09297734A (ja) * 1995-11-15 1997-11-18 Microsoft Corp 質疑応答方法
JP2011086309A (ja) * 2000-07-28 2011-04-28 Ab Initio Technology Llc 条件成分を有するパラメータ化図形

Also Published As

Publication number Publication date
EP0230349A3 (en) 1988-07-06
JPH0630064B2 (ja) 1994-04-20
US4763277A (en) 1988-08-09
EP0230349A2 (en) 1987-07-29
BR8700183A (pt) 1987-12-01

Similar Documents

Publication Publication Date Title
JPS62169235A (ja) エキスパート・システムにおける情報収集方法
US4754409A (en) Method for dynamically collecting current data from specified external processes and procedures for use in an expert system
JPS622319A (ja) エキスパート・システム
Davis et al. Meta-Level Knowledge: Overview and Applications.
JP7089330B2 (ja) 適応可能な処理コンポーネント
Kadie et al. MSBNx: A component-centric toolkit for modeling and inference with Bayesian networks
Ye Supporting component-based software development with active component repository systems
US11934969B2 (en) Bias identification in cognitive computing systems
US11232134B2 (en) Customized visualization based intelligence augmentation
US20210065045A1 (en) Artificial intelligence (ai) based innovation data processing system
Campos et al. Searching crowd knowledge to recommend solutions for API usage tasks
Chan et al. Knowledge engineering for an intelligent case-based system for help desk operations
Ehrlich et al. A computational theory of vocabulary expansion
Ashfaq et al. Natural language ambiguity resolution by intelligent semantic annotation of software requirements
Sales et al. A FAIR catalog of ontology-driven conceptual models
Warendorf et al. Application of fuzzy logic techniques in the BSS1 tutoring system
CA1267223A (en) Method for obtaining information in an expert system
Gabroveanu et al. Extracting semantic annotations from Moodle data
Höfferer et al. Adaptive Information Extraction from Online Messages.
Wiśniewski 3 An Essay on Inferential Erotetic Logic
de Barros Data-Driven Hint Generation for Alloy using Historial Student Submissions
Giakoumakis et al. A learning system for ECG diagnosis expert systems
Morrison Evaluating expert created, idiographic command sets for novice, nomothetic purposes
EL-KASS et al. PH. D. THESIS PROPOSAL PRESENTED TO UNIVERSITÉ DU QUÉBEC EN OUTAOUAIS
van der Pol Dipe-R: a knowledge representation language