shacl 0.2.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -6
- data/VERSION +1 -1
- data/lib/rdf/vocab/shacl.rb +1096 -1096
- data/lib/shacl/algebra/and.rb +3 -2
- data/lib/shacl/algebra/constraint_component.rb +67 -0
- data/lib/shacl/algebra/node_shape.rb +10 -16
- data/lib/shacl/algebra/not.rb +3 -2
- data/lib/shacl/algebra/operator.rb +312 -44
- data/lib/shacl/algebra/or.rb +3 -2
- data/lib/shacl/algebra/pattern.rb +43 -0
- data/lib/shacl/algebra/property_shape.rb +11 -16
- data/lib/shacl/algebra/{qualified_value_shape.rb → qualified_value.rb} +14 -8
- data/lib/shacl/algebra/shape.rb +12 -41
- data/lib/shacl/algebra/sparql_constraint.rb +160 -0
- data/lib/shacl/algebra/xone.rb +3 -2
- data/lib/shacl/algebra.rb +30 -13
- data/lib/shacl/context.rb +5 -0
- data/lib/shacl/shapes.rb +99 -14
- data/lib/shacl/validation_result.rb +22 -19
- data/lib/shacl.rb +10 -5
- metadata +36 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2b7dd0442b35171ce6feb0948022fb5bb31c41eef9517a5398b66881bbf2b4b
|
4
|
+
data.tar.gz: 5f09507e4c5b6740b0c14213cc564191aeb8d221104472f0528b92c2f80a15ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f62836052f0f075f6388eab7df05c0f249f374e257c96d6c045c023b055d05500ebc8f4a3550bd71c9e73401b781821a1f06d35f69e9edc55899f27cbab32f12
|
7
|
+
data.tar.gz: a72cdc5cc4f2ca9ca81590394f0187effc3fa2773d77a402868f960672f55267b502e136a3c77d8d0bf0d727d6ffebd17b30e7e0b2137649f9e72fd3fb09ea82
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
This is a pure-Ruby library for working with the [Shape Constraint Language][SHACL Spec] to validate the shape of [RDF][] graphs.
|
4
4
|
|
5
|
-
[![Gem Version](https://badge.fury.io/rb/shacl.
|
5
|
+
[![Gem Version](https://badge.fury.io/rb/shacl.svg)](https://badge.fury.io/rb/shacl)
|
6
6
|
[![Build Status](https://github.com/ruby-rdf/shacl/workflows/CI/badge.svg?branch=develop)](https://github.com/ruby-rdf/shacl/actions?query=workflow%3ACI)
|
7
7
|
[![Coverage Status](https://coveralls.io/repos/github/ruby-rdf/shacl/badge.svg?branch=develop)](https://coveralls.io/github/ruby-rdf/shacl?branch=develop)
|
8
8
|
[![Gitter chat](https://badges.gitter.im/ruby-rdf/rdf.png)](https://gitter.im/ruby-rdf/rdf)
|
@@ -10,7 +10,8 @@ This is a pure-Ruby library for working with the [Shape Constraint Language][SHA
|
|
10
10
|
## Features
|
11
11
|
|
12
12
|
* 100% pure Ruby with minimal dependencies and no bloat.
|
13
|
-
* Fully compatible with [SHACL][SHACL Spec]
|
13
|
+
* Fully compatible with SHACL Core [SHACL][SHACL Spec].
|
14
|
+
* Partially compatible with SHACL-SPARQL [SHACL][SHACL Spec].
|
14
15
|
* 100% free and unencumbered [public domain](https://unlicense.org/) software.
|
15
16
|
|
16
17
|
[Implementation Report](https://ruby-rdf.github.io/shacl/etc/earl.html)
|
@@ -60,6 +61,8 @@ Evaluating the shapes against a graph results in a {SHACL::ValidationReport} ind
|
|
60
61
|
|
61
62
|
The resulting validation report can be compared with other validation reports, used as native Ruby objects, serialized to s-expressions, or used as an RDF::Enumerable to retrieve the RDF representation of the report, as defined in [SHACL Spec][].
|
62
63
|
|
64
|
+
SHACL-SPARQL variable bindings pass a solution to the query composed of the necessary bindings rather than rewrite the query. Supports [SHACL-based Constraints](https://www.w3.org/TR/shacl/#sparql-constraints).
|
65
|
+
|
63
66
|
### Matching Entailed Triples
|
64
67
|
Many tests check for entailed triples, such as entailed super-classes of explicit `rdf:type` values. If this is required for a given application, the [RDF::Reasoner][] gem can be used to create such entailed triples.
|
65
68
|
|
@@ -75,17 +78,19 @@ Many tests check for entailed triples, such as entailed super-classes of explici
|
|
75
78
|
### Future work
|
76
79
|
This implementation is certainly not performant. Some things that can be be considered in future versions:
|
77
80
|
|
78
|
-
* Support for SHACL-SPARQL
|
79
81
|
* Index shapes on `targetNode` and `targetClass` and other targets to allow a more efficient query to find relevant resources in the data graph and not simply iterrate through each top-level shape.
|
80
82
|
* Cache target nodes as JSON-LD to reduce the need to separately query for each constraint.
|
81
83
|
* Reasoner should support limited RDFS/OWL entailment from the data graph, not just pre-defined vocabularies.
|
84
|
+
* [SHACL-based Constraint Components](https://www.w3.org/TR/shacl/#sparql-constraint-components).
|
85
|
+
* More [SHACL Advanced Features](https://w3c.github.io/shacl/shacl-af/).
|
86
|
+
* Support the [SHACL Compact Syntax](https://w3c.github.io/shacl/shacl-compact-syntax/).
|
82
87
|
|
83
88
|
## Dependencies
|
84
89
|
|
85
|
-
* [Ruby](https://ruby-lang.org/) (>=
|
86
|
-
* [RDF.rb](https://rubygems.org/gems/rdf) (~> 3.
|
90
|
+
* [Ruby](https://ruby-lang.org/) (>= 3.0)
|
91
|
+
* [RDF.rb](https://rubygems.org/gems/rdf) (~> 3.3)
|
87
92
|
* [SPARQL](https://rubygems.org/gems/sparql) (~> 3.2)
|
88
|
-
* [json-ld](https://rubygems.org/gems/json-ld) (~> 3.
|
93
|
+
* [json-ld](https://rubygems.org/gems/json-ld) (~> 3.3)
|
89
94
|
* [sxp](https://rubygems.org/gems/sxp) (~> 1.2)
|
90
95
|
|
91
96
|
## Installation
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|