@@ -8,7 +8,7 @@ Every document has a trust tier that weights search results. Every chunk has a S
88
99[ ![ Python] ( https://img.shields.io/badge/Python-3.12+-3776AB.svg )] ( https://www.python.org/ )
1010[ ![ License] ( https://img.shields.io/badge/License-Apache_2.0-blue.svg )] ( https://opensource.org/licenses/Apache-2.0 )
11- [ ![ Tests] ( https://img.shields.io/badge/Tests-543_passing -brightgreen.svg )] ( tests/ )
11+ [ ![ Tests] ( https://img.shields.io/badge/Tests-1048_passing -brightgreen.svg )] ( tests/ )
1212[ ![ Crypto] ( https://img.shields.io/badge/Crypto-SHA3--256%20%C2%B7%20AES--256--GCM%20%C2%B7%20ML--KEM--768%20%C2%B7%20ML--DSA--65-purple.svg )] ( #security )
1313
1414</div >
@@ -28,6 +28,7 @@ A Vault is a governed store of knowledge resources. Each resource is screened by
2828│ INGEST │ Parse → Chunk → SHA3-256 CID → Embed → Store │
2929│ GOVERN │ Trust tiers · Lifecycle · Data classification │
3030│ RETRIEVE │ Hybrid search · Trust-weighted · Time-travel │
31+ │ GRAPH │ Entities · Edges · Traversal · Extraction │
3132│ VERIFY │ Merkle tree · CID per chunk · Proof export │
3233│ AUDIT │ Every write → VaultEvent → Capsule (opt.) │
3334│ ENCRYPT │ AES-256-GCM · ML-KEM-768 · ML-DSA-65 │
@@ -133,7 +134,7 @@ pip install qp-vault
133134
134135| Command | What You Get | Dependencies |
135136| ---| ---| ---|
136- | ` pip install qp-vault ` | SQLite, trust search, CAS, Merkle, lifecycle, Membrane, RBAC | ** 1** (pydantic) |
137+ | ` pip install qp-vault ` | SQLite, trust search, CAS, Merkle, lifecycle, Membrane, RBAC, Knowledge Graph | ** 1** (pydantic) |
137138| ` pip install qp-vault[postgres] ` | + PostgreSQL + pgvector hybrid search | + sqlalchemy, asyncpg, pgvector |
138139| ` pip install qp-vault[encryption] ` | + AES-256-GCM encryption at rest | + cryptography, pynacl |
139140| ` pip install qp-vault[pq] ` | + ML-KEM-768 + ML-DSA-65 post-quantum crypto | + liboqs-python |
@@ -187,6 +188,41 @@ print(result.merkle_root)
187188proof = vault.export_proof(resource_id)
188189```
189190
191+ ### Knowledge Graph
192+
193+ Track entities, relationships, and mentions across your vault. Works on both PostgreSQL and SQLite.
194+
195+ ``` python
196+ # Create entities
197+ alice = vault.graph.create_node(name = " Alice Chen" , entity_type = " person" ,
198+ properties = {" role" : " CTO" })
199+ acme = vault.graph.create_node(name = " Acme Corp" , entity_type = " company" )
200+
201+ # Connect them
202+ vault.graph.create_edge(source_id = alice.id, target_id = acme.id,
203+ relation_type = " works_at" , weight = 0.9 )
204+
205+ # Search and traverse
206+ results = vault.graph.search_nodes(" Alice" )
207+ neighbors = vault.graph.neighbors(alice.id, depth = 2 )
208+
209+ # Track mentions in documents
210+ resource = vault.add(" Alice Chen leads engineering at Acme." , name = " team.md" )
211+ vault.graph.track_mention(alice.id, resource.id,
212+ context_snippet = " Alice Chen leads engineering" )
213+
214+ # Backlinks: find all documents mentioning an entity
215+ backlinks = vault.graph.get_backlinks(alice.id)
216+
217+ # Build LLM context from graph relationships
218+ context = vault.graph.context_for([alice.id, acme.id])
219+
220+ # Graph-augmented search: boost docs mentioning detected entities
221+ results = vault.search(" Alice project updates" , graph_boost = True )
222+ ```
223+
224+ Intelligence services for extraction, detection, resolution, materialization, and wikilinks. See [ Knowledge Graph docs] ( docs/knowledge-graph.md ) .
225+
190226### Multi-Tenancy
191227
192228``` python
@@ -327,7 +363,8 @@ app.include_router(router, prefix="/v1/vault")
327363| Hybrid encryption | ML-KEM-768 + AES-256-GCM | FIPS 203+197 | Quantum-resistant data encryption |
328364| Content screening | Membrane pipeline | -- | Prompt injection, jailbreak, XSS detection |
329365| Access control | RBAC | -- | Reader / Writer / Admin roles |
330- | Input validation | Pydantic + custom | -- | Enum checks, name/tag/metadata limits |
366+ | Input validation | Pydantic + custom | -- | Enum checks, name/tag/metadata/properties limits |
367+ | Graph sanitization | Membrane pipeline | -- | NFKC normalization, HTML escaping, XML isolation for LLM extraction |
331368| Plugin verification | SHA3-256 manifest | -- | Hash-verified plugin loading |
332369| Key management | ctypes memset | -- | Secure key zeroization |
333370| Self-testing | FIPS KAT | -- | SHA3-256 + AES-256-GCM known answer tests |
@@ -356,6 +393,7 @@ Each independently useful. Together, the governed AI platform for autonomous org
356393| [ Getting Started] ( docs/getting-started.md ) | Developers |
357394| [ Architecture] ( docs/architecture.md ) | Developers, Architects |
358395| [ API Reference] ( docs/api-reference.md ) | Developers |
396+ | [ Knowledge Graph] ( docs/knowledge-graph.md ) | Developers, Data Engineers |
359397| [ Trust Tiers] ( docs/trust-tiers.md ) | Developers, Product |
360398| [ Knowledge Lifecycle] ( docs/lifecycle.md ) | Developers, Compliance |
361399| [ Memory Layers] ( docs/memory-layers.md ) | Developers, Architects |
0 commit comments