我现在检查 X(Y) 在我的小数据库中不是一个公认的事实。由于 X(Y) 返回 false,它将尝试断言它。(我意识到当 X 是规则而不是事实时,这会带来问题)
ifNotAdd(X,Y):-
not(call(X,Y)),
!,
assert(X(Y)).
例如,假设这个事实在数据库中
mammal(dolphin).
我问 ifNotAdd(哺乳动物,大象)。
我想让它看到吗?哺乳动物(大象)。为假,然后断言哺乳动物(大象)。
显然是“断言(X(Y))”。线是错误的,但我用什么来代替它?我正在搜索序言文档和论坛来寻找答案,但到目前为止还没有运气。我也在尝试写一些可以自己完成的东西。
编辑 我需要编辑数据库以获得用户可以与之交互的动态数据库。我正在构建一个论证机器,我需要允许用户告诉系统他们“肯定知道事实”,以便系统可以处理其领域之外的知识。
在http://en.wikipedia.org/wiki/Reason_maintenance的脉络中
干杯,