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

clojure - 对分页集执行过滤的高效 Datomic 查询

鉴于 Datomic不支持分页,我想知道如何有效地支持查询,例如:

取前 30 个实体:history/body,找到 :history/body与某个正则表达式匹配的实体。

这是我单独进行正则表达式匹配的方法:

观察:

  1. 然后我可以(take ...)从中获取,但这匹配前 30 个实体不同。
  2. 我可以获取所有实体,take 30然后使用 手动过滤re-find,但如果我有 30M 实体,那么让所有实体take 30看起来非常低效。另外:如果我想从我的 30M 实体中取出 20M 并通过 过滤它们re-find怎么办?

Datomic 文档讨论了查询是如何在本地执行的,但我尝试对一组 52913 个实体进行内存转换(当然,它们已完全touch编辑),这需要大约 5 秒。想象一下,数百万或数以百万计的情况会有多糟糕。

0 投票
0 回答
73 浏览

prolog - 将 DTD 映射到 Datalog 程序

谁能帮我写一个相当于给定DTD的Datalog程序。

DTD:

在将 dtd 转换为相应的数据记录程序时,我们还需要遵循任何特定规则吗?

0 投票
1 回答
515 浏览

clojure - 为什么这个数据日志查询会聚合?

来自 https://github.com/tonsky/datascript

所以,这不是关于它在做什么的问题,而是关于它如何(或至少为什么)这样做的问题。max 和 min 是分别返回其后续整数的最大值或最小值的函数。如何?amount考虑限制聚合计数?为什么这些东西总是聚集在一起?代码如何运行以使其聚合。我真的不明白这段代码是如何产生结果的。

0 投票
1 回答
1143 浏览

count - 答案集编程 - 如何计算似乎是我的查询结果的事实数量?

所以我有一组事实和一个用 ASP 编写的要在 DLV 上运行的查询,

然后我想计算我的答案集中有多少triple1三元组不包括事实。然后我做了这种聚合#count查询:

但我得到的只是变量的数量TermA作为我的结果出现。当我将查询更改为这样时:

它给了我错误。我该怎么做这个查询?

0 投票
1 回答
123 浏览

xml - 用于科学仪器时间序列记录的 XML 模式

问:

我知道所有这些废话都没有一个完美的答案。我希望有一些经验丰富的见解来缩小可能的口味,一些避免转换噩梦的一般策略,以及减少我在 CPU/磁盘上的数据存储占用的任何想法(大字符串操作既昂贵又乏味)。我在受限制的硬件上,对 XML标准有些陌生。我可以很好地读写它(通常用于网站),从来没有真正作为数据集封装。


我已经考虑了这几周,我有 92.3% 的把握 XML 文件是我理想的存储目标。我正在记录各种仪器读数/分析,并一次保存几个月。尽管我确实担心我的数据收集节点的硬件资源有限(过多的字符串操作会变慢,512kB RAM,3.2GB 闪存)。

我正在尝试找到一个格式良好的 ML,其占用空间最小,可以处理RAW数字数据类型。我不需要完全兼容的文件,但我正在寻找最合适的解决方案,所以不要偏离正确的形式太远

主要数据模型因素

(以及为什么我认为 XML 比打包二进制文件、平面文本甚至 CSV 更合适)

  • 多达 8 个不同的数据点(不同的测量值、品牌和传感器类型)
  • 各种原始数据类型(REAL32、DINT、DWORD、BYTE、STRING(任意长)
  • 数据集需要能够在每个文件中保留绝对时间戳(我有一个充满 100 个最终将合并的 XML 的目录)
  • 数据点配置/数量可能会发生变化,因此我需要能够以最少的冗长/混乱记录对架构的更改。

性能限制/注意事项

  • 我通常应该只从嵌入式平台写出 XML,因此可读性不是最重要的,尽管如果我确实需要处理任何类型的查询,即使在最干净的情况下,折腾和解析 3.0GB 的文本也不会很有趣。
    • 我相信间歇性的 DATE-TIME 节点将帮助我索引这样的查询
  • 过度压缩数据实际上会在导出时成为一个问题,因为这些成为更多的计算来解压缩我的懒惰。
  • 过于冗长的 XML 只能给我 111 天的存储时间。我希望能达到 180 天或更长时间。所以我确实需要更好地压缩文本。
  • 卸载数据后有 3 个潜在目标。我不想因过于复杂而陷入转换瓶颈/错误。
    • Microsoft Excel(他不必完全理解它,但我们不想花费数小时手动将不兼容的模式类型/映射导入 2D 网格。
    • RRD 后端服务器(我将能够运行所需的任何转换,但希望我已经接近 RRD 想要的
    • 一些可爱的 Javascript/Android 工具。尽管我希望这些能够执行自定义数据类型处理,但格式良好的 XML 将使开发过程中的检索和解析变得更简单。
0 投票
2 回答
213 浏览

datomic - 原子逻辑析取

如果这非常明显,我很抱歉,但是我如何在 Datomic 中表示逻辑析取?例如,如果我正在寻找一个名称为“1”或年龄小于 5 岁的实体,我将如何处理?

谢谢!

0 投票
1 回答
267 浏览

prolog - datalog 和 prolog 的语义是什么?

数据记录是在集合还是多集合上运行?这同样适用于 prolog 吗?我无法找到任何相关文件。

0 投票
1 回答
580 浏览

datomic - 聚合值最大值的原子查询

假设我有author许多相关实体的book实体。获取书籍数量最多的作者的查询是什么?

0 投票
0 回答
83 浏览

architecture - 模型数据日志查询客户端

我有 datomic DB 并将构建 Web 界面来查询数据库。

我一直使用关系数据库实现的直接解决方案是编写服务器 API 来检索实体。每个 API 端点都有它接受的参数列表,生成查询,将查询提供给数据库,并在可选的后处理后将结果返回给浏览器。

现在有了datomic,我想尝试不同的方法。我想要的是让单个 API 端点接受查询本身作为参数并在客户端构建查询。

就像是:

我的问题是:

  1. 这种方法可以吗,还是会有我现在看不到的困难?
  2. 我会使用任何 JavaScript/ClojureScript 库吗?(我在 datascript 上看到过,但该库似乎是用于在客户端上构建类似 datomic 的 DB,并且需要与真正的 datomic DB 进行通信。
  3. 在所描述架构的上下文中还有其他建议吗?

谢谢你。

0 投票
1 回答
502 浏览

datomic - Datomic 将谓词应用于基数多的属性

假设我有一个具有多值属性(例如数字)的 Datomic 实体。我将如何返回其值不包含特定数字的实体列表?

举个例子,

我想找到列表中不包含数字 1 的所有实体。

但是我有

然后返回所有实体,因为查询被解释为“查找具有不包含“b”的strs成员的实体”,但我需要

"找到每个成员不包含 "b" 的实体 e"。

谢谢!