IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ナレルシステム有限会社の特許一覧

特許7313646知識表現を処理する方法、コンピュータプログラム及び装置
<>
  • 特許-知識表現を処理する方法、コンピュータプログラム及び装置 図1
  • 特許-知識表現を処理する方法、コンピュータプログラム及び装置 図2
  • 特許-知識表現を処理する方法、コンピュータプログラム及び装置 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-14
(45)【発行日】2023-07-25
(54)【発明の名称】知識表現を処理する方法、コンピュータプログラム及び装置
(51)【国際特許分類】
   G06N 5/04 20230101AFI20230718BHJP
【FI】
G06N5/04
【請求項の数】 9
(21)【出願番号】P 2017092047
(22)【出願日】2017-05-03
(65)【公開番号】P2018190180
(43)【公開日】2018-11-29
【審査請求日】2021-01-25
【新規性喪失の例外の表示】特許法第30条第2項適用 未踏アドバンスト事業 プロジェクト提案書
【新規性喪失の例外の表示】特許法第30条第2項適用 第71回粟ヶ崎ビジネスサロン 補助資料
【新規性喪失の例外の表示】特許法第30条第2項適用 第71回粟ヶ崎ビジネスサロン用スライド
(73)【特許権者】
【識別番号】301062798
【氏名又は名称】ナレルシステム株式会社
(72)【発明者】
【氏名】中村圭介
【審査官】金田 孝之
(56)【参考文献】
【文献】特表2016-505953(JP,A)
【文献】特開2014-211725(JP,A)
【文献】特開昭63-012023(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 5/00- 7/06
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
複数ある条件の全部が成立した場合に
所定の命題が成立したとみなす形式のルールを処理する
コンピュータプログラムであって
ルールの複数ある条件の一部に合致する情報が新たに得られたときに、
該ルールの他の条件の成立を自動探索して
該ルールの該所定の命題の成立を自動確認する
コンピュータプログラムであって、

前記条件および前記所定の命題が、
自然言語に変数を埋め込むことを許容した形式で表現され、
前記合致する情報が、
自然言語の形式又は自然言語に変数を埋め込んだ形式で与えられること、

前記合致する情報と前記条件とを合致させる単一化によって得られる、
該ルール側の変数束縛を
該ルールに波及して、
より制限された形式での該所定の命題の成立を探索すること、

命題の成立を確認した場合に、
その命題を新たに得られた情報として、
コンピュータが記憶している一または複数の各ルールの
各条件の全部と合致するかを探索することにより、
該各ルールの各命題が成立するかを確認することを再帰的に繰り返すこと、
を特徴とするコンピュータプログラム。
【請求項2】
同一または類似の条件の合致に対応して成立を確認できる複数の命題の列記をルールにおいて許容した
請求項1に記載のコンピュータプログラム。
【請求項3】
類似の条件のうちの共通部分を根又は根に近い枝として、
類似の条件のうちの差異部分を根からより遠い枝として、
根から対応する枝までの条件の確認によって成立したとみなせる命題を葉として
枝分かれのあるツリー状にルールを表現した
請求項に記載のコンピュータプログラム。
【請求項4】
成立した条件の数が2以上の所定数(ルールにおいて「:2」等と指定するようにしてもよい)の場合に、
前記所定の命題が成立することとした
請求項1に記載のコンピュータプログラム。
【請求項5】
成立した条件の数がちょうど1個の場合に、
前記所定の命題の成立を自動確認することを特徴とする
請求項1に記載のコンピュータプログラム。
【請求項6】
成立した条件および成立した各条件に関連する各重みから計算した値が
所定の閾値以上もしくは閾値以下または閾値を超えるもしくは閾値未満の場合に、
前記所定の命題の成立を
自動確認することを特徴とする
請求項1に記載のコンピュータプログラム。
【請求項7】
前記所定の命題の成立を自動確認する際に、
関連する一以上の命題に対して、
関連づけた各命題の重み
または各条件に関連する重み
またはその両方から得た値を
各命題に関連づけて記憶することを特徴とする
請求項6に記載のコンピュータプログラム。
【請求項8】
ルールの複数ある条件の一部に合致する情報が新たに得られたときに、
同じルール内の真偽の証明できない条件について
利用者に真偽を確認する、又は、利用者に真もしくは偽とする変数束縛集合を確認することを特徴とする
請求項1に記載のコンピュータプログラム。
【請求項9】
ルールの複数ある条件の一部に合致する情報が新たに得られたときに、
同じルール内の対応する条件または命題(いずれも真偽を自動証明できないものに限る)について
利用者に真偽を確認する、又は、利用者に真もしくは偽とする変数束縛集合を確認する
ことを特徴とする
請求項1に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、知識表現を処理する方法、コンピュータプログラム及び装置に関する。
【背景技術】
【0002】
変数を含んだ文字列をリテラルとして許容するAI用論理型プログラミング言語(知識表現言語)とその処理系が当該発明者によって研究開発されている(特許文献1)。
これは、従来のPROLOG等に比して、自然言語で記述しやすいなどの長所を有するが、
他のPROLOG等のAI用論理型プログラミング言語と同様に、
推論や判断の根拠となる知識表現の準備の大半が、
人間の論理型プログラミングコスト(知識表現コスト)に帰属するため、
AI用論理型プログラミング言語を、さらに分かりやすくかつ簡潔にして、その記述量を減らすことが求められている。
しかし、上記特許文献1のAI用論理型プログラミング言語を含め、
後ろ向き推論「寄り」に設計・チューニングされたPROLOG系のAI用論理型プログラミング言語は、
前向き推論的な処理(診断、プロダクション・システム、機械制御、よりうがった仮説にもとづく利用者への質問や環境センシング、等)が必要となる場合に、
ホーン節の単一ヘッドのマッチからの手続的解釈を利用した前向き推論しか考えにくく、
多様な情報を契機としても情報としても十分に生かした効率的な前向き推論をする必要がある場合には、
著しく人間の労力(プログラミングコスト)と記述量が必要になっていた。
【先行技術文献】
【特許文献】
【0003】
【文献】特願2013-087008
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、かかる問題に鑑み、
1)後ろ向き推論のための知識を前向き推論にも(わかりやすくかつ簡潔で少ない記述量で)活用できるようにして、AI用論理型プログラミングのコストを減らしてこれを普及しやすくすること
2)一般人にも親しみやすく、結論、効果、条件、事実等をテキスト的にも音声的にも表現/マッチしやすい形式の知識表現で上記1)を可能にして、論理プログラム中に一般人が固定的事実(FACT)を事前準備するコスト、ルールのヘッドやボディを一般人が記述するコスト、前向き推論に与える一時的事実(一時文脈)を一般人が入力するコストを減らして、AI用論理型プログラミングとプログラム運用の総合コストを、さらに削減して、さらに普及しやすくすること
3)1)2)に付随した前向き推論及び後向き推論の機能面・性能面・記述効率面の高度化(気づきやすさ、わかりやすさ、使いやすさ、高速性、健全性、完全性、記述コスト削減、意味論の明確化、他システム等との連携性の向上)によりさらに普及しやすくすること
を目的とする。
【課題を解決するための手段】
【0005】
かかる課題を解決するため、

本発明の請求項1は、
複数ある条件の一部又は全部が成立した場合に所定の命題が成立したとみなす形式のルールを処理する
コンピュータプログラムであって
ルールの複数ある条件の一部に合致する情報が新たに得られたときに、
該ルールの他の条件の成立を自動探索して該ルールの該所定の命題の成立を自動確認するコンピュータプログラムを提供する。
これにより、後ろ向き推論用のルールを前向き推論に変換コスト無しまたはきわめて少ない変換コストで流用することができる。
このような形式の「ルール」の例としてはPROLOGやそれを拡張・変形した論理記述言語のホーン節等を挙げることができる。
「該所定の命題が成立」した場合に、その命題の意味するレンダリング(動画、静止画、音声、テキスト表示、など)や、その成立を起点とした(=「合致する情報が新たに得られた」こととした)再帰的なさらなる探索(これを「再帰的な前向き推論」と呼んでもよい)、分析、データベースの操作、等を実行するようにプログラムを構成してもよい。
これにより、より表現力(意味・イメージ等の)や論理展開力のある自動対話等を提供することができる。
なお、後ろ向き推論用のルールのうち前向き推論にも用いるルールを、プログラマが区切り記号(PROLOGの場合「:-」)の種類を変更(例えば、「:=」を使う)して前向き推論にも用いるルールを他と区別できるように構成することが、推論の効率化にとって有利である。

また、本発明の請求項2は、
前記条件および前記所定の命題が、
自然言語に変数を埋め込むことを許容した形式で表現され、
前記合致する情報が、
自然言語の形式又は自然言語に変数を埋め込んだ形式で与えられることを特徴とする
コンピュータプログラムを提供する。
これにより、自然言語の音声合成や音声認識との親和性が高くなるとともに、関数や論理式(カッコやコンマや記号が多い)に慣れていない小学校低学年でも違和感なく推論用のルール(独自の/一般的な思考方法)を表現することができる。
自然言語に変数を埋め込むことを許容した形式の例としては、前述の特許文献の実施例等がある。
合致する情報が自然言語に変数を埋め込んだ形式で与えられることを許すことにより、DONTCARE(前向き推論の駆動に本質的ではなく、どのような値でもよいもの。たとえば、正午から0.01秒ずれているかどうかや好景気の原因が円安か人口増加かなど)にあたる格についての情報が与えられない場合でも、それを変数のまま表現した文字列との単一化(ユニフィケーション)等により、結果として前向き推論を駆動することが可能となる。

また、本発明の請求項3は、
前記合致する情報と前記条件とを合致させる単一化によって得られる、該ルール側の変数束縛を
該ルールに波及して、より制限された形式での該所定の命題の成立を探索すること特徴とする
コンピュータプログラムを提供する。
例えば、新しい合致する情報「勇太は理解力がある」を、条件「$Xは理解力がある」と単一化させる$Xの束縛は「$X=勇太」であり、「$Xはリーダーに適している:-$Xは理解力がある」というルールの場合、この束縛を波及することにより、「勇太はリーダーに適している」という、「$Xはリーダーに適している」よりも具体的な命題の成立を自動確認することができる。
すなわち、該新しい情報のより具体的な内容(例えば、主語が誰か)を反映した、より具体的な(情報量が多く曖昧性が少ない)命題の成立(さらに、より具体的なレンダリングやコマンド実行等)を自動確認することが可能になる。
また、探索空間を制限することにつながり、計算量の削減、応答の高速化にもつながる。

また、本発明の請求項4は、
前記合致する情報と前記条件とを合致させる単一化によって得られる、該合致する情報側の変数束縛を、
該合致する情報を与えた情報源に対して返すことを特徴とする
コンピュータプログラムを提供する。
ここで、「情報源」は、例えば、利用者や他のコンピュータであってよい。
例えば、「$Xは$Yが必要:-$Xは$Yを主食にしている;$Yは穀物;」というルールの「$Yは穀物」という条件に対し「米は$A」という「合致する情報」を単一化させて、ルール側変数束縛「$Y=米」、合致する情報側変数束縛「$A=穀物」、命題「日本人は米が必要」が得られた場合、にその命題の根拠として「米は穀物」という命題が関係していることを推測することができる。
これにより、情報源が、新たな情報による新たな命題の成立根拠等について、推論過程の全体を参照することなく、なんらかの手がかりを得ることが可能になる。

また、本発明の請求項5は、
前記単一化の対象となる、
一の合致する情報と一の条件からなる組について、
複数の変数束縛が可能である場合に、
そのいずれもについて独立して処理することを特徴とする
コンピュータプログラムを提供する。
ここで、「複数の変数束縛の可能性」とは、例えば、「$Aと$Bは兄弟」という条件と「太郎と次郎と三郎は兄弟」という情報とを単一化する束縛がひととおりではなく、複数とおり(この場合、{($A=太郎,$B=次郎と三郎),($A=太郎と次郎、$B=三郎)})存在することをいう。
これにより、複数ある可能性をもらさずに条件の充足可能性を探索し(後ろ向き探索(推論)し)、その充足集合をベースとした網羅的な前向き探索(新たに確認(証明)できる命題の列挙)が可能となる。

また、本発明の請求項6は、
命題の成立を確認した場合に、
その命題を新たに得られた情報として、
コンピュータが記憶している一または複数の各ルールの
各条件の一部又は全部と合致するかを探索することにより、
該各ルールの各命題が成立するかを確認することを再帰的に繰り返すことを特徴とする、
コンピュータプログラムを提供する。
ここで「記憶している一または複数の各ルール」は、該命題の成立の確認に用いられたルールと同一のルールでも別のルールでもよい。
また、ルール上の当初の命題が変数を含んでいた場合には、その命題の成立前に合致を探索した条件との単一化過程で変数束縛が行われた結果として、その命題に含まれる変数も束縛された状態(典型的には、自然言語を表現する固定文字列)となっていることが好ましい。ただし、必ずしも束縛されておらず変数が残っている場合でも、恒真のトートロジー(例えば、「$Xは$Xと等しい」)などを言明する命題や、あいまいさ(変数が残っていること)が意味の本質に影響を与えない命題を、固定文字列と同様に処理すること(新たに得られた情報として再帰的な前向き推論のトリガーとする等)を制限するものではない。
これにより、新しい情報の意味や影響をより広く深く確認することができるようになる。
また、新しい情報の与え方があいまいであったり、少しずれていても、影響があるかもしれない内容を確認できることにつながる。

また、本発明の請求項7は、
同一または類似の条件の合致に対応して成立を確認できる複数の命題の列記をルールにおいて許容した
コンピュータプログラムを提供する。
「ルールにおいて許容」とは、例えば「所定の命題」を一つに限った伝統的なホーン節ではなく、複数の命題や効果をヘッド部に列記できる形式のルールを許容すること等を示す。
例えば、「$Xは東洋に住む&$Xは北半球に住む:-$Xは日本列島に住む;」は、「&」区切りで、「$Xは日本列島に住む」から演繹できる二つの命題「$Xは東洋に住む」「$Xは北半球に住む」を列記している。
なお、条件と命題(効果)の右辺と左辺を逆に、区切り文字も特別に表記することに取り決めて、「$Xは日本列島に住む:<$Xは東洋に住む;$Xは北半球に住む;」等とすることも可能である。
これにより、同一または類似の条件を充足するかについての計算の重複を効果的に回避することができ、前向き推論の効率の要素となる、条件を充足するかについての計算効率を高めることができる。
なお、「類似の条件」とは、例えば、ホーン節の右辺(ボディ)に相当する部分またはその一部が、表記ゆれを吸収する目的のOR条件の列挙の場合(「$Xが$Yを溶かす|$Xが$Yを溶解する」)や、同等の条件となるOR条件の列挙の場合(「$Xはラーメンが好き|$Xはうどんが好き|$Xはそばが好き|$Xはスパゲティが好き」)や、特定の正規表現の範疇に該当する場合など、さまざまな場合を想定しうる。

また、本発明の請求項8は、
類似の条件のうちの共通部分を根又は根に近い枝として、
類似の条件のうちの差異部分を根からより遠い枝として、
根から対応する枝までの条件の確認によって成立したとみなせる命題を葉として
枝分かれのあるツリー状にルールを表現した
請求項7に記載のコンピュータプログラムを提供する。
このような表現の例としては、対応する括弧のネストによって等価なツリーを表現した以下のようなものが考えられる。
A:<{B{C:E1}{D:E2}}{E{F{G:E3}{H:E4}}}{I:E5}{J{K:E6}{L:E7}{E8}};
ここでは、
通常のホーン説と異なり、
Aが根となる条件であり、
「:<」が構文の区切りと当該種別を示す区切りであり、
命題(効果)E1の成立に達するまでの経路(必要条件集合)はA,B,Cとなり、
命題(効果)E2の成立に達するまでの経路(必要条件集合)はA,B,Dとなり、
命題(効果)E3の成立に達するまでの経路(必要条件集合)はA,E,F,Gとなり、
命題(効果)E4の成立に達するまでの経路(必要条件集合)はA,E,F,Hとなり、
命題(効果)E5の成立に達するまでの経路(必要条件集合)はA,Iとなり、
命題(効果)E6の成立に達するまでの経路(必要条件集合)はA,J,Kとなり、
命題(効果)E7の成立に達するまでの経路(必要条件集合)はA,J,Lとなる。
命題(効果)E8の成立に達するまでの経路(必要条件集合)はAとなる。
これにより条件集合の共通部分の充足性の確認に用いた計算コストを無駄にせず、差異部分の充足性の計算も可能となり、共通部分を有する条件集合の充足性確認を効率化・高速化する。
なお、「合致する情報」と単一化させる「条件の一部」は、根であるAのみとすることもでき、さらに途中の枝条件のいずれもとすることができる。また、このAをパターン的な制限のない「$X」(アスタリスク)などとすることで、あらゆるものを各枝とマッチさせてみることができる。
なお、多長一致に対応する点や、バックトラック又は同等の網羅的な処理を行える点や、手続き的解釈も可能な点は、通常のホーン節や前記特許文献における文法、解釈と同じである。

また、本発明の請求項9は、
ルールにおいて許容した同一または類似の条件の合致に対応して成立を確認できる複数の命題の列記が
好ましい手続きの順番に従っていることを特徴とする
請求項7に記載のコンピュータプログラムを提供する。
これにより、手続き的解釈により、成立を確認できる複数の命題間の手続き的な生起順序を再現した表示などが可能となる。
また、このようなルールは、合致させるルールを一つに絞るようにプログラミングすることにより、手続きの各ステップを再帰的にツリー状に展開することができ、このような場合にはさまざまな粒度の複雑なネストからなるステップをツリー状に定義し、実行時に、複雑な順序の手続き仕様にも対応した手続きを教え示したり場をコントロールしたりすることができる。
【0006】
また、本発明の請求項10は、
ルールにおいて許容した同一または類似の条件の合致に対応して成立を確認できる複数の命題の列記に
従った順番で
各命題について充足させるべきことを自動的に外部に要求しかつ充足を確認するまで待つことを特徴とする
請求項7又は9に記載のコンピュータプログラムを提供する。
これにより、逐次要求し要求した内容の充足を確認する監督作業等をコンピュータプログラムにある程度任せることが可能になる。
このようなルールは、合致させるルールを一つに絞ることにより、外部要求と充足確認の列を再帰的にツリー状に展開することができ、このような場合にはさまざまな粒度の複雑なネストからなるタスクをツリー状に定義し、実行時に、複雑な順序の要求充足仕様に対応した、外部への要求と充足の確認を待つことができる。
「外部」とは、人や動物やロボットや制御デバイスや環境要素(水位等)であってよく、充足の確認はそれらからの合図(信号、所作、生理、物理現象、自然現象、等)でなされてよい。

また、本発明の請求項11は、
成立した条件の数が2以上の所定数(ルールにおいて「:2」等と指定するようにしてもよい)の場合に、
前記所定の命題が成立することとした
コンピュータプログラムを提供する。
ルールの区切り記号を「:2」とした場合は2以上、「:3」とした場合は3以上、・・・などとしてもよい。
これにより、風邪の診断において、「鼻水が出る」「のどが痛い」「頭がいたい」「せき・くしゃみがでる」の2つ以上の条件が成立していたら「たぶん風邪」と診断する、等という診断型前向き推論用の論理プログラムを簡潔に記述することができる。

また、本発明の請求項12は、
成立した条件の数がちょうど1個の場合に、
前記所定の命題の成立を自動確認することを特徴とする
コンピュータプログラムを提供する。
これは、排他的論理和の定義に該当し、ルールの区切り記号を(:1)などとしてもよい。
これにより、前向き推論の前提となる排他的論理和が必要な条件を簡潔に表現することができる、前向き推論を低コストでコーディングすることができる。

また、本発明の請求項13は、
成立した条件および成立した各条件に関連する各重みから計算した値が所定の閾値以上もしくは閾値以下または閾値を超えるもしくは閾値未満の場合に、前記所定の命題の成立を自動確認することを特徴とする
コンピュータプログラムを提供する。
これにより、二値(証明可能/証明不能または真/偽)や三値(証明可能/不明/偽を証明可能)だけでない途中の確信/確率の度合いを加味した、より定量的な精緻な推論も可能となる。
ここで、閾値、閾値との上下関係、各条件に関連する重み(例えば、条件自体の確信度や確率、もしくは、ルールにおいてそれらに掛け合わせる重み係数)は、ルールや事実(または一時文脈)に所定の書式で付記することができる。
例えば、「風邪/80;インフルエンザ/10 :%50< 鼻水が出る/20;のどが痛い/30;頭がいたい/30;せき・くしゃみがでる/40;」の意味は、特定の患者の一時文脈である事実が、「鼻水が出る」程度:50、「のどが痛い」程度:30、「頭がいたい」程度:90、「せき・くしゃみがでる」程度:60の場合に、(50×20+30×30+30×90+40×60)/100=10+9+27+24=72が「%50<」の意味する「50より大きい」を満たすので、命題の成立を72の確信度で自動確認して、「風邪」程度:80×72/100→「風邪」程度:58(四捨五入)と「インフルエンザ」程度:10×72/100→「インフルエンザ」程度:7(四捨五入)という新たな事実(一時文脈)を得ることになる。なお、ここでは、確信度形式であるが、確率形式と同様に、別の事象やルールから得た同一事実(同一患者についての関連一時文脈集合等における)の確信度については、X+Y-XY/100を適用するほうが適切な場合がある。

また、本発明の請求項14は、
前記所定の命題の成立を自動確認する際に、関連する一以上の命題に対して、関連づけた各命題の重みまたは各条件に関連する重みまたはその両方から得た値を各命題に関連づけて記憶することを特徴とする
請求項13に記載のコンピュータプログラムを提供する。
これにより、ルールごとに異なる観点(条件集合)に対応した一以上の自動確認命題の確信度を簡便に定義することができる。
先に例として挙げた「風邪/80;インフルエンザ/10 :%50< 鼻水が出る/20;のどが痛い/30;頭がいたい/30;せき・くしゃみがでる/40;」の意味は、先述したとおりであり、確信度や確率のついた一時文脈(事実)を追加的に保持するとともに、それらをさらなる前向き推論の根拠とすることもできる。
なお、同一のルールが同一の根拠にもとづき無限ループを構成するように再帰的に発火して確信度が不当に上昇したり発散したりすることを防ぐために、どの事実にもとづきどのルールが発火したかの履歴を記憶しておき、同じ事実に基づいて同じルールが発火しないように制限することもできる。

また、本発明の請求項15は、
ルールの複数ある条件の一部に合致する情報が新たに得られたときに、
同じルール内の真偽の証明できない条件について
利用者に真偽を確認する、又は、利用者に真もしくは偽とする変数束縛集合を確認する
ことを特徴とする
コンピュータプログラムを提供する。
これにより、特に、診断システムなどで、患者等についての一時文脈の少ない状態
(すなわち条件の真偽を証明できにくい状態)から、
利用者に確認すべき質問をルール単位で徐々に増やしていくことを可能にし、
よけいな質問応答(利用者確認)によるコミュニケーションコストや推論コストを回避することができる。
例えば、このようなルールを「:2?」で区切ったPROLOGに似た次のような構文で表現した場合、
4つの条件のいずれかと合致する情報(一時文脈となる事実)の入力に応じてこのルールが起動され、
2つ以上の条件の成立を確認できるまで、
前から順番に「自動証明→できない場合は利用者確認(文脈追加も起こりうる)」を行うことになる。
「風邪 :2? 鼻水が出る;のどが痛い;頭がいたい;せき・くしゃみがでる;」

また、本発明の請求項16は、
ルールの複数ある条件の一部に合致する情報が新たに得られたときに、
同じルール内の対応する条件または命題(いずれも真偽を自動証明できないものに限る)について
利用者に真偽を確認する、又は、利用者に真もしくは偽とする変数束縛集合を確認する
ことを特徴とする
コンピュータプログラム。
これにより、特に、診断システムなどで、患者等についての一時文脈の少ない状態から、
利用者に確認すべき質問をルール単位で徐々に増やしていくことを可能にし、
よけいな質問応答(利用者確認)によるコミュニケーションコストや推論コストを回避することができる。
例えば、「A:<{B{C:E1}{D:E2}}{E{F{G:E3}{H:E4}}}{I:E5}{J{K:E6}{L:E7}{E8}};」の例において、自動証明できない場合に利用者確認をおこないたい条件の前に「?」をつけることにした場合、
「A:<{?B{?C:E1}{?D:E2}}{E{?F{G:E3}{H:E4}}}{?I:E5}{J{K:E6}{L:E7}{?E8}};」等となり、どこで利用者確認(質問応答)すべきかを効率的に明示することができる。
なお、「:?<」等、「?」の含まれるルール内区切りによって、自動証明できないすべての条件について利用者確認をするプログラム言語仕様として取り決めてこれを実施するようにすることもできる。

また、本発明の請求項17は、
請求項1から16のいずれか一項に記載のコンピュータプログラムを用いた装置を提供する。

また、本発明の請求項18は、
請求項1から16のいずれか一項又は図2に記載のコンピュータプログラムを用いた方法を提供する。
【図面の簡単な説明】
【0007】
図1】本発明の論理プログラム(固定的な事実及びルール)、利用者によりすでに追加されている一時文脈、利用者により新たに追加されるデータ(一時文脈)、及び、前向き推論の結論として出力(音声、テキスト表示等)されかつ再帰的な前向き推論の種になりうる命題(変数が束縛されている)の例としての関係について説明する図である。
図2図1等を実施するためのコンピュータプログラムの最も基本的な処理フローチャート(方法としてのステップ)を説明する図である。
図3】実施するコンピュータとしての一般的な構成を示す説明図である。
【発明を実施するための形態】
【0008】
図1は、本発明の論理プログラム(固定的な事実及びルール)、利用者によりすでに追加されている一時文脈、利用者により新たに追加されるデータ(一時文脈)、及び、前向き推論の結論として出力(音声、テキスト表示等)されかつ再帰的な前向き推論の種になりうる命題(変数が束縛されている)の例としての関係について説明する図である。利用者が入力した新しい情報「A子は喉痛」と下線の「$Xは喉痛」とが合致することにより図2の前向き推論ステップが起動される。

図2は、図1等を実施するためのコンピュータプログラムの最も基本的な前向き推論の処理フローチャート(方法としてのステップ)を説明する図である。実際には、ステップ3の2において、特許文献1(出願公開済)で詳述している多長一致などの特別なユニフィケーション(単一化)やバックトラックを含む後ろ向き推論も行うことがさまざまな面で有利であるが、本明細書の主旨とは異なるので(また、通常のPROLOGの探索でもある程度代用できるため)、ここでは詳述はしない(公開されているので参照されたい)。

図3は、実施するコンピュータとしての一般的な構成を示す説明図である。ここには本発明に固有の特徴はないため詳述はしない。
【実施例
【0009】
図1は、本発明の一実施例を示すものである。この知識表現は、特許文献1の発明を実施するためのものであり、条件の区切りは「;」となっている。また、ヘッドとボディの区切りは、3以上の条件の成立を必要とすることを示す「:3」となっている。ステップS1で、情報「A子は喉痛」が入力され、ステップS2で、合致する条件が全ルールの条件部から検索され、ステップS3の1で、合致する束縛がルールのすべての$Xに「$X=A子」として波及する。ステップS3の2では、この場合に、固定的な事実として「日本」が論理プログラム内に既に存在するので、「:3」の3のうちの残り2以上の条件の成立を探索(論理プログラム及び一時文脈の範囲)により確認した時点でこのルールが発火できるとコンピュータが判断し、この場合には「A子は風邪」という命題が一時文脈として格納・通知され(コンピュータが成立を自動確認)、かつ、ステップS4及びS5を介して新しい前向き推論ループ(S2~S5)の種になることとなる。
【符号の説明】
【0010】
4 本発明で用いられる一般的なコンピュータ(利用者専用のパーソナルコンピュータ、共有ファイルサーバー、Webサーバー)
4a~4k 一般的なコンピュータ4(利用者専用のパーソナルコンピュータ、等)の一般的な構成要素
11 論理プログラム(固定的事実とルール)
12 データ(すでに論理プログラムに隣接して配列型メモリに追加されている一時文脈)
13 新しい事実(データ)(利用者により追加される一時文脈)
14 右辺の3個以上の条件が成立したら左辺の命題の成立を自動確認(自動追加&通知)するという意味のルール
15 新しい結論(自動追加し利用者に通知され、再帰的な前向き推論の種として入力される一時文脈)
16 再帰的な前向き推論の種として入力される経路(キューを介したもの)

S1 新しいデータAの入力を受け付けて一時文脈として格納するステップ
S2 論理プログラム内の各ルールについてAと合致する条件を探すステップ
S3 合致する条件を含む各ルールにおいて(順次でもよいので)実施するステップ
S4 キューにデータが存在するかの判断をしてない場合にS1に戻るステップ
S5 キューに存在するデータA´を新しいデータ(事実)AとしてS2に戻るステップ
図1
図2
図3