Files
Conflict_Checker/backend/.llm_cache/dcdc25abbcf4f3f1456299222d78e198ed7b5612d1d1fb9dfe86a45e1194fa8f.json
woogiandClaude Opus 4.8 1d248a8808 Initial commit: Conflict Checker
Cross-discipline design-contradiction checker for construction drawing
sets. Standalone tool broken out from Iron_Bid; a pipeline stage may
later fold back into Iron_Bid.

Pipeline: PDF->images -> per-sheet assertion extraction -> deterministic
clustering by location -> per-cluster reasoning -> report.
Includes CLI (cli/run_check.py) and web UI (backend/main.py).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 00:22:02 +00:00

1 line
23 KiB
JSON

[{"assertion_id": "P01.01#4", "attribute": "pipe_material_above_slab", "original_value": "Sanitary Waste and Vent (Above Slab Only): Cast iron pipe and fittings, ASTM A 888 or CISPI 301.", "source_text": "2. SANITARY WASTE AND VENT: (ABOVE SLAB ONLY). PIPE: CAST IRON PIPE AND FITTINGS, ASTM A 888 OR CISPI 301.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a descriptive text with multiple specifications, no simple normalization possible.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#5", "attribute": "pipe_material_domestic_water", "original_value": "Domestic Water: Type 'L' copper tubing with wrought copper fittings and 95/5 (tin/antimony) solder joints.", "source_text": "3. DOMESTIC WATER: TYPE 'L' COPPER TUBING WITH WROUGHT COPPER FITTINGS AND 95/5 (TIN/ANTIMONY) SOLDER JOINTS.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a descriptive text with multiple specifications, no simple normalization possible.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#6", "attribute": "voltage", "original_value": "480", "source_text": "VOLTS 480", "normalized_value": "480", "normalized_unit": "V", "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#7", "attribute": "phase", "original_value": "3", "source_text": "PHASE 3", "normalized_value": "3", "normalized_unit": "phase", "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#8", "attribute": "power_kW", "original_value": "5", "source_text": "KW 5", "normalized_value": "5", "normalized_unit": "kW", "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#9", "attribute": "tank_capacity", "original_value": "30", "source_text": "TANK CAPACITY GALLONS 30", "normalized_value": "30", "normalized_unit": "gal", "normalized_attribute": null, "normalization_notes": "Unit 'gallons' inferred from source text.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#10", "attribute": "mounting_type", "original_value": "Floor Mounted", "source_text": "WATER CLOSET (FLOOR MOUNTED) (A.D.A.)", "normalized_value": "Floor Mounted", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#11", "attribute": "ada_compliant_height", "original_value": "ADA 17\"H elongated bowl", "source_text": "AMERICAN STANDARD \"ULTIMA VORMAX\", ADA 17\"H ELONGATED BOWL", "normalized_value": "17", "normalized_unit": "in", "normalized_attribute": "height", "normalization_notes": "Extracted height from descriptive text. 'H' and '\"' indicate height in inches.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#12", "attribute": "flush_handle_location", "original_value": "Flush handle to be on the wide side of the stall.", "source_text": "FLUSH HANDLE TO BE ON THE WIDE SIDE OF THE STALL.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a descriptive instruction.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#13", "attribute": "mounting_type", "original_value": "Wall Mounted", "source_text": "LAVATORY (WALL MOUNTED) (A.D.A.)", "normalized_value": "Wall Mounted", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#14", "attribute": "thermostatic_mixing_valve", "original_value": "LF-170 LEONARD THERMOSTATIC MIXING VALVE WITH THE OUTLET TEMPERATURE TO BE SET AT 110F.", "source_text": "LF-170 LEONARD THERMOSTATIC MIXING VALVE WITH THE OUTLET TEMPERATURE TO BE SET AT 110F.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Compound statement includes model and a temperature setting requirement. No simple normalization without losing meaning.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#15", "attribute": "ada_compliant_fixture", "original_value": "LAVATORY (WALL MOUNTED) (A.D.A.)", "source_text": "LAVATORY (WALL MOUNTED) (A.D.A.)", "normalized_value": "true", "normalized_unit": null, "normalized_attribute": "is_ada_compliant", "normalization_notes": "Inferred boolean 'true' from '(A.D.A.)' tag in the text.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#16", "attribute": "mounting_type", "original_value": "Floor Mounted", "source_text": "63M HUSTEE ... 8\" HIGH FLOOR MOUNTED", "normalized_value": "Floor Mounted", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#17", "attribute": "mounting_type", "original_value": "Wall Mount Faucet", "source_text": "PROVIDE WITH MOEN #8230 WITH CHROME PLATED, CAST BRASS, WALL MOUNT, TWO HANDLE SERVICE SINK FAUCET WITH VACUUM BREAKER...", "normalized_value": "Wall Mounted", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Normalized 'Wall Mount Faucet' to standard term 'Wall Mounted'.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#18", "attribute": "mounting_type", "original_value": "Self-rimming", "source_text": "LBAO221965PDC ELKAY, 18 GAUGE TYPE 304 STAINLESS STEEL SINK, SELF-RIMMING, 22\"X19\"X6.5\" NOM. DIMENSIONS...", "normalized_value": "Self-rimming", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#19", "attribute": "ada_compliant_fixture", "original_value": "SINGLE BOWL SINK (A.D.A)", "source_text": "SINGLE BOWL SINK (A.D.A)", "normalized_value": "true", "normalized_unit": null, "normalized_attribute": "is_ada_compliant", "normalization_notes": "Inferred boolean 'true' from '(A.D.A)' tag in the text.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P01.01#20", "attribute": "trap_primer", "original_value": "Install automatic pressure drop activated trap primer by PPP products PR-500.", "source_text": "INSTALL AUTOMATIC PRESSURE DROP ACTIVATED TRAP PRIMER BY PPP PRODUCTS PR-500.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is an instruction. Extracting only the model number would change the meaning from an action to an identification.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#0", "attribute": "room_name", "original_value": "INVENTORY", "source_text": "INVENTORY", "normalized_value": "INVENTORY", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#1", "attribute": "room_name", "original_value": "LOUNGE", "source_text": "LOUNGE", "normalized_value": "LOUNGE", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#2", "attribute": "room_name", "original_value": "MEN'S RESTROOM", "source_text": "MEN'S RESTROOM", "normalized_value": "MEN'S RESTROOM", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#3", "attribute": "room_name", "original_value": "WOMEN'S ROOM", "source_text": "WOMEN'S ROOM", "normalized_value": "WOMEN'S RESTROOM", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Normalized to 'WOMEN'S RESTROOM' for consistency with other labels (e.g., P02.02#3).", "source_text_preserved": true, "normalization_confidence": "medium"}, {"assertion_id": "P02.01#4", "attribute": "room_name", "original_value": "MANAGER'S OFFICE", "source_text": "MANAGER'S OFFICE", "normalized_value": "MANAGER'S OFFICE", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#5", "attribute": "room_name", "original_value": "CLEANING SUPPLIES/STORAGE", "source_text": "CLEANING SUPPLIES/STORAGE", "normalized_value": "CLEANING SUPPLIES/STORAGE", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#6", "attribute": "room_name", "original_value": "SALES AREA", "source_text": "SALES AREA", "normalized_value": "SALES AREA", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#7", "attribute": "fixture_location", "original_value": "EDF-1 is located in WOMEN'S ROOM.", "source_text": "EDF-1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a relational statement.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#8", "attribute": "fixture_location", "original_value": "WC-1 is located in WOMEN'S ROOM.", "source_text": "WC-1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a relational statement.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#9", "attribute": "fixture_location", "original_value": "FD-1 is located in WOMEN'S ROOM.", "source_text": "3\"FD-1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a relational statement.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#10", "attribute": "fixture_location", "original_value": "WC-1 is located in MEN'S RESTROOM.", "source_text": "WC-1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a relational statement.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#11", "attribute": "fixture_location", "original_value": "L-1 is located in MEN'S RESTROOM.", "source_text": "L-1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a relational statement.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#12", "attribute": "fixture_location", "original_value": "SK-1 is located in LOUNGE.", "source_text": "SK-1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a relational statement.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#13", "attribute": "fixture_location", "original_value": "MS-1 is located in CLEANING SUPPLIES/STORAGE.", "source_text": "MS-1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a relational statement.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#14", "attribute": "fixture_location", "original_value": "FD-1 is located in CLEANING SUPPLIES/STORAGE.", "source_text": "3\"FD-1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a relational statement.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#15", "attribute": "fixture_location", "original_value": "FS-1 is located in CLEANING SUPPLIES/STORAGE.", "source_text": "3\"FS-1", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a relational statement.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#16", "attribute": "pipe_size", "original_value": "2", "source_text": "2\"SAN", "normalized_value": "2", "normalized_unit": "in", "normalized_attribute": null, "normalization_notes": "Unit 'in' for inches inferred from '\"' symbol.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#17", "attribute": "pipe_size", "original_value": "2", "source_text": "2\"V", "normalized_value": "2", "normalized_unit": "in", "normalized_attribute": null, "normalization_notes": "Unit 'in' for inches inferred from '\"' symbol.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.01#18", "attribute": "pipe_size", "original_value": "2", "source_text": "2\"SAN", "normalized_value": "2", "normalized_unit": "in", "normalized_attribute": null, "normalization_notes": "Unit 'in' for inches inferred from '\"' symbol.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#0", "attribute": "room_name", "original_value": "INVENTORY", "source_text": "INVENTORY", "normalized_value": "INVENTORY", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#1", "attribute": "room_name", "original_value": "LOUNGE", "source_text": "LOUNGE", "normalized_value": "LOUNGE", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#2", "attribute": "room_name", "original_value": "MEN'S RESTROOM", "source_text": "MEN'S RESTROOM", "normalized_value": "MEN'S RESTROOM", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#3", "attribute": "room_name", "original_value": "WOMEN'S RESTROOM", "source_text": "WOMEN'S RESTROOM", "normalized_value": "WOMEN'S RESTROOM", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#4", "attribute": "room_name", "original_value": "CLEANING SUPPLIES/STORAGE", "source_text": "CLEANING SUPPLIES/STORAGE", "normalized_value": "CLEANING SUPPLIES/STORAGE", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#5", "attribute": "room_name", "original_value": "MANAGER'S OFFICE", "source_text": "MANAGER'S OFFICE", "normalized_value": "MANAGER'S OFFICE", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#6", "attribute": "room_name", "original_value": "SALES AREA", "source_text": "SALES AREA", "normalized_value": "SALES AREA", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#7", "attribute": "keynote_assertion", "original_value": "EWH-1 is located above ceiling, suspended as high as possible in ceiling plenum and requires an auxiliary drain pan.", "source_text": "KEYED NOTE: 1 EWH-1 ABOVE CEILING SUSPENDED AS HIGH AS POSSIBLE IN CEILING PLENUM. PROVIDE AUXILIARY DRAIN PAN BELOW WATER HEATER...", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a descriptive text.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#8", "attribute": "Drain Routing", "original_value": "Route 3/4\" T&P drain line and 3/4\" auxiliary drain lines to floor sink below.", "source_text": "ROUTE 3/4\" T&P DRAIN LINE AND 3/4\" AUXILIARY DRAIN LINES TO FLOOR SINK BELOW.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is an instruction. No simple normalization possible.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#9", "attribute": "Support Requirement", "original_value": "Provide adequate supports to prevent any movement of T&P and aux. drain lines.", "source_text": "PROVIDE ADEQUATE SUPPORTS TO PREVENT ANY MOVEMENT OF T&P AND AUX. DRAIN LINES.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is an instruction. No simple normalization possible.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#10", "attribute": "keynote_assertion", "original_value": "Route proposed 1-1/4\" CW line to existing 2\" water main line.", "source_text": "KEYED NOTE: 2 ROUTE PROPOSED 1-1/4\" CW LINE TO EXISTING 2\" WATER MAIN LINE AT THIS APPROXIMATE LOCATION. FIELD VERIFY EXACT LOCATION AND SIZE OF EXISTING PIPE.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is an instruction. No simple normalization possible.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#11", "attribute": "keynote_assertion", "original_value": "Route 1/2\" cold and hot water down.", "source_text": "KEYED NOTE: 3 ROUTE 1/2\" COLD AND HOT WATER DOWN.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is an instruction. No simple normalization possible.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#12", "attribute": "keynote_assertion", "original_value": "Route 1/2\" cold water down to recessed valve box. Confirm exact location with owner/architect.", "source_text": "KEYED NOTE: 4 ROUTE 1/2\" COLD WATER DOWN TO RECESSED VALVE BOX. CONFIRM EXACT LOCATION WITH OWNER/ARCHITECT.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is an instruction. No simple normalization possible.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P02.02#13", "attribute": "pipe_size", "original_value": "2", "source_text": "(E)2\"CW", "normalized_value": "2", "normalized_unit": "in", "normalized_attribute": null, "normalization_notes": "Unit 'in' for inches inferred from '\"' symbol.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P03.01#0", "attribute": "general_note", "original_value": "Saw-cut and route proposed sanitary waste line to existing 4\" sanitary waste line or larger.", "source_text": "KEYED NOTE: 1 SAW-CUT AND ROUTE PROPOSED SANITARY WASTE LINE TO EXISTING 4\" SANITARY WASTE LINE OR LARGER APPROXIMATELY THIS POINT. FIELD VERIFY EXACT LOCATION, SIZE. DIRECTION OF FLOW AND DEPTH OF OF EXISTING PIPE.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is an instruction. No simple normalization possible.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P03.01#1", "attribute": "general_note", "original_value": "Route proposed new vent branch line to existing 4\" vent main line or larger.", "source_text": "KEYED NOTE: 2 ROUTE PROPOSED NEW VENT BRANCH LINE TO EXISTING 4\" VENT MAIN LINE OR LARGER AT APPROXIMATELY THIS POINT. FIELD VERIFY EXACT LOCATION, SIZE, & ELEVATION OF EXISTING PIPE.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is an instruction. No simple normalization possible.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P03.01#2", "attribute": "equipment_model", "original_value": "170-LF LEONARD", "source_text": "PROVIDE MODEL 170-LF LEONARD THERMOSTATIC MIXING VALVE.", "normalized_value": "LEONARD 170-LF", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Standardized format to 'MANUFACTURER MODEL'.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P03.01#3", "attribute": "temperature", "original_value": "110", "source_text": "OUTLET TEMP SHALL BE 110\u00b0F.", "normalized_value": "110", "normalized_unit": "F", "normalized_attribute": null, "normalization_notes": "Unit 'F' for Fahrenheit inferred from 'F.' and context.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P03.01#4", "attribute": "pressure_relief_drain", "original_value": "Pipe discharge 3/4\" to floor sink per plans", "source_text": "A.S.M.E. RATED TEMP. AND PRESSURE RELIEF VALVE. PIPE DISCHARGE 3/4\" TO FLOOR SINK PER PLANS", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is an instruction for routing. No simple normalization possible.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P03.01#5", "attribute": "expansion_tank_model", "original_value": "A.O. SMITH PMC-2", "source_text": "EXPANSION TANK A.O. SMITH PMC-2", "normalized_value": "A.O. SMITH PMC-2", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P03.01#6", "attribute": "drain_pan", "original_value": "4\" DEEP AUXILIARY DRAIN PAN 18 GAUGE GALVANIZED STEEL.", "source_text": "4\" DEEP AUXILIARY DRAIN PAN 18 GAUGE GALVANIZED STEEL.", "normalized_value": "4", "normalized_unit": "in", "normalized_attribute": "depth", "normalization_notes": "Depth extracted from a compound description. Other attributes (gauge, material) are not included.", "source_text_preserved": true, "normalization_confidence": "medium"}, {"assertion_id": "P03.01#7", "attribute": "drain_line", "original_value": "3/4\" auxiliary drain line to floor sink", "source_text": "3/4\" AUXILIARY DRAIN LINE TO FLOOR SINK PER PLANS", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is an instruction for routing. No simple normalization possible.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P03.01#8", "attribute": "support_spec", "original_value": "2\" Unistrut support. 1/2\" All threaded rods complete with double nuts and lock washers.", "source_text": "2\" UNISTRUT SUPPORT. 1/2\" ALL THREADED RODS COMPLETE WITH DOUBLE NUTS AND LOCK WASHERS.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Compound statement with multiple dimensions and components. No simple normalization possible.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "P03.01#9", "attribute": "installation_note", "original_value": "Must be installed in an upright position.", "source_text": "1. ALWAYS INSTALL IN UPRIGHT POSITION", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is an instruction.", "source_text_preserved": true, "normalization_confidence": "high"}]