GQL / WorldCypher
ArcFlow's query language is GQL — the ISO international standard for graph query languages (ISO/IEC 39075). If you know Cypher, you already know it: MATCH, CREATE, MERGE, WHERE, RETURN all work exactly as expected, with no migration needed.
ArcFlow's implementation is called WorldCypher. It passes 100% of the openCypher TCK, implements the full ISO GQL V2 specification, and extends GQL with capabilities the standard leaves to implementations.
| Standard | Conformance |
|---|---|
| openCypher TCK | ✅ 100% — 3881/3881 scenarios |
| ISO GQL V2 (ISO/IEC 39075) | ✅ Full — GQLSTATUS codes, IS LABELED, ELEMENT_ID, NEXT WHEN/THEN/ELSE/END, UNIQUE/PRIMARY KEY constraints, transaction control |
WorldCypher extensions beyond the standard: AS OF temporal snapshots, LIVE MATCH standing queries, CREATE LIVE VIEW, confidence filtering (WHERE r._confidence > 0.8), spatial predicates, CREATE SKILL, PROCESS NODE.
WorldCypher is a language for world models. A single query can express all three dimensions of agent reasoning simultaneously: spatial (what's near me, what's in this zone), temporal (what was true at sequence N, what changed since), and relational (what connects these entities, through what paths, with what confidence). That composability is what separates world model queries from SQL or key-value lookups.
Operator Summary#
| Category | Operators |
|---|---|
| Read | MATCH, WHERE (=, <>, >, <, >=, <=), AND/OR/NOT, CONTAINS, STARTS WITH, EXISTS |
| Traversal | Single-hop, variable-length *min..max, shortestPath() |
| Write | CREATE node, CREATE relationship, MERGE (upsert), DELETE, SET |
| Projection | RETURN, RETURN ... AS, DISTINCT, ORDER BY, SKIP, LIMIT |
| Aggregation | COUNT, SUM, AVG, COLLECT |
| GQL V2 | IS LABELED :Label, ELEMENT_ID(n), NEXT WHEN/THEN/ELSE/END |
| Constraints | CREATE CONSTRAINT ON :L(p) ASSERT UNIQUE, ASSERT PRIMARY KEY |
| Transaction | START TRANSACTION [READ ONLY], COMMIT, ROLLBACK |
| Skills | CREATE SKILL, PROCESS NODE, REPROCESS EDGES |
| Introspection | EXPLAIN |
Quick Examples#
Read#
MATCH (n:Person) WHERE n.age > 25 AND n.name CONTAINS 'li' RETURN n.nameWrite#
CREATE (n:Person {name: 'Eve', age: 28}) RETURN n
MERGE (n:Person {name: 'Eve'}) RETURN n
MATCH (n) WHERE n.name = 'Eve' SET n.age = 29
MATCH (n) WHERE n.name = 'Eve' DELETE nTraverse#
MATCH (a:Person {name: 'Alice'})-[:KNOWS*1..3]->(b) RETURN b.name
shortestPath (a:Person {name: 'Alice'}), (b:Person {name: 'Dave'})Aggregate#
MATCH (n:Person) RETURN count(n), avg(n.age), collect(n.name) ORDER BY n.age DESCIntrospect#
EXPLAIN MATCH (n:Person) WHERE n.age > 25 RETURN n.nameSections#
Query Syntax#
Statements#
- CREATE — node and relationship creation
- MERGE — upsert semantics
- DELETE — removal
- SET — property mutation
Data Types#
- Overview — property value types
Functions#
- Aggregations — COUNT, SUM, AVG, COLLECT
- shortestPath — graph algorithms
- EXPLAIN — query plan introspection
Standards & Compatibility#
- GQL Conformance — standards lineage, TCK results, comparison with other implementations
- GQL & WorldCypher Reference — complete syntax and feature matrix