gpt4 book ai didi

database - Cypher 和 Gremlin 的语法和语义

转载 作者:搜寻专家 更新时间:2023-10-30 19:50:40 26 4
gpt4 key购买 nike

我想知道我能用 Cypher 和 Gremlin 执行什么样的查询,但我没能找到该语言的完整语法及其到操作语义的翻译。有谁知道是否有什么东西可以阐明这些语言的表达能力?

最佳答案

对于 cypher,语法作为一组使用 Parboiled 库的 Scala 文件提供。您应该能够在 neo4j github 存储库中找到这些 scala 文件。它本身不是正式语法,但如果您查看源文件,您将获得与您期望的正式语法相同的产生式规则。 You can find that here on github .查看 Query.scala 作为定义 Cypher 查询及其语法组件的起点。

对于 gremlin,我不确定它是如何工作的,但我再次猜测您需要深入研究源代码,他们很可能也使用某种解析器生成器,语法将有效地在其中代码。

不过,您关于“表达能力”的问题有点含糊;只要说 cypher 是一种声明性语言(专注于返回什么,不指定如何遍历),gremlin 在我看来就像一种声明性语言(因为它说明了如何进行遍历而不是返回什么数据) .最后他们都图灵完整,所以虽然他们的风格完全不同,但在任何形式意义上,一个并不比另一个更“强大”。

根据您正在执行的特定任务以及“强大”的上下文定义,一个可能比另一个更强大。说你想做的是对树进行广度优先搜索以寻找特定的东西。在这种情况下,面向遍历的方法是最好的,也许 gremlin 更好,因为 Cypher 不允许您指定遍历顺序。另一方面,假设您想表达一个复杂的路径查询,它返回某个数据项,而不管它在图中的什么位置。那么也许可以说 cypher 更强大,因为它关注的是“什么”而不是“如何”。

关于database - Cypher 和 Gremlin 的语法和语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33391712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com