Releases: RDFLib/pySHACL
Releases · RDFLib/pySHACL
v0.22.1 - 2023-04-26
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
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
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
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
- Fixed detection of recursion to be more lenient of deliberately recursive (but not infinitely recursive) shapes.
- Fixes #154
- MetaShacl works again now with RDFLib >= v6.2.0
- Fixes #153
- 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
- This new version of RDFLib implements the ill-typed Literals feature, that helps with
- 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
- Published to dockerhub at ashleysommer/pyshacl
docker pull docker.io/ashleysommer/pyshacl:latest
2022-06-30 - v0.19.1 - Its Docker Time
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
- Fixes #145
- 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
- Official Dockerfile is now included in the repository
- Thanks @KonradHoeffner; Fixes #135
- Published to dockerhub at ashleysommer/pyshacl
docker pull docker.io/ashleysommer/pyshacl:latest
2022-03-22 - v0.19.0 - Old bugs die hard
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.- Fixes #124, Thanks @Martijn-Y-ai
- 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 anxsd:string
or URI.- Fixes #133, Thanks @nicholascar
- Fixed the outdated/incorrect reported when a PropertyShape's
sh:path
value gets an unknown path type.- Fixes #129, Thanks @edmondchuc
Added
- New
--allow-infos
option in CLI mode and Python Module mode.- This is like
--allow-warnings
except it only allows violations with severity ofsh:Info
. - (
--allow-warnings
continues to allow bothsh:Warning
andsh:Info
as it used to.) - Fixes #126, Thanks @ajnelson-nist
- This is like
- SPARQL-based Constraints can now substitute arbitrary bound SPARQL variables into their sh:message
- Fixes #120
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
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
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 withsh:declare
on the given named ontology. - Bumped some min versions of libraries, to gain compatibility with Python 3.10
Fixed
2021-12-13 - v0.17.3 - Bugfixes
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
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