Class: SPARQL::Algebra::Operator::Exists
- Inherits:
-
Unary
- Object
- SPARQL::Algebra::Operator
- Unary
- SPARQL::Algebra::Operator::Exists
- Includes:
- Evaluatable
- Defined in:
- lib/sparql/algebra/operator/exists.rb
Overview
The SPARQL logical ‘exists` operator.
There is a filter operator EXISTS that takes a graph pattern. EXISTS returns ‘true`/`false` depending on whether the pattern matches the dataset given the bindings in the current group graph pattern, the dataset and the active graph at this point in the query evaluation. No additional binding of variables occurs. The `NOT EXISTS` form translates into `fn:not(EXISTS…)`.
- 125
-
ExistsFunc ::= ‘EXISTS’ GroupGraphPattern
Constant Summary collapse
- NAME =
[:exists]
Constants inherited from Unary
Constants inherited from SPARQL::Algebra::Operator
Constants included from Expression
Instance Attribute Summary
Attributes inherited from SPARQL::Algebra::Operator
Instance Method Summary collapse
-
#evaluate(bindings, **options) ⇒ RDF::Literal::Boolean
Exvaluating this operator executes the query in the first operator passing in each existing bindings.
-
#to_sparql(top_level: true, **options) ⇒ String
Returns a partial SPARQL grammar for this operator.
Methods included from Evaluatable
#apply, #memoize, #replace_aggregate!, #replace_vars!
Methods inherited from Unary
Methods inherited from SPARQL::Algebra::Operator
#aggregate?, arity, #base_uri, base_uri, base_uri=, #bind, #constant?, #deep_dup, #each_descendant, #eql?, #evaluatable?, evaluate, #executable?, #first_ancestor, for, #initialize, #inspect, #mergable?, #ndvars, #node?, #operand, #optimize, #optimize!, #parent, #parent=, #prefixes, prefixes, prefixes=, #rewrite, to_sparql, #to_sxp, #to_sxp_bin, #validate!, #variable?, #variables, #vars
Methods included from Expression
cast, #constant?, 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::Unary
Instance Method Details
#evaluate(bindings, **options) ⇒ RDF::Literal::Boolean
Exvaluating this operator executes the query in the first operator passing in each existing bindings.
40 41 42 43 44 45 |
# File 'lib/sparql/algebra/operator/exists.rb', line 40 def evaluate(bindings, **) queryable = [:queryable] !operand(0).execute(queryable, solutions: RDF::Query::Solutions(bindings), depth: [:depth].to_i + 1, **).empty? end |
#to_sparql(top_level: true, **options) ⇒ String
Returns a partial SPARQL grammar for this operator.
54 55 56 57 58 |
# File 'lib/sparql/algebra/operator/exists.rb', line 54 def to_sparql(top_level: true, **) "EXISTS {\n" + operands.last.to_sparql(top_level: false, **) + "\n}" end |