lib/rdf/reasoner/rdfs.rb in rdf-reasoner-0.5.3 vs lib/rdf/reasoner/rdfs.rb in rdf-reasoner-0.6.0

- old
+ new

@@ -72,11 +72,11 @@ statements = [] if self.predicate == RDF.type if term = (RDF::Vocabulary.find_term(self.object) rescue nil) term._entail_subClassOf do |t| next if t.node? # Don't entail BNodes - statements << RDF::Statement(self.to_h.merge(object: t, inferred: true)) + statements << RDF::Statement(**self.to_h.merge(object: t, inferred: true)) end end #$stderr.puts("subClassf(#{self.predicate.pname}): #{statements.map(&:object).map {|r| r.respond_to?(:pname) ? r.pname : r.to_ntriples}}}") end statements.each {|s| yield s} if block_given? @@ -141,11 +141,11 @@ terms when RDF::Statement statements = [] if term = (RDF::Vocabulary.find_term(self.predicate) rescue nil) term._entail_subPropertyOf do |t| - statements << RDF::Statement(self.to_h.merge(predicate: t, inferred: true)) + statements << RDF::Statement(**self.to_h.merge(predicate: t, inferred: true)) end #$stderr.puts("subPropertyOf(#{self.predicate.pname}): #{statements.map(&:object).map {|r| r.respond_to?(:pname) ? r.pname : r.to_ntriples}}}") end statements.each {|s| yield s} if block_given? statements @@ -206,11 +206,11 @@ when RDF::Statement statements = [] if term = (RDF::Vocabulary.find_term(self.predicate) rescue nil) term.domain.each do |t| next if t.node? # Don't entail BNodes - statements << RDF::Statement(self.to_h.merge(predicate: RDF.type, object: t, inferred: true)) + statements << RDF::Statement(**self.to_h.merge(predicate: RDF.type, object: t, inferred: true)) end end #$stderr.puts("domain(#{self.predicate.pname}): #{statements.map(&:object).map {|r| r.respond_to?(:pname) ? r.pname : r.to_ntriples}}}") statements.each {|s| yield s} if block_given? statements @@ -227,11 +227,11 @@ when RDF::Statement statements = [] if object.resource? && term = (RDF::Vocabulary.find_term(self.predicate) rescue nil) term.range.each do |t| next if t.node? # Don't entail BNodes - statements << RDF::Statement(self.to_h.merge(subject: self.object, predicate: RDF.type, object: t, inferred: true)) + statements << RDF::Statement(**self.to_h.merge(subject: self.object, predicate: RDF.type, object: t, inferred: true)) end end #$stderr.puts("range(#{self.predicate.pname}): #{statements.map(&:object).map {|r| r.respond_to?(:pname) ? r.pname : r.to_ntriples}}") statements.each {|s| yield s} if block_given? statements @@ -247,17 +247,17 @@ # @param [RDF::Resource] resource # @param [RDF::Queryable] queryable # @param [Hash{Symbol => Object}] options ({}) # @option options [Array<RDF::Vocabulary::Term>] :types # Fully entailed types of resource, if not provided, they are queried - def domain_compatible_rdfs?(resource, queryable, options = {}) + def domain_compatible_rdfs?(resource, queryable, **options) raise RDF::Reasoner::Error, "#{self} can't get domains" unless property? domains = Array(self.domain).reject(&:node?) - [RDF::OWL.Thing, RDF::RDFS.Resource] # Fully entailed types of the resource types = options.fetch(:types) do - queryable.query(subject: resource, predicate: RDF.type). + queryable.query({subject: resource, predicate: RDF.type}). map {|s| (t = (RDF::Vocabulary.find_term(s.object)) rescue nil) && t.entail(:subClassOf)}. flatten. uniq. compact end unless domains.empty? @@ -274,11 +274,11 @@ # @param [RDF::Resource] resource # @param [RDF::Queryable] queryable # @param [Hash{Symbol => Object}] options ({}) # @option options [Array<RDF::Vocabulary::Term>] :types # Fully entailed types of resource, if not provided, they are queried - def range_compatible_rdfs?(resource, queryable, options = {}) + def range_compatible_rdfs?(resource, queryable, **options) raise RDF::Reasoner::Error, "#{self} can't get ranges" unless property? if !(ranges = Array(self.range).reject(&:node?) - [RDF::OWL.Thing, RDF::RDFS.Resource]).empty? if resource.literal? ranges.all? do |range| if [RDF::RDFS.Literal, RDF.XMLLiteral, RDF.HTML].include?(range) @@ -335,10 +335,10 @@ end end else # Fully entailed types of the resource types = options.fetch(:types) do - queryable.query(subject: resource, predicate: RDF.type). + queryable.query({subject: resource, predicate: RDF.type}). map {|s| (t = (RDF::Vocabulary.find_term(s.object) rescue nil)) && t.entail(:subClassOf)}. flatten. uniq. compact end