Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0a84c747f2 | |||
| cf6005a47c | |||
| 64d8b0f1f9 | |||
| d9278f256e | |||
| 0dbd7b4e45 | |||
| b663e2508f | |||
| ff100c1cb8 |
@@ -0,0 +1,27 @@
|
||||
/**
|
||||
* Proxy: Admin → Backend /api/compliance/agent/admin/benchmark
|
||||
* (P107 — Branchen-Benchmark-Cockpit)
|
||||
*/
|
||||
import { NextRequest, NextResponse } from 'next/server'
|
||||
|
||||
const BACKEND_URL = process.env.BACKEND_API_URL || 'http://backend-compliance:8002'
|
||||
|
||||
export async function GET(request: NextRequest) {
|
||||
const qs = request.nextUrl.searchParams.toString()
|
||||
try {
|
||||
const r = await fetch(
|
||||
`${BACKEND_URL}/api/compliance/agent/admin/benchmark?${qs}`,
|
||||
{ signal: AbortSignal.timeout(20000) },
|
||||
)
|
||||
const body = await r.text()
|
||||
return new NextResponse(body, {
|
||||
status: r.status,
|
||||
headers: { 'Content-Type': r.headers.get('content-type') || 'application/json' },
|
||||
})
|
||||
} catch (e: any) {
|
||||
return NextResponse.json(
|
||||
{ error: 'Benchmark-API nicht erreichbar', detail: String(e) },
|
||||
{ status: 503 },
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,266 @@
|
||||
'use client'
|
||||
|
||||
/**
|
||||
* P107 — Branchen-Benchmark-Cockpit.
|
||||
*
|
||||
* Multi-Site-Vergleich auf einen Blick. Anonymize-Toggle für Big-4-
|
||||
* Wirtschaftspruefer-Demos.
|
||||
*
|
||||
* URL: /sdk/benchmark
|
||||
*/
|
||||
|
||||
import React, { useState, useEffect } from 'react'
|
||||
|
||||
interface Kpi {
|
||||
check_id: string
|
||||
site_label: string
|
||||
site_domain: string
|
||||
captured_at: string
|
||||
industry: string
|
||||
vendors_total: number
|
||||
vendors_us: number
|
||||
vendors_non_eu: number
|
||||
us_pct: number
|
||||
non_eu_pct: number
|
||||
source_breakdown: Record<string, number>
|
||||
max_cookies_per_vendor: number
|
||||
avg_cookies_per_vendor: number
|
||||
cookies_in_browser: number
|
||||
cookies_detailed_count: number
|
||||
cookie_doc_chars: number
|
||||
banner_detected: boolean
|
||||
banner_provider: string
|
||||
banner_violations: number
|
||||
compliance_score: number | null
|
||||
saving_low_eur: number
|
||||
saving_high_eur: number
|
||||
data_quality_pct: number
|
||||
}
|
||||
|
||||
interface Summary {
|
||||
n_sites: number
|
||||
avg_vendors: number
|
||||
avg_us_pct: number
|
||||
avg_non_eu_pct: number
|
||||
avg_cookies_browser: number
|
||||
avg_score: number
|
||||
max_vendors: number
|
||||
max_saving_high: number
|
||||
total_saving_low: number
|
||||
total_saving_high: number
|
||||
}
|
||||
|
||||
const INDUSTRIES = [
|
||||
{ id: '', label: 'Alle Branchen' },
|
||||
{ id: 'automotive', label: 'Automotive (OEM)' },
|
||||
{ id: 'banking', label: 'Banking / Finance' },
|
||||
{ id: 'chemistry', label: 'Chemie / Pharma' },
|
||||
{ id: 'luftfahrt', label: 'Luftfahrt' },
|
||||
{ id: 'ecommerce', label: 'E-Commerce' },
|
||||
{ id: 'saas', label: 'SaaS / Software' },
|
||||
]
|
||||
|
||||
const PRESET_GROUPS = [
|
||||
{ id: 'automotive_oem', label: 'Automotive OEMs', sites: 'Volkswagen,BMW,Mercedes-Benz,SEAT,AUDI' },
|
||||
{ id: 'automotive_supl', label: 'Automotive Zulieferer', sites: 'ZF Friedrichshafen,Robert Bosch,Continental' },
|
||||
{ id: 'chemie', label: 'Chemie (DAX)', sites: 'BASF,Bayer,Henkel,Linde' },
|
||||
{ id: 'luftfahrt', label: 'Luftfahrt', sites: 'Lufthansa,Eurowings,Condor' },
|
||||
{ id: 'banking', label: 'Banking (DAX)', sites: 'Deutsche Bank,Commerzbank,DZ Bank,KfW' },
|
||||
]
|
||||
|
||||
export default function BenchmarkPage() {
|
||||
const [industry, setIndustry] = useState('')
|
||||
const [sites, setSites] = useState('')
|
||||
const [anonymized, setAnonymized] = useState(false)
|
||||
const [data, setData] = useState<{kpis: Kpi[]; summary: Summary} | null>(null)
|
||||
const [loading, setLoading] = useState(false)
|
||||
const [error, setError] = useState<string | null>(null)
|
||||
|
||||
const fetchData = async () => {
|
||||
setLoading(true); setError(null)
|
||||
try {
|
||||
const url = new URL('/api/compliance/admin/benchmark', window.location.origin)
|
||||
if (industry) url.searchParams.set('industry', industry)
|
||||
if (sites) url.searchParams.set('sites', sites)
|
||||
if (anonymized) url.searchParams.set('anonymized', 'true')
|
||||
const r = await fetch(url.toString())
|
||||
if (!r.ok) throw new Error(`HTTP ${r.status}`)
|
||||
setData(await r.json())
|
||||
} catch (e: any) {
|
||||
setError(e.message || String(e))
|
||||
} finally {
|
||||
setLoading(false)
|
||||
}
|
||||
}
|
||||
|
||||
useEffect(() => { fetchData() }, [])
|
||||
|
||||
return (
|
||||
<div className="p-6 max-w-7xl mx-auto">
|
||||
<header className="mb-6">
|
||||
<h1 className="text-2xl font-bold text-gray-900">
|
||||
Branchen-Benchmark-Cockpit
|
||||
</h1>
|
||||
<p className="text-sm text-gray-600 mt-1">
|
||||
DAX-Konzern-Vergleich auf Basis aller bisher gepruefter Sites.
|
||||
Mit Anonymize-Toggle fuer Wirtschaftspruefer-Demos.
|
||||
</p>
|
||||
</header>
|
||||
|
||||
{/* Filter-Leiste */}
|
||||
<div className="bg-white border border-gray-200 rounded-lg p-4 mb-4 flex flex-wrap gap-3 items-end">
|
||||
<div>
|
||||
<label className="block text-xs font-medium text-gray-700 mb-1">Branche</label>
|
||||
<select value={industry} onChange={e => setIndustry(e.target.value)}
|
||||
className="px-3 py-2 border rounded text-sm">
|
||||
{INDUSTRIES.map(i => <option key={i.id} value={i.id}>{i.label}</option>)}
|
||||
</select>
|
||||
</div>
|
||||
<div className="flex-1 min-w-[300px]">
|
||||
<label className="block text-xs font-medium text-gray-700 mb-1">
|
||||
Sites (komma-getrennt) oder Preset wählen
|
||||
</label>
|
||||
<input value={sites} onChange={e => setSites(e.target.value)}
|
||||
placeholder="Volkswagen,BMW,Mercedes-Benz"
|
||||
className="w-full px-3 py-2 border rounded text-sm font-mono" />
|
||||
<div className="flex flex-wrap gap-1 mt-1">
|
||||
{PRESET_GROUPS.map(p => (
|
||||
<button key={p.id} onClick={() => setSites(p.sites)}
|
||||
className="px-2 py-0.5 text-[10px] bg-gray-100 hover:bg-gray-200 rounded">
|
||||
{p.label}
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
<label className="flex items-center gap-2 text-sm cursor-pointer">
|
||||
<input type="checkbox" checked={anonymized}
|
||||
onChange={e => setAnonymized(e.target.checked)}
|
||||
className="rounded" />
|
||||
<span><strong>Anonymisieren</strong> (OEM 1/2/3 statt Hersteller-Namen)</span>
|
||||
</label>
|
||||
<button onClick={fetchData} disabled={loading}
|
||||
className="px-4 py-2 bg-purple-600 text-white rounded font-medium hover:bg-purple-700 disabled:opacity-50">
|
||||
{loading ? 'Lade…' : 'Aktualisieren'}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{error && (
|
||||
<div className="bg-red-50 border border-red-200 text-red-700 rounded p-3 text-sm mb-4">
|
||||
Fehler: {error}
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Summary-KPIs */}
|
||||
{data?.summary && (
|
||||
<div className="grid grid-cols-2 md:grid-cols-5 gap-2 mb-4">
|
||||
<Kpi label="Sites im Vergleich" value={data.summary.n_sites} />
|
||||
<Kpi label="⌀ Vendors" value={data.summary.avg_vendors} />
|
||||
<Kpi label="⌀ US-Anteil" value={`${data.summary.avg_us_pct}%`}
|
||||
tone={data.summary.avg_us_pct > 60 ? 'warn' : 'ok'} />
|
||||
<Kpi label="⌀ Score" value={data.summary.avg_score || '—'} />
|
||||
<Kpi label="Saving-Potenzial (Σ)" value={`${Math.round(data.summary.total_saving_high/1000)}k €`}
|
||||
tone="ok" />
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Vergleichstabelle */}
|
||||
{data?.kpis && data.kpis.length > 0 ? (
|
||||
<div className="bg-white border border-gray-200 rounded-lg overflow-x-auto">
|
||||
<table className="w-full text-xs">
|
||||
<thead className="bg-gray-50 text-gray-700">
|
||||
<tr>
|
||||
<th className="text-left px-3 py-2 sticky left-0 bg-gray-50">Site</th>
|
||||
<th className="text-right px-2 py-2">Score</th>
|
||||
<th className="text-right px-2 py-2">Vendors</th>
|
||||
<th className="text-right px-2 py-2">US%</th>
|
||||
<th className="text-right px-2 py-2">Drittland%</th>
|
||||
<th className="text-right px-2 py-2">Cookies Browser</th>
|
||||
<th className="text-right px-2 py-2">Cookie-Doc kB</th>
|
||||
<th className="text-center px-2 py-2">Banner</th>
|
||||
<th className="text-left px-2 py-2">Provider</th>
|
||||
<th className="text-right px-2 py-2">Banner-Verstöße</th>
|
||||
<th className="text-right px-2 py-2">Saving € Jahr</th>
|
||||
<th className="text-right px-2 py-2">Daten-Qualität</th>
|
||||
<th className="text-left px-2 py-2">Captured</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{data.kpis.map((k, i) => (
|
||||
<tr key={i} className={`border-t hover:bg-gray-50 ${i%2 ? 'bg-gray-50/30' : ''}`}>
|
||||
<td className="px-3 py-2 font-semibold sticky left-0 bg-inherit">
|
||||
{k.site_label}
|
||||
<div className="text-[9px] text-gray-400 font-mono">{k.check_id}</div>
|
||||
</td>
|
||||
<td className={`px-2 py-2 text-right ${
|
||||
!k.compliance_score ? 'text-gray-400' :
|
||||
k.compliance_score >= 80 ? 'text-green-700' :
|
||||
k.compliance_score >= 60 ? 'text-amber-700' : 'text-red-700'
|
||||
}`}>
|
||||
{k.compliance_score ?? '—'}
|
||||
</td>
|
||||
<td className="px-2 py-2 text-right font-mono">{k.vendors_total}</td>
|
||||
<td className={`px-2 py-2 text-right ${k.us_pct > 60 ? 'text-red-700 font-semibold' : ''}`}>
|
||||
{k.us_pct}%
|
||||
</td>
|
||||
<td className={`px-2 py-2 text-right ${k.non_eu_pct > 70 ? 'text-red-700' : ''}`}>
|
||||
{k.non_eu_pct}%
|
||||
</td>
|
||||
<td className="px-2 py-2 text-right font-mono">{k.cookies_in_browser}</td>
|
||||
<td className="px-2 py-2 text-right text-gray-500">
|
||||
{Math.round(k.cookie_doc_chars / 1000)}k
|
||||
</td>
|
||||
<td className="px-2 py-2 text-center">{k.banner_detected ? '✓' : '✗'}</td>
|
||||
<td className="px-2 py-2 text-gray-600">{k.banner_provider || '—'}</td>
|
||||
<td className={`px-2 py-2 text-right ${k.banner_violations ? 'text-red-700' : 'text-gray-400'}`}>
|
||||
{k.banner_violations || 0}
|
||||
</td>
|
||||
<td className="px-2 py-2 text-right text-green-700 font-mono">
|
||||
{k.saving_high_eur ? `${(k.saving_high_eur/1000).toFixed(0)}k` : '—'}
|
||||
</td>
|
||||
<td className={`px-2 py-2 text-right ${
|
||||
k.data_quality_pct >= 70 ? 'text-green-700' :
|
||||
k.data_quality_pct >= 40 ? 'text-amber-700' : 'text-red-700'
|
||||
}`}>
|
||||
{k.data_quality_pct}%
|
||||
</td>
|
||||
<td className="px-2 py-2 text-[10px] text-gray-500">
|
||||
{k.captured_at?.substring(0, 16).replace('T', ' ')}
|
||||
</td>
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
) : !loading && (
|
||||
<div className="bg-gray-50 border border-gray-200 rounded-lg p-8 text-center text-gray-500">
|
||||
Keine Snapshots gefunden — Filter anpassen oder einen Audit-Lauf starten.
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="mt-4 text-xs text-gray-500">
|
||||
<strong>Big-4-Hinweis:</strong> Mit Anonymize-Toggle koennen wir den
|
||||
kompletten Branchen-Cut zeigen ohne Hersteller-Namen zu nennen
|
||||
(z.B. "OEM 3 hat 78% US-Vendor-Anteil"). Damit ist die Daten-
|
||||
Hoheit bei BreakPilot und Big 4 sieht den Mehrwert ohne dass
|
||||
Wettbewerber-Vergleiche extern werden.
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
function Kpi({ label, value, tone = 'neutral' }: {
|
||||
label: string; value: any; tone?: 'ok' | 'warn' | 'bad' | 'neutral'
|
||||
}) {
|
||||
const colors: Record<string, string> = {
|
||||
ok: 'text-green-700 bg-green-50 border-green-200',
|
||||
warn: 'text-amber-700 bg-amber-50 border-amber-200',
|
||||
bad: 'text-red-700 bg-red-50 border-red-200',
|
||||
neutral: 'text-gray-700 bg-white border-gray-200',
|
||||
}
|
||||
return (
|
||||
<div className={`border rounded p-3 ${colors[tone]}`}>
|
||||
<div className="text-[10px] uppercase tracking-wider opacity-70">{label}</div>
|
||||
<div className="text-xl font-bold mt-1">{value}</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,176 @@
|
||||
'use client'
|
||||
|
||||
import React, { useState } from 'react'
|
||||
|
||||
interface NormMapping {
|
||||
region: string
|
||||
identifier: string
|
||||
relation: string
|
||||
confidence: string
|
||||
notes?: string
|
||||
source_url?: string
|
||||
}
|
||||
|
||||
interface CrossRefResponse {
|
||||
norm_id: string
|
||||
mappings: NormMapping[]
|
||||
notes?: string
|
||||
batch_id?: string
|
||||
}
|
||||
|
||||
const RELATION_COLORS: Record<string, string> = {
|
||||
identical: 'bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-300',
|
||||
equivalent: 'bg-blue-100 dark:bg-blue-900/30 text-blue-700 dark:text-blue-300',
|
||||
partial: 'bg-yellow-100 dark:bg-yellow-900/30 text-yellow-700 dark:text-yellow-300',
|
||||
supersedes: 'bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300',
|
||||
superseded_by: 'bg-gray-200 dark:bg-gray-700 text-gray-600 dark:text-gray-400',
|
||||
}
|
||||
|
||||
const CONFIDENCE_COLORS: Record<string, string> = {
|
||||
verified: 'text-emerald-700 dark:text-emerald-300 font-semibold',
|
||||
high: 'text-blue-700 dark:text-blue-300',
|
||||
medium: 'text-amber-700 dark:text-amber-300',
|
||||
low: 'text-red-700 dark:text-red-300',
|
||||
}
|
||||
|
||||
const REGION_LABELS: Record<string, string> = {
|
||||
'EU-DIN': 'EU (DIN)',
|
||||
'INTL-ISO': 'International (ISO/IEC)',
|
||||
'US-ANSI': 'US — ANSI',
|
||||
'US-NFPA': 'US — NFPA',
|
||||
'US-UL': 'US — UL',
|
||||
'US-OSHA': 'US — OSHA',
|
||||
'US-ASME': 'US — ASME',
|
||||
'US-ASTM': 'US — ASTM',
|
||||
'US-SAE': 'US — SAE',
|
||||
'US-NIOSH': 'US — NIOSH',
|
||||
'US-FDA': 'US — FDA',
|
||||
'US-EPA': 'US — EPA',
|
||||
'US-NEMA': 'US — NEMA',
|
||||
'US-NSF': 'US — NSF',
|
||||
'US-API': 'US — API',
|
||||
'US-CPSC': 'US — CPSC',
|
||||
'US-AHRI': 'US — AHRI',
|
||||
'US-ASHRAE': 'US — ASHRAE',
|
||||
'US-FCC': 'US — FCC',
|
||||
'US-DOT': 'US — DOT',
|
||||
'CN-GB': 'China (GB)',
|
||||
'JP-JIS': 'Japan (JIS)',
|
||||
}
|
||||
|
||||
function formatRegion(region: string): string {
|
||||
return REGION_LABELS[region] || region
|
||||
}
|
||||
|
||||
interface Props {
|
||||
normId: string
|
||||
}
|
||||
|
||||
export default function NormCrossRefPanel({ normId }: Props) {
|
||||
const [loaded, setLoaded] = useState(false)
|
||||
const [loading, setLoading] = useState(false)
|
||||
const [error, setError] = useState<string | null>(null)
|
||||
const [data, setData] = useState<CrossRefResponse | null>(null)
|
||||
|
||||
const handleLoad = async () => {
|
||||
if (loaded || loading) return
|
||||
setLoading(true)
|
||||
setError(null)
|
||||
try {
|
||||
const res = await fetch(`/api/sdk/v1/iace/norms-library/${encodeURIComponent(normId)}/crossref`)
|
||||
if (!res.ok) throw new Error(`HTTP ${res.status}`)
|
||||
const json = (await res.json()) as CrossRefResponse
|
||||
setData(json)
|
||||
setLoaded(true)
|
||||
} catch (e: any) {
|
||||
setError(e?.message || 'Fehler beim Laden')
|
||||
} finally {
|
||||
setLoading(false)
|
||||
}
|
||||
}
|
||||
|
||||
if (!loaded && !loading && !error) {
|
||||
return (
|
||||
<button
|
||||
type="button"
|
||||
onClick={handleLoad}
|
||||
className="text-xs text-purple-600 hover:text-purple-800 dark:text-purple-400 dark:hover:text-purple-200 font-medium underline-offset-2 hover:underline"
|
||||
>
|
||||
Internationale Aequivalenzen anzeigen (DIN/ANSI/GB/JIS)
|
||||
</button>
|
||||
)
|
||||
}
|
||||
|
||||
if (loading) {
|
||||
return <div className="text-xs text-gray-500 dark:text-gray-400">Cross-Reference wird geladen…</div>
|
||||
}
|
||||
|
||||
if (error) {
|
||||
return (
|
||||
<div className="text-xs text-red-600 dark:text-red-400">
|
||||
Cross-Reference konnte nicht geladen werden: {error}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
if (!data || data.mappings.length === 0) {
|
||||
return (
|
||||
<div className="text-xs text-gray-500 dark:text-gray-400 italic">
|
||||
Fuer diese Norm liegt (noch) kein internationales Mapping in der Bibliothek vor.
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="space-y-2 mt-2 border-t border-gray-200 dark:border-gray-700 pt-2">
|
||||
<div className="text-xs font-medium text-gray-700 dark:text-gray-300">
|
||||
Internationale Aequivalenzen
|
||||
</div>
|
||||
{data.notes && (
|
||||
<div className="text-xs text-gray-500 dark:text-gray-400 italic">{data.notes}</div>
|
||||
)}
|
||||
<div className="overflow-x-auto">
|
||||
<table className="w-full text-xs">
|
||||
<thead>
|
||||
<tr className="text-gray-500 dark:text-gray-400 border-b border-gray-200 dark:border-gray-700">
|
||||
<th className="text-left py-1 pr-3 font-medium">Region</th>
|
||||
<th className="text-left py-1 pr-3 font-medium">Identifier</th>
|
||||
<th className="text-left py-1 pr-3 font-medium">Relation</th>
|
||||
<th className="text-left py-1 pr-3 font-medium">Confidence</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{data.mappings.map((m, i) => (
|
||||
<tr key={i} className="border-b border-gray-100 dark:border-gray-800 last:border-0 align-top">
|
||||
<td className="py-1 pr-3 text-gray-600 dark:text-gray-400 whitespace-nowrap">{formatRegion(m.region)}</td>
|
||||
<td className="py-1 pr-3 font-mono text-gray-800 dark:text-gray-200">
|
||||
{m.source_url ? (
|
||||
<a href={m.source_url} target="_blank" rel="noopener noreferrer" className="text-purple-600 hover:text-purple-800 dark:text-purple-400">
|
||||
{m.identifier}
|
||||
</a>
|
||||
) : (
|
||||
m.identifier
|
||||
)}
|
||||
{m.notes && (
|
||||
<div className="text-[10px] text-gray-500 dark:text-gray-400 mt-0.5 font-sans">{m.notes}</div>
|
||||
)}
|
||||
</td>
|
||||
<td className="py-1 pr-3">
|
||||
<span className={`inline-block px-1.5 py-0.5 rounded ${RELATION_COLORS[m.relation] || 'bg-gray-100 dark:bg-gray-800 text-gray-600'}`}>
|
||||
{m.relation}
|
||||
</span>
|
||||
</td>
|
||||
<td className={`py-1 pr-3 ${CONFIDENCE_COLORS[m.confidence] || 'text-gray-600'}`}>
|
||||
{m.confidence}
|
||||
</td>
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div className="text-[10px] text-gray-400 dark:text-gray-500">
|
||||
Vor Nutzung in einem Drittmarkt durch eine sachkundige Person verifizieren.
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
import React, { useMemo, useState, useRef, useEffect } from 'react'
|
||||
import { SearchInput, FilterDropdown, Pagination, ExpandableRow, ExternalLinkIcon } from './LibraryTable'
|
||||
import NormCrossRefPanel from './NormCrossRefPanel'
|
||||
|
||||
export interface Norm {
|
||||
id: string
|
||||
@@ -128,6 +129,7 @@ export default function NormenTab({ norms }: Props) {
|
||||
{n.tags.map((t) => <span key={t} className="px-1.5 py-0.5 rounded text-xs bg-purple-100 dark:bg-purple-900/30 text-purple-700 dark:text-purple-300">{t}</span>)}
|
||||
</div>
|
||||
)}
|
||||
<NormCrossRefPanel normId={n.id} />
|
||||
</div>
|
||||
}
|
||||
/>
|
||||
|
||||
@@ -46,6 +46,8 @@ func (h *IACEHandler) ListNormsLibrary(c *gin.Context) {
|
||||
allNorms = append(allNorms, iace.GetWave3dHvacCNorms()...)
|
||||
allNorms = append(allNorms, iace.GetFinalCNorms()...)
|
||||
|
||||
includeCrossRef := c.Query("include_crossref") == "true"
|
||||
|
||||
var filtered []iace.NormReference
|
||||
for _, norm := range allNorms {
|
||||
if normType != "" && norm.NormType != normType {
|
||||
@@ -54,6 +56,12 @@ func (h *IACEHandler) ListNormsLibrary(c *gin.Context) {
|
||||
if hazardCat != "" && !containsString(norm.HazardCats, hazardCat) {
|
||||
continue
|
||||
}
|
||||
if includeCrossRef {
|
||||
cr := iace.GetNormCrossRef(norm.ID)
|
||||
if len(cr.Mappings) > 0 {
|
||||
norm.CrossRef = &cr
|
||||
}
|
||||
}
|
||||
filtered = append(filtered, norm)
|
||||
}
|
||||
|
||||
@@ -61,9 +69,36 @@ func (h *IACEHandler) ListNormsLibrary(c *gin.Context) {
|
||||
filtered = []iace.NormReference{}
|
||||
}
|
||||
|
||||
covered, total := iace.CrossRefCoverage(len(allNorms))
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"norms": filtered,
|
||||
"total": len(filtered),
|
||||
"crossref_coverage": gin.H{
|
||||
"covered": covered,
|
||||
"total_norms": total,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// GetNormCrossRef handles GET /norms-library/:id/crossref
|
||||
// Returns the international cross-reference (DIN/ANSI/GB/JIS/...) for a single norm.
|
||||
func (h *IACEHandler) GetNormCrossRef(c *gin.Context) {
|
||||
normID := c.Param("id")
|
||||
if normID == "" {
|
||||
c.JSON(http.StatusBadRequest, gin.H{"error": "norm id required"})
|
||||
return
|
||||
}
|
||||
cr := iace.GetNormCrossRef(normID)
|
||||
c.JSON(http.StatusOK, cr)
|
||||
}
|
||||
|
||||
// ListNormCrossRefs handles GET /norms-library/crossref
|
||||
// Returns the entire cross-reference matrix (all populated entries).
|
||||
func (h *IACEHandler) ListNormCrossRefs(c *gin.Context) {
|
||||
entries := iace.ListNormCrossRefs()
|
||||
c.JSON(http.StatusOK, gin.H{
|
||||
"entries": entries,
|
||||
"total": len(entries),
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// Contract tests for the new /norms-library/crossref endpoints.
|
||||
// These are the practical equivalent of an OpenAPI snapshot: they pin
|
||||
// the response shape so a downstream consumer (admin-compliance,
|
||||
// developer-portal, SDK) cannot be silently broken.
|
||||
|
||||
func TestGetNormCrossRef_KnownID_ReturnsExpectedShape(t *testing.T) {
|
||||
handler := &IACEHandler{}
|
||||
w, c := newTestContext("GET", "/norms-library/ISO-12100/crossref", nil, nil, gin.Params{
|
||||
{Key: "id", Value: "ISO-12100"},
|
||||
})
|
||||
|
||||
handler.GetNormCrossRef(c)
|
||||
|
||||
if w.Code != 200 {
|
||||
t.Fatalf("expected 200, got %d body=%s", w.Code, w.Body.String())
|
||||
}
|
||||
|
||||
var resp struct {
|
||||
NormID string `json:"norm_id"`
|
||||
Mappings []struct {
|
||||
Region string `json:"region"`
|
||||
Identifier string `json:"identifier"`
|
||||
Relation string `json:"relation"`
|
||||
Confidence string `json:"confidence"`
|
||||
} `json:"mappings"`
|
||||
BatchID string `json:"batch_id"`
|
||||
}
|
||||
if err := json.Unmarshal(w.Body.Bytes(), &resp); err != nil {
|
||||
t.Fatalf("response not parsable: %v body=%s", err, w.Body.String())
|
||||
}
|
||||
if resp.NormID != "ISO-12100" {
|
||||
t.Errorf("expected norm_id ISO-12100, got %q", resp.NormID)
|
||||
}
|
||||
if len(resp.Mappings) < 3 {
|
||||
t.Errorf("expected ISO-12100 to have at least 3 mappings, got %d", len(resp.Mappings))
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetNormCrossRef_MissingID_Returns400(t *testing.T) {
|
||||
handler := &IACEHandler{}
|
||||
w, c := newTestContext("GET", "/norms-library//crossref", nil, nil, gin.Params{
|
||||
{Key: "id", Value: ""},
|
||||
})
|
||||
|
||||
handler.GetNormCrossRef(c)
|
||||
if w.Code != 400 {
|
||||
t.Errorf("expected 400 for missing id, got %d", w.Code)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetNormCrossRef_UnknownID_ReturnsEmptyMappings(t *testing.T) {
|
||||
handler := &IACEHandler{}
|
||||
w, c := newTestContext("GET", "/norms-library/ISO-DOESNOTEXIST/crossref", nil, nil, gin.Params{
|
||||
{Key: "id", Value: "ISO-DOESNOTEXIST"},
|
||||
})
|
||||
|
||||
handler.GetNormCrossRef(c)
|
||||
|
||||
if w.Code != 200 {
|
||||
t.Fatalf("expected 200 for unknown id (returns empty), got %d", w.Code)
|
||||
}
|
||||
var resp struct {
|
||||
NormID string `json:"norm_id"`
|
||||
Mappings []interface{} `json:"mappings"`
|
||||
}
|
||||
if err := json.Unmarshal(w.Body.Bytes(), &resp); err != nil {
|
||||
t.Fatalf("response not parsable: %v", err)
|
||||
}
|
||||
if resp.NormID != "ISO-DOESNOTEXIST" {
|
||||
t.Errorf("expected norm_id to echo back, got %q", resp.NormID)
|
||||
}
|
||||
if len(resp.Mappings) != 0 {
|
||||
t.Errorf("expected empty mappings, got %d", len(resp.Mappings))
|
||||
}
|
||||
}
|
||||
|
||||
func TestListNormCrossRefs_ReturnsAll(t *testing.T) {
|
||||
handler := &IACEHandler{}
|
||||
w, c := newTestContext("GET", "/norms-library/crossref", nil, nil, nil)
|
||||
|
||||
handler.ListNormCrossRefs(c)
|
||||
|
||||
if w.Code != 200 {
|
||||
t.Fatalf("expected 200, got %d", w.Code)
|
||||
}
|
||||
var resp struct {
|
||||
Entries []struct {
|
||||
NormID string `json:"norm_id"`
|
||||
} `json:"entries"`
|
||||
Total int `json:"total"`
|
||||
}
|
||||
if err := json.Unmarshal(w.Body.Bytes(), &resp); err != nil {
|
||||
t.Fatalf("response not parsable: %v", err)
|
||||
}
|
||||
if resp.Total != 671 {
|
||||
t.Errorf("expected 671 cross-ref entries, got %d", resp.Total)
|
||||
}
|
||||
if len(resp.Entries) != resp.Total {
|
||||
t.Errorf("entries count %d does not match total %d", len(resp.Entries), resp.Total)
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
@@ -413,7 +412,7 @@ func (h *IACEHandler) ExportTechFile(c *gin.Context) {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("PDF export failed: %v", err)})
|
||||
return
|
||||
}
|
||||
h.archiveTechFile(c, data, fmt.Sprintf("CE-Akte-%s.pdf", safeName), projectID)
|
||||
archiveTechFile(data, fmt.Sprintf("CE-Akte-%s.pdf", safeName), projectID.String())
|
||||
c.Header("Content-Disposition", fmt.Sprintf(`attachment; filename="CE-Akte-%s.pdf"`, safeName))
|
||||
c.Data(http.StatusOK, "application/pdf", data)
|
||||
|
||||
@@ -423,7 +422,7 @@ func (h *IACEHandler) ExportTechFile(c *gin.Context) {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("Excel export failed: %v", err)})
|
||||
return
|
||||
}
|
||||
h.archiveTechFile(c, data, fmt.Sprintf("CE-Akte-%s.xlsx", safeName), projectID)
|
||||
archiveTechFile(data, fmt.Sprintf("CE-Akte-%s.xlsx", safeName), projectID.String())
|
||||
c.Header("Content-Disposition", fmt.Sprintf(`attachment; filename="CE-Akte-%s.xlsx"`, safeName))
|
||||
c.Data(http.StatusOK, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", data)
|
||||
|
||||
@@ -433,7 +432,7 @@ func (h *IACEHandler) ExportTechFile(c *gin.Context) {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("DOCX export failed: %v", err)})
|
||||
return
|
||||
}
|
||||
h.archiveTechFile(c, data, fmt.Sprintf("CE-Akte-%s.docx", safeName), projectID)
|
||||
archiveTechFile(data, fmt.Sprintf("CE-Akte-%s.docx", safeName), projectID.String())
|
||||
c.Header("Content-Disposition", fmt.Sprintf(`attachment; filename="CE-Akte-%s.docx"`, safeName))
|
||||
c.Data(http.StatusOK, "application/vnd.openxmlformats-officedocument.wordprocessingml.document", data)
|
||||
|
||||
@@ -443,7 +442,7 @@ func (h *IACEHandler) ExportTechFile(c *gin.Context) {
|
||||
c.JSON(http.StatusInternalServerError, gin.H{"error": fmt.Sprintf("Markdown export failed: %v", err)})
|
||||
return
|
||||
}
|
||||
h.archiveTechFile(c, data, fmt.Sprintf("CE-Akte-%s.md", safeName), projectID)
|
||||
archiveTechFile(data, fmt.Sprintf("CE-Akte-%s.md", safeName), projectID.String())
|
||||
c.Header("Content-Disposition", fmt.Sprintf(`attachment; filename="CE-Akte-%s.md"`, safeName))
|
||||
c.Data(http.StatusOK, "text/markdown", data)
|
||||
|
||||
@@ -469,30 +468,7 @@ func (h *IACEHandler) ExportTechFile(c *gin.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
// archiveTechFile stores a tech-file export to DSMS (best-effort, non-blocking)
|
||||
// AND records the resulting CID in the IACE audit trail so the export is
|
||||
// traceable. The "new_values" JSON carries the CID + filename so the audit
|
||||
// timeline can later resolve the CID against the DSMS gateway for verify.
|
||||
func (h *IACEHandler) archiveTechFile(c *gin.Context, data []byte, filename string, projectID uuid.UUID) {
|
||||
result := dsms.Archive(data, filename, "ce_techfile", projectID.String(), "1")
|
||||
if result == nil || result.CID == "" {
|
||||
return
|
||||
}
|
||||
payload := map[string]string{
|
||||
"cid": result.CID,
|
||||
"filename": filename,
|
||||
"size": fmt.Sprintf("%d", result.Size),
|
||||
}
|
||||
newValues, _ := json.Marshal(payload)
|
||||
userID := rbac.GetUserID(c)
|
||||
_ = h.store.AddAuditEntry(
|
||||
c.Request.Context(),
|
||||
projectID,
|
||||
"tech_file_export",
|
||||
projectID,
|
||||
iace.AuditActionCreate,
|
||||
userID.String(),
|
||||
nil,
|
||||
newValues,
|
||||
)
|
||||
// archiveTechFile stores a tech-file export to DSMS (best-effort, non-blocking).
|
||||
func archiveTechFile(data []byte, filename, projectID string) {
|
||||
dsms.Archive(data, filename, "ce_techfile", projectID, "1")
|
||||
}
|
||||
|
||||
@@ -19,6 +19,8 @@ func registerIACERoutes(v1 *gin.RouterGroup, h *handlers.IACEHandler) {
|
||||
iaceRoutes.GET("/hazard-library", h.ListHazardLibrary)
|
||||
iaceRoutes.GET("/controls-library", h.ListControlsLibrary)
|
||||
iaceRoutes.GET("/norms-library", h.ListNormsLibrary)
|
||||
iaceRoutes.GET("/norms-library/crossref", h.ListNormCrossRefs)
|
||||
iaceRoutes.GET("/norms-library/:id/crossref", h.GetNormCrossRef)
|
||||
iaceRoutes.GET("/lifecycle-phases", h.ListLifecyclePhases)
|
||||
iaceRoutes.GET("/roles", h.ListRoles)
|
||||
iaceRoutes.GET("/evidence-types", h.ListEvidenceTypes)
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
package dsms
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestArchive_Success_ReturnsCID(t *testing.T) {
|
||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method != "POST" || r.URL.Path != "/api/v1/documents" {
|
||||
http.Error(w, "wrong route", http.StatusNotFound)
|
||||
return
|
||||
}
|
||||
if !strings.HasPrefix(r.Header.Get("Content-Type"), "multipart/form-data") {
|
||||
http.Error(w, "wrong content-type", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
if r.Header.Get("Authorization") == "" {
|
||||
http.Error(w, "missing auth", http.StatusUnauthorized)
|
||||
return
|
||||
}
|
||||
io.ReadAll(r.Body)
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
_ = json.NewEncoder(w).Encode(ArchiveResult{
|
||||
CID: "bafytest123",
|
||||
Size: 42,
|
||||
GatewayURL: "/ipfs/bafytest123",
|
||||
})
|
||||
}))
|
||||
defer server.Close()
|
||||
old := gatewayURL
|
||||
defer func() { gatewayURL = old }()
|
||||
gatewayURL = server.URL
|
||||
|
||||
got := Archive([]byte("hello"), "test.pdf", "ce_techfile", "proj-1", "1")
|
||||
if got == nil {
|
||||
t.Fatal("expected non-nil result on 200 OK")
|
||||
}
|
||||
if got.CID != "bafytest123" {
|
||||
t.Errorf("expected CID bafytest123, got %q", got.CID)
|
||||
}
|
||||
if got.Size != 42 {
|
||||
t.Errorf("expected Size 42, got %d", got.Size)
|
||||
}
|
||||
}
|
||||
|
||||
func TestArchive_GatewayDown_ReturnsNil(t *testing.T) {
|
||||
old := gatewayURL
|
||||
defer func() { gatewayURL = old }()
|
||||
gatewayURL = "http://127.0.0.1:1" // unreachable
|
||||
got := Archive([]byte("hello"), "test.pdf", "ce_techfile", "proj-1", "1")
|
||||
if got != nil {
|
||||
t.Errorf("expected nil when gateway unreachable, got %+v", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestArchive_GatewayReturnsError_ReturnsNil(t *testing.T) {
|
||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
http.Error(w, "internal error", http.StatusInternalServerError)
|
||||
}))
|
||||
defer server.Close()
|
||||
old := gatewayURL
|
||||
defer func() { gatewayURL = old }()
|
||||
gatewayURL = server.URL
|
||||
|
||||
got := Archive([]byte("hello"), "test.pdf", "ce_techfile", "proj-1", "1")
|
||||
if got != nil {
|
||||
t.Errorf("expected nil on 500 response, got %+v", got)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package iace
|
||||
|
||||
// Norm cross-reference matrix: maps a core ISO/IEC/EN standard to the
|
||||
// jurisdiction-specific identifiers used in DIN (DE), ANSI / NFPA / UL (US),
|
||||
// GB (China), and JIS (Japan). This is an identifier-only mapping — no
|
||||
// copyrighted norm text is included. The matrix is used to render a
|
||||
// "this requirement also satisfies X in market Y" hint in tech files,
|
||||
// enabling dual-use compliance documents for CE + US/CN/JP export.
|
||||
//
|
||||
// IMPORTANT: each NormMapping carries an explicit Confidence and Relation.
|
||||
// Do NOT treat "partial" or "medium" entries as 1:1 substitutes. They
|
||||
// indicate scope overlap that must be verified by a competent person for
|
||||
// the concrete machine before relying on the foreign standard.
|
||||
|
||||
// NormMapping is one entry in the cross-reference table.
|
||||
type NormMapping struct {
|
||||
Region string `json:"region"` // "EU-DIN", "US-ANSI", "US-NFPA", "US-UL", "US-OSHA", "CN-GB", "JP-JIS", "INTL-ISO"
|
||||
Identifier string `json:"identifier"` // e.g. "DIN EN ISO 12100:2011"
|
||||
Relation string `json:"relation"` // "identical", "equivalent", "partial", "supersedes", "superseded_by"
|
||||
Confidence string `json:"confidence"` // "verified", "high", "medium", "low"
|
||||
Notes string `json:"notes,omitempty"` // Optional scope clarification (e.g. "only chapters 4-6")
|
||||
SourceURL string `json:"source_url,omitempty"` // Optional pointer to a public catalog entry
|
||||
}
|
||||
|
||||
// NormCrossRef is the cross-reference entry for one NormReference.ID.
|
||||
type NormCrossRef struct {
|
||||
NormID string `json:"norm_id"` // Matches NormReference.ID (e.g. "ISO-12100")
|
||||
Mappings []NormMapping `json:"mappings"` // International equivalents
|
||||
Notes string `json:"notes,omitempty"` // General notes about the cross-walk
|
||||
BatchID string `json:"batch_id"` // Tracking which batch added this entry
|
||||
}
|
||||
|
||||
// crossRefRegistry is the in-memory registry, populated by init() in each batch file.
|
||||
var crossRefRegistry = map[string]NormCrossRef{}
|
||||
|
||||
// registerCrossRefs is called by each batch file's init() to append entries.
|
||||
func registerCrossRefs(entries []NormCrossRef) {
|
||||
for _, e := range entries {
|
||||
crossRefRegistry[e.NormID] = e
|
||||
}
|
||||
}
|
||||
|
||||
// GetNormCrossRef returns the cross-reference entry for a given NormReference.ID,
|
||||
// or a zero value with NormID set if no mapping exists yet.
|
||||
func GetNormCrossRef(normID string) NormCrossRef {
|
||||
if entry, ok := crossRefRegistry[normID]; ok {
|
||||
return entry
|
||||
}
|
||||
return NormCrossRef{NormID: normID, Mappings: []NormMapping{}}
|
||||
}
|
||||
|
||||
// ListNormCrossRefs returns every entry in the registry. Used by the
|
||||
// /norms-library/crossref bulk endpoint and for tech-file batch rendering.
|
||||
func ListNormCrossRefs() []NormCrossRef {
|
||||
out := make([]NormCrossRef, 0, len(crossRefRegistry))
|
||||
for _, v := range crossRefRegistry {
|
||||
out = append(out, v)
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
// CrossRefCoverage returns counters that let the UI render a progress bar
|
||||
// ("X of Y norms have a cross-reference"). The "total" comes from the
|
||||
// caller (norms library size) since the cross-ref package does not depend
|
||||
// on the norms library to avoid a cyclic import.
|
||||
func CrossRefCoverage(totalNorms int) (covered, total int) {
|
||||
return len(crossRefRegistry), totalNorms
|
||||
}
|
||||
@@ -0,0 +1,443 @@
|
||||
package iace
|
||||
|
||||
// Cross-reference matrix — Batch 1a (IDs 1-50 in norms_library.go load order).
|
||||
// Covers A-norms (Grundnormen) and B1-norms (Sicherheitsgrundnormen) +
|
||||
// early B2-norms. These are the most internationally harmonized standards
|
||||
// and therefore have the strongest "verified"/"high" confidence mappings.
|
||||
|
||||
func init() {
|
||||
registerCrossRefs(batch1aCrossRefs())
|
||||
}
|
||||
|
||||
// batch1aCrossRefs contains entries 1-50.
|
||||
func batch1aCrossRefs() []NormCrossRef {
|
||||
return []NormCrossRef{
|
||||
{
|
||||
NormID: "ISO-12100", BatchID: "1a",
|
||||
Notes: "Foundational machinery safety standard, harmonized via ISO/TC 199. Globally aligned.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 12100:2011-03", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.0:2020 (Safety of Machinery)", Relation: "partial", Confidence: "high", Notes: "Scope similar; US framework uses task-based risk assessment in addition."},
|
||||
{Region: "CN-GB", Identifier: "GB/T 15706-2012", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 9700:2013", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-13849-1", BatchID: "1a",
|
||||
Notes: "Functional safety of safety-related control parts via Performance Level. Strong international alignment.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 13849-1:2024-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.26-2018 (Functional Safety for Equipment)", Relation: "partial", Confidence: "high", Notes: "US uses both PL (ISO 13849) and SIL (IEC 62061) within B11.26."},
|
||||
{Region: "CN-GB", Identifier: "GB/T 16855.1-2018", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 9705-1:2019", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-13849-2", BatchID: "1a",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 13849-2:2013-02", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 16855.2-2015", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 9705-2:2019", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "IEC-62061", BatchID: "1a",
|
||||
Notes: "Functional safety via SIL approach. IEC standard, regional adoptions vary.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN IEC 62061:2022-07", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.26-2018", Relation: "partial", Confidence: "high", Notes: "B11.26 combines IEC 62061 + ISO 13849-1."},
|
||||
{Region: "CN-GB", Identifier: "GB 28526-2012", Relation: "equivalent", Confidence: "medium"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 9961:2008", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-13857", BatchID: "1a",
|
||||
Notes: "Safety distances against reaching upper/lower limbs into hazardous zones.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 13857:2020-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.19-2019 (Performance Criteria for Safeguarding)", Relation: "partial", Confidence: "high", Notes: "Includes safety distance tables with imperial units."},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.212 (Machine Guarding)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 23821-2009", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 9718:2013", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-13855", BatchID: "1a",
|
||||
Notes: "Positioning of safeguards relative to approach speed of body parts.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 13855:2010-10", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.19-2019 (Annex on Safety Distance)", Relation: "partial", Confidence: "high", Notes: "US uses Ds = K × (Ts + Tc) formula; imperial."},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.217 Table O-10", Relation: "partial", Confidence: "high", Notes: "OSHA hand-speed constant K = 63 in/s."},
|
||||
{Region: "CN-GB", Identifier: "GB/T 19876-2012", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 9715:2013", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-14120", BatchID: "1a",
|
||||
Notes: "Design and construction of fixed and movable guards.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 14120:2016-05", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.19-2019 §6 (Guards)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 8196-2018", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 9716:2013", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-14119", BatchID: "1a",
|
||||
Notes: "Interlocking devices associated with guards — design and selection.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 14119:2014-03", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.19-2019 §7 (Interlocks)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 18831-2017", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-60204-1", BatchID: "1a",
|
||||
Notes: "Electrical equipment of machines — general requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60204-1:2019-06 (VDE 0113-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60204-1:2016", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 79:2024 (Electrical Standard for Industrial Machinery)", Relation: "equivalent", Confidence: "high", Notes: "NFPA 79 is the US adaptation; differences in earthing/grounding terminology."},
|
||||
{Region: "US-UL", Identifier: "UL 508A:2018 (Industrial Control Panels)", Relation: "partial", Confidence: "high", Notes: "Panel-shop side; pairs with NFPA 79."},
|
||||
{Region: "CN-GB", Identifier: "GB 5226.1-2019", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 9960-1:2019", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-13850", BatchID: "1a",
|
||||
Notes: "Emergency stop function — design principles.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 13850:2016-05", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.19-2019 §11 (Emergency Stop)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 79:2024 §10.7 (Emergency Stop)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 16754-2008", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 9703:2019", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "IEC-61496-1", BatchID: "1a",
|
||||
Notes: "Electro-sensitive protective equipment (ESPE) — general requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN IEC 61496-1:2021-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 61496-1:2020", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.19-2019 §8 (Presence-Sensing Devices)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 19436.1-2013", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 9704-1:2014", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-4413", BatchID: "1a",
|
||||
Notes: "Hydraulic fluid power — general rules and safety requirements for systems.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4413:2011-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/(NFPA) T2.24.1:2009 (Hydraulic Fluid Power)", Relation: "partial", Confidence: "medium"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 3766-2015", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 8361:2012", Relation: "equivalent", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-4414", BatchID: "1a",
|
||||
Notes: "Pneumatic fluid power — general rules and safety requirements for systems.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4414:2011-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 7932-2017", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 8370:2011", Relation: "equivalent", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1037", BatchID: "1a",
|
||||
Notes: "Prevention of unexpected start-up. Now superseded by ISO 14118; legacy reference.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1037:1996+A1:2008 (withdrawn 2020, replaced by EN ISO 14118)", Relation: "superseded_by", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 14118:2017", Relation: "supersedes", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.147 (LOTO — Lockout/Tagout)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-11228-1", BatchID: "1a",
|
||||
Notes: "Ergonomics — manual lifting and carrying.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1005-2:2009-04 / DIN EN ISO 11228-1:2022", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ASSP Z365 (Manual Material Handling, draft)", Relation: "partial", Confidence: "medium"},
|
||||
{Region: "US-OSHA", Identifier: "NIOSH Lifting Equation (RWL, Revised 1991)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS Z 8504:2010", Relation: "equivalent", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-11204", BatchID: "1a",
|
||||
Notes: "Acoustics — noise emitted by machinery and equipment, work-station measurement.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11204:2010-10", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI S12.43-1997 (R2007)", Relation: "partial", Confidence: "medium"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 17248.2-1998", Relation: "equivalent", Confidence: "medium"},
|
||||
{Region: "JP-JIS", Identifier: "JIS Z 8736-2:2014", Relation: "equivalent", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-13732-1", BatchID: "1a",
|
||||
Notes: "Ergonomics of the thermal environment — touchable hot surfaces.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 13732-1:2008-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM C1055-20 (Hot-Surface Conditions)", Relation: "partial", Confidence: "medium"},
|
||||
{Region: "JP-JIS", Identifier: "JIS S 0033:2006", Relation: "equivalent", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-14122-1", BatchID: "1a",
|
||||
Notes: "Permanent means of access to machinery — choice of fixed means + general requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 14122-1:2016-10", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910 Subpart D (Walking-Working Surfaces)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI A1264.1-2017 (Walking/Working Surfaces)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 17888.1-2008", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-14122-2", BatchID: "1a",
|
||||
Notes: "Working platforms and walkways.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 14122-2:2016-10", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.28 (Duty to provide fall protection)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 17888.2-2008", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-14122-3", BatchID: "1a",
|
||||
Notes: "Stairs, stepladders, and guard-rails.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 14122-3:2016-10", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.25 (Stairways)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 17888.3-2008", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-19353", BatchID: "1a",
|
||||
Notes: "Fire prevention and fire protection for machinery.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 19353:2019-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 654 (Combustible Particulate Solids)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-842", BatchID: "1a",
|
||||
Notes: "Visual danger signals — safety of machinery.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 842:2009-01", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z535.4 (Product Safety Signs and Labels)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-7731", BatchID: "1a",
|
||||
Notes: "Danger signals for public and work areas — auditory.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 7731:2008-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "JP-JIS", Identifier: "JIS Z 8735:2000", Relation: "equivalent", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-894-1", BatchID: "1a",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 894-1:2009-02 (Ergonomic design of displays/control actuators)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 9355-1:1999 (Ergonomics — Displays and control actuators)", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-894-2", BatchID: "1a",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 894-2:2009-02 (Displays)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 9355-2:1999", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-894-3", BatchID: "1a",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 894-3:2010-01 (Control actuators)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 9355-3:2006", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "IEC-60529", BatchID: "1a",
|
||||
Notes: "IP code — Degrees of protection provided by enclosures.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60529:2014-09 (VDE 0470-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NEMA", Identifier: "NEMA 250 (Enclosures for Electrical Equipment)", Relation: "partial", Confidence: "high", Notes: "Cross-walk to IP exists but NEMA includes corrosion and ice."},
|
||||
{Region: "US-UL", Identifier: "UL 50E:2020", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 4208-2017", Relation: "equivalent", Confidence: "verified"},
|
||||
{Region: "JP-JIS", Identifier: "JIS C 0920:2003", Relation: "equivalent", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-11688-1", BatchID: "1a",
|
||||
Notes: "Acoustics — design of low-noise machinery, planning.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11688-1:2009-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-15534-1", BatchID: "1a",
|
||||
Notes: "Ergonomic design for safety of machinery — body dimensions through openings.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 15534-1:2000-09", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-11553-1", BatchID: "1a",
|
||||
Notes: "Safety of laser processing machines — general requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11553-1:2020-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z136.1-2022 (Safe Use of Lasers)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13478", BatchID: "1a",
|
||||
Notes: "Fire prevention and protection — general requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13478:2011-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-20607", BatchID: "1a",
|
||||
Notes: "Safety of machinery — instruction handbook (drafting principles).",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 20607:2019-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z535.6-2011 (R2017) (Product Safety Information in Manuals)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-61439-1", BatchID: "1a",
|
||||
Notes: "Low-voltage switchgear and controlgear assemblies — general rules.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 61439-1:2012-06 (VDE 0660-600-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 61439-1:2020", Relation: "equivalent", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 891 (Switchboards)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-62311", BatchID: "1a",
|
||||
Notes: "Assessment of human exposure to electromagnetic fields.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 62311:2008-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-FCC", Identifier: "FCC OET-65 / 47 CFR 1.1310", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "IEC-61508-1", BatchID: "1a",
|
||||
Notes: "Functional safety of E/E/PE safety-related systems — general requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 61508-1:2011-02 (VDE 0803-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ISA-61508-1:2010", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 20438.1-2017", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS C 0508-1:2012", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "IEC-61508-2", BatchID: "1a",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 61508-2:2011-02 (VDE 0803-2)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ISA-61508-2:2010", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 20438.2-2017", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "IEC-61508-3", BatchID: "1a",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 61508-3:2011-02 (VDE 0803-3)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ISA-61508-3:2010", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 20438.3-2017", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-5349-1", BatchID: "1a",
|
||||
Notes: "Mechanical vibration — measurement of hand-transmitted vibration.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 5349-1:2001-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI S2.70-2006 (R2020) (Hand-Arm Vibration)", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 7761-1:2017", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-2631-1", BatchID: "1a",
|
||||
Notes: "Mechanical vibration — whole-body vibration.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 2631-1:2010-05", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI S3.18-2002 (R2017) (Whole-Body Vibration)", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 7760-2:2004", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-3744", BatchID: "1a",
|
||||
Notes: "Determination of sound power levels — engineering method, essentially-free field.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 3744:2011-02", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI S12.54-2011 (R2021)", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS Z 8734:2000", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-3746", BatchID: "1a",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 3746:2011-03", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI S12.56-2011", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-11689", BatchID: "1a",
|
||||
Notes: "Acoustics — procedure for comparing noise-emission data for machinery.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11689:1997-01", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-11228-2", BatchID: "1a",
|
||||
Notes: "Ergonomics — pushing and pulling.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1005-3:2009 / DIN EN ISO 11228-2:2007", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "Snook & Ciriello Push-Pull Tables (Liberty Mutual)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-11228-3", BatchID: "1a",
|
||||
Notes: "Ergonomics — handling of low loads at high frequency.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1005-5:2007 / DIN EN ISO 11228-3:2007", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "ACGIH TLV for HAL (Hand Activity Level)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1005-1", BatchID: "1a",
|
||||
Notes: "Human physical performance — terms and definitions. Now harmonized into ISO 11228 family.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1005-1:2009-01", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11228 family", Relation: "supersedes", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1005-2", BatchID: "1a",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1005-2:2009-04 (Manual handling)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11228-1:2021", Relation: "supersedes", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1005-3", BatchID: "1a",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1005-3:2009-01 (Recommended force limits)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11228-2:2007", Relation: "supersedes", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1005-4", BatchID: "1a",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1005-4:2009-01 (Working postures)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11226:2000", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-13732-3", BatchID: "1a",
|
||||
Notes: "Ergonomics of the thermal environment — cold surfaces.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 13732-3:2008-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,452 @@
|
||||
package iace
|
||||
|
||||
// Cross-reference matrix — Batch 1b (IDs 51-100 in norms_library.go load order).
|
||||
// Covers remaining B2-norms (ATEX, EMC, ergonomics, cybersecurity) and the
|
||||
// first wave of C-norms (presses, robots, conveyors, plastics machinery).
|
||||
// C-norm international equivalents are less harmonized than A/B norms;
|
||||
// confidence levels reflect this.
|
||||
|
||||
func init() {
|
||||
registerCrossRefs(batch1bCrossRefs())
|
||||
}
|
||||
|
||||
// batch1bCrossRefs contains entries 51-100.
|
||||
func batch1bCrossRefs() []NormCrossRef {
|
||||
return []NormCrossRef{
|
||||
{
|
||||
NormID: "EN-1127-1", BatchID: "1b",
|
||||
Notes: "Explosive atmospheres — explosion prevention and protection (ATEX).",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1127-1:2019-10", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 69:2024 (Explosion Prevention Systems)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 654 (Combustible Dust)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.307 (Hazardous (classified) locations)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13463-1", BatchID: "1b",
|
||||
Notes: "Non-electrical equipment for explosive atmospheres. Largely superseded by EN ISO 80079-36/-37.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13463-1:2009-07 (withdrawn 2018)", Relation: "superseded_by", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 80079-36:2016 / ISO 80079-37:2016", Relation: "supersedes", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-4021", BatchID: "1b",
|
||||
Notes: "Hydraulic fluid power — extraction of fluid samples for contamination analysis.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN ISO 4021:2017-09", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-982", BatchID: "1b",
|
||||
Notes: "Hydraulic safety — withdrawn, replaced by EN ISO 4413.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 982:1996+A1:2008 (withdrawn 2010)", Relation: "superseded_by", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 4413:2010", Relation: "supersedes", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-983", BatchID: "1b",
|
||||
Notes: "Pneumatic safety — withdrawn, replaced by EN ISO 4414.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 983:1996+A1:2008 (withdrawn 2010)", Relation: "superseded_by", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 4414:2010", Relation: "supersedes", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-14118", BatchID: "1b",
|
||||
Notes: "Prevention of unexpected start-up (formerly EN 1037).",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 14118:2018-06", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.147 (LOTO)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ASSP Z244.1-2016 (Lockout/Tagout)", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 19670-2005", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-574", BatchID: "1b",
|
||||
Notes: "Two-hand control devices — functional aspects and design principles.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 13851:2019-12 (replaces EN 574)", Relation: "superseded_by", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 13851:2019", Relation: "supersedes", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.19-2019 §10 (Two-Hand Control)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.217(c)(3)(iii)(c) (Press Two-Hand Trip)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "IEC-62443-4-2", BatchID: "1b",
|
||||
Notes: "Industrial Automation and Control Systems (IACS) cybersecurity — component requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN IEC 62443-4-2:2020-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ISA-62443-4-2-2018", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 33009.1-2016 (IACS Cybersecurity)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "IEC-62443-3-3", BatchID: "1b",
|
||||
Notes: "IACS cybersecurity — system security requirements and security levels.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN IEC 62443-3-3:2020-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ISA-62443-3-3-2013", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12198-1", BatchID: "1b",
|
||||
Notes: "Safety of machinery — assessment and reduction of risks arising from radiation.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12198-1:2009-07", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-626-1", BatchID: "1b",
|
||||
Notes: "Reduction of risk to health from hazardous substances emitted by machinery — Part 1: principles.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 626-1:2008-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.1000 (Air Contaminants PELs)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-626-2", BatchID: "1b",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 626-2:2008-09 (Verification procedure)", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-61000-6-1", BatchID: "1b",
|
||||
Notes: "EMC — Generic immunity for residential, commercial, light-industry environments.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 61000-6-1:2019-11 (VDE 0839-6-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 61000-6-1:2016", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-FCC", Identifier: "47 CFR Part 15 Subpart B", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 17799.1-2017", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-61000-6-2", BatchID: "1b",
|
||||
Notes: "EMC — Generic immunity for industrial environments.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 61000-6-2:2019-11 (VDE 0839-6-2)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 61000-6-2:2016", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 17799.2-2003", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-61000-6-3", BatchID: "1b",
|
||||
Notes: "EMC — Generic emission for residential/commercial environments.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 61000-6-3:2022-04 (VDE 0839-6-3)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 61000-6-3:2020", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-FCC", Identifier: "47 CFR Part 15 Subpart B", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 17799.3-2012", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-61000-6-4", BatchID: "1b",
|
||||
Notes: "EMC — Generic emission for industrial environments.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 61000-6-4:2020-09 (VDE 0839-6-4)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 61000-6-4:2018", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB 17799.4-2012", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-62353", BatchID: "1b",
|
||||
Notes: "Medical electrical equipment — recurrent test and test after repair.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 62353:2015-10 (VDE 0751-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 99:2024 §10 (Medical Equipment)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-50110-1", BatchID: "1b",
|
||||
Notes: "Operation of electrical installations — general requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 50110-1:2014-02 (VDE 0105-100)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 70E:2024 (Electrical Safety in the Workplace)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910 Subpart S (Electrical)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-60079-0", BatchID: "1b",
|
||||
Notes: "Explosive atmospheres (ATEX) — equipment, general requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN IEC 60079-0:2019-09 (VDE 0170-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60079-0:2017", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 60079-0:2020", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "US-FM", Identifier: "FM 3600 (HazLoc Equipment General Requirements)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 3836.1-2021", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-60079-1", BatchID: "1b",
|
||||
Notes: "Equipment protection by flameproof enclosures 'd'.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60079-1:2014-06 (VDE 0170-5)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 60079-1:2020", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 3836.2-2021", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-60079-7", BatchID: "1b",
|
||||
Notes: "Equipment protection by increased safety 'e'.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60079-7:2016-04 (VDE 0170-6)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 60079-7:2017", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 3836.3-2021", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-60079-11", BatchID: "1b",
|
||||
Notes: "Equipment protection by intrinsic safety 'i'.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60079-11:2012-06 (VDE 0170-7)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 60079-11:2014", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 3836.4-2021", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-60079-14", BatchID: "1b",
|
||||
Notes: "Electrical installations design, selection, and erection in hazardous areas.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60079-14:2014-10 (VDE 0165-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 70 (NEC) Articles 500-506 (Hazardous Locations)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 3836.15-2017", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-60079-17", BatchID: "1b",
|
||||
Notes: "Inspection and maintenance of EX installations.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60079-17:2014-10 (VDE 0165-10-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 3836.16-2017", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-7000", BatchID: "1b",
|
||||
Notes: "Graphical symbols for use on equipment — registered symbols.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 80416 / DIN ISO 7000", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z535.3 (Criteria for Safety Symbols)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-7010", BatchID: "1b",
|
||||
Notes: "Graphical symbols — safety colours and signs, registered safety signs.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 7010:2020-07", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z535.2 (Environmental and Facility Safety Signs)", Relation: "partial", Confidence: "high", Notes: "US uses different colour/format conventions (signal words)."},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.145 (Specifications for accident prevention signs and tags)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS Z 9098:2016", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-61310-1", BatchID: "1b",
|
||||
Notes: "Indication, marking and actuation — Part 1: visual, auditory and tactile signals.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN IEC 61310-1:2017-08 (VDE 0113-101)", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-61310-2", BatchID: "1b",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN IEC 61310-2:2008-09 (Marking)", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-61310-3", BatchID: "1b",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 61310-3:2008-09 (Actuator location/operation)", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "IEC-61511-1", BatchID: "1b",
|
||||
Notes: "Functional safety — safety instrumented systems for the process industry sector.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 61511-1:2018-12 (VDE 0810-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ISA-61511-1-2018", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 21109.1-2007", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "IEC-61511-2", BatchID: "1b",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 61511-2:2018-12 (VDE 0810-2)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ISA-61511-2-2018", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "IEC-61511-3", BatchID: "1b",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 61511-3:2018-12 (VDE 0810-3)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ISA-61511-3-2018", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-692", BatchID: "1b",
|
||||
Notes: "Machine tools — mechanical presses — safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 692:2009-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.217 (Mechanical Power Presses)", Relation: "partial", Confidence: "high", Notes: "OSHA is the primary US requirement for mechanical presses."},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.1-2009 (R2020) (Mechanical Power Presses)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 17120-2012", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-693", BatchID: "1b",
|
||||
Notes: "Machine tools — hydraulic presses — safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 693:2019-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.2-2013 (R2020) (Hydraulic Power Presses)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 28241-2012", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12622", BatchID: "1b",
|
||||
Notes: "Machine tools — hydraulic press brakes — safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12622:2014-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.3-2012 (R2017) (Power Press Brakes)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-10218-1", BatchID: "1b",
|
||||
Notes: "Industrial robots — safety, robot manipulator. Updated 2025 edition exists.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 10218-1:2012-01", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/RIA R15.06-2012 (Part 1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB 11291.1-2011", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 8433-1:2015", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-10218-2", BatchID: "1b",
|
||||
Notes: "Industrial robots — safety, integration. 2025 edition expands collaborative section.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 10218-2:2012-06", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/RIA R15.06-2012 (Part 2)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB 11291.2-2013", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 8433-2:2015", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-TS-15066", BatchID: "1b",
|
||||
Notes: "Collaborative robots — safety requirements (Technical Specification).",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN ISO/TS 15066:2017-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/RIA TR R15.606-2016", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-619", BatchID: "1b",
|
||||
Notes: "Continuous handling equipment — packs and individual loads.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 619:2022-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B20.1-2021 (Conveyor Safety)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1926.555 (Conveyors)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-620", BatchID: "1b",
|
||||
Notes: "Continuous handling equipment — belt conveyors for bulk materials.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 620:2022-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/CEMA B20.1-2021", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 10595-2017", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-349", BatchID: "1b",
|
||||
Notes: "Minimum gaps to avoid crushing parts of the human body.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 13854:2020-04 (replaces EN 349)", Relation: "superseded_by", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 13854:2017", Relation: "supersedes", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.19-2019 §C.1 (Minimum clearance distances)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 12265.3-1997 (now GB/T 23820-2009)", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-953", BatchID: "1b",
|
||||
Notes: "Guards — withdrawn, replaced by EN ISO 14120.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 953:2009-08 (withdrawn 2017)", Relation: "superseded_by", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 14120:2015", Relation: "supersedes", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-11161", BatchID: "1b",
|
||||
Notes: "Safety of machinery — integrated manufacturing systems, basic requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11161:2010-05", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.20-2017 (Manufacturing Systems)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 19891-2005", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1010-1", BatchID: "1b",
|
||||
Notes: "Printing and paper-converting machines — common requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1010-1:2011-03", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B65.1-2011 (Printing Press Systems)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12417", BatchID: "1b",
|
||||
Notes: "Machine tools — machining centres safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12417:2009-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.22-2002 (R2020) (Numerically Controlled Turning Machines)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "IEC-61800-5-2", BatchID: "1b",
|
||||
Notes: "Adjustable speed electrical power drive systems — functional safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 61800-5-2:2018-08 (VDE 0160-105-2)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 61800-5-1:2020", Relation: "partial", Confidence: "medium", Notes: "UL covers Part 5-1 (general safety); 5-2 functional safety often referenced directly."},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-201", BatchID: "1b",
|
||||
Notes: "Plastics and rubber machines — injection moulding machines safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 201:2010-03", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B151.1-2017 (Injection Moulding Machines)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 22530-2008", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-289", BatchID: "1b",
|
||||
Notes: "Plastics and rubber machines — compression and transfer moulding machines safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 289:2014-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B151.27 (Compression Moulding)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-422", BatchID: "1b",
|
||||
Notes: "Plastics and rubber machines — blow-moulding machines safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 422:2009-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B151.15 (Blow Moulding)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1114-1", BatchID: "1b",
|
||||
Notes: "Plastics and rubber machines — extruders and extrusion lines safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1114-1:2011-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B151.21 (Extrusion Blow Moulding)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-848-1", BatchID: "1b",
|
||||
Notes: "Safety of woodworking machines — single-spindle vertical moulding machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 848-1:2017-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI O1.1-2019 (Woodworking Machinery)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.213 (Woodworking machinery)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,424 @@
|
||||
package iace
|
||||
|
||||
// Cross-reference matrix — Batch 2a (IDs 101-150).
|
||||
// Covers C-norms for woodworking machines, pressure machines, packaging
|
||||
// machines (EN 415 series), and food-processing machines. Many are
|
||||
// EU-specific C-norms; international equivalents are partial at best.
|
||||
|
||||
func init() {
|
||||
registerCrossRefs(batch2aCrossRefs())
|
||||
}
|
||||
|
||||
func batch2aCrossRefs() []NormCrossRef {
|
||||
return []NormCrossRef{
|
||||
{
|
||||
NormID: "EN-1870-1", BatchID: "2a",
|
||||
Notes: "Woodworking machines — circular sawing machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-1:2014-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI O1.1-2019 (Woodworking Machinery)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.213 (Woodworking machinery)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-861", BatchID: "2a",
|
||||
Notes: "Woodworking machines — surface planing/thicknessing combined machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 861:2007-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.213(g) (Planers)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12840", BatchID: "2a",
|
||||
Notes: "Woodworking machines — hand-fed and/or hand-removed engraving machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12840:2009-05", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13128", BatchID: "2a",
|
||||
Notes: "Machine tools — milling machines safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13128:2009-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.8-2001 (R2017) (Manual Milling, Drilling, Boring)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13218", BatchID: "2a",
|
||||
Notes: "Machine tools — stationary grinding machines safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13218:2009-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.9-2010 (R2020) (Grinding Machines)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.215 (Abrasive wheel machinery)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-16092-1", BatchID: "2a",
|
||||
Notes: "Machine tools safety — presses, Part 1: general safety requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 16092-1:2018-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.0/B11.TR3 (Press family general)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-16092-3", BatchID: "2a",
|
||||
Notes: "Machine tools safety — presses, Part 3: hydraulic presses safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 16092-3:2018-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.2-2013 (R2020) (Hydraulic Power Presses)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-415-1", BatchID: "2a",
|
||||
Notes: "Safety of packaging machines — Part 1: terminology and classification.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 415-1:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/PMMI B155.1-2016 (Packaging Machinery)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-415-5", BatchID: "2a",
|
||||
Notes: "Safety of packaging machines — Part 5: wrapping machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 415-5:2010-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/PMMI B155.1-2016", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1672-2", BatchID: "2a",
|
||||
Notes: "Food processing machinery — hygiene requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1672-2:2009-07", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NSF", Identifier: "NSF/ANSI/3-A 14159-1 (Hygienic Food Equipment)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-FDA", Identifier: "21 CFR 110 (Current Good Manufacturing Practice)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-617", BatchID: "2a",
|
||||
Notes: "Continuous handling equipment and systems — safety, storage in silos/bunkers.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 617:2010-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-618", BatchID: "2a",
|
||||
Notes: "Continuous handling equipment — safety, bulk handling equipment except fixed belt conveyors.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 618:2011-02", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B20.1-2021 (Conveyor Safety)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-474-1", BatchID: "2a",
|
||||
Notes: "Earth-moving machinery — safety, Part 1: general requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 474-1:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ITSDF B56 series + SAE J1166/J1455", Relation: "partial", Confidence: "medium"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1926.602 (Material handling equipment)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 25684 series", Relation: "equivalent", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1726-1", BatchID: "2a",
|
||||
Notes: "Industrial trucks — safety, Part 1: self-propelled trucks up to 10 000 kg.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1726-1:1999-04 (now ISO 3691-1)", Relation: "superseded_by", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 3691-1:2015 (now harmonized as EN ISO 3691-1)", Relation: "supersedes", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.178 (Powered industrial trucks)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ITSDF B56.1-2020 (Low-/High-Lift Trucks)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-15011", BatchID: "2a",
|
||||
Notes: "Cranes — bridge and gantry cranes.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 15011:2014-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME B30.2-2022 (Overhead and Gantry Cranes)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.179 (Overhead and gantry cranes)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-14492-1", BatchID: "2a",
|
||||
Notes: "Cranes — power-driven winches and hoists. Part 1: winches.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14492-1:2019-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME B30.7-2016 (Winches)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-60974-1", BatchID: "2a",
|
||||
Notes: "Arc welding equipment — Part 1: welding power sources.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60974-1:2019-07 (VDE 0544-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60974-1:2017", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 551-2010 (Transformer-type arc-welding machines)", Relation: "partial", Confidence: "medium"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z49.1-2021 (Safety in Welding, Cutting)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 15579.1-2013", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1010-2", BatchID: "2a",
|
||||
Notes: "Printing/paper-converting machines — Part 2: printing/varnishing machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1010-2:2011-03", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B65.1-2011 (Printing Press Systems)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-809", BatchID: "2a",
|
||||
Notes: "Pumps and pump units for liquids — common safety requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 809:2012-10", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/HI Pump Standards (B73, B74, etc.)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1012-1", BatchID: "2a",
|
||||
Notes: "Compressors and vacuum pumps — safety, Part 1: compressors.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1012-1:2011-02", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME B19.1-2017 (Compressor Safety)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-11111-1", BatchID: "2a",
|
||||
Notes: "Safety requirements for textile machinery — Part 1: common requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11111-1:2017-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11111-1:2016", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 36316-2018 (textile machinery safety)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-710", BatchID: "2a",
|
||||
Notes: "Foundry machinery — moulding and core-making machinery.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 710:2005-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z241.1-2017 (Sand Preparation, Moulding, Coremaking)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-869", BatchID: "2a",
|
||||
Notes: "Safety requirements for high pressure metal die casting units.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 869:2010-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z241.2-2017 (Melting and Pouring)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-81-20", BatchID: "2a",
|
||||
Notes: "Safety rules for the construction and installation of lifts — Part 20: passenger lifts.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-20:2020-06", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME A17.1-2022 (Safety Code for Elevators and Escalators)", Relation: "partial", Confidence: "high", Notes: "EU/US lift codes differ significantly in details; consult specialist."},
|
||||
{Region: "US-ANSI", Identifier: "ANSI A17.1 = ASME A17.1 (joint standard)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 7588.1-2020", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS A 4302:2006", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-4254-1", BatchID: "2a",
|
||||
Notes: "Agricultural machinery — safety, Part 1: general requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4254-1:2016-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ASABE S390.5 (Agricultural Machinery Safety)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1928 (Agriculture)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 10395.1-2009", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12547", BatchID: "2a",
|
||||
Notes: "Centrifuges — common safety requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12547:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1539", BatchID: "2a",
|
||||
Notes: "Dryers and ovens, in which flammable substances are released — safety requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1539:2015-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 86:2023 (Ovens and Furnaces)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1678", BatchID: "2a",
|
||||
Notes: "Food processing machinery — vegetable cutting machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1678+A1:2010-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/NSF 8 (Commercial Powered Food Preparation Equipment)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1612-1", BatchID: "2a",
|
||||
Notes: "Plastics and rubber machines — reaction moulding machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1612-1:2010-03", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-746-1", BatchID: "2a",
|
||||
Notes: "Industrial thermoprocessing equipment — general safety requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 746-1:2015-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 86:2023 (Ovens and Furnaces)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-746-2", BatchID: "2a",
|
||||
Notes: "Industrial thermoprocessing — fuel-fired equipment safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 746-2:2010-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 86:2023 §6 (Class B Ovens)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-453", BatchID: "2a",
|
||||
Notes: "Food processing machinery — dough mixers.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 453:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NSF", Identifier: "NSF/ANSI 8 (Powered Food Preparation Equipment)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1010-3", BatchID: "2a",
|
||||
Notes: "Printing/paper-converting machines — Part 3: cutting machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1010-3:2009-11", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-13851", BatchID: "2a",
|
||||
Notes: "Two-hand control devices — functional aspects and design (succeeds EN 574).",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 13851:2019-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 13851:2019", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.19-2019 §10", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1672-1", BatchID: "2a",
|
||||
Notes: "Food processing machinery — Part 1: terminology.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1672-1:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13389", BatchID: "2a",
|
||||
Notes: "Food processing machinery — mixers with horizontal shafts.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13389:2017-08", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13886", BatchID: "2a",
|
||||
Notes: "Food processing machinery — boiling pans with mechanical agitator/mixer.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13886:2017-08", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12042", BatchID: "2a",
|
||||
Notes: "Food processing machinery — automatic dough dividers.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12042:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12331", BatchID: "2a",
|
||||
Notes: "Food processing machinery — mincing machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12331:2017-08", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12855", BatchID: "2a",
|
||||
Notes: "Food processing machinery — rotary bowl cutters.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12855:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13570", BatchID: "2a",
|
||||
Notes: "Food processing machinery — mixing machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13570:2017-08", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13591", BatchID: "2a",
|
||||
Notes: "Food processing machinery — fixed deck oven loaders.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13591:2017-08", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-14655", BatchID: "2a",
|
||||
Notes: "Food processing machinery — baguette slicers.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14655:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13954", BatchID: "2a",
|
||||
Notes: "Food processing machinery — bread slicers.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13954:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12463", BatchID: "2a",
|
||||
Notes: "Food processing machinery — filling machines and auxiliary equipment.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12463:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12984", BatchID: "2a",
|
||||
Notes: "Food processing machinery — portable/hand-guided machines with mechanically driven cutting tools.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12984:2010-09", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-415-2", BatchID: "2a",
|
||||
Notes: "Safety of packaging machines — Part 2: pre-formed rigid container machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 415-2:2000-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/PMMI B155.1-2016", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-415-3", BatchID: "2a",
|
||||
Notes: "Safety of packaging machines — Part 3: form, fill, seal machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 415-3:2021-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/PMMI B155.1-2016", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-415-4", BatchID: "2a",
|
||||
Notes: "Safety of packaging machines — Part 4: palletisers and depalletisers.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 415-4:1999-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/PMMI B155.1-2016", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-415-6", BatchID: "2a",
|
||||
Notes: "Safety of packaging machines — Part 6: pallet wrapping machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 415-6:2013-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/PMMI B155.1-2016", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-415-7", BatchID: "2a",
|
||||
Notes: "Safety of packaging machines — Part 7: group and secondary packaging machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 415-7:2010-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/PMMI B155.1-2016", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,400 @@
|
||||
package iace
|
||||
|
||||
// Cross-reference matrix — Batch 2b (IDs 151-200).
|
||||
// Covers remainder of packaging machines (EN 415 series), textile machinery
|
||||
// (EN ISO 11111 family), agricultural machines (ISO 4254 family), earth-
|
||||
// moving (EN 474), cranes, lifts (EN 81 family), industrial trucks, and
|
||||
// pressure equipment. Many EU-specific; ANSI/OSHA equivalents are partial.
|
||||
|
||||
func init() {
|
||||
registerCrossRefs(batch2bCrossRefs())
|
||||
}
|
||||
|
||||
func batch2bCrossRefs() []NormCrossRef {
|
||||
return []NormCrossRef{
|
||||
{
|
||||
NormID: "EN-415-8", BatchID: "2b",
|
||||
Notes: "Safety of packaging machines — Part 8: strapping machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 415-8:2008-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/PMMI B155.1-2016", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-415-9", BatchID: "2b",
|
||||
Notes: "Safety of packaging machines — Part 9: noise measurement methods.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 415-9:2010-04", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-415-10", BatchID: "2b",
|
||||
Notes: "Safety of packaging machines — Part 10: general requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 415-10:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/PMMI B155.1-2016", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-11111-2", BatchID: "2b",
|
||||
Notes: "Textile machinery — spinning preparatory machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11111-2:2005-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11111-2:2005", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-11111-3", BatchID: "2b",
|
||||
Notes: "Textile machinery — nonwoven machinery.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11111-3:2005-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11111-3:2005", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-11111-4", BatchID: "2b",
|
||||
Notes: "Textile machinery — yarn processing.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11111-4:2005-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11111-4:2005", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-11111-5", BatchID: "2b",
|
||||
Notes: "Textile machinery — fabric formation machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11111-5:2005-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11111-5:2005", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-11111-6", BatchID: "2b",
|
||||
Notes: "Textile machinery — fabric finishing machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11111-6:2005-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11111-6:2005", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-11111-7", BatchID: "2b",
|
||||
Notes: "Textile machinery — dyeing/finishing machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11111-7:2005-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11111-7:2005", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-4254-5", BatchID: "2b",
|
||||
Notes: "Agricultural machinery — power-driven soil-working machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4254-5:2018-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ASABE S390.5 (Agricultural Machinery Safety)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 10395.5-2013", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-4254-6", BatchID: "2b",
|
||||
Notes: "Agricultural machinery — sprayers and liquid fertiliser distributors.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4254-6:2020-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB 10395.6-2006", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-4254-7", BatchID: "2b",
|
||||
Notes: "Agricultural machinery — combine harvesters, forage and cotton harvesters.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4254-7:2017-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB 10395.7-2006", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-4254-12", BatchID: "2b",
|
||||
Notes: "Agricultural machinery — rotary disc mowers, drum mowers, flail mowers.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4254-12:2017-09", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "ISO-4254-14", BatchID: "2b",
|
||||
Notes: "Agricultural machinery — wrap-baling machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4254-14:2016-04", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-474-2", BatchID: "2b",
|
||||
Notes: "Earth-moving machinery — Part 2: tractor dozers.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 474-2:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-474-3", BatchID: "2b",
|
||||
Notes: "Earth-moving machinery — Part 3: loaders.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 474-3:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1926.602", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-474-5", BatchID: "2b",
|
||||
Notes: "Earth-moving machinery — Part 5: hydraulic excavators.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 474-5:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1926.602", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-474-6", BatchID: "2b",
|
||||
Notes: "Earth-moving machinery — Part 6: dumpers.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 474-6:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13000", BatchID: "2b",
|
||||
Notes: "Cranes — mobile cranes safety requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13000:2018-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME B30.5-2021 (Mobile and Locomotive Cranes)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1926.1400 (Cranes & Derricks in Construction)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-14439", BatchID: "2b",
|
||||
Notes: "Cranes — tower cranes safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14439:2010-05", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME B30.3-2019 (Tower Cranes)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13852-1", BatchID: "2b",
|
||||
Notes: "Cranes — offshore cranes, general purpose.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13852-1:2014-05", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 19927:2022 (Offshore cranes)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-14985", BatchID: "2b",
|
||||
Notes: "Cranes — slewing jib cranes.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14985:2012-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME B30.11-2019 (Monorails & Underhung Cranes)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-14492-2", BatchID: "2b",
|
||||
Notes: "Cranes — power-driven hoists.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14492-2:2019-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME B30.16-2017 (Overhead Hoists)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-81-50", BatchID: "2b",
|
||||
Notes: "Safety rules for the construction and installation of lifts — Part 50: design rules.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-50:2020-06", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME A17.1-2022", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-81-70", BatchID: "2b",
|
||||
Notes: "Safety rules for lifts — Part 70: accessibility to lifts for persons including persons with disability.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-70:2021-07", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ICC", Identifier: "ICC A117.1-2017 (Accessible Buildings)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-ADA", Identifier: "ADA Standards for Accessible Design (2010)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1808", BatchID: "2b",
|
||||
Notes: "Safety requirements for suspended access equipment.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1808:2015-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1926.451 (Scaffolds)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-280", BatchID: "2b",
|
||||
Notes: "Mobile elevating work platforms — design, calculation, safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 280:2022-01", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI A92.20-2018 (Mobile Elevating Work Platforms)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1926.453 (Aerial Lifts)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1570-1", BatchID: "2b",
|
||||
Notes: "Lifting tables — Part 1: lifting tables for loads up to and including two levels.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1570-1:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI MH29.1-2020 (Lift Tables)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-741", BatchID: "2b",
|
||||
Notes: "Continuous handling equipment — safety for bulk material pneumatic conveyors.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 741:2010-09", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-528", BatchID: "2b",
|
||||
Notes: "Rail-dependent storage and retrieval equipment safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 528:2021-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI MH16.3-2020 (Automated Storage Retrieval Systems)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1175", BatchID: "2b",
|
||||
Notes: "Industrial trucks — electrical/electronic requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1175:2020-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 583 (Electric Industrial Trucks)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1459", BatchID: "2b",
|
||||
Notes: "Industrial trucks — self-propelled variable-reach trucks.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1459-1:2017-07", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ITSDF B56.6-2016 (Rough Terrain Trucks)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12158-1", BatchID: "2b",
|
||||
Notes: "Builders hoists for goods — Part 1: hoists with accessible platforms.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12158-1:2021-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME A17.1 §25 (Material Lifts)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1417", BatchID: "2b",
|
||||
Notes: "Plastics and rubber machines — two-roll mills.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1417:2014-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B151.5 (Two-Roll Rubber Mills)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1114-3", BatchID: "2b",
|
||||
Notes: "Plastics and rubber machines — extruders/extrusion lines, Part 3: pelletizers.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1114-3:2002-08", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12013", BatchID: "2b",
|
||||
Notes: "Plastics and rubber machines — internal mixers.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12013:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12409", BatchID: "2b",
|
||||
Notes: "Plastics and rubber machines — thermoforming machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12409:2014-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B151.39 (Thermoforming Machines)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13418", BatchID: "2b",
|
||||
Notes: "Plastics and rubber machines — winding machines for film/sheet.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13418:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12301", BatchID: "2b",
|
||||
Notes: "Plastics and rubber machines — calenders.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12301:2014-04", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-11611", BatchID: "2b",
|
||||
Notes: "Protective clothing for use in welding and allied processes.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11611:2016-07", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ISEA 105 (Hand Protection) + NFPA 70E", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-50504", BatchID: "2b",
|
||||
Notes: "Validation of arc welding equipment.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 50504:2009-04 (VDE 0544-200)", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1012-2", BatchID: "2b",
|
||||
Notes: "Compressors and vacuum pumps — safety, Part 2: vacuum pumps.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1012-2:2011-02", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13445-1", BatchID: "2b",
|
||||
Notes: "Unfired pressure vessels — Part 1: general.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13445-1:2021-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME BPVC Section VIII (Pressure Vessels)", Relation: "partial", Confidence: "high", Notes: "Substantive technical differences in calculation method (DBA vs DBF)."},
|
||||
{Region: "CN-GB", Identifier: "GB 150 series (Pressure Vessels)", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS B 8265:2017", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-14359", BatchID: "2b",
|
||||
Notes: "Gas-loaded accumulators for fluid power applications.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14359:2017-08", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12453", BatchID: "2b",
|
||||
Notes: "Industrial, commercial and garage doors and gates — safety in use of power-operated doors.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12453:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 325-2017 (Doors, Drapery, Gates, Louvers, and Windows)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F2200-22 (Standard Specification for Automated Vehicular Gate Construction)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12978", BatchID: "2b",
|
||||
Notes: "Safety devices for power-operated doors and gates.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12978+A1:2010-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 325-2017", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12545", BatchID: "2b",
|
||||
Notes: "Footwear manufacturing machinery — common safety requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12545:2000-08", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1034-1", BatchID: "2b",
|
||||
Notes: "Safety requirements for paper-making and paper-finishing machines — Part 1: common requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-1:2021-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B65.1-2011", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1034-3", BatchID: "2b",
|
||||
Notes: "Safety requirements for paper-making — Part 3: winders and slitter-winders.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-3:2012-10", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,410 @@
|
||||
package iace
|
||||
|
||||
// Cross-reference matrix — Batch 3a (IDs 201-250).
|
||||
// Covers machining (woodworking EN ISO 19085, machine tools EN ISO 23125,
|
||||
// abrasives, hand-held power tools EN ISO 11148), conveyors + automation
|
||||
// (industrial trucks EN ISO 3691 family, escalators EN 115), and some
|
||||
// service-lift specials (EN 81-31/41/43).
|
||||
|
||||
func init() {
|
||||
registerCrossRefs(batch3aCrossRefs())
|
||||
}
|
||||
|
||||
func batch3aCrossRefs() []NormCrossRef {
|
||||
return []NormCrossRef{
|
||||
{
|
||||
NormID: "EN-1034-4", BatchID: "3a",
|
||||
Notes: "Paper-making machines — Part 4: pulpers and their loading equipment.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-4:2021-08", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12413", BatchID: "3a",
|
||||
Notes: "Safety requirements for bonded abrasive products.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12413:2019-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B7.1-2017 (Safety Requirements for Abrasive Wheels)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.215", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13236", BatchID: "3a",
|
||||
Notes: "Safety requirements for superabrasive products.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13236:2019-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B7.1-2017", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-28881", BatchID: "3a",
|
||||
Notes: "Machine tools safety — electro-discharge machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 28881:2022-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 28881:2022", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-11553-2", BatchID: "3a",
|
||||
Notes: "Safety of laser processing machines — Part 2: hand-held laser processing devices.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11553-2:2019-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z136.1-2022 (Lasers)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-11553-3", BatchID: "3a",
|
||||
Notes: "Safety of laser processing machines — Part 3: noise reduction.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11553-3:2013-07", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-16092-2", BatchID: "3a",
|
||||
Notes: "Machine tools — presses, Part 2: mechanical presses safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 16092-2:2020-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.1-2009 (R2020) (Mechanical Power Presses)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.217", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-16092-4", BatchID: "3a",
|
||||
Notes: "Machine tools — presses, Part 4: pneumatic presses safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 16092-4:2020-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13736", BatchID: "3a",
|
||||
Notes: "Machine tools safety — pneumatic presses.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13736:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1550", BatchID: "3a",
|
||||
Notes: "Machine tools safety — chucks for workholding.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1550+A1:2008-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.6 (Lathes) clauses on workholding", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-23125", BatchID: "3a",
|
||||
Notes: "Machine tools — turning machines safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 23125:2015-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.6-2001 (R2020) (Lathes)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.22-2002 (NC Turning Machines)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1807-1", BatchID: "3a",
|
||||
Notes: "Safety of woodworking machines — band saws, Part 1: table band saws.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1807-1:2013-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI O1.1-2019", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1807-2", BatchID: "3a",
|
||||
Notes: "Safety of woodworking machines — band saws, Part 2: log sawing.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1807-2:2013-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12921-1", BatchID: "3a",
|
||||
Notes: "Machines for surface cleaning/pre-treatment with liquids — Part 1: common safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12921-1:2009-04", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12921-2", BatchID: "3a",
|
||||
Notes: "Surface cleaning machines — Part 2: safety for machines using water-based liquids.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12921-2:2008-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12921-3", BatchID: "3a",
|
||||
Notes: "Surface cleaning machines — Part 3: safety for machines using flammable liquids.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12921-3:2017-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 30 (Flammable and Combustible Liquids)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12753", BatchID: "3a",
|
||||
Notes: "Thermal cleaning systems for components contaminated with organic substances.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12753:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12215", BatchID: "3a",
|
||||
Notes: "Coating plants — spray booths for application of organic liquid coating materials.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12215:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 33 (Spray Application Using Flammable or Combustible Materials)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.94(c) (Spray finishing operations)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13355", BatchID: "3a",
|
||||
Notes: "Coating plants — combined booths.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13355:2017-04", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1953", BatchID: "3a",
|
||||
Notes: "Atomising and spraying equipment for coating materials.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1953:2014-04", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-746-3", BatchID: "3a",
|
||||
Notes: "Industrial thermoprocessing — safety for atmosphere systems.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 746-3:2010-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 86:2023 §11 (Special Atmosphere Furnaces)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12464-1", BatchID: "3a",
|
||||
Notes: "Light and lighting — indoor work places.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12464-1:2021-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/IES RP-7 (Industrial Lighting)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-11148-1", BatchID: "3a",
|
||||
Notes: "Hand-held non-electric power tools — Part 1: assembly tools for threaded fasteners.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11148-1:2011-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11148-1:2011", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-11148-3", BatchID: "3a",
|
||||
Notes: "Hand-held non-electric power tools — drills/tapping machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11148-3:2012-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11148-3:2012", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-11148-6", BatchID: "3a",
|
||||
Notes: "Hand-held non-electric power tools — assembly power tools for threaded fasteners.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11148-6:2012-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11148-6:2012", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-11148-10", BatchID: "3a",
|
||||
Notes: "Hand-held non-electric power tools — Part 10: portable abrasive tools.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11148-10:2017-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11148-10:2017", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-52941", BatchID: "3a",
|
||||
Notes: "Additive manufacturing — performance of buildup equipment.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 52941:2021-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F3303-23 (Additive Manufacturing — Process Characteristics)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-52911-1", BatchID: "3a",
|
||||
Notes: "Additive manufacturing — design optimization for laser-based PBF.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO/ASTM 52911-1:2020-06", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F52911-19", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-19085-1", BatchID: "3a",
|
||||
Notes: "Woodworking machines safety — common requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 19085-1:2021-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI O1.1-2019", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.213", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-19085-5", BatchID: "3a",
|
||||
Notes: "Woodworking machines safety — Part 5: dimension saws.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 19085-5:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.213(d) (Circular saws)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-621", BatchID: "3a",
|
||||
Notes: "Continuous handling equipment — special requirements for air-supported conveyors.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 621:2010-09", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-616", BatchID: "3a",
|
||||
Notes: "Continuous handling equipment — safety, mechanical/hydraulic feeders for paper rolls.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 616:2010-09", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-3691-4", BatchID: "3a",
|
||||
Notes: "Industrial trucks — safety, Part 4: driverless industrial trucks and their systems (AGVs).",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 3691-4:2023-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ITSDF B56.5-2019 (Driverless, Automatic Guided Industrial Vehicles)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 3691-4:2023", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1525", BatchID: "3a",
|
||||
Notes: "Safety of industrial trucks — driverless trucks (legacy; superseded by ISO 3691-4).",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1525:1998-01 (withdrawn 2020)", Relation: "superseded_by", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 3691-4:2023", Relation: "supersedes", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-15095", BatchID: "3a",
|
||||
Notes: "Power-operated mobile racking and shelving, carousels and storage lifts — safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 15095:2007-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI MH16.1-2021 (Industrial Steel Storage Racks)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13309", BatchID: "3a",
|
||||
Notes: "Construction machinery — electromagnetic compatibility (EMC).",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13309:2010-07", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12604", BatchID: "3a",
|
||||
Notes: "Industrial, commercial and garage doors and gates — mechanical aspects, requirements and test methods.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12604:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 325-2017", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12635", BatchID: "3a",
|
||||
Notes: "Industrial, commercial and garage doors and gates — installation and use.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12635:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F2200-22 (Automated Vehicular Gate Construction)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-115-1", BatchID: "3a",
|
||||
Notes: "Safety of escalators and moving walks — construction and installation.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 115-1:2017-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME A17.1-2022 §6 (Escalators and Moving Walks)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 16899-2011", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS A 4302:2006 §B (Escalators)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-115-2", BatchID: "3a",
|
||||
Notes: "Safety of escalators and moving walks — Part 2: rules for improvement of safety of existing.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 115-2:2021-07", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME A17.3 (Safety Code for Existing Elevators)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-3691-1", BatchID: "3a",
|
||||
Notes: "Industrial trucks — safety, Part 1: self-propelled trucks (excludes AGVs).",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 3691-1:2015-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 3691-1:2015", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ITSDF B56.1-2020", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.178", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-3691-3", BatchID: "3a",
|
||||
Notes: "Industrial trucks — safety, Part 3: additional requirements for trucks with elevating operator position.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 3691-3:2016-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 3691-3:2016", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ITSDF B56.11.5", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-3691-5", BatchID: "3a",
|
||||
Notes: "Industrial trucks — safety, Part 5: pedestrian-propelled trucks.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 3691-5:2015-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 3691-5:2014", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-3691-6", BatchID: "3a",
|
||||
Notes: "Industrial trucks — safety, Part 6: burden and personnel carriers.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 3691-6:2015-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 3691-6:2013", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13135", BatchID: "3a",
|
||||
Notes: "Cranes — safety, design, requirements for equipment.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13135:2020-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12999", BatchID: "3a",
|
||||
Notes: "Cranes — loader cranes.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12999:2020-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME B30.22-2016 (Articulating Boom Cranes)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-14238", BatchID: "3a",
|
||||
Notes: "Cranes — manually controlled load manipulating devices.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14238:2010-05", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13157", BatchID: "3a",
|
||||
Notes: "Cranes — safety, hand-powered lifting equipment.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13157:2009-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME B30.21-2014 (Lever Hoists)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-14943", BatchID: "3a",
|
||||
Notes: "Transport services — terminal handling equipment for waste from inland waterway and sea vessels.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14943:2005-05", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-81-31", BatchID: "3a",
|
||||
Notes: "Safety rules for lifts — Part 31: accessible goods only lifts.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-31:2010-07", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,427 @@
|
||||
package iace
|
||||
|
||||
// Cross-reference matrix — Batch 3b (IDs 251-300).
|
||||
// Covers process safety (piping, boilers, pressure vessels EN 13480/12952/
|
||||
// 12953), pressure-related ISO standards, wind turbines (IEC 61400),
|
||||
// photovoltaics (IEC 62446), rotating electrical machinery (IEC 60034),
|
||||
// refrigeration, fuel-cell systems, large battery installations, and the
|
||||
// remainder of EN-474 construction equipment.
|
||||
|
||||
func init() {
|
||||
registerCrossRefs(batch3bCrossRefs())
|
||||
}
|
||||
|
||||
func batch3bCrossRefs() []NormCrossRef {
|
||||
return []NormCrossRef{
|
||||
{
|
||||
NormID: "EN-81-41", BatchID: "3b",
|
||||
Notes: "Safety rules for lifts — Part 41: vertical lifting platforms intended for use by persons with impaired mobility.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-41:2011-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME A18.1-2020 (Platform Lifts and Stairway Chairlifts)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-81-43", BatchID: "3b",
|
||||
Notes: "Safety rules for lifts — Part 43: lifts for cranes.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-43:2010-01", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1398", BatchID: "3b",
|
||||
Notes: "Dock levellers safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1398:2009-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI MH30.2-2015 (Dock Levellers)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1756-1", BatchID: "3b",
|
||||
Notes: "Tail lifts — Part 1: tail lifts for goods.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1756-1:2021-02", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI MH30.1-2015 (Truck Liftgates)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1756-2", BatchID: "3b",
|
||||
Notes: "Tail lifts — Part 2: tail lifts for persons.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1756-2:2009-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ADA", Identifier: "ADA Standards 2010 + DOT FMVSS 403", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13480-1", BatchID: "3b",
|
||||
Notes: "Metallic industrial piping — Part 1: general.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13480-1:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME B31.3-2022 (Process Piping)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 20801 series", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13480-3", BatchID: "3b",
|
||||
Notes: "Metallic industrial piping — Part 3: design and calculation.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13480-3:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME B31.3-2022 §300-305", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-764-7", BatchID: "3b",
|
||||
Notes: "Pressure equipment — safety systems for unfired pressure equipment.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 764-7:2002-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME BPVC Section VIII Div.1 §UG-125 (Overpressure)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12952-1", BatchID: "3b",
|
||||
Notes: "Water-tube boilers and auxiliary installations — Part 1: general.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12952-1:2015-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME BPVC Section I (Power Boilers)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 16507 series", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12953-1", BatchID: "3b",
|
||||
Notes: "Shell boilers — Part 1: general.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12953-1:2012-10", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME BPVC Section IV (Heating Boilers)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 16508 series", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-21049", BatchID: "3b",
|
||||
Notes: "Pumps — shaft sealing systems for centrifugal and rotary pumps.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 21049:2004-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-API", Identifier: "API 682 (Pumps — Shaft Sealing Systems)", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12162", BatchID: "3b",
|
||||
Notes: "Liquid pumps — safety, hydrostatic testing procedure.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12162:2009-07", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-14462", BatchID: "3b",
|
||||
Notes: "Surface treatment equipment — noise test code.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14462:2015-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12757-1", BatchID: "3b",
|
||||
Notes: "Mixing machinery for coating materials — Part 1: mixers for general application.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12757-1:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-50156-1", BatchID: "3b",
|
||||
Notes: "Electrical equipment for furnaces — Part 1: requirements for application design.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 50156-1:2016-03 (VDE 0116-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 85 (Boiler and Combustion Systems Hazards Code)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 86 (Ovens and Furnaces)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-14460", BatchID: "3b",
|
||||
Notes: "Explosion-resistant equipment.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14460:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 69 (Explosion Prevention Systems)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-14644-1", BatchID: "3b",
|
||||
Notes: "Cleanrooms and associated controlled environments — Part 1: classification of air cleanliness.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 14644-1:2016-06", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 14644-1:2015", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-FDA", Identifier: "FDA cGMP (21 CFR 211, 21 CFR 820) + USP <797>", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-14644-4", BatchID: "3b",
|
||||
Notes: "Cleanrooms — Part 4: design, construction and start-up.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 14644-4:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 14644-4:2022", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-14015", BatchID: "3b",
|
||||
Notes: "Specification for design and manufacture of site built, vertical, cylindrical, flat-bottomed, above-ground welded steel tanks.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14015:2005-02", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-API", Identifier: "API 650 (Welded Tanks for Oil Storage)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13094", BatchID: "3b",
|
||||
Notes: "Tanks for the transport of dangerous goods — metallic tanks with working pressure <= 0.5 bar.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13094:2020-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-DOT", Identifier: "49 CFR Part 178 (Specifications for Packagings)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-16767", BatchID: "3b",
|
||||
Notes: "Industrial valves — metallic check valves.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 16767:2016-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-API", Identifier: "API 594 (Check Valves)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-4126-1", BatchID: "3b",
|
||||
Notes: "Safety devices for protection against excessive pressure — Part 1: safety valves.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4126-1:2013-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 4126-1:2013", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME BPVC Section VIII §UG-126 (Pressure Relief)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-API", Identifier: "API 526 (Flanged Steel Pressure-Relief Valves)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-ISO-4126-4", BatchID: "3b",
|
||||
Notes: "Safety devices — Part 4: pilot-operated safety valves.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4126-4:2013-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-API", Identifier: "API 520 / API 526", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1854", BatchID: "3b",
|
||||
Notes: "Pressure-sensing devices for gas burners and gas-burning appliances.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1854:2010-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z21.21 / CSA 6.5 (Combustion Controls)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-161", BatchID: "3b",
|
||||
Notes: "Automatic shut-off valves for gas burners.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 161:2013-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z21.21 / CSA 6.5", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12566-3", BatchID: "3b",
|
||||
Notes: "Small wastewater treatment systems for up to 50 PT.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12566-3:2016-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NSF", Identifier: "NSF/ANSI 40 (Residential Wastewater Treatment Systems)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-14181", BatchID: "3b",
|
||||
Notes: "Stationary source emissions — quality assurance of automated measuring systems.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14181:2014-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-EPA", Identifier: "40 CFR Part 60 Appendix F (QA Procedures for CEMS)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-IEC-61400-1", BatchID: "3b",
|
||||
Notes: "Wind energy generation systems — Part 1: design requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN IEC 61400-1:2019-12 (VDE 0127-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 61400-1:2019", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ACP 61400-1-2021 (American Clean Power)", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 18451.1-2022", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-IEC-61400-2", BatchID: "3b",
|
||||
Notes: "Wind energy generation systems — Part 2: small wind turbines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN IEC 61400-2:2014-11 (VDE 0127-2)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 61400-2:2013", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ACP Small Wind Turbines (formerly AWEA 9.1)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-62446-1", BatchID: "3b",
|
||||
Notes: "Photovoltaic (PV) systems — requirements for testing, documentation and maintenance.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 62446-1:2017-04 (VDE 0126-23-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 62446-1:2016", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 70 (NEC) Article 690 (Solar Photovoltaic Systems)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-UL", Identifier: "UL 1741-2021 (Inverters for use with PV systems)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-60034-1", BatchID: "3b",
|
||||
Notes: "Rotating electrical machines — Part 1: rating and performance.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60034-1:2011-02 (VDE 0530-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60034-1:2017", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NEMA", Identifier: "NEMA MG 1-2021 (Motors and Generators)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI C50.10 / C50.13 (Synchronous machines)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 755-2019", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS C 4034-1:2011", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-60034-5", BatchID: "3b",
|
||||
Notes: "Rotating electrical machines — Part 5: degrees of protection (IP code) for machines.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60034-5:2008-10 (VDE 0530-5)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60034-5:2006", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NEMA", Identifier: "NEMA MG 1 §5 (Enclosures)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-14276-1", BatchID: "3b",
|
||||
Notes: "Pressure equipment for refrigerating systems and heat pumps — Part 1: vessels.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14276-1:2020-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME BPVC Section VIII Div.1 + ANSI/AHRI 495", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-ASHRAE", Identifier: "ASHRAE 15-2022 (Safety Standard for Refrigeration Systems)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-378-1", BatchID: "3b",
|
||||
Notes: "Refrigerating systems and heat pumps — safety and environmental requirements — Part 1: basic requirements.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 378-1:2021-06", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASHRAE", Identifier: "ASHRAE 15-2022", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-ASHRAE", Identifier: "ASHRAE 34-2022 (Refrigerant Classification)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12621", BatchID: "3b",
|
||||
Notes: "Machinery for the supply and circulation of coating materials under pressure.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12621:2014-10", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-14753", BatchID: "3b",
|
||||
Notes: "Safety requirements for machinery and plant for the continuous casting of steel.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14753:2007-04", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-12952-7", BatchID: "3b",
|
||||
Notes: "Water-tube boilers — Part 7: requirements for equipment for the boiler.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12952-7:2012-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME BPVC Section I", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-14917", BatchID: "3b",
|
||||
Notes: "Metal bellows expansion joints for pressure applications.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14917:2021-07", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-EJMA", Identifier: "EJMA Standards (Expansion Joint Manufacturers Association)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-62282-3-100", BatchID: "3b",
|
||||
Notes: "Fuel cell technologies — Part 3-100: stationary fuel cell power systems, safety.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN IEC 62282-3-100:2020-08 (VDE 0130-3-100)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 62282-3-100:2019", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/CSA FC1 (Stationary Fuel Cell Power Systems)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-13445-3", BatchID: "3b",
|
||||
Notes: "Unfired pressure vessels — Part 3: design.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13445-3:2021-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME BPVC Section VIII Div.1/Div.2 (Pressure Vessels)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 150.3-2011", Relation: "equivalent", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-62619", BatchID: "3b",
|
||||
Notes: "Secondary cells and batteries containing alkaline or non-acid electrolytes — safety requirements for secondary lithium cells/batteries for industrial applications.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN IEC 62619:2022-09 (VDE 0510-39)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 62619:2022", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 1973-2022 (Batteries for Stationary Applications)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 855-2023 (Stationary Energy Storage Systems)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-1991-4", BatchID: "3b",
|
||||
Notes: "Eurocode 1 — actions on structures — Part 4: silos and tanks.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1991-4:2010-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ACI", Identifier: "ACI 313 (Concrete Bins and Silos)", Relation: "partial", Confidence: "medium"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-15776", BatchID: "3b",
|
||||
Notes: "Unfired pressure vessels — requirements for the design and construction of pressure vessels made of cast iron.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 15776:2019-05", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-16282-1", BatchID: "3b",
|
||||
Notes: "Equipment for commercial kitchens — components for ventilation in commercial kitchens.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 16282-1:2017-10", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 96-2024 (Standard for Ventilation Control and Fire Protection of Commercial Cooking)", Relation: "partial", Confidence: "high"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-474-4", BatchID: "3b",
|
||||
Notes: "Earth-moving machinery — Part 4: backhoe loaders.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 474-4:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-474-7", BatchID: "3b",
|
||||
Notes: "Earth-moving machinery — Part 7: scrapers.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 474-7:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-474-8", BatchID: "3b",
|
||||
Notes: "Earth-moving machinery — Part 8: graders.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 474-8:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-474-9", BatchID: "3b",
|
||||
Notes: "Earth-moving machinery — Part 9: pipelayers.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 474-9:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-474-10", BatchID: "3b",
|
||||
Notes: "Earth-moving machinery — Part 10: trenchers.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 474-10:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
{
|
||||
NormID: "EN-474-11", BatchID: "3b",
|
||||
Notes: "Earth-moving machinery — Part 11: earth and landfill compactors.",
|
||||
Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 474-11:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,187 @@
|
||||
package iace
|
||||
|
||||
// Cross-reference matrix — Batch 4a (next 50, alphabetically sorted).
|
||||
// Covers paper machinery sub-parts (EN 1034-x), protective clothing
|
||||
// electrostatic (EN 1149-x), industrial trucks electrical (EN 1175-x),
|
||||
// playground equipment (EN 1176-x), and plastics granulators (EN 12012-x).
|
||||
// Many EU-specific C-norms; ANSI equivalents are partial or absent.
|
||||
|
||||
func init() {
|
||||
registerCrossRefs(batch4aCrossRefs())
|
||||
}
|
||||
|
||||
func batch4aCrossRefs() []NormCrossRef {
|
||||
return []NormCrossRef{
|
||||
{NormID: "EN-1010-4", BatchID: "4a", Notes: "Printing/paper-converting machines — Part 4: bookbinding, paper-converting and finishing machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1010-4:2007-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B65.5 (Bindery and Finishing Equipment)", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-1012-3", BatchID: "4a", Notes: "Compressors and vacuum pumps — Part 3: process compressors.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1012-3:2014-06", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-API", Identifier: "API 617 (Axial and Centrifugal Compressors)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-1028-1", BatchID: "4a", Notes: "Fire-fighting pumps — fire-fighting centrifugal pumps with primer.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1028-1:2008-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 1901-2024 (Automotive Fire Apparatus)", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-1034-2", BatchID: "4a", Notes: "Paper-making — Part 2: barking drums and debarking equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-2:2005-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-5", BatchID: "4a", Notes: "Paper-making — Part 5: sheeters.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-5:2010-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-6", BatchID: "4a", Notes: "Paper-making — Part 6: calenders.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-6:2012-10", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-7", BatchID: "4a", Notes: "Paper-making — Part 7: chests.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-7:2005-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-8", BatchID: "4a", Notes: "Paper-making — Part 8: refining plants.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-8:2012-10", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-9", BatchID: "4a", Notes: "Paper-making — Part 9: chemical mixers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-9:2012-10", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-10", BatchID: "4a", Notes: "Paper-making — Part 10: coaters.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-10:2009-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-11", BatchID: "4a", Notes: "Paper-making — Part 11: tissue machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-11:2009-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-12", BatchID: "4a", Notes: "Paper-making — Part 12: cross cutters.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-12:2009-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-13", BatchID: "4a", Notes: "Paper-making — Part 13: machines for de-wiring of bales/units.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-13:2018-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-14", BatchID: "4a", Notes: "Paper-making — Part 14: reel splitter.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-14:2009-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-15", BatchID: "4a", Notes: "Paper-making — Part 15: sheet drying systems.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-15:2010-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-16", BatchID: "4a", Notes: "Paper-making — Part 16: paper and board machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-16:2012-10", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-17", BatchID: "4a", Notes: "Paper-making — Part 17: tissue making machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-17:2012-10", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-18", BatchID: "4a", Notes: "Paper-making — Part 18: pulper-feeding/discharging.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-18:2010-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-20", BatchID: "4a", Notes: "Paper-making — Part 20: roll calenders.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-20:2017-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-21", BatchID: "4a", Notes: "Paper-making — Part 21: coating machines (after-treatment).", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-21:2012-10", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-22", BatchID: "4a", Notes: "Paper-making — Part 22: wood grinders.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-22:2005-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-26", BatchID: "4a", Notes: "Paper-making — Part 26: machines for packaging of bobbins and reels.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-26:2017-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1034-27", BatchID: "4a", Notes: "Paper-making — Part 27: reel handling systems.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1034-27:2017-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1035", BatchID: "4a", Notes: "Conveyor belts — laboratory scale flammability characteristics.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1035 (withdrawn, see ISO 340)", Relation: "superseded_by", Confidence: "medium"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 340 (Conveyor belts — Laboratory scale flammability characteristics)", Relation: "supersedes", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-1036", BatchID: "4a", Notes: "Glass in building — mirrors from silver-coated float glass.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1036-1:2008-01", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1149-1", BatchID: "4a", Notes: "Protective clothing — electrostatic properties, Part 1: surface resistivity.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1149-1:2006-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ESD STM2.1 / ESD S20.20-2014", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 2113-2020 (Flame-Resistant Garments)", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-1149-5", BatchID: "4a", Notes: "Protective clothing — electrostatic properties, Part 5: material performance and design requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1149-5:2018-06", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 2113-2020", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-1175-1", BatchID: "4a", Notes: "Industrial trucks — electrical/electronic requirements, Part 1: trucks with battery (legacy).", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1175-1:2014-08 (withdrawn, see EN 1175:2020)", Relation: "superseded_by", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 583 (Electric Industrial Trucks)", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-1175-2", BatchID: "4a", Notes: "Industrial trucks — Part 2: internal combustion engine drive (legacy).", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1175-2:2014-08 (withdrawn)", Relation: "superseded_by", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1175-3", BatchID: "4a", Notes: "Industrial trucks — Part 3: electrical power transmission (legacy).", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1175-3:2014-08 (withdrawn)", Relation: "superseded_by", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1176-1", BatchID: "4a", Notes: "Playground equipment and surfacing — Part 1: general safety requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1176-1:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F1487-21 (Public Use Playground Equipment)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-CPSC", Identifier: "CPSC Public Playground Safety Handbook 2010", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-1176-2", BatchID: "4a", Notes: "Playground equipment — Part 2: swings.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1176-2:2020-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F1487-21", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-1176-3", BatchID: "4a", Notes: "Playground equipment — Part 3: slides.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1176-3:2020-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F1487-21", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-1176-4", BatchID: "4a", Notes: "Playground equipment — Part 4: cableways.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1176-4:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1176-5", BatchID: "4a", Notes: "Playground equipment — Part 5: carousels.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1176-5:2019-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1176-6", BatchID: "4a", Notes: "Playground equipment — Part 6: rocking equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1176-6:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1176-7", BatchID: "4a", Notes: "Playground equipment — Part 7: guidance on installation, inspection, maintenance.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1176-7:2020-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F1487-21", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12001", BatchID: "4a", Notes: "Conveying, spraying and placing machinery for concrete and mortar.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12001:2013-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ACPA M-1 (Concrete Pumping Safety)", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-12012-1", BatchID: "4a", Notes: "Plastics and rubber machines — size-reduction machines, Part 1: blade granulators.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12012-1:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12012-2", BatchID: "4a", Notes: "Plastics — size-reduction machines, Part 2: strand pelletizers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12012-2:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12012-3", BatchID: "4a", Notes: "Plastics — size-reduction machines, Part 3: shredders.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12012-3:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12012-4", BatchID: "4a", Notes: "Plastics — size-reduction machines, Part 4: agglomerators.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12012-4:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12041", BatchID: "4a", Notes: "Food processing machinery — moulders.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12041:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12043", BatchID: "4a", Notes: "Food processing machinery — intermediate provers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12043:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12044", BatchID: "4a", Notes: "Food processing machinery — cutting and wrapping machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12044:2018-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12097", BatchID: "4a", Notes: "Ventilation for buildings — ductwork, requirements for ductwork components.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12097:2007-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-SMACNA", Identifier: "SMACNA HVAC Duct Construction Standards (Metal & Flexible)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12111", BatchID: "4a", Notes: "Tunnelling machines — road headers, continuous miners and impact rippers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12111:2014-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "30 CFR Part 75 (Underground Coal Mines)", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-12151", BatchID: "4a", Notes: "Machinery and plants for the preparation of concrete and mortar.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12151:2007-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12182", BatchID: "4a", Notes: "Assistive products for persons with disability — general requirements and test methods.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12182:2012-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 9999:2022 (Assistive products classification)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12312-1", BatchID: "4a", Notes: "Aircraft ground support equipment — Part 1: general requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-1:2013-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-SAE", Identifier: "SAE ARP 1247 (General Requirements for Aerospace Ground Support Equipment)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12312-2", BatchID: "4a", Notes: "Aircraft ground support — Part 2: catering vehicles.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-2:2014-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
package iace
|
||||
|
||||
// Cross-reference matrix — Batch 4b (next 50, alphabetical).
|
||||
// Covers aircraft ground support equipment (EN 12312 series), steel wire
|
||||
// ropes (EN 12385 series), scaffolds (EN 12810/12811), cranes design
|
||||
// (EN 13001 series), and various boiler / cleaning niches.
|
||||
|
||||
func init() {
|
||||
registerCrossRefs(batch4bCrossRefs())
|
||||
}
|
||||
|
||||
func batch4bCrossRefs() []NormCrossRef {
|
||||
return []NormCrossRef{
|
||||
{NormID: "EN-12312-3", BatchID: "4b", Notes: "Aircraft ground support — Part 3: conveyor belt vehicles.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-3:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12312-4", BatchID: "4b", Notes: "Aircraft ground support — Part 4: passenger boarding bridges.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-4:2014-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-SAE", Identifier: "SAE ARP 1247", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12312-5", BatchID: "4b", Notes: "Aircraft ground support — Part 5: aircraft fuelling equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-5:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 407-2022 (Aircraft Fuel Servicing)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12312-6", BatchID: "4b", Notes: "Aircraft ground support — Part 6: deicers and deicing/anti-icing equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-6:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-SAE", Identifier: "SAE ARP 5660 (Deicing/Anti-Icing)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12312-7", BatchID: "4b", Notes: "Aircraft ground support — Part 7: aircraft movement equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-7:2021-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12312-8", BatchID: "4b", Notes: "Aircraft ground support — Part 8: maintenance steps and platforms.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-8:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12312-9", BatchID: "4b", Notes: "Aircraft ground support — Part 9: container/pallet loaders.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-9:2014-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12312-10", BatchID: "4b", Notes: "Aircraft ground support — Part 10: container/pallet transporters.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-10:2005-05", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12312-11", BatchID: "4b", Notes: "Aircraft ground support — Part 11: container/pallet dollies and loose load trailers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-11:2014-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12312-12", BatchID: "4b", Notes: "Aircraft ground support — Part 12: potable water service equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-12:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12312-13", BatchID: "4b", Notes: "Aircraft ground support — Part 13: lavatory service equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-13:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12312-14", BatchID: "4b", Notes: "Aircraft ground support — Part 14: passenger boarding/disembarking vehicles.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-14:2014-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12312-15", BatchID: "4b", Notes: "Aircraft ground support — Part 15: baggage and equipment tractors.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-15:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12312-16", BatchID: "4b", Notes: "Aircraft ground support — Part 16: air start equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-16:2005-05", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12312-17", BatchID: "4b", Notes: "Aircraft ground support — Part 17: air conditioning equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-17:2005-05", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12312-18", BatchID: "4b", Notes: "Aircraft ground support — Part 18: nitrogen or oxygen units.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-18:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12312-19", BatchID: "4b", Notes: "Aircraft ground support — Part 19: aircraft jacks, axle jacks and hydraulic tail stanchions.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-19:2014-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12312-20", BatchID: "4b", Notes: "Aircraft ground support — Part 20: electrical ground power units.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12312-20:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12385-1", BatchID: "4b", Notes: "Steel wire ropes — safety, Part 1: general requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12385-1:2009-01", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 17893 (Steel wire ropes — Vocabulary)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-ASME", Identifier: "ASME B30.30-2019 (Ropes)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12385-2", BatchID: "4b", Notes: "Steel wire ropes — Part 2: definitions, designation, classification.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12385-2:2008-06", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12385-3", BatchID: "4b", Notes: "Steel wire ropes — Part 3: information for use and maintenance.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12385-3:2021-03", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12385-4", BatchID: "4b", Notes: "Steel wire ropes — Part 4: stranded ropes for general lifting applications.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12385-4:2008-06", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME B30.30", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12385-5", BatchID: "4b", Notes: "Steel wire ropes — Part 5: stranded ropes for lifts.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12385-5:2021-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME A17.6-2017 (Suspension, Compensation, Governor Ropes)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12385-10", BatchID: "4b", Notes: "Steel wire ropes — Part 10: spiral ropes for general structural applications.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12385-10:2008-06", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12415", BatchID: "4b", Notes: "Machine tools safety — small numerically controlled turning machines and turning centres.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12415:2002-04 (withdrawn, see EN ISO 23125)", Relation: "superseded_by", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 23125:2015", Relation: "supersedes", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12418", BatchID: "4b", Notes: "Masonry/stone-cutting saws for site work.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12418:2009-06", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1926.303 (Abrasive wheels and tools)", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-12478", BatchID: "4b", Notes: "Industrial trucks — design specifications for fork carriages.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12478:2000-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12653", BatchID: "4b", Notes: "Industrial fans — safety, balance quality.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12653 (drafted; see ISO 14694)", Relation: "partial", Confidence: "medium"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 14694:2003 (Industrial Fans — Balance Quality)", Relation: "equivalent", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12717", BatchID: "4b", Notes: "Machine tools safety — drilling machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12717:2009-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.8-2001 (R2017) (Manual Milling, Drilling, Boring)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12750", BatchID: "4b", Notes: "Safety of woodworking machines — four-sided moulding machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12750:2013-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12779", BatchID: "4b", Notes: "Safety of woodworking machines — chip and dust extraction systems.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12779:2015-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 664 (Wood Processing/Woodworking)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12810-1", BatchID: "4b", Notes: "Façade scaffolds made of prefabricated components — Part 1: products specifications.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12810-1:2004-03", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI A10.8-2019 (Scaffolding Safety)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1926.451", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12810-2", BatchID: "4b", Notes: "Façade scaffolds — Part 2: particular methods of structural design.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12810-2:2004-03", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12811-1", BatchID: "4b", Notes: "Temporary works equipment — Part 1: scaffolds, performance requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12811-1:2004-03", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI A10.8-2019", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12811-2", BatchID: "4b", Notes: "Temporary works equipment — Part 2: information on materials.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12811-2:2004-03", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12811-3", BatchID: "4b", Notes: "Temporary works — Part 3: load testing.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12811-3:2003-02", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12921-4", BatchID: "4b", Notes: "Surface cleaning machines — Part 4: safety for machines using halogenated solvents.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12921-4:2017-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-12929-1", BatchID: "4b", Notes: "Cableway installations — general requirements, Part 1: requirements for all installations.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12929-1:2015-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B77.1-2017 (Passenger Ropeways)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12952-3", BatchID: "4b", Notes: "Water-tube boilers — Part 3: design and calculation for pressure parts.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12952-3:2020-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME BPVC Section I", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12952-5", BatchID: "4b", Notes: "Water-tube boilers — Part 5: workmanship and construction of pressure parts.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12952-5:2021-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME BPVC Section I", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-12952-6", BatchID: "4b", Notes: "Water-tube boilers — Part 6: inspection during construction.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 12952-6:2021-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13001-1", BatchID: "4b", Notes: "Cranes — general design, Part 1: general principles and requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13001-1:2018-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME B30.2 + ASME BTH-1-2020 (Design of Below-the-Hook Lifting Devices)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-13001-2", BatchID: "4b", Notes: "Cranes — general design, Part 2: load actions.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13001-2:2021-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13001-3-1", BatchID: "4b", Notes: "Cranes — general design, Part 3-1: limit states / proof of competence of steel structures.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13001-3-1:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13001-3-2", BatchID: "4b", Notes: "Cranes — Part 3-2: proof of competence of wire ropes in reeving systems.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13001-3-2:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13001-3-3", BatchID: "4b", Notes: "Cranes — Part 3-3: limit states / proof of competence of wheel-rail contacts.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13001-3-3:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13001-3-4", BatchID: "4b", Notes: "Cranes — Part 3-4: machinery components.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13001-3-4:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13001-3-5", BatchID: "4b", Notes: "Cranes — Part 3-5: forged and cast hooks.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13001-3-5:2016-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME B30.10-2019 (Hooks)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-13001-3-6", BatchID: "4b", Notes: "Cranes — Part 3-6: machinery components, hydraulic cylinders.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13001-3-6:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
package iace
|
||||
|
||||
// Cross-reference matrix — Batch 5a (next 50 alphabetical).
|
||||
// Covers glass machinery (EN 13035), ladders (EN 131), pressure vessels +
|
||||
// piping subparts, swimming-pool equipment (EN 13451), explosives (EN 13631),
|
||||
// fume cupboards (EN 14175), and amusement rides (EN 13814).
|
||||
|
||||
func init() {
|
||||
registerCrossRefs(batch5aCrossRefs())
|
||||
}
|
||||
|
||||
func batch5aCrossRefs() []NormCrossRef {
|
||||
return []NormCrossRef{
|
||||
{NormID: "EN-13023", BatchID: "5a", Notes: "Noise measurement method for printing, paper-converting, paper-making machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13023:2004-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13035-1", BatchID: "5a", Notes: "Machines for glass manufacture — storage, handling, transportation Part 1: storage outside.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13035-1:2008-02", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13035-2", BatchID: "5a", Notes: "Glass machinery — Part 2: storage inside.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13035-2:2008-02", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13035-3", BatchID: "5a", Notes: "Glass machinery — Part 3: cutting machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13035-3:2010-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13035-4", BatchID: "5a", Notes: "Glass machinery — Part 4: tilting tables.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13035-4:2003-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13035-5", BatchID: "5a", Notes: "Glass machinery — Part 5: machines and installations for stacking and de-stacking.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13035-5:2006-11", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13035-6", BatchID: "5a", Notes: "Glass machinery — Part 6: breakout machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13035-6:2006-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13035-7", BatchID: "5a", Notes: "Glass machinery — Part 7: cutting machines for laminated glass.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13035-7:2006-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13035-9", BatchID: "5a", Notes: "Glass machinery — Part 9: washing installations.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13035-9:2006-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13035-11", BatchID: "5a", Notes: "Glass machinery — Part 11: drilling machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13035-11:2006-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13053", BatchID: "5a", Notes: "Ventilation for buildings — air handling units, ratings and performance.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13053:2020-05", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-AHRI", Identifier: "AHRI Standard 410-2014 (Forced-Circulation Air-Cooling)", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-131-1", BatchID: "5a", Notes: "Ladders — Part 1: terms, types, functional sizes.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 131-1:2020-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI A14.1/A14.2/A14.5 (Wood/Metal/Reinforced Plastic Ladders)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1926.1053", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-131-2", BatchID: "5a", Notes: "Ladders — Part 2: requirements, testing, marking.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 131-2:2017-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI A14 series", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-131-3", BatchID: "5a", Notes: "Ladders — Part 3: marking and user instructions.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 131-3:2018-06", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-131-4", BatchID: "5a", Notes: "Ladders — Part 4: single or multiple hinge-joint ladders.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 131-4:2020-05", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13208", BatchID: "5a", Notes: "Food processing machinery — vegetable peelers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13208:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13241", BatchID: "5a", Notes: "Industrial, commercial and garage doors and gates — product standard.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13241:2021-06", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 325-2017", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F2200-22 (Gates)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-13256", BatchID: "5a", Notes: "Thermal insulation products for building equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13256:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13288", BatchID: "5a", Notes: "Food processing machinery — lifting and tilting machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13288:2017-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13379", BatchID: "5a", Notes: "Food processing — pasta-processing machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13379:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13445-2", BatchID: "5a", Notes: "Unfired pressure vessels — Part 2: materials.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13445-2:2021-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME BPVC Section II (Materials)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-13445-4", BatchID: "5a", Notes: "Unfired pressure vessels — Part 4: fabrication.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13445-4:2021-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME BPVC Section VIII Div.1/2", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-13445-5", BatchID: "5a", Notes: "Unfired pressure vessels — Part 5: inspection and testing.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13445-5:2021-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME BPVC Section V (Non-Destructive Examination)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-13451-1", BatchID: "5a", Notes: "Swimming pool equipment — general safety requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13451-1:2018-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-APSP", Identifier: "ANSI/APSP/ICC-1 (Public Pools and Spas)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-13451-2", BatchID: "5a", Notes: "Swimming pool equipment — Part 2: ladders, stepladders, and handrails.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13451-2:2015-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13451-3", BatchID: "5a", Notes: "Swimming pool equipment — Part 3: inlets, outlets, water/air based water leisure features.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13451-3:2015-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-APSP", Identifier: "ANSI/APSP/ICC-7 (Suction Entrapment Avoidance)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-13451-4", BatchID: "5a", Notes: "Swimming pool equipment — Part 4: starting platforms.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13451-4:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13451-5", BatchID: "5a", Notes: "Swimming pool equipment — Part 5: lane lines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13451-5:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13451-10", BatchID: "5a", Notes: "Swimming pool equipment — Part 10: diving platforms, diving boards, jump boards.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13451-10:2015-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13451-11", BatchID: "5a", Notes: "Swimming pool equipment — Part 11: movable pool floors and dividing walls.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13451-11:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13480-2", BatchID: "5a", Notes: "Metallic industrial piping — Part 2: materials.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13480-2:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME B31.3 (Process Piping)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-13480-4", BatchID: "5a", Notes: "Metallic industrial piping — Part 4: fabrication and installation.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13480-4:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13480-5", BatchID: "5a", Notes: "Metallic industrial piping — Part 5: inspection and testing.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13480-5:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13534", BatchID: "5a", Notes: "Food processing machinery — meat injecting machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13534:2007-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13631-1", BatchID: "5a", Notes: "Explosives for civil uses — high explosives, Part 1: requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13631-1:2005-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-DOT", Identifier: "49 CFR Part 173 (Hazardous Materials Regulations — Explosives)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-13631-2", BatchID: "5a", Notes: "Explosives — Part 2: determination of thermal stability.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13631-2:2002-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13631-3", BatchID: "5a", Notes: "Explosives — Part 3: determination of sensitiveness to friction.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13631-3:2005-02", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13631-4", BatchID: "5a", Notes: "Explosives — Part 4: determination of sensitiveness to impact.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13631-4:2002-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13731", BatchID: "5a", Notes: "Vibration isolating systems — performance requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13731:2007-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13779", BatchID: "5a", Notes: "Ventilation for non-residential buildings — performance requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13779:2007-09 (withdrawn, see EN 16798-3)", Relation: "superseded_by", Confidence: "verified"},
|
||||
{Region: "US-ASHRAE", Identifier: "ASHRAE 62.1-2022 (Ventilation for Acceptable Indoor Air Quality)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-13788", BatchID: "5a", Notes: "Machine tools safety — multi-spindle automatic turning machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13788:2002-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13814", BatchID: "5a", Notes: "Amusement rides and amusement devices — safety.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13814:2005-06", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F2291-22 (Design of Amusement Rides and Devices)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F1193-23 (Quality, Manufacture, Use)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-13852-2", BatchID: "5a", Notes: "Cranes — offshore cranes, floating cranes.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13852-2:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13870", BatchID: "5a", Notes: "Food processing machinery — portion cutting machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13870:2015-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-13898", BatchID: "5a", Notes: "Machine tools safety — sawing machines for cold metal.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 13898:2018-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.10-2003 (R2018) (Metal Sawing Machines)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-14043", BatchID: "5a", Notes: "High-rise aerial appliances for fire services — turntable ladders with combined movements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14043:2014-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 1901-2024 §13 (Aerial Apparatus)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-14044", BatchID: "5a", Notes: "High-rise aerial appliances for fire services — turntable ladders with sequential movements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14044:2014-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-14070", BatchID: "5a", Notes: "Machine tools safety — transfer and special-purpose machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14070:2009-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-14175-1", BatchID: "5a", Notes: "Fume cupboards — Part 1: vocabulary.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14175-1:2003-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/AIHA Z9.5-2022 (Laboratory Ventilation)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-ASHRAE", Identifier: "ASHRAE 110-2016 (Method of Testing Performance of Laboratory Fume Hoods)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,187 @@
|
||||
package iace
|
||||
|
||||
// Cross-reference matrix — Batch 5b (next 50 alphabetical).
|
||||
// Covers more fume cupboards (EN 14175), windows/doors (EN 14351), refuse
|
||||
// collection vehicles (EN 1501), drilling/foundation (EN 16228), respiratory
|
||||
// (EN 149), eye protection (EN 166), fire-service vehicles (EN 1846), and
|
||||
// the start of the circular saw sub-series (EN 1870-x).
|
||||
|
||||
func init() {
|
||||
registerCrossRefs(batch5bCrossRefs())
|
||||
}
|
||||
|
||||
func batch5bCrossRefs() []NormCrossRef {
|
||||
return []NormCrossRef{
|
||||
{NormID: "EN-14175-2", BatchID: "5b", Notes: "Fume cupboards — Part 2: safety and performance requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14175-2:2003-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASHRAE", Identifier: "ASHRAE 110-2016", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-14175-3", BatchID: "5b", Notes: "Fume cupboards — Part 3: type test methods.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14175-3:2019-02", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-14175-4", BatchID: "5b", Notes: "Fume cupboards — Part 4: on-site test methods.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14175-4:2005-02", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-14175-7", BatchID: "5b", Notes: "Fume cupboards — Part 7: fume cupboards for high heat loads.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14175-7:2012-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-14351-1", BatchID: "5b", Notes: "Windows and doors — product standard, performance characteristics, Part 1: windows and external pedestrian doorsets.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14351-1:2016-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-AAMA", Identifier: "AAMA/WDMA/CSA 101/I.S.2/A440 (NAFS)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-1459-2", BatchID: "5b", Notes: "Industrial trucks — variable-reach rough-terrain trucks, Part 2: rotating slewing trucks.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1459-2:2017-07", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ITSDF B56.6", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-14618", BatchID: "5b", Notes: "Agglomerated stones — terminology and classification.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14618:2009-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-14886", BatchID: "5b", Notes: "Plastics and rubber machines — band knife cutting machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14886:2008-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-149", BatchID: "5b", Notes: "Respiratory protective devices — filtering half masks to protect against particles.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 149:2009-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NIOSH", Identifier: "42 CFR Part 84 (NIOSH-approved N95/P100/R95)", Relation: "partial", Confidence: "high", Notes: "EN FFP2 ≈ N95, FFP3 ≈ N99; tests differ slightly (sodium chloride vs paraffin oil)."},
|
||||
}},
|
||||
{NormID: "EN-1493", BatchID: "5b", Notes: "Vehicle lifts — safety.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1493:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ALI ALCTV-2017 (Automotive Lifts — Safety Requirements for Construction)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-14973", BatchID: "5b", Notes: "Conveyor belts for use in underground installations — electrical/flammability safety.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 14973:2015-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-MSHA", Identifier: "30 CFR §75.1108 (Approval of Conveyor Belts)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-1501-1", BatchID: "5b", Notes: "Refuse collection vehicles — Part 1: rear-loaded refuse collection vehicles.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1501-1:2021-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z245.1-2017 (Mobile Wastes and Recyclable Materials Collection)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-1501-2", BatchID: "5b", Notes: "Refuse collection vehicles — Part 2: side-loaded refuse collection vehicles.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1501-2:2022-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1501-3", BatchID: "5b", Notes: "Refuse collection vehicles — Part 3: front-loaded refuse collection vehicles.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1501-3:2022-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-15056", BatchID: "5b", Notes: "Cranes — requirements for fork-arm attachments for industrial trucks.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 15056:2007-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-15163", BatchID: "5b", Notes: "Machines and plants for the exploitation and processing of natural stone — diamond wire saws.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 15163:2008-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-15288-1", BatchID: "5b", Notes: "Swimming pools — Part 1: safety requirements for design.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 15288-1:2019-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-APSP", Identifier: "ANSI/APSP/ICC-1 (Public Pools and Spas)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-15947-1", BatchID: "5b", Notes: "Pyrotechnic articles — fireworks, category F2 and F3, Part 1: terminology.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 15947-1:2016-07", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-APA", Identifier: "APA 87-1A (Consumer Fireworks)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-15947-2", BatchID: "5b", Notes: "Fireworks — Part 2: classification.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 15947-2:2016-07", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-15947-3", BatchID: "5b", Notes: "Fireworks — Part 3: minimum labelling requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 15947-3:2016-07", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-15947-4", BatchID: "5b", Notes: "Fireworks — Part 4: test methods.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 15947-4:2016-07", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-15947-5", BatchID: "5b", Notes: "Fireworks — Part 5: requirements for construction and performance.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 15947-5:2022-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1612-2", BatchID: "5b", Notes: "Plastics and rubber machines — reaction moulding machines, Part 2: dosing units.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1612-2:1999-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-16228-1", BatchID: "5b", Notes: "Drilling and foundation equipment — safety, Part 1: common requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 16228-1:2014-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1926 Subpart P (Excavations)", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-16228-2", BatchID: "5b", Notes: "Drilling and foundation equipment — Part 2: mobile drill rigs.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 16228-2:2014-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-16228-3", BatchID: "5b", Notes: "Drilling and foundation equipment — Part 3: horizontal directional drilling equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 16228-3:2014-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-16228-4", BatchID: "5b", Notes: "Drilling and foundation equipment — Part 4: foundation equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 16228-4:2014-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-16228-5", BatchID: "5b", Notes: "Drilling and foundation equipment — Part 5: diaphragm walling equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 16228-5:2014-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-16228-6", BatchID: "5b", Notes: "Drilling and foundation equipment — Part 6: jetting, grouting and injection equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 16228-6:2014-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-16228-7", BatchID: "5b", Notes: "Drilling and foundation equipment — Part 7: interchangeable auxiliary equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 16228-7:2014-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-16450", BatchID: "5b", Notes: "Ambient air — automated measuring systems for the measurement of the concentration of particulate matter.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 16450:2017-05", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-EPA", Identifier: "40 CFR Part 50 Appendix L (PM2.5 Reference Method)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-166", BatchID: "5b", Notes: "Personal eye protection — specifications.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 166:2002-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ISEA Z87.1-2020 (Eye and Face Protection)", Relation: "partial", Confidence: "high", Notes: "EN 166 'B' impact = ANSI Z87+ basic impact; high-velocity tests differ."},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.133", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 14866-2006", Relation: "equivalent", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-16602", BatchID: "5b", Notes: "Space product assurance — series (ECSS Q-ST).", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 16602 series (ECSS adoptions)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 14620 series", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-1673", BatchID: "5b", Notes: "Food processing machinery — rotary rack ovens.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1673:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1674", BatchID: "5b", Notes: "Food processing machinery — dough sheeting machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1674:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-16798-3", BatchID: "5b", Notes: "Energy performance of buildings — ventilation, Part 3: ventilation for non-residential buildings (replaces EN 13779).", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 16798-3:2017-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASHRAE", Identifier: "ASHRAE 62.1-2022", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-1845", BatchID: "5b", Notes: "Footwear manufacturing machinery — moulding machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1845:2007-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1846-1", BatchID: "5b", Notes: "Fire-fighting vehicles and equipment — Part 1: nomenclature and designation.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1846-1:2011-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 1901-2024 (Automotive Fire Apparatus)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-1846-2", BatchID: "5b", Notes: "Fire-fighting vehicles — Part 2: common requirements, safety and performance.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1846-2:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 1901-2024", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-1846-3", BatchID: "5b", Notes: "Fire-fighting vehicles — Part 3: permanently-installed equipment, safety and performance.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1846-3:2021-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-2", BatchID: "5b", Notes: "Safety of woodworking machines — circular sawing machines, Part 2: horizontal beam panel saws.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-2:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-10", BatchID: "5b", Notes: "Woodworking machines — circular sawing — Part 10: automatic and semi-automatic up-cutting cross-cut saws.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-10:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-11", BatchID: "5b", Notes: "Woodworking machines — circular sawing — Part 11: semi-automatic and automatic horizontal cross-cut saws (radial arm saws).", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-11:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-12", BatchID: "5b", Notes: "Woodworking machines — circular sawing — Part 12: pendulum cross-cut saws.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-12:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-13", BatchID: "5b", Notes: "Woodworking machines — circular sawing — Part 13: horizontal beam panel saws with pressure beam.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-13:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-14", BatchID: "5b", Notes: "Woodworking machines — circular sawing — Part 14: vertical panel saws.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-14:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-15", BatchID: "5b", Notes: "Woodworking machines — circular sawing — Part 15: multi-blade cross-cut saws with integrated feed of workpiece.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-15:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-16", BatchID: "5b", Notes: "Woodworking machines — circular sawing — Part 16: double mitre cross-cut sawing machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-16:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-17", BatchID: "5b", Notes: "Woodworking machines — circular sawing — Part 17: hand-operated horizontal cross-cut single-blade saws.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-17:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-18", BatchID: "5b", Notes: "Woodworking machines — circular sawing — Part 18: dividing saws.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-18:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-19", BatchID: "5b", Notes: "Woodworking machines — circular sawing — Part 19: circular table saws (with and without sliding table) and building site saws.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-19:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,199 @@
|
||||
package iace
|
||||
|
||||
// Cross-reference matrix — Batch 6a (next 50 alphabetical).
|
||||
// Covers remaining EN 1870 sawing parts, sterilizers (EN 285),
|
||||
// hearing/eye/glove PPE (EN 352, EN 388), refrigeration parts (EN 378),
|
||||
// road-building machines (EN 500), railway functional safety (EN 50126/8/9).
|
||||
|
||||
func init() {
|
||||
registerCrossRefs(batch6aCrossRefs())
|
||||
}
|
||||
|
||||
func batch6aCrossRefs() []NormCrossRef {
|
||||
return []NormCrossRef{
|
||||
{NormID: "EN-1870-3", BatchID: "6a", Notes: "Woodworking — circular saws, Part 3: down cutting cross-cut saws.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-3:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-4", BatchID: "6a", Notes: "Woodworking — circular saws, Part 4: multiblade rip saws.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-4:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-5", BatchID: "6a", Notes: "Woodworking — circular saws, Part 5: combined circular saw bench/up cutting cross-cut saws.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-5:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-6", BatchID: "6a", Notes: "Woodworking — circular saws, Part 6: circular saws for fire wood.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-6:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-7", BatchID: "6a", Notes: "Woodworking — circular saws, Part 7: single blade log circular sawing machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-7:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-8", BatchID: "6a", Notes: "Woodworking — circular saws, Part 8: single blade edging circular sawing machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-8:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1870-9", BatchID: "6a", Notes: "Woodworking — circular saws, Part 9: double blade circular sawing machines for cross-cutting.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1870-9:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1886", BatchID: "6a", Notes: "Ventilation for buildings — air handling units, mechanical performance.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1886:2008-07", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-AHRI", Identifier: "AHRI 410-2014 + ASHRAE 41 series", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-1889-1", BatchID: "6a", Notes: "Mining machines — mobile underground machinery, Part 1: rubber-tyred machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1889-1:2011-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "30 CFR (Mine Safety and Health)", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-1889-2", BatchID: "6a", Notes: "Mining machines — mobile underground machinery, Part 2: rail locomotives.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1889-2:2011-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-1970", BatchID: "6a", Notes: "Adjustable beds for disabled persons (legacy; superseded by EN 60601-2-52).", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 1970:2000-09 (withdrawn)", Relation: "superseded_by", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60601-2-52 (Medical Beds)", Relation: "supersedes", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-203-1", BatchID: "6a", Notes: "Gas heated catering equipment — Part 1: general safety rules.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 203-1:2014-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z83.11 (Commercial Cooking Appliances)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-285", BatchID: "6a", Notes: "Sterilization — steam sterilizers — large sterilizers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 285:2016-07", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/AAMI ST79-2017 (Comprehensive Guide to Steam Sterilization)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-30-1-1", BatchID: "6a", Notes: "Domestic cooking appliances burning gas — Part 1-1: safety, general.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 30-1-1:2008-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z21.1 (Household Cooking Gas Appliances)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-30-1-4", BatchID: "6a", Notes: "Domestic gas cookers — Part 1-4: appliances having one or more burners with automatic burner control.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 30-1-4:2003-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-352-1", BatchID: "6a", Notes: "Hearing protectors — general requirements, Part 1: ear-muffs.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 352-1:2021-01", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ASA S3.19-1974 (or S12.6-2016)", Relation: "partial", Confidence: "high", Notes: "US uses NRR (Noise Reduction Rating) computed differently than EN SNR/H/M/L."},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.95 + EPA 40 CFR 211 Subpart B", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB/T 23466-2009", Relation: "equivalent", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-352-2", BatchID: "6a", Notes: "Hearing protectors — Part 2: ear-plugs.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 352-2:2021-01", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ASA S3.19-1974 / S12.6-2016", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-378-2", BatchID: "6a", Notes: "Refrigerating systems — Part 2: design, construction, testing, marking, documentation.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 378-2:2018-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASHRAE", Identifier: "ASHRAE 15-2022", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-378-3", BatchID: "6a", Notes: "Refrigerating systems — Part 3: installation site and personal protection.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 378-3:2018-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASHRAE", Identifier: "ASHRAE 15-2022", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-378-4", BatchID: "6a", Notes: "Refrigerating systems — Part 4: operation, maintenance, repair, recovery.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 378-4:2018-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-388", BatchID: "6a", Notes: "Protective gloves against mechanical risks.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 388:2019-03", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ISEA 105-2016 (Hand Protection Selection Criteria)", Relation: "partial", Confidence: "high", Notes: "EN scoring 0-4/5 vs ANSI A1-A9 cut levels; revised 2019 EN added TDM-100 method."},
|
||||
{Region: "CN-GB", Identifier: "GB/T 12624-2020", Relation: "equivalent", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-45501", BatchID: "6a", Notes: "Metrological aspects of non-automatic weighing instruments.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 45501:2015-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "OIML R 76 (International Recommendation)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NIST", Identifier: "NIST Handbook 44 (Weights and Measures)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-474-12", BatchID: "6a", Notes: "Earth-moving machinery — Part 12: cable excavators.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 474-12:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-474-13", BatchID: "6a", Notes: "Earth-moving machinery — Part 13: rollers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 474-13:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-500-1", BatchID: "6a", Notes: "Mobile road construction machinery — safety, Part 1: common requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 500-1:2009-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-500-2", BatchID: "6a", Notes: "Road construction — Part 2: road milling machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 500-2:2009-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-500-3", BatchID: "6a", Notes: "Road construction — Part 3: soil stabilisers and recycling machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 500-3:2009-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-500-4", BatchID: "6a", Notes: "Road construction — Part 4: compaction machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 500-4:2011-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-500-5", BatchID: "6a", Notes: "Road construction — Part 5: joint cutters.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 500-5:2009-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-500-6", BatchID: "6a", Notes: "Road construction — Part 6: pavers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 500-6:2009-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-50126-1", BatchID: "6a", Notes: "Railway applications — RAMS (Reliability, Availability, Maintainability, Safety), Part 1: generic process.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 50126-1:2018-10 (VDE 0115-103-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 62278:2002", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-AAR", Identifier: "AAR M-1003 (Manual of Standards & Recommended Practices)", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-50128", BatchID: "6a", Notes: "Railway applications — software for railway control and protection systems.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 50128:2014-09 (VDE 0831-128)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 62279:2015", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-50129", BatchID: "6a", Notes: "Railway applications — safety related electronic systems for signalling.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 50129:2019-06 (VDE 0831-129)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 62425:2007", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-525", BatchID: "6a", Notes: "Non-domestic direct gas-fired forced convection air heaters.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 525:2010-01", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z83.4 (Direct-Fired Gas Heaters)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-60335-2-67", BatchID: "6a", Notes: "Household and similar electrical appliances — particular requirements for floor treatment machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60335-2-67:2019-04 (VDE 0700-67)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60335-2-67:2012", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 60335-2-67-2020", Relation: "equivalent", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-60335-2-68", BatchID: "6a", Notes: "Household appliances — particular requirements for spray extraction machines for commercial use.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60335-2-68:2013-12 (VDE 0700-68)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60335-2-68:2012", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-60335-2-69", BatchID: "6a", Notes: "Household appliances — wet and dry vacuum cleaners, including power brush.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60335-2-69:2017-08 (VDE 0700-69)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60335-2-69:2016", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 60335-2-69-2020", Relation: "equivalent", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-60335-2-72", BatchID: "6a", Notes: "Household appliances — automatic machines for floor treatment for commercial use.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60335-2-72:2013-04 (VDE 0700-72)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60335-2-72:2012", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-60335-2-79", BatchID: "6a", Notes: "Household appliances — high-pressure cleaners and steam cleaners.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60335-2-79:2020-08 (VDE 0700-79)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60335-2-79:2016", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 60335-2-79-2020", Relation: "equivalent", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-60974-2", BatchID: "6a", Notes: "Arc welding equipment — Part 2: liquid cooling systems.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60974-2:2019-05 (VDE 0544-2)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60974-2:2019", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-60974-3", BatchID: "6a", Notes: "Arc welding equipment — Part 3: arc striking and stabilising devices.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60974-3:2019-05 (VDE 0544-3)", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-60974-4", BatchID: "6a", Notes: "Arc welding equipment — Part 4: periodic inspection and testing.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60974-4:2017-09 (VDE 0544-4)", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-60974-5", BatchID: "6a", Notes: "Arc welding equipment — Part 5: wire feeders.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60974-5:2019-05 (VDE 0544-5)", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-60974-6", BatchID: "6a", Notes: "Arc welding equipment — Part 6: limited-duty equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60974-6:2017-04 (VDE 0544-6)", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-60974-7", BatchID: "6a", Notes: "Arc welding equipment — Part 7: torches.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60974-7:2019-05 (VDE 0544-7)", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-60974-8", BatchID: "6a", Notes: "Arc welding equipment — Part 8: gas consoles for welding and plasma cutting systems.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60974-8:2010-03 (VDE 0544-8)", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-60974-9", BatchID: "6a", Notes: "Arc welding equipment — Part 9: installation and use.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60974-9:2018-08 (VDE 0544-9)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z49.1-2021 (Safety in Welding)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-60974-10", BatchID: "6a", Notes: "Arc welding equipment — Part 10: EMC requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60974-10:2020-09 (VDE 0544-10)", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-60974-11", BatchID: "6a", Notes: "Arc welding equipment — Part 11: electrode holders.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60974-11:2010-12 (VDE 0544-11)", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-60974-12", BatchID: "6a", Notes: "Arc welding equipment — Part 12: coupling devices for welding cables.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60974-12:2012-09 (VDE 0544-12)", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-60974-13", BatchID: "6a", Notes: "Arc welding equipment — Part 13: welding clamp.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60974-13:2013-06 (VDE 0544-13)", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,186 @@
|
||||
package iace
|
||||
|
||||
// Cross-reference matrix — Batch 6b (next 50 alphabetical).
|
||||
// Covers EN 60974-14 welding, EN 81 lift sub-parts, more woodworking
|
||||
// (EN 848-2/3, EN 859, EN 860, EN 930, EN 931, EN 940, EN 972), gas cylinders
|
||||
// (EN ISO 10297), industrial laundry (EN ISO 10472), hand tools, and PPE.
|
||||
|
||||
func init() {
|
||||
registerCrossRefs(batch6bCrossRefs())
|
||||
}
|
||||
|
||||
func batch6bCrossRefs() []NormCrossRef {
|
||||
return []NormCrossRef{
|
||||
{NormID: "EN-60974-14", BatchID: "6b", Notes: "Arc welding equipment — Part 14: calibration, validation and consistency testing.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60974-14:2018-12 (VDE 0544-14)", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-81-21", BatchID: "6b", Notes: "Safety rules for the construction and installation of lifts — Part 21: new passenger and goods passenger lifts in existing buildings.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-21:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME A17.1-2022 (general)", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-81-22", BatchID: "6b", Notes: "Safety rules for lifts — Part 22: electric lifts with inclined path.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-22:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME A17.1 §5 (Inclined Elevators)", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-81-28", BatchID: "6b", Notes: "Safety rules for lifts — Part 28: remote alarm on passenger and goods passenger lifts.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-28:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-81-58", BatchID: "6b", Notes: "Safety rules for lifts — Part 58: landing doors fire resistance test.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-58:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-81-71", BatchID: "6b", Notes: "Safety rules for lifts — Part 71: vandal-resistant lifts.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-71:2022-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-81-72", BatchID: "6b", Notes: "Safety rules for lifts — Part 72: firefighters lifts.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-72:2020-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME A17.1 §2.27 (Firefighters Operation)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-81-73", BatchID: "6b", Notes: "Safety rules for lifts — Part 73: behaviour of lifts in the event of fire.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-73:2020-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-81-76", BatchID: "6b", Notes: "Safety rules for lifts — Part 76: evacuation of persons with disabilities using lifts.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-76:2011-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-81-77", BatchID: "6b", Notes: "Safety rules for lifts — Part 77: lifts subject to seismic conditions.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-77:2018-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME A17.1 §8.4 (Elevator Safety Requirements for Seismic Risk)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-81-80", BatchID: "6b", Notes: "Safety rules for lifts — Part 80: improvement of safety of existing passenger and goods passenger lifts (SNEL).", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-80:2020-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME A17.3 (Safety Code for Existing Elevators)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-81-82", BatchID: "6b", Notes: "Safety rules for lifts — Part 82: rules for the improvement of accessibility of existing lifts.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 81-82:2013-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-848-2", BatchID: "6b", Notes: "Woodworking — Part 2: single-spindle hand-fed routing machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 848-2:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-848-3", BatchID: "6b", Notes: "Woodworking — Part 3: numerically controlled (NC) boring/routing machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 848-3:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-859", BatchID: "6b", Notes: "Woodworking — hand-fed surface planing machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 859:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-860", BatchID: "6b", Notes: "Woodworking — single-side thickness planing machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 860:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-930", BatchID: "6b", Notes: "Footwear, leather goods manufacturing machinery — roughing, scouring machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 930:2008-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-931", BatchID: "6b", Notes: "Footwear manufacturing machinery — lasting machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 931:2007-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-940", BatchID: "6b", Notes: "Woodworking — combined woodworking machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 940:2014-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-972", BatchID: "6b", Notes: "Tannery machines — reciprocating roller machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 972:2010-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-10297", BatchID: "6b", Notes: "Gas cylinders — refillable transportable cylinder valves.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 10297:2014-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 10297:2014", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-DOT", Identifier: "49 CFR Part 178 (Specifications for Packagings)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-ISO-10472-1", BatchID: "6b", Notes: "Industrial laundry machinery — common requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 10472-1:2008-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 10472-1:1997", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-10472-2", BatchID: "6b", Notes: "Industrial laundry — washing machines and washer-extractors.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 10472-2:2008-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 10472-2:1997", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-10472-3", BatchID: "6b", Notes: "Industrial laundry — washing tunnel lines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 10472-3:2008-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-10472-4", BatchID: "6b", Notes: "Industrial laundry — air dryers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 10472-4:2008-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-10472-5", BatchID: "6b", Notes: "Industrial laundry — flatwork ironers, feeders and folders.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 10472-5:2008-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-10472-6", BatchID: "6b", Notes: "Industrial laundry — ironing and fusing presses.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 10472-6:2008-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-11148-2", BatchID: "6b", Notes: "Hand-held non-electric power tools — Part 2: cutting-off and crimping tools.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11148-2:2011-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11148-2:2011", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-11148-4", BatchID: "6b", Notes: "Hand-held non-electric power tools — Part 4: non-rotary percussive power tools.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11148-4:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-11148-5", BatchID: "6b", Notes: "Hand-held non-electric power tools — Part 5: rotary percussive drills.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11148-5:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-11148-7", BatchID: "6b", Notes: "Hand-held non-electric power tools — Part 7: grinders.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11148-7:2012-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-11148-8", BatchID: "6b", Notes: "Hand-held non-electric power tools — Part 8: sanders and polishers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11148-8:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-11148-9", BatchID: "6b", Notes: "Hand-held non-electric power tools — Part 9: die grinders.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11148-9:2012-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-11148-11", BatchID: "6b", Notes: "Hand-held non-electric power tools — Part 11: nibblers and shears.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11148-11:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-11148-12", BatchID: "6b", Notes: "Hand-held non-electric power tools — Part 12: small reciprocating and oscillating saws.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11148-12:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-11607-1", BatchID: "6b", Notes: "Packaging for terminally sterilized medical devices — Part 1: requirements for materials, sterile barrier systems and packaging.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11607-1:2020-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11607-1:2019", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-FDA", Identifier: "21 CFR 820 + ASTM F88/F1980", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-ISO-11607-2", BatchID: "6b", Notes: "Packaging for medical devices — Part 2: validation requirements for forming, sealing and assembly processes.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11607-2:2020-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11607-2:2019", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-11612", BatchID: "6b", Notes: "Protective clothing — clothing to protect against heat and flame.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11612:2015-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NFPA", Identifier: "NFPA 2112-2018 (Flame-Resistant Garments for Protection of Industrial Personnel)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F1959 (Determining Arc Rating)", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-ISO-11806-1", BatchID: "6b", Notes: "Agricultural and forestry machinery — safety requirements and testing for portable, hand-held, internal combustion engine driven brush cutters and grass trimmers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11806-1:2012-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/OPEI B175.3 (Grass Trimmers/Brush Cutters)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-ISO-13688", BatchID: "6b", Notes: "Protective clothing — general requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 13688:2013-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 13688:2013", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ISEA 101 (Limited-Use and Disposable Coveralls)", Relation: "partial", Confidence: "medium"},
|
||||
}},
|
||||
{NormID: "EN-ISO-14159", BatchID: "6b", Notes: "Safety of machinery — hygiene requirements for the design of machinery.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 14159:2008-07", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-NSF", Identifier: "NSF/ANSI/3-A 14159-1 (Hygienic Equipment for Food Processing)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-ISO-14890", BatchID: "6b", Notes: "Conveyor belts — specification for rubber- or plastics-covered conveyor belts of textile construction.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 14890:2013-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 14890:2013", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-14922-1", BatchID: "6b", Notes: "Thermal spraying — quality requirements of thermally sprayed structures, Part 1: guide for selection.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 14922-1:2019-11", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-14922-2", BatchID: "6b", Notes: "Thermal spraying — Part 2: comprehensive quality requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 14922-2:2019-11", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-14922-3", BatchID: "6b", Notes: "Thermal spraying — Part 3: standard quality requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 14922-3:2019-11", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-14922-4", BatchID: "6b", Notes: "Thermal spraying — Part 4: elementary quality requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 14922-4:2019-11", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-16063-1", BatchID: "6b", Notes: "Methods for the calibration of vibration and shock transducers — Part 1: basic concepts.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 16063-1:1999-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 16063-1:1998", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-17665-1", BatchID: "6b", Notes: "Sterilization of health care products — moist heat — Part 1: requirements for the development, validation and routine control of a sterilization process for medical devices.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 17665-1:2006-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 17665-1:2006", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/AAMI ST79-2017", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-ISO-19085-10", BatchID: "6b", Notes: "Woodworking machines safety — Part 10: building site saws.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 19085-10:2019-07", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 19085-10:2018", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,150 @@
|
||||
package iace
|
||||
|
||||
// Cross-reference matrix — Batch 7a (final batch, first 36 entries).
|
||||
// Covers remaining woodworking (EN ISO 19085), safety footwear (EN ISO 20345),
|
||||
// stationary fitness (EN ISO 20957), additive manufacturing terminology
|
||||
// (EN ISO 52900), lawnmowers (EN ISO 5395), uniaxial testing machines (EN ISO
|
||||
// 7500), and additional safety valves (EN ISO 4126 parts).
|
||||
|
||||
func init() {
|
||||
registerCrossRefs(batch7aCrossRefs())
|
||||
}
|
||||
|
||||
func batch7aCrossRefs() []NormCrossRef {
|
||||
return []NormCrossRef{
|
||||
{NormID: "EN-ISO-19085-2", BatchID: "7a", Notes: "Woodworking machines — Part 2: horizontal beam panel circular sawing machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 19085-2:2018-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 19085-2:2017", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-19085-3", BatchID: "7a", Notes: "Woodworking machines — Part 3: numerically controlled boring and routing machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 19085-3:2018-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 19085-3:2017", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-19085-4", BatchID: "7a", Notes: "Woodworking machines — Part 4: vertical panel circular sawing machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 19085-4:2018-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-19085-6", BatchID: "7a", Notes: "Woodworking machines — Part 6: single-spindle vertical moulding machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 19085-6:2019-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-19085-7", BatchID: "7a", Notes: "Woodworking machines — Part 7: surface planing machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 19085-7:2019-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-19085-8", BatchID: "7a", Notes: "Woodworking machines — Part 8: rebating, calibrating sanding machines and edge sanding machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 19085-8:2017-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-19085-9", BatchID: "7a", Notes: "Woodworking machines — Part 9: circular sawing machines (with sliding table).", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 19085-9:2021-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-19085-11", BatchID: "7a", Notes: "Woodworking machines — Part 11: combined machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 19085-11:2020-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-19085-12", BatchID: "7a", Notes: "Woodworking machines — Part 12: tenoning/profiling machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 19085-12:2021-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-20345", BatchID: "7a", Notes: "Personal protective equipment — safety footwear.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 20345:2022-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 20345:2021", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F2413-18 (Performance Requirements for Protective Footwear)", Relation: "partial", Confidence: "high", Notes: "EN S1/S2/S3 ≈ ASTM safety class but tests differ in impact (200J vs 75 ft-lb)."},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1910.136", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-ISO-20346", BatchID: "7a", Notes: "Personal protective equipment — protective footwear (lower-spec category).", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 20346:2014-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F2413-18", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-ISO-20957-1", BatchID: "7a", Notes: "Stationary training equipment — Part 1: general safety requirements and test methods.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 20957-1:2014-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F2276-19 (Strength and Conditioning Equipment)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-ISO-20957-4", BatchID: "7a", Notes: "Stationary training — Part 4: strength training benches.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 20957-4:2017-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-20957-5", BatchID: "7a", Notes: "Stationary training — Part 5: stationary exercise bicycles and upper body crank training equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 20957-5:2016-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-20957-6", BatchID: "7a", Notes: "Stationary training — Part 6: treadmills.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 20957-6:2020-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F2115-14 (Motorized Treadmills)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-ISO-20957-9", BatchID: "7a", Notes: "Stationary training — Part 9: elliptical trainers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 20957-9:2017-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-20957-10", BatchID: "7a", Notes: "Stationary training — Part 10: exercise bicycles with a fixed wheel or without freewheel.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 20957-10:2017-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-21530", BatchID: "7a", Notes: "Dentistry — materials used for dental equipment surfaces — determination of resistance to chemical disinfectants.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 21530:2005-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-22434", BatchID: "7a", Notes: "Transportable gas cylinders — inspection and maintenance of cylinder valves.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 22434:2011-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-283", BatchID: "7a", Notes: "Textile conveyor belts — full thickness tensile strength, elongation at break and elongation at the reference load.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 283:2015-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 283:2015", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-340", BatchID: "7a", Notes: "Conveyor belts — laboratory scale flammability characteristics — requirements and test method.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 340:2013-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 340:2013", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-3691-2", BatchID: "7a", Notes: "Industrial trucks — safety, Part 2: self-propelled variable-reach trucks.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 3691-2:2017-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 3691-2:2016", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ITSDF B56.6-2016 (Rough Terrain Trucks)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-ISO-4126-2", BatchID: "7a", Notes: "Safety devices for protection against excessive pressure — Part 2: bursting disc safety devices.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4126-2:2019-02", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASME", Identifier: "ASME BPVC Section VIII Div.1 §UG-127", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-ISO-4126-3", BatchID: "7a", Notes: "Safety devices — Part 3: safety valves and bursting disc safety devices in combination.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4126-3:2019-02", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-4126-5", BatchID: "7a", Notes: "Safety devices — Part 5: controlled safety pressure relief systems (CSPRS).", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4126-5:2014-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-4126-6", BatchID: "7a", Notes: "Safety devices — Part 6: application, selection and installation of bursting disc safety devices.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4126-6:2019-02", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-4126-7", BatchID: "7a", Notes: "Safety devices — Part 7: common data.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4126-7:2014-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-52900", BatchID: "7a", Notes: "Additive manufacturing — general principles — terminology.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO/ASTM 52900:2022-03", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO/ASTM 52900:2021", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F52900-21", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-52901", BatchID: "7a", Notes: "Additive manufacturing — requirements for purchased AM parts.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO/ASTM 52901:2017-07", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F52901-17", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-52910", BatchID: "7a", Notes: "Additive manufacturing — design — requirements, guidelines, and recommendations.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO/ASTM 52910:2019-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM F52910-18", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-5344", BatchID: "7a", Notes: "Mechanical vibration — electrodynamic vibration generating systems — performance characteristics.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 5344:2018-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-5395-1", BatchID: "7a", Notes: "Garden equipment — safety requirements for internal combustion engine-powered lawnmowers — Part 1: terminology and common tests.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 5395-1:2014-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 5395-1:2013", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/OPEI B71.1-2017 (Consumer Turf Care Equipment)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "US-CPSC", Identifier: "16 CFR 1205 (Walk-Behind Power Mowers)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-ISO-5395-3", BatchID: "7a", Notes: "Lawnmowers — Part 3: ride-on lawnmowers with seated operator.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 5395-3:2014-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/OPEI B71.4 (Commercial Turf Care Equipment)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-ISO-7494-1", BatchID: "7a", Notes: "Dentistry — dental units — Part 1: general requirements and test methods.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 7494-1:2019-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-FDA", Identifier: "21 CFR 872 (Dental Devices)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-ISO-7494-2", BatchID: "7a", Notes: "Dentistry — Part 2: water and air supply.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 7494-2:2016-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "EN-ISO-7500-1", BatchID: "7a", Notes: "Metallic materials — calibration and verification of static uniaxial testing machines — Part 1: tension/compression testing machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 7500-1:2018-06", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ASTM", Identifier: "ASTM E4-21 (Force Verification of Testing Machines)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "EN-ISO-7500-2", BatchID: "7a", Notes: "Uniaxial testing machines — Part 2: tensile creep testing machines.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 7500-2:2006-07", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
package iace
|
||||
|
||||
// Cross-reference matrix — Batch 7b (final batch, last 35 entries).
|
||||
// Covers medical electrical equipment (IEC 60601 family — major US adoption
|
||||
// ANSI/AAMI ES60601), chainsaws (ISO 11681), machine tools sawing (ISO 16093),
|
||||
// acoustics determination methods (ISO 3743/3745/3747), and remaining
|
||||
// agricultural machinery (ISO 4254 parts).
|
||||
|
||||
func init() {
|
||||
registerCrossRefs(batch7bCrossRefs())
|
||||
}
|
||||
|
||||
func batch7bCrossRefs() []NormCrossRef {
|
||||
return []NormCrossRef{
|
||||
{NormID: "IEC-60601-1", BatchID: "7b", Notes: "Medical electrical equipment — general requirements for basic safety and essential performance.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-1:2013-12 (VDE 0750-1)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60601-1:2005+AMD1:2012+AMD2:2020", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/AAMI ES60601-1:2005/(R)2012+A1+A2", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-UL", Identifier: "UL 60601-1 (legacy edition)", Relation: "superseded_by", Confidence: "verified"},
|
||||
{Region: "CN-GB", Identifier: "GB 9706.1-2020", Relation: "equivalent", Confidence: "high"},
|
||||
{Region: "JP-JIS", Identifier: "JIS T 0601-1:2017", Relation: "equivalent", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "IEC-60601-1-2", BatchID: "7b", Notes: "Medical electrical equipment — EMC requirements.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-1-2:2016-05 (VDE 0750-1-2)", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60601-1-2:2014+AMD1:2020", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/AAMI/IEC 60601-1-2:2014+A1:2021", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "IEC-60601-1-6", BatchID: "7b", Notes: "Medical electrical equipment — usability.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-1-6:2015-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/AAMI HE75:2009/(R)2018 (Human Factors Engineering)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "IEC-60601-1-8", BatchID: "7b", Notes: "Medical electrical equipment — alarm systems.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-1-8:2007-10", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60601-1-8:2006+AMD1:2012+AMD2:2020", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "IEC-60601-1-9", BatchID: "7b", Notes: "Medical electrical equipment — environmentally conscious design.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-1-9:2014-06", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "IEC-60601-1-10", BatchID: "7b", Notes: "Medical electrical equipment — physiologic closed-loop controllers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-1-10:2014-06", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "IEC-60601-1-11", BatchID: "7b", Notes: "Medical electrical equipment — home healthcare environment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-1-11:2015-08", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "IEC 60601-1-11:2015", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "IEC-60601-2-2", BatchID: "7b", Notes: "Medical equipment — particular requirements for HF surgical equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-2-2:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/AAMI HF18-2009", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "IEC-60601-2-4", BatchID: "7b", Notes: "Medical equipment — particular requirements for cardiac defibrillators.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-2-4:2019-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "IEC-60601-2-10", BatchID: "7b", Notes: "Medical equipment — nerve and muscle stimulators.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-2-10:2017-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "IEC-60601-2-16", BatchID: "7b", Notes: "Medical equipment — haemodialysis equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-2-16:2019-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/AAMI RD52 (Hemodialysis Systems)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "IEC-60601-2-22", BatchID: "7b", Notes: "Medical equipment — laser equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-2-22:2013-10", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI Z136.3 (Lasers in Health Care)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "IEC-60601-2-25", BatchID: "7b", Notes: "Medical equipment — electrocardiographs.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-2-25:2015-11", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "IEC-60601-2-27", BatchID: "7b", Notes: "Medical equipment — electrocardiographic monitoring equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-2-27:2015-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/AAMI EC13 (Cardiac Monitors, Heart Rate Meters, and Alarms)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "IEC-60601-2-34", BatchID: "7b", Notes: "Medical equipment — invasive blood-pressure monitoring equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-2-34:2014-11", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "IEC-60601-2-37", BatchID: "7b", Notes: "Medical equipment — ultrasonic medical diagnostic and monitoring equipment.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-2-37:2016-08", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "IEC-60601-2-44", BatchID: "7b", Notes: "Medical equipment — X-ray equipment for computed tomography.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-2-44:2017-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-FDA", Identifier: "21 CFR 1020.33 (Computed Tomography Equipment)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "IEC-60601-2-46", BatchID: "7b", Notes: "Medical equipment — operating tables.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-2-46:2017-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "IEC-60601-2-52", BatchID: "7b", Notes: "Medical equipment — medical beds.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN 60601-2-52:2015-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "ISO-11681-1", BatchID: "7b", Notes: "Forestry machinery — portable chain-saw safety, Part 1: chain-saws for forest service.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11681-1:2011-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 11681-1:2011", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/OPEI B175.1-2012 (Chain Saws)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "ISO-11681-2", BatchID: "7b", Notes: "Forestry machinery — portable chain-saws, Part 2: chain-saws for tree service.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 11681-2:2011-11", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/OPEI B175.1-2012", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "ISO-16093", BatchID: "7b", Notes: "Machine tools safety — sawing machines for cold metal.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 16093:2018-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 16093:2017", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI B11.10-2003 (R2018) (Metal Sawing Machines)", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "ISO-3743-1", BatchID: "7b", Notes: "Acoustics — sound power levels — engineering methods for small, movable sources in reverberant fields.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 3743-1:2011-04", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 3743-1:2010", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI S12.51-2002 (R2017)", Relation: "equivalent", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "ISO-3743-2", BatchID: "7b", Notes: "Acoustics — sound power, Part 2: methods for special reverberation test rooms.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 3743-2:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI S12.53-1999 (R2019)", Relation: "equivalent", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "ISO-3745", BatchID: "7b", Notes: "Acoustics — sound power levels — precision methods for anechoic and hemi-anechoic rooms.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 3745:2017-06", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 3745:2012+A1:2017", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI S12.55-2012", Relation: "equivalent", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "ISO-3747", BatchID: "7b", Notes: "Acoustics — sound power levels — survey method using reference sound source.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 3747:2011-03", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "INTL-ISO", Identifier: "ISO 3747:2010", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "ISO-4254-2", BatchID: "7b", Notes: "Agricultural machinery — safety, Part 2: anhydrous ammonia applicators.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4254-2:2010-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-ANSI", Identifier: "ANSI/ASABE S390.5", Relation: "partial", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "ISO-4254-3", BatchID: "7b", Notes: "Agricultural machinery — safety, Part 3: tractors.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4254-3:2010-09", Relation: "identical", Confidence: "verified"},
|
||||
{Region: "US-OSHA", Identifier: "29 CFR 1928.51 (Roll-Over Protective Structures)", Relation: "partial", Confidence: "high"},
|
||||
{Region: "CN-GB", Identifier: "GB 10395.3-2006", Relation: "equivalent", Confidence: "high"},
|
||||
}},
|
||||
{NormID: "ISO-4254-4", BatchID: "7b", Notes: "Agricultural machinery — Part 4: forage handling.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4254-4:2010-09", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "ISO-4254-8", BatchID: "7b", Notes: "Agricultural machinery — Part 8: solid fertilizer distributors.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4254-8:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "ISO-4254-9", BatchID: "7b", Notes: "Agricultural machinery — Part 9: seed drills.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4254-9:2018-12", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "ISO-4254-10", BatchID: "7b", Notes: "Agricultural machinery — Part 10: rotary tedders and rakes.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4254-10:2010-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "ISO-4254-11", BatchID: "7b", Notes: "Agricultural machinery — Part 11: pick-up balers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4254-11:2010-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
{NormID: "ISO-4254-13", BatchID: "7b", Notes: "Agricultural machinery — Part 13: large rotary mowers.", Mappings: []NormMapping{
|
||||
{Region: "EU-DIN", Identifier: "DIN EN ISO 4254-13:2012-04", Relation: "identical", Confidence: "verified"},
|
||||
}},
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,159 @@
|
||||
package iace
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// RenderCrossRefAppendix builds a Markdown appendix for a tech-file section
|
||||
// that lists the international equivalents of the given norm IDs. It is
|
||||
// intended to be appended to the "Applied Harmonised Standards" section so
|
||||
// the same tech file is usable for CE + US/CN/JP market submissions.
|
||||
//
|
||||
// Output format:
|
||||
//
|
||||
// ## Anhang: Internationale Aequivalenzen / International Cross-Reference
|
||||
//
|
||||
// Diese Tabelle ordnet die in dieser technischen Dokumentation angewandten
|
||||
// EU-Normen den Pendants in anderen Maerkten zu. Die Spalte "Relation" gibt
|
||||
// an, ob es sich um eine identische Uebernahme, eine teilweise Ueberdeckung
|
||||
// oder ein abgeloestes (superseded_by) Dokument handelt. Vor Nutzung im
|
||||
// jeweiligen Marktraum durch eine sachkundige Person verifizieren.
|
||||
//
|
||||
// | EU Norm | Region | International Identifier | Relation | Confidence |
|
||||
// |---------|--------|--------------------------|----------|------------|
|
||||
// ...
|
||||
//
|
||||
// If no norms have crossref entries, returns an empty string so the caller
|
||||
// can skip the appendix entirely.
|
||||
func RenderCrossRefAppendix(normIDs []string) string {
|
||||
rows := collectCrossRefRows(normIDs)
|
||||
if len(rows) == 0 {
|
||||
return ""
|
||||
}
|
||||
|
||||
var b strings.Builder
|
||||
b.WriteString("\n\n## Anhang: Internationale Aequivalenzen / International Cross-Reference\n\n")
|
||||
b.WriteString("Diese Tabelle ordnet die in dieser technischen Dokumentation angewandten EU-Normen den Pendants in anderen Maerkten zu (DIN, ANSI/NFPA/UL/OSHA, GB, JIS u.a.). Die Spalte ")
|
||||
b.WriteString("**Relation** kennzeichnet `identical` (wortgleiche Uebernahme), `equivalent` (Kompatibilitaet auf Verfahrensebene), ")
|
||||
b.WriteString("`partial` (Teilueberdeckung — vor Nutzung pruefen), `supersedes`/`superseded_by` (Ablaufverhaeltnis). ")
|
||||
b.WriteString("Die Spalte **Confidence** drueckt die intern hinterlegte Verlaesslichkeit der Zuordnung aus. ")
|
||||
b.WriteString("Vor Verwendung in einem Drittmarkt durch eine sachkundige Person verifizieren.\n\n")
|
||||
b.WriteString("| EU Norm (verwendet) | Region | International Identifier | Relation | Confidence | Hinweis |\n")
|
||||
b.WriteString("|---------------------|--------|--------------------------|----------|------------|---------|\n")
|
||||
|
||||
for _, row := range rows {
|
||||
note := row.Notes
|
||||
if note == "" {
|
||||
note = "—"
|
||||
}
|
||||
// Escape pipes in identifier and note for markdown table safety.
|
||||
fmt.Fprintf(&b,
|
||||
"| %s | %s | %s | %s | %s | %s |\n",
|
||||
escapeCell(row.SourceNorm),
|
||||
escapeCell(row.Region),
|
||||
escapeCell(row.Identifier),
|
||||
escapeCell(row.Relation),
|
||||
escapeCell(row.Confidence),
|
||||
escapeCell(note),
|
||||
)
|
||||
}
|
||||
|
||||
b.WriteString("\n*Quelle: BreakPilot Cross-Reference Matrix. Keine Originalnormtexte reproduziert — nur Identifikatoren. Stand: Bezugsperiode der jeweiligen Norm-Bibliothek.*\n")
|
||||
return b.String()
|
||||
}
|
||||
|
||||
// crossRefRow is a flattened row of the matrix used by the renderer.
|
||||
type crossRefRow struct {
|
||||
SourceNorm string
|
||||
Region string
|
||||
Identifier string
|
||||
Relation string
|
||||
Confidence string
|
||||
Notes string
|
||||
}
|
||||
|
||||
// collectCrossRefRows expands the per-norm mapping list into a sorted slice
|
||||
// of rows. Sort order: source norm ID first, then region in a canonical
|
||||
// regional order so EU markets appear before non-EU.
|
||||
func collectCrossRefRows(normIDs []string) []crossRefRow {
|
||||
regionRank := map[string]int{
|
||||
"EU-DIN": 0,
|
||||
"INTL-ISO": 1,
|
||||
"US-ANSI": 2,
|
||||
"US-NFPA": 3,
|
||||
"US-UL": 4,
|
||||
"US-OSHA": 5,
|
||||
"US-ASME": 6,
|
||||
"US-ASTM": 7,
|
||||
"US-SAE": 8,
|
||||
"US-NIOSH": 9,
|
||||
"US-FDA": 10,
|
||||
"US-EPA": 11,
|
||||
"US-NEMA": 12,
|
||||
"US-NSF": 13,
|
||||
"US-API": 14,
|
||||
"US-CPSC": 15,
|
||||
"US-AHRI": 16,
|
||||
"US-ASHRAE": 17,
|
||||
"US-FCC": 18,
|
||||
"US-DOT": 19,
|
||||
"US-MSHA": 20,
|
||||
"US-FM": 21,
|
||||
"US-AAR": 22,
|
||||
"US-ACI": 23,
|
||||
"US-ADA": 24,
|
||||
"US-AAMA": 25,
|
||||
"US-APA": 26,
|
||||
"US-APSP": 27,
|
||||
"US-EJMA": 28,
|
||||
"US-ICC": 29,
|
||||
"US-SMACNA": 30,
|
||||
"CN-GB": 40,
|
||||
"JP-JIS": 50,
|
||||
}
|
||||
|
||||
seen := make(map[string]bool)
|
||||
var rows []crossRefRow
|
||||
for _, id := range normIDs {
|
||||
if seen[id] {
|
||||
continue
|
||||
}
|
||||
seen[id] = true
|
||||
cr := GetNormCrossRef(id)
|
||||
for _, m := range cr.Mappings {
|
||||
rows = append(rows, crossRefRow{
|
||||
SourceNorm: id,
|
||||
Region: m.Region,
|
||||
Identifier: m.Identifier,
|
||||
Relation: m.Relation,
|
||||
Confidence: m.Confidence,
|
||||
Notes: m.Notes,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
sort.SliceStable(rows, func(i, j int) bool {
|
||||
if rows[i].SourceNorm != rows[j].SourceNorm {
|
||||
return rows[i].SourceNorm < rows[j].SourceNorm
|
||||
}
|
||||
ri, ok := regionRank[rows[i].Region]
|
||||
if !ok {
|
||||
ri = 99
|
||||
}
|
||||
rj, ok := regionRank[rows[j].Region]
|
||||
if !ok {
|
||||
rj = 99
|
||||
}
|
||||
return ri < rj
|
||||
})
|
||||
return rows
|
||||
}
|
||||
|
||||
// escapeCell escapes pipes and newlines so a Markdown table cell does not break.
|
||||
func escapeCell(s string) string {
|
||||
s = strings.ReplaceAll(s, "|", "\\|")
|
||||
s = strings.ReplaceAll(s, "\n", " ")
|
||||
return s
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package iace
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestRenderCrossRefAppendix_EmptyInput(t *testing.T) {
|
||||
got := RenderCrossRefAppendix(nil)
|
||||
if got != "" {
|
||||
t.Errorf("expected empty string for nil input, got %d bytes", len(got))
|
||||
}
|
||||
}
|
||||
|
||||
func TestRenderCrossRefAppendix_UnknownIDs(t *testing.T) {
|
||||
got := RenderCrossRefAppendix([]string{"ISO-DOES-NOT-EXIST", "EN-ALSO-MISSING"})
|
||||
if got != "" {
|
||||
t.Errorf("expected empty string when no IDs match, got:\n%s", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRenderCrossRefAppendix_ISO12100_RendersAllRegions(t *testing.T) {
|
||||
got := RenderCrossRefAppendix([]string{"ISO-12100"})
|
||||
if got == "" {
|
||||
t.Fatal("expected non-empty appendix for ISO-12100")
|
||||
}
|
||||
for _, want := range []string{
|
||||
"## Anhang: Internationale Aequivalenzen",
|
||||
"ISO-12100",
|
||||
"EU-DIN",
|
||||
"US-ANSI",
|
||||
"CN-GB",
|
||||
"JP-JIS",
|
||||
"DIN EN ISO 12100",
|
||||
"GB/T 15706",
|
||||
} {
|
||||
if !strings.Contains(got, want) {
|
||||
t.Errorf("expected appendix to contain %q, got:\n%s", want, got)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRenderCrossRefAppendix_RegionOrdering(t *testing.T) {
|
||||
got := RenderCrossRefAppendix([]string{"EN-60204-1"})
|
||||
if got == "" {
|
||||
t.Fatal("expected non-empty appendix for EN-60204-1")
|
||||
}
|
||||
// EU-DIN must appear before US-NFPA which must appear before CN-GB.
|
||||
euIdx := strings.Index(got, "EU-DIN")
|
||||
usIdx := strings.Index(got, "US-NFPA")
|
||||
cnIdx := strings.Index(got, "CN-GB")
|
||||
if euIdx < 0 || usIdx < 0 || cnIdx < 0 {
|
||||
t.Fatalf("missing one of EU-DIN/US-NFPA/CN-GB markers, got:\n%s", got)
|
||||
}
|
||||
if !(euIdx < usIdx && usIdx < cnIdx) {
|
||||
t.Errorf("expected region order EU-DIN < US-NFPA < CN-GB, got positions %d, %d, %d", euIdx, usIdx, cnIdx)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRenderCrossRefAppendix_MultipleNorms_SortedByID(t *testing.T) {
|
||||
got := RenderCrossRefAppendix([]string{"ISO-13850", "ISO-12100", "EN-60204-1"})
|
||||
if got == "" {
|
||||
t.Fatal("expected non-empty appendix")
|
||||
}
|
||||
// Expect EN-60204-1 first (alphabetical), then ISO-12100, then ISO-13850.
|
||||
en := strings.Index(got, "EN-60204-1")
|
||||
iso12100 := strings.Index(got, "ISO-12100")
|
||||
iso13850 := strings.Index(got, "ISO-13850")
|
||||
if en < 0 || iso12100 < 0 || iso13850 < 0 {
|
||||
t.Fatalf("missing one of the IDs in output:\n%s", got)
|
||||
}
|
||||
if !(en < iso12100 && iso12100 < iso13850) {
|
||||
t.Errorf("expected source-norm ordering by alphabetical ID, got positions %d, %d, %d", en, iso12100, iso13850)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRenderCrossRefAppendix_PipeEscape(t *testing.T) {
|
||||
got := RenderCrossRefAppendix([]string{"ISO-12100"})
|
||||
// Find a line that came from a mapping with the pipe character — none of
|
||||
// our identifiers contain literal '|' so this just checks that the table
|
||||
// header is intact (no accidental pipe injection).
|
||||
if !strings.Contains(got, "| EU Norm (verwendet) |") {
|
||||
t.Errorf("table header malformed:\n%s", got)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package iace
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
// Spot-check sample of cross-references, asserting a couple of well-known
|
||||
// regional pendants that I personally vetted. If these break, the matrix
|
||||
// got corrupted; investigate before just updating the test.
|
||||
|
||||
func TestCrossRef_SpotChecks(t *testing.T) {
|
||||
cases := []struct {
|
||||
normID string
|
||||
region string
|
||||
mustHave string
|
||||
desc string
|
||||
}{
|
||||
{"IEC-60601-1", "US-ANSI", "ES60601", "medical electrical equipment → ANSI/AAMI ES60601"},
|
||||
{"ISO-10218-1", "US-ANSI", "RIA R15.06", "industrial robots → RIA R15.06"},
|
||||
{"EN-388", "US-ANSI", "ISEA 105", "mech. gloves → ANSI/ISEA 105"},
|
||||
{"EN-352-1", "US-ANSI", "S3.19", "hearing protection → ANSI S3.19/S12.6"},
|
||||
{"EN-1176-1", "US-ASTM", "F1487", "playgrounds → ASTM F1487"},
|
||||
{"EN-13814", "US-ASTM", "F2291", "amusement rides → ASTM F2291"},
|
||||
{"EN-13445-1", "US-ASME", "Section VIII", "pressure vessels → ASME BPVC VIII"},
|
||||
{"EN-13480-1", "US-ASME", "B31.3", "process piping → ASME B31.3"},
|
||||
{"EN-60204-1", "US-NFPA", "NFPA 79", "industrial electrical → NFPA 79"},
|
||||
{"EN-12453", "US-UL", "UL 325", "garage doors → UL 325"},
|
||||
{"ISO-11681-1", "US-ANSI", "B175.1", "chainsaws → OPEI B175.1"},
|
||||
{"EN-ISO-5395-1", "US-ANSI", "B71.1", "lawnmowers → OPEI B71.1"},
|
||||
{"EN-ISO-20345", "US-ASTM", "F2413", "safety shoes → ASTM F2413"},
|
||||
{"EN-IEC-61400-1", "INTL-ISO", "IEC 61400-1", "wind turbine design → IEC 61400-1"},
|
||||
{"EN-149", "US-NIOSH", "42 CFR", "respirators → NIOSH N95 framework"},
|
||||
}
|
||||
|
||||
for _, tc := range cases {
|
||||
cr := GetNormCrossRef(tc.normID)
|
||||
found := false
|
||||
for _, m := range cr.Mappings {
|
||||
if m.Region == tc.region && contains(m.Identifier, tc.mustHave) {
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
t.Errorf("[%s] %s: expected %s mapping containing %q", tc.desc, tc.normID, tc.region, tc.mustHave)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func contains(s, sub string) bool {
|
||||
if sub == "" {
|
||||
return true
|
||||
}
|
||||
for i := 0; i+len(sub) <= len(s); i++ {
|
||||
if s[i:i+len(sub)] == sub {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
package iace
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
// expectedCrossRefCount must be updated as batches are added.
|
||||
// Batches 1-6 × 100 + Batch 7 × 71 = 671 (full library coverage).
|
||||
const expectedCrossRefCount = 671
|
||||
|
||||
func TestCrossRef_BatchCoverage(t *testing.T) {
|
||||
all := ListNormCrossRefs()
|
||||
if len(all) != expectedCrossRefCount {
|
||||
t.Fatalf("expected %d cross-ref entries, got %d", expectedCrossRefCount, len(all))
|
||||
}
|
||||
}
|
||||
|
||||
func TestCrossRef_EN8120_HasASME(t *testing.T) {
|
||||
cr := GetNormCrossRef("EN-81-20")
|
||||
hasASME := false
|
||||
for _, m := range cr.Mappings {
|
||||
if m.Region == "US-ASME" {
|
||||
hasASME = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !hasASME {
|
||||
t.Error("EN-81-20 (lifts) should map to ASME A17.1 in US-ASME region")
|
||||
}
|
||||
}
|
||||
|
||||
func TestCrossRef_EN13445_HasMultipleRegions(t *testing.T) {
|
||||
cr := GetNormCrossRef("EN-13445-1")
|
||||
if len(cr.Mappings) < 4 {
|
||||
t.Errorf("EN-13445-1 (pressure vessels) should have 4+ regional mappings, got %d", len(cr.Mappings))
|
||||
}
|
||||
}
|
||||
|
||||
func TestCrossRef_ISO12100_HasAllRegions(t *testing.T) {
|
||||
cr := GetNormCrossRef("ISO-12100")
|
||||
if cr.NormID != "ISO-12100" {
|
||||
t.Fatalf("expected NormID ISO-12100, got %q", cr.NormID)
|
||||
}
|
||||
wantRegions := map[string]bool{
|
||||
"EU-DIN": false,
|
||||
"US-ANSI": false,
|
||||
"CN-GB": false,
|
||||
"JP-JIS": false,
|
||||
}
|
||||
for _, m := range cr.Mappings {
|
||||
if _, ok := wantRegions[m.Region]; ok {
|
||||
wantRegions[m.Region] = true
|
||||
}
|
||||
}
|
||||
for region, found := range wantRegions {
|
||||
if !found {
|
||||
t.Errorf("ISO-12100 missing mapping for region %q", region)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestCrossRef_EN60204_HasNFPA79(t *testing.T) {
|
||||
cr := GetNormCrossRef("EN-60204-1")
|
||||
hasNFPA := false
|
||||
for _, m := range cr.Mappings {
|
||||
if m.Region == "US-NFPA" && m.Identifier != "" {
|
||||
hasNFPA = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !hasNFPA {
|
||||
t.Error("EN-60204-1 should map to NFPA 79 in US-NFPA region")
|
||||
}
|
||||
}
|
||||
|
||||
func TestCrossRef_UnknownID_ReturnsEmpty(t *testing.T) {
|
||||
cr := GetNormCrossRef("ISO-NOT-IN-REGISTRY")
|
||||
if len(cr.Mappings) != 0 {
|
||||
t.Errorf("expected empty mappings for unknown ID, got %d", len(cr.Mappings))
|
||||
}
|
||||
if cr.NormID != "ISO-NOT-IN-REGISTRY" {
|
||||
t.Errorf("expected NormID preserved, got %q", cr.NormID)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCrossRef_AllEntries_HaveValidRelation(t *testing.T) {
|
||||
valid := map[string]bool{
|
||||
"identical": true, "equivalent": true, "partial": true,
|
||||
"supersedes": true, "superseded_by": true,
|
||||
}
|
||||
for _, cr := range ListNormCrossRefs() {
|
||||
for _, m := range cr.Mappings {
|
||||
if !valid[m.Relation] {
|
||||
t.Errorf("%s region %s: invalid relation %q", cr.NormID, m.Region, m.Relation)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestCrossRef_AllEntries_HaveValidConfidence(t *testing.T) {
|
||||
valid := map[string]bool{
|
||||
"verified": true, "high": true, "medium": true, "low": true,
|
||||
}
|
||||
for _, cr := range ListNormCrossRefs() {
|
||||
for _, m := range cr.Mappings {
|
||||
if !valid[m.Confidence] {
|
||||
t.Errorf("%s region %s: invalid confidence %q", cr.NormID, m.Region, m.Confidence)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,7 @@ type NormReference struct {
|
||||
Withdrawn bool `json:"withdrawn,omitempty"` // True if norm is no longer listed in EU OJ
|
||||
ValidUntil string `json:"valid_until,omitempty"` // End of legal effect (e.g. "20.01.2027")
|
||||
ReplacedBy string `json:"replaced_by,omitempty"` // Successor norm number if replaced
|
||||
CrossRef *NormCrossRef `json:"cross_ref,omitempty"` // International cross-reference (DIN/ANSI/GB/JIS), populated on demand
|
||||
}
|
||||
|
||||
// GetNormsLibrary returns A-norms (Grundnormen) and B-norms (Sicherheitsgrundnormen
|
||||
|
||||
@@ -153,8 +153,61 @@ func (g *TechFileGenerator) GenerateSection(ctx context.Context, projectID uuid.
|
||||
})
|
||||
if err != nil {
|
||||
// LLM unavailable — return structured fallback with real project data
|
||||
return buildFallbackContent(sctx, sectionType), nil
|
||||
return appendCrossRefIfApplicable(buildFallbackContent(sctx, sectionType), sctx, sectionType), nil
|
||||
}
|
||||
|
||||
return resp.Message.Content, nil
|
||||
return appendCrossRefIfApplicable(resp.Message.Content, sctx, sectionType), nil
|
||||
}
|
||||
|
||||
// appendCrossRefIfApplicable adds the international cross-reference appendix
|
||||
// (DIN/ANSI/GB/JIS) to the "standards_applied" section. For other section
|
||||
// types it returns content unchanged. The appendix is built deterministically
|
||||
// from the in-process registry, so it is never hallucinated by the LLM.
|
||||
func appendCrossRefIfApplicable(content string, sctx *SectionGenerationContext, sectionType string) string {
|
||||
if sectionType != SectionStandardsApplied {
|
||||
return content
|
||||
}
|
||||
normIDs := suggestNormIDsForProject(sctx)
|
||||
appendix := RenderCrossRefAppendix(normIDs)
|
||||
if appendix == "" {
|
||||
return content
|
||||
}
|
||||
return content + appendix
|
||||
}
|
||||
|
||||
// suggestNormIDsForProject reuses the existing SuggestNorms heuristic to pick
|
||||
// the norms most likely applicable to this project. We only need the IDs;
|
||||
// the rest of the SuggestNorms output (scores, reasons) is discarded.
|
||||
func suggestNormIDsForProject(sctx *SectionGenerationContext) []string {
|
||||
if sctx == nil || sctx.Project == nil {
|
||||
return nil
|
||||
}
|
||||
hazardCats := make([]string, 0, len(sctx.Hazards))
|
||||
seenCat := map[string]bool{}
|
||||
for _, h := range sctx.Hazards {
|
||||
if h.Category != "" && !seenCat[h.Category] {
|
||||
seenCat[h.Category] = true
|
||||
hazardCats = append(hazardCats, h.Category)
|
||||
}
|
||||
}
|
||||
result := SuggestNorms(sctx.Project.MachineType, hazardCats, nil)
|
||||
if result == nil {
|
||||
return nil
|
||||
}
|
||||
ids := make([]string, 0, result.Total)
|
||||
seenID := map[string]bool{}
|
||||
push := func(suggs []NormSuggestion) {
|
||||
for _, s := range suggs {
|
||||
if s.Norm.ID == "" || seenID[s.Norm.ID] {
|
||||
continue
|
||||
}
|
||||
seenID[s.Norm.ID] = true
|
||||
ids = append(ids, s.Norm.ID)
|
||||
}
|
||||
}
|
||||
push(result.ANorms)
|
||||
push(result.B1Norms)
|
||||
push(result.B2Norms)
|
||||
push(result.CNorms)
|
||||
return ids
|
||||
}
|
||||
|
||||
@@ -207,6 +207,42 @@ async def get_snapshot(snapshot_id: str):
|
||||
db.close()
|
||||
|
||||
|
||||
@router.get("/admin/benchmark")
|
||||
async def benchmark(
|
||||
industry: str = "",
|
||||
sites: str = "",
|
||||
anonymized: bool = False,
|
||||
limit: int = 50,
|
||||
):
|
||||
"""P107 — Branchen-Benchmark-Cockpit Endpoint.
|
||||
industry: 'automotive' / 'banking' / etc (optional)
|
||||
sites: comma-separated site_label list (optional)
|
||||
anonymized: bool — wenn true, Hersteller-Namen → 'OEM 1/2/3'
|
||||
"""
|
||||
from database import SessionLocal
|
||||
from compliance.services.benchmark_extractor import (
|
||||
load_snapshots_for_benchmark, anonymize_kpis,
|
||||
build_benchmark_summary,
|
||||
)
|
||||
site_list = [s.strip() for s in sites.split(",") if s.strip()] if sites else None
|
||||
db = SessionLocal()
|
||||
try:
|
||||
kpis = load_snapshots_for_benchmark(
|
||||
db, industry=industry or None, sites=site_list, limit=limit,
|
||||
)
|
||||
finally:
|
||||
db.close()
|
||||
if anonymized:
|
||||
kpis = anonymize_kpis(kpis, industry=industry)
|
||||
return {
|
||||
"industry": industry or "all",
|
||||
"anonymized": anonymized,
|
||||
"sites": [k.get("site_label") for k in kpis],
|
||||
"kpis": kpis,
|
||||
"summary": build_benchmark_summary(kpis),
|
||||
}
|
||||
|
||||
|
||||
@router.post("/admin/tcf-ingest")
|
||||
async def tcf_ingest():
|
||||
"""P105 — IAB TCF Vendor-Liste ingestieren / refreshen.
|
||||
|
||||
@@ -0,0 +1,265 @@
|
||||
"""
|
||||
P107 — Branchen-Benchmark-KPIs pro Snapshot.
|
||||
|
||||
Extrahiert aus einem compliance_check_snapshot 18 KPIs die fuer den
|
||||
Multi-Site-Vergleich relevant sind. Wird vom /admin/benchmark Endpoint
|
||||
genutzt um Vergleichstabellen zu rendern.
|
||||
|
||||
USP: keine andere Compliance-Software gibt einen Wirtschaftspruefer
|
||||
einen so granularen Branchen-Querschnitt. Bei DAX-Konzernen ist das
|
||||
ein echtes Verkaufs-Asset (Big 4 koennen es ihren Kunden als
|
||||
'wir sehen die ganze Branche' verkaufen).
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
import re
|
||||
from typing import Any
|
||||
|
||||
from sqlalchemy import text as sa_text
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
_US_COUNTRIES = {"US", "USA", "United States"}
|
||||
_NON_EU = {"US", "CN", "RU", "IN", "JP", "BR", "AU", "CA", "KR",
|
||||
"MX", "ZA", "TR", "SG", "TW", "HK"}
|
||||
|
||||
|
||||
def _safe_int(v: Any, default: int = 0) -> int:
|
||||
try:
|
||||
return int(v)
|
||||
except (TypeError, ValueError):
|
||||
return default
|
||||
|
||||
|
||||
def _country_from_vendor(v: dict) -> str:
|
||||
c = (v.get("country") or "").strip().upper()
|
||||
if c:
|
||||
return c
|
||||
# Aus vendor_country wenn vorhanden (TCF-Authority Eintraege)
|
||||
return ""
|
||||
|
||||
|
||||
def extract_kpis(snapshot: dict) -> dict:
|
||||
"""Liefert 18 KPIs aus einem snapshot-row.
|
||||
|
||||
Snapshot-row keys: id, check_id, site_label, site_domain, created_at,
|
||||
banner_result, cmp_vendors, doc_entries, scan_context.
|
||||
"""
|
||||
br = snapshot.get("banner_result") or {}
|
||||
cv = snapshot.get("cmp_vendors") or []
|
||||
de = snapshot.get("doc_entries") or []
|
||||
sc = snapshot.get("scan_context") or {}
|
||||
|
||||
# Banner-Phase Cookies
|
||||
phases = br.get("phases") or {}
|
||||
after_accept = (phases.get("after_accept") or {})
|
||||
cookies_in_browser = len(after_accept.get("cookies") or [])
|
||||
cd = br.get("cookies_detailed") or []
|
||||
|
||||
# Doc-Text Lengths
|
||||
doc_text_total = sum(len((d.get("text") or "")) for d in de)
|
||||
cookie_doc_len = next(
|
||||
(len(d.get("text") or "") for d in de if d.get("doc_type") == "cookie"), 0,
|
||||
)
|
||||
|
||||
# Vendor breakdown
|
||||
n_vendors = len(cv)
|
||||
countries = [_country_from_vendor(v) for v in cv]
|
||||
countries = [c for c in countries if c]
|
||||
n_us = sum(1 for c in countries if c in _US_COUNTRIES)
|
||||
n_non_eu = sum(1 for c in countries if c in _NON_EU)
|
||||
us_pct = round(n_us / max(1, n_vendors) * 100, 1)
|
||||
non_eu_pct = round(n_non_eu / max(1, n_vendors) * 100, 1)
|
||||
|
||||
# Vendor-Source-Mix
|
||||
by_src: dict[str, int] = {}
|
||||
for v in cv:
|
||||
for s in (v.get("source") or "?").split(";"):
|
||||
s = s.strip() or "?"
|
||||
by_src[s] = by_src.get(s, 0) + 1
|
||||
|
||||
# Cookies pro Vendor (Konzentration)
|
||||
cookie_counts = [len(v.get("cookies") or []) for v in cv]
|
||||
max_cookies_per_vendor = max(cookie_counts) if cookie_counts else 0
|
||||
avg_cookies_per_vendor = (
|
||||
round(sum(cookie_counts) / max(1, len(cookie_counts)), 1)
|
||||
if cookie_counts else 0
|
||||
)
|
||||
|
||||
# Banner-Checks
|
||||
bc = br.get("banner_checks") or {}
|
||||
n_banner_violations = len(bc.get("violations") or [])
|
||||
banner_detected = bool(br.get("banner_detected"))
|
||||
|
||||
# Compliance-Score (best effort)
|
||||
score = br.get("compliance_score") or br.get("completeness_pct")
|
||||
|
||||
# Estimated Saving (Lizenz-Konsolidierung, Heuristik)
|
||||
# Pro 5 Vendor ueber Median (10) rechnen wir ~5k EUR/Jahr Einsparung
|
||||
median_vendors = 10
|
||||
saving_low = max(0, (n_vendors - median_vendors)) * 1000
|
||||
saving_high = max(0, (n_vendors - median_vendors)) * 5000
|
||||
|
||||
return {
|
||||
# Header
|
||||
"check_id": snapshot.get("check_id"),
|
||||
"site_label": snapshot.get("site_label"),
|
||||
"site_domain": snapshot.get("site_domain"),
|
||||
"captured_at": (snapshot.get("created_at").isoformat()
|
||||
if snapshot.get("created_at") else None),
|
||||
"industry": (sc or {}).get("industry") or "",
|
||||
# Vendor-KPIs
|
||||
"vendors_total": n_vendors,
|
||||
"vendors_us": n_us,
|
||||
"vendors_non_eu": n_non_eu,
|
||||
"us_pct": us_pct,
|
||||
"non_eu_pct": non_eu_pct,
|
||||
"source_breakdown": by_src,
|
||||
"max_cookies_per_vendor": max_cookies_per_vendor,
|
||||
"avg_cookies_per_vendor": avg_cookies_per_vendor,
|
||||
# Cookie-KPIs
|
||||
"cookies_in_browser": cookies_in_browser,
|
||||
"cookies_detailed_count": len(cd),
|
||||
"cookie_doc_chars": cookie_doc_len,
|
||||
"doc_text_chars_total": doc_text_total,
|
||||
# Banner
|
||||
"banner_detected": banner_detected,
|
||||
"banner_provider": br.get("banner_provider") or "",
|
||||
"banner_violations": n_banner_violations,
|
||||
# Compliance / Score
|
||||
"compliance_score": score,
|
||||
# Saving (Heuristik)
|
||||
"saving_low_eur": saving_low,
|
||||
"saving_high_eur": saving_high,
|
||||
# Capture-Quality (wie viele unserer 10+ Audit-Quellen liefern Daten)
|
||||
"data_quality_pct": _quality_pct(snapshot),
|
||||
}
|
||||
|
||||
|
||||
def _quality_pct(snapshot: dict) -> int:
|
||||
"""Wieviel Prozent der erwarteten Datenquellen haben Inhalt?"""
|
||||
br = snapshot.get("banner_result") or {}
|
||||
cv = snapshot.get("cmp_vendors") or []
|
||||
de = snapshot.get("doc_entries") or []
|
||||
cd = br.get("cookies_detailed") or []
|
||||
aa = (br.get("phases") or {}).get("after_accept") or {}
|
||||
|
||||
checks = [
|
||||
br.get("banner_detected") is True,
|
||||
len(cv) > 0,
|
||||
len(de) > 0,
|
||||
len(cd) > 0,
|
||||
len(aa.get("cookies") or []) > 0,
|
||||
any((d.get("text") or "") for d in de),
|
||||
br.get("compliance_score") is not None or br.get("completeness_pct") is not None,
|
||||
]
|
||||
return round(sum(1 for x in checks if x) / len(checks) * 100)
|
||||
|
||||
|
||||
def load_snapshots_for_benchmark(
|
||||
db: Session,
|
||||
industry: str | None = None,
|
||||
sites: list[str] | None = None,
|
||||
limit: int = 50,
|
||||
) -> list[dict]:
|
||||
"""Liefert dicts mit Snapshot-Daten + extracted KPIs."""
|
||||
where = []
|
||||
params: dict[str, Any] = {}
|
||||
if industry:
|
||||
where.append("(scan_context->>'industry') = :ind")
|
||||
params["ind"] = industry
|
||||
if sites:
|
||||
where.append("site_label = ANY(:sites)")
|
||||
params["sites"] = sites
|
||||
where_sql = " AND ".join(where) if where else "TRUE"
|
||||
|
||||
sql = (
|
||||
"SELECT id::text, check_id, site_label, site_domain, created_at, "
|
||||
" banner_result, cmp_vendors, doc_entries, scan_context "
|
||||
"FROM compliance.compliance_check_snapshots "
|
||||
f"WHERE {where_sql} "
|
||||
"ORDER BY created_at DESC LIMIT :lim"
|
||||
)
|
||||
params["lim"] = limit
|
||||
|
||||
rows = db.execute(sa_text(sql), params).fetchall()
|
||||
out: list[dict] = []
|
||||
for r in rows:
|
||||
import json as _j
|
||||
def _parse(v):
|
||||
if isinstance(v, (dict, list)) or v is None:
|
||||
return v
|
||||
try:
|
||||
return _j.loads(v)
|
||||
except Exception:
|
||||
return v
|
||||
snap = {
|
||||
"id": r[0],
|
||||
"check_id": r[1],
|
||||
"site_label": r[2],
|
||||
"site_domain": r[3],
|
||||
"created_at": r[4],
|
||||
"banner_result": _parse(r[5]),
|
||||
"cmp_vendors": _parse(r[6]) or [],
|
||||
"doc_entries": _parse(r[7]) or [],
|
||||
"scan_context": _parse(r[8]) or {},
|
||||
}
|
||||
out.append(extract_kpis(snap))
|
||||
return out
|
||||
|
||||
|
||||
def anonymize_kpis(kpis: list[dict], industry: str = "") -> list[dict]:
|
||||
"""Ersetzt site_label durch 'OEM 1', 'OEM 2' etc.
|
||||
Industry-Prefix waehlbar (Automotive→OEM, Banking→Bank, Chemie→Chem).
|
||||
"""
|
||||
prefix_map = {
|
||||
"automotive": "OEM",
|
||||
"banking": "Bank",
|
||||
"chemistry": "Chem",
|
||||
"luftfahrt": "Airline",
|
||||
"saas": "SaaS",
|
||||
"ecommerce": "Shop",
|
||||
}
|
||||
pfx = prefix_map.get(industry.lower(), "Site")
|
||||
# Stable alphabetical numbering for determinism
|
||||
seen: dict[str, str] = {}
|
||||
next_idx = 1
|
||||
out = []
|
||||
for k in sorted(kpis, key=lambda x: (x.get("site_label") or "")):
|
||||
sl = k.get("site_label") or ""
|
||||
if sl not in seen:
|
||||
seen[sl] = f"{pfx} {next_idx}"
|
||||
next_idx += 1
|
||||
anon_k = dict(k)
|
||||
anon_k["site_label"] = seen[sl]
|
||||
anon_k["site_domain"] = f"site-{next_idx-1}.example"
|
||||
out.append(anon_k)
|
||||
return out
|
||||
|
||||
|
||||
def build_benchmark_summary(kpis: list[dict]) -> dict:
|
||||
"""Aggregate-Stats fuer den ganzen Branchen-Cut."""
|
||||
if not kpis:
|
||||
return {}
|
||||
def avg(field: str) -> float:
|
||||
vals = [k.get(field) for k in kpis if isinstance(k.get(field), (int, float))]
|
||||
return round(sum(vals) / max(1, len(vals)), 1) if vals else 0
|
||||
def maxv(field: str):
|
||||
vals = [k.get(field) for k in kpis if isinstance(k.get(field), (int, float))]
|
||||
return max(vals) if vals else 0
|
||||
return {
|
||||
"n_sites": len(kpis),
|
||||
"avg_vendors": avg("vendors_total"),
|
||||
"avg_us_pct": avg("us_pct"),
|
||||
"avg_non_eu_pct": avg("non_eu_pct"),
|
||||
"avg_cookies_browser": avg("cookies_in_browser"),
|
||||
"avg_score": avg("compliance_score"),
|
||||
"max_vendors": maxv("vendors_total"),
|
||||
"max_saving_high": maxv("saving_high_eur"),
|
||||
"total_saving_low": sum(k.get("saving_low_eur") or 0 for k in kpis),
|
||||
"total_saving_high": sum(k.get("saving_high_eur") or 0 for k in kpis),
|
||||
}
|
||||
@@ -172,6 +172,21 @@ async def generate_solution(
|
||||
"Liefere die Loesung als JSON."
|
||||
)
|
||||
|
||||
# P31: tiered Cascade (Qwen → OVH → Anthropic) mit Valkey-Cache.
|
||||
try:
|
||||
from compliance.services.llm_cascade import call_with_cascade
|
||||
res = await call_with_cascade(
|
||||
system=_SYSTEM_PROMPT, user=prompt,
|
||||
min_confidence=0.5, max_tokens=600,
|
||||
)
|
||||
parsed = _parse(res.get("text", ""))
|
||||
if parsed:
|
||||
_cache_put(cache_key, parsed)
|
||||
return parsed
|
||||
except Exception:
|
||||
# fall through to legacy direct calls
|
||||
pass
|
||||
|
||||
content = await _call_ollama(prompt)
|
||||
parsed = _parse(content)
|
||||
if not parsed:
|
||||
|
||||
@@ -63,19 +63,34 @@ async def extract_vendors_via_llm(
|
||||
excerpt = cookie_text[:max_text_chars]
|
||||
user_prompt = f"Cookie-Richtlinie-Text:\n\n{excerpt}"
|
||||
|
||||
# Stage 1: local Qwen
|
||||
# P31: nutze tiered LLM-Cascade mit Cache (Qwen → OVH → Anthropic).
|
||||
# Re-Runs derselben Cookie-Doc landen im Valkey-Cache (7d TTL) und
|
||||
# gehen in ~50ms statt 4-6min durch. Erstaufruf bleibt 4-6min lokal
|
||||
# bzw ~2min auf OVH.
|
||||
try:
|
||||
from compliance.services.llm_cascade import call_with_cascade
|
||||
res = await call_with_cascade(
|
||||
system=_SYSTEM_PROMPT, user=user_prompt,
|
||||
min_confidence=0.6, max_tokens=16000,
|
||||
)
|
||||
vendors = _parse_vendor_list(res.get("text", ""))
|
||||
if vendors:
|
||||
logger.info(
|
||||
"LLM vendor extraction (cascade %s, conf=%.2f, cached=%s): %d vendors",
|
||||
res.get("source"), res.get("confidence", 0),
|
||||
res.get("cached"), len(vendors),
|
||||
)
|
||||
return vendors
|
||||
except Exception as e:
|
||||
logger.warning("Cascade extract failed, fallback to direct Qwen: %s", e)
|
||||
|
||||
# Fallback: alte direkte Logik
|
||||
content = await _call_ollama(user_prompt)
|
||||
vendors = _parse_vendor_list(content)
|
||||
if vendors:
|
||||
logger.info("LLM vendor extraction (Qwen): %d vendors", len(vendors))
|
||||
return vendors
|
||||
|
||||
# Stage 2: OVH backup
|
||||
content = await _call_ovh(user_prompt)
|
||||
vendors = _parse_vendor_list(content)
|
||||
if vendors:
|
||||
logger.info("LLM vendor extraction (OVH): %d vendors", len(vendors))
|
||||
return vendors
|
||||
return _parse_vendor_list(content)
|
||||
|
||||
|
||||
async def _call_ollama(user_prompt: str) -> str:
|
||||
|
||||
Reference in New Issue
Block a user