47得票4回答
正向链接 vs 反向链接

实际应用中一个好处另一个没有什么好处?我理解它们的功能,但在实际使用中它们的限制和能力是什么?我正在考虑在新的AI项目中使用Drools还是Java Prolog,但也愿意听取其他方案。对于推理复杂关系数据集的一些流行方法或替代方案是什么?

34得票2回答
Datalog与CLIPS与Prolog的比较

像很多程序员一样,我在大学里学习了Prolog,但只是学了一点点。我知道Prolog和Datalog密切相关,但是Datalog更简单?此外,我相信我读过Datalog不依赖于逻辑子句的顺序,但是我不确定这有什么优势。CLIPS被认为是完全不同的,但对我来说太微妙了,很难理解。请问有人能提供一...

11得票1回答
如何在Datalog查询中对结果进行排序

我正在使用Play框架和Datomic。Play框架非常出色,Datomic也很快。这是一个非常好的组合。由于我是Datomic(以及Datalog即Datomic使用的查询语言)的新手,我无法对结果进行排序(就像我们在SQL中使用的order by)。例如: 如果我的查询是:q= [:fi...

11得票2回答
朴素评估和半朴素评估有什么区别?

我一直在尝试实现一个半朴素评估数据日志程序的算法,但无论从哪里寻找,都找不到简单易懂地解释两者区别的答案。 据我理解,朴素是自下而上的评估技术,半朴素也是如此。 在第一次迭代中,这两种评估技术都从空集开始。 随着迭代的进行,它们都会产生元组,直到产生一个新的元组为止。 那么,半朴素是从...

11得票3回答
能否通过Datomic的pull语法获取枚举值?

在 mbrainz 示例数据中,:artist/type 是一个枚举类型。是否可能使用 pull 语法从 :db/ident 中提取枚举的值并将其关联为 :artist/type 键的值?以下是我能够得到的最接近的结果: [:find (pull ?e [:artist/name {:art...

9得票2回答
如何在DataScript中构建一个查询以完全匹配一个引用向量?

设置 考虑以下从learndatalogtoday.org窃取的电影和演员数据的DataScript数据库:只要project.clj包含[datascript "0.15.0"]作为依赖项,以下代码可以在JVM/Clojure REPL或ClojureScript REPL中执行。 (ns...

7得票1回答
Datalog计算类?

Datalog并不是图灵完备的。 但是它的计算类别是什么呢? 它是否等同于有限状态机或下推自动机(即上下文无关)...还是介于两者之间?

7得票1回答
数据日志层次化

所以我正在尝试理解Datalog的工作原理,其中之一与Prolog的区别是对否定和递归施加了分层限制。引用维基百科的话: 如果谓词P是从谓词Q中正面推导出来的(即P是规则的头部,并且Q在同一规则的主体中正面出现),则P的分层数必须大于或等于Q的分层数。 如果谓词P是从否定的谓词Q中推导出来...