alibaba / GraphScope

🔨 🍇 💻 🚀 GraphScope: A One-Stop Large-Scale Graph Computing System from Alibaba | 一站式图计算系统
https://graphscope.io
Apache License 2.0
3.18k stars 426 forks source link

Support Cypher with GAIA-IR #1483

Open yecol opened 2 years ago

yecol commented 2 years ago

TBD

shirly121 commented 1 year ago

目前compiler主要支持了gremlin语言,并引入antlr做相关的语法检查,整体链路大致为antlr语法检查->ast树 (traversal结构) -> ir表示层,主要功能是针对不同的用户层语言检查并翻译为ir的algebra表示,具体步骤为:

gremlin在语言定义和表示方面存在一定缺陷,一方面gremlin提供的算子太过揉杂,算子和算子之前的功能边界并不清晰,在用户使用方面会觉得太过复杂;另一方面,gremlin的语言定义和执行并没有很好的解耦,自带的ast结构不仅仅包含算子表示,还包括了内部实现,当引入其他语言时 (i.e. cypher),这样的结构很难直接用来复用;

为了避免上述问题,在引入cypher时,我们会重新定义/refine中间的ast结构,目前考虑参考gsql的相关表示,并将gremlin的相关算子统一到该结构上;更进一步的,我们会基于该结构apply相关的逻辑执行优化,目前考虑参考calcite的parser层;