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
Application number
JP90503247A
Other languages
English (en)
Inventor
ボリング,リチャード・ダブリュー
Original Assignee
ウォング・ラボラトリーズ・インコーポレーテッド
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 ウォング・ラボラトリーズ・インコーポレーテッド filed Critical ウォング・ラボラトリーズ・インコーポレーテッド
Publication of JPH04505518A publication Critical patent/JPH04505518A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/045Explanation 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つ以上の項の値を用いて、および(または)項の値 に依存しない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に記載されたディジタルコンピュータシステム 。
JP90503247A 1989-06-05 1990-01-10 エキスパートシステム装置および方法 Pending JPH04505518A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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