module RDF::Mutable
Public Class Methods
add_entailment(method, proc)
click to toggle source
Add an entailment method. The method accepts no arguments, and returns or yields an array of values associated with the particular entailment method @param [Symbol] method @param [Proc] proc
# File lib/rdf/reasoner/extensions.rb, line 194 def add_entailment(method, proc) @@entailments[method] = proc end
Public Instance Methods
entail(*rules, &block)
click to toggle source
Return a new mutable, composed of original and entailed statements
@param [Array<Symbol>] rules Registered entailment method(s) @return [RDF::Mutable] @see [RDF::Enumerable#entail]
# File lib/rdf/reasoner/extensions.rb, line 204 def entail(*rules, &block) self.dup.entail!(*rules) end
entail!(*rules, &block)
click to toggle source
Add entailed statements to the mutable
@param [Array<Symbol>] rules Registered entailment method(s) @return [RDF::Mutable] @see [RDF::Enumerable#entail]
# File lib/rdf/reasoner/extensions.rb, line 213 def entail!(*rules, &block) rules = %w(subClassOf subPropertyOf domain range).map(&:to_sym) if rules.empty? statements = [] self.each do |statement| rules.each do |rule| statement.entail(rule) do |st| statements << st end end end self.insert(*statements) self end