37 lines
1007 B
SQL
37 lines
1007 B
SQL
|
|
-- MemPalace Knowledge Graph Schema
|
||
|
|
-- SQLite database at ~/.mempalace/knowledge_graph.db
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS entities (
|
||
|
|
id TEXT PRIMARY KEY,
|
||
|
|
name TEXT NOT NULL,
|
||
|
|
type TEXT DEFAULT 'unknown',
|
||
|
|
properties TEXT DEFAULT '{}'
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS triples (
|
||
|
|
id TEXT PRIMARY KEY,
|
||
|
|
subject TEXT NOT NULL,
|
||
|
|
predicate TEXT NOT NULL,
|
||
|
|
object TEXT NOT NULL,
|
||
|
|
valid_from TEXT,
|
||
|
|
valid_to TEXT,
|
||
|
|
confidence REAL DEFAULT 1.0,
|
||
|
|
source_closet TEXT,
|
||
|
|
source_file TEXT
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS attributes (
|
||
|
|
entity_id TEXT NOT NULL,
|
||
|
|
key TEXT NOT NULL,
|
||
|
|
value TEXT,
|
||
|
|
valid_from TEXT,
|
||
|
|
valid_to TEXT,
|
||
|
|
PRIMARY KEY (entity_id, key, valid_from)
|
||
|
|
);
|
||
|
|
|
||
|
|
-- Indexes
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_triples_subject ON triples(subject);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_triples_object ON triples(object);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_triples_predicate ON triples(predicate);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_triples_valid ON triples(valid_from, valid_to);
|