Class: SHACL::Algebra::XoneConstraintComponent
- Inherits:
-
ConstraintComponent
- Object
- SPARQL::Algebra::Operator
- Operator
- ConstraintComponent
- SHACL::Algebra::XoneConstraintComponent
- Defined in:
- vendor/bundler/ruby/3.3.0/bundler/gems/shacl-e638b9acc6d8/lib/shacl/algebra/xone.rb
Constant Summary collapse
- NAME =
:xone
Constants inherited from Operator
Operator::BUILTIN_KEYS, Operator::PARAMETERS
Constants included from RDF::Util::Logger
Constants inherited from SPARQL::Algebra::Operator
SPARQL::Algebra::Operator::ARITY, SPARQL::Algebra::Operator::IsURI, SPARQL::Algebra::Operator::URI
Constants included from SPARQL::Algebra::Expression
SPARQL::Algebra::Expression::PATTERN_PARENTS
Instance Attribute Summary
Attributes inherited from Operator
#graph, #options, #shapes_graph
Attributes inherited from SPARQL::Algebra::Operator
Instance Method Summary collapse
-
#conforms(node, path: nil, depth: 0, **options) ⇒ Array<SHACL::ValidationResult>
Specifies the condition that each value node conforms to exactly one of the provided shapes.
Methods inherited from ConstraintComponent
Methods inherited from Operator
add_component, apply_op, #comment, component_params, #deactivated?, from_expanded_value, from_json, #id, iri, #iri, #label, #not_satisfied, params, parse_path, #satisfy, to_rdf, #to_sxp_bin, #type
Methods included from JSON::LD::Utils
#add_value, #as_array, #as_resource, #blank_node?, #compare_values, #graph?, #has_value?, #index?, #list?, #node?, #node_or_ref?, #node_reference?, #property?, #simple_graph?, #value?
Methods included from RDF::Util::Logger
#log_debug, #log_depth, #log_error, #log_fatal, #log_info, #log_recover, #log_recovering?, #log_statistics, #log_warn, #logger
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, #valid?, #validate!, #variable?
Constructor Details
This class inherits a constructor from SPARQL::Algebra::Operator
Instance Method Details
#conforms(node, path: nil, depth: 0, **options) ⇒ Array<SHACL::ValidationResult>
Specifies the condition that each value node conforms to exactly one of the provided shapes.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'vendor/bundler/ruby/3.3.0/bundler/gems/shacl-e638b9acc6d8/lib/shacl/algebra/xone.rb', line 36 def conforms(node, path: nil, depth: 0, **) log_debug(NAME, depth: depth) {SXP::Generator.string({node: node}.to_sxp_bin)} num_conform = operands.inject(0) do |memo, op| results = op.conforms(node, depth: depth + 1, **) memo += (results.flatten.all?(&:conform?) ? 1 : 0) end case num_conform when 0 not_satisfied(focus: node, path: path, value: node, message: "node does not conform to any shape", resultSeverity: .fetch(:severity), component: RDF::Vocab::SHACL.XoneConstraintComponent, depth: depth, **) when 1 satisfy(focus: node, path: path, value: node, message: "node conforms to a single shape", component: RDF::Vocab::SHACL.XoneConstraintComponent, depth: depth, **) else not_satisfied(focus: node, path: path, value: node, message: "node conforms to #{num_conform} shapes", resultSeverity: .fetch(:severity), component: RDF::Vocab::SHACL.XoneConstraintComponent, depth: depth, **) end end |