Workflow evolution provenance and OPM Tommy Ellkvist and
- Slides: 10
Workflow evolution provenance and OPM Tommy Ellkvist and Juliana Freire Using Provenance to Support Real-Time Collaborative Design of Workflows
Workflow Evolution Workflows Version Tree 2 Data Products 2008
Action based representation of workflows u u Nodes represents workflows Edges represents actions Actions are transformations on workflows Actions are performed by users 0 Add Module(0) 1 Add Module(1) 2 Add Connection(0, 1) 3 3 2008
OPM XML schema: Example of OPM (The OPM, 2007) 4 2008
OPM XML schema: Translated OPM Example <OPMGraph. . . > <Artifact> <Artifact. Id>1</Artifact. Id> <Account>G</Account> <Account>O</Account> </Artifact> … <Process> <Process. Id>1</Process. Id> <Account>G</Account> </Process> <Process. Id>2</Process. Id> <Account>O</Account> </Process> <Process. Id>3</Process. Id> <Account>O</Account> </Process> … <Used Process. Id = "1" Role = "in" Artifact. Id = "1"> <Account>G</Account> </Used> <Used Process. Id = "2" Role = "pair" Artifact. Id = "1"> <Account>O</Account> </Used> <Used Process. Id = "3" Role = "in" Artifact. Id = "3"> <Account>O</Account> </Used> <Used Process. Id = "4" Role = "in" Artifact. Id = "4"> <Account>O</Account> </Used> <Used Process. Id = "5" Role = "left" Artifact. Id = "5"> <Account>O</Account> </Used> <Used Process. Id = "5" Role = "right" Artifact. Id = "6"> <Account>O</Account> </Used> <Was. Generated. By Artifact. Id = "2" Role = "out" Process. Id = "1"> <Account>G</Account> </Was. Generated. By> … <Alternate Account 1 = "O" Account 2 = "G"/> </OPMGraph> 5 2008
Vistrails XML Model <vistrail db. Host="" db. Name="" db. Port="" id="" name="" version="0. 9. 0" xmlns: xsi="http: //www. w 3. org/. . . "> <action date="2008 -05 -27 17: 35: 39" id="1" prev. Id="0" prune="" session="" user="g-tomel"> <add id="0" object. Id="0" parent. Obj. Id="" parent. Obj. Type="" what="module"> <module cache="1" id="0" name="String" package="edu. utah. sci. vistrails. basic" tag="" version="" /> </add> <add id="1" object. Id="0" parent. Obj. Type="module" what="location"> <location id="0" x="-89. 0" y="62. 0" /> </add> </action> <action date="2008 -05 -27 17: 35: 43" id="2" prev. Id="1" prune="" session="" user="g-tomel"> <add id="2" object. Id="1" parent. Obj. Id="" parent. Obj. Type="" what="module"> <module cache="1" id="1" name="Concatenate. String" package="edu. utah. sci. vistrails. basic" tag="" version="" /> </add> <add id="3" object. Id="1" parent. Obj. Type="module" what="location"> <location id="1" x="-20. 0" y="-67. 0" /> </add> </action> <action date="2008 -05 -27 17: 35: 46" id="3" prev. Id="2" prune="" session="" user="g-tomel"> <add id="4" object. Id="0" parent. Obj. Id="" parent. Obj. Type="" what="connection"> <connection id="0" /> </add> <add id="5" object. Id="1" parent. Obj. Id="0" parent. Obj. Type="connection" what="port"> <port id="1" module. Id="1" module. Name="Concatenate. String" name="str 1" spec="(edu. utah. sci. vistrails. basic: String)" type="destina </add> <add id="6" object. Id="0" parent. Obj. Type="connection" what="port"> <port id="0" module. Id="0" module. Name="String" name="value" spec="(edu. utah. sci. vistrails. basic: String)" type="source" /> </add> </action> </vistrail> 6 2008
Vistrails XML Model: Translated to OPM <Agent> <Agent. Id>concat. xml</Agent. Id> <Agent>G</Agent> <Artifact> <Artifact. Id>0</Artifact. Id> <Account>G</Account> </Artifact> <Artifact. Id>1</Artifact. Id> <Account>G</Account> </Artifact> <Artifact. Id>2</Artifact. Id> <Account>G</Account> </Artifact> <Artifact. Id>3</Artifact. Id> <Account>G</Account> </Artifact> <Process. Id>1</Process. Id> <Account>G</Account> </Process> <Process. Id>2</Process. Id> <Account>G</Account> </Process> <Process. Id>3</Process. Id> <Account>3</Account> </Process> <Used Process. Id = "1" Role = "in" Artifact. Id = "0"stop. Time. Begin = "2008 -05 -27 17: 35: 39" stop. Time. End = "2008 -05 -27 17: 35: 39"> <Account>G</Account> </Used> <Used Process. Id = "2" Role = "in" Artifact. Id = "1" stop. Time. Begin = "2008 -05 -27 17: 35: 43" stop. Time. End = <Account>G</Account> </Used> <Used Process. Id = "3" Role = "in" Artifact. Id = "2” stop. Time. Begin = "2008 -05 -27 17: 35: 46" stop. Time. End = <Account>G</Account> </Used> <Was. Generated. By Artifact. Id = "1" Role = "out" Process. Id = "1” stop. Time. Begin = "2008 -05 -27 17: 35: 39” stop. Time. End = "2008 -05 -27 17: 35: 39"> <Account>G</Account> </Was. Generated. By> <Was. Generated. By Artifact. Id = "2" Role = "out" Process. Id = "2” stop. Time. Begin = "2008 -05 -27 17: 35: 43" s <Account>G</Account> </Was. Generated. By> <Was. Generated. By Artifact. Id = "3" Role = "out" Process. Id = "3” stop. Time. Begin = "2008 -05 -27 17: 35: 46" s <Account>G</Account> </Was. Generated. By> <Was. Controlled. By Process. Id = "1" Agent. Id = "concat. xml" start. Time. Begin = "2008 -05 -27 17: 35: 39” start. Time. End = "2008 -05 -27 17: 35: 39” stop. Time. Begin = "2008 -05 -27 17: 35: 39” stop. Time. End = "2008 -05 -27 17: 35: 39"> <Account>G</Account> </Was. Controlled. By> <Was. Controlled. By Process. Id = "1" Agent. Id = "concat. xml" start. Time. Begin = "2008 -05 -27 17: 35: 43" start. T <Account>G</Account> </Was. Controlled. By> <Was. Controlled. By Process. Id = "1" Agent. Id = "concat. xml" start. Time. Begin = "2008 -05 -27 17: 35: 46" start. T <Account>G</Account> </Was. Controlled. By> 7 2008
Observations u General model – Only contains enough information to traverse the provenance graph – No additional information stored u Different ways of representing workflow design provenance – Edges as actions – Edges as version differences 8 2008
Observations u What is the time? – How to interpret a time T of a process? – Does interpretation affect querying – Semantics of intervals u Who is the Agent? – – u Users Workflow system The session Workflow specification ”OPM Level 2”? – Are ther workflow specifics we want to express 9 2008
Interoperability 10 2008