amalgame/commit

seperate evaluation of generated and manual datasets

authorJacco van Ossenbruggen
Tue Aug 5 17:51:43 2014 +0200
committerJacco van Ossenbruggen
Tue Aug 5 17:51:43 2014 +0200
commit12a0dae86682f56049921d312c70b32657c255eb
tree7f9c2490bbe1619e56f4dba4ac06c428282d60d2
parent4e2e88aa9867de1c74ad62ea42e772ecc101be6c
Diff style: patch stat
diff --git a/applications/analyser.pl b/applications/analyser.pl
index 5e83e16..0beee1f 100644
--- a/applications/analyser.pl
+++ b/applications/analyser.pl
@@ -104,7 +104,7 @@ yui_script(Strategy, Mapping) -->
 	 findall(M-C, js_module(M,C), Modules),
 	 pairs_keys(Modules, Includes),
 	 findall(K-V, js_path(K, V), Paths),
-	 js_mappings_metadata(Strategy, JSMappings)
+	 js_mappings_metadata(Strategy, JSMappings, [])
 	},
 	yui3([json([modules(json(Modules))])
 	     ],
diff --git a/applications/evaluater.pl b/applications/evaluater.pl
index c8e4f2e..80dd3db 100644
--- a/applications/evaluater.pl
+++ b/applications/evaluater.pl
@@ -1,6 +1,9 @@
 :- module(ag_evaluater,
 	  []).
 
+:- use_module(library(pairs)).
+:- use_module(library(lists)).
+
 :- use_module(library(semweb/rdfs)).
 :- use_module(library(http/http_dispatch)).
 :- use_module(library(http/http_parameters)).
@@ -16,15 +19,16 @@
 
 % From Amalgame:
 :- use_module(library(amalgame/util)).
+:- use_module(library(amalgame/ag_reference)).
 :- use_module(components(amalgame/correspondence)).
 :- use_module(components(amalgame/util)).
 
-% We need amalgame http handlers of these:
+% We need amalgame http handlers from these:
 :- use_module(api(node_info)).
 :- use_module(api(mapping)).
 :- use_module(api(correspondence)).
 
-% For autocompletion on the vocaubalry terms to fix source/target
+% For autocompletion on the vocabulary terms to fix source/target
 % manually, we need the autocompletion cpack http api:
 :-use_module(api(autocomplete_api)).
 
@@ -108,7 +112,10 @@ yui_script(Strategy, Mapping) -->
 	{ findall(K-V, js_path(K, V), Paths),
 	  findall(M-C, js_module(M,C), Modules),
 	  pairs_keys(Modules, Includes),
-	  js_mappings_metadata(Strategy, Mappings)
+	  (   is_reference(Strategy, Mapping)
+	  ->  js_mappings_metadata(Strategy, Mappings, [references(only)])
+	  ;   js_mappings_metadata(Strategy, Mappings, [references(exclude)])
+	  )
 	},
 	yui3([json([
 		gallery('gallery-2011.02.23-19-01'),
diff --git a/lib/amalgame/ag_reference.pl b/lib/amalgame/ag_reference.pl
index c184262..0b794c2 100644
--- a/lib/amalgame/ag_reference.pl
+++ b/lib/amalgame/ag_reference.pl
@@ -1,5 +1,6 @@
 :- module(ag_reference,
-	  [ reference_mappings/2
+	  [ reference_mappings/2,
+	    is_reference/2
 	  ]).
 
 :- use_module(library(apply)).
@@ -13,6 +14,14 @@
 %	for Strategy or the empty list if no refs are available.
 
 reference_mappings(Strategy, References) :-
-	findall(R, rdf(R, amalgame:status, amalgame:reference, Strategy), RefGraphs),
+	findall(R, is_reference(Strategy, R), RefGraphs),
 	maplist(expand_node(Strategy), RefGraphs, MappingLists),
 	append(MappingLists, References).
+
+%%	is_reference(?Strategy, ?Reference) is nondet.
+%%	is_reference(+Strategy, +Reference) is semidet.
+%
+%	Evaluates to true if Reference is a reference graph for
+%	Strategy.
+is_reference(Strategy, Reference) :-
+	rdf(Reference, amalgame:status, amalgame:reference, Strategy).
diff --git a/lib/amalgame/util.pl b/lib/amalgame/util.pl
index d2da7a3..9ce65d6 100644
--- a/lib/amalgame/util.pl
+++ b/lib/amalgame/util.pl
@@ -2,7 +2,7 @@
 	  [   mint_node_uri/3,
 	      amalgame_strategy_schemes/2,
 
-	      js_mappings_metadata/2,
+	      js_mappings_metadata/3,
 	      js_focus_node/3,
 	      js_strategy_nodes/2,
 
@@ -36,6 +36,7 @@
 :- use_module(cliopatria(components/label)).
 :- use_module(library(amalgame/caching)).
 :- use_module(library(amalgame/map)).
+:- use_module(library(amalgame/ag_reference)).
 :- use_module(library(amalgame/ag_evaluation)).
 
 :- multifile
@@ -121,14 +122,25 @@ amalgame_strategy_schemes(Strategy, Schemes) :-
 	findall(S,  rdf(Strategy, amalgame:includes, S), Schemes),
 	Schemes \== [].
 
-amalgame_strategy_mappings(Strategy, Mappings) :-
+amalgame_strategy_mappings(Strategy, Mappings, Options) :-
 	rdfs_individual_of(Strategy, amalgame:'AlignmentStrategy'),
 	findall(URI, (rdf(URI, rdf:type, _ ,Strategy),
-		      rdfs_individual_of(URI, amalgame:'Mapping')
+		      rdfs_individual_of(URI, amalgame:'Mapping'),
+		      ag_map_filter(Strategy, URI, Options)
 		     ), Mappings).
 
-js_mappings_metadata(Strategy, Results) :-
-	amalgame_strategy_mappings(Strategy, Mappings),
+ag_map_filter(Strategy, M, Options) :-
+	option(references(exclude), Options),
+	is_reference(Strategy, M),
+	!, fail.
+ag_map_filter(Strategy, M, Options) :-
+	option(references(only), Options),
+	\+ is_reference(Strategy, M),
+	!, fail.
+ag_map_filter(_,_,_).
+
+js_mappings_metadata(Strategy, Results, Options) :-
+	amalgame_strategy_mappings(Strategy, Mappings, Options),
 	maplist(mapping_metadata(Strategy), Mappings, Pairs),
 	dict_pairs(Results, mappings, Pairs).