我现在检查X(Y)在我的小数据库中不是可接受的事实.由于X(Y)返回false,它将尝试断言它.(我知道当X是规则而不是事实时,这会出现问题)
ifNotAdd(X,Y):-
not(call(X,Y)),
!,
assert(X(Y)).
Run Code Online (Sandbox Code Playgroud)
例如,假设这个事实在DB中
mammal(dolphin).
Run Code Online (Sandbox Code Playgroud)
我问ifNotAdd(哺乳动物,大象).
我希望它能看到吗?哺乳动物(象).是假的,然后断言哺乳动物(大象).
显然是"断言(X(Y))." 线是错的,但我该用什么替换呢?我正在搜索prolog文档和论坛的答案,但到目前为止没有运气.我也试着写一些能够自己做的事情.
编辑 我需要编辑数据库,以便拥有一个用户可以与之交互的动态数据库.我正在构建一个参数机器,我需要允许用户告诉系统他们"确切知道这个事实",以便系统可以处理其域外的知识.
在http://en.wikipedia.org/wiki/Reason_maintenance中
干杯,
说我有一个标准的JSON日志,如docs中的示例所示(如下)
{
"logger":"com.foo.Bar",
"timestamp":"1376681196470",
"level":"INFO",
"thread":"main",
"message":"Message flushed with immediate flush=true"
}
Run Code Online (Sandbox Code Playgroud)
现在,我想向此日志添加自定义信息,如下所示:
{
"logger":"com.foo.Bar",
"timestamp":"1376681196470",
"level":"INFO",
"thread":"main",
"message":"Message flushed with immediate flush=true",
"extrainformation":"Some very important stuff I need to include",
"extrainformation2":"Some other very important stuff I need to include"
}
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?文档似乎没有提及有关向日志对象添加属性的任何内容。我是否需要进行自定义布局或以编程方式添加字段或其他内容?