Hi Andy,

I tried the below config for having memory dataset with reasoner but the server 
doesn't start with the configuration

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

[] rdf:type fuseki:Server ;
   fuseki:services (        
     <#dip>
   ) .

# TDB
#[] ja:loadClass "org.apache.jena.tdb.TDB" .
#tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
#tdb:GraphTDB    rdfs:subClassOf  ja:Model .

## ---------------------------------------------------------------

<#dip> rdf:type fuseki:Service ;
    # URI of the dataset -- http://host:port/dip 
    fuseki:name                        "dip" ; 
    fuseki:serviceQuery                "sparql" ;
    fuseki:serviceQuery                "query" ;
    fuseki:serviceUpdate               "update" ;
    fuseki:serviceUpload               "upload" ;
    fuseki:serviceReadWriteGraphStore  "data" ;     
    fuseki:serviceReadGraphStore       "get" ;
    fuseki:dataset                     <#dip_tbd> ;
    .

#TBD
<#dip_tbd> rdf:type ja:RDFDataset ;
     ja:defaultGraph <#infModel>  ;      
         tdb:fileMode "direct" ;
         .

<#infModel>  a ja:InfModel ;
      ja:baseModel <#tdbGraph>;
      ja:reasoner
         [ja:reasonerURL
             <http://jena.hpl.hp.com/2003/OWLMicroFBRuleReasoner>].

<#tdbGraph>  rdf:type tdb:GraphTDB ;
        #tdb2:location "C:\\etc\\fuseki/databases/dip" ;
        #tdb2:unionDefaultGraph true ;
        tdb:dataset <#tdbDataset> ;
        .
        
<#tdbDataset> rdf:type tdb:DatasetTDB ; 
        tdb:unionDefaultGraph true ;
        tdb:location "C:\\etc\\fuseki/databases/dip" ;
        .

Thanks for the help!!!!



On 2020/12/06 10:09:58, Andy Seaborne <[email protected]> wrote: 
> Please say what the error is and show the configuration you are trying.
> 
>      Andy
> 
> PS The config below has a lot of unnecessary items.
> 
> On 06/12/2020 01:18, Sushanth Vaddaram wrote:
> > I tried the following dataset for In-memory but when trying to add 
> > reasoner, the server does not start. Can some some one please provide the 
> > configuration we can use for in-memory dataset with a reasoner.
> > 
> > Config
> > =====
> > 
> > @prefix :      <http://base/#> .
> > @prefix tdb:   <http://jena.hpl.hp.com/2008/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#> .
> > 
> > <http://jena.apache.org/2016/tdb#DatasetTDB>
> >          rdfs:subClassOf  ja:RDFDataset .
> > 
> > ja:DatasetTxnMem  rdfs:subClassOf  ja:RDFDataset .
> > 
> > tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
> > 
> > :service1  a                          fuseki:Service ;
> >          fuseki:dataset                :dataset ;
> >          fuseki:name                   "dip10" ;
> >          fuseki:serviceQuery           "" , "query" , "sparql" ;
> >          fuseki:serviceReadGraphStore  "get" ;
> >          fuseki:serviceReadQuads       "" ;
> >          fuseki:serviceReadWriteGraphStore
> >                  "data" ;
> >          fuseki:serviceReadWriteQuads  "" ;
> >          fuseki:serviceUpdate          "update" , "" ;
> >          fuseki:serviceUpload          "upload" .
> > 
> > tdb:GraphTDB  rdfs:subClassOf  ja:Model .
> > 
> > <http://jena.apache.org/2016/tdb#GraphTDB2>
> >          rdfs:subClassOf  ja:Model .
> > 
> > ja:MemoryDataset  rdfs:subClassOf  ja:RDFDataset .
> > 
> > ja:RDFDatasetZero  rdfs:subClassOf  ja:RDFDataset .
> > 
> > <http://jena.apache.org/text#TextDataset>
> >          rdfs:subClassOf  ja:RDFDataset .
> > 
> > <http://jena.apache.org/2016/tdb#GraphTDB>
> >          rdfs:subClassOf  ja:Model .
> > 
> > ja:RDFDatasetOne  rdfs:subClassOf  ja:RDFDataset .
> > 
> > ja:RDFDatasetSink  rdfs:subClassOf  ja:RDFDataset .
> > 
> > :dataset  a     ja:DatasetTxnMem .
> > 
> > <http://jena.apache.org/2016/tdb#DatasetTDB2>
> >          rdfs:subClassOf  ja:RDFDataset .
> > 
> > 
> > On 2020/12/04 08:31:36, Andy Seaborne <[email protected]> wrote:
> >>
> >>
> >> On 04/12/2020 02:52, Sushanth Vaddaram wrote:
> >>> Thanks Dave.
> >>>
> >>> If we go with in-memory dataset, will I be loosing the data between jena 
> >>> restarts?
> >>
> >> Yes.
> >>
> >> You can write the data out to a file after computing and reload from
> >> that - or write the materialised data to second TDB database and work
> >> from that.
> >>
> >> The first part of the query could be rewritten - the first three triple
> >> patterns are the same in each branch:
> >>
> >> WHERE {
> >> ?datapointURI  rdf:type   dip:DataPoint  .
> >> ?datapointPROVIDER  dip:provides_info_object   ?datapointURI .
> >> ?datapointPROVIDER  dip:in_system  <http://dip.bis.utc.com/7#bacnet_7> .
> >>
> >> {
> >> ?datapointURI  rdf:type   ?datapointTYPE .
> >> } UNION {
> >>    ?datapointURI  rdfs:label   ?datapointLABEL .
> >> } UNION {
> >> ....
> >> }
> >>
> >> and it may help to reorder to put the SELECT DISTNCT first.
> >>
> >>       Andy
> >>
> >>>
> >>> Thanks,
> >>> Sushanth
> >>>
> >>> On 2020/12/03 19:13:58, Dave Reynolds <[email protected]> wrote:
> >>>> Hi,
> >>>>
> >>>> If your data doesn't change then yes you can compute the results ahead
> >>>> of time. Set up your data and reasoner, write the whole resulting model
> >>>> out to a dump file. Then you can load that dump file into another TDB
> >>>> and serve it as a fuseki dataset with no reasoner configuration.
> >>>>
> >>>> That doesn't help if your data is continuously changing though.
> >>>>
> >>>> The other option would be to run in-memory instead of from TDB. Given
> >>>> the reasoners are intrinsically limited to data that fits in memory then
> >>>> would could switch to running in memory, reading the data in from files
> >>>> when fuseki starts up. That would mean start up is slow but the reasoner
> >>>> performance will be a little better.
> >>>>
> >>>> If neither of those options work or are open to you then I'm afraid it
> >>>> may simply be that the reasoner is not up to the job.
> >>>>
> >>>> Dave
> >>>>
> >>>> On 03/12/2020 17:47, Sushanth Vaddaram wrote:
> >>>>> We have 6 lakh statements and when trying to hit the  query with the 
> >>>>> configuration below, it is almost taking 90 secs to load the results. 
> >>>>> Is there anything I can do to improve the performance. Also is there 
> >>>>> any way inferencing can be done during loading of the statements rather 
> >>>>> than runtime as I was getting the result in 2 seconds without the 
> >>>>> reasoner in the configuration.
> >>>>>
> >>>>> Query:
> >>>>>
> >>>>> PREFIX dip:<http://sce.ccs.utc.com/dip/reference-ontology#>
> >>>>> PREFIX map-onto:<http://sce.ccs.utc.com/dip/mapping-ontology#>
> >>>>> PREFIX auth:<http://sce.ccs.utc.com/dip/semantics/authorization#>
> >>>>> 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#>
> >>>>>
> >>>>> SELECT DISTINCT
> >>>>>      ?datapointURI  ?datapointTYPE  ?datapointLABEL  ?datapointSYSTEM  
> >>>>> ?datapointPROVIDER  ?datapointDATAMOD  ?datapointABSTPROP
> >>>>> WHERE
> >>>>> {
> >>>>>     {
> >>>>>     ?datapointURI  rdf:type   dip:DataPoint  .
> >>>>>     ?datapointPROVIDER  dip:provides_info_object   ?datapointURI .
> >>>>>     ?datapointPROVIDER  dip:in_system  
> >>>>> <http://dip.bis.utc.com/7#bacnet_7> .
> >>>>>     ?datapointURI  rdf:type   ?datapointTYPE .
> >>>>>     }
> >>>>>         UNION
> >>>>>     {
> >>>>>     ?datapointURI  rdf:type   dip:DataPoint  .
> >>>>>     ?datapointPROVIDER  dip:provides_info_object   ?datapointURI .
> >>>>>     ?datapointPROVIDER  dip:in_system  
> >>>>> <http://dip.bis.utc.com/7#bacnet_7> .
> >>>>>     ?datapointURI  rdfs:label   ?datapointLABEL .
> >>>>>     }
> >>>>>         UNION
> >>>>>     {
> >>>>>     ?datapointURI  rdf:type   dip:DataPoint  .
> >>>>>     ?datapointPROVIDER  dip:provides_info_object   ?datapointURI .
> >>>>>     ?datapointPROVIDER  dip:in_system  
> >>>>> <http://dip.bis.utc.com/7#bacnet_7> .
> >>>>>     ?datapointURI  dip:data_source_url   ?datapointDATAMOD .
> >>>>>     }
> >>>>>         UNION
> >>>>>     {
> >>>>>     ?datapointURI  rdf:type   dip:DataPoint  .
> >>>>>     ?datapointPROVIDER  dip:provides_info_object   ?datapointURI .
> >>>>>     ?datapointPROVIDER  dip:in_system  
> >>>>> <http://dip.bis.utc.com/7#bacnet_7> .
> >>>>>     ?datapointPROVIDER  dip:provides_info_object   ?datapointURI .
> >>>>>     ?datapointPROVIDER  dip:in_system   ?datapointSYSTEM .
> >>>>>     }
> >>>>>         UNION
> >>>>>     {
> >>>>>     ?datapointURI  rdf:type   dip:DataPoint  .
> >>>>>     ?datapointPROVIDER  dip:provides_info_object   ?datapointURI .
> >>>>>     ?datapointPROVIDER  dip:in_system  
> >>>>> <http://dip.bis.utc.com/7#bacnet_7> .
> >>>>>     ?datapointPROVIDER  dip:provides_info_object   ?datapointURI .
> >>>>>     }
> >>>>>         UNION
> >>>>>     {
> >>>>>     ?datapointURI  rdf:type   dip:DataPoint  .
> >>>>>     ?datapointPROVIDER  dip:provides_info_object   ?datapointURI .
> >>>>>     ?datapointPROVIDER  dip:in_system  
> >>>>> <http://dip.bis.utc.com/7#bacnet_7> .
> >>>>>     ?datapointURI  dip:abstracts   ?datapointABSTPROP .
> >>>>>     }
> >>>>> {
> >>>>>
> >>>>>
> >>>>> SELECT DISTINCT
> >>>>>      ?datapointURI
> >>>>> WHERE
> >>>>> {
> >>>>>     {
> >>>>>     ?zoneURI  dip:covers  
> >>>>> <http://test.dip.ales/spacetest#03d78792bb3eb3086b9e4135> .
> >>>>>     ?zoneURI  dip:has_scene_property   ?zonePROP .
> >>>>>     ?datapointURI  dip:abstracts   ?zonePROP .
> >>>>>     ?datapointURI  rdf:type   dip:DataPoint  .
> >>>>>     }
> >>>>>         UNION
> >>>>>     {
> >>>>> <http://test.dip.ales/spacetest#03d78792bb3eb3086b9e4135>  
> >>>>> dip:spatial_containment   ?deviceURI .
> >>>>>     ?deviceURI  dip:provides_info_object   ?datapointURI .
> >>>>>     ?datapointURI  rdf:type   dip:DataPoint  .
> >>>>>     }
> >>>>>         UNION
> >>>>>     {
> >>>>>     ?datapointURI  rdf:type   dip:DataPoint  .
> >>>>>     ?datapointPROVIDER  dip:provides_info_object   ?datapointURI .
> >>>>>     ?datapointPROVIDER  dip:in_system  
> >>>>> <http://dip.bis.utc.com/7#bacnet_7> .
> >>>>> <http://test.dip.ales/spacetest#03d78792bb3eb3086b9e4135>  
> >>>>> dip:contains_hardware / dip:contains_hardware_device   ?deviceURI .
> >>>>>     ?deviceURI  dip:provides_info_object   ?datapointURI .
> >>>>>     ?datapointURI  rdf:type   dip:DataPoint  .
> >>>>>     }
> >>>>> }
> >>>>>
> >>>>> }
> >>>>> }
> >>>>>
> >>>>>
> >>>>>
> >>>>> Configuration:
> >>>>> ==========
> >>>>> @prefix :        <#> .
> >>>>> @prefix fuseki:  <http://jena.apache.org/fuseki#> .
> >>>>> @prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
> >>>>> @prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
> >>>>> @prefix tdb:     <http://jena.hpl.hp.com/2008/tdb#> .
> >>>>> @prefix tdb2:  <http://jena.apache.org/2016/tdb#> .
> >>>>> @prefix ja:      <http://jena.hpl.hp.com/2005/11/Assembler#> .
> >>>>>
> >>>>> [] rdf:type fuseki:Server ;
> >>>>>       fuseki:services ( 
> >>>>>         <#dip>
> >>>>>       ) .
> >>>>>
> >>>>> # TDB
> >>>>> #[] ja:loadClass "org.apache.jena.tdb.TDB" .
> >>>>> #tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
> >>>>> #tdb:GraphTDB    rdfs:subClassOf  ja:Model .
> >>>>>
> >>>>> ## ---------------------------------------------------------------
> >>>>>
> >>>>> <#dip> rdf:type fuseki:Service ;
> >>>>>        # URI of the dataset -- http://host:port/dip
> >>>>>        fuseki:name                        "dip" ;
> >>>>>        fuseki:serviceQuery                "sparql" ;
> >>>>>        fuseki:serviceQuery                "query" ;
> >>>>>        fuseki:serviceUpdate               "update" ;
> >>>>>        fuseki:serviceUpload               "upload" ;
> >>>>>        fuseki:serviceReadWriteGraphStore  "data" ;
> >>>>>        fuseki:serviceReadGraphStore       "get" ;
> >>>>>        fuseki:dataset                     <#dip_tbd> ;
> >>>>>        .
> >>>>>
> >>>>> #TBD
> >>>>> <#dip_tbd> rdf:type ja:RDFDataset ;
> >>>>>         ja:defaultGraph <#infModel>  ;  
> >>>>>          tdb:fileMode "direct" ;
> >>>>>          .
> >>>>>
> >>>>> <#infModel>  a ja:InfModel ;
> >>>>>          ja:baseModel <#tdbGraph>;
> >>>>>          ja:reasoner
> >>>>>             [ja:reasonerURL
> >>>>>                 <http://jena.hpl.hp.com/2003/OWLMicroFBRuleReasoner>].
> >>>>>
> >>>>> <#tdbGraph>  rdf:type tdb2:GraphTDB ;
> >>>>>         tdb2:location "C:\\etc\\fuseki/databases/dip5" ;
> >>>>>         tdb2:unionDefaultGraph true ;
> >>>>>
> >>>>>         .
> >>>>>
> >>>>>
> >>>>> Thanks for the help!!!
> >>>>>
> >>>>
> >>
> 

Reply via email to