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.



Reply via email to