aers_rewrite/commit

recursivly retract all triples related to an updated report

authorMichiel Hildebrand
Thu Jan 31 14:19:32 2013 +0100
committerMichiel Hildebrand
Thu Jan 31 14:19:32 2013 +0100
commit301474a2d8b5de81581eeb64b430042caf220256
tree1acf0cee29a9443cc97ff91e29d5acfba51c710e
parent1984e6c00c0947aea499b28a43c39e0e12b9f4ad
Diff style: patch stat
diff --git a/lib/ascii_simplify.pl b/lib/ascii_simplify.pl
index b03f6e6..6ca02a6 100644
--- a/lib/ascii_simplify.pl
+++ b/lib/ascii_simplify.pl
@@ -104,20 +104,19 @@ true.
 % TBD load all files then remove the updated and save the update graphs
 
 remove_updated :-
-	load_quarters,
 	(    rdf(_,aers:case,Case),
 	     remove_updated(Case),
 	     fail
 	;    true
-	),
-	save_quarters.
+	).
+	%save_quarters.
 
 remove_updated(Case) :-
 	findall(S,rdf(S,aers:case,Case),Reports),
 	Reports = [_,_|_],
 	sort_by_id(Reports, Sorted),
 	reverse(Sorted, [_Latest|Updated]),
-	maplist(retract_update, Updated).
+	maplist(recursive_retract, Updated).
 
 sort_by_id(Reports, Sorted) :-
 	maplist(add_id_key, Reports, Pairs0),
@@ -128,19 +127,13 @@ add_id_key(Report, Id-Report) :-
 	rdf(Report, aers:isr, literal(Id)),
 	!.
 
-retract_update(R) :-
-	rdf_retractall(R, _, _).
-
-
-load_quarters :-
-	 (   quarter(Q),
-	     atom_concat(aers, Q, Graph),
-	     atom_concat(Graph, '.ttl', RDF_FileName),
-	     absolute_file_name(ascii_simple_rdf(RDF_FileName), RDF_File),
-	     rdf_load(RDF_File, [graph(Graph)]),
-	     fail
-	 ;   true
-	 ).
+recursive_retract(S) :-
+	rdf_subject(S),
+	!,
+	forall(rdf(S, _, O),
+	       recursive_retract(O)),
+	rdf_retractall(S, _, _).
+recursive_retract(_).
 
 save_quarters :-
 	 (   quarter(Q),