summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2013-06-05 19:43:21 +0200
committerChristoph Helma <helma@in-silico.ch>2013-06-05 19:43:21 +0200
commit818d8cfcae1e6136dacb232c5678d2b0de29af66 (patch)
tree724b3cb73a67c3649279444d8cbfab35f641df1c
parentde79524895b0a0be4bdf2113781d14a8439ea2dc (diff)
parent8271c3e72430d16a7edfd2a2d87066716c94b423 (diff)
Merge branch 'development' of github.com:opentox/opentox-server into development
-rw-r--r--lib/4store.rb21
1 files changed, 12 insertions, 9 deletions
diff --git a/lib/4store.rb b/lib/4store.rb
index 5fb2020..2e2444b 100644
--- a/lib/4store.rb
+++ b/lib/4store.rb
@@ -103,21 +103,24 @@ module OpenTox
when "text/plain", "application/rdf+xml"
RestClient.get(sparql_uri, :params => { :query => sparql }, :accept => mime_type).body
when /html|turtle/
- # TODO: fix and improve
nt = RestClient.get(sparql_uri, :params => { :query => sparql }, :accept => "text/plain").body # 4store returns ntriples for turtle
rdf = RDF::Graph.new
RDF::Reader.for(:ntriples).new(nt) do |reader|
reader.each_statement { |statement| rdf << statement }
end
- prefixes = {:rdf => "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"}
- ['OT', 'DC', 'XSD', 'OLO'].each{|p| prefixes[p.downcase.to_sym] = eval("RDF::#{p}.to_s") }
- # TODO: fails for large datasets?? multi_cell_call
- turtle = RDF::Turtle::Writer.for(:turtle).buffer(:prefixes => prefixes) do |writer|
- rdf.each{|statement| writer << statement}
+ if !rdf.empty?
+ prefixes = {:rdf => "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"}
+ ['OT', 'DC', 'XSD', 'OLO'].each{|p| prefixes[p.downcase.to_sym] = eval("RDF::#{p}.to_s") }
+ # TODO: fails for large datasets?? multi_cell_call
+ turtle = RDF::Writer.for(:turtle).buffer(:prefixes => prefixes) do |writer|
+ writer << rdf
+ end
+ regex = Regexp.new '(https?:\/\/[\S]+)([>"])'
+ turtle = "<html><body>" + turtle.gsub( regex, '<a href="\1">\1</a>\2' ).gsub(/\n/,'<br/>') + "</body></html>" if mime_type =~ /html/ and !turtle.empty?
+ turtle
+ else
+ rdf
end
- regex = Regexp.new '(https?:\/\/[\S]+)([>"])'
- turtle = "<html><body>" + turtle.gsub( regex, '<a href="\1">\1</a>\2' ).gsub(/\n/,'<br/>') + "</body></html>" if mime_type =~ /html/ and !turtle.empty?
- turtle
end
else
# TODO: check if this prevents SPARQL injections