2013-04-29 72 views
0

产生在我的应用程序在执行时,推理我有一个问题的推论,我无法捕捉由推理产生的推论。 它的正常进行,在printClassTree表明我的推论被发现,但结果OWLOntology没有推论。 当前代码:捕获所有颗粒推理

com.clarkparsia.pellet.owlapiv3.PelletReasoner reasoner = PelletReasonerFactory.getInstance().createReasoner(ontology); 
    reasoner.getKB().realize(); 
    reasoner.getKB().printClassTree(); 

我应该改变什么?我怎样才能捕捉推理推理产生的公理?

回答

0

下面的代码工作正常,并在这里“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); 
0

我使用这个进口

import com.clarkparsia.pellet.owlapiv3.PelletReasoner

佩莱2.3.0

我声明了是这样的:

​​

,并初始化本体与此:

razonador=com.clarkparsia.pellet.owlapiv3.PelletReasonerFactory.getInstance().createReasoner(ont)

其中ONT是本体论,我只是用这个来分类:

razonador.getKB().classify();

希望它能帮助!