Skip to Content
ReferenceCypher in Syncretic

Cypher in Syncretic

The graph is a LadybugDB database, which speaks the Kuzu dialect of Cypher. The same notes the app gives the AI apply to anything you write in Raw Cypher or send through MCP.

Names

Node tables are PascalCase (Concept, FreeEnergyPrinciple), relationship tables UPPER_SNAKE (RELATES_TO; a keyword gets an underscore: CONTAINS_), columns snake_case (year_published). Every table has id STRING PRIMARY KEY. Raw Cypher’s completion and the MCP get_shape tool list them.

Dialect notes

  • label(n) gives a node’s or relationship’s label; there is no labels() or type().
  • Variable-length paths: -[:REL*1..3]->, always with an upper bound; shortest: -[:REL* SHORTEST 1..6]->.
  • A property missing on a node is NULL: IS NULL / IS NOT NULL.
  • Strings: lower, upper, contains, starts_with, ends_with, regexp_matches.
  • Aggregates group implicitly by the other returned columns.
  • Match an id exactly: MATCH (n {id: upper('5f3a…')}) or WHERE r.id = upper('…').
  • Two-way connections are stored one way; match them without direction: (a)-[:RELATES_TO]-(b).

What’s refused

Before running, the guard refuses any of CREATE, MERGE, SET, DELETE, DETACH, REMOVE, DROP, ALTER, COPY, INSTALL, LOAD, ATTACH, USE, EXPORT, IMPORT, BEGIN, COMMIT, ROLLBACK, CHECKPOINT, CALL used as keywords, and more than one statement. What passes runs in a read-only transaction and keeps at most 500 rows (1,000 through MCP).

Queries that work

MATCH (c:Concept) RETURN c
MATCH (t:Thinker)-[:PROPOSED]->(c:Concept) RETURN t, c
MATCH (c:Concept) WHERE c.year < 1950 RETURN c ORDER BY c.year
MATCH (c:Concept)-[r]-() RETURN c.name AS concept, count(r) AS connections ORDER BY connections DESC LIMIT 5
MATCH (s:Source)-[r:SUPPORTS]->(c:Concept) WHERE lower(s.name) CONTAINS 'theory' RETURN s, r, c
MATCH p = (a:Concept)-[:RELATES_TO*1..3]-(b:Concept) WHERE a.name = 'Entropy' RETURN p
MATCH (c:Concept) RETURN count(c) AS concepts

Return whole nodes and relationships to see them lit on the canvas; return values for a table or a single stat.