我正在使用 Jena 运行 Pellet,如下所示:
public void storeInferredModel(Data data) {
System.out.println("creating inferred dataset ");
Dataset dataset = TDBFactory.createDataset(data.getInferredResultsPath());
System.out.println("creating OntModel ");
OntModel Infmodel = ModelFactory.createOntologyModel(
PelletReasonerFactory.THE_SPEC,
dataset.getNamedModel(this.URL));
System.out.println("adding schema (OWL) to OntModel");
Infmodel.add(this.owl);
System.out.println("adding data (RDF) to OntModel ");
Infmodel.add(data.tdb);
System.out.println("creating ModelExtractor ");
ModelExtractor ext = new ModelExtractor(Infmodel);
System.out.println("replacing OntModel by the Extracted Model");
dataset.replaceNamedModel(this.URL, ext.extractModel());
System.out.println("saving inferred model");
Infmodel.close();
System.out.println("closing inferred dataset");
dataset.close();
}
我在Pellet Reasoner 下与 Jena有过上一篇文章。我的 TDB 或原始数据是 2.7G。我一直在针对 TDB 运行推理器,但我遇到了“PermGen 空间 java”的问题,尽管我给程序提供了 70G 左右的内存,推理器只占用了 30G,然后就崩溃了。换句话说,它没有达到计算机内存的最大值
我正在运行 Linux 和 Java 64 位,服务器中有 83 G 内存。我已经坚持了一周。