summaryrefslogtreecommitdiff
path: root/rdflib/plugins/serializers/turtle.py
diff options
context:
space:
mode:
Diffstat (limited to 'rdflib/plugins/serializers/turtle.py')
-rw-r--r--rdflib/plugins/serializers/turtle.py11
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: