You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Should we add call subquery to AGE? It will allow Neo4j's GraphQL library to be compatible with AGE.
Data Setup
SELECT*FROM cypher('xyz', $$
CREATE (:Actor{name:'Tom Hanks'})-[:ACTED_IN]->(:Movie{title:'Forrest Gump'})
$$) as (a agtype);
Two uses of call subquery
SELECT*FROMag_catalog.cypher('xyz', $$
MATCH (this:Movie)
CALL {
WITH this
MATCH (this)<-[this0:ACTED_IN]-(this1:Actor)
WITH ag_catalog.agtype_build_map('name', this1.name) AS this1
RETURN collect(this1) AS var2
}
RETURN ag_catalog.agtype_build_map('title', this.title, 'actors', var2) AS this
$$) as ("?" agtype);
SELECT*FROMag_catalog.cypher('xyz', $$
UNWIND $create_param0 AS create_var0
CALL {
WITH create_var0
CREATE (create_this1:Movie)
SETcreate_this1.title=create_var0.title
WITH create_this1, create_var0
CALL {
WITH create_this1, create_var0
UNWIND create_var0.actors.create AS create_var2
WITH create_var2.nodeAS create_var3, create_var2.edgeAS create_var4, create_this1
CREATE (create_this5:Actor)
SETcreate_this5.name=create_var3.name
MERGE (create_this1)<-[create_this6:ACTED_IN]-(create_this5)
RETURN collect(NULL) AS create_var7
}
RETURN create_this1
}
CALL {
WITH create_this1
MATCH (create_this1)<-[create_this8:ACTED_IN]-(create_this9:Actor)
WITH ag_catalog.agtype_build_map('name', create_this9.name) AS create_this9
RETURN collect(create_this9) AS create_var10
}
RETURN collect(ag_catalog.agtype_build_map('title', create_this1.title, 'actors', create_var10)) AS data
$$,
'[ { title: 'Forrest Gump', actors: { create: [{ node: { name: "Tom Hanks" } }] } } ]'-- parameter
) as ("?" agtype);
Ah, thanks. my team is running into issues with queries from KGGEN (https://arxiv.org/abs/2502.09956) using DSPy (https://dspy.ai/) which are being constructed using subqueries. It is designed to work with neo4j but for the most part aside from that we have been able to swap it out with AGE. We may have to fork DSPy to work around it, although there may be another workaround. Also open to learning how to fix it in AGE and make a pull request, although if there haven't been other use cases identified that may not be worth doing.
Should we add call subquery to AGE? It will allow Neo4j's GraphQL library to be compatible with AGE.
Data Setup
Two uses of call subquery
Expected output
For both queries:
The text was updated successfully, but these errors were encountered: