From 5d9a7b05b223a08028d0a7899789b5259741cb5a Mon Sep 17 00:00:00 2001 From: Drew Perttula Date: Sun, 29 Mar 2015 00:58:26 -0700 Subject: trig serializer wasn't including a @prefix line for the first graph's prefix --- rdflib/plugins/serializers/trig.py | 17 +---------------- test/test_trig.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/rdflib/plugins/serializers/trig.py b/rdflib/plugins/serializers/trig.py index 479aae4d..a151827c 100644 --- a/rdflib/plugins/serializers/trig.py +++ b/rdflib/plugins/serializers/trig.py @@ -32,6 +32,7 @@ class TrigSerializer(TurtleSerializer): def preprocess(self): for context in self.contexts: self.store = context + self.getQName(context.identifier) self._references = defaultdict(int) self._subjects = {} @@ -40,22 +41,6 @@ class TrigSerializer(TurtleSerializer): self._contexts[context]=(self.orderSubjects(), self._subjects, self._references) - - def preprocessTriple(self, triple): - s, p, o = triple - self._references[o]+=1 - self._subjects[s] = True - for i, node in enumerate(triple): - if node in self.keywords: - continue - # Don't use generated prefixes for subjects and objects - self.getQName(node, gen_prefix=(i == VERB)) - if isinstance(node, Literal) and node.datatype: - self.getQName(node.datatype, gen_prefix=_GEN_QNAME_FOR_DT) - p = triple[1] - if isinstance(p, BNode): - self._references[p]+=1 - def reset(self): super(TrigSerializer, self).reset() self._contexts = {} diff --git a/test/test_trig.py b/test/test_trig.py index abcbe1b9..0f800af3 100644 --- a/test/test_trig.py +++ b/test/test_trig.py @@ -46,3 +46,18 @@ class TestTrig(unittest.TestCase): self.assertEqual(len(re.findall(b("p2"), s)), 1) self.assert_(b('{}') not in s) # no empty graphs! + + def testRememberNamespace(self): + g = rdflib.ConjunctiveGraph() + g.add((rdflib.URIRef("http://example.com/s"), + rdflib.RDFS.label, + rdflib.Literal("example 1"), + rdflib.URIRef("http://example.com/graph1"))) + # In 4.2.0 the first serialization would fail to include the + # prefix for the graph but later serialize() calls would work. + first_out = g.serialize(format='trig') + second_out = g.serialize(format='trig') + self.assertIn('@prefix ns1: .', second_out) + self.assertIn('@prefix ns1: .', first_out) + + print first_out -- cgit v1.2.1