JPH04505227A - ドキュメント生成装置および方法 - Google Patents

ドキュメント生成装置および方法

Info

Publication number
JPH04505227A
JPH04505227A JP2506762A JP50676290A JPH04505227A JP H04505227 A JPH04505227 A JP H04505227A JP 2506762 A JP2506762 A JP 2506762A JP 50676290 A JP50676290 A JP 50676290A JP H04505227 A JPH04505227 A JP H04505227A
Authority
JP
Japan
Prior art keywords
term
document
definition
value
knowledge base
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
JP2506762A
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 JPH04505227A publication Critical patent/JPH04505227A/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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (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

【発明の詳細な説明】
ドキュメント生成装置および方法 関連出願の参照 本願は、米国特許出願番号371434号(出願臼1989年6月5日)の一部 継続出願である。順に、米国特許出願番号371434号は米国特許出願番号0 30250号(出願臼1987年3月24日)の一部継続出願であり、米国特許 出願番号030250号は米国特許出願番号766860号(出願臼1985年 8月16日)の一部継続出願であり、現在では放棄されている。本願に追加され た発明の開示は好ましい実施例のセフシコン23から始まり、新たな図面lO乃 至14を含む。 発明の背景 1、技術分野 本発明は、デジタルコンピュータにより実現されるドキュメント生成装置、さら に詳しくは、エキスパートシステムを採用したドキュメント生成装置およびエキ スパートシステムの知識ベースtらびに推論エンジンに関する。 2、先行技術 多くの業務法律文書は、ドキュメントが書かれる状況の必要に応じて、すでに存 在するテキスト(いわゆる「ボイラプレート:共通記事」ンの断片を組み合わせ て「書く」ものであり、またできあがった文書には必要性に応じて追加や編集が 施される。これまで、共通記事を含む多くのドキュメントはフオーム集からフオ ームを利用して作成されていた。このフオームテキストには処理中に変更されな い情報が含まれており、変更となる情報については空白となっていた。 コンピュータのテキスト編集プログラム(一般に「エディタ」と呼ばれる)が発 達したため、フオーム集を自動化することが可能になった。フオームの創作者に よって、コンピュータに格納されたテンプレートドキュメントが提供できるので ある。このエディタによってドキュメントを作成するには、これから作成し不足 した情報を書き込むドキュメントへテンプレートドキュメントを単にコピーすれ ば良かった。自動化のおかげで、たちまちテンプレートドキュメントを作成し、 コピー以上の働きをするようになり、ドキュメント生成装置と呼ばれる装置が現 れた。ドキュメント生成装置は、作成状況に合致するドキュメントを生成するた めに、対話型あるいはデータベースより提供されるテンプレートドキュメントお よび情報を利用する。このような装置について、下記の論文が概説している。 ジエームズ・A・エイデルマン著「電子フオーム集としてのコンピュータ/使用 可能なソフトウェアツール」 ”リーガル・エコノミクス01988年5月−6 月号 ドキュメント生成には多様なアプローチが試みられて来た。ある編集プログラム ではエディタによって実行されるプログラムをユーザが書くことができるマクロ 言語を使用する。このようなプログラムをテンプレートドキュメントに含めたこ とで、テンプレートドキュメントからドキュメント生成!IRが生まれた。その 他のドキュメント生成プログラムでは、テンプレートからテンプレートへ使用す るプログラムを分割する。あるドキュメント生成装置では知識ベースを有するエ キスパートシステムまで利用している。知識ベースの情報はドキュメントを用意 する人へどんな質問を行うかを決定し、生成されるドキュメントにどんな情報が 含まれるべきか決定するために利用される。 ドキュメント生成装置を設計する上で必ず問題となってきたのは、複雑すぎず高 性能な装置にすることである。高性能なドキュメント生成装置において、一般的 に、装置を設計する人間がプログラマ−の技術を持っていなければならなかった 。つまり、このような技術を必要としないドキュメント生成装置では、ユーザが テンプレート部の中から選択できないことが多かった。エキスパートシステムを 用いたドキュメント生成y;ceの場合、特に問題となってきたのは、実際にド キュメントを生成するエディタでドキュメントを生成するのに必要な情報を提供 するエキスパートシステムをいかに統合するがということであった。 発明の要約 本発明のドキュメント生成装置は、出力ドキュメントを生成するためのエキスパ ートシステムである。このシステムは、テンプレートドキュメントと、知識ベー ス項目を格納するための知識ベースと、テンプレートドキュメントおよびドキュ メント生成装置によって生成された出力ドキュメントを編集するためのエディタ と、知識ベースにおいて知識ベース項目を定義するための知識ベースディファイ ナと、この情報に基づきエキスパート応答を生成するために知識ベースを利用し た情報人力へ応答する推論エンジンとから成る。この知識ベースは、ドキュメン トテンプレートの部分に関係するドキュメント部知識ベース項目を定義するため 、第一のユーザ入力に応答するドキュメント部ディファイナから成る。このドキ ュメント部デイフフイナによって、ユーザがその部分を編集し、編集した部分と ドキュメント部知識ベース項目とを関連づけることができるエディタが提供され る。推論エンジンは出力ドキュメント生成プログラムから成る。この生成プログ ラムは、ドキュメント知識ベース項目および第二のユーザ入力が必要とする場合 に、ドキュメント知識ベース項目に関連するドキュメント部を出力ドキュメント へ提供するために、編集手段を利用することでドキュメント部知識ベース項目に 応答する。 本発明の917の面として、本発明のエキスパートシステムは本願の親出願にお いて開示された定義型エキスパートシステムであり、ドキュメント部は定義型エ キスパートシステムの知識ベースにおいて定義されたタームと関連する。テンプ レートドキュメント部分はさらに、ドキュメント部に関連する他のタームも含め て、定義型エキスパートシステムのドキュメント部分において定義された他のタ ームも含む。出力ドキュメント生成プログラムはこのようなタームに出会うと、 知識ベースからのタームの現在値を獲得し、タームの代わりにその値で出力ドキ ュメントを出力することができる。さらに、ドキュメント部ディファイナのユー ザがテンプレートドキュメント部分の定義を終われば、ドキュメント部ディファ イナはその部分の他のタームが知識ベースで定義されているかどうかを決定する 。そして、もし定義されていなければ、知識ペースディファイナはユーザに定義 を提供するようめる。 したがって、本発明の目的は、ドキュメント生成のための改善された装置および 方法を提供することである。 また、本発明の別の目的は、エキスパートシステムを利用する、改善されたドキ ュメント生成装置および方法を提供することである。 本発明のさらなる目的は、定義型エキスパートシステムを利用する、ドキュメン ト生成装置および方法を提供することである。 本発明のさらなる目的は、タームがテキストの一部として定義され、そのテキス ト部分それ自身が、定義型エキスパートシステムにおいて定義されたタームを含 む定義型エキスパートシステムを提供することである。 図面の簡単な説明 図1は、従来技術によるエキスパートシステムの概念ブロック図である。 INIAは、従来技術によるエキスパートシステムシェルの概念ブロック図であ る。 図2は、本発明によるエキスパートシステムシェルおよびエキスパートシステム の概念ブロック図である。 図3は、本発明に用いられる定義階層の概念図である。 図4は、タームrFRAUD (詐欺)」を定義するために用いられるタームお よび記述の図である。 図5は、Lr5P環境の図である。 図6は、本発明の第一の原型実施例の概観である。 図7は、第一の原型実施例のTDEF617の図である。 図8は、第一の原型実施例の機能rDEFINE(定義)」の詳細な図である。 図9は、第二の原型実施例における改良点の図である。 図10は、ドキュメント生成装置において用いられるテンプレートドキュメント の実例である。 図11は、ドキュメント生成装置の概念ブロック図である。 図12は、テンプレートドキュメントの実例のドキュメント構造の図である。 図13は、ドキュメント構造におけるマージターム属性を示す図である。 e14は、ドキュメント生成装置において利用されるインデックスの図である。 図面参照を容易にするために、実施例中に用いられた参照番号は三桁であられす 。右二桁は図中の参照番号を表す。左−桁が図面番号である。たとえば、参照番 号901は、図9に示される項目を指す。 好ましい実施例 後述する好ましい実施例においては、まず本発明のエキスパートシステムおよび エキスパートシステムシェルの概念的な概略を示し、次に本発明の第一の原型実 施例を詳細な説明を加える。第二の原型実施例における改良点について論じであ る。−Bl!続出願である本開示への追加部分はセフシコン23から始まる。 1 本発明のエキスパートシステムシェルおよびエキスパートシステムの概念的 な概略:図2 図2は、本発明のエキスパートシステムシェル201およびエキスパートシステ ム202の概念ブロック図である。エキスパートシステムシェル201は四つの 構成要素を有する。すなわち、コマンドプロセッサ(CP)203、定義プロセ ッサ(DP)207、ターム記憶装置(TS)215、ターム推論エンジン(T IE)219である。エキスパートシステムシェル201を利用して生成された エキスパートシステム202は、CP2O7を除くこれらの構成要素を有する。 以下に詳述するように、CP2O3はシェル201およびシステム202のユー ザからコマンドを受け取り、コマンドを他の構成要素へ提供する。CP2O7は 定義処理を行う。TS215は定義されたタームおよびその定義を格納する。 TIE219はTS215から送られたタームの定義を利用して、そのタームを 評価し他の命令をタームに施す。 CP2O3はシェル201およびシステム202のユーザより送られたコマンド を、定義プロセッサコマンド(DPC)204および推論エンジンコマンド(I EC)へ変換する。この原型では、DPC204によってシェル201のユーザ はタームを定義し、あるいは再定義し、あるいは定義されたタームを未定義にし 、タームの定義を検討し、定義セットを退避し、定義セットを復元することがで きる。lEC217を使用することで、シェル201あるいはシェル20.1に よって生成されたエキスパートシステム202のユーザは、タームの現在値を決 定し、エキスパートシステム202がその値に達した過程を見つけだし、エキス パートシステム202にタームに対する他の値を考えさせ、それが他のタームの 値にどんな効果を与えるか観察し、タームのいずれかひとつあるいは全部をリセ クトすることができ、さらに、タームの現在値を決定するさいに外部より値を供 給する必要がある場合、その値が必要な理由をエキスパートシステム202に問 い合わせることができる。 定義プロセッサ207はTERM206を定義する。TERM206が完全に定 義されていれば、TS215は、TERM206に対応する定義されたターム( DTERM)211およびDTERM211に対する定義(DEF)213を含 む。TERM206はTERM206に対する模答でエキスパートシステムシェ ル201のユーザから要求されたCP2O7を、DPC204内かあるいは記述 (DESC)205からのいずれかの方法で受け取ることができる。CP2O7 はまず、TERM206に対応するDTERM211がすでに存在するがどうか 、つまり、TERM206がすでに定義されているかどうかを決定する。もし決 定されていれば、CP2O7はTERM206に対応するDTERM211をT S215から検索し、CP2O7が現在構成中であるという定舞に使用するため に用意しておく。もし未定義であれば、CP2O7は記述要求(DESCREQ )をシェル2Q1のユーザへ出力する。ユーザはTERM206の記述(DES C)205をCP2O1へ提供し、次にCP2O1がDESC205の情報を利 用してTERM206のためにDEF213を作り出す。さらに詳しく後述する ように、DESC205は、ユーザが他のTERM206に定数値を指定でき、 定義が提供されるエキスパートシステム206の外部より値が得られるような定 i言語で書かれている。この定義によってさらにTERM206で表現される値 に実行される命令、定数、定義の外部値を指定できる。DESC205がTER M206を含む場合、CP2O7はこれらTERM206をこれまでに述べた方 法で取り扱うことができる。TERM206に対応するDTERM211が存在 すれば、DTERM211は構成中であるDEF213において利用される。 DTERM211が存在しなければ、CP2O7はTERM206を定義するD ESC205を要求し、上述のように処理する。CP2O7の繰り返し命令が図 2に示されており、矢印208によって、少なくとも一つのTERM206を含 むUDESC210が再びCP2O7によって処理される過程が示される。この ようにして、最初のDESC205のTERM206を定義するために必要なT ERM206用DESC205において、最初のDESC205およびすべての TERM206が定義されるまで、つまり、それらがTS215におけるDTE RM211およびDEF213に対応するまで処理が続く。 CP2O7を命令した結果得られたDTERM211およびDEF213はTS 215に配置される。DTERM211は名前によってTS215に配置される 。DTERM211に対応するDEF213はDTERM211と関係づけられ 、DTERM211が配置されれば使用することができる。DEF213が派生 したDESC205の修正版は、DEF213に含まれる。 DPC204によって指定される残りの命令は、CP2O7およびTS215に おいて次のように実行される。TERM206を未定義とする場合、CP2O7 は対応するDTERM211およびDEF213をTS215から取り除く。 TERM206を再定義するには、CP2O7がTERM206に対応するDE F213を取り除き、新たなTERM206用DESC205を要求する。DE SC205は上述のような方法で処理される。TERM206の定義を表示する ようDPCが要求すると、CP2O7が、TERM206に対応するDTERM 211のためのDEF213へ合体されたDESC205を表示する。最後に、 退避命令によって与えられたTS215の内容を後で使用するためにファイルへ 退避し、また復元命令によってファイルの内容をTS215へ復元する。 ターム推論エンジン(TIE)219は、TS215におけるDTERM211 およびDEF213を使用して命令を実行する。まずはじめの命令は、その定義 から定まるDTERM211の値ならびにエキスパートシステム202あるいは シェル201のユーザによって提供される外部値を決定するwha+命令である 。 TIE219は、命令オヨびCP2O3から送らしf:TERM206 ヲ指定 する■EC217への応答としてこのwhat命令を実行する。TIE219は 、DTERM211のDEF213をTS215に配置するためにTERM20 6に対応するDTERM211を使用する。そして、DTERM211および定 数、この定義において指定された外部値を利用してDEF213で指定された命 令を実行する。さらに、結果TRESをシステム202あるいはシェル201の ユーザへ戻す。 DTERM211の値を高速で計算するさいにDEF213における定数を利用 することができる。外部値の場合、DTERM211には外部値が得られた過程 に関する記述が含まれる。TIE219はこの記述を用いて外部値(EXVAL REQ)を外部値(ExVAL)225のソースへ要求し、ソースカラEXVA L 225を受け取る。もつとも単純な場合、ソースとはシステム202あるい はシェル201のユーザが使用する端末のことで、ユーザの端末画面に質問を人 力し、その人力を受け取ることにより情報を得ることができる。さらに複雑な場 合では、ソースはファイルあるいはデータベースであっても良い。 評価中のDTERM211のためのDEF213においてさらにDTERM21 1が必要な場合について説明する。TIE219はさらにDTERM211のD EF213を得ることができ、そのDEF213からDTERM211の値を計 算し、そのDEF213におけるすべてのDTERM211であると評価し、w hat命令で探索中のDTERM211値すべてのDTERM211を評価して しまうまでこのような処理が続く。それぞれのDEF213において指定された これらの定数、外部値、DTERM211は、上述のような方法で処理される。 すべてのDEF213が評価された場合、求められているDTERM211の値 が計算され、TRES227として返される。 好ましい実施例において、与えられたDEF213の評価中に得られるEXVA L225が、そのDEF213の評価の一部となる。このように、wbm命令が DTERM211に対してもう一度実行された場合、TIE219はEXVAL  REQを生成せずに、単に格納されたEXVAL225を利用してDTERM 211の値を再計算する。好ましい実施例では、格納されたEXVAL225を 修正するためのrEc217を二つ用意しである。第一のIECはリセット用で 、リセットコマンドで指定されたDTERM211のためのDEF213から、 格納されたすべてのEXVAL225を単に削除するものである。このため、W hatがふたたび実行されたとき、新たなEXVAL225が上述のように得ら れる。第二のIECは仮定用で、仮定コマンドで指定されたTERM206のた めのDEF213へ新たなEXVAL225を提供することができる。この場合 、whaXがふたたび実行されると、指定されたEXVAL225は、W−命令 が実行されるのに必要なりTERM211の値を得るために使用される。 シェル201あるいはシステム202のユーザが、TIE219が与えられたE XVAL225を要求する理由を知りたい場合、why命令コマンドでEXVA L REQに応答することができる。そのコマンドに応答する場合、TrE21 9は、EXVAL225が必要なときに計算しておいた値を有するDTERM2 11のためのDEF213からDESC205を出力する。ユーザは、与えられ たEXVAL225が重要である理由をDESC205から決定することができ る。ユーザはざらにwhyを利用して、評価した結果EXVAL REQを生成 したDTERM211値を得ろのに必要な値を持つ、すべてのDTERM211 が必要となる理由を問い合わせることができる。そしてTIE219はこれらの DTERM211のためのDESC205を提供する。 3 定義の階層:1m3 いかなるタームを定義する場合でも、CP2O7はDEF213の階層を生成す る。定義されたタームのためのDEF213にタームが含まれていなければ、階 層は一つだけのレベルである。ターム用DEF213がタームを含んでいれば、 そのタームは第一のタームが定義されるよりも先に定義されなければならず、こ の第一のタームは二つのレベルの階層におけるトスブタームである。第二のレベ ルにおいてさらにタームを有するDEF213が存在すれば、このタームは定義 されなくてはならず、階層は三つのレベルである。このようにして、他のターム が依存するターム用DEF213がもはやタームを含まなくなるまで階層は深く なっていくが、そのかわり定数あるいは外部値への命令によって単独で定義され る。上述より明らかなように、DEF213は常に、DEF213が定義するD TERM211を定義するために必要なりEF2L3の階層におけるトップDE F213であるが、同時に、他のDTERM211を定義するために必要なりE F213#層の低レベルにある。 図3はこのようなりEF213階層の概念図である。階層305には、DTER Mセット301に属するDTERM211 (A)乃至(E)に対応するDEF 213(A)乃至(E)が含まれる。階層305におけろ鰻重の定義は、DTE RM211 (A)に対応するDEF213 (A)である。DEF213(A )におけるoP(B、C)という表示は、DTERM211 (B)および(C )+7)値を命令することによってDTERM211 (A)の値を得る、とい うことをDEF213(A)が指定することを示す。同様に、DEF213 ( B)が、DTERM211 (D)および(E)の値を命令することによりDT ERM211 (B)の値を得るということを指定する。したがって、DEF2 13(A)にとっての階層305には三つのレベルがある。レベルl 307に はDEF213 (A)のみが含まれ、レベル2309にはDEF213 (B )およびDEF213 (C)が含まれる。レベル3311にはDEF213  (D)および213(E)が含まれる。DEF213 (C)、213 (Dン 、213(E)は他のDTERM211とはDTERM211c、D、E、を定 義せず、これ以上低レベルを引き起こすことがない。このようなりEF213を 最終定義312と呼ぶ。 階層305を構築する場合、CP2O7はDTERM211 (A)に対応する TERM206 (A)から開始する。CP2O7はTERM206 (A)を DE5C205から受け取る。DESC205からあるいは定義DPC204あ るいは再定義DPC204からさらに高レベルでDEF213は構成中である。 CP2O7はDTERM211 (A)用DESC205を要求する。DESC 205は二つのTERM206 (B)および(C)に対する命令によりDTE RM211 (A)を定義する。DEF213 (B)およびDEF213 ( C)がすでに存在していれば、CP2O7はDEF213 (A)を作り、それ 以上進む必要がない。DEF213 (B)とDEF213 (C)のいずれか が存在しなければ、CP2O7は、DEF213Aを作る前にこのDEF213 を生成しなくてはならない。このようにCP2O7はTERM206 (B)お よびTERM206 (C)を要求する。TERM206 (C)の場合は、D ESC205がEXVAL (C)のみによって225TERM206 (C) を定義し、DEF213が直ちに構成される。TERM206 (B)において 、DESC205は二つの追加TERM206(D>および(E)によってTE RM206 (B)を定義する。したがって、CP2O7は他のレベルを降りな くてはならず、これらのTERM206のためにDEF213を生成しなくては ならない。CP2O7はふたたびこれらのタームのためにDESC206を要求 する。両ケースにおいて、TERM206はEXVAL225によって定義され 、したがって、DEF213が構成される。 TERM2G6 (A)を定義する場合に含まれるナベてのTERM206のた めのDEF213はすでに構成され、TERM206 (B)乃至(Eンに対応 するDTERM211 (B)乃至(E)が存在し、DEF213(Aンが構成 できる。 TERM206 (A)はここでTERM206 (A)に対応するDTERM 211 (A)を獲得できる。 階層305がトップDEF213から繰り返し構成され、さらに対応するDTE RM211を持たないTERM206だけが定義されるため、二つのDEF21 3を獲得できるDTERM211は存在せず、階層305において、それよりも 上位にあるDEF213を参照できるDEF213は存在しない。したがって、 階層305におけるDEF213は必然的に完成され、階層305におけるDE F213(A)あるいはDEF213 (A)を取り入れたすべての階層におけ るトップDEF213に一致する。 特表平4−505227 (5) 4 記述205のための記述言語 上述のとおり、CP2O7は記述(DESC)205からDEF213を作る。 DESC205の原型は、記述言語から成る。記述言語は、タームに対する命令 を指定するあらかじめ定義されたターム、ケースステートメント、外部値を獲得 するための命令から成る。 この演算にはプール演算、算術演算、テキスト連結 が含まれる。ケースステートメントとは、対になったプール式値から成る次のよ うな形式のリストである。 (boolean exp 1) value 1. 、 、 (boolea n exp n) value n(OTHERWTSE)σn(ERVII5 f−ya1ueケースステートメントを含むDEF213を評価する場合、プー ル式1乃至nが真になるまで評価される。真であるプール式に対応する値が、D EF213で定義されるDTERM211の値になる。仮に真となるプール式が 存在しなければ、σ1正RWEに対応する値がDTERM211の値となる。 原型の記述言語によって、外部値を獲得するための命令について2つのクラスの 指定ができる。第一のクラスであるASK命令は、エキスパートシステム202 のユーザの端末から値を得るとともに、端末から外部値を獲得するために使用さ れる。第二のクラスであるRECORD命令OR−タベースシステムから外部値 を獲得するために使用される。どちらのクラスにおいても、外部値は数字、テキ ストストリング、プール値のいずれでも良く、代替リテラルターム、つまりそれ 自身以外のものを表さないタームのセットから選択されたものであっても良い。 数値を獲得するためのASKは次のような形式である。 ASK NLJMBER”prompt string”このようなASK命令 を含むDEF213が評価される場合、CP2O7はプロンプトストリングを端 末へ出力し、端末から番号が入力されるのを待つ。この番号はDEF213の評 価に使用される。プロンプトストリング自身が予め定義されたタームを含んでい ても良い。その場合、ユーザは予め評価されたタームの値に応じて応答すること ができる。プール値およびテキストストリング値のためのASK命令が、数値の ためのASK命令と同様に指定される。ただし、上記の命令において、プール値 をめるさいにNUMBERがYES−Noによって置き換えられたり、テキスト ストリングをめるさいにTEXTで置き換えられるという点は別である。 多くのリテラルタームから一つを選択するASKは、次のような形式である。 ASK CH(MCEを含むDEF213が評価される場合、プロンプトストリ ングが出力され、リテラルタームの中から一つ選択するようユーザは要求される 。このリテラルタームがDEF213で使用され、DEF213によって定義さ れるDTERM211の値を計算する。 RECORD命令OR−ASK命令と同様であるが、RECORD命令OR−る 点は、外部値がデータベースにどのように配置されるか、またそのデータベース が指定された場所でどのように値を供給するかを指定する点である。 5 シェル201およびシステム202の命令:図4ある人が詐欺にあったかど うかを決定する定義階層を利用しながら、シェル201の命令について詳細に説 明する。法的に詐欺と定義するには、ある関係者が他の関係者に故意に嘘を告げ 、告げられた関係者がその嘘のために損害を被らなくてはならない。図4に法的 定義の階層に対応するDTERM211の階層を示す。CP2O3がDEFIN E FRAUDコマンドを受け取ると、図4の階層305を作成しはじめる。C P2O3がTERM206を通過しCP2O7へ達する。このCP2O7が、定 義を行うエキスパートへDESC206を要求する。 エキスパートがDESC206に KNOWING MISREPRESENTATION AND D日INP任 AL RELIANCEを与える。このDESC206にはさらに二つのTER M206およびプールAND演算子が含まれる。このようにして、FRAUDの 値は、TERM206に対応しかつそれらへAND演算を行うDTERM211 の値を得てから計算される。 この二つのTERM206は未定義のため、CP2O7はそれらに対する定義を 要求する。エキスパートがDESC205にMISREPRESENTATTO N AND DEFENDM’r KNEW MISREPRESENTATI ONをKNOWING MISREPRESENTATION用として与え、ま たDETRIMENTAL RELIANCEのためにPLAZNTIFF A NDLoss BY PLAINTIFFをDESC205へ与える。ここでも TERM206は未定義のため、CP2O7がそれらに対する定義を要求し、エ キスパートが図4に示されるような定義を与える。CP2O7が定義をいかなる 順序で要求しようと、好ましい実施例では、次の未定義TERM206へ移る前 に、与えられたTERM206を定義するのに必要なすべてのTERM206を 定義する。 上記の例ニオイテ、MISREPRESENTATION、DEFENDANT  KNEW MISREPRESENTATIONlREIjANCE BYP LAINTIFF、Loss BY PLAINTIFFV)ためのDESC2 05はすべて、ASK YES−No命令において使用されるシステムにより定 義されたDTERM211だけを含むので、CP2O7はここで、階層のすべて のタームのためのDEF213を生成できる。この階層におけるすべてのDTE RM211の値は、結局、FRAUD定義を利用するエキスパートシステム20 2のユーザからASK YES−No命令が要求する値次第である。また結局、 原告が自分に起こった出来事について何と言ったかにかかってくる。 エキスパートシステム202において、FRAUD定義階層は、エキスパートシ ステム202のユーザがWHAT FRAUDコマンドをCP2O3へ入力する ことから使用開始される。CP2O3は対応するTIE219用WHATFRA UDIEC217を生成する。TIE219はここで、そのDEF213を評価 すルことでFRAUDの値を決定する。決定するためには、CP2O3は階層内 の他のDTERM211のための、KNOWING MISREPRESENT ATIONから始まるDEF213を評価しなければならない。KNOWING  MISREPRESENTATIONを評価するには、MI 5REPRES ENTATIONを評価しなければならない。このDTERMを評価すると、結 果的にそのDEF213においてWHAT YES−No命令を実行したことに なり、TiF419はプロンプト「彼はあなたに嘘をついたか?」を出力する。 もしユーザが「NO」と答えれば、MISREPRESENTATIONli偽 となり、TIE219はTRES227をユーザへ返し、詐欺ではないことを示 す。 もしユーザがrYESJと答えれば、TIE219はDEFENDANT KN EW MISREPRESENTATIONを評価し、これによってふたたびユ ーザへ質問がなされる。その質問に対する応答により、評価は継続されるかある いは終了する。TIE219はFRAUDの値を計算してしまうまで上述のよう に進む。 上述のように、エキスパートシステム202のユーザは、エキスパートシステム 202がどのようにしてFRALD+:対してその値にたどり着いたのかを決定 するためのHOWユーザコマンドを使用することができる。 (MISREPR ESENTATIONの定義において)「彼はあなたに嘘をついたか?」と聞か れた時にユーザがrnoJと答えたとすれば、原型におけるTIE219は次の ように出力することでHOW FRAUDに対して応答する。 FRALrD &は、 (KNOWING MISREPRESENTATIO N)カ’FALSEである場合に(KNOWING MISREPRESEMr ATION AND DETRrMEFJTん−RELIANCE)であると定 義される。 上述のように、DP207はDTERM211のDEFUN式内にDTERM2 11のためにDESC205を配置し、TIE219も、TIE219がDEF 213においてDTERM211のDEF213を評価するさいに受け取る外部 値を格納する。HOW命令を実行する場合、問い合わせされているDTERM2 11の値を獲得する必要が生じた場合に、TiF419はまず問い合わせされて いるDTERM211のためにDEF213からDESC205を取り出して出 力し、さらにDEF213においてDTERM211を評価する。ここでDTE RM211は、その値と共に出力される。ユーザがさらに問い合わせをしたいな ら、HOW命令において出力されたDESC205で指定された他のDTERM 211に対してなされるHOW命令を繰り返せば良い。 上述でも触れたように、外部値を要求されたさいに値のかわりにWHVコマンド で応答することができる。FRAUD例の場合、 「彼はあなたに嘘をついたか ?」というTIE219の問い合わせに対してユーザがWHVで応答したとすれ ば、TIE219は、 MISREPRESENTATIONは、MISREPRESENTATION ANDSUBJECrKNEWMISREPRESENTATIONであると定 義されるKNOWrNG MISREPRESENTATIONの値を決定する ために必要である。 と応答し、質問を繰り返す。 その上、WHYコマンドに応答するために使用される情報は、FRAUDを定義 するために使用される階層のDEF213に格納されたDESC205から送ら れる。ユーザがこの点に関してさらに知りたい場合には、WHYコマンドの応答 の際に、と述のDTERM211に対して使用したHOWを用いることができる 。 6 原型実施例のLISP環境:図5 これまでシェル201およびシステム202の構造ならびに命令に関する概念的 な大要を説明してきたが、ここから第一原型を実現する場合について詳細に説明 する。 第一および第二の原型実施例はLISPプログラム言語で実現することができ、 L I S PR境で実行できる。LISPプログラム言語およびその環境は、 原型やプログクシ1ンエキスパートシステムを実現するために使用されることが 多く、エキスパートシステム技術の中で最も有名である。原型実施例のために使 用される具体的なLISP方言は、ガイ・L・スチール・Jr著rcOMMON  LISP、the LanguageJ (デジタルプレス社 1984年) におし1て発表されたC0MM0N Lr5Pである。LISP環境および言語 につし)ては、原型実施例の命令方式を明快に理解するのに必要最小限なだけ、 ここに記述する。 第一に、プログラム内の記号で表されるデータ処理ではなく、主に記号処理を扱 うという点において、LISPはFORTRANあるいはPASCALのような 言語とは異なる。LISPプログラムの基本的な要素はアトムである。アトムは 、ABCのような記号でも、定数であっても良い。この要素がリストによってプ ログラムに編成される。リストは構成要素を持たなくても、あるいはアトムや他 のリストを含む構成要素を持っていても良い。リストは括弧で括られた構成要素 から成る。 (ABC)は、記号ABCという一つの構成要素から成るリストで ある。LISPには、リストの第一記号が関数を表し他のアトムが関数の引数を 表すリストのような関数がある。たとえば、加算関数はLISPにおし1て記号 子で表され、 (+23)はアトム2および3に対して十命令が行われると1/ )うことを指定する。LISPインタプリタによって評価される場合、値を有す るすべてのアトムあるいはリストはフオームと呼ばれる。5および(+23)は フオームであり、もし記号ABCが値を持っていれば、それがフオームである。 関数はDEFUN関数によりLISPにおいて定義される。DEFUN関数にお いて、リストの残りの項目が関数名、その引数、関数が返す値を定義する。たと えば、(defun five 05)は引数を持たず、必ず値5を返す関数を 定義する。 LISPプログラムが記号およびリストを処理することでプログラムができる。 関数定義はわずか一種類のリストなので、DEFUNによって新たな記号名が作 成された時にLISPプログラムはその記号をDEFUNへ与えることができ、 新たに作成された関数を実行するためにその記号を使用する。記号の表現方法は 記号自身であっても値であっても良い。LISPリストにおける記号のように記 号がそれ自身を表す場合、記号の直前に「°」マークがある。記号が関数を表す 場合、記号の値は関数である。しかし、関数が引数および評価されたリストと共 にリストに存在すれば、関数の実行値が結果である。このように、5は記号5を 表すと同時に5はDEFUNによって上述のように定義された関数を表し、さら に(five)は関数5の実行値を表す。 LISPプログラムはLISPfi境において書かれ、実行される。原型実施例 のために使用されるこの環境は、ワン・ラボラトリーズ社によって製造されたプ ロフェッショナルコンピュータのためにゴールド・ヒル・コンピュータ社が開発 したものである。図5は、一般的なLISP環境501の概念的なプロ7り図で ある。環境501には二つの主要要素があり、LISPフオームを評価するLI SPインタプリタ503および、LISP記号(SYM501)ならびにその定 義(SYMDEF509)を格納するLISP記号スペース505である。DE FUNおよび他のLISP関数は新たなLISP記号を作成し定義するか、ある いはすでに存在したLISP記号が評価される時にそれらを再定義する。したが って、LISPインタプリタ503は記号評価装置としてだけでなく、記号作成 装置であり再定義装置として考えることができる。 LISP環境501の命令は次のとおりである。Lr5P環境501のユーザが (frve)のようなフオームを含むリストをタイプする場合、LISPインタ プリタ503がフオームを評価するに際して、記号スペース505における記号 n■を配置し、そのSYMDEF509が何であるかを決定し、さらに5の値を 計算するためにSYMDEF509を解釈する。この場合、SYMDEF509 は、DEFUN式の評価によって作成された関数fiveに対するコードである 。さらにその解釈によって、インタプリタがユーザへ(five)の値として返 す値5を生成する。 LISPインタプリタ503はSYM507およびそれらに対応するS YMD EF509を作成することができ、記号スペース505にそれらを格納し、配置 することができるので、LISP環境501は自動的に、他の言語では実現困難 でありエキスパートシステムシェルおよびエキスパートシステムの命令に不可欠 な命令を実行する。このため、LISP環境501は上述のような環境で原型エ キスパートシステムおよびエキスパートシステムシェルを作成してきた。後述す る説明から理解できるように、本発明の原型は記号作成命令、記号定義命令、記 号配置命令を完全に利用する。 7 第一の原型実施例の概略:図6 第一の原型実施例では、LISP関数によりエキスパートシェル201およびエ キスパートシステム202の要素が実現されている。図6では関数の概略が示さ れ、関数と図2の要素およびこれら要素の入出力との関係を示す。このように、 CP2O3を構成するLISP関数は、そのラベルのついたダッシュで示された 箱に、DP207を構成する関数はそのラベルのついたダッシュで示された箱に 、さらにTIE219を構成する関数はそのラベルのついたダッシュで示された 箱に含まれる。LISP記号およびその定義を格納するLISP記号スペース5 ゜5により、TS215は第一原型において具体化される。第〜原型実施例の要 素にはLISPインクブック503が含まれるものとする。LISPインタプリ タ503は要素を構成するLIAP関数を実行し、要素によって作成されるSY M507ならびにSYMDEF509を記号スペース505 i、:配置し、S YM507およびそのSYMDEF509を命令する。 EXPERT603は、原型においてCP2O3の関数を実行スル。EXPER T603は人力ストリングを受け取り、その周囲に括弧を設け、図6中でCFO RM605と呼ばれるLISPフオームを生成し、さらにそれに対してEVAL 命令を実行する。LISPインタプリタ503がこのフオームを評価する場合に は、そのフオームでの第一の記号をLISP関数名として扱い、フオームの残り の項目を名付けられた関数のためのり1数のリストとして扱う。 EXPERT603へ入力される入力ストリングには、1)P207用コマンド 、
【 すなわちDEFINE、REDEFINE、UNDEFINEの各コマン ドがあ1 リ、サラニT I E 219用:+vンF、tftbちWHAT、 HOW、ASSUME、RESET、DEFrNITION、5AVE%WHY 、RESTORE(7)各コマンドがある。DEFINE、REDEFINE、 UNDEFINEは図2のDPC204へ対応し、残りのストリングは同図のl EC217に対応する。第一の原型実施例では、EXPERT603においてエ ラー検出が設けられていないが、商用の実施例においてはEXPERT603は 不適当な人力を検出し、それに対して応答するコードが含まれる。 図6から理解されるように、DP207はLISP関数すなわちDEFINE。 REDEFINE、UNDEFINEによって、第一原型において実現される。 EXPERT603がFRAUDのようなTERM206と共にDEFINEコ マンドを受け取り、それをLISPインタプリタへ(DEFINE FRAUD )として提供した場合、LISPインタプリタ503は関数DEFINEを引数 FRAUDと共に呼び出す。DEFINEはユーザからDESC205を要求し 、DESC205を使ってFRAUDのためのDEF213を生成する。以下に おいてさらに詳細に説明するが、こうして呼び出された結果が、DEFUNなら ば下記のようなFRAUDと名付けられたLISP関数である。 (defun FRALrD O (prog2 (pop Arg−5tack) FRAUDを定義する場合に、KNOWING MISREPRESENTAT IONおよびDETERIMENTAL RELIANCEおよびそれらの定義 に必要なりTERM211がすべて、L、ISP関数を表すLISP記号として 定義される。ANDはその引数に対してAND命令を実行する予め定義されたL IsplSil数である。関数FRAUDによって返された値はAND命令の結 果である。 LISPIMI数を表1LISP記号トシテ定義すt’Lf:DTERM211  if、以降、757M615と呼ぶこととし、DEF213を原型において実 現するその定義をTDEF617と呼ぶ。LISPインタプリタが、DEFIN E関数への応答で757M615およびTDEF617を生成する際に、それら は記号スペース505に配置される。第一原型のTDEF617が図7に示され る。図7に示されるように、それぞれのTDEF617はTFUNC701,T SYM615.757M615の定義のソースであったDESC205の修正コ ピーTDESC705よって表されるLISP関数、そして757M615のた めのエキスパート202のユーザによって指定された最後のTEXVAL703 を含むTEXVAL703を含む。 DP207の残りの関数は、DEFINEと同様にEXPERT603から呼び 出される。REDEFINEはまずLISP命令を利用し、LISP命令によっ て再定義中のTSYM615用TDEF617からTFUNC7Q1およびTD ESC705を取り除き、TDEF617のTFUNC701およびTDESC 705に新たな値を4えるためにDEFINEを呼び出す。UNDEFINEは 、T S YM 615を新たに定義せずにTFUNC701およびTDESC 705を取り除くだけである。 第一原型実施例601においてTIE219を作動させるには、LISPインタ プリタ503が、lEC217を表すEXPERT603からCFORM605 を受け取った時、CFORM605において指定されたTIE219内の関数を 実行する。TIE219内の関数が実行されると、757M615からできたフ オーム(TFORM639)をインタプリタ505へ与える。インタプリタ50 5はフオームを評価し、結果(TFORM RESULT)を実行中の関数へ返 す。 TIE219の関数はTIE219、ARG−3TACK635、T E RM S−5TACK613、SYM−BOUND−LISTのf−夕構造を利用する 。 ARG−5TACK63’5は757M615を格納するために使用され、同時 にARG−5TRACK635を定義する757M615の値が計算される。上 述の手続きFRAUDのためのコードかられかるように、FRAUDを定義する AND命令が実行され、その後ARG−3TACKからポツプする前に、記号F RAUDはARG−3TACKヘブノシユされる。TERMS−5TACK61 3は757M615のスタックである。このスタ7りはいつ757M615のT DEF617が作成されたかにより順序付される。第一の757M615はボト ムで作成されたそのTDEF617を有し、最後の757M615はトップで作 成されたものである。詳細に後述するが、最後の757M615は通常そのTD EF617が定義階層のトップにある。SYM−BOUND−LIST637は 現在TSYM615へ割り当てらt’しているEXVAL225を有する757 M615のリストである。 TIE219におけるLISP関数であるWHAT関数619が実行されるのは 、EXPERT603へのWHATコマンドに対して応答する場合である。この コマンドはフオームWHAT DTERM611を有する。FRAUDの場合で あれば、EXPERT603が(WHAT FRAUD)へ変化するWHATF RAUDである。WHAT間数619はまずり、ISP関数を用いてその引数が 757M615であるかどうかを決定し、もしそうであれば、関数名である記号 を引数として扱い、関数にの場合はFRAUD)を呼び出す他のLISP関数を 使用する。この結果、FRAUD用TDEF617においてTFUNC701が 実行される。そのTFUNC701が実行されると、MISREPRESENT ATIONお!f、FDETRIMENTAL REL4ANCE用TFUNC 701が、FRAUDの値が決定されるまで、実行される。与えられたTSYM 615用TFUNC7Qlが実行された場合、与えられた757M615の値を めるのに必要なすべての757M615をめるためにTFUNC701が実行さ れる。必要なTFUNC701がすべて実行された場合、これらの実行から得ら れた値は、TRES227としてシステム202のユーザへ返される。もしTF UNC701がEXVAL225を必要とするような757M615がすでにこ のような値を持っていれば、757M615はSYM−BOUND−LIST6 37上にあり、TFUNC701はTDEF617におけるTSYM615用T EXVAL703を使用する。TSYM615がこのような値を持っていなけれ ば、TFUNC701はEXVAL REQを生成し、ExvAr−22sをユ ーザから得る。このようにWHAT関数は、LISPインタプリタ503と共に 、TSYM615の値を決定する推論エンジンとして作動する。TSYM615 の定義は、外部値により決定された場合、階層のドアプレベルにある。さらに、 WHAT命令の結果として呼び出されたTFUNC701が起動し、対応するT SYM615がARG−5TACK635上にある。 HOW関数623は、TSYM615を指定するHOWコマンドへ応答するさい に実行される。HOW関数623はそのTSYM615を引数として扱い、他の LISP関数および引数TSYM615の付いたSYMBOL−FUNCTIO Nを用いてリストを得る。このリストはDEFUNと共に用いられ、TSYM6 15および他のLISP関数に対応するTFUNC701を定義し、TFUNC 701における第三のリストにおける第三の要素を獲得する。上記のFRAUD 関数より理解できるとおり、この要素は、関数の債が得られた命令を定義するリ ストである。すなわち、FRAUDの場合、 (AND (KNOWING M ISREPRESENTATION) (DETRIMENTAL RELIA NCE)) というリストである。HOWM数はこのリストを検索し、TIE2 19のDEFINITION関数を用いて、HOWコマンドで使用されるTSY M615用TDESC705を表示する。さらに、TFUNC701から検索さ れたリストのTSYM615を評価し、適当な説明文を付して結果を出力する。 TSYM615のN酒中、ExVAL REQへ応答するさイニ、エキスハート 202のユーザは、WHVコマンドをEXPERT603あるいはTIE219 のどちらにも入力することができる。WHY関数は引数としてのTSYM615 の有無にかかわらず実行できる。TSYM615があれば、関数は、トップのA RG−5TACK635においてTSYM615で作動する。ARG−5TAC K635は評価中であるTFUNC701に対応するTSYM615であり、そ の評価によってユーザが応答しているEXVAL REQが生成された。TSY M615がない場合、関数はユーザから与えられたTSYM615で作動する。 いずれの場合も、次のステップではARG−5TACK635において前述のT SYM615を配置する。このTSYM615はTFUNC701に対応する。 TFUNC701の評価は、WHYによって処理中のTSYM615に対応する 関数評価となる。前述のTSYM615が存在しなければ、WHVコマンドは無 意味であり、対応するメツセージがユーザに送られる。前述のTSYM615が 存在する場合、DEFINITIONを用いて、適当な説明文を付して前述のT SYM615のための定義を出力する。 DEFINITION閏数において、関数を実行するEXPERT603へのコ マンドは、TSYM615を引数としても良いし、引数がなくとも良い。もしT SYM615を引数として用いれば、TDEF617のTDESC705が出力 される。引数がなければ、TERMS−5TACK613上のすべてのTSYM 615に対するTDESC705が出力される。 ASSUME関数は、TSYM615および値を指定するASSUMEコマンド で呼び出される。TSYM615は、そのTFUNC701がExVAL225 を要求するものでなければならない。A S S OMEは、WHYコマンドが 成功する前にTSYM615が再評価されるようにするために、まずARG−5 TACK635を空にし、引数として受け取られた値へTDEF617のTEX VAL703をセノトシ、その値がTEXVAL703を持っていることを示す ためにSYM−BOUND−LI Sr113上にTSYM615を与える。 RESET関数は、TSYM615を指定することもしないこともあるRESE Tコマンドで呼び出される。TSYM615が指定された場合、TSYM615 に対応するTDEF617のTEXVAL703だ+fがり七ノ)# れる。T SYM615が指定されない場合、すべてのTEXVAL703がリセットされ る。 RESET関数はまず、上述のような理由からARG−5TACK635を空に する。もしTSYM615が指定されていれば、RESET関数はTSYM61 5からTEXVAL703を解放するとともに、効果的にTDEF617から取 り除き、ざらにSYM−BOUND−L I 5T637からTSYM615を 取り除く。TSYM615が指定されなければ、RESETは上述の命令をSY M−BOUND−LI 5T637のTSYM615ごとに実行する。 5AVE関数は、TSYM615のためのTDESC705が後に続く、それぞ れのTSYM615のためのDEFINEコマンドを含むファイルを作る。DE FINEコマンドは、TSYM615がTERMS−5TACK613に生じる 順序で生じる。5AVEが作動すると、TERMS−5TACK613の各TS YM615のためのファイルへ、ストリングDEFINE、TSYM615を表 すストリング、TSYM615用TDESC705を表すストリングを出力する 。結果ファイルには、TDESC705の基となるDESC205がDP207 へ人力された順序でTDESC705が含まれる。 RESTORETjSm数は、前以て退避されたTSYM615を復元する。復 元するには、ファイルに対してLISPロード命令を実行する。ロード命令にお いて、ファイルのLISP記号が評価される。この場合、評価の結果、TSYM 615が生成され、復元されたファイルのDEFINEニアマントで指定された TDEF617を生成する。 10 DEFINE607の詳細な説明:国8図8は、DEFINE関数および DEFINEによって実行された関数が、与えられたセントのTSYM615た めにTDEF617の階層をどのようにして再帰的に作成するかを示す。上述の とおり、TDEF617の階層を作成する方法によって、それぞれのTERM2 06が完全に定義され、与えられたTERM206が唯一の定義を持つというこ とが保証される。 図8はDEFINE、DEFINEにより呼び出された優関数、TSYM615 およびTDEF617が作成された場所から送られたデータが関数間を流れる方 法を示す。 DEFrNE607ばTERM206からDTERM211 を生成する。DE FINEがDTERM211を返した時に、DTERM211に対応するTSY M615およびTDEF617が作成されている。DEFINE607はEXP ERT603およびRESTORE633によって呼び出される。さらにDEF INE607は、ひ、!:’)il’lc!たはPROCESS−FUNCTI ON811i、mよって再帰的に呼び出される。EXPERT603は、DEF INE記号および定義されるべきTERM206を含むCFORM605を与え る。RESTORE633は、DEFINE記号および事前に退避されたDTE RM211のコピーであり、このDTERM211のためのTDESC705の コピーであるTERM206を含むCFORM605を与える。DEFINE6 07が再帰的に呼び出された場合、定義中である他のTERM206のDESC 205において使用されるTERM206が入力される。 通常、TERM206は単一記号である。しかしながら、DESC205がケー スステートメントを含む場合、TERM206はリストであっても良い。その場 合、DEFINEはC0NVERT809を呼び出してこのリストをLISPフ オームへ変換し、再帰的に呼び出してLISPフオームの未定義であるそれぞれ のTERM206を定義する。次に、DEFINE607がTERM206がL ISP記号かどうかを決定する。そうでなければ、DEFINE607はTER M206をそのまま返してくる。もしLISP記号であれば、DEFINE60 7が、TERM206はRESTORE633に手えられたものかどうかを決定 する。もしそのとおりなら、DEFINE607はTERM206およびTDE SC705のコピーをGETDEF805へ与え、GETDEF805、つまり 要素がTERM206であるリストによって返された値を返す。TERM206 がRESTORE633に与えられたものでなければ、DEFINE607はす でにTERM206用TSYM615が存在するかどうか、あるいはTERM2 06がリテラル(つまり、TDESC705のコピーが存在しない)であるかど うかを決定する。いずれかの場合であれば、DEFINEは要素がTERM20 6であるリストを返す。他の場合が真でなければ、GETDEF805は、TD ESC705のコピーをとらずにDEFINE607により呼び出される。 GETDEF805は未定義ターム(UTERM)803をDEFINE607 から受け取り、そのタームのためのTDESC705のコピーも受け取ることが できる。最初の場合、GETDEF805はDESC205をユーザから獲得す る。第二の場合、単にTDESC705を用いる。次にGETDEF805はC 0NVERT809を呼び出してGETDEF805をLISPのフオームであ るCDESC807へ変換する。次に、UTERM803およびCDESC80 7が、PROCESS−FUNCTION811へ与えられ、これがUTERM 811用TFUNC701を返す。最後に、GETDEF805はTSYM61 5をTERMS−5TACK613へ配置し、DEFINE607に対するUT ERM803に対応するDTERM211から成るリストを返す。 C0NVERT809はDEFINE607あるいはGETDEF805により 呼び出すレる。C0NVERT809は+のxNvOKERからDESC205 を受け取り、LISP7#−ムのCDESC807へ変換L、INVOKERへ CDESC807を返す。PROCESS−FUNCTION811はUTER M803およびCDESC807を受け取り、UTERM803をDEFINE −FUNCTION813へ通過させ、DEFINE−FUNCTION813 からTFUNC701を受け取り、GETDEF805へTFUNC701を返 し、UTERML805を生成する。UTERML805は、まだ定義されてい ないCDESC807からのUTERM803のリストである。PROCESS −FUNCTIONはUTERML805上のそれぞれのUTERM803ため のDEFINE607を呼び出す。DEFINE−FUNCTION813は最 終的にTFUNC701のためのDEFUNを作成し、評価し、これによってT FUNC701を作成する。DEFINE−FUNCTION813がTFUN C701をPROCESS−FUNCTION811へ返し、PROCESS− FUNCTION811は次にGETDEF805へ返す。 上述より理解されるように、DEFINEを呼び出すためのTERM206を定 義するのに必要なすべてのTERM206が定義されてしまうまで、DEF f NE607が再帰的に呼び出され続ける。TERM206が定義されてしまった Vf点でのみ、DEFINE607はTERM206に対応するDTERM21 1を返す。シェル201のユーザは与えられたTERM206を定義するのに必 要なすべてのTERM206を定義する必要があり、TERM206に単定義の みを与えることができるため、DEFINE607によって、TERM206用 セット定義が完了し、首尾一貫することが保証される。 11 原型実施例2:図9 原型実施例2には、ユーザに対するさらに優れたインタフェースやユーザのエラ ーに対してさらに強力な回復力を有するといった原型実施例1よりも多くの改良 点が含まれる。原型実施例2に含まれるもっとも重要な改良点は、図9の概略図 に示されるTDEF617およびWHATに関する代替実施例である。 TDEF617と同様に、TDEF901にはTDESC705およびTEXV AL703が含まれる。ただしTFUNC701は含まれず、二つの新たなフィ ールドTFORM903およびTTYPE905が含まれる。原型実施例1では 、定義されるべきTERM206が記号スペース505にすでに存在する他のL ISP記号に対応するということが困難であったため、これを解消するためにこ のような変更が加えられた。この場合、TERM206用DEFINE607に より生成された定義であれば、事前に存在する記号定義に取って代わってしまう 。この問題は原型実施例2において解決できる。TFUNC701をTFORM 903と、つまりそれ自身関数としては実行できないがTIE219においてE VALUATOR関数911によって実行できるLISPフオームと置換するの である。TTYPE905には、TFORM903がEVALUATOR911 によって実行された場合、どんな種類の値が返されるかについての情報が含まれ る。 図9の残りの部分は、原型実施例2におけるWHAT関数907とEVALUA TOR911との関係を示す。WHAT907はEXPERT603から上述の ようにWHATCFORM605を受け取る。しかし引数としてWHATに与え られたTSYM615に対して惟にLISP評価命令を行う代わりに、WHAT 907はTSYM615用TDEF901から、TFORM903をEVALU ATOR911へ与える。EVALUATOR911は次に、TFORM903 で指定された命令を実行するためにLISPフオームを生成し、Lr5Pインタ プリタ503へ与える。LISPインタプリタ503はLISPフオームの評価 結果をEVALUATOR911へ返し、EVALUATOR911はこれらの 結果をTRES227に変換し、WHAT907へ返し、次にWHATはTRE S227をユーザへ返す。 12 定義型エキスパートシステムに関するさらなる開発本願において上述した 定義エキスパートシステムをさらに発展させたところ、定義型エキスパートシス テムには事前に考えられていたよりももつと輻広い適用性があることが判明して きた。さらに発展させることで、タームを定義したり新たな値の型を開発させる 場合に指定される、数多くの新たな命令を作成できるようにもなった。以下に追 加する資料では、まず定義エキスパートシステムがアプリケーション開発システ ムとしてどのように利用されるか、またいくつかの新たな命令がこのような定義 型エキスパートシステムに対してどのように有用であるを説明し、次に他の新た な命令および新たな値型を開示する。 13 定義型エキスパートシステムを利用したアプリケーション開発システム歴 史的にこれまでのコンピュータ用アプリケーションは、C0BOLやC言語、そ してアプリケ−シコンが開発中であるコンピュータシステムに対する専門知識を 持ったコンピュータプログラマによって開発されてきた。このために多くの不都 合な結果が生じて来た。第一に、標準的なコンピュータ言語でアプリケーション を開発するのは困難な作業である。たとえ単純なアプリケ−シコンであっても数 千のステートメントが必要となる。第二に、標準的なプログラム言語でプログラ ミングするためには技術的知識が必要なため、プログラマが不足し、その結果費 用がかかる。第三に、これが最もjt要な点であると思われるが、プログラム言 語およびコンピュータシステムについては理解できるがそのアプリケーションプ ログラムに実行させようとするタスクについては理解できないプログラマと、タ スクは理解できてもプログラム言語やコンピュータシステムについては無知であ るアプリケーションプログラムのユーザとの間では、意志疎通を図ることが難し かった。その結果、ユーザが満足するようにアプリケーションプログラムが作動 するまで、何回も書き換えなくてはならない場合が頻繁にあった。 上述の問題を解決するために、近年、アプリケーション開発システムが注目され てさた。このアプリケ−シコン開発システムはタスク用であって、つまり、アプ リケーションを導入しようとする領域で働くユーザにわかりやすい言葉でアプリ ケーションを記述することができる。このようなアプリケーション開発システム の利点は自明である。多くの場合、ユーザ自身がアプリケーションを開発でき、 もはやプログラマは必要ではない。プログラマが必要な部分でさえ、タスク用ア プリケーション開発システムを利用することで設計エラーの可能性を抑え、プロ グラマとユーザの意志疎通を容易にし、開発されるべきコード量を大幅に抑える ことができる。 本願において開示された定義エキスパートシステムは、このようなタスク用アプ リケーション開発システムの一例である。先行技術のルール型エキスパートシス テムではたいてい専門知識を持ったエンジニアやコンピュータプログラマを必要 としたのに対して、本願の定義型エキスパートシステムでは、知識本体を定義階 層として表現できる者であればだれでも開発することができる。たとえば、本願 に示されるように、詐欺について法律的な定義を理解している弁護士なら、素人 でも詐欺が発生したかどうかを対話形式で決定することができるような定義型エ キスパートシステムを開発できる。同様に、銀行が申込人に対してどのように貸 付を許可するかを知っている人間であれば、定義型エキスパートシステムを開発 し、貸付が行われるべきかどうか対話形式で決定することができる。 タスク用アプリケーション開発システムとしての定義型エキスパートシステムは 、定義におけるいくつかの新たな演算子によってますます有用になってきた。 この演算子によって、定義が属するタームが評価される場合、値を獲得するだけ でなくコンピュータシステムに命令を実行させることができる。これらの新たな 演算子だけでなく、定義型エキスパートシステムは、高度な対話型アプリケーシ ョンを開発するための汎用アプリケーション開発システムとなった。このような アプリケーションの例が「自動リアルターjと呼べるものである。このアプリケ ーションではユーザに対話型で、ユーザに必要な空間や建築上の好みや金融状況 に関する情報を与えて、現在市場に出ている物件のイメージをユーザに示し、ユ ーザの必要性に応じる。 14 r副作用」演算子 本願の上述において説明したように、ターム推論エンジン(TIE)219(図 2)はWHAT推論エンジンコマンド2に応答し、特に定義されたターム(DT ERM)211に関してエキスパート応答を生成しする。エキスパート応答を生 成するには、定義されたターム211の定# (DEF)213を評価する。 もしこの定義が他の定義されたターム211を含んでいれば、特に定義されたタ ーム211のための定義階層においてそれぞれのターム211が定義されてしま うまで、ターム211のための定義213が評価される。上述より理解されるよ うに、この定義が評価された時にはそれぞれのDEF213が値を返さなくては ならない。しかしながら、定義が評価される場合、値を生成するだけでなく他の 機能も果たすことができる。たとえば、本願において開示されたASK演算子は このようなフオームである。 ASK NLIMBER”prompt stnng”ターム211が評価され 、ターム211の定義213がこの演算子を含んでいる場合、 rprompt  sfflngJによって指定されたプロンプトは画面に出力され、プロンプト に対するユーザの応答は、演f−Fの値として返される。この場合、ターム21 1を評価することによって、二〜ザの応答で指定された値が返されるだけでなく 、プロンプトを画面に出力したり入力値を受け取るといった画面関係の命令を実 行できる。これらの付加的な命令は、定義213の評価した際の副作用であるた め、一般に「副作用」と呼ばれている。 定義型エキスパートシステムをさらに開発する中で、その第一目的が演算子の生 成する副作用であるような演算子を設けると有益であることが判明した。好まし い本実施例において、演算子が成功した場合には、これら演算子はそれぞれ、定 義のために演算子が使用されるタームにプール値TRUEを与え、成功しない場 合はエラー表示する。さらに、演算子にとって必要な情報それ自身が、ターム2 11によって指定される。好ましい本実施例の演算子には次のようなものがある 。 C0PY 演算子で指定された一つのファイルを、同じ演算子で指定された別の ファイルヘコビーする。 DELETE 演算子で指定されたファイルを削除する。 DISPLAY 画面へ情報を表示する。情報のソースは演算子で定義されたテ キストストリングでも、テキストファイルでも、画像でも良い。 PRINT 演算子で指定されたテキスト式を同じ演算子で指定されたファイル DISPLAY演算子について詳述すれば、上記の演算子に含まれる原理のよい 例示となる。 15 DISPLAY演算子に関する詳細な説明以下、DISPLAY演算子に 関する構文および間数について述べたあとに、演算子が実現できる内容について 説明する。DISPLAY演算子の構文は次のような規定分用いて示される。 1 大文字名はターム211か式を示す。式は、ターム211が値を有するもの ならどんなものでも良い。 2 矩形括弧は任意項目を示す。 好ましい本実施例において、DISPLAY演算子は二つに分類される。ある演 算子で定義されたターム211の評価はテキスト表示される。その他の演算子で 定義された場合には、画像表示される。最初の場合、二つの演算子がある。DI SPLAYお!びDISPLAY FILEt’ある。DISPLAY演算子ヲ 用いた場合、表示されたテキストは定義型エキスパートシステムに内在しており 、DISPLAY FILE演算子を用いた場合、テキストはMS−DOSファ イルに含まれている。 DISPLAY演算子の構文は次のようなものである。 display TEXT−EXPRESSION [TEXT−EXPRES SrON、、、IDl5PLA、Yはこのように、表示されるべき一つ以上のテ キスト式のリストを指定する。テキスト式は、テキストストリングを値として与 える定義型エキスパートシステムにおいていかなる構造でも良い。したがって、 式は定数でも、テキストストリングを評価するターム211rも、定数とターム 211の組み合わせでも、あるいはテキストストリングの結果を与える演算子− でも良い。もちろん他の定義の場合と同様に、DISPLAY演算子シニお演算 子シム211がまだ定義されていなければ、定義プロセンサ207がタームのた めに定義を要求する。 たとえば、ターム211 SAY Hiが次のような表示演舞子で定義されたと する。 display file TEXT−EXPRESSIONすると、評価され た場合、ターム211は「Hl」を画面に表示する。 DISPLAY FILEを用いた場合、定義型エキスパートシ、ステムに対し 。 て外部であるM S −D OSファイルに、テキストは含まれているo D  K S P LAYF丁LEの構文は、 display 5IcTEXT−EXPRF’5SIONである。この演算子 を用いるには、TEXT EXPRESSIONの値がMS−DOSテキストフ ァイル名でなければならない、この演算子で定#されたターム21 ltN価す ることT、TEXT−EXPRESSIONによって識別されたファイルの内容 を画面表示することができる。。 二つの画像表示演算子のうち、最初の演算子はDISPLAY PICTURE である。この演算子は、数多く存在する標準的な画像形式のうち一つの形式を用 いて、MS−DOSファイルに格納された画イ象を表示する。構文は次のとおり である。 display picture TコEXT−EXPRIミ5SION [5 1!]TEXT−EXPRESSIOHの値は、画像を含んだMS−D0505 フアイルなくてはならない。5IZEでは、画像の初Mづイズを決定する四つの 値、捧小、小、ノーマル、拡大のうち一つを指定できる。この演算子で定義され たターム211が評価される場合、フrイル内の画イ象が画面表示される。 モ’)一つの画像表示演算子は、ワン ラボラトリーズ社の画f象管理システム PC−WIISで提供サレル画イ象を表示する。PC−WI I Sl、t、M  S −D O5WINDOWS画面表示管理システムを実行できるTBMPC タイプのパソコン上で実現される。この演算子の構文は次のとおりである1゜d isplay ””!1vTIS”’ TEXT−EにPRESSIONこの場 合、TEXT−EXPRESSIONのイ直はPC−W丁TS画イ象ファイルの バス名でなければならない。この演算子で定義されたターム211が評価される 場合、pc−wr rsはファイル中の両′l象を画面表示する。 上述の演算子のJうな副作用演算子は、LISP環境503 (図5)に格納さ れ、LISPインタプリタ503によって実行されるLISP関数によって実現 テキル。T−ISPfi境501には組込LISPI/l数が含まれており、こ れはMS−D OSファイルをオーブンし、クローズし、読み込み、削除し、与 えられたMS−D05ファイルが存在するかどうかを示すことができる。これら の関数はLISP関数、DELETE、RENAME、DISPLAY、DIS PLAYFILEの各演′に7−を実現するために使用される。その他の演算子 は、MS−DO5で実行されるべきプログラムおよびそのプログラムのためのパ ラメータを指定する組込LISPsys :dos関数によって実現される。L ISPインタプリタがこのsys:dos関数を実行すると、ソフトウェアがM S−DO5へ割り込む。つまり、LISPインタプリタの実行中に割り込み、s ys:dos関数で指定されたプログラムを実行する。sys:dos関数で指 定されたプログラムが終わると、LISPインタプリタが実行再開する。 画像のためのDISPLAY演算子は、sys:dosを用いた例として挙げる ことができる。DISPLAY PICTUREの場合、sys :dosによ り実行されたプログラムが表示されるべき@像の形式を決定し、ii!i(iを 表示する。 表示のあとでLISPインタプリタが実行再開する。PC−WI I S画像を 表示するために使用されるDISPLAYバージョンの場合、この演算子は次の ような条件を前提とする。すなわち、ユーザはまずMS−DO5WINDOWS 表示管理プログラムを実行し、続いてPC−WIIS画像システムをイニシャラ イズするノニ必要な場合、MS−DO5WINDOWSからPC−WIISを実 行し、その上でMS−DO5WINDOWSから出て本発明の定義型エキスパー トシステムを実行する。これらの環境のもとで、LISPsys:dos関数は MS−DO5WINDOWSの下でsys :dos関数で指定されたプログラ ムを実行できる。好ましい実施例において、sys:dos関数で指定されたプ ログラムは、関数で指定された画像ファイルをオープンするpc−wrrsルー チンを呼び出し、画イ象を画面表示する別のPC−Wr fSルーチンを呼び出 し、さらにユーザのキーストローク人力に応答するために、画像ファイルをクロ ーズする第三のPC−WI ISルーチンを呼び出し、復帰する。復帰すると、 LISPインタプリタがふたたび再開される。上述の自動リアルタアプリケーシ ョンでは、家の画像がPC−WIISによって管理され、DISPLAY ”* WIIS*”演算子によってその画像を表示できる。 16 CALL演算子 CALL演算子は、その演算子で定義されたターム211が評価される場合、呼 び出される非LISP関数を指定する。関数によって返された値がタームの値と なる。上記より明らかなように、非LISP関数は、主に返した値のために呼び 出されても、その実行の結果生成される副作のために呼び出されても良い。この 演算子は次のような構文を有する。 cauTE)σ−EXPRESSION [、using 5PEC−LISη [、returning NLrMBER−5PECI評価時に、TEXT−E XPRESSIONは、呼び出し中の非LISP関数名を与えなければならない 。この関数はCプログラミング言語のインタフェース規格に従っていればいかな る関数でも良い。5PEC−LISTは、呼び出し中の非LISP関数のための 実引数値を指定する式のリストである。好ましい実施例において、この式はスカ ラ値あるいはストリング値を持っていなければならない。非LISP関数が数学 的関数であれば、関数が返す値の形式はNUMBER−5PECを用いて指定で きる。倍長、浮動、整数、倍長、符号のない整数、符号のない倍長から選択でき る。デフォルトでは整数である。 ティングシステムの介入が不必要である場合、LISPインタプリタは非LIS Pプログラムを呼び出すことができる。この外部プログラムインタフェースには 、呼び出し演算子で指定されたすべての関数を実行可能コードおよび呼び出しを 準備し実行可能コードを有するEPl、EXEファイルが含まれる。これら実行 可能コードをEPl、EXEへリンクするりンカを利用するだけで、EPl、E XEファイルへ新たな関数を追加することができる。好ましい実施例において、 EPl、EXEの実行可能コードが基本メモリにおいて実モードで呼び出しを実 行すると同時に、LISPインタプリタは拡張メモリでプロテクトモードで実行 されるために、呼び出しを県備し実行するのは複雑である。したがって、呼び出 し演算子で定義されたターム211が評価される場合、プロ七ノサはプロテクト モードから実モードへ切り替えなければならず、さらに呼び出し演算子で指定さ れた関数を呼び出すEPl、EXEのコードが、必要な変換を実行しながら、実 引数の値を拡張メモリから基本メモリヘコビーしなければならなし1゜復帰する 場合17 テーブル演算子と値 RESS、置EPHONEおよびそれぞれのクライアントごとの行を有すること ができる。あるクライアントの行はこのような形である。 NAME ADDRESS 置EPHONESmith、 John 303  W、 First St、、 New York、 NY、 301−666− 5555NAMEをキーとすれば、行はrSmith、 JohnJによって指 定できる。 改善された定義型エキスパートであれば、タームにより二種類のテーブルを表ル から得ることができる。第二のテーブルは照会テーブルである。照会テーブルは 、照会演算子により基本デープルあるいは別の照会テーブルから生成されるテー ブルである。たとえば、テーブルNEW YORK CLIENTSはCLIE NTSから定義でき、そのためには照会演算子を実行させて、ADDRESSが ニューヨーク市を指定したCLIENTSからすべての行を抽出する。 テーブル演算子はどちらのテーブルでも使用できる。演算子には次のようなもの がある。 ターム211により指定されたフィールドの値を行から得るための探索演算子。 与えられたターム211により指定されたテーブルのすべてのフィールドから引 き出された値を得るための集合体演算子。 与えられたターム211により指定されたテーブルのすべてのフィールドから引 き出されたプール値を得るための限定演算子。 以下では、まず基本テーブルの定義に関して説明し、続いて照会テーブルの定義 、最後にテーブル演算子について説明する。 18 基本テーブルの定義 好ましい実施例では、その値として基本テーブルを持つようなターム211を定 義するために使用される構文が、基本テーブルを定義できる。このテーブルは数 字キープイールドを利用するかあるいは文字列キーフィールドを利用する。 数字キープイールドを持ったテーブルの場合、NUMBER−TERMのターム 211は、キーとして使用される数値を有するテーブルの列を識別する。テキス トキーフィールドを持った基本テーブルの場合、TEXT−TERMのターム2 11はキーとして使用されるテキスト値を有するテーブルの列を識別する。CL IENTSを定義するテーブル演算子は次のようなものである。 cable with text key NAMEテーブルの列を識別するタ ーム211はFIELD OF演算子により定義される。その構文は値が定ji 213で指定されているか、あるいは外部から得られるかによる。定義213で 指定される場合、構文はこのようになる。 field of TABLE−TERM、 value VA[λm−LIS TTABLE−TERMはテーブル値を表すターム211である。VALUE− L I STの値は定数であり、これは定義中のターム211により識別された 列に含まれる値に必要な型を持っている。定義中のフィールドが定義テーブルで キーとして指定されていた場合、リストの値の数がテーブルの行数を決める。た とえば、CLIENTSの場合、フィールドNAMEは次のように定義できる。 field of CLIErilTS、 values ”Smi山、Ada m””Smi山、 John” ”Smi由、 [)aviпh これによってCLIENTSテーブルは3行となる。 テーブル列の値が外部から得られるよう指定する構文は次のようなものである。 field of TABLE−TERM、 ask [QUOπD−TEXT  [、for every TAEI上−0R−QUERY|EXPRES SIO1’J]]] TABLE−TERMは基本テーブル用ターム211であり、このテーブル内で 定義中のターム211が列を指定する。”ask”は指定された列の値が対話形 式(二より端末のユーザから得られることを示す。QUOTED−TEXTは、 ユーザに要求するために出力されるプロンプトストリングを指定する。さらに指 定されたものがなければ、定義型エキスパートシステムは何らかのプロンプトお よび行のキーフィールド値を出力し、ユーザの入力を待つ。たとえば、ADDR ESSはこのように定義できる。 field of CLIENTS、 ask ”Whg is the ad dress ot”CLIENTSのそれぞれの行へ、エキスパートシステムは その行のNAME値が次にくるプロンプトを出力し、ユーザが住所を提供するの を待つ。さらに後述において詳細に説明するように、任意のrfor ever y TAJ!LE−OR−QUERY−EXPRESSIONjにより、入力を 特定の基準を満たす行だけに制限することができる。たとえば、CLIENTS のADDRESSは以下のように定義できる。 field of C1−圧NTS、 ask ”Please 1nput由 e address of”、 for every Q−■mTS wher e NAME is ”Smi山、 John” これによってユーザはJohn 5m曲の住所だけを要求され、この住所はrs mith、Johnjを含む行のADDRESSフィールドへそのNAME値と して書き込まれる。上述より理解されるように、与えられたテーブルはASKで 満たした列やVALUEで満たした他の列を有することができる。ASKが指定 されたフィールドを満たすために、テーブル定義のキーとして使用されれば、テ ーブルサイズは満たされるテーブルの数による。 さらに、ターム211はMS−DOSファイルに格納されたテーブルとして定義 することができる。この場合、定義213は下記のとおりである。 本発明のエキスバートンステムシェルは、メニューの順序でこのような定義に応 答する。メニューによって、アプリケーションの開発者はどのMS−DOSファ イルがテーブルデータを有するか、またテーブルの列を定義するターム211が MS−D05ファイルのフィールドとどのように関係するかを指定することがで きる。このようなテーブルの定義には、ASK演算子やVALUE演算子は含ま れない。 19 即金テーブルの定義 照会テーブルは、基本テーブルあるいは他の照会テーブル上の照会演算子により 定義されるものである。照会テーブル定義の構文は次のとおりである。 TABLE、OR−QUERY−TERM where Bα)IAAN−EX PRESSIONTABLE−OR−QUERY−TERMは、行の選択に用し )られる基本テーブルあるいは照会テーブルを指定する。BOOLEAN−EX PRESSIONは行が選択される条件を指定する。たとえば、NON JOH N SMITHTABLEは下記のように定義できる。 CLIENTS whereNAME is not ”5m曲、John”こ れによって照会テーブルは、NAMEが値rsmi山、 JohnJではなl/ 1行を除しまたすべてのCLIENTS行を結果として得る。 且述のように、 rwhere BooLEAN−EXPRESS rON J 演算子は、どの性力1這択され、”ASK”演算子を用いて基本テーブルへ対話 型で入力されるかを制御するためにも使用できる。 20 テーブル演算子 いったんテーブルが上述のように定義されてしまうと、ターム211(よテーブ ル演算子を指定することで定義できる。最も単純な演算子は指定された行からフ ィールドを選択する。このような演算子がOF演算子である。 FTEII)−NAME−TERM of ROW−5PEGFYTNG−TE RMFIELD−NAME−TERMI!その行ノフイールドを識別するターム 211である。ROW−5PECIFYING−TERMは、その定義力(−行 指定できるターム21]である。定義213はこのように一行だ番すの基本テー ブルあるし)は−行だけの照会テーブルを定義できる。たとえば、照会テーブル JOHN SMITHTABLEは次のように定義できる。 C口ENTS where NAME is ”Smi〔h、 John”JO HN SMITHTABLEはこのように一行だけであり、タームJOHN S MITHADDRESSを定義するOF演算子(よこのようGこなる。 ADDRESSofJOHNSMITHTABLE集合体演算子は、テーブル列 に含まれる部分データあるし・1よすべでのテーブルこ基づいて結果を生成する 。この演算子はテキスト値、演算値、ブールレイ直を返す。 このテキスト集合体演算子は、値から成るテキストスト1ノングをダリカ1ら作 るC。 LLECTである。ストリングのそれぞれの値の後ろ(こ(±復帰改イテ文字力 (迫力口される。この演算子の構文はこのようになる。 FIELD−TERM−TEXT−EXPRESSION+よ、TABLE−O R−QUERY−EXPRESSION+=より指定されるテープ)kF)ダI Jを識glJするターム211を含む定義を有する式である。C0LLECT7 寅算子(よ、フィールド値のFIELD TERM NAME EXPRESS ION):よ’)指定されるようなテキストストリングを作る。以降、TABL E−OR−QUERY−EXPRESSIONにはもちろん上述の〜VHE R Ei劃側子力(含まれてν)るものとする。たとえば、ターム211NAME  LISTIよこのようしこ定義できる。 collect NAME far every a」堕JSNAME LIS Tは次のような文字列値を有することになる。 フィールド名を含む式がC0LLECT演算子で使用できるという事実において 重要なのは、C0LLECT演算子で定義された値がそのフィールドから返され た値から計算できるということである。 演算集合体演算子には、フィールドの平均値、フィールドの最大値、フィールド の最小値、フィールドの合計値、フィールドの数、与えられた条件を満たすフィ ールドの割合を得るための演算子が含まれる。平均演算子が、−例として、平均 、最大、最小、合計を表すことができる。構文は次のようになる。 式FIELD−TERM−NUMBER−EXPRESSION(F)評価は、 TABLE−OR−QUERY−EXPRESSIONにより定義gttな、基 本テーブルあるいは照会テーブルにおいて数字フィールドを指定するターム21 1を含む。さらに、フィールドタームを含む式を使用することで、演算子により 返された結果を計算するよう指定することができる。 C0UNT EVERY演算子は単に指定されたテーブルの行数をカウントする 。構文は次のとおりである。 count everyTABLε−0R−QIJERY−EXPRESSIO Nたとえば、ターム211NUMBEROF CLIENTSであれば次のよう に定義できる。 罵cveryQJ9JTs 本事例t)’)f−フルCL r ENT S ヲ用イttJf、NUMBER OF CLIENTSは値3を有する。 PERCENT WHERE演算子は、テーブルの指定されたフィールド値がど のくらいの割合で指定された条件を満たすかを決める。この演算子の構文は次の とおりである。 percent TABLE−OR−QLIERY−TERM where F IELD−TERM−BOOLEAN−EXPRESSIOm TABLE−OR−QUERY−TERMは基本テーブルあるいは照会テーブル を指定し、これらのテーブルでこの演算子が実行される。また、F I ELD −TERM−BOOLEAN−EXPRESSIONは、指定されたテーブルの フィールドを一つ指定するターム211を含むプール式である。たとえば、PE RCENT JOHN SMrTF(ターA2111よ次のように定義できる。 percent CL[ENTS where NAME is ”Sm1th 、 John”rsmith、 JohnJはテーブルの3行のうちの一行なの で、PERCENT JOHN SMITHであれば値「33」をとる。 プール集合体値演算子はFOREVERYであり、これはフィールド名としてタ ーム211を含むプール式がテーブルの各行について真であるかどうかを決める 。またプール集合体値演算子としてFORSOMEがあり、これはこのようなプ ール式がテーブルのすべての行について真であるかどうかを決める。FORSO MEの構文がプール集合体値演算子の良い事例となる。 forsomeTABLE−OR−QUERY−EXPRESS[ON、REL D−TERM−BOOLEAN−EXPRESSITABLE−OR−QUER Y−EXPRESSIONは基本テーブルあルイは照会テーブルを指定し、これ らのテーブルで演算子が実行される。またFIELD−TERM−BOOLEA N−EXPRESSIONは、テーブルのフィールドを指定するターム211を 含むプール式である。例としてタームIS JOHN SMITHTHERE? の定義を挙げると、次のようになる。 for some CLIENTS、 NAME is ”Sm1th、Joh n”上述から理解されるように、テーブル値およびテーブルターム211はルー ル型エキスパートシステムに対して著しく進歩した点である。ターム211はこ こでコレクション内のデータおよびフィールドを順序付されたコレクションとし て表すことができる。さらにテーブルの演算子によって照会テーブルおよび演算 子を定義することができる。この演算子は、いずれのタイプのテーブルであって も、個々のフィールド値を検索することができ、また列全体の値に基づく結果を 計算することができる。 21 r不知J値 初めに実現された定義型エキスパートシステムの問題点は、エキスパートシステ ムによりユーザへアドレス指定された質問に対する答えをユーザが知らない場合 、そうした応答を定義型エキスパートシステムではうまく扱うことができないこ とであった。この問題点は、本発明の定義型エキスパートシステムの設計者が「 不知」値を、それぞれのクラスのスカラ値に追加でき、さらに「不知依存」の概 念をスカラ値およびテーブル値に追加できるようになったので解決された。この スカラ値およびテーブル値は、それら自身は「不知」値でなく「不知J値に依存 するものである。「不知」値が指定された場所で、本システムのユーザは「不知 」値を、システムへ入力することができる。好ましい実施例において、この値を 入力するにはファンクションキーかドロップダウンメニニーを使用する。 たとえば、「不知」値が指定され、フィールドPH0NE of CLIENT Sが、 fieLd of CLB:NTS、 ask ”What is山e tel ephone number of”と定義された場合、ユーザは「不知」を指 定することができる。そのように指定すれば、PH0NEのフィールド値は「不 知」となる。NAMEが値rsmith。 JohnJを肴する行に対する返答が「不知」であった場合、ターム211JO HNSMITHPH0NEは、 PHONEofJOHNSMITHTABLEで定義され、その行としてPH0 NEを指定し「不知」値が入ることになる。 さらにターム211PHONE LISTの値は、フィールドPH0NEがC0 LLECT演算子で定義されており、「不知依存」となる。なぜなら、PH0N Eで定義される列の少なくとも一つの値が「不知」値であるためである。単にJ 。 hn Sm油の電話番号を知らないだけだったとしたら、PH0NE L、IS T定義である、 couect PH0NE for every Q、、圧感によってこのよう な値が与えられる。 666−2222°。 さらに、この定義型エキスパートシステムでは、「不知」依存表示と値、つまり 「不知」値がその計算に含まれているという表示とを関係づけることができる。 この場合、表示により二つのことが指定される。一つは「不知」値で占有されて いたはずの債における位置であり、もう一つは列の三つのフィールドのうち一つ が「不知」値であるということである。 本定義型エキスパートシステムで使用可能なほとんどすべての演算子で定義され ているターム211の評価には、 「不知」値を持った他のターム211の評価 も含まれている。好ましい実施例において、 「不知」値が含まれるターム21 1の値を決めるために用意された一般的なルールは以下のようなものである。 1 結果値が「不知J値に依存していなければ、不知依存の表示はまったく伴わ ずに結果は返される。 2 結果値が「不知」値へ依存し、値を決めると必ず「不知」値を伴う場合、返 された結果は「不知Jであり、 「不知J依存の表示を伴う。 3 結果値が「不知」値へ依存するものの、「不知」値を伴わずに決定される値 が存在する場合、返された結果は「不知」依存の表示を伴って決定される。この ような結果は見積と呼ばれる。 最初の二つのルールの例として、オペランドの一つが「不知」値を有する場合、 「*Jで示されるMULTIPLY演算子の動きを説明する。他のオペランドが 値0を有する場合、オペランドは0を返す。結果が他のオペランド値に依存しな いからである。依右していればMULTIPLY演算子は「不知」を返す、第三 のルールの例はC0LLECT演算子である。例示されたように、列フィールド が「不知」値を持っていても、C0LLECTは結果ストリングを作る時にその フィールドを普視する。「不知」あるいは見積と共に返される「不知」依存の表 示には、評価中のターム211を定義する階層からのターム211が含まれてい る。値が、 「不知」値により影響される程度を示す見積あるいは見積情報であ る時、ターム211の値は1−不知−jに直接依存している。見積情報の内容は 、見積を生成する演算子に拠る。一般的に、見積がストリング値であれば、見積 情報にはストリングにおける位置インデックスが含まれる。このストリングは「 不知j値を持つ最初の要素が占有したはずだったストリング位置である。列のす べてのフィールド内容を調べるAVERAGEのような演算子により見積が生成 される場合、見積情報には列フィールドの合計数および「不知」値を伴うフィー ルド数が含まれる。C0LLECTのような演算子は、ストリングを生成し、か つ列のすべてのフィールド内容を調べ、結果ストリングのどの位置に最初の「不 知」値があるか、フィールドの合計数がいくらか、また「不知j値を伴うフィー ルド数がいくつであるかを見積情報が教える。 好ましい実施例において、「不知」値を検出し見積もることができる、特別な二 つのプール演算子がある。 第一の演算子は「不知」値を検出し、次のような構文である。 TEXT−NLIMBER−BOOLEAN−EXPRESSION = do n’t know式が「不知」値を持っていれば演算子はTRUEを返し、持っ ていなければFALSEを返す。これはDONT KNOW ABOUT JO HN SMITHPH0NEを定義する場合に使用されると考えられ、次のよう な構文である。 JOHN SMrrHPH0NE=don’t knowJOHN SMITH PH0NEの値はCLIENTSのJohn Sm1thの行に対するPH0N Eフイールドの値なので、DONT KNOW ABOUT JOHN SMI TF(PH0NEの値はTR[JEである。第二の演算子は見積を検出し、その 構文は、 TEXT−NLIMBER−BOOLEAN−EXPRFSSION = do n’t know esamazである。式が見積であれば演算子の値としてT RUEを返し、見積でなければFALSEを返t。ソ(’)使用例ハ、次(r) !うftPH0NE LIST rNc。 MPLETEを定義する場合に考えられる。 PH0NE LIST = don’t know cstImawここで、P H0NE LISTは見積であり、そのためPH0NE LISTINCOMP LETEの値はTRUEとなる。 22 「不知j値の実現 これまで指摘したように、演算子はof−LISP関数により好ましい実施例に おいて実現することができる。この好ましい実施例において、演算子の関数はリ ストを返す。好ましい実施例において「不知j値を実現すれば、この特徴および 組み込みLISP特殊記号NILを利用できる。LISPにおけるNILの値は 空リストであり、プール値を必要とする文脈ならば、値FALSEである。NI Lは、好ましい実施例において、「不知」を表すために用いられる。NILとプ ール値とを区別するために、本実施例では定義されたイエス/ノー演算子を備え ている。この演算子はプール演算子のように作用する。ただし、LISPプール 原始記号Tは記号YESで置換され、プール原始記号NILは記号Noで置換さ れる。 好ましい実施例において、関数により返されたリストは必ず、第一要素として、 関数により定義されたターム211が必要とする値を有する。「不知J依存がな ければ、第一要素はそれ自身リストとなる。リストの第一要素は返された値、つ まり、 「不知コを表すNILあるいは見積である。次の要素は不知依存表示で ある。返された値がNILならば、依存表示はターム211のリストである。タ ーム211の「不知」債のために「不知」値の返却が必要となる。返された値が 見積であれば、依存表示はそれぞれの要素がタームから成るリストである。この タームの「不知]値が見積の必要性および見積情報を作り出す。たとえば、PH 0NE LISTにより返された必要な値であれば、下記のようなフオームのリ ストとなる。 ぐ°555−1111 間6−222209 (PHONE 13))もちろん、このテキストストリン グはC0LLECT関数によって作られたものである。値9がテキストストリン グにおける最初の「不知」値の位置インデックス(復帰改行文字を入れて)であ る。PH0NEは、C0LLECTがストリングを得るために読む列のためのフ ィールド名である。最後の13は合計フィールド三つのうち一つが「不知J値で あることを示す。 上述の特性を有する「不知」値を備えた定義型エキスパートシステムの利点は明 らかである。ユーザが自身の不知状態を示すことができるだけでなく、本定義型 エキスパートシステムは「不知」が変化を生じさせることができるかどうかを決 め、もし変化させることが可能であれば、見積が可能かどうかを決める。さらに 「不知」依存情報によって、定義型エキスパートシステムはどのターム211が 依存ソースであるかを決めることができ、見積の場合には、見積がなされた値に 「不知」値が与える影響の度合いを決めることができる。 23 定義型エキスパートシステムを利用したドキュメント生成システムコレマ でセクションl乃至22で開示された定義型エキスパートシステムは、新しい演 算子を一つ追加するだけでドキュメント生成システムとなる。この演算子は文書 処理テキスト演算子と呼ばれる。後述においてまずこの文書処理テキスト演算子 について説明し、次いでドキュメントテンプレートの例を挙げ、その上で好まし い実施例における文書処理テキスト演算子が実現する内容を概説し、最後に好ま しい実施例を詳述する。 24 文盲処理テキスト演算子 この文書処理テキスト演算子はテキスト型のターム211を、ワン・ラボラトリ ーズ社製のWP十エディタを用いて書かれたテンプレートドキュメントの一1分 として定義するために用いられる。このwP十エディタについては、米国時。 第4633430号「ドキュメント処理システムのための制御構造」 (出願人 工−ムズ・リー・クーパー、発行日1986年12月30日)に詳細に開示さ1 ている。引用したこの特許の開示内容はすべて、本明細書の一部として開示さす る。文書処理テキスト演算子の構文は次のようなものである。 wp text [if YES−No−E)G’RESSI定義型エキスパー トシステムが演算子により定義されたターム211を評価゛る場合、ターム21 1の値はタームの定義により指定されたテンプレート部キ。 メントの一部分である。定義型エキスパートシステムがドキュメント生成シスツ ムとして使用される場合、文書処理テキスト演算子により定義されるターム21 の値は、ドキュメント生成システムによって生成されている出カドキュメン1へ 出力される。任意の構文である、 1fYES−No−EXPRESSrONが存在すれば、YES−No−EXP RESSrONがYESと評価されt1合のみ、文書処理テキスト演算子により 定義されたターム211は評価される。 Noと評価された場合は、ターム211は評価されない。YES−No−EXF RESSrONがセクション21において述べたように「不知」値と評価され人 場合は、ターム211がストリング「不知Jと評価する。 たとえば、遺言書を生成するドキュメント生成システムはターム211DIST −LIFE−INSURANCE−ON−CHILDを定義する。コf) ター  ム211はテンプレートドキュメントから条項を評価し、下記のように子供へ 生命保険を分配する。 wp texr if TRANSFER−[N5−ON−CHILD一部 T RANSFER−INS−ON−CHILD!!、質問「依頼人は子にかけたト 許 生命保険の権利を子孫へ譲渡することを望むか」に対するユーザの応答とし て定・ジ 義されるイエス/ノーターム211である。遺言書生成システムを用 いて遺言書□れ を作成する場合には、遺言書作成者がこの質問に答える。答え がイエスであれば、れ DIST−LIFE−4NSURANCE−ON−CH ILDによりII&別されたテンプレート部が遺言書に含まれる。答えがノーで あれば、テンプレート部は含まれない。答えが「不知」であれば、ターム211 の値は「不知」ストリングとなる。 上述より理解されるように、定義されたストリングタームを文書処理テキスト] す 演算子と連結させるだけでドキュメントが定義できる。たとえば、この遺言 書生ユ 成システムにはテキストタームGENERATE WILLがあり、こ れは以下テ のように定義される。 ト 遺言書タイトル; 前遺言取消; 、分配; 未成年支給; 負債支払; 場 未成年保護; 雑支給; P 遺言執行人; た この「:」は連結演算子であり、連結されるターム211はそれ自身文書処理S  テキストタームであるか文書処理テキストタームを連結したものである。この よム うに、GENERATE WILLが評価されると、その値は文書処理テ キスト欲 タームのために定義されたテンプレート部を連結したものである。ド キュメント生成において、この値はWP+ドキュメントにおいて生成される。好 ましい実施例において、WP+ドキュメントにおける値を生成するためには二つ のステップがある。第一のステップでは、文書処理テキストタームのリストであ る値が、文書処理テキストタームの表すテンプレート部が出力ドキュメントで出 てくる順番で生成される。第二のステップでは、リストのテンプレート部がテン プレートドキュメントから出力ドキュメントへリストに現れる順序でフビーされ る。 好ましい実施例では、ターム211を文書処理テキスト演算子で定義するために 二つの方法がある。第一の方法では、エキスパートシステムシェル201が文書 処理テキスト演算子を使用してターム211を定義したとき、エキスパートシス テムシェル201の要素は自動的にワン・ラボラトリーズ社製のWP十エディタ を実行する。シェル201のユーザは次いでWP十エディタを用いてターム21 1で表されるテキストをテンプレートドキュメントへ追加できる。第二の方法で は、シェル201のユーザはWP十独立したシェル201を用いてテンプレート ドキュメントを構成できる。文書処理テキストターム211の名前はテンプレー トドキュメントにある。この方法が用いられると、ユーザはテンプレートドキュ メント名をシェル201へ与える。シェル201はそこでドキュメントを読み、 テンプレートドキュメントで定義された文書処理テキストターム211を知識ベ ースへ追加したいかどうかをユーザへ質問する。ユーザがタームを追加したいな ら、シェル201がタームの定義を行う。 詳細に後述するように、テキストは他のターム211を含んでいても良い。これ らのターム211はマージタームと呼ばれる。定義プロセッサ207は、テキス トを表す新たな文言処理テキストターム211をターム記憶装置215へ追加し 、定義プロセフす207はテキスト中のマージタームを照合し、マージタームが TS215において定義さなかどうかを決める。もし定義されていなければ、シ ェル201のユーザは上記セクション5で述べたような定義を与えるよう促され る。文書処理テキストターム211が推論エンジン219によって評価された場 合、文書処理テキストタームを定義するテンプレート部におけるそれぞれのマー ジタームが評価される。文書処理テキストターム211で表されるテンプレート 1OO1の一部分が出力ドキュメントへ出力された場合、テンプレート部のマー ジタームはマージターム値によって置き換えられる。マージターム値が「不知」 であれば、この値のストリングはマージタームを置き換える。好ましい実施例で は、文書処理テキスト型で定義される他のターム211であっても良い。 25 テンプレートドキュメント:1N10図10は、好ましい実施例で使用さ れた、文書処理テキストタームを定義するテンプレートドキュメント1001の 例を示す。この実施例では、テンプレートドキュメント1001はWP十エディ タを用いて記述される。図中、文書処理テキストタームを定義するテンプレート ドキュメント1001の一部分が断片1゜O2として現れる。それぞれの断片1 002は断片ターム1003がら始まり、断片ターム1003は断片で定義され コロン(:)で終わる文書処理テキストターム211と一致する。断片ターム1 003およびコロン1o09は、wp+エディタが断片ターム1003を表すテ キストストリングおよびコロン1009へ割り当てる断片ターム属性により識別 される。図10では、断片ターム属性を割り当てられたテキストはアップライト ボールドタイプで表される。 断片ターム1003とコロンの間のテキストは、断片テキスト1005である。 すでに示したように、断片テキスト1005は、図】0で参照番号1007で示 したマージタームを含む。マージターム1007は断片テキスト1005におい て、WP十エディタがマージターム1007を表すテキストストリングへ割り当 てるマージターム属性により識別される。図10において、マージターム属性を 割り当てられたテキストは下線を引いたイタリックボールドフェイス文字で表さ れる。マージタームC11entはマージターム1.007の良い例である。C 1:entは、クライアント名を含むテーブルタームのフィールドとして定義さ れるテキストタームである。遺言書が生成されると、C11entはテーブルタ ームからの名前によって置き換えられる。好ましい実施例では、文書処理テキス トマージターム1007以外のマージターム10o7の第一文字が大文字になる と、マージタームを置換する値の第一文字も大文字となる。さらに好ましい実施 例では、これらの属性を持ったテキストストリングが表示されるがプリントされ る方法に変更することで、エディタでも断片ターム属性およびマージターム属性 に応答することができる。したがって、ドキュメント生成システムのユーザは画 面表示あるいはプリントアウトされたテンプレートドキュメント1001から、 どのテキストストリングが断片により定義された断片ターム1003であって、 どのテキストストリングがマージターム1007であるかを決定することができ る。 テンプレートドキュメント1001はさらにコメントを持っており、そのテキス トはテンプレートドキュメントに入っているものの断片1002にはさほど必要 ではない。好ましい実施例として、コメントに属するテキストはコメント属性で 示される。さらに、このコメント属性は、属性を持つテキストストリングが画面 表示されるかプリントされるように方法を変える。 26 好ましい環境において文書処理テキスト演算子を実現する場合に関する概 説9図11 図11は、図2で示した定義型エギスバートシステムに文書処理テ土スト演算子 の利用を加えたイ)のに基づく、ドキュメント生成システム11o2を実現した 場合のブロック図である。図11では、図2の定義プロセッサ207、ターム推 論エンジン219、ターム記憶装置215に加えて、文l処理テキスト演算子に 必要な要素を示しである。図11に方かれてぃない図2の部分は図2と同様に理 解されるものとする。図2のように、矢印は要素間のデータの流れを示す。ここ で追加された要素は、定義プロセッサ207の文書処理テキスト演算子定義要素 1101、ターム推論エンジン219の文書処理テキスト解決要素1103、エ ディタ1105、インデックス1106、テンプレートドキュメント10(N、 生成ドキュメント1.111である。好ましい実施例では、要素1101および 1103がLu5P場境561により実行されるLISP関数である。 エディタ1105はWP十エディタのバージョンの一つで、マイクロソフト社製 のMS−DO5(TM)オペレーティングシステムを実行できるマイクロプロセ ッサ上で命令できるようになっている。LISPインタプリタ503は、セクシ ョン16の最後に説明したように、sys:dos関数を利用I−でエディタ1 105を呼び出す。他のエディタも同様にしてWP+エディタとして利用できる 。 エディタ1105は対話型編集ができるだけでなく、アプリケーションインタフ ェースでもある。これによって、他のアプリケーションプログラムでもこのエデ ィタを使用し、ドキュメントの編集命令を実行できる。 テンプレートドキュメント1001はテンプレートテキストを有し、ドキュメン トはドキュメント生成システムにより、このテンプレートテキストから生成され る。好ましい実施例では、WP+エディタがテンプレート1001に断片100 2を配置する際に、名付けられたマーク、すなわち、テンブレーL1001の位 置と対応する名前を利用する。生成ドキュメント1111は定義型エキスパート システムを用いて、断片ターム1003のための断片テキスト1005に含まれ た断片ターム1003およびマージタームの値から生成される。インデックス1 106は、テンブレー)1001から断片ターム1003およびマージターム1 007を高速で位置づけるために使用される。インデックス1106にはテンプ レート1001の名前、およびテンプレート1001が定義型エキスパートシス テム(CTRREC1108)および二つのリストによって最後に更新された日 時を有する制御コードがある。二つのリストとは、断片ターム1003であると 同時に、断片がテンブレー)1001に位置づけるために使用できる名付けられ たマークであるFTツリト1107であり、もう一つは、それぞれの断片100 2の断片テキスト1005に含まれるマージターム1007のリストであるMT ツリト1109である。好ましい実施例では、この二つのリストはBツリーで実 現される。他の実現方法でも高速検索はもちろん可能である。 上述の新たな要素は、断片ターム1003の定義および断片タームを利用したド キュメント生成の双方に利用される。以下では、断片ターム1003から説明し 、続いてドキュメントの生成を説明する。 27 断片ターム1003の定義 定義型エキスパートシステムシェル201が断片ターム1003を含むDEFI NE関数を実行している場合、セクション7で述べたDEFINE関数はWPT  DEFllolを呼び出し、断片ターム1003へ与える。WPT DEFl lolはまず定義を決める人11壜ご断片ターム1003が現存するテンプレー ト1001あるいは新たなテンプレート1001に含まれているべきかどうかを たずねる。ユーザが新たなテンプレート1001を示せば、WPT DEFII Olは新たなテンプレート1001の名前を要求し、3ys:dosを用いてエ ディタ1105を呼び出しドキュメントを作成する。ユーザが現存するテンプレ ート1001へ連携したければ、WPT DEFIIOIはテンプレートの名前 を要求する。 一度WPT DEFllolへテンプレート1001の名前が与えられれば、テ ンプレート1001のためのインデックス1106が存在するかどうかを決める 。存在しなければ、WPT DEFIIOIは新たなテンプレートのためにイン デックス1106を作成し、ドキュメント名をCTRRun1103へ配置する 。次にユーザはテンプレートを編集したいかどうかを示す。そのように示せば、 WPT DEFIIOIはエディタ1105を使って一時的なドキュメントを作 成する。WPT DEFIIOIは、定義を行う人間のために、エディタ110 5ヘアクセスする。この人間がエディタ1105を用い、一時的なドキュメント 中に断′キターム1003で表された断片テキストl 005を作成する。そう すれば、断片テキストのいかなるマージターム1007でもマージターム属性へ 与えることができる。作業を終えて、ユーザがエディタ1105から抜けるとW PT DEFIIOIが実行を再開する。 次に、WPT DEFIIOIはFTツリト1107に断片ターム1003のた めに項目を作る。この項目は断片ターム1003を名付けられたマークへ関係さ せる。この名付けられたマークによって、エディタ1105はテンプレート10 01に断片を位置づけることができる。WPT DEF1107は、断片ターム 1003から名付けられたマーク (以下、断片芯1113という)を作る。断 片ターム1003の実用長はどんな長さでも良いが(好ましい実施例では30文 字が限界である)、WP+により名付けられたマークの最大長さは10文字とな る。断片芯が必要ならば、断片ターム1003を切り捨てさえすればWPT D EFllolが開始する。続いてWPT DEFIIOIは同−断片芯がすでに 存在するかどろかを決めるためにFTツリト1107を探索する。存在すれば、 WPT DEFIIOIは新たな断片芯を固有のものにする。好ましい実施例で は、このときWPT DEFIIOIは、断片芯の最後の文字から始めて、文字 を順に照合しながら作動している。固有の断片芯が得られるまで、WPT DE FIIOIは断片芯の最後の文字を照合順序で次の文字で置き換えていき、断片 芯が固有であるかどうか照合し決定する。その照合順序では固有の名前が見つか らない場合、その名前の最後から二文字目から始めて、もう一度順番に照合して いく。固有の断片芯が見つかれば、WPT DEFIIOIはエディタ1105 を呼び出して断片ターム1003をテンプレート1001の最後へ追加すると同 時に、断片ターム1003を断片ターム属性へ与える。次いでエディタ1105 により、テンプレート1001の断片芯1113を用いて名付けられたマークを 作成する。名付けられたマークは断片ターム1003における最後の文字の位置 を示す。次のステップでは、エディタ1105を用いて断片を一時的なドキュメ ントからテンプレート1001ヘコピーする。その後、一時的なドキュメントは 削除される。最後のステップでは、エディタ1105を用いてコロン1009を 断片へ追加し、コロン1009を断片ターム属性へ与える。 これらが完了した後で、WPT DEFllolはエディタ1105で、マージ ターム属性を持ったテキストを探索することで、断片1002のマージターム1 007を探索する。エディタ1105がマージタームを見つけてWPT DEF IIOIへ返すたびに、WPT DEFIIOIはマージタームを、MTリスH 109における断片1002のためのマージターム1007のリストへ追加する 。断片1002のためのすべてのマージタームがMTツリト1109にあれば、 定義プロセッサ207はそれぞれのマージターム1007を断片としてとらえ、 マージターム1007がターム記憶装置215に定義を持っているかどうかを決 める。定義されていなければ、セクション5ですでに述べたように、定義プロセ ッサ207はユーザにマージターム1007を定義するよう要求する。WPT  DEFIIOIがDEFINE関数へ返る場合、DEFINE関数は、セクショ ン7ですでに説明したように、ターム記憶装置215の断片ターム1003のた めにターム211およびDEF213を作成する。好ましい実施例では、DEF 213にはWPT Run1103を表すLISP記号が含まれる。それぞれの 断片ターム1003は上述のように定義される。ユーザがシェル201を抜ける と、シェル201はCTRRECllogの日時を示す。 上述のように、定11型エキスパートシステムシェルにも、事前に定義されたタ ーム211を再定義するためのREDEFINE演算子が含まれる。再定義され f、−’I−ム211 fJt断片9−ム1003テあf’Llf、REDEF  I NE 101 ハWPT DEFllolを呼び出し、回定aされた断片 ターム1003を与える。この場合、WPT DEFIIOIはエディタ110 5を利用して温時ドキュメントを作成し、断片ターム1003およびFTツリト 11o7を利用して断片ターム1003に対応する断片名1113を得る。さら に断片名1113をエディタ1105へ与え、断片ターム1003により!Ii 別された断片1002をテンプレートtoolに配置し、その上でエディタ11 o5を利用して断片ターム1003の最後に続くテキストを温時ドキュメントヘ コビーする。WPT DEFIIOlがフロン1009を見つけ、断片ターム属 性からそれと認識するまでコピーは続く。タームを再定義する人間はエディタ1 1o5を用いて、上述のように温時ドキュメントのテキストを編集する。ユーザ が編集を終えると、WPT DEFllolは上述のように進むが、ただし、古 い断片テキスト1001を削除し、一時ドキュメントの新たな断片テキスト10 02と置き換える。 上記のように、テンプレートドキュメント1001は、定義型エキスパートシス テムシェル201とは独豆して、エディタ1105を使用して編集できる。この 場合、テンプレートドキュメント1ootを編集する人間が、断片ターム属性を 断片ターム1003であるテキストストリングへ割り当てるWP十エディタを用 いて、!!fr片ターム1003を示す。さらに、マージターム属性をマージタ ーム1007であるテキストストリングへ割り当てるWP十エディタを用いて、 マージターム1007を示す。さらに、断片の最後にコロン1009を配置しコ ロン1009に断片ターム属性を割り当てるWP十エディタを用いて、断片の最 後を示す。エディタ1105は自動的に、ドキュメントに関して維持している情 報内にテンプレートドキュメント1001が編集された日時を記録しておく。 ターム記憶装置215に新たな断片ターム1003を持つために、エキスパート システムシェルのユーザがエキスパートシステムシェル201を上述のように? シフ1/−トドキユメント1001へ連結する。テンプレートドキュメント10 01が新しいか、あるいは編集日時がCTRREC1108でテンプレートドキ ュメントのために示された8時より後である場合には、WPT DEFIIOl はテンプレートドキュメント1001を確認する。インデックス1106を削除 し、テンブレー)toolのための新たなインデックス1. l 06を作るこ とで確認が始まる。WPT DEFIIOIは、それぞれの断片ターム1003 がすでにターム記憶装置215で定義されているかどうかを決め、ユーザにター ム記憶装置へ定義を追加したいかどうかたずねる。追加したいなら、定義は上述 のように追加される。未定義の断片ターム1003を定義する間に、WPT D EFl 101はマージターム1007のための断片ターム1003のための断 片テキスト1005を探索し、上述のようにそれぞれのマージターム1007を 処理する。どの断片ターム1003をユーザがターム記憶装置215へ追加した いか選択できる際の利点は、テンプレート1001が断片ターム1003を利用 して他のアプリケージ1ンにも対応でき、ユーザが自分のドキュメント生成アプ リケージ1ンに必要なテンプレート1001からこれらの断片ターム1003だ けを選択できるということである。 28 ドキュメント生成1111 好ましい実施例では、書類の生成1111は二つのステップから成る。第一のス テップはスクリプトの生成である。スクリプトには、出力ドキュメントに現れる すべての断片1002のための断片ターム1003がある。第二のステップは、 このスクリプトから出力ドキュメントを生成することである。 第一のステップでは、定義型エキスパートシステム202のユーザがエキスパー トシステム202にテキストターム211を解決するよう要求する。テキストタ ーム211は断片ターム1003であるか、あるいは断片ターム1003を含む 連結として定義されたものである。タームを解決するためにエキスパートシステ ム202で利用する一般的な方法は、上記セクション7のWHAT関数の記述の 中で説明した。解決されるタームが断片ターム1003である場合、ターム推論 エンジン219はWPT 5OLVE関数1103を利用する。ターム推論エン ジンはそれぞれの断片タームをWPT 5OLVEへ適当に与える。WPTSO LVEは、断片ターム1003の定義型エキスパートシステムを含むあらゆる条 件から、タームにより表される断片テキスト1005が出力ドキュメントに含ま れるべきかどうかを決めることで、断片ターム1003を評価する。含めること になれば、WPT 5OLVE1103は適当に範囲を決めた断片ターム100 3を、WHATIMI数へ断片タームl 003として与える。断片が含まれる 場合には、WPT 5OLVE1103はさらに断片タームl 003を用いて 断片名1113を断片タームタームリスト1107へ配置し、エディタエ105 および断片名1113を利用して断片テキスト1005をテンプレート1001 に配置する。またエディタ1105を用いてそFL−′れのマージターム100 7を断片テキスト1005へ配置し、それぞれのマージターム1007を評価す るために推論エンジン219へ与える。推論エンジン219はこのタームを評価 し、セクション7ですでに説明したようにその評価に必要なあらゆる外部値を保 存する。 WHAT関数を実行した結果がスクリプトとなる。スクリプトでは、断片ターム 1003がテキスト値において制限を受けるため、テキスト値によって他のテキ ストと区別され、断片テキスト1005が出カドキュメン)1111に現れる順 序で現れる。WHAT関数の結果より、通常、スクリプトが表示される。スクリ プト表示は便利なものである。これによってテンプレート1001の開発業者は 、ドキュメント1111を生成せずにターム定義が正しいかどうが決めるための テンプレート1001をターム定義セットに含むことができるからである。他の 実施例では、スクリプトは表示されず、WPT 5OLVEによりWHAT関数 へ与えられた値が、それらの値で置き換えられたすべてのマージターム1007 を有するテキスト1005を表すことができる。また、WHAT関数へ与えられ た値は直接エディタ1105へ出力し、生成ドキュメント1111に入れること ができる。 推論エンジン219がスクリプトを表示する場合、ユーザは生成ドキュメント1 111を作成するかどうか選択することができる。生成する場合、WPT 5O LVE1103がユーザに生成ドキュメント1111の名前をたずね、エディタ 1105を用いて生成ドキュメント1111を作成し、スクリプトを読み取る。 スクリプト内のそれぞれの断片タームl 003があるために、FTツリト11 07を用いて対応する断片名1113を獲得し、断片テキスl−1005を配置 するためにエディタ1105へ送り、エディタ1105を用いて断片テキスト1 005をテンプレート1001から生成ドキュメント1111ヘコピーする。さ らにマージターム1007が見つかるまでエディタ1105で生成ドキュメント 1111の断片テキスト1005を読み取る。マージターム1007を読み取る と、記憶外部値を使って値を計算している推論エンジン219からマージターム 1007の値を獲得し、マージタームの値が大文字になっているかどうかMTツ リト1109から決める。さらにエディタ1105でマージターム1007を記 憶値で置き換え、MTツリト1109がそのように示せば1文字目を大文字にす る。 マージターム1007が断片ターム1003であれば、WPT 5OLVEII 03は、断片1002が断片ターム1003で表される場合と同様に進む。 29 テンプレート1001およびインデックス1106を実現する詳細:図1 2乃至14 好ましい実施例で採用されたドキュメントは、すべてWP十エディタで使用され るドキュメント構造で表されていた。図42乃至13は本発明に関するドキュメ ント構造の7スペクトを示す。ドキュメント構造に関しては、米国特許第475 1740号「ドキュメント構造を別構造へ翻訳するための装置およびその方法お よびその構造」 (出願人T、ライト、発行日1988年6月14日)において さらに詳しく論じられている。この特許の中で特に関係の深い部分は第13欄2 1行目から第15欄9行目、および図10である。米国特tIf第475174 0号は本明細書の一部として開示されるものとする。図43から理解できるよう に、WP+エディタで使用されるドキュメント構造は、ブロック番号でアドレス 指定可能な一組のブロックで表されている。ブロックはナベで同一サイズである が、別個の三つの関数グループに別れる。すなわち、管理ブロック、インデック スプロ7り、テキストブロックである。 管理ブロックは、図12においてドキュメント情報プロ7り1201およびドキ ュメントチ−プル1203として示される。ドキュメント情報ブロック1201 には、構造で表されたドキュメントについての情報があり、ドキュメントが最後 に編集された日時を示すフィールド1209も含まれる。上述のように本発明で は、このフィールドはテンプレート1001が定義型エキスパートシステム20 1の外側で編集されたものかどうかを把握するために利用される。ドキュメント テーブル1203にはインデックスの番号を指すポインタ1205がある。氷原 に重要なものは唯一、名前インデックスポインタ1207であり、これはテキス トブロックの位置へ名前を関係づける名前インデックスを指す。この名前インデ ックスは一つ以上の名前インデックスブロック1209から成り、その一つだけ が図」2に示される。名前インデックスブロック1209が二つ以上必要ならば 、チェーンあるいはツリー構造にすることができる。名前インデックスブロック にはそれぞれ、アルファベット類で配置された名前インデックスエントリ121 1がある。本願に重要なこのエントリは断片名1113をテキストブロック位置 へ関係づける。 テキストブロックにはドキュメントのテキストがある。それぞれのテキストブロ ック1211には、中にテキストの構成文字が格納されるテキスト部1213が あり、さらにテキスト部1213の位置に関する情報を持った属性部1215が ある。テンブレー[001において、属性部には、テキスト部1213における 一連の文字が断片ターム1003あるいはマージターム1007であることを示 す情報がある。テキストブロックは、二重連結されたテキストブロックチェーン 1217で編成されている。テンブレー)1001では、断片]002はテキス トブロックチェーン1217として表される。二つの断片1002がテキストブ ロックチェーン1217で示される。それぞれの断片1002は最初に8府イン デックスで配置?2される。断片名1113は、自身のための名前インデックス エンド1月211を配置するために使用される。ブロックポインタの後にチェー ンを開始するブロックが続く。エディタ1105が名付けられたマーク2決める と、テキストチェーンのブロックを分割する。[不明]テキストブロック121 1のテキス)−1213において第一文字[不明16エデイタ1105による、 さらに特別なルーチンがある。これよればアプリケーションプログラムが使用で き、その機能はドキュメント情報ブロック1201から情報を返し、テキストブ ロック1211から文字および属性を読み取り、テキストブロック1211へ文 字および属性を書き込み、テキストブロックチェーン1217で名付けられた位 置を見つけ、テキストブロックチェーン1217ヘコピーし、テキストブロック チェーン1217から削除することができる。 図13に示すのは、短表示属性語1301であり、テンプレート1001で断片 ターム属性およびマージターム属性を示すために用いられる属性部の種類である 。テキストブロック1211のテキスト1213におけるテキスト用属性語は、 そのテキストブロックの属性領域1215にある。属性部はテキストから逆の順 序で格納される。つまり、テキスト部1213の第一文字に該当する属性は属性 部1215の最後にある。エディタ1105がテキストブロック1211を書き 込むとき、テキスト部1213の始めから後方へ文字を追加していき、属性部1 215の最後から前方へ文字用属性を追加していく。テキスト部1213の最後 と属性部1215の最後との間に空スペースがなくなれば、ブロックが一杯にな ったことになる。エディタ1105はテキスト部1213からテキストを読み取 る場合、同時に属性部1215から属性を読み取り、その文字に該当する属性が 現在読み取り中であることを示すコードを与える。属性部1301には四つのフ ィールドがある。その語がどんな種類の属性を表しているかを示すタイプフィー ルド、そのタイプに関する追加情報を提供する補助タイプフィールド1305、 その属性が該当する一連の文字の第一文字がテキスト部1213のどの位置にあ るかを示す開始フィールド、その文字列の最終文字がテキスト部1213のどの 位置にあるかを示すエンドフィールド1309である。好ましい実施例では、断 片ターム属性およびマージターム属性がタイプフィールド1303の異なる値に よって示される。断片ターム属性およびマージターム属性のための属性部130 1からの情報を利用することで、WPT DEFIIOIおよびWPT 5QL VE1103は、断片1002の一連の文字が断片タームであるかマージターム であるか決めることができ、さらに断片の終端を識別することができる。 図14にはインデックス1106の要素のエントリを詳細に示す。与えられたテ ンプレート1001のためのインデックス1106には制御レコード1108が 一つだけある。これには、二つの情報項目がある。インデックス〕106が属す るテンプレートドキュメント1001の名前を示すテンプレート名前1401、 およびインデックス1106が属するテンプレートドキュメント1001をWP T DEFIIOIが最後に編集した日時を示す最終編集日時1403である。 テンプレート1001のそれぞれの断片のために断片タームリストエントリ14 05がある。上述のように、このリストはBツリーで編成されているため、断片 ターム1003が高速で断片タームリストエントリエ405ヘアクセスすること ができる。それぞれの断片タームリストエントリ1405には断片1002およ び断片ターム1003で識別される断片1002のための断片名1113がある 。 最後に、テンプレート1001の断片1002には、それぞれのマージターム1 007のためのマージタームリストエントリ1407がある。さらに、このマー ジタームリストはBツリーで編成されているため、断片1002のための断片タ ーム1003が断P、1002のためのマージタームリストエントリ1407へ 高速でアクセスできる。それぞれのマージタームリストエントリ1407には、 マージターム1007が属する断片1002のための断片ターム1003、マー ジターム1007、大文字使用フラグ1409がある。大文字使用フラグ140 9はWPT DEFIIOIでセットされ、マージターム1007が解決された 場合にマージターム1007を置き換える値の第一文字目が大文字使用されるこ とを示す。上述のように、定義型エキスパートシステムシェル201のユーザは 、マージタームの第一文字を大文字にし、それにより値が大文字使用されること を示す。与えられた断片ターム1003のためのマージタームエントリ1407 が、マージターム1007によってMTツリト1109でアルファベット類に配 置される。 追加された上記の開示では、上記セクション1乃至22で開示された定義型エキ スパートシステム、WP半エディタ、そしてWP+エディタにより生成されるテ ンプレートドキュメント10(11を利用することで、ドキュメント生成システ ムがどのように発展したかを示した。定義型エキスパートシステム、WP十エデ ィタ、このWP+エディタによって使用されるドキュメント構造はすべて本発明 を実現するのに!適であるものの、本発明は他の型のエキスパートシステム、他 のエディタ、他のドキュメント構造を利用しても実現できる。特に、テンプレー ト1001の断片タームとマージタームを識別したり、テンプレート1001で 断片を位置づけたり、断片タームあるいはマージタームがすでに定義されたかど うか決める作業については、ここで開示された以外の技術を利用することができ る。さらに、ある実施例では、スクリプトを生成するステップは省かれても良い し、解決命令によって生成ドキュメントを直ちに出力しても良い。この場合、開 示された実施例はすべての点で説明するためのものであって限定的ではないもと する。また本発明の範囲は上記の説明以外に追加されたクレームで示されるもの とし、クレームと同等の意味および範囲内で考えられるすべての変更はそのクレ ームに含まれるものとする。 ユーザーコマンド 図1 ユーザーコマンド IIIIA ユーザーコマンド 図2 ターム206 記述(DESC)205詐 欺 虚偽−認識および有害−信頼 旺識一虚偽 虚偽および虚偽−認識したー被告虚偽 イエスノ一式質問「彼はあなたに嘘を ついた被告−認識したーか?」 虚偽−認識した一被告 虚偽イエスノ一式質問[あなたに話したことが嘘である ことを彼は認識して 11?−A)7+ 有害な一信頼 原告−による−信頼および原告−による−損失 原告=による一信頼 イエスノ一式質問[彼が話した内容のせいであなたは何か 特別なことをした か?」 原告−による−損失 イエスノ一式質問[虚偽のために、あなたは失ったものが あるか?」 図5 図7 や 復元633がら 図8 図1O 遺言書タイトル−断片ターム1003 遺 言 書←断片テキス) 1005 −断片1002テンブレー) 1001 ドキュメント情報ブロック1201 図12 図13 図14 国際調査報告 国際調査報告

Claims (9)

    【特許請求の範囲】
  1. 1.テンプレートドキュメントと、 知識ベース項目を格納するためのエキスパートシステム知識ベースと、テンプレ ートドキュメントおよび出力ドキュメントを編集するための編集手段と、 第一のユーザ入力に反応して前記知識ベース項目を定義し、前記テンプレートド キュメント部分に従ってドキュメント部知識ベース項目を定義するために第一の ユーザ入力の一つに直ちに応答するドキュメント部定義手段を含み、前記動作を 、前記編集手段をユーザへ与え前記部分を編集し、前記編集された部分を前記知 識ベースにおける前記ドキュメント部知識ベース項目と関係づけることにより行 うエキスパートシステム知識ベース定義手段と、第二のユーザ入力および前記知 識ベース項目に反応してエキスパート応答を与え、ドキュメント部知識ベース項 目に直ちに反応する出力ドキュメント生成手段を含むことで、前記ドキュメント 部知識ベース項目および前記第二のユーザ入力が必要とする場合に、前記編集手 段を採用して前記ドキュメント部知識ベース項目と関係のある前記ドキュメント 部を前記出力ドキュメントへ提供する、エキスパートシステム推論エンジン手段 とを有することを特徴とする出力ドキュメントを生成するためのドキュメント生 成システム。
  2. 2.前記編集手段が、前記エキスパートシステム推論エンジン手段により返され た値を表すタームとしてドキュメント部においてテキストストリングを識別する ための手段を有し、 前記出力ドキュメント手段が、前記与えられたドキュメント部において前記識別 されたタームを検出し、前記識別されたタームを前記推論エンジンへ与え、前記 識別されたタームの前記値を前記推論エンジンから受け取り、前記識別されたタ ームの代わりに前記受け取られに値を前記出力ドキュメントへ出力することを特 徴とする請求項1に記載のドキュメント生成システム。
  3. 3.テンプレートドキュメントと、 前記テンプレートドキュメントおよび出力ドキュメントを編集するための手段と 、 階層的に定義されたタームと、その定義と、一つ以上の前記値を用いるか、およ びまたはそれらタームの定義が前記階層の低レベルにありタームの前記値とは無 関係に一つ以上のターム独立値を用いて、それぞれのタームを定義するタームに 対応する前記定義とを有する知識ベースと、第一のユーザ入力に反応して前記タ ームを定義し、前記テンプレートドキュメント部に従う前記タームのドキュメン ト部タームを定義するためのドキュメント部ターム定義手段を有し、前記ドキュ メント部ターム定義手段が前記編集手段をユーザへ与え前記部分を編集させると 同時に前記編集された部分と前記知識ベースにおいて前記ドキュメント部ターム の定義と関係づける、知識ベース定義手段と、 第二のユーザ入力に応答するだめに前記知識ベースから与えられたタームの前記 定義を獲得し、その対応する定義から与えられたタームの前記値を計算するため 、前記対応する定義におけるあらゆるタームおよびあらゆるターム独立値の前記 値を獲得し、ドキュメント部タームの前記値を獲得するため、前記ドキュメント 部知識ベース項目および第二のユーザ入力が必要とした場合に、前記編集手段を 採用し、前記ドキュメント部タームに従う前記ドキュメント部を前記出力ドキュ メントへ提供する出力ドキュメント生成手段を有する推論エンジン手段とを有す ることを特徴とする出かドキュメントを生成するためのドキュメント生成システ ム。
  4. 4.前記編集手段がドキュメント部においてテキストストリングをタームとして 識別するための手段を有し、 前記ドキュメント部ターム定義手段が前記ドキュメント部において前記識別され たタームを検出し、前記検出されたタームを前記知識ベース定義手段へ提供し、 前記知識ベース定義手段が前記検出タームへ応答するために、前記知識ベースに おいて前記検出タームに対する定義が存在するかどうかを決め、もし存在しなけ れば前記ユーザから第一のユーザ入力を要求し、ユーザから前記検出タームを定 義し、 前記出力ドキュメント生成手段が前記提供されたドキュメント部において前記識 別タームを検出し、前記識別タームを前記推論エンジンへ提供し、前記推論エン ジンから前記識別タームの前記値を受け取り、前記識別タームの代わりに前記出 力ドキュメントへ前記受け取った値を出力することを特徴とする請求項3に記載 の前記ドキュメント生成システム。
  5. 5.前記識別タームが他のテンプレートドキュメント部分を参照するドキュメン ト部タームである請求項4に記載のドキュメント生成システム。
  6. 6.ドキュメント部ターム定義手段が、前記ドキュメント部タームの前記定義に おいて他のタームの前記値に従属する条件を有し、前記推論エンジン手段によっ て前記他のタームの前記値を計算し、さらに前記出力ドキュメント生成手段が、 前記条件が溝たされた場合にのみ、前記ドキュメント部タームの前記値を獲得で きるようにすることを特徴とする請求項3に記載のドキュメント生成システム。
  7. 7.前記編集手段が前記ドキュメント部ターム定義手段とは無関係に前記テンプ レートドキュメントを追加的に編集し、第一の識別手段を採用して、前記ドキュ メント部タームを定義する前記ドキュメント部のテキストストリングを前記ドキ ュメント部タームであると識別し、 前記ドキュメント部ターム定義手段が、前記第一識別手段により前記ドキュメン ト部の前記ドキュメント部タームを追加的に検出し、前記知識ベースの前記ドキ ュメント部タームを定義することでそれに対して応答し、前記ドキュメント部タ ームを有する前記ドキュメント部を定義されたドキュメント部タームと関係づけ ることを特徴とする請求項3に記載のドキュメント生成システム。
  8. 8.前記編集手段が第二識別手段を追加的に採用して、ドキュメント部のテキス トストリングを、前記ドキュメント部により定義された前記ドキュメント部ター ム以外のタームとして識別し、 前記ドキュメント部ターム定義手段が、前記第二識別手段によりドキュメント部 において識別された他のタームを検出し、前記検出された他のタームを前記知識 ベース定義手段へ提供し、 前記知識ベース定義手段が前記検出された他のタームへ応答するために、前記知 識ベースにおいて検出されたタームに対して定義が存在するかどうかを決め、も し定義が存在しなければ、ユーザに第一のユーザ入力を要求し、ユーザからの前 記検出された他のタームを定義し、 前記出力ドキュメント生成手段が、前記第二識別手段により前記提供されたドキ ュメント部で識別された他のタームを検出し、前記識別された他のタームを前記 推論エンジンへ提供し、前記推論エンジンから前記識別された他のタームの前記 値を受け取り、前記受け取った値を前記識別された他のタームの代わりに前記出 力ドキュメントへ出力することを特徴とする請求項7に記載のドキュメント生成 システム。
  9. 9.ドキュメント部タームを指定する第一識別手段により識別された第一テキス トストリングおよび、前記指定ドキュメント部タームを定義し、第一テキストス トリングにより指定されるドキュメント部ターム以外のタームを指定する第二識 別手段により識別される第二テキストストリングを有するドキュメント部テキス トを有する少なくとも一つのドキュメント部を有し、出力ドキュメントを生成す るためのドキュメント生成システムにおいて使用され、前記ドキュメント生成シ ステムが、階層的に定義されたタームおよびその定義を有する知識ベースおよび 前記ドキュメント部と、前記他のタームと、それぞれのタームの定義が階層の低 レベルにある一つ以上のターム値を用いるかおよびまたはタームの前記値とは無 関係な一つ以上のターム独立値を用いてそれぞれのタームを定義するそれぞれの タームに対する前記対応する定義する前記タームと、前記ドキュメント部を読み 取ることで前記ドキュメント部を定義するドキュメント部ターム定義手段を有し 、前記第一識別手段によりドキュメント部のドキュメント部タームを検出し、前 記ドキュメント部タームを前記知識ベースの前記ドキュメント部と関係づけ、前 記ドキュメント部手段がさらに第二識別手段により前記他のタームを検出し、前 記他のタームを前記知識ベース定義手段へ提供することで前記他のタームが前記 知識ベースにおいて定義されているかどうかを決め、もし定義されていなければ 前記他のタームを定義する、前記タームを定義するための知識ベース定義手段と 、 前記知識ベースから与えられた前記定義を獲得し、前記対応する定義におけるあ らゆるタームおよびあらゆるターム独立値を獲得することでその対応する定義か ら前記与えられたタームの前記値を計算することでユーザ入力に応答する推論エ ンジンであって、前記出力ドキュメントへ前記関係づけられたドキュメント部の 前記テキストを出力することで前記ドキュメント部タームの前記値を獲得し、さ らに前記第二識別手段によりドキュメント部の前記他のタームを検出し、前記推 論エンジン手段へ前記他のタームを提供し、前記推論エンジンから前記他のター ム値を受け取り、前記受け取った値を前記出力ドキュメントへ前記他のタームの 代わりに出力する出力ドキュメント生成手段を有する推論エンジン手段と、を有 することを特徴とするテンプレートドキュメント。
JP2506762A 1989-06-05 1990-04-03 ドキュメント生成装置および方法 Pending JPH04505227A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/371,434 US4967368A (en) 1985-08-16 1989-06-05 Expert system with knowledge base having term definition hierarchy
US371,434 1989-06-05

Publications (1)

Publication Number Publication Date
JPH04505227A true JPH04505227A (ja) 1992-09-10

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 Before (1)

Application Number Title Priority Date Filing Date
JP90503247A Pending JPH04505518A (ja) 1989-06-05 1990-01-10 エキスパートシステム装置および方法

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., Palo Alto, Calif. 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
GB9920662D0 (en) * 1999-09-01 1999-11-03 Ncr Int Inc Expert system
GB9920661D0 (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
WO2002006954A1 (en) * 2000-07-17 2002-01-24 Morgan Stanley Dean Witter & 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
US7254530B2 (en) * 2001-09-26 2007-08-07 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 診断レポート作成システム、診断レポート作成方法、及びプログラム
US7945527B2 (en) * 2006-09-21 2011-05-17 Aebis, Inc. Methods and systems for interpreting text using intelligent glossaries
US9043265B2 (en) 2006-09-21 2015-05-26 Aebis, Inc. Methods and systems for constructing intelligent glossaries from distinction-based reasoning
US8321205B2 (en) * 2008-01-02 2012-11-27 Stuart Allen Garrie Definitional method to increase precision and clarity of information
WO2014031945A2 (en) 2012-08-24 2014-02-27 Pionkowski Ricky Steven Touchphrase interface environment

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
DE69030815T2 (de) 1998-02-05
CA2012533C (en) 1999-11-30
AU648981B2 (en) 1994-05-12
DE69030815D1 (de) 1997-07-03
DE69030664T2 (de) 1997-12-11
AU5049590A (en) 1991-01-07
CA2057857C (en) 2000-06-13
CA2057857A1 (en) 1990-12-06
AU5550890A (en) 1991-01-07
WO1990015389A1 (en) 1990-12-13
EP0475964A1 (en) 1992-03-25
AU648253B2 (en) 1994-04-21
EP0481995A4 (en) 1993-01-27
DE69030664D1 (de) 1997-06-12
EP0475964B1 (en) 1997-05-28
JPH04505518A (ja) 1992-09-24
US4967368A (en) 1990-10-30
CA2012533A1 (en) 1990-12-05
EP0481995B1 (en) 1997-05-07
EP0481995A1 (en) 1992-04-29
WO1990015392A1 (en) 1990-12-13

Similar Documents

Publication Publication Date Title
JPH04505227A (ja) ドキュメント生成装置および方法
US5043891A (en) Document generation apparatus and methods
US5200893A (en) Computer aided text generation method and system
US5321608A (en) Method and system for processing natural language
Williams et al. Web Database Applications with PHP and MySQL: Building Effective Database-Driven Web Sites
US20120011152A1 (en) Generating Programs Based on Input-Output Examples Using Converter Modules
CN108762743B (zh) 一种数据表操作代码生成方法及装置
US20140337266A1 (en) Rapid development of virtual personal assistant applications
US20030212543A1 (en) Integrated development tool for building a natural language understanding application
EP2162833A1 (en) A method, system and computer program for intelligent text annotation
CA2360067A1 (en) Any-to-any component computing system
US20070255694A1 (en) Document-drafting system using document components
Cunningham et al. Developing language processing components with GATE
Tateosian Python For ArcGIS
CN116127013A (zh) 一种个人敏感信息知识图谱查询方法和装置
CN114219438A (zh) 基于rpa及ai的公文文件分发方法、装置、设备及介质
WO1988008160A1 (en) Tailored text generation
US20240037344A1 (en) Generating conversational ai response suggestions
CN118503396B (zh) 基于开放提示词的erp系统大模型调用方法、设备及介质
JPH07146785A (ja) プログラム自動生成方法および装置
JP3016040B2 (ja) 自然言語処理システム
RU2572367C1 (ru) Способ поиска информации в предварительно преобразованном структурированном массиве данных
Sahni Software development in Pascal
Hnatkowska et al. Compatibility Checking of Compound Business Rules Expressed in Natural Language Against Domain Specification
JP2019194759A (ja) 対話システム補強装置及びコンピュータプログラム