summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2013-07-17 14:50:35 +0200
committerChristoph Helma <helma@in-silico.ch>2013-07-17 14:50:35 +0200
commite1ab21b21e88254b796c47c83f44d406e37f06a8 (patch)
treea98ac755c87e13981a6d39e80bbf33dff80c0420
parent16414dd1acc267211b55f222c31f4a8d299f23bb (diff)
uri objects fixed in ntriples serialsiation
-rw-r--r--lib/dataset.rb12
-rw-r--r--lib/opentox.rb13
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