Skip to content

Releases: RDFLib/pySHACL

2021-08-21 - v0.16.1.post1

27 Aug 01:45
dfa3adf
Compare
Choose a tag to compare

See v0.16.1 release for or Changelog for release notes

2021-08-20 - v0.16.1 - ExpressionConstraintComponent

19 Aug 14:34
Compare
Choose a tag to compare

Added

  • ExpressionConstraintComponent is implemented!
    • Use your previously defined SHACL Functions to express complex constraints
    • Added DASH-tests for ExpressionConstraintComponent
    • Added advanced tests for ExpressionConstraintComponent, SHACLRules, and SHACLFunctions.
  • New Advanced features example, showcasing ExpressionConstraint and others features

Changed

  • Allow sh:message to be attached to an expression block, without breaking its functionality
  • A SHACL Function within a SHACL Expression now must be a list-valued property.
  • Refactored node-expression and path-expression methods to be common and reusable code
  • Re-black and isort all source files

2021-08-19 - v0.16.0 - Transitive Class Constraint

19 Aug 10:19
Compare
Choose a tag to compare

Changes

  • sh:class Constraint now applies transitively.
    • This means it will follow rdfs:subClassOf relationships right to the top of the hierarchy.
    • Be careful with this, could lead to recursion or infinite loops!
    • This requires a big version number bump because it's technically a breaking change.
    • Fixes #87, thanks @gtfierro

RDFLib 6.0.0 Support

20 Jul 08:23
Compare
Choose a tag to compare

Fixed

  • Compatibility with RDFLib 6.0.0
    • Don't use .term() (PR #84)
    • Use Namespaces in a way that works on both RDFLib 5 and 6.

Changed

  • Do not patch rdflib with Memory2 store on RDFLib 6.0.0+

2021-07-07 - v0.14.5

07 Jul 12:21
Compare
Choose a tag to compare

Added

  • Allow-Warnings is finally available. (Closes #64)
    • Setting this option puts PySHACL into a non-standard operation mode, where Shapes marked with severity of sh:Warning or sh:Info will not cause result to be invalid.
    • Despite the name, it allows both sh:Info and sh:Warning.
    • Try it with allow_warnings=True on validate() or -w in the CLI tool.

Fixed

  • Fixed Abort Mode. (Fixes #75)
    • This optional mode allows the validator to exit early, on the first time your data fails to validate against a Constraint.
    • Name changed from abort_on_error to abort_on_first
    • Try it out with abort_on_first=True on validate() or --abort in the CLI tool.

2021-05-26 - v0.14.4

26 May 05:07
Compare
Choose a tag to compare

Added

  • Added an iterate_rules option, that causes SHACL Rules to run repeatedly until reaching a steady state. (Closes #76)
    • Works with SPARQLRules, TripleRules, and JSRules.
  • Variables {$this}, {$path}, and {$value} will be populated in the sh:message of a SPARQL Constraint. (Closes #30)

Now citeable.

12 May 05:24
Compare
Choose a tag to compare

Re-releasing v0.14.3, in order to push the release to Zenodo for a DOI

0.14.3

22 Feb 06:15
Compare
Choose a tag to compare
  • Relaxed the Max Evaluation Depth from 28 to 30, we were seeing some real-world cases where meta-shacl was failing on large Shapes Graphs at 28 levels deep.
  • sh:namespace values can now be xsd:anyURI or xsd:string or "literal string", but now cannot be .
  • sh:order can now support xsd:decimal values and xsd:integer values, and can be interchanged at will.

0.14.2

22 Feb 06:14
Compare
Choose a tag to compare

Added

  • Potential speedups when executing validation by lazy-loading large modules which may never be required in a normal validation run.

Fixed

  • Black and Flake8 issues outstanding from 0.14.1 release.
  • Workaround a RDFLib bug trying to import requests when requests is not required to be installed.
    • This bug will still be observed if you use SPARQLConstraints, SPARQLFunction or JSFunction features, but it can be worked around by simply installing requests in your python environment.

Merry Christmas 2020

23 Dec 02:48
Compare
Choose a tag to compare

Release 0.14.1 - 2020-12-23

Added

  • Inplace Mode, for when cloning your datagraph is undesirable
    • Normally pyshacl will create an in-memory copy of your datagraph before modifying it (when using ontology mixin, or inferencing features)
    • This might be unwanted if your datagraph is very large or remote and cloning it into memory is not a good option
    • Enabling inplace mode will bypass this clone step, and apply modification operations directly on your data_graph (use with caution!)
    • Enable with inplace=True kwarg on validate().
    • Inplace mode is not yet available via the CLI application, and perhaps doesn't even make sense to have it available there.

Fixed

  • Inferencing will no longer incorrectly place expanded triples into your original data_graph, unless you enable 'inplace'
  • SHACL-JS loader will no longer fail if the regex module is not installed (it will fall back to using builtin re)
  • SHACL-Rule DASH-tests will now pass when the SHACL-rule is applied on multigraph (Dataset or ConjunctiveGraph)