如何在没有警告消息的情况下从logicblox中删除数据

时间:2015-07-20 19:30:27

标签: datalog logicblox

在新版本的logicblox(任何版本晚于4.2.1)中,如果有谓词“Person(p),hasPNr(p:n) - > int(n)”。 我插入一个数据“+ Person(p),+ hasPNr [p] = 1。” 然后,如果我想通过“-Person(1)”删除数据。 将出现一条警告消息“警告:表达式'1'具有类型'int',但需要类型为'Person'的值。编译器已插入谓词'hasPNr'的使用以允许代码编译。” 如何在没有此消息的情况下删除数据?

1 个答案:

答案 0 :(得分:2)

您可以删除:

-Person(n) <- Person:hasPNr@prev(n, 1).

您可能应该修改插入的方式。编译器将“1”转换为“Person”的功能称为“refmode conversion”。该功能实际上被删除,因为它经常导致混淆(因为它已经在你的情况下:) :)所以插入没有refmode转换:

+Person(n), +Person:hasPnr(n, 1).