@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:EmploymentTransitionState a owl:Class ;
    rdfs:label "Employment Transition State" ;
    proeth:activationConditions "Engineer D announces plans to step down and accepts the position at the engineering firm" ;
    proeth:confidence "0.82" ;
    proeth:persistenceType "inertial" ;
    proeth:principleTransformation "During the transition window, Engineer D still bears the City Engineer role while committed to the new employer, which is the period in which the competing loyalties overlap." ;
    proeth:stateCategory "temporal" ;
    proeth:terminationConditions "Engineer D departs the City Engineer position and begins work at Firm AE&R" ;
    proeth:textReferences "Engineer D announces plans to step down as the City Engineer and indicates that they accepted a position at an unnamed engineering firm in the City.",
        "Shortly after Engineer D's announcement, Firm AE&R announces Engineer D as a newly hired associate." ;
    proeth-prov:discoveredInCase 10 ;
    proeth-prov:discoveredInPass 1 ;
    proeth-prov:discoveredInSection "facts" ;
    proeth-prov:firstDiscoveredAt "2026-07-05T05:42:51.898894+00:00"^^xsd:dateTime ;
    proeth-prov:firstDiscoveredInCase 10 ;
    proeth-prov:matchConfidence 0.72 ;
    proeth-prov:matchReasoning "A pre-departure transition window is a phase-defined condition, a specialization of the canonical Temporal State archetype. No narrower existing class such as Work Suspension State or Litigation Context State covers an employment transition phase." ;
    proeth-prov:matchedOntologyClass proeth:TemporalState ;
    proeth-prov:matchedOntologyLabel "Temporal State" ;
    proeth-prov:matchesExisting true ;
    proeth-prov:sourceText "Engineer D announces plans to step down as the City Engineer and indicates that they accepted a position at an unnamed engineering firm in the City. Shortly after Engineer D's announcement, Firm AE&R announces Engineer D as a newly hired associate." ;
    rdfs:comment "A temporal condition in which a professional has announced departure from one position and accepted a new position, so the professional is in a transition phase between announcing the move and fully leaving the prior role, during which duties owed in the prior role still hold while ties to the new employer already exist." ;
    rdfs:subClassOf proeth:TemporalState ;
    skos:definition "A temporal condition in which a professional has announced departure from one position and accepted a new position, so the professional is in a transition phase between announcing the move and fully leaving the prior role, during which duties owed in the prior role still hold while ties to the new employer already exist." ;
    skos:scopeNote "[TemporalState] A condition defined by phase or timing: a pre- or post-termination phase, a before- or after-notification window, a deadline window. As a content kind it is the temporal standing of the situation. Its deontic relevance is that it bounds when a time-relative obligation holds, as the Event-Calculus fluent whose initiation and termination start and end the duty (Berreby et al. 2017)." ;
    prov:generatedAtTime "2026-07-05T05:42:51.898894+00:00"^^xsd:dateTime ;
    prov:wasAttributedTo "Case 10 Extraction",
        "claude-fable-5" .

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:StateDefinitionShape a sh:NodeShape ;
    rdfs:label "State definition schema (type-level, descriptive, field contract)"@en ;
    rdfs:comment "What individuates a state TYPE: its content archetype (drives the archetype subClassOf typing) and its persistence type (inertial vs non-inertial fluent, a class-level datatype). Its per-case urgency and the activatesObligation edge are per-individual and declared on StatePropertyShape, mirroring the Role/Principle/Obligation Definition/Property split and the state scopeNote (which names the condition and its persistence type as type-defining). Descriptive only (no validation result); state_category is a routing input, not stored as a literal."@en ;
    sh:property [ sh:description "The content archetype, which drives the archetype subClassOf typing: EpistemicState, RiskState, CompetenceState, EmergencyState, ConflictOfInterestState, RegulatoryState, TemporalState, ResourceState, DisclosureState. A classification of the state content, explicitly NOT the activatesObligation relation. A routing input, not stored as a literal." ;
            sh:name "state archetype" ;
            sh:order 1 ;
            sh:path proeth:stateCategory ],
        [ sh:description "Whether the state is an inertial fluent (holds until an event terminates it) or a non-inertial fluent (true at a single time point), the inertial versus non-inertial fluent distinction of Berreby et al. (2017) in the Event Calculus; a class-level datatype, a property of the fluent predicate itself." ;
            sh:name "persistence type" ;
            sh:order 2 ;
            sh:path proeth:persistenceType ] ;
    sh:targetClass core:State .

pcsh:StatePropertyShape a sh:NodeShape ;
    rdfs:label "State per-case schema (individual data, non-definitional)"@en ;
    rdfs:comment "What a given state INDIVIDUAL is described by in a specific case: its bearer and holding period, its urgency (per-case salience), the event boundaries of the fluent, and the obligations, constraints, and agents its obtaining engages via edges. These do NOT individuate the state TYPE (that is StateDefinitionShape); their values are per-case, asserted on the individual. The proeth:principleTransformation synthesis literal (the S->P->O grounding written onto the individual by the state-edge pass) is deliberately not part of the extraction field contract. Descriptive only."@en ;
    sh:property [ sh:description "The salience or acuteness of the state in this case (Jones 1991 moral-intensity salience; components include temporal immediacy, magnitude of consequences, and proximity)." ;
            sh:name "urgency level" ;
            sh:order 1 ;
            sh:path proeth:urgencyLevel ],
        [ sh:description "The obligation the state makes applicable, via the outgoing S->O activatesObligation edge; the incoming counterpart is defeasibleUnder (O->S), recording the obligation that yields when this state obtains. Range: Obligation." ;
            sh:name "activates obligation" ;
            sh:order 2 ;
            sh:path core:activatesObligation ],
        [ sh:description "The constraint the state activates, via the outgoing S->Cs activatesConstraint edge, bounding the actions available while the state holds. Range: Constraint." ;
            sh:name "activates constraint" ;
            sh:order 3 ;
            sh:path core:activatesConstraint ],
        [ sh:description "The agent(s) the state bears on, via the S->Agent affects edge, resolved from the affected-parties text by embedding shortlist + LLM multi-select. Range: Agent." ;
            sh:name "affects" ;
            sh:order 4 ;
            sh:path core:affects ],
        [ sh:description "The entity the state holds of (the bearer text); a kept literal that also feeds the defeasibility prompt as state context." ;
            sh:name "subject" ;
            sh:order 5 ;
            sh:path proeth:subject ],
        [ sh:description "The period over which the state holds, as extracted text." ;
            sh:name "active period" ;
            sh:order 6 ;
            sh:path proeth:activePeriod ],
        [ sh:description "The event bringing the state into being; kept verbatim on the individual and also resolved to the activatedByEvent edge (the start boundary of the fluent)." ;
            sh:name "triggering event" ;
            sh:order 7 ;
            sh:path proeth:triggeringEvent ],
        [ sh:description "What removes the state; kept verbatim on the individual and also resolved to the terminatedByEvent edge (the end boundary of the fluent)." ;
            sh:name "terminated by" ;
            sh:order 8 ;
            sh:path proeth:terminatedBy ],
        [ sh:description "The Event whose occurrence initiates this state, via the outgoing activatedByEvent edge (the start boundary of the fluent). Range: Event." ;
            sh:name "activated by event" ;
            sh:order 9 ;
            sh:path core:activatedByEvent ],
        [ sh:description "The Event whose occurrence ends this state, via the outgoing terminatedByEvent edge (the end boundary of the fluent). Range: Event." ;
            sh:name "terminated by event" ;
            sh:order 10 ;
            sh:path core:terminatedByEvent ] ;
    sh:targetClass core:State .

