Process vs Agreement vs ?
In working on the transfer model, I find myself trying to use Process in ways that might push the boundaries of how it is currently defined (changes inputs into outputs). But it does come in handy for tying together events besides the usual inputs and outputs. These assume we will have one economic event representing a transfer, which I think we have tentative agreement on, but is not firmly decided.
Examples:
- Checking out a library book - a transfer from the library to a person, a commitment to transfer it back, then later a transfer from the person back to the library, fulfilling the commitment. These don't particularly require a Process, but it handily ties them together. And doesn't have the downsides of trying to make the whole interval between checkout and checkin into one event.
- Transfer of a crypto-currency and the fee for the transfer to the 3rd party supporting the transfer (miner, server operator). Could create a service output of a Process that makes the main transfer, and then exchange that service for the fee, under an Agreement. Or could just put both transfers under one Process, and that is it, simpler. Possibly could just put both transfers under Agreement too, without the service. Not an exchange, but related transfers with some kind of "default" agreement, sort of. But the initial transfer might also relate to an actual exchange agreement.
One thing that happens when putting transfers under a Process is that it is not clear what is an input and what is an output. In some ways a Process that is about facilitating a transfer could have the transfer as an output, and whatever inputs are needed to do that would be inputs as usual (work, equipment, etc.) Or we make a new property for this, like inputOutputOf or transferOf. In any case, processing of transfer events as part of a value flow will have to know that there is an input and an output involved, whether part of a process or not.
@bhaugen points out that McCarthy has added "business process" as a concept, which can cover this sort of thing. But noting: he doesn't have our Process in his model (he has Conversion, and also often uses EconomicEvent more broadly than we do, with Stockflow being our event).
In any case, I would like to either define Process a bit more broadly and use that, or create a new concept that is another container of related events but is not an Agreement or an exchange. Thoughts?