diff options
author | gebele <gebele@in-silico.ch> | 2013-06-05 16:21:06 +0200 |
---|---|---|
committer | gebele <gebele@in-silico.ch> | 2013-06-05 16:21:06 +0200 |
commit | 8271c3e72430d16a7edfd2a2d87066716c94b423 (patch) | |
tree | 4e9bdaf4e440c0763ad4a0ed11a90fc148435d42 | |
parent | ff7fb1ec3739903cb4229a30f175cab532225fae (diff) |
fixed turtle output
-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 578ce13..7c6be09 100644 --- a/lib/4store.rb +++ b/lib/4store.rb @@ -88,21 +88,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::Writer.for(:turtle).buffer(:prefixes => prefixes) do |writer| - writer << rdf + 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.to_html if mime_type =~ /html/ and !turtle.empty? end else # TODO: check if this prevents SPARQL injections |