Query Languages — Tier 3 Index
Query Languages — Tier 3 Index
- Type: Tier 3 family index
- Family: Query languages (beyond SQL)
- Languages catalogued: 22
- Last updated: 2026-05-07
Family overview
Query languages are domain-specific languages whose primary job is to express what data you want rather than how to compute it. SQL has been the dominant member of this family since the 1980s, but the explosion of non-relational data stores in the 2010s minted a long tail of cousins. They split roughly into:
- Logic / Datalog descendants (Datalog, Soufflé, Datomic, Datascript, Logica) — recursive, set-oriented, declarative; resurgent for static analysis, knowledge graphs, and program-analysis tooling.
- Graph query languages (Cypher, openCypher, GQL, Gremlin, SPARQL) — pattern-match on labeled property graphs or RDF triples; ISO finally standardized GQL in 2024.
- Document / JSON queries (MongoDB MQL, Elasticsearch DSL, OpenSearch DSL, JQ, JMESPath, N1QL/SQL++) — operator-style or path-style filtering over schemaless documents.
- Time-series and observability (PromQL, LogQL, KQL, InfluxQL, Flux) — built around timestamps, labels, ranges, and rollups; dominate the modern observability stack.
- Embedded / language-integrated (LINQ) — queries written in the host language’s syntax that compile to backend-specific calls.
- SQL dialects (Druid SQL, Spark SQL, Trino/Presto SQL, DuckDB SQL, CQL, AQL) — these inherit the relational core but each adds dialect-specific extensions.
The unifying tension across the family is the expressive-power vs. optimizability trade-off: Datalog-class languages are the most expressive per character, SQL has by far the most mature optimizers, and DSLs like JQ and PromQL win on ergonomics for their narrow domain.
In our deep library
- sql — the canonical relational query language; mother tongue of this family. Most “X-QL” languages below either inherit from SQL syntactically or define themselves in opposition to it.
Tier 3 — the family
| Language | First release | Status 2026 | Niche | Why it matters | Source URL |
|---|---|---|---|---|---|
| Datalog | 1977 (theoretical), 1980s impls | Active revival | Recursive declarative queries | The pure logic-programming subset of Prolog; foundation for static analysis, knowledge graphs, and modern declarative DBs | https://en.wikipedia.org/wiki/Datalog |
| Soufflé | 2016 | Active | High-performance Datalog | Compiles Datalog to parallel C++; widely used in industrial program analysis (Doop, security audits) | https://souffle-lang.github.io/ |
| GraphQL | 2015 | Dominant for API queries | Client-driven API query | Facebook/Meta-originated; clients declare exactly the fields they want; replaced REST sprawl in many shops | https://graphql.org/ |
| Cypher | 2011 | Dominant in property graphs | Neo4j graph query | ASCII-art pattern syntax (a)-[:KNOWS]->(b); intuitive enough that competitors copied it | https://neo4j.com/docs/cypher-manual/current/ |
| openCypher | 2015 | Stable, foundational | Vendor-neutral Cypher | Open spec donated by Neo4j; the foundation of ISO/IEC 39075 GQL (2024), the first new ISO query-language standard in decades | https://opencypher.org/ |
| SPARQL | 2008 (W3C Rec) | Mature, niche | RDF / Semantic Web | The standard query for triple stores; pattern matching over ?subject ?predicate ?object; backbone of Wikidata | https://www.w3.org/TR/sparql11-query/ |
| XQuery / XPath | XPath 1999, XQuery 2007 | Mature, declining | XML query | Functional, fully-typed (XPath 2.0+), Turing-complete; dominant in publishing and finance pipelines that still ride on XML | https://www.w3.org/TR/xquery-31/ |
| MongoDB Query Language (MQL) | 2009 | Dominant in document DBs | JSON-shaped operator queries | { field: { $gt: 5 } }-style operators plus an aggregation pipeline; the de facto syntax of NoSQL document queries | https://www.mongodb.com/docs/manual/tutorial/query-documents/ |
| KQL (Kusto Query Language) | 2018 (public) | Dominant in Azure | Microsoft analytics & security | Pipe-style `Table | where |
| PromQL | 2015 | Dominant in observability | Prometheus time-series | Functional algebra over labeled time series; rate(http_requests_total[5m])-style; copied by VictoriaMetrics, Mimir, Thanos | https://prometheus.io/docs/prometheus/latest/querying/basics/ |
| LogQL | 2018 | Active | Loki log queries | Grafana Loki’s PromQL-shaped log query language; label selectors plus regex-like line filters | https://grafana.com/docs/loki/latest/query/ |
| JQ | 2012 | Universal CLI tool | JSON command-line query/transform | Concatenative pipeline language for JSON; ubiquitous in shell scripts; jq is shorthand even when people mean a different tool | https://jqlang.github.io/jq/ |
| JMESPath | 2014 | Active | JSON path query | Spec-first JSON query language; powers aws --query flag, Azure CLI --query, Splunk and many SDKs | https://jmespath.org/ |
| LINQ (.NET) | 2007 | Dominant in .NET | Language-integrated query | C#/VB query expressions that translate to SQL, in-memory enumerables, XML, or any LINQ provider; brought query syntax inside a general-purpose language | https://learn.microsoft.com/dotnet/csharp/linq/ |
| Elasticsearch DSL | 2010 | Dominant in search | JSON-based search queries | Nested JSON of { bool, must, should, filter, ... }; the lingua franca of full-text search and log search | https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html |
| OpenSearch DSL | 2021 (Elastic fork) | Active | OSS Elasticsearch alternative | Near-identical to ES DSL after the 2021 license fork; AWS-led OpenSearch project | https://opensearch.org/docs/latest/query-dsl/ |
| Druid SQL / Spark SQL / Trino SQL | 2016 / 2014 / 2013 | Dominant in OLAP | SQL dialects for distributed OLAP | All inherit ANSI SQL with engine-specific extensions; cross-link to sql | https://trino.io/docs/current/ |
| DuckDB SQL | 2019 | Rapidly growing | Embedded analytical SQL | ”SQLite for analytics”; vectorized execution, columnar; introduces FROM-first syntax, lambdas, list comprehensions | https://duckdb.org/docs/sql/introduction |
| Datomic Datalog | 2012 | Active, niche | Cognitect’s immutable-DB Datalog | EDN-encoded queries over an immutable database with time travel; Clojure-flavored | https://docs.datomic.com/queries/query-data-reference.html |
| Datascript | 2014 | Active | In-memory Datalog | ClojureScript port of Datomic’s query engine for in-memory and front-end use; powers Roam-like apps | https://github.com/tonsky/datascript |
| Gremlin (Apache TinkerPop) | 2009 | Mature | Graph traversal | Concatenative traversal DSL g.V().has('name','Alice').out('knows'); vendor-neutral; supported by JanusGraph, Neptune, CosmosDB | https://tinkerpop.apache.org/gremlin.html |
| AQL (ArangoDB Query Language) | 2012 | Active | Multi-model queries | One language for documents, graphs, and key-value; SQL-like reads, traversal FOR v, e IN OUTBOUND ... for graphs | https://docs.arangodb.com/3.12/aql/ |
| N1QL / SQL++ | 2015 | Active | JSON-native SQL | Couchbase’s “SQL for JSON”; standardized as SQL++ in academic literature; nested-object joins and unnesting | https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/index.html |
| CQL (Cassandra Query Language) | 2011 | Dominant in Cassandra | Wide-column SQL-like | Looks like SQL but the model is partition-key/clustering-key wide-column; intentionally restricted to keep operations cheap at scale | https://cassandra.apache.org/doc/latest/cassandra/cql/ |
| InfluxQL / Flux | 2015 / 2018 | Mixed | InfluxDB time-series | InfluxQL is SQL-shaped; Flux is a functional pipeline-style replacement; InfluxDB 3.x has reverted to SQL via DataFusion, deprecating Flux | https://docs.influxdata.com/influxdb/v2/query-data/ |
Notable threads
- The 2024 ISO GQL standard. ISO/IEC 39075:2024 made GQL the first new ISO query-language standard since SQL. It is openCypher-shaped at heart; Neo4j, TigerGraph, Memgraph, and Oracle have all committed to alignment.
- Datalog’s third life. After dormancy in the 1990s, Datalog returned via program analysis (Soufflé), Datomic (immutable DBs with time-travel), Datascript (front-end), and now Logica (Google) and DataLogger as a target language for AI-generated queries because of its decidability.
- Pipe-shaped query languages won the observability layer. KQL, PromQL, LogQL, and Splunk SPL all converged on
Source | filter | aggregatepipelines because that shape matches how engineers think about logs and metrics. Microsoft is now extending KQL syntax into other Azure products and even SQL Server (via Kusto-style operators). - JSON-native SQL. N1QL/SQL++, BigQuery, Postgres
jsonb, and DuckDB have collectively normalized treating JSON as a first-class value in SQL. The boundary between “SQL” and “document query” is blurrier every year. - Vendor-lock vs. open spec. Cypher, GraphQL, SPARQL, and JMESPath each have an open governance body. Elasticsearch DSL, KQL, Splunk SPL, and Datomic Datalog remain controlled by their vendor. The open-spec ones tend to outlive engine-specific ones.
Citations
- Abiteboul, Hull, Vianu, “Foundations of Databases” (Datalog formal definition)
- Souffle Authors, “Soufflé: A Logic Programming Language”, https://souffle-lang.github.io/
- GraphQL Foundation, “GraphQL Specification”, https://spec.graphql.org/
- Neo4j, “Cypher Manual”, https://neo4j.com/docs/cypher-manual/current/
- ISO/IEC 39075:2024, “Information technology — Database languages — GQL”
- W3C, “SPARQL 1.1 Query Language”, https://www.w3.org/TR/sparql11-query/
- W3C, “XQuery 3.1: An XML Query Language”, https://www.w3.org/TR/xquery-31/
- MongoDB, “Query Documents”, https://www.mongodb.com/docs/manual/tutorial/query-documents/
- Microsoft, “Kusto Query Language Reference”, https://learn.microsoft.com/azure/data-explorer/kusto/query/
- Prometheus Authors, “Querying Prometheus”, https://prometheus.io/docs/prometheus/latest/querying/basics/
- Grafana Labs, “LogQL Reference”, https://grafana.com/docs/loki/latest/query/
- jq Authors, “jq Manual”, https://jqlang.github.io/jq/manual/
- AWS, “JMESPath Specification”, https://jmespath.org/specification.html
- Microsoft, “Language Integrated Query (LINQ)”, https://learn.microsoft.com/dotnet/csharp/linq/
- Elastic, “Query DSL”, https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl.html
- OpenSearch, “Query DSL”, https://opensearch.org/docs/latest/query-dsl/
- Trino Project, “Trino Documentation”, https://trino.io/docs/current/
- DuckDB Foundation, “DuckDB SQL Introduction”, https://duckdb.org/docs/sql/introduction
- Cognitect, “Datomic Query Reference”, https://docs.datomic.com/queries/query-data-reference.html
- Apache TinkerPop, “The Gremlin Graph Traversal Language”, https://tinkerpop.apache.org/gremlin.html
- ArangoDB, “AQL Documentation”, https://docs.arangodb.com/3.12/aql/
- Couchbase, “N1QL Language Reference”, https://docs.couchbase.com/server/current/n1ql/
- Apache Cassandra, “CQL Reference”, https://cassandra.apache.org/doc/latest/cassandra/cql/
- InfluxData, “Query Data with InfluxQL and Flux”, https://docs.influxdata.com/influxdb/v2/query-data/