diff --git a/plugins/virtuoso/lib/virtuoso_plugin/triples_management.rb b/plugins/virtuoso/lib/virtuoso_plugin/triples_management.rb index 5140c9c..cc11bc5 100644 --- a/plugins/virtuoso/lib/virtuoso_plugin/triples_management.rb +++ b/plugins/virtuoso/lib/virtuoso_plugin/triples_management.rb @@ -18,15 +18,21 @@ class VirtuosoPlugin::TriplesManagement def update_triple(graph_uri, from_triple, to_triple) from_subject = from_triple[:subject] from_predicate = from_triple[:predicate] - from_object = from_triple[:object] + from_object = format_triple_term(from_triple[:object]) to_subject = to_triple[:subject] to_predicate = to_triple[:predicate] - to_object = to_triple[:object] + to_object = format_triple_term(to_triple[:object]) - query = "WITH <#{graph_uri}> DELETE { <#{from_subject}> <#{from_predicate}> '#{from_object}' } INSERT { <#{to_subject}> <#{to_predicate}> '#{to_object}' }" + query = "WITH <#{graph_uri}> DELETE { <#{from_subject}> <#{from_predicate}> #{from_object} } INSERT { <#{to_subject}> <#{to_predicate}> #{to_object} }" plugin.virtuoso_client.query(query) end + protected + + def format_triple_term(term) + term =~ /^(http|https):\/\// ? "<#{term}>" : "'#{term}'" + end + end -- libgit2 0.21.2