0

我在单例类“本体”中加载了一个现有的本体。

我想有相应的推断本体。

这是我的实际代码:

List<InferredAxiomGenerator<? extends OWLAxiom>> gens = new ArrayList<InferredAxiomGenerator<? extends OWLAxiom>>();
gens.add(new InferredSubClassAxiomGenerator());
gens.add(new InferredEquivalentClassAxiomGenerator());
InferredOntologyGenerator InferredGenerator = new InferredOntologyGenerator(Ontology.getOntology().getOWLReasoner(), gens);
                InferredGenerator.fillOntology(Ontology.getOntology().getOWLOntologyManager(), Ontology.getOntology().getOWLOntology());

这应该在我的本体中添加所有推断的公理,对吗?好吧,它没有。我有一个类 SpeciesA :

SpeciesA ⊑ Species ⊓ ∃hasPart.Fruit 

所以我创建了一个物种个体,我将属性 hasPart 添加到另一个水果个体。在 Protégé 中执行此操作并生成推断的本体将告诉我我的个体属于 SubClass SpeciesA。但是使用提供的代码在 Java 中执行此操作不起作用。

我用它来输出个人的子类:

for (OWLClassExpression i :
Individual.getTypes((Ontology.getOntology().getOWLOntology())))
                   System.out.println("Inferred classes of Individual : " + i.toString());

它实际上只输出“Species”的IRI,而不是“SpeciesA”。提前致谢。

4

0 回答 0