Andy, Thank you for the reply. In our use case the set of graphs in the
dataset is not known beforehand so we wouldn't be able to configure
Fuseki ahead of time in the way you outlined.  Is a more dynamic approach
possible in the context of Fuseki?
One work around we've discussed is to store do the inference on an
in-memory model and then store the materialized graph in Fuseki.
How does this sound to you?
Thanks, Guy



From:   Andy Seaborne <[email protected]>
To:     [email protected],
Date:   09/10/2013 06:05 PM
Subject:        Re: transitive reasoning and named graphs



 > <#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/TransitiveReasoner>
 > #ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLMicroFBRuleReasoner>
 > #ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLMiniFBRuleReasoner>
 >           ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLFBRuleReasoner>
 >       ] .

 > <#tdbGraph> rdf:type tdb:GraphTDB ;
 >      tdb:dataset <#tdbDataset> .

You have the inference engine only over the default graph.

If you point <#tdbGraph> to a different graph it should work.  It will
appear as the default graph of the dataset, unless you change
ja:defaultGraph to
ja:namedGraph [ ja:graph <#yourgraph> ; ja:graphName <http://whatever> ]

                 Andy

On 09/10/13 13:36, Guy Laden wrote:
>
> We are running into an issue trying to use reasoning with Fuseki over
> owl:TransitiveProperties.
>
> Our example (below) works when the triples are uploaded into the default
> graph but when we upload them to a named graph reasoning doesn't seem to
> work. (We have tried querying both the named graph and the default graph)
>
> The triples
> --------------
> <http://localhost/onto#prop1> a
> <http://www.w3.org/2002/07/owl#TransitiveProperty> .
> <http://localhost:9090/part1> <http://localhost/onto#prop1>
> <http://localhost:9090/part2> .
> <http://localhost:9090/part2> <http://localhost/onto#prop1>
> <http://localhost:9090/part3> .
> <http://localhost:9090/part3> <http://localhost/onto#prop1>
> <http://localhost:9090/part4> .
>
> The query
> -------------
> SELECT DISTINCT * where {
> {
> GRAPH ?g {
>   <http://localhost:9090/part1> <http://localhost/onto#prop1> ?part .
> }
> } UNION {
> <http://localhost:9090/part1> <http://localhost/onto#prop1> ?part .
> }
> }
>
> When we upload to some named graph we get no results (even if
> unionDefaultGraph is set to true)
>
> When we upload to the default graph the results we get are:
> | part                          |
> =================================
> | <http://localhost:9090/part2> |
> | <http://localhost:9090/part3> |
> | <http://localhost:9090/part4> |
> ---------------------------------
>
> We tried the query like above, with the UNION, as well as with each
variant
> separately.
>
> We have tried both fuseki 1.0.0 and 0.2.7
>
> Below is the Fuseki config file we are using.
>
> What are we missing?
>
> Thanks, Guy
>
> ------------------------
>
> @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 ;
>     fuseki:services (
>       <#service1>
>     ) .
>
> # Custom code.
> [] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
>
> # TDB
> tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
> tdb:GraphTDB    rdfs:subClassOf  ja:Model .
>
> ## ---------------------------------------------------------------
> ## Service with only SPARQL query on an inference model.
> ## Inference model bbase data in TDB.
>
> <#service1>  rdf:type fuseki:Service ;
>      fuseki:name              "ds" ;             # http://host/inf
>      fuseki:serviceQuery      "sparql" ;          # SPARQL query service
>      fuseki:serviceUpdate     "update" ;
>      fuseki:serviceQuery             "query" ;
>      fuseki:serviceUpload            "upload" ;
>      fuseki:serviceReadWriteGraphStore      "data" ;
>      # A separate read-only graph store endpoint:
>      fuseki:serviceReadGraphStore       "get" ;
>      fuseki:dataset           <#dataset> ;
>      .
>
> <#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/TransitiveReasoner>
> #ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLMicroFBRuleReasoner>
> #ja:reasonerURL <http://jena.hpl.hp.com/2003/OWLMiniFBRuleReasoner>
>           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> .
>
>



Reply via email to