sparql 3.3.1 → 3.3.2
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 -15
- data/VERSION +1 -1
- data/bin/sparql +33 -24
- data/lib/sparql/algebra/aggregate.rb +1 -1
- data/lib/sparql/algebra/expression.rb +2 -2
- data/lib/sparql/algebra/extensions.rb +29 -2
- data/lib/sparql/algebra/operator/bgp.rb +7 -3
- data/lib/sparql/algebra/operator/group_concat.rb +5 -1
- data/lib/sparql/algebra/operator/join.rb +11 -5
- data/lib/sparql/algebra/operator/left_join.rb +13 -12
- data/lib/sparql/algebra/operator/minus.rb +1 -1
- data/lib/sparql/algebra/operator/path.rb +38 -0
- data/lib/sparql/algebra/operator/regex.rb +41 -3
- data/lib/sparql/algebra/operator/table.rb +1 -1
- data/lib/sparql/algebra/operator/union.rb +1 -1
- data/lib/sparql/algebra/operator.rb +8 -0
- data/lib/sparql/algebra.rb +5 -1
- data/lib/sparql/grammar/meta.rb +568 -51294
- data/lib/sparql/grammar/meta11.rb +51297 -0
- data/lib/sparql/grammar/parser.rb +3115 -0
- data/lib/sparql/grammar/parser11.rb +3 -3
- data/lib/sparql/grammar/{terminals11.rb → terminals.rb} +11 -11
- data/lib/sparql/grammar.rb +33 -26
- data/lib/sparql/server.rb +15 -6
- data/lib/sparql.rb +6 -1
- metadata +105 -53
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'ebnf'
|
2
2
|
require 'ebnf/ll1/parser'
|
3
|
-
require 'sparql/grammar/
|
3
|
+
require 'sparql/grammar/meta11'
|
4
4
|
|
5
5
|
module SPARQL::Grammar
|
6
6
|
##
|
@@ -8,8 +8,8 @@ module SPARQL::Grammar
|
|
8
8
|
#
|
9
9
|
# @see https://www.w3.org/TR/sparql11-query/#grammar
|
10
10
|
# @see https://en.wikipedia.org/wiki/LR_parser
|
11
|
-
class
|
12
|
-
include SPARQL::Grammar::
|
11
|
+
class Parser11
|
12
|
+
include SPARQL::Grammar::Meta11
|
13
13
|
include SPARQL::Grammar::Terminals
|
14
14
|
include EBNF::LL1::Parser
|
15
15
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'ebnf/
|
1
|
+
require 'ebnf/unescape'
|
2
2
|
|
3
3
|
module SPARQL::Grammar
|
4
4
|
module Terminals
|
@@ -15,8 +15,6 @@ module SPARQL::Grammar
|
|
15
15
|
U_CHARS2 = Regexp.compile("\\u00B7|[\\u0300-\\u036F]|[\\u203F-\\u2040]").freeze
|
16
16
|
IRI_RANGE = Regexp.compile("[[^<>\"{}|^`\\\\]&&[^\\x00-\\x20]]").freeze
|
17
17
|
|
18
|
-
# 26
|
19
|
-
UCHAR = EBNF::LL1::Lexer::UCHAR
|
20
18
|
# 170s
|
21
19
|
PERCENT = /%[0-9A-Fa-f]{2}/.freeze
|
22
20
|
# 172s
|
@@ -43,7 +41,7 @@ module SPARQL::Grammar
|
|
43
41
|
# 149
|
44
42
|
ECHAR = /\\[tbnrf\\"']/.freeze
|
45
43
|
# 18
|
46
|
-
IRIREF = /<(?:#{IRI_RANGE}
|
44
|
+
IRIREF = /<(?:#{IRI_RANGE})*>/.freeze
|
47
45
|
# 129
|
48
46
|
PNAME_NS = /#{PN_PREFIX}?:/.freeze
|
49
47
|
# 130
|
@@ -56,6 +54,7 @@ module SPARQL::Grammar
|
|
56
54
|
VAR2 = /\$#{VARNAME}/.freeze
|
57
55
|
# 134
|
58
56
|
LANGTAG = /@[a-zA-Z]+(?:-[a-zA-Z0-9]+)*/.freeze
|
57
|
+
LANG_DIR = /@([a-zA-Z]+(?:-[a-zA-Z0-9]+)*(?:--[a-zA-Z]+)?)/u.freeze
|
59
58
|
# 135
|
60
59
|
INTEGER = /[0-9]+/.freeze
|
61
60
|
# 136
|
@@ -75,13 +74,13 @@ module SPARQL::Grammar
|
|
75
74
|
# 143
|
76
75
|
DOUBLE_NEGATIVE = /(\-)([0-9]+\.[0-9]*#{EXPONENT}|\.?[0-9]+#{EXPONENT})/.freeze
|
77
76
|
# 145
|
78
|
-
STRING_LITERAL1 = /'([^\'\\\n\r]|#{ECHAR}
|
77
|
+
STRING_LITERAL1 = /'([^\'\\\n\r]|#{ECHAR})*'/.freeze
|
79
78
|
# 146
|
80
|
-
STRING_LITERAL2 = /"([^\"\\\n\r]|#{ECHAR}
|
79
|
+
STRING_LITERAL2 = /"([^\"\\\n\r]|#{ECHAR})*"/.freeze
|
81
80
|
# 147
|
82
|
-
STRING_LITERAL_LONG1 = /'''((?:'|'')?(?:[^'\\]|#{ECHAR}
|
81
|
+
STRING_LITERAL_LONG1 = /'''((?:'|'')?(?:[^'\\]|#{ECHAR}))*'''/m.freeze
|
83
82
|
# 148
|
84
|
-
STRING_LITERAL_LONG2 = /"""((?:"|"")?(?:[^"\\]|#{ECHAR}
|
83
|
+
STRING_LITERAL_LONG2 = /"""((?:"|"")?(?:[^"\\]|#{ECHAR}))*"""/m.freeze
|
85
84
|
|
86
85
|
# 151
|
87
86
|
WS = /(?:\s|(?:#[^\n\r]*))+/m.freeze
|
@@ -98,7 +97,7 @@ module SPARQL::Grammar
|
|
98
97
|
|DESCRIBE|DESC|DISTINCT|DROP|ENCODE_FOR_URI|EXISTS
|
99
98
|
|FILTER|FLOOR|FROM|GRAPH|GROUP_CONCAT|GROUP|HAVING
|
100
99
|
|HOURS|IF|INSERT\s+DATA|INSERT|INTO|IN|IRI
|
101
|
-
|LANGMATCHES|LANGTAG|LANG|LCASE|LIMIT|LOAD
|
100
|
+
|LANGMATCHES|LANGTAG|LANG_DIR|LANG|LCASE|LIMIT|LOAD
|
102
101
|
|MAX|MD5|MINUS|MINUTES|MIN|MONTH|MOVE
|
103
102
|
|NAMED|NOT|NOW|OFFSET|OPTIONAL
|
104
103
|
|ORDER|PREFIX|RAND|REDUCED|REGEX|REPLACE|ROUND|SAMPLE|SECONDS
|
@@ -111,9 +110,10 @@ module SPARQL::Grammar
|
|
111
110
|
|isTRIPLE|TRIPLE|SUBJECT|PREDICATE|OBJECT
|
112
111
|
|true
|
113
112
|
|false
|
113
|
+
|<<\(|\)>>
|
114
114
|
|<<|>>
|
115
115
|
|\{\||\|\}
|
116
|
-
|
116
|
+
|~|&&|!=|!|<=|>=|\^\^|\|\||[\(\),.;\[\]\{\}\+\-=<>\?\^\|\*\/a]
|
117
117
|
)xim.freeze
|
118
118
|
|
119
119
|
# Map terminals to canonical form
|
@@ -124,7 +124,7 @@ module SPARQL::Grammar
|
|
124
124
|
DESCRIBE DESC DISTINCT DROP ENCODE_FOR_URI EXISTS
|
125
125
|
FILTER FLOOR FROM GRAPH GROUP_CONCAT GROUP HAVING
|
126
126
|
HOURS IF INSERT INTO IN IRI
|
127
|
-
LANGMATCHES LANGTAG LANG LCASE LIMIT LOAD
|
127
|
+
LANGMATCHES LANGTAG LANG_DIR LANG LCASE LIMIT LOAD
|
128
128
|
MAX MD5 MINUS MINUTES MIN MONTH MOVE
|
129
129
|
NAMED NOT NOW OFFSET OPTIONAL
|
130
130
|
ORDER PREFIX RAND REDUCED REGEX REPLACE ROUND SAMPLE SECONDS
|
data/lib/sparql/grammar.rb
CHANGED
@@ -167,6 +167,7 @@ module SPARQL
|
|
167
167
|
# PREFIX : <http://bigdata.com>
|
168
168
|
# PREFIX foaf: <http://xmlns.com/foaf/0.1/>
|
169
169
|
# PREFIX dct: <http://purl.org/dc/elements/1.1/>
|
170
|
+
# PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
170
171
|
#
|
171
172
|
# SELECT ?age ?src WHERE {
|
172
173
|
# ?bob foaf:name "Bob" .
|
@@ -176,15 +177,15 @@ module SPARQL
|
|
176
177
|
# SXP:
|
177
178
|
#
|
178
179
|
# (prefix
|
179
|
-
#
|
180
|
-
#
|
181
|
-
#
|
182
|
-
#
|
183
|
-
#
|
184
|
-
#
|
185
|
-
#
|
186
|
-
#
|
187
|
-
#
|
180
|
+
# ((: <http://bigdata.com>)
|
181
|
+
# (foaf: <http://xmlns.com/foaf/0.1/>)
|
182
|
+
# (dct: <http://purl.org/dc/elements/1.1/>)
|
183
|
+
# (rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>))
|
184
|
+
# (project (?age ?src)
|
185
|
+
# (bgp
|
186
|
+
# (triple ?bob foaf:name "Bob")
|
187
|
+
# (triple ??1 rdf:reifies (qtriple ?bob foaf:age ?age))
|
188
|
+
# (triple ??1 dct:source ?src))))
|
188
189
|
#
|
189
190
|
# SPARQL:
|
190
191
|
#
|
@@ -205,26 +206,25 @@ module SPARQL
|
|
205
206
|
# SXP:
|
206
207
|
#
|
207
208
|
# (prefix
|
208
|
-
#
|
209
|
-
#
|
210
|
-
#
|
211
|
-
# (
|
212
|
-
#
|
213
|
-
#
|
214
|
-
#
|
215
|
-
#
|
216
|
-
# (triple (qtriple ?bob foaf:age ?age) dct:source ?src))
|
209
|
+
# ((: <http://bigdata.com>)
|
210
|
+
# (foaf: <http://xmlns.com/foaf/0.1/>)
|
211
|
+
# (dct: <http://purl.org/dc/elements/1.1/>))
|
212
|
+
# (construct
|
213
|
+
# ((triple ?bob foaf:name "Bob")
|
214
|
+
# (triple _:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies> (qtriple ?bob foaf:age ?age))
|
215
|
+
# (triple _:b1 dct:creator <http://example.com/crawlers#c1>)
|
216
|
+
# (triple _:b1 dct:source ?src))
|
217
217
|
# (bgp
|
218
|
-
#
|
219
|
-
#
|
220
|
-
|
221
|
-
|
218
|
+
# (triple ?bob foaf:name "Bob")
|
219
|
+
# (triple ??1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#reifies> (qtriple ?bob foaf:age ?age))
|
220
|
+
# (triple ??1 dct:source ?src))))
|
221
|
+
#
|
222
222
|
# ## Implementation Notes
|
223
223
|
# The parser is driven through a rules table contained in lib/sparql/grammar/meta.rb. This includes branch rules to indicate productions to be taken based on a current production.
|
224
224
|
#
|
225
225
|
# The meta.rb file is generated from etc/sparql11.bnf using the `ebnf` gem.
|
226
226
|
#
|
227
|
-
# ebnf --
|
227
|
+
# ebnf --peg --format rb \
|
228
228
|
# --mod-name SPARQL::Grammar::Meta \
|
229
229
|
# --output lib/sparql/grammar/meta.rb \
|
230
230
|
# etc/sparql11.bnf
|
@@ -232,8 +232,9 @@ module SPARQL
|
|
232
232
|
# @see http://www.w3.org/TR/sparql11-query/#grammar
|
233
233
|
# @see https://rubygems.org/gems/ebnf
|
234
234
|
module Grammar
|
235
|
-
autoload :
|
236
|
-
autoload :
|
235
|
+
autoload :Parser11, 'sparql/grammar/parser11'
|
236
|
+
autoload :Parser, 'sparql/grammar/parser'
|
237
|
+
autoload :Terminals, 'sparql/grammar/terminals'
|
237
238
|
|
238
239
|
# Make all defined non-autoloaded constants immutable:
|
239
240
|
constants.each { |name| const_get(name).freeze unless autoload?(name) }
|
@@ -248,11 +249,16 @@ module SPARQL
|
|
248
249
|
# Query may be an array of lexed tokens, a lexer, or a
|
249
250
|
# string or open file.
|
250
251
|
# @param [Hash{Symbol => Object}] options
|
252
|
+
# @option options [Boolean] :use11 SPARQL 1.1 version parser
|
251
253
|
# @option options (see SPARQL::Grammar::Parser#initialize)
|
252
254
|
# @return [Parser]
|
253
255
|
# @raise [Parser::Error] on invalid input
|
254
256
|
def self.parse(query, **options, &block)
|
255
|
-
|
257
|
+
if options[:use11]
|
258
|
+
Parser11.new(query, **options).parse(options[:update] ? :UpdateUnit : :QueryUnit)
|
259
|
+
else
|
260
|
+
Parser.new(query, **options).parse(options[:update] ? :UpdateUnit : :QueryUnit)
|
261
|
+
end
|
256
262
|
end
|
257
263
|
|
258
264
|
##
|
@@ -262,6 +268,7 @@ module SPARQL
|
|
262
268
|
# @param [Hash{Symbol => Object}] options
|
263
269
|
# any additional options (see `RDF::Reader#initialize` and `RDF::Format.for`)
|
264
270
|
# @option options [Symbol] :format (:ntriples)
|
271
|
+
# @option options [Boolean] :use11 SPARQL 1.1 version parser
|
265
272
|
# @option options (see parse)
|
266
273
|
# @yield [reader]
|
267
274
|
# @yieldparam [RDF::Reader] reader
|
data/lib/sparql/server.rb
CHANGED
@@ -13,6 +13,8 @@ module SPARQL
|
|
13
13
|
#
|
14
14
|
# @param [RDF::Dataset] dataset (RDF::Repository.new)
|
15
15
|
# @param [Hash{Symbol => Object}] options
|
16
|
+
# @option options [Hash] :host_authorization
|
17
|
+
# A hash of options to host_authorization, to be used by the Rack::Protection::HostAuthorization middleware.
|
16
18
|
# @return [Sinatra::Base]
|
17
19
|
def application(dataset: RDF::Repository.new, **options)
|
18
20
|
Sinatra.new do
|
@@ -21,6 +23,10 @@ module SPARQL
|
|
21
23
|
enable :logging
|
22
24
|
disable :raise_errors, :show_exceptions if settings.production?
|
23
25
|
|
26
|
+
if options[:host_authorization]
|
27
|
+
set :host_authorization, options[:host_authorization]
|
28
|
+
end
|
29
|
+
|
24
30
|
mime_type :jsonld, "application/ld+json"
|
25
31
|
mime_type :normalize, "application/normalized+n-quads"
|
26
32
|
mime_type :sparql, "application/sparql-query"
|
@@ -43,7 +49,7 @@ module SPARQL
|
|
43
49
|
rescue SPARQL::Grammar::Parser::Error => e
|
44
50
|
halt 400, "Error parsing query: #{e.message}"
|
45
51
|
end
|
46
|
-
res = query.execute(repo,
|
52
|
+
res = query.execute(repo,
|
47
53
|
logger: request.logger,
|
48
54
|
**options.merge(opts))
|
49
55
|
res.is_a?(RDF::Literal::Boolean) ? [res] : res
|
@@ -61,8 +67,12 @@ module SPARQL
|
|
61
67
|
end
|
62
68
|
|
63
69
|
post '/' do
|
64
|
-
|
65
|
-
|
70
|
+
request_body = request.body.read
|
71
|
+
opts = params.inject({}) { |memo, (k,v)| memo.merge(k.to_sym => v) }
|
72
|
+
# Note, this depends on the Rack::SPARQL::ContentNegotiation
|
73
|
+
# middleware to rewrite application/x-www-form-urlencoded to be
|
74
|
+
# conformant with either application/sparql-query or
|
75
|
+
# application/sparql-update.
|
66
76
|
query = begin
|
67
77
|
update = case request.content_type
|
68
78
|
when %r(application/sparql-query) then false
|
@@ -70,12 +80,11 @@ module SPARQL
|
|
70
80
|
else
|
71
81
|
halt 406, "No query found for #{request.content_type}"
|
72
82
|
end
|
73
|
-
|
74
83
|
# XXX Rack always sets input to ASCII-8BIT
|
75
84
|
#unless request.body.external_encoding == Encoding::UTF_8
|
76
85
|
# halt 400, "improper body encoding: #{request.body.external_encoding}"
|
77
86
|
#end
|
78
|
-
SPARQL.parse(
|
87
|
+
SPARQL.parse(request_body, base_uri: url, update: update)
|
79
88
|
rescue SPARQL::Grammar::Parser::Error => e
|
80
89
|
halt 400, "Error parsing #{update ? 'update' : 'query'}: #{e.message}"
|
81
90
|
end
|
@@ -90,4 +99,4 @@ module SPARQL
|
|
90
99
|
end
|
91
100
|
module_function :application
|
92
101
|
end
|
93
|
-
end
|
102
|
+
end
|
data/lib/sparql.rb
CHANGED
@@ -24,6 +24,8 @@ module SPARQL
|
|
24
24
|
#
|
25
25
|
# @param [IO, StringIO, String, #to_s] query
|
26
26
|
# @param [Hash{Symbol => Object}] options
|
27
|
+
# @option options [Boolean] :optimize (false)
|
28
|
+
# Run query optimizer after parsing.
|
27
29
|
# @option options [Boolean] :update (false)
|
28
30
|
# Parse starting with UpdateUnit production, QueryUnit otherwise.
|
29
31
|
# @option options (see SPARQL::Grammar::Parser#initialize)
|
@@ -33,7 +35,10 @@ module SPARQL
|
|
33
35
|
# or RDF::Repository.
|
34
36
|
# @raise [SPARQL::Grammar::Parser::Error] on invalid input
|
35
37
|
def self.parse(query, **options)
|
36
|
-
|
38
|
+
parser_class = options[:use11] ? Grammar::Parser11 : Grammar::Parser
|
39
|
+
query = parser_class.new(query, **options).parse(options[:update] ? :UpdateUnit : :QueryUnit)
|
40
|
+
query = query.optimize if options[:optimize]
|
41
|
+
query
|
37
42
|
end
|
38
43
|
|
39
44
|
##
|
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.3.
|
4
|
+
version: 3.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gregg Kellogg
|
@@ -9,98 +9,112 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2025-05-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: builder
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '3.
|
20
|
+
version: '3.2'
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 3.2.4
|
21
24
|
type: :runtime
|
22
25
|
prerelease: false
|
23
26
|
version_requirements: !ruby/object:Gem::Requirement
|
24
27
|
requirements:
|
25
28
|
- - "~>"
|
26
29
|
- !ruby/object:Gem::Version
|
27
|
-
version: '3.
|
30
|
+
version: '3.2'
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.2.4
|
28
34
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
35
|
+
name: ebnf
|
30
36
|
requirement: !ruby/object:Gem::Requirement
|
31
37
|
requirements:
|
32
38
|
- - "~>"
|
33
39
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
40
|
+
version: '2.5'
|
35
41
|
type: :runtime
|
36
42
|
prerelease: false
|
37
43
|
version_requirements: !ruby/object:Gem::Requirement
|
38
44
|
requirements:
|
39
45
|
- - "~>"
|
40
46
|
- !ruby/object:Gem::Version
|
41
|
-
version: '
|
47
|
+
version: '2.5'
|
42
48
|
- !ruby/object:Gem::Dependency
|
43
|
-
name:
|
49
|
+
name: logger
|
44
50
|
requirement: !ruby/object:Gem::Requirement
|
45
51
|
requirements:
|
46
52
|
- - "~>"
|
47
53
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
54
|
+
version: '1.5'
|
49
55
|
type: :runtime
|
50
56
|
prerelease: false
|
51
57
|
version_requirements: !ruby/object:Gem::Requirement
|
52
58
|
requirements:
|
53
59
|
- - "~>"
|
54
60
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
61
|
+
version: '1.5'
|
56
62
|
- !ruby/object:Gem::Dependency
|
57
|
-
name:
|
63
|
+
name: rdf-aggregate-repo
|
58
64
|
requirement: !ruby/object:Gem::Requirement
|
59
65
|
requirements:
|
60
66
|
- - "~>"
|
61
67
|
- !ruby/object:Gem::Version
|
62
|
-
version: '3.
|
63
|
-
- - ">="
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
version: 3.2.4
|
68
|
+
version: '3.3'
|
66
69
|
type: :runtime
|
67
70
|
prerelease: false
|
68
71
|
version_requirements: !ruby/object:Gem::Requirement
|
69
72
|
requirements:
|
70
73
|
- - "~>"
|
71
74
|
- !ruby/object:Gem::Version
|
72
|
-
version: '3.
|
73
|
-
|
75
|
+
version: '3.3'
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: rdf-xsd
|
78
|
+
requirement: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
74
81
|
- !ruby/object:Gem::Version
|
75
|
-
version: 3.
|
82
|
+
version: '3.3'
|
83
|
+
type: :runtime
|
84
|
+
prerelease: false
|
85
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '3.3'
|
76
90
|
- !ruby/object:Gem::Dependency
|
77
|
-
name:
|
91
|
+
name: rdf
|
78
92
|
requirement: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
94
|
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
96
|
+
version: '3.3'
|
83
97
|
type: :runtime
|
84
98
|
prerelease: false
|
85
99
|
version_requirements: !ruby/object:Gem::Requirement
|
86
100
|
requirements:
|
87
101
|
- - "~>"
|
88
102
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
103
|
+
version: '3.3'
|
90
104
|
- !ruby/object:Gem::Dependency
|
91
|
-
name:
|
105
|
+
name: readline
|
92
106
|
requirement: !ruby/object:Gem::Requirement
|
93
107
|
requirements:
|
94
108
|
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
110
|
+
version: '0.0'
|
97
111
|
type: :runtime
|
98
112
|
prerelease: false
|
99
113
|
version_requirements: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
115
|
- - "~>"
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
117
|
+
version: '0.0'
|
104
118
|
- !ruby/object:Gem::Dependency
|
105
119
|
name: sparql-client
|
106
120
|
requirement: !ruby/object:Gem::Requirement
|
@@ -116,19 +130,19 @@ dependencies:
|
|
116
130
|
- !ruby/object:Gem::Version
|
117
131
|
version: '3.3'
|
118
132
|
- !ruby/object:Gem::Dependency
|
119
|
-
name:
|
133
|
+
name: sxp
|
120
134
|
requirement: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
136
|
- - "~>"
|
123
137
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
138
|
+
version: '2.0'
|
125
139
|
type: :runtime
|
126
140
|
prerelease: false
|
127
141
|
version_requirements: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
143
|
- - "~>"
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
145
|
+
version: '2.0'
|
132
146
|
- !ruby/object:Gem::Dependency
|
133
147
|
name: getoptlong
|
134
148
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,53 +158,75 @@ dependencies:
|
|
144
158
|
- !ruby/object:Gem::Version
|
145
159
|
version: '0.2'
|
146
160
|
- !ruby/object:Gem::Dependency
|
147
|
-
name:
|
161
|
+
name: linkeddata
|
162
|
+
requirement: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
type: :development
|
168
|
+
prerelease: false
|
169
|
+
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
- !ruby/object:Gem::Dependency
|
175
|
+
name: ostruct
|
148
176
|
requirement: !ruby/object:Gem::Requirement
|
149
177
|
requirements:
|
150
178
|
- - "~>"
|
151
179
|
- !ruby/object:Gem::Version
|
152
|
-
version: '
|
180
|
+
version: '0.6'
|
153
181
|
type: :development
|
154
182
|
prerelease: false
|
155
183
|
version_requirements: !ruby/object:Gem::Requirement
|
156
184
|
requirements:
|
157
185
|
- - "~>"
|
158
186
|
- !ruby/object:Gem::Version
|
159
|
-
version: '
|
187
|
+
version: '0.6'
|
160
188
|
- !ruby/object:Gem::Dependency
|
161
|
-
name: rack
|
189
|
+
name: rack-test
|
162
190
|
requirement: !ruby/object:Gem::Requirement
|
163
191
|
requirements:
|
164
|
-
- - "
|
192
|
+
- - "~>"
|
165
193
|
- !ruby/object:Gem::Version
|
166
194
|
version: '2.2'
|
167
|
-
- - "<"
|
168
|
-
- !ruby/object:Gem::Version
|
169
|
-
version: '4'
|
170
195
|
type: :development
|
171
196
|
prerelease: false
|
172
197
|
version_requirements: !ruby/object:Gem::Requirement
|
173
198
|
requirements:
|
174
|
-
- - "
|
199
|
+
- - "~>"
|
175
200
|
- !ruby/object:Gem::Version
|
176
201
|
version: '2.2'
|
177
|
-
|
202
|
+
- !ruby/object:Gem::Dependency
|
203
|
+
name: rack
|
204
|
+
requirement: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '3.1'
|
209
|
+
type: :development
|
210
|
+
prerelease: false
|
211
|
+
version_requirements: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - "~>"
|
178
214
|
- !ruby/object:Gem::Version
|
179
|
-
version: '
|
215
|
+
version: '3.1'
|
180
216
|
- !ruby/object:Gem::Dependency
|
181
|
-
name:
|
217
|
+
name: rackup
|
182
218
|
requirement: !ruby/object:Gem::Requirement
|
183
219
|
requirements:
|
184
220
|
- - "~>"
|
185
221
|
- !ruby/object:Gem::Version
|
186
|
-
version: '2.
|
222
|
+
version: '2.2'
|
187
223
|
type: :development
|
188
224
|
prerelease: false
|
189
225
|
version_requirements: !ruby/object:Gem::Requirement
|
190
226
|
requirements:
|
191
227
|
- - "~>"
|
192
228
|
- !ruby/object:Gem::Version
|
193
|
-
version: '2.
|
229
|
+
version: '2.2'
|
194
230
|
- !ruby/object:Gem::Dependency
|
195
231
|
name: rdf-spec
|
196
232
|
requirement: !ruby/object:Gem::Requirement
|
@@ -206,47 +242,61 @@ dependencies:
|
|
206
242
|
- !ruby/object:Gem::Version
|
207
243
|
version: '3.3'
|
208
244
|
- !ruby/object:Gem::Dependency
|
209
|
-
name:
|
245
|
+
name: rspec-its
|
210
246
|
requirement: !ruby/object:Gem::Requirement
|
211
247
|
requirements:
|
212
|
-
- - "
|
248
|
+
- - "~>"
|
213
249
|
- !ruby/object:Gem::Version
|
214
|
-
version: '
|
250
|
+
version: '1.3'
|
215
251
|
type: :development
|
216
252
|
prerelease: false
|
217
253
|
version_requirements: !ruby/object:Gem::Requirement
|
218
254
|
requirements:
|
219
|
-
- - "
|
255
|
+
- - "~>"
|
220
256
|
- !ruby/object:Gem::Version
|
221
|
-
version: '
|
257
|
+
version: '1.3'
|
222
258
|
- !ruby/object:Gem::Dependency
|
223
259
|
name: rspec
|
224
260
|
requirement: !ruby/object:Gem::Requirement
|
225
261
|
requirements:
|
226
262
|
- - "~>"
|
227
263
|
- !ruby/object:Gem::Version
|
228
|
-
version: '3.
|
264
|
+
version: '3.13'
|
229
265
|
type: :development
|
230
266
|
prerelease: false
|
231
267
|
version_requirements: !ruby/object:Gem::Requirement
|
232
268
|
requirements:
|
233
269
|
- - "~>"
|
234
270
|
- !ruby/object:Gem::Version
|
235
|
-
version: '3.
|
271
|
+
version: '3.13'
|
236
272
|
- !ruby/object:Gem::Dependency
|
237
|
-
name:
|
273
|
+
name: sinatra
|
238
274
|
requirement: !ruby/object:Gem::Requirement
|
239
275
|
requirements:
|
240
276
|
- - "~>"
|
241
277
|
- !ruby/object:Gem::Version
|
242
|
-
version: '1
|
278
|
+
version: '4.1'
|
243
279
|
type: :development
|
244
280
|
prerelease: false
|
245
281
|
version_requirements: !ruby/object:Gem::Requirement
|
246
282
|
requirements:
|
247
283
|
- - "~>"
|
248
284
|
- !ruby/object:Gem::Version
|
249
|
-
version: '1
|
285
|
+
version: '4.1'
|
286
|
+
- !ruby/object:Gem::Dependency
|
287
|
+
name: webrick
|
288
|
+
requirement: !ruby/object:Gem::Requirement
|
289
|
+
requirements:
|
290
|
+
- - "~>"
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: '1.9'
|
293
|
+
type: :development
|
294
|
+
prerelease: false
|
295
|
+
version_requirements: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - "~>"
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: '1.9'
|
250
300
|
- !ruby/object:Gem::Dependency
|
251
301
|
name: yard
|
252
302
|
requirement: !ruby/object:Gem::Requirement
|
@@ -428,8 +478,10 @@ files:
|
|
428
478
|
- lib/sparql/extensions.rb
|
429
479
|
- lib/sparql/grammar.rb
|
430
480
|
- lib/sparql/grammar/meta.rb
|
481
|
+
- lib/sparql/grammar/meta11.rb
|
482
|
+
- lib/sparql/grammar/parser.rb
|
431
483
|
- lib/sparql/grammar/parser11.rb
|
432
|
-
- lib/sparql/grammar/
|
484
|
+
- lib/sparql/grammar/terminals.rb
|
433
485
|
- lib/sparql/results.rb
|
434
486
|
- lib/sparql/server.rb
|
435
487
|
- lib/sparql/version.rb
|