Yes, that’s what I thought as well, but pyparsing skips results that return None. 
It is an internal protocol thing to show that a term didn’t match or so.

In general I think the TSV might be faster by using less pyparsing. E.g. split each line on tabs and parse each binding separately with something like from_n3(),
but this would require a bit more work to make it robust again. (I guess that’s something to discuss in some other thread).

The patch here is rather designed to have less impact on the way the parser works at the moment.

thanks,

Gerhard

On 5 May 2014, at 12:29, Jörn Hees <notifications@github.com> wrote:

> In rdflib/plugins/sparql/results/tsvresults.py:
> 
> > @@ -29,10 +30,16 @@
> >  RDFLITERAL = Comp('literal', Param('string', String) + Optional(
> >      Param('lang', LANGTAG.leaveWhitespace()
> >            ) | Literal('^^').leaveWhitespace(
> > -          ) + Param('datatype', IRIREF).leaveWhitespace()))
> > +    ) + Param('datatype', IRIREF).leaveWhitespace()))
> > +
> > +NONE_VALUE = object()
> i'm not that deep into pyparsing but somehow would've expected None instead of object() here... but then this way could cause less problems...
> 
> —
> Reply to this email directly or view it on GitHub.
>