On 08/03/14 01:54, Fajar Juang Ekaputra wrote:
Hi,
I am trying to run TDB with jena rules inference using assembly
file.
I could do it with Fuseki, but I cannot find any example to run it with
non-Fuseki TDB storage. Is it possible to do this?
Yes.
<#dataset> rdf:type ja:RDFDataset ;
ja:defaultGraph <#model_inf> ;
.
<#model_inf> a ja:InfModel ;
ja:baseModel <#tdbGraph> ;
ja:reasoner [
ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
] .
<#tdbDataset> rdf:type tdb:DatasetTDB ;
tdb:location "DB" ;
# If the unionDefaultGraph is used, then the "update" service
should be removed.
# The unionDefaultGraph is read only.
# tdb:unionDefaultGraph true ;
.
<#tdbGraph> rdf:type tdb:GraphTDB ;
tdb:dataset <#tdbDataset> .
It's a general dataset, with a graph from a TDB dataset as base data.
You need to specificy which dataset you are interested in when you call
the assembler. Name the root with the absolute URI for the #dataset
one which is the top of the construction.
Andy
I copy my assembler file below. Using this assembler, it seems that
Jena only read from the database location and ignore other configurations.
Thank you and best regards,
--
Fajar J. Ekaputra
**Assembler file**
@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#> .
[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
tdb:DatasetTDB rdfs:subClassOf ja:RDFDataset .
tdb:GraphTDB rdfs:subClassOf ja:Model .
<#tdbDataset> rdf:type tdb:DatasetTDB ;
tdb:location "tdb/db"
.
<#data> a ja:InfModel ;
ja:baseModel <#tdbGraph> ;
ja:reasoner <#ekbRules>
.
<#ekbRules> a ja:reasoner ;
ja:reasonerURL <http://jena.hpl.hp.com/2003/GenericRuleReasoner>;
ja:rulesFrom <file:tdb/ekb.rules>
.
<#tdbGraph> rdf:type tdb:GraphTDB ;
tdb:dataset <#tdbDataset> ;
tdb:location "tdb/db"
.