Skip to content

Align Split Miner gateway handling and SM2 lifecycle behavior with the reference implementation#557

Open
cRennert wants to merge 1 commit into
process-intelligence-solutions:releasefrom
cRennert:release
Open

Align Split Miner gateway handling and SM2 lifecycle behavior with the reference implementation#557
cRennert wants to merge 1 commit into
process-intelligence-solutions:releasefrom
cRennert:release

Conversation

@cRennert

@cRennert cRennert commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

This PR revises the Split Miner implementation to better match the reference miner behavior across filtering, split discovery, join discovery, OR handling, lifecycle-aware SM2 logs, and BPMN reduction.

Key changes include:

  • Replace the previous split/join handling with an Oracle-style split discovery and RPST/SESE-based join discovery.
  • Add lifecycle-aware SM2 parsing with overlap-based concurrency detection for complex logs.
  • Pin SM2 filtering to the reference eta = 1.0 behavior and make SM2 OR handling mandatory.
  • Add gateway-map based inclusive-join handling, OR-split promotion, compact self-loop export, and optional BPMN gateway collapsing.
  • Update Split Miner smoke/regression tests to reflect the new reference-aligned behavior.

@fit-alessandro-berti fit-alessandro-berti changed the title BPMN Reduction + Verification of results applied Align Split Miner gateway handling and SM2 lifecycle behavior with the reference implementation Jun 15, 2026
@fit-alessandro-berti

Copy link
Copy Markdown
Contributor

Dear @cRennert

Thanks for the contribution.

Can you double check on the following comments?

Possible Revisions Before Merge

  • Restore or replace coverage for the removed SM2 improper-completion regression. The previous test asserted that A can repeat through a D-free loop in the paper-style example; this branch no longer satisfies that property. If the behavior change is intentional, document it explicitly in the PR and changelog.
  • Consider compatibility shims for removed modules such as pm4py.algo.discovery.split_miner.heuristics, concurrency.refined, dfg_discovery.refined, and joins.classic, or call out the breaking import changes clearly.
  • Add focused unit tests for gateway_map.py and rpst_tree.py, especially loop joins, fake entry/exit flows, token generator placement, and non-biconnected graphs.
  • Add an explicit regression test showing that SM2 ignores user-provided eta and minimize_or_joins by design, so future reviewers do not mistake this for an accidental parameter bug.
  • Include a short rationale or reference comparison for the large changes to classic filtering, split discovery, and join discovery, because the expected gateway counts changed from the prior tests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants