pyDatalog:是否可以定义多个独立的数据记录会话?

时间:2013-08-20 11:35:03

标签: logic-programming datalog

我正在研究一些代码来评估数据库中的数据,以查看传入事件流中的实例是否符合一组协议。我们的想法是使用pyDatalog来做到这一点。理想情况下,我们希望能够针对几个独立的规则集评估数据,这些规则集定义了事件应遵循的单独协议。

换句话说,是否可以创建几个逻辑上独立的pyDatalog会话,每个会话都有自己的规则集,但从同一个底层数据库中获取数据?

1 个答案:

答案 0 :(得分:0)

计划在0.14版本中支持多个规则集,以及线程安全性。

使用当前版本和先前版本,您可以将不同的规则集存储在同一个pyDatalog会话中,前提是没有谓词名称冲突。例如,您可以为每个谓词添加它所属的规则集的标识符作为前缀。然后,通过调用相应的谓词,您将激活相关的规则集,而不会出现明显的性能损失。

对于前缀谓词(引用python类,例如Employee.id [X] == Y),您需要使用适当的前缀创建python子类。你可以看到一些性能下降,但这应该很小。