From e1ab21b21e88254b796c47c83f44d406e37f06a8 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Wed, 17 Jul 2013 14:50:35 +0200 Subject: uri objects fixed in ntriples serialsiation --- lib/dataset.rb | 12 +++++++----- lib/opentox.rb | 13 +++++++++++-- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/lib/dataset.rb b/lib/dataset.rb index 2d3c533..153cdce 100644 --- a/lib/dataset.rb +++ b/lib/dataset.rb @@ -254,13 +254,15 @@ module OpenTox ntriples = "" @metadata[RDF.type] = [ RDF::OT.Dataset, RDF::OT.OrderedDataset ] - @metadata[RDF.type] ||= eval("RDF::OT."+self.class.to_s.split('::').last) - @metadata[RDF::DC.date] ||= DateTime.now + @metadata.each do |predicate,values| - [values].flatten.each { |value| ntriples << "<#{@uri}> <#{predicate}> '#{value}' .\n" } + [values].flatten.each do |value| + URI.valid?(value) ? value = "<#{value}>" : value = "'#{value}'" + ntriples << "<#{@uri}> <#{predicate}> #{value} .\n" + end end - @parameters.each do |parameter| - p_node = RDF::Node.new.to_s + @parameters.each_with_index do |parameter,i| + p_node = "_:parameter"+ i.to_s ntriples << "<#{@uri}> <#{RDF::OT.parameters}> #{p_node} .\n" ntriples << "#{p_node} <#{RDF.type}> <#{RDF::OT.Parameter}> .\n" parameter.each { |k,v| ntriples << "#{p_node} <#{k}> '#{v}' .\n" } diff --git a/lib/opentox.rb b/lib/opentox.rb index 87b241a..5e0bc29 100644 --- a/lib/opentox.rb +++ b/lib/opentox.rb @@ -233,6 +233,7 @@ module OpenTox end def self.find_or_create metadata + t = Time.now sparql = "SELECT DISTINCT ?s WHERE { " metadata.each do |predicate,objects| unless [RDF::DC.date,RDF::DC.modified,RDF::DC.description].include? predicate # remove dates and description (strange characters in description may lead to SPARQL errors) @@ -248,11 +249,19 @@ module OpenTox end end sparql << "}" + puts "Create SPARQL: #{Time.now-t}" + t = Time.new uris = RestClientWrapper.get(service_uri,{:query => sparql},{:accept => "text/uri-list"}).split("\n") + puts "Query: #{Time.now-t}" + t = Time.new if uris.empty? - self.create metadata + f=self.create metadata + puts "Create: #{Time.now-t}" + f else - self.new uris.first + f=self.new uris.first + puts "Found: #{Time.now-t}" + f end end end -- cgit v1.2.3