如果我有一个事实和规则数据库,可以说
person(mary).
employee(bob).
not_a_robot(X) :- person(X).
是否有办法为查询的(线程本地)上下文假设规则? 像这样:
?- assume((person(X) :- employee(X)), not_a_robot(Y))
X = mary ;
X = bob.
这样,只有进行假设的调用才能看到数据库的更新视图。
不确定数据库中的asserting
然后retracting
是否会产生这种影响? (使用assert
的AFAIK还将意味着还需要将所有谓词标记为动态)。