diff options
author | Christoph Helma <helma@in-silico.ch> | 2013-06-05 19:43:21 +0200 |
---|---|---|
committer | Christoph Helma <helma@in-silico.ch> | 2013-06-05 19:43:21 +0200 |
commit | 818d8cfcae1e6136dacb232c5678d2b0de29af66 (patch) | |
tree | 724b3cb73a67c3649279444d8cbfab35f641df1c | |
parent | de79524895b0a0be4bdf2113781d14a8439ea2dc (diff) | |
parent | 8271c3e72430d16a7edfd2a2d87066716c94b423 (diff) |
Merge branch 'development' of github.com:opentox/opentox-server into development
-rw-r--r-- | lib/4store.rb | 21 |
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 |