amalgame/commit

prevent uninstatiated results if one of the result sets is empty

authorJacco van Ossenbruggen
Fri May 10 13:25:18 2013 +0200
committerJacco van Ossenbruggen
Fri May 10 13:25:18 2013 +0200
commitd928e5b90456b1900877ab187479ee9117ff460e
tree5a84a55dce29a5bf7d3e3c4fe245321362944011
parente005069c42297e5aef307650d83c29509718dc96
Diff style: patch stat
diff --git a/lib/ag_modules/ag_overlap.pl b/lib/ag_modules/ag_overlap.pl
index 84003cc..97af849 100644
--- a/lib/ag_modules/ag_overlap.pl
+++ b/lib/ag_modules/ag_overlap.pl
@@ -3,8 +3,6 @@
 	  ]).
 
 :- use_module(library(semweb/rdf_db)).
-:- use_module(library(amalgame/vocabulary)).
-:- use_module(library(amalgame/alignment)).
 :- use_module(library(amalgame/expand_graph)).
 :- use_module(library(amalgame/map)).
 
@@ -19,17 +17,18 @@ analyzer(Inputs, Process, Strategy, overlap(Results), _Options) :-
 	findall(Id-_Mapping,
 		rdf(Id, amalgame:wasGeneratedBy, Process, Strategy),
 		Results),
-	maplist(output_expander(Results, Strategy), Overlaps).
+	maplist(output_expander(Overlaps, Strategy), Results).
 
 input_expander(Strategy, Id, Id:Expanded) :-
 	expand_node(Strategy, Id, Expanded).
 
-output_expander(Results, Strategy, OverlapId-Mapping) :-
-	append(Mapping, MappingFlat),
-	merge_provenance(MappingFlat, MappingMerged),
+output_expander(Overlaps, Strategy, OutputUri-MappingMerged) :-
 	rdf(OutputUri, amalgame:overlap_set, literal(OverlapId), Strategy),
-	member(OutputUri-MappingMerged, Results),
-	!.
+	(   memberchk(OverlapId-Mapping, Overlaps)
+	->  append(Mapping, MappingFlat),
+	    merge_provenance(MappingFlat, MappingMerged)
+	;   MappingMerged = []
+	).
 
 overlap(MappingList, Overlaps) :-
 	create_pairs(MappingList, Pairs),