Class: SPARQL::Algebra::Operator::Compare
- Inherits:
-
Binary
- Object
- SPARQL::Algebra::Operator
- Binary
- 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 =
:<=>
Constants inherited from Binary
Constants inherited from SPARQL::Algebra::Operator
Constants included from Expression
Instance Attribute Summary
Attributes inherited from SPARQL::Algebra::Operator
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!
Methods inherited from Binary
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::Binary
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(**)} #{self.class.const_get(:NAME)} #{operands.last.to_sparql(**)})" end |