The P-Plan Ontology

The P-PLAN Ontology

Release 12 March 2014

This version:
http://vocab.linkeddata.es/p-plan/version/13032014/
Latest version:
http://purl.org/net/p-plan#
Previous version:
http://vocab.linkeddata.es/p-plan/version/17092013/
Revision
1.3
Authors:
Daniel Garijo, Ontology Engineering Group, Universidad Politécnica de Madrid
Yolanda Gil, Information Sciences Institute, University of Southern California, US
Extended Ontologies:
PROV-O: The PROV Ontology
Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

Abstract

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

Table of Contents

1. Introduction back to ToC

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:

  1. The plan can provide a higher-level, more abstract description of what was executed which improves understandability and facilitates reuse in future situations
  2. The plan can describe the expectations for the execution, which can then be contrasted with the provenance to detect deviations and correct abnormalities.

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.

1.1. Namespace declarations back to ToC

Table 2: Namespaces used in the document
p-plan<http://purl.org/net/p-plan#>
owl<http://www.w3.org/2002/07/owl#>
rdfs<http://www.w3.org/2000/01/rdf-schema#>
prov<http://www.w3.org/ns/prov#>

2. P-Plan Overview back to ToC

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:

Classes

Object properties

3. P-Plan Description back to ToC

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 concepts, 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 as an extension of PROV to describe plans.
Figure 1. P-PLAN as an extension of PROV to describe plans: The execution trace is captured with PROV-O statements (prov:used, prov:wasGeneratedBy) and the plan is captured with p-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:isPrecededBy 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.

3.1 Subplan representation

Plans may be included as part of other plans, and they can be represented in P-PLAN. However, if a plan A is directly included as a step of plan B, we may find inconsistencies when retrieving the steps that Preceded A (specifically if A is included in other plans appart from B). Therefore if a p-plan:Step represents a p-plan:Plan, it becomes a p-plan:MultiStep, and links to its correspondent p-plan:Plan with the p-plan:isDecomposedAsPlan relationship. This way the plan specification is separated from the plan composition.

An example can be seen in Figure 2. The plan P2 (which has 2 steps: Step1P2, Step2P2) is included in plan P1 (which has 3 steps: Step1p1, Step2p1, and Step3p1) as the third step (Step3p1). Therefore, Step3p1 is a p-plan:MultiStep, linked with P2 via the p-plan:isDecomposedAsPlan relationship. P2 is also linked to P1 with the p-plan:isSubPlanOf, which states the inclusion between the two plans explicitly. Every representation of P2 in a plan should be a p-plan:MultiStep, and linked back to P2.

Subplan representation in p-plan.
Figure 2.Subplan representation in P-PLAN: A Plan (P2) with 2 steps is contained as the third step of another plan (P1) with 3 steps.

4. Cross reference for P-Plan classes and properties

This section provides details for each class and property defined by the P-Plan Ontology.

4.1 Classes

p-plan:Entityc back to ToC or Class ToC

IRI:http://purl.org/net/p-plan#Entity

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:

	@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/WorkflowExecutionArtifact/a1>
		a p-plan:Entity ; #Applying inference, it becomes a prov:Entity implicitly.
		rdfs:label "Execution entity with id: a1" ;			
		prov:wasGeneratedBy <http://www.opmw.org/export/resource/WorkflowExecutionProcess/p1S> .
								

has super-classes
is in domain of
p-plan:correspondsToVariable op

p-plan:Activityc back to ToC or Class ToC

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/ConvertToStandardFormat1> 
		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/ConvertToStandardFormat1> .
								

has super-classes
is in domain of
p-plan:correspondsToStep op

p-plan:Bundlec back to ToC or Class ToC

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. prov:Bundles are prov:Entities. Therefore p-plan:Bundle is a subClass of p-plan:Entity.

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" .			
								

has super-classes

p-plan:MultiStepc back to ToC or Class ToC

IRI: http://purl.org/net/p-plan#MultiStep

A p-plan:MultiStep is the representation of a plan that appears as a step of another plan. p-plan:MultiStep is a subClass of p-plan:Plan and p-plan:Step.

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/MultiStep1>
		a       p-plan:MultiStep; #Aplying inference, it becomes a p-plan:Step and p-plan:Plan as well.
		rdfs:label "MultiStep created on 1335533097598";
		p-plan:isDecomposedAsPlan <http://www.opmw.org/export/resource/Plan/Plan1>.#The plan represented by this multiStep		
								

has super-classes
is in domain of
p-plan:isDecomposedAsPlan op

p-plan:Planc back to ToC or Class ToC

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 .
								

has super-classes
is in domain of
p-plan:isSubPlanOfPlan op
is in range of
p-plan:isStepOfPlan op, p-plan:isVariableOfPlan op, p-plan:isSubPlanOfPlan op,p-plan:isDecomposedAsPlan op

p-plan:Stepc back to ToC or Class ToC

IRI: http://purl.org/net/p-plan#Step

A p-plan:Step represents the planned execution activity.

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.
								

has super-classes
  • owl:Thing c
is in domain of
p-plan:hasInputVar op, p-plan:hasOutputVar op, p-plan:isStepOfPlan op, p-plan:isPrecededBy op
is in range of
p-plan:correspondsToStep op, p-plan:isOutputVarOf op, p-plan:isInputVarOf op, p-plan:isPrecededBy op

p-plan:Variablec back to ToC or Class ToC

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> .
								

has super-classes
  • owl:Thing c
is in domain of
p-plan:isOutputVarOf op, p-plan:isInputVarOf op, p-plan:isVariableOfPlan op
is in range of
p-plan:hasInputVar op, p-plan:hasOutputVar op, p-plan:correspondsToVariable op

4.2 Object Properties

p-plan:correspondsToStepop back to ToC or Object Property ToC

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

has domain
has range

p-plan:correspondsToVariableop back to ToC or Object Property ToC

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

has domain
has range

p-plan:hasInputVarop back to ToC or Object Property ToC

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>.
								

has domain
has range
has inverse

p-plan:hasOutputVarop back to ToC or Object Property ToC

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>.
								

has domain
has range
has inverse

p-plan:isDecomposedAsPlanop back to ToC or Object Property ToC

IRI: http://purl.org/net/p-plan#isDecomposedAsPlan

The p-plan:isDecomposedAsPlan relationship binds a p-plan:MultiStep to the p-plan:Plan holding the definition of that step. That is, p-plan:isDecomposedAsPlan links the MultiStep to the Plan sptecification where it is decomposed.

Example:

	@prefix p-plan: <http://purl.org/net/p-plan#> .

	<http://www.opmw.org/export/resource/WorkflowExecutionProcess/acc1>
		a p-plan:MultiStep;
		p-plan:isDecomposedAsPlan <http://www.opmw.org/export/resource/AQUAFLOW_EDM>.
								

has domain
has range

p-plan:isInputVarOfop back to ToC or Object Property ToC

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
								

has domain
has range
has inverse

p-plan:isOutputVarOfop back to ToC or Object Property ToC

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

has domain
has range
has inverse

p-plan:isStepOfPlanop back to ToC or Object Property ToC

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>. 
								

has domain
has range

p-plan:isPrecededByop back to ToC or Object Property ToC

IRI: http://purl.org/net/p-plan#isPrecededBy

p-plan:isPrecededBy 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:isPrecededBy <http://www.opmw.org/export/resource/WorkflowTemplateProcess/REAERATIONEDM_STEP_1>. 
								

has characteristics: transitive

has domain
has range

p-plan:isSubPlanOfPlanop back to ToC or Object Property ToC

IRI:http://purl.org/net/p-plan#isSubPlanOfPlan

A p-plan:Plan may be a subplan of another bigger p-plan:Plan. p-plan:isSubPlanOfPlan is used to state the link among the two different plans. Note that if p1 is a p-plan:subPlan of p2, p1will not necessarily be a step of p2. A multistep will represent p1 in p2, and link to p1 with the p-plan.hasStepDecomposition relationship.

Example:

							
	@prefix p-plan: <http://purl.org/net/p-plan> .

	<http://www.opmw.org/export/resource/AQUAFLOW_EDM_REAERATIONPARAMS>
		a p-plan:Plan;
		p-plan:isSubPlanOfPlan <http://www.opmw.org/export/resource/AQUAFLOW_EDM_REAERATIONEDM>.
								

has domain
has range

p-plan:isVariableOfPlanop back to ToC or Object Property ToC

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>.
								

has domain
has range

5. References back to ToC

6. Acknowledgements back to ToC

We would like thank Varun Ratnakar and Raul Alcazar 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.

Changes since last release back to ToC