From aeec7fe7c8610f355d68a61301829ed593cfd451 Mon Sep 17 00:00:00 2001 From: Daan de Schepper Date: Thu, 1 May 2025 11:14:32 +0200 Subject: [PATCH 1/2] Fix issue 3126 --- rdflib/graph.py | 9 +++++---- test/test_issues/test_issue3126.py | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) create mode 100644 test/test_issues/test_issue3126.py diff --git a/rdflib/graph.py b/rdflib/graph.py index 9ba3dd396..025715b9a 100644 --- a/rdflib/graph.py +++ b/rdflib/graph.py @@ -1927,10 +1927,11 @@ def do_de_skolemize2(t: _TripleType) -> _TripleType: elif Genid._is_external_skolem(s): s = Genid(s).de_skolemize() - if RDFLibGenid._is_rdflib_skolem(o): - o = RDFLibGenid(o).de_skolemize() - elif Genid._is_external_skolem(o): - o = Genid(o).de_skolemize() + if isinstance(o, URIRef): + if RDFLibGenid._is_rdflib_skolem(o): + o = RDFLibGenid(o).de_skolemize() + elif Genid._is_external_skolem(o): + o = Genid(o).de_skolemize() return s, p, o diff --git a/test/test_issues/test_issue3126.py b/test/test_issues/test_issue3126.py new file mode 100644 index 000000000..3fd05e2c3 --- /dev/null +++ b/test/test_issues/test_issue3126.py @@ -0,0 +1,20 @@ + +import pytest + +from rdflib import Graph + + +def test_skolem_de_skolem_roundtrip(): + """Test deskolemization should ignore literals. + + Issue: https://github.com/RDFLib/rdflib/issues/3126 + """ + + nt = ' "http://example.com [some remark]" .' + + graph = Graph().parse(data=nt, format="nt").de_skolemize() + + try: + graph.de_skolemize() + except BaseException as ex: + pytest.fail(f'Unexpected error: {ex}') From d9a8f334c8d67ced14f7e0f46d289f84c19958df Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 18 Sep 2025 04:33:18 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- test/test_issues/test_issue3126.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/test/test_issues/test_issue3126.py b/test/test_issues/test_issue3126.py index 3fd05e2c3..321ff7d3e 100644 --- a/test/test_issues/test_issue3126.py +++ b/test/test_issues/test_issue3126.py @@ -1,4 +1,3 @@ - import pytest from rdflib import Graph @@ -10,11 +9,13 @@ def test_skolem_de_skolem_roundtrip(): Issue: https://github.com/RDFLib/rdflib/issues/3126 """ - nt = ' "http://example.com [some remark]" .' + nt = ( + ' "http://example.com [some remark]" .' + ) graph = Graph().parse(data=nt, format="nt").de_skolemize() try: graph.de_skolemize() except BaseException as ex: - pytest.fail(f'Unexpected error: {ex}') + pytest.fail(f"Unexpected error: {ex}")