JPH04505518A - エキスパートシステム装置および方法 - Google Patents
エキスパートシステム装置および方法Info
- Publication number
- JPH04505518A JPH04505518A JP90503247A JP50324790A JPH04505518A JP H04505518 A JPH04505518 A JP H04505518A JP 90503247 A JP90503247 A JP 90503247A JP 50324790 A JP50324790 A JP 50324790A JP H04505518 A JPH04505518 A JP H04505518A
- Authority
- JP
- Japan
- Prior art keywords
- value
- term
- definition
- computer system
- digital computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/045—Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
- Graft Or Block Polymers (AREA)
- Steering Control In Accordance With Driving Conditions (AREA)
- Developing Agents For Electrophotography (AREA)
- Devices For Executing Special Programs (AREA)
- Electrotherapy Devices (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
【発明の名称)
エキスパートシステム装置および方法
r関連出願の参照1
本出願は、1987年3月24日出願(7)U、S、S、N、030,25Of
7) 一部継続出願であり、またこのU、S、S、N、030,250は現在放
棄されている1985年8月16日出願のU、S、S、N、766、’860の
継続出願である。本出願の追加開示は、好適な実施例の説明の第12節から始ま
る。
【本発明の背景】
1、発明の分野
本発明はディジタルコンピュータによって実現されるエキスパートシステムに係
わり、また更に特定的には、エキスパートシステムの知識ベースおよび推論エン
ジンコンポーネントと、エキスパートシステムを作成するための装置と、定義的
知識ベースを作成するための装置および方法とに係わる。
2、従来の技術の説明:図]および図IA近年、エキスパートシステムは商業的
に利用可能になってきた。エキスパートシステムは、ある所定の分野の専門家と
同じ仕方でその分野における専門知識情報を応用するシステムである。更に、エ
キスパートシステムは、ある程度自分自身を説明できるということにおいて人間
の専門家に似ている。その複雑さによっては、エキスパートシステムは、なぜ所
定の結論に到達したのかを説明でき、なぜ所定の一片の情報を欲するのかを説明
でき、またユーザが所定の一片の情報の値を変更してそれがその結果にどのよう
に影響を与えるかを見られるようにできる。大規模コンピュータシステムを構成
するとか、細菌感染を診断するとか、石油掘削のドリル先端がなぜつまってしま
ったかを診断して修理を示唆するとか、といった仕事を遂行するエキスパートシ
ステムが構築されてきた。
従来技術のエキスパートシステムは一般にルールベースのものであった。すな、
これらは、そのエキスパートシステムのユーザによって与えられた事実に関する
専門家の専門知識についてその専門家に質問することによって得られたルールを
適用して機能するものであった。これらのルールは一般にもしAならば、Bであ
る
という形式をしている。
このようなルールでは、AはBに関する条件部と呼ばれ、Bは結論部と呼ばれる
。Aが真であるとき、結論は真であると推論される。例えば、医用診断システム
の1つのルールに、゛もし患者が発熱していて漬水を出しているならば、患者は
インフルエンザにか1つている可能性がある”というのがあるであろう。このル
ールに従えば、もし症状が発熱と漬水であれば、一つの可能な推論はインフルエ
ンザである。
図1は、従来技術のルールベースのエキスパートシステム101のブロック図で
ある。システム101は3つのコンポーネント、すなわちコマンドプロセッサ(
CP)103と、ルール推論エンジン(RIE)105と、ルール記憶部(R5
)とを持っている。R5107はこのシステムがエキスパートである領域に関す
るルール109を含んでいる。RIE105は、ユーザから問題データを受け取
り、R3107内のルールをそのデータに適用し、そしてその問題データへのル
ールの適用結果をユーザに与える。CP103は、推論エンジンコマンド(工E
C)によってRIE105を制御する。CP103はユーザによって与えられる
コマンド入力からコマンドを生成する。上記のインフルエンザの例を続ければ、
医学的診断エキスパートを使う人はCPにパなんという病気か?”というコマン
ドを入力するであろう。するとCP103は推論エンジンコマンドをRIE10
5に与え、RIE105は病気に関するそのルールが症状を要求していると判断
するであろう。それからRIEは多分゛どんな症状か?”と尋ねることによって
問題データを要求するであろう。するとユーザは症状を入力することができ、そ
れからRIE105は症状が条件部となっているルール109を見つけてそのル
ールの結論を結果データとして返すことかできるであろう。例えば入力された症
状が°゛発熱漬水”であれば、エキスパートシステム101は前記のルール10
9からその病気はインフルエンザであるかもしれないと結論することができよう
。
もちろん他の多くの病気がこういう症状を持っており、したがってその条件部の
一部としてこれらの症状を持つ2つ以上のルール109が存在するであろう。そ
の精巧さによって、エキスパートシステム101は、その条件部の一部としての
症状を持つすべてのルール109の結論を結論として返すか、あるいはユーザに
更に症状を質問して適用されるルールの数を狭めるためにその新しい症状を使う
こともできるであろう。いずれの場合にも、エキスパートシステム101はユー
ザの要求に応じて、その結論に到達するためにどんなルール109を使用したか
を示すことができる。
最初の従来技術のエキスパートシステム101は特別注文製であって、専門家と
ナレッジエンジニアとコンポーネントシステム設計者との間の長期間の密接な協
同作業を必要とした。専門家は自分の専門知識を提供し:ナレッジエンジニアは
その専門知識をルール109に集約し、またそのルール109をR5107に格
納するために使われるRIE105と表現とを設計した。最後にコンポーネント
システム設計者は、ナレッジエンジニアの設計を実現するプログラムを書いた。
特別注文製のエキスパートシステム101にとって必要とされる専門家の時間の
大量な入力がエキスパートシステムを非常に高価なものにし、そのためエキスパ
ートシステムのメーカーはエキスパートシステムを作成するための、エキスパー
トシステムシェルと呼ばれる特別のツールを開発するようになった。図IAは、
ルールベースのエキスパートシステムを作るためのエキスパートシステムシェル
110のブロック図である。この図から分かるように、このエキスパートシステ
ムシェルは図1のルールベースエキスパートのコンポーネントと追加のコンポー
ネントであるルールプロセッサ(RP)111とを持っている。ルールプロセッ
サ111は、現在構築中のエキスパートシステムに固有なR3107に格納する
ためのルール109を生成するために使用される。RIE105は、エキスパー
トシステムが構築されるときに構築中のそのシステムをテストするためにエキス
パートシステムシェル110で使われる。開発中のエキスパートシステムに関す
るルール109のすべてが書き上げられ、システムが完全にテストされたときに
、この新しいエキスパートシステムのユーザは新エキスパートシステムのRIE
I05とR5107とに対するアクセス権が与えられる。
エキスパートシステムシェル110の有用性は、かなりの程度まで、RPIIl
の巧みさに依存する。あるいくつかのシステムでは、RPIIIは特別な形式で
入力されたルール109を必要とする。こうしてこれらのシステムは一般にナレ
ッジエンジニアを必要とし、専門家自身では使うことができない。他のシステム
では、RPIIIは専門家によって提供される例からそのルールを構成し、した
がってナレッジエンジニアを必要としない。
ルールベースのエキスパートシステム101は着実により強力に、より使い易く
、より高価でなくなりつtあるが、それらのルールへの依存性はある一定の本質
的な不利益を持っている。第1に、大抵の専門家は1セツトのルールによって自
分たちの専門知識の領域を考えているわけではない。専門家が考えないから、実
例からルールを構成するナレッジエンジニアあるいはシステムが専門家とエキス
パートシステムシェル110との間を仲介しなくてはならない。第1のケースで
はエキスパートシステムの開発はそうでない場合より一層高価なものとなり、ま
た第2のケースではエキスパートシステムシェル110の複雑さはそうでない場
合により一層大きくなり、そして専門家はなおシェル110によって生成された
ルールをチェックしなくてはならないからルールから完全には隔離されない。
第2に、R5107は互いに独立に生成されたルール109の集まりであるから
ルール109の集まりが完全であるとかあるいは矛盾したルールを含まないとか
いう保証はない。もし1セツトのルール109が不完全であれば、エキスパート
システム101は結果に到達しないか、間違った結果に到達する可能性があり、
またもしルール109のその集合が矛盾したルール109を含んでいれば、再び
エキスパートシステム101は結果に到達しないか、そのルールよりもむしろ矛
盾を解消するためのRIE105の内部アルゴリズムに依存する結果に到達する
可能性がある。
ルール109の不完全なセントで、あるいは矛盾するルール109で動作する能
力は、ルールベースのシステム101の能力の一部であって、専門家が自分の専
門知識の領域をいくつかの明確な原理に集約できない状況で必要になる。しかし
ながらエキスパートシステムは専門家が自分の専門知識を明確な原理に集約でき
る多くの状況で採用されており、そしてこれらの状況ではルール109の不完全
なセットと矛盾するルール109とを取り扱う能力は誤りの検出を一層困難にし
、また間違えた場合にシステム101の振舞いをルールよりもむしろRIEの内
部アルゴリズムに依存させることになる。
第3に、ルールベースのエキスパートシステム101は修正が困難である。ルー
ルベースのエキスパートシステムの振舞いはそのルールの全体性に依存しており
、またシステムにバクがあるからとかあるいは専門家が所定のケースをどのよう
に処理するかについて自分の考えを変えたからとかいう理由でシステムの振舞い
を変更しようとした場合、どのルールを変えなくてはならないかを決定するのが
困難であることがしばしばある。
第4に、ルールベースのエキスパートシステム101の能力と複雑さはエキスハ
ートシステムが役に立つ多くの場合には必要ない。一般的に言って、その能力と
複雑さは専門家が自分の専門知識を十分に定義できない場合に必要となる。しか
しながら、素人は専門家の手引きを必要とするが専門家は自分の専門知識を完全
にまた容易に定義できる場合が多い。こういう場合には、有用なエキスパートシ
ステムとエキスパートシステムシェルは、ルールベースのエキスパートシステム
とエキスパートシステムシェルとに固有の複雑さを持つ必要はない。
こういう場合の1つは税金用紙のような複雑な用紙によって示されるものである
。大抵の場合、用紙に記入するためにほとんど判断は必要ないが、それにもかか
わらずこの用紙は多くの人々が税金用紙作成人の助けを必要とするほど複雑であ
る。スプレッドシートは、税金用紙の記入に関係するデータを取り扱うことと、
1つの値の変更が他の値にどのように影響するかをユーザが見ることができるよ
うにすることとを機械的により容易にしたが、エキスパートシステムで可能とな
るユーザのための道理に基いたガイダンスの類は提供しなかった。したがって必
要とされるもの、およびここに述べる本発明によって提供されるものは、ルール
ベースシステムの十分な能力を必要としない状況でルールベースのエキスパート
システムよりも実質的に単純ではあるが、道理に基いた専門家の助言を提供する
、ルールベースシステムやエキスパートシステムの典型的なシェルよりも使い易
いエキスパートシステムシェルである。
(本発明の要約]
本発明はディジタルデータ処理システムに係わり、更に特定的には、ディジタル
データ処理システムで使用されるエキスパートシステムとエキスパートシステム
シェルとに係わる。本発明のエキスパートシステムはルールの代わりに定義を使
用する。専門家は、対応する1セツトの階層的程度を持った1セツトの項(te
rm)として自分の専門知識領域を定義する。ある項に関する定義は階層のより
下位レベルで定義される項と、項の値に依存しない項に独立の値とを含む。′専
門家がこの階層内のある項に関して到達するであろう決定は、その項の値として
表現される。定義された項は、本発明のエキスパートシステムの知識ベースを構
成する。推論エンジンは所定の項の値をその定義から計算することによってその
項に関して専門家ならどんな決定を行ったであろうかを決定する。もし定義が他
の項を含むならば、これらの項の値はそれらの定義から計算される。
本発明のその他の観点では、ある所定の項の定義はその所定の項の値が得られる
ときに実行すべき操作を指示することができる。1つのこうし1う操作はそのエ
キスパートシステムによって制御される表示装置上にイメージを含む情報を表示
することである。もう一つのこういう操作はもう一つのシステムが操作されるよ
うにすることである。もう一つの手続きを呼び出すことである。更に、テーブル
演算子は基本テーブルおよび基本テーブルの列として項を定義することを可能に
する。更に、間合せ演算子は基本テーブルから間合せテーブルの定義を可能にし
、についての演算の結果として項が定義されることを可能にする。最後に、非テ
ーブル項が表現できる値は゛″不明値を含む。演算子は演算を実行するときにこ
ういう値の存在を考慮に入れており、またこういう値を検出するために他の演算
子が追加されている。
このように本発明の一つの目的は改善されたエキスパートシステムとエキスパー
トシステムシェルを提供することである。
本発明のもう一つの目的は定義的知識ベースと、結論に到達するためにその定義
的知識ベースを使用する推論エンジンとを有するエキスパートシステムを提供す
ることである。
本発明の更なる目的は特にアプリケーション開発に適合したエキスパートシステ
ムを提供することである。
本発明の追加の目的は改善された演算子を有するエキスパートシステムを提供す
ることである。
本発明のなお更なる目的は、ある演算に関するオペランドのあるいくつかが゛′
不明” (don’ t know)値を持つときに演算子が演算できるシステ
ムを提供することである。
本発明のその他の目的と利点とは、以下に記す、第1のプロトタイプ実施例と第
2のプロトタイプ実施例におけるいくつかの改良点とについての詳細な説明を参
照し、また図面を参照した後、本技術に通常の熟練度を有する人々によって理解
されるであろう。
【図面の簡単な説明1
図1は従来技術のエキスパートシステムの概念的ブロック図である。
図IAは従来技術のエキスパートシステムシェルの概念的ブロック図である。
図2は本発明のエキスパートシステムシェルとエキスハートシステムの概念的ブ
ロック図である。
図3は本発明で使われる定義の階層の概念図である。
図4は項FRAUD (詐欺)を定義するために使われる項と説明の図表である
。
図5はLISP環境の図表である。
図6は本発明の第1のプロトタイプ実施例の概要である。
図7は第1のプロトタイプ実施例のTDEF617の図表である。
図8は第1のプロトタイプ実施例の関数DEFINEの詳細な図表である。
図9は第2のプロトタイプ実施例におけるいくつかの改善の図表である。
図の参照を容易にするために、好適な実施例の説明に使われる参照番号は3桁の
数字を持っている。最下位の2桁は図面内の参照番号であり、最上位の桁は図面
番号である。例えば、参照番号901は図9に示されている。項目を指す。
(好適な実施例の説明]
好適な実施例の下記の説明はまず、本発明のエキスパートシステムとエキスパー
トシステムシェルとの概念的な概要を示し、それから本発明の第1のプロトタイ
プ実現の詳細な説明を述べる。また第2のプロトタイプ実現においてなされたい
くつかの改良を論議する。部分的に継続してこの開示に追加される資料は第12
節から始まる。
1、本発明のエキスパートシステムシェルとエキスパートシステムの概念的概要
。
図2
図2は本発明のエキスパートシステムシェル201とエキスパートシステム20
2の概念的ブロック図である。エキスパートシステムシェル201は、4つのコ
ンポーネントすなわちコマンドプロセッサ(CP)203と定義プロセッサ(D
P)207と項記憶部(TS)215と項推論エンジン(TIE)219とを持
っている。エキスパートシステムシェル201を使って作成されるエキスパート
システム202はDP207を除くこれらのコンポーネントのすべてを持つ。
以下、更に詳しく説明するように、CP2O3はシェル201とシステム202
のユーザからコマンドを受け取ってこれらのコマンドをその他のコンポーネント
に与え、DP207は定義を処理し、TS215は定義された項とそれらの定義
とを記憶し、TIE219はTS215からのある項の定義を使ってその項を評
価してそれについて他の演算を行う。
CP2O3は、シェル201とエキスパートシステム202のユーザからのコマ
ンドを定義プロセッサコマンド(DPC)204と推論エンジンコマンド(工E
C)217とに変換する。プロトタイプでは、DPC204はシェル201の定
義を調べ、セットの定義をセーブし、また1セツトの定義を復元することを可能
にする。lEC217はシェル201のユーザまたはシェル201によって作成
されたエキスパートシステム202のユーザが項の現在値を決定することと、エ
キスパートシステム202がどのようにしてその値に到達したかを見つけ出すこ
とと、エキスパートシステム202をしである項に別の値を想定させてそれが他
の項にどのように影響するかを調べることと、それらの項のどれが一つまたはす
べての項の値をリセットすることと、そしである項の現在値の決定のためにはそ
の定義の範囲外から与えるべきある値が必要となるときにはエキスパートシステ
ム202になぜその値が必要であるのかを尋ねることとを可能にする。
定義プロセッサ207はTERM206を定義する。あるTERM206が完全
に定義されたとき、TS215はTERM206に対応する定義された項(DT
ERM)211とDTERM211に関する定義(DEF)213とを含む。
TERM206は、DPC204で受け取られるか、あるいはTERM206に
応じてエキスパートシステムシェル201のユーザからDP207が要求した記
述(DESC)205から受け取られることができる。DP207は初めに、T
ERM206に対応するDTERM211が既に存在しているかどうか、すなわ
ちTERM206が既に定義されているかどうかを決定する。もし定義されてい
れば、DP207はTERM206に対応するDTERM211をTS215か
ら検索し、DP207が現在作成中の定義の中で使えるようにそれを準備する。
もし定義されていなければ、DP207はシェル201のユーザに記述要求(D
ESCREQ)を出力する。ユーザはTERM206の記述(DESC)205
をDP207に与える。するとDP207はDESC205の中の情報を使って
TERM206に関するDEF213を作成する。以下、更に詳しく述べるよう
に、DESC205は、ユーザが他のTERM206と定数値と、そして与えら
れようとしている定義に関するある値はエキスパートシステム202の外から取
得すべきであるということとを指定できるようにする定義言語で書かれている。
更にこの定義は、TERM206と定数と、定義内の外部値とによって表現され
る値について実行できる演算を指定する。もしDESC205がTERM206
を含むならば、DP207はいま述べた仕方でこれらのTERM206を処理す
る。もしTERM206に対応するDTERM211が存在すれば、DTERM
211は作成中のDEF213の中で使われる。もし存在しなければ、DP20
7はTERM206を定義するDESC205を要求して、いま述べたようにそ
れを処理する。DP207の反復演算は図2で、少くとも1つのTERM206
を含むUDESC210がどのようにしてDP207により再び処理されるかを
示す矢印208によって示される。元のDESC205と、元のDESC20S
内でTERM206を定義するために必要とされるTERM206に関して作成
された任意のDESC205丙−aTERM206のすべてとが定義されるまで
、すなわちTS215内に対応するDTERM211とDEF213とを持つま
で、この仕方で処理が続けられる。
DP207の演算の結果得られるDTERM211とDEF213は、TS21
5の中に置かれる。DTERM211は名前によってTS215の中でその位置
を見付けることができる。DTERM211に対応するDEF213はDTER
M211に結びつけられており、したがって一端DTERM211が探がし当て
られるとDEF213は使用可能となる。DEF213が導き出されるDESC
205の修正版はDEF213に含まれる。
DPC204によって指定された残りの演算はTP207とTS215の中で次
のように実行される。すなわちTERM206が定義解除されるときにはDP2
07は対応するDTERM211とDEF213をTS215から除去し、また
TERM206が再定義されるときにはDP207はTERM206に対応する
DEF213を除去してTERM206に関する新しいDESC205を要求す
る。それからそのDESC205はいま述べた仕方で処理される。DPCがTE
RM206の定義を表示するように要求すると、DP207はTERM206に
対応するDTERM211に関するDEFの中に組み込まれたDESC205を
表示する。最後に、後で使用するためにセーブ操作が所定のTS215の内容を
ファイルにセーブし、復元装置がファイルの内容をTS215に復元する。
項推論エンジン(TIE)219はTS215内のDTERM211とDEF2
13とを用いて演算を実行する。−次演算はwhat演算であって、これはエキ
スパートシステム202またはシェル201のユーザによって与えられるDTE
RM211の定義と外部値とからDTERM211の値を決定する。TIE21
9はその演算を指定するlEC217とCP2O3からのTERM206とに応
答してwhat演算を実行する。TIE219はTERM206に対応するDT
ERM211を使ってTS215内でDTERM211のDEF213の位置を
捜し当てる。それからTIE219は、定義の中で指定されたDTERM211
と定数と外部値とを使ってDEF213内で指定された演算を実行し、その結果
値TRES227をシステム202またはシェル201のユーザに返す。
DEF213内の定数は、DTERM211の値を計算するときに即座に使用で
きるようになっており、外部値の場合は、DTERM211はその外部値がどの
ようにして取得されるべきかについての記述を含む。TIE219はその記述を
使って外部値(EXVAL)225の情報源に対して外部値要求(EXVALR
EQ)を行い、その情報源からEXVAL225を受け取る。最も単純なケース
では、情報源はシステム202またはシェル201のユーザが使っている端こと
によって得られる。更に複雑なケースでは、情報源はファイルあるいはデータベ
ースのこともある。
評価中のDTERM211に関するDEF213の中にもう一つのDTERM2
11が存在する場合にはTIE219はそのもう一つのDTERM211のDE
F213を取得し、そしてそのDEF213内のいずれのDTERM211でも
評価するように評価しながら、またその値がwhat演算でめられているDTE
RM211が依存しているすべてのDTERM211が評価し終わるまで評価を
続けながら、このDTERM211の値をそのDEF213から計算する。
各DEF213の中で指定されている定数と外部値とDTERM211とは、い
ま述べて仕方で処理される。すべてのDEF213が評価されたとき、その値が
められているDTERM211の値が計算され、TRES227として返される
。
好適な実施例では、所定のDEF213の評価中に得られたEXVAL225は
そのDEF213の定義の一部になる。こうしてもしDTERM211についA
L REQを生成しないで単に記憶されたEXVAL225を使ってDTERM
211の値を再計算する。好適な実施例は記憶されているEXVAL225を修
正するために2つのlEC217を持っている。第1+7)resteは単に、
resetコマンド内で指定されたDTERM211に関するDEF213から
、記憶されているEXVAL225のすべてを除去する。こうして、whatが
再び実行されると、前に説明下ように新しいEXVAL225が得られる。第2
のa s s umeは、assumeニア7ンド内で指定されたTERM20
6に関するDEF213に新しいEXVAL225が与えられるようにする。こ
のケースで再びwhatが実行されると、実行中のwhat演算に関するDTE
RM211の値を導き出すためにこの指定されたEXVAL225が使われる。
なぜTIE219が所定のEXVAL225をめているかをシェル201または
システム202のユーザが知りたい場合は、why演算のためのコマンドでX
REQに応答することができる。そのコマンドに応答してTIE219は、EX
VAL225が要求されたとき、値が計算されつ)あるDTERM211に関す
るDEF213からDESC205を出力し、そしてユーザはその所定のEXV
AL225がなぜ重要であるかをDESC205から決定することができる。
更ニュー サバ、ソノ評価がEXVAL REQを生成したDTERM211+
7)値を得るためにその値が必要とされるDTERλ4211のどれかがなぜ必
要とされるかを尋ねるためにwhyを用いることができ、そしてTIE219は
これらのDTERM211に関するDESC205を与える。
3、定義の階層:図3
いかなる項を定義する場合にもDP207は、DEF213の階層を生成する。
それ自身定義中の項に関するDEF213が項を含まない場合、階層は唯一つの
レベルを持つ。もし項に関するDEF213がもう一つの項を含むならば、その
項は第1の項が定義できる前に定義しなくてはなら Cまたこの第1の項は2つ
のレベルを持った階層における最上位項である。もし第2レベルのDEF213
のどれかがもう一つの項を含む場合には、その項を定義しなくてはならず、また
この階層は3レベルを持つ。こうして階層は、他の項が依存する項に関するDE
F213のいずれもが更なる項を含まなくなるまで深くなり続けるが、その代わ
り定数または外部値についての演算によってのみ定義される。上記の論議から明
らかなように、DEF213は常に、DEF213が定義するDTERM211
を定義するために必要なりEF213の階層における最上位DEF213である
が、同時に、ある他のDTERM211を定義するために必要なりEF213の
階層においては、より低いレベルにある可能性もある。
図3はDEF213の一つのこういう階層の概念的説明図である。階層305は
DTERM301のセットに属するDTERM211 (A)〜211(E)に
対応するDEF213 (A)〜213(E)を含んでいる。階層305におけ
る最上位の定義はDTERM211 (A)に対応するDEF213 (A)で
ある。
DEF213 (A)における記号○P (B、C)は、DTERM211 (
A)の値がDTERM211 (B)および(C)の値について演算を実行する
ことによって得られることをDEF213(A)が指定するということを示す。
同様にDEF213BはDTERM211 (B)の値がDTERM211 (
D)および。
(E)の値について演算を実行することによって得られるということを指定する
。
したがってDEF213 (A)に関する階層305は3つのレベル、すなわち
DEF213(A)のみを含む、レベル1307と、DEF213 (B)およ
びDEF213 (C)を含むレベル2309と、DEF213 (D)および
DEF213(E)を含むレベル3311とを持っている。DEF213 (C
)、213(D)、および213(E)は他のDTERM211を用いてDTE
RM211CSD、およびEを定義することはなく、また下位のレベルを上に上
げることもできない。こういうDEF213は端末定義312と名付けられる。
階層305を構成するに際してDP207はDTERM211 (A)に対応す
るTERM、206 (A)から始める。DP207はTERM206 (A)
を、より上位のレベルにあるDEF213が構成されつ)あるDESC205か
ら、あるいはdefine(定義)またはredefine (再定義)DPC
204かも受け取る。それからDP207はDESC205にDTERM211
(A)を要求する。DESC205は2つのTERM206BおよびCについ
ての演算によってDTERM211 (A)を定義する。もしDEF213 (
B)とDEF213(C)とが既に存在しているならば、DP207はDEF2
13 (A)を作ることができ、それより進む必要はない。もしDEF213
(B)かDEF213 (C)かいずれかが存在しないならば、DP207はD
EF213Aを作成できるようになる前にこれらのDEF213を生成しなくて
はならない。こうしてDP207はDESC205にTERM206 (B)と
TERM206 (C)とを請求する。TERM206 (C)f7)場合には
DESC205+1EXvAL (C)225によってのみTERM206 (
C)を定義し、そしてDEF213 (C)は直ちに構成できる。TERM20
6 (B)の場合にはDESC205は2個の追加のTERM206DおよびE
によってTERM206 (B)を定義する。したがってDP207は別のレベ
ルに降りて、それらのTERM206に関するDEF213を生成しなくてはな
らない。再びDP207はDESC206にそれらの項を要求する。両方の場合
ともTERM206はEXVAL225によって定義され、その結果、両方のD
EF213が構成できる。これでTERM206Aの定義に関連したすべてのT
ERM206に関するDEF21’3は構成されて、TERM206 (B)〜
(E)に対応するDTERM211 (B)〜(E)は存在することになり、D
EF213 (A)は構成することができて、これでTERM206(A>は対
応するDTERM211 (A)を持つことになった階層305は階層305に
おける最上位のDEF213から始めて繰り返し構成され、また対応するDTE
RM211を持たないTERM206のみが定義されるから、DTERM211
は2個のDEF213を持つことができず、また階層305内のDEF213は
階層305内で自分より上位にあるDEF213を参照することができない。し
たがって階層305内のDEF213は必然的に、階層305内のDEF213
(A>に関して、あるいはDEF213 (A)を組み込んでいる任意の階層内
の最上位のDEF213に関して完全かつ無矛盾になる。
4、記述205のための記述言語
前に示したように、DP207は記述(DESC)205からDEF213を作
成する。プロトタイプではDESC205はある記述言語を用いて作成される。
この記述言語は、項についての演算とcase文と、外部値を取得するための演
算とを指定する、予め定義された用語を含む。
これらの演算には、論理演算、算術演算およびテキスト連結がある。case文
は、次の形式の論理式値ベアのリストである。
(booleam exp 1)value 1.、(boolean exp
n)value n
(OTHERWISE)otherwi 5e−va 1uecase文を含む
DEF213が評価されると、論理式1〜nはそれらの式の1つが真になるまで
順番に評価される。真である論理式に対応する値はDEF213によって定義さ
れたDTERM211の値になる。もし論理式の中のどれも真でなければ、0T
HERWISEに対応する値がDTERM211の値となる。
プロトタイプの記述言語は外部値を取得するだめの2つのクラスの演算の指定を
許している。第1のクラス、ASK演算はエキスパートシステム202のコ、−
ザの端末から値を得る。第1のクラス、ASK演算は端末から外部値を得るため
に使われる。第2のクラス、RECORD演算OR−タベースシステムから外部
値を得るために使われる。両ケースとも外部値は数値、文字列、または論理値で
あることができ、あるいはこれらの外部値は1セツトのどれか択一のリテラル環
の1つ、すなわち自分自身のみを表している項の1つを選択できる。
ある数値を得るためのASKは次の形式を持っている。
ASK NUMBER″プロンプト 文字列”こういうASK演算を含むDEF
213が評価されると、DP207は端末にプロンプト文字列を出力して、その
たんまつからの数値入力を待つ。それからその数値はDEF213の評価に使わ
れる。プロンプト文字列はそれ自身で予め定義された項を含んでおり、またした
がって予め評価された項の値に依存するようにユーザの応答を行うことができる
。論理値とテキスト文字列値とに関するASK演算は、上記の演算におけるNU
MBERが論理値をめるときにはYES−Noによって置き換えられ、またテキ
スト文字列をめるときにはTEXTによって置き換えられるということを除けば
、数値に関するASK演算と同じ仕方で指定される。
多数のリテラル環の中の1つを選択するASKは次の形式を持つ。
(リテラル 項 111.リテラル 項 n)ASK CH○ICEを含むDE
F213が評価されると、プロンプト文字列が出力され、ユーザはリテラル環の
1つを選択するようにめられる。それからこのリテラル環はDEF213によっ
て定義されたDTERM211の値を計算するためにDEF213の中で使うこ
とができる。
データベースの中でどのようにして外部値の位置を捜しめるべきかをREC○R
D演算が指定し、また指定された位置の値をデータベースが与えるということを
除けば、一般にRECORD演算OR−K演算に類似している。
5、シェル201およびシステム202の動作二図4ある人が詐欺をされたかど
うかを決定できる定義の階層を使って、シェル201の動作を詳しく説明する。
詐欺の法的な定義は、一方側が相手側に対して故意に不真実表示を行ったことと
、その相手側の損害がその不真実表示によるということを必要とする。図4はこ
の法的な定義に夕づ応するDTERM211の階層を示す。
図4の階層の作成はCP213がDEFINE FRAUD(詐欺を定義する)
コマンドを受け取ったときに始めまる。それからCP2O3はTERM206の
FRAUDをDP207に渡し、DP207は定義を作成するエキスパートから
DESC206を要求する。エキスパートは下記のDESC206を与える。
KNOWING MISREPRESENTATION AND DETRIM
ENTAL−RELIANCE (、故意の 不真実表示および損害の 依存性
)このDESC206は更なる2個のTERM206と論理演算子ANDとを含
んでいる。こうしてFRAUDの値は、TERM206に対応するDTERM2
11の値を取得して、それらの値についてAND演算を実行することによって計
算できることになる。
これら更なるTERM206は未定義であるから、DP207はそれらの定義を
請求してくる。エキスパートはKNOWING MISREPRESENTAT
ION(故意の 不真実表示)に関してはMISREPRESENTATION
AND DEFENDANT−KNEW MISREPRESENTATIO
N(不真実表示および被告 知っていた 不真実表示)というDESC205を
、またDETRIMENTAL RELIANCE (損害の 依存性)に関し
てはRELIANCE BY PLAINTIFF AND Loss BYP
LAINTIFF (原告 による 依存性および原告 による 損失)という
DESC205を与える。
再び、これら更なるTERM206は未定義であるからDP207はそれらの定
義を要求し、エキスパートは図4に示した定義を与える。DP207はいかなる
順序ででも定義を要求できるが、好適な実施例は、次の未定義TERM206に
進む前に所定の未定義TERM206を定義するために必要なすべてのTERM
206を定義する。
上記の例では、MISRESENTATION (不真実表示) 、DEFEN
DANT KNEW MISREPRENTATI○N(被告 知っていた 不
真実表示)、RELIANCE BY PLAINTIFF(原告 による 依
存性)、およびLoss BY PLAINTIFF(原告 による 損失)に
関するDESC205はすべて、ASK YES−No演算で使われた、システ
ム定義のDTERM211のみを含んでいるから、こんどはDP207はこの階
層内の項のすべてに関するDEF213を生成することができる。この階層内の
すべてのDTERM211の値は結局は、FRAUD定義(詐欺の定義)を使う
エキスパートシステム202のユーザからASK YES−No演算が要求する
値に依存しており、またこうして結局は、原告が自分に起こったことについて言
っていることに依存している。
エキスパートシステム202におけるFRAUD定義階層の使用は、エキスパー
トシステム202のユーザがCP2O3に入力するWHAT FRAUDコマン
ド(詐欺とはなにかコマンド)から始まる。CP2O3はTIE219のために
、対応するWHAT FRAUD lEC217を生成する。それからTIE2
19はそのDEF213を評価することによってFRAUDの値を決定する。
こレヲ行うためにTIE219はKNOWING MISREPRESENTA
TION(故意の 不真実表示)から始めて、この階層内の他のDTERM21
1に関するDEF213を評価しなくてはならない。KNOWING MISR
EPRISENTATI○Nの評価はMISREPRESENTATION (
不真実表示)の評価を必要とする。このDTERM211の評価はそのDEF2
13におけるWHAT YES−No演算の実行という結果を生み、そしてTI
E219は″彼は真実でないことをなにかあなたに言いましたか?”というプロ
ンプトを出力する。もしユーザが″nO″ (い)え)と答えれば、MISRE
PRESENTATION(不真実表示)は偽であり、KNOWING MIS
REPRESENTATION(故意の 不真実表示)は偽であり、そしてFR
AUD(詐欺)は偽となり、したがってTIE219はユーザに詐欺は存在しな
いということを示すTRES227を返す。もしユーザが、”yes” (はい
)と答えれば、TIE219はDEFENDANT KNEW MISREPR
ESENTATION (被告 知っていた 不真実表示)を評価し、これは再
びユーザに対する質問という結果を生む。この質問に対する答えによって、評価
は続行するかあるいは完了となる。TIE219は、FRAUDに関して1つの
値を計算し終わるまで上記の仕方で進行する。
前記のように、エキスパートシステム202のユーザはHOWというユーザコマ
ンドを使って、エキスパートシステム202がどのようにしてFRAUDについ
てその値に到達したかを決定できる。“′彼は真実でないことをなにかあなたに
言いましたか?”と尋ねられたときに(MISREPRESENTATION(
不真実表示)の定義において)、ユーザが“no”と答えたと仮定すると、プロ
トタイプにおけるTIE219は下記の出力をすることによってHOW FRA
UD (どのように詐欺か)に応答する。
FRAUD (詐欺)は(KNOWING MISREPRESENTATIO
N AND DETRIMENTAL RELIANCE (故意の 不真実表
示AND損害の 依存性))であると定義されており、この場合(KNOWIN
GMI’5REPRESENTATION (故意の 不真実表示))はFAL
SE(偽)である。
前記のように、DP207はDTERM211に関するDESC205をDTE
RM211のDEF213の中に置き、そしてTIE219もまた、DTERM
211のDEF213を評価する際に受け取った外部値をDEF213の中にD
TERM211に関するDEF213からDESC205を取り出して出力し、
それから尋ねられているDTERM211の値を得るために必要なりEF213
内のDEF211を評価する。それからDTERM211はそれらの値と一緒に
出力される。もしユーザが更に質問したければ、HOW演算で出力されたDES
C205の中で指定されたその他のDTERM211についてHOW演算を繰り
返すだけでよい。
また前記のように、ユーザはある外部値の要求に対して、ある値の代わりにWH
V(なぜ)コマンドで応答することもできる。FRAUD (詐欺)の例のケー
スでTIE219が″彼は真実でないことをなにかあなたに言いましたか?1と
尋ねたときに、もしユーザがWHY(なぜ)と応答するとTIE219は:MI
5REPRESENTATI○N AND 5UBJECT KNEWMIS
REPRESENTATI○N(不真実表示AND本人 知っていた 不真実表
示)であると定義されているKNOWING MISREPRESENTATI
ON(故意の 不真実表示)の値を決定するためにMISREPRESENTA
TION (不真実表示)が必要である。
と応答し、そして質問を繰り返す。
再びWHVコマンドに応答するために使われる情報は、FRAUD (詐欺)を
定義するために使われた、階層内のDEF213に格納されているDESC20
5から得られる。もしユーザがこの時点で更に知りたければ、WHYコマンドに
応答して言われたDTERM211に対してHOWを適用することができる。
6、プロトタイプ実施例のLISP環境:図5このようにシェル201とシステ
ム202の構造と動作とについて概念的な概念を述べてきたので、第1のプロト
タイプの実現についての詳細な説明に論議を進める。
第1および第2のプロトタイプ実施例は両者ともLISPプログラム言語で実現
されており、LISP環境で実行される。LISPプログラム言語とLISP環
境は、プロトタイプおよび本番用のエキスパートシステムを実現するためにしば
しば使われており、またエキスパートシステム技術においてはよく知られている
。これらのプロトタイプ実施例に使われた固有のLISP方言はC0MM0NL
ISPであって、これはGuy L、5teele、Jr、著、C0MM0N
LISP、the Language、Digital Press、1984
年発行に述べられている。
こ1ではLISP環境とLISP言語について、プロトタイプの実施例の動作方
式を明瞭に理解するために必要とされるだけの説明をする。
まずLISP言語から始めるが、この方言は、データ処理とは反対に主として、
記号によるプログラム内で表現され記号処理に関係があるという点でFORTR
ANまたはPASCALといった言語とは異なる。LISPプログラムの基本的
なコンポーネントはアトムである。アトムは、ABCというような1つの記号ま
たは1つの定数である。これらのコンポーネントは、メンバーを持たないリスト
、あるいはアトムと他のリストを含むメンバーを持つリストを用いてプログラム
に編成される。リストはそのメンバーを括弧で囲むことによって作られる。すな
わち(ABC)は記号ABCという1個のメンバーを持ったリストである。LI
SPでは関数は、リスト内の最初の記号が関数を表し、その他のアトムはその関
数の引き数を表すリストとして現れる。例えばadd (加算)関数はLISP
では記号子によって表され、またリスト(+23)はアトム2と3に十演算を適
用すべきであるということを指定している。L I S Pインタプリタによっ
て評価されたときに1つの値を持つアトムまたはリストはいずれも形式(for
m)と呼ばれる。5および(+23)は形式であって、また記号ABCが1つの
値を持つならばそれも形式である。
LISPでは関数はDEFUN関数を用いて定義され、この関数ではリストの残
りの項目は関数名、その引き数、およびこの関数が返す値を定義する。例えば、
(defun f ive 05)は引き数を取らないで常に値5を返す関数を
定義する。
物事の間で、LISPプログラムはそのプログラムを構成している記号とリスト
とを処理することができる。関数定義は単にある種のリストであるから、LIS
PプログラムはDEFUNによって作成される新しい記号の名前としである記号
をDEFUNに与えることができ、それから新しく作成された関数を実行するた
めにこの記号を使うことができる。記号はそれ自身を記号または値のどちらかと
して表することができる。ある記号がLISPリストの中でそれ自身を1つの記
号として表現しているときには、その記号の先頭に′マークが付けられる。関数
を表す記号の場合、記号の値は関数である。しかしながら関数がその引き数と一
緒に1つのリストの中に置かれてそのリストが評価されると、その結果はその関
数の実行の値となる。こうして、’fiveは記号fiveを表しており、一方
fiveは上記のDEFUNによ。て定義された関数を表し、そして(five
)は関数fiveの実行の値、すなわち5を表す。
L I S PプログラムはLISP環境で書かれて、また実行される。プロト
タイプ実施例に使われたLISPプログラムはWang Laboratori
esInc、製のProfessional Computer用にGold
Hill Computers、Inc、によって作成されたものである。図5
は典型的なLISP環境501の概念的ブロック図である。環境56o1は2つ
の主要コンポーネント、すなわちLISP形式を評価するLISPインタプリタ
503と、1. I S P記号(SYM501)とそれらの定義(SYMDE
F509)とを格納するLISP記号空間505とを持っている。DEFUN関
数と他のいくつかのL工SP関数は新しいL43P記号を生成して定義するか、
あるいはこれらの関数がPされると、予め存在しているLISP記号を再定義す
る。その結果、LISPインタプリタ503は記号の評価子としてのみならず記
号の作成子、定義子、および再定義子としても見ることができる。
LISP環境501の動作は次の通りである。すなわち、LISP環境501の
ユーザが(five)というような形式を含むリストを入力すると、LISPイ
ンタプリタ503は、記号空間505の中で記号fiveの位置を捜し出し、そ
のSYMDEF509がなんであるかを決定し、それがらSYMDEF5o9を
解釈してf iveの値を計算することということによって、この形式を評価す
る。このケースでは、SYMDEF509はDEFUN式の評価によって生成さ
れた関数f iveに関するコードであって、またその解釈は値5を生成し、イ
ンタプリタはこの値5を(five)の値としてユーザに返す。
LISPインタプリタ503はSYM507とそれらの対応するSYMDEF5
09とを生成し、記号空間505にそれらを格納し、また記号空間505内でそ
れらの位置を捜し出すことができるがら、LISP環境501は他の言語では実
施の困難な、そしてエキスパートシステムシェルとエキスパートシステムの動作
には必須の演算を自動的に実行する。こういう理由でLISP環境501はプロ
トタイプのエキスパートシステムとエキスパートシステムシェルとを生成するた
めの好適な環境となっている。引き続く論議で分かるように、本発明のプロトタ
イプは記号生成演算、定義演算、および位置探索演算を十分に利用している。
7、第1のプロトタイプ実施例の概念:図6第1のプロトタイプ実施例では、エ
キスパートシェル201とエキスパートシステム202とのコンポーネントはL
I S P関数によって実現されている。図6はこれらの関数の概念を示し、
またこれらの関数を図2のコンポーネントとそれらコンポーネントの入力/出力
とに関連付けている。こうしてCP2O3を構成するLISP関数はCP2O3
というラベルを持った破線の枠内に含まれ、DP207を構成する関数はDP2
07というラベルの付いた破線の枠内にあり、またTIE219を構成する関数
はTIE219というラベルの付いた破線の枠内にある。TS215は1− I
S P記号とそれらの定義とを格納しているLISP記号空間505によって
第1のプロトタイプ内に実現されている。第1のプロトタイプ実施例のコンポー
ネントには、それらコンポーネントを構成しているLISP関数を実行し、それ
らコンポーネントによって生成されるSYM507とSYMDEF509とを記
号空間505の中に置き、そしてSYM507とそれらのSYMDEF509と
を操作するLISPインタプリタ503も含まれていることを理解すべきである
。
EXPERT603から始めると、EXPERT603はプロトタイプ内でCP
2O3の機能を実行する。EXPERT603は入力文字列を受け取り、それを
括弧で囲んで図6でCFORM605と名付けられているLISP形式を生成し
、そしてその形式(form)についてEVAL演算を実行する。LISPイン
タプリタ503がその形式(f o rm)を評価すると、EXPERT603
はその形式(f o rm)内の最初の記号をLISP関数7として取り扱い、
またその形式内の残りの項目をその名前付き関数のための引き数のリストとして
取り扱う。
EXPERT603に関して予期されている入力文字列は、DP207のための
コマンド、すなわちDEFINESREDEFINE、UNDEFINEと、T
IE219のためのコマンド、すなわちWHAT、HOWSASSUME、RE
SET、DEFINITIONSSAVE、WHY、およびRESTOREどで
ある。DEFINE、REDEFINEおよびtJNDEFINEは図2のDP
C204に対応しており、そして残りの文字列は図2のlEC217に対応して
いる。第1のプロトタイプ実施例においてはEXPERT603内に誤り検出が
ない。しかしながら商用の実施例ではEXPERT603は誤った入力を検出し
、またそれに応答するためのコードを含むことになろう。
図6から分かるように、DP207はLISP関数DEFTNE、REDEFI
NE、およびUNDEFINEによって第1のプロトタイプに実現されている。
EXPERT603がFRAUDというようftT E RM 206”E−持
ったDEFINEコマンドを受け取り、それを(DEFINE FRAUD)と
【2てLISPインタプリタ503に与えると、LISPインタプリタ503は
引き数FRAUDによって関数CADEFINEを呼び出す。DEFINEはユ
ーザからDESC205を要求し、そしてDESC205を使ってFRAUDに
関するDEFUN式を生成する。以下更に詳しく説明するように、この呼び出し
の結果、DEFUNが下記のように定義するFRAUDと名付けられたLISP
関数が得られる:(defun FRAUD O
(p r o g z
(push ’ FRAUD arg−stack)(AND (KNOWIN
G−MISREPRESENTATION)
(DERTIMENTAL−RILIANCE))(pop Arg−stac
k)
FRAUDを定義しているうちに、KNOWING、MISREPRESENT
ATIONとDETRIMENTAL−RELIANCEおよびそれらの定義さ
れる。ANDはその引き数にAND演算を実行する予め定義されたLISP関数
である。関数FRAUDによって返される値はAND演算の結果である。
LISP関数を表すLISP記号として定義されたDTERM211は以下の論
議ではTSYM615と名付けられており、またDEF213の本プロトタイプ
の実現であるそれらの定義はDEF’617と名付けられている。LISPイン
タプリタはDEFINE関数に応答してTSYM615とTDEF617とを生
成しながらそれらを記号空間505の中に置く。第1のプロトタイプのTDEF
617は図7に示しである。そこに示すように、各TDEF617は、TFNC
701と、TSYM615によって表されるLISP関数と、TDESC705
と、TSYM615の定義の情報源であったDESC205の修正されたコピー
と、そしてTSYM615に関してエキスパート202のユーザによって指定さ
れた最後のEXVAL703を含むTEXVAL703とを含んでいる。
DP207内の残りの関数はDEFINEと同じ仕方でEXPERT603から
呼び出される。RIDEFINEは初めに、再定義中のTSYM615に関する
TDEF617からTFUNC701とTDESC705とを除去するLISP
演算を使い、それからTDEF617内のTFUNC701とTDESC705
に関して新しい値を作成するためにDEFINEを呼び出す。UNDEFINE
はTSYM615の新しい定義を作成せずに、単にTFUNC701とTDES
C705とを除去する。
第1のプロトタイプ実施例601におけるTIE219の実現を続けることにし
て、LISPインタプリタ503はlEC217を表すCFORM605をEX
PERT603から受け取ると、CFORM605内に指定されているTIE2
19内の関数を実行する。TIE219内の関数が実行されると、これらの関数
はTSYM615から作られた形式(TFORMS639)をインタプリタ50
3に与え、このインタプリタはこれらの形式を評価してその結果(TFORMR
ESULT)を、実行中の関数に返す。
TIE219内の関数は、TIE219、ARG−5TACK635、TERM
S−5TACK613、およびSYM−BOUND−LIST内のデータ構造を
使う。ARG−5TACK635から始めると、ARG−5TACK635は、
それの定義に使われるTSYM615の値が計算される間、TSYM615を格
納するために使われる。前記の手続きFRAUDに関するコードで分かるように
、記号FRAUDは、FRAUDを定義するAND演算が実行されてその後でA
RG−STACKからホップされる前に、ARG−5TACKにブツシュされる
。
RERMS−3TACK613はTSYM615のスタックである。このスタッ
クはTSYM615のTDEF617がいつ生成されたかによって順序付けられ
ており、生成されたそのTDEF617を持つ最初のTSYM615を最下部に
、また最後のTSYM615を最上部にしている。以下に詳しく説明するように
、最後のTSYM615は通常、そのTDEF617が定義の階層の最上部にあ
るTSYMである。SYM−BOUND−LIST637は、TSYM615に
割り当てられたEXVAL225を現在持っているこれらのTSYM615のリ
ストである。
TIE219内のLISP関数の論理をWHAT関数619がら始めるとして、
この関数はEXPERT603へのWHATコマンドに応答して実行される。こ
のコマンドはWHAT DTERM611という形式(f o rm)を持って
いる。
FRAUNの場合、そのコマンドはWHAT FRAUDとなり、EXPERT
603はこれを(WHAT FRAUD)に変換する。WHAT関数619は初
めに、LISP関数を使ってその引き数がTSYM615であるがどうかを決定
し、もしそうであれば関数名である記号を引き数として取るもう一つのLISP
関数を使ってその関数、この場合はFRAUDを呼び出す。その結果、FRAU
Dに関するTDEF617内のTFUNC701が実行される。このTFUNC
701が実行されると、MISREPRESENTATIONに関するTFUN
C701と、DETRIMENTAL−RELIANCEに関するTFUNC7
01とはFRAUDの値が決定されるまで実行される。所定のTSYM615に
関するTFUNC701が実行されると、その所定のTSYM615の値を見つ
けるために必要などのTSYM615に関するTFUNC701でも実行される
。
必要なTFUNC701のすべてが実行されると、これらの実行の結果得られた
値はTRES227としてシステム202のユーザに返される。もしそのTFU
NC701がEXVAL225を必要とするTSYM615が既にこのような値
を持っていれば、このTSYM615はSYM−BOUND−LIST637上
にあって、TFUNC701はTSYM615に関するTDEF617内のTE
XVAL 703 ヲ使う。そうテナケレlf、TFUNC7011fEXVA
L REQを発生して、ユーザからEXVAL225を得る。こうしてLISP
インタプリタ503と共にWHAT関数は、その定義が外部値によって決められ
たように階層の最上位レベルにあるTSYM615の値を決定するための推論エ
ンジンとして働く。更に、WHAT演算の結果として呼び出されたTFUNC7
01がアクティブになっている限り、その対応するTSYM615はARG−5
TACK635上にある。
HOW関数623はTSYM615を指定するHOWコマンドに応答して実行さ
れる。HOW関数623は引き数としてこのTSYM615を取り、またTSY
M615に対応するTFUNC701を定義するためにDEFUNで使われたリ
ストを得るために、引き数TSYM615を有するもう一つのLISP関数SY
MBOL−FUNCTI○Nを使い、そしてTFUNC701内の第3のりスト
内の第3のエレメントを得るために、他のLISP関数を使う。前記のFRAU
D関数から分かるように、このエレメントは関数の値を導き出す演算を定義する
リスト、すなわちFRAUDにおいてはリスト(AND (KNOWING−M
ISREPRESENTATION) (DETRIMENTAL−RELIA
NCE))である。HOW関数はこのリストを受け取り、TIE219のDEF
INITION関数を使ってHOWコマンドに使われたTSYM615に関する
TDESC705を表示し、それからTFUNC701から検索されたリスト内
のTSYM615を評価し、そして適当な説明文のテキストと共にその結果を出
力する。
エキスパート202のユーザは、TSYM615の評価中に出力されるEXVA
L REQに応答してEXPERT603またはTIE219のいずれかにWH
Vコマンドを入力できる。WHY関数は、引き数としてTSYM615を用いて
も用いなくても呼び出すことができる。第1のケースでは、この関数は、現在評
価中のTFUNC701に対応するTSYM615であって、その評価がユーザ
が応答している可能性があるEXVAL REQを生成する、現在ARG−5T
ACK635の最上部にあるTSYM615に対して働き、また第2のケースで
はこの関数はユーザから与えられるTSYM615に対して働く。いずれのケー
スでもその次のステップはARG−3TACK635内でその前のTSYM61
5の位置を捜し当てることであって、このTSYM615は、WHYによって処
理中のTSYM615に対応する関数の評価に導くように評価したTFUNC7
01に対応するTSYM615である。その前のTSYM615が存在しなけれ
ばWHVコマンドは無意味となり、対応するメツセージがユーザに出力される。
その前のTSYM615が存在すれば、適当な説明文のテキストと共にその先行
TSYM615に関する定義がDEFINITI○N関数を続けることにして、
この間数を呼び出す、EXPERT603へのコマンドは引き数としてTSYM
615を持つことも持たないこともあり得る。第1のケースではTDEF617
内のTDESC705が出力され、第2のケースではTERMS−5TACK6
13上のすべてのTSYM615に関するTDESC705が出力される。
ASSOME関数は、TSYM615と値とを指定するASSUMEコマンドニ
ヨっテ呼び出すttル。このTsYM615はそのTFUNC701がEXVA
L225を要求するものでなくてはならない。ASSUMEは初めに、WHVコ
マンドが成功する前にTSYM615が再評価されるようにARG−5TACK
635を空にし、それからTDEF617内のTEXVAL703を引き数とし
て受け取った値にセットし、そしてTSYM615をSYM−BOUND−LI
ST上に置いてこれがTEXVAL703を持っていることを示す。
RESET関数はRESETコマンドによって呼び出され、このコマンドはTS
YM615を指定することもしないこともある。第1のケースではTSYM61
5に対応する、TDEF617内のTEXVAL703のみがリセットされ、第
2のケース出はすべてのTEXVAL703がリセットされる。RESET関数
は前に述べた理由から初めにARG−3TACK635を空にする。もしTSY
M615が指定されれば、RESET関数はTSYM615からTEXVAL7
03を解放してそれをTDEF617から効果的に除去し、そしてSYM−BO
UND−LIST637からTSYM615を除去する。もしTSYM615が
指定されなければ、RESETはSYM−BOUND−LIST637上のすべ
てのTSYM615について上記の演算を実行する。
5AVE関数は、(−レ(’tL〕T S YM 615 +:関するTDES
C705を伴った各TSYM615ごとに1個のDEFINEコマンドを含むフ
ァイルを作成する。DEFINEコマンドは、TSYM615がTERMS−5
TACK613内に現れる順序で現れる。5AVEはTERMS−5TACK6
13内の各TSYM615ごとにこのファイルに次のもの、すなわち文字列DE
FINEと、TSYM615を表す文字列と、TSYM615に関するTDES
C705を表する文字列とを出力することによって働く。この結果得られるファ
イルはTDESC705のベースになっているDESC205がDP207に入
力された順序でTDESC705を含んでいる。
RESTORE関数は前にセーブされたTSYM615を復元する。これはファ
イルに対してLISPのロード演算を実行することによってこれを行う。このロ
ード演算ではファイル内のLISP記号が評価される。このケースでは、評価の
結果、復元されたファイル内の、DEFINEコマンドで指定されたTSYM6
15とそれらのTDEF617とが生成される。
10.DEFINE607の詳細な説明:図8図8はDEFINE関数とそれに
よって再帰的に呼び出される関数とが所定のセットのTSYM615に関するT
DEF617の階層をどのようにして生成するかを示す。前述のように、DEF
INEがTDEF617の階層を生成する仕方は各TERM206が完全に定義
されることと、1つの所定のTERM206がただ1つの定義を持つこととを保
証する。
図8はDEFINEと、DEFINEによって呼び出される主な関数と、TSY
M615とTDEF617とを生成するためのデータがこれらの関数間を流れる
仕方とを示す。
DEFINE607はTERM206からDTERM211を生成する。DEF
INEがDTERM211を返すと、DTERM211に対応するTSYM61
5とTDEF6]、7とが生成される。DEFINE607はEXPERT60
3とRESTORE633とによって呼び出され、更にこれは自分自身によって
、またPROCESS−FUNCTION811によって再帰的に呼び出される
。
EXPER,T603はDEFINE記号と、定義すべきTERM206とを含
むCFORM605を備えており;RESTORE633はDEFINE記号と
、予めセーブされたDTERM211のコピーであるTERM206と、そのD
TERM211に関するTDESC705のコピーとを含むCFORM605を
備えている。DEFINE607が再帰的に呼び出されると、その入力はもう一
つの定義さるTERM206のDESC205に使われるTERM206になる
。
一般的に言って、TERM206は単一の記号である。しかしDESC205が
Ca5e文を含むときには、TERM206はリストになることがある。このケ
ースでは、DEFINEはC0NVERT809を呼び出してリストをLISP
形式に変換し、それから再帰的に自分自身を呼び出して未定義のTERM206
のおのおのをLISP形式で定義する。次にDEFINE607はTERM20
6がLISP記号であるかどうかを決定する。もしLISP記号でなければDE
FINE607は単にTERM206を変更しないま1で返す。もしLISP記
号であれば、DEFINE607はTERM206がRESTORE633によ
って与えられたものであるかどうか決定する。もし与えられたものであれば、D
EFINE607はTERM206とTDESC705のコピーとをGETDE
F805に与え、そしてGETDEF805によって、すなわちそのエレメント
がTERM206であるリストによって返された値を返す。もしTERM206
がRESTORE603によって与えられなかったのであれば、DEFINE6
07はTERM206に関するTSYM615が既に存在しているかどうか、あ
るいはTERM206がリテラルであるかどうか(すなわちTDESC705の
コピーが存在しなかったかどうか)を決定する。どちらかのケースであれば、D
EFINEはそのエレメントがTERM206であるリストを返す。もしその他
のケースがいずれも真でなかったとすれば、TDESC705のコピーなしでD
EFINE607によってGETDEF805が呼び出される。
GETDEF805はDEFINE607から未定義の項(UTERM)803
を受け取る。そしてその項に関するTDESC205のコピーも受け取ることが
あり得る。第1のケースではGETDEFはユーザからDESC205を取得し
、第2のケースではそれは単にTDESC705を使う。次にGETDEFはC
0NVERT809を呼び出してTDESC705をLISP形式のCDESC
807に変換する。次に、UTERM803とCDESC807は、UTERM
803に関1.てTFUNc701を返すPROCESS−FUNCTION8
11に与えられる。最後に、GETDEF805はTSYM615をTERM−
3TACK613上に置き、UTERM803に対応するDTERM211から
なるリストをDEFINE607に返す。
C0NVERT809はDEFINE607またはGETDEF805によって
呼び出される。これはその呼出し元からDESC205を受け取り、それをLI
SP形式、CDESC807にi換する。C0NVERT809はこのCDES
C807を呼出し元に返す。PROCESS−FUNCTION811はUTE
RM803とCDESC807とを受け取り、UTERM803をDEFINE
−FUNCTION813i:渡し、DEFINE−FUNCTION813か
らTFUNC701を受け取り、TFNC701をGETDEF805に返し、
そしてUTERML815を生成する。このUTERML815はまだ定義され
ていなかった、CDESC807からのUTERM803のリストである。それ
からPROCESS−FUNCTIONはUTERML815上の各UTERM
803ごとにDEFINE607を呼び出す。最後に、DEFINE−FUNC
TION813はTFUNC701に関するDEFUNを生成して評価し、それ
によってTFUNC701を生成し、このTFUNCをPROCESS−FUN
CTION811に返し、こんどはこのPROCESS−FUNCTIONがT
FUNC701をGETDEF805に返す。
上記の説明から理解できるように、DEFINE607の再帰呼出しは、呼び出
されたDEFINEに関するTERM206を定義するために必要とされるTE
RM206のすべてが定義し終わるまで続けられる。またこれらTERM206
がすべて定義し終わった時点でのみ、DEFINE607はTERM206に対
応するDTERM211を返す。シェル201のユーザは所定のTERM206
を定義するために必要なすべてのTERM206を定義しなくてはならず、また
TERM206にはただ1つの定義を与えることができるだけであるから、DE
FINE607は1つの項206に関する1セツトの定義が完全であって矛盾が
ないことを保証している。
11、プロトタイプ実施例2:図9
プロトタイプ実施例2は、ユーザインタフェースの改善とユーザエラーからのよ
り強力な回復とを含め、プロトタイプ実施例1に比べて多くの改良点を持ってい
る。プロトタイプ実施例2に含まれる最も重要な改良点の中には図9の概念に示
したTDEF617とWHATについてのプロトタイプ1とは別の実施例がある
。
TDEF901はTDEF617が含んでいたと同様にTDESC705とTE
XVAL703とを含んでいる。これはTFUNC701を含まないで2つの新
しいフィールド:TFORM903とTTYPE905とを含んでいる。この変
更は、プロトタイプ実施例1にあった難点、すなわち定義すべきTERM206
が既に記号空間505内のなにか他のLISP記号に対応しているかもしれない
ということを解消するために行われた。こういうケースではTERM206に関
してDEFINE607によって生成された定義はその記号の、以前から存在し
ている定義に取って替わることになっていた。この問題はプロトタイプ実施例2
では、それ自身は関数として実行可能ではないがTIE219内のEVALUA
TOR関数911によって実行できるLISP形式、TFORM903にTFN
C701を取り替えることによって解決される。TTYPE905はTFORM
905がEVALUATOR911によって実行されるときに返される値の種類
についての情報を含んでいる。
図9の残りの部分は、プロトタイプ実施例2におけるWHAT関数907とEV
ALUATOR911との間の関係を示す。WHAT907は以前と同じよう+
:ExpERT603からWHAT CFORM60sを受け取ルカ、単t、−
WHATに引き数として与えられたTSYM615についてのLISP評価演算
を実行する代わりに、TSYM615に関するTDEF901からのTFORM
903を評価演算子911に与え、こんどはこの評価演算子がTFORM903
で指定された演算を実行するためにLISP形式を生成して、これらのLISP
形式をLISPインタプリタ503に与える。LISPインタプリタ503はL
ISの結果をTRES227にして、これをWHAT907に返す。こんどはW
HAT907がこのTRES227をユーザに返す。
12、定義ベースのエキスパートシステムの更なる発展本特許出願の前半の部分
で述べた定義ベースのエキスパートシステムの更なる経験と発展は、定義ベース
のエキスパートシステムが以前に考えられてしまたよりも広汎に適用可能である
ことを示している。更なる発展はまた項の定義で指定できる多数の新しい演算の
生成と、新しい値の型の開発とを生む結果となってνする。
以下の追加資料は初めに、定義ベースのエキスパートシステムがアプリケーショ
ン開発システムとしてどのように使えるかということと、新しい演算のいくつか
がどのようにしてこういう定義ベースのエキスパートシステムの有用性を大ν)
に増加させるかということとを説明し、それからその他の新しい演算と新しい値
の型とを開示する。
13、定義ベースのエキスパートシステムを使りたアプリケーション開発システ
ム
歴史的には、コンポーネントのアプリケーションは、COB OLとかCといっ
た言語と、アプリケーションが開発されているコンポーネントシステムとについ
て専門の知識を持ったコンピュータプログラマによって、こういった言語で書か
れてきた。この事実は多くの好ましくない結果をもたらした。第1に、標準のコ
ンピュータ言語でアプリケーションを書くことは骨の折れる工程であって、簡単
なアプリケーションでさえ数千の命令を必要とする。第2に、標準のプログラム
言語でプログラミングするために必要な技術的熟練度がプログラマを不足にし、
また高価にしてきた。第3に、そして恐らく最も重要なことであるが、プログラ
ム言語とコンピュータシステムについては理解しているが、アプリケーションプ
ログラムが遂行しようとしている仕事については理解していないプログラマと、
仕事については理解しているがプログラム言語とコンピュータシステムについて
はなにも理解していないアプリケーションプログラムを企画したユーザとの間に
、情報伝達の困難さが存在していた。その結果、ユーザが望むように動作させる
までになん回もアプリケーションプログラムを書き直さなくてはならないという
ことが頻繁に起こっている。
上記の問題が近年になって、仕事志向のアプリケーション開発システムの創作へ
と導くことになった。すなわちこれらのシステムはアプリケーションが意図する
分野で働く人々によく知られている言葉でそのアプリケーションを記述する。
こういうアプリケーション開発システムの利点は明らかであって:多くの場合、
これらのアプリケーションは、それらのユーザによって開発可能であり、もはや
プログラマを必要としない。プログラムがなお必要となる場合でも、仕事志向の
アプリケーション開発システムの使用により、設計過誤の確率が減り、プログラ
マとユーザとの間の情報伝達が簡単になり、そして書かなくてはならないコード
の量は大巾に減少する。
本特許出願で述べた定義的エキスパートシステムはこういった仕事志向のアプリ
ケーション開発システムの一例である。従来技術のルールベースのエキスパート
システムはしばしば専門のナレッジエンジニアとコンピュータプログラマを必要
としたが一方、本特許出願定義ベースのエキスパートシステムは−まとめの知識
を定義の階層として表現できる人であればだれでも開発することができる。例え
ば、本特許出願に示すように、詐欺の法的定義を理解している法律家なら、詐欺
が行われたかどうかを素人が対話的に決定できるようにする定義的エキスパート
システムを開発することができる。同様に、申込者に融資を承諾すべきかどうか
をどのようにして銀行が決定するかを理解している銀行家であれば、融資を承諾
すべきかどうかを対話的に決定する定義的エキスパートシステムを開発すること
ができる。
仕事嗜好のアプリケーション開発システムとしての定義的エキスパートシステム
の有用性は、定義が属している項が評価されるときに値を取得することに加えて
コンピュータシステムに演算を実行させる、定義内のいくつかの新しい演算子に
よって大いに向上した。これらの新しい演算子の追加によって定義的エキスパー
トシステムは、高度に対話的なアプリケーションを開発するための汎用のアプリ
ケーション開発システムになった。こういうアプリケ−シコンの例としては゛′
自動不動産業者”と呼ばれるようなものがある。このアプリケーションは、ユー
ザのスペースの要求条件、建築上の好み、および財政状況に関する情報を与える
ように対話的にユーザをプロンプトし、それから現在売り出されていてユーザの
要求条件に合う家屋のイメージをユーザに示す。
14、“″副作用”演算子
前述の特許出願で説明したように、項推論エンジン(TIE)219(図2)が
WHAT推論エンジンコマンド217に応答しである特定の定義された項(DT
ERM)211に関するエキスパート応答を生成する場合には、この推論エンジ
ンは定義された項211の定義(DEF)213を評価することによってそのエ
キスパート応答を生成する。もしその定義が他の定義された項211を含んでい
れば、これらの項に関する定義213は、その特定の定義された項211に関す
る定義の階層内のすべての定義された項211が評価されてしまうまで評価され
る。上記から分かるように、すべてのDEF213は、定義が評価されるときあ
る値を返なくてはならない。しかしながら1つの定義の評価は1つの値を生成す
るよりも多くのことをすることがある。例えば、前述の特許出願の中で開示され
たようなASK演算子は次の形式を持っている:ASK NUMBER”プロン
プト文字列”この演算子を含む定義213を持っている項211が評価されると
、“プロンプト文字列”によって指定されたプロンプトが表示装置に出力され、
このプロンプトに対するユーザの応答がこの演算子の値として返される。このケ
ースでは、項211を評価することは、ユーザの応答によって指定された値を返
すということだけでなく、表示装置へのプロンプトの出力と入力された値の受信
とを含む表示関連の演算という動作をも生じる結果となった。これらその他の演
算は、定義213の評価の副作用であるから一般に“副作用”と呼ばれる。
定義ベースのエキスパートシステムの開発を更に続けて行くうちに、自分で作り
出す副作用が主要目的となっている演算子を含むことが有益であることが分かっ
てきた。目下の好適な実施例では、これらの演算子のおのおのは、演算が成功し
たときには論理(iTRUE(真)を定義するために使われる項を与え、そうで
ないときにはエラーを表示する。更に、この演算に必要な情報はそれ自身、1つ
の項211によって指定できる。目下の好適な実施例のこれらの演算子には下記
のものがある:
C0PYはこの演算子で指定された1つのファイルをそこに指定されたもう一つ
のファイルにコピーする。
DELETEはこの演算子で指定されたファイルを削除する。
DISPLAYは表示装置に情報を表示する。その情報源は演算子で指定された
テキスト文字列か、テキストファイルか、あるいはイメージのこともある。
PRINTはこの演算子で指定されたテキスト式を演算子で指定されたファイル
に出力する。
RENAMEは、この演算子で指定されたファイルを再命名する。
DISPLAY演算子の詳細な論議は、上記の演算子に関連する原則を具体例で
示すのに役立つであろう。
15、DISPLAY演算子の詳細な論議以下の説明では、DISPLAY演算
子の構文と関数の論議の後にこの演算子の実現についての論議を行う。DISP
LAY演算子の構文は下記の規約を用いて示される:
1、大文字の名前は項211または式を示す。式は項211を含めて、ある値を
持つものである。
2、角括弧はオプション項目を示す。
目下の好適な実施例では、DISPLAY演算子の2つのクラスがある。この演
算子の1つのクラスで定義された項211の評価はテキストの表示という結果を
生み、別のクラスによる場合はイメージの表示という結果を生じる。第1のクラ
スから始めると、DISPLAYおよびDISPLAY FILEという2個の
演算子がある。DISPLAY演算子の場合、表示されるテキストは定義ベース
エキスパートシステムにとって内部のものであるが、DISPLAY FILE
の場合は、そのテキストはMSDOSファイルに含まれている。
DISPLAY演算子の構文は次の通りである:display TEXT−E
XPRESSION[TEXT−EXPRESSION、 、 、 )
こうしてDISPLAYは1つ以上の表示すべきテキスト式を指定する。テキス
ト式は、値としてテキスト文字列を生成する定義ベースのエキスパートシステム
におけるいかなる構文要素であってもよい。こうして式は、1つの定数であるが
、テキスト式と評価される1つの項211であるか、定数と項211とそしてテ
キスト文字列という結果を生む演算子との組合せであるかである。もちろん他の
定義におけると同様に、もしDISPLAY演算子内の項211がまだ定義され
てなかった場合には、定義プロセッサ207がその項に関する定義を要求する。
例えば、下記の表示演算子:
display”Hi”
で定義されたSAY HIという項211は、評価されると表示装置上に”Hi
”と表示されるであろう。
DISPLAY FILEの場合は、テキストは定義ベースのエキスパートシス
テムの外部のMSDOSファイルに含まれている。DISPLAY FILEの
構文は次の通りである。
display file TEXT−EXPRESSIONこの演算子の場合
、TEXT−EXPRESSIONの値はMSDOSテキストファイルの名前で
なくてはならない。この演算子で定義された項211を評価するとTEXT−E
XPRESSIONによって識別されるファイルの内容が表示装置に表示される
。
イメージに関する2つの表示演算子のうちの第1のものはDISPLAY PI
CTUREであって、これは多くの標準的イメージフォーマットの中の1つでM
SDOSファイルに格納されているイメージを表示する。その構文は次の通りで
ある:
display picture TEXT−EXPRESSIONCSIZE
〕
TEXT−EXPRESSIONの値ハソノイメージを含んでいるMSDOSの
ファイルの名前でなくてはならない。5IZEはイメージの最初のサイズを決定
する4つの値、すなわちtiny(とても小さい)、small(小さい)、n
ormal(普通)、およびlarge (大きい)の中の1つを持つことがで
きる。この演算子で定義された項211が評価されると、そのファイル内のイメ
ージが表示装置上に現れる。
イメージに関する第2の表示演算子は、PC−WIISと呼ばれるWangLa
boratories、In仁イメージ管理システムによって提供されるイメー
ジを表示する。PC−WI ISは、MSDOS WINDOWS表示管理シス
テムを実行しているIBM PC型のパーソナルコンピュータ用に実現されてい
る。この演算子は次の構文を持つ′d i sp l ay ”*WI 工IS
*″TEXT−EXPRESSI○Nこのケースでは、TEXT−EXPRES
SIONの値はPC−WIISイメージファイルのバス名でなくてはならない。
この演算子によって定義された項211が評価されると、PC−WIISはその
ファイル内のイメージを表示装置に表示する。
アプリケーションで前に論議した演算子のような副作用演算子は、LISP環境
501 (図5)に格納され、LISPインタプリタ603によって実行される
LISP関数によって実現されている。LISP環境501は、MSDOSファ
イルをオーブンし、クローズし、読み取り、削除し、また所定のMSDOSファ
イルが存在するかどうかを指示する内蔵型のLISP関数を含んでいる。これら
の関数は、DELETE演算子、RENAME演算子、DISPLAY演算子、
およびDISPLAY FILEに関するLISP関数を実現するために使われ
る。このほかの関数は、MSDOSによって実行すべきプログラムとそのプログ
ラム用のパラメータとを指定する内蔵型のLISP sys:dos関数を用い
て実現される。LISPインタプリタがsys:dos関数を実行すると、その
結果はMSDOSへのソフトウェア割込みとなり、MSDOSはLISPインタ
プリタの実行を中断して、sys:dos関数で指定されたプログラムを実行す
る。sys:dos関数で指定されたプログラムの実行が終わると、LISPイ
ンタプリタの実行が再開される。
イメージに関するDISPLAY演算子はsys:dosの使用例としては役立
つであろう。DISPLAY PICTUREのケースでは、sys:dosに
よって実行されるプログラムは表示すべきイメージのファーマットを決定し、そ
れからイメージを表示する。表示後、LISPインタプリタの実行が再開される
。PC−WIISイメージを表示するために使われるDISPLAYのこのバW
S表示管理プログラムを実行し、それからPC−WI ISイメージシステムを
初期化するために必要とされるようにMSDOS WINDOWSからPC−W
IISを実行し、そしてその上で本発明の定義ベースのエキスパートシステムを
MSDOS WINDOWSから実行するということを前提としている。これら
の状況下ではLISP sys:dos関数はsys:dos関数で指定された
プログラムをMSDOSウィンドウズの下で実行するという結果を生む。好適な
実施例では、sys:dos関数で指定されたプログラムは単に、この関数で指
定されたイメージファイルをオーブンするPC−WIISルーチンを呼び出し、
表示装置にイメージを表示する、もう一つのPC−WIISルーチンを呼び出し
、それから、イメージファイルをクローズする3番目のPC−WIISJレーチ
ンを呼び出してからそれを返すということによりユーザの打鍵入力に対する応答
を行う。返却すると、LISPインタプリタは再び続行される。前述の自動不動
産業者アプリケーションでは、家屋のイメージはPC−WIISによって管理さ
れていて、DISPLAY”*WIIS*”演算子がイメージの表示を行わせる
。
16、CALL演算子
CALL演算子は、この演算子によって定義された項211が評価されるときに
呼び出される非LISP関数を指定する。この関数によって返される値がその項
の値となる。前記のことから明らかなように、非LISP関数は、主としてその
関数が返す値のためか、その関数の実行によって生じる副作用のためか、そのど
ちらのためでも呼び出すことができる。この演算子は次の構文を持っている二c
all TEXT−EXPRESSON[、using 5PEC−LIST〕
(、returning NUMBER−3PECITEXT−EXPRES
SIONは評価されたとき、呼び出されている非LISP関数の名前を生成しな
くてはならない。この関数は、Cプログラム言語のインタフェース規格に従う関
数ならいかなる関数でもよい。5PEC−LISTは、呼び出されている非LI
SP関数のための実引き数の値を指定する式のリストである。好適な実施例では
、式はスカラー値または文字列値を持たなくてはならない。非LISP関数が数
学的関数であるとき、その関数が返す値の型はNUMBER−SPECを使って
指定できる。選択できる型は、double (倍精度)、float(浮動少
数点)、int (整数)、long (長精度)、unsigned int
(符号なし整数)、およびunsigned long (符号なし長精度整
数)である。省略値はint (整数)である。
好適な実施例では、呼出し演算子は、その呼出しのためにオペレーティングシス
テムの介入が必要でないときにLISPインタプリタが非LISPプログラムに
呼出しを行うことを可能にする外部プログラムインターフェースを用いて実現さ
れる。この外部プログラムインターフェースは、呼出し演算子で指定されたすべ
ての関数に関する実行可能コードと、その呼出しをセットアツプして実行する実
行可能コードとを含むEPl、EXEファイルを含んでいる。単に、これらの実
行可能コードをEPl、EXEにリンクするリンカ−を使うことによって新しい
関数がこのEPl、EXEファイルに追加される。好適に実施例における呼出し
のセットアツプと実行は、LISPインタプリタが拡張メモリ内で保護モードで
実行されるのに対してEPl、EXE内の実行可能コードは基本メモリ内で実モ
ードで実行されるという事実によって複雑にされる。したがって、呼出し演算子
によって定義された項211が評価されると、プロセッサは保護モードから実モ
ードに切り替えなくてはならずまた、呼出し演算子で指定された関数を呼び出す
EPl、EXE内のコードはどれでも必要な型の会話をそれがそうするように実
行しながら実引き数の値を拡張メモリから基本メモリヘコピーしなくてはならな
い。返却時には、この逆が起こる。すなわちEPl、EXE内のコードはどんな
型の会話でもそれがそうするように実行しながら実引き数の値と返却値とを基本
メモリから拡張メモリヘコビーしなくてはならずまたEPl、EXEからの返却
時には、プロセッサは実モードから保護モードに切り替えなくてはならない。
17、テーブル環およびテーブル値
本出願の親出願に述べたような定義ベースのエキスパートシステムは、論理値、
算術値および文字列値を有する項211を許し、またこれらの値型を含む演算を
定義した。こ)に述べる改良された定義ベースエキスパートシステムは更に、テ
ーブルおよびテーブル内のフィールドとしての項211の定義とテーブル値につ
いての演算とを許している。1つのテーブルは行と列とに配列されている。各列
はおのおの1つの項211によって指定され、また列の1つに含まれる値は所定
の行を選択するキーとして役に立つ。例えば、CLIENTSと呼ばれる項21
1は、NAME、ADDRESS、および置EPHONEという項211によっ
て指定される列を持ち、また各クライアントごとに1つの行を持つこともできよ
う。1つのクライアントのための行は次のように見えるであろう:NAME A
、DDRESS PHONESmithJohr+ 303W、First S
L、New York、hJY 301−666−5555もしNAMEがキー
として役立つならば、行は’Sm1thjohn”によって指定できるであろう
。
改良された定義ベースのエキスパートでは、1つの項は2種類のテーブルの中の
1種類を表することができる。第1の種類は基本テーブルである。基本テーブル
は実際にデータ値を含んでいる。データ値は基本テーブルの定義213の中で指
定できるか、ASK演算子によってユーザから取得できるか、あるいは外部ファ
イルから取得できる。第2の種類は間合せテーブルである。間合せテーブルは、
基本テーブルまたは別の間合せテーブルから間合せ演算によって生成されるテー
−フルであ;b。例えば、f−フルNEW YORK CLIENTSi:LA
DDRESSがNew York、N¥を指定しているすべての行をCL4EN
TSがら抽出する間合せ演算を実行することによってCLIENTSから定義で
きょう。
テーブル演算子はどちらの種類のテーブルにも使用できる。これらの演算子には
下記のものがある:
項211によって指定された1つのフィールドの値を1つの行から取得するため
の探索演算子;
所定の項211によって指定されたテーブル内のすべてのフィールドから導き出
される値を得るための集計演算子;
所定の項211によって指定されたテーブル内のすべてのフィールドから導き出
される論理値をえるための計量演算子。
以下の説明では初めに基本テーブルの定義を扱い、次に間合せテーブルの定義を
扱い、最後にテーブル演算子を取り扱う。
18、基本テーブルの定義
好適な実施例では、その値として基本テーブルを持っている項211を定義する
ために使われる構文は、下記の数値キーフィールドを使用する基本テーブルまた
は文字列キーフィールドを使用する基本テーブルを定義することができる:ta
ble with number key NUMBER−TERM(数値キー
NUMBER−TERMを持つテーブル)table with text k
ey TEXT−TERM(テキストキーTEXT−TERMを持つテーブル)
数値キーフィールドを持つ基本テーブルのケースでは、NUMBER−TERM
はぞの数値がキーとして使われるテーブルの列を識別する項211である。また
テキストキーフィールドを持つ基本テーブルのケースでは、TEXT−TERM
はそのテキスト値がキーとして使われるテーブルの列を識別する項211である
。CLIENTSを定義するテーブル演算子は次のように見える:table
with text key NAME(テキストキーNAMEを持つテーブル
)このテーブル内の列を識別する項211は、FIELD OF演算子によって
定義される。その構文は値が定義213で指定されるか外部から得ら1するがど
うかに依存する。第1のケースではその構文はfield of TABLE−
TERM、values VALUE−LIT
(TABLE−TERMのフィールド、値VALUE−LIST)となる。TA
BLE−TERMはテーブル値を表す1つの項211であり;vALUE−LI
STの中の値は定義されている項211によって識別される列に含まれた値によ
って必要とされる型を持つ定数である。定義されるフィールドがテーブル定義に
おいてキーとして指定された場合には、そのリスト内の値の数がそのテーブル内
の行の数を決定する。例えばCLIENTSのケースでは、フィールドNAME
は次のように定義されるであろう:field of CLIENTS、val
ues ”Sm1th、Adam””Smi th、J ohn″ ”Sm i
t h、 Da v i d”は3つの行でCLIENTSテーブルを定義す
る。
あるテーブルの1つの列に関する値を外部から取得すべきであると指定するため
の構文は下記の通りである:
f ie Id of TABLE−TERM、ask [WUOTED−TE
XTc、for every TABLE−OR−QUERY−EXPRESS
ION〕〕〕
再びTABLE−TERMは、定義される項211が1つの列を指定する基本テ
ーブルに関する項211である。”a s k’は、指定された列に関する値は
端末のユーザから対話的に取得すべきであるということを示す。QUOTED−
TEXTは、ユーザが尋ねられるとき−に出力すべきプロンプト文字列を指定す
る。もしこれ以上なにも指定されなければ、定義ベースのエキスパートシステム
はなにかのプロンプトとその行に関するキーフィールドの値とを出力し、ユーザ
の入力を持つ。例えば、ADDRESSは次のように定義されるであろう:fi
eld of CLIENTS、ask”What is the addre
ss of” (CLIENTSのフィールド、 〜のアドレスはなにが′。
と尋ねる)
CLIENTSの各行ごとに、このエキスパートシステムはそれぞれの行に関す
るNAMEの値を伴ったプロンプトを出力し、そしてユーザがアドレスを与えて
くれるのを持つ。以下更に詳しく説明するように、入力はオプションの“for
every TABLE−OR−QUERY−EXPRESSION″によって
特定の基準を満たす行に限定できる。例えばCLIENTSの中のADDRES
Sは次のように定義できよう:
field of CLIENTS、ask”Please 1nput th
e adciress of″、for every CLIENTS whe
re NAME is 3m1th、John″(CLIENTSのフィールド
、NAMEが’5m1th、John”であるすべてのCLIENTSについて
゛そのアドレスを入力してください”と頼む)これは、John Sm1thの
アドレスについてのみユーザが尋ねられるようにしており、そのアドレスはその
NAME値として“’Sm1th、John”を含む行のADDRESSフィー
ルドに書き込まれる。前述のことから分かるように、所定のテーブルはASKを
使って記入された列と、VAI、UESを使って記入された行とを持つことがで
きる。もしテーブル定義におけるキーとして指定されたフィールドに記入するた
めにASKが使われる場合は、テーブルのサイズは記入されるフィールドの数に
依存する。
更に、1つの項211はMSDOSファイルに格納された1つのテーブルとして
定義することもできる。このケースでは定義213は次のようになる:dosf
ile table
本発明のエキスパートシステムシェルは、どのMSDOSファイルがそのテーブ
ルのデータを持りているか、そしてそのテーブル内の列を定義する項211がそ
のMSDOSファイルのフィールドにどのように関係しているかを指定すること
をアプリケーション開発者に許す一連のメニューでもって、こういう定義に応答
する。こういうテーブルに関する定義はask演算子あるいはvalue演算子
を含まない。
19、問合せテーブルの定義
間合せテーブルは、基本テーブルまたは別の間合せテーブルについての間合せ演
算によって定義される間合せテーブルである。間合せテーブル定義の構文は次の
通りである:
TABLE−OR−QUERY−TERM where BOOLEAN−EX
PRESSON
TABLE−OR−QUERY−TERMは行が選択される基本テーブルまたは
間合せテーブルを指定する。またBOOLEAN−EXPRESSIONはある
行が選択されることになる条件を指定する。例えば、NON JOHN SMI
THTABLEは次のように定義できるであろう:CLIENTS where
NAME is not ”Sm1th、J。
hn’
(NAMEが’3mi th、John”ではないCLIENTS)この結果得
られる間合せテーブルはNAMEが値”Smi th、John”を持つ行を除
<CLIENTSのすべての行をもつことになるであろう。
上記で気付かれるように°’where BOOLEAN−EXPRESSIO
N”演算子は、基本テーブルへの対話的な入力のために“ask”演算子を使っ
てどの行を選択するかを制御するために使うこともできる。
20、テーブルについての演算
一旦1つのテーブルが前述のように定義されると、項211はそのテーブルにつ
いての演算を指定することによって定義できる。最も単純な演算は選択された行
から1つのフィールドを選択することである。これを行う演算子はOF演算子で
ある:
FIELD−NAME−TERM of R,0W−5PECIFYING−T
ERM
このFIELD−NAME−TERMはこの行の1つのフィールドを識別する項
211である。ROW−5PECIFYING−TERMはその定義が1つの行
を指定する項211である。こうして定義211は、ただ1つの行を持つ基本テ
ーブルまたはただ1つの行を持つ間合せテーブルを定義できる。例えば、間合せ
テーブルJOHN SMITHTABLEは次のように定義できるであろう:C
LIENTS where NAME is ”Sm1th、John”このよ
うにしてJOHN SMITHTABLEは1つの行からなり、そして項FOH
N SMITHADDRESSを定義する。f演算子は次のように見えるであろ
う:
ADDRESS of JOHN SMITHTABLE集計演算子は1つのテ
ーブルの1つの列に含まれるデータの一部または全部に基いて結果を生成する演
算子である。これらの演算子はテキスト値か算術値か、または論理値を返す。テ
キスト集計演算子はC0LLECTであって、これは1つの列からの値からなる
テキスト文字列を作成する。文字列内の各僅の終わりに1つの復帰改行文字が付
加される。この演算子は次の構文を持つ:collect FIELD−TER
M−TEXT−EXPRESSIONfor every
TABLE−OR−QUERY−EXPRESSIONFIELD−TERM−
TEXT−EXPRESSIONi:は、ソノ定義がTABLE−OR−QUE
RY−EXPRESSIONによって指定されるテーブル子はこのフィールド内
の値のFIELD−TERM−NAME−EXPRESSIONによって指定さ
れるようなテキスト文字列を作成する。こ)および以下の説明ではもちろん、T
ABLE−OR−QUERY−EXPRESS 工○Nは上記のようなWHER
E演算子を含むこともできる。例えば、NAME−LI STという項211は
次のように定義できるであろう。
collect NAME for every CLIENTSNAME L
ISTは次の文字列値を持つであろう。
”Smi t h、Adam
Smith、John
Smi th、Dav id”
フィールド名を含む式がC0LLECT演算子で使用できるという事実の重要な
点は、C0LLECT演算子によって定義された値がフィールドから返される値
から計算できるということである。
算術集計演算子には、フィールド内の値の平均値と、フィールド内の値の最大値
と、フィールド内の値の最小値と、フィールド内の値の合計値と、フィールドの
数と、そして所定の条件を満足するフィールドのパーセントとをそれぞれ取得す
るための演算子がある。平均、最大、最小、および合計の各演算子についての1
列として平気演算子を取り上げることができる。その構文は次の通りである:a
verage FIELE−TERM−MUNBER−EXPRESSION
for every
TABLE−OR−QUERY−EXPRESSIONFIELD−TERM−
NUMBER−EXPRESSIONii、ソノ評価がTABLE−ORQUE
RY−EXPRESSIONに!つて定義サレタ基本テーブルまたは間合せテー
ブル内の数値フィールドを指定する項211を含む式である。再び、フィールド
環を含む式の使用により、この演算子によって返される結果についての計算の指
定が能力になる。
C0UNT EVERY演算子は単に、指定されたテーブル内の行数を数える。
その構文は次の通りである:
count every TABLE−OR−QUERY−EXPRESSIO
N
例えば、NUMBEROF CLIENTSという項211は次のように定義で
きるであろう:
count every CLIENTS現在の例のテーブルCLIENTSの
場合、NUMBEROF CLIENTSは値3を持つことになろう。
PERCENT WHERE演算子は、あるテーブル内の指定されたフィールド
の値のなんパーセントが指定の条件に適合するかを決定する。この演算子は次の
構文を持つ:
percent TABLE−OR−QUERY−TERM whereFIE
LD−TERM−BOOLEAN−EXPRESSIONTABLE−OR−Q
UERY−TERMは演算が実行されつ)ある基本テーブルまたは間合せテーブ
ルを指定し、またFIELD−TERM−BOOLEAN−EXPRESSIO
Nは指定されたテーブル内のフィールドの1つを指定する項211を含む論理式
である。例えば、PERCENT JOHN SMITH項211は次のように
定義できるであろう:percent CLIENTS where NAME
is ”Sm1th、John″
“Sm1th、John”はこのテーブル内の3つの行の1つであるから、PE
RCENT JOHN SMITHは33′という値を持つであろう。
論理集計値演算子にはFOREVERYとFORSOMEとがあり、FOREV
ERYはフィールド名となっている項211を含む論理式がこのテーブルのどれ
かの行に関して真であるかどうかを決定し、またFORSOMEはこういう論理
式がテーブルのいかなる行に関しても真であるかどうかを決定する。
FORSOMEの構文はこれら両者の代表例となる:for some TAB
LE−OR−QUERY−EXPRESSION。
FIELE−TERM−BOOLEAN−EXPRESSIONTABLE−O
R−QUERY−EXPRESSIONは演算が実行されつ1あ○0LEAN−
EXPRESSIONはテーブル内のフィールドを指定する項211を含む論理
式である。Is JOHN SMITHTHERE?という項に関する定義はそ
の1例となろう。これは次のように見えるであろう:for some CLI
ENTS、NAME is ”Sm1th、John”
前述の説明から分かるように、テーブル値とテーブル項211はルールベースの
エキスパートシステムの主な改善点である。今では項211はデータの順序付け
られた集まりとその集まりの中のフィールドとを表すことができ、またテーブル
についての演算子は間合せテーブルの定義と、両方の型のテーブルに関して個々
のフィールド値の検索と1つの列前部の値に依存する結果の計算とを許す演算と
を可能にしている。
21、”不明”値
初期に実現された定義ベースのエキスパートシステムの問題点は、エキスノク−
トシステムがユーザに尋ねた質問に対する答えをユーザが知らなり1ことを示す
ユーザ応答を適切に処理できないとういことであった。この問題は、本発明の定
義ベースエキスパートシステムの設計者たちが定義ベースエキスパートシステム
で使われるスカラー値のクラスのおのおのに゛′不明” (don’ t kn
ow)値を追加できるようにし、またそれら自身は゛不明”値ではないけれども
゛不明”値に依存しているスカラー値とテーブル値とに関して゛″不明依存性”
という概念を追加できるようにしたことによって克服された。“不明”値が指定
される場合には、システムのユーザはこのシステムへの可能な入力として゛′不
明”を与えることができる。好適な実施例でのこの値の入力は、ファンクション
キーを用いるか、ドロップダウンメニューからの選択による。
例えば、もしバネ明”値が指定されていてCLIENTSのフィールドPH0N
Eが次のように定義されると、
field of CLIENTS、ask ”what is the te
lephone munber of″(CLIENTSのフィールド、°″〜
の電話番号は何番ですか”と尋ねる)ユーザは’Don’ t know” (
不明)を指定できる。もしユーザがそう指定すれば、そのフィールドのPH0N
Eの値はバネ明”である。NAMEが値゛″Sm1th、John″を持つ行に
ついての答えが“不明”であったと仮定すると、
PH0NE of JOHN SMITHTABLEで定義されるJOHN S
MITHPRHONEという項211は、その行に関するPH0NEを指定し、
゛不明”という値を持つことになるのであろう。更に、PH0NEによって定義
される、その列内の値の少くとも1つの値が“不明”値であるから、C0LLE
CT演算子によってフィールドPH0NEに関して定義されるPH0NE LI
STという項211の値は゛′不明依存” (don’tknow depen
dent)となるであろう。John Sm1thの電話だけが不明であったと
仮定すると、PH0N LIST定義:collect PH0NE for
every CLIENTSは
”555−1111
666−2222″
のような値を生成するであろう。
更に、定義ベースのエキスパートシステムはこの値に”不明”依存性表示、すな
わちこの計算には“不明“値が含まれているという表示を結び付ける。このケー
スでは、表示は2つのこと、すなわち“不明”値が占める筈のその値における位
置と、その列の中の3つのフィールドの1つが“不明”値を続ということとを指
定する。
定義ベースのエキスパートシステムで使用可能な殆どいかなる演算子によってで
も定義される項211の評価は、゛不明”値を持つ別の項211の評価を含むこ
とができる。好適な実施例では、゛不明”値が含まれる場合の項211の値の決
定に関する一般的ルールは下記の通りである:1、もし結果の値が゛不明”値と
は無関係であれば、その結果は不明依存性のいかなる表示もなしで返される。
2、もし結果の値が゛不明”値に依存していて、°″不明値なしでは値が決定で
きなければ、返される結果値は゛不明”依存性の表示を持つた゛不明”である。
3、もし結果の値がバネ明”値に依存してはいるが゛不明”値なしでもならかの
値が決定できるならば、返される結果値はバネ明”依存性の表示によって決定さ
れる値である。こういう結果値は推定値と呼ばれる。
最初の2つのルールの例は、オペランドの1つが゛不明″という値を持つときに
*”によって示されるMULTIPLY演算子の振舞いによって与えられる。
もしその他のオペランドが値0を持つならば、その結果はその他のオペランドの
値とは無関係であるから、その演算子は0を返す。もしその他のオペランドが値
0を持たないならば、MULTIPLY演算子は“不明”を返す。3番目のルー
ルの例はC0LLECT演算子である。この例に示すように、もし集計された列
の1つのフィールドが”不明”値を持つならば、C0LLECTは結果文字列を
生成するときにそのフィールドを無視する。
゛不明”と−緒に返される゛′不明′°依存性の表示、あるいは推定値は、その
値が直接゛′不明”に依存する評価中の項211の関する定義の階層から項21
1を含み、またその値がある推定値であるときは、その推定値が゛不明′°値に
よってどの程度まで撮影を受けるかを示す推定情報を含む。推定情報の内容はそ
の推定値を生成した演算子に依存する。概して推定値が文字列値であるときは、
推定情報は“不明”値を持つ第1のコンポーネントが占めたであろうその文字列
内の位置のインデックスを含む。ある列のすべてのフィールドの内容を調べるA
VERAGHのような演算子によって推定値が生成されたときには、推定情報は
その列のフィールドの全数と、“不明”値を持ったフィールドの数とを含む。文
字列の生成と、ある列のすべてのフィールドの内容の吟味と両方とも行うC0L
LECTのような演算子は、結果文字列内の最初の“不明”値の位置と、フィー
ルドの全数と゛′不明”値を持ったフィールドの数との両方を含む推定情報を持
っている。
好適な実施例では、“不明”値と推定値の検出を可能にする2つの特殊な論理演
算子がある。
TEXT−NUMBER−BOOLEAN−EXPRESSION=don’t
1cnov
この演算子は、もしこの式が゛不明”値を持つならばTRUE (真)という値
を返し、そうでないならば偽を返す。その使用例は次のように見えるDONT
KNOW ABOUT JOHN SMITHPH0NEの定義である二JOH
N SMITHPH0NE=don’ t know、70HN SMITHP
H0NEの値はCL工ENTSのJohn Sm1thの行に関するPH0NE
フイールドの値であるから、DONT KNOWABOUT JOHN SMI
THPH0NEは値TRUE (真)を持つ。
第2の演算子は推定値を検出し、また次の構文を持つ:TEXT−NUMBER
−BOOLEAN−EXPRESSION=don’t know estim
ate
この演算子はもしこの式が推定値を持つならば値TRUE (真)を返し、そう
でないならばFALSE (偽)を返す。その使用例は次のように見えるPH0
NELIST INCOMPLETEの定義であるPH0NE LIST=do
n’ t know estimateこ1でPH0NE LISTは推定値で
あるから、PH0NE LIST INCOMPLETEは値TRUE (真)
を持つ。
22、不明値の実現
前に指摘したように、演算子は好適な実施例においてLISP関数によって実現
される。本好適な実施例においては、演算子に関する関数はリストを返す。好適
な実施例におけるバネ明”値の実現は、この機能と、内蔵のLISP特殊記号N
ILとを利用する。LISPにおけるNILの値は空リストであり、また論理値
を必要とする構文においては値FALSE (偽)である。NILは本好適な実
施例では゛不明”を表すために使われる。NILを論理値から区別するために本
実施例ではyes−no演算を定義した。これらの演算は、LISPの論理プリ
ミティブ記号Tが記号YESによって置き換えられていて、また論理プリミティ
ブ記号NILが記号Noによって置き換えられているということを除いて論理演
算と同じように働く。
本好適な実施例では、ある関数によって返されるリストは常に、その最初のエレ
メントとして、その関数によって定義された項211が必要とする値を持つ。
もし゛不明”依存性が存在するならば、最初のエレメントはそれ自身リストであ
る。このリストの最初のエレメントは返却値、すなわち゛不明”を表すNILか
推定値かのいずれかである。その次のエレメントは不明依存性表示である。もし
返却値がNILであれば、依存性表示は必要な゛不明”値の返却を行った゛不明
”値を持つ項211のリストである。もう返却値が推定値であれば、依存性表示
は、必要な推定値と推定情報とを生成した゛不明°“値を持つ1つの項からなる
1つのリストを各エレメントとして持っているリストである。例えば、PH0N
E LISTによって返さされた必要な値は、次の形式の1つのリストになろう
:(”555−111
666−2222” 9 (PHONE 1 3))テキスト文字列はもちろん
C0LLECT関数によって生成された文字列であり;値9はこのテキスト文字
列内の第1の゛不明”値の位置のインデックス(復帰改行文字を数える)であり
; PH0NEはこの文字列を得るためにC0LLECTが読んだ列に関するフ
ィールド名であり;最後に13は合計3個のフィールドの中から1個への“不明
”値があったことを示す。
いま述べた性質を持つ゛不明“値を有する定義ベースのエキスパートシステムの
利点は明らかである。ユーザが自分には分からないということを示でるようにす
ること以上に、定義ベースのエキスパートシステムは゛不明”が相違を生成する
かどうか、もし生成するならば推定値が可能であるかどうかを決定できる。更に
゛不明”依存性情報は、定義ベースのエキスパートシステムが、どの項211が
依存性の情報源となっているかを決定できるようにし、また推定値の場合には、
生成された推定値に関する値に′″不明値がどの程度まで影響を与え得るかどう
かを決定できる。
23、結論
前述の第12〜22節では、第1〜12節で開示した定義ベースのエキスパート
システムについての多くの改良点を開示した。これらの改良点の中には、定義ベ
ースエキスパートシステムを用いて開発されたアプリケーションが外部のイメー
ジ管理システムによって管理されているイメージを表示できるようにするDIS
PLAY演算子を含む副作用演算子と、アプリケーションがC言語呼出しインタ
ーフェースに従う手続きを呼び出せるようにするCALL演算子と、テーブルと
フィールドを定義してこれらのテーブルについて演算するための演算子と、そし
て定義ベースエキスパートシステムで使われるすべての非テーブルデータ型に関
する“′不明′°値とがある。
これらの改良点は、高度に対話的なアプリケーションの開発のためのアプリケー
ション開発システムとして定義ベースエキスパートシステムの使い易さを大いに
向上させる。これらの改良点によって、こ)に開示された定義ペースエキスパー
トシステムは、イメージが表示でき、LISP以外の言語で書かれた手続きを呼
び出すことができ、データを基本テーブルにまとめることができ、間合せ演算を
用いて間合せテーブルを定義でき、そして文字列フィールドの値を集計したり数
値フィールドの値を平均するといったテーブルについての演算を実行することが
できる。最後に、゛不明”値はユーザからの゛不明”入力の受入れを可能にする
。演算子は゛不明”値を有するオペランドを受け入れるように修正された。そし
て、°゛不明値を含む演算によって生成された値のみならず゛不明”依存性イン
ジケータも保持するということが、 ゛不明”値を含むあるいくつかのケースで
推定値を生成することと、その推定値の中にどの程度まで“不明”値が含まれて
いるかを決定することとを可能とした。
第12〜22節はそこで論議された改良点を実施するために本発明者等にとって
現在知られている最善の方式を開示しているけれども、他の実施例も可能である
。例えば、こ〜に開示された定義ベースエキスパートシステムはLISP以外の
言語で実現することもできる。
更に、こ・に開示された原理を例示する他の演算子も開発可能であり、異なる定
義構文も使用可能である。同様に、こ・に開示された原理には従うが、定義ベー
スエキスパートシステム以外の環境で使われる“不明”値のこのほかの実現も開
発可能である。このケースでは、開示された実施例はすべての点で、例示的であ
ってこれに限定されないと見なすべきであり、前述の説明によりもむしろ付属の
特許請求の範囲によって示されている本発明の範囲と、本特許請求の範囲と同等
の意味と範囲との内に入るすべての変更とは、こ\に包含すべきものと考える。
ユーザコマンド
図1:従来技術のエキスパートシステム10111HIA 従来技術のエキスパ
ートシステムシェル110図2:定義的エキスパートシステムンエル201およ
びエキスパートシステム202
エフ:第1のプロトタイプのTDEF617の詳細図9:第2のプロトタイプ実
施側におけるTDEFとWHATターム記号
復元633かも
図8:DEFINE607の詳細
国際調査報告
Claims (1)
- 【特許請求の範囲】 1)エキスパートシステムとして操作可能なディジタルコンピュータシステム、 すなわち階層的に定義された項とそれらの定義と、すなわちその定義のおのおの が階層の下位レベルにある1つ以上の項の値を用いて、および(または)項の値 に依存しない1つ以上の項独立の値を用いてそのそれぞれの値を定義する各項の 対応する定義とを含む知識ベースを格納するための記憶手段;と該システムのユ ーザからコマンドを受け取るための処理手段、すなわち該ユーザコマンドに応答 して推論コマンドを生成するためと、所定の項の定義を得るために該コマンドに 応答して該記憶手段を調査するためと、該対応する定義内の任意の項の値と任意 の項独立の値を取得することによってその対応する定義から該所定の項の値を計 算するための処理手段とからなる該コンピュータシステムであって:かつ、該ュ ーザに対してエキスパート応答を生成するために該計算値を使用する該システム 。 2)所定の項の定義が更に、該所定の項の値が得られたときに実行すべき演算を 指示する演算子を含む、請求項1に記載されたディジタルコンピュータシステム 。 3)該ディジタルコンピュータシステムがもう一つのシステムとして操作可能で あり、また実行すべき操作がその他のシステムとして該ディジタルコンピュータ システムを操作することである、請求項2に記載されたディジタルコンピュータ システム。 4)該ディジタルコンピュータシステムは更に表示手段を含み;該その他のシス テムは該ディジタルコンピュータシステムに格納されたイメージ検索するたbと 、該イメージを該表示手段上に表示するための納システムであり;また該実行す べき操作は所要のイメージを検索して表示するために該その他のシステムを操作 することである、請求項3に記載されたテイジタルコンピュータシステム。 5)該ディジタルコンピュータシステムは更に、表示手段を含み、また、実行す べき操作は該表示手段上に情報を表示することである、請求項2に記載されたデ ィジタルコンピュータシステム。 6)該情報は該所定の項の定義の中に含まれている、請求項5に記載されたディ ジタルコンピュータシステム。 一1 7)該情報はテキストである、請求項5に記載されたディジタルコンピュータシ ステム。 8)該情報はイメージである、請求項5に記載されたディジタルコンピュータシ ステム。 9)該ディジタルコンピュータシステムは更に知識ベースに対して外部の記憶手 段を含んでおり;また該情報は該外部記憶手段から得られる、請求項5に記載さ れたディジタルコンピュータシステム。 10)該ディジタルコンピュータシステムはもう一つのシステムとして操作可能 であり、また該情報は該ディジタルコンピュータシステムをそのほかのシステム として操作することによって得られる、請求項)に記載されたディジタルコンピ ュータシステム。 11)所定の項の定義は行と列とを有する基本テーブルを定義する基本テーブル 定義演算子である、請求項1に記載されたディジタルコンピュータシステム。 12)所定の項の定義は該基本テーブル内の列を定義するフィールド定義演算子 である、請求項11に記載されたディジタルコンピュータシステム。 13)該フィールド定義演算子は更に該列がその値を受け取る仕方を定義する、 請求項12に記載されたディジタルコンピュータシステム。 14)該基本テーブル定義演算子は更に該テーブル定義演算子によって定義され る該基本テーブル内の列をキー項として定義する項の1つを定義し、また該キー 項に関する該フィールド定義演算子は更に該キー項によって指定される該列が受 け取る値の数から該基本テーブル内の行の数を定義する、請求項13に記載され たディジタルコンピュータシステム。 15)所定の項の定義は基本テーブルまたは別の間合せテーブルからの行で構成 される問合せテーブルを定義する間合せ演算子を含む、請求項11に記載された ディジタルコンピュータシステム。 16)所定の項の定義は基本テーブルまたは問合せテーブルの列を吟味すること によって結果を決定するための列演算子を含む、請求項15に記載されたディジ タルコンピュータシステム。 17)項に独立の値が“不明”値を含む、請求項1に記載されたディジタルコン ピュータシステム。 18)所定の項の値は“不明”値依存性表示を含むことができ、かつ該処理手段 は 定義を評価している間に得られる任意の項独立の値がもし該所定の項の計算値が いかなる“不明”値からも独立であれば該項は該計算値を持ち、また“不明”依 存性表示を含まず、もし該所定の項の計算値が該“不明”値を使用せずには計算 できなければ、該項は該“不明”値を持ち、また“不明”依存性表示を含み、ま たもし該所定の項の成る計算値が該“不明”値を使用せずに計算できるならば、 該項は該計算値を持ち、また“不明”依存性表示を含むというルールに従って該 “不明”値を持つときその対応する定義から該所定の項の値を計算する、請求項 17に記載ささたディジタルコンピュータシステム。 19)該“不明”依存性表示は項の定義が該項独立の“不明”値を含んだ項を含 む、請求項18に記載されたディジタルコンピュータシステム。 20)もし該所定の項の或る計算値が該“不明”値を使用せずに計算できるなら ば、該“不明”依存性インジケータは該計算値が該“不明”値によって受ける影 響の程度を表示する、請求項18に記載されたディジタルコンピュータシステム 。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US371,434 | 1989-06-05 | ||
US07/371,434 US4967368A (en) | 1985-08-16 | 1989-06-05 | Expert system with knowledge base having term definition hierarchy |
PCT/US1990/000250 WO1990015389A1 (en) | 1989-06-05 | 1990-01-10 | Expert system apparatus and methods |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04505518A true JPH04505518A (ja) | 1992-09-24 |
Family
ID=23463984
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP90503247A Pending JPH04505518A (ja) | 1989-06-05 | 1990-01-10 | エキスパートシステム装置および方法 |
JP2506762A Pending JPH04505227A (ja) | 1989-06-05 | 1990-04-03 | ドキュメント生成装置および方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2506762A Pending JPH04505227A (ja) | 1989-06-05 | 1990-04-03 | ドキュメント生成装置および方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US4967368A (ja) |
EP (2) | EP0481995B1 (ja) |
JP (2) | JPH04505518A (ja) |
AU (2) | AU648981B2 (ja) |
CA (2) | CA2012533C (ja) |
DE (2) | DE69030664T2 (ja) |
WO (2) | WO1990015389A1 (ja) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1311852C (en) * | 1987-01-09 | 1992-12-22 | James R. Allard | Knowledge acquisition tool for automated knowledge extraction |
US5018075A (en) * | 1989-03-24 | 1991-05-21 | Bull Hn Information Systems Inc. | Unknown response processing in a diagnostic expert system |
US5195173A (en) * | 1989-12-29 | 1993-03-16 | Ail Systems, Inc. | Integrated multi-visual expert system maintenance advisor |
US5819248A (en) * | 1990-12-31 | 1998-10-06 | Kegan; Daniel L. | Persuasion organizer and calculator |
DE69227562T2 (de) * | 1991-09-11 | 1999-04-22 | Hewlett Packard Co | Datenverarbeitungssystem und Verfahren zur automatischen Durchführung von prioritisierten pflegerischen Diagnosen durch Auswertung von Patientendaten |
US5724091A (en) | 1991-11-25 | 1998-03-03 | Actv, Inc. | Compressed digital data interactive program system |
US5377103A (en) * | 1992-05-15 | 1994-12-27 | International Business Machines Corporation | Constrained natural language interface for a computer that employs a browse function |
US5448722A (en) * | 1993-03-10 | 1995-09-05 | International Business Machines Corporation | Method and system for data processing system error diagnosis utilizing hierarchical blackboard diagnostic sessions |
US5644686A (en) * | 1994-04-29 | 1997-07-01 | International Business Machines Corporation | Expert system and method employing hierarchical knowledge base, and interactive multimedia/hypermedia applications |
US5632007A (en) | 1994-09-23 | 1997-05-20 | Actv, Inc. | Interactive system and method for offering expert based interactive programs |
US5682196A (en) | 1995-06-22 | 1997-10-28 | Actv, Inc. | Three-dimensional (3D) video presentation system providing interactive 3D presentation with personalized audio responses for multiple viewers |
US6021404A (en) * | 1997-08-18 | 2000-02-01 | Moukheibir; Nabil W. | Universal computer assisted diagnosis |
US5901068A (en) * | 1997-10-07 | 1999-05-04 | Invention Machine Corporation | Computer based system for displaying in full motion linked concept components for producing selected technical results |
US6529893B1 (en) * | 1999-02-26 | 2003-03-04 | Mandel Foner | Expert diagnostic system with inference generator |
GB2355817A (en) * | 1999-07-12 | 2001-05-02 | St John S Registration Ltd | Generating customised documents |
GB9920661D0 (en) | 1999-09-01 | 1999-11-03 | Ncr Int Inc | Expert system |
GB9920662D0 (en) * | 1999-09-01 | 1999-11-03 | Ncr Int Inc | Expert system |
US6311150B1 (en) * | 1999-09-03 | 2001-10-30 | International Business Machines Corporation | Method and system for hierarchical natural language understanding |
US8036866B1 (en) * | 2000-06-16 | 2011-10-11 | Baker Hughes Incorporated | Case-based drilling knowledge management system |
AU2000262161A1 (en) * | 2000-07-17 | 2002-01-30 | Morgan Stanley Dean Witter And Co. | Object-oriented document assembly system |
US6915506B2 (en) * | 2001-03-27 | 2005-07-05 | International Business Machines Corporation | Method and apparatus for evaluating results of multiple software tools |
WO2003027894A1 (en) * | 2001-09-26 | 2003-04-03 | The Trustees Of Columbia University In The City Of New York | System and method of generating dictionary entries |
GB2384580A (en) * | 2001-12-14 | 2003-07-30 | Empiricom Technologies Ltd | Knowledge acquisition in expert systems |
EP1329817A1 (en) | 2002-01-21 | 2003-07-23 | Business Integrity Limited | Document generation system and method |
US7472343B2 (en) | 2002-05-10 | 2008-12-30 | Business Integrity Limited | Systems, methods and computer programs for analysis, clarification, reporting on and generation of master documents for use in automated document generation |
JP2004139312A (ja) * | 2002-10-17 | 2004-05-13 | Olympus Corp | 診断レポート作成システム、診断レポート作成方法、及びプログラム |
US9043265B2 (en) | 2006-09-21 | 2015-05-26 | Aebis, Inc. | Methods and systems for constructing intelligent glossaries from distinction-based reasoning |
US7945527B2 (en) * | 2006-09-21 | 2011-05-17 | Aebis, Inc. | Methods and systems for interpreting text using intelligent glossaries |
US8321205B2 (en) * | 2008-01-02 | 2012-11-27 | Stuart Allen Garrie | Definitional method to increase precision and clarity of information |
US10175844B2 (en) | 2012-08-24 | 2019-01-08 | Ricky Steven Pionkowski | Interface environment for capturing and storing information in a document |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3716840A (en) * | 1970-06-01 | 1973-02-13 | Texas Instruments Inc | Multimodal search |
US3715730A (en) * | 1970-06-01 | 1973-02-06 | Texas Instruments Inc | Multi-criteria search procedure for trainable processors |
US4286330A (en) * | 1976-04-07 | 1981-08-25 | Isaacson Joel D | Autonomic string-manipulation system |
US4290114A (en) * | 1976-07-01 | 1981-09-15 | Sinay Hanon S | Medical diagnostic computer |
US4454576A (en) * | 1981-05-18 | 1984-06-12 | International Business Machines Corporation | Report preparation |
JPS5947627A (ja) * | 1982-09-10 | 1984-03-17 | Brother Ind Ltd | テキスト処理装置 |
US4599692A (en) * | 1984-01-16 | 1986-07-08 | Itt Corporation | Probabilistic learning element employing context drive searching |
US4649515A (en) * | 1984-04-30 | 1987-03-10 | Westinghouse Electric Corp. | Methods and apparatus for system fault diagnosis and control |
US4930071A (en) * | 1987-06-19 | 1990-05-29 | Intellicorp, Inc. | Method for integrating a knowledge-based system with an arbitrary database system |
-
1989
- 1989-06-05 US US07/371,434 patent/US4967368A/en not_active Expired - Fee Related
-
1990
- 1990-01-10 WO PCT/US1990/000250 patent/WO1990015389A1/en active IP Right Grant
- 1990-01-10 DE DE69030664T patent/DE69030664T2/de not_active Expired - Fee Related
- 1990-01-10 AU AU50495/90A patent/AU648981B2/en not_active Ceased
- 1990-01-10 EP EP90903115A patent/EP0481995B1/en not_active Expired - Lifetime
- 1990-01-10 JP JP90503247A patent/JPH04505518A/ja active Pending
- 1990-03-19 CA CA002012533A patent/CA2012533C/en not_active Expired - Fee Related
- 1990-04-03 EP EP90907960A patent/EP0475964B1/en not_active Expired - Lifetime
- 1990-04-03 JP JP2506762A patent/JPH04505227A/ja active Pending
- 1990-04-03 AU AU55508/90A patent/AU648253B2/en not_active Ceased
- 1990-04-03 WO PCT/US1990/001776 patent/WO1990015392A1/en active IP Right Grant
- 1990-04-03 CA CA002057857A patent/CA2057857C/en not_active Expired - Fee Related
- 1990-04-03 DE DE69030815T patent/DE69030815T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
AU648253B2 (en) | 1994-04-21 |
AU5049590A (en) | 1991-01-07 |
AU648981B2 (en) | 1994-05-12 |
DE69030664T2 (de) | 1997-12-11 |
DE69030815D1 (de) | 1997-07-03 |
CA2057857A1 (en) | 1990-12-06 |
AU5550890A (en) | 1991-01-07 |
EP0475964B1 (en) | 1997-05-28 |
US4967368A (en) | 1990-10-30 |
DE69030664D1 (de) | 1997-06-12 |
EP0481995A1 (en) | 1992-04-29 |
EP0481995A4 (en) | 1993-01-27 |
EP0475964A1 (en) | 1992-03-25 |
CA2012533C (en) | 1999-11-30 |
EP0481995B1 (en) | 1997-05-07 |
CA2012533A1 (en) | 1990-12-05 |
CA2057857C (en) | 2000-06-13 |
WO1990015392A1 (en) | 1990-12-13 |
WO1990015389A1 (en) | 1990-12-13 |
JPH04505227A (ja) | 1992-09-10 |
DE69030815T2 (de) | 1998-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH04505518A (ja) | エキスパートシステム装置および方法 | |
US5043891A (en) | Document generation apparatus and methods | |
US4866634A (en) | Data-driven, functional expert system shell | |
McGuinness et al. | An environment for merging and testing large ontologies | |
JP3084224B2 (ja) | エキスパート・システムをオーサリングするシステム | |
US20070050343A1 (en) | Semantic-based query techniques for source code | |
US8326778B1 (en) | Systems and methods for generating predicates and assertions | |
Rushby et al. | A less elementary tutorial for the PVS specification and verification system | |
Ray et al. | ProLogICA: a practical system for Abductive Logic Programming | |
Harris et al. | Beginning algorithms | |
Miller et al. | The NetWeaver reference manual | |
JP2651452B2 (ja) | 質問回答方法および装置 | |
Laleau et al. | A rigorous metamodel for UML static conceptual modelling of information systems | |
Bull | Software maintenance by program transformation in a wide spectrum language | |
Chalupsky et al. | Powerloom manual | |
CA1278390C (en) | Expert system apparatus and methods | |
Kakas et al. | E-RES: a system for reasoning about actions, events and observations | |
Niederliński | An expert system shell for uncertain rule-and model based reasoning | |
Patti | Programming rational agents: A modal approach in a logic programming setting | |
JP2848597B2 (ja) | エキスパートシステムとして動作可能なデジタルコンピュータシステム | |
Virvou et al. | Experimental Studies within the Software Engineering Process for Intelligent Assistance in a GUI. | |
JPH0689177A (ja) | エキスパート・システムの状態を巻戻す方法及びシステム | |
Petzold | Development of a mobile application for the algorithmic attribution of symptoms to potential diseases | |
Chen | The design and analysis of an inference engine for the expert system shells | |
Lawlis | Supporting selection decisions based on the technical evaluation of Ada environments and their components |