@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 ja:      <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix sdb: <http://jena.hpl.hp.com/2007/sdb#> .

[] rdf:type fuseki:Server ;

   fuseki:services (
     <#memory>
     <#tdb>
     <#mysql>
   ) .

# Custom code.
[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
[] ja:loadClass "com.hp.hpl.jena.sdb.SDB" .


########################################################################
#In Memory    

<#memory>  rdf:type fuseki:Service ;
    fuseki:name              "memory" ;             # http://host/inf
    fuseki:serviceQuery      "sparql" ;          # SPARQL query service
    fuseki:serviceUpdate     "update" ;
    fuseki:dataset           <#dataset1> ;       #select which set to 
    .                                            #use
    



<#dataset1> rdf:type       ja:RDFDataset ;
    ja:defaultGraph       <#model_inf_1> ;
    .

<#model_inf_1> rdfs:label "Inf-1" ;
        ja:reasoner
         [ ja:reasonerURL 
           <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>];
    . 

########################################################################
# TDB
<#tdb>  rdf:type fuseki:Service ;
    fuseki:name              "tdb" ;             # http://host/inf
    fuseki:serviceQuery      "sparql" ;          # SPARQL query service
    fuseki:serviceUpdate     "update" ;
    fuseki:dataset           <#dataset2> ;       #select which set to 
    .                                            #use
tdb:GraphTDB    rdfs:subClassOf  ja:Model .

<#dataset2> rdf:type ja:RDFDataset ;
    ja:defaultGraph <#model2>; 
    .         

<#model2> a ja:InfModel;
    ja:baseModel <#tdbGraph>;
    ja:reasoner
         [ ja:reasonerURL 
           <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>];
    .
<#tdbGraph> rdf:type tdb:GraphTDB;
                     tdb:location "DB";
    .

########################################################################
#SDB / Mysql

<#mysql>  rdf:type fuseki:Service ;
    fuseki:name              "mysql" ;             # http://host/inf
    fuseki:serviceQuery      "sparql" ;          # SPARQL query service
    fuseki:serviceUpdate     "update" ;
    fuseki:dataset           <#dataset2> ;       #select which set to 
    .                                            #use


sdb:DatasetStore rdfs:subClassOf ja:RDFDataset .
<#dataset3>  rdf:type sdb:DatasetStore ;
    ja:defaultGraph       <#model3> ;
    sdb:store <#store>; 
    .

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

<#sdbGraph> rdf:type ja:Model;
   .

<#store> rdf:type sdb:Store  ;
   rdfs:label "SDB" ;
   sdb:layout "layout2" ;
   sdb:engine "InnoDB" ;
   sdb:connection
    [  rdf:type sdb:SDBConnection ;
       sdb:sdbType "MySQL" ;
       sdb:sdbHost "localhost" ;
       sdb:sdbName "fuseki";
       sdb:sdbUser "fuseki";
       sdb:sdbPassword "";
       sdb:driver "com.mysql.jdbc.Driver" ;
    ]
    .
    
