You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+40-2Lines changed: 40 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,43 @@ and this project adheres to [Python PEP 440 Versioning](https://www.python.org/d
6
6
7
7
## [Unreleased]
8
8
9
+
## [0.40.0] - 2026-07-08
10
+
11
+
### Added
12
+
- Compatibility with Oxigraph stores.
13
+
- PySHACL can now validate a graph that is loaded into a PyOxigraph `pyoxigraph.Store` instance.
14
+
- New `DataGraph` graph abstraction layer that wraps RDFLib `Graph`/`Dataset` and, when installed, `pyoxigraph.Store`.
15
+
- Validation and SHACL Rules expansion can use an Oxigraph-backed data graph for faster SPARQL execution.
16
+
- Install with the new optional extra: `pip install pyshacl[oxigraph]`.
17
+
- Pass a `pyoxigraph.Store` directly to `validate()` or `shacl_rules()`.
18
+
- SHACL Functions and SHACL-JS Functions now register and execute on both RDFLib and Oxigraph SPARQL engines.
19
+
- SPARQL constraints can invoke SHACL Functions as SPARQL extension functions when using an Oxigraph-backed data graph.
20
+
- Python 3.13 support in the test matrix.
21
+
-`pyduktape2` dependency is now version-split for Python 3.13+.
22
+
23
+
### Changed
24
+
- Dropped `rdflib.ConjunctiveGraph` support throughout the codebase. **Breaking**
25
+
- ConjunctiveGraph has been deprecatd in RDFLib for a long time, it will be gone in RDFLib 8. Removing it now from PySHACL to prevent compatibility issues later.
26
+
- Multigraph inputs must be an `rdflib.Dataset`; bare `rdflib.Graph` remain supported for single-graph use.
27
+
- Adapted to RDFLib 7.3+ API changes: `default_context` has been replaced with `default_graph`, and `contexts()` replaced with `graphs()`.
28
+
- Resolves #316
29
+
- Thanks @torsknod2
30
+
- Updated minimum dependency versions:
31
+
-`rdflib[html]>=7.3.0,<8.0`
32
+
-`owlrl>=7.6.1,<8`
33
+
-`validate_each()` now returns a dict keyed by input index (`int`) instead of by source identifier.
34
+
- Internal validation and rules expansion now operate on the `DataGraph` wrapper rather than raw RDFLib graph objects.
35
+
- SPARQL prefix resolution for shapes graphs stored in a `Dataset` now reads `sh:declare` blocks from the default graph.
36
+
- DASH conformance checking now enumerates named graphs with `Dataset.graphs()` instead of the deprecated `contexts()` API.
37
+
38
+
### Fixed
39
+
- OWL `owl:imports` over HTTP no longer leaves closed `HTTPResponse` objects that trigger finalizer errors during garbage collection.
40
+
- Fixes #319
41
+
- Thanks @gaoflow
42
+
43
+
### Removed
44
+
- Support for `rdflib.ConjunctiveGraph` as a data graph, shapes graph, or ontology graph input type. **Breaking**
45
+
9
46
## [0.31.0] - 2026-01-16
10
47
11
48
### Added
@@ -1250,8 +1287,9 @@ just leaves the files open. Now it is up to the command-line client to close the
0 commit comments