Thanks a lot for the prompt answer, it works now.
All I had to do was close the stream afterwards. The following code does it, 
using jena 2.10.1:
BufferedWriter out = new BufferedWriter(new 
FileWriter("file.rdf"));resultModel.write(out, "N-TRIPLE");out.close();
Best,Nikos

> Date: Tue, 29 Oct 2013 09:34:16 +0000
> From: [email protected]
> To: [email protected]
> Subject: Re: Writing big models to disk
> 
> On 29/10/13 08:02, Nikolaos Konstantinou wrote:
> > Dear all,
> > I am trying to write an RDF file to disk, using the following code:
> 
> Which version of Jena is this?
> 
> > resultModel.write(new BufferedWriter(new FileWriter("file.rdf")), "N3");
> 
> Aside: Better top flush the BufferedWriter explicitly:
> 
> BufferedWriter x = new BufferedWriter(....)
> resultModel.write(x, "N3") ;
> x.flush() ;
> 
> or close it explicitly.
> 
> > All works ok when the file is less than 100mb.
> > When the file is larger, this has a strange behaviour: the program does not 
> > throw an exception, java runtime does not throw an out-of-memory error, and 
> > yet the file does not get written. I have increased java memory to -Xmx3072m
> > The same model can be successfully stored using SDB (>1.5 million triples), 
> > so I guess the problem is not in the model. I guess it is a general Java 
> > issue? 
> > (http://www.java-forums.org/new-java/42031-writing-huge-sized-file-data-more-than-100mb-output-stream-converting-byte.html)
> > Did anyone else have this issue? Has anyone succeeded in writing rdf files 
> > larger than 100mb to disk (and how)?
> 
> Are you sure it is no just being very, very slow?
> 
> http://jena.apache.org/documentation/io/rdf-output.html
> 
> "N3" (better, "TTL") is trying to pretty print the data which requires 
> analysing the data first.  That can involve of small probes in the data 
> which for a database is terrible for performance especially if done 
> outside a transaction.
> 
> You need to use a format that does less analysis e.g. 
> RDFFormat.TURTLE_BLOCKS with RDFDataMgr.
> 
> 
> > Thank you in advance for your support.
> > Best regards,Nikolaos Konstantinou
> >                                     
> >
> 
> Is resultModel stored in SDB?
> 
> Try the following:
> 
> OutputStream out = new FileOutputStream
> RDFDataMgr.write(out, resultModel, RDFFormat.NTRIPLES) ;
> // Or lang.NTRIPLES
> 
> which is the best scaling output.  RDFFormat.TURTLE_BLOCKS isn't bad though.
> 
>       Andy
> 
                                          

Reply via email to