rdf-mt/commit
Various small fixes
author | Jan Wielemaker |
---|---|
Tue Dec 17 14:37:17 2013 +0100 | |
committer | Jan Wielemaker |
Tue Dec 17 14:37:17 2013 +0100 | |
commit | 9634f7da79d11c9487ff889a2fc7d7f812c26de9 |
tree | a1d458f0c2ff69bf5e54187320d4585163ac04bc |
parent | 571cbf1b2b614cfc0a3d506f12ec8cccc8b47fea |
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).