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.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +29 -22
  3. data/VERSION +1 -1
  4. data/bin/sparql +13 -4
  5. data/lib/sparql/algebra/extensions.rb +93 -33
  6. data/lib/sparql/algebra/operator/abs.rb +22 -2
  7. data/lib/sparql/algebra/operator/add.rb +21 -2
  8. data/lib/sparql/algebra/operator/alt.rb +26 -2
  9. data/lib/sparql/algebra/operator/and.rb +25 -3
  10. data/lib/sparql/algebra/operator/asc.rb +20 -1
  11. data/lib/sparql/algebra/operator/ask.rb +17 -1
  12. data/lib/sparql/algebra/operator/avg.rb +17 -1
  13. data/lib/sparql/algebra/operator/base.rb +18 -1
  14. data/lib/sparql/algebra/operator/bgp.rb +5 -1
  15. data/lib/sparql/algebra/operator/bnode.rb +33 -10
  16. data/lib/sparql/algebra/operator/bound.rb +22 -1
  17. data/lib/sparql/algebra/operator/ceil.rb +25 -2
  18. data/lib/sparql/algebra/operator/clear.rb +16 -2
  19. data/lib/sparql/algebra/operator/coalesce.rb +33 -11
  20. data/lib/sparql/algebra/operator/compare.rb +9 -0
  21. data/lib/sparql/algebra/operator/concat.rb +26 -2
  22. data/lib/sparql/algebra/operator/construct.rb +29 -6
  23. data/lib/sparql/algebra/operator/contains.rb +24 -2
  24. data/lib/sparql/algebra/operator/copy.rb +19 -2
  25. data/lib/sparql/algebra/operator/count.rb +17 -1
  26. data/lib/sparql/algebra/operator/create.rb +19 -2
  27. data/lib/sparql/algebra/operator/dataset.rb +17 -0
  28. data/lib/sparql/algebra/operator/datatype.rb +25 -6
  29. data/lib/sparql/algebra/operator/day.rb +23 -5
  30. data/lib/sparql/algebra/operator/delete.rb +27 -2
  31. data/lib/sparql/algebra/operator/delete_data.rb +23 -2
  32. data/lib/sparql/algebra/operator/delete_where.rb +24 -2
  33. data/lib/sparql/algebra/operator/desc.rb +20 -1
  34. data/lib/sparql/algebra/operator/describe.rb +27 -4
  35. data/lib/sparql/algebra/operator/distinct.rb +18 -1
  36. data/lib/sparql/algebra/operator/divide.rb +26 -2
  37. data/lib/sparql/algebra/operator/drop.rb +17 -2
  38. data/lib/sparql/algebra/operator/encode_for_uri.rb +24 -2
  39. data/lib/sparql/algebra/operator/equal.rb +12 -2
  40. data/lib/sparql/algebra/operator/exists.rb +28 -4
  41. data/lib/sparql/algebra/operator/exprlist.rb +12 -1
  42. data/lib/sparql/algebra/operator/extend.rb +31 -6
  43. data/lib/sparql/algebra/operator/filter.rb +27 -5
  44. data/lib/sparql/algebra/operator/floor.rb +25 -2
  45. data/lib/sparql/algebra/operator/graph.rb +13 -0
  46. data/lib/sparql/algebra/operator/greater_than.rb +12 -3
  47. data/lib/sparql/algebra/operator/greater_than_or_equal.rb +12 -2
  48. data/lib/sparql/algebra/operator/group.rb +34 -8
  49. data/lib/sparql/algebra/operator/group_concat.rb +19 -7
  50. data/lib/sparql/algebra/operator/hours.rb +23 -5
  51. data/lib/sparql/algebra/operator/if.rb +21 -4
  52. data/lib/sparql/algebra/operator/in.rb +18 -1
  53. data/lib/sparql/algebra/operator/insert.rb +22 -2
  54. data/lib/sparql/algebra/operator/insert_data.rb +23 -2
  55. data/lib/sparql/algebra/operator/iri.rb +21 -4
  56. data/lib/sparql/algebra/operator/is_blank.rb +19 -1
  57. data/lib/sparql/algebra/operator/is_iri.rb +19 -1
  58. data/lib/sparql/algebra/operator/is_literal.rb +19 -1
  59. data/lib/sparql/algebra/operator/is_numeric.rb +21 -3
  60. data/lib/sparql/algebra/operator/is_triple.rb +32 -0
  61. data/lib/sparql/algebra/operator/join.rb +22 -1
  62. data/lib/sparql/algebra/operator/lang.rb +25 -0
  63. data/lib/sparql/algebra/operator/lang_matches.rb +22 -1
  64. data/lib/sparql/algebra/operator/lcase.rb +23 -2
  65. data/lib/sparql/algebra/operator/left_join.rb +29 -1
  66. data/lib/sparql/algebra/operator/less_than.rb +12 -3
  67. data/lib/sparql/algebra/operator/less_than_or_equal.rb +12 -2
  68. data/lib/sparql/algebra/operator/load.rb +25 -2
  69. data/lib/sparql/algebra/operator/max.rb +17 -1
  70. data/lib/sparql/algebra/operator/md5.rb +22 -5
  71. data/lib/sparql/algebra/operator/min.rb +18 -2
  72. data/lib/sparql/algebra/operator/minus.rb +25 -7
  73. data/lib/sparql/algebra/operator/minutes.rb +23 -5
  74. data/lib/sparql/algebra/operator/modify.rb +41 -5
  75. data/lib/sparql/algebra/operator/month.rb +23 -5
  76. data/lib/sparql/algebra/operator/move.rb +20 -2
  77. data/lib/sparql/algebra/operator/multiply.rb +26 -3
  78. data/lib/sparql/algebra/operator/negate.rb +23 -3
  79. data/lib/sparql/algebra/operator/not.rb +24 -3
  80. data/lib/sparql/algebra/operator/not_equal.rb +13 -0
  81. data/lib/sparql/algebra/operator/notexists.rb +30 -6
  82. data/lib/sparql/algebra/operator/notin.rb +20 -3
  83. data/lib/sparql/algebra/operator/notoneof.rb +12 -2
  84. data/lib/sparql/algebra/operator/now.rb +24 -5
  85. data/lib/sparql/algebra/operator/object.rb +32 -0
  86. data/lib/sparql/algebra/operator/or.rb +26 -3
  87. data/lib/sparql/algebra/operator/order.rb +20 -1
  88. data/lib/sparql/algebra/operator/path.rb +29 -2
  89. data/lib/sparql/algebra/operator/path_opt.rb +21 -2
  90. data/lib/sparql/algebra/operator/path_plus.rb +21 -2
  91. data/lib/sparql/algebra/operator/path_star.rb +20 -2
  92. data/lib/sparql/algebra/operator/plus.rb +42 -3
  93. data/lib/sparql/algebra/operator/predicate.rb +32 -0
  94. data/lib/sparql/algebra/operator/prefix.rb +24 -3
  95. data/lib/sparql/algebra/operator/project.rb +51 -5
  96. data/lib/sparql/algebra/operator/rand.rb +30 -2
  97. data/lib/sparql/algebra/operator/reduced.rb +18 -1
  98. data/lib/sparql/algebra/operator/regex.rb +26 -18
  99. data/lib/sparql/algebra/operator/replace.rb +26 -6
  100. data/lib/sparql/algebra/operator/reverse.rb +20 -2
  101. data/lib/sparql/algebra/operator/round.rb +25 -2
  102. data/lib/sparql/algebra/operator/same_term.rb +24 -6
  103. data/lib/sparql/algebra/operator/sample.rb +30 -8
  104. data/lib/sparql/algebra/operator/seconds.rb +23 -5
  105. data/lib/sparql/algebra/operator/seq.rb +20 -2
  106. data/lib/sparql/algebra/operator/sequence.rb +0 -10
  107. data/lib/sparql/algebra/operator/sha1.rb +18 -1
  108. data/lib/sparql/algebra/operator/sha256.rb +18 -1
  109. data/lib/sparql/algebra/operator/sha384.rb +18 -1
  110. data/lib/sparql/algebra/operator/sha512.rb +18 -1
  111. data/lib/sparql/algebra/operator/slice.rb +27 -5
  112. data/lib/sparql/algebra/operator/str.rb +21 -1
  113. data/lib/sparql/algebra/operator/strafter.rb +25 -2
  114. data/lib/sparql/algebra/operator/strbefore.rb +25 -2
  115. data/lib/sparql/algebra/operator/strdt.rb +22 -1
  116. data/lib/sparql/algebra/operator/strends.rb +25 -3
  117. data/lib/sparql/algebra/operator/strlang.rb +25 -6
  118. data/lib/sparql/algebra/operator/strlen.rb +23 -2
  119. data/lib/sparql/algebra/operator/strstarts.rb +25 -2
  120. data/lib/sparql/algebra/operator/struuid.rb +29 -9
  121. data/lib/sparql/algebra/operator/subject.rb +32 -0
  122. data/lib/sparql/algebra/operator/substr.rb +23 -2
  123. data/lib/sparql/algebra/operator/subtract.rb +28 -2
  124. data/lib/sparql/algebra/operator/sum.rb +17 -1
  125. data/lib/sparql/algebra/operator/table.rb +42 -4
  126. data/lib/sparql/algebra/operator/timezone.rb +23 -5
  127. data/lib/sparql/algebra/operator/tz.rb +22 -5
  128. data/lib/sparql/algebra/operator/ucase.rb +23 -2
  129. data/lib/sparql/algebra/operator/union.rb +29 -6
  130. data/lib/sparql/algebra/operator/update.rb +25 -4
  131. data/lib/sparql/algebra/operator/using.rb +32 -2
  132. data/lib/sparql/algebra/operator/uuid.rb +27 -8
  133. data/lib/sparql/algebra/operator/with.rb +38 -4
  134. data/lib/sparql/algebra/operator/year.rb +23 -5
  135. data/lib/sparql/algebra/operator.rb +99 -6
  136. data/lib/sparql/algebra/sxp_extensions.rb +3 -3
  137. data/lib/sparql/grammar/parser11.rb +4 -4
  138. metadata +22 -35
  139. 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
- # @example
9
- # (prefix ((: <http://example.org/>)
10
- # (xsd: <http://www.w3.org/2001/XMLSchema#>))
11
- # (project (?length)
12
- # (extend ((?length (strlen (str ?uuid))))
13
- # (filter (&& (isIRI ?uuid) (regex (str ?uuid) "^urn:uuid:[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$" "i"))
14
- # (extend ((?uuid (uuid)))
15
- # (bgp))))))
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
- # @example
10
- # (with :g1
11
- # (bgp (triple ?s ?p ?o))
12
- # (insert ((triple ?s ?p "z"))))
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
- # @example
9
- # (prefix ((: <http://example.org/>))
10
- # (project (?s ?x)
11
- # (extend ((?x (year ?date)))
12
- # (bgp (triple ?s :date ?date)))))
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 Triple
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 to_sxp
586
- to_sxp_bin.to_sxp
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.1.8
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-08-25 00:00:00.000000000 Z
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.1'
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.1'
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.1'
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.1'
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.1'
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.1'
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.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.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.1'
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.1'
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.1'
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.1'
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.0'
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.0'
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.0'
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.0'
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.1'
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.1'
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.4'
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.2.15
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