追記(2025.03.06):AGEFreighterに統合しました。
変換するとCypherにはなるんだけども、Apache AGEではこのまま使えない。
g2c -g 'g.V().has(“name”, “Alice”).as(“a”).V().has(“name”, “Bob”).as(“b”).select(“a”, “b”).by(“name”)'
Converted Cypher queries:
line 1, g.V().has("name", "Alice").as("a").V().has("name", "Bob").as("b").select("a", "b").by("name") ->
MATCH (a {name: "Alice"}), (b {name: "Bob"}) RETURN a.name AS a, b.name AS b
で、変換した結果のCypherクエリをANTLRで解析して、Cypherクエリ中に存在するItentifierを見つけ出して、Apache AGEが受け付けてくれる構文に書き換えるようにしてみた。つまり、AS句を追加する(実際の出力は改行されません)。
g2c -a -g 'g.V().has(“name”, “Alice”).as(“a”).V().has(“name”, “Bob”).as(“b”).select(“a”, “b”).by(“name”)'
Converted Cypher queries:
line 1, g.V().has("name", "Alice").as("a").V().has("name", "Bob").as("b").select("a", "b").by("name") ->
SELECT *
FROM cypher('GRAPH_NAME',
$$ MATCH (a {name: "Alice"}), (b {name: "Bob"})
RETURN a.name AS a, b.name AS b
$$)
AS (a agtype, b agtype);
何でも変換できるというわけではないと思うが、まあ、ひとまず便利でしょ。