0

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

4

1 回答 1

2

您可以通过以下方式删除:

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

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

+Person(n), +Person:hasPnr(n, 1).
于 2015-07-20T20:12:40.340 回答