What is a Temporal Hypergraph?
Beyond Nodes and Edges
Section titled “Beyond Nodes and Edges”Traditional graph databases model relationships as pairwise edges — one node connects to another. This works well for social networks, dependency trees, and simple knowledge graphs.
But many real-world events involve more than two participants simultaneously:
- A cybersecurity event links a machine + process + account + IP at a specific time
- A drug interaction involves 3–5 substances co-administered to a patient
- A financial transaction connects a sender + receiver + intermediary + jurisdiction
A hypergraph generalizes the graph by allowing each edge (called a hyperedge) to connect any number of nodes — 2, 5, 20, or more — in a single atomic record.
Adding Time
Section titled “Adding Time”A temporal hypergraph extends this further: every hyperedge carries a timestamp (or time range), making the structure a natural fit for event-driven data where the when matters as much as the who.
Hyperedge #1: {Machine-A, Process-svchost, Account-SYSTEM, IP-10.0.0.5} @ t=1000Hyperedge #2: {Machine-A, Process-cmd, Account-Admin, IP-10.0.0.5} @ t=1005Hyperedge #3: {Machine-B, Process-svchost, Account-SYSTEM, IP-10.0.0.5} @ t=1010Why Not a Regular Graph?
Section titled “Why Not a Regular Graph?”| Approach | Limitation |
|---|---|
| Relational DB | Multi-party events require JOIN-heavy star schemas; temporal range queries are slow without custom indexing |
| Property Graph (Neo4j, etc.) | Must decompose n-way events into multiple binary edges + intermediate “event” nodes, losing atomicity |
| RDF / Triple Store | Each fact is a triple (subject-predicate-object); n-way events require reification, which explodes storage and query complexity |
| Temporal Hypergraph | Native representation: one record per event, variable membership, indexed by time |
HyperMesh’s Approach
Section titled “HyperMesh’s Approach”HyperMesh stores temporal hyperedges in a purpose-built binary index (TPI — Temporal Property Index) that partitions data into time buckets. This enables:
- O(1) bucket seek — jump directly to the relevant time window
- O(k) scan — read only the hyperedges within that window
- O(log N) node lookup — find all events involving a specific node via the FMI (Forward Member Index)
The result: sub-millisecond range queries on datasets with millions of hyperedges, without the overhead of B-tree traversal or graph pattern matching.
Key Terminology
Section titled “Key Terminology”| Term | Definition |
|---|---|
| Hyperedge | A single record linking 2–64 nodes at a specific timestamp |
| Member | A node participating in a hyperedge |
| Formation | The semantic type/label of a hyperedge (e.g., “CoProximity”, “NetworkFlow”) |
| TPI | Temporal Property Index — the primary time-bucketed storage layer |
| FMI | Forward Member Index — maps node IDs to their hyperedge participation |
| PSI | Property Secondary Index — optional indexes on numeric properties |
Next Steps
Section titled “Next Steps”- Architecture Overview — how TPI, FMI, and PSI work together
- Python Quickstart — insert your first hyperedges
- Analytics Cookbook — compute graph measures over temporal windows