The Open Provenance Model for Workflows (OPMW) is an ontology for describing workflow traces and their templates based on the Open Provenance Model. It has been designed as a profile for OPM, extending and reusing OPM's core ontologies OPMV (OPM-Vocabulary) and OPMO (OPM-Ontology).
This document specifies the classes, properties and dataproperties of OPMW.
The OWL encoding of the OPMW Ontology can be found here
OPMW is an OWL-DL ontology developed to represent abstract workflows in addition to workflow execution traces. This requirement was motivated by the goal of publishing workflows of scientific articles and their results.
OPMW is based on the Open Provenance Model [Moreau el al 11], a widely-used domain-independent provenance model result of the Provenance Challenge Series and years of workflow provenance standardization and exchange in the scientific workflow community.
There are several reasons to use OPM: OPM has been already used successfully in many scientific workflow systems, its core definitions are domain independent and extensible to accommodate other purposes and OPM can be considered the basis of the emerging W3C Provenance Interchange Language (PROV), which is currently being developed by the W3C Provenance Working Group as a standard for representing and publishing provenance on the Web.
The OPMW profile aims to be simple and easy to use, following OPMV's style.
OPMW extends OPM to fit in the scientific workflow domain. The next tables summarize the classes, properties and data properties that have been used to extend or complement the OPM core to our domain:
The Open Provenance model offers several core concepts and relationships to represent provenance. It models the resources (datasets) as artifacts (immutable pieces of state), processes (action or series of actions performed on artifacts), and agents (controllers of processes). Their relationships are modeled in a provenance graph with five causal edges: used (a process used some artifact), wasControlledBy (an agent controlled some process), wasGeneratedBy (a process generated an artifact), wasDerivedFrom (an artifact was derived from another artifact) and wasTriggeredBy (a process was triggered by another process). It also introduces the concept of roles to assign the type of activity that artifacts, processes or agents played when interacting with each other, and the notion of accounts and provenance graphs to group sets of OPM assertions into different subgraphs. An account represents a particular view on the provenance of an artifact based on what was executed.
OPMW extends the previous relationships in order to capture the execution traces of a workflow template (process view provenance), plus the metadata of the template and execution itself (attribution provenance).
OPMW describes the traces of the execution of a workflow along with the abstract workflow (template) used for its design. The trace is described by extending opmv:Artifact with opmw:WorkflowExecutionArtifact; opmv:Process with WorkflowExecutionProcess; and reusing OPM relationships to link them(opmv:used, opmv:wasControlledBy and opmv:wasGeneratedBy). All the assertions from an execution are grouped in a opmw:WorkflowExecutionAccount, a subclass of opmo:Accoount that represents the view of the system on the execution.
Templates are defined with new terms in OPMW, in a similar way to the traces. In this case, the reuse of OPM is not appropriate since we are describing the plan of the workflow(which may be executed in the future or not), not the execution. Templates have opmw:WorkflowTemplateArtifacts (which can be either opmw:DataVariables or opmw:ParameterVariables) and opmw:WorkflowTemplateProcesses, which represent an abstraction of the method that is being executed.
The opmw:WorkflowTemplateArtifacts are connected to opmw:WorkflowTemplateProcesses by opmw:uses and opmw:isGeneratedBy properties. These properties define which type of opmw:WorkflowTemplateArtifact is used by each opmw:WorkflowTemplateProcess and the type of the expected result. The next figure shows a brief example.
Figure 1: An example of process view workflow provenance.
Figure 1 shows a process view high level diagram of the OPM and OPMW representation of an abstract workflow on the left and a workflow execution on the right. The example workflow shown here has one step (executionNode1), which runs the workflow component (specComp1) that has one input (execInput1) and one output (executionOutput1).
Attribution is key for scientists who publish the workflow. Thus, OPMW was designed to include metadata from the specification as well as from the execution itself. Figure 2 shows an attribution view on the provenance of the same workflow of Figure 1.
Figure 2: An example of attribution provenance
The abstract workflow contains information of the authors of the original article, the contributors of the workflow, the version, the date of creation and documentation of the abstract workflow (that may include a pointer to the publication). OPMW reuses terms from the Dublin Core (DC) Metadata Terms Vocabulary . The executed workflow links to the workflow systems used to create and execute it, the license, date of start and end of the run and the final status (succeeded or failed execution).
IRI: http://www.opmw.org/ontology/DataVariable
IRI: http://www.opmw.org/ontology/ParameterVariable
An parameter variable represents a description of an input parameter of a process. Parameter variables can only be used by process.
Example:
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix opmw: <http://www.opmw.org/ontology/> . <http://www.opmw.org/export/resource/ParameterVariable/AQUAFLOW_NTM_LATITUDE> a opmw:/WorkflowTemplateArtifact , opmw:ParameterVariable ; rdfs:label "Parameter variable Latitude" ; opmw:template <http://www.opmw.org/export/resource/WorkflowTemplate/AQUAFLOW_NTM> .
IRI: http://www.opmw.org/ontology/WorkflowExecutionAccount
A workflow execution account represents the execution view from the perspective of the system.
Example:
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmo: <http://openprovenance.org/model/opmo#> . <http://www.opmw.org/export/resource/WorkflowExecutionAccount/ACCOUNT1335533097598> a opmo:Account , opmw:WorkflowExecutionAccount> ; rdfs:label "Execution account created on 1335533097598" ; opmw:executedInWorkflowSystem <http://www.opmw.org/export/resource/Agent/SHELL> ; opmw:hasEndTime "2012-04-25T07:17:48-07:00"^^xsd:dateTime ; opmw:hasExecutionDiagram "http://wind.isi.edu/marbles/assets/components/Water/runs/run_144.png"^^xsd:anyURI ; opmw:overallStartTime "2012-04-25T07:17:05-07:00"^^xsd:dateTime ; opmw:hasStatus "SUCCESS" ;
IRI: http://www.opmw.org/ontology/WorkflowExecutionArtifact
A Workflow Execution Artifact represents a resource used or generated in the execution of a workflow.
Example:
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmv: <http://purl.org/net/opmv/ns#> . @prefix opmo: <http://openprovenance.org/model/opmo#> . <http://www.opmw.org/export/resource/WorkflowExecutionArtifact/25F1016C12EBE301EE7AADBC0B085C45> a opmw:WorkflowExecutionArtifact , opmv:Artifact; rdfs:label "Execution artifact with id: 25f1016c12ebe301ee7aadbc0b085c45" ; opmo:account <http://www.opmw.org/export/resource/WorkflowExecutionAccount/ACCOUNT1335533097598> ; opmv:wasGeneratedBy <http://www.opmw.org/export/resource/WorkflowExecutionProcess/p1> ; opmw:hasLocation "http://wings.isi.edu/opmexport/resource/1/144/Formatted_SMN_2010_03_10Z"^^xsd:anyURI ; opmw:hasSize "8618"^^xsd:int ; opmw:correspondsToTemplateArtifact <http://www.opmw.org/export/resource/DataVariable/AQUAFLOW_EDM_FORMATTEDDATA>.
IRI: http://www.opmw.org/ontology/WorkflowExecutionProcess
A workflow execution process represents the execution of a step in workflow template. The execution process also describes the specific method used to acomplish the task described in the proces template.
Example:
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmv: <http://purl.org/net/opmv/ns#> . @prefix opmo: <http://openprovenance.org/model/opmo#> . <http://www.opmw.org/export/resource/WorkflowExecutionProcess/CONVERTTOSTANDARDFORMAT133553> a opmw:/WorkflowExecutionProcess , opmv:Process ; rdfs:label "Execution process ConvertToStandardFormat" ; opmo:account <http://www.opmw.org/export/resource/WorkflowExecutionAccount/ACCOUNT1335533097598> ; opmv:used <http://www.opmw.org/export/resource/WorkflowExecutionArtifact/6C7CF277338D9590EE18534D4D78924F> ; opmv:wasControlledBy <http://www.opmw.org/export/resource/Agent/ADMIN> ; opmw:correspondsToTemplateProcess <http://www.opmw.org/export/resource/WorkflowTemplateProcess/CONVERTTOSTANDARDFORMAT> .
IRI: http://www.opmw.org/ontology/WorkflowTemplate
A workflow template represents the design of the workflow. In such design, the different steps and inputs don't have to be bound to a specific tool or dataset. It is a generic view of the workflow, which is instantiated in each execution.
Example:
@prefix dc: <http://purl.org/dc/terms/> . @prefix opmw: <http://www.opmw.org/ontology/> . <http://www.opmw.org/export/resource/WorkflowTemplate/AQUAFLOW_NTM> a opmw:WorkflowTemplate; rdfs:label "AquaFlow_NTM" ; dc:contributor <http://www.opmw.org/export/resource/Agent/WATER> ; dc:modified "2011-06-08T09:57:12-07:00"^^xsd:dateTime ; opmw:hasVersion "2"^^xsd:int .
IRI: http://www.opmw.org/ontology/WorkflowTemplateArtifact
A workflow template artifact is part of a workflow template. It explains what kind of artifact is used or generated by the process template, along with possible restrictions that it may have.
There are two different types of workflow template artifacts: data variables and parameter variables.
IRI: http://www.opmw.org/ontology/WorkflowTemplateProcess
A workflow process template is an abstraction of the workflow execution process step that aims to describe the method followed by the scientist instead of its specific instantiation.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . @prefix water: <http://www.isi.edu/ac/Water/library.owl#> . <http://www.opmw.org/export/resource/WorkflowTemplateProcess/AQUAFLOW_NTM_CALCULATEHOURLYAVERAGES> a opmw:ProcessTemplate, water:CalculateHourlyAverages; opmw:template <http://www.opmw.org/export/resource/WorkflowTemplate/AQUAFLOW_NTM> ; opmw:uses <http://www.opmw.org/export/resource/DataVariable/AQUAFLOW_NTM_FILTEREDDATA>.
IRI: http://www.opmw.org/ontology/executedInWorkflowSystem
Property to bind an execution account to the system where it was executed (which could be different from the one used for designing its workflow template).
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmo: <http://openprovenance.org/model/opmo#> . <http://www.opmw.org/export/resource/WorkflowExecutionAccount/acc1> a opmo:Account, opmw:executionAccount; opmw:executedInWorkflowSystem <http://www.opmw.org/export/resource/Agent/SHELL>. <http://www.opmw.org/export/resource/Agent/SHELL> a opmw:Agent.
has characteristics: functional
IRI: http://www.opmw.org/ontology/hasExecutableComponent
Property that binds a workflow execution process to the specific component (code, scripts, etc.) used in the execution.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmv: <http://purl.org/net/opmv/ns#> . <http://www.opmw.org/export/resource/WorkflowExecutionProcess/REAERATIONEDM133549210450086> a opmv:Process, opmw:WorkflowExecutionProcess; opmw:hasExecutableComponent <http://www.opmw.org/export/resource/ReaerationEDM/COMPONENTREAERATIONEDM>.
has characteristics: functional
IRI: http://www.opmw.org/ontology/correspondsToTemplate
Property that binds an execution account to the template of the whole workflow. The template contains the plan for the workflow.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmo: <http://openprovenance.org/model/opmo#> . <http://www.opmw.org/export/resource/WorkflowExecutionProcess/acc1> a opmo:Account, opmw:workflowExecutionAccount; opmw:correspondsToTemplate <http://www.opmw.org/export/resource/WorkflowTemplate/AQUAFLOW_EDM>.
has characteristics: functional
IRI: http://www.opmw.org/ontology/correspondsToTemplateArtifact
Property that binds a workflow execution artifact to its correspondant workflow template artifact.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmv: <http://purl.org/net/opmv/ns#> . <http://www.opmw.org/export/resource/WorkflowExecutionArtifact/DEPTH1.2150836> a opmv:Artifact, opmw:WorkflowExecutionArtifact; opmw:correspondsToTemplateArtifact <http://www.opmw.org/export/resource/ParameterVariable/AQUAFLOW_EDM_DEPTH>.
has characteristics: functional
IRI: http://www.opmw.org/ontology/correspondsToTemplateProcess
Property that binds a workflow execution process to its correspondant process template.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmv: <http://purl.org/net/opmv/ns#> . <http://www.opmw.org/export/resource/WorkflowExecutionProcess/REAERATIONEDM133549210450086> a opmv:Process, opmw:WorkflowExecutionProcess; opmw:correspondsToTemplateProcess <http://www.opmw.org/export/resource/WorkflowTemplateProcess/AQUAFLOW_EDM_REAERATIONEDM>.
has characteristics: functional
IRI: http://www.opmw.org/ontology/isGeneratedBy
Property that binds a workflow template artifact to the workflow template process that generates it.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . <http://www.opmw.org/export/resource/DataVariable/AQUAFLOW_EDM_REAERATIONPARAMS> a opmw:DataVariable, opmw:WorkflowTemplateArtifact; opmw:isGeneratedBy <http://www.opmw.org/export/resource/WorkflowTemplateProcess/AQUAFLOW_EDM_REAERATIONEDM>.
IRI: http://www.opmw.org/ontology/belongsToTemplate
Property used to dessignate which artifactTemplates and processTemplates belong to a workflow template.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . <http://www.opmw.org/export/resource/WorkflowTemplateProcess/AQUAFLOW_EDM_REAERATIONEDM> a opmw:WorkflowTemplateProcess; opmw:belongsToTemplate <http://www.opmw.org/export/resource/WorkflowTemplate/AQUAFLOW_EDM>.
IRI: http://www.opmw.org/ontology/uses
Property that binds a workflow template process to the workflow template artifact that generates it.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . <http://www.opmw.org/export/resource/WorkflowTemplateProcess/AQUAFLOW_EDM_REAERATIONEDM> a opmw:WorkflowTemplateProcess; opmw:uses <http://www.opmw.org/export/resource/DataVariable/PARAMETERSFILE>.
IRI: http://www.opmw.org/ontology/createdInWorkflowSystem
This data property binds a workflow template to the tool used for its design and creation. The tool is represented by its URL.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . <http://www.opmw.org/export/resource/WorkflowTemplate/AQUAFLOW_EDM> a opmw:WorkflowTemplate; opmw:createdInWorkflowSystem "http://wings.isi.edu"^^xsd:anyURI.
has characteristics: functional
IRI: http://www.opmw.org/ontology/hasDimensionality
Property that represents the dimensionality of the artifact: 0 is a single file, 1 for a collection, etc.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . <http://www.opmw.org/export/resource/DataVariable/AQUAFLOW_NTM_DAILYDATA> a opmw:DataVariable, opmw:WorkflowTemplateArtifact; opmw:hasDimensionality "1"^^xsd:int.
has characteristics: functional
IRI: http://www.opmw.org/ontology/hasDocumentation
Property that binds a workflow template to its documentation.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . <http://www.opmw.org/export/resource/WorkflowTemplate/AQUAFLOW_NTM> a opmw:WorkflowTemplate; opmw:hasDocumentation "A copy of the documentation related to this template "^^xsd:string.
IRI: http://www.opmw.org/ontology/overallEndTime
Property that indicates that the last of the activities in the account finished finished executing before this time.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmo: <http://openprovenance.org/model/opmo#> . <http://www.opmw.org/export/resource/WorkflowExecutionAccount/ACCOUNT1335506667949> a opmw:WorkflowExecutionAccount,opmo:Account; opmw:overallEndTime "2012-04-25T10:28:55-07:00"^^xsd:dateTime.
has characteristics: functional
IRI: http://www.opmw.org/ontology/hasExecutionDiagram
Property that links an execution account to its diagram. The diagram shows how the template has been instantiated with different components.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmo: <http://openprovenance.org/model/opmo#> . <http://www.opmw.org/export/resource/WorkflowExecutionAccount/ACCOUNT1335506667949> a opmw:WorkflowExecutionAccount,opmo:Account; opmw:hasExecutionDiagram "http://wind.isi.edu/marbles/assets/components/Water/runs/run_148.png"^^sxd:anyURI.
has characteristics: functional
IRI: http://www.opmw.org/ontology/hasFileName
Property used to link an execution artifact to its file name (independently of its URI).
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmv: <http://purl.org/net/opmv/ns#> . <http://www.opmw.org/export/resource/WorkflowExecutionArtifact/DCF49186981194248009E24BAD6A6412> a opmv:Artifact, opmw:WorkflowExecutionArtifact. opmw:hasFileName "NTMParams_SMN_2010_03_14Z"^^xsd:string.
has characteristics: functional
IRI: http://www.opmw.org/ontology/hasLocation
Property used to link an execution artifact to the physical location of its file in the server.
Example
@prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmv: <http://purl.org/net/opmv/ns#> . <http://www.opmw.org/export/resource/WorkflowExecutionArtifact/DCF49186981194248009E24BAD6A6412> a opmv:Artifact, opmw:WorkflowExecutionArtifact. opmw:hasLocation "http://www.opmw.org/datasets/resource/1/148/NTMParams_SMN_2010_03_14Z"^^xsd:anyURI.
IRI: http://www.opmw.org/ontology/hasSize
Property used to annotate a workflow execution artifact with the size in bytes of its file.
Example
@prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmv: <http://purl.org/net/opmv/ns#> . <http://www.opmw.org/export/resource/WorkflowExecutionArtifact/DCF49186981194248009E24BAD6A6412> a opmv:Artifact, opmw:WorkflowExecutionArtifact. opmw:hasLocation "68"^^xsd:int.
has characteristics: functional
IRI: http://www.opmw.org/ontology/overallStartTime
Property that indicates that none of the processes in the account started executing before this time.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmo: <http://openprovenance.org/model/opmo#> . <http://www.opmw.org/export/resource/WorkflowExecutionAccount/ACCOUNT1335506667949> a opmw:WorkflowExecutionAccount,opmo:Account; opmw:overallStartTime "2012-04-25T10:28:07-07:00"^^xsd:dateTime.
has characteristics: functional
IRI: http://www.opmw.org/ontology/hasStatus
Property used to state whether all the processes in an account were successful or not.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmo: <http://openprovenance.org/model/opmo#> . <http://www.opmw.org/export/resource/WorkflowExecutionAccount/ACCOUNT1335506667949> a opmo:Account, opmw:ExecutionAccount; opmw:hasStatus "SUCCESS"^^xsd.string.
has characteristics: functional
IRI: http://www.opmw.org/ontology/hasTemplateDiagram
Property used to link a workflow template to its graphical representation.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . <http://www.opmw.org/export/resource/WorkflowTemplate/AQUAFLOW_NTM> a opmw:WorkflowTemplate; opmw:hasTemplateDiagram "http://wind.isi.edu/marbles/assets/components/workflow_portal/users/1/Water/runs/run_148.png"xsd:anyURI.
IRI: http://www.opmw.org/ontology/hasValue
Property used to state the value of the artifact (in case of being a parameter).
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmv: <http://purl.org/net/opmv/ns#> . <http://www.opmw.org/export/resource/WorkflowExecutionArtifact/DEPTH0.61959237> a opmv:Artifact, opmw:WorkflowExecutionArtifact; opmw:hasValue "0.61959237"^^xsd:string.
has characteristics: functional
IRI: http://www.opmw.org/ontology/hasOriginalLogFile
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . @prefix opmo: <http://openprovenance.org/model/opmo#> . <http://www.opmw.org/export/resource/WorkflowExecutionAccount/ACCOUNT1335506667949> a opmw:WorkflowExecutionAccount,opmo:Account; opmw:hasOriginalLogFile "http://wind.isi.edu/marbles/assets/components/Water/runs/run_148.ttl"^^sxd:anyURI.
has characteristics: functional
IRI: http://www.opmw.org/ontology/hasNativeSystemTemplate
Property used to link a workflow template to its original template (encoded in the syntax of the workflow system where it was designed: scufl, owl, etc.).
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . <http://www.opmw.org/export/resource/WorkflowTemplate/AQUAFLOW_NTM> a opmw:WorkflowTemplate; opmw:hasNativeSystemTemplate "http://wind.isi.edu/marbles/assets/components/Water/AquaFlow_NTM.owl"xsd:anyURI.
has characteristics: functional
IRI: http://www.opmw.org/ontology/isConcrete
Property that specifies whether a component is abstract or not.
has characteristics: functional
IRI: http://www.opmw.org/ontology/versionNumber
Property used to annotate a resource with it version number.
Example:
@prefix opmw: <http://www.opmw.org/ontology/> . <http://www.opmw.org/export/resource/WorkflowTemplate/AQUAFLOW_NTM> a opmw:WorkflowTemplate; opmw:versionNumber "2"^^xsd:int.
has characteristics: functional
We would like thank:
A Data variable is a workflow template artifact that represents a variable in the workflow specification.
Example: