Bug #4020
closedWRP - create WorkflowRun object to encapsulate provenance/report instances
0%
Description
We've got a "Workflow" object that allows us to keep track of Workflow models (MOML) and Report Layouts (ROML). We need an analogous class that can keep track of [the idea of] a WorkflowRun (or execution) - storing relevant provenance information (execution id?) and also Report Instances (RIO) so that they can eventually be serialized in an archive of some sort.
see the diagram here:
http://code.kepler-project.org/code/kepler-docs/trunk/teams-and-wg/4-interest-groups/provenance/reporting/wrp-architecture.png
Related issues
Updated by ben leinfelder over 15 years ago
We're now using a WorkflowRun object (subclass of NamedObj) to store the run provenance metadata. This moml snippet is included when exports of runs are generated. We'll include it in the KAR, but are also looking to use it as the metadata document that will be used in Metacat for archiving run history.
Updated by Derik Barseghian over 15 years ago
I'm currently getting errors parsing the WorkflowRun moml back from disk using momlparser, and am looking into it.
An example of a WorkflowRun moml is below:
cat WorkflowRun.0.xml
<!DOCTYPE entity PUBLIC "-//UC Berkeley//DTD MoML 1//EN"
"http://ptolemy.eecs.berkeley.edu/xml/dtd/MoML_1.dtd">
<entity name="WorkflowRun" class="org.kepler.util.WorkflowRun">
<property name="duration" class="ptolemy.kernel.util.StringAttribute" value="2">
</property>
<property name="startTime" class="ptolemy.kernel.util.StringAttribute" value="2009-06-11 19:36:30.0">
</property>
<property name="user" class="ptolemy.kernel.util.StringAttribute" value="barseghian">
</property>
<property name="workflowLSID" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:gamma.msi.ucsb.edu/OpenAuth/:293:58:1">
</property>
<property name="workflowName" class="ptolemy.kernel.util.StringAttribute" value="00-StatisticalSummary">
</property>
<property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList">
</property>
<property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:gamma.msi.ucsb.edu/OpenAuth/:293:60:1">
</property>
<property name="ReportLayout0" class="ptolemy.kernel.util.StringAttribute" value="ROML.0.xml">
</property>
<property name="karLSID" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:gamma.msi.ucsb.edu/OpenAuth/:293:62:1">
</property>
<property name="ReportInstance0" class="ptolemy.kernel.util.StringAttribute" value="RIO.0.pdf">
</property>
<property name="ReportInstance1" class="ptolemy.kernel.util.StringAttribute" value="RIO.0.xml">
</property>
</entity>
Updated by Derik Barseghian over 15 years ago
Thanks for the help Dan. I'm changing the _elementName of WorkflowRun to be property instead of entity (this probably didn't make sense since an Entity is "a vertex in a generalized graph...an aggregation of ports" ). momlparser is happier now. So the top of a new serialized run looks like:
<!DOCTYPE property PUBLIC "-//UC Berkeley//DTD MoML 1//EN"
"http://ptolemy.eecs.berkeley.edu/xml/dtd/MoML_1.dtd">
<property name="WorkflowRun" class="org.kepler.util.WorkflowRun">
...
Updated by Derik Barseghian over 15 years ago
So to have an example all in one place, this is what an example workflow-run moml metadata doc. If everyone (e.g. mike daigle?) feels this is sufficient for 2a1, we can retarget this bug for 2.0:
<!DOCTYPE property PUBLIC "-//UC Berkeley//DTD MoML 1//EN"
"http://ptolemy.eecs.berkeley.edu/xml/dtd/MoML_1.dtd">
<property name="WorkflowRun" class="org.kepler.util.WorkflowRun">
<property name="duration" class="ptolemy.kernel.util.StringAttribute" value="0">
</property>
<property name="startTime" class="ptolemy.kernel.util.StringAttribute" value="2009-06-18 11:28:51.0">
</property>
<property name="user" class="ptolemy.kernel.util.StringAttribute" value="derik">
</property>
<property name="workflowLSID" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:gamma.msi.ucsb.edu/OpenAuth/:260:2015:1">
</property>
<property name="workflowName" class="ptolemy.kernel.util.StringAttribute" value="testWorkflow2">
</property>
<property name="execId" class="ptolemy.kernel.util.StringAttribute" value="5">
</property>
<property name="derivedFrom" class="org.kepler.moml.NamedObjIdReferralList">
</property>
<property name="entityId" class="org.kepler.moml.NamedObjId" value="urn:lsid:gamma.msi.ucsb.edu/OpenAuth/:260:2035:1">
</property>
<property name="ReportLayout0" class="ptolemy.kernel.util.StringAttribute" value="ROML.5.xml">
</property>
<property name="karLSID" class="ptolemy.kernel.util.StringAttribute" value="urn:lsid:gamma.msi.ucsb.edu/OpenAuth/:260:2037:1">
</property>
<property name="ReportInstance0" class="ptolemy.kernel.util.StringAttribute" value="RIO.5.pdf">
</property>
<property name="ReportInstance1" class="ptolemy.kernel.util.StringAttribute" value="RIO.5.xml">
</property>
</property>
Updated by ben leinfelder over 15 years ago
using this:
<property name="ReportInstance0"
class="ptolemy.kernel.util.StringAttribute" value="RIO.5.pdf">
might be sub-optimal on the metacat side - but I believe we can manage
Updated by ben leinfelder over 15 years ago
We've got this working as we need it for SANParks