@bpmn-ld/bpmn-ld 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +125 -2
  3. package/contexts/combined.jsonld +3 -0
  4. package/contexts/core.jsonld +170 -0
  5. package/contexts/di.jsonld +37 -0
  6. package/dist/analyze/analyze.d.ts +3 -0
  7. package/dist/analyze/analyze.js +11 -0
  8. package/dist/analyze/findings.d.ts +8 -0
  9. package/dist/analyze/findings.js +1 -0
  10. package/dist/analyze/report.d.ts +3 -0
  11. package/dist/analyze/report.js +9 -0
  12. package/dist/analyze/rules/ad-hoc-completion-condition.d.ts +2 -0
  13. package/dist/analyze/rules/ad-hoc-completion-condition.js +7 -0
  14. package/dist/analyze/rules/cannot-reach-end.d.ts +2 -0
  15. package/dist/analyze/rules/cannot-reach-end.js +28 -0
  16. package/dist/analyze/rules/compensation-association.d.ts +2 -0
  17. package/dist/analyze/rules/compensation-association.js +13 -0
  18. package/dist/analyze/rules/dead-end.d.ts +2 -0
  19. package/dist/analyze/rules/dead-end.js +13 -0
  20. package/dist/analyze/rules/end-event.d.ts +2 -0
  21. package/dist/analyze/rules/end-event.js +8 -0
  22. package/dist/analyze/rules/error-catch.d.ts +2 -0
  23. package/dist/analyze/rules/error-catch.js +14 -0
  24. package/dist/analyze/rules/escalation-catch.d.ts +2 -0
  25. package/dist/analyze/rules/escalation-catch.js +14 -0
  26. package/dist/analyze/rules/gateway-cardinality.d.ts +3 -0
  27. package/dist/analyze/rules/gateway-cardinality.js +17 -0
  28. package/dist/analyze/rules/index.d.ts +4 -0
  29. package/dist/analyze/rules/index.js +21 -0
  30. package/dist/analyze/rules/instantiating-gateway.d.ts +2 -0
  31. package/dist/analyze/rules/instantiating-gateway.js +14 -0
  32. package/dist/analyze/rules/non-interrupting-start.d.ts +2 -0
  33. package/dist/analyze/rules/non-interrupting-start.js +14 -0
  34. package/dist/analyze/rules/reachability.d.ts +2 -0
  35. package/dist/analyze/rules/reachability.js +25 -0
  36. package/dist/analyze/rules/rule.d.ts +7 -0
  37. package/dist/analyze/rules/rule.js +1 -0
  38. package/dist/analyze/rules/signal-catch.d.ts +2 -0
  39. package/dist/analyze/rules/signal-catch.js +12 -0
  40. package/dist/analyze/rules/split-join-pairing.d.ts +3 -0
  41. package/dist/analyze/rules/split-join-pairing.js +50 -0
  42. package/dist/analyze/rules/start-event.d.ts +2 -0
  43. package/dist/analyze/rules/start-event.js +8 -0
  44. package/dist/analyze/rules/task-message-flow.d.ts +2 -0
  45. package/dist/analyze/rules/task-message-flow.js +19 -0
  46. package/dist/analyze/scope-graph.d.ts +56 -0
  47. package/dist/analyze/scope-graph.js +89 -0
  48. package/dist/analyze-cli.d.ts +1 -0
  49. package/dist/analyze-cli.js +5 -0
  50. package/dist/analyze-run.d.ts +12 -0
  51. package/dist/analyze-run.js +85 -0
  52. package/dist/bpmn-ld-cli.d.ts +1 -0
  53. package/dist/bpmn-ld-cli.js +90 -0
  54. package/dist/build-cli.d.ts +1 -0
  55. package/dist/build-cli.js +2 -0
  56. package/dist/build.d.ts +3 -0
  57. package/dist/build.js +38 -0
  58. package/dist/check-xml/check.d.ts +3 -0
  59. package/dist/check-xml/check.js +11 -0
  60. package/dist/check-xml/lint.d.ts +2 -0
  61. package/dist/check-xml/lint.js +47 -0
  62. package/dist/check-xml/moddle.d.ts +6 -0
  63. package/dist/check-xml/moddle.js +23 -0
  64. package/dist/check-xml/types.d.ts +20 -0
  65. package/dist/check-xml/types.js +1 -0
  66. package/dist/check-xml/xsd.d.ts +2 -0
  67. package/dist/check-xml/xsd.js +25 -0
  68. package/dist/check-xml-cli.d.ts +1 -0
  69. package/dist/check-xml-cli.js +5 -0
  70. package/dist/check-xml-run.d.ts +10 -0
  71. package/dist/check-xml-run.js +77 -0
  72. package/dist/convert/analyze-output.d.ts +3 -0
  73. package/dist/convert/analyze-output.js +8 -0
  74. package/dist/convert/convert.d.ts +19 -0
  75. package/dist/convert/convert.js +96 -0
  76. package/dist/convert/errors.d.ts +5 -0
  77. package/dist/convert/errors.js +8 -0
  78. package/dist/convert/extensions.d.ts +23 -0
  79. package/dist/convert/extensions.js +103 -0
  80. package/dist/convert/mapping-check.d.ts +15 -0
  81. package/dist/convert/mapping-check.js +66 -0
  82. package/dist/convert/mapping.d.ts +52 -0
  83. package/dist/convert/mapping.js +273 -0
  84. package/dist/convert/namespaces.d.ts +2 -0
  85. package/dist/convert/namespaces.js +19 -0
  86. package/dist/convert/validate-output.d.ts +2 -0
  87. package/dist/convert/validate-output.js +28 -0
  88. package/dist/convert/warnings.d.ts +9 -0
  89. package/dist/convert/warnings.js +67 -0
  90. package/dist/convert/xml-reader.d.ts +11 -0
  91. package/dist/convert/xml-reader.js +84 -0
  92. package/dist/convert-cli.d.ts +1 -0
  93. package/dist/convert-cli.js +5 -0
  94. package/dist/convert-run.d.ts +10 -0
  95. package/dist/convert-run.js +125 -0
  96. package/dist/coverage-cli.d.ts +1 -0
  97. package/dist/coverage-cli.js +8 -0
  98. package/dist/coverage-mappings.d.ts +3 -0
  99. package/dist/coverage-mappings.js +34 -0
  100. package/dist/coverage-scope.d.ts +11 -0
  101. package/dist/coverage-scope.js +187 -0
  102. package/dist/coverage-xsd.d.ts +15 -0
  103. package/dist/coverage-xsd.js +55 -0
  104. package/dist/coverage.d.ts +35 -0
  105. package/dist/coverage.js +152 -0
  106. package/dist/docs-cli.d.ts +1 -0
  107. package/dist/docs-cli.js +18 -0
  108. package/dist/docs.d.ts +8 -0
  109. package/dist/docs.js +136 -0
  110. package/dist/eval/checks.d.ts +19 -0
  111. package/dist/eval/checks.js +252 -0
  112. package/dist/eval/regenerate.d.ts +10 -0
  113. package/dist/eval/regenerate.js +48 -0
  114. package/dist/eval-regenerate-cli.d.ts +1 -0
  115. package/dist/eval-regenerate-cli.js +16 -0
  116. package/dist/export/data.d.ts +10 -0
  117. package/dist/export/data.js +127 -0
  118. package/dist/export/diagram.d.ts +8 -0
  119. package/dist/export/diagram.js +112 -0
  120. package/dist/export/element.d.ts +27 -0
  121. package/dist/export/element.js +175 -0
  122. package/dist/export/export.d.ts +22 -0
  123. package/dist/export/export.js +124 -0
  124. package/dist/export/extensions.d.ts +18 -0
  125. package/dist/export/extensions.js +122 -0
  126. package/dist/export/layout-export.d.ts +4 -0
  127. package/dist/export/layout-export.js +25 -0
  128. package/dist/export/mapping-check.d.ts +39 -0
  129. package/dist/export/mapping-check.js +175 -0
  130. package/dist/export/normalize.d.ts +3 -0
  131. package/dist/export/normalize.js +67 -0
  132. package/dist/export-cli.d.ts +1 -0
  133. package/dist/export-cli.js +5 -0
  134. package/dist/export-run.d.ts +10 -0
  135. package/dist/export-run.js +157 -0
  136. package/dist/index.d.ts +10 -0
  137. package/dist/index.js +10 -0
  138. package/dist/install-skill-run.d.ts +8 -0
  139. package/dist/install-skill-run.js +30 -0
  140. package/dist/install-skill.d.ts +23 -0
  141. package/dist/install-skill.js +76 -0
  142. package/dist/layout/collaboration.d.ts +36 -0
  143. package/dist/layout/collaboration.js +152 -0
  144. package/dist/layout/di.d.ts +15 -0
  145. package/dist/layout/di.js +52 -0
  146. package/dist/layout/extract.d.ts +2 -0
  147. package/dist/layout/extract.js +99 -0
  148. package/dist/layout/lanes.d.ts +30 -0
  149. package/dist/layout/lanes.js +112 -0
  150. package/dist/layout/layering.d.ts +7 -0
  151. package/dist/layout/layering.js +53 -0
  152. package/dist/layout/layout.d.ts +12 -0
  153. package/dist/layout/layout.js +299 -0
  154. package/dist/layout/model.d.ts +52 -0
  155. package/dist/layout/model.js +10 -0
  156. package/dist/layout/placement.d.ts +25 -0
  157. package/dist/layout/placement.js +256 -0
  158. package/dist/layout/standalone.d.ts +8 -0
  159. package/dist/layout/standalone.js +50 -0
  160. package/dist/layout-cli.d.ts +1 -0
  161. package/dist/layout-cli.js +5 -0
  162. package/dist/layout-run.d.ts +9 -0
  163. package/dist/layout-run.js +105 -0
  164. package/dist/loader.d.ts +5 -0
  165. package/dist/loader.js +7 -0
  166. package/dist/namespace.d.ts +5 -0
  167. package/dist/namespace.js +5 -0
  168. package/dist/ontology.d.ts +19 -0
  169. package/dist/ontology.js +94 -0
  170. package/dist/paths.d.ts +1 -0
  171. package/dist/paths.js +2 -0
  172. package/dist/render/geometry.d.ts +40 -0
  173. package/dist/render/geometry.js +81 -0
  174. package/dist/render/renderer.d.ts +31 -0
  175. package/dist/render/renderer.js +369 -0
  176. package/dist/render/symbols.d.ts +10 -0
  177. package/dist/render/symbols.js +26 -0
  178. package/dist/render/text.d.ts +20 -0
  179. package/dist/render/text.js +28 -0
  180. package/dist/render-cli.d.ts +1 -0
  181. package/dist/render-cli.js +7 -0
  182. package/dist/render-run.d.ts +9 -0
  183. package/dist/render-run.js +161 -0
  184. package/dist/render.d.ts +4 -0
  185. package/dist/render.js +4 -0
  186. package/dist/schema-overrides.d.ts +14 -0
  187. package/dist/schema-overrides.js +36 -0
  188. package/dist/schema-validate.d.ts +5 -0
  189. package/dist/schema-validate.js +8 -0
  190. package/dist/schema.d.ts +6 -0
  191. package/dist/schema.js +114 -0
  192. package/dist/shacl.d.ts +15 -0
  193. package/dist/shacl.js +37 -0
  194. package/dist/validate-cli.d.ts +1 -0
  195. package/dist/validate-cli.js +5 -0
  196. package/dist/validate-run.d.ts +8 -0
  197. package/dist/validate-run.js +58 -0
  198. package/dist/validate.d.ts +11 -0
  199. package/dist/validate.js +94 -0
  200. package/dist/versioning-cli.d.ts +1 -0
  201. package/dist/versioning-cli.js +18 -0
  202. package/dist/versioning.d.ts +17 -0
  203. package/dist/versioning.js +45 -0
  204. package/ontology/core.ttl +993 -0
  205. package/ontology/di.ttl +167 -0
  206. package/package.json +76 -4
  207. package/schema/bpmn-ld.schema.json +15230 -0
  208. package/shapes/core.shapes.ttl +398 -0
  209. package/skills/bpmn-ld/SKILL.md +154 -0
  210. package/skills/bpmn-ld/evals/models/order-approval-di.jsonld +296 -0
  211. package/skills/bpmn-ld/evals/models/refund-di.bpmn +82 -0
  212. package/skills/bpmn-ld/evals/models/refund.bpmn +18 -0
  213. package/skills/bpmn-ld/evals/outputs/explain-collaboration.md +22 -0
  214. package/skills/bpmn-ld/evals/outputs/explain-order-approval.md +24 -0
  215. package/skills/bpmn-ld/evals/outputs/explain-refund.md +17 -0
  216. package/skills/bpmn-ld/evals/outputs/generate-activity-compensation.jsonld +39 -0
  217. package/skills/bpmn-ld/evals/outputs/generate-ad-hoc-sub-process.jsonld +52 -0
  218. package/skills/bpmn-ld/evals/outputs/generate-boundary-event.jsonld +27 -0
  219. package/skills/bpmn-ld/evals/outputs/generate-collaboration.jsonld +49 -0
  220. package/skills/bpmn-ld/evals/outputs/generate-conditions.jsonld +93 -0
  221. package/skills/bpmn-ld/evals/outputs/generate-diagram-properties.jsonld +340 -0
  222. package/skills/bpmn-ld/evals/outputs/generate-error.jsonld +217 -0
  223. package/skills/bpmn-ld/evals/outputs/generate-escalation.jsonld +231 -0
  224. package/skills/bpmn-ld/evals/outputs/generate-event-definition-ref.jsonld +67 -0
  225. package/skills/bpmn-ld/evals/outputs/generate-event-sub-process.jsonld +54 -0
  226. package/skills/bpmn-ld/evals/outputs/generate-exclusive-choice.jsonld +32 -0
  227. package/skills/bpmn-ld/evals/outputs/generate-instantiating-gateway.jsonld +24 -0
  228. package/skills/bpmn-ld/evals/outputs/generate-lane-partition.jsonld +46 -0
  229. package/skills/bpmn-ld/evals/outputs/generate-link-event.expect.json +11 -0
  230. package/skills/bpmn-ld/evals/outputs/generate-link-event.jsonld +57 -0
  231. package/skills/bpmn-ld/evals/outputs/generate-loop.jsonld +30 -0
  232. package/skills/bpmn-ld/evals/outputs/generate-message.jsonld +61 -0
  233. package/skills/bpmn-ld/evals/outputs/generate-parallel-branches.jsonld +25 -0
  234. package/skills/bpmn-ld/evals/outputs/generate-process-attributes.jsonld +49 -0
  235. package/skills/bpmn-ld/evals/outputs/generate-script-task.jsonld +18 -0
  236. package/skills/bpmn-ld/evals/outputs/generate-signal.jsonld +178 -0
  237. package/skills/bpmn-ld/evals/outputs/generate-sub-process.jsonld +31 -0
  238. package/skills/bpmn-ld/evals/outputs/generate-targeted-compensation.jsonld +40 -0
  239. package/skills/bpmn-ld/evals/outputs/generate-task-implementation.jsonld +18 -0
  240. package/skills/bpmn-ld/evals/outputs/generate-task-message-references.jsonld +49 -0
  241. package/skills/bpmn-ld/evals/outputs/generate-transaction.jsonld +48 -0
  242. package/skills/bpmn-ld/evals/outputs/modify-order-approval.jsonld +376 -0
  243. package/skills/bpmn-ld/evals/outputs/modify-refund.jsonld +373 -0
  244. package/skills/bpmn-ld/evals/outputs/order-approval.jsonld +29 -0
  245. package/skills/bpmn-ld/evals/outputs/refine-order-approval.jsonld +377 -0
  246. package/skills/bpmn-ld/evals/prompts/explain-collaboration.md +3 -0
  247. package/skills/bpmn-ld/evals/prompts/explain-order-approval.md +3 -0
  248. package/skills/bpmn-ld/evals/prompts/explain-refund.md +3 -0
  249. package/skills/bpmn-ld/evals/prompts/generate-activity-compensation.md +1 -0
  250. package/skills/bpmn-ld/evals/prompts/generate-ad-hoc-sub-process.md +1 -0
  251. package/skills/bpmn-ld/evals/prompts/generate-boundary-event.md +1 -0
  252. package/skills/bpmn-ld/evals/prompts/generate-collaboration.md +1 -0
  253. package/skills/bpmn-ld/evals/prompts/generate-conditions.md +1 -0
  254. package/skills/bpmn-ld/evals/prompts/generate-diagram-properties.md +1 -0
  255. package/skills/bpmn-ld/evals/prompts/generate-error.md +1 -0
  256. package/skills/bpmn-ld/evals/prompts/generate-escalation.md +1 -0
  257. package/skills/bpmn-ld/evals/prompts/generate-event-definition-ref.md +1 -0
  258. package/skills/bpmn-ld/evals/prompts/generate-event-sub-process.md +1 -0
  259. package/skills/bpmn-ld/evals/prompts/generate-exclusive-choice.md +1 -0
  260. package/skills/bpmn-ld/evals/prompts/generate-instantiating-gateway.md +1 -0
  261. package/skills/bpmn-ld/evals/prompts/generate-lane-partition.md +1 -0
  262. package/skills/bpmn-ld/evals/prompts/generate-link-event.md +1 -0
  263. package/skills/bpmn-ld/evals/prompts/generate-loop.md +1 -0
  264. package/skills/bpmn-ld/evals/prompts/generate-message.md +1 -0
  265. package/skills/bpmn-ld/evals/prompts/generate-parallel-branches.md +1 -0
  266. package/skills/bpmn-ld/evals/prompts/generate-process-attributes.md +1 -0
  267. package/skills/bpmn-ld/evals/prompts/generate-script-task.md +1 -0
  268. package/skills/bpmn-ld/evals/prompts/generate-signal.md +1 -0
  269. package/skills/bpmn-ld/evals/prompts/generate-sub-process.md +1 -0
  270. package/skills/bpmn-ld/evals/prompts/generate-targeted-compensation.md +1 -0
  271. package/skills/bpmn-ld/evals/prompts/generate-task-implementation.md +1 -0
  272. package/skills/bpmn-ld/evals/prompts/generate-task-message-references.md +1 -0
  273. package/skills/bpmn-ld/evals/prompts/generate-transaction.md +1 -0
  274. package/skills/bpmn-ld/evals/prompts/modify-order-approval.md +4 -0
  275. package/skills/bpmn-ld/evals/prompts/modify-refund.md +4 -0
  276. package/skills/bpmn-ld/evals/prompts/order-approval.md +1 -0
  277. package/skills/bpmn-ld/evals/prompts/refine-order-approval.md +8 -0
  278. package/skills/bpmn-ld/examples/positive/activity-compensation.jsonld +39 -0
  279. package/skills/bpmn-ld/examples/positive/ad-hoc-sub-process.jsonld +52 -0
  280. package/skills/bpmn-ld/examples/positive/boundary-event.jsonld +27 -0
  281. package/skills/bpmn-ld/examples/positive/collaboration.jsonld +49 -0
  282. package/skills/bpmn-ld/examples/positive/conditions.jsonld +93 -0
  283. package/skills/bpmn-ld/examples/positive/diagram-properties.jsonld +340 -0
  284. package/skills/bpmn-ld/examples/positive/error.jsonld +208 -0
  285. package/skills/bpmn-ld/examples/positive/escalation.jsonld +231 -0
  286. package/skills/bpmn-ld/examples/positive/event-definition-ref.jsonld +142 -0
  287. package/skills/bpmn-ld/examples/positive/event-sub-process.jsonld +54 -0
  288. package/skills/bpmn-ld/examples/positive/exclusive-choice.jsonld +32 -0
  289. package/skills/bpmn-ld/examples/positive/instantiating-gateway.jsonld +24 -0
  290. package/skills/bpmn-ld/examples/positive/lane-partition.jsonld +46 -0
  291. package/skills/bpmn-ld/examples/positive/link-event.expect.json +10 -0
  292. package/skills/bpmn-ld/examples/positive/link-event.jsonld +138 -0
  293. package/skills/bpmn-ld/examples/positive/loop.jsonld +30 -0
  294. package/skills/bpmn-ld/examples/positive/message.jsonld +60 -0
  295. package/skills/bpmn-ld/examples/positive/order-approval.jsonld +29 -0
  296. package/skills/bpmn-ld/examples/positive/parallel-branches.jsonld +25 -0
  297. package/skills/bpmn-ld/examples/positive/process-attributes.jsonld +49 -0
  298. package/skills/bpmn-ld/examples/positive/script-task.jsonld +18 -0
  299. package/skills/bpmn-ld/examples/positive/signal.jsonld +150 -0
  300. package/skills/bpmn-ld/examples/positive/sub-process.jsonld +31 -0
  301. package/skills/bpmn-ld/examples/positive/targeted-compensation.jsonld +40 -0
  302. package/skills/bpmn-ld/examples/positive/task-implementation.jsonld +18 -0
  303. package/skills/bpmn-ld/examples/positive/task-message-references.jsonld +151 -0
  304. package/skills/bpmn-ld/examples/positive/transaction.jsonld +48 -0
  305. package/skills/bpmn-ld/references/clarification-and-refinement.md +60 -0
  306. package/skills/bpmn-ld/references/common-mistakes.md +110 -0
  307. package/skills/bpmn-ld/references/explain-and-document.md +36 -0
  308. package/skills/bpmn-ld/references/modify-existing-model.md +49 -0
  309. package/skills/bpmn-ld/references/patterns.md +292 -0
  310. package/skills/bpmn-ld/references/render-output.md +1 -0
  311. package/skills/bpmn-ld/references/rule-catalogue.md +183 -0
  312. package/skills/bpmn-ld/references/vocabulary-summary.md +65 -0
  313. package/skills/bpmn-ld/template.jsonld +14 -0
  314. package/templates/combined.jsonld +3 -0
  315. package/templates/core.jsonld +170 -0
  316. package/templates/core.shapes.ttl +398 -0
  317. package/templates/core.ttl +993 -0
  318. package/templates/di.jsonld +37 -0
  319. package/templates/di.ttl +167 -0
@@ -0,0 +1,296 @@
1
+ {
2
+ "@context": [
3
+ "../../../../contexts/core.jsonld",
4
+ "../../../../contexts/di.jsonld",
5
+ {
6
+ "@base": "https://example.org/models/order-approval/",
7
+ "acme": "https://vocab.example.com/acme#"
8
+ }
9
+ ],
10
+ "@graph": [
11
+ {
12
+ "id": "Process_OrderApproval",
13
+ "type": "Process",
14
+ "name": "Order approval",
15
+ "flowElements": [
16
+ {
17
+ "id": "StartEvent_OrderReceived",
18
+ "type": "StartEvent",
19
+ "name": "Order received"
20
+ },
21
+ {
22
+ "id": "UserTask_ReviewOrder",
23
+ "type": "UserTask",
24
+ "name": "Review order",
25
+ "acme:priority": 3
26
+ },
27
+ {
28
+ "id": "ExclusiveGateway_Approved",
29
+ "type": "ExclusiveGateway",
30
+ "name": "Approved?",
31
+ "default": "Flow_Rejected"
32
+ },
33
+ {
34
+ "id": "ServiceTask_ShipOrder",
35
+ "type": "ServiceTask",
36
+ "name": "Ship order"
37
+ },
38
+ {
39
+ "id": "EndEvent_Shipped",
40
+ "type": "EndEvent",
41
+ "name": "Order shipped"
42
+ },
43
+ {
44
+ "id": "EndEvent_Rejected",
45
+ "type": "EndEvent",
46
+ "name": "Order rejected"
47
+ },
48
+ {
49
+ "id": "Flow_Received",
50
+ "type": "SequenceFlow",
51
+ "sourceRef": "StartEvent_OrderReceived",
52
+ "targetRef": "UserTask_ReviewOrder"
53
+ },
54
+ {
55
+ "id": "Flow_Reviewed",
56
+ "type": "SequenceFlow",
57
+ "sourceRef": "UserTask_ReviewOrder",
58
+ "targetRef": "ExclusiveGateway_Approved"
59
+ },
60
+ {
61
+ "id": "Flow_Approved",
62
+ "type": "SequenceFlow",
63
+ "name": "Yes",
64
+ "sourceRef": "ExclusiveGateway_Approved",
65
+ "targetRef": "ServiceTask_ShipOrder",
66
+ "conditionExpression": {
67
+ "type": "FormalExpression",
68
+ "language": "https://262.ecma-international.org/",
69
+ "body": "approved === true"
70
+ }
71
+ },
72
+ {
73
+ "id": "Flow_Rejected",
74
+ "type": "SequenceFlow",
75
+ "name": "No",
76
+ "sourceRef": "ExclusiveGateway_Approved",
77
+ "targetRef": "EndEvent_Rejected"
78
+ },
79
+ {
80
+ "id": "Flow_Shipped",
81
+ "type": "SequenceFlow",
82
+ "sourceRef": "ServiceTask_ShipOrder",
83
+ "targetRef": "EndEvent_Shipped"
84
+ }
85
+ ]
86
+ },
87
+ {
88
+ "id": "Diagram_Process_OrderApproval",
89
+ "type": "BPMNDiagram",
90
+ "plane": {
91
+ "id": "Plane_Process_OrderApproval",
92
+ "type": "BPMNPlane",
93
+ "bpmnElement": "Process_OrderApproval",
94
+ "planeElements": [
95
+ {
96
+ "id": "Shape_StartEvent_OrderReceived",
97
+ "type": "BPMNShape",
98
+ "bpmnElement": "StartEvent_OrderReceived",
99
+ "bounds": {
100
+ "type": "Bounds",
101
+ "x": 100,
102
+ "y": 160,
103
+ "width": 36,
104
+ "height": 36
105
+ }
106
+ },
107
+ {
108
+ "id": "Shape_UserTask_ReviewOrder",
109
+ "type": "BPMNShape",
110
+ "bpmnElement": "UserTask_ReviewOrder",
111
+ "bounds": {
112
+ "type": "Bounds",
113
+ "x": 196,
114
+ "y": 138,
115
+ "width": 100,
116
+ "height": 80
117
+ }
118
+ },
119
+ {
120
+ "id": "Shape_ExclusiveGateway_Approved",
121
+ "type": "BPMNShape",
122
+ "bpmnElement": "ExclusiveGateway_Approved",
123
+ "bounds": {
124
+ "type": "Bounds",
125
+ "x": 356,
126
+ "y": 153,
127
+ "width": 50,
128
+ "height": 50
129
+ }
130
+ },
131
+ {
132
+ "id": "Shape_ServiceTask_ShipOrder",
133
+ "type": "BPMNShape",
134
+ "bpmnElement": "ServiceTask_ShipOrder",
135
+ "bounds": {
136
+ "type": "Bounds",
137
+ "x": 466,
138
+ "y": 100,
139
+ "width": 100,
140
+ "height": 80
141
+ }
142
+ },
143
+ {
144
+ "id": "Shape_EndEvent_Shipped",
145
+ "type": "BPMNShape",
146
+ "bpmnElement": "EndEvent_Shipped",
147
+ "bounds": {
148
+ "type": "Bounds",
149
+ "x": 626,
150
+ "y": 160,
151
+ "width": 36,
152
+ "height": 36
153
+ }
154
+ },
155
+ {
156
+ "id": "Shape_EndEvent_Rejected",
157
+ "type": "BPMNShape",
158
+ "bpmnElement": "EndEvent_Rejected",
159
+ "bounds": {
160
+ "type": "Bounds",
161
+ "x": 498,
162
+ "y": 220,
163
+ "width": 36,
164
+ "height": 36
165
+ }
166
+ },
167
+ {
168
+ "id": "Edge_Flow_Received",
169
+ "type": "BPMNEdge",
170
+ "bpmnElement": "Flow_Received",
171
+ "sourceElement": "Shape_StartEvent_OrderReceived",
172
+ "targetElement": "Shape_UserTask_ReviewOrder",
173
+ "waypoints": [
174
+ {
175
+ "type": "Point",
176
+ "x": 136,
177
+ "y": 178
178
+ },
179
+ {
180
+ "type": "Point",
181
+ "x": 196,
182
+ "y": 178
183
+ }
184
+ ]
185
+ },
186
+ {
187
+ "id": "Edge_Flow_Reviewed",
188
+ "type": "BPMNEdge",
189
+ "bpmnElement": "Flow_Reviewed",
190
+ "sourceElement": "Shape_UserTask_ReviewOrder",
191
+ "targetElement": "Shape_ExclusiveGateway_Approved",
192
+ "waypoints": [
193
+ {
194
+ "type": "Point",
195
+ "x": 296,
196
+ "y": 178
197
+ },
198
+ {
199
+ "type": "Point",
200
+ "x": 356,
201
+ "y": 178
202
+ }
203
+ ]
204
+ },
205
+ {
206
+ "id": "Edge_Flow_Approved",
207
+ "type": "BPMNEdge",
208
+ "bpmnElement": "Flow_Approved",
209
+ "sourceElement": "Shape_ExclusiveGateway_Approved",
210
+ "targetElement": "Shape_ServiceTask_ShipOrder",
211
+ "waypoints": [
212
+ {
213
+ "type": "Point",
214
+ "x": 406,
215
+ "y": 178
216
+ },
217
+ {
218
+ "type": "Point",
219
+ "x": 436,
220
+ "y": 178
221
+ },
222
+ {
223
+ "type": "Point",
224
+ "x": 436,
225
+ "y": 140
226
+ },
227
+ {
228
+ "type": "Point",
229
+ "x": 466,
230
+ "y": 140
231
+ }
232
+ ]
233
+ },
234
+ {
235
+ "id": "Edge_Flow_Rejected",
236
+ "type": "BPMNEdge",
237
+ "bpmnElement": "Flow_Rejected",
238
+ "sourceElement": "Shape_ExclusiveGateway_Approved",
239
+ "targetElement": "Shape_EndEvent_Rejected",
240
+ "waypoints": [
241
+ {
242
+ "type": "Point",
243
+ "x": 406,
244
+ "y": 178
245
+ },
246
+ {
247
+ "type": "Point",
248
+ "x": 452,
249
+ "y": 178
250
+ },
251
+ {
252
+ "type": "Point",
253
+ "x": 452,
254
+ "y": 238
255
+ },
256
+ {
257
+ "type": "Point",
258
+ "x": 498,
259
+ "y": 238
260
+ }
261
+ ]
262
+ },
263
+ {
264
+ "id": "Edge_Flow_Shipped",
265
+ "type": "BPMNEdge",
266
+ "bpmnElement": "Flow_Shipped",
267
+ "sourceElement": "Shape_ServiceTask_ShipOrder",
268
+ "targetElement": "Shape_EndEvent_Shipped",
269
+ "waypoints": [
270
+ {
271
+ "type": "Point",
272
+ "x": 566,
273
+ "y": 140
274
+ },
275
+ {
276
+ "type": "Point",
277
+ "x": 596,
278
+ "y": 140
279
+ },
280
+ {
281
+ "type": "Point",
282
+ "x": 596,
283
+ "y": 178
284
+ },
285
+ {
286
+ "type": "Point",
287
+ "x": 626,
288
+ "y": 178
289
+ }
290
+ ]
291
+ }
292
+ ]
293
+ }
294
+ }
295
+ ]
296
+ }
@@ -0,0 +1,82 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_1" targetNamespace="https://bpmn-ld.example.org/models/refund/" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI">
3
+ <process id="Process_Refund" name="Refund handling">
4
+ <startEvent id="Start_Requested" name="Refund requested">
5
+ <outgoing>Flow_1</outgoing>
6
+ </startEvent>
7
+ <userTask id="Task_Check" name="Check purchase">
8
+ <incoming>Flow_1</incoming>
9
+ <outgoing>Flow_2</outgoing>
10
+ </userTask>
11
+ <exclusiveGateway id="Gateway_Eligible" name="Eligible?" default="Flow_No">
12
+ <incoming>Flow_2</incoming>
13
+ <outgoing>Flow_Yes</outgoing>
14
+ <outgoing>Flow_No</outgoing>
15
+ </exclusiveGateway>
16
+ <serviceTask id="Task_Pay" name="Pay refund">
17
+ <incoming>Flow_Yes</incoming>
18
+ <outgoing>Flow_3</outgoing>
19
+ </serviceTask>
20
+ <endEvent id="End_Paid" name="Refund paid">
21
+ <incoming>Flow_3</incoming>
22
+ </endEvent>
23
+ <endEvent id="End_Declined" name="Refund declined">
24
+ <incoming>Flow_No</incoming>
25
+ </endEvent>
26
+ <sequenceFlow id="Flow_1" sourceRef="Start_Requested" targetRef="Task_Check"/>
27
+ <sequenceFlow id="Flow_2" sourceRef="Task_Check" targetRef="Gateway_Eligible"/>
28
+ <sequenceFlow id="Flow_Yes" name="Yes" sourceRef="Gateway_Eligible" targetRef="Task_Pay">
29
+ <conditionExpression xsi:type="tFormalExpression">eligible</conditionExpression>
30
+ </sequenceFlow>
31
+ <sequenceFlow id="Flow_No" name="No" sourceRef="Gateway_Eligible" targetRef="End_Declined"/>
32
+ <sequenceFlow id="Flow_3" sourceRef="Task_Pay" targetRef="End_Paid"/>
33
+ </process>
34
+ <bpmndi:BPMNDiagram id="Diagram_Process_Refund">
35
+ <bpmndi:BPMNPlane id="Plane_Process_Refund" bpmnElement="Process_Refund">
36
+ <bpmndi:BPMNShape id="Shape_Start_Requested" bpmnElement="Start_Requested">
37
+ <dc:Bounds x="100" y="160" width="36" height="36"/>
38
+ </bpmndi:BPMNShape>
39
+ <bpmndi:BPMNShape id="Shape_Task_Check" bpmnElement="Task_Check">
40
+ <dc:Bounds x="196" y="138" width="100" height="80"/>
41
+ </bpmndi:BPMNShape>
42
+ <bpmndi:BPMNShape id="Shape_Gateway_Eligible" bpmnElement="Gateway_Eligible">
43
+ <dc:Bounds x="356" y="153" width="50" height="50"/>
44
+ </bpmndi:BPMNShape>
45
+ <bpmndi:BPMNShape id="Shape_Task_Pay" bpmnElement="Task_Pay">
46
+ <dc:Bounds x="466" y="100" width="100" height="80"/>
47
+ </bpmndi:BPMNShape>
48
+ <bpmndi:BPMNShape id="Shape_End_Paid" bpmnElement="End_Paid">
49
+ <dc:Bounds x="626" y="160" width="36" height="36"/>
50
+ </bpmndi:BPMNShape>
51
+ <bpmndi:BPMNShape id="Shape_End_Declined" bpmnElement="End_Declined">
52
+ <dc:Bounds x="498" y="220" width="36" height="36"/>
53
+ </bpmndi:BPMNShape>
54
+ <bpmndi:BPMNEdge id="Edge_Flow_1" bpmnElement="Flow_1" sourceElement="Shape_Start_Requested" targetElement="Shape_Task_Check">
55
+ <di:waypoint x="136" y="178"/>
56
+ <di:waypoint x="196" y="178"/>
57
+ </bpmndi:BPMNEdge>
58
+ <bpmndi:BPMNEdge id="Edge_Flow_2" bpmnElement="Flow_2" sourceElement="Shape_Task_Check" targetElement="Shape_Gateway_Eligible">
59
+ <di:waypoint x="296" y="178"/>
60
+ <di:waypoint x="356" y="178"/>
61
+ </bpmndi:BPMNEdge>
62
+ <bpmndi:BPMNEdge id="Edge_Flow_Yes" bpmnElement="Flow_Yes" sourceElement="Shape_Gateway_Eligible" targetElement="Shape_Task_Pay">
63
+ <di:waypoint x="406" y="178"/>
64
+ <di:waypoint x="436" y="178"/>
65
+ <di:waypoint x="436" y="140"/>
66
+ <di:waypoint x="466" y="140"/>
67
+ </bpmndi:BPMNEdge>
68
+ <bpmndi:BPMNEdge id="Edge_Flow_No" bpmnElement="Flow_No" sourceElement="Shape_Gateway_Eligible" targetElement="Shape_End_Declined">
69
+ <di:waypoint x="406" y="178"/>
70
+ <di:waypoint x="452" y="178"/>
71
+ <di:waypoint x="452" y="238"/>
72
+ <di:waypoint x="498" y="238"/>
73
+ </bpmndi:BPMNEdge>
74
+ <bpmndi:BPMNEdge id="Edge_Flow_3" bpmnElement="Flow_3" sourceElement="Shape_Task_Pay" targetElement="Shape_End_Paid">
75
+ <di:waypoint x="566" y="140"/>
76
+ <di:waypoint x="596" y="140"/>
77
+ <di:waypoint x="596" y="178"/>
78
+ <di:waypoint x="626" y="178"/>
79
+ </bpmndi:BPMNEdge>
80
+ </bpmndi:BPMNPlane>
81
+ </bpmndi:BPMNDiagram>
82
+ </definitions>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL">
3
+ <bpmn:process id="Process_Refund" name="Refund handling">
4
+ <bpmn:startEvent id="Start_Requested" name="Refund requested" />
5
+ <bpmn:userTask id="Task_Check" name="Check purchase" />
6
+ <bpmn:exclusiveGateway id="Gateway_Eligible" name="Eligible?" default="Flow_No" />
7
+ <bpmn:serviceTask id="Task_Pay" name="Pay refund" />
8
+ <bpmn:endEvent id="End_Paid" name="Refund paid" />
9
+ <bpmn:endEvent id="End_Declined" name="Refund declined" />
10
+ <bpmn:sequenceFlow id="Flow_1" sourceRef="Start_Requested" targetRef="Task_Check" />
11
+ <bpmn:sequenceFlow id="Flow_2" sourceRef="Task_Check" targetRef="Gateway_Eligible" />
12
+ <bpmn:sequenceFlow id="Flow_Yes" name="Yes" sourceRef="Gateway_Eligible" targetRef="Task_Pay">
13
+ <bpmn:conditionExpression>eligible</bpmn:conditionExpression>
14
+ </bpmn:sequenceFlow>
15
+ <bpmn:sequenceFlow id="Flow_No" name="No" sourceRef="Gateway_Eligible" targetRef="End_Declined" />
16
+ <bpmn:sequenceFlow id="Flow_3" sourceRef="Task_Pay" targetRef="End_Paid" />
17
+ </bpmn:process>
18
+ </bpmn:definitions>
@@ -0,0 +1,22 @@
1
+ # Ordering
2
+
3
+ This collaboration shows how a customer and a shop work together to handle an order. The Customer places an order and waits for the shop to confirm it. The Shop starts when the order arrives, prepares it and sends back a confirmation.
4
+
5
+ ## Customer
6
+
7
+ 1. The process starts when the customer has a need: "Needs product".
8
+ 2. The customer performs "Place order", which sends the order to the shop.
9
+ 3. The customer then performs "Receive confirmation" and waits for the shop's answer.
10
+ 4. The process ends with "Order confirmed".
11
+
12
+ ## Shop
13
+
14
+ 1. The shop process starts when an order message arrives: "Order received".
15
+ 2. The shop performs "Prepare order".
16
+ 3. The shop performs "Send confirmation" to tell the customer the order is accepted.
17
+ 4. The process ends with "Order handled".
18
+
19
+ ## Messages exchanged
20
+
21
+ - "Order" goes from "Place order" in the Customer process to "Order received" in the Shop process.
22
+ - "Confirmation" goes from "Send confirmation" in the Shop process back to "Receive confirmation" in the Customer process.
@@ -0,0 +1,24 @@
1
+ # Order approval
2
+
3
+ The **Order approval** process handles a customer order from arrival to a final decision.
4
+
5
+ ## Summary
6
+
7
+ An order enters the process when it is received. A person reviews it and decides whether to approve it. An approved order is shipped; an order that is not approved is rejected.
8
+
9
+ ## Steps
10
+
11
+ 1. **Order received** is the start of the process. It begins whenever a new order arrives.
12
+ 2. **Review order** is a user task. A clerk examines the order.
13
+ 3. **Approved?** is an exclusive gateway. Exactly one path is taken after the review.
14
+ - On the **Yes** path, the condition `approved === true` holds and the order continues to shipping.
15
+ - On the **No** path, which is the default, the order is rejected.
16
+ 4. **Ship order** is a service task. The system ships the approved order, and the process ends with **Order shipped**.
17
+ 5. The rejected order ends the process with **Order rejected**.
18
+
19
+ ## Outcomes
20
+
21
+ | Outcome | End event |
22
+ | --- | --- |
23
+ | Order was approved and shipped | Order shipped |
24
+ | Order was not approved | Order rejected |
@@ -0,0 +1,17 @@
1
+ # Refund handling
2
+
3
+ The **Refund handling** process decides whether a customer receives money back and pays it out when the request is eligible. The source was BPMN 2.0 XML, converted to BPMN-LD with `npm run convert` before it was explained.
4
+
5
+ ## Summary
6
+
7
+ A customer asks for a refund, an employee checks the purchase, and the process either pays the refund or declines it.
8
+
9
+ ## Steps
10
+
11
+ 1. **Refund requested** starts the process.
12
+ 2. **Check purchase** is a user task. An employee verifies the purchase.
13
+ 3. **Eligible?** is an exclusive gateway with two outgoing paths.
14
+ - **Yes**: the request is eligible, so the process continues to payment.
15
+ - **No**: the default path. The request is declined.
16
+ 4. **Pay refund** is a service task that pays the money back, and the process ends with **Refund paid**.
17
+ 5. A declined request ends the process with **Refund declined**.
@@ -0,0 +1,39 @@
1
+ {
2
+ "@context": [
3
+ "../../../../contexts/core.jsonld",
4
+ { "@base": "https://example.org/models/activity-compensation/" }
5
+ ],
6
+ "@graph": [
7
+ {
8
+ "id": "Process_Trip",
9
+ "type": "Process",
10
+ "name": "Book a trip",
11
+ "flowElements": [
12
+ { "id": "TripRequested", "type": "StartEvent", "name": "Trip requested" },
13
+ { "id": "BookHotel", "type": "ServiceTask", "name": "Book hotel", "startQuantity": 1, "completionQuantity": 1 },
14
+ {
15
+ "id": "UndoBooking",
16
+ "type": "BoundaryEvent",
17
+ "name": "Booking undone",
18
+ "attachedToRef": "BookHotel",
19
+ "eventDefinitions": [{ "type": "CompensateEventDefinition" }]
20
+ },
21
+ { "id": "CancelHotel", "type": "ServiceTask", "name": "Cancel hotel", "isForCompensation": true },
22
+ { "id": "ArrangeTransfers", "type": "SubProcess", "name": "Arrange transfers", "startQuantity": 2, "completionQuantity": 0, "flowElements": [
23
+ { "id": "TransferStart", "type": "StartEvent", "name": "Begin" },
24
+ { "id": "BookShuttle", "type": "UserTask", "name": "Book shuttle" },
25
+ { "id": "TransferEnd", "type": "EndEvent", "name": "Done" },
26
+ { "id": "TransferFlow_1", "type": "SequenceFlow", "sourceRef": "TransferStart", "targetRef": "BookShuttle" },
27
+ { "id": "TransferFlow_2", "type": "SequenceFlow", "sourceRef": "BookShuttle", "targetRef": "TransferEnd" }
28
+ ] },
29
+ { "id": "TripBooked", "type": "EndEvent", "name": "Trip booked" },
30
+ { "id": "Flow_1", "type": "SequenceFlow", "sourceRef": "TripRequested", "targetRef": "BookHotel" },
31
+ { "id": "Flow_2", "type": "SequenceFlow", "sourceRef": "BookHotel", "targetRef": "ArrangeTransfers" },
32
+ { "id": "Flow_3", "type": "SequenceFlow", "sourceRef": "ArrangeTransfers", "targetRef": "TripBooked" }
33
+ ],
34
+ "artifacts": [
35
+ { "id": "Compensation_1", "type": "Association", "sourceRef": "UndoBooking", "targetRef": "CancelHotel", "associationDirection": "One" }
36
+ ]
37
+ }
38
+ ]
39
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "@context": [
3
+ "../../../../contexts/core.jsonld",
4
+ { "@base": "https://example.org/models/ad-hoc-sub-process/" }
5
+ ],
6
+ "@graph": [
7
+ {
8
+ "id": "Process_Support",
9
+ "type": "Process",
10
+ "name": "Support case",
11
+ "flowElements": [
12
+ { "id": "CaseOpened", "type": "StartEvent", "name": "Case opened" },
13
+ {
14
+ "id": "Investigate",
15
+ "type": "AdHocSubProcess",
16
+ "name": "Investigate case",
17
+ "ordering": "Parallel",
18
+ "cancelRemainingInstances": false,
19
+ "completionCondition": {
20
+ "type": "FormalExpression",
21
+ "language": "https://www.w3.org/TR/xpath20/",
22
+ "body": "count(fixes) > 0"
23
+ },
24
+ "flowElements": [
25
+ { "id": "CallCustomer", "type": "UserTask", "name": "Call customer" },
26
+ { "id": "InspectLogs", "type": "UserTask", "name": "Inspect logs" },
27
+ { "id": "ApplyFix", "type": "UserTask", "name": "Apply fix" }
28
+ ]
29
+ },
30
+ {
31
+ "id": "Document",
32
+ "type": "AdHocSubProcess",
33
+ "name": "Document findings",
34
+ "ordering": "Sequential",
35
+ "completionCondition": {
36
+ "type": "FormalExpression",
37
+ "body": "documented"
38
+ },
39
+ "flowElements": [
40
+ { "id": "WriteNotes", "type": "UserTask", "name": "Write notes" },
41
+ { "id": "FileReport", "type": "UserTask", "name": "File report" },
42
+ { "id": "NotesToReport", "type": "SequenceFlow", "sourceRef": "WriteNotes", "targetRef": "FileReport" }
43
+ ]
44
+ },
45
+ { "id": "CaseClosed", "type": "EndEvent", "name": "Case closed" },
46
+ { "id": "Flow_1", "type": "SequenceFlow", "sourceRef": "CaseOpened", "targetRef": "Investigate" },
47
+ { "id": "Flow_2", "type": "SequenceFlow", "sourceRef": "Investigate", "targetRef": "Document" },
48
+ { "id": "Flow_3", "type": "SequenceFlow", "sourceRef": "Document", "targetRef": "CaseClosed" }
49
+ ]
50
+ }
51
+ ]
52
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "@context": [
3
+ "../../../../contexts/core.jsonld",
4
+ { "@base": "https://example.org/models/boundary-event/" }
5
+ ],
6
+ "id": "Process_Ticket",
7
+ "type": "Process",
8
+ "name": "Support ticket",
9
+ "flowElements": [
10
+ { "id": "StartEvent_Opened", "type": "StartEvent", "name": "Ticket opened" },
11
+ { "id": "Task_Resolve", "type": "UserTask", "name": "Resolve ticket" },
12
+ { "id": "EndEvent_Closed", "type": "EndEvent", "name": "Ticket closed" },
13
+ {
14
+ "id": "BoundaryEvent_Overdue",
15
+ "type": "BoundaryEvent",
16
+ "name": "Two days passed",
17
+ "attachedToRef": "Task_Resolve",
18
+ "eventDefinitions": [{ "type": "TimerEventDefinition" }]
19
+ },
20
+ { "id": "Task_Escalate", "type": "UserTask", "name": "Escalate ticket" },
21
+ { "id": "EndEvent_Escalated", "type": "EndEvent", "name": "Ticket escalated" },
22
+ { "id": "Flow_Opened", "type": "SequenceFlow", "sourceRef": "StartEvent_Opened", "targetRef": "Task_Resolve" },
23
+ { "id": "Flow_Resolved", "type": "SequenceFlow", "sourceRef": "Task_Resolve", "targetRef": "EndEvent_Closed" },
24
+ { "id": "Flow_Overdue", "type": "SequenceFlow", "sourceRef": "BoundaryEvent_Overdue", "targetRef": "Task_Escalate" },
25
+ { "id": "Flow_Escalated", "type": "SequenceFlow", "sourceRef": "Task_Escalate", "targetRef": "EndEvent_Escalated" }
26
+ ]
27
+ }
@@ -0,0 +1,49 @@
1
+ {
2
+ "@context": [
3
+ "../../../../contexts/core.jsonld",
4
+ { "@base": "https://example.org/models/collaboration/" }
5
+ ],
6
+ "@graph": [
7
+ {
8
+ "id": "Collaboration_Ordering",
9
+ "type": "Collaboration",
10
+ "name": "Ordering",
11
+ "participants": [
12
+ { "id": "Participant_Customer", "type": "Participant", "name": "Customer", "processRef": "Process_Customer" },
13
+ { "id": "Participant_Shop", "type": "Participant", "name": "Shop", "processRef": "Process_Shop" }
14
+ ],
15
+ "messageFlows": [
16
+ { "id": "MessageFlow_Order", "type": "MessageFlow", "name": "Order", "sourceRef": "SendTask_PlaceOrder", "targetRef": "StartEvent_OrderReceived" },
17
+ { "id": "MessageFlow_Confirmation", "type": "MessageFlow", "name": "Confirmation", "sourceRef": "SendTask_Confirm", "targetRef": "ReceiveTask_AwaitConfirmation" }
18
+ ]
19
+ },
20
+ {
21
+ "id": "Process_Customer",
22
+ "type": "Process",
23
+ "name": "Customer",
24
+ "flowElements": [
25
+ { "id": "StartEvent_Wants", "type": "StartEvent", "name": "Needs product" },
26
+ { "id": "SendTask_PlaceOrder", "type": "SendTask", "name": "Place order" },
27
+ { "id": "ReceiveTask_AwaitConfirmation", "type": "ReceiveTask", "name": "Receive confirmation" },
28
+ { "id": "EndEvent_Confirmed", "type": "EndEvent", "name": "Order confirmed" },
29
+ { "id": "Flow_Wants", "type": "SequenceFlow", "sourceRef": "StartEvent_Wants", "targetRef": "SendTask_PlaceOrder" },
30
+ { "id": "Flow_Placed", "type": "SequenceFlow", "sourceRef": "SendTask_PlaceOrder", "targetRef": "ReceiveTask_AwaitConfirmation" },
31
+ { "id": "Flow_Received", "type": "SequenceFlow", "sourceRef": "ReceiveTask_AwaitConfirmation", "targetRef": "EndEvent_Confirmed" }
32
+ ]
33
+ },
34
+ {
35
+ "id": "Process_Shop",
36
+ "type": "Process",
37
+ "name": "Shop",
38
+ "flowElements": [
39
+ { "id": "StartEvent_OrderReceived", "type": "StartEvent", "name": "Order received", "eventDefinitions": [{ "type": "MessageEventDefinition" }] },
40
+ { "id": "Task_PrepareOrder", "type": "UserTask", "name": "Prepare order" },
41
+ { "id": "SendTask_Confirm", "type": "SendTask", "name": "Send confirmation" },
42
+ { "id": "EndEvent_Done", "type": "EndEvent", "name": "Order handled" },
43
+ { "id": "Flow_OrderReceived", "type": "SequenceFlow", "sourceRef": "StartEvent_OrderReceived", "targetRef": "Task_PrepareOrder" },
44
+ { "id": "Flow_Prepared", "type": "SequenceFlow", "sourceRef": "Task_PrepareOrder", "targetRef": "SendTask_Confirm" },
45
+ { "id": "Flow_Confirmed", "type": "SequenceFlow", "sourceRef": "SendTask_Confirm", "targetRef": "EndEvent_Done" }
46
+ ]
47
+ }
48
+ ]
49
+ }