问题标签 [datalog]

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 回答
343 浏览

z3 - Z3 muZ + 未解释的函数?

muZ 是否支持未解释的函数?

我想做类似以下的事情:

但似乎我需要f为 Z3 返回以下输出提供定义:

我想我可以将我的函数建模为关系,但想看看是否有另一种解决方法......

谢谢!

-N

0 投票
1 回答
117 浏览

c++ - C ++递归传递参数内存问题

我的代码中有一个名为“schemeList”的对象,如下所示:

我遇到问题的函数是“addScheme”,它应该向头部添加一个方案,或者如果头部已满,则将其添加到尾部(以链表的方式)。这是我到目前为止的功能:

这适用于添加第一个方案,但第二个方案会抛出一个错误,显示“未处理的异常......”。我之前遇到过这样的问题,但我toAdd通过引用传递变量而不是传递整个对象来修复它。为什么这会引发错误和/或我该如何解决?

如果它使事情更清楚,一个方案是:

一个令牌是:

0 投票
1 回答
398 浏览

datalog - 数据记录查找重复项

我想创建一个约束来过滤 nxn 矩阵中的所有重复行,其中每个字段由 0 或 1 组成。矩阵最多可以有 10x10 行和列。例如,我们有以下 4x4 矩阵:

0 1 0 1

1 1 1 0

0 1 0 1

1 0 1 1

那么第 1 行和第 3 行将是相同的,这是不可能的。我一直在思考这个问题 4 个小时,但没有运气。

有人可以给我一个提示吗?

0 投票
1 回答
733 浏览

java - 如何使用 Datalog 查询接口公开巨大的语义图(链接数据)

我有一个巨大的语义网络,它具有用于查询数据(存储在多个Lucene索引中的数据)的特定 Java API。

我想要一些更具交互性的东西(比 Java 编程)来查询它,比如Datalog接口(或者你可以提出的其他东西!),这样我就可以公开一些关系,然后使用联合查询来提取我需要的数据,以及一切很简单,可以在虚拟交互式 shell 中编写。

在不重新发明大部分轮子的情况下实现这一目标的可能性有哪些?(即无需自己编写数据记录应答系统)

集成 Datalog 前端来提取数据是否更好(假设存在这种可能性)?或者最好在RDF中导出数据,并使用一些可用的查询/推理工具?哪一个?

0 投票
1 回答
344 浏览

java - 如何在 Datomic 查询中使用 /?

这个查询

只返回四舍五入(到小数点后 0 位)的值?af,所以我不能添加 sth。像

到 :where 子句。

我已经尝试在查询中强制转换为各种类型,例如

但这只会影响结果类型,而不会删除舍入。

如果你知道一些事情并且有经验,那么我在 Datomic 方面还有很多(尤其是与类型相关的)问题。但是我还没有找到解决这个除法查询问题的解决方法(除了查询后除法),我真的希望它不是由于 Datomic 的早期开发阶段造成的。我猜是因为 Datomic 不支持 Ratio 类型,它们是四舍五入的,但小数点后几位会非常好。

我正在将 Datomic 与 Clojure 一起使用。

编辑我找到了一个解决方法,但是我仍然想知道为什么它是必要的。

解决方法:

  • 采用clojure.core//

    /li>

但我当然想知道哪个 / 被调用(在没有完全限定的命名空间的情况下调用)以及在哪里可以找到它的文档,以便我可以了解其他运算符的其他可能问题。

EDIT2:通过设计一个除以零的查询来调用异常,我发现clojure.lang.Numbers/quotient调用了静态方法。我怎么会知道这个?看起来 Datomic 不是开源的,至少我在 jar 文件中找不到源代码。使用clojure.tools.traceon datomic.datalog,我发现调用是通过解析/from发生的datomic.extensions。在datomic.extions中,/定义为clojure.core/quot,它调用clojure.lang.Numbers/quotient

就我而言,所有这些都没有记录。

0 投票
1 回答
254 浏览

database - 用于更改数据的数据记录模式

我正在考虑使用 datalog 作为我正在编写的应用程序的数据库后端,因为我看到了允许我在表示之间轻松切换而不必牺牲我收集的数据或编写繁琐的迁移的潜力。

然而,我无法预见我将如何处理更改数据——例如像用户可更改密码这样简单的事情。我有一个想法用日期标记行:

然后使用最新的,但似乎没有办法获得最新的,而不返回所有行并在应用程序端过滤它们。

如何设计数据记录应用程序来处理不断变化的数据?

0 投票
1 回答
365 浏览

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

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

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

0 投票
2 回答
193 浏览

python - pyDatalog:询问查询时“对象与查询的类不兼容”

我正在开发一个使用 pyDatalog 查询 sqlite 数据库的程序。数据库中的key表为Event,定义如下:

然后,每个事件都引用一个包含更多信息的详细信息表。

我想要做的是对序列中的每个事件运行一系列查询。使用 pyDatalog.load() 从外部文件加载规则集

我遇到问题的部分是将每个事件 ID 的引用从 python 传递到数据日志中。我不断收到错误“TypeError:对象与查询的类不兼容”。

我已将规则减少到这些以进行调试:

询问查询的代码如下所示(较大类的一部分):

如果我取消注释 "query='parent(bill,X)'" 行,它可以正常工作(它打印 (bill, 'John Adams') 元组),但使用 "query = 'getEvent(..." 行,它在上面显示的最后一行出现上述错误。

有谁知道这个错误是什么意思,以及如何正确地将事件 ID 的引用传递给 pyDatalog?

0 投票
1 回答
767 浏览

datalog - 如何在数据记录规则的主体中表达全称量词?

我想在谓词规则的主体中使用通用量词,即类似

A(x,y) <- ∀B(x,a), C(y,a)。

这意味着只有对于来自 C(y, a ) 的每个a,B(x, a ) 总是有 x 匹配 (x, a ),那么 A(x,y) 为真。

由于在 Datalog 中,规则体中的每个变量默认都是存在量词,因此a也将是存在量词。我应该怎么做才能在谓词规则的主体中表达全称量词?

谢谢你。

PS 我使用的 Datalog 引擎是 logicblox。

0 投票
1 回答
73 浏览

ocaml - 数据记录需要字段“解锁”

在编译 OCaml 应用程序时,我收到以下错误:

我的猜测是该错误与 OCaml 库 Datalog 相关(我已从此处安装了 0.3 版),因为文件中的第 308 行是 /tmp/ocamlpp466ee0 以下代码中的第一个

如果有人可以帮助我知道我做错了什么,我将不胜感激。

此外,我想不明白为什么每次执行“make”时都会生成文件/tmp/ocamlpp466ee0?我试图通过阅读 Makefile 来理解,但没有成功。