Class: SHACL::Algebra::And
- Defined in:
- lib/shacl/algebra/and.rb
Constant Summary collapse
- NAME =
:and
Constants inherited from Operator
Instance Attribute Summary
Attributes inherited from Operator
Instance Method Summary collapse
-
#conforms(node, path: nil, depth: 0, **options) ⇒ Array<SHACL::ValidationResult>
Specifies the condition that each value node conforms to all provided shapes.
Methods inherited from Operator
apply_op, #comment, #deactivated?, from_expanded_value, from_json, #id, iri, #iri, #label, #not_satisfied, parse_path, #satisfy, to_rdf, #to_sxp_bin, #type
Instance Method Details
#conforms(node, path: nil, depth: 0, **options) ⇒ Array<SHACL::ValidationResult>
Specifies the condition that each value node conforms to all provided shapes. This is comparable to conjunction and the logical “and” operator.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/shacl/algebra/and.rb', line 31 def conforms(node, path: nil, depth: 0, **) log_debug(NAME, depth: depth) {SXP::Generator.string({node: node}.to_sxp_bin)} operands.each do |op| results = op.conforms(node, depth: depth + 1, **) if !results.all?(&:conform?) return not_satisfied(focus: node, path: path, value: node, message: "node does not conform to all shapes", resultSeverity: .fetch(:severity), component: RDF::Vocab::SHACL.AndConstraintComponent, depth: depth, **) end end satisfy(focus: node, path: path, value: node, message: "node conforms to all shapes", component: RDF::Vocab::SHACL.AndConstraintComponent, depth: depth, **) end |