diff options
Diffstat (limited to 'rdflib/plugins/serializers/turtle.py')
-rw-r--r-- | rdflib/plugins/serializers/turtle.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/rdflib/plugins/serializers/turtle.py b/rdflib/plugins/serializers/turtle.py index 1c58ba1b..8a41587c 100644 --- a/rdflib/plugins/serializers/turtle.py +++ b/rdflib/plugins/serializers/turtle.py @@ -224,7 +224,11 @@ class TurtleSerializer(RecursiveSerializer): spacious=None, **args): self.reset() self.stream = stream - self.base = base + # if base is given here, use that, if not and a base is set for the graph use that + if base is not None: + self.base = base + elif self.store.base is not None: + self.base = self.store.base if spacious is not None: self._spacious = spacious @@ -246,6 +250,8 @@ class TurtleSerializer(RecursiveSerializer): self.endDocument() stream.write(b("\n")) + self.base = None + def preprocessTriple(self, triple): super(TurtleSerializer, self).preprocessTriple(triple) for i, node in enumerate(triple): @@ -291,6 +297,9 @@ class TurtleSerializer(RecursiveSerializer): def startDocument(self): self._started = True ns_list = sorted(self.namespaces.items()) + + if self.base: + self.write(self.indent() + '@base <%s> .\n' % self.base) for prefix, uri in ns_list: self.write(self.indent() + '@prefix %s: <%s> .\n' % (prefix, uri)) if ns_list and self._spacious: |