You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Eric Boisvert <de...@gmail.com> on 2018/02/15 12:31:00 UTC

Configuring fuseki with TDB2 and OWL reasoning

Greetings

This post is a duplicate of
https://stackoverflow.com/questions/48770691/configure-fuseki-with-tdb2-and-owl-reasoner

I'm trying to configure fuseki to use TDB2 and OWL reasoning.  I can make
it work with TDB1 but could not find any example of the same setup with
TDB2.

this works:

-----

@prefix :      <http://base/#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .
@prefix tdb:   <http://jena.hpl.hp.com/2008/tdb#> .



:service_tdb_all  a                   fuseki:Service ;
        fuseki:dataset                :dataset ;
        fuseki:name                   "gsip" ;
        fuseki:serviceQuery           "query" , "sparql" ;
        fuseki:serviceReadGraphStore  "get" ;
        fuseki:serviceReadWriteGraphStore "data" ;
        fuseki:serviceUpdate          "update" ;
        fuseki:serviceUpload          "upload" .

:dataset a ja:RDFDataset ;
    ja:defaultGraph       <#model_inf> ;
tdb:location  "c:\\fuseki/run/databases/gsip".


<#model_inf> a ja:InfModel ;
     ja:baseModel <#graph> ;
     ja:reasoner [
         ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
     ] .

<#graph> rdf:type tdb:GraphTDB ;
  tdb:dataset :dataset .

----


but my naive adaptation to TDB2 does not (I tried a couple of variations)


----

@prefix :      <http://base/#> .
@prefix tdb2:   <http://jena.apache.org/2016/tdb#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .

:service_tdb_all  a                   fuseki:Service ;
        fuseki:dataset                :dataset ;
        fuseki:name                   "gsip" ;
        fuseki:serviceQuery           "query" , "sparql" ;
        fuseki:serviceReadGraphStore  "get" ;
        fuseki:serviceReadWriteGraphStore "data" ;
        fuseki:serviceUpdate          "update" ;
        fuseki:serviceUpload          "upload" .

:dataset a ja:RDFDataset ;
    ja:defaultGraph       <#model_inf> ;
    tdb2:location  "c:\\fuseki/databases/gsip"
     .

<#model_inf> a ja:InfModel ;
     ja:baseModel <#graph> ;
     ja:reasoner [
         ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
     ] .

<#graph> rdf:type tdb2:GraphTDB ; # also tried tdb2:GraphTDB2
  tdb2:dataset :dataset .

-----

Fuseki starts without error, but OWL reason does not work (I tried with a
simple inversedOf property that returns inferred statements in my first
setup)

- no log files (this is another issue)
- I'm aware that TDB1 and TDB2 are not compatible, i wiped out the database
(even change the database location) between tests.

Read the Jena Assembler documentation, but did not find (or missed) how to
use TBDDataset (also, new in Jena - so drinking from the firehose).

Does anyone have an example of such a setup (TDB2 + OWLFBRuleReasoner) ?

Thanks

Does anyone have an exem

Re: Configuring fuseki with TDB2 and OWL reasoning

Posted by Eric Boisvert <de...@gmail.com>.
Yes, non inferred data shows up.  i load the date using fuseki web
interface..  Will try to figure out why logs are not generated

Le 15 févr. 2018 16:47, "Andy Seaborne" <an...@apache.org> a écrit :

>
> From SO comments:
> [[
> Does the Fuseki log file contain any useful information? – AndyS yesterday
>
> Does non-inferred data show up? I notice you are using the same file area
> for TDB1 and TDB2 databases. TDB2 does not work with TDB1 databases and
> does not read them. In fact, its database is held with a sublocation of the
> tdb2:location (so TDB1 data is not corrupted - it's just completely
> ignored). Data must be separately loaded into TDB2. – AndyS yesterday
>
> Fuseki log folder us always empty (that's another issue I need to resolve)
> and , about imcompatible TDB1 and TDB2 - I wiped the database clear between
> tests. – Eric Boisvert 11 hours ago
> ]]
>
> Does non-inferred data show up?
> If there is no log output, something is wrong - the server always outputs
> to the log at startup unless you turn it off.
>
> How are you putting data into the server?
>
>     Andy
>
> On 15/02/18 12:31, Eric Boisvert wrote:
>
>> Greetings
>>
>> This post is a duplicate of
>> https://stackoverflow.com/questions/48770691/configure-fusek
>> i-with-tdb2-and-owl-reasoner
>>
>> I'm trying to configure fuseki to use TDB2 and OWL reasoning.  I can make
>> it work with TDB1 but could not find any example of the same setup with
>> TDB2.
>>
>> this works:
>>
>> -----
>>
>> @prefix :      <http://base/#> .
>> @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
>> @prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
>> @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
>> @prefix fuseki: <http://jena.apache.org/fuseki#> .
>> @prefix tdb:   <http://jena.hpl.hp.com/2008/tdb#> .
>>
>>
>>
>> :service_tdb_all  a                   fuseki:Service ;
>>          fuseki:dataset                :dataset ;
>>          fuseki:name                   "gsip" ;
>>          fuseki:serviceQuery           "query" , "sparql" ;
>>          fuseki:serviceReadGraphStore  "get" ;
>>          fuseki:serviceReadWriteGraphStore "data" ;
>>          fuseki:serviceUpdate          "update" ;
>>          fuseki:serviceUpload          "upload" .
>>
>> :dataset a ja:RDFDataset ;
>>      ja:defaultGraph       <#model_inf> ;
>> tdb:location  "c:\\fuseki/run/databases/gsip".
>>
>>
>> <#model_inf> a ja:InfModel ;
>>       ja:baseModel <#graph> ;
>>       ja:reasoner [
>>           ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
>>       ] .
>>
>> <#graph> rdf:type tdb:GraphTDB ;
>>    tdb:dataset :dataset .
>>
>> ----
>>
>>
>> but my naive adaptation to TDB2 does not (I tried a couple of variations)
>>
>>
>> ----
>>
>> @prefix :      <http://base/#> .
>> @prefix tdb2:   <http://jena.apache.org/2016/tdb#> .
>> @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
>> @prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
>> @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
>> @prefix fuseki: <http://jena.apache.org/fuseki#> .
>>
>> :service_tdb_all  a                   fuseki:Service ;
>>          fuseki:dataset                :dataset ;
>>          fuseki:name                   "gsip" ;
>>          fuseki:serviceQuery           "query" , "sparql" ;
>>          fuseki:serviceReadGraphStore  "get" ;
>>          fuseki:serviceReadWriteGraphStore "data" ;
>>          fuseki:serviceUpdate          "update" ;
>>          fuseki:serviceUpload          "upload" .
>>
>> :dataset a ja:RDFDataset ;
>>      ja:defaultGraph       <#model_inf> ;
>>      tdb2:location  "c:\\fuseki/databases/gsip"
>>       .
>>
>> <#model_inf> a ja:InfModel ;
>>       ja:baseModel <#graph> ;
>>       ja:reasoner [
>>           ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
>>       ] .
>>
>> <#graph> rdf:type tdb2:GraphTDB ; # also tried tdb2:GraphTDB2
>>    tdb2:dataset :dataset .
>>
>> -----
>>
>> Fuseki starts without error, but OWL reason does not work (I tried with a
>> simple inversedOf property that returns inferred statements in my first
>> setup)
>>
>> - no log files (this is another issue)
>> - I'm aware that TDB1 and TDB2 are not compatible, i wiped out the
>> database
>> (even change the database location) between tests.
>>
>> Read the Jena Assembler documentation, but did not find (or missed) how to
>> use TBDDataset (also, new in Jena - so drinking from the firehose).
>>
>> Does anyone have an example of such a setup (TDB2 + OWLFBRuleReasoner) ?
>>
>> Thanks
>>
>> Does anyone have an exem
>>
>>

Re: Configuring fuseki with TDB2 and OWL reasoning

Posted by Eric Boisvert <de...@gmail.com>.
thanks, I'll try this tomorrow.  I see a ticket has been opened regarding
the transaction issue.

Thanks for the help.

2018-02-20 5:59 GMT-05:00 Nouwt, B. (Barry) <ba...@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:denevers1649@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 <an...@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.
>

Re: Configuring fuseki with TDB2 and OWL reasoning

Posted by Andy Seaborne <an...@apache.org>.

On 23/02/18 10:33, Nouwt, B. (Barry) wrote:
> 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.
Mixing these two

  ja:baseModel <#graph> ;
  ja:content <#test-inf> ;

looks like it it triggering the same transaction issue, but in a 
different way.

When ja:baseModel is commented out, it is going to an in-memory graph 
for the InfGraph.

     Andy

> 
> Regards, Barry
> 
> -----Original Message-----
> From: Eric Boisvert [mailto:denevers1649@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) <ba...@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:denevers1649@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 <an...@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.
>>

Re: Configuring fuseki with TDB2 and OWL reasoning

Posted by Eric Boisvert <de...@gmail.com>.
TBH we are still prototyping and it seems that the use cases are limited
class generalisation, inverse ,symmetric and transitive properties.
Something - I started thinking - I can simulate with a RDBMS ... But then I
would loose that sweet SPARQL...

2018-02-26 17:00 GMT-05:00 Andy Seaborne <an...@apache.org>:

> 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) <ba...@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:denevers1649@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) <ba...@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:denevers1649@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 <an...@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.
>>>>
>>>>
>>>
>>

Re: future work: reasinging

Posted by Laura Morales <la...@mail.com>.
Adding to this thread, if I can suggest another feature it is "prepared statements" to Fuseki. That is a way to specify queries server-side, and then call Fuseki with only a list of parameters.



 

Sent: Tuesday, February 27, 2018 at 10:01 AM
From: "Andrew U Frank" <fr...@geoinfo.tuwien.ac.at>
To: users@jena.apache.org
Subject: future work: reasinging
For my work, the most important feature would be "same-as" (like
Laura), with the same justification.

Afterwards, I would use reasoning that is achievable with simple
construct queries and then store the result.

An actual example:

construct {?tok a ?pattern .}

FROM <http://gerastree.at/test1> # contains ?tok nlp:lemma3 ?lem
from <http://gerastree.at/wc12[http://gerastree.at/wc12]>
# contains ?lexentry lemon:writtenRep ?lem.
where {
?lexentry ?kind ?pattern .
?lexentry lemon:writtenRep ?lem .

?tok nlp:lemma3 ?lem .
?tok nlp:pos ?cats.

filter (not exists {wn:isNotClass ?kind ?lem} ) .

}



 

future work: reasinging

Posted by Andrew U Frank <fr...@geoinfo.tuwien.ac.at>.
For my work, the most important feature would be "same-as"  (like 
Laura), with the same justification.

Afterwards, I would use reasoning that is achievable with simple 
construct queries and then store the result.

An actual example:

construct         {?tok a ?pattern .}

FROM <http://gerastree.at/test1>    #  contains ?tok nlp:lemma3 ?lem
from <http://gerastree.at/wc12>
			# contains ?lexentry lemon:writtenRep ?lem.
where  {
     ?lexentry ?kind ?pattern .
     ?lexentry lemon:writtenRep ?lem .
	
     ?tok nlp:lemma3 ?lem .
     ?tok nlp:pos ?cats.

     filter (not exists {wn:isNotClass     ?kind ?lem} ) .

}





Re: Configuring fuseki with TDB2 and OWL reasoning

Posted by Laura Morales <la...@mail.com>.
> In thinking about possible future work, could I ask what level of
> reasoning do you need? (not "want" :-)

For my needs the most important reasoner is the "nodeA same-as nodeB" reasoner. Because what I've seen using various graphs is that people use all of sorts of ways to link an entity from a graph to the entity of another graph. They could link using a RDF property such as "schema:sameAs" but also using IDs like "graph1:nodeA <graph2:id> "dsat67gfsd"". Wikidata for example even uses the changing part (suffix) of URLs, for example if some other graph has <http://example.org/Something>, Wikidata is linked as "<wikidataID> <wikidataProperty> "Something"". So it's damn tedious to find all the nodes across graphs that actually represents the same entity.
I don't know if this is already possible to do with the current Jena/Fuseki. I always wanted to look into it but haven't had the time yet.

Re: Configuring fuseki with TDB2 and OWL reasoning

Posted by Andy Seaborne <an...@apache.org>.
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) <ba...@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:denevers1649@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) <ba...@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:denevers1649@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 <an...@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.
>>>
>>
> 

Re: Configuring fuseki with TDB2 and OWL reasoning

Posted by Eric Boisvert <de...@gmail.com>.
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) <ba...@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:denevers1649@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) <ba...@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:denevers1649@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 <an...@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.
> >
>

RE: Configuring fuseki with TDB2 and OWL reasoning

Posted by "Nouwt, B. (Barry)" <ba...@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:denevers1649@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) <ba...@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:denevers1649@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 <an...@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.
>

Re: Configuring fuseki with TDB2 and OWL reasoning

Posted by Eric Boisvert <de...@gmail.com>.
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) <ba...@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:denevers1649@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 <an...@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.
>

RE: Configuring fuseki with TDB2 and OWL reasoning

Posted by "Nouwt, B. (Barry)" <ba...@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:denevers1649@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 <an...@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.

Re: Configuring fuseki with TDB2 and OWL reasoning

Posted by Andy Seaborne <an...@apache.org>.
Eric,

Glad we have got the configuration sorted out.

This is now a different problem which isn't a matter of getting the 
right configuration.  I don't know what's going on yet; it's also not a 
quick thing to look at and address.

I've recorded it as

https://issues.apache.org/jira/browse/JENA-1492

Thank you for the report,

     Andy

On 19/02/18 22:25, Eric Boisvert wrote:
> 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 <an...@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
>>
> 

Re: Configuring fuseki with TDB2 and OWL reasoning

Posted by Eric Boisvert <de...@gmail.com>.
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 <an...@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
>

Re: Configuring fuseki with TDB2 and OWL reasoning

Posted by Andy Seaborne <an...@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

Re: Configuring fuseki with TDB2 and OWL reasoning

Posted by Eric Boisvert <de...@gmail.com>.
sorry.

here's my new config file

:service_tdb_all  a                   fuseki:Service ;
        fuseki:dataset                :dataset ;
        fuseki:name                   "gsip" ;
        fuseki:serviceQuery           "query" , "sparql" ;
        fuseki:serviceReadGraphStore  "get" ;
        fuseki:serviceReadWriteGraphStore "data" ;
        fuseki:serviceUpdate          "update" ;
        fuseki:serviceUpload          "upload" .

:dataset a ja:RDFDataset ;
    tdb2:defaultGraph       <#model_inf> .
## tdb2:location  "c:\\fuseki/run/databases/gsip".


<#model_inf> a ja:InfModel ;
     ja:baseModel <#graph> ;
     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".



log file:

[2018-02-19 07:41:12] Server     INFO  Apache Jena Fuseki 3.6.0
[2018-02-19 07:41:12] Config     INFO  FUSEKI_HOME=C:\fuseki\.
[2018-02-19 07:41:12] Config     INFO  FUSEKI_BASE=C:\fuseki\run
[2018-02-19 07:41:12] Config     INFO  Shiro file: file://C:\fuseki\run\
shiro.in
i
[2018-02-19 07:41:12] Config     INFO  Configuration file:
C:\fuseki\run\config.
ttl
[2018-02-19 07:41:13] Config     INFO  Load configuration:
file:///C:/fuseki/run
/configuration/gsip.ttl
[2018-02-19 07:41:13] Config     INFO  Register: /gsip
[2018-02-19 07:41:13] Server     INFO  Started 2018/02/19 07:41:13 EST on
port 3
030
[2018-02-19 07:41:34] Fuseki     INFO  [1] POST
http://localhost:3030/gsip/sparq
l
[2018-02-19 07:41:34] Fuseki     INFO  [1] POST /gsip :: 'sparql' ::
[applicatio
n/x-www-form-urlencoded charset=utf-8] ?
[2018-02-19 07:41:34] Fuseki     INFO  [1] Query = DESCRIBE <
http://domain.org/i
d/rechargeArea/r1>
[2018-02-19 07:41:34] Fuseki     INFO  [1] 200 OK (40 ms)
[2018-02-19 07:41:47] Fuseki     INFO  [2] POST
http://localhost:3030/gsip/data
[2018-02-19 07:41:47] Fuseki     INFO  [2] POST /gsip :: 'data' ::
[multipart/fo
rm-data] ?
[2018-02-19 07:41:47] Fuseki     INFO  [2] Filename: test.ttl,
Content-Type=appl
ication/octet-stream, Charset=null => Turtle : Count=4 Triples=4 Quads=0
[2018-02-19 07:41:47] Fuseki     INFO  [2] 200 OK (41 ms)
[2018-02-19 07:41:51] Fuseki     INFO  [3] POST
http://localhost:3030/gsip/sparq
l
[2018-02-19 07:41:51] Fuseki     INFO  [3] POST /gsip :: 'sparql' ::
[applicatio
n/x-www-form-urlencoded charset=utf-8] ?
[2018-02-19 07:41:51] Fuseki     INFO  [3] Query = DESCRIBE <
http://domain.org/i
d/rechargeArea/r1>
[2018-02-19 07:41:51] Fuseki     INFO  [3] 200 OK (24 ms)


loading my test file and still no inference

on a interesting note:  no database created in the /databases/ folder.

 Thanks for your help.

Eric


2018-02-18 10:10 GMT-05:00 Andy Seaborne <an...@apache.org>:

> Barry NL's comment on StackOveflow looks relevant:
>
> > :dataset a ja:RDFDataset ;
> >      ja:defaultGraph       <#model_inf> ;
> > tdb:location  "c:\\fuseki/run/databases/gsip".
> >
> >
> > <#model_inf> a ja:InfModel ;
> >       ja:baseModel <#graph> ;
> >       ja:reasoner [
> >           ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
> >       ] .
> >
> > <#graph> rdf:type tdb:GraphTDB ;
> >    tdb:dataset :dataset .
> >
>
> Whaty we want is:
>
> service
>   -> Dataset with inference graph as default graph
>   -> inference graph uses TDB2 default graph
>   -> TDB2 dataset whose dft graph is the storage
>
> ---------------------
> ## Dataset to hold the inference graph
> :dataset a ja:RDFDataset ;
>     ja:defaultGraph       <#model_inf> .
>
> <#model_inf> a ja:InfModel ;
>       # Inference graph uses #graph as base
>       ja:baseModel <#graph> ;
>       ja:reasoner [
>           ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
>       ] .
>
> ## Base is a TDB2 graph.
> <#graph> rdf:type tdb2:GraphTDB ;
>    tdb2:dataset :datasetTDB2 .
>
> ## Storage
> :datasetTDB2 rdf:type tdb2:DatasetTDB2 ;
>     tdb2:location ""c:/fuseki/run/databases/gsip".
> ---------------------
>
> I have a suspicion that the :dataset loopback results in non-deterministic
> behaviour as one item has two roles and that it worked for TDB1 is down to
> luck.
>
>     Andy
>
> On 16/02/18 13:51, Eric Boisvert wrote:
>
>> So, here's my complete test
>>
>> small naive dataset
>>
>> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
>> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
>> @prefix owl: <http://www.w3.org/2002/07/owl#> .
>> @prefix hy: <http://geosciences.ca/def/hydraulic#>.
>>
>> hy:rechargeZone a owl:ObjectProperty;
>> owl:inverseOf hy:sourceOf.
>> hy:sourceOf a owl:ObjectProperty.
>>
>> <http://domain.org/id/waterwells/0001>
>> hy:rechargeZone <http://domain.org/id/rechargeArea/r1>.
>>
>> so,
>>
>> DESCRIBE <http://domain.org/id/rechargeArea/r1>.
>>
>> should return
>>
>> <http://domain.org/id/rechargeArea/r1> hy:sourceOf <
>> http://domain.org/id/waterwells/0001>.
>>
>> This configuration runs, but no inference (I'm testing with standalone)
>> @prefix :      <http://base/#> .
>> @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
>> @prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
>> @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
>> @prefix fuseki: <http://jena.apache.org/fuseki#> .
>> @prefix tdb:   <http://jena.hpl.hp.com/2008/tdb#> .
>> @prefix tdb2:   <http://jena.apache.org/2016/tdb#> .
>>
>>
>>
>> :service_tdb_all  a                   fuseki:Service ;
>>          fuseki:dataset                :dataset ;
>>          fuseki:name                   "gsip" ;
>>          fuseki:serviceQuery           "query" , "sparql" ;
>>          fuseki:serviceReadGraphStore  "get" ;
>>          fuseki:serviceReadWriteGraphStore "data" ;
>>          fuseki:serviceUpdate          "update" ;
>>          fuseki:serviceUpload          "upload" .
>>
>> :dataset a tdb2:DatasetTDB2 ;
>>      ja:defaultGraph       <#model_inf> ;
>> tdb2:location  "c:\\fuseki/run/databases/gsip".
>>
>>
>> <#model_inf> a ja:InfModel ;
>>       ja:baseModel <#graph> ;
>>       ja:reasoner [
>>           ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
>>       ] .
>>
>> <#graph> rdf:type tdb2:GraphTDB2 ;
>>    tdb2:dataset :dataset .
>>
>> LOG: (no log file, this is the stdout of fuseki standalone. -- I assume
>> it's the same ?)
>>
>> [2018-02-16 08:26:57] Server     INFO  Apache Jena Fuseki 3.6.0
>> [2018-02-16 08:26:57] Config     INFO  FUSEKI_HOME=C:\fuseki\.
>> [2018-02-16 08:26:57] Config     INFO  FUSEKI_BASE=C:\fuseki\run
>> [2018-02-16 08:26:57] Config     INFO  Shiro file:
>> file://C:\fuseki\run\shiro.ini
>> [2018-02-16 08:26:57] Config     INFO  Configuration file:
>> C:\fuseki\run\config.ttl
>> [2018-02-16 08:26:57] Config     INFO  Load configuration:
>> file:///C:/fuseki/run/configuration/gsip.ttl
>> [2018-02-16 08:26:59] Config     INFO  Register: /gsip
>> [2018-02-16 08:26:59] Server     INFO  Started 2018/02/16 08:26:59 EST on
>> port 3030
>> [2018-02-16 08:27:12] Fuseki     INFO  [1] POST
>> http://localhost:3030/gsip/data
>> [2018-02-16 08:27:12] Fuseki     INFO  [1] POST /gsip :: 'data' ::
>> [multipart/form-data] ?
>> [2018-02-16 08:27:12] Fuseki     INFO  [1] Filename: test.ttl,
>> Content-Type=application/octet-stream, Charset=null => Turtle : Count=4
>> Triples=4 Quads=0
>> [2018-02-16 08:27:12] Fuseki     INFO  [1] 200 OK (465 ms)
>>
>> changed the configuration to
>>
>> :dataset a tdb2:DatasetTDB2 ;
>>      tdb2:defaultGraph       <#model_inf> ;  # Changed defaultGraph
>> prefix,
>> it's cargo cult at this point
>> tdb2:location  "c:\\fuseki/run/databases/gsip".
>> - stopped server
>> - deleted gsip database and wiped out system content
>> - restart
>> - reload the dataset
>>
>> still no inference (identical log)
>>
>> DESCRIBE <http://domain.org/id/rechargeArea/r1>.
>>
>> returns nothing beside prefix declaration (no error)
>>
>>
>>
>>   Thanks for your help
>>
>>
>> 2018-02-15 16:47 GMT-05:00 Andy Seaborne <an...@apache.org>:
>>
>>
>>>  From SO comments:
>>> [[
>>> Does the Fuseki log file contain any useful information? – AndyS
>>> yesterday
>>>
>>> Does non-inferred data show up? I notice you are using the same file area
>>> for TDB1 and TDB2 databases. TDB2 does not work with TDB1 databases and
>>> does not read them. In fact, its database is held with a sublocation of
>>> the
>>> tdb2:location (so TDB1 data is not corrupted - it's just completely
>>> ignored). Data must be separately loaded into TDB2. – AndyS yesterday
>>>
>>> Fuseki log folder us always empty (that's another issue I need to
>>> resolve)
>>> and , about imcompatible TDB1 and TDB2 - I wiped the database clear
>>> between
>>> tests. – Eric Boisvert 11 hours ago
>>> ]]
>>>
>>> Does non-inferred data show up?
>>> If there is no log output, something is wrong - the server always outputs
>>> to the log at startup unless you turn it off.
>>>
>>> How are you putting data into the server?
>>>
>>>      Andy
>>>
>>> On 15/02/18 12:31, Eric Boisvert wrote:
>>>
>>> Greetings
>>>>
>>>> This post is a duplicate of
>>>> https://stackoverflow.com/questions/48770691/configure-fusek
>>>> i-with-tdb2-and-owl-reasoner
>>>>
>>>> I'm trying to configure fuseki to use TDB2 and OWL reasoning.  I can
>>>> make
>>>> it work with TDB1 but could not find any example of the same setup with
>>>> TDB2.
>>>>
>>>> this works:
>>>>
>>>> -----
>>>>
>>>> @prefix :      <http://base/#> .
>>>> @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
>>>> @prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
>>>> @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
>>>> @prefix fuseki: <http://jena.apache.org/fuseki#> .
>>>> @prefix tdb:   <http://jena.hpl.hp.com/2008/tdb#> .
>>>>
>>>>
>>>>
>>>> :service_tdb_all  a                   fuseki:Service ;
>>>>           fuseki:dataset                :dataset ;
>>>>           fuseki:name                   "gsip" ;
>>>>           fuseki:serviceQuery           "query" , "sparql" ;
>>>>           fuseki:serviceReadGraphStore  "get" ;
>>>>           fuseki:serviceReadWriteGraphStore "data" ;
>>>>           fuseki:serviceUpdate          "update" ;
>>>>           fuseki:serviceUpload          "upload" .
>>>>
>>>> :dataset a ja:RDFDataset ;
>>>>       ja:defaultGraph       <#model_inf> ;
>>>> tdb:location  "c:\\fuseki/run/databases/gsip".
>>>>
>>>>
>>>> <#model_inf> a ja:InfModel ;
>>>>        ja:baseModel <#graph> ;
>>>>        ja:reasoner [
>>>>            ja:reasonerURL <http://jena.hpl.hp.com/2003/O
>>>> WLFBRuleReasoner>
>>>>        ] .
>>>>
>>>> <#graph> rdf:type tdb:GraphTDB ;
>>>>     tdb:dataset :dataset .
>>>>
>>>> ----
>>>>
>>>>
>>>> but my naive adaptation to TDB2 does not (I tried a couple of
>>>> variations)
>>>>
>>>>
>>>> ----
>>>>
>>>> @prefix :      <http://base/#> .
>>>> @prefix tdb2:   <http://jena.apache.org/2016/tdb#> .
>>>> @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
>>>> @prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
>>>> @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
>>>> @prefix fuseki: <http://jena.apache.org/fuseki#> .
>>>>
>>>> :service_tdb_all  a                   fuseki:Service ;
>>>>           fuseki:dataset                :dataset ;
>>>>           fuseki:name                   "gsip" ;
>>>>           fuseki:serviceQuery           "query" , "sparql" ;
>>>>           fuseki:serviceReadGraphStore  "get" ;
>>>>           fuseki:serviceReadWriteGraphStore "data" ;
>>>>           fuseki:serviceUpdate          "update" ;
>>>>           fuseki:serviceUpload          "upload" .
>>>>
>>>> :dataset a ja:RDFDataset ;
>>>>       ja:defaultGraph       <#model_inf> ;
>>>>       tdb2:location  "c:\\fuseki/databases/gsip"
>>>>        .
>>>>
>>>> <#model_inf> a ja:InfModel ;
>>>>        ja:baseModel <#graph> ;
>>>>        ja:reasoner [
>>>>            ja:reasonerURL <http://jena.hpl.hp.com/2003/O
>>>> WLFBRuleReasoner>
>>>>        ] .
>>>>
>>>> <#graph> rdf:type tdb2:GraphTDB ; # also tried tdb2:GraphTDB2
>>>>     tdb2:dataset :dataset .
>>>>
>>>> -----
>>>>
>>>> Fuseki starts without error, but OWL reason does not work (I tried with
>>>> a
>>>> simple inversedOf property that returns inferred statements in my first
>>>> setup)
>>>>
>>>> - no log files (this is another issue)
>>>> - I'm aware that TDB1 and TDB2 are not compatible, i wiped out the
>>>> database
>>>> (even change the database location) between tests.
>>>>
>>>> Read the Jena Assembler documentation, but did not find (or missed) how
>>>> to
>>>> use TBDDataset (also, new in Jena - so drinking from the firehose).
>>>>
>>>> Does anyone have an example of such a setup (TDB2 + OWLFBRuleReasoner) ?
>>>>
>>>> Thanks
>>>>
>>>> Does anyone have an exem
>>>>
>>>>
>>>>
>>

Re: Configuring fuseki with TDB2 and OWL reasoning

Posted by Andy Seaborne <an...@apache.org>.
Barry NL's comment on StackOveflow looks relevant:

 > :dataset a ja:RDFDataset ;
 >      ja:defaultGraph       <#model_inf> ;
 > tdb:location  "c:\\fuseki/run/databases/gsip".
 >
 >
 > <#model_inf> a ja:InfModel ;
 >       ja:baseModel <#graph> ;
 >       ja:reasoner [
 >           ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
 >       ] .
 >
 > <#graph> rdf:type tdb:GraphTDB ;
 >    tdb:dataset :dataset .
 >

Whaty we want is:

service
   -> Dataset with inference graph as default graph
   -> inference graph uses TDB2 default graph
   -> TDB2 dataset whose dft graph is the storage

---------------------
## Dataset to hold the inference graph
:dataset a ja:RDFDataset ;
     ja:defaultGraph       <#model_inf> .

<#model_inf> a ja:InfModel ;
       # Inference graph uses #graph as base
       ja:baseModel <#graph> ;
       ja:reasoner [
           ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
       ] .

## Base is a TDB2 graph.
<#graph> rdf:type tdb2:GraphTDB ;
    tdb2:dataset :datasetTDB2 .

## Storage
:datasetTDB2 rdf:type tdb2:DatasetTDB2 ;
     tdb2:location ""c:/fuseki/run/databases/gsip".
---------------------

I have a suspicion that the :dataset loopback results in 
non-deterministic behaviour as one item has two roles and that it worked 
for TDB1 is down to luck.

     Andy

On 16/02/18 13:51, Eric Boisvert wrote:
> So, here's my complete test
> 
> small naive dataset
> 
> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
> @prefix owl: <http://www.w3.org/2002/07/owl#> .
> @prefix hy: <http://geosciences.ca/def/hydraulic#>.
> 
> hy:rechargeZone a owl:ObjectProperty;
> owl:inverseOf hy:sourceOf.
> hy:sourceOf a owl:ObjectProperty.
> 
> <http://domain.org/id/waterwells/0001>
> hy:rechargeZone <http://domain.org/id/rechargeArea/r1>.
> 
> so,
> 
> DESCRIBE <http://domain.org/id/rechargeArea/r1>.
> 
> should return
> 
> <http://domain.org/id/rechargeArea/r1> hy:sourceOf <
> http://domain.org/id/waterwells/0001>.
> 
> This configuration runs, but no inference (I'm testing with standalone)
> @prefix :      <http://base/#> .
> @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
> @prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
> @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
> @prefix fuseki: <http://jena.apache.org/fuseki#> .
> @prefix tdb:   <http://jena.hpl.hp.com/2008/tdb#> .
> @prefix tdb2:   <http://jena.apache.org/2016/tdb#> .
> 
> 
> 
> :service_tdb_all  a                   fuseki:Service ;
>          fuseki:dataset                :dataset ;
>          fuseki:name                   "gsip" ;
>          fuseki:serviceQuery           "query" , "sparql" ;
>          fuseki:serviceReadGraphStore  "get" ;
>          fuseki:serviceReadWriteGraphStore "data" ;
>          fuseki:serviceUpdate          "update" ;
>          fuseki:serviceUpload          "upload" .
> 
> :dataset a tdb2:DatasetTDB2 ;
>      ja:defaultGraph       <#model_inf> ;
> tdb2:location  "c:\\fuseki/run/databases/gsip".
> 
> 
> <#model_inf> a ja:InfModel ;
>       ja:baseModel <#graph> ;
>       ja:reasoner [
>           ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
>       ] .
> 
> <#graph> rdf:type tdb2:GraphTDB2 ;
>    tdb2:dataset :dataset .
> 
> LOG: (no log file, this is the stdout of fuseki standalone. -- I assume
> it's the same ?)
> 
> [2018-02-16 08:26:57] Server     INFO  Apache Jena Fuseki 3.6.0
> [2018-02-16 08:26:57] Config     INFO  FUSEKI_HOME=C:\fuseki\.
> [2018-02-16 08:26:57] Config     INFO  FUSEKI_BASE=C:\fuseki\run
> [2018-02-16 08:26:57] Config     INFO  Shiro file:
> file://C:\fuseki\run\shiro.ini
> [2018-02-16 08:26:57] Config     INFO  Configuration file:
> C:\fuseki\run\config.ttl
> [2018-02-16 08:26:57] Config     INFO  Load configuration:
> file:///C:/fuseki/run/configuration/gsip.ttl
> [2018-02-16 08:26:59] Config     INFO  Register: /gsip
> [2018-02-16 08:26:59] Server     INFO  Started 2018/02/16 08:26:59 EST on
> port 3030
> [2018-02-16 08:27:12] Fuseki     INFO  [1] POST
> http://localhost:3030/gsip/data
> [2018-02-16 08:27:12] Fuseki     INFO  [1] POST /gsip :: 'data' ::
> [multipart/form-data] ?
> [2018-02-16 08:27:12] Fuseki     INFO  [1] Filename: test.ttl,
> Content-Type=application/octet-stream, Charset=null => Turtle : Count=4
> Triples=4 Quads=0
> [2018-02-16 08:27:12] Fuseki     INFO  [1] 200 OK (465 ms)
> 
> changed the configuration to
> 
> :dataset a tdb2:DatasetTDB2 ;
>      tdb2:defaultGraph       <#model_inf> ;  # Changed defaultGraph prefix,
> it's cargo cult at this point
> tdb2:location  "c:\\fuseki/run/databases/gsip".
> - stopped server
> - deleted gsip database and wiped out system content
> - restart
> - reload the dataset
> 
> still no inference (identical log)
> 
> DESCRIBE <http://domain.org/id/rechargeArea/r1>.
> 
> returns nothing beside prefix declaration (no error)
> 
> 
> 
>   Thanks for your help
> 
> 
> 2018-02-15 16:47 GMT-05:00 Andy Seaborne <an...@apache.org>:
> 
>>
>>  From SO comments:
>> [[
>> Does the Fuseki log file contain any useful information? – AndyS yesterday
>>
>> Does non-inferred data show up? I notice you are using the same file area
>> for TDB1 and TDB2 databases. TDB2 does not work with TDB1 databases and
>> does not read them. In fact, its database is held with a sublocation of the
>> tdb2:location (so TDB1 data is not corrupted - it's just completely
>> ignored). Data must be separately loaded into TDB2. – AndyS yesterday
>>
>> Fuseki log folder us always empty (that's another issue I need to resolve)
>> and , about imcompatible TDB1 and TDB2 - I wiped the database clear between
>> tests. – Eric Boisvert 11 hours ago
>> ]]
>>
>> Does non-inferred data show up?
>> If there is no log output, something is wrong - the server always outputs
>> to the log at startup unless you turn it off.
>>
>> How are you putting data into the server?
>>
>>      Andy
>>
>> On 15/02/18 12:31, Eric Boisvert wrote:
>>
>>> Greetings
>>>
>>> This post is a duplicate of
>>> https://stackoverflow.com/questions/48770691/configure-fusek
>>> i-with-tdb2-and-owl-reasoner
>>>
>>> I'm trying to configure fuseki to use TDB2 and OWL reasoning.  I can make
>>> it work with TDB1 but could not find any example of the same setup with
>>> TDB2.
>>>
>>> this works:
>>>
>>> -----
>>>
>>> @prefix :      <http://base/#> .
>>> @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
>>> @prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
>>> @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
>>> @prefix fuseki: <http://jena.apache.org/fuseki#> .
>>> @prefix tdb:   <http://jena.hpl.hp.com/2008/tdb#> .
>>>
>>>
>>>
>>> :service_tdb_all  a                   fuseki:Service ;
>>>           fuseki:dataset                :dataset ;
>>>           fuseki:name                   "gsip" ;
>>>           fuseki:serviceQuery           "query" , "sparql" ;
>>>           fuseki:serviceReadGraphStore  "get" ;
>>>           fuseki:serviceReadWriteGraphStore "data" ;
>>>           fuseki:serviceUpdate          "update" ;
>>>           fuseki:serviceUpload          "upload" .
>>>
>>> :dataset a ja:RDFDataset ;
>>>       ja:defaultGraph       <#model_inf> ;
>>> tdb:location  "c:\\fuseki/run/databases/gsip".
>>>
>>>
>>> <#model_inf> a ja:InfModel ;
>>>        ja:baseModel <#graph> ;
>>>        ja:reasoner [
>>>            ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
>>>        ] .
>>>
>>> <#graph> rdf:type tdb:GraphTDB ;
>>>     tdb:dataset :dataset .
>>>
>>> ----
>>>
>>>
>>> but my naive adaptation to TDB2 does not (I tried a couple of variations)
>>>
>>>
>>> ----
>>>
>>> @prefix :      <http://base/#> .
>>> @prefix tdb2:   <http://jena.apache.org/2016/tdb#> .
>>> @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
>>> @prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
>>> @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
>>> @prefix fuseki: <http://jena.apache.org/fuseki#> .
>>>
>>> :service_tdb_all  a                   fuseki:Service ;
>>>           fuseki:dataset                :dataset ;
>>>           fuseki:name                   "gsip" ;
>>>           fuseki:serviceQuery           "query" , "sparql" ;
>>>           fuseki:serviceReadGraphStore  "get" ;
>>>           fuseki:serviceReadWriteGraphStore "data" ;
>>>           fuseki:serviceUpdate          "update" ;
>>>           fuseki:serviceUpload          "upload" .
>>>
>>> :dataset a ja:RDFDataset ;
>>>       ja:defaultGraph       <#model_inf> ;
>>>       tdb2:location  "c:\\fuseki/databases/gsip"
>>>        .
>>>
>>> <#model_inf> a ja:InfModel ;
>>>        ja:baseModel <#graph> ;
>>>        ja:reasoner [
>>>            ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
>>>        ] .
>>>
>>> <#graph> rdf:type tdb2:GraphTDB ; # also tried tdb2:GraphTDB2
>>>     tdb2:dataset :dataset .
>>>
>>> -----
>>>
>>> Fuseki starts without error, but OWL reason does not work (I tried with a
>>> simple inversedOf property that returns inferred statements in my first
>>> setup)
>>>
>>> - no log files (this is another issue)
>>> - I'm aware that TDB1 and TDB2 are not compatible, i wiped out the
>>> database
>>> (even change the database location) between tests.
>>>
>>> Read the Jena Assembler documentation, but did not find (or missed) how to
>>> use TBDDataset (also, new in Jena - so drinking from the firehose).
>>>
>>> Does anyone have an example of such a setup (TDB2 + OWLFBRuleReasoner) ?
>>>
>>> Thanks
>>>
>>> Does anyone have an exem
>>>
>>>
> 

Re: Configuring fuseki with TDB2 and OWL reasoning

Posted by Eric Boisvert <de...@gmail.com>.
So, here's my complete test

small naive dataset

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix hy: <http://geosciences.ca/def/hydraulic#>.

hy:rechargeZone a owl:ObjectProperty;
owl:inverseOf hy:sourceOf.
hy:sourceOf a owl:ObjectProperty.

<http://domain.org/id/waterwells/0001>
hy:rechargeZone <http://domain.org/id/rechargeArea/r1>.

so,

DESCRIBE <http://domain.org/id/rechargeArea/r1>.

should return

<http://domain.org/id/rechargeArea/r1> hy:sourceOf <
http://domain.org/id/waterwells/0001>.

This configuration runs, but no inference (I'm testing with standalone)
@prefix :      <http://base/#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .
@prefix tdb:   <http://jena.hpl.hp.com/2008/tdb#> .
@prefix tdb2:   <http://jena.apache.org/2016/tdb#> .



:service_tdb_all  a                   fuseki:Service ;
        fuseki:dataset                :dataset ;
        fuseki:name                   "gsip" ;
        fuseki:serviceQuery           "query" , "sparql" ;
        fuseki:serviceReadGraphStore  "get" ;
        fuseki:serviceReadWriteGraphStore "data" ;
        fuseki:serviceUpdate          "update" ;
        fuseki:serviceUpload          "upload" .

:dataset a tdb2:DatasetTDB2 ;
    ja:defaultGraph       <#model_inf> ;
tdb2:location  "c:\\fuseki/run/databases/gsip".


<#model_inf> a ja:InfModel ;
     ja:baseModel <#graph> ;
     ja:reasoner [
         ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
     ] .

<#graph> rdf:type tdb2:GraphTDB2 ;
  tdb2:dataset :dataset .

LOG: (no log file, this is the stdout of fuseki standalone. -- I assume
it's the same ?)

[2018-02-16 08:26:57] Server     INFO  Apache Jena Fuseki 3.6.0
[2018-02-16 08:26:57] Config     INFO  FUSEKI_HOME=C:\fuseki\.
[2018-02-16 08:26:57] Config     INFO  FUSEKI_BASE=C:\fuseki\run
[2018-02-16 08:26:57] Config     INFO  Shiro file:
file://C:\fuseki\run\shiro.ini
[2018-02-16 08:26:57] Config     INFO  Configuration file:
C:\fuseki\run\config.ttl
[2018-02-16 08:26:57] Config     INFO  Load configuration:
file:///C:/fuseki/run/configuration/gsip.ttl
[2018-02-16 08:26:59] Config     INFO  Register: /gsip
[2018-02-16 08:26:59] Server     INFO  Started 2018/02/16 08:26:59 EST on
port 3030
[2018-02-16 08:27:12] Fuseki     INFO  [1] POST
http://localhost:3030/gsip/data
[2018-02-16 08:27:12] Fuseki     INFO  [1] POST /gsip :: 'data' ::
[multipart/form-data] ?
[2018-02-16 08:27:12] Fuseki     INFO  [1] Filename: test.ttl,
Content-Type=application/octet-stream, Charset=null => Turtle : Count=4
Triples=4 Quads=0
[2018-02-16 08:27:12] Fuseki     INFO  [1] 200 OK (465 ms)

changed the configuration to

:dataset a tdb2:DatasetTDB2 ;
    tdb2:defaultGraph       <#model_inf> ;  # Changed defaultGraph prefix,
it's cargo cult at this point
tdb2:location  "c:\\fuseki/run/databases/gsip".
- stopped server
- deleted gsip database and wiped out system content
- restart
- reload the dataset

still no inference (identical log)

DESCRIBE <http://domain.org/id/rechargeArea/r1>.

returns nothing beside prefix declaration (no error)



 Thanks for your help


2018-02-15 16:47 GMT-05:00 Andy Seaborne <an...@apache.org>:

>
> From SO comments:
> [[
> Does the Fuseki log file contain any useful information? – AndyS yesterday
>
> Does non-inferred data show up? I notice you are using the same file area
> for TDB1 and TDB2 databases. TDB2 does not work with TDB1 databases and
> does not read them. In fact, its database is held with a sublocation of the
> tdb2:location (so TDB1 data is not corrupted - it's just completely
> ignored). Data must be separately loaded into TDB2. – AndyS yesterday
>
> Fuseki log folder us always empty (that's another issue I need to resolve)
> and , about imcompatible TDB1 and TDB2 - I wiped the database clear between
> tests. – Eric Boisvert 11 hours ago
> ]]
>
> Does non-inferred data show up?
> If there is no log output, something is wrong - the server always outputs
> to the log at startup unless you turn it off.
>
> How are you putting data into the server?
>
>     Andy
>
> On 15/02/18 12:31, Eric Boisvert wrote:
>
>> Greetings
>>
>> This post is a duplicate of
>> https://stackoverflow.com/questions/48770691/configure-fusek
>> i-with-tdb2-and-owl-reasoner
>>
>> I'm trying to configure fuseki to use TDB2 and OWL reasoning.  I can make
>> it work with TDB1 but could not find any example of the same setup with
>> TDB2.
>>
>> this works:
>>
>> -----
>>
>> @prefix :      <http://base/#> .
>> @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
>> @prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
>> @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
>> @prefix fuseki: <http://jena.apache.org/fuseki#> .
>> @prefix tdb:   <http://jena.hpl.hp.com/2008/tdb#> .
>>
>>
>>
>> :service_tdb_all  a                   fuseki:Service ;
>>          fuseki:dataset                :dataset ;
>>          fuseki:name                   "gsip" ;
>>          fuseki:serviceQuery           "query" , "sparql" ;
>>          fuseki:serviceReadGraphStore  "get" ;
>>          fuseki:serviceReadWriteGraphStore "data" ;
>>          fuseki:serviceUpdate          "update" ;
>>          fuseki:serviceUpload          "upload" .
>>
>> :dataset a ja:RDFDataset ;
>>      ja:defaultGraph       <#model_inf> ;
>> tdb:location  "c:\\fuseki/run/databases/gsip".
>>
>>
>> <#model_inf> a ja:InfModel ;
>>       ja:baseModel <#graph> ;
>>       ja:reasoner [
>>           ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
>>       ] .
>>
>> <#graph> rdf:type tdb:GraphTDB ;
>>    tdb:dataset :dataset .
>>
>> ----
>>
>>
>> but my naive adaptation to TDB2 does not (I tried a couple of variations)
>>
>>
>> ----
>>
>> @prefix :      <http://base/#> .
>> @prefix tdb2:   <http://jena.apache.org/2016/tdb#> .
>> @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
>> @prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
>> @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
>> @prefix fuseki: <http://jena.apache.org/fuseki#> .
>>
>> :service_tdb_all  a                   fuseki:Service ;
>>          fuseki:dataset                :dataset ;
>>          fuseki:name                   "gsip" ;
>>          fuseki:serviceQuery           "query" , "sparql" ;
>>          fuseki:serviceReadGraphStore  "get" ;
>>          fuseki:serviceReadWriteGraphStore "data" ;
>>          fuseki:serviceUpdate          "update" ;
>>          fuseki:serviceUpload          "upload" .
>>
>> :dataset a ja:RDFDataset ;
>>      ja:defaultGraph       <#model_inf> ;
>>      tdb2:location  "c:\\fuseki/databases/gsip"
>>       .
>>
>> <#model_inf> a ja:InfModel ;
>>       ja:baseModel <#graph> ;
>>       ja:reasoner [
>>           ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
>>       ] .
>>
>> <#graph> rdf:type tdb2:GraphTDB ; # also tried tdb2:GraphTDB2
>>    tdb2:dataset :dataset .
>>
>> -----
>>
>> Fuseki starts without error, but OWL reason does not work (I tried with a
>> simple inversedOf property that returns inferred statements in my first
>> setup)
>>
>> - no log files (this is another issue)
>> - I'm aware that TDB1 and TDB2 are not compatible, i wiped out the
>> database
>> (even change the database location) between tests.
>>
>> Read the Jena Assembler documentation, but did not find (or missed) how to
>> use TBDDataset (also, new in Jena - so drinking from the firehose).
>>
>> Does anyone have an example of such a setup (TDB2 + OWLFBRuleReasoner) ?
>>
>> Thanks
>>
>> Does anyone have an exem
>>
>>

Re: Configuring fuseki with TDB2 and OWL reasoning

Posted by Andy Seaborne <an...@apache.org>.
 From SO comments:
[[
Does the Fuseki log file contain any useful information? – AndyS 
yesterday

Does non-inferred data show up? I notice you are using the same file 
area for TDB1 and TDB2 databases. TDB2 does not work with TDB1 databases 
and does not read them. In fact, its database is held with a sublocation 
of the tdb2:location (so TDB1 data is not corrupted - it's just 
completely ignored). Data must be separately loaded into TDB2. – AndyS 
yesterday

Fuseki log folder us always empty (that's another issue I need to 
resolve) and , about imcompatible TDB1 and TDB2 - I wiped the database 
clear between tests. – Eric Boisvert 11 hours ago
]]

Does non-inferred data show up?
If there is no log output, something is wrong - the server always 
outputs to the log at startup unless you turn it off.

How are you putting data into the server?

     Andy

On 15/02/18 12:31, Eric Boisvert wrote:
> Greetings
> 
> This post is a duplicate of
> https://stackoverflow.com/questions/48770691/configure-fuseki-with-tdb2-and-owl-reasoner
> 
> I'm trying to configure fuseki to use TDB2 and OWL reasoning.  I can make
> it work with TDB1 but could not find any example of the same setup with
> TDB2.
> 
> this works:
> 
> -----
> 
> @prefix :      <http://base/#> .
> @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
> @prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
> @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
> @prefix fuseki: <http://jena.apache.org/fuseki#> .
> @prefix tdb:   <http://jena.hpl.hp.com/2008/tdb#> .
> 
> 
> 
> :service_tdb_all  a                   fuseki:Service ;
>          fuseki:dataset                :dataset ;
>          fuseki:name                   "gsip" ;
>          fuseki:serviceQuery           "query" , "sparql" ;
>          fuseki:serviceReadGraphStore  "get" ;
>          fuseki:serviceReadWriteGraphStore "data" ;
>          fuseki:serviceUpdate          "update" ;
>          fuseki:serviceUpload          "upload" .
> 
> :dataset a ja:RDFDataset ;
>      ja:defaultGraph       <#model_inf> ;
> tdb:location  "c:\\fuseki/run/databases/gsip".
> 
> 
> <#model_inf> a ja:InfModel ;
>       ja:baseModel <#graph> ;
>       ja:reasoner [
>           ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
>       ] .
> 
> <#graph> rdf:type tdb:GraphTDB ;
>    tdb:dataset :dataset .
> 
> ----
> 
> 
> but my naive adaptation to TDB2 does not (I tried a couple of variations)
> 
> 
> ----
> 
> @prefix :      <http://base/#> .
> @prefix tdb2:   <http://jena.apache.org/2016/tdb#> .
> @prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
> @prefix ja:    <http://jena.hpl.hp.com/2005/11/Assembler#> .
> @prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
> @prefix fuseki: <http://jena.apache.org/fuseki#> .
> 
> :service_tdb_all  a                   fuseki:Service ;
>          fuseki:dataset                :dataset ;
>          fuseki:name                   "gsip" ;
>          fuseki:serviceQuery           "query" , "sparql" ;
>          fuseki:serviceReadGraphStore  "get" ;
>          fuseki:serviceReadWriteGraphStore "data" ;
>          fuseki:serviceUpdate          "update" ;
>          fuseki:serviceUpload          "upload" .
> 
> :dataset a ja:RDFDataset ;
>      ja:defaultGraph       <#model_inf> ;
>      tdb2:location  "c:\\fuseki/databases/gsip"
>       .
> 
> <#model_inf> a ja:InfModel ;
>       ja:baseModel <#graph> ;
>       ja:reasoner [
>           ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
>       ] .
> 
> <#graph> rdf:type tdb2:GraphTDB ; # also tried tdb2:GraphTDB2
>    tdb2:dataset :dataset .
> 
> -----
> 
> Fuseki starts without error, but OWL reason does not work (I tried with a
> simple inversedOf property that returns inferred statements in my first
> setup)
> 
> - no log files (this is another issue)
> - I'm aware that TDB1 and TDB2 are not compatible, i wiped out the database
> (even change the database location) between tests.
> 
> Read the Jena Assembler documentation, but did not find (or missed) how to
> use TBDDataset (also, new in Jena - so drinking from the firehose).
> 
> Does anyone have an example of such a setup (TDB2 + OWLFBRuleReasoner) ?
> 
> Thanks
> 
> Does anyone have an exem
>