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
@@ -33,7 +33,7 @@ module SPARQL; module Algebra
33
33
  # Returns queryable.
34
34
  # @raise [IOError]
35
35
  # If `from` does not exist, unless the `silent` operator is present
36
- # @see http://www.w3.org/TR/sparql11-update/
36
+ # @see https://www.w3.org/TR/sparql11-update/
37
37
  def execute(queryable, **options)
38
38
  debug(options) {"Modify"}
39
39
  query = operands.shift
@@ -11,7 +11,7 @@ module SPARQL; module Algebra
11
11
  # (extend ((?x (month ?date)))
12
12
  # (bgp (triple ?s :date ?date)))))
13
13
  #
14
- # @see http://www.w3.org/TR/sparql11-query/#func-month
14
+ # @see https://www.w3.org/TR/sparql11-query/#func-month
15
15
  class Month < Operator::Unary
16
16
  include Evaluatable
17
17
 
@@ -9,7 +9,7 @@ module SPARQL; module Algebra
9
9
  # @example
10
10
  # (move silent <iri> to default)
11
11
  #
12
- # @see http://www.w3.org/TR/sparql11-update/#move
12
+ # @see https://www.w3.org/TR/sparql11-update/#move
13
13
  class Move < 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) {"Move"}
34
34
  silent = operands.first == :silent
@@ -7,7 +7,7 @@ module SPARQL; module Algebra
7
7
  # (* ?x ?y)
8
8
  # (multiply ?x ?y)
9
9
  #
10
- # @see http://www.w3.org/TR/xpath-functions/#func-numeric-multiply
10
+ # @see https://www.w3.org/TR/xpath-functions/#func-numeric-multiply
11
11
  class Multiply < Operator::Binary
12
12
  include Evaluatable
13
13
 
@@ -7,7 +7,7 @@ module SPARQL; module Algebra
7
7
  # (- ?x)
8
8
  # (negate ?x)
9
9
  #
10
- # @see http://www.w3.org/TR/xpath-functions/#func-numeric-unary-minus
10
+ # @see https://www.w3.org/TR/xpath-functions/#func-numeric-unary-minus
11
11
  class Negate < Operator::Unary
12
12
  include Evaluatable
13
13
 
@@ -7,7 +7,7 @@ module SPARQL; module Algebra
7
7
  # (! ?x)
8
8
  # (not ?x)
9
9
  #
10
- # @see http://www.w3.org/TR/xpath-functions/#func-not
10
+ # @see https://www.w3.org/TR/xpath-functions/#func-not
11
11
  class Not < Operator::Unary
12
12
  include Evaluatable
13
13
 
@@ -3,8 +3,8 @@ module SPARQL; module Algebra
3
3
  ##
4
4
  # The SPARQL relational `!=` (not equal) comparison operator.
5
5
  #
6
- # @see http://www.w3.org/TR/sparql11-query/#OperatorMapping
7
- # @see http://www.w3.org/TR/sparql11-query/#func-RDFterm-equal
6
+ # @see https://www.w3.org/TR/sparql11-query/#OperatorMapping
7
+ # @see https://www.w3.org/TR/sparql11-query/#func-RDFterm-equal
8
8
  class NotEqual < Equal
9
9
  NAME = :'!='
10
10
 
@@ -12,8 +12,8 @@ module SPARQL; module Algebra
12
12
  # (bgp (triple ?s ?p ex:o1))))
13
13
  # (bgp (triple ?s ?p ex:o))))
14
14
  #
15
- # @see http://www.w3.org/TR/sparql11-query/#func-abs
16
- # @see http://www.w3.org/TR/xpath-functions/#func-abs
15
+ # @see https://www.w3.org/TR/sparql11-query/#func-abs
16
+ # @see https://www.w3.org/TR/xpath-functions/#func-abs
17
17
  class NotExists < Operator::Unary
18
18
  include Evaluatable
19
19
 
@@ -8,7 +8,7 @@ module SPARQL; module Algebra
8
8
  # @example
9
9
  # (ask (filter (notin ?o 1 2) (bgp)))
10
10
  #
11
- # @see http://www.w3.org/TR/sparql11-query/#func-notin
11
+ # @see https://www.w3.org/TR/sparql11-query/#func-notin
12
12
  class NotIn < Operator
13
13
  include Evaluatable
14
14
 
@@ -58,16 +58,6 @@ module SPARQL; module Algebra
58
58
  else RDF::Literal::TRUE
59
59
  end
60
60
  end
61
-
62
- ##
63
- # Returns an optimized version of this query.
64
- #
65
- # Return optimized query
66
- #
67
- # @return [Union, RDF::Query] `self`
68
- def optimize
69
- operands = operands.map(&:optimize)
70
- end
71
61
  end # Exprlist
72
62
  end # Operator
73
63
  end; end # SPARQL::Algebra
@@ -6,7 +6,7 @@ module SPARQL; module Algebra
6
6
  # @example
7
7
  # (notoneof ex:p1 ex:p2)
8
8
  #
9
- # @see http://www.w3.org/TR/sparql11-query/#eval_negatedPropertySet
9
+ # @see https://www.w3.org/TR/sparql11-query/#eval_negatedPropertySet
10
10
  class NotOneOf < Operator
11
11
  include Query
12
12
 
@@ -30,7 +30,7 @@ module SPARQL; module Algebra
30
30
  # each matching solution
31
31
  # @yieldparam [RDF::Query::Solution] solution
32
32
  # @yieldreturn [void] ignored
33
- # @see http://www.w3.org/TR/sparql11-query/#sparqlAlgebra
33
+ # @see https://www.w3.org/TR/sparql11-query/#sparqlAlgebra
34
34
  def execute(queryable, **options, &block)
35
35
  debug(options) {"NotOneOf #{operands.to_sse}"}
36
36
  subject, object = options[:subject], options[:object]
@@ -13,7 +13,7 @@ module SPARQL; module Algebra
13
13
  # (extend ((?n (now)))
14
14
  # (bgp)))))
15
15
  #
16
- # @see http://www.w3.org/TR/sparql11-query/#func-now
16
+ # @see https://www.w3.org/TR/sparql11-query/#func-now
17
17
  class Now < Operator::Nullary
18
18
  include Evaluatable
19
19
 
@@ -7,8 +7,8 @@ module SPARQL; module Algebra
7
7
  # (|| ?x ?y)
8
8
  # (or ?x ?y)
9
9
  #
10
- # @see http://www.w3.org/TR/sparql11-query/#func-logical-or
11
- # @see http://www.w3.org/TR/sparql11-query/#evaluation
10
+ # @see https://www.w3.org/TR/sparql11-query/#func-logical-or
11
+ # @see https://www.w3.org/TR/sparql11-query/#evaluation
12
12
  class Or < Operator::Binary
13
13
  include Evaluatable
14
14
 
@@ -53,7 +53,7 @@ module SPARQL; module Algebra
53
53
  right = nil
54
54
  end
55
55
 
56
- # From http://www.w3.org/TR/sparql11-query/#evaluation
56
+ # From https://www.w3.org/TR/sparql11-query/#evaluation
57
57
  # A logical-or that encounters an error on only one branch will return TRUE if the other branch is TRUE
58
58
  # and an error if the other branch is FALSE.
59
59
  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 Order < Operator::Binary
14
14
  include Query
15
15
 
@@ -30,7 +30,7 @@ module SPARQL; module Algebra
30
30
  # @yieldreturn [void] ignored
31
31
  # @return [RDF::Query::Solutions]
32
32
  # the resulting solution sequence
33
- # @see http://www.w3.org/TR/sparql11-query/#sparqlAlgebra
33
+ # @see https://www.w3.org/TR/sparql11-query/#sparqlAlgebra
34
34
  def execute(queryable, **options, &block)
35
35
 
36
36
  debug(options) {"Order"}
@@ -50,16 +50,6 @@ module SPARQL; module Algebra
50
50
  @solutions.each(&block) if block_given?
51
51
  @solutions
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 # Order
64
54
  end # Operator
65
55
  end; end # SPARQL::Algebra
@@ -6,7 +6,7 @@ module SPARQL; module Algebra
6
6
  # @example
7
7
  # (path :a (path+ :p) ?z)
8
8
  #
9
- # @see http://www.w3.org/TR/sparql11-query/#sparqlTranslatePathExpressions
9
+ # @see https://www.w3.org/TR/sparql11-query/#sparqlTranslatePathExpressions
10
10
  class Path < Operator::Ternary
11
11
  include Query
12
12
 
@@ -25,7 +25,7 @@ module SPARQL; module Algebra
25
25
  # @yieldreturn [void] ignored
26
26
  # @return [RDF::Query::Solutions]
27
27
  # the resulting solution sequence
28
- # @see http://www.w3.org/TR/sparql11-query/#sparqlAlgebra
28
+ # @see https://www.w3.org/TR/sparql11-query/#sparqlAlgebra
29
29
  def execute(queryable, **options, &block)
30
30
  debug(options) {"Path #{operands.to_sse}"}
31
31
  subject, path_op, object = operands
@@ -6,7 +6,7 @@ module SPARQL; module Algebra
6
6
  # @example
7
7
  # (path? :p)
8
8
  #
9
- # @see http://www.w3.org/TR/sparql11-query/#defn_evalPP_ZeroOrOnePath
9
+ # @see https://www.w3.org/TR/sparql11-query/#defn_evalPP_ZeroOrOnePath
10
10
  class PathOpt < Operator::Unary
11
11
  include Query
12
12
 
@@ -29,7 +29,7 @@ module SPARQL; module Algebra
29
29
  # each matching solution
30
30
  # @yieldparam [RDF::Query::Solution] solution
31
31
  # @yieldreturn [void] ignored
32
- # @see http://www.w3.org/TR/sparql11-query/#sparqlAlgebra
32
+ # @see https://www.w3.org/TR/sparql11-query/#sparqlAlgebra
33
33
  def execute(queryable, **options, &block)
34
34
  subject, object = options[:subject], options[:object]
35
35
  debug(options) {"Path? #{[subject, operands, object].to_sse}"}
@@ -6,7 +6,7 @@ module SPARQL; module Algebra
6
6
  # @example
7
7
  # (path+ :p)
8
8
  #
9
- # @see http://www.w3.org/TR/sparql11-query/#defn_evalPP_OneOrMorePath
9
+ # @see https://www.w3.org/TR/sparql11-query/#defn_evalPP_OneOrMorePath
10
10
  class PathPlus < Operator::Unary
11
11
  include Query
12
12
 
@@ -25,7 +25,7 @@ module SPARQL; module Algebra
25
25
  # each matching solution
26
26
  # @yieldparam [RDF::Query::Solution] solution
27
27
  # @yieldreturn [void] ignored
28
- # @see http://www.w3.org/TR/sparql11-query/#sparqlAlgebra
28
+ # @see https://www.w3.org/TR/sparql11-query/#sparqlAlgebra
29
29
  def execute(queryable, **options, &block)
30
30
  subject, object = options[:subject], options[:object]
31
31
  debug(options) {"Path+ #{[subject, operands, object].to_sse}"}
@@ -6,7 +6,7 @@ module SPARQL; module Algebra
6
6
  # @example
7
7
  # (path* :p)
8
8
  #
9
- # @see http://www.w3.org/TR/sparql11-query/#defn_evalPP_ZeroOrMorePath
9
+ # @see https://www.w3.org/TR/sparql11-query/#defn_evalPP_ZeroOrMorePath
10
10
  class PathStar < Operator::Unary
11
11
  include Query
12
12
 
@@ -28,7 +28,7 @@ module SPARQL; module Algebra
28
28
  # each matching solution
29
29
  # @yieldparam [RDF::Query::Solution] solution
30
30
  # @yieldreturn [void] ignored
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
  subject, object = options[:subject], options[:object]
34
34
  debug(options) {"Path* #{[subject, operands, object].to_sse}"}
@@ -7,8 +7,8 @@ module SPARQL; module Algebra
7
7
  # (+ ?x ?y)
8
8
  # (plus ?x ?y)
9
9
  #
10
- # @see http://www.w3.org/TR/xpath-functions/#func-numeric-unary-plus
11
- # @see http://www.w3.org/TR/xpath-functions/#func-numeric-add
10
+ # @see https://www.w3.org/TR/xpath-functions/#func-numeric-unary-plus
11
+ # @see https://www.w3.org/TR/xpath-functions/#func-numeric-add
12
12
  class Plus < Operator
13
13
  include Evaluatable
14
14
 
@@ -8,7 +8,7 @@ module SPARQL; module Algebra
8
8
  # (graph ?g
9
9
  # (bgp (triple ?s ?p ?o))))
10
10
  #
11
- # @see http://www.w3.org/TR/sparql11-query/#QSynIRI
11
+ # @see https://www.w3.org/TR/sparql11-query/#QSynIRI
12
12
  class Prefix < Binary
13
13
  include Query
14
14
 
@@ -29,21 +29,21 @@ module SPARQL; module Algebra
29
29
  # @yieldreturn [void] ignored
30
30
  # @return [RDF::Query::Solutions]
31
31
  # the resulting solution sequence
32
- # @see http://www.w3.org/TR/sparql11-query/#sparqlAlgebra
32
+ # @see https://www.w3.org/TR/sparql11-query/#sparqlAlgebra
33
33
  def execute(queryable, **options, &block)
34
34
  debug(options) {"Prefix"}
35
35
  @solutions = queryable.query(operands.last, depth: options[:depth].to_i + 1, **options, &block)
36
36
  end
37
-
37
+
38
38
  ##
39
39
  # Returns an optimized version of this query.
40
40
  #
41
- # If optimize operands, and if the first two operands are both Queries, replace
42
- # with the unique sum of the query elements
41
+ # Replace with the query with URIs having their lexical shortcut removed
43
42
  #
44
- # @return [Union, RDF::Query] `self`
45
- def optimize
46
- operands.last.optimize
43
+ # @return [Prefix] a copy of `self`
44
+ # @see SPARQL::Algebra::Expression#optimize
45
+ def optimize(**options)
46
+ operands.last.optimize(**options)
47
47
  end
48
48
 
49
49
  # Combine two prefix definitions, merging their definitions
@@ -9,7 +9,7 @@ module SPARQL; module Algebra
9
9
  # (filter (= ?v 2)
10
10
  # (bgp (triple ?s <http://example/p> ?v)))))
11
11
  #
12
- # @see http://www.w3.org/TR/sparql11-query/#modProjection
12
+ # @see https://www.w3.org/TR/sparql11-query/#modProjection
13
13
  class Project < Operator::Binary
14
14
  include Query
15
15
 
@@ -29,23 +29,13 @@ module SPARQL; module Algebra
29
29
  # @yieldreturn [void] ignored
30
30
  # @return [RDF::Query::Solutions]
31
31
  # the resulting solution sequence
32
- # @see http://www.w3.org/TR/sparql11-query/#sparqlAlgebra
32
+ # @see https://www.w3.org/TR/sparql11-query/#sparqlAlgebra
33
33
  def execute(queryable, **options, &block)
34
34
  @solutions = queryable.query(operands.last, depth: options[:depth].to_i + 1, **options)
35
35
  @solutions = @solutions.project(*(operands.first))
36
36
  @solutions.each(&block) if block_given?
37
37
  @solutions
38
38
  end
39
-
40
- ##
41
- # Returns an optimized version of this query.
42
- #
43
- # Return optimized query
44
- #
45
- # @return [Union, RDF::Query] `self`
46
- def optimize
47
- operands = operands.map(&:optimize)
48
- end
49
39
  end # Project
50
40
  end # Operator
51
41
  end; end # SPARQL::Algebra
@@ -8,7 +8,7 @@ module SPARQL; module Algebra
8
8
  # @example
9
9
  # (rand)
10
10
  #
11
- # @see http://www.w3.org/TR/sparql11-query/#idp2130040
11
+ # @see https://www.w3.org/TR/sparql11-query/#idp2130040
12
12
  class Rand < Operator::Nullary
13
13
  include Evaluatable
14
14
 
@@ -10,7 +10,7 @@ module SPARQL; module Algebra
10
10
  # (project (?v)
11
11
  # (bgp (triple ?x ?p ?v)))))
12
12
  #
13
- # @see http://www.w3.org/TR/sparql11-query/#sparqlAlgebra
13
+ # @see https://www.w3.org/TR/sparql11-query/#sparqlAlgebra
14
14
  class Reduced < Operator::Unary
15
15
  include Query
16
16
 
@@ -30,23 +30,13 @@ module SPARQL; module Algebra
30
30
  # @yieldreturn [void] ignored
31
31
  # @return [RDF::Query::Solutions]
32
32
  # the resulting solution sequence
33
- # @see http://www.w3.org/TR/sparql11-query/#sparqlAlgebra
33
+ # @see https://www.w3.org/TR/sparql11-query/#sparqlAlgebra
34
34
  def execute(queryable, **options, &block)
35
35
  @solutions = operands.last.
36
36
  execute(queryable, depth: options[:depth].to_i + 1, **options).reduced
37
37
  @solutions.each(&block) if block_given?
38
38
  @solutions
39
39
  end
40
-
41
- ##
42
- # Returns an optimized version of this query.
43
- #
44
- # Return optimized query
45
- #
46
- # @return [Union, RDF::Query] `self`
47
- def optimize
48
- operands = operands.map(&:optimize)
49
- end
50
40
  end # Reduced
51
41
  end # Operator
52
42
  end; end # SPARQL::Algebra
@@ -10,8 +10,8 @@ module SPARQL; module Algebra
10
10
  # (filter (regex ?val "GHI")
11
11
  # (bgp (triple ex:foo rdf:value ?val)))))
12
12
  #
13
- # @see http://www.w3.org/TR/sparql11-query/#funcex-regex
14
- # @see http://www.w3.org/TR/xpath-functions/#func-matches
13
+ # @see https://www.w3.org/TR/sparql11-query/#funcex-regex
14
+ # @see https://www.w3.org/TR/xpath-functions/#func-matches
15
15
  class Regex < Operator::Ternary
16
16
  include Evaluatable
17
17
 
@@ -43,17 +43,17 @@ module SPARQL; module Algebra
43
43
  # @raise [TypeError] if any operand is unbound
44
44
  # @raise [TypeError] if any operand is not a simple literal
45
45
  def apply(text, pattern, flags = RDF::Literal(''))
46
- # @see http://www.w3.org/TR/xpath-functions/#regex-syntax
46
+ # @see https://www.w3.org/TR/xpath-functions/#regex-syntax
47
47
  raise TypeError, "expected a plain RDF::Literal, but got #{text.inspect}" unless text.is_a?(RDF::Literal) && text.plain?
48
48
  text = text.to_s
49
49
  # TODO: validate text syntax
50
50
 
51
- # @see http://www.w3.org/TR/xpath-functions/#regex-syntax
51
+ # @see https://www.w3.org/TR/xpath-functions/#regex-syntax
52
52
  raise TypeError, "expected a plain RDF::Literal, but got #{pattern.inspect}" unless pattern.is_a?(RDF::Literal) && pattern.plain?
53
53
  pattern = pattern.to_s
54
54
  # TODO: validate pattern syntax
55
55
 
56
- # @see http://www.w3.org/TR/xpath-functions/#flags
56
+ # @see https://www.w3.org/TR/xpath-functions/#flags
57
57
  raise TypeError, "expected a plain RDF::Literal, but got #{flags.inspect}" unless flags.is_a?(RDF::Literal) && flags.plain?
58
58
  flags = flags.to_s
59
59
  # TODO: validate flag syntax
@@ -10,8 +10,8 @@ module SPARQL; module Algebra
10
10
  # (extend ((?new (replace ?str "[^a-z0-9]" "-")))
11
11
  # (bgp (triple ?s :str ?str)))))
12
12
  #
13
- # @see http://www.w3.org/TR/sparql11-query/#funcex-replace
14
- # @see http://www.w3.org/TR/xpath-functions/#func-replace
13
+ # @see https://www.w3.org/TR/sparql11-query/#funcex-replace
14
+ # @see https://www.w3.org/TR/xpath-functions/#func-replace
15
15
  class Replace < Operator::Quaternary
16
16
  include Evaluatable
17
17
 
@@ -72,7 +72,7 @@ module SPARQL; module Algebra
72
72
  # Remove the optional argument.
73
73
  #
74
74
  # @return [Array] `self`
75
- # @see http://openjena.org/wiki/SSE
75
+ # @see https://openjena.org/wiki/SSE
76
76
  def to_sxp_bin
77
77
  [NAME] + operands.reject {|o| o.to_s == ""}
78
78
  end