Indeed the rule reasoner pre-dates the notion of datasets and only
applies to a model = set of triples.
Dave
On 12/05/14 19:12, Сергей Антоненко wrote:
Thanks, I've understood my problem.
I was trying to produce minimal config version to reproduce the bigger
problem.
I am using a generic jena rules reasoner and I'm trying to make it work for
all named graphs. But it seems like it can be applied only to a model
(which as I believe is just a more complex representation of graph of
triples, not quads) and I needed it for whole dataset.
What I need is basic forward-chain rule reasoner inside each named graph,
without no interference this others.
I was trying all combinations I could image for assembler config file, but
it was just named graph persistence was broke or reasoning not working. Or
both.
So what do I do? Am I doing something logically wrong and it's not fixable,
or I need some more configuration magic, or I need to write some java code
to create my own smart dataset implementation with all blackjack and
hookers I need?
On 12 May 2014 16:23, Andy Seaborne <[email protected]> wrote:
Hi there,
Your setup creates an in-memory dataset and put a single graph from TDB
into that dataset and only that graph. New graphs will go into the
in-memory dataset, which isn't persistent.
SPARQL operations act on datasets.
Is there a specific reason for this setup?
To attach the whole TDB dataset to the server, use:
...
fuseki:dataset <#dataset>.
<#dataset> tdb:DatasetTDB ;
tdb:location "DB" ;
.
...
then new graphs go into TDB (transactionally).
Andy
On 11/05/14 21:01, Сергей Антоненко wrote:
Hello everybody.
I have jena-fuseki-1.0.1 configured using this file:
///
@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 (
<#tdb>
) .
[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
<#tdb> rdf:type fuseki:Service;
fuseki:name "tdb";
fuseki:serviceQuery "sparql";
fuseki:serviceUpdate "update";
fuseki:serviceReadWriteGraphStore "data";
fuseki:dataset <#dataset>.
tdb:GraphTDB
rdfs:subClassOf ja:Model.
<#dataset>
rdf:type ja:RDFDataset.
<#tdbGraph>
rdf:type tdb:GraphTDB;
tdb:location "DB".
///
To reproduce an error, I make this query sequence:
///
CLEAR ALL;
///
PREFIX example: <http://example.org/>
CREATE GRAPH example:graphs
///
PREFIX example: <http://example.org/>
WITH example:graphs
INSERT {
example:graph1 a example:graph.
example:graph2 a example:graph.
} WHERE {}
///
Same effect with INSERT DATA
INSERT DATA {
GRAPH example:graphs {
example:graph1 a example:graph.
example:graph2 a example:graph.
}
}
Then I perform SELECT query:
///
PREFIX example: <http://example.org/>
SELECT * WHERE {
GRAPH example:graphs {
?s ?p ?o
}
}
///
Which returns me correct result:
///
------------------------------------------------------------
--------------------------
| s | p |
o |
============================================================
==========================
| example:graph1 | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> |
example:graph |
| example:graph2 | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> |
example:graph |
------------------------------------------------------------
--------------------------
///
But after restarting fuseki server, the query above returns empty set. And
all the data in default graph remains in database.
Why does it happen? Is this a kind of a problem I can fix?