问题标签 [logicblox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
124 浏览

logicblox - 如何查询 IDB 谓词的更改?

我想对一些 EDB 进行更改,然后找出 IDB 是如何改变的。

文档说查询阶段在最后阶段之后,并且“可以访问最终阶段的效果” 。但如果我跑

(其中 level 是 IDB)我得到

我还尝试遵循diff 谓词示例。但是这个

导致语法错误:

0 投票
2 回答
112 浏览

logicblox - 如何结合protobuf服务和分支服务?

我有一个带有 profobuf 服务的项目,效果很好:

但是当我从 docs 添加分支服务时,protobuf 服务停止工作:

我需要以某种方式组合配置吗?他们需要住在不同的工作空间吗?

0 投票
1 回答
69 浏览

logicblox - 如何在 LogiQL 的 .logic 文件中创建自动编号的谓词?

我正在尝试使用 autoNumbered 谓词建立一个项目。我无法在 .logic 文件中使用 lang:autoNumbered 选项,因为它给了我一个错误,即它需要一个约束或一个 lang:ordered。

所以我在一个 .lb 文件中重写了我的代码,这很有效。代码如下:

现在我想把它移到一个 node.logic 和一个单独的数据文件中。如何在保留 lang:autoNumbered 和 lang:constructor 命令的同时执行此操作?

编辑:

这是我尝试运行的代码:

我得到了错误

当我运行 lb config && make 时,在 lang:autoNumbered 和 lang:constructor 行上。

额外信息:我使用 Vagrant 运行 logicblox,并将我的示例基于这些博客:https ://developer.logicblox.com/2014/01/structuring-and-compiling-logicblox-applications/

0 投票
1 回答
174 浏览

logicblox - 如何避免在 logicblox/logiQL 中实现递归逻辑谓词?

我正在尝试使用 LogicBlox 作为 Datalog 求解器的功能。我有性能问题,我认为我使用 LB 是错误的,因为它表现得好像它正在实现所有关系(具有例如魔术集的 Datalog 求解器不会这样做)。

正如我所说,我可能没有按预期使用 LB,但这是我的测试。我想创建一些二元关系 e(x,y) 的传递闭包 c(x,y)。出于测试的目的,我将 e 创建为一个简单的循环,即我将 e(i,(i+1)%1000) 添加到 LB 为 0 ≤ i < 1000。

当我只对 from0(x) <- c(0,x) 感兴趣时,不需要实际实现 c 并且魔法集方法将创建一个谓词 c_{bound,free}(x,y) 并计算 from0 (0) 然后从 0(1) 等推导出来。整个操作大约需要 1000 步。

如果我用程序做我的例子:

然后,显然,我正在生成 c 的物化版本,并且 c 将包含所有元素对;因此总操作大约需要 1000^2 的时间(当我运行查询时,我发现它实际上需要一些时间来计算)。

从文档中,LogicBlox 允许将谓词定义为“派生”,但对于 c 来说,它似乎不可能作为 c 自身递归。

现在,我还尝试在查询或 exec 块中使用“本地谓词”定义此传递闭包,但没有成功。我试过的例子:

显然,在这个例子中,我可以手动优化查询并定义一个块:

但如果我正确理解 LB,应该有办法将优化留给 LB。