私は現在、X(Y)が私の小さなDBで受け入れられている事実でないことを確認しています。 X(Y)はfalseを返すので、それをアサートしようとします。のは、私が ifNotAdd(哺乳類、象を聞いて、この事実は、DBassert/1で変数を使用できますか?
mammal(dolphin).
であることを言わせて、例えば
ifNotAdd(X,Y):-
not(call(X,Y)),
!,
assert(X(Y)).
(私は、Xは、ルールではなく事実であるとき、これは問題を提起実現します) )。
私はそれを見たいですか?哺乳動物(象)。偽であり、哺乳動物(象)を主張する。
明らかに、「assert(X(Y))」は、行は間違っていますが、どうすればよいでしょうか?私はプロローグのドキュメンテーションと答えをフォーラムでトラウリングしていますが、これまでのところ運はありません。私は自分自身でこれを行う何かを書くことも試みています。
EDIT ユーザーが操作できる動的データベースを作成するには、DBを編集する必要があります。私は引数マシンを構築しています。ユーザーが "確かな事実を知っている"ことをシステムに伝え、システムがそのドメイン外の知識を処理できるようにする必要があります。 http://en.wikipedia.org/wiki/Reason_maintenance
乾杯の静脈で
、
ああ、私は通常、廃止予定であっても、初めてハッキングしたときの読みやすさのためにnot()を使用します。ポストのためにそれを変更したはずです。とにかくそれはまさに私が探していたものです。私は授業の前にプロローグを使用していませんでした。私はそれを少し前に学び、再学習しています。完全に '= ../2'を忘れてしまったので解決します。 上記のプログラムを明確にします。 –
あなたの編集について:dbを操作する正当な理由のようです:] – m09