Introduction
Utopia is an open-source system for building enterprise world models — persistent, queryable representations of organizational knowledge that evolve over time. Built in Rust, it combines bitemporal knowledge graphs with semantic search and GraphRAG to let AI agents and applications maintain a structured understanding of entities, relationships, and events with full temporal provenance.
What Utopia Does
- Stores knowledge as a bitemporal graph with valid-time and transaction-time tracking
- Supports semantic search over graph entities using pgvector embeddings
- Enables GraphRAG queries for retrieval-augmented generation workflows
- Provides ontology management for defining entity types and relationships
- Exposes REST and MCP APIs for integration with AI agents
Architecture Overview
Utopia is a Rust application backed by PostgreSQL with the pgvector extension for embedding storage. The knowledge graph layer implements bitemporal semantics, allowing queries at any point in time (what was known then vs. what is known now). An ontology engine enforces schema constraints on entities and relationships. The GraphRAG module combines graph traversal with vector similarity search for context retrieval.
Self-Hosting & Configuration
- Requires Rust toolchain for building and PostgreSQL with pgvector extension
- Configure database connection and embedding model in config.toml
- Define your domain ontology through the schema definition API
- Deploy via Docker Compose for a bundled Postgres + Utopia setup
- Set up ingestion pipelines to populate the knowledge graph from your data sources
Key Features
- Bitemporal knowledge graph with full audit trail and time-travel queries
- Integrated semantic search via pgvector embeddings
- GraphRAG support for AI-powered knowledge retrieval
- Ontology-driven schema management for structured knowledge
- High-performance Rust core with PostgreSQL storage
Comparison with Similar Tools
- Neo4j — graph database without bitemporal semantics or built-in RAG
- GraphRAG (Microsoft) — focuses on document-based graph construction, not persistent world models
- Weaviate — vector database with some graph features, different data model
- TerminusDB — graph database with versioning but without the RAG integration
- Apache Jena — RDF triple store without temporal or vector search capabilities
FAQ
Q: What does bitemporal mean in this context? A: Every fact in the graph is tracked along two time dimensions: when it was true in the real world (valid time) and when it was recorded in the system (transaction time). This enables accurate historical queries and audit trails.
Q: Which embedding models are supported? A: Any model that produces vector embeddings can be used. The system integrates with OpenAI, Sentence Transformers, and local embedding models.
Q: Can it work with existing knowledge graphs? A: Yes, it supports importing data from common graph formats and can ingest from structured data sources through its API.
Q: Is PostgreSQL required? A: Yes, PostgreSQL with the pgvector extension is the required storage backend.