Resource identification in Transfers
This is a discussion topic. I'll introduce the concepts of independent and agent views of information in order to frame the topic.
This frame comes from REA, which provides an independent view of economic activities which is linked to, but different from, the trading partner or agent view. The independent view is public, the agent views are, or at least can be, private.
Here's an example of a transfer from https://content.iospress.com/articles/applied-ontology/ao198:
The white boxes in the middle represent the independent view. The pink and blue boxes represent agent or trading partner views.
I think, in general, VF should represent the independent view, since its purpose is to communicate between apps, but that is part of what is up for discussion in this topic.
The other part is how to identify resources in the independent view.
We've discussed identifying resources before in https://github.com/valueflows/valueflows/issues/351
We've also discussed resource identification on transfers, where in the agent views, two resources will be involved, one identified by the provider, the other by the receiver. But people have disliked having two resources identified on a transfer event, and also disliked having two events - a give and a take - involved in a transfer as a container of events. (The give and take events properly belong to agent views, not the independent view, as you can see in the diagram above.)
So I think if we want to represent a transfer as a single event, taking the independent view, all we need is the information to indirectly identify the resources involved. That could include a lot id or serial number, the providing and receiving agents, the resource classification and/or specification, and the transfer event. That set of information would be sufficient for each of the agents to identify the resources involved in their information space.
Location could be added, but then you might be dropping into an agent view: which location do you mean?
ERP systems, which take the view of an Enterprise (a group agent), have some equivalent of a LotLocation record which identifies stock resources by the combination of Lot ID and storage location. Any resource with the same Lot ID that gets put into the same storage location gets added to that resource. Warehousing systems do the same thing.
An automated warehouse that we have visited first scans incoming resources and adds them to the warehouse inventory as a whole, and then the robot takes them to a specific location and records that information. All of those actions get deeper into the view of a specific agent.
In my opinion, ValueFlows should represent the independent view, and not get into identifying the agent views of specific resources on transfers either once or twice. Let that be the job of the agents.