小编Car*_*cox的帖子

我可以使用带有assert/1的变量吗?

我现在检查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中

干杯,

prolog prolog-assert

9
推荐指数
1
解决办法
1159
查看次数

如何将字段添加到log4j2的JSON日志

说我有一个标准的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)

有没有办法做到这一点?文档似乎没有提及有关向日志对象添加属性的任何内容。我是否需要进行自定义布局或以编程方式添加字段或其他内容?

相关的log4j2文档

java json log4j2

6
推荐指数
2
解决办法
3698
查看次数

标签 统计

java ×1

json ×1

log4j2 ×1

prolog ×1

prolog-assert ×1