Fabula
Incremental pattern matching over temporal graphs.
Fabula finds patterns in graphs where edges have validity intervals. You define patterns ("find a character whose loyalty dropped after an institutional failure, with no trust recovery in between"), register them with the engine, and it tracks partial matches incrementally as new edges arrive.
Crate Structure
fabula(this crate) — core library with zero dependencies. Pattern types, theDataSourcetrait, Allen interval algebra, theSiftEngine.fabula-memory—MemGraph, a simple in-memoryDataSourcefor testing.fabula-petgraph—DataSourceadapter wrappingpetgraph::StableGraph.fabula-grafeo—DataSourceadapter for the Grafeo graph database.
Quick Start
use *;
// Define a pattern: two betrayals by the same character
let pattern = new
.stage
.stage
.build;
assert_eq!;
assert_eq!;
For full evaluation examples, see fabula-memory which provides MemGraph.