You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Håvard Mikkelsen Ottestad <ha...@acando.no> on 2016/01/11 14:04:43 UTC
Fuseki TDB with tdb:unionDefaultGraph
Hi,
I've set up a config for Fuseki with tdb:unionDefaultGraph "true". This works great for queries and allows me to separate my data into graphs for easy update and delete operations.
However. I can't seem to get the graph protocol to work.
I can list all data in graphs with:
<http://localhost:3030/fuseki/admin/data>http://localhost:3030/fuseki/admin/get
But when I try to get the default graph (which should be the union), I get nothing (empty, but no errors).
<http://localhost:3030/fuseki/admin/data?default>http://localhost:3030/fuseki/admin/get?default
or
http://localhost:3030/fuseki/admin/get?graph=default
Is there something I've done wrong in my setup?
TTL config file:
@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 : <#> .
<#service1> rdf:type fuseki:Service ;
fuseki:name "admin" ; # http://host:port/ds
fuseki:serviceQuery "sparql" ; # SPARQL query service
fuseki:serviceQuery "query" ; # SPARQL query service (alt name)
fuseki:serviceUpdate "update" ; # SPARQL update service
fuseki:serviceUpload "upload" ; # Non-SPARQL upload service
fuseki:serviceReadWriteGraphStore "data" ; # SPARQL Graph store protocol (read and write)
# A separate read-only graph store endpoint:
fuseki:serviceReadGraphStore "get" ; # SPARQL Graph store protocol (read only)
fuseki:dataset <#dataset> ;
.
<#dataset> rdf:type tdb:DatasetTDB ;
tdb:location "/etc/fuseki/databases/admin" ;
tdb:unionDefaultGraph true ;
.
Regards,
Håvard M. Ottestad
Re: Fuseki TDB with tdb:unionDefaultGraph
Posted by Håvard Mikkelsen Ottestad <ha...@acando.no>.
Hi Andy,
Thank you for your help.
"urn:x-arq:UnionGraph” works like a charm through the GSP.
I understand that the GSP operations should work on the actual data, but it does seem slightly inconsistent with how the SPARQL queries work.
The Edit tab in Fuseki reveals this inconsistency by showing that my default graph has 33 triples in it, but not being able to show any of them.
Håvard
On 12/01/16 14:41, "Andy Seaborne" <an...@apache.org> wrote:
>On 11/01/16 13:04, Håvard Mikkelsen Ottestad wrote:
>> Hi,
>>
>> I've set up a config for Fuseki with tdb:unionDefaultGraph "true". This works great for queries and allows me to separate my data into graphs for easy update and delete operations.
>>
>> However. I can't seem to get the graph protocol to work.
>>
>> I can list all data in graphs with:
>>
>> <http://localhost:3030/fuseki/admin/data>http://localhost:3030/fuseki/admin/get
>>
>> But when I try to get the default graph (which should be the union), I get nothing (empty, but no errors).
>>
>> <http://localhost:3030/fuseki/admin/data?default>http://localhost:3030/fuseki/admin/get?default
>>
>> or
>>
>> http://localhost:3030/fuseki/admin/get?graph=default
>
>Its' the former ?default.
>
>>
>> Is there something I've done wrong in my setup?
>
>
>One role for the Graph Store Protocol for data management (it's just
>about GET). The default union graph applies to query, not to GSP.
>
>GSP operations act on the concrete dataset where the default graph is
>the actual storage default graph.
>
>In other words, PUT, POST, DELETE make changes and so naming is about
>the real default graph. And maybe the app wants GET to return the real
>default graph.
>
>It may work to ask for a named graph of urn:x-arq:UnionGraph which is
>the name for the default union graph.
>
>There is no reason why the couldn't be a extension where where "?union"
>for GET only, is the union graph.
>
> Andy
>
>>
>> TTL config file:
>>
>>
>>
>> @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 : <#> .
>>
>> <#service1> rdf:type fuseki:Service ;
>> fuseki:name "admin" ; # http://host:port/ds
>> fuseki:serviceQuery "sparql" ; # SPARQL query service
>> fuseki:serviceQuery "query" ; # SPARQL query service (alt name)
>> fuseki:serviceUpdate "update" ; # SPARQL update service
>> fuseki:serviceUpload "upload" ; # Non-SPARQL upload service
>> fuseki:serviceReadWriteGraphStore "data" ; # SPARQL Graph store protocol (read and write)
>> # A separate read-only graph store endpoint:
>> fuseki:serviceReadGraphStore "get" ; # SPARQL Graph store protocol (read only)
>> fuseki:dataset <#dataset> ;
>> .
>>
>> <#dataset> rdf:type tdb:DatasetTDB ;
>> tdb:location "/etc/fuseki/databases/admin" ;
>> tdb:unionDefaultGraph true ;
>> .
>>
>>
>> Regards,
>> Håvard M. Ottestad
>>
>>
>
Re: Fuseki TDB with tdb:unionDefaultGraph
Posted by Andy Seaborne <an...@apache.org>.
On 11/01/16 13:04, Håvard Mikkelsen Ottestad wrote:
> Hi,
>
> I've set up a config for Fuseki with tdb:unionDefaultGraph "true". This works great for queries and allows me to separate my data into graphs for easy update and delete operations.
>
> However. I can't seem to get the graph protocol to work.
>
> I can list all data in graphs with:
>
> <http://localhost:3030/fuseki/admin/data>http://localhost:3030/fuseki/admin/get
>
> But when I try to get the default graph (which should be the union), I get nothing (empty, but no errors).
>
> <http://localhost:3030/fuseki/admin/data?default>http://localhost:3030/fuseki/admin/get?default
>
> or
>
> http://localhost:3030/fuseki/admin/get?graph=default
Its' the former ?default.
>
> Is there something I've done wrong in my setup?
One role for the Graph Store Protocol for data management (it's just
about GET). The default union graph applies to query, not to GSP.
GSP operations act on the concrete dataset where the default graph is
the actual storage default graph.
In other words, PUT, POST, DELETE make changes and so naming is about
the real default graph. And maybe the app wants GET to return the real
default graph.
It may work to ask for a named graph of urn:x-arq:UnionGraph which is
the name for the default union graph.
There is no reason why the couldn't be a extension where where "?union"
for GET only, is the union graph.
Andy
>
> TTL config file:
>
>
>
> @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 : <#> .
>
> <#service1> rdf:type fuseki:Service ;
> fuseki:name "admin" ; # http://host:port/ds
> fuseki:serviceQuery "sparql" ; # SPARQL query service
> fuseki:serviceQuery "query" ; # SPARQL query service (alt name)
> fuseki:serviceUpdate "update" ; # SPARQL update service
> fuseki:serviceUpload "upload" ; # Non-SPARQL upload service
> fuseki:serviceReadWriteGraphStore "data" ; # SPARQL Graph store protocol (read and write)
> # A separate read-only graph store endpoint:
> fuseki:serviceReadGraphStore "get" ; # SPARQL Graph store protocol (read only)
> fuseki:dataset <#dataset> ;
> .
>
> <#dataset> rdf:type tdb:DatasetTDB ;
> tdb:location "/etc/fuseki/databases/admin" ;
> tdb:unionDefaultGraph true ;
> .
>
>
> Regards,
> Håvard M. Ottestad
>
>