Hi,

I have multiple graphs in my virtuoso repository. Each graph stores an
ontology. I want to turn on RDFS Inferencing on all the graphs using Jena
Virtuoso provider API.

I am able to do turn on inferencing on a single graph, using the code :


import java.util.ArrayList;


import com.hp.hpl.jena.query.Query;

import com.hp.hpl.jena.query.QueryExecution;

import com.hp.hpl.jena.query.QueryExecutionFactory;

import com.hp.hpl.jena.query.QueryFactory;

import com.hp.hpl.jena.query.QuerySolution;

import com.hp.hpl.jena.query.ResultSet;

import com.hp.hpl.jena.rdf.model.InfModel;

import com.hp.hpl.jena.rdf.model.Model;

import com.hp.hpl.jena.rdf.model.ModelFactory;


import com.hp.hpl.jena.rdf.model.Resource;

import com.hp.hpl.jena.rdf.model.Statement;

import com.hp.hpl.jena.rdf.model.StmtIterator;

import com.hp.hpl.jena.reasoner.Reasoner;

import com.hp.hpl.jena.reasoner.ReasonerRegistry;


import virtuoso.jena.driver.VirtGraph;

import virtuoso.jena.driver.VirtModel;



public class InferenceExample {


 public static void main(String[] args)

    {

VirtGraph graph = new VirtGraph("http://purl.oclc.org/NET/ssnx/ssn";, url,
usename, password );

  System.out.println("Connection established .... ");

  Model virtModel = new VirtModel(graph);

    Reasoner reasoner = ReasonerRegistry.getRDFSReasoner();

    InfModel infModel = ModelFactory.createInfModel(reasoner, virtModel);

    infModel.commit();

    String query = "PREFIX ssn:<http://purl.oclc.org/NET/ssnx/ssn#>"

  + " PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#>"

  + " CONSTRUCT {ssn:Device rdfs:subClassOf ?superClass} "

  + " WHERE {ssn:Device rdfs:subClassOf ?superClass}";


 System.out.println("Execute query=\n"+query) ;

  Query sparql = QueryFactory.create(query);

    QueryExecution vqe = QueryExecutionFactory.create (sparql, infModel);


 Model result = vqe.execConstruct();

 StmtIterator iter = result.listStatements();

        while (iter.hasNext()){

            Statement stmt = iter.nextStatement();

            String ontology = stmt.getObject().toString();

            System.out.println(" Ontology : " + ontology);

         }


}


Can run the same query on all graphs in the repository.
-- 
Best Regards;

Reply via email to