@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:EnvironmentalComplianceReportingObligation a owl:Class ;
rdfs:label "Environmental Compliance Reporting Obligation" ;
proeth:confidence "0.86" ;
proeth:derivedFromPrinciple "Environmental Law Compliance Principle" ;
proeth:enforcementLevel "mandatory" ;
proeth:monitoringCriteria "Documented report to the appropriate federal or state environmental authority describing the observed violation, made within a reasonable time after discovery." ;
proeth:nspeReference "I.1, II.1.a" ;
proeth:obligationType "reporting" ;
proeth:stakeholdersAffected "Adjacent communities",
"General public",
"Regulatory authorities",
"Wetland ecosystems" ;
proeth:textReferences "Engineer A is an environmental engineer.",
"The installation of the fill material is a substantial violation of the federal and state laws and regulations.",
"he drives by his client's property and notices that the client has installed a substantial amount of fill material on more than 1/2 an acre across a portion of the wetlands without any permits, variances, or permissions." ;
proeth:violationConsequences "Failure to report a known, substantial environmental law violation by a former client may result in professional discipline and ongoing harm to protected environmental resources." ;
proeth-prov:discoveredInCase 86 ;
proeth-prov:discoveredInPass 2 ;
proeth-prov:discoveredInSection "facts" ;
proeth-prov:firstDiscoveredAt "2026-06-04T17:30:01.042237+00:00"^^xsd:dateTime ;
proeth-prov:firstDiscoveredInCase 86 ;
proeth-prov:matchConfidence 0.8 ;
proeth-prov:matchReasoning "The existing Post-Termination Environmental Risk Reporting Obligation is the closest match, covering the duty to report environmental risks to a pollution-control authority after termination of the client relationship. This class adds the dimension of specialized environmental engineering knowledge as the basis for recognizing and reporting the violation, but the core reporting duty is the same. Treated as a variant of the existing class." ;
proeth-prov:matchedOntologyClass proeth:PostTerminationEnvironmentalRiskReportingObligation ;
proeth-prov:matchedOntologyLabel "Post-Termination Environmental Risk Reporting Obligation" ;
proeth-prov:matchesExisting true ;
proeth-prov:sourceText "Engineer A is an environmental engineer." ;
rdfs:comment "Duty of an engineer with specialized knowledge of environmental law and regulation who discovers a substantial violation of those laws to report the violation to the appropriate federal or state regulatory authority, drawing on that specialized knowledge to recognize the severity and legal significance of the observed conduct." ;
rdfs:subClassOf proeth:ReportingObligation ;
skos:definition "Duty of an engineer with specialized knowledge of environmental law and regulation who discovers a substantial violation of those laws to report the violation to the appropriate federal or state regulatory authority, drawing on that specialized knowledge to recognize the severity and legal significance of the observed conduct." ;
skos:scopeNote "[PostTermEnvRiskReportingObligation] Duty of an engineer to report environmental risks to a pollution-control authority after termination of the client relationship when the risk rises to a public-safety concern (NSPE Code §I.1, §II.1.a, §II.1.c). Derived from the paramount public-welfare principle." ;
prov:generatedAtTime "2026-06-04T17:30:01.042237+00:00"^^xsd:dateTime ;
prov:wasAttributedTo "Case 86 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 .