Skip to content

Releases: RDFLib/pySHACL

v0.22.1 - 2023-04-26

26 Apr 06:43
Compare
Choose a tag to compare

Fixed

  • Clone full contents of an OWL:NamedIndividual from the ontology graph to the datagraph, during the inoculation procedure.
    • This fixes the case where an NamedIndividual in an OWL ontology had properties that were required in the datagraph at runtime to ensure successful validation
  • Avoid hitting the recursion limit when stringifying a blank node, when OWL inferencing has inserted owl:sameAs the same blank node as is being serialized.
  • Avoid hitting the recursion limit when cloning a graph with a blank node, when OWL inferencing has inserted owl:sameAs the same blank node as is being cloned.

Changed

  • Lots more debug messaging. Debugging is now much more verbose.
    • This gives more insight into how PySHACL runs, what it is doing, and how long each step takes.
    • All constraint evaluations will now output their results, regardless of whether are conformant or non-conformant or if they are used in the final conformance report.
    • You will probably want debug turned off unless you are tracking down the source of a problem or performance issue.

v0.22.0 - 2023-04-18

18 Apr 06:07
Compare
Choose a tag to compare

Big change to how ontology mix-in mechanism works !

  • Feature is now called datagraph inoculation
  • Inoculation copies only RDFS and OWL axioms (classes, properties and relationships) from the extra-ontology file into the datagraph
    • This mitigates a class of errors that cause the validator to perform validation on Nodes that should not be in the datagraph
    • Such as cases where the Shapes graph and Extra-ontology graph are the same graph, but having SHACL Shapes and constraints in the datagraph is undesired.
  • Details around automatically cloning the datagraph before modification (inoculation) remain unchanged.
  • If you preferred the old behaviour, where the whole extra-ontology file was mixed-in to the datafile, please file a Github issue outlining your need for that.

v0.21.0 - 2023-03-31

31 Mar 13:21
Compare
Choose a tag to compare

In this release:

Added

  • New HTTP Server functionality
    • run PySHACL as a persistent service, exposing an OpenAPI3.0-compatible REST interface
  • Detection of filename when downloading web attachments is added
  • Better detection of invalid integer values for sh:minLength and sh:maxLength string constraints.

Fixed

  • Opening a http link that has chunked encoding, or content-disposition attachment will now work correctly.

v0.20.0 - 2022-09-08

08 Sep 06:59
Compare
Choose a tag to compare

Note, while this is a normal 0.x release, it also acts as the v1.0 release candidate.

That means, if no glaring bugs or issues are found in this release, this version will be re-released eventually as
PySHACL v1.0.

In this release:

Fixed

  • Ill-typed/Ill-formed literals now fail the DataType test, as expected
    • Requires RDFLib v6.2.0+
    • Fixes #140 (and possibly fixes #151)
    • Unskipped one of the remaining skipped shacl-test-suite SHT tests (datatype-ill-formed_ttl.ttl)
  • Fixed detection of recursion to be more lenient of deliberately recursive (but not infinitely recursive) shapes.
  • MetaShacl works again now with RDFLib >= v6.2.0
  • Fixed typing issues affecting interoperability of new version of RDFLib and PySHACL.

Changed

  • RDFLib v6.2.0 or greater is now required to run PySHACL
    • This new version of RDFLib implements the ill-typed Literals feature, that helps with sh:datatype constraint validation.
    • Removing support for older versions of RDFLib allows PySHACL to implement new features, and have less unnecessary code
  • Bumped to using new Poetry v1.2.0 (or newest poetry-core v1.1.0)
    • Changed pytest-cov and coverage tests to be optional dependencies for dev
  • Bumped version of Black to 22.8.0, and re-blacked all files
  • Removed old monkey patches, no longer needed for the latest version of RDFLib
  • Removed bundled "Memory2" store, now using the default "Memory" from RDFLib
    • Regenerated bundled pickled triplestores, to use Memory instead of Memory2
  • Updated official dockerfile with newest version of PySHACL and RDFLib

2022-06-30 - v0.19.1 - Its Docker Time

30 Jun 04:00
Compare
Choose a tag to compare

Note, while this is a normal 0.x release, it also acts as the v1.0 release candidate.

That means, if no glaring bugs or issues are found in this release after two weeks, this version will be re-released as
PySHACL v1.0.

Fixed

  • CLI Output Table formatting crashed when report graph did not contain a resultMessage
  • Executing advanced-mode triples rules can sometimes skip the graph clone step, and incorrectly emits new triples directly into the input data-graph
    • Discovered when investigating #148

Changed

  • Executing advanced triples rules no longer incorrectly emits new triples directly into the input data-graph
    • This may been seen as a breaking change, if your workflow relied on this incorrect behaviour.
    • If you really the rules engine to emit new triples into your input data graph, use the inplace validator option.
  • Updated built-in schema.ttl file to newer version that doesn't have UTF-8 encoding issues

Added

2022-03-22 - v0.19.0 - Old bugs die hard

12 Mar 09:33
Compare
Choose a tag to compare

Note, while this is a normal 0.x release, it also acts as the v1.0 release candidate.

That means, if no glaring bugs or issues are found in this release after two weeks, this version will be re-released as
PySHACL v1.0.

In this release:

Fixed

  • Fixed a long-standing oversight where ShapeLoadErrors and ConstraintLoadErrors were not reported correctly when running PySHACL in CLI mode.
    • Sorry about that. Thanks lots of people for reporting this over the last year. I wish I fixed it sooner.
  • Fixed a long-standing bug where using $PATH in a sh:sparql query on a PropertyShape would not work correctly.
  • Fixed a long-standing bug, that allows PySHACL to more reliably determine if graph source is a file path, or a graph string.
  • Fixed an issue where sh:pattern could not be applied to a Literal that was not an xsd:string or URI.
  • Fixed the outdated/incorrect reported when a PropertyShape's sh:path value gets an unknown path type.

Added

  • New --allow-infos option in CLI mode and Python Module mode.
    • This is like --allow-warnings except it only allows violations with severity of sh:Info.
    • (--allow-warnings continues to allow both sh:Warning and sh:Info as it used to.)
    • Fixes #126, Thanks @ajnelson-nist
  • SPARQL-based Constraints can now substitute arbitrary bound SPARQL variables into their sh:message

Changed

  • --allow-infos and --allow-warnings can now also be enabled with --allow-info and --allow-warning respectively.
  • Removed Snyk check on CI/CD pipeline, because there is an RDFLib issue blocking Snyk on PySHACL from passing.

2022-01-25 - v0.18.1 - Support read from stdin

25 Jan 02:44
Compare
Choose a tag to compare

Added the ability to pipe in SHACL file or ONT file via stdin on Linux or MacOS
Fixed an issue where the filetype detection routine in the RDF loader would fail to reset the file back to the start.

2022-01-13 - v0.18.0 - Python 3.10 support, RDFLib v6.1.1

13 Jan 05:04
Compare
Choose a tag to compare

Added

  • Added Python 3.10 support (when using RDFLib v6.1.1 or greater)
  • Added more type hinting, to conform to the new type hinting added by RDFLib 6.1.1
  • Added Python 3.10 to test suite

Changed

  • Subtle correction in the way sh:prefixs works with sh:declare on the given named ontology.
  • Bumped some min versions of libraries, to gain compatibility with Python 3.10

Fixed

  • Fixed test for issue #76
  • Fixed #76 again (after fixed test)

2021-12-13 - v0.17.3 - Bugfixes

13 Dec 04:02
Compare
Choose a tag to compare

Fixes

  • Don't crash when a SHACL function is registered more than once (eg, if a function is both SPARQLFunction and JSFunction), fixes #108, thanks Gabe Fierro
  • Fixed typo in CLI help output, thanks Alex Nelson
  • Don't print env vars when importing JS module, thanks MPolitze
  • Fix typo preventing OWL-RL >=6.0 to be used with pySHACL, Fixes #111

Added

  • Add Snyk checks to CI/CD pipeline

2021-10-25 - v0.17.2 - CLI Table output

25 Oct 06:34
385c316
Compare
Choose a tag to compare

Fixes

  • SPARQL queries with words "values", "minus", or "service" in its comments no longer incorrectly throw an exception.

Changed

  • Switched from Travis to Drone for CI testing

Added

  • New Table output type for commandline tool. Thanks @nicholascar