The Ontology for Provenance and Plans (P-Plan) is an extension of the PROV-O ontology [PROV-O] created to represent the plans that guided the execution of scientific processes. P-Plan describes how the plans are composed and their correspondence to provenance records that describe the execution itself.
The latest OWL encoding of the P-Plan Ontology can be found here
P-Plan is an OWL2 ontology developed to describe abstract scientific workflows as plans and link them to their past executions.
P-Plan extends the W3C PROV-O Ontology [PROV-O], which encodes the W3C PROV
data model [PROV-DM]. PROV-DM describes the provenance
of objects (prov:Entities
) as a record of assertions about the steps (prov:Activities
) that generated them and the entities used in those steps.
Provenance describes past execution, but does not offer a vocabulary to express the plan that the execution was supposed to follow.
As an example, provenance vocabularies are appropriate for describing assays once they are executed, but are not designed to describe protocols. Therefore, in addition to the provenance record, it is often desirable to publish the plan that was followed during the execution. This would allow the provenance record to include what was envisioned would happen prior to the execution.
Publishing the plan has several benefits:
Acknowledging this need, PROV includes the term “prov:Plan
”. However, it does not elaborate any further how plans can be described or
related to other provenance elements of the execution, which is precisely the scope of the P-Plan ontology.
This document specifies the classes and properties of the P-Plan ontology.
P-Plan extends PROV to link the provenance traces to their plan descriptions. The next tables summarize the classes and properties that have been used to extend or complement the PROV-O Starting Point Terms to our domain. No dataproperties are included, because P-Plan doesn't define any:
P-plan uses PROV to represent the provenance of the execution and extends it to link it to the different parts of the plan.
PROV describes the usage and generation of entities through two main properties: prov:wasGeneratedBy
(an Entity wasGeneratedBy an Activity) and prov:used
(an Activity used an Entity for the execution).
The agents responsible for the execution are linked to the activity as prov:Agent
with the property
prov:wasAssociatedWith
. All properties can be qualified with prov:Roles
. Provenance assertions can be
grouped in prov:Bundles
, so that provenance can be asserted for the bundle.
In PROV plans are defined as entities associated with an agent and an activity. PROV does not specify anything further about plans and how they correspond to parts of the execution, as it is considered out of the scope of the model for provenance
Figure 1 shows an overview of P-PLAN and how it relates to PROV assertions,
showing plans at the top and plan executions at the bottom.
The provenance of the execution is entirely captured with PROV. Entity, activity and bundle concepts are subclasses
of PROV classes (p-plan:Bundle
, p-plan:Entity
and p-plan:Activity
) to be able
to represent their relationship with the parts of the plan (p-plan:correspondsToStep property for activities,
p-plan:correspondsToVariable
property for entities and prov:wasDerivedFrom
to connect
the bundle representing the execution to the plan).
p-plan:Plan
is a subclass of prov:Plan
. p-plan:Steps
represent the planned execution
activities. Plan steps may be bound to a specific executable step or refer to a class of steps, providing an abstraction
layer over the execution. As a result, a plan step could be carried out in different ways in different executions
of the same plan. In addition, a step may not have a corresponding activity, for example if there is an execution failure. Dependencies
between p-plan:Steps
are captured with the p-plan:isPreceededBy
relationship.
p-plan:Variables
represent the inputs of the steps and can have proper-ties (i.e., type, restrictions, metadata, etc.).
p-plan:Steps
have p-plan:Variables
as input and p-plan:Variables
are output of
p-plan:Steps
. Both of them are associated to
a p-plan:Plan
. The relation of the plan with agents and activities is not specified P-PLAN, since it can be modeled with PROV
(with the prov:hadPlan
property).
Note that prov:Plan
is a prov:Entity
, so its provenance can be modeled with PROV.
IRI:http://purl.org/net/p-plan#Entity
IRI: http://purl.org/net/p-plan#Activity
A p-plan:Activity represents the execution of the process planned in a p-plan:Step. p-plan:Activity is a subclass of prov:Activity
Example:
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix prov: <http://www.w3.org/ns/prov#> . @prefix p-plan: <http://purl.org/net/p-plan#> . <http://www.opmw.org/export/resource/CONVERTTOSTANDARDFORMAT133553> a p-plan:Activity ;#Applying inference, it is a prov:Activity as well. rdfs:label "Execution activity ConvertToStandardFormat" ; prov:used <http://www.opmw.org/export/resource/6C7CF277338D9590EE18534D4D78924F> ; p-plan:correspondsToStep <http://www.opmw.org/export/resource/CONVERTTOSTANDARDFORMAT> .
IRI: http://purl.org/net/p-plan#Bundle
A p-plan:Bundle is a specific type of prov:Bundle that contains the provenance assertions of the execution of a p-plan:Plan
Example:
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix p-plan: <http://purl.org/net/p-plan#> . <http://www.opmw.org/export/resource/BUNDLE1335533097598> a p-plan:Bundle> ;#Aplying inference, it is a prov:Bundle as well. rdfs:label "Bundle created on 1335533097598" .
IRI: http://purl.org/net/p-plan#Plan
A p-plan:Plan is a specific type of prov:Plan. It is composed of smaller steps (p-plan:Step) that use and produce Variables (p-plan:Variable).
Example:
@prefix p-plan: <http://purl.org/net/p-plan#> . @prefix dc: <http://purl.org/dc/terms/> . <http://www.opmw.org/export/resource/AQUAFLOW_NTM> a p-plan:Plan; 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 .
IRI: http://purl.org/net/p-plan#Step
A p-plan:Step represents the plan for a specific activity. A p-plan:Step can be a p-plan:Plan.
Example:
@prefix p-plan: <http://purl.org/net/p-plan#> . <http://www.opmw.org/export/resource/AQUAFLOW_NTM_STEP_1> a p-plan:Step; rdfs:label "AquaFlow_NTM" ; p-plan:hasInputVar http://www.opmw.org/export/resource/Var1; p-plan:isStepOfPlan http://www.opmw.org/export/resource/AQUAFLOW_NTM.
IRI: http://purl.org/net/p-plan#Variable
A p-plan:Variable represents a description of the input or output of the planned Activity (p-plan:Step).
Example:
@prefix p-plan: <http://purl.org/net/p-plan#> . <http://www.opmw.org/export/resource/AQUAFLOW_NTM_VAR_3> a p-plan:Variable; p-plan:isOutputVarOf <http://www.opmw.org/export/resource/AQUAFLOW_NTM_STEP_1> p-plan:isVariableOfPlan <http://www.opmw.org/export/resource/AQUAFLOW_NTM> .
IRI: http://purl.org/net/p-plan#correspondsToStep
p-plan:correspondsToStep links a p-plan:Activity to its planned p-plan:Step.
Example:
@prefix p-plan: <http://purl.org/net/p-plan#> . <http://www.opmw.org/export/resource/acc1> a p-plan:Activity; p-plan:correspondsToStep <http://www.opmw.org/export/resource/AQUAFLOW_NTM_STEP_1>. <http://www.opmw.org/export/resource/AQUAFLOW_NTM_STEP_1> a p-plan:Step.
has characteristics: functional
IRI: http://purl.org/net/p-plan#correspondsToVariable
p-plan:correspondsToVariable binds a p-plan:Entity (used by a p-plan:Activity in the execution of a plan) to the p-plan:Variable it represented it in the p-plan:Plan..
Example:
@prefix p-plan: <http://purl.org/net/p-plan#> . @prefix prov: <http://www.w3.org/ns/prov#> . <http://www.opmw.org/export/resource/Entity_1> a p-plan:Entity; p-plan:correspondsToVariable <http://www.opmw.org/export/resource/ReaerationEDM/Variable_1>. <http://www.opmw.org/export/resource/ReaerationEDM/Variable_1> a p-plan:Variable.
has characteristics: functional
IRI: http://purl.org/net/p-plan#hasInputVar
p-plan:hasInputVar binds a p-plan:Step to the p-plan:Variable that takes as input for the planned execution.
Example:
@prefix p-plan: <http://purl.org/net/p-plan#> . <http://www.opmw.org/export/resource/WorkflowExecutionProcess/acc1> a p-plan:Step; p-plan:hasInputVar <http://www.opmw.org/export/resource/AQUAFLOW_EDM_VAR_1>.
IRI: http://purl.org/net/p-plan#hasOutputVar
p-plan:hasOutputVar binds a p-plan:Step to the p-plan:Variable that will be produced as output in the planned execution
Example:
@prefix p-plan: <http://purl.org/net/p-plan#> . <http://www.opmw.org/export/resource/WorkflowExecutionProcess/acc1> a p-plan:Step; p-plan:hasOutputVar <http://www.opmw.org/export/resource/AQUAFLOW_EDM_VAR_2>.
IRI: http://purl.org/net/p-plan#isInputVarOf
p-plan:isInputVarOf links an input variable of the planned execution of a step to the step itself.
Example:
@prefix p-plan: <http://purl.org/net/p-plan#> . <http://www.opmw.org/export/resource/DEPTH> a p-plan; opmw:isInputVarOf <http://www.opmw.org/export/resource/AQUAFLOW_EDM_STEP_4> ; <http://www.opmw.org/export/resource/AQUAFLOW_EDM_STEP_2> a p-plan:Step
IRI: http://purl.org/net/p-plan#isOutputVarOf
p-plan:isOutputVarOf is intended to link an output variable of a step to the step.
Example:
@prefix p-plan: <http://purl.org/net/p-plan#> . <http://www.opmw.org/export/resource/DEPTH> a p-plan; opmw:isOutputVarOf <http://www.opmw.org/export/resource/AQUAFLOW_EDM_STEP_2> ; <http://www.opmw.org/export/resource/AQUAFLOW_EDM_STEP_2> a p-plan:Step
has characteristics: functional
IRI: http://purl.org/net/p-plan#isStepOfPlan
p-plan:isStepOfPlan links a p-plan:Step to the p-plan:Plan which it corresponds to.
Example:
@prefix p-plan: <http://purl.org/net/p-plan#> . <http://www.opmw.org/export/resource/REAERATIONEDM_STEP_1> a p-plan:Step; p-plan:isStepOfPlan <http://www.opmw.org/export/resource/WorkflowTemplateProcess/AQUAFLOW_EDM_REAERATIONEDM>.
IRI: http://purl.org/net/p-plan#isPreceededBy
p-plan:isPreceededBy links a p-plan:Step to the p-plan:Step preceeding it.
Example:
@prefix p-plan: <http://purl.org/net/p-plan#> . <http://www.opmw.org/export/resource/REAERATIONEDM_STEP_2> a p-plan:Step; p-plan:isPreceededBy <http://www.opmw.org/export/resource/WorkflowTemplateProcess/REAERATIONEDM_STEP_1>.
has characteristics: transitive
IRI:http://purl.org/net/p-plan#isVariableOfPlan
p-plan:IsVariableOfPlan binds a p-plan:Variable to the p-plan:Plan it corresponds to.
Example:
@prefix p-plan: <http://purl.org/net/p-plan> . <http://www.opmw.org/export/resource/AQUAFLOW_EDM_REAERATIONPARAMS> a p-plan:Variable; opmw:VariableOfPlan <http://www.opmw.org/export/resource/AQUAFLOW_EDM_REAERATIONEDM>.
We would like thank Varun Ratnakar for his help and his technical support and Silvio Peroni for developing LODE, tool used to create part of the cross-reference sections of this document.
A p-plan:Entity is a subclass of prov:Entity that represents the input of an executed p-plan:Activity. The p-plan:Entity corresponds to a p-plan:Variable in the overall p-plan:Plan.
Example: