amalgame/commit

introduce setting to bind manually created reference alignment to the global strategy instead of the individual mapping

authorJacco van Ossenbruggen
Wed Jun 26 10:09:36 2013 +0200
committerJacco van Ossenbruggen
Wed Jun 26 10:09:36 2013 +0200
commitded3d93b029caae6114e7ab946d94e2d0a72ab6b
tree4f505cf43fd616e897f246f5fb4ed9263c626d6e
parent6672ef00d02cd615794eb966ebcad39665acb46f
Diff style: patch stat
diff --git a/lib/amalgame/ag_evaluation.pl b/lib/amalgame/ag_evaluation.pl
index a5d15cb..1383c3a 100644
--- a/lib/amalgame/ag_evaluation.pl
+++ b/lib/amalgame/ag_evaluation.pl
@@ -10,9 +10,14 @@
 :- use_module(library(amalgame/ag_provenance)).
 :- use_module(library(amalgame/util)).
 
+:- setting(amalgame:reference_alignment, oneof([strategy, mapping]), strategy,
+	   'Keep reference alignments per mapping or per strategy. Note that in the per mapping mode, the references are lost when the mapping is deleted.').
 
 evaluation_graph_chk(Strategy, Mapping, EvalGraph) :-
-	rdf(EvalGraph, amalgame:evaluationOf, Mapping, Strategy),
+	(   setting(amalgame:reference_alignment, mapping)
+	->  rdf(EvalGraph, amalgame:evaluationOf, Mapping,  Strategy)
+	;   rdf(EvalGraph, amalgame:evaluationOf, Strategy, Strategy)
+	),
 	!.
 
 evaluation_graph(Strategy, Mapping, EvalGraph) :-
@@ -22,24 +27,28 @@ evaluation_graph(Strategy, Mapping, EvalGraph) :-
 	).
 
 create_evaluation_graph(Strategy, Mapping, EvalGraph) :-
-	mint_node_uri(Strategy, evaluation_process, EvalProcess),
-	mint_node_uri(Strategy, evaluation_result, EvalGraph),
-
-	format(atom(Comment), 'Manual evaluation of ~w', [Mapping]),
+	mint_node_uri(Strategy, manual_evaluation_process, EvalProcess),
+	mint_node_uri(Strategy, manual_reference_alignment, EvalGraph),
 
 	rdf_assert(EvalProcess, rdf:type,       amalgame:'EvaluationProcess',         Strategy),
 	rdf_assert(EvalProcess, rdfs:label,     literal('Manual evaluation process'), Strategy),
-	rdf_assert(EvalProcess, amalgame:input,	Mapping,                              Strategy),
-
-	rdf_assert(EvalGraph, rdf:type,     amalgame:'EvaluatedMapping',   Strategy),
-	rdf_assert(EvalGraph, rdfs:label,   literal('Evaluation results'), Strategy),
-	rdf_assert(EvalGraph, rdfs:comment, literal(Comment),              Strategy),
 
+	rdf_assert(EvalGraph, rdf:type,     amalgame:'EvaluatedMapping',      Strategy),
+	rdf_assert(EvalGraph, rdfs:label,   literal('Evaluation results'),    Strategy),
 	rdf_assert(EvalGraph, amalgame:wasGeneratedBy, EvalProcess,           Strategy),
-	rdf_assert(EvalGraph, amalgame:evaluationOf,   Mapping,               Strategy),
 	rdf_assert(EvalGraph, amalgame:status,	       amalgame:intermediate, Strategy),
 
-	Options = [was_derived_from([Mapping])],
+	(   setting(amalgame:reference_alignment, mapping)
+	->  format(atom(Comment), 'Manual evaluation of ~p', [Mapping]),
+	    rdf_assert(EvalProcess, amalgame:input,	Mapping,         Strategy),
+	    rdf_assert(EvalGraph, amalgame:evaluationOf,   Mapping,	 Strategy),
+	    Options = [was_derived_from([Mapping, Strategy])]
+	;   format(atom(Comment), 'Manual evaluation of mappings from ~p', [Strategy]),
+	    rdf_assert(EvalProcess, amalgame:input,	Strategy,	 Strategy),
+	    rdf_assert(EvalGraph, amalgame:evaluationOf,   Strategy,	 Strategy),
+	    Options = [was_derived_from([Strategy])]
+	),
+	rdf_assert(EvalGraph, rdfs:comment, literal(Comment),	 Strategy),
 	provenance_graph(Strategy, ProvGraph),
 	prov_was_generated_by(EvalProcess, [EvalGraph], ProvGraph, Options).