Andy, thanks for the tips.

I decided to modify the producer to make n-triples. It works fine but
initial tests do not run as fast as I had hoped. When making a new TDB,
it averaged 3000 triples/sec, but I was seeing higher rates reading from
ttl files. Still need to do more testing on a higher-powered machine.

Regards,
--Paul

On Thu, 2013-05-16 at 12:50 +0100, Andy Seaborne wrote:
> On 16/05/13 04:21, Paul Tyson wrote:
> > Hi,
> >
> > I'm trying to use the TDBLoader api to stream turtle to the bulk loader
> > to create a new TDB repository.
> >
> > I suspect none of the TDBLoader.load*() methods accept turtle input. I'm
> > using version 2.10.1.
> 
> When the URL is given, they should pick up the language.  If not, please 
> can we have a complete minimal example.
> 
> >
> > This sort of code produces an immediate RIOT exception:
> >
> > InputStream is = ...;
> > Dataset ds = TDBFactory.createDataset("/tdb");
> > TDBLoader ldr = new TDBLoader();
> > ldr.loadGraph((GraphTDB) ds.getDefaultModel().getGraph(),is);
> 
> When reading from a stream, it does not know the syntax and, yes, 
> N-Triples expected.
> 
> > (I am working from memory so I might not have the syntax quite right.)
> >
> > It throws a RIOT exception on the first triple it sees, which is like:
> >
> > <iri1> a <foo>; <p1> "str";...
> >
> > Says it expected IRI instead of keyword "a".
> >
> > Any pointers on how to stream turtle to TDBLoader? I do have control
> > over the RDF production, so could produce straight triples. But until
> > now I've been writing the RDF to ttl files, then loading with the
> > tdbloader command line.
> >
> > Thanks,
> > --Paul
> 
> When streaming, you can feed through the turtle script to convert Turtle 
> to N-Triples
> 
> ... files ... | turtle | tdbloader -- -
> 
> At scale, the extra cross-processes costs don't show any effect. 
> Parsing is not (usually) the dominate cost at scale.
> 
> 
> If you are incrementally loading graphs into an existing store, 
> TDBLoader does not have any advantages.  It's magic is when the store is 
> empty.
> 
> RDFDataMgr.read(in, ds.getDefaultModel(), Lang.TURTLE) ;
> 
> should be fine.
> 
>       Andy
> 
> 
> 
> 
> 

Reply via email to