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
>
>