A Compositional Language for Property Graphs
本文通过提出一种新的组合式语言,旨在解决标准化图查询语言 GQL 和 SQL/PGQ 中缺乏组合性的问题,该语言将正则路径查询与一种完全组合式的图到图 #Datalog 扩展相结合,以弥补表达能力差距并实现新图元素的构建。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下你正试图通过一张地图给一位朋友指路。在数据的世界里,这张地图被称为属性图(Property Graph)。它是一个由点(人、账户、产品)和线(关系、转账、连接)组成的网络,其中每一个点和线都可以附带一些小笔记,比如“余额”或“时间戳”。
最近,出现了两本用于向这些地图提问的新官方规则手册:GQL 和 SQL/PGQ。你可以把它们看作是导航数据时的“交通规则”。本文的作者认为,这些新的规则手册有一个重大缺陷:它们不具备组合性(compositional)。
问题所在:“断裂的链条”
要理解什么是“组合性”,想象你正在制作一条纸夹链条。
- 具有组合性: 你可以拿取一条已经完成的链条,观察它的最后一环,然后立即将下一环连接上去。整个结构始终保持连接。
- 非组合性(当前的问题): 在新的规则手册中,如果你构建了一条连接链,然后尝试在末端添加另一个环节,系统会忘记之前环节的细节。这就像是在试图构建一条链条,但每当你增加一个新环节时,系统就会丢弃之前的环节,并从一个空白状态重新开始。
现实世界的例子:
论文给出了一个银行案例。
- 简单查询: “找出两个在彼此间的转账过程中,资金金额不断增加的银行账户。” 现有的规则手册可以轻松完成这个任务。
- 困难查询: “找出两个在时间上随着每一步转账而递增的银行账户。”
- 假设有一系列发生在 11:00、12:00、1:00 和 2:00 的转账链。
- 现有的规则手册在这里失败了。为什么?因为当它们尝试检查下一次转账的时间时,它们失去了对前一次转账时间的记忆。它们无法将这些步骤“粘合”在一起,从而观察到整个递增的时间线。
这很奇怪,因为这些规则手册理应足够强大,能够解决几乎任何逻辑谜题(在数学上,它们应该能处理“NLOGSPACE”问题),但这个简单的“时间递增”谜题却难住了它们。
解决方案:两种新工具
作者提出了两种新工具来修复这条断裂的链条。你可以把它们看作是一把更好的剪刀和一种新的胶水。
工具 1:“对称路径”(RPQVs)
目前的规则手册将**节点(Nodes,点)和边(Edges,线)**区别对待。这就像一场游戏,你只能踩在点上,而点与点之间的线却是隐形的或者表现异常。
- 修复方案: 作者提出了一种新的编写路径的方式,让点和线被平等对待。你可以从一条线上开始,在一条线上结束,并且系统会记住每一步及其细节(如时间或金额),而不会丢失记忆。
- 类比: 与其玩一个必须从一个岛屿跳到另一个岛屿,且会忘记刚跨过的桥的游戏,这个新工具让你在走过桥梁的同时,还能记下一份关于每一步的运行日志。
工具 2:“图构建器”(#Datalog)
有时,答案不仅仅是找到一条路径,而是构建一张新图。
- 修复方案: 作者引入了一种名为 #Datalog 的语言。它允许你将查询结果转化为地图上的全新点和线。
- 类比: 想象你有一张城市地图。你找到了所有交通量递增的街道。#Datalog 不仅仅是列出这些街道,它还允许你利用这些街道在它们之上物理性地建造一条新的高速公路。然后,你可以针对这条新高速公路进行提问。
- 这创造了一个反馈循环:你查询地图 你构建地图的新部分 你查询新部分。现有的规则手册不允许你构建新部分,它们只能让你观察旧的部分。
结果:一套完整的工具箱
通过结合这两个工具,作者表明你终于可以询问关于图的任何逻辑问题,且无需使用那些会让计算机崩溃或运行数小时的复杂、缓慢的变通方法。
他们建议将这些特性添加到官方的 GQL 和 SQL/PGQ 标准中。
- 向后兼容性: 他们承诺,添加这些新工具不会破坏现有的查询。这就像在高速公路上增加一条新车道;旧车仍然可以在旧车道上行驶,但现在有了可以进行复杂行程的快车道。
- 目标: 确保数据图的“交通规则”是逻辑严密、一致且足够强大的,能够处理诸如欺诈检测、供应链和金融分析等复杂的推理需求。
简而言之,这篇论文指出:“用于数据图的新规则手册缺少一个关键的逻辑环节,导致它们会遗忘过去。我们设计了一个简单、优雅的修复方案,让系统能够记住整个旅程,甚至能在行驶过程中建造新的道路,使这种语言变得完整并足以应对未来。”
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。