diff options
author | Christoph Helma <helma@in-silico.ch> | 2013-07-17 14:50:35 +0200 |
---|---|---|
committer | Christoph Helma <helma@in-silico.ch> | 2013-07-17 14:50:35 +0200 |
commit | e1ab21b21e88254b796c47c83f44d406e37f06a8 (patch) | |
tree | a98ac755c87e13981a6d39e80bbf33dff80c0420 /lib | |
parent | 16414dd1acc267211b55f222c31f4a8d299f23bb (diff) |
uri objects fixed in ntriples serialsiation
Diffstat (limited to 'lib')
-rw-r--r-- | lib/dataset.rb | 12 | ||||
-rw-r--r-- | 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 |