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>
1 line
23 KiB
JSON
1 line
23 KiB
JSON
[{"assertion_id": "G11.01#0", "attribute": "project_name", "value": "VERIZON ELYSON", "source_text": "VERIZON ELYSON", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.01#1", "attribute": "project_address", "value": "7022 ELYSON EXCHANGE WAY CYPRESS, TX 77433", "source_text": "7022 ELYSON EXCHANGE WAY CYPRESS, TX 77433", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.01#2", "attribute": "building_name", "value": "ELYSON TOWN CENTER - BUILDING C", "source_text": "ELYSON TOWN CENTER - BUILDING C", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.01#3", "attribute": "general_note", "value": "All work of the general contractor and his subcontractors shall conform to the provisions of the federal, state, city, and county building laws, codes, ordinances, rules and regulations enforced by the authority having jurisdiction (AHJ).", "source_text": "1. ALL WORK OF THE GENERAL CONTRACTOR AND HIS SUBCONTRACTORS (HEREIN REFERRED COLLECTIVELY AS THE CONTRACTOR) SHALL CONFORM TO THE PROVISIONS OF THE FEDERAL, STATE, CITY, AND COUNTY BUILDING LAWS, CODES, ORDINANCES, RULES AND REGULATIONS ENFORCED BY THE AUTHORITY HAVING JURISDICTION (AHJ).", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.01#4", "attribute": "general_note", "value": "Contractor shall warrant all workmanship and materials for a period of 1 year from the date of final completion.", "source_text": "10. UPON OWNER'S REQUEST, THE CONTRACTOR SHALL ISSUE A DUPLICATE OF BLUE-LINE DRAWING UPON COMPLETION... CONTRACTOR SHALL WARRANT ALL WORKMANSHIP AND MATERIALS... FOR A PERIOD OF 1 YEAR FROM THE DATE OF FINAL COMPLETION.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": "warranty_period", "normalization_notes": "Value is a full sentence, only normalizing attribute for searchability.", "source_text_preserved": true, "normalization_confidence": "medium"}, {"assertion_id": "G11.01#5", "attribute": "general_note", "value": "Through-penetrations in fire-resistive walls shall conform to the Authority Having Jurisdiction's current adopted versions of the IBC and local amendments as well as directives by the Local Fire Marshal's Authority.", "source_text": "12. THROUGH-PENETRATIONS IN FIRE-RESISTIVE WALLS SHALL CONFORM TO THE AUTHORITY HAVING JURISDICTION'S CURRENT ADOPTED VERSIONS OF THE IBC AND LOCAL AMENDMENTS AS WELL AS DIRECTIVES BY THE LOCAL FIRE MARSHAL'S AUTHORITY.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.01#6", "attribute": "general_note", "value": "Owner-provided extinguishers shall travel distance not to exceed 75' in accordance w/ NFPA standard 10.", "source_text": "13. PROVIDED THAT EXTINGUISHERS SHALL TRAVEL DISTANCE NOT TO EXCEED 75' IN ACCORDANCE W/ NFPA STANDARD 10 AND AS DIRECTED BY THE FIRE MARSHAL.", "normalized_value": "75", "normalized_unit": "feet", "normalized_attribute": "max_extinguisher_travel_distance", "normalization_notes": "Extracted numerical value and unit from sentence.", "source_text_preserved": true, "normalization_confidence": "medium"}, {"assertion_id": "G11.01#7", "attribute": "general_note", "value": "The priority for project dimensions shall be in the following order: A. Mini dimension for accessibility clearance & building code requirement. B. Large scale details. C. Small scale details. D. Enlarged views, floor plans and elevations.", "source_text": "23. ALIGNMENT OF PARTITIONS AND FINISHES AS SCHEDULED SHALL BE STRAIGHT, TRUE, & PLUMB. THE PRIORITY FOR PROJECT DIMENSIONS SHALL BE IN THE FOLLOWING ORDER: A. MINI DIMENSION FOR ACCESSIBILITY CLEARANCE & BUILDING CODE REQUIREMENT. B. LARGE SCALE DETAILS. C. SMALL SCALE DETAILS. D. ENLARGED VIEWS, FLOOR PLANS AND ELEVATIONS.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.01#8", "attribute": "general_note", "value": "Ceiling heights are indicated from the floor elevation to the face of the suspended ceiling system or face of finish material as scheduled.", "source_text": "24. CEILING HEIGHTS ARE INDICATED FROM THE FLOOR ELEVATION TO THE FACE OF THE SUSPENDED CEILING SYSTEM OR FACE OF FINISH MATERIAL AS SCHEDULED.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.01#9", "attribute": "general_note", "value": "Dimensions shown on drawings shall be to the centerline of the structural grid and structural steel members.", "source_text": "25. A. THE CENTERLINE OF THE STRUCTURAL GRID AND STRUCTURAL STEEL MEMBERS.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.01#10", "attribute": "general_note", "value": "Dimensions shown on drawings shall be to the face of cast in place precast concrete walls.", "source_text": "25. B. THE FACE OF CAST IN PLACE PRECAST CONCRETE WALLS.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.01#11", "attribute": "general_note", "value": "Dimensions shown on drawings shall be to the nominal face of masonry walls.", "source_text": "25. C. THE NOMINAL FACE OF MASONRY WALLS.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.01#12", "attribute": "general_note", "value": "Dimensions shown on drawings shall be to the face of sheathing of partition type as scheduled, unless otherwise noted.", "source_text": "25. D. THE FACE OF SHEATHING OF PARTITION TYPE AS SCHEDULED, UNLESS OTHERWISE NOTED.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.01#13", "attribute": "general_note", "value": "Dimensions shown on drawings shall be to the face of finish material for any dimensions noted as 'clear'.", "source_text": "25. E. THE FACE OF FINISH MATERIAL FOR ANY DIMENSIONS NOTED AS \"CLEAR\".", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.01#14", "attribute": "general_note", "value": "All roof penetration flashing details shall be shown on roof plan.", "source_text": "33. ...ALL ROOF PENETRATION FLASHING DETAILS... SHALL BE SHOWN ON ROOF PLAN AND RESPECTIVE FLASHING DETAILS SHALL BE DEVELOPED.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.02#0", "attribute": "max_level_change", "value": "1/4", "source_text": "1/4\" MAX", "normalized_value": "0.25", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": "Unit assumed from source text '1/4\"'.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.02#1", "attribute": "max_bevel_slope", "value": "1:2", "source_text": "1/2\" MAX", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Ambiguous: original value '1:2' (a slope) contradicts source text '1/2\" MAX' (a dimension).", "source_text_preserved": true, "normalization_confidence": "low"}, {"assertion_id": "G11.02#2", "attribute": "min_knee_clearance_width", "value": "36", "source_text": "36\" MIN", "normalized_value": "36", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": "Unit assumed from source text '36\"'.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#0", "attribute": "quiet_hours", "value": "9PM-7AM", "source_text": "Quiet hours for the premises are from 9PM-7AM", "normalized_value": "21:00-07:00", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Converted to 24-hour format.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#1", "attribute": "service_capacity", "value": "600 Amp 277/480Volt", "source_text": "Shared service to the building is to be 600 Amp 277/480Volt.", "normalized_value": "600 A 277/480 V", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Normalized units 'Amp' to 'A' and 'Volt' to 'V'.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#2", "attribute": "pipe_size", "value": "1 1/2\" valved or 2\" PVC/PEX", "source_text": "Landlord to provide a single 1 1/2\" valved or 2\" PVC/PEX water service to Building shell.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value contains options and cannot be simply normalized.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#3", "attribute": "stub_location", "value": "within the building shell ceiling", "source_text": "Line is stubbed within the building shell ceiling.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#4", "attribute": "pipe_size", "value": "6\" grease and 6\" sanitary", "source_text": "Landlord shall provide a minimum 4' concrete leave out with shared 6\" grease and 6\" sanitary sewer trunk line", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Compound value describing two separate items.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#5", "attribute": "burial_depth", "value": "2' or more", "source_text": "sewer trunk line buried 2' or more, stubbed to the Premises of the shell building.", "normalized_value": "2", "normalized_unit": "feet", "normalized_attribute": "min_burial_depth", "normalization_notes": "Interpreted '2' or more' as a minimum value. Unit from value string.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#6", "attribute": "equipment_capacity", "value": "2500-gallon", "source_text": "There is a shared 2500-gallon grease interceptor that is designated for this shell building's Tenants.", "normalized_value": "2500", "normalized_unit": "gallons", "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#7", "attribute": "general_note", "value": "ALL ROOF PENETRATIONS MUST BE MADE BY LANDLORD'S ROOFING CONTRACTOR, AT TENANTS COST.", "source_text": "ALL ROOF PENETRATIONS MUST BE MADE BY LANDLORD'S ROOFING CONTRACTOR, AT TENANTS COST.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#8", "attribute": "general_note", "value": "TENANT IS REQUIRED TO USE LANDLORD'S FIRE ALARM MONITORING COMPANY TO CONNECT TENANT'S SYSTEM TO LANDLORD'S FIRE ALARM PANEL.", "source_text": "TENANT IS REQUIRED TO USE LANDLORD'S FIRE ALARM MONITORING COMPANY TO CONNECT TENANT'S SYSTEM TO LANDLORD'S FIRE ALARM PANEL.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#9", "attribute": "insulation_rating", "value": "R-19", "source_text": "Demising walls must be insulated with R-19 to limit sound penetration.", "normalized_value": "19", "normalized_unit": null, "normalized_attribute": "r_value", "normalization_notes": "Parsed R-value from standard notation.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#10", "attribute": "construction_extent", "value": "from finished floor slab to roof deck", "source_text": "Tenant shall furnish and install all demising partitions from finished floor slab to roof deck.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#11", "attribute": "door_count", "value": "1 exterior storefront door per each occupant's space", "source_text": "Landlord shall provide 1 exterior storefront door per each occupant's space.", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Value is a sentence, not a simple number.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#12", "attribute": "vapor_barrier", "value": "15 Mil", "source_text": "ii. 15 Mil vapor barrier", "normalized_value": "15", "normalized_unit": "mil", "normalized_attribute": "vapor_barrier_thickness", "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#13", "attribute": "reinforcement", "value": "#4 bars 15\" OCEW (on center each way)", "source_text": "iv. #4 bars 15\" OCEW (on center each way)", "normalized_value": "15", "normalized_unit": "inches", "normalized_attribute": "rebar_spacing", "normalization_notes": "Parsed spacing from compound value. Original value also contains rebar size '#4'.", "source_text_preserved": true, "normalization_confidence": "medium"}, {"assertion_id": "G11.03#14", "attribute": "compressive_strength", "value": "3000PSI", "source_text": "v. 3000PSI minimum concrete", "normalized_value": "3000", "normalized_unit": "psi", "normalized_attribute": null, "normalization_notes": "Normalized unit 'PSI' to 'psi'.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#15", "attribute": "story_count", "value": "single story", "source_text": "c. All spaces are single story with no provision for additional floors.", "normalized_value": "1", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#16", "attribute": "roofer", "value": "PBC Roof Systems - 9119 Meadow Vista Blvd, Houston, TX 77064 1. 281-469-3622, Darrel Kirtley", "source_text": "i. Roofer \u2014 PBC Roof Systems \u2013 9119 Meadow Vista Blvd, Houston, TX 77064\n1. 281-469-3622, Darrel Kirtley", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#17", "attribute": "fire_sprinkler_contractor", "value": "BMF Solutions - 13602 Jarvis, Cypress, TX 77429 1. 832-220-1500 Tony Murray", "source_text": "ii. Fire Sprinkler \u2013 BMF Solutions \u2013 13602 Jarvis, Cypress, TX 77429\n1. 832-220-1500 Tony Murray", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#18", "attribute": "fire_alarm_contractor", "value": "Impact Fire - 1 Chisolm Trail Road, Suite 330, Round Rock, TX 78681 1. 713-263-7535, James Fish", "source_text": "iii. Fire Alarm \u2013 Impact Fire \u2013 1 Chisolm Trail Road, Suite 330, Round Rock, TX 78681\n1. 713-263-7535, James Fish", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#19", "attribute": "storefront_contractor", "value": "ConTor Glass - 27531 Gatlin Lane, Spring, TX 77386 1. 832-283-0599, Preston Wallace", "source_text": "iv. Storefront \u2013 ConTor Glass \u2013 27531 Gatlin Lane, Spring, TX 77386\n1. 832-283-0599, Preston Wallace", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.03#20", "attribute": "notice_period", "value": "10 day", "source_text": "These contractors must be given a 10 day notice to schedule the work.", "normalized_value": "10", "normalized_unit": "days", "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.04#0", "attribute": "scope_of_work", "value": "Lease Space Build-out (LSBO)", "source_text": "X LEASE SPACE BUILD-OUT (LSBO)", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.04#1", "attribute": "occupancy_separation", "value": "Single Occupancy", "source_text": "X SINGLE OCCUPANCY", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.04#2", "attribute": "height_limitation", "value": "75", "source_text": "HEIGHT LIMITATION: 75'", "normalized_value": "75", "normalized_unit": "feet", "normalized_attribute": null, "normalization_notes": "Unit inferred from source text '75''.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.04#3", "attribute": "area_limitation", "value": "UNLIMITED", "source_text": "AREA LIMITATION: UNLIMITED (TABLES 504.3, 504.4, 506.2 IBC 2021)", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.04#4", "attribute": "address", "value": "7022 ELYSON EXCHANGE WAY CYPRESS, TX 77433", "source_text": "ADDRESS: 7022 ELYSON EXCHANGE WAY CITY, ST: CYPRESS, TX ZIP CODE: 77433", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.04#5", "attribute": "number_of_floors", "value": "1", "source_text": "# OF FLOORS: 1", "normalized_value": "1", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.04#6", "attribute": "building_height", "value": "30'-0\"", "source_text": "HEIGHT: 30'-0\"", "normalized_value": "360", "normalized_unit": "inches", "normalized_attribute": null, "normalization_notes": "Converted from feet and inches.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.04#7", "attribute": "shell_building_permit_number", "value": "2402160146", "source_text": "SHELL BUILDING PERMIT #: 2402160146", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.04#8", "attribute": "civil_project_number", "value": "2311220004", "source_text": "CIVIL PROJECT #: 2311220004", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.04#9", "attribute": "project_description", "value": "PROJECT IS A TENANT INTERIOR LEASE SPACE BUILD OUT FOR A FIRST GENERATION RETAIL SPACE. THE SCOPE OF WORK CONSISTS OF NEW CEILINGS, FLOORING, FINISHES, NONSTRUCTURAL WALLS, ELECTRICAL, MECHANICAL AND PLUMBING", "source_text": "PROJECT IS A TENANT INTERIOR LEASE SPACE BUILD OUT FOR A FIRST GENERATION RETAIL SPACE. THE SCOPE OF WORK CONSISTS OF NEW CEILINGS, FLOORING, FINISHES, NONSTRUCTURAL WALLS, ELECTRICAL, MECHANICAL AND PLUMBING", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.04#10", "attribute": "schedule_entry", "value": "OCC. CLASS M, AREA SPECIFIC USE Mercantile, GROSS SF 3,323, SF PER OCC. 60, DESIGN OCC. 56", "source_text": "OCC. CLASS M, AREA SPECIFIC USE MERCANTILE, GROSS SF 3,323, SF PER OCC. 60, DESIGN OCC. 56", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": "Compound value from a schedule. Not normalizing to avoid creating complex objects.", "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G11.04#11", "attribute": "required_exit_count", "value": "2", "source_text": "# OF REQUIRED EXITS 2", "normalized_value": "2", "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G21.01#0", "attribute": "room_name", "value": "INVENTORY", "source_text": "INVENTORY", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G21.01#1", "attribute": "room_name", "value": "LOUNGE", "source_text": "LOUNGE", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G21.01#2", "attribute": "room_name", "value": "MEN'S RESTROOM", "source_text": "MEN'S RESTROOM", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G21.01#3", "attribute": "room_name", "value": "WOMEN'S RESTROOM", "source_text": "WOMEN'S RESTROOM", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null, "normalization_notes": null, "source_text_preserved": true, "normalization_confidence": "high"}, {"assertion_id": "G21.01#4", "attribute": "room_name", "value": "MANAGER'S OFFICE", "source_text": "MANAGER'S OFFICE", "normalized_value": null, "normalized_unit": null, "normalized_attribute": null}] |