xmlrdf/commit

MODIFIED: Allow mixed qualified and non-qualified literals

authorJan Wielemaker
Tue Oct 8 15:15:49 2013 +0200
committerJan Wielemaker
Tue Oct 8 15:15:49 2013 +0200
commitb8f7d433a13126574126310ee14ca5d5005b73df
tree8eae117da5078e1f68a1e56f2ee03bde6bb34f79
parent74e6d5ed22b6bab6c6471ba71af562c4c6e0bbb7
Diff style: patch stat
diff --git a/lib/xmlrdf/rdf_rewrite.pl b/lib/xmlrdf/rdf_rewrite.pl
index 310301c..7d0dddd 100644
--- a/lib/xmlrdf/rdf_rewrite.pl
+++ b/lib/xmlrdf/rdf_rewrite.pl
@@ -722,7 +722,11 @@ sensible_char_2(0'\n).
 %%	rdf_assert_new(+S,+P,+O,+Graph) is det.
 
 rdf_assert_new(S,P,O,Graph) :-
-	rdf(S,P,O,Graph), !.
+	(   O = literal(L),
+	    atom(L)
+	->  rdf(S,P,literal(plain(L),L),Graph)
+	;   rdf(S,P,O,Graph)
+	), !.
 rdf_assert_new(S,P,O,Graph) :-
 	rdf_assert(S,P,O,Graph).
 
@@ -733,10 +737,7 @@ rdf_assert_new(S,P,O,Graph) :-
 
 rdf_assert_if_ground(S,P,O,Graph) :-
 	nonvar(S), nonvar(P), nonvar(O), !,
-	(   rdf(S,P,O,Graph)
-	->  true
-	;   rdf_assert(S,P,O,Graph)
-	).
+	rdf_assert_new(S,P,O,Graph).
 rdf_assert_if_ground(_,_,_,_).
 
 %%	rdf_retract_if_ground(+S,+P,+O,+Graph) is det.
@@ -746,7 +747,11 @@ rdf_assert_if_ground(_,_,_,_).
 
 rdf_retract_if_ground(S,P,O,Graph) :-
 	nonvar(S), nonvar(P), nonvar(O), !,
-	rdf_retractall(S,P,O,Graph).
+	(   O = literal(L),
+	    atom(L)
+	->  rdf_retractall(S,P,literal(plain(L),L),Graph)
+	;   rdf_retractall(S,P,O,Graph)
+	).
 rdf_retract_if_ground(_,_,_,_).