@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:SuspensionPeriodRiskDisclosureObligation a owl:Class ;
    rdfs:label "Suspension Period Risk Disclosure Obligation" ;
    proeth:confidence "0.82" ;
    proeth:derivedFromPrinciple "Proactive Risk Disclosure Principle" ;
    proeth:enforcementLevel "mandatory" ;
    proeth:monitoringCriteria "Documented evidence that the engineer communicated the identified risk to the client at or before the time of the suspension agreement." ;
    proeth:nspeReference "II.1.a, II.3.b" ;
    proeth:obligationType "disclosure" ;
    proeth:stakeholdersAffected "Client",
        "General public",
        "Regulatory bodies" ;
    proeth:textReferences "During the preliminary design phase, Engineer L becomes concerned that the risk of impact to the community drinking water source will potentially increase, as the likelihood of heavy stormwater flows will increase over time.",
        "In their communications about the suspension, Engineer L does not mention to Client X the potential increased risk of impact to the community drinking water source." ;
    proeth:violationConsequences "Failure to disclose may allow a known risk to persist unaddressed during the suspension period, potentially resulting in harm to public welfare and professional discipline for the engineer." ;
    proeth-prov:discoveredInCase 8 ;
    proeth-prov:discoveredInPass 2 ;
    proeth-prov:discoveredInSection "facts" ;
    proeth-prov:firstDiscoveredAt "2026-06-05T02:20:48.587109+00:00"^^xsd:dateTime ;
    proeth-prov:firstDiscoveredInCase 8 ;
    proeth-prov:matchConfidence 0.78 ;
    proeth-prov:matchReasoning "The existing Preliminary Risk Disclosure Obligation covers the duty to disclose potential risks to public health or safety during a preliminary phase of work before the risk is fully quantified. This case instantiates that obligation in the specific context of a work suspension, where the engineer failed to disclose a preliminary concern during suspension communications. The suspension context adds a temporal qualifier but the core obligation is the same: disclose identified preliminary risks promptly so the client can make informed decisions. Matched as a variant with medium-high confidence." ;
    proeth-prov:matchedOntologyClass proeth:PreliminaryRiskDisclosureObligation ;
    proeth-prov:matchedOntologyLabel "Preliminary Risk Disclosure Obligation" ;
    proeth-prov:matchesExisting true ;
    proeth-prov:sourceText "During the preliminary design phase, Engineer L becomes concerned that the risk of impact to the community drinking water source will potentially increase, as the likelihood of heavy stormwater flows will increase over time." ;
    rdfs:comment "Duty of an engineer who has identified a potential risk to public health or safety during an active engagement to disclose that risk to the client before or at the time of a work suspension, rather than remaining silent about the risk during communications about the suspension, so that the client has the opportunity to make informed decisions about the project during the suspension period." ;
    rdfs:subClassOf proeth:DisclosureObligation ;
    skos:definition "Duty of an engineer who has identified a potential risk to public health or safety during an active engagement to disclose that risk to the client before or at the time of a work suspension, rather than remaining silent about the risk during communications about the suspension, so that the client has the opportunity to make informed decisions about the project during the suspension period." ;
    skos:scopeNote "[PreliminaryRiskDisclosureObligation] Duty of an engineer who identifies a potential risk to public health or safety during a preliminary phase of work to disclose that risk to the client and relevant stakeholders promptly, even before the risk has been fully quantified, so that the client can make informed decisions about project scope, suspension, or protective measures." ;
    prov:generatedAtTime "2026-06-05T02:20:48.587109+00:00"^^xsd:dateTime ;
    prov:wasAttributedTo "Case 8 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 .

