JP2728559B2 - 知識処理システム構築ツール及び推論プログラムの生成方法 - Google Patents

知識処理システム構築ツール及び推論プログラムの生成方法

Info

Publication number
JP2728559B2
JP2728559B2 JP2266233A JP26623390A JP2728559B2 JP 2728559 B2 JP2728559 B2 JP 2728559B2 JP 2266233 A JP2266233 A JP 2266233A JP 26623390 A JP26623390 A JP 26623390A JP 2728559 B2 JP2728559 B2 JP 2728559B2
Authority
JP
Japan
Prior art keywords
program
knowledge
search
inference
function
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.)
Expired - Lifetime
Application number
JP2266233A
Other languages
English (en)
Other versions
JPH03206526A (ja
Inventor
直之 山田
孝保 笠原
康弘 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPH03206526A publication Critical patent/JPH03206526A/ja
Application granted granted Critical
Publication of JP2728559B2 publication Critical patent/JP2728559B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/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/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、知識処理システムの構築方法及び知識処理
システム構築ツールに関するものである。
〔従来の技術〕
知識処理システムは、一般的に問題解決に使用され機
械可読な形式でコード化された知識を格納する知識ベー
スと、その知識を連鎖的に(チエイニング)使用する推
論プログラムを備えている。
知識処理システムは、決定的なアルゴリズム処理を実
行する数値処理に基づく従来の問題解決プログラムと比
較して、問題解決に使用する記号表現された知識を使用
する。このような知識処理システムは、従来アルゴリズ
ムに組み込むことが困難であつた、各種問題領域におけ
る専門家が持つ経験的な知識、ノウハウまたは発見的な
知識をも取扱うことができる。この結果、診断、制御、
監視、計画及び設計といつた工学分野における問題解決
のみならず、法律、金融といつた分野における問題解決
にも広く利用されつつある。
これらの知識処理システムの構築方法には、知識を記
述する枠組み(約束)を設定し、この知識を連鎖的に使
用する推論プログラムを、LispまたはPrologといつた記
号処理言語を使用して作成する方法、及び予め知識を記
述する枠組みとそれを使用する推論プログラムとを備え
た知識処理システム構築ツールを用いる方法がある。知
識処理システム構築ツールとしては、スタンフオード大
学のレポート番号STAN−CS−81−885号におけるVan Vel
le著「The Emycin Manual(ザ イマイシン マニユア
ル)」に記載されたEMYCIN、及び日立評論、1987年3月
号17〜22頁の金森他著「ES/KERNELでの知識表現法と高
速推論方式」に記載されているES/KERNEL等が知られて
いる。前者の方法は、対象とする問題解決に適切な知識
の表現法の設定及び推論プログラムの作成が可能であ
る。しかし、知識処理システムを構築する人には、人工
知能や知識工学といつた知識情報処理技法を習熟してい
る必要がある。これらの分野に不慣れな人にとつては、
前者の方法に基づく知識処理システムの構築は困難であ
る。後者の知識処理システム構築ツールを利用する方法
は、知識表現の枠組み及び推論プログラムを作成する必
要はない。しかし、知識は、知識処理システム構築ツー
ルが受け入れる表現での記述を必要とする。また、推論
プログラムを利用して目的とする問題解決を行うため
に、入力する知識の構成法の検討、及び推論制御のメタ
知識の記述が必要である。従つて、知識処理システムを
構築する人は、対象とする領域の問題解決に関する知識
とともに、使用する知識処理システム構築ツールにも習
熟している必要がある。
そこで、知識処理技法あるいは、知識処理システム構
築ツールに習熟しないでも、対象とする領域における問
題解決を行う知識処理システムを容易に構築できる方法
の開発が望まれる。
カーネギーメロン大学のJ.Laird(ジエイ、レアー
ド)等は、そのような知識処理システムの構築法とし
て、レポート番号CMU−CS−83−141号、J.Laird and A.
Newell著「A Universal Weak Method(ア ユニバーサ
ル ウイークメソツド)」において汎用的ウイークメソ
ツド法を提案している。提案されている汎用的ウイーク
メソツド法は、ゲームの問題解決に適用したものであ
る。この方法は、問題解決プログラム(推論プログラ
ム)として、各種の知識処理システムにおいて一般的な
問題解決手法とされる探索を基礎とした複数のウイーク
メソツドを有するものであり、各ウイークメソツドに対
して領域固有の知識を設定することにより知識処理シス
テムを構築しようとするものである。上記の汎用的ウイ
ークメソツド法は、山登り方法、幅優先探索、及び深さ
優先探索等の複数のウイークメソツドを有する。
〔発明が解決しようとする課題〕
発明者等は、汎用的ウイークメソツド法を詳細に検討
したところ、以下のような問題が生じることを発見し
た。まず、発明者等は、汎用的ウイークメソツド法を適
用した知識処理システム構築ツールを想定した。この想
定した知識処理システム構築ツールにより対象とする問
題を解決する知識処理システムを構築する場合、知識処
理システム構築ツールの使用者(以下、単に使用者とい
う)は、対象とする問題解決に利用するウイークメソツ
ドを選択する。従つて、日立評論で述べられた知識処理
システム構築ツールを用いて知識処理システムを構築す
る場合に比べて、使用者が対象とする問題解決に適切な
ウイークメソツドを選択できるという利点がある。選択
したウイークメソツドを用いて、対象とする問題を解決
する知識処理システムを構築するためには、使用者は、
選択したウイークメソツドの範囲に限定されるが、対象
とする問題解決に固有の推論制御知識及び対象領域に固
有の知識を考えて入力する必要がある。しかし、使用者
がこれらの知識を考えることは、非常に面倒である。し
かも、「A Universal Weak Method」は、対象とする問
題解決に固有の推論制御知識及び対象領域に固有の知識
の入力について何も言及していない。対象とする問題が
異なると、選択されるウイークメソツドも異なり、対象
とする問題解決に固有の推論制御知識であつて別の推論
制御知識を、及び対象領域に固有の知識であつて別の知
識をそれぞれ考えなければならないという困難にぶつか
る。
知識処理システム構築ツールがウイークメソツドを持
つことにより、そのツールを使用した知識処理システム
の構築は容易になる。しかし、構築された知識処理シス
テムで使用される推論プログラムの機能は、構築ツール
が備えている既存のウイークメソツドの機能に限定され
る。
このように、構築された知識処理システムの推論プロ
グラムが既存のウイークメソツドの機能に限定されるこ
と、及び異なる対象問題毎に、違う、対象とする問題解
決に固有の推論制御知識及び対象領域に固有の知識を考
えなければならないことから、想定した、汎用的ウイー
クメソツド法を適用した知識処理システム構築ツール
は、任意の対象領域及び任意の解決すべき問題に対し、
知識処理システムを構築することができないことが分か
つた。
本発明の目的は、任意の対象とする問題に対して、知
識処理システムで使用する推論プログラムを自動生成で
き、推論プログラムの開発工数を低減できる知識処理シ
ステム構築ツール及び知識処理システムで使用される推
論プログラムの生成方法を提供することにある。
〔課題を解決するための手段〕
上記目的を達成するために、本発明では、推論プログ
ラムと知識ベース内の知識を用いて対象とする問題解決
の処理を実行する知識処理システム、を構築する知識処
理システム構築ツールにおいて、問題を解決するための
探索制御戦略を構成し木構造を有する複数の戦略分類項
目毎に対応付けられた複数の推論制御知識を記憶する記
憶手段と、各戦略分類項目毎に対応付けられた複数の推
論制御知識を表示する表示手段と、該表示手段に表示さ
れた複数の推論制御知識の中から対象とする問題に関係
する推論制御知識を選択するための入力を受け付ける入
力手段と、該入力手段からの入力により各戦略分類項目
毎に選択された複数の推論制御知識に基づいて対象とす
る問題を解決するための前記推論プログラムを生成する
推論プログラム生成手段とを備える。
また、知識処理システムで使用される推論プログラム
の生成方法において、記憶手段に記憶された、問題を解
決するための探索制御戦略を構成し木構造を有する複数
の戦略分類項目毎に対応付けられた複数の推論制御知識
を表示手段に表示し、各戦略分類項目毎に表示手段に表
示された複数の推論制御知識の中から選択された、対象
とする問題に関係する推論制御知識を入力手段を介して
入力し、記憶手段に記憶された、固定プログラム部及び
複数の可変プログラム部を有する探索ベースプログラム
に対して、前記各戦略分類項目毎に入力された複数の推
論制御知識に基づいて、記憶手段に記憶された、対象と
する問題を解決するための複数のプログラム要素を、前
記複数の可変プログラム部に割り当てることにより、対
象とする問題を解決するための推論プログラムを生成す
る。
〔作用〕
本発明の知識処理システム構築ツールによれば、木構
造を有する複数の戦略分類項目毎に対象とする問題に関
係する推論制御知識を選択するだけで、対象とする問題
を解決するための探索制御戦略が決まり、この戦略に基
づいて対象とする問題を解決するための推論プログラム
が自動生成される。
また、本発明の推論プログラムの生成方法によれば、
木構造を有する複数の戦略分類項目毎に対象とする問題
に関係する推論制御知識を選択するだけで、対象とする
問題を解決するための探索制御戦略が決まり、この戦略
に基づいて、対象とする問題を解決するための複数のプ
ログラム要素が、推論プログラムの骨子となる探索ベー
スプログラムの複数の可変プログラム部に割り当てられ
ることにより、対象とする問題を解決するための推論プ
ログラムが自動生成される。
従って、任意のケースにおける推論プログラムの作成
に必要な推論制御知識を予め準備でき、任意の対象とす
る問題に対して、知識処理システムで使用する推論プロ
グラムを自動生成できるので、推論プログラムの開発工
数を低減できる。
〔実施例〕
本発明は、発明者等が種々の問題に適用される知識処
理システムを検討して得られた結果に基づいてなされた
ものである。特に、発明者等は、知識処理システムで解
かれる種々の問題がすべて探索の問題であるとの新しい
知見に基づいてこれら種々の問題を解決するために必要
な情報を体系的に検討した。その結果、第2図及び第3
図に示す問題解決戦略の分類情報を得た。問題解決戦略
の分類情報は、第2図及び第3図に示すように探索戦略
の分類木であり、戦略分類項目A〜I等を有する。問題
解決戦略の分類情報は、戦略分類項目Aを先頭にB、
C、D、……、Iと枝状に分かれている。第2図のSは
第3図(a)のSにつながり、第3図(a)のPは、第
3図(b)のPにつながる。Qより下の分類は対象領域
特有の探索(推論)制御知識の違いによる。Qより下の
分類項目の情報の例としては、後述するメニユーKの情
報(第12図)がある。第3図(b)において、B.F.は幅
優先探索、D.F.は深さ優先探索、Be.F.は最良優先探
索、M.M.はミニ・マツクス探索、GBBMは一般的分岐限定
方法、H.C.は山登り法、A*はエー・スター・アルゴリ
ズム、及びBBMは分岐限定方法を示す。このような問題
解決戦略の分類情報は、探索空間を構成する状態、この
各状態に作用してその状態を変化させる演算子、探索の
目標を記述する状態または条件、探索の初期状態または
条件、及び演算子を選択するための評価関数といつた探
索問題を規定する各項目に関して、問題解決戦略、すな
わち推論制御戦略を分類したものである。各戦略分類項
目に対して解決すべき問題に関係する事項を適宜選択す
ることにより、対象とする問題の解決に必要な探索空間
の規定情報、及びその問題を解決するための探索制御戦
略を決定できる。問題解決戦略の分類情報は、問題解決
戦略に関する知識を体系的にまとめたものであり、上記
の各項目の対し複数の推論制御知識を含む。特に、解決
すべき問題に固有の複数の推論制御知識及び解決すべき
問題の対象領域に固有の複数の推論制御知識が含まれ
る。この問題解決戦略の分類情報は、発明者等が発見し
た新しい概念である。この新しい概念の情報を用いた本
発明の実施例を以下に説明する。
本発明の好適な一実施例である知識処理システム構築
ツールを第1図に基づいて説明する。
本実施例の知識処理システム構築ツールは、入力装置
1A、デイスプレイ等の表示装置1B、演算処理装置(CP
U)2、内部メモリである補助記憶装置3、及び外部メ
モリである記憶装置10を備える。入力装置1A、表示装置
1B、補助記憶装置3及び記憶装置10は、演算処理装置2
に接続される。記憶装置10内の記憶エリアが少なくとも
7つのエリアに別れている。これらの6つのエリアは、
記憶手段4〜9として機能する。
記憶手段4は、第2図及び第3図に示す問題解決戦略
の分類情報を記憶する。記憶手段5は、第4図に示す探
索プリミティブ関数(1)〜(12)および探索基本関数
(13)〜(21)を記憶する。探索プリミテイブ関数と探
索基本関数とを合せて探索関数と呼ぶ。記憶手段6は、
第5図に示す処理手順を記憶する。記憶手段7は、後述
の表1に示された汎用探索プログラムを記憶する。記憶
手段8は、本実施例によつて作成された問題解決プログ
ラムを記憶する。この問題解決プログラムは、推論プロ
グラムであり、該当する問題を解決する知識処理システ
ムに用いられる。記憶手段9は、知識処理システム内
で、本実施例によつて作成された問題解決プログラムを
実行するのに必要な知識を記憶する。この知識は、上記
処理手順に従つて入力されたものである。記憶手段110
は、探索プリミテイブ関数が埋めこまれた探索基本関数
と各探索要素関数とを、プログラム作成用知識によつて
対応づけた対応表を記憶する。なお、第5図に示す処理
手順は、記憶装置10ではなく補助記憶装置3に記憶させ
てもよい。
演算処理装置2は、使用者の入力装置1Aへのスタート
信号の入力により、記憶手段6から第5図処理手順を呼
び出し、その処理手順に従つて所定の処理を実行する。
演算処理装置2において実行される処理の内容を以下に
詳細に説明する。
まず、ステツプ12において、問題解決戦略の分類情報
の各戦略分類項目毎に従つて解決すべき問題に関する情
報の入力が行われる。このステップ12により入力された
情報は、補助記憶装置3内の所定の記憶エリアに記憶さ
れる。この情報によつて、フレーム構造の知識ベースが
補助記憶装置3内で構成される。このフレーム構造の知
識ベースを、以下、プログラム作成用知識ベースとい
う。ステツプ13では、ベースとなる所定の汎用探索プロ
グラム及びプログラム作成用知識を用いて問題解決プロ
グラムを作成する。ステツプ14は、作成された問題解決
プログラムを知識処理システム内で実行させる時に必要
な知識(対象知識)を入力して知識ベースを作成する処
理を実行する。作成された問題解決プログラム(推論プ
ログラム)及び入力された対象知識を用いて、解決すべ
き問題を解く知識処理システムを構成できる。すなわ
ち、作成された知識処理システムは、その推論プログラ
ムを実行する推論手段と、対象知識を記憶している知識
ベースとを備えている。
以下に、ステツプ12、13及び14の処理内容の詳細を説
明する。
まず、ステツプ12を述べる。ステツプ12は、第6図に
示すステツプ27〜34を有する。このうちステツプ33は、
第7図に示すようなステツプ33A〜33Eを有する。ステツ
プ27は、問題解決戦略の分類情報(問題解決ストラテジ
ー分類情報)の戦略分類項目(ストラテジー分類項目)
Aのa及びbの情報、すなわち第8図の分類項目Aの選
択メニユー(情報a及びbを含む)を記憶手段4から呼
び出し、この選択メニユーを入力ガイドの初期画面とし
て表示装置1Bに出力する。このとき表示装置1Bは、その
選択メニユーを表示する。使用者は、表示された選択メ
ニユーを見て、構築する知識処理システムに対応した解
決すべき問題に該当する情報を、選択メニユーから選
び、選んだ情報(情報aまたはb)を入力装置1Aより入
力する。演算処理装置2は、入力装置1Aから出力され
た、その選択された情報を、分類項目Aの回答A′とし
て入力する(ステツプ28)。次のステツプ29で「不明
(分からない)」という回答を入力したか否かを判定す
る。ここで「NO」と判定されるとステツプ30の処理に移
る。ステツ29で「YES」と判定された場合はステツプ35
の処理を行う。ステツプ30は、入力した戦略分類項目の
回答を、内部表現に変換する。この変換は、第9図に示
す規則に基づいて行われる。規則は、分類項目(A、
B、……、K)毎に入力値(回答)と変換値(内部表
現)との関係で示される。例えば、分類項目Aにおいて
は、回答「a」が変換値「yes」に変換される。更に、
各分類項目に対応するスロツト名も与えられている。ス
ロツト名としては、「global−inf」、「goal−conditi
on−type」、及び「operation−type」等が用いられ
る。変換値は、該当するスロツトの値である。ステツプ
35は、第10図に示されるデイフオールト値から該当する
デイフオールト値を選択して入力する。デイフオールト
値は、ステツプ28にて入力した戦略分類項目に対応する
スロツト名(第9図)によつて選択される。第9図及び
第10図のデータは、記憶装置10内の所定の記憶エリアに
記憶されている。第10図はフレーム構造で表現されたフ
レーム「task−spec」の知識の例である。ステツプ31で
は、ステツプ30において得られた内部表現、またはステ
ツプ35において選択されたデイフオールト値が補助記憶
装置3に記憶される。問題解決戦略の分類情報の全ての
戦略分類項目に対する情報が入力されたかが判定される
(ステツプ32)。この判定が「NO」の場合、ステツプ33
の処理が実行される。
ステツプ33の処理を第7図により説明する。まず、ス
テツプ33Aでは、戦略分類項目Iの選択メニユーが表示
されたかが判定される。ステツプ33Aは、戦略分類項目
Iの選択メニユーがステツプ34により表示装置1Bに表示
されるまで、「NO」と判定する。このとき、前回表示し
た分類項目の次の分類項目(例えば前回表示した分類項
目がAであれば分類項目B)の選択メニユーが記憶手段
4から呼び出される(ステツプ33B)。ステツプ33Aの判
定が「YES」になつたとき、ステツプ28で入力した分類
項目Iに関する回答I′が、情報aであるかが判定され
る(ステツプ33C)。この判定が「YES」の場合に、探索
木の評価関数メニユーJ(第11図)が、記憶装置10から
呼び出される(ステツプ33D)。メニユーJは、詳細に
は探索木中のノード(節点)の相対的位置関係の評価関
数である。ステツプ33Cの判定が「NO」であるとき、ノ
ードの展開を規定するノードの相対的位置に関する成立
条件のメニユーK(第12図)が、記憶装置10から呼び出
される(ステツプ33E)。ステツプ33Dの処理が実行され
た場合でも、ステツプ33Eの処理が実行される。
ステツプ34において、ステツプ33B、33Dまたは33Eの
処理で得られた、分類項目の選択メニユー、メニユーJ
またはメニユーKの情報を、表示装置1Bに出力する。表
示装置1Bは、いずれか1つのメニユーに含まれる情報を
表示する。使用者は、メニユーJ及びK内の1及び2項
においてそれぞれ1つの情報を選択する。以下、ステツ
プ32の判定が「YES」になるまで、ステツプ28〜34(場
合によつてはステツプ35)の処理が繰返えされる。
第6図でステツプ32の判定が「YES」となるまで繰返
された処理を時系列に表わすと、第13図に示すように連
続したステツプ15〜26の処理となる。ステツプ15〜26で
行われる分類項目の表示では、第8図、第11図及び第12
図に示すメニユーのうち該当するメニユーが表示装置1B
に表示される。第13図に示す回答A′〜K′は、内部表
現等に変換された後ステツプ31により補助記憶装置3に
記憶されるが、そのとき後述するように第16図に示すプ
ログラム作成用知識ベースのスロツトの値のエリアに記
憶される。
第8図に示される選択メニユーの情報、第11図のメニ
ユーJの情報、及び第12図のメニユーKの情報は、対象
とする問題を解決するための探索空間を規定するもの
で、戦略分類項目の情報(推論制御知識)である。戦略
分類項目A〜Iの選択メニユーの各情報及びメニユーJ
の各情報は、解決すべき問題に固有の推論制御知識であ
る。また、メニユーKの各情報は、解決すべき問題の対
象領域に固有の推論制御知識である。ここで、対象領域
とは、火力プラント、原子力プラント、エレベータ、FA
システム、保守支援システム及びCADシステム等の構築
された知識処理システムが適用される領域をいう。
第14図は、ある工程計画問題の具体例である。本問題
は、第14図に示した3つのタスク(タスク1,2及び3)
が同時刻での作業員の数が4名以下という制約条件の下
で、全体の作業時間が最小になるような計画を求める問
題である。本問題に適用する知識処理システムを構築す
るにあたつて、本実施例でステツプ12の処理を行つたと
する。このとき、第6図のステツプ28で入力された、各
戦略分類項目に対応する回答A′〜K′は、第15図のよ
うになる。これらの回答A′〜K′は、ステツプ30で内
部表現に変換され、ステツプ31で補助記憶装置3内のプ
ログラム作成用知識ベースにフレーム構造のプログラム
作成用知識として記憶される。フレーム名が「task−sp
ec」であるプログラム作成用知識ベースを第16図に示
す。フレーム「task−spec」は、回答A′〜K′の内部
表現を値に持つ14のスロツトを有する。なお、スロツト
「goal−condition−place」の値は、分類項目J−1の
変換値(第9図)であり、スロツト「parent−relatio
n」の値に等しい。第6図の処理に基づいて作成された
プログラム作成用知識ベース(第16図)は、回答A′〜
J′に基づいた解決すべき問題に固有の推論制御知識、
及び回答K′に基づいた解決すべき問題の対象領域に固
有の推論制御知識を有し、問題解決戦略の分類情報から
選択された複数の推論制御知識を含むといえる。このプ
ログラム作成用知識ベースは、本実施例では、体系的に
まとめられてあらかじめ準備された所定の問題解決戦略
の分類情報(第2図,第3図,第11図及び第12図)を反
映することによつて作成される。
戦略分類項目の情報が表示されたときに、もし、使用
者が、解決すべき問題に該当する情報が分からなく表示
された情報を選択しない場合、前述したようにステツプ
35により第16図に示した該当するデイフオールト値が選
択される。この選択されたデイフオールト値は、第16図
の該当するスロツトの値となる。このようにデイフオー
ルト値を該当するスロツトの値とすることにより、使用
者が表示された情報を選択しない場合でも、本実施例の
システムを支障なく機能させることができる。また、本
実施例は、任意の対象領域における任意の解決すべき問
題に対して、解決すべき問題に固有の推論制御知識、及
び解決すべき問題の対象領域に固有の推論制御知識を反
映したプログラム作成用知識を得ることができる。
第5図ステツプ12の処理は以上のように行われ、次に
ステツプ13の処理となる。
ステツプ13の処理を説明する前に、記憶手段7に記憶
されている汎用探索プログラム(汎用推論プログラム)
の概要を述べる。この汎用探索プログラムは、ステツプ
13で作成される問題解決プログラムのベースになるもの
である。表1に示す汎用探索プログラムは、オブジエク
ト指向プログラミング手法を用いてルール形式で表現し
たプログラムである。汎用探索プログラムは、初期化、
ラベル付け、探索実行、結果の表示及びエラーメツセー
ジの各ルール群を有する。また、各ルール群は1つもし
くは複数のルールを有し、各ルールにはその処理の内容
を示すラベルが付されている。各ルールは、「contro
l」、「task−spec」、及び「search−kernel」といつ
た各フレームに格納された知識(例えば、スロツトの
値)を取り出し、条件判定を行つて必要な処理を行う。
@で始まる項目が、そのフレームのスロツトを示す。具
体的な処理は、対応するフレームに対するメツセージ送
信により行う。←が、メツセージ送信を意味する。
表1 汎用探索プログラム {初期化} (ルール1 if(control @object→?obj @refer=off) then(←control assign(“refer",“on"))) {ラベル付け} (ラベル付け if(search−kernel @test=on) (task−spec @link−type=link) (control @object→?obj) then(←search−kernel label(?obj,?obj)) (←search−kernel assign(test,off)) (←system print(“node"labeled))) (初期ノードの設定 if(?search−cell @node−type=chip @search−st=yet) then(←?search−cell assign(“search−st",“curr
ent")) (←control add−active−c(?search− cell)) (←control assign(“stage",“select−nod
e"))) {探索実行} (ゴール条件判定 if(control @step→?step) (search−cellt @search−st=current @step <?step) (control @goal−c!*=?search−cell) then(←?search−cell establish−check) (←?search−cell assign(“step",?step))) (終了条件1 if(control @stage=check−goal @finishing−cond=yes) then(event−reset(output))) (ゴールノードの設定1 if(control @active−c*=?search−cell) (?search−cell @r−es−cond−st=yes) (control @goal−c!*=?search−cell) then(←control add−goal(?search−cell)) (←control check−goal−condl))) (ゴールの設定2 if(control @active−c={}) (task−spec @goal−condition−place=deepest) then(←control check−goal−cond2) (←control assign(“stage",“check−goal"))) (終了条件が失敗の場合 if(control @stage=check−goal) then(←control assign(“stage",“select−nod
e"))) (ノードの選択 if(control @stage=select−node) then(control select−node) (←control assign(“stage",“select−link"))) (リンクの選択 if(control @stage=select−link) @open−node→?node) (task−spec @link−type=link) then(←control assign(“stage",“counter" )) (←control select−link(?node))) (オペレータの選択/適用 if(task−spec @link−type=function @stage=select−link @open−node→?node) then(←control select−function(?node)) (←control assign(“stage",“counter" ))) (活性ノードの更新 if(control @stage=reset−active−node) (?link @all−current=yes @chek =no) then(←control reset−active−node)) (←control assign(“stage,check−goal"))) (終了条件2 if(control @active−c={}) then(event−reset(errer−output))) (カウンター if(control @stage=counter @step→?stage) then(←control assign(“stage",“reset−active−
node")) (←control assign(“step",int(?step+1))) (←control reset−active−node) (←system print(“$nNow Search Step%d",?ste
p))) (結果の表示) (結果出力 if(control @stage=check−goal) (?search−cell @r−es−cond−st=yes) (control @active−c*=?search−cell) then(←system print(“$n Result %s",?search−c
ell)) (event−reset(end))) {エラーメッセージ} (エラー出力 if(control @stage→?st) then(←system print(“$n Search is failed:::%
s",?st)) (event−reset(end))) 表1の汎用探索プログラムは、フレーム「task−spe
c」(以下、task−spec fr.という)に具体的なプログ
ラム作成用知識を設定し、フレーム「control」(以
下、control fr.という)に具体的な処理プログラムを
設定することにより実行可能なプログラムとなる。すな
わち、汎用探索プログラム内のこれらのフレームに対し
て、対象とする問題を解くために必要な情報を与えるだ
けで、その問題を解決する適切な問題解決プログラムが
得られる。この問題解決プログラムは、知識処理システ
ムを用いられる推論プログラムである。
表1に示す汎用探索プログラムの主要な部分を、第17
図に示す。その主要な部分は、探索木を初期設定(ステ
ツプ36)、成功終了判定(ステツプ37)、失敗終了判定
(ステツプ38)、ノードの選択(ステツプ39)、リンク
(作用素)の選択(ステツプ40)、オペレータの選択/
適用(ステツプ41)、活性ノードの選択(ステツプ42)
及び探索結果出力(ステツプ43)の各ステツプである。
ステツプ37及び38の判定が「YES」であるとき、ステツ
プ43の処理が順次行われ、ステツプ42の処理が終了した
ときにステツプ37の処理が再度実行される。ステツプ37
及び38の判定が「NO」であるとき、ステツプ36〜42の処
理が順次行われる。表1に示す汎用探索プログラムにお
いて、「初期化」及び「ラベル付け」がステツプ36に、
「終了条件1」及び「ゴールノードの設定1」がステツ
プ37に、「終了条件が失敗の場合」及び「ゴールノード
の設定2」がステツプ38に、「ノードの選択」がステツ
プ39に、「リンクの選択」がステツプ40に、「オペレー
タの選択/適用」がステツプ41に、「活性ノードの更
新」がステツプ42に、及び「結果出力」がステツプ43に
それぞれ相当する。なお、表1に示す汎用探索プログラ
ムに示された「ゴール条件判定」、「終了条件2」、
「カウンター」及び「エラー出力」の各処理は、第17図
では省略している。
汎用探索プログラムの「成功終了判定」に含まれる探
索要素関数「check−goal−cond 1」の汎用プログラム
は、第18図に示すように5つのプログラム要素A1〜A5
有する。プログラム要素A1は、task−spec fr.の知識に
応じて、探索要素関数「check−goal−cond 1」を構成
するのに必要な複数の変数を有する。プログラム要素A2
は、記憶手段5から呼び出した探索基本関数Goal(c,
k)(第4図)を変数G[ng_ele]に代入し、及びtask
−spec fr.のスロツト「goal−number」の値を変数goal
−numberに代入する処理を実行する。プログラム要素A3
は、記憶手段5から呼び出した探索基本関数Active_c
(k)を変数A[na_ele]に代入する処理を行う。プロ
グラム要素A4は、判定の処理を行う。プログラム要素A5
は、control fr.のスロツト「@stage」の値を「check
−goal」にする機能を持つ。変数G[ng_ele]、goal−
number及びA[na_ele]は、探索要素関数「check−goa
l−cond 1」の変数である。プログラム要素A1〜A5は、
第18図に示す処理順序でつながる。プログラム要素A1
びA4は、前述のtask−spec fr.(第16図)内の解決すべ
き問題に固有の推論制御知識に基づいて、変更される可
変型のプログラム要素である。プログラム要素A1及びA4
は、その推論制御知識に基づいて、特定の対象領域にお
ける特定の解決すべき問題に対して適用されるプログラ
ム要素になる。残りのプログラム要素A2、A3及びA5は、
解決すべき問題に固有の推論制御知識及び解決すべき問
題の対象領域に固有の推論制御知識の影響を受けない固
定型のプログラム要素である。探索要素関数「check−g
oal−cond1」の汎用プログラムは、解決すべき問題に固
有の推論制御知識の影響を受ける可変型のプログラム要
素、及び固定型のプログラム要素を含むといえる。探索
要素関数「check−goal−cond1」の汎用プログラムの具
体例を、第19図に示す。この汎用プログラムは、c言語
で書かれている。
汎用探索プログラムの「失敗終了判定」における探索
要素関数「check−goal−cond2」の汎用プログラムは、
第20図に示すように6つのプログラム要素B1〜B6を有す
る。プログラム要素B1は、task−spec fr.の知識に応じ
て、探索要素関数「check−goal−cond 2」を構成する
のに必要な変数を有する。プログラム要素B2は、記憶手
段5から呼び出した探索基本関数Active_c(k)を用い
て、探索要素関数「check−goal−cond2」の変数である
活性ノード集合A[na_ele]、及び要素数na_eleを取り
出す処理を行う。プログラム要素B3は、control fr.の
スロツト「goal−c」から探索要素関数「check−goal
−cond2」の変数である目標ノード集合G[ng_ele]、
及び要素数na_eleを取り出す機能を持つ。プログラム要
素B4は、task−spec fr.のスロツトgoal−numbの値を目
標ノード数ngとして取り出す処理を実行する。プログラ
ム要素B5は、ng>ng_eleでかつna_ele=0の条件を満足
するかを判定する。プログラム要素B6は、失敗終了と判
定するものである。以上の機能を有するプログラム要素
B1〜B6は、互いに、第20図に示す処理順序でつながる。
プログラム要素B1は、プログラム要素A1と同じ、解決す
べき問題に固有の推論制御知識の影響を受ける可変型の
プログラム要素である。他のプログラム要素B2〜B6は、
固定型のプログラム要素である。探索要素関数「check
−goal−cond 2」の汎用プログラムも、解決すべき問題
に固有の推論制御知識の影響を受ける可変型のプログラ
ム要素、及び固定型のプログラム要素を含む。
汎用探索プログラムの「ノード選択」における探索要
素関数「select−node」の汎用プログラムは、図示され
ていないが8つの主なプログラム要素を有する。これら
のプログラム要素の一部は固定型のプログラム要素であ
り、残りは前述の可変型のプログラム要素である。可変
型のプログラム要素は、task−spec fr.のスロツト「pa
rent−relation」及び「sibling−relation」の値に応
じたプログラム要素になる。
汎用探索プログラムの「リンクの選択」における探索
要素関数「select−link」の汎用プログラムは、10のプ
ログラム要素D1〜D10を有する(第21図)。プログラムD
1は、1を変数nに代入及び変数evalに0を代入するも
のである。プログラム要素D2は、ノードのリンクの数li
nk_numを取り出す処理を行う。変数link[n]の属性が
利用済みであるかの判定を行う機能を、プログラム要素
D3が有する。プログラム要素D4は、変数eval_link(lin
k[n])を変数eval_lに代入する処理を行う。プログ
ラム要素D5は、変数eval_lが変数evalより大きいかを判
定する。プログラム要素D6は、変数can_linkに変数link
[n]を代入し、変数evalに変数eval_lを代入する処理
を実行する。プログラム要素D7は、変数nに変数(n+
1)を代入する機能を持つ。プログラム要素D8は、変数
nがリンクの数link_numよりも大きいかを判定する。プ
ログラム要素D9は、リンクとして変数can_linkを選択す
ると共に変数can_linkの属性を利用済みにする。プログ
ラム要素D10は、リンクの属性を変更する機能を有す
る。変数n,eva,link[n]、eval_link(link
[n])、eval_l、can_link、及び(n+1)は、探索
要素関数「select−link」の変数である。プログラム要
素D1〜D10は、第21図に示す順序でつながる。プログラ
ム要素D1〜D9は、固定型のプログラム要素である。プロ
グラム要素D10は、task−spec fr.に含まれる、解決す
べき問題の対象領域に固有の推論制御知識に基づいて変
更される可変型のプログラム要素である。探索要素関数
「select−link」の汎用プログラムは、解決すべき問題
の対象領域に固有の推論制御知識の影響を受ける可変型
のプログラム要素、及び固定型のプログラム要素を含
む。
汎用探索プログラムの「オペレータの選択/適用」に
おける探索要素関数「select−function」の汎用プログ
ラムは、主に6つのステツプを有する。この探索要素関
数「select−function」の汎用プログラムは、全体が固
定型プログラム要素である。
汎用プログラムの探索要素関数「check−goal−cond
1」、「check−goal−cond2」、「select−node」、「s
elect−link」、及び「select−function」に対する各
プログラム要素は、各探索要素関数と対応付けて記憶手
段7に記憶される。
以上が汎用探索プログラムの内容である。次にステツ
プ13における問題解決プログラム作成の詳細な内容を述
べる。ステツプ13は、第22図に示すステツプ141〜147を
有し、これらのステツプの処理を第22図に示す順序で実
行するものである。まず、第22図に図示されているが、
使用者は、入力装置1Aを用いて、知識処理システムにお
いて解決すべき問題(例えば、第14図に示す工程計画問
題)に関する対象領域の情報、すなわち問題の設定情報
の目標、関数及び制約条件等のデータを入力する。これ
らのデータは、演算処理装置2に入力され、ノード選択
に用いる探索要素関数のプログラムの作成に用いられ
る。解決すべき問題によつては、上記入力データを、
「リンク選択」及び「オペレータの選択/適用」の探索
要素関数のプログラム作成にも用いる。上記データ入力
後ステツプ37の成功終了判定に用いる探索要素関数「ch
eck−goal−cond1」(以下、成功終了判定関数という)
のプログラムを作成する(ステツプ141)。ステツプ38
の失敗終了判定に用いる探索要素関数「check−goal−c
ond2」(以下、失敗終了判定関数という)のプログラム
を作成する(ステツプ142)。ステツプ143では、ステツ
プ39のノード選択に用いる探索要素関数「select−nod
e」(以下、ノード選択関数という)のプログラムを作
成する。ステツプ144では、ステツプ40のリンク選択に
用いる探索要素関数「select−link」(以下、リンク選
択関数という)のプログラムを作成する。ステツプ141
〜144で作成された各プログラムは、補助記憶装置3に
記憶される。ステツプ145において、ステツプ41のオペ
レータ選択/適用に用いる探索要素関数「select−func
tion」のプログラムを、記憶手段7から読み込み、補助
記憶装置3に記憶する。次に、記憶手段7から表1に示
す汎用探索プログラムを、読み込み、補助記憶装置3に
記憶する(ステツプ146)。ステツプ141〜146によつ
て、使用者が望む特定の対象領域に適用できしかも特定
の解決すべき問題を解くことができる問題解決プログラ
ムが、自動的に作成される。最後のステツプ147で、作
成された問題解決プログラムが、補助記憶装置3から読
み込まれて記憶手段8に記憶される。
プログラム作成用知識が反映される成功終了判定関
数、失敗終了判定関数、ノード選択関数、及びリンク選
択関数の各プログラムの作成について説明する。
第23図は、成功終了判定関数のプログラムを作成する
ステツプ141の詳細な内容を示す。最初に、出力先のフ
アイルを設定する(ステツプ48)。このステツプによつ
て例えば補助記憶装置3が設定される。フレーム構造で
ある成功終了判定関数のプログラム要素知識からプログ
ラム要素の数を取り出し、この数を変数n_eleに代入す
る(ステツプ49)。
その成功終了判定関数のプログラム要素知識の内容を
第24図に示す。成功終了判定関数のプログラム要素知識
は、成功終了判定関数のプログラム要素数が5であるこ
とを示す知識を含む(図示せず)。成功終了判定関数の
プログラム要素知識に含まれるフレーム「プログラム要
素A1」及び「プログラム要素A4」の知識を、説明する。
フレーム「プログラム要素A1」の知識は、task−spec f
r.のスロツト「parent−relation」の値に対応してプロ
グラム要素A1がとるべき変数を規定する。すなわち、ス
ロツト「parent−relation」の値が「deepest」である
とき、プログラム要素A1はプログラム要素CGC1となる。
スロツト「parent−relation」の値が「shallowest」で
あるとき、プログラム要素A1はプログラム要素CGC2とな
る。更に、スロツト「parent−relation」の値が「no」
であるとき、プログラム要素A1はプログラム要素CGC3と
なる。フレーム「プログラム要素A4」の知識は、task−
spec fr.のスロツト「parent−relation」の値に対応し
てプログラム要素A4がとるべき判定条件を規定する。す
なわち、スロツト「parent−relation」の値が「deepes
t」であるとき、プログラム要素A4はプログラム要素CGC
4となる。スロツト「parent−relation」の値が「shall
owest」であるとき、プログラム要素A4はプログラム要
素CGC5となる。更に、スロツト「parent−relation」の
値が「no」であるとき、プログラム要素A4はプログラム
要素CGC6となる。
ステツプ49により変数n_eleに5が代入される。設定
されたフアイル(例えば補助記憶装置3)に成功終了判
定関数名「check−goal−cond1」を出力する(ステツプ
50)。1をnに代入する(ステツプ51)。n_ele>nの
条件を満足するかを判定する(ステツプ52)。ステツプ
52の判定が「YES」のとき、ステツプ141の処理が終了す
る。ステツプ52の判定が「NO」のとき、ステツプ53の判
定が行われる。すなわちプログラム要素Anが固定型のプ
ログラム要素であるかが判定される。ステツプ53の判定
が「YES」のとき、ステツプ54でプログラム要素Anをフ
アイルに出力する。ステツプ53の判定が「NO」のとき、
task−fr.のスロツト「parent−relation」の値を入力
し、その値に対応して設定されたプログラム要素を、該
当する可変型のプログラム要素An(A1またはA4)とする
(ステツプ55)。この後にも、ステツプ54の処理が行わ
れる。これらの処理によつて、目的とする成功終了判定
関数のプログラムが補助記憶装置3内に作成される。こ
のプログラムは、第18図のようにつながつたプログラム
要素A1〜A5を有する。しかし可変型のプログラム要素A1
は、プログラム要素CGC1,CGC2またはCGC3になつてい
る。更に可変型のプログラム要素A4も、プログラム要素
CGC4,CGC5またはCGC6になつている。
以上のようにして、プログラム作成用知識に含まれる
解決すべき問題に固有の推論制御知識を反映した成功終
了判定関数のプログラムが、作成できる。第25図は、第
14図に示す工程計画問題の具体例に対して作成された、
c言語で書かれた成功終了判定関数の例である。この例
は、第18図(具体的には第19図)に示す成功終了判定関
数の汎用プログラム、及び第16図に示すプログラム作成
用知識を用いて、ステツプ141の処理によつて作成され
たものである。
次に、失敗終了判定関数のプログラムを作成するステ
ツプ142について説明する。ステツプ142も、第23図に示
す処理とほとんど同じ処理を行う。第23図の処理におい
て異なつている部分は、ステツプ49の処理内容である。
この処理は、失敗終了判定関数のプログラム要素知識か
らプログラム要素の数を取り出し、この数を変数n_ele
に代入するものである。また、ステツプ53、54及び55の
「An」が「Bn」になつている。失敗終了判定関数のプロ
グラム要素知識は、失敗終了判定関数のプログラム要素
知識のフレーム「プログラム要素B1」の知識と、失敗終
了判定関数のプログラム要素が6であることを示す知識
とを含む。フレーム「プログラム要素B1」の知識は、前
述したフレーム「プログラム要素A1」の知識と同じであ
る。失敗終了判定関数のプログラムも、失敗終了判定関
数の汎用プログラム(第20図)、及びプログラム作成用
知識(例えば第16図)を用いて、成功終了判定関数のプ
ログラムと同様に作成される。この失敗終了判定関数の
プログラムは、プログラム作成用知識に含まれる解決す
べき問題に固有の推論制御知識を反映して作成できる。
この失敗終了判定関数のプログラムは、第20図のように
つながつたプログラム要素B1〜B6を有する。ただし、可
変型のプログラム要素B1は、該当するスロツトの値に対
応してフレーム「プログラム要素B1」から選択されたプ
ログラム要素になつている。
ノード選択関数のプログラムを作成するステツプ143
について説明する。このステツプ143の処理も、失敗終
了判定関数のプログラムの場合と同様に、ステツプ49の
「成功終了判定関数」が「ノード選択関数」に、ステツ
プ53、54及び55の「An」が「Cn」になつていることを除
いて、第23図の処理と同じである。ノード選択関数のプ
ログラム要素知識は、task−spec fr.のスロツト「pare
nt−relation」及び「sibling−relation」の値に対応
して可変型プログラム要素がとるべきプログラム要素を
規定する。ステツプ143では、ノード選択関数のプログ
ラムに含まれる固定型の各プログラム要素はステツプ53
の判定によりそのまま補助記憶装置3に記憶される。他
方、ノード選択関数のプログラムに含まれる可変型のプ
ログラム要素は、ステツプ53及び55の処理により、スロ
ツト「parent−relation」及び「sibling−relation」
の値に対応したプログラム要素になる。このプログラム
要素は、補助記憶装置3に記憶される。このように、各
プログラム要素がつながつたノード選択関数のプログラ
ムが補助記憶装置3内に生成される。ノード選択関数の
プログラムは、ノード選択の汎用プログラム、及びプロ
グラム作成用知識(例えば第16図)に含まれる解決すべ
き問題に固有の推論制御知識を用いて、成功終了判定関
数のプログラムと同様に作成される。
最後に、ステツプ144にて行われるリンク選択関数の
プログラムの作成について述べる。ステツプ144の処理
も、失敗終了判定関数のプログラムの場合と同様に、ス
テツプ49の「成功終了判定関数」が「リンク選択関数」
で、ステツプ53、54及び55の「An」が「Dn」であること
を除いて、第23図の処理と同じである。
リンク選択関数のプログラム要素知識の一部を第26図
に示す。図示されていないが、リンク選択関数のプログ
ラム要素知識は、リンク選択関数のプログラム要素数が
10であることを示す知識を含む。リンク選択関数のプロ
グラム要素知識であるフレーム「プログラム要素D10
の知識は、task−spec fr.のスロツト「es−parent−re
lation」及び「es−sibling−relation」の各値によつ
てプログラム要素D10がとるべきプログラム要素SL1〜SL
5等を設定する。すなわちスロツト「es−parent−relat
ion」の値aに対してスロツト「es−sibling−relatio
n」の値a〜e毎に、プログラム要素(SL1,SL2,SL3,SL4
またはSL5)を1つずつ対応させている。スロツト「es
−parent−relation」の値b及びcに対しても、スロツ
ト「es−sibling−relation」の値a〜e毎に、プログ
ラム要素を1つずつ対応させている。
プログラム要素D1〜D9は、ステツプ144内のステツプ5
3の判定によりそのまま補助記憶装置3に記憶される。
プログラム要素D10は、ステツプ44におけるステツプ53
及び55の処理により前述した2つのスロツトの値に応じ
て定まるプログラム要素となつて、補助記憶装置3に記
憶される。このようにして作成されたリンク選択関数の
プログラムは、プログラム要素D1〜D10が第21図のよう
につながり、しかも解決すべき問題の対象領域に固有の
推論制御知識が反映されたものとなる。
本実施例によれば、プログラム作成用知識に基づい
て、解決すべき問題に固有の推論制御知識及びその問題
の対象領域に固有の推論制御知識を反映した問題解決プ
ログラムを、自動的に作成できる。本実施例によれば、
任意の解決すべき問題及び任意の対象領域に対して、問
題解決プログラムを作成できる。
特に、問題解決プログラムの作成において、汎用探索
プログラムをベースのプログラムとして用いているの
で、該当する問題解決プログラムの作成が容易になる。
上記汎用探索プログラムが、表1に示す部分、及び探索
要素関数「select−function」の汎用プログラムである
固定プログラムと、成功終了判定関数、失敗終了判定関
数、ノード選択関数及びリンク選択関数の各汎用プログ
ラムである可変型の関数プログラムとを含むことが、対
象とする問題解決プログラムの作成を著しく容易にして
いる。これは、汎用探索プログラムの一部を占める可変
型の関数プログラムが、解決すべき問題に固有の推論制
御知識及びその問題の対象領域に固有の推論制御知識の
一方、すなわち第2図,第3図,第11図及び第12図に示
す問題解決戦略の分類情報から選択された所定の推論制
御知識の適用によつて、特定に問題及び特定の対象領域
に適合するものになるためである。特に、可変型の関数
プログラムが可変型プログラム要素及び固定型プログラ
ム要素を含むことが、その問題解決プログラムの作成を
更に容易にする。該当する可変型プログラム要素は、問
題解決戦略の分類情報から選択された所定の推論制御知
識を適用することにより、特定の問題及び特定の対象領
域に適合するものになる。可変型プログラム要素を特定
の問題及び特定の対象領域に適合できるものにすること
によつて、それを一部に用いた汎用探索プログラムが、
極めて容易に、特定の問題及び特定の対象領域に適用で
きる問題解決プログラムになる。
換言すれば、汎用探索プログラムをベースのプログラ
ムとして用いることが、本実施例において、任意の解決
すべき問題及び任意の対象領域に対して該当する問題解
決プログラムを作成できる知識処理システム構築ツール
を得ることができる一つの要因である。特に、上記汎用
探索プログラムが固定プログラム及び可変型の関数プロ
グラムとを含むこと、具体的には汎用探索プログラムが
可変型プログラム要素及び固定型プログラム要素を含む
ことが、本実施例において、その問題解決プログラムを
作成できる知識処理システム構築ツールが得られる一つ
の大きな要因である。しかし、本実施例において、その
問題解決プログラムの作成が可能な知識処理システム構
築ツールが得られる最も大きな要因は、あらかじめ定め
られた問題解決戦略の分類情報から選択された所定の情
報を問題解決プログラムの作成に適用することである。
本実施例は、あらかじめ定められた問題解決戦略の分
類情報を準備しているので、問題解決プログラムを作成
するために必要な所定の情報を確実に入力できる。その
際、使用者は、問題解決プログラムの作成に必要な情報
を新たに考えるといつた面倒なことをする必要がない。
最後に、作成された問題解決プログラムによる推論を
知識処理システムにおいて実行するために必要な知識ベ
ースの作成、すなわちステツプ14の具体的な処理内容
を、第27図に基づいて以下に説明する。
この処理によつて作成される知識ベースは、第28図に
示すものである。第28図は、解決すべき問題及び対象領
域に対する探索空間を構成する各情報をデータ構造で表
している。その探索空間を規定する情報は、初期ノード
(初期節点)、目標ノード(目標節点)、中間ノード
(中間節点)、親子関係、成立条件、及び状態の6種類
のセル構造で表現される。更に、それらの各情報のうち
初期ノード,目標ノード,中間ノード及び親子関係の情
報は、探索空間規定セルとよぶ1つのセルにまとめてい
る。その探索空間を構成するノードのうち初期ノード及
び目標ノードを除いた各ノードは、中間ノードセルと呼
ぶデータ構造で定義される。初期ノード及び目標ノード
は、それぞれ初期ノードセル及び目標ノードセルと呼ば
れる別のデータ構造で定義される。各ノードの属性値の
うち、ノード間の関係を与える情報を親子関係と呼ぶ。
この親子関係の情報は、親子関係セルのデータ構造で定
義される。各ノードの属性を状態と呼び、状態の情報は
状態セルのデータ構造で定義される。また、ノード間の
成立条件及び各状態の成立条件を特別に成立条件セルと
呼ぶデータ構造で定義する。一般に、探索問題では、探
索空間を構成する各ノードが予め全て与えられている場
合と、探索の過程で各ノードが生成される場合とがあ
る。前者における各ノードの関係は、関係するノードの
情報が親子関係セル内の属性名「状態変換規則」の値と
して与えられる。また、後者における各ノードの関係
は、状態を変換する演算子(オペレータ)が親子関係セ
ル内の属性名「状態変換規則」の値として与えられる。
このように、親子関係と呼ぶデータ構造を導入すること
により一般的な探索問題を同一のデータ構造で記述する
ことができる。
探索空間を構成する各ノードに関する情報は、初期ノ
ードセル、中間ノードセル及び目標ノードセルのうち該
当するセルに与えられる。初期ノード、中間ノード及び
目標ノードに関する情報の数が異なるので、1つのノー
ドセルにそれらの情報を全て含ませるよりも、本実施例
のように初期ノードセル、中間ノードセル及び目標ノー
ドセルに分けて与えるほうが知識ベースの作成が容易で
ある。しかも、構築された知識処理システムを使用する
場合においても、初期ノード、中間ノード及び目標ノー
ドに関する情報は知識ベースの該当する各々のノードセ
ルから短時間に呼び出せるので、推論に要する時間を短
縮できる。
第27図に示す処理(ステツプ14)は、ステツプ56〜66
を有する。この処理は、ステツプ56,59,62及び65の各判
定に基づいて、該当する入力すべき知識の内容を表示装
置1Bにガイダンスするとともに入力された知識を記憶手
段9の所定のエリア(第28図)に記憶させるものであ
る。ステツプ56,59,62及び65の各判定は、task−spec f
r.のスロツトの値に基づいて行なわれる。
ステツプ56は、スロツト「goal−condition−type」
の値を判定する。その値が「state」であればステツプ5
8、「condition」であればステツプ57の処理が実行され
る。ステツプ57では、目標ノードの「ノード間の成立条
件」に関する知識の入力を指示するガイダンスを出力す
る。使用者は、表示装置1Bに表示されたガイダンスを見
て対象領域に関する該当する知識を入力装置1Aから入力
する。入力されたその知識は、目標ノードセルの「ノー
ド間の成立条件」及び目標ノードセルに対応する成立条
件セルの値として記憶される。ステツプ58では、目標ノ
ードの「状態の成立条件」に関する知識の入力を指示す
るガイダンスを出力する。入力装置1Aから入力されたそ
の知識は、目標ノードセルの「状態の成立条件」及びそ
の成立条件セルの値として記憶される。
ステツプ59は、スロツト「initial−type」の値を判
定する。その値が「state」であればステツプ61、「con
dition」であればステツプ60の処理が実行される。ステ
ツプ60では、初期ノードの「ノード間の成立条件」に関
する知識の入力を指示するガイダンスを出力する。入力
装置1Aから入力されたその知識は、初期ノードセルの
「ノード間の成立条件」及び初期ノードセルに対応する
他の成立条件セルに記憶される。ステツプ61では、初期
ノードの「状態の成立条件」及び「状態」に関する知識
の入力を指示するガイダンスを出力する。入力装置1Aか
ら入力されたその知識は、初期ノードセルの「状態の成
立条件」、前述の他の成立条件セル及び初期ノードセル
に対応する状態セルに記憶される初期ノードに関連して
親子関係の情報がある場合は、ステツプ60または61で入
力される。その情報は、初期ノードセルに対応する親子
関係セルに記憶される。
ステツプ62は、スロツト「operation−type」の値を
判定する。その値が「function」であればステツプ63の
処理が、「link」であればステツプ64の処理が実行され
る。ステツプ63では、ノード展開のための演算子(オペ
レータ)に関する知識の入力を指示するガイダンスを出
力する。入力装置1Aから入力されたその知識は、親子関
係セルに記憶される。ステツプ64では、探索空間を構成
する全てのノードに関する知識の入力を指示するガイダ
ンスを出力する。入力装置1Aから入力されたその知識
は、中間ノードセルに記憶される。その知識の中に親子
関係、成立条件及び状態の知識が含まれている場合、そ
れらの知識は、中間ノードセルに対応する親子関係セ
ル、成立条件セル及び状態セルのうち該当するセルに記
憶される。ステツプ63及び64では、スロツト「operatio
n−type」の値を中間ノードセル及び初期ノードセルの
「親子関係のタイプ」の値として記憶する。
ステツプ65は、スロツト「evaluation−func−type」
の値を判定する。その値が「changeable」であればステ
ツプ66の処理が実行される。ステツプ66において、演算
子(オペレータ)の変更に関するノードの知識及び対応
する評価関数の入力を指示するガイダンスを出力する。
入力装置1Aから入力されたそれらの情報に基づいて、記
憶手段5に記憶されている探索プリミティブ関数(1)
〜(12)および探索基本関数(13)〜(21)のうち該当
するものが変更される。ステツプ65でスロツト「evalua
tion−func−type」の値が「fix」であると判定された
場合は、探索プリミティブ関数(1)〜(12)および探
索基本関数(13)〜(21)は変更されない。
以上のステツプ14で入力される知識は、解決すべき問
題の対象領域に関係するものである。ステツプ14で入力
される知識が記憶手段9に記憶されることによつて、作
成された問題探索プログラムによる推論を知識処理シス
テムにおいて実行するために必要な知識ベースを、作成
できる。
第14図に示す工程計画問題の具体例に対して作成され
た知識ベースを第29図に示す。この知識ベースは、第16
図のtask−spec fr.のスロツトの値に対応して作成され
たものである。第30図(A)及び(B)は、第29図の親
子関係セルの状態変換規則に示すタスクの関数例であ
る。これらは、演算子として各状態を構成するタスク2
及び3の開始時間を1時間遅らせるための関数が定義さ
れている。これらのプログラムは、オブジエクト指向プ
ログラミング手法を利用したC言語により記述される。
以上述べた本実施例による知識ベースの作成も、あら
かじめ定められた問題解決戦略の分類情報から選択され
た所定の情報に基づいて必要な知識の入力をガイダンス
により指示するので、作成された問題解決プログラムに
よる推論を知識処理システムにおいて実行するために必
要な知識を洩れなくしかも適切に入力することができ
る。また、知識ベースの作成が、極めて容易である。
本実施例を用いた、工程計画問題に対する知識処理シ
ステムの構築について述べたが、次に、原子炉の診断を
行なう知識処理システムの構築について述べる。ここ
で、「診断」が解決すべき問題であり、「原子炉」が対
象領域である。なお、工程計画問題では、「工程計画」
が解決すべき問題であり、「タスク1、2、及び3」が
対象領域である。
階層的分類の推論方法を用いた原子炉の異常診断を行
なう知識処理システムの構築を説明する。
第31図は、原子炉の異常診断を行なうときに用いる知
識を示したものである。第31図において丸で囲んだ名称
が診断判定内容を示し、アンダーラインを付したものが
各異常診断を判定する根拠となる発生信号である。この
発生信号は、原子炉プラントから測定される。ここでRF
Pは給水ポンプ、TD/RFPはタービン駆動給水ポンプ及びM
D/RFPはモータ駆動給水ポンプである。異常診断は、出
力変動が発生したところから始まる。例えば、信号Aが
発生していればRFP故障と判定し、更に給水流量低の信
号が発生していればTD/RFP故障と判定する。このよう
に、より広い概念から出発し、得られた情報に基づいて
より詳細な概念を得る推論方法を階層的分類という。
本実施例の知識処理システム構築ツールを用いて、上
記した原子炉の異常診断を行なう知識処理システムを構
築した。すなわち、ステツプ12の処理により入力された
各ストラテジー分類項目に対する回答A′〜K′は、第
32図のようになる。これらの回答に基づいて、原子炉の
異常診断に対するtask−spec fr.が作成される。更に、
ステツプ13において、原子炉の異常診断に対する問題解
決プログラムが、そのtask−spec fr.に含まれる情報
(知識)及び前述の汎用探索プログラムを用いて作成さ
れる。第34図は、原子炉の異常診断に対して、ステツプ
13で作成された問題解決プログラムの探索要素関数「ch
eck−goal−cond1」の具体例である。第33図は、ステツ
プ14で作成された、原子炉の異常診断の知識ベースの具
体例である。この知識ベースは、作成された原子炉の異
常診断用の問題解決プログラムを用いて推論を行なうと
きに必要な知識を含む。
本実施例によれば、任意の解決すべき問題及び任意の
対象領域に対して、推論プログラムである問題解決プロ
グラムを自動的に作成することができ、その問題解決プ
ログラムを実行する際に必要な知識ベースも容易に作成
できる。対象とする問題解決プログラムを作成するにあ
たつて、使用者は、対象とする問題解決プログラムの作
成に必要な情報、すなわち対象とする特定の解決すべき
問題及び対象とする特定の対象領域に関係する情報を、
表示されたメニユーに基づいて問題解決戦略の分類情報
から選択するだけでよい。
第5図に示す処理手順を実行する演算処理装置2の機
能を、第35図により説明する。演算処理装置2は、プロ
グラム作成用知識ベース作成手段36、推論プログラム作
成手段39及び知識ベース作成手段40を有する。プログラ
ム作成用知識ベース作成手段36は、ステツプ12の処理を
実行し、推論制御知識表示手段37及びプログラム作成用
知識出力手段38を有する。推論制御知識表示手段37は、
第6図のステツプ27、33及び34に相当する。推論制御知
識表示手段37は、記憶手段4に記憶されている問題解決
戦略の分類情報に含まれる推論制御知識を戦略分類項目
毎に読み込み、表示装置1Bに出力する。プログラム作成
用知識出力手段38は、第6図のステツプ28〜32及び35の
処理を行う。このプログラム作成用知識出力手段38は、
使用者が入力装置1Aで指定した推論制御知識に関する情
報を補助記憶装置3の所定の記憶エリアに出力する。推
論プログラム作成手段39は、ステツプ13の処理を実行し
て推論プログラムを作成する。知識ベース作成手段40を
有する。プログラム作成用知識ベース作成手段36は、ス
テツプ14の処理を実行し、知識入力ガイド手段41及び知
識出力手段42を有する。知識入力ガイド手段41は、第27
図に示す各ステツプの処理を実行する。知識出力手段42
は、第27図に図示されていないが、ステツプ57,58,60,6
1,63,64及び66の各処理の後に各ステツプで指示された
知識の入力を行い、記憶手段9の所定のエリア(第28
図)に記憶される。その知識の入力は、入力装置1Aより
行われる。
前述した実施例では、問題解決戦略の分類情報を利用
して対象とするプログラム生成用知識を対話的に得てい
る。しかし、問題解決戦略の分類情報内の各情報を予め
整理して探索空間を規定する情報として使用し、それら
の情報を表示装置1Bに一回に表示しても前述の実施例と
同様な結果が得られる。
また、問題解決戦略の分類情報に含まれる推論制御知
識の入力指示と、推論プログラム作成処理を分けて実施
しているが、上記探索空間の規定情報の各情報に従つ
て、対応する問題解決プログラムの探索要素関数を作成
する処理を行うことにより、1つの処理で実施すること
もできる。ただし、この場合は、対象領域の知識の入力
を支援する際に必要な情報は、前述した実施例で述べた
ようにプログラム作成用知識として記憶しておく必要が
ある。
さらに、前述した実施例の各プログラムは、Lisp及び
prolog等の他のプログラミング言語を使用して作成して
もよい。
以上述べた実施例は、記憶装置10が演算処理装置2と
セツトになつている例である。外部メモリである記憶装
置10がなく内部メモリの補助記憶装置3が記憶装置10の
機能を代用する知識処理システム構築ツールの例が、以
下に説明される。この知識処理システム構築ツールの例
は、本発明の他の実施例である。
本実施例は、パーソナルコンピユータまたはワークス
テーシヨン等のコンピユータを用いたものである。本実
施例の知識処理システム構築ツールは、第36図に示すよ
うに入力装置1A、表示装置1B、及びコンピユータ処理装
置68を有する。コンピユータ処理装置68は、図示してい
ないが内部に演算処理装置2,補助記憶装置3,フロツピー
デイスク駆動装置及び情報読取り書込み装置を備えてい
る。更に、コンピユータ処理装置68は、可搬式の記憶媒
体であるフロツピーデイスク70を挿入するフロツピーデ
イスク挿入孔69を有する。情報読取り書込み装置は、フ
ロツピーデイスク挿入孔69内にセツトされたフロツピー
デイスク70に書込まれている情報を読取とつて補助記憶
装置3に出力し、逆に補助記憶装置3に記憶されている
情報をフロツピーデイスク70に書込むものである。フロ
ツピーデイスク駆動装置は、情報の読取り及び書込み時
に、フロツピーデイスク挿入孔69内にセツトされたフロ
ツピーデイスク70を回転させる。フロツピーデイスク70
は、第1図の4〜7に相当する所定の4つの記憶エリア
を有する。これらの各記憶エリアは、第1図の実施例と
同様に、複数の推論制御知識を含む問題解決戦略の分類
情報を記憶するエリア、探索要素関数を記憶するエリ
ア、第5図の処理手順を記憶するエリア、及び表1、第
18図、第20図及び第21図等に示す汎用探索プログラムを
記憶するエリアである。
本実施例の知識処理システム構築ツールを用いて該当
する問題を解決する知識処理システムを構築する場合
は、まず、フロツピーデイスク70をフロツピーデイスク
挿入孔69内にセツトし、フロツピーデイスク70の各記憶
エリアに記憶された各情報を補助記憶装置3に記憶させ
る。演算処理装置2は、補助記憶装置3から第5図の処
理手順を読込み、その手順に基づいた処理を行う。この
処理によつて得られた情報(または知識)は、補助記憶
装置3に記憶される。作成された推論プログラムは、補
助記憶装置3に記憶される。この推論プログラムの実行
に必要な知識ベースは、補助記憶装置3内に作成され
る。本実施例も、第1図の実施例と同じ効果を得ること
ができる。
本実施例の知識処理システム構築ツールとして用いた
パーソナルコンピユータまたはワークステーシヨン等の
コンピユータは、作成された推論プログラム及び知識ベ
ースを内蔵した状態でそのまま知識処理システムとして
使用できる。他のコンピユータを知識処理システムとし
て使用する場合は、上記の所定の情報を記憶しているフ
ロツピーデイスク70をフロツピーデイスク挿入孔69から
取り出し、その孔69に他のフロツピーデイスクをセツト
し、補助記憶装置3に記憶している作成され推論プログ
ラム及びこの推論プログラムの実行に必要な知識をその
フロツピーデイスクに書込む。このフロツピーデイスク
内の情報を知識処理システムとして用いるコンピユータ
の記憶装置に書込めばよい。
以上に説明した実施例は、汎用探索プログラムの各探
索要素関数を、問題解決戦略の分類情報により、探索プ
リミテイブ関数を埋め込んだ探索基本関数を、対応表を
用いて対応付けることにより構成する例であつた。
次に、汎用探索プログラムに含まれる各探索要素関数
とこの関数を構成する探索基本関数との対応関係及び各
探索基本関数とこの関数を構成する探索プリミテイブ関
数との対応関係を別々に記憶し、入力された問題解決戦
略の分類情報を用いて汎用探索プログラムに含まれる各
探索要素関数を選択的に構成する本発明の他の実施例に
ついて詳細に示す。
具体的な処理の説明の前に、システムが予め保持して
いる各探索要素関数、探索プリミテイブ関数及び探索基
本関数について説明する。ここで、汎用探索プログラム
に含まれる探索要素関数は、表1に示した汎用探索プロ
グラムを構成する主要な関数であり、成功終了判定関
数、失敗終了判定関数、ノードの選択関数、リンクの選
択関数、オペレータの選択/適用関数及び活性ノードに
含まれる更新関数である。上記汎用探索プログラムは、
探索要素関数としてcheck−goal−cond1,check−goal−
cond2,select−node,select−link,select−function、
及びreset−active−nodeの6つを含んでいる。これら
の各探索要素関数において、その入出力項目で規定する
関数の機能は、対象とする問題に対する問題解決戦略の
分類情報(第2図及び第3図の情報)に依存しない。し
かしながら、各探索要素関数の処理内容は、解決すべき
問題の対象領域及び問題解決戦略の分類情報によつて決
定される。
上記の6つの探索要素関数は、表1に示す汎用探索プ
ログラムのスケルトンの中で実行可能な状態にプログラ
ミングされていない関数である。探索要素関数は、汎用
探索プログラムにおいて実際に探索を実行する要素でも
ある。また、これらの探索要素関数は汎用探索プログラ
ムに含まれるプロダクシヨン型のルール(if−then ル
ール)の結論部(then部)に含まれており、そのルール
の条件部(if部)に含まれていない。
この処理の内容は、各探索要素関数を、後述するよう
な、解決すべき問題の対象領域の相違、及び問題解決戦
略の分類情報によつて処理内容が決まる探索基本関数を
導入すれば、問題解決戦略の分類情報から選択された情
報の相違に基づいたそれらの探索基本関数の選択によつ
て決定することができる。ここで、探索基本関数は、第
4図の下段に示した(13)〜(21)の各関数であり、探
索木を構成する各情報から探索の制御に必要な情報を取
り出す関数である。これらの各探索基本関数の、入出力
項目で規定される関数の機能は、対象とする問題に対す
る問題解決戦略の分類情報に依存しない。しかしなが
ら、それらの探索基本関数の処理内容は対象とする問題
に対する問題解決戦略の分類情報によつて決定される。
さらに、これら探索基本関数は、解決すべき問題の対象
領域の固有の探索空間を定義する関数(例えば、計画問
題における評価関数)及び上記対象領域に依存しない探
索プリミテイブ関数から、上記対象領域及び問題解決戦
略の分類情報によつて構成することができる。探索基本
関数は、対象領域の情報に依存し、探索木の構成に関す
る情報(関数)を使つて探索を制御する情報(関数)で
あるとも言える。探索プリミテイブ関数は、第4図の上
段に示す(1)〜(12)の各関数であり、探索木に関す
る基本的な探索操作を規定した関数である。探索プリミ
テイブ関数は、対象領域の情報に依存しなく、探索木の
構成に関する情報(関数)であるともいえる。いかなる
探索木の複雑な探索操作も、これらの探索プリミテイブ
関数を合成して実現することができる。ただし、探索プ
リミテイブ関数は、対象領域に依存する探索操作は含ま
ない。
探索木とは、ノードと、ノード間の関係(診断型問題
においてはリンク,設計,計画,問題においてはオペレ
ータが該当)とで表わされたものである。これは、知識
処理システムにおいては知識ベース内の知識である。
以上のように、各種の問題解決プログラムは、探索プ
リミテイブ関数及び対象領域に固有の探索空間を定義す
る関数の組合わせからなる探索基本関数を、対象領域及
び問題解決戦略の分類情報に依存した情報から決定する
処理、及び探索基本関数の組合せからなる探索要素関数
を問題解決戦略の分類情報に依存した情報から決定する
処理により作成することができる。そこで、本実施例に
おける上記処理は、汎用探索プログラムの探索要素関数
及び探索基本関数のスケルトン(骨格)、及び実行可能
な探索プリミテイブ関数を用意し、使用者が選択した問
題解決戦略の分類情報を利用して、実行可能な探索要素
関数と探索基本関数を作成することにより実現される。
上記実現法を採用することにより、本実施例の処理手
順は、第1図の実施例とステツプ13(第5図)の内容が
異なる。なお、以下における本実施例の具体的な処理
は、対象とする問題として第1図の実施例で用いた工程
計画問題を利用して説明する。
第37図に本実施例のシステム構成を示す。本実施例の
知識処理システム構築ツールは、第1図の実施例と同様
に入力装置1A、表示装置1B、演算処理装置(CPU)2、
内部メモリである補助記憶装置3、及び外部メモリであ
る記憶装置210を備える。入力装置1A、表示装置1B、補
助記憶装置3及び記憶装置210は演算処理装置2に接続
される。記憶装置210内の記憶エリアは少なくとも8つ
のエリアに分かれている。これらの8つのエリアは記憶
手段4,5,6A,7A,8,9,104及び105として機能する。記憶手
段4,5,8及び9は第1図の実施例における記憶手段4,5,8
及び9と同じであり、該当する情報を記憶する。記憶手
段6Aは第38図に示す処理手順を記憶する。記憶手段7Aは
表1に示された汎用探索プログラムのスケルトン、その
プログラムに含まれる6つの探索要素関数のスケルトン
を記憶する。記憶手段104は、探索基本関数のスケルト
ン内に挿入すべき探索プリミテイブ関数を記憶手段4に
格納された問題解決戦略の分類情報の各項目の情報によ
つて対応付けた対応表(対応表1という)を記憶する。
記憶手段105は、探索要素関数のスケルトン内に挿入す
べき探索基本関数(及び探索プリミテイブ関数)を、記
憶手段4に格納された問題解決戦略の分類情報の各項目
の情報によつて対応付けた対応表(対応表2という)を
記憶する。演算処理装置2は使用者の入力装置1Aへのス
タート信号の入力により記憶手段6Aから第38図の処理手
順を呼び出し、その処理手順に従つて所定の処理を実行
する。演算処理装置2において実行される処理の内容を
以下に詳細に説明する。
まず、ステツプ12において、問題解決戦略の分類情報
の各戦略分類項目に従つて解決すべき問題の解きかつた
関する情報の入力が行なわれる。この情報は、補助記憶
装置3内の所定の記憶エリアに記憶される。このフレー
ム構造の知識ベースを第1図の実施例と同様にプログラ
ム作成用知識ベースという。ステツプ113では、問題解
決プログラムのベースとなる所定の汎用探索プログラム
(表1の汎用探索プログラム)及びプログラム作成用知
識(例えば第16図の知識)を用いて、問題解決プログラ
ムを作成する。ステツプ14は、作成された問題解決プロ
グラムを知識処理システム内で実行させる時に必要な知
識(対象知識)を入力して知識ベースを作成する処理を
実行する。作成された問題解決プログラム及び入力され
た対象知識を用いて、解決すべき問題を解く知識処理シ
ステムを構成できる。すなわち、作成された知識処理シ
ステムは、その問題解決を行なう推論を実行する手段
と、対象知識を記憶している知識ベースとを備えてい
る。
以下、各処理の詳細を説明する。
まず、第38図のステツプ12は第5図のステツプ12と同
じ処理である。従つて、第1図の実施例で示した工程計
画問題を対象とした場合、使用者が入力する問題解決戦
略の分類情報に対する回答は第1図の実施例の第16図と
同じものとなる。
次に、ステツプ113の処理について説明する。ステツ
プ113では、知識処理システムの推論プログラムとなる
問題解決プログラムを作成する。本実施例における問題
解決プログラムは、第1図の実施例の説明でも述べたよ
うに、探索プログラムとして構成される。本実施例で
は、この探索プログラムのスケルトンとして、記憶手段
7Aに格納された表1に示す汎用探索プログラム及びその
プログラムに含まれる6つの探索要素関数、及び記憶手
段5に記憶される探索基本関数を有している。第1図は
実施例と同様に汎用探索プログラムはオブジエクト指向
プログラミング手法を用いてルール形式で表現したプロ
グラムである。従つて、本汎用探索プログラムは、cont
rol frのメソツドとして与えられている6つの探索要素
関数のスケルトンの不定部分に具体的な処理ステイトメ
ントを挿入することにより実行可能なプログラムとな
る。ここで、挿入すべき各ステートメントは、探索プリ
ミテイブ関数及び探索基本関数を介して、問題を解くた
めに必要な情報に関連付けられている。この結果、対象
とする問題を解くために必要な情報(使用者によつて選
択された第2図及び第3図の情報)を与えるだけで、そ
の問題を解決する適切な問題解決プログラムが得られ
る。
第39図に、ステツプ113の詳細な処理内容を示す。第3
9図において、ステツプ115では、補助記憶装置3に格納
されたプログラム作成用知識、記憶手段104に記憶され
た対応表1内の該当する探索プリミテイブ関数、及び記
憶手段5に格納された探索基本関数のスケルトンを呼び
出し、問題解決のプログラムで使用する実行可能な探索
基本関数のプログラムを作成する。作成した実行可能な
探索基本関数のプログラムは、最終的な問題解決プログ
ラムの一部として記憶手段8に格納される。なお、この
とき、記憶手段5に格納されている各探索プリミテイブ
関数も記憶手段8に転送して記憶する。
次にステツプ116では、補助記憶装置3に格納された
プログラム作成用知識、記憶手段105に記憶された、対
応表2内の該当する探索基本関数、及び記憶手段7Aに格
納された探索要素関数のスケルトンを呼び出し、問題解
決プログラムで使用する実行可能な探索要素関数のプロ
グラムを作成する。作成した実行可能な探索要素関数の
プログラムは、ステツプ115と同様に、最終的な問題解
決プログラムの一部として記憶手段8に格納される。ま
た、このとき、記憶手段7Aに格納されている汎用探索プ
ログラムも記憶手段8に転送し記憶される。なお、以上
の各処理では、作成した実行可能なプログラムを新たな
記憶手段に格納したが、汎用探索プログラム及び探索基
本関数と探索プリミテイブ関数をそれぞれ記憶している
記憶手段5あるいは7Aに格納してもよい。
以下、第1図の実施例で使用した工程計画の作成問題
を例として、ステツプ115及び116を詳細に説明する。第
40図にステツプ115の詳細な処理内容を示す。また、本
処理で使用する探索基本関数のスケルトンの例を第41図
に、対応表1の一部を第42図にそれぞれ示す。第41図
は、第4図の探索基本関数(13)のスケルトンを示す。
スケルトンは、第41図に示すように、概略プログラムと
挿入プログラムを有する。なお、プログラム作成用知識
は、第16図に示したものを使用する。
ここでは、探索基本関数の一つである。探索過程でノ
ードの評価値を返す。EVALUATE(C.K)の実行可能なプ
ログラムの作成について説明する。第42図の対応表1
は、問題解決戦略の分類情報に基づいて、対応する挿入
文、及び挿入カ所が記憶されている。ここで、問題解決
戦略の各分類項目A,B,C,……は、第9図の各分類項目に
対応している。第42図の対応表1の分類項目A,B,…のデ
ータは、第9図の入力値で示されているが実際には第9
図の変換値となつている。上述したように、対応表1
は、問題解決戦略の分類項目の、問題解決に依存した推
論制御知識とともに対象領域に固有の推論制御知識も使
用している。また、挿入カ所は、探索基本関数のスケル
トン内の挿入位置(例えば、第41図のT3及びT4)を示し
ている。本例題においては、第40図の処理手順は、ま
ず、図示されていないが、第1図の実施例で述べた第22
図の処理手順の最初に行う処理、すなわち、解決すべき
問題に関する対象領域の情報(前述の工程計画問題にお
いては目標関数制約条件等のデータ)を入力する。これ
らのデータは、使用者が入力装置1Aを用いて入力する。
選択されている各問題解決戦略の分類情報(第16図の情
報)を読みだす(ステツプ117)。対応表1の先頭行の
成立条件を判定する(ステツプ118)。ステツプ119で
「NO」と判定された場合は、ステツプ121の処理に移
る。ステツプ119の判定が「YES」の場合は、ステツプ12
0に移る。本例では、I=a,J=aであるため、対応表1
の第1行の条件が満足され、deepという挿入文を第42図
の対応表1から取り出し、第41図に示す基本関数のスケ
ルトンの挿入プログラム内の位置T3に挿入する(ステツ
プ120)。その挿入文は探索プリミテイブ関数を示す文
であり、実質的に探索プリミテイブ関数を示す。ちなみ
に、deepは、第4図の(7)項の関数である。挿入プロ
グラムに上記挿入文が挿入されると、概略プログラム内
の、挿入プログラムのタグであるE1の位置に、挿入プロ
グラムE1が挿入される。次に対応表1の最終行まできた
かどうかを判断し(ステツプ121)、対応表1の最終行
までくると(ステツプ121の判定がYESの場合)終了す
る。対応表1の最終行までこなければ、次の行の成立条
件を判定し(ステツプ122)、ステツプ119以下の処理を
繰返す。
対応表1の最終行に達したとき、すべての探索基本関
数のスケルトンが探索プリミテイブ関数を含むプログラ
ムとなる。
本例では、最終的に第43図に示す評価関数が生成され
る。なお、第43図において、user−evalと書かれている
関数は、使用者が対象領域の情報としてステツプ117の
前に入力したデータに基づいて作成される。このような
データに基づいて作成される探索基本関数としては他に
第4図の(14)及び(15)がある。
探索基本関数(16)〜(21)は、少なくともステツプ
12で選択された対象領域に関する情報(例えば分類項目
K−1,K−2のデータ)を反映して対応付けた探索プリ
ミテイブ関数によつて構成される。分類項目A〜I,J−
1及びJ−2の選択された情報の少なくとも1つ(分類
項目K−1,K−2のデータを除いて)のデータに対応付
けた探索プリミテイブ関数が該当する探索基本関数(1
4)〜(21)に挿入される。対応表1は、上記のことが
可能に形成される。
以上に示した処理により第4図に示した全ての探索基
本関数が探索プリミテイブ関数から構成され実行可能な
プログラムとなる。
第44図は、ステツプ116を詳細に説明したもので、汎
用探索プログラム内の探索要素関数のプログラムを作成
するための処理手順を示す。以下、本処理手順に基づい
て探索要素関数の一つであり、「活性ノードの更新」の
部分に含まれる更新関数(reset_active_node)のプロ
グラムを作成する場合を例にとり説明する。活性ノード
の更新関数(reset_active_node)のスケルトンの例を
第45図に示す。この探索要素関数のスケルトンは、探索
基本関数のスケルトンと同じく概略プログラムと挿入プ
ログラムを有している。また、対応表2の一部を第46図
に示す。第44図の処理手順の内容は、探索基本関数のプ
ログラムを作る場合の第40図の処理手順の概念と本質的
に同じである。第46図の各項目A,B,…のデータは、第9
図の変換値で示している。第46図に示したように、対応
表2においては、対象領域に固有の推論制御知識である
分類項目J,Kの情報は、使用しない。すなわち、選択さ
れた問題解決戦略の情報(例えば第16図の情報)を読み
出す(ステツプ125)。対応表2の先頭行の成立条件を
判定する(ステツプ126)。ステツプ127の判定が「YE
S」の場合、ステツプ128の処理を実行する。本例では、
C=1であるので挿入文としてMake−linkが選択され、
Make−linkがRest−active−nodeのスケルトンにおける
挿入プログラムのT1の部分に挿入される(ステツプ12
8)。ステツプ128では、更に、挿入プログラムのタグ
が、R1なので、概略プログラムのR1の位置に挿入プログ
ラムR1が挿入される。ステツプ129,130の処理が行わ
れ、ステツプ128以下の処理がステツプ129の判定がYES
になるまで繰返される。対応表2の先頭行についての処
理の後にその表の2行についての処理が行われるが、本
例ではC=1であるのでステツプ127が「NO」となる。
対応表2の3行に対しても、ステツプ127が「NO」とな
りステツプ128が処理されない。対応表2の4行に対し
てはステツプ127が「YES」となる。従つて、ステツプ12
8でRest−active−nodeのスケルトンにおける概略プロ
グラムのR2の位置に、deepが埋めこまれる。従つて、最
終的に第47図のようなRest−active−nodeのプログラム
が作成される。この関数は、作用素がすべてなくなつた
場合に節点を活性節点から除去する関数である。上記の
処理をステツプ129が「YES」になるまで実行することに
よつて、汎用探索プログラムに含まれる全ての探索要素
関数が、探索基本関数等で構成された実行可能なプログ
ラムとなる。
第40図及び第44図の処理手順で作成された探索基本関
数のプログラム及び探索要素関数のプログラム、及び表
1の汎用探索プログラムのスケルトンが、記憶手段8に
記憶される。これらのプログラムによつて実行可能な問
題解決プログラムが構成される。
最後に、作成された問題解決プログラムによる推論を
知識処理システムにおいて実行するために必要な知識ベ
ースの作成がステツプ14(第38図)処理において実行さ
れる。本実施例におけるステツプ14の処理は、第1図の
実施例における第27図の処理手順と同じである。
本実施例は、第1図の実施例と同様な効果を奏する。
更に、本実施例は、探索基本関数のプログラム作成と探
索要素関数のプログラム作成とを分けて行つているの
で、対象領域に関する知識,情報を反映した問題解決プ
ログラムの作成が容易にできる。対象領域の知識,情報
は、その知識,情報に依存する探索基本関数のプログラ
ム作成に十分活かされる。
本発明の他の実施例を以下に説明する。本実施例は、
第37図の実施例で第39図の処理手順をステツプ116を最
初に実行しその後にステツプ115を実行するものであ
る。本実施例は、与えられた問題に対して探索要素関数
のプログラムを先に作ることができる。その後、探索要
素関数のプログラムに用いた探索基本関数のプログラム
を作成するので、必要な探索基本関数についてプログラ
ムを作成すればよい。本実施例におけるその他の効果
は、第37図の実施例と同じである。
第37図の実施例は、第36図の実施例と同様に、パーソ
ナルコンピユータ等を用いて構成できる。このような実
施例は、第36図の実施例を用いフロツピーデイスク70
に、第37図の実施例の記憶手段4,5,6A,7A,104及び105の
各々に相当する6つの記憶エリアを有する。フロツピー
デイスク70のこれらの6つの記憶エリアには、上記6つ
の記憶手段に記憶されている情報が別々に記憶されてい
る。本実施例も、フロツピーデイスク70に記憶されてい
る情報及び入力された必要な情報を用いて第37図の実施
例と同様に問題解決プログラム及び知識ベースを作成す
る。作成されたプログラ及び知識ベースの情報は、第36
図の実施例と同様にフロツピーデイスクに記憶される。
本実施例も、第37図の実施例と同じ効果を奏する。
〔発明の効果〕
本発明によれば、任意の対象とする問題に対して知識
処理システムで使用する推論プログラムを自動生成で
き、推論プログラムの開発工数を低減できる。
【図面の簡単な説明】
第1図は本発明の好適な一実施例である知識処理システ
ム構築ツールの構成図、第2図及び第3図は問題解決戦
略の分類情報の説明図、第4図は探索要素関数の説明
図、第5図は第1図の演算処理装置で実行される処理手
順の説明図、第6図は第5図のステツプ12の詳細な処理
手順を示す説明図、第7図は第6図のステツプ33の詳細
な処理手順を示す説明図、第8図は問題解決戦略の分類
情報の選択メニユーを示す説明図、第9図は戦略分類項
目の回答の変換値を示す説明図、第10図はtask−spec f
r.のデイフオールト値を示す説明図、第11図は探索木評
価関数のメニユーを示す説明図、第12図はノードの相対
位置に関する成立条件のメニユーの説明図、第13図は第
6図の処理手順を実行したときの処理の内容を時系列的
に示した説明図、第14図はある工程計画問題の内容を示
す説明図、第15図は第14図の問題に対して入力した戦略
分類項目の回答の具体例を示す図、第16図はプログラム
作成用知識ベースの説明図、第17図は汎用探索プログラ
ムの主要部の内容示す説明図、第18図は制御要素関数
「check−goal−cond1」の汎用プログラムの内容を示す
説明図、第19図は制御要素関数「check−goal−cond1」
の汎用プログラムの具体例を示す説明図、第20図は制御
要素関数「check−goal−cond2」の汎用プログラムの内
容を示す説明図、第21図は制御要素関数「select−lin
k」の汎用プログラムの内容を示す説明図、第22図は第
5図のステツプ13の詳細な処理手順を示す説明図、第23
図は第22図のステツプ41の詳細な処理手順を示す説明
図、第24図は成功終了判定関数のプログラム要素知識の
内容を示す説明図、第25図は第14図の問題に適用する成
功終了判定関数のプログラムの具体例を示す説明図、第
26図はリンク選択関数のプログラム要素知識の内容を示
す説明図、第27図は第5図のステツプ14の詳細な処理手
順を示す説明図、第28図は作成された推論プログラムの
実行に必要な知識ベースの内容を示す説明図、第29図は
第14図の問題に適用する知識ベースの具体例を示す説明
図、第30図(A)及び(B)は第29図の親子関係セルの
タスク2及び3の内容を示す説明図、第31図は原子炉の
異常診断に用いる階層的な知識の内容を示す説明図、第
32図は第31図の診断に対して第5図のステツプ12におい
て得られた回答を示す説明図、第33図は第31図の問題に
適用する知識ベースの具体例を示す説明図、第34図は第
31図の問題に適用する成功終了判定関数のプログラムの
具体例を示す説明図、第35図は第5図の処理手順を実行
する演算処理装置の機能を示した説明図、第36図は本発
明の他の実施例である知識処理システム構築ツールの構
成図、第37図は本発明の他の実施例のシステム構成図、
第38図は第37図の実施例において演算処理装置で実行さ
れる処理手順の説明図、第39図は第38図のステツプ113
の詳細な処理手順を示す説明図、第40図は第39図のステ
ツプ115の詳細処理手順を示す説明図、第41図は第40図
の処理手順の説明に用いる探索基本関数のスケルトンの
例を示す説明図、第42図は対応表1の一部を示す説明
図、第43図は第40図の処理手順で作成された探索基本関
数のプログラムの一例を示す説明図、第44図は第39図の
ステツプ116の詳細な処理手順を示す説明図、第45図は
第44図の処理手順の説明に用いる探索要素関数の一つで
あり「活性ノードの更新」に含まれる更新関数rest−ac
tive−node)のスケルトンの例を示す説明図、第46図は
対応表2の一部を示す説明図、第47図は第44図の処理手
順で作成された探索要素関数のプログラムの例を示す説
明図である。 1A……入力装置、1B……表示装置、2……演算処理装
置、3……補助記憶装置、4〜9……記憶手段、10……
記憶装置。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平1−220037(JP,A) 電子情報通信学会技術研究報告 Vo l.88,No.426 (AI−88−48) P.21−30 電子情報通信学会技術研究報告 Vo l.88,No.17 (AZ−88−16) P.11−22 Invited Talk of I JCAI ’87 P.1183−1192 日立評論 Vol.70,No.11 (1988) P.14−19

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】推論プログラムと知識ベース内の知識を用
    いて対象とする問題解決の処理を実行する知識処理シス
    テム、を構築する知識処理システム構築ツールにおい
    て、 問題を解決するための探索制御戦略を構成し木構造を有
    する複数の戦略分類項目毎に対応付けられた複数の推論
    制御知識を記憶する記憶手段と、 各戦略分類項目毎に対応付けられた複数の推論制御知識
    を表示する表示手段と、 該表示手段に表示された複数の推論制御知識の中から対
    象とする問題に関係する推論制御知識を選択するための
    入力を受け付ける入力手段と、 該入力手段からの入力により各戦略分類項目毎に選択さ
    れた複数の推論制御知識に基づいて対象とする問題を解
    決するための前記推論プログラムを生成する推論プログ
    ラム生成手段と を備えたことを特徴とする知識処理システム構築ツー
    ル。
  2. 【請求項2】請求項1において、前記推論プログラム生
    成手段は、前記選択された推論制御知識に基づいて複数
    の探索関数を関連付けることにより、前記対象とす問題
    を解決するための推論プログラムを生成することを特徴
    とする知識処理システム構築ツール。
  3. 【請求項3】請求項1において、探索ベースプログラム
    を記憶する記憶手段と、前記選択された推論制御知識に
    基づいて、前記探索ベースプログラムのプログラム要素
    を割り当てて前記対象とする問題を解決するための推論
    プログラムを生成する推論プログラム生成手段とを備え
    たことを特徴とする知識処理システム構築ツール。
  4. 【請求項4】請求項3において、前記探索ベースプログ
    ラムは固定プログラム部及び可変プログラム部を有し、
    前記推論プログラム生成手段は、前記選択された推論制
    御知識に基づいて、前記可変プログラム部に対象とする
    問題を解決するためのプログラム要素を割り当てて、前
    記対象とする問題を解決するための推論プログラムを生
    成することを特徴とする知識処理システム構築ツール。
  5. 【請求項5】請求項1乃至4の何れかにおいて、前記推
    論プログラム生成手段で生成された推論プログラムを実
    行するときに必要な知識を受け付ける入力手段と、該知
    識を前記知識ベースに格納する知識ベース作成手段とを
    備えたことを特徴とする知識処理システム構築ツール。
  6. 【請求項6】知識処理システムで使用される推論プログ
    ラムの生成方法において、 記憶手段に記憶された、問題を解決するための探索制御
    戦略を構成し木構造を有する複数の戦略分類項目毎に対
    応付けられた複数の推論制御知識を表示手段に表示し、 各戦略分類項目毎に表示手段に表示された複数の推論制
    御知識の中から選択された、対象とする問題に関係する
    推論制御知識を入力手段を介して入力し、 記憶手段に記憶された、固定プログラム部及び複数の可
    変プログラム部を有する探索ベースプログラムに対し
    て、前記各戦略分類項目毎に入力された複数の推論制御
    知識に基づいて、記憶手段に記憶された、対象とする問
    題を解決するための複数のプログラム要素を、前記複数
    の可変プログラム部に割り当てることにより、対象とす
    る問題を解決するための推論プログラムを生成すること
    を特徴とする推論プログラムの生成方法。
JP2266233A 1989-10-09 1990-10-05 知識処理システム構築ツール及び推論プログラムの生成方法 Expired - Lifetime JP2728559B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP1-262012 1989-10-09
JP26201289 1989-10-09

Publications (2)

Publication Number Publication Date
JPH03206526A JPH03206526A (ja) 1991-09-09
JP2728559B2 true JP2728559B2 (ja) 1998-03-18

Family

ID=17369795

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2266233A Expired - Lifetime JP2728559B2 (ja) 1989-10-09 1990-10-05 知識処理システム構築ツール及び推論プログラムの生成方法

Country Status (4)

Country Link
US (1) US5347614A (ja)
EP (1) EP0422580B1 (ja)
JP (1) JP2728559B2 (ja)
DE (1) DE69031998T2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2684779B1 (fr) * 1991-12-06 1996-12-13 Bull Sa Procede et outil de modelisation conceptuelle d'expertise sur un systeme informatique.
EP0587093B1 (en) * 1992-09-08 1999-11-24 Hitachi, Ltd. Information processing apparatus using inference and adaptive learning
US5978784A (en) * 1992-10-05 1999-11-02 Expert Systems Publishing Co. Computer-implemented decision management system with dynamically generated questions and answer choices
SE500771C2 (sv) * 1992-10-09 1994-08-29 Landis & Gyr Building Control Sätt och anordning för styrning av en strömgenerator
JPH06332680A (ja) * 1993-05-21 1994-12-02 Tadao Shogetsu プログラム自動生成装置
JPH07129406A (ja) * 1993-09-13 1995-05-19 Toshiba Corp モデルベース診断システム構築支援装置
US5574828A (en) * 1994-04-28 1996-11-12 Tmrc Expert system for generating guideline-based information tools
JPH08234975A (ja) * 1995-02-28 1996-09-13 Fujitsu Ltd プログラム生成装置および方法
US5799293A (en) * 1996-11-04 1998-08-25 Ford Global Technologies, Inc. Method for optimizing the design of a product using knowledge-based engineering techniques
US6012051A (en) * 1997-02-06 2000-01-04 America Online, Inc. Consumer profiling system with analytic decision processor
JPH10222371A (ja) * 1997-02-06 1998-08-21 Seitaro Matsushita 知識ベースの作成装置及び実行装置並びにこれらを用いた知識ベースシステム
US6598036B1 (en) 2000-04-04 2003-07-22 Ford Global Technologies, Llc Method for serving engineering rules on a network through servlet and applet
US6535863B1 (en) 2000-04-06 2003-03-18 Ford Motor Company Method for utilizing a knowledge-based system
US20070055597A1 (en) * 2005-09-08 2007-03-08 Visa U.S.A. Method and system for manipulating purchase information
US7509298B2 (en) * 2006-03-31 2009-03-24 International Business Machines Corporation System and method for a logical-model based application understanding and transformation
US20080097811A1 (en) * 2006-10-24 2008-04-24 Fritz Kramer Systems and methods for reducing poverty
JP5299267B2 (ja) * 2007-03-22 2013-09-25 日本電気株式会社 診断装置
JP2009176205A (ja) * 2008-01-28 2009-08-06 Gyoseiin Genshino Iinkai Kakuno Kenkyusho 桁探索木の初期危険因子解析装置
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4796179A (en) * 1986-08-20 1989-01-03 Integrated Systems, Inc. Multirate real time control system code generator
US4943932A (en) * 1986-11-25 1990-07-24 Cimflex Teknowledge Corporation Architecture for composing computational modules uniformly across diverse developmental frameworks
JPS63257827A (ja) * 1987-04-15 1988-10-25 Matsushita Electric Ind Co Ltd 問題解決装置
US4965742A (en) * 1987-09-30 1990-10-23 E. I. Du Pont De Nemours And Company Process control system with on-line reconfigurable modules
JP2585311B2 (ja) * 1987-11-06 1997-02-26 株式会社日立製作所 プログラム作成方法
JPH01220037A (ja) * 1988-02-29 1989-09-01 Fujitsu Ltd 診断型エキスパートシステムの知識獲得方式
US5133045A (en) * 1990-07-13 1992-07-21 Integrated Systems, Inc. Method for operating a real-time expert system in a graphical programming environment

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Invited Talk of IJCAI ’87 P.1183−1192
日立評論 Vol.70,No.11 (1988) P.14−19
電子情報通信学会技術研究報告 Vol.88,No.17 (AZ−88−16) P.11−22
電子情報通信学会技術研究報告 Vol.88,No.426 (AI−88−48) P.21−30

Also Published As

Publication number Publication date
US5347614A (en) 1994-09-13
EP0422580A2 (en) 1991-04-17
JPH03206526A (ja) 1991-09-09
DE69031998T2 (de) 1998-06-18
DE69031998D1 (de) 1998-03-05
EP0422580A3 (en) 1993-04-21
EP0422580B1 (en) 1998-01-28

Similar Documents

Publication Publication Date Title
JP2728559B2 (ja) 知識処理システム構築ツール及び推論プログラムの生成方法
Sriram et al. Knowledge-based expert systems in structural design
Rist Knowledge creation and retrieval in program design: A comparison of novice and intermediate student programmers
Ryser et al. SCENT: A method employing scenarios to systematically derive test cases for system test
van Heijst et al. Using generalised directive models in knowledge acquisition
Shadbolt et al. Knowledge based knowledge acquisition: the next generation of support tools
Durkin Expert system development tools
Terpstra et al. KA process support through generalised directive models
Arzén Sequential function charts for knowledge-based, real-time applications
Taylor Expert-aided environments for CAE of control systems
Saxena Decision support engineering: a DSS development methodology
Ligȩza Expert systems approach to decision support
US20030101152A1 (en) Automated generation of intelligent systems into procedural languages
Leitch et al. Task dependent tools for intelligent automation
WO2005043271A2 (ja) ソフトウェア生成方法
Nevill Jr Computational models of design processes
Tzafestas et al. An overview of expert systems
Chien et al. A primitives-based generic approach to knowledge acquisition
Avison et al. Identifying and incorporating change in information systems
Thompson et al. An expert system for the preliminary design of timber roofs
Dixon et al. Knowledge representation in mechanical design systems: issues and examples
Puerta et al. Toward ontology-based frameworks for knowledge-acquisition tools
Coyne Knowledge-based planning systems and design: a review
MacCallum et al. A system for supporting design configuration
Barbuceanu Object-centered representation and reasoning: an application to computer-aided design