问题标签 [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 回答
4585 浏览

datomic - 如何对 Datalog 查询中的结果进行排序

我正在使用带有游戏框架的 datomic。玩起来很棒,datomic 很快。所以总体来说是一个很好的组合。因为,我是 datomic 的新手(和数据记录,即查询语言 datomic 使用),我无法对我的结果进行排序(就像我们一样,在 sql 中排序)。例如。

如果我的查询是:

它应该返回导演是 Dave Swag 的电影的标题,结果按图像发布的年份排序。谢谢 :)

0 投票
1 回答
540 浏览

z3 - Z3中的固定点

有人可以指出为什么最终查询没有输出吗?

基本上我告诉 Z3 如果 vs-)vd 和 vs->ss 和 vd->sd,那么 sd 是从 ss 派生的。

0 投票
1 回答
465 浏览

clojure - not 子句在 Datomic 中如何工作?

我试图找到两个输入之间的纬度。我的查询:

我的错误:

任何有助于理解我的查询有什么问题的帮助将不胜感激。如果您还可以使用 Datomic 规则来分解in-bounds每一半的部分,则可以加分。

0 投票
0 回答
414 浏览

sql - 对于面向列的数据库,datalog 是否比 SQL 更有效?

Cascalog和Datomic选择使用Datalog(通过SQL)作为他们的查询引擎。

戴夫·托马斯声称:

对于小空间中的大查询,Datalog 优于 SQL。

我的问题是:对于面向列的数据库,datalog 是否比 SQL 更有效?

0 投票
1 回答
575 浏览

prolog - 带变量的反向链接

我一直在阅读有关 Prolog/Datalog 中的推理的信息,虽然前向链接似乎很容易掌握,但对于任何类型的复杂示例,我在后向链接方面存在一些问题,这些示例不仅仅是命题或用于确定真值或假值。我正在阅读一篇文章,给出了以下示例:

假设我们要查询sg(a,W)wherea是常量W还是变量。这可以理解为:

给我所有与a.

文章首先指出,这些特定规则将导致 Prolog/Datalog 中的无限循环,但可以通过将第二条规则更改为:

为什么原始结果会循环?其次,这种查询的执行会是什么样子?值何时绑定到这些变量?

0 投票
1 回答
253 浏览

exception - Datomic 数据日志:使用聚合时出现 ArrayIndexOutOfBounds 异常

鉴于这db是一个数据库值,以下查询将引发异常:

(信息模型是有几场演唱会属于一个活动,并且需求,我们要获取演唱会字段和每个演唱会的需求数量)。

堆栈跟踪在这里:

难道我做错了什么 ?

0 投票
1 回答
109 浏览

datalog - 如何在没有警告消息的情况下从 logicblox 中删除数据

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

0 投票
3 回答
832 浏览

clojure - 可以通过 Datomic pull 语法获取枚举值吗?

mbrainz示例数据中,:artist/type 是一个枚举。是否可以从 :db/ident 中提取枚举值并使用拉语法将其关联为 :artist/type 键的值?

这是我能得到的最接近的:

是否可以使用拉语法将结果重塑成这样的东西?

0 投票
1 回答
285 浏览

clojure - 在 (datomic.api/q '[]) 之外定义数据记录查询组件

我正在使用 clojure 的 datomic.api。我希望重构一个有点复杂的数据日志查询,例如:

...变成更具可读性的东西。我的愿望是将(and...)查询的组件本地绑定到 alet中,并通过数据日志列表中的名称来引用它们。像这样:

letdatomic.api/q 列表中的各种引用(和取消引用)都不起作用。有什么建议么?

0 投票
1 回答
492 浏览

datomic - Parameterized and case insensitive query in datalog (datomic)

I want to compose a query that takes a firstname as input parameter and returns all matching records. A match should be case insensitive. As an example I'd like to extract all the people named Douglass. Parameterized, but case sensitive this would be :

The following query will yield all matches regardless the case, but is not parameterized (the ?par is not used yet, but a placeholder for the parameterized query) :

But I'm not able to combine them. A - probably naive - approach is throwing Unable to resolve symbol: ?par in this context :

So : how to pass the firstname for this case?