Handle consecutive Smart Contract invocations (the dApp protocol) within the context of a encapsulating state machine (FSM) as expressed by a Petri Net and executed by an off-chain dApp-container. It will also facilitate cross-chain dApps (e.g. Cardano/Ergo - eUTXO chains) by running the state management via off-chain Petri Net execution. See: https://iandebeer.github.io/web3/blockchain/PetriNets/
Marlowe allows for the development of Contracts but does not provide a framework that allows developers to compose dApps from these contracts while managing the state of the dApp under execution. A Petri Net is a state transition graph that maps Places (wallets/states) to Transitions (Smart Contracts) and Transitions to Places via Arcs (Transactions). It is well suited for describing the flow of discrete concurrent processes. This provides a more concise way to validate, test and execute dApps. The attach pdf provides the context from a general Petri net perspective.
I am not a specialist in Cardano smart contracts, but the contracts themselves are mostly treated as "black boxes" that allow the Transitions (spending/burning of tokens). I am familiar with eUTXO from an Ergo perspective and the principles are the same