Files
mempalace/website/concepts/knowledge-graph.md
T
Igor Lins e Silva dfb22f5345 docs: add VitePress documentation site
- 22 content pages across Guide, Concepts, and Reference sections
- Custom indigo/cyan theme with Lucide icons and Mermaid diagrams
- GitHub Actions workflow for GitHub Pages deployment
- Live preview: https://mempalace-docs.netlify.app/
2026-04-09 19:41:08 -03:00

2.6 KiB

Knowledge Graph

MemPalace includes a temporal entity-relationship graph — like Zep's Graphiti, but SQLite instead of Neo4j. Local and free.

What It Stores

Entity-relationship triples with temporal validity:

Subject → Predicate → Object [valid_from → valid_to]

Facts have time windows. When something stops being true, you invalidate it — and historical queries still find it.

Usage

Python API

from mempalace.knowledge_graph import KnowledgeGraph

kg = KnowledgeGraph()

# Add facts
kg.add_triple("Kai", "works_on", "Orion", valid_from="2025-06-01")
kg.add_triple("Maya", "assigned_to", "auth-migration", valid_from="2026-01-15")
kg.add_triple("Maya", "completed", "auth-migration", valid_from="2026-02-01")

# Query: everything about Kai
kg.query_entity("Kai")
# → [Kai → works_on → Orion (current), Kai → recommended → Clerk (2026-01)]

# Query: what was true in January?
kg.query_entity("Maya", as_of="2026-01-20")
# → [Maya → assigned_to → auth-migration (active)]

# Timeline
kg.timeline("Orion")
# → chronological story of the project

Invalidating Facts

When something stops being true:

kg.invalidate("Kai", "works_on", "Orion", ended="2026-03-01")

Now queries for Kai's current work won't return Orion. Historical queries still will.

MCP Tools

Through the MCP server, the knowledge graph is available as tools:

Tool Description
mempalace_kg_query Query entity relationships with time filtering
mempalace_kg_add Add facts
mempalace_kg_invalidate Mark facts as ended
mempalace_kg_timeline Chronological entity story
mempalace_kg_stats Graph overview

Storage

The knowledge graph uses SQLite with two tables:

entities — people, projects, tools, concepts:

  • id — lowercase normalized name
  • name — display name
  • type — person, project, tool, concept, etc.
  • properties — JSON blob for extra metadata

triples — relationships between entities:

  • subjectpredicateobject
  • valid_from — when this became true
  • valid_to — when it stopped being true (NULL = still current)
  • confidence — 0.0 to 1.0
  • source_closet — link back to the verbatim memory

Database location: ~/.mempalace/knowledge_graph.sqlite3

Comparison

Feature MemPalace Zep (Graphiti)
Storage SQLite (local) Neo4j (cloud)
Cost Free $25/mo+
Temporal validity Yes Yes
Self-hosted Always Enterprise only
Privacy Everything local SOC 2, HIPAA