Align artifacts with canonical URT v5.1 specification
Fixes inconsistencies discovered during audit against urt-taxonomy/: - urt_profile ENUM: Add 'lite' and 'core' profiles (was missing) - USN format: Use canonical regex from spec (was non-compliant) - USN valence encoding: Add V0 (0) and V± (±) support - USN grammar: Add Lite (URT:L:) and Core (URT:C:) formats - Dimension codes: Fix temporal (TC/TR/TH/TF), evidence (ES/EI/EC), comparative (CR-N/CR-B/CR-W/CR-S) in decisions doc - LLM contract: Full USN regex validation pattern Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -140,7 +140,7 @@ CREATE TYPE urt_actionability AS ENUM ('A1', 'A2', 'A3');
|
||||
CREATE TYPE urt_temporal AS ENUM ('TC', 'TR', 'TH', 'TF');
|
||||
CREATE TYPE urt_evidence AS ENUM ('ES', 'EI', 'EC');
|
||||
CREATE TYPE urt_comparative AS ENUM ('CR-N', 'CR-B', 'CR-W', 'CR-S');
|
||||
CREATE TYPE urt_profile AS ENUM ('standard', 'full');
|
||||
CREATE TYPE urt_profile AS ENUM ('lite', 'core', 'standard', 'full');
|
||||
CREATE TYPE urt_confidence AS ENUM ('high', 'medium', 'low');
|
||||
CREATE TYPE urt_relation AS ENUM ('cause_of', 'effect_of', 'contrast', 'resolution');
|
||||
CREATE TYPE urt_entity_type AS ENUM ('location', 'staff', 'product', 'process', 'time', 'other');
|
||||
@@ -411,15 +411,20 @@ ALTER TABLE review_spans
|
||||
ADD CONSTRAINT chk_no_self_relation
|
||||
CHECK (related_span_id IS NULL OR related_span_id != span_id);
|
||||
|
||||
-- USN format validation based on profile
|
||||
-- Standard: V[+-0±]:I[123]:CODE (e.g., "V-:I2:J1.01")
|
||||
-- Full: V[+-0±]:I[123]:CODE:S[123]:A[123]:T[CRHF]:E[SIC] (e.g., "V-:I3:J1.01:S2:A2:TC:ES")
|
||||
-- USN format validation based on profile (URT v5.1 canonical format)
|
||||
-- Lite: URT:L:{domain}:{valence}{intensity}
|
||||
-- Core: URT:C:{category}:{valence}{intensity}
|
||||
-- Standard: URT:S:{subcode}[+{sec}]:{valence}{intensity}:{S}{A}{T}.{E}.{CR}
|
||||
-- Full: URT:F:{subcode}[+{sec}]:{valence}{intensity}:{S}{A}{T}.{E}.{CR}[:{causal}]
|
||||
-- Examples: URT:L:O:+2 | URT:C:J1:-3 | URT:S:J1.03:-2:22TC.ES.N | URT:F:J1.01:-3:23TR.ES.S:CD.O,MG.O
|
||||
ALTER TABLE review_spans
|
||||
ADD CONSTRAINT chk_usn_format
|
||||
CHECK (
|
||||
usn IS NULL OR
|
||||
(profile = 'standard' AND usn ~ '^V[+\-0±]:I[123]:[OPJEAVR][1-4]\.[0-9]{2}$') OR
|
||||
(profile = 'full' AND usn ~ '^V[+\-0±]:I[123]:[OPJEAVR][1-4]\.[0-9]{2}:S[123]:A[123]:T[CRHF]:E[SIC]$')
|
||||
(profile = 'lite' AND usn ~ '^URT:L:[OPJEAVR]:[+\-0±][123]$') OR
|
||||
(profile = 'core' AND usn ~ '^URT:C:[OPJEAVR][1-4]:[+\-0±][123]$') OR
|
||||
(profile = 'standard' AND usn ~ '^URT:S:[OPJEAVR][1-4]\.[0-9]{2}(\+[OPJEAVR][1-4]\.[0-9]{2}){0,2}:[+\-0±][123]:[1-3][1-3]T[CRHF]\.E[SIC]\.[NBWS]$') OR
|
||||
(profile = 'full' AND usn ~ '^URT:F:[OPJEAVR][1-4]\.[0-9]{2}(\+[OPJEAVR][1-4]\.[0-9]{2}){0,2}:[+\-0±][123]:[1-3][1-3]T[CRHF]\.E[SIC]\.[NBWS](:(CD|MG|SY)\.[STEOFRPCSHX](,(CD|MG|SY)\.[STEOFRPCSHX])*)?$')
|
||||
);
|
||||
|
||||
-- Foreign keys for review_spans
|
||||
|
||||
Reference in New Issue
Block a user