Eric,
The Jena reasoner keeps it working space in-memory. As size goes up, so
does the RAM needed and you mau have to swap from forward rules to
backward rules to control that. Maybe someone more familiar with the
inference engines can say more.
TDB, or TDB2, is fine for storing 100 millions of triples. They are
about the same efficiency (or should be); the difference is in the
transaction architecture, not the query execution.
In thinking about possible future work, could I ask what level of
reasoning do you need? (not "want" :-) Some things are easier to do
than others at scale and sometimes it is better to build some building
blocks like transitive property calculations into the storage engine.
Andy
On 23/02/18 23:18, Eric Boisvert wrote:
Well, I don't know. What I'm looking is a way to manage millions
(potentially hundreds of millions) of triples. I assumed that TDB2 would
be more efficient.
What do you guys suggest ?
2018-02-23 5:33 GMT-05:00 Nouwt, B. (Barry) <barry.no...@tno.nl>:
Hi Eric, glad that configuration works. Since you disabled the
ja:baseModel you can probably also disable the <#graph> and :datasetTDB2
configuration. Are you then sure this still creates a TDB2 database? Since
you are no longer explicitly stating it should. It will probably just
create a MemoryModel instead, in which case it is not really a solution to
your problem.
I do not know what the Exception means, sorry.
Regards, Barry
-----Original Message-----
From: Eric Boisvert [mailto:denevers1...@gmail.com]
Sent: donderdag 22 februari 2018 15:51
To: users@jena.apache.org
Subject: Re: Configuring fuseki with TDB2 and OWL reasoning
this works (inferrence works). Note, I commented out ja:baseModel
---
<#model_inf> a ja:InfModel ;
#ja:baseModel <#graph> ;
ja:content <#test-inf> ;
ja:reasoner [
ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
] .
<#graph> rdf:type tdb2:GraphTDB ;
tdb2:dataset :datasetTDB2 .
## Storage
:datasetTDB2 rdf:type tdb2:DatasetTDB2 ;
tdb2:location "c:/fuseki/run/databases/gsip".
<#test-inf> ja:externalContent "c:\\fuseki/test.ttl" .
---
if I don't comment , I get this exception (which is expected I think)
[2018-02-22 09:09:47] Server ERROR Exception in initialization: the
loading of content into
file:///C:/fuseki/run/configuration/gsip.ttl#model_inf was abort ed
because of NodeTableThrift/Write
[2018-02-22 09:09:47] WebAppContext WARN Failed startup of context
o.e.j.w.WebAppContext@8a62297{/,file:///C:/fuseki/webapp/,UNAVAILABLE}
org.apache.jena.assembler.exceptions.TransactionAbortedException: the
loading of content into file:///C:/fuseki/run/
configuration/gsip.ttl#model_inf was aborted because of
NodeTableThrift/Write
doing:
root: file:///C:/fuseki/run/configuration/gsip.ttl#model_inf with
type:
http://jena.hpl.hp.com/2005/11/Assembler#InfModel assembler class: class
org.apache.
jena.assembler.assemblers.InfModelAssembler
root: http://base/#dataset with type:
http://jena.hpl.hp.com/2005/11/Assembler#RDFDataset assembler class:
class org.apache.jena.sparql.core.assembler.Datas
etAssembler
at
org.apache.jena.assembler.assemblers.ModelAssembler.
addContent(ModelAssembler.java:55)
at
org.apache.jena.assembler.assemblers.ModelAssembler.
open(ModelAssembler.java:44)
at
org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.
openBySpecificType(AssemblerGroup.java:157)
at
org.apache.jena.assembler.assemblers.AssemblerGroup$
PlainAssemblerGroup.open(AssemblerGroup.java:144)
at
org.apache.jena.assembler.assemblers.AssemblerGroup$
ExpandingAssemblerGroup.open(AssemblerGroup.java:93)
at
org.apache.jena.assembler.assemblers.AssemblerBase.open(
AssemblerBase.java:39)
2018-02-20 5:59 GMT-05:00 Nouwt, B. (Barry) <barry.no...@tno.nl>:
Hi Eric,
Another thing I noticed is that you said you were manually loading the
data via the GUI after Apache Jena Fuseki has started. Maybe that data
is not stored in the correct location (i.e. the baseModel of the
InfModel) and there the reasoning fails?
You could try to load the data on Apache Jena Fuseki startup
automatically using a configuration like below (or is that no longer
possible when using
TDB2?):
<#model_inf> a ja:InfModel ;
...
ja:content <#test-inf> ;
...
<#test-inf> ja:externalContent <file:///opt/data.ttl> .
Regards, Barry
-----Original Message-----
From: Eric Boisvert [mailto:denevers1...@gmail.com]
Sent: maandag 19 februari 2018 23:25
To: users@jena.apache.org
Subject: Re: Configuring fuseki with TDB2 and OWL reasoning
made the change.
Now I get
Result: failed with message "Not in a transaction"
when I try to load from the interface
log:
(...)
[2018-02-19 17:21:31] Fuseki INFO [5] Filename: test.ttl,
Content-Type=appl
ication/octet-stream, Charset=null => Turtle : Count=4 Triples=4 Quads=0
[2018-02-19 17:21:31] Fuseki INFO [5] 500 Not in a transaction (29
ms)
Thank you very much helping me with this
2018-02-19 9:00 GMT-05:00 Andy Seaborne <a...@apache.org>:
On 19/02/18 12:46, Eric Boisvert wrote:
:dataset a ja:RDFDataset ;
tdb2:defaultGraph <#model_inf> .
## tdb2:location "c:\\fuseki/run/databases/gsip".
ja:defaultGraph not tdb2:defaultGraph
:dataset is a plain, in-memory dataset to hold the InfModel
Andy
This message may contain information that is not intended for you. If
you are not the addressee or if this message was sent to you by
mistake, you are requested to inform the sender and delete the
message. TNO accepts no liability for the content of this e-mail, for
the manner in which you use it and for damage of any kind resulting
from the risks inherent to the electronic transmission of messages.