Zenith Logic Foundry

Database: Property-Graph Model

zlf stores a property graph in RocksDB.

Nodes

A node has an id (string, up to 255 characters), a set of labels, and a property map. Node properties are versioned: each mutation bumps the version and preserves prior property values under version keys (temporal queries read them).

node(alice).
node(alice, [person], { name: "Alice", age: 30 }).

Edges

A directed edge is identified by (source, type, target) and can carry properties:

edge(alice, knows, bob).
edge(alice, knows, bob, { since: 2024 }).

Edge identity is source:type:target; the same triple with properties merges into one edge.

Properties

property(Id, Key, Value) reads/writes a property of a node or edge id. Node and edge properties are also reachable through prop_Key(Id, Value) shortcuts.

Labels and edge types

Labels and edge types become queryable shortcuts:

person(alice).    % label
knows(a, b).      % edge type

Consistency notes