- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我为一个函数定义了一些值:
+(value[1] == "cats")
+(value[2] == "mice")
是否可以像下面这样定义一个函数?
(undefined[X] == False) <= (value[X] == Y)
(undefined[X] == True) <= (value[X] does not exist)
我猜它不能,原因有二:
(1) 查询保证在 Datalog 中终止,您可以查询 undefined[X] == True
。
(2) 根据维基百科,Datalog 与 Prolog 的不同之处之一是 Datalog“要求出现在子句正文中否定文字中的每个变量也出现在子句正文中的某些正文字中” .
但我不确定,因为涉及的术语(“终止”、“字面意思”、“否定”)有很多用途。 (例如:negative literal
是指 f[X] == not Y
还是not (f[X] == Y)
>? termination
是否意味着它可以评估单个表达式,如 undefined[3] == True
,或者它是否意味着它会找到 的所有 X undefined[X] == True
?)
最佳答案
这里是“安全”的另一个定义。
A safety condition says that every variable in the body of a rule must occur in at least one positive (i.e., not negated) atom.
来源:Datalog and Recursive Query Processing
原子(或目标)是谓词符号(函数)以及作为参数的术语列表。 (请注意,此处“术语”和“原子”的使用方式与 Prolog 中的不同。)
安全问题是决定是否可以保证给定数据记录程序的结果是有限的,即使某些源关系是无限的。
例如,以下规则是不安全的,因为 Y
变量仅出现在负原子中(即 not predicate2(Z,Y)
).
rule(X,Y) :- predicate1(X,Z), not predicate2(Z,Y) .
为了满足安全条件,Y
变量也应该出现在正谓词中。
关于datalog - Datalog 中是否可以查询不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49459760/
假设我为一个函数定义了一些值: +(value[1] == "cats") +(value[2] == "mice") 是否可以像下面这样定义一个函数? (undefined[X] == False)
LogicBlox 数据库使用 LogiQL 语言进行编程,根据他们的网站,这是 Datalog 的某种变体: Applications are written using the LogiQL la
所以我目前正在学习数据记录。我启动它并输入以下内容: parent(john, michael). 并立即给出了一个未定义的谓词错误。据我了解,这应该是在模拟数据库中定义关系的正确方法。怎么了?我在
我想在谓词规则的主体中使用全称量词,即类似 A(x,y) <- ∀B(x,a), C(y,a). 这意味着只有当每个 从 C(y, a ), B(x, a ) 总是有 x 匹配 (x, a , ),
和很多程序员一样,我在大学里学过 Prolog,但只学了很少的一部分。我理解Prolog和Datalog密切相关,但是Datalog更简单?另外,我相信我读到 Datalog 不依赖于逻辑子句的顺序,
谁能告诉我从哪里开始编码以便从 C# 中的 OPOS(Datalogic Magellan 设备)加权和条形码扫描中获取数据?例如,在这种情况下我应该使用什么库和什么函数。我一无所知,因为我已经花了很
我有以下事实和规则: % frequents(D,P) % D=drinker, P=pub % serves(P,B) % B=beer % likes(D,B) frequents(janus,
如果Datalog是基于等价于SQL的一阶逻辑,Datalog怎么能表达传递性(这是SQL/一阶逻辑无法表达的)? https://en.wikipedia.org/wiki/Datalog 这显然意
我想知道如何将此 Prolog 代码转换为在 Datalog 中工作。 我认为它不适用于 Datalog,因为我们不允许使用诸如 nullable(rule(z,[d])) 之类的东西。在数据日志中。
我有机会开发一个应用程序来收集数据,包括在 Datalogic ELF 上扫描和生成条形码。操作系统是windows mobile 6.5,SDK支持java,但是示例或帮助等似乎很少。对于Java开
我正在寻找 Datalog 的 Jave 实现不评估不必要的规则。我看了IRIS reasoner这似乎是最稳定的。 但是,它会评估所有规则,而不仅仅是正在使用的规则。例如: parent('home
我正在尝试使用 Datalogics PDF ( https://api.datalogics-cloud.com/docs#fillform ) 在我的 rails 应用程序中填写可填写的 pdf(
我还在思考如何将Datalog程序的递归性转化为SQL,比如 P(x,y) <- Q(x,y). Q(x,y) <- P(x,z), A(y). 其中 A/1 是 EDB 谓词。 P 和 Q 之间存在
我有一个巨大的语义网络,它有其特定的 Java API 用于查询数据(数据存储在多个 Lucene 索引中)。 我想要一些更具交互性的东西(比 Java 编程)来查询它,比如 Datalog接口(in
这是我最后的希望,Datalogic 支持没有回应...我只想用 C# 向 Datalogic PM9300 无线扫描仪发送“哔”信号。它通过 RS232 连接到 PC。手册说我必须这样发送:[扫描地
我目前正在使用 Datalogic 的**PM9500 扫描仪(4 键型号)**,并尝试在特定事件触发后向屏幕发送消息。我一直在寻找格式化消息的正确方法,但到目前为止我尝试的一切都失败了。根据 Dat
我有一个使用 Skorpio X4 进行扫描的应用程序,它已经运行了 2 个多月。 同时,我已将 Visual Studio 2019 更新到版本 16.10.3。现在我想在扫描仪上测试新版本的应用程
我是一名优秀的程序员,十分优秀!