All Versions
59
Latest Version
Avg Release Cycle
28 days
Latest Release
97 days ago

Changelog History
Page 1

  • v0.15.0 Changes

    July 20, 2021

    ๐Ÿ›  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+
  • v0.14.5 Changes

    July 07, 2021

    โž• 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.
  • v0.14.4 Changes

    May 26, 2021

    โž• 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)
  • v0.14.3 Changes

    February 20, 2021

    ๐Ÿ”„ Changed

    • ๐Ÿ‘€ 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.
  • v0.14.2 Changes

    January 02, 2021

    โž• 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.
  • v0.14.1 Changes

    December 23, 2020

    โž• 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)
  • v0.14.0 Changes

    October 14, 2020

    Have you ever wanted to use Javascript to write SHACL constraints?
    Do you want to use Javascript to select custom SHACL targets?
    Have you the need to use Javascript to run SHACL Rules for emitting triples?
    Do you have the requirement to execute Javascript code from a SPARQL Function?

    ๐Ÿš€ If yes, then this is the release for you!

    โž• Added

    • ๐Ÿ‘ SHACL-JS Support!
    • Implements all of the features in the SHACL-JS SHACL Extension specification: https://www.w3.org/TR/shacl-js/
    • Includes:
      • JS Constraints
      • JS ConstraintComponents
      • JS SHACL Functions
      • JS SHACL Rules
      • JS Target
      • JS TargetType
    • ๐Ÿ“ฆ To install it, make sure you do pip3 install pyshacl[js] to get the correct extra packages.

    ๐Ÿ”„ Changed

    • โž• Added JS flag to the CLI tool to enable SHACL-JS features
    • โšก๏ธ Updated README and FEATURES matrix

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixes #43
  • v0.13.3 Changes

    September 11, 2020

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed a long standing issue where our fancy loader would try to seek() on a file, after the file
      ๐Ÿ“œ was closed by the JSON-LD parser
    • ๐Ÿ›  Fixed #62
  • v0.13.2 Changes

    September 10, 2020

    โž• Added

    • โž• Added the ability for PySHACL to use baked in graphs instead of fetching them from a HTTP endpoint when a known graph
      is imported using owl:imports
      • This allows for time savings on graph-load and saves a HTTP request
      • Also allows us to embed fixed errata versions of files in place of release-time ones online

    ๐Ÿ›  Fixed

    • With new features, comes new bugs
    • ๐Ÿšš With the ability to now load SPARQLFunctions, this removes the barrier for loading Schema.org SHACL in advanced mode
    • ๐Ÿ›  But when doing so revealed more issues. They are now fixed:
    • ๐Ÿ›  Fixed SPARQLConstraintComponent getting confused when shacl.ttl was loaded into your Shapes file using owl:imports
    • ๐Ÿ›  Fixed #61

    ๐Ÿ”„ Changed

    • โ™ป๏ธ Refactored SPARQLConstraintComponent code, to allow for other custom constraint components in the future
      • This prevented SPARQLConstraintComponent getting confused when shacl.ttl was loaded into the Shapes file
        using owl:imports

    Note
    ๐Ÿš€ I know there are some mypi errors in this release. This does not affect runtime functionality. These typing errors will be fixed in the near future.

  • v0.13.1 Changes

    September 07, 2020

    โž• Added

    • SPARQLTargetType
    • โž• Added a test for SPARQLTargetType - Theres none in the SHT suite, or the DASH suite.

    ๐Ÿ”„ Changed

    • โ™ป๏ธ Refactored sh:parameter code in SPARQL-based Constraint Components, SHACLFunctions, and SPARQL-Based Target Types
      • They all now share a common SHACLParameter helper class, reducing code duplication
    • โ™ป๏ธ Refactored SPARQLQueryHelper
      • SPARQLQueryHelper internal class is now more helpful
      • query_helper can now extract param bindings into param-value pairs for parameterised queries
      • Reduces more code duplication