Class: SPARQL::Algebra::Operator::Compare
- Includes:
- Evaluatable
- Defined in:
- lib/sparql/algebra/operator/compare.rb
Overview
A SPARQL relational <=> comparison operator.
Direct Known Subclasses
Equal, GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqual
Constant Summary collapse
- NAME =
:<=>
Instance Method Summary collapse
-
#apply(left, right, **options) ⇒ RDF::Literal::Integer
Returns -1, 0, or 1, depending on whether the first operand is respectively less than, equal to, or greater than the second operand.
-
#to_sparql(**options) ⇒ String
Returns a partial SPARQL grammar for this operator.
Methods included from Evaluatable
#evaluate, #memoize, #replace_aggregate!, #replace_vars!
Instance Method Details
#apply(left, right, **options) ⇒ RDF::Literal::Integer
Returns -1, 0, or 1, depending on whether the first operand is respectively less than, equal to, or greater than the second operand.
SPARQL also fixes an order between some kinds of RDF terms that would not otherwise be ordered:
(Lowest) no value assigned to the variable or expression in this solution.
Blank nodes
IRIs
RDF literals
34 35 36 |
# File 'lib/sparql/algebra/operator/compare.rb', line 34 def apply(left, right, **) RDF::Literal(spaceship(left, right, **)) end |
#to_sparql(**options) ⇒ String
Returns a partial SPARQL grammar for this operator.
43 44 45 |
# File 'lib/sparql/algebra/operator/compare.rb', line 43 def to_sparql(**) "(#{operands.first.to_sparql(**options)} #{self.class.const_get(:NAME)} #{operands.last.to_sparql(**options)})" end |