sparql 3.1.0 → 3.1.2

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