NTriples fails to parse URIs with only a scheme · Issue #920 · RDFLib/rdflib (original) (raw)
from rdflib import Graph
g=Graph()
g.parse(data='<a:> <b:> <c:> .', format='nt') # nquads also fails
Traceback (most recent call last):
File "", line 1, in
File "/Library/Python/2.7/site-packages/rdflib/graph.py", line 1039, in parse
parser.parse(source, self, **args)
File "/Library/Python/2.7/site-packages/rdflib/plugins/parsers/nt.py", line 26, in parse
parser.parse(f)
File "/Library/Python/2.7/site-packages/rdflib/plugins/parsers/ntriples.py", line 142, in parse
raise ParseError("Invalid line: %r" % self.line)
rdflib.plugins.parsers.ntriples.ParseError: Invalid line: u'<a:> <b:> <c:> .'
N3, by contrast, succeeds:
g.parse(data='<a:> <b:> <c:> .', format='n3')
Fix is to change:
uriref = r'<([^:]+:[^\s"<>]+)>'
to:
uriref = r'<([^:]+:[^\s"<>]*)>'
in ntriples.py.