# The basicplanexecution pattern in use: one actual run of a bakery's Sunday sourdough
# routine. The situation is the run itself, and it gathers up what the run consisted of -
# the shaping action, the baker who carried it out, the dough that took part, and the time
# at which it happened. The Dutch oven sits in the setting of that run and is classified
# by the concept "baking vessel".

@prefix agentrole: <http://www.ontologydesignpatterns.org/cp/owl/agentrole.owl#> .
@prefix basicplanexecution: <http://www.ontologydesignpatterns.org/cp/owl/basicplanexecution.owl#> .
@prefix classification: <http://www.ontologydesignpatterns.org/cp/owl/classification.owl#> .
@prefix objectrole: <http://www.ontologydesignpatterns.org/cp/owl/objectrole.owl#> .
@prefix participation: <http://www.ontologydesignpatterns.org/cp/owl/participation.owl#> .
@prefix region: <http://www.ontologydesignpatterns.org/cp/owl/region.owl#> .
@prefix situation: <http://www.ontologydesignpatterns.org/cp/owl/situation.owl#> .
@prefix ex: <https://w3id.org/ontoboard/example/basicplanexecution#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

ex:SundayBakeRun a owl:NamedIndividual , situation:Situation ;
    rdfs:label "how the Sunday sourdough bake actually ran" ;
    basicplanexecution:includesAction ex:ShapingTheDough ;
    basicplanexecution:includesAgent ex:LeilaTheBaker ;
    basicplanexecution:includesObject ex:DoughBatch ;
    basicplanexecution:includesRegion ex:ShapingTime ;
    situation:isSettingFor ex:DutchOven .

ex:ShapingTheDough a owl:NamedIndividual , basicplanexecution:Action ;
    rdfs:label "shaping the dough into loaves" ;
    basicplanexecution:actionHasParticipant ex:DoughBatch .

ex:LeilaTheBaker a owl:NamedIndividual , agentrole:Agent ;
    rdfs:label "Leila Haddad, the baker on shift" .

ex:DoughBatch a owl:NamedIndividual , objectrole:Object , participation:Object ;
    rdfs:label "the 900 g batch of sourdough" ;
    objectrole:hasRole ex:MainIngredientRole ;
    participation:isParticipantIn ex:SundayBake .

ex:MainIngredientRole a owl:NamedIndividual , objectrole:Role ;
    rdfs:label "main ingredient" .

ex:SundayBake a owl:NamedIndividual , participation:Event ;
    rdfs:label "the Sunday bake" ;
    participation:hasParticipant ex:DoughBatch .

ex:ShapingTime a owl:NamedIndividual , region:Region ;
    rdfs:label "14:00 on Sunday 15 March 2026" ;
    region:hasRegionDataValue "2026-03-15T14:00" .

ex:DutchOven a owl:NamedIndividual , classification:Entity , situation:Entity ;
    rdfs:label "the kitchen's cast-iron Dutch oven" ;
    classification:isClassifiedBy ex:BakingVessel ;
    situation:hasSetting ex:SundayBakeRun .

ex:BakingVessel a owl:NamedIndividual , classification:Concept ;
    rdfs:label "baking vessel" ;
    classification:classifies ex:DutchOven .

# Only one direction of each inverse pair is asserted: actionHasParticipant/isParticipantInAction, hasRegion/isRegionFor, hasRole/isRoleOf, includesAction/isActionIncludedIn, includesAgent/isAgentIncludedIn, includesObject/isObjectIncludedIn, includesRegion/isRegionIncludedIn. A reasoner adds the other.
