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 +4 -4
- data/README.md +13 -9
- data/VERSION +1 -1
- data/lib/sparql/algebra/operator/concat.rb +5 -0
- data/lib/sparql/algebra/operator/sequence.rb +1 -1
- data/lib/sparql/grammar/parser11.rb +7 -0
- metadata +38 -60
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 04020d0f2d52ea9619dc58bf25c0660f62469e492cbf32893345cea0f888bc06
|
|
4
|
+
data.tar.gz: f6f982cfcc78222576f741b77bd4665e58f922641906ee8d66ca370063713752
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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 >=
|
|
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 (<
|
|
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/) (>=
|
|
401
|
-
* [RDF.rb](https://rubygems.org/gems/rdf) (~> 3.
|
|
402
|
-
* [SPARQL::Client](https://rubygems.org/gems/sparql-client) (~> 3.
|
|
403
|
-
* [SXP](https://rubygems.org/gems/sxp) (~>
|
|
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.
|
|
407
|
-
* Soft dependency on [Nokogiri](https://rubygems.org/gems/nokogiri) (~> 1.
|
|
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.
|
|
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.
|
|
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:
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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: '
|
|
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: '
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
131
|
+
version: '3.3'
|
|
162
132
|
- !ruby/object:Gem::Dependency
|
|
163
|
-
name:
|
|
133
|
+
name: getoptlong
|
|
164
134
|
requirement: !ruby/object:Gem::Requirement
|
|
165
135
|
requirements:
|
|
166
136
|
- - "~>"
|
|
167
137
|
- !ruby/object:Gem::Version
|
|
168
|
-
version: '
|
|
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: '
|
|
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.
|
|
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.
|
|
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.
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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.
|
|
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.
|