【问题标题】:catch all the inferences generated by pellet reasoner捕捉颗粒推理器产生的所有推论
【发布时间】:2013-04-29 16:42:09
【问题描述】:
在我的应用程序中执行推理器时遇到问题,我无法捕获推理器生成的推理。
它通常执行,printClassTree 向我显示找到了推论,但结果 OWLOntology 没有推论。
当前代码:
com.clarkparsia.pellet.owlapiv3.PelletReasoner reasoner = PelletReasonerFactory.getInstance().createReasoner(ontology);
reasoner.getKB().realize();
reasoner.getKB().printClassTree();
我应该改变什么?如何捕获推理推理器产生的公理?
【问题讨论】:
标签:
ontology
owl
inference
pellet
【解决方案1】:
以下代码运行良好,这里的“inferredOnotology”包含基础本体以及推断结果。
请注意,此代码是使用颗粒 2.1 或 2.2 版本测试的,不确定颗粒的最新版本。
OWLOntology inferredOntology;
// Create Reasoner
OWLReasonerFactory reasonerFactory = new PelletReasonerFactory();
OWLReasoner reasoner = reasonerFactory.createReasoner(manager);
// Load the ontologies into the reasoner.
Set<OWLOntology> importsClosure = manager.getImportsClosure(inferredOntology);
reasoner.loadOntologies(importsClosure);
// Reason!
reasoner.classify();
InferredOntologyGenerator iog = new InferredOntologyGenerator(reasoner);
iog.fillOntology(manager, inferredOntology);
【解决方案2】:
我正在使用这个导入
import com.clarkparsia.pellet.owlapiv3.PelletReasoner
使用 Pellet 2.3.0
我是这样声明的:
PelletReasoner razonador;
并使用本体初始化:
razonador=com.clarkparsia.pellet.owlapiv3.PelletReasonerFactory.getInstance().createReasoner(ont)
ont 是本体,我只是用它来分类:
razonador.getKB().classify();
希望对你有帮助!