@prefix core: <http://proethica.org/ontology/core#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix pcsh: <http://proethica.org/shapes/core#> .
@prefix proeth: <http://proethica.org/ontology/intermediate#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://proethica.org/ontology/engineering_standards#PerformHazardAnalysis> a owl:Class ;
    rdfs:label "Perform Hazard Analysis" ;
    proeth:appliesToDomain "all_engineering" ;
    proeth:hasUrgency "design_phase" ;
    proeth:supportsPrinciple proeth:PublicSafety ;
    rdfs:comment "Required safety analysis process for risk identification" ;
    rdfs:subClassOf core:Action ;
    skos:definition "Required safety analysis process for risk identification",
        "The systematic identification and analysis of potential hazards according to applicable safety standards" .

pcsh:ActionPropertyShape a sh:NodeShape ;
    rdfs:label "Action per-case schema (individual data, non-definitional)"@en ;
    rdfs:comment "What a given action INDIVIDUAL carries in a specific case: the acting agent (kept verbatim and resolved to the isPerformedBy edge), the intention block, the professional-context judgments, the obligation-engagement and principle literals (kept verbatim and resolved to the engagement edges), the fluent-transition literals (kept verbatim and resolved to the initiates/terminates edges), and the temporal anchors. Descriptive only."@en ;
    sh:property [ sh:description "The acting agent name, kept verbatim and resolved to the proeth-core:isPerformedBy Agent edge (participant family; precedent-case parties correctly resolve to none)." ;
            sh:name "has agent" ;
            sh:order 1 ;
            sh:path proeth:hasAgent ],
        [ sh:description "The mental state of the agent at decision time (the intention block)." ;
            sh:name "mental state" ;
            sh:order 2 ;
            sh:path proeth:hasMentalState ],
        [ sh:description "What the agent intended the action to achieve." ;
            sh:name "intended outcome" ;
            sh:order 3 ;
            sh:path proeth:intendedOutcome ],
        [ sh:description "Effects the agent foresaw but did not intend (the double-effect input)." ;
            sh:name "foreseen unintended effects" ;
            sh:order 4 ;
            sh:path proeth:foreseenUnintendedEffects ],
        [ sh:description "Whether the action lay within the competence of the agent (boolean judgment)." ;
            sh:name "within competence" ;
            sh:order 5 ;
            sh:path proeth:withinCompetence ],
        [ sh:description "The capabilities the action calls on, kept as a literal only (no Action-domain edge; the O-to-Ca direction is carried by the requires_capability_edges family)." ;
            sh:name "requires capability" ;
            sh:order 6 ;
            sh:path proeth:requiresCapabilityText ],
        [ sh:description "The obligation the action fulfills, kept verbatim and resolved to the fulfillsObligation edge (obligation-engagement family)." ;
            sh:name "fulfills obligation" ;
            sh:order 7 ;
            sh:path proeth:fulfillsObligationText ],
        [ sh:description "The principle guiding the action, kept verbatim and resolved to the guidedByPrinciple edge." ;
            sh:name "guided by principle" ;
            sh:order 8 ;
            sh:path proeth:guidedByPrincipleText ],
        [ sh:description "The State the action brings about, kept verbatim and resolved to the initiates edge (fluent family)." ;
            sh:name "initiates" ;
            sh:order 9 ;
            sh:path proeth:initiatesText ],
        [ sh:description "The temporal positioning of the action in the case; temporalExtent records instant versus interval, and the OWL-Time anchor (time:hasTime) plus the sequence ordinal attach at commit." ;
            sh:name "temporal marker" ;
            sh:order 10 ;
            sh:path proeth:temporalMarker ] ;
    sh:targetClass core:Action .

pcsh:CaseAnnotationShape a sh:NodeShape ;
    rdfs:label "Shared per-case annotation schema (all nine components)"@en ;
    rdfs:comment "The cross-component annotation fields on committed case individuals: proeth:confidence (extraction confidence, decimal; all components except Action, whose Step-3 contract carries no confidence field), proeth:textReferences (verbatim supporting quotes, universal), proeth-prov sourceText (the source snippet, on the Step-1/2 provenance layers; Step-3 A/E individuals ground via textReferences only), and the involvement gloss (proeth:caseInvolvement on role individuals, proeth:caseContext on obligation, capability, and constraint individuals). Values are per-individual; the fields do not individuate any type."@en ;
    sh:property [ sh:description "Extraction confidence for this individual (0 to 1)." ;
            sh:name "confidence" ;
            sh:order 1 ;
            sh:path proeth:confidence ],
        [ sh:description "Verbatim case quotes supporting this individual." ;
            sh:name "text references" ;
            sh:order 2 ;
            sh:path proeth:textReferences ],
        [ sh:description "How this individual figures in the case narrative (role individuals; the same text is routed into rdfs:comment)." ;
            sh:name "case involvement" ;
            sh:order 3 ;
            sh:path proeth:caseInvolvement ],
        [ sh:description "Grounding context in this case (obligation, capability, and constraint individuals)." ;
            sh:name "case context" ;
            sh:order 4 ;
            sh:path proeth:caseContext ] ;
    sh:targetClass core:Action,
        core:Capability,
        core:Constraint,
        core:Event,
        core:Obligation,
        core:Principle,
        core:Resource,
        core:Role,
        core:State .

