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