Janus routes a registered query according to its declared windows.
POST /api/queriesparses and validates Janus-QL, then stores query metadata.POST /api/queries/:id/startstarts the applicable historical and/or live execution path and creates the result forwarder for WebSocket subscribers.GET /api/queries/:id/resultsupgrades to a WebSocket and emits JSON result messages with a query id, timestamp, source, and bindings.POST /api/queries/:id/stopstops an active query; only stopped queries can be deleted.
- A historical fixed window is lowered to a SPARQL query over segmented
storage and emits
Historicalresults. - A live window is lowered to the live RSP-QL path and consumes its MQTT-backed
stream source, emitting
Liveresults. - A hybrid query creates both paths. Historical materialization is prepared for supported nested historical subqueries before it is made available to the live path.
Query metadata exposes Registered, WarmingBaseline, Running, Stopped,
or Failed(...). WarmingBaseline is implementation compatibility behavior;
it should not be used as a public Janus-QL language feature.
See HTTP API for the transport contract and Nested Historical Subqueries for lowering constraints.