Module: ShEx::Algebra::Satisfiable

Included in:
And, External, NodeConstraint, Not, Or, Schema, Shape, ShapeRef
Defined in:
lib/shex/algebra/satisfiable.rb

Overview

Implements ‘satisfies?` and `not_satisfies?`

Instance Method Summary collapse

Instance Method Details

#not_satisfies?(n) ⇒ Boolean Also known as: notSatisfies?

Satisfies method

Parameters:

  • n (RDF::Resource)

Returns:

  • (Boolean)

    ‘true` if not satisfied, `false` if it does not apply

Raises:

See Also:



23
24
25
26
27
28
29
30
31
# File 'lib/shex/algebra/satisfiable.rb', line 23

def not_satisfies?(n)
  begin
    satisfies?(n)
  rescue ShEx::NotSatisfied => e
    log_recover(self.class.const_get(:NAME), "ignore error: #{e.message}", depth: options.fetch(:depth, 0))
    return true  # Expected it to not satisfy
  end
  not_satisfied "Expression should not have matched"
end

#satisfiable?Boolean

This operator includes Satisfiable

Returns:

  • (Boolean)


42
# File 'lib/shex/algebra/satisfiable.rb', line 42

def satisfiable?; true; end

#satisfies?(n) ⇒ Boolean

Satisfies method

Parameters:

  • n (RDF::Resource)

Returns:

  • (Boolean)

    ‘true` if satisfied, `false` if it does not apply

Raises:

See Also:



13
14
15
# File 'lib/shex/algebra/satisfiable.rb', line 13

def satisfies?(n)
  raise NotImplementedError, "#satisfies? Not implemented in #{self.class}"
end

#triple_expressionsArray<TripleExpressions>

Included TripleExpressions

Returns:

  • (Array<TripleExpressions>)


37
38
39
# File 'lib/shex/algebra/satisfiable.rb', line 37

def triple_expressions
  operands.select {|o| o.is_a?(Satisfiable)}.map(&:triple_expressions).flatten.uniq
end