rdf-mt/commit

Added rdf:_NNN entailment

authorJan Wielemaker
Tue Dec 17 14:58:09 2013 +0100
committerJan Wielemaker
Tue Dec 17 14:58:09 2013 +0100
commitcf0bd88b99ae493fbe157d2987887bf21c0de327
treea381df6303133b9ee81fdaa7141b38eebaad76fa
parent0ea24a0c43e97fc09c702a8779d73ed52536ea64
Diff style: patch stat
diff --git a/lib/rdf_mt/mt_rdf.pl b/lib/rdf_mt/mt_rdf.pl
index f2b1e08..051ac46 100644
--- a/lib/rdf_mt/mt_rdf.pl
+++ b/lib/rdf_mt/mt_rdf.pl
@@ -35,4 +35,13 @@
 :- multifile rdf_reasoner:entailment_module/2.
 rdf_reasoner:entailment_module(rdf, mt_rdf).
 
-dummy @@ {sss, ppp, ooo} ==> true.
+membership_prefix(rdf:'_').
+
+seq_property @@
+{ _, P, _ } ==>
+	membership_prefix(Prefix),
+	sub_atom(P, 0, _, A, Prefix),
+	sub_string(P, _, A, 0, NumS),
+	number_string(I, NumS),
+	integer(I),
+	{ P, rdf:type, rdfs:'ContainerMembershipProperty' }.
diff --git a/lib/rdf_mt/mt_rdfs.pl b/lib/rdf_mt/mt_rdfs.pl
index 3997829..02a8787 100644
--- a/lib/rdf_mt/mt_rdfs.pl
+++ b/lib/rdf_mt/mt_rdfs.pl
@@ -34,6 +34,7 @@
 :- use_module(graph_consistency).
 
 :- multifile rdf_reasoner:entailment_module/2.
+rdf_reasoner:entailment_module(rdfs, mt_rdf).
 rdf_reasoner:entailment_module(rdfs, mt_rdfs).
 
 /** <module> Rewrite rule set for RDFS
diff --git a/lib/rdf_mt/rdf_reasoner.pl b/lib/rdf_mt/rdf_reasoner.pl
index 632323e..fded2ec 100644
--- a/lib/rdf_mt/rdf_reasoner.pl
+++ b/lib/rdf_mt/rdf_reasoner.pl
@@ -46,12 +46,15 @@
 %	Compute the closure using Regime.
 
 compute_closure(Regime, Options) :-
-	entailment_module(Regime, Module), !,
-	debug(mt(regime), 'Regime ~w: rewriting', [Regime]),
 	option(graph(Graph), Options, data),
-	fixed_point(Module:Graph).
-compute_closure(Regime, _) :-
-	debug(mt(regime), 'Regime ~w not implemented', [Regime]).
+	(   entailment_module(Regime, Module)
+	*-> ( debug(mt(regime),
+		    'Regime ~w: rewriting using ~w', [Regime, Module]),
+	      fixed_point(Module:Graph)
+	    )
+	;   debug(mt(regime), 'Regime ~w not implemented', [Regime])
+	),
+	fail ; true.
 
 fixed_point(Graph) :-
 	rdf_rewrite(Graph), !,