I would like to Load the import closure as a single tdb graph (i.e choice
1), but how can we do that.. is there any function call ?? since my base
ontology has 2-3 import statement this seems to be the best choice.

On Wed, Jul 9, 2014 at 1:18 PM, Dave Reynolds <[email protected]>
wrote:
>
> You haven't said anything about how you created the TDB models so it is
> pretty hard to diagnose.
>
> First off, do you need to use TDB here?  If you load your ontology into
> memory as an OntModel then the import processing will be done and your
> query would probably work. You should try that as a check.
>
> If you really do need to use TDB here then how are you trying to process
> the imports? You might be trying to:
>
> (1) Load the imports closure as a single TDB graph.
>
> (2) Load the ontology as one graph and load the imports as separate TDB
> graphs but access the whole as a single OntModel.
>
> (3) Load the ontology as one TDB graph, wrap an OntModel round it, but go
> and fetch the imported ontologies from the web when they are a needed.
>
> (1) is likely to be the best route. If this is what you are doing and it
> is not working then look at how you are doing the TDB loading. If you are
> doing it in your own program then ensure import processing has happened. If
> you are using TDB loader then make sure you are including in TDB loader all
> the imported ontologies.
>
> (2) Can be done but you need to set up an appropriate OntDocumentManager
> and associated ModelMaker to help the OntModel find the right graphs in
> TDB. Someone else would have to help with the details of that if this the
> route your are taking.
>
> (3) For this and (2) the other thing that might go wrong is that the
> import processing isn't being triggered. The OntModels normally do import
> processing at read() time. With a TDB-model then there is no read so you
> will need to call loadImports(). Do have this call?
>
> Finally for all of these cases the import processing might fail because
> one or more of the imports is not accessible - whether due to server
> problems or firewall problems. You should see error messages in that case.
>
> Dave
>
>
>
>
> On 09/07/14 07:25, Dibyanshu Jaiswal wrote:
>
>> Friends!! I am really facing this problem. Any help or suggestion will be
>> greatly appreciated.
>>
>>
>>
>> On Wed, Jun 25, 2014 at 3:58 PM, Dibyanshu Jaiswal <[email protected]>
>> wrote:
>>
>>
>>> Hi all!
>>> I am using Jena 2.11.
>>>
>>> I have an ontology setup, in a form of OntModel and backed by jena TDB.
>>> The ontology consists of a base owl file which import 4 other owl files.
>>> Out of these 2 owl files further import other owl files.
>>>
>>>
>>> I am unable to get results using a sparql query using jena ARQ engine,
>>> where by exactly the same query when executed in Protege 4.3 returns
>>> appropriate results.
>>>
>>> Query being:
>>>
>>>
>>> PREFIX un: <http://purl.oclc.org/NET/ssnx/ssn#>
>>> PREFIX : <http://www.semanticweb.org/ontologies/2013/9/My_BASE_OWL.owl#>
>>> PREFIX geo: <http://www.opengis.net/ont/geosparql#>
>>> PREFIX geof: <http://www.opengis.net/def/function/geosparql/>
>>> PREFIX sf: <http://www.opengis.net/ont/sf#>
>>> PREFIX afn: <http://jena.hpl.hp.com/ARQ/function#>
>>> PREFIX fn: <http://www.w3.org/2005/xpath-functions#>
>>> PREFIX gml: <http://www.opengis.net/ont/gml#>
>>> PREFIX j.0:<http://www.opengis.net/def/geosparql/#>
>>> PREFIX my:<http://example.org/ApplicationSchema#>
>>> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
>>> PREFIX owl: <http://www.w3.org/2002/07/owl#>
>>> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
>>> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
>>> PREFIX uo: <http://purl.obolibrary.org/obo/uo#>
>>> PREFIX ssn: <http://purl.oclc.org/NET/ssnx/ssn#>
>>> PREFIX ucum: <http://purl.oclc.org/NET/muo/ucum/>
>>> PREFIX ucumpq: <http://purl.oclc.org/NET/muo/ucum/physical-quality/>
>>> PREFIX uomvocab: <http://purl.oclc.org/NET/muo/muo#>
>>>
>>> SELECT * WHERE {?UOM uomvocab:measuresQuality ucumpq:power}
>>>
>>>
>>>
>>> In my java programs, i fire the query using two methods.
>>> 1.
>>> public static String prefixTheQuery(String q){
>>>
>>>
>>>         q ="PREFIX un: <"+AppProperties.getImportedIRI()+">\n"+
>>>                  "PREFIX : <"+AppProperties.getBaseIRI()+">\n"+
>>>                   "PREFIX geo: <http://www.opengis.net/ont/geosparql#>\n"
>>> +
>>>                  "PREFIX geof: <
>>> http://www.opengis.net/def/function/geosparql/>\n" +
>>>                  "PREFIX sf: <http://www.opengis.net/ont/sf#>\n"+
>>>                  "PREFIX afn: <http://jena.hpl.hp.com/ARQ/function#>\n"+
>>>                  "PREFIX fn: <http://www.w3.org/2005/xpath-functions#
>>> >\n"+
>>>                  "PREFIX gml: <http://www.opengis.net/ont/gml#>\n"+
>>>                  "PREFIX j.0:<http://www.opengis.net/def/geosparql/#
>>> >\n"+
>>>                  "PREFIX my:<http://example.org/ApplicationSchema#>\n"+
>>>                  "PREFIX rdf: <http://www.w3.org/1999/02/22-
>>> rdf-syntax-ns#
>>>
>>>> \n"+
>>>>
>>>                  "PREFIX owl: <http://www.w3.org/2002/07/owl#>\n"+
>>>                  "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>\n"+
>>>                  "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#
>>> >\n"+
>>>                  "PREFIX uo: <http://purl.obolibrary.org/obo/uo#>\n"+
>>>                  "PREFIX ssn: <http://purl.oclc.org/NET/ssnx/ssn#>\n"+
>>>                  "PREFIX ucum: <http://purl.oclc.org/NET/muo/ucum/>\n"+
>>>                  "PREFIX ucumpq: <
>>> http://purl.oclc.org/NET/muo/ucum/physical-quality/>\n"+
>>>                  "PREFIX uomvocab: <http://purl.oclc.org/NET/muo/muo#
>>>
>>>> \n"+q;
>>>>
>>>
>>>          return q;
>>>      }
>>>
>>> which returns the actual query string prefixed with different prefixes
>>> being used in all the ontologies in use.
>>>
>>>
>>> 2.
>>>
>>> public static String sparqlQuery(String sparqlQueryString){
>>>
>>>          String r = null;
>>>          QueryExecution qexec = null;
>>>          Query query = null;
>>>          ResultSet results = null;
>>>          ModelGenerator.getDataset().begin(ReadWrite.READ); //returns
>>> dataset
>>>      try {
>>>      sparqlQueryString = prefixTheQuery(sparqlQueryString);
>>>      query = QueryFactory.create(sparqlQueryString) ;
>>>      qexec =
>>> QueryExecutionFactory.create(query,ModelGenerator.getDataset());
>>>      results = qexec.execSelect() ;
>>>
>>>
>>>           r = printResultsWithResultSetFormatter(results,
>>> OutputType.TEXT);
>>> // to format output w.r.t JSON, XML,TEXT
>>>
>>>       } catch(Exception e){
>>>          System.out.println("Exception Occured while in QueryExecution:
>>> " );
>>>          e.printStackTrace();
>>>       } finally {
>>>
>>>           qexec.close() ;
>>>           ModelGenerator.getDataset().end();
>>>       }
>>>
>>>
>>>      return r;
>>>      }
>>>
>>>
>>>
>>>
>>> Using this approach (have used this for a long time) I am unable to get
>>> the results as expected, instead i get a blank results.
>>>
>>> To me the problem is that I am unable to fetch triples which have been
>>> imported indirectly via some ontology directly imported in my base
>>> ontology, Which is not the case when Protege is used to do the same.
>>>
>>> Is it so that the ontologies imported indirectly into the base model,
>>> doest not imports the all the statements of it?
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> *Dibyanshu Jaiswal*
>>> Mb: +91 9038304989
>>>
>>>
>>>
>>>
>>
>>
>

-- 
*Dibyanshu Jaiswal*
Mb: +91 9038304989

Reply via email to