Ontology for Provenance and Plans (P-Plan)¶
The Ontology for Provenance and Plans (P-Plan) is an extension of the PROV-O ontology created to represent the plans that guide the execution of scientific processes [1] [2]. P-Plan describes how plans are composed and how their elements correspond to provenance records that describe the execution itself [1] [2]. It provides a structured vocabulary for representing plans, steps, variables, activities, entities, agents, and the relationships between abstract process descriptions and concrete executions [1] [2].
The ontology uses a class-based modeling approach, defining concepts such as p-plan:Plan, p-plan:Step, and p-plan:Variable, together with links to execution-level provenance entities and activities [1] [2]. This allows researchers to distinguish between the intended structure of a process and the actual provenance trace generated when that process is executed [2]. P-Plan supports interoperability between workflow descriptions, scientific process models, and provenance records by connecting planned process structures with their corresponding execution data [1] [2].
Typical applications of P-Plan include scientific workflow documentation, provenance tracking, process reproducibility, workflow comparison, experiment reporting, and integration of provenance data across computational research systems [2]. By connecting plans with execution provenance, P-Plan helps researchers understand how results were produced, which steps were followed, and how abstract methods correspond to concrete process executions [1] [2].
Example Usage: Annotate a scientific process with P-Plan terms to describe the overall plan, individual steps, input and output variables, responsible agents, and the corresponding execution activities and entities generated during execution. This enables semantic search, provenance tracking, reproducibility analysis, and integration with workflow and provenance management platforms [1] [2].
Metrics & Statistics¶
Total Nodes |
52 |
Total Edges |
100 |
Root Nodes |
10 |
Leaf Nodes |
24 |
Classes |
11 |
Individuals |
0 |
Properties |
14 |
Maximum Depth |
2 |
Minimum Depth |
0 |
Average Depth |
0.59 |
Depth Variance |
0.60 |
Maximum Breadth |
10 |
Minimum Breadth |
3 |
Average Breadth |
5.67 |
Breadth Variance |
9.56 |
Term Types |
0 |
Taxonomic Relations |
16 |
Non-taxonomic Relations |
0 |
Average Terms per Type |
0.00 |
Usage Example¶
Use the following code to import this ontology programmatically:
from ontolearner.ontology import PPlan
ontology = PPlan()
ontology.load("path/to/PPlan-ontology.owl")
# Extract datasets
data = ontology.extract()
# Access specific relations
term_types = data.term_typings
taxonomic_relations = data.type_taxonomies
non_taxonomic_relations = data.type_non_taxonomic_relations