sparql 3.1.6 → 3.2.1

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 (145) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +31 -22
  3. data/VERSION +1 -1
  4. data/bin/sparql +14 -4
  5. data/lib/sparql/algebra/aggregate.rb +1 -1
  6. data/lib/sparql/algebra/evaluatable.rb +4 -4
  7. data/lib/sparql/algebra/expression.rb +28 -3
  8. data/lib/sparql/algebra/extensions.rb +109 -45
  9. data/lib/sparql/algebra/operator/abs.rb +23 -3
  10. data/lib/sparql/algebra/operator/add.rb +21 -2
  11. data/lib/sparql/algebra/operator/alt.rb +26 -2
  12. data/lib/sparql/algebra/operator/and.rb +25 -3
  13. data/lib/sparql/algebra/operator/asc.rb +20 -1
  14. data/lib/sparql/algebra/operator/ask.rb +17 -1
  15. data/lib/sparql/algebra/operator/avg.rb +20 -2
  16. data/lib/sparql/algebra/operator/base.rb +18 -1
  17. data/lib/sparql/algebra/operator/bgp.rb +13 -1
  18. data/lib/sparql/algebra/operator/bnode.rb +34 -11
  19. data/lib/sparql/algebra/operator/bound.rb +22 -1
  20. data/lib/sparql/algebra/operator/ceil.rb +26 -3
  21. data/lib/sparql/algebra/operator/clear.rb +26 -2
  22. data/lib/sparql/algebra/operator/coalesce.rb +33 -11
  23. data/lib/sparql/algebra/operator/compare.rb +48 -40
  24. data/lib/sparql/algebra/operator/concat.rb +26 -2
  25. data/lib/sparql/algebra/operator/construct.rb +29 -6
  26. data/lib/sparql/algebra/operator/contains.rb +25 -3
  27. data/lib/sparql/algebra/operator/copy.rb +19 -2
  28. data/lib/sparql/algebra/operator/count.rb +53 -7
  29. data/lib/sparql/algebra/operator/create.rb +20 -2
  30. data/lib/sparql/algebra/operator/dataset.rb +27 -2
  31. data/lib/sparql/algebra/operator/datatype.rb +26 -7
  32. data/lib/sparql/algebra/operator/day.rb +24 -6
  33. data/lib/sparql/algebra/operator/delete.rb +29 -2
  34. data/lib/sparql/algebra/operator/delete_data.rb +23 -2
  35. data/lib/sparql/algebra/operator/delete_where.rb +24 -2
  36. data/lib/sparql/algebra/operator/desc.rb +20 -1
  37. data/lib/sparql/algebra/operator/describe.rb +27 -4
  38. data/lib/sparql/algebra/operator/distinct.rb +20 -3
  39. data/lib/sparql/algebra/operator/divide.rb +27 -3
  40. data/lib/sparql/algebra/operator/drop.rb +27 -3
  41. data/lib/sparql/algebra/operator/encode_for_uri.rb +23 -3
  42. data/lib/sparql/algebra/operator/equal.rb +13 -3
  43. data/lib/sparql/algebra/operator/exists.rb +28 -4
  44. data/lib/sparql/algebra/operator/exprlist.rb +15 -2
  45. data/lib/sparql/algebra/operator/extend.rb +64 -6
  46. data/lib/sparql/algebra/operator/filter.rb +27 -5
  47. data/lib/sparql/algebra/operator/floor.rb +26 -3
  48. data/lib/sparql/algebra/operator/function_call.rb +64 -0
  49. data/lib/sparql/algebra/operator/graph.rb +69 -6
  50. data/lib/sparql/algebra/operator/greater_than.rb +14 -4
  51. data/lib/sparql/algebra/operator/greater_than_or_equal.rb +14 -4
  52. data/lib/sparql/algebra/operator/group.rb +105 -8
  53. data/lib/sparql/algebra/operator/group_concat.rb +44 -8
  54. data/lib/sparql/algebra/operator/hours.rb +24 -6
  55. data/lib/sparql/algebra/operator/if.rb +20 -3
  56. data/lib/sparql/algebra/operator/in.rb +18 -1
  57. data/lib/sparql/algebra/operator/insert.rb +24 -2
  58. data/lib/sparql/algebra/operator/insert_data.rb +23 -2
  59. data/lib/sparql/algebra/operator/iri.rb +22 -5
  60. data/lib/sparql/algebra/operator/is_blank.rb +21 -4
  61. data/lib/sparql/algebra/operator/is_iri.rb +21 -4
  62. data/lib/sparql/algebra/operator/is_literal.rb +21 -4
  63. data/lib/sparql/algebra/operator/is_numeric.rb +23 -6
  64. data/lib/sparql/algebra/operator/is_triple.rb +33 -1
  65. data/lib/sparql/algebra/operator/join.rb +56 -1
  66. data/lib/sparql/algebra/operator/lang.rb +26 -1
  67. data/lib/sparql/algebra/operator/lang_matches.rb +23 -2
  68. data/lib/sparql/algebra/operator/lcase.rb +23 -3
  69. data/lib/sparql/algebra/operator/left_join.rb +42 -1
  70. data/lib/sparql/algebra/operator/less_than.rb +14 -4
  71. data/lib/sparql/algebra/operator/less_than_or_equal.rb +14 -4
  72. data/lib/sparql/algebra/operator/load.rb +25 -2
  73. data/lib/sparql/algebra/operator/max.rb +20 -2
  74. data/lib/sparql/algebra/operator/md5.rb +23 -6
  75. data/lib/sparql/algebra/operator/min.rb +22 -4
  76. data/lib/sparql/algebra/operator/minus.rb +65 -7
  77. data/lib/sparql/algebra/operator/minutes.rb +24 -6
  78. data/lib/sparql/algebra/operator/modify.rb +41 -5
  79. data/lib/sparql/algebra/operator/month.rb +24 -6
  80. data/lib/sparql/algebra/operator/move.rb +20 -2
  81. data/lib/sparql/algebra/operator/multiply.rb +27 -4
  82. data/lib/sparql/algebra/operator/negate.rb +24 -4
  83. data/lib/sparql/algebra/operator/not.rb +25 -4
  84. data/lib/sparql/algebra/operator/not_equal.rb +16 -1
  85. data/lib/sparql/algebra/operator/notexists.rb +30 -6
  86. data/lib/sparql/algebra/operator/notin.rb +20 -3
  87. data/lib/sparql/algebra/operator/notoneof.rb +21 -2
  88. data/lib/sparql/algebra/operator/now.rb +25 -6
  89. data/lib/sparql/algebra/operator/object.rb +33 -1
  90. data/lib/sparql/algebra/operator/or.rb +26 -3
  91. data/lib/sparql/algebra/operator/order.rb +71 -2
  92. data/lib/sparql/algebra/operator/path.rb +29 -2
  93. data/lib/sparql/algebra/operator/path_opt.rb +21 -2
  94. data/lib/sparql/algebra/operator/path_plus.rb +21 -2
  95. data/lib/sparql/algebra/operator/path_star.rb +20 -2
  96. data/lib/sparql/algebra/operator/plus.rb +43 -4
  97. data/lib/sparql/algebra/operator/predicate.rb +33 -1
  98. data/lib/sparql/algebra/operator/prefix.rb +24 -3
  99. data/lib/sparql/algebra/operator/project.rb +69 -5
  100. data/lib/sparql/algebra/operator/rand.rb +31 -3
  101. data/lib/sparql/algebra/operator/reduced.rb +20 -3
  102. data/lib/sparql/algebra/operator/regex.rb +27 -19
  103. data/lib/sparql/algebra/operator/replace.rb +27 -7
  104. data/lib/sparql/algebra/operator/reverse.rb +31 -2
  105. data/lib/sparql/algebra/operator/round.rb +26 -3
  106. data/lib/sparql/algebra/operator/same_term.rb +25 -7
  107. data/lib/sparql/algebra/operator/sample.rb +33 -9
  108. data/lib/sparql/algebra/operator/seconds.rb +24 -6
  109. data/lib/sparql/algebra/operator/seq.rb +20 -2
  110. data/lib/sparql/algebra/operator/sequence.rb +4 -11
  111. data/lib/sparql/algebra/operator/sha1.rb +19 -2
  112. data/lib/sparql/algebra/operator/sha256.rb +19 -2
  113. data/lib/sparql/algebra/operator/sha384.rb +19 -2
  114. data/lib/sparql/algebra/operator/sha512.rb +19 -2
  115. data/lib/sparql/algebra/operator/slice.rb +27 -5
  116. data/lib/sparql/algebra/operator/str.rb +22 -2
  117. data/lib/sparql/algebra/operator/strafter.rb +26 -3
  118. data/lib/sparql/algebra/operator/strbefore.rb +26 -3
  119. data/lib/sparql/algebra/operator/strdt.rb +23 -2
  120. data/lib/sparql/algebra/operator/strends.rb +26 -4
  121. data/lib/sparql/algebra/operator/strlang.rb +25 -7
  122. data/lib/sparql/algebra/operator/strlen.rb +24 -3
  123. data/lib/sparql/algebra/operator/strstarts.rb +26 -3
  124. data/lib/sparql/algebra/operator/struuid.rb +30 -10
  125. data/lib/sparql/algebra/operator/subject.rb +33 -1
  126. data/lib/sparql/algebra/operator/substr.rb +24 -3
  127. data/lib/sparql/algebra/operator/subtract.rb +29 -3
  128. data/lib/sparql/algebra/operator/sum.rb +25 -7
  129. data/lib/sparql/algebra/operator/table.rb +76 -4
  130. data/lib/sparql/algebra/operator/timezone.rb +24 -6
  131. data/lib/sparql/algebra/operator/tz.rb +23 -6
  132. data/lib/sparql/algebra/operator/ucase.rb +24 -3
  133. data/lib/sparql/algebra/operator/union.rb +29 -6
  134. data/lib/sparql/algebra/operator/update.rb +46 -4
  135. data/lib/sparql/algebra/operator/using.rb +49 -2
  136. data/lib/sparql/algebra/operator/uuid.rb +28 -9
  137. data/lib/sparql/algebra/operator/with.rb +38 -4
  138. data/lib/sparql/algebra/operator/year.rb +24 -6
  139. data/lib/sparql/algebra/operator.rb +135 -14
  140. data/lib/sparql/algebra/sxp_extensions.rb +3 -3
  141. data/lib/sparql/algebra.rb +20 -3
  142. data/lib/sparql/grammar/meta.rb +1103 -907
  143. data/lib/sparql/grammar/parser11.rb +63 -56
  144. metadata +43 -29
  145. data/lib/sparql/algebra/operator/triple.rb +0 -27
@@ -197,7 +197,7 @@ module SPARQL::Grammar
197
197
  # [2] Query ::= Prologue
198
198
  # ( SelectQuery | ConstructQuery | DescribeQuery | AskQuery )
199
199
  production(:Query) do |input, data, callback|
200
- query = data[:query].first
200
+ query = data[:query].first if data[:query]
201
201
 
202
202
  # Add prefix
203
203
  if data[:PrefixDecl]
@@ -754,7 +754,7 @@ module SPARQL::Grammar
754
754
  end
755
755
  end
756
756
 
757
- # [65] DataBlockValue ::= EmbTD | iri | RDFLiteral | NumericLiteral | BooleanLiteral | 'UNDEF'
757
+ # [65] DataBlockValue ::= QuotedTriple | iri | RDFLiteral | NumericLiteral | BooleanLiteral | 'UNDEF'
758
758
  production(:DataBlockValue) do |input, data, callback|
759
759
  add_prod_datum :DataBlockValue, data.values.first
760
760
  end
@@ -806,7 +806,7 @@ module SPARQL::Grammar
806
806
 
807
807
  # [70] FunctionCall ::= iri ArgList
808
808
  production(:FunctionCall) do |input, data, callback|
809
- add_prod_data(:Function, Array(data[:iri]) + data[:ArgList])
809
+ add_prod_data(:Function, SPARQL::Algebra::Operator::FunctionCall.new(data[:iri], *data[:ArgList]))
810
810
  end
811
811
 
812
812
  # [71] ArgList ::= NIL
@@ -833,7 +833,7 @@ module SPARQL::Grammar
833
833
  add_prod_datum(:ConstructTemplate, data[:ConstructTemplate])
834
834
  end
835
835
 
836
- # [75] TriplesSameSubject ::= VarOrTermOrEmbTP PropertyListNotEmpty
836
+ # [75] TriplesSameSubject ::= VarOrTermOrQuotedTP PropertyListNotEmpty
837
837
  # | TriplesNode PropertyList
838
838
  production(:TriplesSameSubject) do |input, data, callback|
839
839
  add_prod_datum(:pattern, data[:pattern])
@@ -842,8 +842,8 @@ module SPARQL::Grammar
842
842
  # [77] PropertyListNotEmpty ::= Verb ObjectList
843
843
  # ( ';' ( Verb ObjectList )? )*
844
844
  start_production(:PropertyListNotEmpty) do |input, data, callback|
845
- subject = input[:VarOrTermOrEmbTP] || input[:TriplesNode] || input[:GraphNode]
846
- error(nil, "Expected VarOrTermOrEmbTP or TriplesNode or GraphNode", production: :PropertyListNotEmpty) if validate? && !subject
845
+ subject = input[:VarOrTermOrQuotedTP] || input[:TriplesNode] || input[:GraphNode]
846
+ error(nil, "Expected VarOrTermOrQuotedTP or TriplesNode or GraphNode", production: :PropertyListNotEmpty) if validate? && !subject
847
847
  data[:Subject] = subject
848
848
  end
849
849
  production(:PropertyListNotEmpty) do |input, data, callback|
@@ -899,7 +899,7 @@ module SPARQL::Grammar
899
899
  add_prod_datum(:pattern, data[:pattern])
900
900
  end
901
901
 
902
- # [81] TriplesSameSubjectPath ::= VarOrTermOrEmbTP PropertyListPathNotEmpty | TriplesNode PropertyListPath
902
+ # [81] TriplesSameSubjectPath ::= VarOrTermOrQuotedTP PropertyListPathNotEmpty | TriplesNode PropertyListPath
903
903
  production(:TriplesSameSubjectPath) do |input, data, callback|
904
904
  add_prod_datum(:pattern, data[:pattern])
905
905
  add_prod_datum(:path, data[:path])
@@ -907,8 +907,8 @@ module SPARQL::Grammar
907
907
 
908
908
  # [83] PropertyListPathNotEmpty ::= ( VerbPath | VerbSimple ) ObjectList ( ';' ( ( VerbPath | VerbSimple ) ObjectList )? )*
909
909
  start_production(:PropertyListPathNotEmpty) do |input, data, callback|
910
- subject = input[:VarOrTermOrEmbTP] || input[:TriplesNode] || input[:GraphNode]
911
- error(nil, "Expected VarOrTermOrEmbTP, got nothing", production: :PropertyListPathNotEmpty) if validate? && !subject
910
+ subject = input[:VarOrTermOrQuotedTP] || input[:TriplesNode] || input[:GraphNode]
911
+ error(nil, "Expected VarOrTermOrQuotedTP, got nothing", production: :PropertyListPathNotEmpty) if validate? && !subject
912
912
  data[:Subject] = subject
913
913
  end
914
914
  production(:PropertyListPathNotEmpty) do |input, data, callback|
@@ -954,7 +954,7 @@ module SPARQL::Grammar
954
954
  data[:Verb] = Array(input[:Verb]).first
955
955
  end
956
956
  production(:ObjectPath) do |input, data, callback|
957
- object = data[:VarOrTermOrEmbTP] || data[:TriplesNode] || data[:GraphNode]
957
+ object = data[:VarOrTermOrQuotedTP] || data[:TriplesNode] || data[:GraphNode]
958
958
  if object
959
959
  if prod_data[:Verb]
960
960
  if data[:pattern] && data[:path]
@@ -1116,24 +1116,24 @@ module SPARQL::Grammar
1116
1116
  add_prod_datum(:path, data[:path])
1117
1117
  end
1118
1118
 
1119
- # [104] GraphNode ::= VarOrTermOrEmbTP | TriplesNode
1119
+ # [104] GraphNode ::= VarOrTermOrQuotedTP | TriplesNode
1120
1120
  production(:GraphNode) do |input, data, callback|
1121
- term = data[:VarOrTermOrEmbTP] || data[:TriplesNode]
1121
+ term = data[:VarOrTermOrQuotedTP] || data[:TriplesNode]
1122
1122
  add_prod_datum(:pattern, data[:pattern])
1123
1123
  add_prod_datum(:GraphNode, term)
1124
1124
  end
1125
1125
 
1126
- # [105] GraphNodePath ::= VarOrTermOrEmbTP | TriplesNodePath
1126
+ # [105] GraphNodePath ::= VarOrTermOrQuotedTP | TriplesNodePath
1127
1127
  production(:GraphNodePath) do |input, data, callback|
1128
- term = data[:VarOrTermOrEmbTP] || data[:TriplesNode]
1128
+ term = data[:VarOrTermOrQuotedTP] || data[:TriplesNode]
1129
1129
  add_prod_datum(:pattern, data[:pattern])
1130
1130
  add_prod_datum(:path, data[:path])
1131
1131
  add_prod_datum(:GraphNode, term)
1132
1132
  end
1133
1133
 
1134
- # [106s] VarOrTermOrEmbTP ::= Var | GraphTerm | EmbTP
1135
- production(:VarOrTermOrEmbTP) do |input, data, callback|
1136
- data.values.each {|v| add_prod_datum(:VarOrTermOrEmbTP, v)}
1134
+ # [106s] VarOrTermOrQuotedTP ::= Var | GraphTerm | EmbTP
1135
+ production(:VarOrTermOrQuotedTP) do |input, data, callback|
1136
+ data.values.each {|v| add_prod_datum(:VarOrTermOrQuotedTP, v)}
1137
1137
  end
1138
1138
 
1139
1139
  # [107] VarOrIri ::= Var | iri
@@ -1151,22 +1151,6 @@ module SPARQL::Grammar
1151
1151
  data[:NIL])
1152
1152
  end
1153
1153
 
1154
- # [174] EmbTP ::= '<<' EmbSubjectOrObject Verb EmbSubjectOrObject '>>'
1155
- production(:EmbTP) do |input, data, callback|
1156
- subject, object = data[:EmbSubjectOrObject]
1157
- predicate = data[:Verb]
1158
- add_pattern(:EmbTP,
1159
- subject: subject,
1160
- predicate: predicate,
1161
- object: object)
1162
- end
1163
-
1164
- # [175] EmbSubjectOrObject ::= Var | BlankNode | iri | RDFLiteral
1165
- # | NumericLiteral | BooleanLiteral | EmbTP
1166
- production(:EmbSubjectOrObject) do |input, data, callback|
1167
- data.values.each {|v| add_prod_datum(:EmbSubjectOrObject, v)}
1168
- end
1169
-
1170
1154
  # [110] Expression ::= ConditionalOrExpression
1171
1155
  production(:Expression) do |input, data, callback|
1172
1156
  add_prod_datum(:Expression, data[:Expression])
@@ -1306,7 +1290,7 @@ module SPARQL::Grammar
1306
1290
  # | iriOrFunction | RDFLiteral
1307
1291
  # | NumericLiteral | BooleanLiteral
1308
1292
  # | Var
1309
- # | EmbTP
1293
+ # | ExprQuotedTP
1310
1294
  production(:PrimaryExpression) do |input, data, callback|
1311
1295
  if data[:Expression]
1312
1296
  add_prod_datum(:Expression, data[:Expression])
@@ -1453,7 +1437,7 @@ module SPARQL::Grammar
1453
1437
  production(:iriOrFunction) do |input, data, callback|
1454
1438
  if data.has_key?(:ArgList)
1455
1439
  # Function is (func arg1 arg2 ...)
1456
- add_prod_data(:Function, Array(data[:iri]) + data[:ArgList])
1440
+ add_prod_data(:Function, SPARQL::Algebra::Operator::FunctionCall.new(data[:iri], *data[:ArgList]))
1457
1441
  else
1458
1442
  input[:iri] = data[:iri]
1459
1443
  end
@@ -1492,15 +1476,38 @@ module SPARQL::Grammar
1492
1476
  add_prod_datum(:UnaryExpression, data[:UnaryExpression])
1493
1477
  end
1494
1478
 
1495
- # [177] AnnotationPattern ::= '{|' PropertyListNotEmpty '|}'
1496
- #start_production(:AnnotationPattern) do |input, data, callback|
1497
- # data[:TriplesNode] = prod_data[:TriplesNode].first
1498
- #end
1499
- #production(:AnnotationPattern) do |input, data, callback|
1500
- # add_prod_datum(:pattern, data[:pattern])
1501
- #end
1479
+ # [174] QuotedTP ::= '<<' qtSubjectOrObject Verb qtSubjectOrObject '>>'
1480
+ production(:QuotedTP) do |input, data, callback|
1481
+ subject, object = data[:qtSubjectOrObject]
1482
+ predicate = data[:Verb]
1483
+ add_pattern(:QuotedTP,
1484
+ subject: subject,
1485
+ predicate: predicate,
1486
+ object: object)
1487
+ end
1502
1488
 
1503
- # [178] AnnotationPatternPath ::= '{|' PropertyListPathNotEmpty '|}'
1489
+ # [175] QuotedTriple ::= '<<' DataValueTerm (iri | 'a') DataValueTerm '>>'
1490
+ production(:QuotedTriple) do |input, data, callback|
1491
+ subject, object = data[:DataValueTerm]
1492
+ predicate = data[:iri]
1493
+ add_pattern(:QuotedTriple,
1494
+ subject: subject,
1495
+ predicate: predicate,
1496
+ object: object)
1497
+ end
1498
+
1499
+ # [176] qtSubjectOrObject ::= Var | BlankNode | iri | RDFLiteral
1500
+ # | NumericLiteral | BooleanLiteral | QuotedTP
1501
+ production(:qtSubjectOrObject) do |input, data, callback|
1502
+ data.values.each {|v| add_prod_datum(:qtSubjectOrObject, v)}
1503
+ end
1504
+
1505
+ # [177] DataValueTerm ::= iri | RDFLiteral | NumericLiteral | BooleanLiteral | QuotedTriple
1506
+ production(:DataValueTerm) do |input, data, callback|
1507
+ add_prod_datum :DataValueTerm, data.values.first
1508
+ end
1509
+
1510
+ # [180] AnnotationPatternPath ::= '{|' PropertyListPathNotEmpty '|}'
1504
1511
  start_production(:AnnotationPatternPath) do |input, data, callback|
1505
1512
  data[:TriplesNode] = input[:TriplesNode]
1506
1513
  end
@@ -1514,21 +1521,21 @@ module SPARQL::Grammar
1514
1521
  end
1515
1522
  end
1516
1523
 
1517
- # [179] EmbTD ::= '<<' DataValueTerm ( iri | 'a' ) DataValueTerm '>>'
1518
- production(:EmbTD) do |input, data, callback|
1519
- subject, object = data[:DataValueTerm]
1520
- predicate = data[:iri]
1521
- add_pattern(:EmbTD,
1524
+ # [181] ExprQuotedTP ::= '<<' ExprVarOrTerm Verb ExprVarOrTerm '>>'
1525
+ production(:ExprQuotedTP) do |input, data, callback|
1526
+ subject, object = data[:ExprVarOrTerm]
1527
+ predicate = data[:Verb]
1528
+ add_pattern(:ExprQuotedTP,
1522
1529
  subject: subject,
1523
1530
  predicate: predicate,
1524
1531
  object: object)
1525
1532
  end
1526
1533
 
1527
- # [180] DataValueTerm ::= EmbTD | iri | RDFLiteral | NumericLiteral | BooleanLiteral
1528
- production(:DataValueTerm) do |input, data, callback|
1529
- add_prod_datum :DataValueTerm, data.values.first
1534
+ # [182] ExprVarOrTerm ::= iri | RDFLiteral | NumericLiteral | BooleanLiteral | Var | ExprQuotedTP
1535
+ production(:ExprVarOrTerm) do |input, data, callback|
1536
+ data.values.each {|v| add_prod_datum(:ExprVarOrTerm, v)}
1530
1537
  end
1531
-
1538
+
1532
1539
  ##
1533
1540
  # Initializes a new parser instance.
1534
1541
  #
@@ -1805,8 +1812,8 @@ module SPARQL::Grammar
1805
1812
  value = RDF::URI(value)
1806
1813
  if base_uri && value.relative?
1807
1814
  u = base_uri.join(value)
1808
- u.lexical = "<#{value}>" unless resolve_iris?
1809
- u
1815
+ #u.lexical = "<#{value}>" unless resolve_iris?
1816
+ #u
1810
1817
  else
1811
1818
  value
1812
1819
  end
@@ -1818,8 +1825,8 @@ module SPARQL::Grammar
1818
1825
  debug {"ns(#{prefix.inspect}): base: '#{base}', suffix: '#{suffix}'"}
1819
1826
  iri = iri(base + suffix.to_s)
1820
1827
  # Cause URI to be serialized as a lexical
1821
- iri.lexical = "#{prefix}:#{suffix}" unless resolve_iris?
1822
- iri
1828
+ #iri.lexical = "#{prefix}:#{suffix}" unless resolve_iris?
1829
+ #iri
1823
1830
  end
1824
1831
 
1825
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.6
4
+ version: 3.2.1
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-03-21 00:00:00.000000000 Z
12
+ date: 2022-01-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdf
@@ -17,48 +17,48 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '3.1'
20
+ version: '3.2'
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 3.1.12
23
+ version: 3.2.3
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
28
  - - "~>"
29
29
  - !ruby/object:Gem::Version
30
- version: '3.1'
30
+ version: '3.2'
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 3.1.12
33
+ version: 3.2.3
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: rdf-aggregate-repo
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '3.1'
40
+ version: '3.2'
41
41
  type: :runtime
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.1'
47
+ version: '3.2'
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: ebnf
50
50
  requirement: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '2.1'
54
+ version: '2.2'
55
55
  type: :runtime
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.1'
61
+ version: '2.2'
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: builder
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -74,81 +74,95 @@ dependencies:
74
74
  - !ruby/object:Gem::Version
75
75
  version: '3.2'
76
76
  - !ruby/object:Gem::Dependency
77
- name: sxp
77
+ name: logger
78
78
  requirement: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.1'
82
+ version: '1.4'
83
83
  type: :runtime
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '1.1'
89
+ version: '1.4'
90
90
  - !ruby/object:Gem::Dependency
91
- name: sparql-client
91
+ name: sxp
92
92
  requirement: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '3.1'
96
+ version: '1.2'
97
97
  - - ">="
98
98
  - !ruby/object:Gem::Version
99
- version: 3.1.2
99
+ version: 1.2.1
100
100
  type: :runtime
101
101
  prerelease: false
102
102
  version_requirements: !ruby/object:Gem::Requirement
103
103
  requirements:
104
104
  - - "~>"
105
105
  - !ruby/object:Gem::Version
106
- version: '3.1'
106
+ version: '1.2'
107
107
  - - ">="
108
108
  - !ruby/object:Gem::Version
109
- version: 3.1.2
109
+ version: 1.2.1
110
+ - !ruby/object:Gem::Dependency
111
+ name: sparql-client
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '3.2'
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '3.2'
110
124
  - !ruby/object:Gem::Dependency
111
125
  name: rdf-xsd
112
126
  requirement: !ruby/object:Gem::Requirement
113
127
  requirements:
114
128
  - - "~>"
115
129
  - !ruby/object:Gem::Version
116
- version: '3.1'
130
+ version: '3.2'
117
131
  type: :runtime
118
132
  prerelease: false
119
133
  version_requirements: !ruby/object:Gem::Requirement
120
134
  requirements:
121
135
  - - "~>"
122
136
  - !ruby/object:Gem::Version
123
- version: '3.1'
137
+ version: '3.2'
124
138
  - !ruby/object:Gem::Dependency
125
139
  name: sinatra
126
140
  requirement: !ruby/object:Gem::Requirement
127
141
  requirements:
128
142
  - - "~>"
129
143
  - !ruby/object:Gem::Version
130
- version: '2.0'
144
+ version: '2.1'
131
145
  type: :development
132
146
  prerelease: false
133
147
  version_requirements: !ruby/object:Gem::Requirement
134
148
  requirements:
135
149
  - - "~>"
136
150
  - !ruby/object:Gem::Version
137
- version: '2.0'
151
+ version: '2.1'
138
152
  - !ruby/object:Gem::Dependency
139
153
  name: rack
140
154
  requirement: !ruby/object:Gem::Requirement
141
155
  requirements:
142
156
  - - "~>"
143
157
  - !ruby/object:Gem::Version
144
- version: '2.0'
158
+ version: '2.2'
145
159
  type: :development
146
160
  prerelease: false
147
161
  version_requirements: !ruby/object:Gem::Requirement
148
162
  requirements:
149
163
  - - "~>"
150
164
  - !ruby/object:Gem::Version
151
- version: '2.0'
165
+ version: '2.2'
152
166
  - !ruby/object:Gem::Dependency
153
167
  name: rack-test
154
168
  requirement: !ruby/object:Gem::Requirement
@@ -169,14 +183,14 @@ dependencies:
169
183
  requirements:
170
184
  - - "~>"
171
185
  - !ruby/object:Gem::Version
172
- version: '3.1'
186
+ version: '3.2'
173
187
  type: :development
174
188
  prerelease: false
175
189
  version_requirements: !ruby/object:Gem::Requirement
176
190
  requirements:
177
191
  - - "~>"
178
192
  - !ruby/object:Gem::Version
179
- version: '3.1'
193
+ version: '3.2'
180
194
  - !ruby/object:Gem::Dependency
181
195
  name: linkeddata
182
196
  requirement: !ruby/object:Gem::Requirement
@@ -297,6 +311,7 @@ files:
297
311
  - lib/sparql/algebra/operator/extend.rb
298
312
  - lib/sparql/algebra/operator/filter.rb
299
313
  - lib/sparql/algebra/operator/floor.rb
314
+ - lib/sparql/algebra/operator/function_call.rb
300
315
  - lib/sparql/algebra/operator/graph.rb
301
316
  - lib/sparql/algebra/operator/greater_than.rb
302
317
  - lib/sparql/algebra/operator/greater_than_or_equal.rb
@@ -379,7 +394,6 @@ files:
379
394
  - lib/sparql/algebra/operator/sum.rb
380
395
  - lib/sparql/algebra/operator/table.rb
381
396
  - lib/sparql/algebra/operator/timezone.rb
382
- - lib/sparql/algebra/operator/triple.rb
383
397
  - lib/sparql/algebra/operator/tz.rb
384
398
  - lib/sparql/algebra/operator/ucase.rb
385
399
  - lib/sparql/algebra/operator/union.rb
@@ -411,14 +425,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
411
425
  requirements:
412
426
  - - ">="
413
427
  - !ruby/object:Gem::Version
414
- version: '2.4'
428
+ version: '2.6'
415
429
  required_rubygems_version: !ruby/object:Gem::Requirement
416
430
  requirements:
417
431
  - - ">="
418
432
  - !ruby/object:Gem::Version
419
433
  version: '0'
420
434
  requirements: []
421
- rubygems_version: 3.2.3
435
+ rubygems_version: 3.3.3
422
436
  signing_key:
423
437
  specification_version: 4
424
438
  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)
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