You are right about the reasoner. I used GenericRuleReasoner and loaded a few 
rules from external file.
This statement reasoner.setOWLTranslation(true) is the cause of the issue. Not 
sure what it does.




On 7/26/16, 7:42 AM, "Andy Seaborne" <[email protected]> wrote:

>On 26/07/16 12:08, Chao Wang wrote:
>> Changed code to use RDFFormat.TURTLE_BLOCKS, Set -Xmx8192m on 16g i7 laptop
>> Still getting out of memory error after running for a while, Any suggestions?
>
>A complete, minimal example. That is, something someone else can run, 
>and just large enough to illustrate the issue.
>
>Also details of which version of Jena, and which OS.
>
>The reasoner setup is probably a factor.
>
>       Andy
>
>>
>>
>>
>>
>> On 7/25/16, 4:41 PM, "Andy Seaborne" <[email protected]> wrote:
>>
>>> 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 [[email protected]]
>>>> Sent: Thursday, July 21, 2016 9:09 AM
>>>> To: [email protected]
>>>> 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 [[email protected]]
>>>>> Sent: Thursday, July 21, 2016 3:35 AM
>>>>> To: [email protected]
>>>>> 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