sparql 3.1.0 → 3.1.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.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +183 -69
  3. data/UNLICENSE +1 -1
  4. data/VERSION +1 -1
  5. data/bin/sparql +20 -9
  6. data/lib/rack/sparql/conneg.rb +2 -2
  7. data/lib/sinatra/sparql.rb +3 -3
  8. data/lib/sparql.rb +8 -6
  9. data/lib/sparql/algebra.rb +7 -15
  10. data/lib/sparql/algebra/aggregate.rb +2 -2
  11. data/lib/sparql/algebra/expression.rb +22 -8
  12. data/lib/sparql/algebra/extensions.rb +135 -3
  13. data/lib/sparql/algebra/operator.rb +37 -9
  14. data/lib/sparql/algebra/operator/abs.rb +2 -2
  15. data/lib/sparql/algebra/operator/add.rb +2 -2
  16. data/lib/sparql/algebra/operator/alt.rb +2 -2
  17. data/lib/sparql/algebra/operator/and.rb +3 -3
  18. data/lib/sparql/algebra/operator/asc.rb +1 -1
  19. data/lib/sparql/algebra/operator/ask.rb +2 -12
  20. data/lib/sparql/algebra/operator/avg.rb +1 -1
  21. data/lib/sparql/algebra/operator/base.rb +8 -8
  22. data/lib/sparql/algebra/operator/bgp.rb +1 -1
  23. data/lib/sparql/algebra/operator/bnode.rb +2 -2
  24. data/lib/sparql/algebra/operator/bound.rb +1 -1
  25. data/lib/sparql/algebra/operator/ceil.rb +2 -2
  26. data/lib/sparql/algebra/operator/clear.rb +2 -2
  27. data/lib/sparql/algebra/operator/coalesce.rb +1 -11
  28. data/lib/sparql/algebra/operator/compare.rb +8 -8
  29. data/lib/sparql/algebra/operator/concat.rb +2 -2
  30. data/lib/sparql/algebra/operator/construct.rb +2 -12
  31. data/lib/sparql/algebra/operator/contains.rb +2 -2
  32. data/lib/sparql/algebra/operator/copy.rb +2 -2
  33. data/lib/sparql/algebra/operator/count.rb +1 -1
  34. data/lib/sparql/algebra/operator/create.rb +2 -2
  35. data/lib/sparql/algebra/operator/dataset.rb +2 -13
  36. data/lib/sparql/algebra/operator/datatype.rb +1 -1
  37. data/lib/sparql/algebra/operator/day.rb +1 -1
  38. data/lib/sparql/algebra/operator/delete.rb +4 -4
  39. data/lib/sparql/algebra/operator/delete_data.rb +2 -2
  40. data/lib/sparql/algebra/operator/delete_where.rb +2 -2
  41. data/lib/sparql/algebra/operator/desc.rb +1 -1
  42. data/lib/sparql/algebra/operator/describe.rb +2 -12
  43. data/lib/sparql/algebra/operator/distinct.rb +2 -12
  44. data/lib/sparql/algebra/operator/divide.rb +1 -1
  45. data/lib/sparql/algebra/operator/drop.rb +2 -2
  46. data/lib/sparql/algebra/operator/encode_for_uri.rb +2 -2
  47. data/lib/sparql/algebra/operator/equal.rb +2 -2
  48. data/lib/sparql/algebra/operator/exists.rb +1 -1
  49. data/lib/sparql/algebra/operator/exprlist.rb +1 -11
  50. data/lib/sparql/algebra/operator/extend.rb +14 -13
  51. data/lib/sparql/algebra/operator/filter.rb +3 -13
  52. data/lib/sparql/algebra/operator/floor.rb +2 -2
  53. data/lib/sparql/algebra/operator/graph.rb +3 -14
  54. data/lib/sparql/algebra/operator/greater_than.rb +5 -5
  55. data/lib/sparql/algebra/operator/greater_than_or_equal.rb +5 -5
  56. data/lib/sparql/algebra/operator/group.rb +14 -14
  57. data/lib/sparql/algebra/operator/group_concat.rb +1 -1
  58. data/lib/sparql/algebra/operator/hours.rb +1 -1
  59. data/lib/sparql/algebra/operator/if.rb +1 -11
  60. data/lib/sparql/algebra/operator/in.rb +1 -11
  61. data/lib/sparql/algebra/operator/insert.rb +3 -3
  62. data/lib/sparql/algebra/operator/insert_data.rb +2 -2
  63. data/lib/sparql/algebra/operator/iri.rb +1 -1
  64. data/lib/sparql/algebra/operator/is_blank.rb +1 -1
  65. data/lib/sparql/algebra/operator/is_iri.rb +1 -1
  66. data/lib/sparql/algebra/operator/is_literal.rb +1 -1
  67. data/lib/sparql/algebra/operator/is_numeric.rb +1 -1
  68. data/lib/sparql/algebra/operator/join.rb +9 -7
  69. data/lib/sparql/algebra/operator/lang.rb +1 -1
  70. data/lib/sparql/algebra/operator/lang_matches.rb +3 -3
  71. data/lib/sparql/algebra/operator/lcase.rb +2 -2
  72. data/lib/sparql/algebra/operator/left_join.rb +12 -9
  73. data/lib/sparql/algebra/operator/less_than.rb +5 -5
  74. data/lib/sparql/algebra/operator/less_than_or_equal.rb +5 -5
  75. data/lib/sparql/algebra/operator/load.rb +2 -2
  76. data/lib/sparql/algebra/operator/max.rb +1 -1
  77. data/lib/sparql/algebra/operator/md5.rb +1 -1
  78. data/lib/sparql/algebra/operator/min.rb +1 -1
  79. data/lib/sparql/algebra/operator/minus.rb +9 -8
  80. data/lib/sparql/algebra/operator/minutes.rb +1 -1
  81. data/lib/sparql/algebra/operator/modify.rb +1 -1
  82. data/lib/sparql/algebra/operator/month.rb +1 -1
  83. data/lib/sparql/algebra/operator/move.rb +2 -2
  84. data/lib/sparql/algebra/operator/multiply.rb +1 -1
  85. data/lib/sparql/algebra/operator/negate.rb +1 -1
  86. data/lib/sparql/algebra/operator/not.rb +1 -1
  87. data/lib/sparql/algebra/operator/not_equal.rb +2 -2
  88. data/lib/sparql/algebra/operator/notexists.rb +2 -2
  89. data/lib/sparql/algebra/operator/notin.rb +1 -11
  90. data/lib/sparql/algebra/operator/notoneof.rb +2 -2
  91. data/lib/sparql/algebra/operator/now.rb +1 -1
  92. data/lib/sparql/algebra/operator/or.rb +3 -3
  93. data/lib/sparql/algebra/operator/order.rb +2 -12
  94. data/lib/sparql/algebra/operator/path.rb +2 -2
  95. data/lib/sparql/algebra/operator/path_opt.rb +2 -2
  96. data/lib/sparql/algebra/operator/path_plus.rb +2 -2
  97. data/lib/sparql/algebra/operator/path_star.rb +2 -2
  98. data/lib/sparql/algebra/operator/plus.rb +2 -2
  99. data/lib/sparql/algebra/operator/prefix.rb +8 -8
  100. data/lib/sparql/algebra/operator/project.rb +2 -12
  101. data/lib/sparql/algebra/operator/rand.rb +1 -1
  102. data/lib/sparql/algebra/operator/reduced.rb +2 -12
  103. data/lib/sparql/algebra/operator/regex.rb +5 -5
  104. data/lib/sparql/algebra/operator/replace.rb +3 -3
  105. data/lib/sparql/algebra/operator/reverse.rb +2 -2
  106. data/lib/sparql/algebra/operator/round.rb +2 -2
  107. data/lib/sparql/algebra/operator/same_term.rb +8 -5
  108. data/lib/sparql/algebra/operator/sample.rb +1 -1
  109. data/lib/sparql/algebra/operator/seconds.rb +1 -1
  110. data/lib/sparql/algebra/operator/seq.rb +1 -1
  111. data/lib/sparql/algebra/operator/sequence.rb +1 -1
  112. data/lib/sparql/algebra/operator/sha1.rb +1 -1
  113. data/lib/sparql/algebra/operator/sha256.rb +1 -1
  114. data/lib/sparql/algebra/operator/sha384.rb +1 -1
  115. data/lib/sparql/algebra/operator/sha512.rb +1 -1
  116. data/lib/sparql/algebra/operator/slice.rb +2 -12
  117. data/lib/sparql/algebra/operator/str.rb +1 -1
  118. data/lib/sparql/algebra/operator/strafter.rb +2 -2
  119. data/lib/sparql/algebra/operator/strbefore.rb +2 -2
  120. data/lib/sparql/algebra/operator/strdt.rb +2 -2
  121. data/lib/sparql/algebra/operator/strends.rb +2 -2
  122. data/lib/sparql/algebra/operator/strlang.rb +2 -2
  123. data/lib/sparql/algebra/operator/strlen.rb +2 -2
  124. data/lib/sparql/algebra/operator/strstarts.rb +2 -2
  125. data/lib/sparql/algebra/operator/struuid.rb +1 -1
  126. data/lib/sparql/algebra/operator/substr.rb +3 -3
  127. data/lib/sparql/algebra/operator/subtract.rb +1 -1
  128. data/lib/sparql/algebra/operator/sum.rb +1 -1
  129. data/lib/sparql/algebra/operator/table.rb +2 -2
  130. data/lib/sparql/algebra/operator/timezone.rb +1 -1
  131. data/lib/sparql/algebra/operator/tz.rb +1 -1
  132. data/lib/sparql/algebra/operator/ucase.rb +2 -2
  133. data/lib/sparql/algebra/operator/union.rb +7 -6
  134. data/lib/sparql/algebra/operator/update.rb +2 -2
  135. data/lib/sparql/algebra/operator/using.rb +2 -2
  136. data/lib/sparql/algebra/operator/uuid.rb +1 -1
  137. data/lib/sparql/algebra/operator/with.rb +2 -2
  138. data/lib/sparql/algebra/operator/year.rb +1 -1
  139. data/lib/sparql/algebra/query.rb +1 -1
  140. data/lib/sparql/algebra/update.rb +1 -1
  141. data/lib/sparql/algebra/version.rb +1 -1
  142. data/lib/sparql/extensions.rb +1 -1
  143. data/lib/sparql/grammar.rb +104 -3
  144. data/lib/sparql/grammar/meta.rb +1372 -333
  145. data/lib/sparql/grammar/parser11.rb +27 -6
  146. data/lib/sparql/grammar/terminals11.rb +1 -0
  147. data/lib/sparql/results.rb +60 -41
  148. data/lib/sparql/version.rb +1 -1
  149. metadata +14 -8
@@ -6,8 +6,8 @@ module SPARQL; module Algebra
6
6
  # @example
7
7
  # (abs ?x)
8
8
  #
9
- # @see http://www.w3.org/TR/sparql11-query/#func-abs
10
- # @see http://www.w3.org/TR/xpath-functions/#func-abs
9
+ # @see https://www.w3.org/TR/sparql11-query/#func-abs
10
+ # @see https://www.w3.org/TR/xpath-functions/#func-abs
11
11
  class Abs < Operator::Unary
12
12
  include Evaluatable
13
13
 
@@ -9,7 +9,7 @@ module SPARQL; module Algebra
9
9
  # @example
10
10
  # (add default <a>)
11
11
  #
12
- # @see http://www.w3.org/TR/sparql11-update/#add
12
+ # @see https://www.w3.org/TR/sparql11-update/#add
13
13
  class Add < Operator
14
14
  include SPARQL::Algebra::Update
15
15
 
@@ -28,7 +28,7 @@ module SPARQL; module Algebra
28
28
  # Returns queryable.
29
29
  # @raise [IOError]
30
30
  # If `from` does not exist, unless the `silent` operator is present
31
- # @see http://www.w3.org/TR/sparql11-update/
31
+ # @see https://www.w3.org/TR/sparql11-update/
32
32
  def execute(queryable, **options)
33
33
  debug(options) {"Add"}
34
34
  silent = operands.first == :silent
@@ -10,7 +10,7 @@ module SPARQL; module Algebra
10
10
  # @example
11
11
  # (alt a b)
12
12
  #
13
- # @see http://www.w3.org/TR/sparql11-query/#defn_evalPP_alternative
13
+ # @see https://www.w3.org/TR/sparql11-query/#defn_evalPP_alternative
14
14
  class Alt < Operator::Binary
15
15
  include Query
16
16
 
@@ -32,7 +32,7 @@ module SPARQL; module Algebra
32
32
  # each matching solution
33
33
  # @yieldparam [RDF::Query::Solution] solution
34
34
  # @yieldreturn [void] ignored
35
- # @see http://www.w3.org/TR/sparql11-query/#sparqlAlgebra
35
+ # @see https://www.w3.org/TR/sparql11-query/#sparqlAlgebra
36
36
  def execute(queryable, **options, &block)
37
37
  subject, object = options[:subject], options[:object]
38
38
  debug(options) {"Alt #{[subject, operands, object].to_sse}"}
@@ -7,8 +7,8 @@ module SPARQL; module Algebra
7
7
  # (&& ?x ?y)
8
8
  # (and ?x ?y)
9
9
  #
10
- # @see http://www.w3.org/TR/sparql11-query/#func-logical-and
11
- # @see http://www.w3.org/TR/sparql11-query/#evaluation
10
+ # @see https://www.w3.org/TR/sparql11-query/#func-logical-and
11
+ # @see https://www.w3.org/TR/sparql11-query/#evaluation
12
12
  class And < Operator::Binary
13
13
  include Evaluatable
14
14
 
@@ -50,7 +50,7 @@ module SPARQL; module Algebra
50
50
  right = nil
51
51
  end
52
52
 
53
- # From http://www.w3.org/TR/sparql11-query/#evaluation
53
+ # From https://www.w3.org/TR/sparql11-query/#evaluation
54
54
  # A logical-and that encounters an error on only one branch will return an error if the other branch is
55
55
  # TRUE and FALSE if the other branch is FALSE.
56
56
  case
@@ -9,7 +9,7 @@ module SPARQL; module Algebra
9
9
  # (order ((asc ?name))
10
10
  # (bgp (triple ?x foaf:name ?name)))))
11
11
  #
12
- # @see http://www.w3.org/TR/sparql11-query/#modOrderBy
12
+ # @see https://www.w3.org/TR/sparql11-query/#modOrderBy
13
13
  class Asc < Operator::Unary
14
14
  include Evaluatable
15
15
 
@@ -10,7 +10,7 @@ module SPARQL; module Algebra
10
10
  # (ask
11
11
  # (bgp (triple :x :p ?x))))
12
12
  #
13
- # @see http://www.w3.org/TR/sparql11-query/#ask
13
+ # @see https://www.w3.org/TR/sparql11-query/#ask
14
14
  class Ask < Operator::Unary
15
15
  include Query
16
16
 
@@ -28,23 +28,13 @@ module SPARQL; module Algebra
28
28
  # @yieldparam [RDF::Query::Solution] solution
29
29
  # @yieldreturn [void] ignored
30
30
  # @return [RDF::Literal::Boolean]\
31
- # @see http://www.w3.org/TR/sparql11-query/#sparqlAlgebra
31
+ # @see https://www.w3.org/TR/sparql11-query/#sparqlAlgebra
32
32
  def execute(queryable, **options)
33
33
  debug(options) {"Ask #{operands.first}"}
34
34
  res = boolean(!queryable.query(operands.last, depth: options[:depth].to_i + 1, **options).empty?)
35
35
  yield res if block_given?
36
36
  res
37
37
  end
38
-
39
- ##
40
- # Returns an optimized version of this query.
41
- #
42
- # Return optimized query
43
- #
44
- # @return [Union, RDF::Query] `self`
45
- def optimize
46
- operands = operands.map(&:optimize)
47
- end
48
38
 
49
39
  # Query results in a boolean result (e.g., ASK)
50
40
  # @return [Boolean]
@@ -10,7 +10,7 @@ module SPARQL; module Algebra
10
10
  # (group () ((??.0 (avg ?o)))
11
11
  # (bgp (triple ?s :dec ?o))))))
12
12
  #
13
- # @see http://www.w3.org/TR/sparql11-query/#defn_aggAvg
13
+ # @see https://www.w3.org/TR/sparql11-query/#defn_aggAvg
14
14
  class Avg < Operator
15
15
  include Aggregate
16
16
 
@@ -7,7 +7,7 @@ module SPARQL; module Algebra
7
7
  # (base <http://example.org/>
8
8
  # (bgp (triple <a> <b> 123.0)))
9
9
  #
10
- # @see http://www.w3.org/TR/sparql11-query/#QSynIRI
10
+ # @see https://www.w3.org/TR/sparql11-query/#QSynIRI
11
11
  class Base < Binary
12
12
  include Query
13
13
 
@@ -28,21 +28,21 @@ module SPARQL; module Algebra
28
28
  # @yieldreturn [void] ignored
29
29
  # @return [RDF::Queryable, RDF::Query::Solutions]
30
30
  # the resulting solution sequence
31
- # @see http://www.w3.org/TR/sparql11-query/#sparqlAlgebra
31
+ # @see https://www.w3.org/TR/sparql11-query/#sparqlAlgebra
32
32
  def execute(queryable, **options, &block)
33
33
  debug(options) {"Base #{operands.first}"}
34
34
  Operator.base_uri = operands.first
35
35
  queryable.query(operands.last, depth: options[:depth].to_i + 1, **options, &block)
36
36
  end
37
-
37
+
38
38
  ##
39
- # Returns an optimized version of this query.
40
- #
41
39
  # Return optimized query
42
40
  #
43
- # @return [Union, RDF::Query] `self`
44
- def optimize
45
- operands.last.optimize
41
+ # @return [Base] a copy of `self`
42
+ # @see SPARQL::Algebra::Expression#optimize
43
+ def optimize(**options)
44
+ Operator.base_uri = operands.first
45
+ operands.last.optimize(**options)
46
46
  end
47
47
 
48
48
  # Query results in a boolean result (e.g., ASK)
@@ -9,7 +9,7 @@ module SPARQL; module Algebra
9
9
  # (prefix ((: <http://example/>))
10
10
  # (bgp (triple ?s ?p ?o)))
11
11
  #
12
- # @see http://www.w3.org/TR/sparql11-query/#sparqlAlgebra
12
+ # @see https://www.w3.org/TR/sparql11-query/#sparqlAlgebra
13
13
  class BGP < Operator
14
14
  NAME = [:bgp]
15
15
  ##
@@ -16,7 +16,7 @@ module SPARQL; module Algebra
16
16
  # (triple ?b :str ?s2)
17
17
  # )))))
18
18
  #
19
- # @see http://www.w3.org/TR/sparql11-query/#func-bnode
19
+ # @see https://www.w3.org/TR/sparql11-query/#func-bnode
20
20
  class BNode < Operator::Unary
21
21
  include Evaluatable
22
22
 
@@ -82,7 +82,7 @@ module SPARQL; module Algebra
82
82
  # Remove the optional argument.
83
83
  #
84
84
  # @return [Array] `self`
85
- # @see http://openjena.org/wiki/SSE
85
+ # @see https://openjena.org/wiki/SSE
86
86
  def to_sxp_bin
87
87
  [NAME] + operands.reject {|o| o == false}
88
88
  end
@@ -11,7 +11,7 @@ module SPARQL; module Algebra
11
11
  # (bgp (triple ?a :b ?c))
12
12
  # (bgp (triple ?c :d ?e))))))
13
13
  #
14
- # @see http://www.w3.org/TR/sparql11-query/#func-bound
14
+ # @see https://www.w3.org/TR/sparql11-query/#func-bound
15
15
  class Bound < Operator::Unary
16
16
  include Evaluatable
17
17
 
@@ -6,8 +6,8 @@ module SPARQL; module Algebra
6
6
  # @example
7
7
  # (ceil ?x)
8
8
  #
9
- # @see http://www.w3.org/TR/sparql11-query/#func-ceil
10
- # @see http://www.w3.org/TR/xpath-functions/#func-ceil
9
+ # @see https://www.w3.org/TR/sparql11-query/#func-ceil
10
+ # @see https://www.w3.org/TR/xpath-functions/#func-ceil
11
11
  class Ceil < Operator::Unary
12
12
  include Evaluatable
13
13
 
@@ -9,7 +9,7 @@ module SPARQL; module Algebra
9
9
  # @example
10
10
  # (clear silent default)
11
11
  #
12
- # @see http://www.w3.org/TR/sparql11-update/#clear
12
+ # @see https://www.w3.org/TR/sparql11-update/#clear
13
13
  class Clear < Operator
14
14
  include SPARQL::Algebra::Update
15
15
 
@@ -28,7 +28,7 @@ module SPARQL; module Algebra
28
28
  # Returns queryable.
29
29
  # @raise [IOError]
30
30
  # If `from` does not exist, unless the `silent` operator is present
31
- # @see http://www.w3.org/TR/sparql11-update/
31
+ # @see https://www.w3.org/TR/sparql11-update/
32
32
  def execute(queryable, **options)
33
33
  debug(options) {"Clear"}
34
34
  silent = operands.first == :silent
@@ -15,7 +15,7 @@ module SPARQL; module Algebra
15
15
  # (bgp (triple ?s :p ?o))
16
16
  # (bgp (triple ?s :q ?x))))))
17
17
  #
18
- # @see http://www.w3.org/TR/sparql11-query/#func-coalesce
18
+ # @see https://www.w3.org/TR/sparql11-query/#func-coalesce
19
19
  class Coalesce < Operator
20
20
  include Evaluatable
21
21
 
@@ -50,16 +50,6 @@ module SPARQL; module Algebra
50
50
  end
51
51
  raise TypeError, "None of the operands evaluated"
52
52
  end
53
-
54
- ##
55
- # Returns an optimized version of this query.
56
- #
57
- # Return optimized query
58
- #
59
- # @return [Union, RDF::Query] `self`
60
- def optimize
61
- operands = operands.map(&:optimize)
62
- end
63
53
  end # Coalesce
64
54
  end # Operator
65
55
  end; end # SPARQL::Algebra
@@ -6,8 +6,8 @@ module SPARQL; module Algebra
6
6
  # @example
7
7
  # (<=> ?x ?y)
8
8
  #
9
- # @see http://www.w3.org/TR/sparql11-query/#OperatorMapping
10
- # @see http://www.w3.org/TR/xpath-functions/#func-compare
9
+ # @see https://www.w3.org/TR/sparql11-query/#OperatorMapping
10
+ # @see https://www.w3.org/TR/xpath-functions/#func-compare
11
11
  class Compare < Operator::Binary
12
12
  include Evaluatable
13
13
 
@@ -33,14 +33,14 @@ module SPARQL; module Algebra
33
33
  # @raise [TypeError] if either operand is not a literal
34
34
  def apply(left, right)
35
35
  case
36
- # @see http://www.w3.org/TR/sparql11-query/#OperatorMapping
37
- # @see http://www.w3.org/TR/sparql11-query/#modOrderBy
36
+ # @see https://www.w3.org/TR/sparql11-query/#OperatorMapping
37
+ # @see https://www.w3.org/TR/sparql11-query/#modOrderBy
38
38
  when left.is_a?(RDF::Literal) && right.is_a?(RDF::Literal)
39
39
  case
40
- # @see http://www.w3.org/TR/xpath-functions/#string-compare
41
- # @see http://www.w3.org/TR/xpath-functions/#comp.numeric
42
- # @see http://www.w3.org/TR/xpath-functions/#op.boolean
43
- # @see http://www.w3.org/TR/xpath-functions/#comp.duration.datetime
40
+ # @see https://www.w3.org/TR/xpath-functions/#string-compare
41
+ # @see https://www.w3.org/TR/xpath-functions/#comp.numeric
42
+ # @see https://www.w3.org/TR/xpath-functions/#op.boolean
43
+ # @see https://www.w3.org/TR/xpath-functions/#comp.duration.datetime
44
44
  when (left.simple? && right.simple?) ||
45
45
  (left.is_a?(RDF::Literal::Numeric) && right.is_a?(RDF::Literal::Numeric)) ||
46
46
  (left.datatype == right.datatype && left.language == right.language)
@@ -8,8 +8,8 @@ module SPARQL; module Algebra
8
8
  # @example
9
9
  # (concat ?a ?b ...)
10
10
  #
11
- # @see http://www.w3.org/TR/sparql11-query/#func-concat
12
- # @see http://www.w3.org/TR/xpath-functions/#func-concat
11
+ # @see https://www.w3.org/TR/sparql11-query/#func-concat
12
+ # @see https://www.w3.org/TR/xpath-functions/#func-concat
13
13
  class Concat < Operator
14
14
  include Evaluatable
15
15
 
@@ -12,7 +12,7 @@ module SPARQL; module Algebra
12
12
  # (project (?s ?p ?o)
13
13
  # (bgp (triple ?s ?p ?o)))))
14
14
  #
15
- # @see http://www.w3.org/TR/sparql11-query/#construct
15
+ # @see https://www.w3.org/TR/sparql11-query/#construct
16
16
  class Construct < Operator::Binary
17
17
  include Query
18
18
 
@@ -34,7 +34,7 @@ module SPARQL; module Algebra
34
34
  # @yieldreturn [void] ignored
35
35
  # @return [RDF::Queryable]
36
36
  # A Queryable with constructed triples
37
- # @see http://www.w3.org/TR/sparql11-query/#construct
37
+ # @see https://www.w3.org/TR/sparql11-query/#construct
38
38
  def execute(queryable, **options, &block)
39
39
  debug(options) {"Construct #{operands.first}, #{options.inspect}"}
40
40
  graph = RDF::Graph.new
@@ -74,16 +74,6 @@ module SPARQL; module Algebra
74
74
  graph.each(&block) if block_given?
75
75
  graph
76
76
  end
77
-
78
- ##
79
- # Returns an optimized version of this query.
80
- #
81
- # Return optimized query
82
- #
83
- # @return [Union, RDF::Query] `self`
84
- def optimize
85
- operands = operands.map(&:optimize)
86
- end
87
77
 
88
78
  # Query results statements (e.g., CONSTRUCT, DESCRIBE, CREATE)
89
79
  # @return [Boolean]
@@ -6,8 +6,8 @@ module SPARQL; module Algebra
6
6
  # @example
7
7
  # (contains ?x ?y)
8
8
  #
9
- # @see http://www.w3.org/TR/sparql11-query/#func-contains
10
- # @see http://www.w3.org/TR/xpath-functions/#func-contains
9
+ # @see https://www.w3.org/TR/sparql11-query/#func-contains
10
+ # @see https://www.w3.org/TR/xpath-functions/#func-contains
11
11
  class Contains < Operator::Binary
12
12
  include Evaluatable
13
13
 
@@ -9,7 +9,7 @@ module SPARQL; module Algebra
9
9
  # @example
10
10
  # (copy silent <iri> to default)
11
11
  #
12
- # @see http://www.w3.org/TR/sparql11-update/#copy
12
+ # @see https://www.w3.org/TR/sparql11-update/#copy
13
13
  class Copy < Operator
14
14
  include SPARQL::Algebra::Update
15
15
 
@@ -28,7 +28,7 @@ module SPARQL; module Algebra
28
28
  # Returns queryable.
29
29
  # @raise [IOError]
30
30
  # If `from` does not exist, unless the `silent` operator is present
31
- # @see http://www.w3.org/TR/sparql11-update/
31
+ # @see https://www.w3.org/TR/sparql11-update/
32
32
  def execute(queryable, **options)
33
33
  debug(options) {"Copy"}
34
34
  silent = operands.first == :silent
@@ -10,7 +10,7 @@ module SPARQL; module Algebra
10
10
  # (group () ((??.0 (count ?O)))
11
11
  # (bgp (triple ?S ?P ?O))))))
12
12
  #
13
- # @see http://www.w3.org/TR/sparql11-query/#defn_aggCount
13
+ # @see https://www.w3.org/TR/sparql11-query/#defn_aggCount
14
14
  class Count < Operator
15
15
  include Aggregate
16
16
 
@@ -11,7 +11,7 @@ module SPARQL; module Algebra
11
11
  # @example
12
12
  # (create silent <graph>)
13
13
  #
14
- # @see http://www.w3.org/TR/sparql11-update/#create
14
+ # @see https://www.w3.org/TR/sparql11-update/#create
15
15
  class Create < Operator
16
16
  include SPARQL::Algebra::Update
17
17
 
@@ -30,7 +30,7 @@ module SPARQL; module Algebra
30
30
  # Returns queryable.
31
31
  # @raise [IOError]
32
32
  # If `from` does not exist, unless the `silent` operator is present
33
- # @see http://www.w3.org/TR/sparql11-update/
33
+ # @see https://www.w3.org/TR/sparql11-update/
34
34
  def execute(queryable, **options)
35
35
  debug(options) {"Create"}
36
36
  silent = operands.first == :silent
@@ -102,7 +102,7 @@ module SPARQL; module Algebra
102
102
  # (graph ?g (bgp (triple ?s ?p ?o))))))
103
103
  #
104
104
  # @example Dataset with multiple named graphs
105
- # @see http://www.w3.org/TR/sparql11-query/#specifyingDataset
105
+ # @see https://www.w3.org/TR/sparql11-query/#specifyingDataset
106
106
  class Dataset < Binary
107
107
  include Query
108
108
 
@@ -125,7 +125,7 @@ module SPARQL; module Algebra
125
125
  # @yieldreturn [void] ignored
126
126
  # @return [RDF::Query::Solutions]
127
127
  # the resulting solution sequence
128
- # @see http://www.w3.org/TR/sparql11-query/#sparqlAlgebra
128
+ # @see https://www.w3.org/TR/sparql11-query/#sparqlAlgebra
129
129
  def execute(queryable, **options, &base)
130
130
  debug(options) {"Dataset"}
131
131
  default_datasets = []
@@ -158,17 +158,6 @@ module SPARQL; module Algebra
158
158
  aggregate.default(*default_datasets.select {|name| queryable.has_graph?(name)})
159
159
  aggregate.query(operands.last, depth: options[:depth].to_i + 1, **options, &base)
160
160
  end
161
-
162
- ##
163
- # Returns an optimized version of this query.
164
- #
165
- # If optimize operands, and if the first two operands are both Queries, replace
166
- # with the unique sum of the query elements
167
- #
168
- # @return [Union, RDF::Query] `self`
169
- def optimize
170
- operands.last.optimize
171
- end
172
161
  end # Dataset
173
162
  end # Operator
174
163
  end; end # SPARQL::Algebra
@@ -11,7 +11,7 @@ module SPARQL; module Algebra
11
11
  # (filter (= (datatype (xsd:double ?v)) xsd:double)
12
12
  # (bgp (triple ?s :p ?v)))))
13
13
  #
14
- # @see http://www.w3.org/TR/sparql11-query/#func-datatype
14
+ # @see https://www.w3.org/TR/sparql11-query/#func-datatype
15
15
  class Datatype < Operator::Unary
16
16
  include Evaluatable
17
17
 
@@ -9,7 +9,7 @@ module SPARQL; module Algebra
9
9
  # (extend ((?x (day ?date)))
10
10
  # (bgp (triple ?s :date ?date)))))
11
11
  #
12
- # @see http://www.w3.org/TR/sparql11-query/#func-day
12
+ # @see https://www.w3.org/TR/sparql11-query/#func-day
13
13
  class Day < Operator::Unary
14
14
  include Evaluatable
15
15