HumemAI iconHumemAI

Projects / Multi-Model Databases

Subproject

CypherGLOT

A Cypher-to-SQL compiler that lets developers think in graph terms, then lowers admitted Cypher through an internal AST and IR into backend-aware SQL for host runtimes.

Illustration of Cypher query compilation into normalized graph-relational output
Illustration of Cypher query compilation into normalized graph-relational output

Cypher

Think in graph queries instead of hand-writing graph-shaped SQL.

Figure 1

From Cypher intent to SQL output

  • Cypher query input
  • Admitted-subset validation
  • Normalization of accepted shapes
  • Backend-aware SQL output
The project starts from graph-native query intent, then turns that into a backend-aware SQL representation instead of asking developers to write those SQL shapes by hand.

Developers often want to think in graph terms, but implementing graph queries on top of SQL backends usually means hand-writing complex SQL with joins, traversal patterns, and storage-specific tricks. That is hard to maintain, hard to port, and easy to get wrong.

CypherGLOT exists so developers can write Cypher instead, then let the compiler carry that graph intent forward into backend SQL output for the target runtime.

Compilation

Use a compiler boundary between graph intent and SQL execution.

Figure 2

Compiler path

  • Parse Cypher
  • Validate admitted subset
  • Normalize internal AST
  • Lower through graph-relational IR
  • Emit SQLGlot-backed output
CypherGLOT creates an explicit translation path from graph-oriented query syntax to SQL-backed execution plans.

CypherGLOT is intentionally compiler-only. It parses Cypher, validates an admitted Neo4j-like subset, normalizes the accepted shape into internal structures, lowers it through a graph-relational IR, and hands SQLGlot-backed output to the target runtime.

That keeps parsing, validation, normalization, and lowering separate from storage and execution, so host runtimes stay simpler and more testable.

Targets

Target multiple SQL backends through one Cypher surface.

Figure 3

Backend direction

  • SQLite
  • DuckDB
  • PostgreSQL
  • Other SQL-backed runtimes
One Cypher-facing frontend can target multiple SQL backends when the lowering path and support claims stay explicit.

That compiler path makes Cypher support reusable across runtimes such as HumemDB and creates a path toward targets like SQLite, DuckDB, PostgreSQL, and other SQL-backed systems.

Instead of burying graph logic inside custom SQL for each backend, the project offers an explicit translation contract with clearer guarantees and a much better developer story.

Resources

Docs and code.