IBM Process Mining メモ - (4) BPMN

# はじめに
IBM Process Miningを実際に使ってみた時のログを記載していきます。
今回はBPMNの辺りを見てみます。

## 関連記事

[IBM Process Mining メモ - (1) 概要](https://qiita.com/tomotagwork/items/bf187d6cd8346cb1a86b)
[IBM Process Mining メモ - (2) RHEL8へのインストール](https://qiita.com/tomotagwork/items/bea465ddc195cf06fbf7)
[IBM Process Mining メモ - (3) CSVの取り込みとモデル](https://qiita.com/tomotagwork/items/73cccfc58f5a8836683f)
[IBM Process Mining メモ - (4) BPMN](https://qiita.com/tomotagwork/items/ba07959e49afd95e24e8)
[IBM Process Mining メモ - (5) BAWの情報の取り込み](https://qiita.com/tomotagwork/items/90ca2ac6d100e4c26786)

# BPMNの表示

以前の記事で参照モデルを作成する際、生成されたBPMNをエクスポートしてそれを参照モデルとして利用しました。このBPMN部分をもう少しみてみます。

## シンプルケース1

### データの取り込み

今回もシンプルな入力データを作ってそれがどのように可視化されるかを見ていきます。

<details><summary><font color="blue">test21.csv</font></summary><div>

```test21.csv
ProcessID,Activity,StartTime,StopTime,Resource,Role,Variable01,Variable02
P001,A0010,2022-01-01 01:00:00,2022-01-01 01:03:00,User11,Group01,A,1
P001,A0020,2022-01-01 01:10:00,2022-01-01 01:18:00,User11,Group01,B,2
P001,A0031,2022-01-01 01:20:00,2022-01-01 01:25:00,User31,Group03,C,3
P001,A0041,2022-01-01 01:30:00,2022-01-01 01:38:00,User12,Group01,D,4
P001,A0042,2022-01-01 01:30:10,2022-01-01 01:36:00,User41,Group04,E,5
P001,A0050,2022-01-01 01:40:00,2022-01-01 01:49:00,User11,Group01,F,6
P002,A0010,2022-01-01 02:00:00,2022-01-01 02:03:00,User11,Group01,G,7
P002,A0020,2022-01-01 02:10:00,2022-01-01 02:18:00,User11,Group01,H,8
P002,A0032,2022-01-01 02:20:00,2022-01-01 02:25:00,User32,Group03,I,9
P002,A0041,2022-01-01 02:30:00,2022-01-01 02:38:00,User12,Group01,J,10
P002,A0042,2022-01-01 02:30:10,2022-01-01 02:36:00,User41,Group04,K,11
P002,A0050,2022-01-01 02:40:00,2022-01-01 02:49:00,User11,Group01,L,12
```

</div></details>

2ケース分のデータを作成しています。フローはほぼ同じですが、3番目のアクティビティだけ A0031 or A0032 の違いがあります。Variale01, Variable02は業務固有データのイメージで、それぞれテキストと数値の情報を持っているものとします。

着目点
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/ac78e16b-e7ff-be00-0a4a-6ce88f919b74.png)

これをIBM Process Miningに食わせます。
取り込む際、Variable01, Variable02はカスタム・フィールドとしてマッピングしておきます。それぞれテキスト、整数型として定義します。他のフィールドは列名通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/2ed4401a-3e98-f5a1-33e5-2ec4c24d8cd3.png)

以下のようなモデルが生成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/c51907a2-8f7a-1de9-731b-98a63b4d1529.png)

※補足: 矢印の横の数値は遷移の頻度を表していますが、その隣のカッコ内の数値は並行して複数アクティビティーが動く場合の並行度を表しているようです。上の例の場合、A0041, A0042のアクティビティーは並行して処理させるイメージで元データを作成しているのでこのような表記になっています。ここで疑問なのは、前の記事でMulti Level Process Mining(複数ProcessID指定した分析)を行った際、同様に複数処理が派生しているケースがあったにもかかわらずこのようなカッコ書きの数値が現れなかったことです。恐らくProcessIDをまたがってアクティビティーが派生する部分(ReqID→複数OrderIDが派生するようなケース)では、このカッコ書きは表示されないと思われます。あくまで1プロセスIDの中で複数アクティビティーが並行処理される場合にこのような表記になると思われます。

参考: [Model](https://www.ibm.com/docs/en/cloud-paks/1.0?topic=started-model)
>Note: next to the frequency of a transition, a number in parentheses might be present: that represents the number of events of the same case that was run in parallel on multiple activities.

### BPMN表示
BPMNタブを開くと、認識されたフローがBPMNのプロセスモデルの形式で表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/31dbd5f4-e027-2c9e-5a5c-209a96dbfee5.png)

### ルール・ディスカバリー その1
ここで、分岐が発生する条件を入力データから推測させることができます。

"ルール・ディスカバリー"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/8e7a869e-2ca8-1231-f8c1-412df645b2f3.png)

分岐が生じる部分の条件を判断しています。(データが少ないのですぐ終わります)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/579f5d5d-58d9-45c2-fce2-bed7c295be3d.png)

分岐の菱形部分(GW-XOR-12)をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/5f95ec4f-5d2f-f12e-2624-2e8bfe7f4d74.png)

カスタム・フィールドとして指定した列から、分岐条件を判断して表示してくれています。Variable01の値が"B"の場合はA0031に分岐し、それ以外であればA0032に分岐する、という条件であると判断されています。今回は2ケースしかデータを投入していないので微妙ですが、投入データがたくさんあればその値から分岐条件を洗い出してくれます(当然のことながら、分岐条件に関連するデータは入力用のCSVに含めておく必要があります)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/5fd27356-301e-87d6-b676-e6d0edcee7c8.png)

### ルール・ディスカバリー その2

"設定"をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/d2f3a161-c10b-0bad-bc06-e9ec12cc62e9.png)

ここで、ルール・ディスカバリーに使用する(分岐条件の元になる)情報を選択できます。カスタムフィールド意外に、Resource, Role列も含めることができるようです。ここではVariable01のチェックを外してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/bcdc9684-08ae-db48-e069-45983f83d11e.png)

これで再度ルール・ディスカバリーを行って、上と同じルールを参照してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/2275591a-dcaa-018b-a880-2a370d62e57a.png)

"条件が見つかりません"となってしまいました。数値情報(Variable02)でルールを判断させるためにはある程度のデータ量が必要なのかもしれません。


## シンプルケース2

### データの取り込み

もう1ケース追加したデータを用意します。

<details><summary><font color="blue">test22.csv</font></summary><div>

```test22.csv
ProcessID,Activity,StartTime,StopTime,Resource,Role,Variable01,Variable02
P001,A0010,2022-01-01 01:00:00,2022-01-01 01:03:00,User11,Group01,A,1
P001,A0020,2022-01-01 01:10:00,2022-01-01 01:18:00,User11,Group01,B,2
P001,A0031,2022-01-01 01:20:00,2022-01-01 01:25:00,User31,Group03,C,3
P001,A0041,2022-01-01 01:30:00,2022-01-01 01:38:00,User12,Group01,D,4
P001,A0042,2022-01-01 01:30:10,2022-01-01 01:36:00,User41,Group04,E,5
P001,A0050,2022-01-01 01:40:00,2022-01-01 01:49:00,User11,Group01,F,6
P002,A0010,2022-01-01 02:00:00,2022-01-01 02:03:00,User11,Group01,G,7
P002,A0020,2022-01-01 02:10:00,2022-01-01 02:18:00,User11,Group01,H,8
P002,A0031,2022-01-01 02:20:00,2022-01-01 02:25:00,User32,Group03,I,9
P002,A0041,2022-01-01 02:30:00,2022-01-01 02:38:00,User12,Group01,J,10
P002,A0042,2022-01-01 02:30:10,2022-01-01 02:36:00,User41,Group04,K,11
P002,A0050,2022-01-01 02:40:00,2022-01-01 02:49:00,User11,Group01,L,12
P003,A0010,2022-01-01 03:00:00,2022-01-01 03:03:00,User11,Group01,M,13
P003,A0020,2022-01-01 03:10:00,2022-01-01 03:18:00,User11,Group01,N,14
P003,A0032,2022-01-01 03:20:00,2022-01-01 03:25:00,User33,Group03,O,15
P003,A0041,2022-01-01 03:30:00,2022-01-01 03:38:00,User12,Group01,P,16
P003,A0042,2022-01-01 03:30:10,2022-01-01 03:36:00,User41,Group04,Q,17
P003,A0050,2022-01-01 03:40:00,2022-01-01 03:49:00,User11,Group01,R,18
```

</div></details>

1つ目および2つめのフロー(P001,P002)では途中Activity:"A0031"が実行されており、のこりの1つのフロー(P003)ではActivity:"A0032"が実行されています。

着目点
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/705cd24c-e429-499d-e4c5-2122fb506ce4.png)


### BPMN表示

フローのパターンは変わっていないので表示されるBPMN図は同様です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/843204ea-1e44-b22a-3240-206799596761.png)

### ルール・ディスカバリー

シンプルケース1と同様に、ルール・ディスカバリーを行ってGW-XOR-12のルールをみてみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/f360811f-9869-07d8-0345-01a98631a023.png)

今度はVariable02の値を元に分岐条件が生成されました。

### BPMNエクスポート/Blueworks Liveへの取り込み

コピーの編集をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/5a90298d-638e-6671-4112-ed7eac6c826f.png)

エディターが開く。ここである程度編集もできるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/ae560e4b-07ca-1455-bc51-abd73d99830b.png)

右上のメニューからエクスポート - BPMNを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/a3e47adc-de35-718f-c87d-1c43bed00767.png)

ファイル名を指定してエクスポート
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/fae66f3b-bdb3-cd1b-6db3-6fa22a6c7328.png)

エクスポートされたファイルはこちら。

<details><summary><font color="blue">decision_test22_uzvv8.bpmn</font></summary><div>

```xml:decision_test22_uzvv8.bpmn
<?xml version="1.0" encoding="UTF-8"?>
<bpmn2:definitions xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" 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" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:invenio="http://invenio.cognitive.com.mt" id="BPMNDefinitions_1">
  <bpmn2:process id="BPMNProcess_1" isExecutable="true">
    <bpmn2:laneSet id="BPMNLaneSet_1" name="LaneSet_1">
      <bpmn2:lane id="lane_954048863" name="Group01">
        <bpmn2:flowNodeRef>node_772669662</bpmn2:flowNodeRef>
        <bpmn2:flowNodeRef>node_262773774</bpmn2:flowNodeRef>
        <bpmn2:flowNodeRef>node_2110470413</bpmn2:flowNodeRef>
        <bpmn2:flowNodeRef>node__791234826</bpmn2:flowNodeRef>
        <bpmn2:flowNodeRef>node_31553777</bpmn2:flowNodeRef>
        <bpmn2:flowNodeRef>node_683040312</bpmn2:flowNodeRef>
        <bpmn2:flowNodeRef>node__898853980</bpmn2:flowNodeRef>
        <bpmn2:flowNodeRef>node_314798053</bpmn2:flowNodeRef>
        <bpmn2:flowNodeRef>node__853627998</bpmn2:flowNodeRef>
      </bpmn2:lane>
      <bpmn2:lane id="lane__1556079430" name="Group04">
        <bpmn2:flowNodeRef>node__7256982</bpmn2:flowNodeRef>
        <bpmn2:flowNodeRef>node__827129124</bpmn2:flowNodeRef>
      </bpmn2:lane>
      <bpmn2:lane id="lane__1981696051" name="Group03">
        <bpmn2:flowNodeRef>node_1672760373</bpmn2:flowNodeRef>
        <bpmn2:flowNodeRef>node_1832897512</bpmn2:flowNodeRef>
        <bpmn2:flowNodeRef>node__468477057</bpmn2:flowNodeRef>
        <bpmn2:flowNodeRef>node__1846596594</bpmn2:flowNodeRef>
      </bpmn2:lane>
    </bpmn2:laneSet>
    <bpmn2:parallelGateway id="node__468477057" name="GW-AND-10" gatewayDirection="Diverging" />
    <bpmn2:startEvent id="node_31553777" name="START EVENT">
      <bpmn2:outgoing>node__2018679753</bpmn2:outgoing>
    </bpmn2:startEvent>
    <bpmn2:endEvent id="node_683040312" name="END EVENT" />
    <bpmn2:parallelGateway id="node_314798053" name="GW-AND-13" gatewayDirection="Converging" />
    <bpmn2:exclusiveGateway id="node__827129124" name="GW-XOR-14" gatewayDirection="Converging">
      <bpmn2:incoming>node__446064688</bpmn2:incoming>
      <bpmn2:incoming>node_1990254027</bpmn2:incoming>
      <bpmn2:outgoing>node_1639358388</bpmn2:outgoing>
    </bpmn2:exclusiveGateway>
    <bpmn2:userTask id="node__791234826" name="A0050" invenio:BackgroundColor="#E4E5F1">
      <bpmn2:incoming>node__1149981404</bpmn2:incoming>
      <bpmn2:outgoing>node_652983508</bpmn2:outgoing>
    </bpmn2:userTask>
    <bpmn2:parallelGateway id="node__1846596594" name="GW-AND-11" gatewayDirection="Diverging" />
    <bpmn2:exclusiveGateway id="node__853627998" name="GW-XOR-15" gatewayDirection="Converging">
      <bpmn2:incoming>node__930798175</bpmn2:incoming>
      <bpmn2:incoming>node_896959189</bpmn2:incoming>
      <bpmn2:outgoing>node__200033405</bpmn2:outgoing>
    </bpmn2:exclusiveGateway>
    <bpmn2:userTask id="node_1672760373" name="A0031" invenio:BackgroundColor="#E4E5F1">
      <bpmn2:incoming>node_1679475061</bpmn2:incoming>
      <bpmn2:outgoing>node_1306171337</bpmn2:outgoing>
    </bpmn2:userTask>
    <bpmn2:userTask id="node_2110470413" name="A0041" invenio:BackgroundColor="#E4E5F1">
      <bpmn2:incoming>node__200033405</bpmn2:incoming>
      <bpmn2:outgoing>node__1143551878</bpmn2:outgoing>
    </bpmn2:userTask>
    <bpmn2:userTask id="node_772669662" name="A0010" invenio:BackgroundColor="#E4E5F1">
      <bpmn2:incoming>node__2018679753</bpmn2:incoming>
      <bpmn2:outgoing>node_1227638820</bpmn2:outgoing>
    </bpmn2:userTask>
    <bpmn2:userTask id="node__7256982" name="A0042" invenio:BackgroundColor="#E4E5F1">
      <bpmn2:incoming>node_1639358388</bpmn2:incoming>
      <bpmn2:outgoing>node_28237290</bpmn2:outgoing>
    </bpmn2:userTask>
    <bpmn2:userTask id="node_262773774" name="A0020" invenio:BackgroundColor="#E4E5F1">
      <bpmn2:incoming>node_1227638820</bpmn2:incoming>
      <bpmn2:outgoing>node__1528193601</bpmn2:outgoing>
    </bpmn2:userTask>
    <bpmn2:exclusiveGateway id="node__898853980" name="GW-XOR-12" gatewayDirection="Diverging">
      <bpmn2:incoming>node__1528193601</bpmn2:incoming>
      <bpmn2:outgoing>node__316359501</bpmn2:outgoing>
      <bpmn2:outgoing>node_1679475061</bpmn2:outgoing>
    </bpmn2:exclusiveGateway>
    <bpmn2:userTask id="node_1832897512" name="A0032" invenio:BackgroundColor="#E4E5F1">
      <bpmn2:incoming>node__316359501</bpmn2:incoming>
      <bpmn2:outgoing>node_1117963844</bpmn2:outgoing>
    </bpmn2:userTask>
    <bpmn2:sequenceFlow id="node__1143551878" name="" sourceRef="node_2110470413" targetRef="node_314798053" data-expr="" />
    <bpmn2:sequenceFlow id="node__316359501" name="attr-custom-Variable02 &#62; 8.0" sourceRef="node__898853980" targetRef="node_1832897512" data-expr="attr-custom-Variable02 &#62; 8.0" />
    <bpmn2:sequenceFlow id="node_1227638820" name="" sourceRef="node_772669662" targetRef="node_262773774" data-expr="" />
    <bpmn2:sequenceFlow id="node__1528193601" name="" sourceRef="node_262773774" targetRef="node__898853980" data-expr="" />
    <bpmn2:sequenceFlow id="node__930798175" name="" sourceRef="node__1846596594" targetRef="node__853627998" data-expr="" />
    <bpmn2:sequenceFlow id="node__2018679753" name="" sourceRef="node_31553777" targetRef="node_772669662" data-expr="" />
    <bpmn2:sequenceFlow id="node_896959189" name="" sourceRef="node__468477057" targetRef="node__853627998" data-expr="" />
    <bpmn2:sequenceFlow id="node_28237290" name="" sourceRef="node__7256982" targetRef="node_314798053" data-expr="" />
    <bpmn2:sequenceFlow id="node_652983508" name="" sourceRef="node__791234826" targetRef="node_683040312" data-expr="" />
    <bpmn2:sequenceFlow id="node__200033405" name="" sourceRef="node__853627998" targetRef="node_2110470413" data-expr="" />
    <bpmn2:sequenceFlow id="node__446064688" name="" sourceRef="node__468477057" targetRef="node__827129124" data-expr="" />
    <bpmn2:sequenceFlow id="node_1117963844" name="" sourceRef="node_1832897512" targetRef="node__468477057" data-expr="" />
    <bpmn2:sequenceFlow id="node_1990254027" name="" sourceRef="node__1846596594" targetRef="node__827129124" data-expr="" />
    <bpmn2:sequenceFlow id="node_1306171337" name="" sourceRef="node_1672760373" targetRef="node__1846596594" data-expr="" />
    <bpmn2:sequenceFlow id="node__1149981404" name="" sourceRef="node_314798053" targetRef="node__791234826" data-expr="" />
    <bpmn2:sequenceFlow id="node_1639358388" name="" sourceRef="node__827129124" targetRef="node__7256982" data-expr="" />
    <bpmn2:sequenceFlow id="node_1679475061" name="attr-custom-Variable02 &#60;= 8.0" sourceRef="node__898853980" targetRef="node_1672760373" data-expr="attr-custom-Variable02 &#60;= 8.0" />
  </bpmn2:process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="BPMNProcess_1">
      <bpmndi:BPMNShape id="BPMNShape_node__468477057" bpmnElement="node__468477057">
        <dc:Bounds x="1215" y="355" width="50" height="50" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_node_31553777" bpmnElement="node_31553777">
        <dc:Bounds x="245" y="55" width="50" height="50" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_node_683040312" bpmnElement="node_683040312">
        <dc:Bounds x="2095" y="205" width="50" height="50" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_node_314798053" bpmnElement="node_314798053">
        <dc:Bounds x="1725" y="55" width="50" height="50" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_node__827129124" bpmnElement="node__827129124" isMarkerVisible="true">
        <dc:Bounds x="1355" y="675" width="50" height="50" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_node__791234826" bpmnElement="node__791234826">
        <dc:Bounds x="1865" y="45" width="140" height="70" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_node__1846596594" bpmnElement="node__1846596594">
        <dc:Bounds x="1215" y="515" width="50" height="50" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_node__853627998" bpmnElement="node__853627998" isMarkerVisible="true">
        <dc:Bounds x="1355" y="55" width="50" height="50" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_node_1672760373" bpmnElement="node_1672760373">
        <dc:Bounds x="985" y="505" width="140" height="70" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_node_2110470413" bpmnElement="node_2110470413">
        <dc:Bounds x="1495" y="45" width="140" height="70" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_node_772669662" bpmnElement="node_772669662">
        <dc:Bounds x="385" y="45" width="140" height="70" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_node__7256982" bpmnElement="node__7256982">
        <dc:Bounds x="1495" y="665" width="140" height="70" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_node_262773774" bpmnElement="node_262773774">
        <dc:Bounds x="615" y="45" width="140" height="70" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_node__898853980" bpmnElement="node__898853980" isMarkerVisible="true">
        <dc:Bounds x="845" y="55" width="50" height="50" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_node_1832897512" bpmnElement="node_1832897512">
        <dc:Bounds x="985" y="345" width="140" height="70" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge id="BPMNEdge_node__1143551878" bpmnElement="node__1143551878">
        <di:waypoint x="1635" y="80" />
        <di:waypoint x="1725" y="80" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node__316359501" bpmnElement="node__316359501">
        <di:waypoint x="870" y="105" />
        <di:waypoint x="870" y="375" />
        <di:waypoint x="875" y="380" />
        <di:waypoint x="985" y="380" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node_1227638820" bpmnElement="node_1227638820">
        <di:waypoint x="525" y="80" />
        <di:waypoint x="615" y="80" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node__1528193601" bpmnElement="node__1528193601">
        <di:waypoint x="755" y="80" />
        <di:waypoint x="845" y="80" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node__930798175" bpmnElement="node__930798175">
        <di:waypoint x="1240" y="515" />
        <di:waypoint x="1240" y="494" />
        <di:waypoint x="1286" y="494" />
        <di:waypoint x="1286" y="85" />
        <di:waypoint x="1291" y="80" />
        <di:waypoint x="1355" y="80" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node__2018679753" bpmnElement="node__2018679753">
        <di:waypoint x="295" y="80" />
        <di:waypoint x="385" y="80" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node_896959189" bpmnElement="node_896959189">
        <di:waypoint x="1240" y="355" />
        <di:waypoint x="1240" y="85" />
        <di:waypoint x="1245" y="80" />
        <di:waypoint x="1355" y="80" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node_28237290" bpmnElement="node_28237290">
        <di:waypoint x="1635" y="700" />
        <di:waypoint x="1745" y="700" />
        <di:waypoint x="1750" y="695" />
        <di:waypoint x="1750" y="105" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node_652983508" bpmnElement="node_652983508">
        <di:waypoint x="1935" y="115" />
        <di:waypoint x="1935" y="225" />
        <di:waypoint x="1940" y="230" />
        <di:waypoint x="2095" y="230" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node__200033405" bpmnElement="node__200033405">
        <di:waypoint x="1405" y="80" />
        <di:waypoint x="1495" y="80" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node__446064688" bpmnElement="node__446064688">
        <di:waypoint x="1240" y="405" />
        <di:waypoint x="1240" y="418" />
        <di:waypoint x="1278" y="418" />
        <di:waypoint x="1278" y="695" />
        <di:waypoint x="1283" y="700" />
        <di:waypoint x="1355" y="700" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node_1117963844" bpmnElement="node_1117963844">
        <di:waypoint x="1125" y="380" />
        <di:waypoint x="1215" y="380" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node_1990254027" bpmnElement="node_1990254027">
        <di:waypoint x="1240" y="565" />
        <di:waypoint x="1240" y="695" />
        <di:waypoint x="1245" y="700" />
        <di:waypoint x="1355" y="700" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node_1306171337" bpmnElement="node_1306171337">
        <di:waypoint x="1125" y="540" />
        <di:waypoint x="1215" y="540" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node__1149981404" bpmnElement="node__1149981404">
        <di:waypoint x="1775" y="80" />
        <di:waypoint x="1865" y="80" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node_1639358388" bpmnElement="node_1639358388">
        <di:waypoint x="1405" y="700" />
        <di:waypoint x="1495" y="700" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge id="BPMNEdge_node_1679475061" bpmnElement="node_1679475061">
        <di:waypoint x="870" y="105" />
        <di:waypoint x="870" y="535" />
        <di:waypoint x="875" y="540" />
        <di:waypoint x="985" y="540" />
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNShape id="BPMNShape_lane_954048863" bpmnElement="lane_954048863" isHorizontal="true">
        <dc:Bounds x="90" y="0" width="2020" height="300" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_lane__1556079430" bpmnElement="lane__1556079430" isHorizontal="true">
        <dc:Bounds x="90" y="620" width="2020" height="160" />
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape id="BPMNShape_lane__1981696051" bpmnElement="lane__1981696051" isHorizontal="true">
        <dc:Bounds x="90" y="300" width="2020" height="320" />
      </bpmndi:BPMNShape>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn2:definitions>
```

</div></details>


上のファイルをBlueworks Liveに取り込んでみる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/d80051f5-b0ee-e43c-4d2e-34ef9a05ca09.png)
普通に取り込めました。


## まとめ

ルール・ディスカバリーでは分岐の直前のアクティビティーの"リソース", "ロール", "カスタム・フィールド"の情報を元に分岐条件の判断を行われるようです(ルール・ディスカバリーに使用するフィールドの選択は可能)。
そのため、分岐条件の元となる情報は入力データの列に持たせておき、取り込み時にカスタム・フィールドとしてマッピングしておく必要があります。

今回の元データはシンプルで数も少なかったのですが、データ量が増えてカスタム・フィールドの数も増えると分岐条件も複雑になります。そのため分岐条件を一意に判断するのは難しくなります。どういう条件の場合どのくらいカバーされるか、というような形で分岐条件の候補が提示されることになるようです。
https://www.ibm.com/docs/en/cloud-paks/1.0?topic=started-decision-rules-mining
ここで提示されるルールはあくまで食わせたイベントログに基づく候補であって、ここで出てきたルールを参考にしながら最終的な分岐条件は人が設計/実装してあげないといけないのだと思います。

判定された分岐条件の情報は、BPMNのラベル情報としてしかエクスポートできなさそうです。
(例えばODMに食わせる元ネタとしてエクスポートする、みたいなことはできなさそう)