sparql-client 1.1.4 → 1.1.5
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.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/sparql/client.rb +7 -2
- data/lib/sparql/client/repository.rb +55 -56
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 38ac883367777a453e1af010eb241ee4c14ee3dc
|
4
|
+
data.tar.gz: 2b251fa756f8adb385e95394bb1497d917021340
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a3044448b1e7e7bb252de265834bf76bedae8deafa28a1861a49d1b08e6ec9fd62d54e3c19b70a39cd76cd595e8e8d8524287aeb6ad751eff080e1ddeac5ec6
|
7
|
+
data.tar.gz: f4839f05b1441be9bde48f8e411d85ecd86c433b670da202c8a0ca0a3f62f6c931470438ca7f213cf6aacc144581806058f03380db418d875934208df7956693
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.5
|
data/lib/sparql/client.rb
CHANGED
@@ -293,7 +293,12 @@ module SPARQL
|
|
293
293
|
case @url
|
294
294
|
when RDF::Queryable
|
295
295
|
require 'sparql' unless defined?(::SPARQL::Grammar)
|
296
|
-
|
296
|
+
begin
|
297
|
+
SPARQL.execute(query, @url, options)
|
298
|
+
rescue SPARQL::MalformedQuery
|
299
|
+
$stderr.puts "error running #{query}: #{$!}"
|
300
|
+
raise
|
301
|
+
end
|
297
302
|
else
|
298
303
|
parse_response(response(query, options), options)
|
299
304
|
end
|
@@ -315,7 +320,7 @@ module SPARQL
|
|
315
320
|
case @url
|
316
321
|
when RDF::Queryable
|
317
322
|
require 'sparql' unless defined?(::SPARQL::Grammar)
|
318
|
-
SPARQL.execute(query, @url, options)
|
323
|
+
SPARQL.execute(query, @url, options.merge(update: true))
|
319
324
|
else
|
320
325
|
parse_response(response(query, options), options)
|
321
326
|
end
|
@@ -25,31 +25,6 @@ module SPARQL; class Client
|
|
25
25
|
@update_client || @client
|
26
26
|
end
|
27
27
|
|
28
|
-
##
|
29
|
-
# Queries `self` using the given basic graph pattern (BGP) query,
|
30
|
-
# yielding each matched solution to the given block.
|
31
|
-
#
|
32
|
-
# Overrides Queryable::query_execute to use SPARQL::Client::query
|
33
|
-
#
|
34
|
-
# @param [RDF::Query] query
|
35
|
-
# the query to execute
|
36
|
-
# @param [Hash{Symbol => Object}] options ({})
|
37
|
-
# Any other options passed to `query.execute`
|
38
|
-
# @yield [solution]
|
39
|
-
# @yieldparam [RDF::Query::Solution] solution
|
40
|
-
# @yieldreturn [void] ignored
|
41
|
-
# @return [void] ignored
|
42
|
-
# @see RDF::Queryable#query
|
43
|
-
# @see RDF::Query#execute
|
44
|
-
def query_execute(query, options = {}, &block)
|
45
|
-
return nil unless block_given?
|
46
|
-
q = SPARQL::Client::Query.select(query.variables).where(*query.patterns)
|
47
|
-
client.query(q, options).each do |solution|
|
48
|
-
yield solution
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
##
|
53
28
|
# Enumerates each RDF statement in this repository.
|
54
29
|
#
|
55
30
|
# @yield [statement]
|
@@ -171,8 +146,8 @@ module SPARQL; class Client
|
|
171
146
|
# @see RDF::Repository#count?
|
172
147
|
def count
|
173
148
|
begin
|
174
|
-
binding = client.query("SELECT COUNT(*) WHERE { ?s ?p ?o }").first.to_hash
|
175
|
-
binding[
|
149
|
+
binding = client.query("SELECT (COUNT(*) AS ?count) WHERE { ?s ?p ?o }").first.to_hash
|
150
|
+
binding[:count].value.to_i rescue 0
|
176
151
|
rescue SPARQL::Client::MalformedQuery => e
|
177
152
|
# SPARQL 1.0 does not include support for aggregate functions:
|
178
153
|
count = 0
|
@@ -193,35 +168,6 @@ module SPARQL; class Client
|
|
193
168
|
client.ask.whether([:s, :p, :o]).false?
|
194
169
|
end
|
195
170
|
|
196
|
-
##
|
197
|
-
# Queries `self` for RDF statements matching the given `pattern`.
|
198
|
-
#
|
199
|
-
# @example
|
200
|
-
# repository.query([nil, RDF::DOAP.developer, nil])
|
201
|
-
# repository.query(:predicate => RDF::DOAP.developer)
|
202
|
-
#
|
203
|
-
# @fixme This should use basic SPARQL query mechanism.
|
204
|
-
#
|
205
|
-
# @param [Pattern] pattern
|
206
|
-
# @see RDF::Queryable#query_pattern
|
207
|
-
# @yield [statement]
|
208
|
-
# @yieldparam [Statement]
|
209
|
-
# @return [Enumerable<Statement>]
|
210
|
-
def query_pattern(pattern, &block)
|
211
|
-
pattern = pattern.dup
|
212
|
-
pattern.subject ||= RDF::Query::Variable.new
|
213
|
-
pattern.predicate ||= RDF::Query::Variable.new
|
214
|
-
pattern.object ||= RDF::Query::Variable.new
|
215
|
-
pattern.initialize!
|
216
|
-
query = client.construct(pattern).where(pattern)
|
217
|
-
|
218
|
-
if block_given?
|
219
|
-
query.each_statement(&block)
|
220
|
-
else
|
221
|
-
query.solutions.to_a.extend(RDF::Enumerable, RDF::Queryable)
|
222
|
-
end
|
223
|
-
end
|
224
|
-
|
225
171
|
##
|
226
172
|
# Returns `false` to indicate that this is a read-only repository.
|
227
173
|
#
|
@@ -254,6 +200,59 @@ module SPARQL; class Client
|
|
254
200
|
|
255
201
|
protected
|
256
202
|
|
203
|
+
##
|
204
|
+
# Queries `self` using the given basic graph pattern (BGP) query,
|
205
|
+
# yielding each matched solution to the given block.
|
206
|
+
#
|
207
|
+
# Overrides Queryable::query_execute to use SPARQL::Client::query
|
208
|
+
#
|
209
|
+
# @param [RDF::Query] query
|
210
|
+
# the query to execute
|
211
|
+
# @param [Hash{Symbol => Object}] options ({})
|
212
|
+
# Any other options passed to `query.execute`
|
213
|
+
# @yield [solution]
|
214
|
+
# @yieldparam [RDF::Query::Solution] solution
|
215
|
+
# @yieldreturn [void] ignored
|
216
|
+
# @return [void] ignored
|
217
|
+
# @see RDF::Queryable#query
|
218
|
+
# @see RDF::Query#execute
|
219
|
+
def query_execute(query, options = {}, &block)
|
220
|
+
return nil unless block_given?
|
221
|
+
q = SPARQL::Client::Query.select(query.variables).where(*query.patterns)
|
222
|
+
client.query(q, options).each do |solution|
|
223
|
+
yield solution
|
224
|
+
end
|
225
|
+
end
|
226
|
+
|
227
|
+
##
|
228
|
+
# Queries `self` for RDF statements matching the given `pattern`.
|
229
|
+
#
|
230
|
+
# @example
|
231
|
+
# repository.query([nil, RDF::DOAP.developer, nil])
|
232
|
+
# repository.query(:predicate => RDF::DOAP.developer)
|
233
|
+
#
|
234
|
+
# @fixme This should use basic SPARQL query mechanism.
|
235
|
+
#
|
236
|
+
# @param [Pattern] pattern
|
237
|
+
# @see RDF::Queryable#query_pattern
|
238
|
+
# @yield [statement]
|
239
|
+
# @yieldparam [Statement]
|
240
|
+
# @return [Enumerable<Statement>]
|
241
|
+
def query_pattern(pattern, &block)
|
242
|
+
pattern = pattern.dup
|
243
|
+
pattern.subject ||= RDF::Query::Variable.new
|
244
|
+
pattern.predicate ||= RDF::Query::Variable.new
|
245
|
+
pattern.object ||= RDF::Query::Variable.new
|
246
|
+
pattern.initialize!
|
247
|
+
query = client.construct(pattern).where(pattern)
|
248
|
+
|
249
|
+
if block_given?
|
250
|
+
query.each_statement(&block)
|
251
|
+
else
|
252
|
+
query.solutions.to_a.extend(RDF::Enumerable, RDF::Queryable)
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
257
256
|
##
|
258
257
|
# Deletes the given RDF statements from the underlying storage.
|
259
258
|
#
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sparql-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arto Bendiken
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-
|
13
|
+
date: 2015-05-04 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rdf
|
@@ -47,6 +47,9 @@ dependencies:
|
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: '1.1'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 1.1.6
|
50
53
|
type: :development
|
51
54
|
prerelease: false
|
52
55
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -54,6 +57,9 @@ dependencies:
|
|
54
57
|
- - "~>"
|
55
58
|
- !ruby/object:Gem::Version
|
56
59
|
version: '1.1'
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: 1.1.6
|
57
63
|
- !ruby/object:Gem::Dependency
|
58
64
|
name: rdf-spec
|
59
65
|
requirement: !ruby/object:Gem::Requirement
|