Skip to main content

Fabula

Pattern matching over temporal graphs.

Find patterns in event streams — betrayals, cascades, violations — as they unfold.

pattern access_after_revocation
  stage revoked
    edge ?user "access_revoked" ?resource
  stage accessed
    edge ?user "accessed" ?resource
    unless_between "revoked" "accessed"
      edge ?user "reauthorized" ?resource
Try the PlaygroundGet StartedLearn Sifting

Use cases

Narrative Sifting

Surface compelling story moments in simulation output.

Observability

Detect distributed system anomalies as they propagate.

Process Mining

Match expected workflows against actual event logs.

Compliance

Flag violations the moment a rule is broken.

Cybersecurity

Recognize attack sequences across temporal event streams.

Simulation Monitoring

Track emergent patterns in agent-based simulations.

Features

Zero dependencies. Incremental matching. Allen interval algebra. Negation windows. Gap analysis. Surprise scoring. Pattern composition. DSL with TypeMapper. Bring your own graph.

Built on Felt (ICIDS 2019), Winnow (AIIDE 2021), StU (ICIDS 2022), Allen (CACM 1983).

cargo add fabula fabula-memory
github.com/patricker/fabula