# 圏論から見たビジネスプロセス
- ビジネスプロセス = パイプライン > 業務ステップ
- 業務ステップ
- 文書から文書への写像
## 1. 圏としての業務フロー
業務フローの圏
| **概念** | **業務フローの圏** |
| ------------- | ------------------------ |
| 対象 (Object) | 文書 |
| 射 (Morphism) | 業務ステップ |
| 射の合成 | パイプライン |
| 恒等射 | 何も変化を起こさない操作 |
## 2. 関手 (Functor) としての業務システム
業務圏 $\mathcal{W}$ とシステム圏 $\mathcal{S}$ としたときの関手 $F: \mathcal{W} \to \mathcal{S}$
| **概念** | **業務($\mathcal{W}$) ** | **システム圏($\mathcal{S}$)** |
| -------- | ------------------------------ | ------------------------------- |
| 対象 | 文書(見積書など) | データ構造(DBテーブルなど) |
| 射 | 業務ステップ(作成・承認など) | 関数・API・画面遷移など |
| 関手 $F$ | モデルの抽象表現 | 実装へのマッピング |
## 3. 自然変換とシステムのバージョン管理
業務モデルが変更された場合、たとえば旧業務モデル $\mathcal{W}_1$ と新業務モデル $\mathcal{W}_2 x$ があり、それぞれに対応するシステム $\mathcal{S}_1$, $\mathcal{S}_2$ があるとする。
そのとき、**関手** $F_1: \mathcal{W}_1 \to \mathcal{S}_1$、$F_2: \mathcal{W}_2 \to \mathcal{S}_2$ があったとして、
この間の**自然変換(Natural Transformation)** $\eta: F_1 \Rightarrow F_2$ は、
「業務変更に伴うシステム変更のマッピング」を形式化することができる。
## 4. 双圏(Bicategory)としての業務プロセス
現実の業務では「ひとつの射」だけでなく、「射と射の関係」や「承認者」「例外処理」などの**メタプロセス**が存在する。
このような構造を扱うには、**双圏(Bicategory)** が有用:
- 対象:文書
- 1-射:業務ステップ(例:A→B へ変換)
- 2-射:業務ステップ同士の関係(例:A→B の経路が2つあり、それらがどういう関係かを示す)
たとえば「手動承認」と「自動承認」は同じ入力と出力でも意味が異なるプロセスだが、双圏ならこれを区別して表現できる。
例
| **状況** | **双圏的な捉え方** |
| -------------------------------------- | ---------------------------- |
| 文書Aから文書Bへの処理が複数ある | 1-射(f, gなど)で表現 |
| 処理方法Aと処理方法Bの違いを明示したい | 2-射(α: f ⇒ g)で表現 |
| 手動プロセスを自動化したい、という変化 | f ⇒ g という2-射の導入で表現 |
| プロセス同士を比較・変換・抽象化したい | 双圏で可能 |
## 5. モナド(Monad)としての業務制約
**業務ルールや制約(たとえば承認の必要性や検閲)** を表現するにはモナドが使える。
- モナドは「副作用のある計算」を文脈付きで表現する枠組み
- 業務上の「承認待ち」「検閲済み」「一時保留」などの**文脈を包んだ業務状態**を表せる
👉 [[ビジネスプロセスとモナド]]
例:
- `Document` → `Approved<Document>`
- `Monad<Document>` のように、文書の状態をコンテキスト付きで処理していける
これはワークフローエンジンや状態遷移管理(ステートマシン)とも関連する。
応用:
- 2-射に「コスト」「時間」「リスク」などを付与すれば、業務プロセス間の比較評価が可能。
- 実装上は「承認API(手動 or 自動)」を差し替えることでシステム設計にも直結。
- モデルをそのまま業務設計支援やワークフロー改善提案に使える。
分析・改善への応用:
- プロセスの**改善余地**(自動化できるところ)を明確に比較可能
- 同じ「業務目的」に対する**複数の手段の設計・評価**ができる
- プロセスの切替(2-射)を「戦略的変更」として文書化・制御可能
## まとめ
| **圏論概念** | **業務への応用例** |
| -------- | ---------------------- |
| 圏 | 業務フロー(文書とプロセス) |
| 関手 | 業務モデルから IT システムへのマッピング |
| 自然変換 | 業務モデルのバージョン変更・移行 |
| 双圏 | プロセス間の関係・例外処理 |
| モナド | 承認や保留といった業務状態の表現 |