@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:FormalProjectFailureNotificationObligation a owl:Class ;
rdfs:label "Formal Project Failure Notification Obligation" ;
proeth:confidence "0.86" ;
proeth:derivedFromPrinciple "Project Success Notification Principle" ;
proeth:enforcementLevel "mandatory" ;
proeth:monitoringCriteria "Documented written communication to the client stating that the project will not achieve safe outcomes without implementation of the recommended measures." ;
proeth:nspeReference "II.1.a, III.2.b" ;
proeth:obligationType "disclosure" ;
proeth:stakeholdersAffected "Client governing body",
"General public",
"Regulatory authorities" ;
proeth:textReferences "Again, as with the state regulatory agency, this advisement should proceed in a formal manner.",
"If project success is defined as 'the public will not be endangered at all,' then Engineers A and B should advise their client that they believe the project will not be successful." ;
proeth:violationConsequences "Failure to formally advise the client of predicted project failure deprives the client of a documented professional judgment and may leave the engineer without a record of having fulfilled the notification duty." ;
proeth-prov:discoveredInCase 76 ;
proeth-prov:discoveredInPass 2 ;
proeth-prov:discoveredInSection "discussion" ;
proeth-prov:firstDiscoveredAt "2026-06-05T11:28:12.343728+00:00"^^xsd:dateTime ;
proeth-prov:firstDiscoveredInCase 76 ;
proeth-prov:matchConfidence 0.78 ;
proeth-prov:matchReasoning "The existing Project Success Notification Obligation captures the general duty to advise a client when a project will not be successful. This class adds the specific requirement that the notification be formal and documented, which is a meaningful variant warranting a distinct class label while still being closely related to the existing concept." ;
proeth-prov:matchedOntologyClass proeth:ProjectSuccessNotificationObligation ;
proeth-prov:matchedOntologyLabel "Project Success Notification Obligation" ;
proeth-prov:matchesExisting true ;
proeth-prov:sourceText "If project success is defined as 'the public will not be endangered at all,' then Engineers A and B should advise their client that they believe the project will not be successful." ;
rdfs:comment "Duty of an engineer to advise a client formally, in writing, that the project will not be successful as defined by public safety outcomes, when the client has overruled safety recommendations whose implementation is necessary to prevent public harm, so that the client has a documented formal notice of the engineer's professional judgment before proceeding." ;
rdfs:subClassOf proeth:DisclosureObligation ;
skos:definition "Duty of an engineer to advise a client formally, in writing, that the project will not be successful as defined by public safety outcomes, when the client has overruled safety recommendations whose implementation is necessary to prevent public harm, so that the client has a documented formal notice of the engineer's professional judgment before proceeding." ;
skos:scopeNote "[ProjectSuccessNotificationObligation] Duty of an engineer to advise a client or employer when, in the engineer's professional judgment, a project will not be successful, including when success is threatened by the absence of safety measures the client has declined to implement, so that the client has the opportunity to reconsider before the engineer is placed in a position of ethical conflict." ;
prov:generatedAtTime "2026-06-05T11:28:12.343728+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 .