CREATE TABLE annotation_events ( id INTEGER PRIMARY KEY, request_id TEXT NOT NULL UNIQUE, paper_id INTEGER NOT NULL REFERENCES papers(id), original_paper_id INTEGER NOT NULL, kind TEXT NOT NULL CHECK(kind IN ('tag','research_type')), namespace TEXT NOT NULL, value TEXT NOT NULL, source_record_id INTEGER REFERENCES source_records(id), evidence_key TEXT NOT NULL, evidence_url TEXT, reason TEXT NOT NULL, actor TEXT NOT NULL, observed_at TEXT NOT NULL, retracts_id INTEGER UNIQUE REFERENCES annotation_events(id), CHECK(retracts_id IS NULL OR retracts_id<>id) ); CREATE INDEX annotation_events_paper ON annotation_events(paper_id,kind,id); CREATE INDEX annotation_events_label ON annotation_events(kind,namespace,value,paper_id);