From 9e8bf1a063c1d74ec823aec6752d01caff673939 Mon Sep 17 00:00:00 2001 From: Daan de Schepper Date: Mon, 31 Mar 2025 21:22:58 +0200 Subject: [PATCH] fix namespace prefixes in longturtle serialization --- rdflib/plugins/serializers/longturtle.py | 2 + test/data/longturtle/longturtle-target.ttl | 64 ++++++++++--------- .../test_serializer_longturtle_sort.py | 28 ++++---- 3 files changed, 49 insertions(+), 45 deletions(-) diff --git a/rdflib/plugins/serializers/longturtle.py b/rdflib/plugins/serializers/longturtle.py index 8de1e52a2..95b94efd7 100644 --- a/rdflib/plugins/serializers/longturtle.py +++ b/rdflib/plugins/serializers/longturtle.py @@ -44,6 +44,7 @@ class LongTurtleSerializer(RecursiveSerializer): def __init__(self, store): self._ns_rewrite = {} + namespace_manager = store.namespace_manager store = to_canonical_graph(store) content = store.serialize(format="application/n-triples") lines = content.split("\n") @@ -53,6 +54,7 @@ def __init__(self, store): data="\n".join(lines), format="application/n-triples", skolemize=True ) graph = graph.de_skolemize() + graph.namespace_manager = namespace_manager super(LongTurtleSerializer, self).__init__(graph) self.keywords = {RDF.type: "a"} self.reset() diff --git a/test/data/longturtle/longturtle-target.ttl b/test/data/longturtle/longturtle-target.ttl index 54cf23e9f..b9df06e75 100644 --- a/test/data/longturtle/longturtle-target.ttl +++ b/test/data/longturtle/longturtle-target.ttl @@ -1,72 +1,74 @@ +PREFIX cn: +PREFIX ex: PREFIX geo: PREFIX rdf: -PREFIX schema: +PREFIX sdo: PREFIX xsd: - - a schema:Person ; - schema:age 41 ; - schema:alternateName +ex:nicholas + a sdo:Person ; + sdo:age 41 ; + sdo:alternateName [ - schema:name "Dr N.J. Car" ; + sdo:name "Dr N.J. Car" ; ] , "N.J. Car" , "Nick Car" ; - schema:name + sdo:name [ - a ; - schema:hasPart + a cn:CompoundName ; + sdo:hasPart [ - a ; - schema:hasPart + a cn:CompoundName ; + sdo:hasPart [ - a ; + a cn:CompoundName ; rdf:value "Car" ; ] , [ - a ; + a cn:CompoundName ; rdf:value "Maxov" ; ] ; ] , [ - a ; + a cn:CompoundName ; rdf:value "Nicholas" ; ] , [ - a ; + a cn:CompoundName ; rdf:value "John" ; ] ; ] ; - schema:worksFor ; + sdo:worksFor ; . - a schema:Organization ; - schema:location ; + a sdo:Organization ; + sdo:location ; . - a schema:Place ; - schema:address + a sdo:Place ; + sdo:address [ - a schema:PostalAddress ; - schema:addressCountry + a sdo:PostalAddress ; + sdo:addressCountry [ - schema:identifier "au" ; - schema:name "Australia" ; + sdo:identifier "au" ; + sdo:name "Australia" ; ] ; - schema:addressLocality "Shorncliffe" ; - schema:addressRegion "QLD" ; - schema:postalCode 4017 ; - schema:streetAddress ( + sdo:addressLocality "Shorncliffe" ; + sdo:addressRegion "QLD" ; + sdo:postalCode 4017 ; + sdo:streetAddress ( 72 "Yundah" "Street" ) ; ] ; - schema:geo + sdo:geo [ - schema:polygon "POLYGON((153.082403 -27.325801, 153.08241 -27.32582, 153.082943 -27.325612, 153.083010 -27.325742, 153.083543 -27.325521, 153.083456 -27.325365, 153.082403 -27.325801))"^^geo:wktLiteral ; + sdo:polygon "POLYGON((153.082403 -27.325801, 153.08241 -27.32582, 153.082943 -27.325612, 153.083010 -27.325742, 153.083543 -27.325521, 153.083456 -27.325365, 153.082403 -27.325801))"^^geo:wktLiteral ; ] ; - schema:name "KurrawongAI HQ" ; + sdo:name "KurrawongAI HQ" ; . diff --git a/test/test_serializers/test_serializer_longturtle_sort.py b/test/test_serializers/test_serializer_longturtle_sort.py index 0e397afaf..fa192253d 100644 --- a/test/test_serializers/test_serializer_longturtle_sort.py +++ b/test/test_serializers/test_serializer_longturtle_sort.py @@ -69,48 +69,48 @@ def test_sort_semiblank_graph() -> None: serialization_counter[graph_text] += 1 expected_serialization = """\ -PREFIX ns1: +PREFIX ex: PREFIX rdfs: -ns1:A +ex:A rdfs:comment "Thing A" ; . -ns1:C +ex:C rdfs:comment "Thing C" ; . -ns1:B +ex:B rdfs:comment "Thing B" ; . -[] ns1:has +[] ex:has [ - rdfs:seeAlso ns1:A ; + rdfs:seeAlso ex:A ; ] ; . -[] rdfs:seeAlso ns1:B ; +[] rdfs:seeAlso ex:B ; . -[] ns1:has +[] ex:has [ - rdfs:seeAlso ns1:C ; + rdfs:seeAlso ex:C ; ] ; . -[] rdfs:seeAlso ns1:A ; +[] rdfs:seeAlso ex:A ; . -[] rdfs:seeAlso ns1:C ; +[] rdfs:seeAlso ex:C ; . -[] rdfs:seeAlso ns1:B ; +[] rdfs:seeAlso ex:B ; . -[] ns1:has +[] ex:has [ - rdfs:seeAlso ns1:B ; + rdfs:seeAlso ex:B ; ] ; .