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

Inherits:
Operator::Nullary
  • Object
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

Instance Method Summary collapse

Methods included from Evaluatable

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

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