JPH0728630A - プログラム生成装置 - Google Patents
プログラム生成装置Info
- Publication number
- JPH0728630A JPH0728630A JP5154932A JP15493293A JPH0728630A JP H0728630 A JPH0728630 A JP H0728630A JP 5154932 A JP5154932 A JP 5154932A JP 15493293 A JP15493293 A JP 15493293A JP H0728630 A JPH0728630 A JP H0728630A
- Authority
- JP
- Japan
- Prior art keywords
- language
- analysis
- sentence
- expression
- analysis result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Document Processing Apparatus (AREA)
- Stored Programmes (AREA)
- Machine Translation (AREA)
Abstract
(57)【要約】
【目的】 動作の否定的表現や時間的制約表現を含んだ
自然言語文についても計算機がプログラム生成可能な形
式言語に変換できるプログラム生成装置を提供する。 【構成】 否定表現処理規則を言語辞書に記憶してお
き、入力自然言語文に対し入力文解析部が解析する際、
否定表現処理規則を参照して否定表現に対しては制約表
現に変換した解析結果を生成する。又、形式言語中の時
間表現を機器表現へ置換する規則を出力言語知識記憶部
に記憶しておき、出力言語生成部が前記解析結果を形式
言語に変換するとき、時間表現に対しては機器表現へ置
換した形式言語を生成する。
自然言語文についても計算機がプログラム生成可能な形
式言語に変換できるプログラム生成装置を提供する。 【構成】 否定表現処理規則を言語辞書に記憶してお
き、入力自然言語文に対し入力文解析部が解析する際、
否定表現処理規則を参照して否定表現に対しては制約表
現に変換した解析結果を生成する。又、形式言語中の時
間表現を機器表現へ置換する規則を出力言語知識記憶部
に記憶しておき、出力言語生成部が前記解析結果を形式
言語に変換するとき、時間表現に対しては機器表現へ置
換した形式言語を生成する。
Description
【0001】
【産業上の利用分野】本発明は自然言語文を計算機がプ
ログラム生成可能な形式言語に変換するプログラム生成
装置に関する。
ログラム生成可能な形式言語に変換するプログラム生成
装置に関する。
【0002】
【従来の技術】人間がプログラムを作成する場合には通
常、 (1)プログラムの仕様書の作成 (2)仕様書を満足するプログラムを形式言語により作
成 (3)計算機が実行可能なプログラムの作成 という過程で作業が行なわれている。
常、 (1)プログラムの仕様書の作成 (2)仕様書を満足するプログラムを形式言語により作
成 (3)計算機が実行可能なプログラムの作成 という過程で作業が行なわれている。
【0003】(1)の作業は自然言語・図・表等を用い
て人間が仕様書を作成していたが、計算機が直接理解可
能な形式にはなっていなかった。したがって(2)の過
程において、(1)の作業により作成された仕様書をも
とに人間が形式言語を用いてプログラムを作成する必要
があった。こうして(2)の作業が完全に行なわれた後
に、(3)の作業は計算機側で自動的に行なっている。
て人間が仕様書を作成していたが、計算機が直接理解可
能な形式にはなっていなかった。したがって(2)の過
程において、(1)の作業により作成された仕様書をも
とに人間が形式言語を用いてプログラムを作成する必要
があった。こうして(2)の作業が完全に行なわれた後
に、(3)の作業は計算機側で自動的に行なっている。
【0004】つまり、このようなプログラム作成過程に
おいては、人間が2段階にわたり作業を行なわなければ
ならないため、作業者の負担が重く、また(1)の作業
により作成された仕様書どおりに(2)の形式言語プロ
グラムが作成されているかどうかが不明確である。
おいては、人間が2段階にわたり作業を行なわなければ
ならないため、作業者の負担が重く、また(1)の作業
により作成された仕様書どおりに(2)の形式言語プロ
グラムが作成されているかどうかが不明確である。
【0005】そこで、自然言語により記述された仕様書
から、形式言語を生成する技術が考えられている。この
技術については、特開平5−46370の発明に記載さ
れているが、前記公報における発明では、自然言語で書
かれた仕様文を、 (機器が状態)ならば(機器を動作)する。 というif−then形式に変換し、その文の集まりか
ら有限状態遷移モデルとしての形式言語を生成するもの
であった。前記公報の発明は、前記の形式で記載された
文であればプログラムを生成することが可能であるが、
機器の動作に関する制約(否定表現)や、時間的表現を
記述した文、例えば次のような文に対しては前記の形式
を与えることができない。
から、形式言語を生成する技術が考えられている。この
技術については、特開平5−46370の発明に記載さ
れているが、前記公報における発明では、自然言語で書
かれた仕様文を、 (機器が状態)ならば(機器を動作)する。 というif−then形式に変換し、その文の集まりか
ら有限状態遷移モデルとしての形式言語を生成するもの
であった。前記公報の発明は、前記の形式で記載された
文であればプログラムを生成することが可能であるが、
機器の動作に関する制約(否定表現)や、時間的表現を
記述した文、例えば次のような文に対しては前記の形式
を与えることができない。
【0006】コンプレッサはOFFしたら10分間はO
Nしない。これは、コンプレッサの動作に対する時間的
表現を含む否定的記述であるが、仕様作成者はこのよう
な仕様を考案してもそのまま仕様書に記述することがで
きず、前記形式に沿うような記述に変換しなければなら
ないため、より記述が困難になるという欠点があった。
Nしない。これは、コンプレッサの動作に対する時間的
表現を含む否定的記述であるが、仕様作成者はこのよう
な仕様を考案してもそのまま仕様書に記述することがで
きず、前記形式に沿うような記述に変換しなければなら
ないため、より記述が困難になるという欠点があった。
【0007】つまり従来のプログラム生成装置において
は、if−then形式の自然言語文に限って、計算機
がプログラム生成可能な形式言語に変換できたため、単
純な動作の肯定表現(if−then)に記載し難い自
然言語文、例えば否定表現や時間的表現を含む自然言語
文については対処できないという欠点が有った。
は、if−then形式の自然言語文に限って、計算機
がプログラム生成可能な形式言語に変換できたため、単
純な動作の肯定表現(if−then)に記載し難い自
然言語文、例えば否定表現や時間的表現を含む自然言語
文については対処できないという欠点が有った。
【0008】
【発明が解決しようとする課題】以上述べてきた様に従
来のプログラム生成装置においては、単純な動作の肯定
表現の自然言語文しか対処できないため、ユーザは動作
の否定的表現や時間的制約表現の自然言語文を入力でき
ないという欠点があった。
来のプログラム生成装置においては、単純な動作の肯定
表現の自然言語文しか対処できないため、ユーザは動作
の否定的表現や時間的制約表現の自然言語文を入力でき
ないという欠点があった。
【0009】本発明の目的は、動作の否定的表現や時間
的制約表現を含んだ自然言語文についても計算機がプロ
グラム生成可能な形式言語に変換できるプログラム生成
装置を提供することにある。
的制約表現を含んだ自然言語文についても計算機がプロ
グラム生成可能な形式言語に変換できるプログラム生成
装置を提供することにある。
【0010】
【課題を解決するための手段】本発明は、自然言語文を
入力するための入力部と、自然言語文を解析するための
形式的仕様情報及び否定表現処理規則を記憶した言語辞
書と、自然言語文を意味解析するための意味的仕様情報
を記憶した対象知識記憶部と、前記入力部からの自然言
語文に対し前記言語辞書及び対象知識記憶部の情報を参
照して解析を行ない否定表現に対しては前記否定表現処
理規則に従って制約表現に変換した解析結果を得る入力
文解析部と、この入力文解析部より得られた解析結果が
正常か否か検証を行なう解析結果検証部と、自然言語文
の解析結果を計算機がプログラム生成可能な形式言語に
変換するためのパタンを記憶した出力言語知識記憶部
と、前記解析結果検証部より正常とされた解析結果に対
し前記出力言語知識記憶部の内容を参照して前記形式言
語に変換する出力言語生成部とを具備したことを特徴と
する。
入力するための入力部と、自然言語文を解析するための
形式的仕様情報及び否定表現処理規則を記憶した言語辞
書と、自然言語文を意味解析するための意味的仕様情報
を記憶した対象知識記憶部と、前記入力部からの自然言
語文に対し前記言語辞書及び対象知識記憶部の情報を参
照して解析を行ない否定表現に対しては前記否定表現処
理規則に従って制約表現に変換した解析結果を得る入力
文解析部と、この入力文解析部より得られた解析結果が
正常か否か検証を行なう解析結果検証部と、自然言語文
の解析結果を計算機がプログラム生成可能な形式言語に
変換するためのパタンを記憶した出力言語知識記憶部
と、前記解析結果検証部より正常とされた解析結果に対
し前記出力言語知識記憶部の内容を参照して前記形式言
語に変換する出力言語生成部とを具備したことを特徴と
する。
【0011】又、本発明は、自然言語文を入力するため
の入力部と、自然言語文を解析するための形式的仕様情
報を記憶した言語辞書と、自然言語文を意味解析するた
めの意味的仕様情報を記憶した対象知識記憶部と、前記
入力部からの自然言語文に対し前記言語辞書及び対象知
識記憶部の情報を参照して解析を行なう入力文解析部
と、この入力文解析部より得られた解析結果が正常か否
か検証を行なう解析結果検証部と、自然言語文の解析結
果を計算機がプログラム生成可能な形式言語に変換する
ためのパタン及び該形式言語中の時間表現を機器表現へ
置換する規則を記憶した出力言語知識記憶部と、前記解
析結果検証部より正常とされた解析結果に対し前記出力
言語知識記憶部の内容を参照して時間表現に対しては機
器表現へ置換した形式言語に変換する出力言語生成部と
を具備したことを特徴とする。
の入力部と、自然言語文を解析するための形式的仕様情
報を記憶した言語辞書と、自然言語文を意味解析するた
めの意味的仕様情報を記憶した対象知識記憶部と、前記
入力部からの自然言語文に対し前記言語辞書及び対象知
識記憶部の情報を参照して解析を行なう入力文解析部
と、この入力文解析部より得られた解析結果が正常か否
か検証を行なう解析結果検証部と、自然言語文の解析結
果を計算機がプログラム生成可能な形式言語に変換する
ためのパタン及び該形式言語中の時間表現を機器表現へ
置換する規則を記憶した出力言語知識記憶部と、前記解
析結果検証部より正常とされた解析結果に対し前記出力
言語知識記憶部の内容を参照して時間表現に対しては機
器表現へ置換した形式言語に変換する出力言語生成部と
を具備したことを特徴とする。
【0012】
【作用】本発明では、自然言語文に対し否定表現解析す
る際に用いる否定表現処理規則を言語辞書に記憶してお
く。そして入力自然言語文に対し形態素解析,構文解
析,意味解析の後、否定表現処理規則を参照して否定表
現のアークが有ればこれを制約表現(条件付き肯定表
現)のアークに変換する。又、本発明では形式言語中の
時間表現を機器表現へ置換する規則を出力言語知識記憶
部に記憶しておく。そして自然言語文の解析結果(意味
解析結果)に対し形式言語として入力・出力関係構造を
作成したとき、前記規則を参照して時間に関する制約表
現のアークがあれば機器表現のアークへ置換する。従っ
てユーザにとっては自然言語文で仕様書を記述する際、
単純な動作の肯定表現だけでなく否定的表現や時間的制
約表現も加味して記述できるため、ユーザの意図を率直
に反映したプログラムが作成できる。
る際に用いる否定表現処理規則を言語辞書に記憶してお
く。そして入力自然言語文に対し形態素解析,構文解
析,意味解析の後、否定表現処理規則を参照して否定表
現のアークが有ればこれを制約表現(条件付き肯定表
現)のアークに変換する。又、本発明では形式言語中の
時間表現を機器表現へ置換する規則を出力言語知識記憶
部に記憶しておく。そして自然言語文の解析結果(意味
解析結果)に対し形式言語として入力・出力関係構造を
作成したとき、前記規則を参照して時間に関する制約表
現のアークがあれば機器表現のアークへ置換する。従っ
てユーザにとっては自然言語文で仕様書を記述する際、
単純な動作の肯定表現だけでなく否定的表現や時間的制
約表現も加味して記述できるため、ユーザの意図を率直
に反映したプログラムが作成できる。
【0013】
【実施例】以下、本発明の実施例を図面を用いて説明す
る。図1は本発明の実施例であるプログラム作成装置の
全体ブロック図である。このシステムは、入力言語を蓄
える入力言語記憶部101、入力言語の仕様を蓄える入
力言語仕様記憶部102、入力言語仕様に基づき入力文
を解析する入力文解析部103、入力文解析部103内
で参照する言語辞書104、対象知識記憶部105、入
力文解析部103の出力結果を蓄える解析結果記憶部1
06、解析結果記憶部の内容を検証する解析結果検証部
107、出力言語生成のための知識を蓄える出力言語知
識記憶部108、出力言語仕様に基づき解析結果記憶部
106の内容から形式言語を出力する出力言語生成部1
09、出力された形式言語を蓄える出力言語記憶部11
0、出力言語記憶部110の内容を実行可能プログラム
に変換する実行プログラム変換部111、実行プログラ
ム変換部111により生成される実行可能プログラムを
蓄える実行プログラム記憶部112より構成されてい
る。ここで図2のフローチャートに基づき、本実施例に
おける入力文解析部103での処理の流れを説明する。
る。図1は本発明の実施例であるプログラム作成装置の
全体ブロック図である。このシステムは、入力言語を蓄
える入力言語記憶部101、入力言語の仕様を蓄える入
力言語仕様記憶部102、入力言語仕様に基づき入力文
を解析する入力文解析部103、入力文解析部103内
で参照する言語辞書104、対象知識記憶部105、入
力文解析部103の出力結果を蓄える解析結果記憶部1
06、解析結果記憶部の内容を検証する解析結果検証部
107、出力言語生成のための知識を蓄える出力言語知
識記憶部108、出力言語仕様に基づき解析結果記憶部
106の内容から形式言語を出力する出力言語生成部1
09、出力された形式言語を蓄える出力言語記憶部11
0、出力言語記憶部110の内容を実行可能プログラム
に変換する実行プログラム変換部111、実行プログラ
ム変換部111により生成される実行可能プログラムを
蓄える実行プログラム記憶部112より構成されてい
る。ここで図2のフローチャートに基づき、本実施例に
おける入力文解析部103での処理の流れを説明する。
【0014】まず、ステップ201の処理により、入力
言語記憶部より1文を切り出す。これは文間の区切り文
字を決めておいて、前記区切り文字間を1文とすること
により1文を切り出すことにより行なわれる。
言語記憶部より1文を切り出す。これは文間の区切り文
字を決めておいて、前記区切り文字間を1文とすること
により1文を切り出すことにより行なわれる。
【0015】次の形態素解析処理202において、言語
辞書104を参照することにより入力文を単語ごとに分
割し、入力文中の単語の品詞、原形、活用情報を求め
る。次の形態素解析検査処理203において、入力文中
で言語辞書104に記載されていない単語が存在するか
どうかの検査を行ない、存在する場合には異常と判定
し、エラーメッセージ発生用情報を作成し、エラーメッ
セージ表示処理211に進む。異常がなかった場合を正
常と判定し、構文解析処理204に進む。
辞書104を参照することにより入力文を単語ごとに分
割し、入力文中の単語の品詞、原形、活用情報を求め
る。次の形態素解析検査処理203において、入力文中
で言語辞書104に記載されていない単語が存在するか
どうかの検査を行ない、存在する場合には異常と判定
し、エラーメッセージ発生用情報を作成し、エラーメッ
セージ表示処理211に進む。異常がなかった場合を正
常と判定し、構文解析処理204に進む。
【0016】構文解析処理204においては、形態素解
析処理202において得た単語とその品詞情報をもとに
入力文の構文を解析し、入力文の構文構造を生成する。
構文解析検査処理205においては、構文解析処理20
4において構文構造が正常に生成されたかどうかの検査
を行ない、異常と判定した場合にはエラーメッセージ表
示処理211に移る。正常な構文構造が生成されていた
場合には意味解析処理206に移る。
析処理202において得た単語とその品詞情報をもとに
入力文の構文を解析し、入力文の構文構造を生成する。
構文解析検査処理205においては、構文解析処理20
4において構文構造が正常に生成されたかどうかの検査
を行ない、異常と判定した場合にはエラーメッセージ表
示処理211に移る。正常な構文構造が生成されていた
場合には意味解析処理206に移る。
【0017】意味解析処理206においては、対象知識
記憶部105並びに入力仕様記憶部102中の情報を参
照することにより、入力文の構文構造を意味構造に変換
する。
記憶部105並びに入力仕様記憶部102中の情報を参
照することにより、入力文の構文構造を意味構造に変換
する。
【0018】否定表現解析処理207においては、文中
に登場する否定表現を解析し、否定表現を考慮した意味
構造への変換を行なう。意味解析検査処理208におい
ては、否定表現解析処理207で生成された入力文の意
味構造が仕様文として適切であるかどうかの判定を行な
い、適切であると判断された場合にはステップ209に
進み、解析結果を解析結果記憶部106に格納する。不
適切であると判断された場合には、エラーメッセージ発
生用情報を作成し、エラーメッセージ表示処理211に
進む。
に登場する否定表現を解析し、否定表現を考慮した意味
構造への変換を行なう。意味解析検査処理208におい
ては、否定表現解析処理207で生成された入力文の意
味構造が仕様文として適切であるかどうかの判定を行な
い、適切であると判断された場合にはステップ209に
進み、解析結果を解析結果記憶部106に格納する。不
適切であると判断された場合には、エラーメッセージ発
生用情報を作成し、エラーメッセージ表示処理211に
進む。
【0019】エラーメッセージ表示処理211では、エ
ラーメッセージ発生用情報をもとにエラーメッセージを
作成し、エラーメッセージの表示を行ない、処理を終了
する。
ラーメッセージ発生用情報をもとにエラーメッセージを
作成し、エラーメッセージの表示を行ない、処理を終了
する。
【0020】ステップ210では、入力言語記憶部10
1の内容を調べ、未だ解析されていない入力文が存在す
る場合にはステップ201に進む。全ての入力文が解析
された場合には処理を終了する。
1の内容を調べ、未だ解析されていない入力文が存在す
る場合にはステップ201に進む。全ての入力文が解析
された場合には処理を終了する。
【0021】以下冷蔵庫の温度制御プロラムの作成例を
用いて具体的に説明する。ここで入力言語記憶部101
には図3に示す文が、入力言語仕様記憶部102には図
4に示すテーブルが、言語辞書104には、形態素解析
用、構文解析用、意味解析用、否定表現解析用にそれぞ
れ図5,図6,図7,図8に示すテーブルが、対象知識
記憶部には図9に示すテーブルが格納されているものと
する。
用いて具体的に説明する。ここで入力言語記憶部101
には図3に示す文が、入力言語仕様記憶部102には図
4に示すテーブルが、言語辞書104には、形態素解析
用、構文解析用、意味解析用、否定表現解析用にそれぞ
れ図5,図6,図7,図8に示すテーブルが、対象知識
記憶部には図9に示すテーブルが格納されているものと
する。
【0022】ステップ201にて1文の抽出処理が行な
われ、「コンプレッサは、センサの温度が0℃のとき、
ONする。」が最初の文として取り出される。次にステ
ップ202の形態素解析処理において、図5の形態素解
析用辞書を用いた単語・品詞・活用形の解析か行なわ
れ、図10に示す形態素解析結果が得られる。本例の場
合には、全ての単語が辞書に存在しているので次のステ
ップ203の形態素解析検査処理において正常と判定さ
れ、ステップ204の構文解析処理に進む。
われ、「コンプレッサは、センサの温度が0℃のとき、
ONする。」が最初の文として取り出される。次にステ
ップ202の形態素解析処理において、図5の形態素解
析用辞書を用いた単語・品詞・活用形の解析か行なわ
れ、図10に示す形態素解析結果が得られる。本例の場
合には、全ての単語が辞書に存在しているので次のステ
ップ203の形態素解析検査処理において正常と判定さ
れ、ステップ204の構文解析処理に進む。
【0023】ステップ204の構文解析処理では、図6
に示す構文解析用辞書を参照することにより、構文構造
が生成される。図6に示す構文解析用辞書は、句構造文
法における書き換え規則を意味しており、文中の品詞列
と照合が成功した右辺の記号列を左辺の記号列に書き換
える操作が行なわれる。その際に、以下の(1)〜
(3)の規則により木構造がなる構文構造を生成してい
く。
に示す構文解析用辞書を参照することにより、構文構造
が生成される。図6に示す構文解析用辞書は、句構造文
法における書き換え規則を意味しており、文中の品詞列
と照合が成功した右辺の記号列を左辺の記号列に書き換
える操作が行なわれる。その際に、以下の(1)〜
(3)の規則により木構造がなる構文構造を生成してい
く。
【0024】(1)右辺各項のうち、末尾に*がついて
いる項を親ノードとする。 (2)右辺各項のうち、末尾に+がついている項をアー
ク名とする。末尾に+のついた項が存在しない場合に
は、アーク名の項をアーク名とする。
いる項を親ノードとする。 (2)右辺各項のうち、末尾に+がついている項をアー
ク名とする。末尾に+のついた項が存在しない場合に
は、アーク名の項をアーク名とする。
【0025】(3)右辺各項のうち、(1)(2)以外
の項を子ノードとする。 本例の場合にはこの規則にしたがい、図11に示す構文
解析結果が得られる。本例の場合には構文解析処理によ
り正常な構文構造が生成されているので、次の構文解析
検査処理において正常と判定され、ステップ206の意
味解析処理に進む。
の項を子ノードとする。 本例の場合にはこの規則にしたがい、図11に示す構文
解析結果が得られる。本例の場合には構文解析処理によ
り正常な構文構造が生成されているので、次の構文解析
検査処理において正常と判定され、ステップ206の意
味解析処理に進む。
【0026】ステップ206の意味解析処理では、図1
1の構文解析結果をもとに、図7に示す意味解析規則、
図9に示す対象知識辞書を参照して、意味構造を生成す
る。ここではまず、図11の構文解析結果の木構造の親
ノード・アーク・子ノードの組について、図7のテーブ
ルの各行の要素と、順に照合をおこなう。照合のための
必要十分条件は次の(1)、(2)に従うものとする。
1の構文解析結果をもとに、図7に示す意味解析規則、
図9に示す対象知識辞書を参照して、意味構造を生成す
る。ここではまず、図11の構文解析結果の木構造の親
ノード・アーク・子ノードの組について、図7のテーブ
ルの各行の要素と、順に照合をおこなう。照合のための
必要十分条件は次の(1)、(2)に従うものとする。
【0027】(1)木構造中の親ノード・アーク・子ノ
ードの組は図7の親ノード・アーク・子ノードの組と一
致する。ただし空白の項は任意とする。 (2)図7中の親知識ノード・知識アーク・子知識ノー
ドの項は、図9の知識ノード1・知識アーク・知識ノー
ド2の組に一致した行がなければならない。その場合、
図9において知識ノード1はノード1・知識ノード2は
ノード2に対応するノードでなければならない。ここで
図9中に「?」記号の入った項が存在する場合には
「?」は任意の文字列と一致するものとする。ただし図
7において空白の項は任意とする。
ードの組は図7の親ノード・アーク・子ノードの組と一
致する。ただし空白の項は任意とする。 (2)図7中の親知識ノード・知識アーク・子知識ノー
ドの項は、図9の知識ノード1・知識アーク・知識ノー
ド2の組に一致した行がなければならない。その場合、
図9において知識ノード1はノード1・知識ノード2は
ノード2に対応するノードでなければならない。ここで
図9中に「?」記号の入った項が存在する場合には
「?」は任意の文字列と一致するものとする。ただし図
7において空白の項は任意とする。
【0028】この規則にしたがった照合処理を行ない、
図7の意味解析規則中に照合に成功したルールが存在し
た場合、図11の構文解析結果におけるアークを図7中
の照合したルールの新アークの項と置き換える処理を行
なう。本例の場合、上記の処理を行なうことにより図1
2に示す意味解析処理結果が得られる。図12ではアー
ク名のあとに図7中の照合したルール番号を記述してお
く。
図7の意味解析規則中に照合に成功したルールが存在し
た場合、図11の構文解析結果におけるアークを図7中
の照合したルールの新アークの項と置き換える処理を行
なう。本例の場合、上記の処理を行なうことにより図1
2に示す意味解析処理結果が得られる。図12ではアー
ク名のあとに図7中の照合したルール番号を記述してお
く。
【0029】次のステップ207の否定表現解析処理で
は、ステップ206の意味解析処理結果をもとに、否定
表現を取り出し、図8に示す否定表現処理規則を参照す
ることにより、否定表現を考慮した意味構造を生成す
る。ここでは、次の(1)、(2)、(3)に従う処理
が行なわれる。
は、ステップ206の意味解析処理結果をもとに、否定
表現を取り出し、図8に示す否定表現処理規則を参照す
ることにより、否定表現を考慮した意味構造を生成す
る。ここでは、次の(1)、(2)、(3)に従う処理
が行なわれる。
【0030】(1)図8中の否定アークの項に一致する
アークが意味解析処理結果中に存在するかどうかをチェ
ックする。 (2)(1)のチェックにより、否定アークが存在した
場合には、否定アークとノードを介して接続されている
下位(子ども)のアークに図8中の子アークに一致する
アークが存在した場合、そのアークを図8中の同一行の
新子アークの項と置き換える。
アークが意味解析処理結果中に存在するかどうかをチェ
ックする。 (2)(1)のチェックにより、否定アークが存在した
場合には、否定アークとノードを介して接続されている
下位(子ども)のアークに図8中の子アークに一致する
アークが存在した場合、そのアークを図8中の同一行の
新子アークの項と置き換える。
【0031】(3)否定アークに接続している親ノード
と、否定アーク自身を削除する。 本例においては(1)のチェックにおいて否定アークが
存在しないので置き換え処理は行なわれず、図12に示
す否定表現解析結果を得る。
と、否定アーク自身を削除する。 本例においては(1)のチェックにおいて否定アークが
存在しないので置き換え処理は行なわれず、図12に示
す否定表現解析結果を得る。
【0032】次のステップ208の意味解析検査処理で
は、ステップ206意味解析処理・ステップ207の否
定表現解析処理において、意味解析処理が正常に行なわ
れ、仕様文として正しい意味構造が生成されたかどうか
の検査を行なう。本処理において、正常とみなされるた
めの条件は次の(1)、(2)とする (1)構文解析結果の木構造中のすべての親ノード・ア
ーク・子ノードの組に対し図7の意味解析規則中に照合
した規則が存在したか、またはステップ207の否定表
現解析処理の対象となったかどうかの検査を行なう。ス
テップ206の意味解析処理において、照合した規則が
存在せず、さらにステップ207の否定表現解析処理の
対象とならなかったノードまたはアークが一つでも存在
した場合には、意味解析処理が正常に行なわれなかった
とみなす。
は、ステップ206意味解析処理・ステップ207の否
定表現解析処理において、意味解析処理が正常に行なわ
れ、仕様文として正しい意味構造が生成されたかどうか
の検査を行なう。本処理において、正常とみなされるた
めの条件は次の(1)、(2)とする (1)構文解析結果の木構造中のすべての親ノード・ア
ーク・子ノードの組に対し図7の意味解析規則中に照合
した規則が存在したか、またはステップ207の否定表
現解析処理の対象となったかどうかの検査を行なう。ス
テップ206の意味解析処理において、照合した規則が
存在せず、さらにステップ207の否定表現解析処理の
対象とならなかったノードまたはアークが一つでも存在
した場合には、意味解析処理が正常に行なわれなかった
とみなす。
【0033】(2)図12に示す否定表現解析結果の木
構造に対して、図4の入力言語仕様記憶部の内容との照
合を行なう。図4のテーブルでは、親ノード・子ノード
の項において()または[]で囲まれた項は終端ノード
を表す。それ以外の項は非終端ノードを表す。()で囲
まれた項はノード中の知識ノード部分(図13において
ノード部分中の()で囲まれた部分)を表す。[]で囲
まれた項はノード中の言語表現部分(図13においてノ
ード部分中の()で囲まれていない部分)を表す。照合
の手順は次の(2a)(2b)に従う。
構造に対して、図4の入力言語仕様記憶部の内容との照
合を行なう。図4のテーブルでは、親ノード・子ノード
の項において()または[]で囲まれた項は終端ノード
を表す。それ以外の項は非終端ノードを表す。()で囲
まれた項はノード中の知識ノード部分(図13において
ノード部分中の()で囲まれた部分)を表す。[]で囲
まれた項はノード中の言語表現部分(図13においてノ
ード部分中の()で囲まれていない部分)を表す。照合
の手順は次の(2a)(2b)に従う。
【0034】(2a)図4中の仕様部のノードから初め
て、親ノードから子ノードに向かって、親ノード・アー
ク・子ノードの照合を試みていく。その際、親ノードま
たは子ノードの項に非終端ノードが現れた場合には、図
4の非終端ノードの項の対応する親ノード・アーク・子
ノードの項と、再帰的に照合を試みていく。
て、親ノードから子ノードに向かって、親ノード・アー
ク・子ノードの照合を試みていく。その際、親ノードま
たは子ノードの項に非終端ノードが現れた場合には、図
4の非終端ノードの項の対応する親ノード・アーク・子
ノードの項と、再帰的に照合を試みていく。
【0035】(2b)2aの操作を、意味解析処理結果
中のノードがすべて照合に成功するまで行なう。すべて
照合に成功した場合は正常とし、それ以外の場合には異
常とする。
中のノードがすべて照合に成功するまで行なう。すべて
照合に成功した場合は正常とし、それ以外の場合には異
常とする。
【0036】本例の場合には、図12に示すように意味
解析処理においてすべての親ノード・アーク・子ノード
の組に対して図7の意味解析規則を適用されている。図
12の意味解析結果について意味解析検査処理を行なっ
た結果を図13に示す。図13では、ノードに図4との
照合処理により確認された認識結果が、ノード名のあと
の()内に生成される。また図13では、本処理により
適用された図4のルール番号と親ノード・アーク・子ノ
ードのまとまりが図示している(これは実際の構造には
含まれていない)。ここで図13に示すように、図12
の意味解析結果は図4の入力言語仕様に一致する。した
がって本例の場合には意味解析検査処理は正常に行なわ
れたものとみなし、ステップ209に進む。
解析処理においてすべての親ノード・アーク・子ノード
の組に対して図7の意味解析規則を適用されている。図
12の意味解析結果について意味解析検査処理を行なっ
た結果を図13に示す。図13では、ノードに図4との
照合処理により確認された認識結果が、ノード名のあと
の()内に生成される。また図13では、本処理により
適用された図4のルール番号と親ノード・アーク・子ノ
ードのまとまりが図示している(これは実際の構造には
含まれていない)。ここで図13に示すように、図12
の意味解析結果は図4の入力言語仕様に一致する。した
がって本例の場合には意味解析検査処理は正常に行なわ
れたものとみなし、ステップ209に進む。
【0037】ステップ209では、解析結果を、本例で
は図13の木構造の状態で解析結果記憶部に格納し、ス
テップ210に進む。ステップ210では、入力言語記
憶部に未処理の文が残っているかどうかを調べる。本例
ではあと2文残っているので、ステップ201に進む。
は図13の木構造の状態で解析結果記憶部に格納し、ス
テップ210に進む。ステップ210では、入力言語記
憶部に未処理の文が残っているかどうかを調べる。本例
ではあと2文残っているので、ステップ201に進む。
【0038】ステップ201にて1文の抽出処理が行な
われ、「コンプレッサは、センサの温度が−10℃のと
き、OFFする。」が次の文として取り出される。ステ
ップ202からステップ209までは最初の文の場合と
全く同様の処理が行なわれ、途中の検査処理ではすべて
正常の判定が行なわれ、図14に示す解析結果が解析結
果記憶部に格納される。
われ、「コンプレッサは、センサの温度が−10℃のと
き、OFFする。」が次の文として取り出される。ステ
ップ202からステップ209までは最初の文の場合と
全く同様の処理が行なわれ、途中の検査処理ではすべて
正常の判定が行なわれ、図14に示す解析結果が解析結
果記憶部に格納される。
【0039】ステップ210では、入力言語記憶部に未
処理の文が残っているかどうかを調べる。本例ではあと
1文残っているので、ステップ201に進む。ステップ
201にて1文の抽出処理が行なわれ、「コンプレッサ
をOFFしたとき、6分間はコンプレッサをONしな
い。」が次の文として取り出される。この文について
は、前2文と処理過程が異なるので順を追って説明す
る。
処理の文が残っているかどうかを調べる。本例ではあと
1文残っているので、ステップ201に進む。ステップ
201にて1文の抽出処理が行なわれ、「コンプレッサ
をOFFしたとき、6分間はコンプレッサをONしな
い。」が次の文として取り出される。この文について
は、前2文と処理過程が異なるので順を追って説明す
る。
【0040】先ずステップ202の形態素解析処理にお
いて、図5の形態素解析用辞書を用いた単語・品詞・活
用形の解析が行なわれ、図15に示す形態素解析結果が
得られる。本例の場合には、全ての単語が辞書に存在し
ているので次のステップ203の形態素解析検査処理に
おいて正常と判定され、ステップ204の構文解析処理
に進む。
いて、図5の形態素解析用辞書を用いた単語・品詞・活
用形の解析が行なわれ、図15に示す形態素解析結果が
得られる。本例の場合には、全ての単語が辞書に存在し
ているので次のステップ203の形態素解析検査処理に
おいて正常と判定され、ステップ204の構文解析処理
に進む。
【0041】ステップ204の構文解析処理では、図6
に示す構文解析用辞書を参照することにより、構文構造
が生成される。本例の場合、その結果図16に示す構文
解析結果が得られる。本例の場合には構文解析処理によ
り正常な構文構造が生成されているので、次の構文解析
検査処理において正常と判定され、ステップ206の意
味解析処理に進む。
に示す構文解析用辞書を参照することにより、構文構造
が生成される。本例の場合、その結果図16に示す構文
解析結果が得られる。本例の場合には構文解析処理によ
り正常な構文構造が生成されているので、次の構文解析
検査処理において正常と判定され、ステップ206の意
味解析処理に進む。
【0042】ステップ206の意味解析処理では、図1
6の構文解析結果をもとに、図7に示す意味解析規則、
図17に示す対象知識辞書を参照して、意味構造を生成
する。本例の場合、その結果図17に示す意味解析結果
が得られる。
6の構文解析結果をもとに、図7に示す意味解析規則、
図17に示す対象知識辞書を参照して、意味構造を生成
する。本例の場合、その結果図17に示す意味解析結果
が得られる。
【0043】次のステップ207の否定表現解析処理で
は、ステップ206の意味解析処理結果をもとに、否定
表現を取り出し、図8に示す否定表現処理規則を参照す
ることにより、否定表現を考慮した意味構造を生成す
る。ここで、本例の場合には否定アークが存在するの
で、本処理の対象となり、結果図18に示す否定表現解
析結果が得られる。
は、ステップ206の意味解析処理結果をもとに、否定
表現を取り出し、図8に示す否定表現処理規則を参照す
ることにより、否定表現を考慮した意味構造を生成す
る。ここで、本例の場合には否定アークが存在するの
で、本処理の対象となり、結果図18に示す否定表現解
析結果が得られる。
【0044】ここでは図17の否定アーク及びその親ノ
ードが取り除かれ、図17の要求アーク及び時間アーク
が夫々図18の制約アーク及び制約時間アークに変換さ
れている。つまり図18では否定表現に代えて制約とい
う肯定表現を記述している。
ードが取り除かれ、図17の要求アーク及び時間アーク
が夫々図18の制約アーク及び制約時間アークに変換さ
れている。つまり図18では否定表現に代えて制約とい
う肯定表現を記述している。
【0045】次のステップ208の意味解析検査処理で
は、ステップ206の意味解析処理・ステップ207の
否定表現解析処理において、意味解析処理が正常に行な
われ、仕様文として正しい意味構造が生成されたかどう
かの検査を行なう。本例の場合には、図19に示す意味
解析処理検査結果が得られ、処理結果は正常とみなされ
るので、ステップ209において解析結果記憶部に格納
し、ステップ210に進む。
は、ステップ206の意味解析処理・ステップ207の
否定表現解析処理において、意味解析処理が正常に行な
われ、仕様文として正しい意味構造が生成されたかどう
かの検査を行なう。本例の場合には、図19に示す意味
解析処理検査結果が得られ、処理結果は正常とみなされ
るので、ステップ209において解析結果記憶部に格納
し、ステップ210に進む。
【0046】ここでステップ210において、本例では
入力言語記憶部に未処理の文が残っていないので、処理
を終了する。次に図2の処理中にエラーが発生する場合
を例にとり説明する。ここで入力文として「センサの温
度が0℃のとき、コンプレッサを運転する。」が与えら
れたものとし、前例と同様に入力言語仕様記憶部には図
4に示すテーブルが言語辞書104には、形態素解析
用、構文解析用、意味解析用、否定表現解析用にそれぞ
れ図5,図6,図7,図8に示すテーブルが、対象知識
記憶部には図9に示すテーブルが格納されているものと
する。
入力言語記憶部に未処理の文が残っていないので、処理
を終了する。次に図2の処理中にエラーが発生する場合
を例にとり説明する。ここで入力文として「センサの温
度が0℃のとき、コンプレッサを運転する。」が与えら
れたものとし、前例と同様に入力言語仕様記憶部には図
4に示すテーブルが言語辞書104には、形態素解析
用、構文解析用、意味解析用、否定表現解析用にそれぞ
れ図5,図6,図7,図8に示すテーブルが、対象知識
記憶部には図9に示すテーブルが格納されているものと
する。
【0047】ステップ202の形態素解析処理におい
て、図5の形態素解析用辞書を用いた単語・品詞・活用
形の解析が行なわれ、図20に示す形態素解析結果が得
られる。本例の場合には、全ての単語が辞書に存在して
いるので次のステップ203の形態素解析検査処理にお
いて正常と判定され、ステップ204の構文解析処理に
進む。
て、図5の形態素解析用辞書を用いた単語・品詞・活用
形の解析が行なわれ、図20に示す形態素解析結果が得
られる。本例の場合には、全ての単語が辞書に存在して
いるので次のステップ203の形態素解析検査処理にお
いて正常と判定され、ステップ204の構文解析処理に
進む。
【0048】ステップ204の構文解析処理では、図6
に示す構文解析用辞書を参照することにより、構文構造
が生成される。前例の場合と同様の処理が行なわれ、図
21に示す構文解析結果が得られる。本例の場合には構
文解析処理により正常な構文構造が生成されているの
で、次の構文解析検査処理において正常と判定され、ス
テップ206の意味解析処理に進む。
に示す構文解析用辞書を参照することにより、構文構造
が生成される。前例の場合と同様の処理が行なわれ、図
21に示す構文解析結果が得られる。本例の場合には構
文解析処理により正常な構文構造が生成されているの
で、次の構文解析検査処理において正常と判定され、ス
テップ206の意味解析処理に進む。
【0049】ステップ206の意味解析処理では、図2
1の論文解析結果をもとに、図7に示す意味解析規則、
図9に示す対象知識辞書を参照して、意味構造を生成す
る。この処理も前例の場合と同様に行なわれるが、図2
1における「運転」ノードと「コンプレッサ」ノードに
ついて、この場合には図9の対象知識中に「運転」ノー
ドが存在しないために図7の意味解析規則中に照合する
規則が存在しない。したがってこの場合には図22に示
す意味解析結果が得れ、次のステップ207に進む。
1の論文解析結果をもとに、図7に示す意味解析規則、
図9に示す対象知識辞書を参照して、意味構造を生成す
る。この処理も前例の場合と同様に行なわれるが、図2
1における「運転」ノードと「コンプレッサ」ノードに
ついて、この場合には図9の対象知識中に「運転」ノー
ドが存在しないために図7の意味解析規則中に照合する
規則が存在しない。したがってこの場合には図22に示
す意味解析結果が得れ、次のステップ207に進む。
【0050】ステップ207でも前例と同様の規則を用
いた処理が行なわれ、「運転」ノードと「コンプレッ
サ」ノードについて意味解析規則中に照合する規則が存
在しなかったため、(1)の判定基準により異常とみな
される。したがってこの場合にはステップ210のエラ
ーメッセージ表示処理に進むことになる。その際に、意
味解析規則の照合に失敗したノードについて、図23に
示すエラーメッセージ発生用情報を作成する。
いた処理が行なわれ、「運転」ノードと「コンプレッ
サ」ノードについて意味解析規則中に照合する規則が存
在しなかったため、(1)の判定基準により異常とみな
される。したがってこの場合にはステップ210のエラ
ーメッセージ表示処理に進むことになる。その際に、意
味解析規則の照合に失敗したノードについて、図23に
示すエラーメッセージ発生用情報を作成する。
【0051】ステップ210のエラーメッセージ表示処
理では、エラーの発生した処理・場所に関する情報を受
けとり、エラーメッセージを発生してユーザに表示す
る。ここでエラーメッセージの発生は図24に示すテー
ブルを用いて行なわれる。図23においてエラー発生処
理の項はエラーが発生した処理に基づいてエラーメッセ
ージ発生用のテンプレートを選択するのに用いられる。
テンプレートの項はエラーメッセージの文字列を表し、
[]で囲まれた部分は、各処理から送られてきたエラー
メッセージ発生情報の各項を置き換える処理を行なう。
このような処理を行なうことにより、本例の場合にはエ
ラーメッセージとして、「運転とコンプレッサの関係が
不明です。」を発生し、ユーザに対して表示した後に、
処理を終了する。
理では、エラーの発生した処理・場所に関する情報を受
けとり、エラーメッセージを発生してユーザに表示す
る。ここでエラーメッセージの発生は図24に示すテー
ブルを用いて行なわれる。図23においてエラー発生処
理の項はエラーが発生した処理に基づいてエラーメッセ
ージ発生用のテンプレートを選択するのに用いられる。
テンプレートの項はエラーメッセージの文字列を表し、
[]で囲まれた部分は、各処理から送られてきたエラー
メッセージ発生情報の各項を置き換える処理を行なう。
このような処理を行なうことにより、本例の場合にはエ
ラーメッセージとして、「運転とコンプレッサの関係が
不明です。」を発生し、ユーザに対して表示した後に、
処理を終了する。
【0052】以上で本実施例における入力文解析部10
3での処理の流れの説明を終了する。次に解析結果検証
部107について説明する。解析結果検証部の役割は、
解析結果記憶部中の解析結果が仕様として完全に記述さ
れているかどうかを検証することである。本実施例の場
合は、検証のための制約を設け、制約が満たされたなら
ば検証に成功したことになる。検証のための制約は、以
下の(1)(2)である。
3での処理の流れの説明を終了する。次に解析結果検証
部107について説明する。解析結果検証部の役割は、
解析結果記憶部中の解析結果が仕様として完全に記述さ
れているかどうかを検証することである。本実施例の場
合は、検証のための制約を設け、制約が満たされたなら
ば検証に成功したことになる。検証のための制約は、以
下の(1)(2)である。
【0053】(1)対象知識記憶部105において、知
識アークの項で、「動作」の項が解析結果にすべて存在
しなければならない。 (2)対象知識記憶部105において、知識アークの項
で、「状態」の項が解析結果にすべて存在しなければな
らない。
識アークの項で、「動作」の項が解析結果にすべて存在
しなければならない。 (2)対象知識記憶部105において、知識アークの項
で、「状態」の項が解析結果にすべて存在しなければな
らない。
【0054】これにより、対象知識中のすべての機器に
ついて、仕様記述中での言及がなされているかが検証で
きる。図25のフローチャートにしたがい、上記の制約
に沿った検証を行なっていく。
ついて、仕様記述中での言及がなされているかが検証で
きる。図25のフローチャートにしたがい、上記の制約
に沿った検証を行なっていく。
【0055】まずステップ2501にて、対象知識記憶
部105の内容をコピーし、マーク項を付加したテーブ
ルを作成する。本例の場合は、対象知識記憶部105の
内容は図9に示されているので、図26に示すテーブル
が作成される。
部105の内容をコピーし、マーク項を付加したテーブ
ルを作成する。本例の場合は、対象知識記憶部105の
内容は図9に示されているので、図26に示すテーブル
が作成される。
【0056】次にステップ2502にて、解析結果記憶
部106より未処理の解析結果を1つ取り出し、ステッ
プ2503に進む。未処理の解析結果がない場合にはス
テップ2504に進む。本例の場合には、図13に示す
解析結果がまず取り出される。
部106より未処理の解析結果を1つ取り出し、ステッ
プ2503に進む。未処理の解析結果がない場合にはス
テップ2504に進む。本例の場合には、図13に示す
解析結果がまず取り出される。
【0057】ステップ2503ではは、取り出された解
析結果中の動作アークについて、その子ノード・親ノー
ドがステップ2501で作成されたテーブル中のノード
1・ノード2に対応し、知識アークが動作である行が存
在した場合、その行のマーク項にマーキングを行なう。
図13の解析結果では、動作アークの子ノードがコンプ
レッサであり、親ノードがONであるので、図26中に
該当する行が存在し、マーキングの結果は図27にな
る。本実施例ではマーキングは記号‘*’を用いて行な
っている。
析結果中の動作アークについて、その子ノード・親ノー
ドがステップ2501で作成されたテーブル中のノード
1・ノード2に対応し、知識アークが動作である行が存
在した場合、その行のマーク項にマーキングを行なう。
図13の解析結果では、動作アークの子ノードがコンプ
レッサであり、親ノードがONであるので、図26中に
該当する行が存在し、マーキングの結果は図27にな
る。本実施例ではマーキングは記号‘*’を用いて行な
っている。
【0058】ステップ2504では、取り出された解析
結果中の状態アークについて、その子ノード・親ノード
がステップ2501で作成されたテーブル中のノード1
・ノード2に対応し、知識アークが状態である行が存在
した場合、その行のマーク項にマーキングを行なう。図
13の解析結果では、状態アークの子ノードが温度であ
り、親ノードが0℃であるので、図27中に該当する行
が存在し、マーキングの結果は図28になる。ここで図
9中の記号‘?’は任意の文字列と照合することを示し
ている。
結果中の状態アークについて、その子ノード・親ノード
がステップ2501で作成されたテーブル中のノード1
・ノード2に対応し、知識アークが状態である行が存在
した場合、その行のマーク項にマーキングを行なう。図
13の解析結果では、状態アークの子ノードが温度であ
り、親ノードが0℃であるので、図27中に該当する行
が存在し、マーキングの結果は図28になる。ここで図
9中の記号‘?’は任意の文字列と照合することを示し
ている。
【0059】その後ステップ2502に戻り、未処理の
解析結果がなくなるまでステップ2502〜ステップ2
504の処理を繰り返す。本例の場合には、図14・図
19に示す解析結果についてステップ2503・ステッ
プ2504の処理を行ない、そこで解析結果はすべて処
理したことになるので、ステップ2505に進む。その
ときのテーブルの内容は図29に示すようになってい
る。
解析結果がなくなるまでステップ2502〜ステップ2
504の処理を繰り返す。本例の場合には、図14・図
19に示す解析結果についてステップ2503・ステッ
プ2504の処理を行ない、そこで解析結果はすべて処
理したことになるので、ステップ2505に進む。その
ときのテーブルの内容は図29に示すようになってい
る。
【0060】ステップ2505では、テーブル中の、知
識アークの項で動作・状態の行のマーク項がすべてマー
キングされているかどうかを検査する。動作・状態の行
のすべてのマーク項がマーキングされているならば、ス
テップ2506に進み、検証結果が正常であると判定
し、処理を終了する。そうでなければ、ステップ250
7に進み、検証結果が異常であると判定し、処理を終了
する。本例の場合には、図29に示すようにすべての知
識アークの項で動作・状態の行のすべてのマーク項がマ
ーキングされているので、ステップ2506に進み、検
証結果が正常であると判定し、処理を終了することにな
る。
識アークの項で動作・状態の行のマーク項がすべてマー
キングされているかどうかを検査する。動作・状態の行
のすべてのマーク項がマーキングされているならば、ス
テップ2506に進み、検証結果が正常であると判定
し、処理を終了する。そうでなければ、ステップ250
7に進み、検証結果が異常であると判定し、処理を終了
する。本例の場合には、図29に示すようにすべての知
識アークの項で動作・状態の行のすべてのマーク項がマ
ーキングされているので、ステップ2506に進み、検
証結果が正常であると判定し、処理を終了することにな
る。
【0061】次に出力言語生成部109での処理の流れ
について説明する。本実施例では生成される出力言語と
して、有限状態遷移機械モデルに基づいた形式をとるも
のとする。有限状態遷移機械モデルにおける有限順序機
械SMは、通常次の式により定義される。
について説明する。本実施例では生成される出力言語と
して、有限状態遷移機械モデルに基づいた形式をとるも
のとする。有限状態遷移機械モデルにおける有限順序機
械SMは、通常次の式により定義される。
【0062】SM=(I,O,S,f,g) ただし I:入力 O:出力 S:状態 f:遷移関数(集合Sと集合Iの直積集合S×Iを集合
Sに写像する関数) g:遷移関数(集合Sと集合Iの直積集合S×Iを集合
Oに写像する関数) 上式の各項を決定することが、有限順序機械の動きを決
定ることになる。本実施例では、図30に示すフローチ
ャートにしたがい、上式の各項を決定していく。以下、
解析結果記憶部106には図13,図14,図19に示
す解析結果の木構造が格納されているものとして出力言
語生成部109での具体的な動作について説明する。
Sに写像する関数) g:遷移関数(集合Sと集合Iの直積集合S×Iを集合
Oに写像する関数) 上式の各項を決定することが、有限順序機械の動きを決
定ることになる。本実施例では、図30に示すフローチ
ャートにしたがい、上式の各項を決定していく。以下、
解析結果記憶部106には図13,図14,図19に示
す解析結果の木構造が格納されているものとして出力言
語生成部109での具体的な動作について説明する。
【0063】ステップ3001においては、解析結果記
憶部の構造に対し入力・出力を取り出すように変換す
る。ステップ3002において、変換された構造より上
式の各項を決定する。以下各ステップの詳細な手順を説
明する。
憶部の構造に対し入力・出力を取り出すように変換す
る。ステップ3002において、変換された構造より上
式の各項を決定する。以下各ステップの詳細な手順を説
明する。
【0064】ステップ3001においては、図31に示
す変換テーブルを参照することにより入力出力関係の構
造を作成する。作成の方法は次の(1)(2)に従う。 (1)解析結果記憶部106の内容それぞれについて、
図31のアーク項に照合したアークについて、アークに
接続されている上位ノードと下位ノードを結合パタン項
のパタンに従い結合する。
す変換テーブルを参照することにより入力出力関係の構
造を作成する。作成の方法は次の(1)(2)に従う。 (1)解析結果記憶部106の内容それぞれについて、
図31のアーク項に照合したアークについて、アークに
接続されている上位ノードと下位ノードを結合パタン項
のパタンに従い結合する。
【0065】(2)(1)により結合されたパタンを新
たなノードとし、上位ノード−アーク−下位ノードのパ
タンと置き換える。 本例についてステップ3001の処理を行なった結果を
図32に示す。ここで入力;で始まっているノードは入
力を、出力;で始まっているノードは出力を意味する。
たなノードとし、上位ノード−アーク−下位ノードのパ
タンと置き換える。 本例についてステップ3001の処理を行なった結果を
図32に示す。ここで入力;で始まっているノードは入
力を、出力;で始まっているノードは出力を意味する。
【0066】次のステップ3002において、時間表現
を用いている部分について、機器表現への置換えを行
う。置換えは図33のテーブルを参照することにより、
次の(1)(2)の方法により行う。
を用いている部分について、機器表現への置換えを行
う。置換えは図33のテーブルを参照することにより、
次の(1)(2)の方法により行う。
【0067】(1)ステップ3001により作成された
構造中のノードに対して、図33中各項におけるアーク
1・アーク2のノードが存在するかどうかをチェックす
る。
構造中のノードに対して、図33中各項におけるアーク
1・アーク2のノードが存在するかどうかをチェックす
る。
【0068】(2)(1)に適合したノードについて、
新上位ノード・新下位ノード・新アークにより新たな構
造を作成する。ここでアーク1の上位ノードといった表
現には、対応するノードがそのまま入る。
新上位ノード・新下位ノード・新アークにより新たな構
造を作成する。ここでアーク1の上位ノードといった表
現には、対応するノードがそのまま入る。
【0069】本例についてステップ3002の処理を行
なった結果を図34に示す。ここでは図32に示される
時間表現に関する制約アーク・制約時間アークに対し、
新たにタイマという機器を導入し、その状態を時間表現
に結び付ける。つまり図34に示されるように、元の時
間表現のノードに対し、タイマ(機器)の6分間(状
態)・0(状態)というノードに置換し、要求アーク・
制約アークを用いて2つの入力・出力関係構造を生成し
ている。
なった結果を図34に示す。ここでは図32に示される
時間表現に関する制約アーク・制約時間アークに対し、
新たにタイマという機器を導入し、その状態を時間表現
に結び付ける。つまり図34に示されるように、元の時
間表現のノードに対し、タイマ(機器)の6分間(状
態)・0(状態)というノードに置換し、要求アーク・
制約アークを用いて2つの入力・出力関係構造を生成し
ている。
【0070】次のステップ3003において、出力を発
生するための条件を決定する。この方法は、次の(1)
に従う。 (1)ステップ3002により生成された構造中の、要
求アークを下位に持つノードそれぞれについて、制約ア
ークの上位ノードと一致したノードが存在すれば、制約
アークの以下ノードを当概ノード、要求アークにて接続
する。
生するための条件を決定する。この方法は、次の(1)
に従う。 (1)ステップ3002により生成された構造中の、要
求アークを下位に持つノードそれぞれについて、制約ア
ークの上位ノードと一致したノードが存在すれば、制約
アークの以下ノードを当概ノード、要求アークにて接続
する。
【0071】(2)構造中のすべての要求アークを条件
アークに変更する。 本例についてステップ3003の処理を行なった結果を
図35に示す。次のステップ3004において、状態S
を決定する。これはステップ3003において得られた
構造中の、各機器がとりうる状態・動作の直積により得
られる。本例については次のように各機器について動作
・状態が存在する。
アークに変更する。 本例についてステップ3003の処理を行なった結果を
図35に示す。次のステップ3004において、状態S
を決定する。これはステップ3003において得られた
構造中の、各機器がとりうる状態・動作の直積により得
られる。本例については次のように各機器について動作
・状態が存在する。
【0072】コンプレッサ:ON,OFF センサ :0℃,−10℃ タイム :0,6分間 そこで各機器のとりうる動作・状態の直積により、本例
の場合には図36に示す状態Sが得られる。図36にお
いて楕円部はひとつの状態を表し、楕円内の記述はその
状態における機器の状態・動作を表している。
の場合には図36に示す状態Sが得られる。図36にお
いて楕円部はひとつの状態を表し、楕円内の記述はその
状態における機器の状態・動作を表している。
【0073】次のステップ3005において、遷移関数
f・出力関数gを決定する。これは次により行う。 (1)状態Sのそれぞれについて、各機器の状態を別の
状態に変化させ、新たな状態を作る。
f・出力関数gを決定する。これは次により行う。 (1)状態Sのそれぞれについて、各機器の状態を別の
状態に変化させ、新たな状態を作る。
【0074】(2)(1)において作成された状態が、
ステップ3004において得られた構造中の、条件アー
クの下位ノードに一致した時には、動作のための条件を
満たすので、機器の動作を、その構造の上位ノードに変
化させる。
ステップ3004において得られた構造中の、条件アー
クの下位ノードに一致した時には、動作のための条件を
満たすので、機器の動作を、その構造の上位ノードに変
化させる。
【0075】(3)(2)において作成された状態は、
(1)において作成された状態の中から探し、その状態
に向かいアークを張る。 (4)(3)により作成されたアークにより、遷移関数
fを次のように定める。
(1)において作成された状態の中から探し、その状態
に向かいアークを張る。 (4)(3)により作成されたアークにより、遷移関数
fを次のように定める。
【0076】f:アークの出所状態,アークにより変化
した機器の状態よりアークの行先状態への関数の集合。 (5)(3)により作成されたアークにより、出力関数
gを次のように定める。
した機器の状態よりアークの行先状態への関数の集合。 (5)(3)により作成されたアークにより、出力関数
gを次のように定める。
【0077】g:アークの出所状態,アークにより変化
した機器の状態よりアークの行先状態の動作への集合。 本例についてステップ3005の処理を行なった結果を
図37の状態遷移図に示す。このような状態とアークの
集まりより、遷移関数f,出力関数gは決定される。
した機器の状態よりアークの行先状態の動作への集合。 本例についてステップ3005の処理を行なった結果を
図37の状態遷移図に示す。このような状態とアークの
集まりより、遷移関数f,出力関数gは決定される。
【0078】図37での全てのアークは遷移関数fに該
当する。つまり遷移関数fは各機器の状態間で変化可能
な全ての方向を表わす。又、図37において左上の状態
から左下の状態へのアーク,左下の状態から右上の状態
へのアーク,左上の2番目の状態から左下の状態へのア
ークは出力関数gに該当する。つまり出力関数gは各機
器の状態間で、図35の出力条件に合致する方向を表わ
す。
当する。つまり遷移関数fは各機器の状態間で変化可能
な全ての方向を表わす。又、図37において左上の状態
から左下の状態へのアーク,左下の状態から右上の状態
へのアーク,左上の2番目の状態から左下の状態へのア
ークは出力関数gに該当する。つまり出力関数gは各機
器の状態間で、図35の出力条件に合致する方向を表わ
す。
【0079】こうして求められた状態遷移図は図1の出
力言語記憶部110へ記憶される。図1の実行プログラ
ム変換部111は上記状態遷移図に従って計算機が実行
可能な機械語によるプログラムを生成する。この状態遷
移図は上述したように有限状態機械SMに基づいた形式
言語であり、これの機械語プログラムへの変換方法につ
いては良く知られているため、その説明を省略する。
力言語記憶部110へ記憶される。図1の実行プログラ
ム変換部111は上記状態遷移図に従って計算機が実行
可能な機械語によるプログラムを生成する。この状態遷
移図は上述したように有限状態機械SMに基づいた形式
言語であり、これの機械語プログラムへの変換方法につ
いては良く知られているため、その説明を省略する。
【0080】図1の実行プログラム記憶部112は実行
プログラム変換部111からの機械語プログラムを記憶
する。このように構成された実施例においては、ユーザ
が自然言語文により記述した仕様書を解析し、実行可能
な表現を生成することにより、自然言語による仕様書か
ら最終的にプログラムの作成が行なえるという利点があ
る。
プログラム変換部111からの機械語プログラムを記憶
する。このように構成された実施例においては、ユーザ
が自然言語文により記述した仕様書を解析し、実行可能
な表現を生成することにより、自然言語による仕様書か
ら最終的にプログラムの作成が行なえるという利点があ
る。
【0081】なお、本実施例では、入力文解析部103
と出力言語生成部109を持ち、両者の間のデータの受
け渡しのために解析結果記憶部106を設けているが、
必ずしもこの構成である必要はなく、入力文解析部10
3と出力言語生成部109が一体の構成になり、連続的
に処理を続けていくことも可能である。また本実施例で
は各種テーブル内に特殊記号として‘*’、‘?’、
‘×’を使用しているが、通常使用文中で用いられない
記号であれば他の記号を使用することも可能である。こ
のように本発明においては、その趣旨を逸脱しない範囲
で種々の変形を行なうことが可能である。
と出力言語生成部109を持ち、両者の間のデータの受
け渡しのために解析結果記憶部106を設けているが、
必ずしもこの構成である必要はなく、入力文解析部10
3と出力言語生成部109が一体の構成になり、連続的
に処理を続けていくことも可能である。また本実施例で
は各種テーブル内に特殊記号として‘*’、‘?’、
‘×’を使用しているが、通常使用文中で用いられない
記号であれば他の記号を使用することも可能である。こ
のように本発明においては、その趣旨を逸脱しない範囲
で種々の変形を行なうことが可能である。
【0082】
【発明の効果】本発明によれば、ユーザは自然言語文で
仕様書を記述するとき、単純な動作の肯定表現だけでな
く、否定的表現や時間的制約表現も加味して記述できる
ため、ユーザの意図を率直に反映したプログラムが作成
できる。従ってユーザにとってはプログラムの作成効率
が大幅に向上するという効果を有する。
仕様書を記述するとき、単純な動作の肯定表現だけでな
く、否定的表現や時間的制約表現も加味して記述できる
ため、ユーザの意図を率直に反映したプログラムが作成
できる。従ってユーザにとってはプログラムの作成効率
が大幅に向上するという効果を有する。
【図1】 本発明の一実施例の概要構成を示すブロック
図。
図。
【図2】 本発明の一実施例で用いる入力文解析部での
処理の流れを示すフローチャート。
処理の流れを示すフローチャート。
【図3】 本発明の一実施例で用いる入力言語記憶部の
内容の一例。
内容の一例。
【図4】 本発明の一実施例で用いる入力言語仕様記憶
部の内容の一例。
部の内容の一例。
【図5】 本発明の一実施例で用いる言語辞書中の形態
素解析用テーブルの一例。
素解析用テーブルの一例。
【図6】 本発明の一実施例で用いる言語辞書中の構文
解析用テーブルの一例。
解析用テーブルの一例。
【図7】 本発明の一実施例で用いる言語辞書中の意味
解析用テーブルの一例。
解析用テーブルの一例。
【図8】 本発明の一実施例で用いる言語辞書中の否定
表現解析用テーブルの一例。
表現解析用テーブルの一例。
【図9】 本発明の一実施例で用いる対象知識記憶部の
内容の一例。
内容の一例。
【図10】 本発明の一実施例で用いる入力文解析部に
おける形態素解析結果の一例。
おける形態素解析結果の一例。
【図11】 本発明の一実施例で用いる入力文解析部に
おける構文解析結果の一例。
おける構文解析結果の一例。
【図12】 本発明の一実施例で用いる入力文解析部に
おける意味解析結果の一例。
おける意味解析結果の一例。
【図13】 本発明の一実施例で用いる入力文解析部に
おける意味解析検査処理結果の一例。
おける意味解析検査処理結果の一例。
【図14】 本発明の一実施例で用いる入力文解析部に
おける意味解析検査処理結果の一例。
おける意味解析検査処理結果の一例。
【図15】 本発明の一実施例で用いる入力文解析部に
おける形態素解析結果の一例。
おける形態素解析結果の一例。
【図16】 本発明の一実施例で用いる入力文解析部に
おける構文解析結果の一例。
おける構文解析結果の一例。
【図17】 本発明の一実施例で用いる入力文解析部に
おける意味解析結果の一例。
おける意味解析結果の一例。
【図18】 本発明の一実施例で用いる入力文解析部に
おける否定表現解析処理結果の一例。
おける否定表現解析処理結果の一例。
【図19】 本発明の一実施例で用いる入力文解析部に
おける意味解析検査処理結果の一例。
おける意味解析検査処理結果の一例。
【図20】 本発明の一実施例で用いる入力文解析部に
おける形態素解析結果の一例。
おける形態素解析結果の一例。
【図21】 本発明の一実施例で用いる入力文解析部に
おける構文解析結果の一例。
おける構文解析結果の一例。
【図22】 本発明の一実施例で用いる入力文解析部に
おける意味解析結果の一例。
おける意味解析結果の一例。
【図23】 本発明の一実施例で用いる入力文解析部に
おけるエラーメッセージ発生用情報の一例。
おけるエラーメッセージ発生用情報の一例。
【図24】 本発明の一実施例で用いる入力文解析部に
おけるエラーメッセージ発生用テーブルの一例。
おけるエラーメッセージ発生用テーブルの一例。
【図25】 本発明の一実施例で用いる解析結果検証部
での処理の流れを示すフローチャート。
での処理の流れを示すフローチャート。
【図26】 本発明の一実施例で用いる解析結果検証部
で用いる解析結果検証用テーブルの初期状態の一例。
で用いる解析結果検証用テーブルの初期状態の一例。
【図27】 本発明の一実施例で用いる解析結果検証部
で用いる解析結果検証用テーブルの途中経過の一例。
で用いる解析結果検証用テーブルの途中経過の一例。
【図28】 本発明の一実施例で用いる解析結果検証部
で用いる解析結果検証用テーブルの途中経過の一例。
で用いる解析結果検証用テーブルの途中経過の一例。
【図29】 本発明の一実施例で用いる解析結果検証部
で用いる解析結果検証用テーブルの最終結果の一例。
で用いる解析結果検証用テーブルの最終結果の一例。
【図30】 本発明の一実施例で用いる出力言語生成部
での処理の流れを示すフローチャート。
での処理の流れを示すフローチャート。
【図31】 本発明の一実施例で用いる出力言語生成部
中の入力・出力構造生成テーブルの一例。
中の入力・出力構造生成テーブルの一例。
【図32】 本発明の一実施例で用いる出力言語生成部
における入力・出力構造の一例。
における入力・出力構造の一例。
【図33】 本発明の一実施例で用いる出力言語生成部
中で参照されるテーブルの一例。
中で参照されるテーブルの一例。
【図34】 本発明の一実施例で用いる出力言語生成部
の有限状態機械生成手順中における処理の途中経過の一
例。
の有限状態機械生成手順中における処理の途中経過の一
例。
【図35】 本発明の一実施例で用いる出力言語生成部
の有限状態機械生成手順中における処理の途中経過の一
例。
の有限状態機械生成手順中における処理の途中経過の一
例。
【図36】 本発明の一実施例で用いる出力言語生成部
の状態遷移図生成手順中で生成される状態遷移図の途中
経過の一例。
の状態遷移図生成手順中で生成される状態遷移図の途中
経過の一例。
【図37】 本発明の一実施例で用いる出力言語生成部
の状態遷移図生成手順中で生成される状態遷移図の一
例。
の状態遷移図生成手順中で生成される状態遷移図の一
例。
101…入力言語記憶部 102…入力言語仕様記憶部 103…入力文解析部 104…言語辞書 105…対象知識記憶部 106…解析結果記憶部 107…解析結果検証部 108…出力言語知識記憶部 109…出力言語生成部 110…出力言語記憶部 111…実行プログラム変換部 112…実行プログラム記憶部
Claims (5)
- 【請求項1】 自然言語文を入力するための入力部と、
自然言語文を解析するための形式的仕様情報及び否定表
現処理規則を記憶した言語辞書と、自然言語文を意味解
析するための意味的仕様情報を記憶した対象知識記憶部
と、前記入力部からの自然言語文に対し前記言語辞書及
び対象知識記憶部の情報を参照して解析を行ない否定表
現に対しては前記否定表現処理規則に従って制約表現に
変換した解析結果を得る入力文解析部と、この入力文解
析部より得られた解析結果が正常か否か検証を行なう解
析結果検証部と、自然言語文の解析結果を計算機がプロ
グラム生成可能な形式言語に変換するためのパタンを記
憶した出力言語知識記憶部と、前記解析結果検証部より
正常とされた解析結果に対し前記出力言語知識記憶部の
内容を参照して前記形式言語に変換する出力言語生成部
とを具備したことを特徴とするプログラム生成装置。 - 【請求項2】 前記入力文解析部は、自然言語文に対し
形態素解析,構文解析及び意味解析を行ない、ノード及
びアークで表現された意味解析結果中で否定表現のアー
クが含まれる場合にこれを制約表現のアークに変換する
ものである請求項1記載のプログラム生成装置。 - 【請求項3】 自然言語文を入力するための入力部と、
自然言語文を解析するための形式的仕様情報を記憶した
言語辞書と、自然言語文を意味解析するための意味的仕
様情報を記憶した対象知識記憶部と、前記入力部からの
自然言語文に対し前記言語辞書及び対象知識記憶部の情
報を参照して解析を行なう入力文解析部と、この入力文
解析部より得られた解析結果が正常か否か検証を行なう
解析結果検証部と、自然言語文の解析結果を計算機がプ
ログラム生成可能な形式言語に変換するためのパタン及
び該形式言語中の時間表現を機器表現へ置換する規則を
記憶した出力言語知識記憶部と、前記解析結果検証部よ
り正常とされた解析結果に対し前記出力言語知識記憶部
の内容を参照して時間表現に対しては機器表現へ置換し
た形式言語に変換する出力言語生成部とを具備したこと
を特徴とするプログラム生成装置。 - 【請求項4】 前記出力言語生成部は、前記解析結果よ
り入力・出力関係構造を作成し、この入力・出力関係構
造中で時間に関する制約表現のアークが含まれる場合に
これを前記規則に従って機器表現のアークに置換するも
のである請求項3記載のプログラム生成装置。 - 【請求項5】 前記形式言語は、有限状態遷移モデルと
して機器の状態及びそれらの関係を示す遷移関数から成
る状態遷移図として表現されるものである請求項1及び
3記載のプログラム生成装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5154932A JPH0728630A (ja) | 1993-06-25 | 1993-06-25 | プログラム生成装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5154932A JPH0728630A (ja) | 1993-06-25 | 1993-06-25 | プログラム生成装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0728630A true JPH0728630A (ja) | 1995-01-31 |
Family
ID=15595098
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5154932A Pending JPH0728630A (ja) | 1993-06-25 | 1993-06-25 | プログラム生成装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0728630A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015040735A1 (ja) * | 2013-09-20 | 2015-03-26 | 株式会社日立製作所 | ソフトウェア仕様の形式検証支援装置及びその方法 |
| US8996357B2 (en) | 2011-07-06 | 2015-03-31 | Fujitsu Limited | Method for generating diagrams, and information processing apparatus for same |
| JP2016045537A (ja) * | 2014-08-20 | 2016-04-04 | 株式会社日立製作所 | ソフトウェア仕様抽出装置、方法、及びプログラム |
| WO2019156131A1 (ja) * | 2018-02-07 | 2019-08-15 | 日本電気株式会社 | 情報処理装置、情報処理方法及びコンピュータ読み取り可能な記録媒体 |
-
1993
- 1993-06-25 JP JP5154932A patent/JPH0728630A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8996357B2 (en) | 2011-07-06 | 2015-03-31 | Fujitsu Limited | Method for generating diagrams, and information processing apparatus for same |
| WO2015040735A1 (ja) * | 2013-09-20 | 2015-03-26 | 株式会社日立製作所 | ソフトウェア仕様の形式検証支援装置及びその方法 |
| JP2016045537A (ja) * | 2014-08-20 | 2016-04-04 | 株式会社日立製作所 | ソフトウェア仕様抽出装置、方法、及びプログラム |
| WO2019156131A1 (ja) * | 2018-02-07 | 2019-08-15 | 日本電気株式会社 | 情報処理装置、情報処理方法及びコンピュータ読み取り可能な記録媒体 |
| US11625531B2 (en) | 2018-02-07 | 2023-04-11 | Nec Corporation | Information processing apparatus, information processing method, and computer-readable recording medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS6375835A (ja) | 目的コ−ド、プログラム・リスト及び設計文書を生成する装置 | |
| JP5005510B2 (ja) | ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム | |
| JP2007172657A (ja) | 一般に混同するワードを自然言語パーザにおいて識別及び分析する方法及びシステム | |
| JP6663873B2 (ja) | プログラム自動生成システム及びプログラム自動生成方法 | |
| JP3871832B2 (ja) | データ処理プログラム自動生成システム及びその方法並びにコンピュータ可読記録媒体 | |
| JPWO2001039035A1 (ja) | 言語変換システム | |
| JP2000057139A (ja) | 自然言語解析装置、システム及び記録媒体 | |
| CN119719553B (zh) | 网页动作执行方法、装置、电子设备及存储介质 | |
| JPH0728630A (ja) | プログラム生成装置 | |
| JPH07210556A (ja) | 自然言語処理装置及び自然言語処理方法 | |
| US7379862B1 (en) | Method and apparatus for analyzing and debugging natural language parses | |
| JPH0546370A (ja) | プログラム生成装置 | |
| JP4417967B2 (ja) | 用例データベース及び用例検索システム | |
| JP6062735B2 (ja) | ソフトウェア開発支援装置、ソフトウェア開発支援方法、ソフトウェア開発支援プログラム | |
| JP4103313B2 (ja) | 自然言語処理装置及び方法 | |
| JP2704945B2 (ja) | 重複表現処理装置 | |
| JPH0424825A (ja) | 文法編集処理装置 | |
| JPS63136265A (ja) | 機械翻訳装置 | |
| JP6573839B2 (ja) | 文生成装置、方法、及びプログラム | |
| JPS63140339A (ja) | バ−ジヨン識別予約語管理方式 | |
| JP2629955B2 (ja) | 専門家システム構築装置 | |
| JP2022169011A (ja) | 入力文検証装置及びプログラム | |
| JPH06124157A (ja) | 語句入力装置およびその方法 | |
| JPH0736899A (ja) | 自然言語処理装置 | |
| JP2004157688A (ja) | 翻訳装置、翻訳方法及び翻訳プログラム |