prov/commit

CHANGED: retract old entity generation triples before asserting new triples

authorJacco van Ossenbruggen
Wed Jul 26 10:06:58 2017 +0200
committerJacco van Ossenbruggen
Wed Jul 26 10:06:58 2017 +0200
commit3f8d9e7f26344cf8f4c7f372e3eb2e540640e743
tree1d9c39ff838c4cd419a7c2cfb5926095122effa0
parent9e94e3aaf30de0df1e55e8a235f64cf0744afcc7
Diff style: patch stat
diff --git a/lib/prov_schema.pl b/lib/prov_schema.pl
index e094438..a0d5aba 100644
--- a/lib/prov_schema.pl
+++ b/lib/prov_schema.pl
@@ -193,7 +193,9 @@ log_entity_use(Spec, Options) :-
     ->  size_file(File, Size),
         time_file(File, Time),
         xsd_timestamp(Time, Stamp),
-        rdf_assert(Entity, provx:file_size, Size^^xsd:integer, ProvBundle),
+        rdf_retractall(Entity, provx:file_size,      _, ProvBundle),
+        rdf_retractall(Entity, prov:generatedAtTime, _, ProvBundle),
+        rdf_assert(Entity, provx:file_size,      Size^^xsd:integer, ProvBundle),
         rdf_assert(Entity, prov:generatedAtTime, Stamp^^xsd:dateTime, ProvBundle)
     ;   true
     ).
@@ -223,6 +225,7 @@ log_entity_create(File, Options) :-
     ;   uri_file_name(Entity, File)
     ),
     xsd_now(TimeStamp),
+    rdf_retractall(Entity, _, _, ProvBundle),
     rdf_assert(Entity, rdf:type, prov:'Entity', ProvBundle),
     rdf_assert(Entity, prov:generatedAtTime, TimeStamp^^xsd:dateTime,  ProvBundle),
     rdf_assert(Entity, prov:wasGeneratedBy, Activity, ProvBundle),