On 25/07/16 21:14, Chao Wang wrote:
Hi Dave,
As you suggested, I have computed the closure in memory, totaling over 4 
millions triples. trying to serialize it.
Is there a direct API to serialize the whole model into TDB?
Tried to serialize into file, keep getting memory issue. What's the typical 
resource need for this size of model?

If you are getting problems as you write out the file, try using one of the streaming formats. The default format for RDF/XML or Turtle is "pretty" and takes a significant amount of working space for analysis before writing.

Some streaming output formats are:

Lang.NTRIPLES
RDFFormat.TURTLE_BLOCKS

https://jena.apache.org/documentation/io/rdf-output.html

Or does it fail during writing, after some output?

    Andy

________________________________________
From: Dave Reynolds [dave.e.reyno...@gmail.com]
Sent: Thursday, July 21, 2016 9:09 AM
To: users@jena.apache.org
Subject: Re: TDB triple storage

On 21/07/16 13:45, Chao Wang wrote:
Thanks Dave,
So my fuseki has configuration using TDB with OWL reasoner. I preloaded the TDB 
with tdbloader, then starts up fuseki.
My question is when fuseki starts up, does it load all triples including 
inferred triples into memory?

Yes. It's actually slightly worse than that. All the inferences will be
in memory (including intermediate state) which will be bigger than than
source data. But the data itself isn't loaded explicitly which means
that the reasoner is going back to TDB for each query which is a further
slow down.

Using a lighter reasoner config (OWL Micro if you are not already using
it) may help.

Otherwise, if your data is stable, then as I say, compute the closure
once in memory, off line. Store that in TDB. Then have your fuseki
configuration use that precomputed closure with no runtime inference.

Dave

I am experiencing hanging sparql query. works fine with a small dataset. I am 
hoping reasoning is not done during query time...
________________________________________
From: Dave Reynolds [dave.e.reyno...@gmail.com]
Sent: Thursday, July 21, 2016 3:35 AM
To: users@jena.apache.org
Subject: Re: TDB triple storage

On 21/07/16 02:09, Chao Wang wrote:
A newbie question:
Does jena store the inferred triples into tdb? If yes, when?

No. The current reasoners operate in memory.

If you wish you can take the results of inference (either the entire
closure or the results of some selective queries) and store those back
in TDB yourself. A common pattern would be use separate named graphs for
the original data and for the inference closure and use union-default.
All this under your control but is not automatically done for you.

There is also some support for generating a partial RDFS inference
closure at the time you load TDB.

Dave


Reply via email to