Right now, DAT keeps track of the version it knows, and will assume that any other (that results from an action in VisTrails) is not related to a DAT recipe.
However, some of these action might be very minor changes that maintain the overall structure of the pipeline, like:
Moving modules
Changing parameters
Changing modules in the plot
In the case when an unknown pipeline is displayed, and the parent is a DAT-generated version, we could check it and accept it as a DAT pipeline. Updates would still work too.
comment by juliana:
Do you mean that DAT will keep a pointer to the last version it created, and it any further changes are made on the VisTrails side it will ignore?
I am not sure I understand what is going on here. Is DAT keep track of provenance independently from VisTrails?
comment by dakoop:
DAT uses VisTrails infrastructure to track and store versions in a vt file that is still readable by the normal VisTrails application. However, it makes use of annotations? to track DAT-specific information. Then, if a user opens a DAT-generated vt in the normal VisTrails application, makes a change, saves it, and then opens the vt back up in the DAT, what should the DAT do here? Rémi is proposing that some minor changes could be read by the DAT so that some changes made in the normal VisTrails application could be translated. Otherwise, he will just backtrack up the tree until he finds a version that has the necessary DAT annotations.
comment by @remram44:
Yes, the "recipe" and other specific information is store as annotations on each version.
These recipes are displayed in the overlay and also keep track of which parameter is composed of what modules, so that they can be removed or replaced with another variables if the user chooses to drop something else.
If a modification happens outside of DAT, there is no guarantee that the new pipeline still corresponds to the same plot, has the same variables or is valid at all. But if it is not radically different from the parent version that has a DAT annotation, we should be able to understand what the recipe is, and it could even be simply the same one if the user only changed parameters or tweaked the plot's modules, and we should still be able to use DAT's interface to perform updates (such as adding/removing variables).
Of course, if the user changes everything we won't be able to understand what the new pipeline means.
(originally TRAC#23, 2013-03-26)
comment by juliana:
comment by dakoop:
comment by @remram44:
comment by @remram44: