Module: SHACL

Defined in:
vendor/bundler/ruby/3.0.0/bundler/gems/shacl-0244b4892907/lib/shacl.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/shacl-0244b4892907/lib/shacl/format.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/shacl-0244b4892907/lib/shacl/shapes.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/shacl-0244b4892907/lib/shacl/algebra.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/shacl-0244b4892907/lib/shacl/version.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/shacl-0244b4892907/lib/shacl/validation_report.rb,
vendor/bundler/ruby/3.0.0/bundler/gems/shacl-0244b4892907/lib/shacl/validation_result.rb

Overview

A SHACL runtime for RDF.rb.

Defined Under Namespace

Modules: Algebra, Refinements, VERSION Classes: Error, Format, Shapes, StructureError, ValidationReport, ValidationResult

Class Method Summary collapse

Class Method Details

.execute(input, queryable = nil, **options) ⇒ Hash{RDF::Term => Array<ValidationResult>}, SHACL::ValidationReport

The Shapes Graph, is established similar to the Data Graph, but may be nil. If nil, the Data Graph may reference a Shapes Graph thorugh an sh:shapesGraph property.

Additionally, a Shapes Graph may contain an owl:imports property referencing additional Shapes Graphs, which are resolved until no more imports are found.

Load and validate the given SHACL expression string against queriable.

Parameters:

Returns:



64
65
66
67
68
69
70
71
72
73
# File 'vendor/bundler/ruby/3.0.0/bundler/gems/shacl-0244b4892907/lib/shacl.rb', line 64

def self.execute(input, queryable = nil, **options)
  queryable = queryable || RDF::Graph.new
  shapes = if input
    self.open(input, **options)
  else
    Shapes.from_queryable(queryable)
  end

  shapes.execute(queryable, **options)
end

.from_queryable(queryable, **options) ⇒ Object

Retrieve shapes from a sh:shapesGraph reference within queryable



47
48
49
# File 'vendor/bundler/ruby/3.0.0/bundler/gems/shacl-0244b4892907/lib/shacl.rb', line 47

def self.from_queryable(queryable, **options)
  Shapes.from_queryable(queryable, **options)
end

.get_shapes(shape_graph, **options) ⇒ Object

Transform the given Shapes Graph into a set of executable shapes.

A Shapes Graph may contain an owl:imports property referencing additional Shapes Graphs, which are resolved until no more imports are found.



24
25
26
# File 'vendor/bundler/ruby/3.0.0/bundler/gems/shacl-0244b4892907/lib/shacl.rb', line 24

def self.get_shapes(shape_graph, **options)
  Shapes.from_graph(shape_graph, **options)
end

.open(input, **options) ⇒ Object

Parse a given resource into a Shapes Graph.

Parameters:

  • input (String, IO, StringIO, #to_s)


35
36
37
38
# File 'vendor/bundler/ruby/3.0.0/bundler/gems/shacl-0244b4892907/lib/shacl.rb', line 35

def self.open(input, **options)
  graph = RDF::Graph.load(input, **options)
  self.get_shapes(graph, loaded_graphs: [RDF::URI(input, canonicalize: true)], **options)
end