Class: RDF::N3::Algebra::Log::Conclusion
- Inherits:
-
ResourceOperator
- Object
- SPARQL::Algebra::Operator
- SPARQL::Algebra::Operator::Binary
- ResourceOperator
- RDF::N3::Algebra::Log::Conclusion
- Defined in:
- vendor/bundler/ruby/3.3.0/bundler/gems/rdf-n3-a6ef81a7e1ce/lib/rdf/n3/algebra/log/conclusion.rb
Overview
All possible conclusions which can be drawn from a formula.
The object of this function, a formula, is the set of conclusions which can be drawn from the subject formula, by successively applying any rules it contains to the data it contains. This is equivalent to cwm's "--think" command line function. It does use built-ins, so it may for example indirectly invoke other documents, validate signatures, etc.
Constant Summary collapse
Constants included from Util::Logger
Constants inherited from SPARQL::Algebra::Operator::Binary
SPARQL::Algebra::Operator::Binary::ARITY
Constants inherited from SPARQL::Algebra::Operator
SPARQL::Algebra::Operator::ARITY, SPARQL::Algebra::Operator::IsURI
Constants included from SPARQL::Algebra::Expression
SPARQL::Algebra::Expression::PATTERN_PARENTS
Instance Attribute Summary
Attributes included from Enumerable
Attributes included from SPARQL::Algebra::Query
Attributes inherited from SPARQL::Algebra::Operator
Instance Method Summary collapse
-
#each(solutions:) {|statement| ... } ⇒ Object
Yields statements, and de-asserts
inferred
from the subject. -
#input_operand ⇒ RDF::Term
Return subject operand.
-
#resolve(resource, position:) ⇒ RDF::N3::Algebra::Formula
Evaluates this operator by creating a new formula containing the triples generated by reasoning over the input formula using think.
-
#valid?(subject, object) ⇒ Boolean
To be valid, subject must be a formula, and object a formula or variable.
Methods inherited from ResourceOperator
Methods included from Builtin
#evaluate, #hash, #rank, #to_uri
Methods included from Util::Logger
#log_debug, #log_depth, #log_error, #log_fatal, #log_info, #log_recover, #log_recovering?, #log_statistics, #log_warn, #logger
Methods included from Enumerable
add_entailment, #canonicalize, #canonicalize!, #dump, #each_graph, #each_object, #each_predicate, #each_quad, #each_statement, #each_subject, #each_term, #each_triple, #entail, #enum_graph, #enum_object, #enum_predicate, #enum_quad, #enum_statement, #enum_subject, #enum_term, #enum_triple, #graph?, #graph_names, #invalid?, #method_missing, #object?, #objects, #predicate?, #predicates, #project_graph, #quad?, #quads, #respond_to_missing?, #statement?, #statements, #subject?, #subjects, #supports?, #term?, #terms, #to_a, #to_h, #to_set, #triple?, #triples, #validate!
Methods included from Util::Aliasing::LateBound
Methods included from Isomorphic
#bijection_to, #isomorphic_with?
Methods included from Countable
Methods included from SPARQL::Algebra::Update
#execute, #graph_name=, #unshift, #variables
Methods included from SPARQL::Algebra::Query
#each_solution, #empty?, #execute, #failed?, #graph_name=, #matched?, #query_yields_boolean?, #query_yields_solutions?, #query_yields_statements?, #unshift, #variables
Methods inherited from SPARQL::Algebra::Operator::Binary
Methods inherited from SPARQL::Algebra::Operator
#aggregate?, arity, base_uri, #base_uri, base_uri=, #bind, #boolean, #constant?, #deep_dup, #each_descendant, #eql?, #evaluatable?, evaluate, #executable?, #first_ancestor, for, #formulae, #initialize, #inspect, #mergable?, #ndvars, #node?, #operand, #optimize, #optimize!, #parent, #parent=, prefixes, #prefixes, prefixes=, #rewrite, #to_binary, #to_sparql, to_sparql, #to_sxp, #to_sxp_bin, #validate!, #variable?, #variables, #vars
Methods included from SPARQL::Algebra::Expression
cast, #constant?, #evaluate, extension, extension?, extensions, for, #invalid?, new, #node?, open, #optimize, #optimize!, parse, register_extension, #to_sxp_bin, #validate!, #variable?
Constructor Details
This class inherits a constructor from SPARQL::Algebra::Operator::Binary
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class RDF::Enumerable
Instance Method Details
#each(solutions:) {|statement| ... } ⇒ Object
Yields statements, and de-asserts inferred
from the subject.
59 60 61 62 63 |
# File 'vendor/bundler/ruby/3.3.0/bundler/gems/rdf-n3-a6ef81a7e1ce/lib/rdf/n3/algebra/log/conclusion.rb', line 59 def each(solutions:, &block) super do |stmt| block.call(RDF::Statement.from(stmt.to_quad)) end end |
#input_operand ⇒ RDF::Term
Return subject operand.
48 49 50 |
# File 'vendor/bundler/ruby/3.3.0/bundler/gems/rdf-n3-a6ef81a7e1ce/lib/rdf/n3/algebra/log/conclusion.rb', line 48 def input_operand operands.first end |
#resolve(resource, position:) ⇒ RDF::N3::Algebra::Formula
Evaluates this operator by creating a new formula containing the triples generated by reasoning over the input formula using think.
The subject is evaluated into an isolated repository so that conclusions evaluated when evaluating the subject are not necessarily conclusions resulting from evaluating this operator.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'vendor/bundler/ruby/3.3.0/bundler/gems/rdf-n3-a6ef81a7e1ce/lib/rdf/n3/algebra/log/conclusion.rb', line 18 def resolve(resource, position:) return resource unless position == :subject log_depth do reasoner = RDF::N3::Reasoner.new(resource, **@options) conclusions = RDF::N3::Repository.new reasoner.execute(think: true) {|stmt| conclusions << stmt} # The result is a formula containing the conclusions form = RDF::N3::Algebra::Formula.from_enumerable(conclusions, **@options).deep_dup log_info("#{NAME} resolved") {SXP::Generator.string form.to_sxp_bin} form end end |
#valid?(subject, object) ⇒ Boolean
To be valid, subject must be a formula, and object a formula or variable.
40 41 42 |
# File 'vendor/bundler/ruby/3.3.0/bundler/gems/rdf-n3-a6ef81a7e1ce/lib/rdf/n3/algebra/log/conclusion.rb', line 40 def valid?(subject, object) subject.formula? && (object.formula? || object.is_a?(RDF::Query::Variable)) end |