# The taskexecution pattern on a morning ward round. The task "measure each patient's vital signs"
# belongs to the duty-nurse role, not to any one person; Lena Brandt holds that role on the day and
# takes part in the round, and two of her actions that morning are executions of the one task - which
# is the distinction the pattern exists to draw.

@prefix agentrole: <http://www.ontologydesignpatterns.org/cp/owl/agentrole.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 taskexecution: <http://www.ontologydesignpatterns.org/cp/owl/taskexecution.owl#> .
@prefix taskrole: <http://www.ontologydesignpatterns.org/cp/owl/taskrole.owl#> .
@prefix ex: <https://w3id.org/ontoboard/example/taskexecution#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

ex:TakingKellersBloodPressure a owl:NamedIndividual , taskexecution:Action ;
    rdfs:label "taking Mr Keller's blood pressure at 07:40" ;
    taskexecution:executesTask ex:MeasureVitalSigns .

ex:CountingKellersPulse a owl:NamedIndividual , taskexecution:Action ;
    rdfs:label "counting Mr Keller's pulse at 07:42" ;
    taskexecution:executesTask ex:MeasureVitalSigns .

ex:MorningWardRound a owl:NamedIndividual , participation:Event ;
    rdfs:label "the morning ward round on ward B3, 25 October" ;
    participation:hasParticipant ex:LenaBrandt .

ex:LenaBrandt a owl:NamedIndividual , objectrole:Object , participation:Object ;
    rdfs:label "Lena Brandt, the nurse on duty that morning" ;
    objectrole:hasRole ex:DutyNurseRole ;
    participation:isParticipantIn ex:MorningWardRound .

ex:DutyNurseRole a owl:NamedIndividual , objectrole:Role , taskrole:Role ;
    rdfs:label "the duty-nurse role on ward B3" ;
    taskrole:hasTask ex:MeasureVitalSigns .

ex:MeasureVitalSigns a owl:NamedIndividual , taskrole:Task ;
    rdfs:label "the task: measure and record every patient's vital signs" .

# Only one direction of each inverse pair is asserted: executesTask/isExecutedIn, hasRole/isRoleOf, hasTask/isTaskOf. A reasoner adds the other.

