Sha256: 31ac96d65a3bed1f9cb6d5d6c9edf2ebb2331524155b68442d5a293dfdf155fb
Contents?: true
Size: 1.35 KB
Versions: 5
Compression:
Stored size: 1.35 KB
Contents
module SPARQL; module Algebra class Operator ## # The SPARQL logical `exists` operator. # # @example # (prefix ((ex: <http://www.example.org/>)) # (filter (exists # (filter (notexists (bgp (triple ?s ?p ex:o2))) # (bgp (triple ?s ?p ex:o1)))) # (bgp (triple ?s ?p ex:o)))) # # @see http://www.w3.org/TR/sparql11-query/#func-abs # @see http://www.w3.org/TR/xpath-functions/#func-abs class NotExists < Operator::Unary include Evaluatable NAME = [:notexists] ## # Exvaluating this operator executes the query in the first operator passing in each existing bindings. # # @param [RDF::Query::Solution] bindings # a query solution containing zero or more variable bindings # @param [Hash{Symbol => Object}] options ({}) # options passed from query # @option options[RDF::Queryable] queryable # queryable to execute, using bindings as an initial solution. # @return [RDF::Literal::Boolean] `true` or `false` def evaluate(bindings, options = {}) solutions = RDF::Query::Solutions(bindings) queryable = options[:queryable] operand(0).execute(queryable, options.merge(:solutions => solutions)).empty? end end # NotExists end # Operator end; end # SPARQL::Algebra
Version data entries
5 entries across 5 versions & 1 rubygems