sparql 3.1.8 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
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