Hi,
I have an large OWL ontology file as RDF which includes swrl rules and i'm
trying to reason in java with jena TDB using Pellet but when i run the
following code on eclipse.
public class TestJenaTDB {
public static void main(String[] args) {
// TODO Auto-generated method stub
String directory = "TDB";
Dataset dataset = TDBFactory.createDataset(directory);
Model tdb = dataset.getDefaultModel();
OntModel ont = ModelFactory.createOntologyModel(PelletReasonerFactory.
THE_SPEC,tdb);
// read the input file
String source = "Ontology_rdf.owl";
ont.read(source,"RDF/XML");
//FileManager.get().readModel( tdb, source,"RDF/XML");
PelletOptions.USE_CONTINUOUS_RULES = true;
Reasoner reasoner = PelletReasonerFactory.theInstance().create();
reasoner = reasoner.bindSchema(ont);
InfModel infModel = ModelFactory.createInfModel(reasoner, tdb);
String sparqlQueryString = "PREFIX ling: <
http://www.lsis.org/LingOnto/LingOnto.owl#> PREFIX rdf: <
http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?p WHERE {\n" + "?p
rdf:type ling:PER }";
Query query = QueryFactory.create(sparqlQueryString) ;
QueryExecution qexec = QueryExecutionFactory.create(query, infModel) ;
ResultSet results = qexec.execSelect() ;
ResultSetFormatter.out(results) ;
TDB.sync(dataset);
qexec.close();
tdb.close();
dataset.close();
}
}
i get this exception:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at org.mindswap.pellet.EdgeList.getEdges(EdgeList.java:202)
at com.clarkparsia.pellet.rules.rete.AlphaEdgeNode.getEdges(
AlphaEdgeNode.java:115)
at com.clarkparsia.pellet.rules.rete.AlphaEdgeNode.getMatches(
AlphaEdgeNode.java:105)
at com.clarkparsia.pellet.rules.rete.AlphaEdgeNode.getMatches(
AlphaEdgeNode.java:89)
at com.clarkparsia.pellet.rules.rete.BetaMemoryIndex$JoinIndexed.getWMEs(
BetaMemoryIndex.java:208)
at com.clarkparsia.pellet.rules.rete.BetaMemoryNode.activate(
BetaMemoryNode.java:71)
at com.clarkparsia.pellet.rules.rete.BetaNode.activateChildren(
BetaNode.java:24)
at com.clarkparsia.pellet.rules.rete.BetaMemoryNode.activate(
BetaMemoryNode.java:75)
at com.clarkparsia.pellet.rules.rete.BetaNode.activateChildren(
BetaNode.java:24)
at com.clarkparsia.pellet.rules.rete.BetaMemoryNode.activate(
BetaMemoryNode.java:75)
at com.clarkparsia.pellet.rules.rete.BetaNode.activateChildren(
BetaNode.java:24)
at com.clarkparsia.pellet.rules.rete.BetaMemoryNode.activate(
BetaMemoryNode.java:58)
at com.clarkparsia.pellet.rules.rete.AlphaNode.activate(AlphaNode.java:55)
What am I doing incorrect ? Thanks