77class RetroProv (RdfWrapper ):
88 def __init__ (self , prov_was_derived_from , log_message : str ):
99 super ().__init__ (uri = None , ref_name = 'retroprov' )
10- self .rdf .add ((self .self_ref , rdflib .RDF .type , namespaces .PROV .Activity ))
11- self .rdf .add ((self .self_ref , namespaces .PROV .wasDerivedFrom ,
12- rdflib .URIRef (prov_was_derived_from )))
10+ self .set_attribute (rdflib .RDF .type , namespaces .PROV .Activity )
11+ self .set_attribute (namespaces .PROV .wasDerivedFrom , rdflib .URIRef (prov_was_derived_from ))
1312 self .rdf .add ((self .self_ref , rdflib .RDFS .label , rdflib .Literal (log_message )))
1413
14+ @property
15+ def prov_was_derived_from (self ):
16+ """Refers to URI of object that this provenance was derived from.
17+
18+ Matches the predicate prov:wasDerivedFrom associated to this retrospective provenance
19+ object
20+ """
21+ return self .get_attribute (namespaces .PROV .wasDerivedFrom )
22+
23+ @prov_was_derived_from .setter
24+ def prov_was_derived_from (self , value ):
25+ self .set_attribute (namespaces .PROV .wasDerivedFrom , rdflib .URIRef (value ), overwrite = True )
26+
1527
1628class WorkflowRetroProv (RetroProv ):
1729 def __init__ (self , prov_was_derived_from , log_message ):
@@ -22,3 +34,14 @@ def __str__(self):
2234 s = f'Workflow retrospective provenance.\n '
2335 s += self ._rdf .serialize (format = 'trig' ).decode ('utf-8' )
2436 return s
37+
38+
39+ class StepRetroProv (RetroProv ):
40+ def __init__ (self , prov_was_derived_from , log_message ):
41+ super ().__init__ (prov_was_derived_from , log_message )
42+
43+ def __str__ (self ):
44+ """String representation."""
45+ s = f'Step retrospective provenance.\n '
46+ s += self ._rdf .serialize (format = 'trig' ).decode ('utf-8' )
47+ return s
0 commit comments