50 lines
1.6 KiB
PL/PgSQL
50 lines
1.6 KiB
PL/PgSQL
BEGIN;
|
|
|
|
SET ROLE epistemics_role;
|
|
|
|
CREATE TABLE IF NOT EXISTS epistemics.truth_bundles (
|
|
bundle_id TEXT PRIMARY KEY,
|
|
source_id TEXT NOT NULL,
|
|
source_kind TEXT NOT NULL,
|
|
source_locator TEXT NOT NULL,
|
|
source_title TEXT NOT NULL,
|
|
source_publisher TEXT NOT NULL,
|
|
snapshot_id TEXT NOT NULL,
|
|
snapshot_source_id TEXT NOT NULL,
|
|
snapshot_content_digest TEXT NOT NULL,
|
|
snapshot_captured_at_unix_millis BIGINT NOT NULL,
|
|
snapshot_freshness TEXT NOT NULL,
|
|
excerpt_id TEXT NOT NULL,
|
|
excerpt_snapshot_id TEXT NOT NULL,
|
|
excerpt_text TEXT NOT NULL,
|
|
excerpt_start BIGINT NOT NULL,
|
|
excerpt_end BIGINT NOT NULL,
|
|
observation_id TEXT NOT NULL,
|
|
observation_observed_at_unix_millis BIGINT NOT NULL,
|
|
claim_id TEXT NOT NULL,
|
|
claim_statement TEXT NOT NULL,
|
|
claim_observation_id TEXT NOT NULL,
|
|
claim_citation_id TEXT NOT NULL,
|
|
claim_verification TEXT NOT NULL,
|
|
belief_id TEXT NOT NULL,
|
|
belief_claim_id TEXT NOT NULL,
|
|
belief_state TEXT NOT NULL,
|
|
citation_id TEXT NOT NULL,
|
|
citation_excerpt_id TEXT NOT NULL,
|
|
citation_evidence TEXT NOT NULL,
|
|
citation_coverage TEXT NOT NULL,
|
|
citation_conflict TEXT NOT NULL,
|
|
citation_resolved_at_unix_millis BIGINT NOT NULL,
|
|
recorded_at_unix_millis BIGINT NOT NULL,
|
|
UNIQUE (snapshot_id, excerpt_id, claim_id),
|
|
CHECK (bundle_id <> ''), CHECK (source_id <> ''), CHECK (source_locator <> ''),
|
|
CHECK (excerpt_start >= 0), CHECK (excerpt_end >= excerpt_start),
|
|
CHECK (recorded_at_unix_millis > 0)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS truth_bundles_source_time_idx
|
|
ON epistemics.truth_bundles (source_id, recorded_at_unix_millis DESC);
|
|
|
|
RESET ROLE;
|
|
COMMIT;
|