rdf-mt/commit

Various small fixes

authorJan Wielemaker
Tue Dec 17 14:37:17 2013 +0100
committerJan Wielemaker
Tue Dec 17 14:37:17 2013 +0100
commit9634f7da79d11c9487ff889a2fc7d7f812c26de9
treea1d458f0c2ff69bf5e54187320d4585163ac04bc
parent571cbf1b2b614cfc0a3d506f12ec8cccc8b47fea
Diff style: patch stat
diff --git a/config-available/rdf-mt.pl b/config-available/rdf-mt.pl
index 2de9105..3146708 100644
--- a/config-available/rdf-mt.pl
+++ b/config-available/rdf-mt.pl
@@ -298,7 +298,7 @@ list_data(Test) :-
 
 list_entailed_data :-
 	test_result(Test, _Date, _OutCome), !,
-	list_data(Test).
+	list_entailed_data(Test).
 
 list_entailed_data(Test) :-
 	(   mf_rdf(Test, mf:action, Data)
diff --git a/lib/rdf_mt/graph_consistency.pl b/lib/rdf_mt/graph_consistency.pl
index ad3fb48..1204814 100644
--- a/lib/rdf_mt/graph_consistency.pl
+++ b/lib/rdf_mt/graph_consistency.pl
@@ -109,7 +109,11 @@ literal_value(literal(Data), Value) :-
 		       mf{datatypes:dt{}, regime:rdfs}). % BUG: loops
 
 literal_value(literal(Data), Value, Props) :-
-	literal_value2(Data, Value, Props.datatypes).
+	(   get_dict(datatypes, Props, DT)
+	->  true
+	;   DT = dt{}
+	),
+	literal_value2(Data, Value, DT).
 
 
 literal_value2(type(Type, String), Value, Props) :-
@@ -128,25 +132,29 @@ literal_value2(lang(Lang,String), lang(CanonicalLang, String), _) :- !,
 literal_value2(Plain, type(XsdString, Plain), _) :-
 	rdf_equal(XsdString, xsd:string).
 
-numeric_value(float, String, float(Value)) :-
+:- rdf_meta
+	numeric_value(r, +, -).
+
+numeric_value(xsd:float, String, float(Value)) :-
 	number_string(V0, String),
 	Value is float(V0).
-numeric_value(double, String, double(Value)) :-
+numeric_value(xsd:double, String, double(Value)) :-
 	number_string(V0, String),
 	Value is float(V0).
-numeric_value(integer, String, decimal(Integer)) :-
+numeric_value(xsd:integer, String, decimal(Integer)) :-
 	decimal_value(String, Integer).
-numeric_value(decimal, String, decimal(Decimal)) :-
+numeric_value(xsd:decimal, String, decimal(Decimal)) :-
 	decimal_value(String, Decimal).
 
 decimal_value(String, Value) :-
-	split_string(String, ".", "", List),
-	(   List = [NomS, DenS]
-	->  number_string(Nom, NomS), integer(Nom),
-	    number_string(Den, DenS), integer(Den),
-	    Value is Nom rdiv Den
-	;   List = [IntS],
-	    number_string(Value, IntS), integer(Value)
+	split_string(String, ".", "", [IntS|Rest]),
+	number_string(Int, IntS), integer(Int),
+	(   Rest = [PartS]
+	->  number_string(Part, PartS), integer(Part),
+	    string_length(PartS, Digits),
+	    Value is Int + Part rdiv (10**Digits)
+	;   Rest = [],
+	    Value = Int
 	).
 
 bool(false, false).
@@ -165,6 +173,7 @@ graph_value_space(Graph, ValueSpaceGraph, Props) :-
 	sort(ValueSpaceGraph0, ValueSpaceGraph).
 
 triple_value_space(Props, rdf(S,P,L0), rdf(S,P,L)) :-
+	nonvar(L0),
 	L0 = literal(_), !,
 	literal_value(L0, L, Props).
 triple_value_space(_, Triple, Triple).