rdf-mt/commit

Additional infrastructure to list tests

authorJan Wielemaker
Tue Dec 17 12:42:48 2013 +0100
committerJan Wielemaker
Tue Dec 17 12:42:48 2013 +0100
commitc4de67faddf51d9b8c079a3c72cf39f8e067e3cc
treeda0282d29d74552e656d2104d41002646036f26f
parentb18b7923c6058b61143d3f6b8d29d6562e4233b6
Diff style: patch stat
diff --git a/config-available/rdf-mt.pl b/config-available/rdf-mt.pl
index 5dd219d..22ebfc3 100644
--- a/config-available/rdf-mt.pl
+++ b/config-available/rdf-mt.pl
@@ -33,6 +33,7 @@
 	    run_tests/0,
 	    run_test/1,			% +Test
 
+	    list_test/0,
 	    list_data/0,
 	    list_result/0
 	  ]).
@@ -225,28 +226,84 @@ assess_result(positive, Test) :-
 	\+ consistent_graph(data).
 assess_result(positive, Test) :- !,
 	load_test_result(Test),
-	graph_list(data, Data),
-	graph_list(result, Result),
+	graph_value_list(data, Data),
+	graph_value_list(result, Result),
 	simply_entails(Data, Result).
 assess_result(negative, Test) :-
 	false_result_test(Test), !,
 	consistent_graph(data).
 assess_result(negative, Test) :-
 	load_test_result(Test),
-	graph_list(data, Data),
-	graph_list(result, Result),
-	\+ simply_entails(Data, Result).
+	\+ ( graph_value_list(data, Data),
+	     graph_value_list(result, Result),
+	     simply_entails(Data, Result)
+	   ).
+
+%%	graph_value_list(+GraphName, -Triples) is semidet.
+%
+%	True when Triples is  a  list   of  rdf(S,P,O)  terms, where all
+%	literals are in canonical value   space representation. Fails if
+%	some literal is inconsistent.
+
+graph_value_list(Graph, ValueListGraph) :-
+	graph_list(Graph, List),
+	graph_value_space(List, ValueListGraph).
 
 
 		 /*******************************
 		 *	 DEBUGGING HELP		*
 		 *******************************/
 
+%%	list_test
+%
+%	Display info on last test
+
+list_test :-
+	test_result(Test, _Date, _OutCome), !,
+	list_test(Test).
+
+list_test(Test) :-
+	list_comment(Test),
+	list_data(Test),
+	format('~N~n*** Expected result ***~n'),
+	list_result(Test).
+
+list_comment(Test) :-
+	forall(mf_rdf(Test, rdfs:comment, literal(Comment)),
+	       writeln(Comment)).
+
+
 %%	list_data
 %
 %	List data from the graph =data=
 
 list_data :-
+	test_result(Test, _Date, _OutCome), !,
+	list_data(Test).
+
+list_data(Test) :-
+	mf_rdf(Test, mf:action, Data),
+	atom(Data),
+	uri_file_name(Data, File), !,
+	setup_call_cleanup(
+	    open(File, read, In),
+	    copy_stream_data(In, current_output),
+	    close(In)).
+
+
+%%	list_entailed_data
+%
+%	List data from the graph =data= after entailment.
+
+list_entailed_data :-
+	test_result(Test, _Date, _OutCome), !,
+	list_data(Test).
+
+list_entailed_data(Test) :-
+	(   mf_rdf(Test, mf:action, Data)
+	->  format('Data from: ~q~n', [Data])
+	;   true
+	),
 	rdf_save_turtle(stream(current_output),
 			[ graph(data)/*,
 			  only_known_prefixes(true)*/
@@ -258,7 +315,10 @@ list_data :-
 
 list_result :-
 	test_result(Test, _Date, _OutCome), !,
-	(   mf_rdf(Test, mf:result, xsd:false)
+	list_result(Test).
+
+list_result(Test) :-
+	(   mf_rdf(Test, mf:result, literal(type(_, false)))
 	->  format('Expected outcome: false~n')
 	;   mf_rdf(Test, mf:result, Data),
 	    format('Result from: ~q~n', [Data]),