Given that there may be other Turing complete query interfaces
(particularly a Go query API), the timeout config should not be
specifically tied to gremlin.
I intend to make this configurable, but there is tight connection
between db.Load and db.Open that is getting in the way of that.
Testing on data set 30kmoviedata.cq.gz created by doing:
zcat 30kmoviedata.nq.gz | sed 's/[<>]//g' | gzip -c > 30kmoviedata.cq.gz
The following query is successful:
[{
"type": "/film/film",
"name": null,
"/film/film/directed_by": {
"name": "David Fincher"
},
"/film/film/starring": [{
"/film/performance/actor": {
"name": null
}
}]
}]
TODO: fix up naming for quads and make strict parsing an option.
Fixes issue #72
This change simplifies interactions with parsing N-Quads and makes
reading datasets more robust. Changes made while here also improve
performance:
benchmark old ns/op new ns/op delta
BenchmarkParser 1058 667 -36.96%
We still use string concatenation which I'm not wildly happy about, but
I think this can be left for a later change.
Initial changes towards idiomatic error handling have been made. More
significant changes are needed, but these have subtle design implication
and need to be thought about more.
30kmoviesdata.nt.gz has been altered to properly escape double quotes.
This was done mechanically and with manual curation to pick up
straglers.