Notation 3 (N3) RDF graph serializer for RDFLib.
Classes:
SWAP_LOG
module-attribute
SWAP_LOG = Namespace('http://www.w3.org/2000/10/swap/log#')
__all__
module-attribute
__all__ = ['N3Serializer']
N3Serializer
N3Serializer(store: Graph, parent=None)
Bases: TurtleSerializer
Notation 3 (N3) RDF graph serializer.
Methods:
Attributes:
Source code in rdflib/plugins/serializers/n3.py
| def __init__(self, store: Graph, parent=None):
super(N3Serializer, self).__init__(store)
self.keywords.update({OWL.sameAs: "=", SWAP_LOG.implies: "=>"})
self.parent = parent
|
parent
instance-attribute
short_name
class-attribute
instance-attribute
endDocument
Source code in rdflib/plugins/serializers/n3.py
| def endDocument(self): # noqa: N802
if not self.parent:
super(N3Serializer, self).endDocument()
|
getQName
getQName(uri, gen_prefix=True)
Source code in rdflib/plugins/serializers/n3.py
| def getQName(self, uri, gen_prefix=True): # noqa: N802
qname = None
if self.parent is not None:
qname = self.parent.getQName(uri, gen_prefix)
if qname is None:
qname = super(N3Serializer, self).getQName(uri, gen_prefix)
return qname
|
indent
Source code in rdflib/plugins/serializers/n3.py
| def indent(self, modifier=0):
indent = super(N3Serializer, self).indent(modifier)
if self.parent is not None:
indent += self.parent.indent() # modifier)
return indent
|
p_clause
Source code in rdflib/plugins/serializers/n3.py
| def p_clause(self, node, position):
if isinstance(node, Graph):
self.subjectDone(node)
if position is OBJECT:
self.write(" ")
self.write("{")
self.depth += 1
serializer = N3Serializer(node, parent=self)
# type error: Argument 1 to "serialize" of "TurtleSerializer" has incompatible type "Optional[IO[bytes]]"; expected "IO[bytes]"
serializer.serialize(self.stream) # type: ignore[arg-type]
self.depth -= 1
self.write(self.indent() + "}")
return True
else:
return False
|
path
path(node, position, newline=False)
Source code in rdflib/plugins/serializers/n3.py
| def path(self, node, position, newline=False):
if not self.p_clause(node, position):
super(N3Serializer, self).path(node, position, newline)
|
preprocessTriple
Source code in rdflib/plugins/serializers/n3.py
| def preprocessTriple(self, triple): # noqa: N802
super(N3Serializer, self).preprocessTriple(triple)
if isinstance(triple[0], Graph):
for t in triple[0]:
self.preprocessTriple(t)
if isinstance(triple[1], Graph):
for t in triple[1]:
self.preprocessTriple(t)
if isinstance(triple[2], Graph):
for t in triple[2]:
self.preprocessTriple(t)
|
reset
Source code in rdflib/plugins/serializers/n3.py
| def reset(self):
super(N3Serializer, self).reset()
self._stores = {}
|
s_clause
Source code in rdflib/plugins/serializers/n3.py
| def s_clause(self, subject):
if isinstance(subject, Graph):
self.write("\n" + self.indent())
self.p_clause(subject, SUBJECT)
self.predicateList(subject)
self.write(" .")
return True
else:
return False
|
statement
Source code in rdflib/plugins/serializers/n3.py
| def statement(self, subject):
self.subjectDone(subject)
properties = self.buildPredicateHash(subject)
if len(properties) == 0:
return False
return self.s_clause(subject) or super(N3Serializer, self).statement(subject)
|