Class: SPARQL::Algebra::Operator::Now

Inherits:
Nullary show all
Includes:
Evaluatable
Defined in:
lib/sparql/algebra/operator/now.rb

Overview

The SPARQL logical now operator.

Returns an XSD dateTime value for the current query execution. All calls to this function in any one query execution must return the same value. The exact moment returned is not specified.

[121] BuiltInCall ::= ... | 'NOW' NIL

Examples:

SPARQL Grammar

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
ASK {
  BIND(NOW() AS ?n)
  FILTER(DATATYPE(?n) = xsd:dateTime)
}

SSE

(prefix ((xsd: <http://www.w3.org/2001/XMLSchema#>))
 (ask
  (filter (= (datatype ?n) xsd:dateTime)
   (extend ((?n (now)))
    (bgp)))))

See Also:

Constant Summary collapse

NAME =
:now

Constants inherited from Nullary

SPARQL::Algebra::Operator::Nullary::ARITY

Constants inherited from SPARQL::Algebra::Operator

ARITY, IsURI, URI

Constants included from Expression

Expression::PATTERN_PARENTS

Instance Attribute Summary

Attributes inherited from SPARQL::Algebra::Operator

#operands

Instance Method Summary collapse

Methods included from Evaluatable

#evaluate, #memoize, #replace_aggregate!, #replace_vars!

Methods inherited from Nullary

#initialize

Methods inherited from SPARQL::Algebra::Operator

#aggregate?, arity, #base_uri, base_uri, base_uri=, #bind, #boolean, #constant?, #deep_dup, #each_descendant, #eql?, #evaluatable?, evaluate, #executable?, #first_ancestor, for, #initialize, #inspect, #ndvars, #node?, #operand, #optimize, #optimize!, #parent, #parent=, #prefixes, prefixes, prefixes=, #rewrite, #to_binary, to_sparql, #to_sxp, #to_sxp_bin, #validate!, #variable?, #variables, #vars

Methods included from Expression

cast, #constant?, #evaluate, extension, extension?, extensions, for, #invalid?, new, #node?, open, #optimize, #optimize!, parse, register_extension, #to_sxp_bin, #valid?, #validate!, #variable?

Constructor Details

This class inherits a constructor from SPARQL::Algebra::Operator::Nullary

Instance Method Details

#apply(**options) ⇒ RDF::Literal::Double

Returns an XSD dateTime value for the current query execution. All calls to this function in any one query execution must return the same value. The exact moment returned is not specified.

Returns:

  • (RDF::Literal::Double)

    random value



36
37
38
# File 'lib/sparql/algebra/operator/now.rb', line 36

def apply(**options)
  RDF::Literal(DateTime.now)
end

#to_sparql(**options) ⇒ String

Returns a partial SPARQL grammar for this operator.

Returns:

  • (String)


45
46
47
# File 'lib/sparql/algebra/operator/now.rb', line 45

def to_sparql(**options)
  "NOW()"
end