2017-05-31 3 views
1

私はプロローグで質疑応答システムを作っています。私が言うと、「車の色は青です」という事実(車、色、青)がデータベースに追加され、プロローグが「OK」を返します。プロローグデータベースに特定の事実が存在するかどうかを確認するには

この特定の事実が存在することを確認するにはどうすればよいですか?私はあなたが述語が存在するかどうかを調べることができると知っていますが、事実(車、色、青)が存在することを確認する方法を知りたいと思います。

「車の色は青です」ということは、事実がデータベースに入っているので「OK」の代わりに「わかっています」と返すようにしています。

答えて

2

実際に存在するかどうかを確認する最も良い方法は、それを照会することです。

fact(car, color, blue). 
true. 

あなたは、ユーザーにいくつかの出力を生成するための答えを使用することができます。

check(Fact) :- 
    call(Fact), !, 
    write('Exists'); 
    write('Doesen\'t exists'), fail. 

はPrologのシステムは、閉じた世界の仮定を作ることを考えてみましょう。内側のDBに含まれていないものは自動的にfalseになります。したがって、偽であるものはすべて自動的には含まれません。

あなたは、既知/未知のものと真実/偽のものとの間にちょっと論理的な同型性があります。

関連する問題