sparql 3.1.8 → 3.2.0
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 +29 -22
- data/VERSION +1 -1
- data/bin/sparql +13 -4
- data/lib/sparql/algebra/extensions.rb +93 -33
- data/lib/sparql/algebra/operator/abs.rb +22 -2
- data/lib/sparql/algebra/operator/add.rb +21 -2
- data/lib/sparql/algebra/operator/alt.rb +26 -2
- data/lib/sparql/algebra/operator/and.rb +25 -3
- data/lib/sparql/algebra/operator/asc.rb +20 -1
- data/lib/sparql/algebra/operator/ask.rb +17 -1
- data/lib/sparql/algebra/operator/avg.rb +17 -1
- data/lib/sparql/algebra/operator/base.rb +18 -1
- data/lib/sparql/algebra/operator/bgp.rb +5 -1
- data/lib/sparql/algebra/operator/bnode.rb +33 -10
- data/lib/sparql/algebra/operator/bound.rb +22 -1
- data/lib/sparql/algebra/operator/ceil.rb +25 -2
- data/lib/sparql/algebra/operator/clear.rb +16 -2
- data/lib/sparql/algebra/operator/coalesce.rb +33 -11
- data/lib/sparql/algebra/operator/compare.rb +9 -0
- data/lib/sparql/algebra/operator/concat.rb +26 -2
- data/lib/sparql/algebra/operator/construct.rb +29 -6
- data/lib/sparql/algebra/operator/contains.rb +24 -2
- data/lib/sparql/algebra/operator/copy.rb +19 -2
- data/lib/sparql/algebra/operator/count.rb +17 -1
- data/lib/sparql/algebra/operator/create.rb +19 -2
- data/lib/sparql/algebra/operator/dataset.rb +17 -0
- data/lib/sparql/algebra/operator/datatype.rb +25 -6
- data/lib/sparql/algebra/operator/day.rb +23 -5
- data/lib/sparql/algebra/operator/delete.rb +27 -2
- data/lib/sparql/algebra/operator/delete_data.rb +23 -2
- data/lib/sparql/algebra/operator/delete_where.rb +24 -2
- data/lib/sparql/algebra/operator/desc.rb +20 -1
- data/lib/sparql/algebra/operator/describe.rb +27 -4
- data/lib/sparql/algebra/operator/distinct.rb +18 -1
- data/lib/sparql/algebra/operator/divide.rb +26 -2
- data/lib/sparql/algebra/operator/drop.rb +17 -2
- data/lib/sparql/algebra/operator/encode_for_uri.rb +24 -2
- data/lib/sparql/algebra/operator/equal.rb +12 -2
- data/lib/sparql/algebra/operator/exists.rb +28 -4
- data/lib/sparql/algebra/operator/exprlist.rb +12 -1
- data/lib/sparql/algebra/operator/extend.rb +31 -6
- data/lib/sparql/algebra/operator/filter.rb +27 -5
- data/lib/sparql/algebra/operator/floor.rb +25 -2
- data/lib/sparql/algebra/operator/graph.rb +13 -0
- data/lib/sparql/algebra/operator/greater_than.rb +12 -3
- data/lib/sparql/algebra/operator/greater_than_or_equal.rb +12 -2
- data/lib/sparql/algebra/operator/group.rb +34 -8
- data/lib/sparql/algebra/operator/group_concat.rb +19 -7
- data/lib/sparql/algebra/operator/hours.rb +23 -5
- data/lib/sparql/algebra/operator/if.rb +21 -4
- data/lib/sparql/algebra/operator/in.rb +18 -1
- data/lib/sparql/algebra/operator/insert.rb +22 -2
- data/lib/sparql/algebra/operator/insert_data.rb +23 -2
- data/lib/sparql/algebra/operator/iri.rb +21 -4
- data/lib/sparql/algebra/operator/is_blank.rb +19 -1
- data/lib/sparql/algebra/operator/is_iri.rb +19 -1
- data/lib/sparql/algebra/operator/is_literal.rb +19 -1
- data/lib/sparql/algebra/operator/is_numeric.rb +21 -3
- data/lib/sparql/algebra/operator/is_triple.rb +32 -0
- data/lib/sparql/algebra/operator/join.rb +22 -1
- data/lib/sparql/algebra/operator/lang.rb +25 -0
- data/lib/sparql/algebra/operator/lang_matches.rb +22 -1
- data/lib/sparql/algebra/operator/lcase.rb +23 -2
- data/lib/sparql/algebra/operator/left_join.rb +29 -1
- data/lib/sparql/algebra/operator/less_than.rb +12 -3
- data/lib/sparql/algebra/operator/less_than_or_equal.rb +12 -2
- data/lib/sparql/algebra/operator/load.rb +25 -2
- data/lib/sparql/algebra/operator/max.rb +17 -1
- data/lib/sparql/algebra/operator/md5.rb +22 -5
- data/lib/sparql/algebra/operator/min.rb +18 -2
- data/lib/sparql/algebra/operator/minus.rb +25 -7
- data/lib/sparql/algebra/operator/minutes.rb +23 -5
- data/lib/sparql/algebra/operator/modify.rb +41 -5
- data/lib/sparql/algebra/operator/month.rb +23 -5
- data/lib/sparql/algebra/operator/move.rb +20 -2
- data/lib/sparql/algebra/operator/multiply.rb +26 -3
- data/lib/sparql/algebra/operator/negate.rb +23 -3
- data/lib/sparql/algebra/operator/not.rb +24 -3
- data/lib/sparql/algebra/operator/not_equal.rb +13 -0
- data/lib/sparql/algebra/operator/notexists.rb +30 -6
- data/lib/sparql/algebra/operator/notin.rb +20 -3
- data/lib/sparql/algebra/operator/notoneof.rb +12 -2
- data/lib/sparql/algebra/operator/now.rb +24 -5
- data/lib/sparql/algebra/operator/object.rb +32 -0
- data/lib/sparql/algebra/operator/or.rb +26 -3
- data/lib/sparql/algebra/operator/order.rb +20 -1
- data/lib/sparql/algebra/operator/path.rb +29 -2
- data/lib/sparql/algebra/operator/path_opt.rb +21 -2
- data/lib/sparql/algebra/operator/path_plus.rb +21 -2
- data/lib/sparql/algebra/operator/path_star.rb +20 -2
- data/lib/sparql/algebra/operator/plus.rb +42 -3
- data/lib/sparql/algebra/operator/predicate.rb +32 -0
- data/lib/sparql/algebra/operator/prefix.rb +24 -3
- data/lib/sparql/algebra/operator/project.rb +51 -5
- data/lib/sparql/algebra/operator/rand.rb +30 -2
- data/lib/sparql/algebra/operator/reduced.rb +18 -1
- data/lib/sparql/algebra/operator/regex.rb +26 -18
- data/lib/sparql/algebra/operator/replace.rb +26 -6
- data/lib/sparql/algebra/operator/reverse.rb +20 -2
- data/lib/sparql/algebra/operator/round.rb +25 -2
- data/lib/sparql/algebra/operator/same_term.rb +24 -6
- data/lib/sparql/algebra/operator/sample.rb +30 -8
- data/lib/sparql/algebra/operator/seconds.rb +23 -5
- data/lib/sparql/algebra/operator/seq.rb +20 -2
- data/lib/sparql/algebra/operator/sequence.rb +0 -10
- data/lib/sparql/algebra/operator/sha1.rb +18 -1
- data/lib/sparql/algebra/operator/sha256.rb +18 -1
- data/lib/sparql/algebra/operator/sha384.rb +18 -1
- data/lib/sparql/algebra/operator/sha512.rb +18 -1
- data/lib/sparql/algebra/operator/slice.rb +27 -5
- data/lib/sparql/algebra/operator/str.rb +21 -1
- data/lib/sparql/algebra/operator/strafter.rb +25 -2
- data/lib/sparql/algebra/operator/strbefore.rb +25 -2
- data/lib/sparql/algebra/operator/strdt.rb +22 -1
- data/lib/sparql/algebra/operator/strends.rb +25 -3
- data/lib/sparql/algebra/operator/strlang.rb +25 -6
- data/lib/sparql/algebra/operator/strlen.rb +23 -2
- data/lib/sparql/algebra/operator/strstarts.rb +25 -2
- data/lib/sparql/algebra/operator/struuid.rb +29 -9
- data/lib/sparql/algebra/operator/subject.rb +32 -0
- data/lib/sparql/algebra/operator/substr.rb +23 -2
- data/lib/sparql/algebra/operator/subtract.rb +28 -2
- data/lib/sparql/algebra/operator/sum.rb +17 -1
- data/lib/sparql/algebra/operator/table.rb +42 -4
- data/lib/sparql/algebra/operator/timezone.rb +23 -5
- data/lib/sparql/algebra/operator/tz.rb +22 -5
- data/lib/sparql/algebra/operator/ucase.rb +23 -2
- data/lib/sparql/algebra/operator/union.rb +29 -6
- data/lib/sparql/algebra/operator/update.rb +25 -4
- data/lib/sparql/algebra/operator/using.rb +32 -2
- data/lib/sparql/algebra/operator/uuid.rb +27 -8
- data/lib/sparql/algebra/operator/with.rb +38 -4
- data/lib/sparql/algebra/operator/year.rb +23 -5
- data/lib/sparql/algebra/operator.rb +99 -6
- data/lib/sparql/algebra/sxp_extensions.rb +3 -3
- data/lib/sparql/grammar/parser11.rb +4 -4
- metadata +22 -35
- data/lib/sparql/algebra/operator/triple.rb +0 -27
@@ -5,14 +5,24 @@ module SPARQL; module Algebra
|
|
5
5
|
##
|
6
6
|
# The SPARQL `uuid` function.
|
7
7
|
#
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
8
|
+
# [121] BuiltInCall ::= ... | 'UUID' NIL
|
9
|
+
#
|
10
|
+
# @example SPARQL Grammar
|
11
|
+
# PREFIX : <http://example.org/>
|
12
|
+
# PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
|
13
|
+
# ASK {
|
14
|
+
# BIND(UUID() AS ?u1)
|
15
|
+
# BIND(UUID() AS ?u2)
|
16
|
+
# FILTER(?u1 != ?u2)
|
17
|
+
# }
|
18
|
+
#
|
19
|
+
# @example SSE
|
20
|
+
# (prefix
|
21
|
+
# ((: <http://example.org/>) (xsd: <http://www.w3.org/2001/XMLSchema#>))
|
22
|
+
# (ask
|
23
|
+
# (filter (!= ?u1 ?u2)
|
24
|
+
# (extend ((?u1 (uuid)) (?u2 (uuid)))
|
25
|
+
# (bgp)))))
|
16
26
|
#
|
17
27
|
# @see https://www.w3.org/TR/sparql11-query/#func-uuid
|
18
28
|
class UUID < Operator::Nullary
|
@@ -27,6 +37,15 @@ module SPARQL; module Algebra
|
|
27
37
|
def apply(**options)
|
28
38
|
RDF::URI("urn:uuid:#{SecureRandom.uuid}")
|
29
39
|
end
|
40
|
+
|
41
|
+
##
|
42
|
+
#
|
43
|
+
# Returns a partial SPARQL grammar for this operator.
|
44
|
+
#
|
45
|
+
# @return [String]
|
46
|
+
def to_sparql(**options)
|
47
|
+
"UUID(" + operands.to_sparql(delimiter: ', ', **options) + ")"
|
48
|
+
end
|
30
49
|
end # UUID
|
31
50
|
end # Operator
|
32
51
|
end; end # SPARQL::Algebra
|
@@ -6,10 +6,21 @@ module SPARQL; module Algebra
|
|
6
6
|
#
|
7
7
|
# The WITH clause provides a convenience for when an operation primarily refers to a single graph.
|
8
8
|
#
|
9
|
-
#
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
9
|
+
# [41] Modify ::= ( 'WITH' iri )? ( DeleteClause InsertClause? | InsertClause ) UsingClause* 'WHERE' GroupGraphPattern
|
10
|
+
#
|
11
|
+
# @example SPARQL Grammar
|
12
|
+
# PREFIX : <http://example/>
|
13
|
+
# WITH :g
|
14
|
+
# DELETE { <base:s> ?p ?o . }
|
15
|
+
# WHERE { ?s ?p ?o }
|
16
|
+
#
|
17
|
+
# @example SSE
|
18
|
+
# (prefix ((: <http://example/>))
|
19
|
+
# (update
|
20
|
+
# (modify
|
21
|
+
# (with :g
|
22
|
+
# (bgp (triple ?s ?p ?o))
|
23
|
+
# (delete ((triple <base:s> ?p ?o)))))))
|
13
24
|
#
|
14
25
|
# @see https://www.w3.org/TR/sparql11-update/#deleteInsert
|
15
26
|
class With < Operator
|
@@ -67,6 +78,29 @@ module SPARQL; module Algebra
|
|
67
78
|
end
|
68
79
|
end
|
69
80
|
end
|
81
|
+
|
82
|
+
##
|
83
|
+
#
|
84
|
+
# Returns a partial SPARQL grammar for this operator.
|
85
|
+
#
|
86
|
+
# @return [String]
|
87
|
+
def to_sparql(**options)
|
88
|
+
with, where, ops = operands
|
89
|
+
str = "WITH #{with.to_sparql(**options)}\n"
|
90
|
+
|
91
|
+
# The content of the WHERE clause, may be USING
|
92
|
+
content = where.to_sparql(top_level: false, **options)
|
93
|
+
|
94
|
+
# DELETE | INSERT | DELETE INSERT
|
95
|
+
str << ops.to_sparql(top_level: false, delimiter: "\n", **options) + "\n"
|
96
|
+
|
97
|
+
# Append the WHERE or USING clause
|
98
|
+
str << if where.is_a?(Using)
|
99
|
+
content
|
100
|
+
else
|
101
|
+
Operator.to_sparql(content, project: nil, **options)
|
102
|
+
end
|
103
|
+
end
|
70
104
|
end # With
|
71
105
|
end # Operator
|
72
106
|
end; end # SPARQL::Algebra
|
@@ -5,11 +5,20 @@ module SPARQL; module Algebra
|
|
5
5
|
#
|
6
6
|
# Returns the year part of `arg` as an integer.
|
7
7
|
#
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
8
|
+
# [121] BuiltInCall ::= ... | 'YEAR' '(' Expression ')'
|
9
|
+
#
|
10
|
+
# @example SPARQL Grammar
|
11
|
+
# PREFIX : <http://example.org/>
|
12
|
+
# SELECT ?s (YEAR(?date) AS ?x) WHERE {
|
13
|
+
# ?s :date ?date
|
14
|
+
# }
|
15
|
+
#
|
16
|
+
# @example SSE
|
17
|
+
# (prefix
|
18
|
+
# ((: <http://example.org/>))
|
19
|
+
# (project (?s ?x)
|
20
|
+
# (extend ((?x (year ?date)))
|
21
|
+
# (bgp (triple ?s :date ?date)))))
|
13
22
|
#
|
14
23
|
# @see https://www.w3.org/TR/sparql11-query/#func-year
|
15
24
|
class Year < Operator::Unary
|
@@ -28,6 +37,15 @@ module SPARQL; module Algebra
|
|
28
37
|
raise TypeError, "expected an RDF::Literal::DateTime, but got #{operand.inspect}" unless operand.is_a?(RDF::Literal::DateTime)
|
29
38
|
RDF::Literal(operand.object.year)
|
30
39
|
end
|
40
|
+
|
41
|
+
##
|
42
|
+
#
|
43
|
+
# Returns a partial SPARQL grammar for this operator.
|
44
|
+
#
|
45
|
+
# @return [String]
|
46
|
+
def to_sparql(**options)
|
47
|
+
"YEAR(#{operands.last.to_sparql(**options)})"
|
48
|
+
end
|
31
49
|
end # Year
|
32
50
|
end # Operator
|
33
51
|
end; end # SPARQL::Algebra
|
@@ -49,6 +49,7 @@ module SPARQL; module Algebra
|
|
49
49
|
autoload :Sum, 'sparql/algebra/operator/sum'
|
50
50
|
autoload :SHA1, 'sparql/algebra/operator/sha1'
|
51
51
|
autoload :SHA256, 'sparql/algebra/operator/sha256'
|
52
|
+
autoload :SHA384, 'sparql/algebra/operator/sha384'
|
52
53
|
autoload :SHA512, 'sparql/algebra/operator/sha512'
|
53
54
|
autoload :Str, 'sparql/algebra/operator/str'
|
54
55
|
autoload :Timezone, 'sparql/algebra/operator/timezone'
|
@@ -171,7 +172,6 @@ module SPARQL; module Algebra
|
|
171
172
|
when :> then GreaterThan
|
172
173
|
when :>= then GreaterThanOrEqual
|
173
174
|
when :abs then Abs
|
174
|
-
when :add then Add
|
175
175
|
when :alt then Alt
|
176
176
|
when :and, :'&&' then And
|
177
177
|
when :avg then Avg
|
@@ -204,7 +204,6 @@ module SPARQL; module Algebra
|
|
204
204
|
when :md5 then MD5
|
205
205
|
when :max then Max
|
206
206
|
when :min then Min
|
207
|
-
when :minus then Minus
|
208
207
|
when :minutes then Minutes
|
209
208
|
when :month then Month
|
210
209
|
when :multiply then Multiply
|
@@ -231,6 +230,7 @@ module SPARQL; module Algebra
|
|
231
230
|
when :sequence then Sequence
|
232
231
|
when :sha1 then SHA1
|
233
232
|
when :sha256 then SHA256
|
233
|
+
when :sha384 then SHA384
|
234
234
|
when :sha512 then SHA512
|
235
235
|
when :str then Str
|
236
236
|
when :strafter then StrAfter
|
@@ -278,7 +278,6 @@ module SPARQL; module Algebra
|
|
278
278
|
when :reduced then Reduced
|
279
279
|
when :slice then Slice
|
280
280
|
when :table then Table
|
281
|
-
when :triple then RDF::Query::Pattern
|
282
281
|
when :union then Union
|
283
282
|
|
284
283
|
# Update forms
|
@@ -301,7 +300,7 @@ module SPARQL; module Algebra
|
|
301
300
|
|
302
301
|
# RDF-star
|
303
302
|
when :istriple then IsTriple
|
304
|
-
when :triple then
|
303
|
+
when :triple then RDF::Query::Pattern
|
305
304
|
when :subject then Subject
|
306
305
|
when :predicate then Predicate
|
307
306
|
when :object then Object
|
@@ -333,6 +332,89 @@ module SPARQL; module Algebra
|
|
333
332
|
self.const_get(:ARITY)
|
334
333
|
end
|
335
334
|
|
335
|
+
##
|
336
|
+
# Generate a top-level Grammar, using collected options
|
337
|
+
#
|
338
|
+
# @param [String] content
|
339
|
+
# @param [Hash{Symbol => Operator}] extensions
|
340
|
+
# Variable bindings
|
341
|
+
# @param [Operator] distinct (false)
|
342
|
+
# @param [Array<Operator>] filter_ops ([])
|
343
|
+
# Filter Operations
|
344
|
+
# @param [Integer] limit (nil)
|
345
|
+
# @param [Array<Operator>] group_ops ([])
|
346
|
+
# @param [Integer] offset (nil)
|
347
|
+
# @param [Array<Operator>] order_ops ([])
|
348
|
+
# Order Operations
|
349
|
+
# @param [Array<Symbol,Operator>] project (%i(*))
|
350
|
+
# Terms to project
|
351
|
+
# @param [Operator] reduced (false)
|
352
|
+
# @param [Hash{Symbol => Object}] options
|
353
|
+
# @return [String]
|
354
|
+
def self.to_sparql(content,
|
355
|
+
distinct: false,
|
356
|
+
extensions: {},
|
357
|
+
filter_ops: [],
|
358
|
+
group_ops: [],
|
359
|
+
limit: nil,
|
360
|
+
offset: nil,
|
361
|
+
order_ops: [],
|
362
|
+
project: %i(*),
|
363
|
+
reduced: false,
|
364
|
+
**options)
|
365
|
+
str = ""
|
366
|
+
|
367
|
+
# Projections
|
368
|
+
if project
|
369
|
+
str << "SELECT "
|
370
|
+
str << "DISTINCT " if distinct
|
371
|
+
str << "REDUCED " if reduced
|
372
|
+
|
373
|
+
str << project.map do |p|
|
374
|
+
if expr = extensions.delete(p)
|
375
|
+
# Replace projected variables with their extension, if any
|
376
|
+
"(" + [expr, :AS, p].to_sparql(**options) + ")"
|
377
|
+
else
|
378
|
+
p.to_sparql(**options)
|
379
|
+
end
|
380
|
+
end.join(" ") + "\n"
|
381
|
+
end
|
382
|
+
|
383
|
+
# Extensions
|
384
|
+
extensions.each do |as, expression|
|
385
|
+
content << "\nBIND (#{expression.to_sparql(**options)} AS #{as.to_sparql(**options)}) ."
|
386
|
+
end
|
387
|
+
|
388
|
+
# Filters
|
389
|
+
filter_ops.each do |f|
|
390
|
+
content << "\nFILTER #{f.to_sparql(**options)} ."
|
391
|
+
end
|
392
|
+
|
393
|
+
# Where clause
|
394
|
+
str << "WHERE {\n#{content}\n}\n"
|
395
|
+
|
396
|
+
# Group
|
397
|
+
unless group_ops.empty?
|
398
|
+
ops = group_ops.map do |o|
|
399
|
+
# Replace projected variables with their extension, if any
|
400
|
+
o.is_a?(Array) ?
|
401
|
+
"(" + [o.last, :AS, o.first].to_sparql(**options) + ")" :
|
402
|
+
o.to_sparql(**options)
|
403
|
+
end
|
404
|
+
str << "GROUP BY #{ops.join(' ')}\n"
|
405
|
+
end
|
406
|
+
|
407
|
+
# Order
|
408
|
+
unless order_ops.empty?
|
409
|
+
str << "ORDER BY #{order_ops.to_sparql(**options)}\n"
|
410
|
+
end
|
411
|
+
|
412
|
+
# Offset and Limmit
|
413
|
+
str << "OFFSET #{offset}\n" unless offset.nil?
|
414
|
+
str << "LIMIT #{limit}\n" unless limit.nil?
|
415
|
+
str
|
416
|
+
end
|
417
|
+
|
336
418
|
ARITY = -1 # variable arity
|
337
419
|
|
338
420
|
##
|
@@ -581,9 +663,20 @@ module SPARQL; module Algebra
|
|
581
663
|
##
|
582
664
|
# Returns an S-Expression (SXP) representation of this operator
|
583
665
|
#
|
666
|
+
# @param [Hash{Symbol => RDF::URI}] prefixes (nil)
|
667
|
+
# @param [RDF::URI] base_uri (nil)
|
668
|
+
# @return [String]
|
669
|
+
def to_sxp(prefixes: nil, base_uri: nil)
|
670
|
+
to_sxp_bin.to_sxp(prefixes: prefixes, base_uri: base_uri)
|
671
|
+
end
|
672
|
+
|
673
|
+
##
|
674
|
+
#
|
675
|
+
# Returns a partial SPARQL grammar for the operator.
|
676
|
+
#
|
584
677
|
# @return [String]
|
585
|
-
def
|
586
|
-
|
678
|
+
def to_sparql(**options)
|
679
|
+
raise NotImplementedError, "#{self.class}#to_sparql(#{operands.map(&:class).join(', ')})"
|
587
680
|
end
|
588
681
|
|
589
682
|
##
|
@@ -5,7 +5,7 @@ class NilClass
|
|
5
5
|
# Returns the SXP representation of this object.
|
6
6
|
#
|
7
7
|
# @return [String]
|
8
|
-
def to_sxp
|
8
|
+
def to_sxp(**options)
|
9
9
|
RDF.nil.to_s
|
10
10
|
end
|
11
11
|
end
|
@@ -17,7 +17,7 @@ class FalseClass
|
|
17
17
|
# Returns the SXP representation of this object.
|
18
18
|
#
|
19
19
|
# @return [String]
|
20
|
-
def to_sxp
|
20
|
+
def to_sxp(**options)
|
21
21
|
'false'
|
22
22
|
end
|
23
23
|
end
|
@@ -29,7 +29,7 @@ class TrueClass
|
|
29
29
|
# Returns the SXP representation of this object.
|
30
30
|
#
|
31
31
|
# @return [String]
|
32
|
-
def to_sxp
|
32
|
+
def to_sxp(**options)
|
33
33
|
'true'
|
34
34
|
end
|
35
35
|
end
|
@@ -1812,8 +1812,8 @@ module SPARQL::Grammar
|
|
1812
1812
|
value = RDF::URI(value)
|
1813
1813
|
if base_uri && value.relative?
|
1814
1814
|
u = base_uri.join(value)
|
1815
|
-
u.lexical = "<#{value}>" unless resolve_iris?
|
1816
|
-
u
|
1815
|
+
#u.lexical = "<#{value}>" unless resolve_iris?
|
1816
|
+
#u
|
1817
1817
|
else
|
1818
1818
|
value
|
1819
1819
|
end
|
@@ -1825,8 +1825,8 @@ module SPARQL::Grammar
|
|
1825
1825
|
debug {"ns(#{prefix.inspect}): base: '#{base}', suffix: '#{suffix}'"}
|
1826
1826
|
iri = iri(base + suffix.to_s)
|
1827
1827
|
# Cause URI to be serialized as a lexical
|
1828
|
-
iri.lexical = "#{prefix}:#{suffix}" unless resolve_iris?
|
1829
|
-
iri
|
1828
|
+
#iri.lexical = "#{prefix}:#{suffix}" unless resolve_iris?
|
1829
|
+
#iri
|
1830
1830
|
end
|
1831
1831
|
|
1832
1832
|
# Create a literal
|
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.2.0
|
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: 2021-
|
12
|
+
date: 2021-12-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rdf
|
@@ -17,48 +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.1.14
|
20
|
+
version: '3.2'
|
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.1.14
|
27
|
+
version: '3.2'
|
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.
|
34
|
+
version: '3.2'
|
41
35
|
type: :runtime
|
42
36
|
prerelease: false
|
43
37
|
version_requirements: !ruby/object:Gem::Requirement
|
44
38
|
requirements:
|
45
39
|
- - "~>"
|
46
40
|
- !ruby/object:Gem::Version
|
47
|
-
version: '3.
|
41
|
+
version: '3.2'
|
48
42
|
- !ruby/object:Gem::Dependency
|
49
43
|
name: ebnf
|
50
44
|
requirement: !ruby/object:Gem::Requirement
|
51
45
|
requirements:
|
52
46
|
- - "~>"
|
53
47
|
- !ruby/object:Gem::Version
|
54
|
-
version: '2.
|
48
|
+
version: '2.2'
|
55
49
|
type: :runtime
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
52
|
requirements:
|
59
53
|
- - "~>"
|
60
54
|
- !ruby/object:Gem::Version
|
61
|
-
version: '2.
|
55
|
+
version: '2.2'
|
62
56
|
- !ruby/object:Gem::Dependency
|
63
57
|
name: builder
|
64
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,76 +87,70 @@ dependencies:
|
|
93
87
|
requirements:
|
94
88
|
- - "~>"
|
95
89
|
- !ruby/object:Gem::Version
|
96
|
-
version: '1.
|
90
|
+
version: '1.2'
|
97
91
|
type: :runtime
|
98
92
|
prerelease: false
|
99
93
|
version_requirements: !ruby/object:Gem::Requirement
|
100
94
|
requirements:
|
101
95
|
- - "~>"
|
102
96
|
- !ruby/object:Gem::Version
|
103
|
-
version: '1.
|
97
|
+
version: '1.2'
|
104
98
|
- !ruby/object:Gem::Dependency
|
105
99
|
name: sparql-client
|
106
100
|
requirement: !ruby/object:Gem::Requirement
|
107
101
|
requirements:
|
108
102
|
- - "~>"
|
109
103
|
- !ruby/object:Gem::Version
|
110
|
-
version: '3.
|
111
|
-
- - ">="
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
version: 3.1.2
|
104
|
+
version: '3.2'
|
114
105
|
type: :runtime
|
115
106
|
prerelease: false
|
116
107
|
version_requirements: !ruby/object:Gem::Requirement
|
117
108
|
requirements:
|
118
109
|
- - "~>"
|
119
110
|
- !ruby/object:Gem::Version
|
120
|
-
version: '3.
|
121
|
-
- - ">="
|
122
|
-
- !ruby/object:Gem::Version
|
123
|
-
version: 3.1.2
|
111
|
+
version: '3.2'
|
124
112
|
- !ruby/object:Gem::Dependency
|
125
113
|
name: rdf-xsd
|
126
114
|
requirement: !ruby/object:Gem::Requirement
|
127
115
|
requirements:
|
128
116
|
- - "~>"
|
129
117
|
- !ruby/object:Gem::Version
|
130
|
-
version: '3.
|
118
|
+
version: '3.2'
|
131
119
|
type: :runtime
|
132
120
|
prerelease: false
|
133
121
|
version_requirements: !ruby/object:Gem::Requirement
|
134
122
|
requirements:
|
135
123
|
- - "~>"
|
136
124
|
- !ruby/object:Gem::Version
|
137
|
-
version: '3.
|
125
|
+
version: '3.2'
|
138
126
|
- !ruby/object:Gem::Dependency
|
139
127
|
name: sinatra
|
140
128
|
requirement: !ruby/object:Gem::Requirement
|
141
129
|
requirements:
|
142
130
|
- - "~>"
|
143
131
|
- !ruby/object:Gem::Version
|
144
|
-
version: '2.
|
132
|
+
version: '2.1'
|
145
133
|
type: :development
|
146
134
|
prerelease: false
|
147
135
|
version_requirements: !ruby/object:Gem::Requirement
|
148
136
|
requirements:
|
149
137
|
- - "~>"
|
150
138
|
- !ruby/object:Gem::Version
|
151
|
-
version: '2.
|
139
|
+
version: '2.1'
|
152
140
|
- !ruby/object:Gem::Dependency
|
153
141
|
name: rack
|
154
142
|
requirement: !ruby/object:Gem::Requirement
|
155
143
|
requirements:
|
156
144
|
- - "~>"
|
157
145
|
- !ruby/object:Gem::Version
|
158
|
-
version: '2.
|
146
|
+
version: '2.2'
|
159
147
|
type: :development
|
160
148
|
prerelease: false
|
161
149
|
version_requirements: !ruby/object:Gem::Requirement
|
162
150
|
requirements:
|
163
151
|
- - "~>"
|
164
152
|
- !ruby/object:Gem::Version
|
165
|
-
version: '2.
|
153
|
+
version: '2.2'
|
166
154
|
- !ruby/object:Gem::Dependency
|
167
155
|
name: rack-test
|
168
156
|
requirement: !ruby/object:Gem::Requirement
|
@@ -183,14 +171,14 @@ dependencies:
|
|
183
171
|
requirements:
|
184
172
|
- - "~>"
|
185
173
|
- !ruby/object:Gem::Version
|
186
|
-
version: '3.
|
174
|
+
version: '3.2'
|
187
175
|
type: :development
|
188
176
|
prerelease: false
|
189
177
|
version_requirements: !ruby/object:Gem::Requirement
|
190
178
|
requirements:
|
191
179
|
- - "~>"
|
192
180
|
- !ruby/object:Gem::Version
|
193
|
-
version: '3.
|
181
|
+
version: '3.2'
|
194
182
|
- !ruby/object:Gem::Dependency
|
195
183
|
name: linkeddata
|
196
184
|
requirement: !ruby/object:Gem::Requirement
|
@@ -393,7 +381,6 @@ files:
|
|
393
381
|
- lib/sparql/algebra/operator/sum.rb
|
394
382
|
- lib/sparql/algebra/operator/table.rb
|
395
383
|
- lib/sparql/algebra/operator/timezone.rb
|
396
|
-
- lib/sparql/algebra/operator/triple.rb
|
397
384
|
- lib/sparql/algebra/operator/tz.rb
|
398
385
|
- lib/sparql/algebra/operator/ucase.rb
|
399
386
|
- lib/sparql/algebra/operator/union.rb
|
@@ -425,14 +412,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
425
412
|
requirements:
|
426
413
|
- - ">="
|
427
414
|
- !ruby/object:Gem::Version
|
428
|
-
version: '2.
|
415
|
+
version: '2.6'
|
429
416
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
430
417
|
requirements:
|
431
418
|
- - ">="
|
432
419
|
- !ruby/object:Gem::Version
|
433
420
|
version: '0'
|
434
421
|
requirements: []
|
435
|
-
rubygems_version: 3.
|
422
|
+
rubygems_version: 3.3.3
|
436
423
|
signing_key:
|
437
424
|
specification_version: 4
|
438
425
|
summary: SPARQL Query and Update library for Ruby.
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module SPARQL; module Algebra
|
2
|
-
class Operator
|
3
|
-
##
|
4
|
-
# The SPARQL `triple` operator.
|
5
|
-
#
|
6
|
-
# If the 3-tuple (term1, term2, term3) is an RDF-star triple, the function returns this triple. If the 3-tuple is not an RDF-star triple, then the function raises an error.
|
7
|
-
#
|
8
|
-
# @see https://w3c.github.io/rdf-star/rdf-star-cg-spec.html#triple
|
9
|
-
class Triple < Operator::Ternary
|
10
|
-
include Evaluatable
|
11
|
-
|
12
|
-
NAME = :triple
|
13
|
-
|
14
|
-
##
|
15
|
-
# @param [RDF::Term] subject
|
16
|
-
# @param [RDF::Term] predicate
|
17
|
-
# @param [RDF::Term] object
|
18
|
-
# @return [RDF::URI]
|
19
|
-
# @raise [TypeError] if the operand is not a simple literal
|
20
|
-
def apply(subject, predicate, object, **options)
|
21
|
-
triple = RDF::Statement(subject, predicate, object)
|
22
|
-
raise TypeError, "valid components, but got #{triple.inspect}" unless triple.valid?
|
23
|
-
triple
|
24
|
-
end
|
25
|
-
end # Triple
|
26
|
-
end # Operator
|
27
|
-
end; end # SPARQL::Algebra
|