You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Evan Patton <pa...@rpi.edu> on 2012/04/27 22:09:43 UTC

OntModel over DatasetTDB using Jena Assembler

Hi everyone,

I'm looking at performing reasoning over a TDB dataset using Fuseki. In the past I've configured single graphs using tdb:GraphTDB in Joseki using the Jena Assembler framework, but it's not clear if it's possible to use a tdb:DatasetTDB as the backing for an OntModel. Fuseki dumps the following message: 

cannot find a most specific type for :dataset, which has as possibilities: ja:Model tdb:DatasetTDB

So my question is: Is there any method of loading an entire TDB dataset (named graphs and all) for RDFS inference in Fuseki?

Thanks,
Evan


Re: OntModel over DatasetTDB using Jena Assembler

Posted by Evan Patton <pa...@rpi.edu>.
Not sure why the attachment was stripped (or where, as it shows up in my sent mail), but here's a copy&pasted version.

Evan

# Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0

## Example of a TDB dataset published using Fuseki

@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#> .

[] rdf:type fuseki:Server ;
   # Timeout - server-wide default: milliseconds.
   # Format 1: "1000" -- 1 second timeout
   # Format 2: "10000,60000" -- 10s timeout to first result, then 60s timeout to for rest of query.
   # See java doc for ARQ.queryTimeout
   # ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue "10000" ] ;
   # ja:loadClass "your.code.Class" ;

   fuseki:services (
     <#service_rdfs>
     <#service_tdb>
     <#service_tdb_docs>
   ) .

# TDB
[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
tdb:GraphTDB    rdfs:subClassOf  ja:Model .

## ---------------------------------------------------------------
## Updatable TDB dataset with all servcies enabled.

<#service_rdfs> rdf:type fuseki:Service ;
    rdfs:label                      "RDFS Service" ;
    fuseki:name                     "rdfs" ;
    fuseki:serviceQuery             "query" ;
    fuseki:serviceQuery             "sparql" ;
#    fuseki:serviceUpdate            "update" ;
#    fuseki:serviceUpload            "upload" ;
#    fuseki:serviceReadWriteGraphStore      "data" ;
    # A separate read-only graph store endpoint:
#    fuseki:serviceReadGraphStore       "get" ;
    fuseki:dataset           <#rdfs_dataset_read> ;
    .

<#rdfs_dataset_read> rdf:type     ja:OntModel ;
    ja:baseModel <#rdfs_model> ;
    ja:ontModelSpec ja:RDFS_MEM_RDFS_INF ;
    .

<#rdfs_model> rdf:type ja:UnionModel ;
    ja:subModel <#document_dataset> ;
    ja:rootModel <#tdb_dataset> ;
    .

## ---------------------------------------------------------------
## Updatable TDB dataset with all servcies enabled.

<#service_tdb> rdf:type fuseki:Service ;
    rdfs:label                      "main" ;
    fuseki:name                     "main" ;
    fuseki:serviceQuery             "query" ;
    fuseki:serviceQuery             "sparql" ;
    fuseki:serviceUpdate            "update" ;
    fuseki:serviceUpload            "upload" ;
    fuseki:serviceReadWriteGraphStore      "data" ;
    # A separate read-only graph store endpoint:
    fuseki:serviceReadGraphStore       "get" ;
    fuseki:dataset           <#tdb_dataset> ;
    .

<#tdb_dataset> rdf:type      tdb:DatasetTDB ;
    tdb:location "/ext/rdf/tdb" ;
    tdb:unionDefaultGraph true ;
    .

<#service_tdb_docs> rdf:type fuseki:Service ;
    rdfs:label                      "documents" ;
    fuseki:name                     "media" ;
    fuseki:serviceQuery             "query" ;
    fuseki:serviceQuery             "sparql" ;
    fuseki:serviceUpdate            "update" ;
    fuseki:serviceUpload            "upload" ;
    fuseki:serviceReadWriteGraphStore       "data" ;
    fuseki:serviceReadGraphStore    "get" ;
    fuseki:dataset           <#document_dataset> ;
    .

<#document_dataset> rdf:type    tdb:DatasetTDB ;
    tdb:location "/ext/rdf/documents" ;
    tdb:unionDefaultGraph true ;
    .


On May 2, 2012, at 10:59 AM, Evan Patton wrote:

> Hi Andy,
> 
> I've attached a copy of my config file. The biggest issue is that I want to store schema, instances, and metadata in different graphs and have the ability to persistently store external data (e.g. FOAF files) by using the SPARQL 1.1 Update LOAD functionality. However, it is non-obvious to me that I can build an RDFS InfModel over the union of the entire TDB dataset--at least based on the error I sent you. Of course, I may just be overlooking something.
> 
> Thanks,
> Evan
> 
> 
> 
> -- 
> BEGIN-ANTISPAM-VOTING-LINKS
> ------------------------------------------------------
> 
> Teach CanIt if this mail (ID 49059161) is spam:
> Spam:        http://respite.rpi.edu/b.php?c=s&i=49059161&m=093746acb9c8
> Not spam:    http://respite.rpi.edu/b.php?c=n&i=49059161&m=093746acb9c8
> Forget vote: http://respite.rpi.edu/b.php?c=f&i=49059161&m=093746acb9c8
> ------------------------------------------------------
> END-ANTISPAM-VOTING-LINKS
> 
> 
> On Apr 27, 2012, at 7:29 PM, Andy Seaborne wrote:
> 
>> On 27/04/12 21:09, Evan Patton wrote:
>>> Hi everyone,
>>> 
>>> I'm looking at performing reasoning over a TDB dataset using Fuseki.
>>> In the past I've configured single graphs using tdb:GraphTDB in
>>> Joseki using the Jena Assembler framework, but it's not clear if it's
>>> possible to use a tdb:DatasetTDB as the backing for an OntModel.
>>> Fuseki dumps the following message:
>>> 
>>> cannot find a most specific type for :dataset, which has as
>>> possibilities: ja:Model tdb:DatasetTDB
>>> 
>>> So my question is: Is there any method of loading an entire TDB
>>> dataset (named graphs and all) for RDFS inference in Fuseki?
>> 
>> Fuseki uses the same mechanism as Joseki to define datasets.  You have to pick one model out of a dataset.
>> 
>> That error usually occurs from a misconfigured config file.
>> 
>> What is the config file?
>> 
>> 	Andy
>> 
>>> 
>>> Thanks, Evan
>>> 
>> 
>> 
>> 
>> -- 
>> 
>> 
> 


Re: OntModel over DatasetTDB using Jena Assembler

Posted by Evan Patton <pa...@rpi.edu>.
Hi Andy,

I've attached a copy of my config file. The biggest issue is that I want to store schema, instances, and metadata in different graphs and have the ability to persistently store external data (e.g. FOAF files) by using the SPARQL 1.1 Update LOAD functionality. However, it is non-obvious to me that I can build an RDFS InfModel over the union of the entire TDB dataset--at least based on the error I sent you. Of course, I may just be overlooking something.

Thanks,
Evan


Re: OntModel over DatasetTDB using Jena Assembler

Posted by Andy Seaborne <an...@apache.org>.
On 27/04/12 21:09, Evan Patton wrote:
> Hi everyone,
>
> I'm looking at performing reasoning over a TDB dataset using Fuseki.
> In the past I've configured single graphs using tdb:GraphTDB in
> Joseki using the Jena Assembler framework, but it's not clear if it's
> possible to use a tdb:DatasetTDB as the backing for an OntModel.
> Fuseki dumps the following message:
>
> cannot find a most specific type for :dataset, which has as
> possibilities: ja:Model tdb:DatasetTDB
>
> So my question is: Is there any method of loading an entire TDB
> dataset (named graphs and all) for RDFS inference in Fuseki?

Fuseki uses the same mechanism as Joseki to define datasets.  You have 
to pick one model out of a dataset.

That error usually occurs from a misconfigured config file.

What is the config file?

	Andy

>
> Thanks, Evan
>