MemNexus
Concepts

Knowledge Graphs

How MemNexus uses graph relationships to connect memories, topics, entities, and facts.

MemNexus doesn't just store memories in a flat list — it builds a graph of relationships between memories, topics, entities, and facts. This graph structure enables queries that flat search can't answer.

Why a graph?

Consider a developer who stores 500 memories over 3 months. With flat search, they can find individual memories. With a graph, they can also:

  • Find all memories related to a specific entity (e.g., "Node.js")
  • Discover topics that frequently appear together
  • Trace how decisions evolved over time
  • See which tools and technologies are connected in their workflow

The MemNexus graph

Memory ──[HAS_TOPIC]──────→ Topic
Memory ──[MENTIONS]────────→ Entity
Memory ──[BELONGS_TO]──────→ Conversation
Memory ──[RELATED_TO]──────→ Memory
Fact   ──[HAS_SUBJECT]─────→ Entity
Fact   ──[HAS_OBJECT]──────→ Entity
Topic  ──[RELATED_TO]──────→ Topic

Every node and relationship is stored in a purpose-built graph database that excels at traversing these connections.

Facts as structured knowledge

Facts are the explicit knowledge layer of the graph. Each fact is a subject-predicate-object triple:

MemNexus  →  built_with  →  Node.js
GraphDB   →  is_a        →  Graph Database
core-api  →  uses        →  Express

Facts create a web of relationships that agents can traverse and reason over. Unlike memories (which are episodic), facts represent persistent truths.

Fact confidence

Each fact has a confidence score (0-1) indicating how certain the information is:

  • 1.0 — Verified truth
  • 0.7-0.9 — High confidence, likely correct
  • 0.5-0.7 — Moderate confidence, worth verifying
  • Below 0.5 — Low confidence, treat as hypothesis

Entities

Entities are the people, tools, projects, and concepts that appear across your memories. MemNexus extracts and tracks entities to build connections.

When multiple memories mention "Node.js", MemNexus recognizes it as a recurring entity and can show:

  • All memories that mention Node.js
  • All facts about Node.js
  • Topics that co-occur with Node.js
  • Other entities related to Node.js

Graph traversal

The real power of a knowledge graph is traversal. Instead of searching by keywords, you can follow relationships:

"What do I know about the tools used in this project?"

Project → [HAS_TOPIC] → deployment
                         → [RELATED_TO] → Docker
                                          → [MENTIONED_IN] → Memory about Dockerfile setup

This traversal connects a project to Docker to a specific memory about Dockerfile configuration — a connection that keyword search alone might miss.

CapabilityFlat searchGraph
Find by meaningYesYes
Find by keywordYesYes
Traverse relationshipsNoYes
Discover connectionsNoYes
Topic clusteringNoYes
Fact reasoningNoYes
Cross-entity queriesNoYes

Building a good graph

  • Use consistent topics — "core-api" not sometimes "core api"
  • Store facts for key relationships — Don't rely on extraction alone
  • Tag entities explicitly — Use topics that match entity names
  • Review topic clusters — Periodically check detected clusters for accuracy