sparql 3.2.6 → 3.3.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 10f53a717082f7b94d3e9d207a3cddbd944c15ab7715c551c9a39af6699c77f0
4
- data.tar.gz: 447bd2c05cb834d81d8e17e8e50eee8b5c972dc116422420b6b742c84a08fe56
3
+ metadata.gz: 04020d0f2d52ea9619dc58bf25c0660f62469e492cbf32893345cea0f888bc06
4
+ data.tar.gz: f6f982cfcc78222576f741b77bd4665e58f922641906ee8d66ca370063713752
5
5
  SHA512:
6
- metadata.gz: 18c39a3cb233107b4e0c888039e3888ac53eb2982ba2379c126fd777a1ac0834f1c8d50f49fb5a8b081e60781e2f711a6a1f232b5fc394f82b159dd3db5a183b
7
- data.tar.gz: f206bd6d67b100c2cab74a1e5185cdd393c3fe1eb7529a71e14ffd8d4255064b5d0f97563487f00dbb45126dc87d7eba5953816347d30f89860a62d0c6d538d2
6
+ metadata.gz: 427b55415d048501faad82f0355b74d40e21732e7e3ed61f44cb6f0db5446a58666989c341276db0afdd093b5b77a0bc335aa52de0620a18fe9b1d59cf32201d
7
+ data.tar.gz: 775d4e5037ab9d3affaacf71ee7723f6337da9959ce6acf7c5dd24e424706ff681f446a7087ee7af81046cc9b53f9385b38e5e2bc6529164311fa33108fe4742
data/README.md CHANGED
@@ -25,7 +25,7 @@ An implementation of [SPARQL][] for [RDF.rb][].
25
25
  * Helper method for describing [SPARQL Service Description][SSD]
26
26
  * Helper method for setting up datasets as part of the [SPARQL 1.1 Protocol][].
27
27
  * Implementation Report: {file:etc/earl.html EARL}
28
- * Compatible with Ruby >= 2.6.
28
+ * Compatible with Ruby >= 3.0.
29
29
  * Supports Unicode query strings both on all versions of Ruby.
30
30
  * Provisional support for [SPARQL-star][].
31
31
 
@@ -308,7 +308,7 @@ a full set of RDF formats.
308
308
  ### Command line processing
309
309
 
310
310
  sparql execute --dataset etc/doap.ttl etc/from_default.rq
311
- sparql execute -e "SELECT * FROM <etc/doap.ttl> WHERE { ?s ?p ?o }"
311
+ sparql execute --dataset etc/doap.ttl -e "SELECT * FROM <etc/doap.ttl> WHERE { ?s ?p ?o }"
312
312
 
313
313
  # Generate SPARQL Algebra Expression (SSE) format
314
314
  sparql parse etc/input.rq
@@ -316,7 +316,7 @@ a full set of RDF formats.
316
316
 
317
317
  # Generate SPARQL Query from SSE
318
318
  sparql parse --sse etc/input.sse --format sparql
319
- sparql parse --sse --format sparql -e "(dataset (<http://usefulinc.com/ns/doap>) (bgp (triple ?s ?p ?o))))"
319
+ sparql parse --sse --format sparql -e "(dataset (<etc/doap.ttl>) (bgp (triple ?s ?p ?o))))"
320
320
 
321
321
  # Run query using SSE input
322
322
  sparql execute --dataset etc/doap.ttl --sse etc/input.sse
@@ -382,6 +382,10 @@ Find more examples in {SPARQL::Grammar} and {SPARQL::Algebra}.
382
382
 
383
383
  Full documentation available on [Rubydoc.info][SPARQL doc]
384
384
 
385
+ ## Change Log
386
+
387
+ See [Release Notes on GitHub](https://github.com/ruby-rdf/sparql/releases)
388
+
385
389
  ### Principle Classes
386
390
 
387
391
  * {SPARQL}
@@ -397,14 +401,14 @@ Full documentation available on [Rubydoc.info][SPARQL doc]
397
401
 
398
402
  ## Dependencies
399
403
 
400
- * [Ruby](https://ruby-lang.org/) (>= 2.6)
401
- * [RDF.rb](https://rubygems.org/gems/rdf) (~> 3.2)
402
- * [SPARQL::Client](https://rubygems.org/gems/sparql-client) (~> 3.1)
403
- * [SXP](https://rubygems.org/gems/sxp) (~> 1.2)
404
+ * [Ruby](https://ruby-lang.org/) (>= 3.0)
405
+ * [RDF.rb](https://rubygems.org/gems/rdf) (~> 3.3)
406
+ * [SPARQL::Client](https://rubygems.org/gems/sparql-client) (~> 3.3)
407
+ * [SXP](https://rubygems.org/gems/sxp) (~> 2.0)
404
408
  * [Builder](https://rubygems.org/gems/builder) (~> 3.2)
405
409
  * [JSON](https://rubygems.org/gems/json) (~> 2.6)
406
- * Soft dependency on [Linked Data][] (>= 3.1)
407
- * Soft dependency on [Nokogiri](https://rubygems.org/gems/nokogiri) (~> 1.12)
410
+ * Soft dependency on [Linked Data][] (>= 3.3)
411
+ * Soft dependency on [Nokogiri](https://rubygems.org/gems/nokogiri) (~> 1.15)
408
412
  Falls back to REXML for XML parsing Builder for XML serializing. Nokogiri is much more efficient
409
413
  * Soft dependency on [Equivalent XML](https://rubygems.org/gems/equivalent-xml) (>= 0.6)
410
414
  Equivalent XML performs more efficient comparisons of XML Literals when Nokogiri is included
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.2.6
1
+ 3.3.1
@@ -50,6 +50,11 @@ module SPARQL; module Algebra
50
50
  def evaluate(bindings, **options)
51
51
  ops = operands.map {|op| op.evaluate(bindings, **options.merge(depth: options[:depth].to_i + 1))}
52
52
 
53
+ # rdf:nil is like empty string
54
+ if ops == [RDF.nil]
55
+ return RDF::Literal.new("")
56
+ end
57
+
53
58
  raise TypeError, "expected all plain literal operands" unless ops.all? {|op| op.literal? && op.plain?}
54
59
 
55
60
  ops.inject do |memo, op|
@@ -28,7 +28,7 @@ module SPARQL; module Algebra
28
28
  # @yieldparam [RDF::Query::Solution] solution
29
29
  # @yieldreturn [void] ignored
30
30
  # @see https://www.w3.org/TR/sparql11-query/#sparqlAlgebra
31
- def execute(queryable, **options)
31
+ def execute(queryable, **options, &block)
32
32
  debug(options) {"Sequence #{operands.to_sse}"}
33
33
 
34
34
  last = queryable.query(operands.shift, **options.merge(depth: options[:depth].to_i + 1))
@@ -974,6 +974,11 @@ module SPARQL::Grammar
974
974
  add_prod_data :row, [:row]
975
975
  else
976
976
  Array(data[:rowdata]).each do |ds|
977
+ if ds.length < data[:Var].length
978
+ raise Error, "Too few values in a VALUE clause compared to the number of variables"
979
+ elsif ds.length > data[:Var].length
980
+ raise Error, "Too many values in a VALUE clause compared to the number of variables"
981
+ end
977
982
  r = [:row]
978
983
  ds.each_with_index do |d, i|
979
984
  r << [vars[i], d] if d
@@ -2325,6 +2330,8 @@ module SPARQL::Grammar
2325
2330
 
2326
2331
  def ns(prefix, suffix)
2327
2332
  base = prefix(prefix).to_s
2333
+ suffix = suffix.to_s.gsub(PN_LOCAL_ESC) {|esc| esc[1]} if
2334
+ suffix.to_s.match?(PN_LOCAL_ESC)
2328
2335
  suffix = suffix.to_s.sub(/^\#/, "") if base.index("#")
2329
2336
  debug {"ns(#{prefix.inspect}): base: '#{base}', suffix: '#{suffix}'"}
2330
2337
  iri(base + suffix.to_s)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sparql
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.6
4
+ version: 3.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregg Kellogg
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-07-23 00:00:00.000000000 Z
12
+ date: 2024-02-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdf
@@ -17,60 +17,42 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '3.2'
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 3.2.11
20
+ version: '3.3'
24
21
  type: :runtime
25
22
  prerelease: false
26
23
  version_requirements: !ruby/object:Gem::Requirement
27
24
  requirements:
28
25
  - - "~>"
29
26
  - !ruby/object:Gem::Version
30
- version: '3.2'
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 3.2.11
27
+ version: '3.3'
34
28
  - !ruby/object:Gem::Dependency
35
29
  name: rdf-aggregate-repo
36
30
  requirement: !ruby/object:Gem::Requirement
37
31
  requirements:
38
32
  - - "~>"
39
33
  - !ruby/object:Gem::Version
40
- version: '3.2'
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: 3.2.1
34
+ version: '3.3'
44
35
  type: :runtime
45
36
  prerelease: false
46
37
  version_requirements: !ruby/object:Gem::Requirement
47
38
  requirements:
48
39
  - - "~>"
49
40
  - !ruby/object:Gem::Version
50
- version: '3.2'
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: 3.2.1
41
+ version: '3.3'
54
42
  - !ruby/object:Gem::Dependency
55
43
  name: ebnf
56
44
  requirement: !ruby/object:Gem::Requirement
57
45
  requirements:
58
46
  - - "~>"
59
47
  - !ruby/object:Gem::Version
60
- version: '2.3'
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- version: 2.3.5
48
+ version: '2.5'
64
49
  type: :runtime
65
50
  prerelease: false
66
51
  version_requirements: !ruby/object:Gem::Requirement
67
52
  requirements:
68
53
  - - "~>"
69
54
  - !ruby/object:Gem::Version
70
- version: '2.3'
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- version: 2.3.5
55
+ version: '2.5'
74
56
  - !ruby/object:Gem::Dependency
75
57
  name: builder
76
58
  requirement: !ruby/object:Gem::Requirement
@@ -111,74 +93,70 @@ dependencies:
111
93
  requirements:
112
94
  - - "~>"
113
95
  - !ruby/object:Gem::Version
114
- version: '1.2'
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: 1.2.4
96
+ version: '2.0'
118
97
  type: :runtime
119
98
  prerelease: false
120
99
  version_requirements: !ruby/object:Gem::Requirement
121
100
  requirements:
122
101
  - - "~>"
123
102
  - !ruby/object:Gem::Version
124
- version: '1.2'
125
- - - ">="
126
- - !ruby/object:Gem::Version
127
- version: 1.2.4
103
+ version: '2.0'
128
104
  - !ruby/object:Gem::Dependency
129
105
  name: sparql-client
130
106
  requirement: !ruby/object:Gem::Requirement
131
107
  requirements:
132
108
  - - "~>"
133
109
  - !ruby/object:Gem::Version
134
- version: '3.2'
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- version: 3.2.2
110
+ version: '3.3'
138
111
  type: :runtime
139
112
  prerelease: false
140
113
  version_requirements: !ruby/object:Gem::Requirement
141
114
  requirements:
142
115
  - - "~>"
143
116
  - !ruby/object:Gem::Version
144
- version: '3.2'
145
- - - ">="
146
- - !ruby/object:Gem::Version
147
- version: 3.2.2
117
+ version: '3.3'
148
118
  - !ruby/object:Gem::Dependency
149
119
  name: rdf-xsd
150
120
  requirement: !ruby/object:Gem::Requirement
151
121
  requirements:
152
122
  - - "~>"
153
123
  - !ruby/object:Gem::Version
154
- version: '3.2'
124
+ version: '3.3'
155
125
  type: :runtime
156
126
  prerelease: false
157
127
  version_requirements: !ruby/object:Gem::Requirement
158
128
  requirements:
159
129
  - - "~>"
160
130
  - !ruby/object:Gem::Version
161
- version: '3.2'
131
+ version: '3.3'
162
132
  - !ruby/object:Gem::Dependency
163
- name: sinatra
133
+ name: getoptlong
164
134
  requirement: !ruby/object:Gem::Requirement
165
135
  requirements:
166
136
  - - "~>"
167
137
  - !ruby/object:Gem::Version
168
- version: '3.0'
169
- - - ">="
170
- - !ruby/object:Gem::Version
171
- version: 3.0.5
138
+ version: '0.2'
172
139
  type: :development
173
140
  prerelease: false
174
141
  version_requirements: !ruby/object:Gem::Requirement
175
142
  requirements:
176
143
  - - "~>"
177
144
  - !ruby/object:Gem::Version
178
- version: '3.0'
179
- - - ">="
145
+ version: '0.2'
146
+ - !ruby/object:Gem::Dependency
147
+ name: sinatra
148
+ requirement: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
180
151
  - !ruby/object:Gem::Version
181
- version: 3.0.5
152
+ version: '3.1'
153
+ type: :development
154
+ prerelease: false
155
+ version_requirements: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '3.1'
182
160
  - !ruby/object:Gem::Dependency
183
161
  name: rack
184
162
  requirement: !ruby/object:Gem::Requirement
@@ -219,28 +197,28 @@ dependencies:
219
197
  requirements:
220
198
  - - "~>"
221
199
  - !ruby/object:Gem::Version
222
- version: '3.2'
200
+ version: '3.3'
223
201
  type: :development
224
202
  prerelease: false
225
203
  version_requirements: !ruby/object:Gem::Requirement
226
204
  requirements:
227
205
  - - "~>"
228
206
  - !ruby/object:Gem::Version
229
- version: '3.2'
207
+ version: '3.3'
230
208
  - !ruby/object:Gem::Dependency
231
209
  name: linkeddata
232
210
  requirement: !ruby/object:Gem::Requirement
233
211
  requirements:
234
- - - "~>"
212
+ - - ">="
235
213
  - !ruby/object:Gem::Version
236
- version: '3.2'
214
+ version: '0'
237
215
  type: :development
238
216
  prerelease: false
239
217
  version_requirements: !ruby/object:Gem::Requirement
240
218
  requirements:
241
- - - "~>"
219
+ - - ">="
242
220
  - !ruby/object:Gem::Version
243
- version: '3.2'
221
+ version: '0'
244
222
  - !ruby/object:Gem::Dependency
245
223
  name: rspec
246
224
  requirement: !ruby/object:Gem::Requirement
@@ -472,14 +450,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
472
450
  requirements:
473
451
  - - ">="
474
452
  - !ruby/object:Gem::Version
475
- version: '2.6'
453
+ version: '3.0'
476
454
  required_rubygems_version: !ruby/object:Gem::Requirement
477
455
  requirements:
478
456
  - - ">="
479
457
  - !ruby/object:Gem::Version
480
458
  version: '0'
481
459
  requirements: []
482
- rubygems_version: 3.4.13
460
+ rubygems_version: 3.4.19
483
461
  signing_key:
484
462
  specification_version: 4
485
463
  summary: SPARQL Query and Update library for Ruby.