55 lines
2.8 KiB
PL/PgSQL
55 lines
2.8 KiB
PL/PgSQL
BEGIN;
|
|
|
|
SET ROLE interaction_role;
|
|
|
|
ALTER TABLE interaction.utterance_interpretations
|
|
ADD COLUMN IF NOT EXISTS secondary_speech_act TEXT NOT NULL DEFAULT 'UNKNOWN',
|
|
ADD COLUMN IF NOT EXISTS needs_cognition BOOLEAN NOT NULL DEFAULT FALSE,
|
|
ADD COLUMN IF NOT EXISTS applicability TEXT NOT NULL DEFAULT 'APPLICABLE',
|
|
ADD COLUMN IF NOT EXISTS selection_reason TEXT NOT NULL DEFAULT '';
|
|
|
|
ALTER TABLE interaction.utterance_interpretations DROP CONSTRAINT IF EXISTS utterance_interpretations_secondary_speech_act_check;
|
|
ALTER TABLE interaction.utterance_interpretations
|
|
ADD CONSTRAINT utterance_interpretations_secondary_speech_act_check
|
|
CHECK (secondary_speech_act IN ('DIRECTIVE','ASSERTION','DECISION','PREFERENCE','QUESTION','HYPOTHESIS','CORRECTION','REQUEST_TO_INVESTIGATE','CONFIRMATION','REJECTION','CANCELLATION','CONVERSATIONAL','UNKNOWN'));
|
|
|
|
ALTER TABLE interaction.utterance_interpretations DROP CONSTRAINT IF EXISTS utterance_interpretations_applicability_check;
|
|
ALTER TABLE interaction.utterance_interpretations
|
|
ADD CONSTRAINT utterance_interpretations_applicability_check
|
|
CHECK (applicability IN ('APPLICABLE','LOW_CONFIDENCE','MIXED_INTENT','NEEDS_BROADER_INTERPRETATION','CLARIFICATION_REQUIRED'));
|
|
|
|
CREATE TABLE IF NOT EXISTS interaction.semantic_candidates (
|
|
candidate_id TEXT PRIMARY KEY,
|
|
utterance_id TEXT NOT NULL,
|
|
source TEXT NOT NULL,
|
|
selection_state TEXT NOT NULL,
|
|
primary_speech_act TEXT NOT NULL,
|
|
secondary_speech_act TEXT NOT NULL,
|
|
confidence_millis BIGINT NOT NULL,
|
|
applicability TEXT NOT NULL,
|
|
requested_outcome TEXT NOT NULL DEFAULT '',
|
|
clarification TEXT NOT NULL,
|
|
needs_cognition BOOLEAN NOT NULL DEFAULT FALSE,
|
|
selection_reason TEXT NOT NULL DEFAULT '',
|
|
recorded_at_unix_millis BIGINT NOT NULL,
|
|
CHECK (source IN ('DETERMINISTIC_V2','COGNITIVE_V1')),
|
|
CHECK (selection_state IN ('SELECTED','OBSERVED','REJECTED')),
|
|
CHECK (primary_speech_act IN ('DIRECTIVE','ASSERTION','DECISION','PREFERENCE','QUESTION','HYPOTHESIS','CORRECTION','REQUEST_TO_INVESTIGATE','CONFIRMATION','REJECTION','CANCELLATION','CONVERSATIONAL','UNKNOWN')),
|
|
CHECK (secondary_speech_act IN ('DIRECTIVE','ASSERTION','DECISION','PREFERENCE','QUESTION','HYPOTHESIS','CORRECTION','REQUEST_TO_INVESTIGATE','CONFIRMATION','REJECTION','CANCELLATION','CONVERSATIONAL','UNKNOWN')),
|
|
CHECK (confidence_millis BETWEEN 0 AND 1000),
|
|
CHECK (applicability IN ('APPLICABLE','LOW_CONFIDENCE','MIXED_INTENT','NEEDS_BROADER_INTERPRETATION','CLARIFICATION_REQUIRED')),
|
|
CHECK (clarification IN ('NOT_REQUIRED','REQUIRED'))
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS interaction.semantic_candidate_capability_hints (
|
|
candidate_id TEXT NOT NULL,
|
|
capability_kind TEXT NOT NULL,
|
|
PRIMARY KEY (candidate_id, capability_kind),
|
|
CHECK (candidate_id <> ''),
|
|
CHECK (capability_kind <> '')
|
|
);
|
|
|
|
RESET ROLE;
|
|
|
|
COMMIT;
|