You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Janus is a Rust engine for hybrid RDF stream processing. It combines:
3
+
Janus is a Rust engine for unified historical and live RDF stream processing.
4
+
5
+
It combines:
6
+
7
+
- historical window evaluation over segmented RDF storage
8
+
- live window evaluation over incoming streams
9
+
- a single Janus-QL query model for hybrid queries
10
+
- an HTTP/WebSocket API for query lifecycle management and result delivery
11
+
12
+
The name comes from the Roman deity Janus, associated with transitions and with looking both backward and forward. That dual perspective matches Janus's goal: querying past and live RDF data together.
13
+
14
+
## What Janus Supports
15
+
16
+
- Historical windows with `START` / `END`
17
+
- Sliding live windows with `RANGE` / `STEP`
18
+
- Hybrid queries that mix historical and live windows
19
+
- Extension functions for anomaly-style predicates such as thresholds, relative change, z-score, outlier checks, and trend divergence
20
+
- Optional baseline bootstrapping for hybrid anomaly queries with `USING BASELINE <window> LAST|AGGREGATE`
21
+
- HTTP endpoints for registering, starting, stopping, listing, and deleting queries
22
+
- WebSocket result streaming for running queries
23
+
24
+
## Query Model
25
+
26
+
Janus uses Janus-QL, a hybrid query language for querying historical and live RDF data in one query.
27
+
28
+
Example:
29
+
30
+
```sparql
31
+
PREFIX ex: <http://example.org/>
32
+
PREFIX janus: <https://janus.rs/fn#>
33
+
PREFIX baseline: <https://janus.rs/baseline#>
34
+
35
+
REGISTER RStream ex:out AS
36
+
SELECT ?sensor ?reading
37
+
FROM NAMED WINDOW ex:hist ON LOG ex:store [START 1700000000000 END 1700003600000]
38
+
FROM NAMED WINDOW ex:live ON STREAM ex:stream1 [RANGE 5000 STEP 1000]
0 commit comments