Rdflib

Latest version: v7.0.0

Safety actively analyzes 624093 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 29

7.0.0

This is a major release with relatively slight breaking changes, new
features and bug fixes.

The most notable breaking change relates to how RDFLib handles the
`publicID` parameter of the `Graph.parse` and `Dataset.parse` methods.
Most users should not be affected by this change.

Instructions on adapting existing code to the breaking changes can be
found in the upgrade guide from Version 6 to Version 7 which should be
available [here](https://rdflib.readthedocs.io/en/stable/).

It is likely that the next couple of RDFLib releases will all be major
versions, mostly because there are some more shortcomings of RDFLib's
public interface that should be addressed.

If you use RDFLib, please consider keeping an eye on
[discussions](https://github.com/RDFLib/rdflib/discussions?discussions_q=label%3A%22feedback+wanted%22),
issues and pull-requests labelled with ["feedback
wanted"](https://github.com/RDFLib/rdflib/labels/feedback%20wanted).

A big thanks to everyone who contributed to this release.

BREAKING CHANGE: don't use `publicID` as the name for the default graph. (2406)

Commit [4b96e9d](https://github.com/RDFLib/rdflib/commit/4b96e9d), closes [#2406](https://github.com/RDFLib/rdflib/issues/2406).


When parsing data into a `ConjunctiveGraph` or `Dataset`, the triples in the
default graphs in the sources were loaded into a graph named `publicID`.

This behaviour has been changed, and now the triples from the default graph in
source RDF documents will be loaded into `ConjunctiveGraph.default_context` or
`Dataset.default_context`.

The `publicID` parameter to `ConjunctiveGraph.parse` and `Dataset.parse`
constructors will now only be used as the base URI for relative URI resolution.

- Fixes https://github.com/RDFLib/rdflib/issues/2404
- Fixes https://github.com/RDFLib/rdflib/issues/2375
- Fixes https://github.com/RDFLib/rdflib/issues/436
- Fixes https://github.com/RDFLib/rdflib/issues/1804

BREAKING CHANGE: drop support for python 3.7 (2436)

Commit [1e5f56b](https://github.com/RDFLib/rdflib/commit/1e5f56b), closes [#2436](https://github.com/RDFLib/rdflib/issues/2436).


Python 3.7 will be end-of-life on the 27th of June 2023 and the next release of
RDFLib will be a new major version.

This changes the minimum supported version of Python to 3.8.1 as some of the
dependencies we use are not too fond of python 3.8.0. This change also removes
all accommodations for older python versions.

feat: add `curie` method to `NamespaceManager` (2365)

Commit [f200722](https://github.com/RDFLib/rdflib/commit/f200722), closes [#2365](https://github.com/RDFLib/rdflib/issues/2365).


Added a `curie` method to `NamespaceManager`, which can be used to generate a
CURIE from a URI.

Other changes:

- Fixed `NamespaceManager.expand_curie` to work with CURIES that have blank
prefixes (e.g. `:something`), which are valid according to [CURIE Syntax
1.0](https://www.w3.org/TR/2010/NOTE-curie-20101216/).
- Added a test to confirm <https://github.com/RDFLib/rdflib/issues/2077>.

Fixes <https://github.com/RDFLib/rdflib/issues/2348>.


feat: add optional `target_graph` argument to `Graph.cbd` and use it for DESCRIBE queries (2322)

Commit [81d13d4](https://github.com/RDFLib/rdflib/commit/81d13d4), closes [#2322](https://github.com/RDFLib/rdflib/issues/2322).


Add optional keyword only `target_graph` argument to `rdflib.graph.Graph.cbd` and use this new argument in `evalDescribeQuery`.

This makes it possible to compute a concise bounded description without creating a new graph to hold the result, and also without potentially having to copy it to another final graph.

feat: Don't generate prefixes for unknown URIs (2467)

Commit [bd797ac](https://github.com/RDFLib/rdflib/commit/bd797ac).


When serializing RDF graphs, URIs with unknown prefixes were assigned a
namespace like `ns1:`. While the result would be smaller files, it does
result in output that is not as readable.

This change removes this automatic assignment of namespace prefixes.

This is somewhat of an aesthetic choice, eventually we should have more
flexibility in this regard so that users can exercise more control over
how URIs in unknown namespaces are handled.

With this change, users can still manually create namespace prefixes for
URIs in unknown namespaces, but before it there was no way to avoid the
undesired behaviour, so this seems like the better default.


feat: Longturtle improvements (2500)

Commit [5ee8bd7](https://github.com/RDFLib/rdflib/commit/5ee8bd7), closes [#2500](https://github.com/RDFLib/rdflib/issues/2500).

Improved the output of the longturtle serializer.

fix: SPARQL count with optionals (2448)

Commit [46ff6cf](https://github.com/RDFLib/rdflib/commit/46ff6cf), closes [#2448](https://github.com/RDFLib/rdflib/issues/2448).


Change SPARQL count aggregate to ignore optional that are unbound
instead of raising an exception when they are encountered.

fix: `GROUP_CONCAT` handling of empty separator (issue) (2474)

Commit [e94c252](https://github.com/RDFLib/rdflib/commit/e94c252), closes [#2474](https://github.com/RDFLib/rdflib/issues/2474).


`GROUP_CONCAT` was handling an empty separator (i.e. `""`) incorrectly,
it would handle it as if the separator were not set, so essentially it was
treated as a single space (i.e. `" "`).

This change fixes it so that an empty separator with `GROUP_CONCAT`
results in a value with nothing between concatenated values.


Fixes <https://github.com/RDFLib/rdflib/issues/2473>


fix: add `NORMALIZE_LITERALS` to `rdflib.__all__` (2489)

Commit [6981c28](https://github.com/RDFLib/rdflib/commit/6981c28), closes [#2489](https://github.com/RDFLib/rdflib/issues/2489).


This gets Sphinx to generate documentation for it, and also clearly
indicates that it can be used from outside the module.

- Fixes <https://github.com/RDFLib/rdflib/issues/2488>


fix: bugs with `rdflib.extras.infixowl` (2390)

Commit [cd0b442](https://github.com/RDFLib/rdflib/commit/cd0b442), closes [#2390](https://github.com/RDFLib/rdflib/issues/2390).


Fix the following issues in `rdflib.extras.infixowl`:
- getting and setting of max cardinality only considered identifiers and not other RDF terms.
- The return value of `manchesterSyntax` was wrong for some cases.
- The way that `BooleanClass` was generating its string representation (i.e. `BooleanClass.__repr__`) was wrong for some cases.

Other changes:
- Added an example for using infixowl to create an ontology.
- Updated infixowl tests.
- Updated infixowl documentation.

This code is based on code from:
- <https://github.com/RDFLib/rdflib/pull/2307>


fix: correct imports and `__all__` (2340)

Commit [7df77cd](https://github.com/RDFLib/rdflib/commit/7df77cd), closes [#2340](https://github.com/RDFLib/rdflib/issues/2340).


Disable
[`implicit_reexport`](https://mypy.readthedocs.io/en/stable/config_file.html#confval-implicit_reexport)
and eliminate all errors reported by mypy after this.

This helps ensure that import statements import from the right module and that
the `__all__` variable is correct.


fix: dbpedia URL to use https instead of http (2444)

Commit [ef25896](https://github.com/RDFLib/rdflib/commit/ef25896), closes [#2444](https://github.com/RDFLib/rdflib/issues/2444).


The URL for the service keyword had the http address for the dbpedia endpoint, which no longer works. Changing it to https as that works.


fix: eliminate bare `except:` (2350)

Commit [4ea1436](https://github.com/RDFLib/rdflib/commit/4ea1436), closes [#2350](https://github.com/RDFLib/rdflib/issues/2350).


Replace bare `except:` with `except Exception`, there are some cases where it
can be narrowed further, but this is already an improvement over the current
situation.

This is somewhat pursuant to eliminating
[flakeheaven](https://github.com/flakeheaven/flakeheaven), as it no longer
supports the latest version of flake8
[[ref](https://github.com/flakeheaven/flakeheaven/issues/132)]. But it also is
just the right thing to do as bare exceptions can cause problems.


fix: eliminate file intermediary in translate algebra (2267)

Commit [ae6b859](https://github.com/RDFLib/rdflib/commit/ae6b859), closes [#2267](https://github.com/RDFLib/rdflib/issues/2267).


Previously, `rdflib.plugins.sparql.algebra.translateAlgebra()` maintained state via a file, with a fixed filename `query.txt`. With this change, use of that file is eliminated; state is now maintained in memory so that multiple concurrent `translateAlgebra()` calls, for example, should no longer interfere with each other.

The change is accomplished with no change to the client interface. Basically, the actual functionality has been moved into a class, which is instantiated and used as needed (once per call to `algrebra.translateAlgebra()`).


fix: eliminate some mutable default arguments in SPARQL code (2301)

Commit [89982f8](https://github.com/RDFLib/rdflib/commit/89982f8), closes [#2301](https://github.com/RDFLib/rdflib/issues/2301).


This change eliminates some situations where a mutable object (i.e., a dictionary) was used as the default value for functions in the `rdflib.plugins.sparql.processor` module and related code. It replaces these situations with `typing.Optinal` that defaults to None, and is then handled within the function. Luckily, some of the code that the SPARQL Processor relied on already had this style, meaning not a lot of changes had to be made.

This change also makes a small update to the logic in the SPARQL Processor's query function to simplify the if/else statement. This better mirrors the implementation in the `UpdateProcessor`.


fix: formatting of SequencePath and AlternativePath (2504)

Commit [9c73581](https://github.com/RDFLib/rdflib/commit/9c73581), closes [#2504](https://github.com/RDFLib/rdflib/issues/2504).


These path types were formatted without parentheses even if they
contained multiple elements, resulting in string representations that
did not accurately represent the path.

This change fixes the formatting so that the string representations are
enclosed in parentheses when necessary.

- Fixes <https://github.com/RDFLib/rdflib/issues/2503>.


fix: handling of `rdf:HTML` literals (2490)

Commit [588286b](https://github.com/RDFLib/rdflib/commit/588286b), closes [#2490](https://github.com/RDFLib/rdflib/issues/2490).


Previously, without `html5lib` installed, literals with`rdf:HTML`
datatypes were treated as
[ill-typed](https://www.w3.org/TR/rdf11-concepts/#section-Graph-Literal),
even if they were not ill-typed.

With this change, if `html5lib` is not installed, literals with the
`rdf:HTML` datatype will not be treated as ill-typed, and will have
`Null` as their `ill_typed` attribute value, which means that it is
unknown whether they are ill-typed or not.

This change also fixes the mapping from `rdf:HTML` literal values to
lexical forms.

Other changes:

- Add tests for `rdflib.NORMALIZE_LITERALS` to ensure it behaves
correctly.

Related issues:

- Fixes <https://github.com/RDFLib/rdflib/issues/2475>


fix: HTTP 308 Permanent Redirect status code handling (2389)

Commit [e0b3152](https://github.com/RDFLib/rdflib/commit/e0b3152), closes [#2389](https://github.com/RDFLib/rdflib/issues/2389) [/docs.python.org/3.11/whatsnew/changelog.html#id128](https://github.com//docs.python.org/3.11/whatsnew/changelog.html/issues/id128).


Change the handling of HTTP status code 308 to behave more like
`urllib.request.HTTPRedirectHandler`, most critically, the new 308 handling will
create a new `urllib.request.Request` object with the new URL, which will
prevent state from being carried over from the original request.

One case where this is important is when the domain name changes, for example,
when the original URL is `http://www.w3.org/ns/adms.ttl` and the redirect URL is
`https://uri.semic.eu/w3c/ns/adms.ttl`. With the previous behaviour, the redirect
would contain a `Host` header with the value `www.w3.org` instead of
`uri.semic.eu` because the `Host` header is placed in
`Request.unredirected_hdrs` and takes precedence over the `Host` header in
`Request.headers`.

Other changes:
- Only handle HTTP status code 308 on Python versions before 3.11 as Python 3.11

will handle 308 by default [[ref](https://docs.python.org/3.11/whatsnew/changelog.html#id128)].
- Move code which uses `http://www.w3.org/ns/adms.ttl` and
`http://www.w3.org/ns/adms.rdf` out of `test_guess_format_for_parse` into a
separate parameterized test, which instead uses the embedded http server.

This allows the test to fully control the `Content-Type` header in the
response instead of relying on the value that the server is sending.

This is needed because the server is sending `Content-Type: text/plain` for
the `adms.ttl` file, which is not a valid RDF format, and the test is
expecting `Content-Type: text/turtle`.

Fixes:
- <https://github.com/RDFLib/rdflib/issues/2382>.

fix: lexical-to-value mapping of rdf:HTML literals (2483)

Commit [53aaf02](https://github.com/RDFLib/rdflib/commit/53aaf02), closes [#2483](https://github.com/RDFLib/rdflib/issues/2483).


Use strict mode when parsing `rdf:HTML` literals. This ensures that when
[lexical-to-value
mapping](https://www.w3.org/TR/rdf11-concepts/#dfn-lexical-to-value-mapping)
(i.e. parsing) of a literal with `rdf:HTML` data type occurs, a value will
only be assigned if the lexical form is a valid HTML5 fragment.
Otherwise, i.e. for invalid fragments, no value will be associated with
the literal
[[ref](https://www.w3.org/TR/rdf11-concepts/#section-Graph-Literal)] and
the literal will be ill-typed.


fix: TriG handling of GRAPH keyword without a graph ID (2469)

Commit [8c9608b](https://github.com/RDFLib/rdflib/commit/8c9608b), closes [#2469](https://github.com/RDFLib/rdflib/issues/2469) [/www.w3.org/2013/TriGTests/#trig-graph-bad-01](https://github.com//www.w3.org/2013/TriGTests//issues/trig-graph-bad-01).


The RDF 1.1 TriG grammar only allows the `GRAPH` keyword if it
is followed by a graph identifier
[[ref](https://www.w3.org/TR/trig/#grammar-production-block)].

This change enforces this rule so that the

<http://www.w3.org/2013/TriGTests/#trig-graph-bad-01> test passes.

fix: TriG parser error handling for nested graphs (2468)

Commit [afea615](https://github.com/RDFLib/rdflib/commit/afea615), closes [#2468](https://github.com/RDFLib/rdflib/issues/2468) [/www.w3.org/2013/TriGTests/#trig-graph-bad-07](https://github.com//www.w3.org/2013/TriGTests//issues/trig-graph-bad-07).


Raise an error when nested graphs occur in TriG.

With this change, the <http://www.w3.org/2013/TriGTests/#trig-graph-bad-07> test passes.

fix: typing errors from dmypy (2451)

Commit [10f9ebe](https://github.com/RDFLib/rdflib/commit/10f9ebe), closes [#2451](https://github.com/RDFLib/rdflib/issues/2451).


Fix various typing errors that are reported when running with `dmypy`,
the mypy daemon.

Also add a task for running `dmypy` to the Taskfile that can be selected
as the default mypy variant by setting the `MYPY_VARIANT` environment
variable to `dmypy`.


fix: widen `Graph.__contains__` type-hints to accept `Path` values (2323)

Commit [1c45ec4](https://github.com/RDFLib/rdflib/commit/1c45ec4), closes [#2323](https://github.com/RDFLib/rdflib/issues/2323).


Change the type-hints for `Graph.__contains__` to also accept `Path`
values as the parameter is passed to the `Graph.triples` function,
which accepts `Path` values.


docs: Add CITATION.cff file (2502)

Commit [ad5c0e1](https://github.com/RDFLib/rdflib/commit/ad5c0e1), closes [#2502](https://github.com/RDFLib/rdflib/issues/2502).


The `CITATION.cff` file provides release metadata which is used by
Zenodo and other software and systems.

This file's content is best-effort, and pull requests with improvements
are welcome and will affect future releases.


docs: add guidelines for breaking changes (2402)

Commit [cad367e](https://github.com/RDFLib/rdflib/commit/cad367e), closes [#2402](https://github.com/RDFLib/rdflib/issues/2402).


Add guidelines on how breaking changes should be approached.

The guidelines take a very pragmatic approach with known downsides, but this
seems like the best compromise given the current situation.

For prior discussion on this point see:
- https://github.com/RDFLib/rdflib/discussions/2395
- https://github.com/RDFLib/rdflib/pull/2108
- https://github.com/RDFLib/rdflib/discussions/1841


docs: fix comment that doesn't describe behavior (2443)

Commit [4e42d10](https://github.com/RDFLib/rdflib/commit/4e42d10), closes [#2443](https://github.com/RDFLib/rdflib/issues/2443).


Comment refers to a person that knows bob and the code would return a name,
but this would only work if the triple `person foaf:name bob .` is part of the dataset

As this is a very uncommon way to model a `foaf:knows` the code was
adjusted to match the description.

docs: recommend making an issue before making an enhancement (2391)

Commit [63b082c](https://github.com/RDFLib/rdflib/commit/63b082c), closes [#2391](https://github.com/RDFLib/rdflib/issues/2391).


Suggest that contributors first make an issue to get in principle
agreement for pull requests before making the pull request.

Enhancements can be controversial, and we may reject the enhancement
sometimes, even if the code is good, as it may just not be deemed
important enough to increase the maintenance burden of RDFLib.

Other changes:
- Updated the checklist in the pull request template to be more accurate to
current practice.
- Improved grammar and writing in the pull request template, contribution guide
and developers guide.


docs: remove unicode string form in rdflib/term.py (2384)

Commit [ddcc4eb](https://github.com/RDFLib/rdflib/commit/ddcc4eb), closes [#2384](https://github.com/RDFLib/rdflib/issues/2384).


The use of Unicode literals is an artefact of Python 2 and is incorrect in Python 3.

Doctests for docstrings using Unicode literals only pass because [ALLOW_UNICODE](https://docs.pytest.org/en/7.1.x/how-to/doctest.html#using-doctest-options)
is set, but this option should be disabled as RDFLib does not support Python 2 any more.

This partially resolves <https://github.com/RDFLib/rdflib/issues/2378>.

6.3.2

fix: `ROUND`, `ENCODE_FOR_URI` and `SECONDS` SPARQL functions (2314)

Commit [af17916](https://github.com/RDFLib/rdflib/commit/af17916), closes [#2314](https://github.com/RDFLib/rdflib/issues/2314).


`ROUND` was not correctly rounding negative numbers towards positive infinity,
`ENCODE_FOR_URI` incorrectly treated `/` as safe, and `SECONDS` did not include
fractional seconds.

This change corrects these issues.

- Closes <https://github.com/RDFLib/rdflib/issues/2151>.


fix: add `__hash__` and `__eq__` back to `rdflib.paths.Path` (2292)

Commit [fe1a8f8](https://github.com/RDFLib/rdflib/commit/fe1a8f8), closes [#2292](https://github.com/RDFLib/rdflib/issues/2292).


These methods were removed when `total_ordering` was added, but
`total_ordering` does not add them, so removing them essentially
removes functionality.

This change adds the methods back and adds tests to ensure they work
correctly.

All path related tests are also moved into one file.

- Closes <https://github.com/RDFLib/rdflib/issues/2281>.
- Closes <https://github.com/RDFLib/rdflib/issues/2242>.


fix: Add `to_dict` method to the JSON-LD `Context` class. (2310)

Commit [d7883eb](https://github.com/RDFLib/rdflib/commit/d7883eb), closes [#2310](https://github.com/RDFLib/rdflib/issues/2310).


`Context.to_dict` is used in JSON-LD serialization, but it was not implemented.
This change adds the method.

- Closes <https://github.com/RDFLib/rdflib/issues/2138>.


fix: add the `wgs` namespace binding back (2294)

Commit [adf8eb2](https://github.com/RDFLib/rdflib/commit/adf8eb2), closes [#2294](https://github.com/RDFLib/rdflib/issues/2294).


<https://github.com/RDFLib/rdflib/pull/1686> inadvertently removed the `wgs` prefix.
This change adds it back.

- Closes <https://github.com/RDFLib/rdflib/issues/2196>.


fix: change the prefix for `https://schema.org/` back to `schema` (#2312)

Commit [3faa01b](https://github.com/RDFLib/rdflib/commit/3faa01b), closes [#2312](https://github.com/RDFLib/rdflib/issues/2312).


The default prefix for `https://schema.org/` registered with

6.3.1

This is a patch release that includes a singular user facing fix, which is the
inclusion of the `test` directory in the `sdist` release artifact.

The following sections describe the changes included in this version.

build: explicitly specify `packages` in `pyproject.toml` (2280)

Commit [334787b](https://github.com/RDFLib/rdflib/commit/334787b), closes [#2280](https://github.com/RDFLib/rdflib/issues/2280).


The default behaviour makes it more of a hassle to republish RDFLib to
a separate package, something which I plan to do for testing purposes
and possibly other reasons.

More changes may follow in a similar vein.


build: include test in sdist (2282)

Commit [e3884b7](https://github.com/RDFLib/rdflib/commit/e3884b7), closes [#2282](https://github.com/RDFLib/rdflib/issues/2282).


A perhaps minor regression from earlier versions is that the sdist does not include the test folder, which makes it harder for downstreams to use a single source of truth to build and test a reliable package. This restores the test folder for sdists.

docs: don't use kroki (2284)

Commit [bea782f](https://github.com/RDFLib/rdflib/commit/bea782f), closes [#2284](https://github.com/RDFLib/rdflib/issues/2284).


The Kroki server is currently experiencing some issues which breaks our
build, this change eliminates the use of Kroki in favour of directly
using the generated SVG images which is checked into git alongside the
PlantUML sources.

I also added a task to the Taskfile to re-generate the SVG images from
the PlantUML sources by calling docker.

6.3.0

This is a minor release that includes bug fixes and features.

Important Information

- RDFLib will drop support for Python 3.7 when it becomes EOL on 2023-06-27,
this will not be considered a breaking change, and RDFLib's major version
number will not be changed solely on the basis of Python 3.7 support being
dropped.

User facing changes

This section lists changes that have a potential impact on users of RDFLib,
changes with no user impact are not included in this section.

- Add chunk serializer that facilitates the encoding of a graph into multiple
N-Triples encoded chunks.
[PR 1968](https://github.com/RDFLib/rdflib/pull/1968).

- Fixes passing `NamespaceManager` in `ConjunctiveGraph`'s method `get_context()`.
The `get_context()` method will now pass the `NamespaceManager` of `ConjunctiveGraph` to the `namespace_manager` attribute of the newly created context graph, instead of the `ConjunctiveGraph` object itself. This cleans up an old `FIXME` comment.
[PR 2073](https://github.com/RDFLib/rdflib/pull/2073).

- InfixOWL fixes and cleanup.
Closed [issue 2030](https://github.com/RDFLib/rdflib/issues/2030).
[PR 2024](https://github.com/RDFLib/rdflib/pull/2024),
and [PR 2033](https://github.com/RDFLib/rdflib/pull/2033).
- `rdflib.extras.infixowl.Restriction.__init__` will now raise a `ValueError`
if there is no restriction value instead of an `AssertionError`.
- Fixed numerous issues with
`rdflib.extras.infixowl.Restriction.restrictionKind` which was essentially
not working at all.
- Fixed how `rdflib.extras.infixowl.Property.__repr__` uses
`rdflib.namespace.OWL`.
- Removed `rdflib.extras.infixowl.Infix.__ror__` and
`rdflib.extras.infixowl.Infix.__or__` as they were broken.
- Removed unused `rdflib.extras.infixowl.termDeletionDecorator`.
- Added `rdflib.extras.infixowl.MalformedClassError` which will replace
`rdflib.extras.infixowl.MalformedClass` (which is an exception) in the next
major version.
- Eliminated the use of mutable data structures in some argument defaults.

- Fixed some cross-referencing issues in RDFLib documentation.
Closed [issue 1878](https://github.com/RDFLib/rdflib/issues/1878).
[PR 2036](https://github.com/RDFLib/rdflib/pull/2036).

- Fixed import of `xml.sax.handler` in `rdflib.plugins.parsers.trix` so that it
no longer tries to import it from `xml.sax.saxutils`.
[PR 2041](https://github.com/RDFLib/rdflib/pull/2041).

- Removed a pre python 3.5 regex related workaround in the REPLACE SPARQL
function.
[PR 2042](https://github.com/RDFLib/rdflib/pull/2042).

- Fixed some issues with SPARQL XML result parsing that caused problems with
[`lxml`](https://lxml.de/). Closed [issue #2035](https://github.com/RDFLib/rdflib/issues/2035),
[issue 1847](https://github.com/RDFLib/rdflib/issues/1847).
[PR 2044](https://github.com/RDFLib/rdflib/pull/2044).
- Result parsing from
[`TextIO`](https://docs.python.org/3/library/typing.html#typing.TextIO)
streams now work correctly with `lxml` installed and with XML documents that
are not `utf-8` encoded.
- Elements inside `<results>` that are not `<result>` are now ignored.
- Elements inside `<result>` that are not `<binding>` are now ignored.
- Also added type hints to `rdflib.plugins.sparql.results.xmlresults`.

- Added type hints to the following modules:
- `rdflib.store`.
[PR 2057](https://github.com/RDFLib/rdflib/pull/2057).
- `rdflib.graph`.
[PR 2080](https://github.com/RDFLib/rdflib/pull/2080).
- `rdflib.plugins.sparql.*`.
[PR 2094](https://github.com/RDFLib/rdflib/pull/2094),
[PR 2133](https://github.com/RDFLib/rdflib/pull/2133),
[PR 2265](https://github.com/RDFLib/rdflib/pull/2265),
[PR 2097](https://github.com/RDFLib/rdflib/pull/2097),
[PR 2268](https://github.com/RDFLib/rdflib/pull/2268).
- `rdflib.query`.
[PR 2265](https://github.com/RDFLib/rdflib/pull/2265).
- `rdflib.parser` and `rdflib.plugins.parsers.*`.
[PR 2232](https://github.com/RDFLib/rdflib/pull/2232).
- `rdflib.exceptions`.
[PR 2232](https://github.com/RDFLib/rdflib/pull/2232)
- `rdflib.shared.jsonld.*`.
[PR 2232](https://github.com/RDFLib/rdflib/pull/2232).
- `rdflib.collection`.
[PR 2263](https://github.com/RDFLib/rdflib/pull/2263).
- `rdflib.util`.
[PR 2262](https://github.com/RDFLib/rdflib/pull/2262).
- `rdflib.path`.
[PR 2261](https://github.com/RDFLib/rdflib/pull/2261).

- Removed pre python 3.7 compatibility code.
[PR 2066](https://github.com/RDFLib/rdflib/pull/2066).
- Removed fallback in case the `shutil` module does not have the `move`
function.

- Improve file-URI and path handling in `Graph.serialize` and `Result.serialize` to
address problems with windows path handling in `Result.serialize` and to make
the behavior between `Graph.serialize` and `Result.serialie` more consistent.
Closed [issue 2067](https://github.com/RDFLib/rdflib/issues/2067).
[PR 2065](https://github.com/RDFLib/rdflib/pull/2065).
- String values for the `destination` argument will now only be treated as
file URIs if `urllib.parse.urlparse` returns their schema as `file`.
- Simplified file writing to avoid a temporary file.

- Narrow the type of context-identifiers/graph-names from `rdflib.term.Node` to
`rdflib.term.IdentifiedNode` as no supported abstract syntax allows for other
types of context-identifiers.
[PR 2069](https://github.com/RDFLib/rdflib/pull/2069).

- Always parse HexTuple files as utf-8.
[PR 2070](https://github.com/RDFLib/rdflib/pull/2070).

- Fixed handling of `Literal` `datatype` to correctly differentiate between
blank string values and undefined values, also changed the datatype of
`rdflib.term.Literal.datatype` from `Optional[str]` to `Optional[URIRef]` now
that all non-`URIRef` `str` values will be converted to `URIRef`.
[PR 2076](https://github.com/RDFLib/rdflib/pull/2076).

- Fixed the generation of VALUES block for federated queries.
The values block was including non-variable values like BNodes which resulted
in invalid queries. Closed [issue 2079](https://github.com/RDFLib/rdflib/issues/2079).
[PR 2084](https://github.com/RDFLib/rdflib/pull/2084).

- Only register the `rdflib.plugins.stores.berkeleydb.BerkeleyDB` as a store
plugin if the `berkeleydb` module is present.
Closed [issue 1816](https://github.com/RDFLib/rdflib/issues/1816).
[PR 2096](https://github.com/RDFLib/rdflib/pull/2096).

- Fixed serialization of BNodes in TriG.
The TriG serializer was only considering BNode references inside a single
graph and not counting the BNodes subjects as references when considering if a
BNode should be serialized as unlabeled blank nodes (i.e. `[ ]`), and as a
result it was serializing BNodes as unlabeled if they were in fact referencing
BNodes in other graphs.
[PR 2085](https://github.com/RDFLib/rdflib/pull/2085).

- Deprecated `rdflib.path.evalPath` in favor of `rdflib.path.eval_path` which is
PEP-8 compliant. [PR 2046](https://github.com/RDFLib/rdflib/pull/2046)

- Added `charset=UTF-8` to the `Content-Type` header sent when doing an update
with `SPARQLConnector`. Closed [issue
2095](https://github.com/RDFLib/rdflib/issues/2095). [PR
2112](https://github.com/RDFLib/rdflib/pull/2112).

- Removed the `rdflib.plugins.sparql.parserutils.plist` class as it served no
discernible purpose. [PR 2143](https://github.com/RDFLib/rdflib/pull/2143)

- Changed the TriG serializer to not generate prefixes for empty graph IDs.
Closed [issue 2154](https://github.com/RDFLib/rdflib/issues/2154).
[PR 2160](https://github.com/RDFLib/rdflib/pull/2160).

- Fixed handling of relative context files in the JSON-LD parser.
Closed [issue 2164](https://github.com/RDFLib/rdflib/issues/2164).
[PR 2165](https://github.com/RDFLib/rdflib/pull/2165).

- Improved failure handling in when computing QName for an unbound namespace.
[PR 2169](https://github.com/RDFLib/rdflib/pull/2169).

- Fixed a typo in the default bound namespace for `DCTERMS`.
[PR 2173](https://github.com/RDFLib/rdflib/pull/2173).

- Add support for supplying a custom namespace manager to `n3()` methods.
[PR 2174](https://github.com/RDFLib/rdflib/pull/2174).

- Fixed the query string parameters for `SPARQLConnector` when using POST method.
[PR 2180](https://github.com/RDFLib/rdflib/pull/2180).

- Fixed extra keyword argument and header handling in `SPARQLConnector` that
resulted in headers from `SPARQLConnector.update` polluting headers from
`SPARQLConnector.query` vice versa.
[PR 2183](https://github.com/RDFLib/rdflib/pull/2183)

- Added version restrictions for dependencies.
[PR 2187](https://github.com/RDFLib/rdflib/pull/2187)

- Switch to using `importlib` for getting the version of RDFLib instead of
hard-coding it in `__version__`.
[PR 2187](https://github.com/RDFLib/rdflib/pull/2187).

- Removed non-runtime extras, for building documentation, running tests and
other development operations the versions and dependencies are now
managed with Poetry.
[PR 2187](https://github.com/RDFLib/rdflib/pull/2187).

- Fixed a bug that occurred when `VALUES` was used outside a `GROUP BY` clause.
[PR 2188](https://github.com/RDFLib/rdflib/pull/2188).

- Fixed a bug that occurred when using `SELECT *` inside another `SELECT *`.
Closed [issue 1722](https://github.com/RDFLib/rdflib/issues/1722).
[PR 2190](https://github.com/RDFLib/rdflib/pull/2190).

- Added SPARQL DESCRIBE query implementation.
Closes [issue 479](https://github.com/RDFLib/rdflib/issues/479).
[PR 2221](https://github.com/RDFLib/rdflib/pull/2221).

- Fixed a bug in `rdflib.tools.defined_namespace_creator` that occurred when
multiple `rdfs:comment` were present on one resource.
[PR 2254](https://github.com/RDFLib/rdflib/pull/2254).

- Fixed `rdflib.util._iri2uri()` to not quote the `netloc` parameter.
[PR 2255](https://github.com/RDFLib/rdflib/pull/2255).

- Fixed the HexTuple parser's handling of input sources to works for more input sources.
[PR 2255](https://github.com/RDFLib/rdflib/pull/2255).

- Fixed the creation of input source objects from IO stream sources.
[PR 2255](https://github.com/RDFLib/rdflib/pull/2255).

- Eliminated the use of the deprecated `rdflib.path.evalPath` function.
[PR 2266](https://github.com/RDFLib/rdflib/pull/2266)

- Added documentation for security considerations and available mitigations.
Closed [issue 1844](https://github.com/RDFLib/rdflib/issues/1844).
[PR 2267](https://github.com/RDFLib/rdflib/pull/2270).

PRs merged since last release

* fix: validation issues with examples
[PR 2269](https://github.com/RDFLib/rdflib/pull/2269)
* feat: more type hints for `rdflib.plugins.sparql`
[PR 2268](https://github.com/RDFLib/rdflib/pull/2268)
* fix: eliminate use of deprecated `rdflib.path.evalPath`
[PR 2266](https://github.com/RDFLib/rdflib/pull/2266)
* more type-hinting for SPARQL plugin
[PR 2265](https://github.com/RDFLib/rdflib/pull/2265)
* feat: add diverse type hints
[PR 2264](https://github.com/RDFLib/rdflib/pull/2264)
* feat: add type hints to `rdflib.collection`
[PR 2263](https://github.com/RDFLib/rdflib/pull/2263)
* feat: add type hints to `rdflib.util`
[PR 2262](https://github.com/RDFLib/rdflib/pull/2262)
* feat: add type hints to `rdflib.path`
[PR 2261](https://github.com/RDFLib/rdflib/pull/2261)
* test: fix deprecation warnings
[PR 2260](https://github.com/RDFLib/rdflib/pull/2260)
* docs: update test reports
[PR 2259](https://github.com/RDFLib/rdflib/pull/2259)
* fix: small InputSource related issues
[PR 2255](https://github.com/RDFLib/rdflib/pull/2255)
* defined_namespace_creator: concatenate several rdfs:comments
[PR 2254](https://github.com/RDFLib/rdflib/pull/2254)
* feat: add parser type hints
[PR 2232](https://github.com/RDFLib/rdflib/pull/2232)
* build: bump versions
[PR 2231](https://github.com/RDFLib/rdflib/pull/2231)
* Add SPARQL DESCRIBE query implementation
[PR 2221](https://github.com/RDFLib/rdflib/pull/2221)
* build: rename minimum constraints file to evade dependabot
[PR 2209](https://github.com/RDFLib/rdflib/pull/2209)
* Fix for `SELECT *` inside `SELECT *` bug
[PR 2190](https://github.com/RDFLib/rdflib/pull/2190)
* Fixing bug applying VALUES outside of a GROUP BY
[PR 2188](https://github.com/RDFLib/rdflib/pull/2188)
* move to poetry for dependency management; consolidate more settings into pyproject.toml
[PR 2187](https://github.com/RDFLib/rdflib/pull/2187)
* build: update black to 22.12.0
[PR 2186](https://github.com/RDFLib/rdflib/pull/2186)
* Issue2179 incorrect headers
[PR 2183](https://github.com/RDFLib/rdflib/pull/2183)
* Fix missing query string params in sparqlconnector when using POST method
[PR 2180](https://github.com/RDFLib/rdflib/pull/2180)
* [pre-commit.ci] pre-commit autoupdate
[PR 2178](https://github.com/RDFLib/rdflib/pull/2178)
* Add namespace_manager argument for n3 method on Paths
[PR 2174](https://github.com/RDFLib/rdflib/pull/2174)
* fix DCTERMS prefix typo
[PR 2173](https://github.com/RDFLib/rdflib/pull/2173)
* compute_qname handle case where name could be unbound
[PR 2169](https://github.com/RDFLib/rdflib/pull/2169)
* Issue 2164
[PR 2165](https://github.com/RDFLib/rdflib/pull/2165)
* build: update black to 22.10.0
[PR 2163](https://github.com/RDFLib/rdflib/pull/2163)
* ci: switch to python 3.11 release
[PR 2162](https://github.com/RDFLib/rdflib/pull/2162)
* fix: type errors resulting from new mypy
[PR 2161](https://github.com/RDFLib/rdflib/pull/2161)
* do not write prefix for empty graph id, fix 2154
[PR 2160](https://github.com/RDFLib/rdflib/pull/2160)
* Remove redundant class
[PR 2143](https://github.com/RDFLib/rdflib/pull/2143)
* Pass `service_query` to `_buildQueryStringForServiceCall` instead of a `Match`
[PR 2134](https://github.com/RDFLib/rdflib/pull/2134)
* Add type hint to part in evalServiceQuery
[PR 2133](https://github.com/RDFLib/rdflib/pull/2133)
* Remove outdated comment
[PR 2129](https://github.com/RDFLib/rdflib/pull/2129)
* fix: type ignore compatibility with latest mypy
[PR 2127](https://github.com/RDFLib/rdflib/pull/2127)
* Remove redundant PR template
[PR 2126](https://github.com/RDFLib/rdflib/pull/2126)
* build: use 3.11.0-rc.2
[PR 2119](https://github.com/RDFLib/rdflib/pull/2119)
* build: docker images for latest release and main branch
[PR 2116](https://github.com/RDFLib/rdflib/pull/2116)
* add charset encoding to SPARQLConnector.update() request.
[PR 2112](https://github.com/RDFLib/rdflib/pull/2112)
* Add test for issue 2011
[PR 2107](https://github.com/RDFLib/rdflib/pull/2107)
* chore: rename default branch to `main`
[PR 2101](https://github.com/RDFLib/rdflib/pull/2101)
* Correct a typo in test_roundtrip.py
[PR 2100](https://github.com/RDFLib/rdflib/pull/2100)
* feat: add type hints to `rdflib.query` and related
[PR 2097](https://github.com/RDFLib/rdflib/pull/2097)
* fix: Don't register berkelydb as a store if it is not available on the system
[PR 2096](https://github.com/RDFLib/rdflib/pull/2096)
* feat: add type hints to `rdflib.plugins.sparql.{algebra,operators}`
[PR 2094](https://github.com/RDFLib/rdflib/pull/2094)
* test: Fix `exclude_lines` for coverage
[PR 2093](https://github.com/RDFLib/rdflib/pull/2093)
* test: content-type handling with SPARQLStore + CONSTRUCT queries
[PR 2092](https://github.com/RDFLib/rdflib/pull/2092)
* ci: publish test reports for mypy and pytest
[PR 2091](https://github.com/RDFLib/rdflib/pull/2091)
* test: convert more test from unittest to pytest
[PR 2089](https://github.com/RDFLib/rdflib/pull/2089)
* ci: switch from 3.11.0-beta.4 to 3.11.0-rc.1
[PR 2087](https://github.com/RDFLib/rdflib/pull/2087)
* fix: issue with trig reference counting across graphs
[PR 2085](https://github.com/RDFLib/rdflib/pull/2085)
* Generate VALUES block for federated queries with variables only
[PR 2084](https://github.com/RDFLib/rdflib/pull/2084)
* docs: Add a contributing guide
[PR 2082](https://github.com/RDFLib/rdflib/pull/2082)
* feat: Add type hints to rdflib.graph
[PR 2080](https://github.com/RDFLib/rdflib/pull/2080)
* fix: handling of Literal datatype
[PR 2076](https://github.com/RDFLib/rdflib/pull/2076)
* test: convert some `unittest` based tests to `pytest`
[PR 2075](https://github.com/RDFLib/rdflib/pull/2075)
* test: honour lax cardinality from test manifests
[PR 2074](https://github.com/RDFLib/rdflib/pull/2074)
* Fix passing ConjunctiveGraph as namespace_manager
[PR 2073](https://github.com/RDFLib/rdflib/pull/2073)
* fix: always parse HexTuple files as utf-8
[PR 2070](https://github.com/RDFLib/rdflib/pull/2070)
* fix: narrow the context identifier type from `Node` to `IdentifiedNode`
[PR 2069](https://github.com/RDFLib/rdflib/pull/2069)
* build: set a minimum version for flakeheaven
[PR 2068](https://github.com/RDFLib/rdflib/pull/2068)
* chore: remove pre Python 3.7 compatibility code for shutil
[PR 2066](https://github.com/RDFLib/rdflib/pull/2066)
* fix: issues with string destination handling in `{Graph,Result}.serialize`
[PR 2065](https://github.com/RDFLib/rdflib/pull/2065)
* build: fix Taskfile.yml for Windows
[PR 2064](https://github.com/RDFLib/rdflib/pull/2064)
* test: convert `test/test_sparql/test_sparql_parser.py` to pytest
[PR 2063](https://github.com/RDFLib/rdflib/pull/2063)
* test: convert `test/test_sparql/test_construct_bindings.py` to pytest
[PR 2062](https://github.com/RDFLib/rdflib/pull/2062)
* test: convert `test/test_parsers/test_nquads.py` to pytest
[PR 2061](https://github.com/RDFLib/rdflib/pull/2061)
* test: convert `test/test_namespace/test_namespace.py` to pytest
[PR 2060](https://github.com/RDFLib/rdflib/pull/2060)
* docs: add DOI for RDFLib
[PR 2058](https://github.com/RDFLib/rdflib/pull/2058)
* feat: add type hints for `rdflib.store` and `rdflib.plugins.stores`
[PR 2057](https://github.com/RDFLib/rdflib/pull/2057)
* Toplevel n80x
[PR 2046](https://github.com/RDFLib/rdflib/pull/2046)
* docs: add some additional badges
[PR 2045](https://github.com/RDFLib/rdflib/pull/2045)
* fix: SPARQL XML result parsing
[PR 2044](https://github.com/RDFLib/rdflib/pull/2044)
* chore: remove pre python 3.5 regex related workaround
[PR 2042](https://github.com/RDFLib/rdflib/pull/2042)
* fix: import xml.sax.handler from the right place
[PR 2041](https://github.com/RDFLib/rdflib/pull/2041)
* test: remove python 2.4 specific behaviour in test
[PR 2040](https://github.com/RDFLib/rdflib/pull/2040)
* build: remove drone config
[PR 2037](https://github.com/RDFLib/rdflib/pull/2037)
* docs: fix sphinx nitpicky issues
[PR 2036](https://github.com/RDFLib/rdflib/pull/2036)
* build: Gitpod integration and Google Cloud Shell Button
[PR 2034](https://github.com/RDFLib/rdflib/pull/2034)
* Infixowl cleanup iii
[PR 2033](https://github.com/RDFLib/rdflib/pull/2033)
* build: Taskfile improvements
[PR 2032](https://github.com/RDFLib/rdflib/pull/2032)
* docs: removed "Other changes" from CHANGELOG.md
[PR 2031](https://github.com/RDFLib/rdflib/pull/2031)
* Infixowl coverage ii
[PR 2024](https://github.com/RDFLib/rdflib/pull/2024)
* add chunk serializer & tests
[PR 1968](https://github.com/RDFLib/rdflib/pull/1968)

6.2.0

This is a minor release that includes bug fixes and features.

User facing changes

This section lists changes that have a potential impact on users of RDFLib,
changes with no user impact are not included in this section.

- SPARQL: Fixed handing of `HAVING` clause with variable composition. Closed
[issue 936](https://github.com/RDFLib/rdflib/issues/936) and [issue
935](https://github.com/RDFLib/rdflib/pull/935), [PR
1093](https://github.com/RDFLib/rdflib/pull/1093).
- JSON-LD parser: better support for content negotiation. Closed [issue
1423](https://github.com/RDFLib/rdflib/issues/1423), [PR
1436](https://github.com/RDFLib/rdflib/pull/1436).
- Removed the following functions that were marked as deprecated and scheduled
for removal in version 6.0.0: `Graph.load`, `Graph.seq`, `Graph.comment`,
`Graph.label`. [PR 1527](https://github.com/RDFLib/rdflib/pull/1527).
- Use `functools.total_ordering` to implement most comparison operations for
`rdflib.paths.Path`. Closed [issue
685](https://github.com/RDFLib/rdflib/issues/685), [PR
1528](https://github.com/RDFLib/rdflib/pull/1528).
- Fixed error handling for invalid URIs. Closed [issue
821](https://github.com/RDFLib/rdflib/issues/821), [PR
1529](https://github.com/RDFLib/rdflib/pull/1529).
- InfixOWL: Fixed handling of cardinality 0. Closed [issue
1453](https://github.com/RDFLib/rdflib/issues/1453) and [issue
944](https://github.com/RDFLib/rdflib/pull/1530), [PR
1530](https://github.com/RDFLib/rdflib/pull/1530).
- Added quad support to handling to `rdflib.graph.ReadOnlyGraphAggregate.quads`.
Closed [issue 430](https://github.com/RDFLib/rdflib/issues/430), [PR
1590](https://github.com/RDFLib/rdflib/pull/1590)
- Fixed base validation used when joining URIs. [PR
1607](https://github.com/RDFLib/rdflib/pull/1607).
- Add GEO defined namespace for GeoSPARQL. Closed [issue
1371](https://github.com/RDFLib/rdflib/issues/1371), [PR
1622](https://github.com/RDFLib/rdflib/pull/1622).
- Explicitly raise exception when
`rdflib.plugins.stores.sparqlstore.SPARQLStore.update` is called. Closed
[issue 1032](https://github.com/RDFLib/rdflib/issues/1032), [PR
1623](https://github.com/RDFLib/rdflib/pull/1623).
- Added `rdflib.plugins.sparql.processor.prepareUpdate`. Closed [issue
272](https://github.com/RDFLib/rdflib/issues/272) and [discussion
1581](https://github.com/RDFLib/rdflib/discussions/1581), [PR
1624](https://github.com/RDFLib/rdflib/pull/1624).
- Added `rdflib.namespace.DefinedNamespaceMeta.__dir__`. Closed [issue
1593](https://github.com/RDFLib/rdflib/issues/1593), [PR
1626](https://github.com/RDFLib/rdflib/pull/1626).
- Removed `TypeCheckError`, `SubjectTypeError`, `PredicateTypeError`,
`ObjectTypeError` and `ContextTypeError` as these exceptions are not raised by
RDFLib and their existence will only confuse users which may expect them to be
used. Also remove corresponding `check_context`, `check_subject`,
`check_predicate`, `check_object`, `check_statement`, `check_pattern` that is
unused. [PR 1640](https://github.com/RDFLib/rdflib/pull/1640).
- Improved the population of the `Accept` HTTP header so that it is correctly
populated for all formats. [PR
1643](https://github.com/RDFLib/rdflib/pull/1643).
- Fixed some issues with SPARQL Algebra handling/translation. [PR
1645](https://github.com/RDFLib/rdflib/pull/1645).
- Add `nquads` to recognized file extensions.
[PR 1653](https://github.com/RDFLib/rdflib/pull/1653).
- Fixed issues that prevented HexTuples roundtripping.
[PR 1656](https://github.com/RDFLib/rdflib/pull/1656).
- Make `rdflib.plugins.sparql.operators.unregister_custom_function` idempotent.
Closed [issue 1492](https://github.com/RDFLib/rdflib/issues/1492),
[PR 1659](https://github.com/RDFLib/rdflib/pull/1659).
- Fixed the handling of escape sequences in the N-Triples and N-Quads parsers.
These parsers will now correctly handle strings like `"\\r"`. The time it
takes for these parsers to parse strings with escape sequences will be
increased, and the increase will be correlated with the amount of escape
sequences that occur in a string. For strings with many escape sequences the
parsing speed seems to be almost 4 times slower. Closed [issue
1655](https://github.com/RDFLib/rdflib/issues/1655), [PR
1663](https://github.com/RDFLib/rdflib/pull/1663).
- Also marked `rdflib.compat.decodeStringEscape` as deprecated as this
function is not used anywhere in RDFLib anymore and the utility that it does
provide is not implemented correctly. It will be removed in RDFLib 7.0.0
- Added an abstract class `IdentifiedNode` as a superclass of `BNode` and
`URIRef`. Closed [issue 1526](https://github.com/RDFLib/rdflib/issues/1526),
[PR 1680](https://github.com/RDFLib/rdflib/pull/1680).
- Fixed turtle serialization of `rdf:type` in subject, object. Closed [issue
1649](https://github.com/RDFLib/rdflib/issues/1649), [PR
1649](https://github.com/RDFLib/rdflib/pull/1684).
- Fixed turtle serialization of PNames that contain brackets. Closed [issue
1661](https://github.com/RDFLib/rdflib/issues/1661), [PR
1678](https://github.com/RDFLib/rdflib/pull/1678).
- Added support for selecting which namespace prefixes to bind. Closed [issue
1679](https://github.com/RDFLib/rdflib/issues/1679) and [issue #1880](https://github.com/RDFLib/rdflib/pull/1880), [PR
1686](https://github.com/RDFLib/rdflib/pull/1686), [PR
1845](https://github.com/RDFLib/rdflib/pull/1845) and [PR
2018](https://github.com/RDFLib/rdflib/pull/2018).
- Also added `ConjunctiveGraph.get_graph`.
- Also added an `override` argument to `Store.bind` which behaves similarly to
the `override` parameter for `NamespaceManager.bind`.
- Also fixed handing of support of the `override` parameter to
`NamespaceManager.bind` by passing.
- Eliminated a `DeprecationWarning` related to plugin loading [issue
1631](https://github.com/RDFLib/rdflib/issues/1631), [PR
1694](https://github.com/RDFLib/rdflib/pull/1694).
- Removed the `rdflib.graph.ContextNode` and `rdflib.graph.DatasetQuad` type
aliases. These were not being widely used in RDFLib and were also not correct.
[PR 1695](https://github.com/RDFLib/rdflib/pull/1695).
- Added `DefinedNamespace.as_jsonld_context`. [PR
1706](https://github.com/RDFLib/rdflib/pull/1706).
- Added `rdflib.namespace.WGS` for WGS84. Closed [issue
1709](https://github.com/RDFLib/rdflib/issues/1709), [PR
1710](https://github.com/RDFLib/rdflib/pull/1710).
- Improved performance of `DefinedNamespace` by caching attribute values. [PR
1718](https://github.com/RDFLib/rdflib/pull/1718).
- Only configure python logging if `sys.stderr` has a `isatty` attribute. Closed
[issue 1760](https://github.com/RDFLib/rdflib/issues/1760), [PR
1761](https://github.com/RDFLib/rdflib/pull/1761).
- Removed unused `rdflib.compat.etree_register_namespace`. [PR
1768](https://github.com/RDFLib/rdflib/pull/1768).
- Fixed numeric shortcut handling in `rdflib.util.from_n3`. Closed [issue
1769](https://github.com/RDFLib/rdflib/issues/1769), [PR
1771](https://github.com/RDFLib/rdflib/pull/1771).
- Add ability to detect and mark ill-typed literals. Closed [issue
1757](https://github.com/RDFLib/rdflib/issues/1757) and [issue
848](https://github.com/RDFLib/rdflib/issues/848), [PR
1773](https://github.com/RDFLib/rdflib/pull/1773) and [PR
2003](https://github.com/RDFLib/rdflib/pull/2003).
- Optimized `NamespaceManager.compute_qname` by caching validity. [PR
1779](https://github.com/RDFLib/rdflib/pull/1779).
- SPARQL: Fixed the handling of `EXISTS` inside `BIND` for SPARQL. This was
raising an exception during evaluation before but is now correctly handled.
Closed [issue 1472](https://github.com/RDFLib/rdflib/issues/1472), [PR
1794](https://github.com/RDFLib/rdflib/pull/1794).
- Propagate exceptions from SPARQL TSV result parser. Closed [issue
1477](https://github.com/RDFLib/rdflib/issues/1477), [PR
1809](https://github.com/RDFLib/rdflib/pull/1809)
- Eliminate usage of `rdflib.term.RDFLibGenid` as a type as this caused issues
with querying. Closed [issue
1808](https://github.com/RDFLib/rdflib/issues/1808), [PR
1821](https://github.com/RDFLib/rdflib/pull/1821)
- Fixed handing of `DefinedNamespace` control attributes so that
`inspect.signature` works correctly on defined namespaces. [PR
1825](https://github.com/RDFLib/rdflib/pull/1825).
- Fixed namespace rebinding in `Memory`, `SimpleMemory` and `BerkelyDB` stores.
Closed [issue 1826](https://github.com/RDFLib/rdflib/issues/1826), [PR
1843](https://github.com/RDFLib/rdflib/pull/1843).
- Fixed issues with the N3 serializer. Closed [issue
1701](https://github.com/RDFLib/rdflib/issues/1701) and [issue
1807](https://github.com/RDFLib/rdflib/issues/1807), [PR
1858](https://github.com/RDFLib/rdflib/pull/1858):
- The N3 serializer was incorrectly considers a subject as seralized if it is serialized in a quoted graph.
- The N3 serializer does not consider that the predicate of a triple can also
be a graph.
- Added `NamespaceManager.expand_curie`. Closed [issue
1868](https://github.com/RDFLib/rdflib/issues/1868), [PR
1869](https://github.com/RDFLib/rdflib/pull/1869).
- Added `Literal.__sub__` and support for datetimes to both `Literal.__add__`
and `Literal.__sub__`. [PR 1870](https://github.com/RDFLib/rdflib/pull/1870).
- SPARQL: Fix `None`/undefined handing in `GROUP_CONCAT`. Closed [issue
1467](https://github.com/RDFLib/rdflib/issues/1467), [PR
1887](https://github.com/RDFLib/rdflib/pull/1887).
- SPARQL: Fixed result handling for `SERVICE` directive. Closed [issue
1278](https://github.com/RDFLib/rdflib/issues/1278), [PR
1894](https://github.com/RDFLib/rdflib/pull/1894).
- Change the skolem default authority for RDFLib from `http://rdlib.net/` to
`https://rdflib.github.io` and also change other uses of `http://rdlib.net/`
to `https://rdflib.github.io`. Closed [issue
1824](https://github.com/RDFLib/rdflib/issues/1824), [PR
1901](https://github.com/RDFLib/rdflib/pull/1901).
- Fixes handling of non-ascii characters in IRIs. Closed [issue
1429](https://github.com/RDFLib/rdflib/issues/1429), [PR
1902](https://github.com/RDFLib/rdflib/pull/1902).
- Pass `generate` to `NamespaceManager.compute_qname` from
`NamespaceManager.compute_qname_strict` so it raises an error in the same
case as the "non-strict" version. [PR
1934](https://github.com/RDFLib/rdflib/pull/1934).
- Log warnings when encountering ill-typed literals.
[PR 1944](https://github.com/RDFLib/rdflib/pull/1944).
- Fixed error handling in TriX serializer. [PR
1945](https://github.com/RDFLib/rdflib/pull/1945).
- Fixed QName generation in XML serializer.
[PR 1951](https://github.com/RDFLib/rdflib/pull/1951)
- Remove unnecessary hex expansion for PN_LOCAL in SPARQL parser. Closed [issue
1957](https://github.com/RDFLib/rdflib/issues/1957),
[PR 1959](https://github.com/RDFLib/rdflib/pull/1959).
- Changed the TriX parser to support both `trix` and `TriX` as root element. [PR
1966](https://github.com/RDFLib/rdflib/pull/1966).
- Fix SPARQL CSV result serialization of blank nodes.
[PR 1979](https://github.com/RDFLib/rdflib/pull/1979).
- Added a `URIRef.fragment` property.
[PR 1991](https://github.com/RDFLib/rdflib/pull/1991).
- Remove superfluous newline from N-Triples output. Closed [issue
1998](https://github.com/RDFLib/rdflib/issues/1998), [PR
1999](https://github.com/RDFLib/rdflib/pull/1999).
- Added a bunch of type hints. The following modules have nearly complete type hints now:
- `rdflib.namespace`
- `rdflib.term`
- `rdflib.parser`

PRs merged since last release

* Fallback to old `Store.bind` signature on `TypeError`
[PR 2018](https://github.com/RDFLib/rdflib/pull/2018)
* Fix/ignore flake8 errors in `rdflib/parser.py`
[PR 2016](https://github.com/RDFLib/rdflib/pull/2016)
* Update black to 22.6.0
[PR 2015](https://github.com/RDFLib/rdflib/pull/2015)
* Fix for 1873 avoid AttributeError raised ...
[PR 2013](https://github.com/RDFLib/rdflib/pull/2013)
* Change Literal.ill_formed to Literal.ill_typed
[PR 2003](https://github.com/RDFLib/rdflib/pull/2003)
* Continuation of infixowl update and coverage improvement
[PR 2001](https://github.com/RDFLib/rdflib/pull/2001)
* Update test README
[PR 2000](https://github.com/RDFLib/rdflib/pull/2000)
* Remove extra newline from N-Triples output
[PR 1999](https://github.com/RDFLib/rdflib/pull/1999)
* Infixowl cleanup
[PR 1996](https://github.com/RDFLib/rdflib/pull/1996)
* Add line-specific noqa to `infixowl.py`, remove exclusion from pyproject.toml
[PR 1994](https://github.com/RDFLib/rdflib/pull/1994)
* Bump actions/setup-python from 3 to 4
[PR 1992](https://github.com/RDFLib/rdflib/pull/1992)
* Add fragment property to URIRef
[PR 1991](https://github.com/RDFLib/rdflib/pull/1991)
* test: run tests on python 3.11 also
[PR 1989](https://github.com/RDFLib/rdflib/pull/1989)
* test: rework SPARQL test suite
[PR 1988](https://github.com/RDFLib/rdflib/pull/1988)
* test: rework RDF/XML test suite
[PR 1987](https://github.com/RDFLib/rdflib/pull/1987)
* Rework turtle-like test suites
[PR 1986](https://github.com/RDFLib/rdflib/pull/1986)
* Improve docstring of `Graph.serialize`f
[PR 1984](https://github.com/RDFLib/rdflib/pull/1984)
* Add more tests for graph_diff
[PR 1983](https://github.com/RDFLib/rdflib/pull/1983)
* Convert some more graph tests to pytest
[PR 1982](https://github.com/RDFLib/rdflib/pull/1982)
* Fix SPARQL test data
[PR 1981](https://github.com/RDFLib/rdflib/pull/1981)
* Add more namespaces to test utils
[PR 1980](https://github.com/RDFLib/rdflib/pull/1980)
* Fix SPARQL CSV result serialization of blank nodes
[PR 1979](https://github.com/RDFLib/rdflib/pull/1979)
* correct italic markup in plugin stores docs
[PR 1977](https://github.com/RDFLib/rdflib/pull/1977)
* escape literal * symbol in `rdflib.paths` docs
[PR 1976](https://github.com/RDFLib/rdflib/pull/1976)
* Update sphinx requirement from <5 to <6
[PR 1975](https://github.com/RDFLib/rdflib/pull/1975)
* Remove `pytest-subtest`
[PR 1973](https://github.com/RDFLib/rdflib/pull/1973)
* style: fix/ignore flake8 errors in store related code
[PR 1971](https://github.com/RDFLib/rdflib/pull/1971)
* build: speed up flake8 by ignoring test data
[PR 1970](https://github.com/RDFLib/rdflib/pull/1970)
* Fix trix parser
[PR 1966](https://github.com/RDFLib/rdflib/pull/1966)
* Add more typing for SPARQL
[PR 1965](https://github.com/RDFLib/rdflib/pull/1965)
* style: fix/ignore flake8 errors in `rdflib/plugins/sparql/`
[PR 1964](https://github.com/RDFLib/rdflib/pull/1964)
* test: fix `None` comparisons
[PR 1963](https://github.com/RDFLib/rdflib/pull/1963)
* style: fix/ingore some flake8 errors in `rdflib/graph.py`
[PR 1962](https://github.com/RDFLib/rdflib/pull/1962)
* test: convert `test/jsonld/test_util.py` to pytest
[PR 1961](https://github.com/RDFLib/rdflib/pull/1961)
* Fix for issue1957 sparql parser percent encoded reserved chars
[PR 1959](https://github.com/RDFLib/rdflib/pull/1959)
* test: convert `test_graph_http.py` to pytest
[PR 1956](https://github.com/RDFLib/rdflib/pull/1956)
* edit tabs to spaces
[PR 1952](https://github.com/RDFLib/rdflib/pull/1952)
* fix sonarcloud-reported bug in xmlwriter, add test
[PR 1951](https://github.com/RDFLib/rdflib/pull/1951)
* test: convert test_literal.py to pytest
[PR 1949](https://github.com/RDFLib/rdflib/pull/1949)
* style: ignore flake8 name errors for existing names
[PR 1948](https://github.com/RDFLib/rdflib/pull/1948)
* test: remove unused imports in test code
[PR 1947](https://github.com/RDFLib/rdflib/pull/1947)
* test: fix `GraphHelper.quad_set` handling of Dataset
[PR 1946](https://github.com/RDFLib/rdflib/pull/1946)
* fix for sonarcloud-reported bug
[PR 1945](https://github.com/RDFLib/rdflib/pull/1945)
* Logging exceptions from Literal value converters
[PR 1944](https://github.com/RDFLib/rdflib/pull/1944)
* fix outmoded `x and x or y` idiom in `infixowl.py`
[PR 1943](https://github.com/RDFLib/rdflib/pull/1943)
* Address lingering instances of deprecated `tempfile.mktemp`
[PR 1942](https://github.com/RDFLib/rdflib/pull/1942)
* Add CODEOWNERS
[PR 1941](https://github.com/RDFLib/rdflib/pull/1941)
* Bump actions/setup-python from 2 to 3
[PR 1940](https://github.com/RDFLib/rdflib/pull/1940)
* Bump actions/checkout from 2 to 3
[PR 1939](https://github.com/RDFLib/rdflib/pull/1939)
* Bump actions/cache from 2 to 3
[PR 1938](https://github.com/RDFLib/rdflib/pull/1938)
* Bump actions/setup-java from 2 to 3
[PR 1937](https://github.com/RDFLib/rdflib/pull/1937)
* test: move rdfs.ttl into `test/data/defined_namespaces`
[PR 1936](https://github.com/RDFLib/rdflib/pull/1936)
* feat: add tests and typing for `rdflib.utils.{get_tree,find_roots}`
[PR 1935](https://github.com/RDFLib/rdflib/pull/1935)
* Passing "generate" option through in compute_qname_strict
[PR 1934](https://github.com/RDFLib/rdflib/pull/1934)
* build: add GitHub Actions to dependabot
[PR 1933](https://github.com/RDFLib/rdflib/pull/1933)
* test: move `EARL` and `RDFT` namespaces to separate files
[PR 1931](https://github.com/RDFLib/rdflib/pull/1931)
* Removed old and unused `test/data/suites/DAWG/data-r2`
[PR 1930](https://github.com/RDFLib/rdflib/pull/1930)
* Added SPARQL unicode numeric codepoint escape tests
[PR 1929](https://github.com/RDFLib/rdflib/pull/1929)
* style: enable and baseline flakeheaven
[PR 1928](https://github.com/RDFLib/rdflib/pull/1928)
* feat: add typing for `rdflib/plugins/sparql`
[PR 1926](https://github.com/RDFLib/rdflib/pull/1926)
* Switch to latest DAWG test suite
[PR 1925](https://github.com/RDFLib/rdflib/pull/1925)
* Move `test/data/suites/DAWG/rdflib`
[PR 1924](https://github.com/RDFLib/rdflib/pull/1924)
* style: normalize quoting with black
[PR 1916](https://github.com/RDFLib/rdflib/pull/1916)
* Added test for example at CBD definition. Fixes 1914.
[PR 1915](https://github.com/RDFLib/rdflib/pull/1915)
* Rename `test/data/suites/DAWG/data-r2-1.0`
[PR 1908](https://github.com/RDFLib/rdflib/pull/1908)
* Move `DAWG/data-sparql11` to `w3c/sparql11/data-sparql11`
[PR 1907](https://github.com/RDFLib/rdflib/pull/1907)
* Add n3 test suite runner
[PR 1906](https://github.com/RDFLib/rdflib/pull/1906)
* Migrated the various `test_*_w3c.py` test files into `test/test_w3c_spec/`
[PR 1904](https://github.com/RDFLib/rdflib/pull/1904)
* Fixes 1429, add `iri2uri`
[PR 1902](https://github.com/RDFLib/rdflib/pull/1902)
* Fix for 1824 `s,http://rdlib.net,http://rdflib.net,g`
[PR 1901](https://github.com/RDFLib/rdflib/pull/1901)
* test: Add more tests for Graph serialize
[PR 1898](https://github.com/RDFLib/rdflib/pull/1898)
* test: earlier assert rewrite for test utitlities
[PR 1897](https://github.com/RDFLib/rdflib/pull/1897)
* test: Add more tests for test utilities
[PR 1896](https://github.com/RDFLib/rdflib/pull/1896)
* test: add more graph variants highlighting bugs
[PR 1895](https://github.com/RDFLib/rdflib/pull/1895)
* Fix simple literals returned as NULL using SERVICE (issue 1278)
[PR 1894](https://github.com/RDFLib/rdflib/pull/1894)
* W3 test reorg
[PR 1891](https://github.com/RDFLib/rdflib/pull/1891)
* Improved mock HTTP Server
[PR 1888](https://github.com/RDFLib/rdflib/pull/1888)
* Fix `None`/undefined handing in GROUP_CONCAT
[PR 1887](https://github.com/RDFLib/rdflib/pull/1887)
* Move test utility modules into `test/utils/`
[PR 1879](https://github.com/RDFLib/rdflib/pull/1879)
* Move coveralls to GitHub Actions
[PR 1877](https://github.com/RDFLib/rdflib/pull/1877)
* test: run doctest on rst files in `docs/`
[PR 1875](https://github.com/RDFLib/rdflib/pull/1875)
* Add tests demonstrating forward-slash behaviors in Turtle, JSON-LD, and SPARQL
[PR 1872](https://github.com/RDFLib/rdflib/pull/1872)
* Literal datetime sub
[PR 1870](https://github.com/RDFLib/rdflib/pull/1870)
* resolve issue1868, add a method to expand qname to URI
[PR 1869](https://github.com/RDFLib/rdflib/pull/1869)
* build: add Taskfile with development tasks
[PR 1867](https://github.com/RDFLib/rdflib/pull/1867)
* Delete basically-unusable example
[PR 1866](https://github.com/RDFLib/rdflib/pull/1866)
* Move `test/translate_algebra` into `test/data`
[PR 1864](https://github.com/RDFLib/rdflib/pull/1864)
* test: move `test/variants` into `test/data`
[PR 1862](https://github.com/RDFLib/rdflib/pull/1862)
* test: convert `test/test_serializers/test_serializer.py` to pytest
[PR 1861](https://github.com/RDFLib/rdflib/pull/1861)
* Add remote file fetcher and N3 test suite
[PR 1860](https://github.com/RDFLib/rdflib/pull/1860)
* fix: two issues with the N3 serializer
[PR 1858](https://github.com/RDFLib/rdflib/pull/1858)
* Tell coveragepy to ignore type checking code and `...`
[PR 1855](https://github.com/RDFLib/rdflib/pull/1855)
* docs: switch to sphinx-autodoc-typehints
[PR 1854](https://github.com/RDFLib/rdflib/pull/1854)
* More type hints for `rdflib.graph` and related
[PR 1853](https://github.com/RDFLib/rdflib/pull/1853)
* Remove testing and debug code from rdflib
[PR 1849](https://github.com/RDFLib/rdflib/pull/1849)
* text: fix pytest config
[PR 1846](https://github.com/RDFLib/rdflib/pull/1846)
* fix: Raise ValueError for unsupported `bind_namespace` values
[PR 1845](https://github.com/RDFLib/rdflib/pull/1845)
* fix: namespace rebinding in `Memory`, `SimpleMemory` and `BerkelyDB` stores.
[PR 1843](https://github.com/RDFLib/rdflib/pull/1843)
* test re-org
[PR 1838](https://github.com/RDFLib/rdflib/pull/1838)
* fix: DefinedNamespace: fixed handling of control attributes.
[PR 1825](https://github.com/RDFLib/rdflib/pull/1825)
* docs: change term reference to italicized
[PR 1823](https://github.com/RDFLib/rdflib/pull/1823)
* Fix issue 1808
[PR 1821](https://github.com/RDFLib/rdflib/pull/1821)
* build: disable building of epub on readthedocs.org
[PR 1820](https://github.com/RDFLib/rdflib/pull/1820)
* docs: fix sphinx warnings
[PR 1818](https://github.com/RDFLib/rdflib/pull/1818)
* style: fix isort config
[PR 1817](https://github.com/RDFLib/rdflib/pull/1817)
* Migrate to pytest, relocate in subfolder
[PR 1813](https://github.com/RDFLib/rdflib/pull/1813)
* test: add a test for n3 serialization with formula
[PR 1812](https://github.com/RDFLib/rdflib/pull/1812)
* refactor: convert `test_n3.py` to pytest
[PR 1811](https://github.com/RDFLib/rdflib/pull/1811)
* test: Add tests for SPARQL parsing and serialization
[PR 1810](https://github.com/RDFLib/rdflib/pull/1810)
* fix: propagate exceptions from SPARQL TSV result parser
[PR 1809](https://github.com/RDFLib/rdflib/pull/1809)
* Migrate more tests to pytest
[PR 1806](https://github.com/RDFLib/rdflib/pull/1806)
* Convert `test_sparql/test_tsvresults.py` to pytest
[PR 1805](https://github.com/RDFLib/rdflib/pull/1805)
* Ignore pyparsing type hints
[PR 1802](https://github.com/RDFLib/rdflib/pull/1802)
* Add two xfails related to Example 2 from RDF 1.1 TriG specification
[PR 1801](https://github.com/RDFLib/rdflib/pull/1801)
* change pytest.skip to pytest.xfail
[PR 1799](https://github.com/RDFLib/rdflib/pull/1799)
* Black tests
[PR 1798](https://github.com/RDFLib/rdflib/pull/1798)
* Convert `test/test_util.py` to `pytest`
[PR 1795](https://github.com/RDFLib/rdflib/pull/1795)
* Fix handling of EXISTS inside BIND
[PR 1794](https://github.com/RDFLib/rdflib/pull/1794)
* update test_graph_generators to import from test.data
[PR 1792](https://github.com/RDFLib/rdflib/pull/1792)
* Test reorg (continued)
[PR 1788](https://github.com/RDFLib/rdflib/pull/1788)
* Edit readme
[PR 1787](https://github.com/RDFLib/rdflib/pull/1787)
* Add tests for computing qname on invalid URIs
[PR 1783](https://github.com/RDFLib/rdflib/pull/1783)
* Convert namespace tests to pytest
[PR 1782](https://github.com/RDFLib/rdflib/pull/1782)
* Update to black 22.3.0 because of issue with click
[PR 1780](https://github.com/RDFLib/rdflib/pull/1780)
* Isvaliduri optimization
[PR 1779](https://github.com/RDFLib/rdflib/pull/1779)
* Add tests for the parsing of literals for the turtle family of formats
[PR 1778](https://github.com/RDFLib/rdflib/pull/1778)
* Migrate some tests to pytest
[PR 1774](https://github.com/RDFLib/rdflib/pull/1774)
* Add ability to detect and mark ill-typed literals
[PR 1773](https://github.com/RDFLib/rdflib/pull/1773)
* Fix for issue1769
[PR 1771](https://github.com/RDFLib/rdflib/pull/1771)
* Remove unused compatability function
[PR 1768](https://github.com/RDFLib/rdflib/pull/1768)
* Add pull request guidelines and template.
[PR 1767](https://github.com/RDFLib/rdflib/pull/1767)
* Rename some tests
[PR 1766](https://github.com/RDFLib/rdflib/pull/1766)
* Add config for readthedocs.org
[PR 1764](https://github.com/RDFLib/rdflib/pull/1764)
* Fix black
[PR 1763](https://github.com/RDFLib/rdflib/pull/1763)
* Check if sys.stderr has isatty
[PR 1761](https://github.com/RDFLib/rdflib/pull/1761)
* Remove redundant type ignores and fix typing errors
[PR 1759](https://github.com/RDFLib/rdflib/pull/1759)
* Add documentation about type hints
[PR 1751](https://github.com/RDFLib/rdflib/pull/1751)
* Enable showing typehints in sphinx function/method signature and content
[PR 1728](https://github.com/RDFLib/rdflib/pull/1728)
* Update reference to black.toml
[PR 1721](https://github.com/RDFLib/rdflib/pull/1721)
* black formatting for rdflib/store.py
[PR 1720](https://github.com/RDFLib/rdflib/pull/1720)
* Use the correct warnings module
[PR 1719](https://github.com/RDFLib/rdflib/pull/1719)
* `DefinedNamespaceMeta.__getitem__` is slow
[PR 1718](https://github.com/RDFLib/rdflib/pull/1718)
* Introduce WGS84 DefinedNamespace
[PR 1710](https://github.com/RDFLib/rdflib/pull/1710)
* 1699 Document `Graph` behavior regarding context in constructor docstring
[PR 1707](https://github.com/RDFLib/rdflib/pull/1707)
* Generate JSON-LD context from a DefinedNamespace
[PR 1706](https://github.com/RDFLib/rdflib/pull/1706)
* Use the `property` built-in as a decorator
[PR 1703](https://github.com/RDFLib/rdflib/pull/1703)
* Apply IdentifiedNode to Graph iterators
[PR 1697](https://github.com/RDFLib/rdflib/pull/1697)
* Remove singly-used alias obviated by IdentifiedNode
[PR 1695](https://github.com/RDFLib/rdflib/pull/1695)
* Unify plugin loading
[PR 1694](https://github.com/RDFLib/rdflib/pull/1694)
* Rename black.toml to pyproject.toml
[PR 1692](https://github.com/RDFLib/rdflib/pull/1692)
* Improved tox config
[PR 1691](https://github.com/RDFLib/rdflib/pull/1691)
* Add isort
[PR 1689](https://github.com/RDFLib/rdflib/pull/1689)
* Fix black
[PR 1688](https://github.com/RDFLib/rdflib/pull/1688)
* Bind prefixes choices
[PR 1686](https://github.com/RDFLib/rdflib/pull/1686)
* Fix turtle serialization of `rdf:type` in subject, object
[PR 1684](https://github.com/RDFLib/rdflib/pull/1684)
* Add typing to rdflib.term
[PR 1683](https://github.com/RDFLib/rdflib/pull/1683)
* Add a class diagram for terms.
[PR 1682](https://github.com/RDFLib/rdflib/pull/1682)
* Add typing to rdflib.namespace
[PR 1681](https://github.com/RDFLib/rdflib/pull/1681)
* Add IdentifiedNode abstract intermediary class
[PR 1680](https://github.com/RDFLib/rdflib/pull/1680)
* Fix turtle serialization of PNames that contain brackets
[PR 1678](https://github.com/RDFLib/rdflib/pull/1678)
* Add a test case for a prefix followed by dot in Turtle format
[PR 1677](https://github.com/RDFLib/rdflib/pull/1677)
* Bump sphinx from 4.3.2 to 4.4.0
[PR 1675](https://github.com/RDFLib/rdflib/pull/1675)
* pre-commit and pre-commit-ci
[PR 1672](https://github.com/RDFLib/rdflib/pull/1672)
* Eliminate star import
[PR 1667](https://github.com/RDFLib/rdflib/pull/1667)
* Fixed the handling of escape sequences in the ntriples and nquads parsers
[PR 1663](https://github.com/RDFLib/rdflib/pull/1663)
* Remove narrow build detection
[PR 1660](https://github.com/RDFLib/rdflib/pull/1660)
* Make unregister_custom_function idempotent
[PR 1659](https://github.com/RDFLib/rdflib/pull/1659)
* Allow hext to participate in RDF format roundtripping
[PR 1656](https://github.com/RDFLib/rdflib/pull/1656)
* change tests to use urn:example
[PR 1654](https://github.com/RDFLib/rdflib/pull/1654)
* add nquads to recognised file extensions
[PR 1653](https://github.com/RDFLib/rdflib/pull/1653)
* Don't update `SUFFIX_FORMAT_MAP` in `plugins/parsers/jsonld.py`
[PR 1652](https://github.com/RDFLib/rdflib/pull/1652)
* Add Contributor Covenant Code of Conduct
[PR 1651](https://github.com/RDFLib/rdflib/pull/1651)
* add test of ConjunctiveGraph operators
[PR 1647](https://github.com/RDFLib/rdflib/pull/1647)
* added three tests to cover changes made by the pull request 1361
[PR 1645](https://github.com/RDFLib/rdflib/pull/1645)
* Fixed and refactored roundtrip, n3_suite and nt_suite tests
[PR 1644](https://github.com/RDFLib/rdflib/pull/1644)
* Allow parse of RDF from URL with all RDF Media Types
[PR 1643](https://github.com/RDFLib/rdflib/pull/1643)
* Black rdflib except for rdflib/namespace/_GEO.py
[PR 1642](https://github.com/RDFLib/rdflib/pull/1642)
* Remove `(TypeCheck|SubjectType|PredicateType|ObjectType)Error` and related
[PR 1640](https://github.com/RDFLib/rdflib/pull/1640)
* Rename `test/triple_store.py` so pytest picks it up
[PR 1639](https://github.com/RDFLib/rdflib/pull/1639)
* Convert translate_algebra tests to pytest
[PR 1636](https://github.com/RDFLib/rdflib/pull/1636)
* Add some type annotations to JSON-LD code
[PR 1634](https://github.com/RDFLib/rdflib/pull/1634)
* Add some typing for evaluation related functions in the SPARQL plugin.
[PR 1633](https://github.com/RDFLib/rdflib/pull/1633)
* Add classifier for python 3.10
[PR 1630](https://github.com/RDFLib/rdflib/pull/1630)
* Add tests for update method on `Graph(store="SPARQLStore")`
[PR 1629](https://github.com/RDFLib/rdflib/pull/1629)
* Add __dir__ to DefinedNamespaceMeta.
[PR 1626](https://github.com/RDFLib/rdflib/pull/1626)
* Add `version` to docker-compose config for tests
[PR 1625](https://github.com/RDFLib/rdflib/pull/1625)
* Feature prepareupdate
[PR 1624](https://github.com/RDFLib/rdflib/pull/1624)
* Fix issue1032 error on sparqlstore update
[PR 1623](https://github.com/RDFLib/rdflib/pull/1623)
* Restore geosparql defined namespace
[PR 1622](https://github.com/RDFLib/rdflib/pull/1622)
* Fix typing errors in tests
[PR 1621](https://github.com/RDFLib/rdflib/pull/1621)
* Compile docs in GitHub Actions CI
[PR 1620](https://github.com/RDFLib/rdflib/pull/1620)
* Scale down CI checks
[PR 1619](https://github.com/RDFLib/rdflib/pull/1619)
* Revert error-raising change, enable Exception to be raised.
[PR 1607](https://github.com/RDFLib/rdflib/pull/1607)
* Fix for issue430
[PR 1590](https://github.com/RDFLib/rdflib/pull/1590)
* Fix for infixowl issues 1453 and 944
[PR 1530](https://github.com/RDFLib/rdflib/pull/1530)
* Fix `self.line` typos in call to BadSyntax.
[PR 1529](https://github.com/RDFLib/rdflib/pull/1529)
* Overdue restoration of functools total_order decorator.
[PR 1528](https://github.com/RDFLib/rdflib/pull/1528)
* Remove deprecated
[PR 1527](https://github.com/RDFLib/rdflib/pull/1527)
* Clean up documentation
[PR 1525](https://github.com/RDFLib/rdflib/pull/1525)
* TypeErrors from Results do not propagate through list creation
[PR 1523](https://github.com/RDFLib/rdflib/pull/1523)
* Add typing for parsers
[PR 1522](https://github.com/RDFLib/rdflib/pull/1522)
* Fix for issue 837. Graph.[subjects|objects|predicates] optionally return uniques.
[PR 1520](https://github.com/RDFLib/rdflib/pull/1520)
* Bump sphinx from 4.3.1 to 4.3.2
[PR 1518](https://github.com/RDFLib/rdflib/pull/1518)
* Start support for mypy --strict
[PR 1515](https://github.com/RDFLib/rdflib/pull/1515)
* Allow URLInputSource to get content-negotiation links from the Link headers
[PR 1436](https://github.com/RDFLib/rdflib/pull/1436)
* Fix issue 936 HAVING clause with variable comparison not correctly evaluated
[PR 1093](https://github.com/RDFLib/rdflib/pull/1093)

6.1.1

========================
Better testing and tidier code.

This is a semi-major release that:

* add support for Python 3.10
* updates the test suite to pytest (from nose)
* tidies up a lot of continuous integration
* gets more tests tested, not skipped
* implements lots of mypy tests
* updates several parsers and serializers
* supports the new HexTuples format!
* many bug fixes

This release contains many, many hours of updates from Iwan Aucamp, so thank you Iwan!

PRs merged since last release:

* Update the guidelines for writing tests
[PR 1517](https://github.com/RDFLib/rdflib/pull/1517)
* Updated tox config to run mypy in default environment
[PR 1450](https://github.com/RDFLib/rdflib/pull/1450)
* Add type annotations to constructor parameters in Literal
[PR 1498](https://github.com/RDFLib/rdflib/pull/1498)
* Increase fuseki start timeout from 15 to 30 seconds
[PR 1516](https://github.com/RDFLib/rdflib/pull/1516)
* Forbid truthy values for lang when initializing Literal
[PR 1494](https://github.com/RDFLib/rdflib/pull/1494)
* Add Py 3.10 to testing envs
[PR 1473](https://github.com/RDFLib/rdflib/pull/1473)
* Add mypy to GitHub actions validate workflow
[PR 1512](https://github.com/RDFLib/rdflib/pull/1512)
* Improve error messages from with-fuseki.sh
[PR 1510](https://github.com/RDFLib/rdflib/pull/1510)
* Fix pipeline triggers
[PR 1511](https://github.com/RDFLib/rdflib/pull/1511)
* Change python version used for mypy to 3.7
[PR 1514](https://github.com/RDFLib/rdflib/pull/1514)
* Quench nt test userwarn
[PR 1500](https://github.com/RDFLib/rdflib/pull/1500)
* Raise a more specific Exception when lang isn't valid
[PR 1497](https://github.com/RDFLib/rdflib/pull/1497)
* Fix for issue893
[PR 1504](https://github.com/RDFLib/rdflib/pull/1504)
* Fix for issue 893
[PR 1501](https://github.com/RDFLib/rdflib/pull/1501)
* Re-make of nicholascar's “Concise Bounded Description” PR 968 ...
[PR 1502](https://github.com/RDFLib/rdflib/pull/1502)
* Remove deprecated Statement class
[PR 1496](https://github.com/RDFLib/rdflib/pull/1496)
* Fix BNode.skolemize() returning a URIRef instead of an RDFLibGenid.
[PR 1493](https://github.com/RDFLib/rdflib/pull/1493)
* demo 980 resolution
[PR 1495](https://github.com/RDFLib/rdflib/pull/1495)
* Hextuples Serializer
[PR 1489](https://github.com/RDFLib/rdflib/pull/1489)
* Add bindings for rdflib namespaces. Import DCAM.
[PR 1491](https://github.com/RDFLib/rdflib/pull/1491)
* fix for issue 1484 raised and solved by Graham Klyne:
[PR 1490](https://github.com/RDFLib/rdflib/pull/1490)
* SDO HTTPS and DN creator script
[PR 1485](https://github.com/RDFLib/rdflib/pull/1485)
* Fix typing of create_input_source
[PR 1487](https://github.com/RDFLib/rdflib/pull/1487)
* guess_format() cater for JSON-LD files ending .json-ld
[PR 1486](https://github.com/RDFLib/rdflib/pull/1486)
* Add GitHub actions workflow for validation
[PR 1461](https://github.com/RDFLib/rdflib/pull/1461)
* Improved script for running with fuseki
[PR 1476](https://github.com/RDFLib/rdflib/pull/1476)
* RFC: Add PythonInputSource to create py-based graphs
[PR 1463](https://github.com/RDFLib/rdflib/pull/1463)
* Adapt for pytest and add back import of os in rdflib/parser.py
[PR 1480](https://github.com/RDFLib/rdflib/pull/1480)
* Make the test pass on windows
[PR 1478](https://github.com/RDFLib/rdflib/pull/1478)
* Add type hints
[PR 1449](https://github.com/RDFLib/rdflib/pull/1449)
* Fix shield for CI status
[PR 1474](https://github.com/RDFLib/rdflib/pull/1474)
* Fix test files with bare code
[PR 1481](https://github.com/RDFLib/rdflib/pull/1481)
* Remove some remaining nosetest import
[PR 1482](https://github.com/RDFLib/rdflib/pull/1482)
* Fix JSON-LD data import adds trailing slashes to IRIs (1443)
[PR 1456](https://github.com/RDFLib/rdflib/pull/1456)
* Iwana 20211114 t1305 pytestx
[PR 1460](https://github.com/RDFLib/rdflib/pull/1460)
* Migrate from nosetest to pytest
[PR 1452](https://github.com/RDFLib/rdflib/pull/1452)
* Add import of os
[PR 1464](https://github.com/RDFLib/rdflib/pull/1464)
* replace pkg_resources with importlib.metadata
[PR 1445](https://github.com/RDFLib/rdflib/pull/1445)
* A new Turtle serializer
[PR 1425](https://github.com/RDFLib/rdflib/pull/1425)
* Fix typos discovered by codespell
[PR 1446](https://github.com/RDFLib/rdflib/pull/1446)
* Use assertTrue instead of assert_ for python 3.11 compatibility.
[PR 1448](https://github.com/RDFLib/rdflib/pull/1448)
* Undefined name: tmppath --> self.tmppath
[PR 1438](https://github.com/RDFLib/rdflib/pull/1438)
* Fix Graph.parse URL handling on windows
[PR 1441](https://github.com/RDFLib/rdflib/pull/1441)
* Make Store.namespaces an empty generator
[PR 1432](https://github.com/RDFLib/rdflib/pull/1432)
* Export DCMITYPE
[PR 1433](https://github.com/RDFLib/rdflib/pull/1433)

Page 1 of 29

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.