繁体   English   中英

耶拿+ PermGen空间的颗粒推理

[英]Pellet Reasoner with Jena + PermGen spaces

我与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();
}

我曾在耶拿(Penat Reasoner)的《佩勒推理》Pellet Reasoner)下发表过文章。 我的TDB或原始数据是2.7G。 我一直在对TDB运行推理机,但是我遇到了“ PermGen space java”的问题,尽管我给程序提供了70G的内存,而推理机仅占用了30G内存,然后崩溃了。 换句话说,它没有达到计算机内存的最大值

我正在运行Linux和Java 64位,并且服务器中有83 G内存。 我已经坚持了一个星期。

佩莱特在内存中进行推理。 我怀疑您认为应该将它与TDB一起使用不会起作用。 TDB只是存储,Pellet会将执行推理所需的一切都拉到内存中。

此外,告诉我们您的数据为2.7G并不是遥不可及的。 TBox的表现力对推理性能的影响比大小要大(甚至更多)(并且磁盘上的大小没有用,因为知道三元组的数量是一个更好的指标)。

因此,了解TBox中的内容对于更好的诊断至关重要。 由于我们不知道什么你喂养任何东西到球,我只能猜测,TBOX是非常富有表现力,还是非常大的,或两者兼而有之。

Pellet可以处理大型本体,它可以很好地处理NCI词库,但有些TBox则无法处理。 DL推理很难,甚至更难。

您可能还想查看DL手册,以很好地了解一些有用的背景材料。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM