@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 proeth-prov: <http://proethica.org/provenance#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@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#> .

proeth:RegulatoryAuthorityPresentationObligation a owl:Class ;
    rdfs:label "Regulatory Authority Presentation Obligation" ;
    proeth:confidence "0.85" ;
    proeth:derivedFromPrinciple "Public Welfare Paramountcy Principle" ;
    proeth:enforcementLevel "mandatory" ;
    proeth:monitoringCriteria "Documented formal submission or presentation of findings and recommendations to the state regulatory agency" ;
    proeth:nspeReference "I.1, II.1.a, II.1.c" ;
    proeth:obligationType "reporting" ;
    proeth:stakeholdersAffected "Client governing body",
        "General public",
        "State regulatory agency",
        "Water consumers" ;
    proeth:textReferences "Both Engineer A and Engineer B met with the MWC at a meeting sparsely attended by the public and recommended that the change in water source be substantially delayed until improvements could be completed.",
        "Despite those recommendations, the MWC voted to proceed simultaneously with the accelerated evaluation and design of needed water treatment improvements and the change in water source." ;
    proeth:violationConsequences "Continued public health risk; professional discipline; potential legal liability" ;
    proeth-prov:discoveredInCase 76 ;
    proeth-prov:discoveredInPass 2 ;
    proeth-prov:discoveredInSection "facts" ;
    proeth-prov:firstDiscoveredAt "2026-06-05T11:23:42.907966+00:00"^^xsd:dateTime ;
    proeth-prov:firstDiscoveredInCase 76 ;
    proeth-prov:matchConfidence 0.82 ;
    proeth-prov:matchReasoning "This obligation is a contextual variant of the existing Client Override Public Safety Reporting Obligation, with the distinguishing feature that the escalation target is specifically a state regulatory agency and the mechanism is a formal presentation of facts and findings. The core duty is the same: report to appropriate authority when client overrides safety recommendations." ;
    proeth-prov:matchedOntologyClass proeth:ClientOverridePublicSafetyReportingObligation ;
    proeth-prov:matchedOntologyLabel "Client Override Public Safety Reporting Obligation" ;
    proeth-prov:matchesExisting true ;
    proeth-prov:sourceText "Both Engineer A and Engineer B met with the MWC at a meeting sparsely attended by the public and recommended that the change in water source be substantially delayed until improvements could be completed." ;
    rdfs:comment "Duty of an engineer who has identified a public health or safety risk and whose client has overridden protective recommendations to formally present the facts, findings, and recommendations to the appropriate state or federal regulatory authority, so that the authority can exercise its oversight function and protect the public." ;
    rdfs:subClassOf proeth:ReportingObligation ;
    skos:definition "Duty of an engineer who has identified a public health or safety risk and whose client has overridden protective recommendations to formally present the facts, findings, and recommendations to the appropriate state or federal regulatory authority, so that the authority can exercise its oversight function and protect the public." ;
    skos:scopeNote "[ClientOverridePublicSafetyReportingObligation] Duty of an engineer to report identified risks to public health or safety to the appropriate regulatory or pollution control authority when the client refuses to implement recommended protective measures and insists on proceeding without adequate safeguards, placing the paramount duty to public welfare above the faithful agent duty to the client." ;
    prov:generatedAtTime "2026-06-05T11:23:42.907966+00:00"^^xsd:dateTime ;
    prov:wasAttributedTo "Case 76 Extraction",
        "claude-sonnet-4-6" .

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 .

pcsh:ObligationDefinitionShape a sh:NodeShape ;
    rdfs:label "Obligation definition schema (type-level, descriptive, field contract)"@en ;
    rdfs:comment "What individuates an obligation TYPE: its controlled NSPE category, which drives the subClassOf core:Obligation typing. The concrete duty statement and the temporal-scope/compliance-status literals are per-individual, as are the derivedFromPrinciple and obligatedParty edges; all are declared on ObligationPropertyShape, mirroring the Role/Principle Definition/Property split. Descriptive only (no validation result); obligation_type is a routing input, not stored as a literal."@en ;
    sh:property [ sh:description "The controlled NSPE obligation category, which drives the subClassOf core:Obligation typing: disclosure, safety, competence, confidentiality, reporting, collegial, attribution, legal, ethical." ;
            sh:name "obligation type" ;
            sh:order 1 ;
            sh:path proeth:obligationType ] ;
    sh:targetClass core:Obligation .

pcsh:ObligationPropertyShape a sh:NodeShape ;
    rdfs:label "Obligation per-case schema (individual data, non-definitional)"@en ;
    rdfs:comment "What a given obligation INDIVIDUAL is described by in a specific case: the concrete duty it states, the principle it derives from and the party who bears it (both edges), and its temporal scope and compliance status. These do NOT individuate the obligation TYPE (that is ObligationDefinitionShape); their values are per-case, asserted on the individual. Descriptive only."@en ;
    sh:property [ sh:description "The concrete duty the obligation states (the operative 'shall' clause)." ;
            sh:name "obligation statement" ;
            sh:order 1 ;
            sh:path proeth:obligationStatement ],
        [ sh:description "The principle the obligation derives from, via the O->P derivedFromPrinciple edge (the P side of R->P->O). Range: Principle." ;
            sh:name "derived from principle" ;
            sh:order 2 ;
            sh:path core:derivedFromPrinciple ],
        [ sh:description "The agent who bears the obligation, via the obligatedParty edge. Range: Agent." ;
            sh:name "obligated party" ;
            sh:order 3 ;
            sh:path core:obligatedParty ],
        [ sh:description "When the obligation is in force (the period or condition of applicability)." ;
            sh:name "temporal scope" ;
            sh:order 4 ;
            sh:path proeth:temporalScope ],
        [ sh:description "Whether the obligation was met in the case: met, unmet, partial, or unclear." ;
            sh:name "compliance status" ;
            sh:order 5 ;
            sh:path proeth:complianceStatus ] ;
    sh:targetClass core:Obligation .

