d4b7943d54
Library Extensions: - 15 new components (C121-C135): knee lever, hydraulic ram, lubrication system, extraction system, vibrating plate, die tooling, transfer system, hoist, chute, oil drip tray, pressure relief valve, die space, flywheel, bin changeover station, inspection scale - 8 new tags: person_under_load, two_hand_control_required, thermal_accumulation, mechanical_transmission, oil_mist_risk, rapid_energy_release, gravity_suspended_load, bypass_risk - 14 new patterns (HP045-HP058): ram drop, die space crushing, oil mist inhalation, hot workpiece burns, suspended load, transfer draw-in, ejection fall, accumulator pressure release, impact noise, flywheel residual energy, guard bypass, two-hand misoperation, oil leakage, ergonomic bin changeover Deterministic Parser (NO LLM): - keyword_dictionary.go: ~100 entries mapping DE/EN keywords to component IDs, energy source IDs, and tags - narrative_parser.go: ParseNarrative() extracts components, energy sources, lifecycle phases, roles, tech specs, and context tags from free-text machine descriptions via keyword matching + regex - Tech spec regex: extracts kN, V, °C, bar, kW, rpm values and derives energy sources + severity tags automatically - iace_handler_parser.go: POST /projects/:id/parse-narrative endpoint chains parser → pattern engine → hazard suggestions Test: Paste Kniehebelpresse description → should detect 10+ components, 15+ hazards, all deterministically without LLM. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
590 lines
26 KiB
Go
590 lines
26 KiB
Go
package iace
|
|
|
|
// HazardPattern defines a rule that matches component/energy tags to
|
|
// hazards, measures, and evidence. When a pattern's required tags are all
|
|
// present (AND) and none of its excluded tags are present (NOT), it fires.
|
|
type HazardPattern struct {
|
|
ID string `json:"id"`
|
|
NameDE string `json:"name_de"`
|
|
NameEN string `json:"name_en"`
|
|
RequiredComponentTags []string `json:"required_component_tags"`
|
|
RequiredEnergyTags []string `json:"required_energy_tags"`
|
|
RequiredLifecycles []string `json:"required_lifecycle_phases"`
|
|
ExcludedComponentTags []string `json:"excluded_component_tags"`
|
|
GeneratedHazardCats []string `json:"generated_hazard_categories"`
|
|
SuggestedMeasureIDs []string `json:"suggested_measure_ids"`
|
|
SuggestedEvidenceIDs []string `json:"suggested_evidence_ids"`
|
|
Priority int `json:"priority"`
|
|
}
|
|
|
|
// GetBuiltinHazardPatterns returns ~44 built-in hazard patterns organized
|
|
// by domain (mechanical, electrical, thermal, hydraulic/pneumatic,
|
|
// noise/vibration, ergonomic, software/control, cyber/network, AI-specific).
|
|
func GetBuiltinHazardPatterns() []HazardPattern {
|
|
return []HazardPattern{
|
|
// ====================================================================
|
|
// Mechanical Patterns (HP001-HP010)
|
|
// ====================================================================
|
|
{
|
|
ID: "HP001", NameDE: "Quetschgefahr durch bewegte Teile", NameEN: "Crush risk from moving parts",
|
|
RequiredComponentTags: []string{"moving_part"},
|
|
RequiredEnergyTags: []string{"kinetic"},
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M001", "M005", "M051", "M054"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E08", "E20"},
|
|
Priority: 95,
|
|
},
|
|
{
|
|
ID: "HP002", NameDE: "Einzugsgefahr durch rotierende Teile", NameEN: "Entanglement risk from rotating parts",
|
|
RequiredComponentTags: []string{"rotating_part"},
|
|
RequiredEnergyTags: []string{"rotational"},
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M002", "M051", "M053", "M121"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E08"},
|
|
Priority: 95,
|
|
},
|
|
{
|
|
ID: "HP003", NameDE: "Schnittgefahr durch Schneidwerkzeuge", NameEN: "Cut risk from cutting tools",
|
|
RequiredComponentTags: []string{"cutting_part"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M003", "M051", "M054", "M131"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E08"},
|
|
Priority: 90,
|
|
},
|
|
{
|
|
ID: "HP004", NameDE: "Klemmgefahr an Quetsch-/Klemmstellen", NameEN: "Pinch risk at clamping points",
|
|
RequiredComponentTags: []string{"pinch_point"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M001", "M004", "M051", "M121"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E08"},
|
|
Priority: 85,
|
|
},
|
|
{
|
|
ID: "HP005", NameDE: "Quetschgefahr an Quetschstellen", NameEN: "Crush risk at crush points",
|
|
RequiredComponentTags: []string{"crush_point"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M001", "M005", "M054"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E08"},
|
|
Priority: 90,
|
|
},
|
|
{
|
|
ID: "HP006", NameDE: "Gefahr durch hohe Kraefte", NameEN: "Risk from high forces",
|
|
RequiredComponentTags: []string{"high_force"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M001", "M005", "M051", "M106"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E07", "E08"},
|
|
Priority: 90,
|
|
},
|
|
{
|
|
ID: "HP007", NameDE: "Gefahr durch hohe Geschwindigkeit", NameEN: "Risk from high speed",
|
|
RequiredComponentTags: []string{"high_speed"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M002", "M051", "M053", "M054"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E08"},
|
|
Priority: 85,
|
|
},
|
|
{
|
|
ID: "HP008", NameDE: "Absturzgefahr / Herabfallende Teile", NameEN: "Fall/drop risk",
|
|
RequiredComponentTags: []string{"gravity_risk"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M009", "M121", "M131"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E20"},
|
|
Priority: 85,
|
|
},
|
|
{
|
|
ID: "HP009", NameDE: "Gefahr durch Spannvorrichtungen", NameEN: "Clamping device risk",
|
|
RequiredComponentTags: []string{"clamping_part"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M004", "M051", "M121"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E08"},
|
|
Priority: 80,
|
|
},
|
|
{
|
|
ID: "HP010", NameDE: "Gefahr durch gespeicherte mechanische Energie", NameEN: "Stored mechanical energy risk",
|
|
RequiredComponentTags: []string{"stored_energy"},
|
|
RequiredEnergyTags: []string{"mechanical"},
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M010", "M121", "M123"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E20"},
|
|
Priority: 80,
|
|
},
|
|
|
|
// ====================================================================
|
|
// Electrical Patterns (HP011-HP015)
|
|
// ====================================================================
|
|
{
|
|
ID: "HP011", NameDE: "Stromschlaggefahr durch Hochspannung", NameEN: "Electric shock risk from high voltage",
|
|
RequiredComponentTags: []string{"high_voltage"},
|
|
RequiredEnergyTags: []string{"electrical_energy"},
|
|
GeneratedHazardCats: []string{"electrical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M061", "M062", "M063", "M121"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E04", "E10"},
|
|
Priority: 95,
|
|
},
|
|
{
|
|
ID: "HP012", NameDE: "Gefahr durch elektrische Komponenten", NameEN: "Risk from electrical components",
|
|
RequiredComponentTags: []string{"electrical_part"},
|
|
RequiredEnergyTags: []string{"electrical_energy"},
|
|
GeneratedHazardCats: []string{"electrical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M061", "M064", "M121"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E04", "E10"},
|
|
Priority: 85,
|
|
},
|
|
{
|
|
ID: "HP013", NameDE: "Gefahr durch gespeicherte elektrische Energie", NameEN: "Stored electrical energy risk",
|
|
RequiredComponentTags: []string{"stored_energy"},
|
|
RequiredEnergyTags: []string{"electrical_energy"},
|
|
GeneratedHazardCats: []string{"electrical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M062", "M063", "M121", "M123"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E10"},
|
|
Priority: 85,
|
|
},
|
|
{
|
|
ID: "HP014", NameDE: "Kurzschluss-/Lichtbogengefahr", NameEN: "Short circuit / arc flash risk",
|
|
RequiredComponentTags: []string{"high_voltage", "electrical_part"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"electrical_hazard", "thermal_hazard"},
|
|
SuggestedMeasureIDs: []string{"M061", "M065", "M131"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E04", "E10"},
|
|
Priority: 90,
|
|
},
|
|
{
|
|
ID: "HP015", NameDE: "EMV-Stoerungsgefahr", NameEN: "EMC interference risk",
|
|
RequiredComponentTags: []string{"electrical_part"},
|
|
RequiredEnergyTags: []string{"electromagnetic"},
|
|
GeneratedHazardCats: []string{"emc_hazard"},
|
|
SuggestedMeasureIDs: []string{"M066", "M121"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E10"},
|
|
Priority: 70,
|
|
},
|
|
|
|
// ====================================================================
|
|
// Thermal Patterns (HP016-HP018)
|
|
// ====================================================================
|
|
{
|
|
ID: "HP016", NameDE: "Verbrennungsgefahr durch heisse Oberflaechen", NameEN: "Burn risk from hot surfaces",
|
|
RequiredComponentTags: []string{"high_temperature"},
|
|
RequiredEnergyTags: []string{"thermal"},
|
|
GeneratedHazardCats: []string{"thermal_hazard"},
|
|
SuggestedMeasureIDs: []string{"M071", "M121", "M131"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E20"},
|
|
Priority: 85,
|
|
},
|
|
{
|
|
ID: "HP017", NameDE: "Strahlungsgefahr (Laser/optisch)", NameEN: "Radiation risk (laser/optical)",
|
|
RequiredComponentTags: []string{"radiation_risk"},
|
|
RequiredEnergyTags: []string{"radiation"},
|
|
GeneratedHazardCats: []string{"thermal_hazard"},
|
|
SuggestedMeasureIDs: []string{"M072", "M051", "M131"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E20"},
|
|
Priority: 85,
|
|
},
|
|
{
|
|
ID: "HP018", NameDE: "Verbrennungsgefahr durch Aktuatoren", NameEN: "Burn risk from actuators",
|
|
RequiredComponentTags: []string{"actuator_part", "high_temperature"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"thermal_hazard"},
|
|
SuggestedMeasureIDs: []string{"M071", "M121"},
|
|
SuggestedEvidenceIDs: []string{"E01"},
|
|
Priority: 75,
|
|
},
|
|
|
|
// ====================================================================
|
|
// Hydraulic / Pneumatic Patterns (HP019-HP022)
|
|
// ====================================================================
|
|
{
|
|
ID: "HP019", NameDE: "Hydraulikdruck-Gefahr", NameEN: "Hydraulic pressure hazard",
|
|
RequiredComponentTags: []string{"hydraulic_part"},
|
|
RequiredEnergyTags: []string{"hydraulic_pressure"},
|
|
GeneratedHazardCats: []string{"pneumatic_hydraulic"},
|
|
SuggestedMeasureIDs: []string{"M081", "M082", "M121", "M123"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E05", "E11"},
|
|
Priority: 90,
|
|
},
|
|
{
|
|
ID: "HP020", NameDE: "Pneumatikdruck-Gefahr", NameEN: "Pneumatic pressure hazard",
|
|
RequiredComponentTags: []string{"pneumatic_part"},
|
|
RequiredEnergyTags: []string{"pneumatic_pressure"},
|
|
GeneratedHazardCats: []string{"pneumatic_hydraulic"},
|
|
SuggestedMeasureIDs: []string{"M083", "M084", "M121"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E06", "E11"},
|
|
Priority: 85,
|
|
},
|
|
{
|
|
ID: "HP021", NameDE: "Gefahr durch gespeicherten Hydraulikdruck", NameEN: "Stored hydraulic pressure risk",
|
|
RequiredComponentTags: []string{"hydraulic_part", "stored_energy"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"pneumatic_hydraulic"},
|
|
SuggestedMeasureIDs: []string{"M081", "M082", "M123"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E05", "E11"},
|
|
Priority: 90,
|
|
},
|
|
{
|
|
ID: "HP022", NameDE: "Gefahr durch Druckluftspeicher", NameEN: "Stored pneumatic pressure risk",
|
|
RequiredComponentTags: []string{"pneumatic_part", "stored_energy"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"pneumatic_hydraulic"},
|
|
SuggestedMeasureIDs: []string{"M083", "M084", "M123"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E06", "E11"},
|
|
Priority: 85,
|
|
},
|
|
|
|
// ====================================================================
|
|
// Noise / Vibration Patterns (HP023-HP025)
|
|
// ====================================================================
|
|
{
|
|
ID: "HP023", NameDE: "Laermgefahr", NameEN: "Noise hazard",
|
|
RequiredComponentTags: []string{"noise_source"},
|
|
RequiredEnergyTags: []string{"acoustic"},
|
|
GeneratedHazardCats: []string{"noise_vibration"},
|
|
SuggestedMeasureIDs: []string{"M091", "M131"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E12"},
|
|
Priority: 70,
|
|
},
|
|
{
|
|
ID: "HP024", NameDE: "Vibrationsgefahr", NameEN: "Vibration hazard",
|
|
RequiredComponentTags: []string{"vibration_source"},
|
|
RequiredEnergyTags: []string{"vibration"},
|
|
GeneratedHazardCats: []string{"noise_vibration"},
|
|
SuggestedMeasureIDs: []string{"M092", "M131"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E13"},
|
|
Priority: 65,
|
|
},
|
|
{
|
|
ID: "HP025", NameDE: "Laerm durch rotierende Hochgeschwindigkeitsteile", NameEN: "Noise from high-speed rotating parts",
|
|
RequiredComponentTags: []string{"rotating_part", "high_speed"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"noise_vibration"},
|
|
SuggestedMeasureIDs: []string{"M091", "M092", "M131"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E12", "E13"},
|
|
Priority: 70,
|
|
},
|
|
|
|
// ====================================================================
|
|
// Ergonomic Patterns (HP026-HP028)
|
|
// ====================================================================
|
|
{
|
|
ID: "HP026", NameDE: "Ergonomische Belastung an Bedienstationen", NameEN: "Ergonomic risk at operator stations",
|
|
RequiredComponentTags: []string{"user_interface"},
|
|
RequiredEnergyTags: []string{"ergonomic"},
|
|
GeneratedHazardCats: []string{"ergonomic"},
|
|
SuggestedMeasureIDs: []string{"M126", "M121"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E24"},
|
|
Priority: 50,
|
|
},
|
|
{
|
|
ID: "HP027", NameDE: "Ergonomische Belastung bei Wartung in der Hoehe", NameEN: "Ergonomic risk for work at height",
|
|
RequiredComponentTags: []string{"structural_part", "gravity_risk"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"ergonomic", "mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M121", "M131"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E20"},
|
|
Priority: 60,
|
|
},
|
|
{
|
|
ID: "HP028", NameDE: "Fehlbedienungsgefahr", NameEN: "Mode confusion / misoperation risk",
|
|
RequiredComponentTags: []string{"user_interface", "programmable"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"hmi_error", "mode_confusion"},
|
|
SuggestedMeasureIDs: []string{"M126", "M127", "M121"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E14", "E24"},
|
|
Priority: 70,
|
|
},
|
|
|
|
// ====================================================================
|
|
// Software / Control Patterns (HP029-HP034)
|
|
// ====================================================================
|
|
{
|
|
ID: "HP029", NameDE: "Software-Fehler in Steuerung", NameEN: "Software fault in controller",
|
|
RequiredComponentTags: []string{"has_software", "programmable"},
|
|
RequiredEnergyTags: []string{},
|
|
ExcludedComponentTags: []string{"has_ai"},
|
|
GeneratedHazardCats: []string{"software_fault"},
|
|
SuggestedMeasureIDs: []string{"M101", "M102", "M103"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E14"},
|
|
Priority: 85,
|
|
},
|
|
{
|
|
ID: "HP030", NameDE: "Sicherheitsfunktionsversagen", NameEN: "Safety function failure",
|
|
RequiredComponentTags: []string{"safety_device"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"safety_function_failure"},
|
|
SuggestedMeasureIDs: []string{"M104", "M105", "M051"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E07", "E08", "E09"},
|
|
Priority: 95,
|
|
},
|
|
{
|
|
ID: "HP031", NameDE: "Konfigurationsfehler", NameEN: "Configuration error",
|
|
RequiredComponentTags: []string{"programmable"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"configuration_error"},
|
|
SuggestedMeasureIDs: []string{"M145", "M146", "M121"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E14"},
|
|
Priority: 70,
|
|
},
|
|
{
|
|
ID: "HP032", NameDE: "Fehlende Protokollierung / Audit", NameEN: "Missing logging / audit",
|
|
RequiredComponentTags: []string{"has_software"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"logging_audit_failure"},
|
|
SuggestedMeasureIDs: []string{"M142", "M149"},
|
|
SuggestedEvidenceIDs: []string{"E01"},
|
|
Priority: 50,
|
|
},
|
|
{
|
|
ID: "HP033", NameDE: "Update-Fehler / Rollback-Problem", NameEN: "Update failure / rollback problem",
|
|
RequiredComponentTags: []string{"has_software", "programmable"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"update_failure"},
|
|
SuggestedMeasureIDs: []string{"M138", "M141", "M146"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E14"},
|
|
Priority: 65,
|
|
},
|
|
{
|
|
ID: "HP034", NameDE: "Verriegelungs-Umgehungsgefahr", NameEN: "Interlock bypass risk",
|
|
RequiredComponentTags: []string{"interlocked"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"safety_function_failure"},
|
|
SuggestedMeasureIDs: []string{"M051", "M104", "M107"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E08"},
|
|
Priority: 85,
|
|
},
|
|
|
|
// ====================================================================
|
|
// Cyber / Network Patterns (HP035-HP039)
|
|
// ====================================================================
|
|
{
|
|
ID: "HP035", NameDE: "Unbefugter Netzwerkzugriff", NameEN: "Unauthorized network access",
|
|
RequiredComponentTags: []string{"networked"},
|
|
RequiredEnergyTags: []string{"cyber"},
|
|
GeneratedHazardCats: []string{"unauthorized_access"},
|
|
SuggestedMeasureIDs: []string{"M111", "M112", "M113", "M140"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E16", "E17"},
|
|
Priority: 90,
|
|
},
|
|
{
|
|
ID: "HP036", NameDE: "Kommunikationsausfall", NameEN: "Communication failure",
|
|
RequiredComponentTags: []string{"networked", "it_component"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"communication_failure"},
|
|
SuggestedMeasureIDs: []string{"M114", "M115"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E17"},
|
|
Priority: 80,
|
|
},
|
|
{
|
|
ID: "HP037", NameDE: "Firmware-Manipulation", NameEN: "Firmware manipulation",
|
|
RequiredComponentTags: []string{"has_software", "networked"},
|
|
RequiredEnergyTags: []string{"cyber"},
|
|
GeneratedHazardCats: []string{"firmware_corruption"},
|
|
SuggestedMeasureIDs: []string{"M116", "M138", "M146"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E16", "E18"},
|
|
Priority: 85,
|
|
},
|
|
{
|
|
ID: "HP038", NameDE: "Drahtlos-Angriff (WiFi/Bluetooth)", NameEN: "Wireless attack (WiFi/Bluetooth)",
|
|
RequiredComponentTags: []string{"wireless"},
|
|
RequiredEnergyTags: []string{"cyber"},
|
|
GeneratedHazardCats: []string{"unauthorized_access"},
|
|
SuggestedMeasureIDs: []string{"M111", "M113", "M140"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E16"},
|
|
Priority: 80,
|
|
},
|
|
{
|
|
ID: "HP039", NameDE: "Supply-Chain-Angriff auf IT-Komponenten", NameEN: "Supply chain attack on IT components",
|
|
RequiredComponentTags: []string{"it_component", "has_software"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"unauthorized_access", "firmware_corruption"},
|
|
SuggestedMeasureIDs: []string{"M116", "M118"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E18", "E19"},
|
|
Priority: 75,
|
|
},
|
|
|
|
// ====================================================================
|
|
// AI-Specific Patterns (HP040-HP044)
|
|
// ====================================================================
|
|
{
|
|
ID: "HP040", NameDE: "KI-Fehlklassifikation", NameEN: "AI misclassification",
|
|
RequiredComponentTags: []string{"has_ai"},
|
|
RequiredEnergyTags: []string{"ai_model"},
|
|
GeneratedHazardCats: []string{"false_classification"},
|
|
SuggestedMeasureIDs: []string{"M101", "M102"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E15"},
|
|
Priority: 90,
|
|
},
|
|
{
|
|
ID: "HP041", NameDE: "Model Drift / Concept Drift", NameEN: "Model drift / concept drift",
|
|
RequiredComponentTags: []string{"has_ai"},
|
|
RequiredEnergyTags: []string{"ai_model"},
|
|
GeneratedHazardCats: []string{"model_drift"},
|
|
SuggestedMeasureIDs: []string{"M103"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E15"},
|
|
Priority: 85,
|
|
},
|
|
{
|
|
ID: "HP042", NameDE: "Data Poisoning / Adversarial Attack", NameEN: "Data poisoning / adversarial attack",
|
|
RequiredComponentTags: []string{"has_ai"},
|
|
RequiredEnergyTags: []string{"cyber", "ai_model"},
|
|
GeneratedHazardCats: []string{"data_poisoning"},
|
|
SuggestedMeasureIDs: []string{"M101", "M116"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E15", "E16"},
|
|
Priority: 85,
|
|
},
|
|
{
|
|
ID: "HP043", NameDE: "Unbeabsichtigte KI-Diskriminierung", NameEN: "Unintended AI bias",
|
|
RequiredComponentTags: []string{"has_ai"},
|
|
RequiredEnergyTags: []string{"ai_model"},
|
|
GeneratedHazardCats: []string{"unintended_bias"},
|
|
SuggestedMeasureIDs: []string{"M101"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E15"},
|
|
Priority: 75,
|
|
},
|
|
{
|
|
ID: "HP044", NameDE: "KI-Sensormanipulation", NameEN: "AI sensor spoofing",
|
|
RequiredComponentTags: []string{"has_ai", "sensor_part"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"sensor_spoofing"},
|
|
SuggestedMeasureIDs: []string{"M101", "M102"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E15"},
|
|
Priority: 80,
|
|
},
|
|
|
|
// ================================================================
|
|
// Press/Forming Machine Patterns (HP045-HP058)
|
|
// ================================================================
|
|
{
|
|
ID: "HP045", NameDE: "Stoesselabsturz durch Druckverlust", NameEN: "Ram drop due to pressure loss",
|
|
RequiredComponentTags: []string{"hydraulic_part", "gravity_risk", "high_force"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"mechanical_hazard", "pneumatic_hydraulic"},
|
|
SuggestedMeasureIDs: []string{"M001", "M051", "M054", "M131"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E08", "E20"},
|
|
Priority: 98,
|
|
},
|
|
{
|
|
ID: "HP046", NameDE: "Quetschen im Werkzeugeinbauraum", NameEN: "Crushing in die space",
|
|
RequiredComponentTags: []string{"crush_point", "high_force"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M001", "M005", "M051", "M106"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E08"},
|
|
Priority: 97,
|
|
},
|
|
{
|
|
ID: "HP047", NameDE: "Oelnebelexposition Atemwege", NameEN: "Oil mist inhalation exposure",
|
|
RequiredComponentTags: []string{"hydraulic_part", "oil_mist_risk"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"material_environmental"},
|
|
SuggestedMeasureIDs: []string{"M124", "M141"},
|
|
SuggestedEvidenceIDs: []string{"E20"},
|
|
Priority: 80,
|
|
},
|
|
{
|
|
ID: "HP048", NameDE: "Verbrennung durch heisse Werkstuecke", NameEN: "Burns from hot workpieces",
|
|
RequiredComponentTags: []string{"moving_part"},
|
|
RequiredEnergyTags: []string{"thermal"},
|
|
GeneratedHazardCats: []string{"thermal_hazard"},
|
|
SuggestedMeasureIDs: []string{"M054", "M141"},
|
|
SuggestedEvidenceIDs: []string{"E08"},
|
|
Priority: 85,
|
|
},
|
|
{
|
|
ID: "HP049", NameDE: "Schwebende Last (Hubwerk/Aufzug)", NameEN: "Suspended load (hoist/elevator)",
|
|
RequiredComponentTags: []string{"gravity_risk", "person_under_load"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M001", "M005", "M051"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E08"},
|
|
Priority: 95,
|
|
},
|
|
{
|
|
ID: "HP050", NameDE: "Einziehen/Scheren Transfersystem", NameEN: "Draw-in/shearing at transfer system",
|
|
RequiredComponentTags: []string{"moving_part", "shear_risk"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M001", "M005", "M051"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E08"},
|
|
Priority: 90,
|
|
},
|
|
{
|
|
ID: "HP051", NameDE: "Sturzgefahr Auswurfbereich", NameEN: "Fall hazard at ejection area",
|
|
RequiredComponentTags: []string{"gravity_risk"},
|
|
RequiredEnergyTags: []string{},
|
|
ExcludedComponentTags: []string{"safety_device"},
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M051", "M141"},
|
|
SuggestedEvidenceIDs: []string{"E20"},
|
|
Priority: 75,
|
|
},
|
|
{
|
|
ID: "HP052", NameDE: "Druckfreisetzung Hydraulikspeicher", NameEN: "Pressure release from hydraulic accumulator",
|
|
RequiredComponentTags: []string{"hydraulic_part", "high_pressure"},
|
|
RequiredEnergyTags: []string{"stored_energy"},
|
|
GeneratedHazardCats: []string{"pneumatic_hydraulic"},
|
|
SuggestedMeasureIDs: []string{"M051", "M131"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E08"},
|
|
Priority: 92,
|
|
},
|
|
{
|
|
ID: "HP053", NameDE: "Impulslaerm Pressvorgang", NameEN: "Impact noise during press operation",
|
|
RequiredComponentTags: []string{"noise_source", "high_force"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"noise_vibration"},
|
|
SuggestedMeasureIDs: []string{"M141"},
|
|
SuggestedEvidenceIDs: []string{"E20"},
|
|
Priority: 70,
|
|
},
|
|
{
|
|
ID: "HP054", NameDE: "Schwungrad-Restenergie nach Abschaltung", NameEN: "Flywheel residual energy after shutdown",
|
|
RequiredComponentTags: []string{"rotating_part", "stored_energy"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"mechanical_hazard"},
|
|
SuggestedMeasureIDs: []string{"M001", "M054"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E08"},
|
|
Priority: 88,
|
|
},
|
|
{
|
|
ID: "HP055", NameDE: "Umgehung Schutzeinrichtung (Pressentuer)", NameEN: "Bypass of safety guard (press door)",
|
|
RequiredComponentTags: []string{"interlocked", "crush_point"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"safety_function_failure"},
|
|
SuggestedMeasureIDs: []string{"M005", "M106"},
|
|
SuggestedEvidenceIDs: []string{"E01", "E08"},
|
|
Priority: 96,
|
|
},
|
|
{
|
|
ID: "HP056", NameDE: "Fehlbedienung Zweihandschaltung", NameEN: "Two-hand control misoperation",
|
|
RequiredComponentTags: []string{"two_hand_control_required"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"safety_function_failure"},
|
|
SuggestedMeasureIDs: []string{"M106"},
|
|
SuggestedEvidenceIDs: []string{"E01"},
|
|
Priority: 90,
|
|
},
|
|
{
|
|
ID: "HP057", NameDE: "Hydraulikoelleckage + Rutschgefahr", NameEN: "Hydraulic oil leakage + slip hazard",
|
|
RequiredComponentTags: []string{"hydraulic_part", "chemical_risk"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"material_environmental"},
|
|
SuggestedMeasureIDs: []string{"M141"},
|
|
SuggestedEvidenceIDs: []string{"E20"},
|
|
Priority: 65,
|
|
},
|
|
{
|
|
ID: "HP058", NameDE: "Ergonomische Belastung Kistenwechsel", NameEN: "Ergonomic strain during bin changeover",
|
|
RequiredComponentTags: []string{"ergonomic", "moving_part"},
|
|
RequiredEnergyTags: []string{},
|
|
GeneratedHazardCats: []string{"ergonomic"},
|
|
SuggestedMeasureIDs: []string{"M141"},
|
|
SuggestedEvidenceIDs: []string{"E20"},
|
|
Priority: 55,
|
|
},
|
|
}
|
|
}
|