Module: SHACL
- Defined in:
 - lib/shacl.rb,
lib/shacl/format.rb,
lib/shacl/shapes.rb,
lib/shacl/algebra.rb,
lib/shacl/version.rb,
lib/shacl/validation_report.rb,
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
- 
  
    
      .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. - 
  
    
      .from_queryable(queryable, **options)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Retrieve shapes from a sh:shapesGraph reference within queryable.
 - 
  
    
      .get_shapes(shapes_graph, **options)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Transform the given Shapes Graph into a set of executable shapes.
 - 
  
    
      .open(input, **options)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    
Parse a given resource into a Shapes Graph.
 
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.
      69 70 71 72 73 74 75 76 77 78  | 
    
      # File 'lib/shacl.rb', line 69 def self.execute(input, queryable = nil, **) queryable = queryable || RDF::Graph.new shapes = if input self.open(input, **) else Shapes.from_queryable(queryable) end shapes.execute(queryable, **) end  | 
  
.from_queryable(queryable, **options) ⇒ Object
Retrieve shapes from a sh:shapesGraph reference within queryable
      52 53 54  | 
    
      # File 'lib/shacl.rb', line 52 def self.from_queryable(queryable, **) Shapes.from_queryable(queryable, **) end  | 
  
.get_shapes(shapes_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 'lib/shacl.rb', line 24 def self.get_shapes(shapes_graph, **) Shapes.from_graph(shapes_graph, **) end  | 
  
.open(input, **options) ⇒ Object
Parse a given resource into a Shapes Graph.
      35 36 37 38 39 40 41 42 43  | 
    
      # File 'lib/shacl.rb', line 35 def self.open(input, **) # Create graph backed by repo to allow a graph_name graph = RDF::Graph.load(input, graph_name: RDF::URI(input), data: RDF::Repository.new) self.get_shapes(graph, loaded_graphs: [RDF::URI(input, canonicalize: true)], **) end  |