activerdf_sparql 1.3.2 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ == activerdf_sparql (1.3.3)
2
+ * change Rakefile: require json_pure when running on JRuby
3
+ * added very simple close method to sparql adapter
4
+
1
5
  == activerdf_sparql (1.3.2) Thu, 09 Aug 2007 15:10:16 +0100
2
6
  * support for LANG filters and engine-specific keyword search
3
7
 
@@ -53,7 +53,7 @@ class SparqlAdapter < ActiveRdfAdapter
53
53
  url = "#@url?query=#{CGI.escape(qs)}"
54
54
  #url += "&content-type=#{CGI.escape('application/sparql-results+xml')}" if @yars2
55
55
  url = url.gsub("DISTINCT", "") if @yars2
56
- $activerdflog.debug "executing: requesting #{url}"
56
+ $activerdflog.debug "querying #{url}"
57
57
 
58
58
  # querying sparql endpoint
59
59
  response = ''
@@ -87,6 +87,10 @@ class SparqlAdapter < ActiveRdfAdapter
87
87
  end
88
88
  end
89
89
 
90
+ def close
91
+ ConnectionPool.remove_data_source(self)
92
+ end
93
+
90
94
  private
91
95
  # constructs correct HTTP header for selected query-result format
92
96
  def header(query)
@@ -2,6 +2,7 @@
2
2
  # Copyright:: (c) 2005-2006
3
3
  # License:: LGPL
4
4
 
5
+ require "rubygems"
5
6
  require 'active_rdf'
6
7
  require 'test/unit'
7
8
  require 'federation/federation_manager'
@@ -11,7 +12,7 @@ require 'queryengine/query'
11
12
  class TestSparqlAdapter < Test::Unit::TestCase
12
13
  def setup
13
14
  ConnectionPool.clear
14
- @adapter = ConnectionPool.add(:type => :sparql, :url => 'http://dbpedia.org/sparql')
15
+ @adapter = ConnectionPool.add(:type => :sparql, :url => 'http://dbpedia.org/sparql', :engine => :virtuoso)
15
16
  end
16
17
 
17
18
  def teardown
@@ -22,7 +23,14 @@ class TestSparqlAdapter < Test::Unit::TestCase
22
23
  end
23
24
 
24
25
  def test_language
25
- Query.new.distinct(:o).where(:s,:p,:o).limit(2).lang('en').execute
26
+ sunset = RDFS::Resource.new("http://dbpedia.org/resource/77_Sunset_Strip")
27
+ abstract = RDFS::Resource.new("http://dbpedia.org/property/abstract")
28
+
29
+ german = Query.new.distinct(:o).where(sunset,abstract,:o).limit(1).lang(:o,'de').execute.first
30
+ english = Query.new.distinct(:o).where(sunset,abstract,:o).limit(1).lang(:o,'en').execute.first
31
+
32
+ assert english =~ /^77 Sunset Strip was one of the most popular of the detective series in early television/
33
+ assert german =~ /^77 Sunset Strip ist ein Serienklassiker aus den USA um das gleichnamige, in Los Angeles am Sunset Boulevard angesiedelte Detektivbüro/
26
34
  end
27
35
 
28
36
  def test_limit_offset
@@ -45,15 +53,19 @@ class TestSparqlAdapter < Test::Unit::TestCase
45
53
  Namespace.register :yago, 'http://dbpedia.org/class/yago/'
46
54
  Namespace.register :dbpedia, 'http://dbpedia.org/property/'
47
55
 
48
- movies = Query.new.
49
- select(:title).
50
- where(:film, RDF.type, RDFS::Resource.new('http://dbpedia.org/class/yago/film')).
51
- where(:film, RDFS.label, :title).
52
- where(:title, RDFS::Resource.new('bif:contains'), 'kill').
53
- filter_regex(:title, /Kill$/).execute
56
+ begin
57
+ movies = Query.new.
58
+ select(:title).
59
+ where(:film, RDF.type, RDFS::Resource.new('http://dbpedia.org/class/yago/film')).
60
+ where(:film, RDFS.label, :title).
61
+ where(:title, RDFS::Resource.new('bif:contains'), 'kill').
62
+ filter_regex(:title, /Kill$/).execute
63
+ rescue TimeOut::Error => e
64
+ puts "WARNING: SPARQL endpoint timed out"
65
+ end
54
66
 
55
- assert !movies.empty?
56
- assert movies.all? {|m| m =~ /Kill$/ }
67
+ assert !movies.empty?, "regex query returns empty results"
68
+ assert movies.all? {|m| m =~ /Kill$/ }, "regex query returns wrong results"
57
69
  end
58
70
 
59
71
  def test_query_with_block
metadata CHANGED
@@ -1,108 +1,74 @@
1
- --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
- name: activerdf_sparql
5
- version: !ruby/object:Gem::Version
6
- version: 1.3.2
7
- date: 2007-08-09 00:00:00 +01:00
8
- summary: ActiveRDF adapter to SPARQL endpoint
9
- require_paths:
10
- - lib
11
- email:
1
+ --- !ruby/object:Gem::Specification
12
2
  homepage:
13
- rubyforge_project:
14
- description: ActiveRDF adapter to SPARQL endpoint
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
25
- platform: ruby
26
- signing_key:
27
- cert_chain:
3
+ extensions: []
4
+ executables: []
5
+ version: !ruby/object:Gem::Version
6
+ version: 1.3.3
28
7
  post_install_message:
29
- authors:
30
- - Eyal Oren <eyal.oren@deri.org
8
+ date: 2007-09-01 22:00:00 +00:00
31
9
  files:
32
10
  - LICENSE
33
11
  - README
34
12
  - CHANGELOG
35
- - doc/rdoc/rdoc-style.css
36
- - doc/rdoc/files
37
- - doc/rdoc/files/README.html
38
- - doc/rdoc/files/LICENSE.html
39
- - doc/rdoc/files/lib
40
- - doc/rdoc/files/lib/activerdf_sparql
41
- - doc/rdoc/files/lib/activerdf_sparql/sparql_rb.html
42
- - doc/rdoc/files/lib/activerdf_sparql/init_rb.html
43
- - doc/rdoc/files/lib/activerdf_sparql/sparql_result_parser_rb.html
44
- - doc/rdoc/classes
45
- - doc/rdoc/classes/SparqlAdapter.src
46
- - doc/rdoc/classes/SparqlAdapter.src/M000001.html
47
- - doc/rdoc/classes/SparqlAdapter.src/M000002.html
48
- - doc/rdoc/classes/SparqlAdapter.src/M000003.html
49
- - doc/rdoc/classes/SparqlAdapter.src/M000004.html
50
- - doc/rdoc/classes/SparqlResultParser.src
51
- - doc/rdoc/classes/SparqlResultParser.src/M000005.html
52
- - doc/rdoc/classes/SparqlResultParser.src/M000006.html
53
- - doc/rdoc/classes/SparqlResultParser.src/M000007.html
54
- - doc/rdoc/classes/SparqlResultParser.src/M000008.html
55
- - doc/rdoc/classes/SparqlResultParser.src/M000009.html
56
- - doc/rdoc/classes/SparqlResultParser.src/M000010.html
57
- - doc/rdoc/classes/SparqlAdapter.html
58
- - doc/rdoc/classes/SparqlResultParser.html
59
- - doc/rdoc/fr_file_index.html
60
- - doc/rdoc/fr_class_index.html
61
- - doc/rdoc/fr_method_index.html
62
- - doc/rdoc/index.html
63
- - doc/rdoc/created.rid
64
13
  - test/test_sparql_adapter.rb
65
14
  - lib/activerdf_sparql
66
- - lib/activerdf_sparql/sparql.rb
67
15
  - lib/activerdf_sparql/init.rb
16
+ - lib/activerdf_sparql/sparql.rb
68
17
  - lib/activerdf_sparql/sparql_result_parser.rb
69
- test_files: []
70
-
18
+ rubygems_version: 0.9.4
71
19
  rdoc_options: []
72
-
73
- extra_rdoc_files:
74
- - README
75
- executables: []
76
-
77
- extensions: []
78
-
79
- requirements: []
80
-
20
+ signing_key:
21
+ cert_chain:
22
+ name: activerdf_sparql
23
+ has_rdoc: true
24
+ platform: ruby
25
+ summary: ActiveRDF adapter to SPARQL endpoint
26
+ default_executable:
27
+ bindir: bin
28
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
29
+ version:
30
+ requirements:
31
+ - - '>'
32
+ - !ruby/object:Gem::Version
33
+ version: 0.0.0
34
+ require_paths:
35
+ - lib
36
+ specification_version: 1
37
+ test_files: []
81
38
  dependencies:
82
- - !ruby/object:Gem::Dependency
39
+ - !ruby/object:Gem::Dependency
83
40
  name: gem_plugin
84
41
  version_requirement:
85
- version_requirements: !ruby/object:Gem::Version::Requirement
42
+ version_requirements: !ruby/object:Gem::Version::Requirement
43
+ version:
86
44
  requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
89
47
  version: 0.2.1
90
- version:
91
- - !ruby/object:Gem::Dependency
48
+ - !ruby/object:Gem::Dependency
92
49
  name: activerdf
93
50
  version_requirement:
94
- version_requirements: !ruby/object:Gem::Version::Requirement
95
- requirements:
96
- - - ">="
97
- - !ruby/object:Gem::Version
98
- version: 0.9.2
51
+ version_requirements: !ruby/object:Gem::Version::Requirement
99
52
  version:
100
- - !ruby/object:Gem::Dependency
53
+ requirements:
54
+ - - '>='
55
+ - !ruby/object:Gem::Version
56
+ version: 1.6.4
57
+ - !ruby/object:Gem::Dependency
101
58
  name: json_pure
102
59
  version_requirement:
103
- version_requirements: !ruby/object:Gem::Version::Requirement
60
+ version_requirements: !ruby/object:Gem::Version::Requirement
61
+ version:
104
62
  requirements:
105
- - - ">="
106
- - !ruby/object:Gem::Version
63
+ - - '>='
64
+ - !ruby/object:Gem::Version
107
65
  version: 1.1.1
108
- version:
66
+ description: ActiveRDF adapter to SPARQL endpoint
67
+ authors:
68
+ - Eyal Oren <eyal.oren@deri.org
69
+ email:
70
+ extra_rdoc_files:
71
+ - README
72
+ requirements: []
73
+ rubyforge_project:
74
+ autorequire:
@@ -1,225 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
- <head>
8
- <title>Class: SparqlAdapter</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
- <link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
12
- <script type="text/javascript">
13
- // <![CDATA[
14
-
15
- function popupCode( url ) {
16
- window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
- }
18
-
19
- function toggleCode( id ) {
20
- if ( document.getElementById )
21
- elem = document.getElementById( id );
22
- else if ( document.all )
23
- elem = eval( "document.all." + id );
24
- else
25
- return false;
26
-
27
- elemStyle = elem.style;
28
-
29
- if ( elemStyle.display != "block" ) {
30
- elemStyle.display = "block"
31
- } else {
32
- elemStyle.display = "none"
33
- }
34
-
35
- return true;
36
- }
37
-
38
- // Make codeblocks hidden by default
39
- document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
-
41
- // ]]>
42
- </script>
43
-
44
- </head>
45
- <body>
46
-
47
-
48
-
49
- <div id="classHeader">
50
- <table class="header-table">
51
- <tr class="top-aligned-row">
52
- <td><strong>Class</strong></td>
53
- <td class="class-name-in-header">SparqlAdapter</td>
54
- </tr>
55
- <tr class="top-aligned-row">
56
- <td><strong>In:</strong></td>
57
- <td>
58
- <a href="../files/lib/activerdf_sparql/sparql_rb.html">
59
- lib/activerdf_sparql/sparql.rb
60
- </a>
61
- <br />
62
- </td>
63
- </tr>
64
-
65
- <tr class="top-aligned-row">
66
- <td><strong>Parent:</strong></td>
67
- <td>
68
- ActiveRdfAdapter
69
- </td>
70
- </tr>
71
- </table>
72
- </div>
73
- <!-- banner header -->
74
-
75
- <div id="bodyContent">
76
-
77
-
78
-
79
- <div id="contextContent">
80
-
81
- <div id="description">
82
- <p>
83
- SPARQL adapter
84
- </p>
85
-
86
- </div>
87
-
88
-
89
- </div>
90
-
91
- <div id="method-list">
92
- <h3 class="section-bar">Methods</h3>
93
-
94
- <div class="name-list">
95
- <a href="#M000004">execute_sparql_query</a>&nbsp;&nbsp;
96
- <a href="#M000001">new</a>&nbsp;&nbsp;
97
- <a href="#M000003">query</a>&nbsp;&nbsp;
98
- <a href="#M000002">size</a>&nbsp;&nbsp;
99
- </div>
100
- </div>
101
-
102
- </div>
103
-
104
-
105
- <!-- if includes -->
106
-
107
- <div id="section">
108
-
109
-
110
-
111
-
112
-
113
- <div id="attribute-list">
114
- <h3 class="section-bar">Attributes</h3>
115
-
116
- <div class="name-list">
117
- <table>
118
- <tr class="top-aligned-row context-row">
119
- <td class="context-item-name">engine</td>
120
- <td class="context-item-value">&nbsp;[R]&nbsp;</td>
121
- <td class="context-item-desc">
122
- Instantiate the connection with the SPARQL Endpoint. available parameters:
123
-
124
- <ul>
125
- <li>:url =&gt; url: endpoint location e.g. &quot;<a
126
- href="http://m3pe.org:8080/repositories/test-people">m3pe.org:8080/repositories/test-people</a>&quot;
127
-
128
- </li>
129
- <li>:results =&gt; one of :xml, :json, :sparql_xml
130
-
131
- </li>
132
- </ul>
133
- </td>
134
- </tr>
135
- </table>
136
- </div>
137
- </div>
138
-
139
-
140
-
141
- <!-- if method_list -->
142
- <div id="methods">
143
- <h3 class="section-bar">Public Class methods</h3>
144
-
145
- <div id="method-M000001" class="method-detail">
146
- <a name="M000001"></a>
147
-
148
- <div class="method-heading">
149
- <a href="SparqlAdapter.src/M000001.html" target="Code" class="method-signature"
150
- onclick="popupCode('SparqlAdapter.src/M000001.html');return false;">
151
- <span class="method-name">new</span><span class="method-args">(params = {})</span>
152
- </a>
153
- </div>
154
-
155
- <div class="method-description">
156
- </div>
157
- </div>
158
-
159
- <h3 class="section-bar">Public Instance methods</h3>
160
-
161
- <div id="method-M000004" class="method-detail">
162
- <a name="M000004"></a>
163
-
164
- <div class="method-heading">
165
- <a href="SparqlAdapter.src/M000004.html" target="Code" class="method-signature"
166
- onclick="popupCode('SparqlAdapter.src/M000004.html');return false;">
167
- <span class="method-name">execute_sparql_query</span><span class="method-args">(qs, header=nil) {|*clauses| ...}</span>
168
- </a>
169
- </div>
170
-
171
- <div class="method-description">
172
- <p>
173
- do the real work of executing the sparql <a
174
- href="SparqlAdapter.html#M000003">query</a>
175
- </p>
176
- </div>
177
- </div>
178
-
179
- <div id="method-M000003" class="method-detail">
180
- <a name="M000003"></a>
181
-
182
- <div class="method-heading">
183
- <a href="SparqlAdapter.src/M000003.html" target="Code" class="method-signature"
184
- onclick="popupCode('SparqlAdapter.src/M000003.html');return false;">
185
- <span class="method-name">query</span><span class="method-args">(query, &amp;block)</span>
186
- </a>
187
- </div>
188
-
189
- <div class="method-description">
190
- <p>
191
- <a href="SparqlAdapter.html#M000003">query</a> datastore with <a
192
- href="SparqlAdapter.html#M000003">query</a> string (SPARQL), returns array
193
- with <a href="SparqlAdapter.html#M000003">query</a> results may be called
194
- with a block
195
- </p>
196
- </div>
197
- </div>
198
-
199
- <div id="method-M000002" class="method-detail">
200
- <a name="M000002"></a>
201
-
202
- <div class="method-heading">
203
- <a href="SparqlAdapter.src/M000002.html" target="Code" class="method-signature"
204
- onclick="popupCode('SparqlAdapter.src/M000002.html');return false;">
205
- <span class="method-name">size</span><span class="method-args">()</span>
206
- </a>
207
- </div>
208
-
209
- <div class="method-description">
210
- </div>
211
- </div>
212
-
213
-
214
- </div>
215
-
216
-
217
- </div>
218
-
219
-
220
- <div id="validator-badges">
221
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
222
- </div>
223
-
224
- </body>
225
- </html>
@@ -1,31 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>new (SparqlAdapter)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/activerdf_sparql/sparql.rb, line 19</span>
14
- 19: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">params</span> = {})
15
- 20: <span class="ruby-ivar">@reads</span> = <span class="ruby-keyword kw">true</span>
16
- 21: <span class="ruby-ivar">@writes</span> = <span class="ruby-keyword kw">false</span>
17
- 22:
18
- 23: <span class="ruby-ivar">@url</span> = <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:url</span>] <span class="ruby-operator">||</span> <span class="ruby-value str">''</span>
19
- 24: <span class="ruby-ivar">@result_format</span> = <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:results</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">:json</span>
20
- 25: <span class="ruby-ivar">@engine</span> = <span class="ruby-identifier">params</span>[<span class="ruby-identifier">:engine</span>]
21
- 26:
22
- 27: <span class="ruby-identifier">supported_engines</span> = [<span class="ruby-identifier">:yars2</span>, <span class="ruby-identifier">:sesame2</span>, <span class="ruby-identifier">:joseki</span>, <span class="ruby-identifier">:virtuoso</span>]
23
- 28: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ActiveRdfError</span>, <span class="ruby-value str">&quot;SPARQL engine unsupported&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">supported_engines</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-ivar">@engine</span>)
24
- 29:
25
- 30: <span class="ruby-identifier">known_formats</span> = [<span class="ruby-identifier">:xml</span>, <span class="ruby-identifier">:json</span>, <span class="ruby-identifier">:sparql_xml</span>]
26
- 31: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ActiveRdfError</span>, <span class="ruby-value str">&quot;Result format unsupported&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">known_formats</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-ivar">@result_format</span>)
27
- 32:
28
- 33: <span class="ruby-identifier">$activerdflog</span>.<span class="ruby-identifier">info</span> <span class="ruby-node">&quot;SPARQL adapter initialised #{inspect}&quot;</span>
29
- 34: <span class="ruby-keyword kw">end</span></pre>
30
- </body>
31
- </html>
@@ -1,18 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>size (SparqlAdapter)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/activerdf_sparql/sparql.rb, line 36</span>
14
- 36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">size</span>
15
- 37: <span class="ruby-identifier">query</span>(<span class="ruby-constant">Query</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">select</span>(<span class="ruby-identifier">:s</span>,<span class="ruby-identifier">:p</span>,<span class="ruby-identifier">:o</span>).<span class="ruby-identifier">where</span>(<span class="ruby-identifier">:s</span>,<span class="ruby-identifier">:p</span>,<span class="ruby-identifier">:o</span>)).<span class="ruby-identifier">size</span>
16
- 38: <span class="ruby-keyword kw">end</span></pre>
17
- </body>
18
- </html>
@@ -1,20 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>query (SparqlAdapter)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/activerdf_sparql/sparql.rb, line 42</span>
14
- 42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query</span>(<span class="ruby-identifier">query</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
15
- 43: <span class="ruby-identifier">time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>
16
- 44: <span class="ruby-identifier">qs</span> = <span class="ruby-constant">Query2SPARQL</span>.<span class="ruby-identifier">translate</span>(<span class="ruby-identifier">query</span>)
17
- 45: <span class="ruby-identifier">execute_sparql_query</span>(<span class="ruby-identifier">qs</span>, <span class="ruby-identifier">header</span>(<span class="ruby-identifier">query</span>), <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
18
- 46: <span class="ruby-keyword kw">end</span></pre>
19
- </body>
20
- </html>
@@ -1,55 +0,0 @@
1
- <?xml version="1.0" encoding="iso-8859-1"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
-
6
- <html>
7
- <head>
8
- <title>execute_sparql_query (SparqlAdapter)</title>
9
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
- <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
11
- </head>
12
- <body class="standalone-code">
13
- <pre> <span class="ruby-comment cmt"># File lib/activerdf_sparql/sparql.rb, line 49</span>
14
- 49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">execute_sparql_query</span>(<span class="ruby-identifier">qs</span>, <span class="ruby-identifier">header</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>)
15
- 50: <span class="ruby-identifier">header</span> = <span class="ruby-identifier">header</span>(<span class="ruby-keyword kw">nil</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">header</span>.<span class="ruby-identifier">nil?</span>
16
- 51:
17
- 52: <span class="ruby-comment cmt"># encoding query string in URL</span>
18
- 53: <span class="ruby-identifier">url</span> = <span class="ruby-node">&quot;#@url?query=#{CGI.escape(qs)}&quot;</span>
19
- 54: <span class="ruby-comment cmt">#url += &quot;&amp;content-type=#{CGI.escape('application/sparql-results+xml')}&quot; if @yars2</span>
20
- 55: <span class="ruby-identifier">url</span> = <span class="ruby-identifier">url</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-value str">&quot;DISTINCT&quot;</span>, <span class="ruby-value str">&quot;&quot;</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@yars2</span>
21
- 56: <span class="ruby-identifier">$activerdflog</span>.<span class="ruby-identifier">debug</span> <span class="ruby-node">&quot;executing: requesting #{url}&quot;</span>
22
- 57:
23
- 58: <span class="ruby-comment cmt"># querying sparql endpoint</span>
24
- 59: <span class="ruby-identifier">response</span> = <span class="ruby-value str">''</span>
25
- 60: <span class="ruby-keyword kw">begin</span>
26
- 61: <span class="ruby-identifier">open</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">header</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
27
- 62: <span class="ruby-identifier">response</span> = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">read</span>
28
- 63: <span class="ruby-keyword kw">end</span>
29
- 64: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">OpenURI</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTPError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
30
- 65: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ActiveRdfError</span>, <span class="ruby-node">&quot;could not query SPARQL endpoint, server said: #{e}&quot;</span>
31
- 66: <span class="ruby-keyword kw">return</span> []
32
- 67: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Errno</span><span class="ruby-operator">::</span><span class="ruby-constant">ECONNREFUSED</span>
33
- 68: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ActiveRdfError</span>, <span class="ruby-value str">&quot;connection refused on SPARQL endpoint #@url&quot;</span>
34
- 69: <span class="ruby-keyword kw">return</span> []
35
- 70: <span class="ruby-keyword kw">end</span>
36
- 71: <span class="ruby-identifier">$activerdflog</span>.<span class="ruby-identifier">debug</span> <span class="ruby-node">&quot;response:\n#{response}&quot;</span>
37
- 72:
38
- 73: <span class="ruby-comment cmt"># we parse content depending on the result format</span>
39
- 74: <span class="ruby-identifier">results</span> = <span class="ruby-keyword kw">case</span> <span class="ruby-ivar">@result_format</span>
40
- 75: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:json</span>
41
- 76: <span class="ruby-identifier">parse_json</span>(<span class="ruby-identifier">response</span>)
42
- 77: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:xml</span>, <span class="ruby-identifier">:sparql_xml</span>
43
- 78: <span class="ruby-identifier">parse_xml</span>(<span class="ruby-identifier">response</span>)
44
- 79: <span class="ruby-keyword kw">end</span>
45
- 80:
46
- 81: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block_given?</span>
47
- 82: <span class="ruby-identifier">results</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-operator">*</span><span class="ruby-identifier">clauses</span><span class="ruby-operator">|</span>
48
- 83: <span class="ruby-keyword kw">yield</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">clauses</span>)
49
- 84: <span class="ruby-keyword kw">end</span>
50
- 85: <span class="ruby-keyword kw">else</span>
51
- 86: <span class="ruby-identifier">results</span>
52
- 87: <span class="ruby-keyword kw">end</span>
53
- 88: <span class="ruby-keyword kw">end</span></pre>
54
- </body>
55
- </html>