SignalQL specification versions
SignalQL keeps language evolution transparent. Older versions remain viewable as historical references.
Current
- v0.5 — "Information Objects": stable object identity (
object://id[@rev]), revisions, representations, revision-pinned derivations with computed dependency state, object lineage (TRACE OBJECT/TRACE CLAIM,FIND DEPENDENTS), budgeted and explainable context bundles (CONTEXT FOR "task",EXPLAIN CONTEXT), trust and role metadata, and capability discovery (SHOW CAPABILITIES). Additive over v0.4 and read-only. See v0.5 spec. - v0.4 — the "Operational Graph": graph pattern operators (
MATCH/CONNECTED/PATH/WITHOUT), reasoning lineage (TRACE), context bundles (CONTEXT FOR), and bitemporalAS OF(reference compiler implements v0.4-core). See v0.4 spec / roadmap. - v0.3 — aggregation, shaping, metrics binding, catalog introspection, and typed result envelope (reference compiler implements v0.3-core).
- v0.2 — generalized evidence and signal retrieval layer (stable baseline; still supported).
Historical
- v0.1 — behavioral analytics-focused baseline (
COUNT,FUNNEL,GROUP BY DAY).
Reference compiler support matrix
| Surface | v0.1 | v0.2 | v0.3-core | v0.3-extended | v0.3-capability |
|---|---|---|---|---|---|
| Parse | yes | yes | yes | yes | parse only |
| Postgres compile | yes | plan SQL | direct SQL (events) | plan SQL | CapabilityError |
| Demo CSV run | yes | — | yes | partial | — |
| Result envelope | — | — | yes | yes | — |
| MCP / CLI | yes | yes | yes | compile + guard | structured error |
v0.3-core (implemented): FROM events retrieve with WHERE, DURING, AS OF, BUCKET BY, GROUP BY, HAVING, ORDER BY, LIMIT, aggregates (count, count_distinct, sum, avg, min, max, variance, stddev, percentile, stats), v0.3 FUNNEL (->), canonical formatter, result envelope helpers.
v0.3-extended (plan SQL or guarded): entity/metric sources, signal() / probability / semantic field refs, TRAVERSE, TREND.
v0.3-capability (parse; compile/run throws CapabilityError): DESCRIBE, WATCH, governed metric(...) execution, catalog providers.
v0.4 (Operational Graph) tiers
| Surface | v0.4-core | v0.4-extended | v0.4-capability |
|---|---|---|---|
| Parse | yes | yes | yes |
| Postgres compile | direct recursive SQL | guarded | CapabilityError |
| Demo graph run | yes | partial | — |
v0.4-core (implemented): MATCH (single-hop edges) + WITHOUT absence, FIND … CONNECTED TO … VIA, PATH, TRACE ordered lineage, CONTEXT FOR bundles, bitemporal AS OF, graph limits/cycle guard, demo graph evaluator.
v0.4-extended (guarded): signal()/probability()/semantic_match() in graph predicates, aggregate returns inside graph queries, multi-hop MATCH edges.
v0.4-capability: streaming/continuous graph subscriptions.
v0.5 (Information Objects) tiers
| Surface | v0.5-core | v0.5-extended | v0.5-capability |
|---|---|---|---|
| Parse | yes | yes | yes |
| Postgres compile | direct recursive SQL | direct SQL returning facts/scores for the named scorer | CapabilityError |
| Reference runtime | yes | yes (packs the bundle) | yes (introspect() / context store) |
v0.5-core (implemented): GET OBJECT, SHOW REVISIONS, SHOW REPRESENTATIONS, GET REPRESENTATION, FIND OBJECT … WHERE including dependency state, FIND DEPENDENTS, TRACE OBJECT / TRACE CLAIM, SHOW OBJECT TYPES.
v0.5-extended (implemented; deterministic per scorer): CONTEXT FOR "task" with BUDGET / PREFER / EXCLUDE / MAX … / WITH EVIDENCE, FIND OBJECT ABOUT. Guarded: signal()/probability()/semantic_match() in object predicates.
v0.5-capability (answered by the implementation, not SQL): SHOW CAPABILITIES, EXPLAIN CONTEXT context://id.
v0.5 also makes keywords contextual in every version's grammar: a keyword in a name position is a name, and v0.5 adds no reserved words. No previously valid query changes meaning; this is enforced against a golden corpus of pre-v0.5 queries.
Legacy v0.1 queries remain valid and compile through the compatibility parser path.
Compatibility policy
- New language versions are additive where practical, but may tighten grammar and contracts for determinism.
- Historical versions remain published and linkable for implementation audits.
- Tooling may support multiple versions; each tool must declare which version it executes.
Canonical links
- Current spec: v0.5
- Previous spec: v0.4
- Current scope: v0.2 scope (v0.3 extends v0.2 boundaries; scope update in progress)
- Stable baseline: v0.2
- Roadmap: v0.6 direction — SignalQL-Command notes (non-normative); historical v0.4 roadmap
- Historical spec: v0.1