Recall the insurance scenario. Now we need to represent a workflow in this domain with our newly defined process modeing notation.
start in Task with successor n: receiveClaim end receiveClaim in Task with successor n: checkPolicy end checkPolicy in Task with successor n1: assignAssessor; n2: proposePayment end assignAssessor in Task with successor n: assessDamage end assessDamage in Task with successor n: proposePayment end proposePayment in Task with successor accept: processPayment; reject: checkPolicy end processPayment in Task with successor n: finish end finish in Task end Assessor in Agent with executes t1: assessDamage end InsuranceAgent in Agent with executes t1: receiveClaim; t2: proposePayment end
The answer to LoopTask is checkPolicy, assignAssessor, assessDamage, proposePayment. The answer to AgentWithSplitResponsibility is InsuranceAgent, Assessor. Note that the task assessDamage is in a loop with proposePayment. Hence, a sequence assessDamage-proposePayment-checkPolicy-assignAssessor-assessDamage is possible and is the reason to classify both agents into the query class AgentWithSplitResponsibility.
You can also visualize the results of the queries by the graph editor. The example process model together with the classification to the two query classes is shown in figure 5.
The dotted green links are derived instantiations. So, an object that is in the answer set of a query class is regarded as a derived instance of that query class. Indeed, query classes are classes where the instances are derived via the membership condition of the query class.