lib/sparql/algebra/operator/is_literal.rb in sparql-3.1.8 vs lib/sparql/algebra/operator/is_literal.rb in sparql-3.2.0
- old
+ new
@@ -1,11 +1,20 @@
module SPARQL; module Algebra
class Operator
##
# The SPARQL `isLiteral` operator.
#
- # @example
+ # [121] BuiltInCall ::= ... | 'isLiteral' '(' Expression ')'
+ #
+ # @example SPARQL Grammar
+ # PREFIX : <http://example.org/things#>
+ # SELECT ?x ?v WHERE {
+ # ?x :p ?v .
+ # FILTER isLiteral(?v) .
+ # }
+ #
+ # @example SSE
# (prefix ((xsd: <http://www.w3.org/2001/XMLSchema#>)
# (: <http://example.org/things#>))
# (project (?x ?v)
# (filter (isLiteral ?v)
# (bgp (triple ?x :p ?v)))))
@@ -28,9 +37,18 @@
case term
when RDF::Literal then RDF::Literal::TRUE
when RDF::Term then RDF::Literal::FALSE
else raise TypeError, "expected an RDF::Term, but got #{term.inspect}"
end
+ end
+
+ ##
+ #
+ # Returns a partial SPARQL grammar for this operator.
+ #
+ # @return [String]
+ def to_sparql(**options)
+ "isLiteral(" + operands.first.to_sparql(**options) + ")"
end
end # IsLiteral
end # Operator
end; end # SPARQL::Algebra